run
public void run()
an example of source program:
--------------------------------------------
subroutine EX1 or module EX1
use M1 !! contains "real :: V1(10,20)[4,*]" ! use-associated static coarray
complex(8), save :: V2[0:*] ! local static coarray
!! other coarrays, i.e., allocatable coarrays and dummy coarrays are handled by
!! transDeclPart_allocatableLocal, transDeclPart_staticDummy, and
!! transDeclPart_allocatableDummy in XMPtransCoarrayRun.java.
...
end subroutine or end module
--------------------------------------------
converted program and generated subroutines
Case: useMalloc (Ver.3 and 7g):
--------------------------------------------
subroutine xmpf_traverse_countcoarrays_EX1
call xmpf_coarray_count_size(1, 16)
end subroutine
subroutine xmpf_traverse_initcoarrays_EX1
integer(8) :: DP_V2
integer(8) :: CP_V2
common /xmpf_DP_EX1/ DP_V2
common /xmpf_CP_EX1/ CP_V2
call xmpf_coarray_alloc_static(DP_V2, CP_V2, 1, 16, "V2", 2)
call xmpf_coarray_set_coshape(DP_V2, 1, 0)
end subroutine
--------------------------------------------
xmpf_DP_EX1 : name of a common block for procedure EX1
DP_V2 : pointer to descriptor of coarray V2
xmpf_CP_EX1 : name of a common block for procedure EX1
CP_V2 : cray poiter to coarray V2
Case: useRegMem (Ver.4, 6 and 7 for FJRDMA and MPI3):
--------------------------------------------
// no subroutine xmpf_traverse_countcoarrays_EX1
subroutine xmpf_traverse_initcoarrays_EX1
common /xmpf_DP_EX1/ DP_V2
common /xmpf_CO_EX1/ V2
call xmpf_coarray_regmem_static(DP_V2, LOC(V2), 1, 16, "V2", 2)
call xmpf_coarray_set_coshape(DP_V2, 1, 0)
end subroutine
--------------------------------------------
Ver.6 shoud be the same as Ver.4. The following description should
be wrong.
//Ver.6 for FJRDMA and MPI3, only for modules EX1:
//--------------------------------------------
//// no subroutine xmpf_traverse_countcoarrays_EX1
//
// subroutine xmpf_traverse_initcoarrays_EX1
// use EX1
//
// call xmpf_coarray_regmem_static(DP_V2, LOC(V2), 1, 16, "V2", 2)
// call xmpf_coarray_set_coshape(DP_V2, 1, 0)
// end subroutine
--------------------------------------------