24 USE modi_init_io_surf_n
26 USE modi_read_gridtype
29 USE modi_end_io_surf_n
43 INTEGER,
INTENT(IN) :: KPROC
44 INTEGER,
INTENT(IN) :: KSIZE
45 INTEGER,
INTENT(IN) :: KPROCMIN
46 LOGICAL,
INTENT(IN),
OPTIONAL :: OSHADOWS
52 INTEGER,
DIMENSION(0:KPROC-1),
INTENT(OUT) :: KSIZE_TASK
57 INTEGER :: ISIZE, IRESTE, INRESTE
59 INTEGER :: ISIZE_Y,INY_THREAD,INY_RESTE
61 REAL(KIND=JPRB) :: ZHOOK_HANDLE
63 IF (
lhook)
CALL dr_hook(
'GET_SIZES_PARALLEL',0,zhook_handle)
66 IF (
PRESENT(oshadows))
THEN 85 csurf_filetype,ug%G%CGRID,ug%NGRID_FULL_PAR,u%NDIM_FULL,.false.,hdir=
"A")
86 ALLOCATE(ug%XGRID_FULL_PAR(ug%NGRID_FULL_PAR))
88 csurf_filetype,ug%G%CGRID,ug%NGRID_FULL_PAR,u%NDIM_FULL,.true.,ug%XGRID_FULL_PAR,iresp,hdir=
"A")
91 ug%XGRID_FULL_PAR=>null()
104 iny_thread=isize_y/kproc
105 iny_reste=isize_y-kproc*iny_thread
107 ksize_task(:)=iny_thread*
nix 109 DO j=kprocmin+kproc-iny_reste,kprocmin+kproc-1
110 ksize_task(mod(j,kproc))=ksize_task(mod(j,kproc))+
nix 114 isize = ceiling(ksize*1./kproc)
116 inreste = kproc*isize - ksize
123 ksize_task(:) = isize
125 DO j = kprocmin+kproc-inreste,kprocmin+kproc-1
126 ksize_task(mod(j,kproc)) = ireste
142 IF (
lhook)
CALL dr_hook(
'GET_SIZES_PARALLEL',1,zhook_handle)
character(len=6) csurf_filetype
subroutine get_grid_dim(HGRID, KGRID_PAR, PGRID_PAR, ORECT, KDIM1, KDIM
subroutine read_gridtype( HPROGRAM, HGRID, KGRID_PAR, KLU, OREAD, PGRID
subroutine get_sizes_parallel(DTCO, UG, U, KPROC, KSIZE, KPROCMIN, KSIZE_TASK, OSHADOWS)
subroutine end_io_surf_n(HPROGRAM)
subroutine init_io_surf_n(DTCO, U, HPROGRAM, HMASK, HSCHEME, HACTION