54 USE modi_sfx_oasis_define
60 USE yomhook
,ONLY : lhook, dr_hook
61 USE parkind1
,ONLY : jprb
70 TYPE(isba_t
),
INTENT(INOUT) :: i
74 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
75 CHARACTER(LEN=4),
INTENT(IN) :: halg_mpi
81 INTEGER,
DIMENSION(:),
ALLOCATABLE :: iparal
82 INTEGER,
DIMENSION(:),
ALLOCATABLE :: iseg_size
83 INTEGER,
DIMENSION(:),
ALLOCATABLE :: iseg_offset
85 INTEGER,
DIMENSION(U%NDIM_FULL+1) :: iindex
87 INTEGER :: jproc, ji, jseg
88 INTEGER :: isegment, icount, inpar, inpts
90 REAL(KIND=JPRB) :: zhook_handle
94 IF (lhook) CALL dr_hook(
'SFX_OASIS_DEF_OL',0,zhook_handle)
105 iindex(1:u%NDIM_FULL)=nindex(:)
106 iindex(u%NDIM_FULL+1)=nproc+10
109 IF(nindex(ji)==nrank.AND.nindex(ji)/=iindex(ji+1))
THEN
118 ALLOCATE(iseg_size(isegment))
119 ALLOCATE(iseg_offset(isegment))
124 IF(nindex(ji)==nrank)
THEN
127 IF(nindex(ji)==nrank.AND.nindex(ji)/=iindex(ji+1))
THEN
129 iseg_size(isegment)=icount
130 iseg_offset(isegment)=ji-icount
135 ALLOCATE(iparal(inpar))
139 iparal(clim_strategy) = clim_orange
151 iparal(ji) = iseg_offset(jseg)
153 iparal(ji) = iseg_size(jseg)
154 inpts=inpts+iseg_size(jseg)
157 DEALLOCATE(iseg_size )
158 DEALLOCATE(iseg_offset)
165 hprogram,inpts,iparal)
173 IF (lhook) CALL dr_hook(
'SFX_OASIS_DEF_OL',1,zhook_handle)
subroutine sfx_oasis_define(I, U, HPROGRAM, KNPTS, KPARAL)
subroutine sfx_oasis_def_ol(I, U, HPROGRAM, HALG_MPI)