TABLE OF CONTENTS


tests/testAAB [ Unit tests ]

[ Top ] [ Unit tests ]

NAME

testAAB

SYNOPSIS

!$Id: testAAB.f90 529 2018-03-26 11:25:45Z mexas $

program testAAB

PURPOSE

Checking: cgca_as, cgca_ds, cgca_swci

DESCRIPTION

Writing all coarrays to a file in order, as if it were a single large 3D array (super array).

NOTES

The program must be called with 2 command line arguments, both positive integers. These are codimensions along 1 and 2. The number of images must be such that codimension3 = num_images()/( codimension1 * codimension3 ) is a positive integer. Example:

      cafrun -np 16 ./testAAB.x 2 2      ! OpenCoarrays

or

      ./testAAB.x 2 2                    ! Intel, Cray

which will make the third codimension equal to 16/(2*2)=4.

AUTHOR

Anton Shterenlikht

COPYRIGHT

See LICENSE

USES

cgca testaux

USED BY

Part of CGPACK test suite

SOURCE

use testaux

implicit none

 integer(kind=idef),parameter :: size1=10, size2=10, size3=10
 integer(kind=idef) :: nimages
 integer(kind=idef) :: codim(3)[*]
 integer(kind=iarr),allocatable :: space1(:,:,:,:)[:,:,:]
logical(kind=ldef) :: image1

!*********************************************************************72
! first executable statement

nimages=num_images()
image1 = .false.
if (this_image() .eq. 1) image1 = .true.

! do a check on image 1
if (image1) then
 call getcodim(nimages,codim)
 ! print a banner
 call banner("AAB")
 ! print the parameter values
 call cgca_pdmp
 write (*,'(a,i0,a)') "running on ", nimages, " images in a 3D grid"
 write (*,*) "codim:", codim
end if

sync all

if (image1) then
  write (*,*) "cgca kinds:"
  write (*,*) "default integer:", idef
  write (*,*) "coarray integer:", iarr
  write (*,*) "default logical:", ldef
end if

codim(:) = codim(:)[1]

sync all

! implicit sync all inside
call cgca_as( 1, size1, 1, size2, 1, size3, 1, codim(1), 1, codim(2),  &
              1, 2, space1 )

if (allocated(space1)) then
  write (*,'(a,i0,a)')"Image:",this_image(), " space1 allocated"
  write (*,'(a,i0,a,3(i0,tr1),a)')                                     &
    "Image: ",this_image()," is ",this_image(space1)," in the grid"
end if

space1( :, :, :, cgca_state_type_grain ) = int(this_image(), kind=iarr)
space1( :, :, :, cgca_state_type_frac ) = 0_iarr

sync all

if ( this_image() .eq. 1 )                                             &
  write (*,*) "coarrays defined, calling cgca_swci"

call cgca_swci( space1, cgca_state_type_grain, 10, 'z.raw' )

call cgca_ds(space1)
 
if ( .not. allocated(space1) )                                         &
  write (*,'(a,i0,a)')"Image:",this_image(), " space1 not allocated"

end program testAAB