7 HPROGRAM,HSCHEME,HFILETYPE, &
8 HSUBROUTINE,HFILENAME,HNCVARNAME, &
9 HFIELD, PPGDARRAY,HSFTYPE )
62 USE modi_read_binllvfast
65 USE modi_average2_mesh
74 USE modi_average2_cover
76 USE modi_average2_orography
78 USE modi_read_direct_gauss
91 TYPE(
sso_t),
INTENT(INOUT) :: USS
93 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
94 CHARACTER(LEN=6),
INTENT(IN) :: HSCHEME
95 CHARACTER(LEN=6),
INTENT(IN) :: HFILETYPE
96 CHARACTER(LEN=6),
INTENT(IN) :: HSUBROUTINE
97 CHARACTER(LEN=28),
INTENT(IN) :: HFILENAME
98 CHARACTER(LEN=28),
INTENT(IN) :: HNCVARNAME
99 CHARACTER(LEN=20),
INTENT(IN) :: HFIELD
100 REAL,
DIMENSION(:),
INTENT(INOUT),
OPTIONAL :: PPGDARRAY
101 CHARACTER(LEN=3),
INTENT(IN),
OPTIONAL :: HSFTYPE
106 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZPGDARRAY
107 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IMASK
108 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZVAL
109 INTEGER,
DIMENSION(:),
ALLOCATABLE :: ISIZE
112 INTEGER,
DIMENSION(MPI_STATUS_SIZE) :: ISTATUS
113 INTEGER,
DIMENSION(MPI_STATUS_SIZE,NPROC-1) :: ISTATUS2
115 INTEGER :: ILUOUT, INFOMPI, JP, ICPT, JI, JL, IREQ, IDX,&
117 REAL(KIND=JPRB) :: ZHOOK_HANDLE, ZHOOK_HANDLE_OMP
120 IF (
lhook)
CALL dr_hook(
'TREAT_BATHYFIELD',0,zhook_handle)
126 SELECT CASE (hfiletype)
129 IF(ug%G%CGRID==
"GAUSS ")
THEN 131 hprogram,hscheme,hsubroutine,hfilename
134 hprogram,hscheme,hsubroutine,hfilename,hfield
139 hprogram,hsubroutine,hfilename)
144 hprogram,hsubroutine,hfilename)
149 hprogram,hsubroutine,hfilename)
154 hprogram,hsubroutine,hfilename,hncvarname)
161 ALLOCATE(
nsize(u%NSIZE_FULL,1))
165 ALLOCATE(isize(nsize_max))
168 idx = idx_save +
nrank 181 CALL mpi_recv(isize,nsize_max*kind(isize)/4,mpi_integer,&
182 jp,idx_save+1+jp,
ncomm,istatus,infompi)
213 SELECT CASE (hsubroutine)
217 ALLOCATE(
xsumval(u%NSIZE_FULL,1))
220 ALLOCATE(zval(u%NSIZE_FULL,1))
236 SELECT CASE (hsubroutine)
239 IF (.NOT.
PRESENT(ppgdarray))
THEN 240 WRITE(iluout,*)
'You asked to average a PGD field with A_MESH option,' 241 WRITE(iluout,*)
'but you did not give the array to store this field' 242 CALL abor1_sfx(
'TREAT_BATHYFIELD: PGD ARRAY IS MISSING')
244 ALLOCATE(zpgdarray(
SIZE(ppgdarray),1))
246 ppgdarray = zpgdarray(:,1)
247 DEALLOCATE(zpgdarray)
250 IF (
lhook)
CALL dr_hook(
'TREAT_BATHYFIELD',1,zhook_handle)
integer, dimension(:), allocatable nreq
integer, dimension(:,:), allocatable nsize_all
real, dimension(:,:,:), allocatable xall
subroutine read_direct(UG, U, USS, HPROGRAM, HSCHEME, HSUBROUTINE, HFILENAME, HFI
subroutine read_binllv(UG, U, USS, HPROGRAM, HSUBROUTINE, HFILENAME)
subroutine read_direct_gauss(UG, U, USS, HPROGRAM, HSCHEME, HSUBROUTINE, HFILENA
subroutine abor1_sfx(YTEXT)
real, dimension(:,:), allocatable xsumval
subroutine ini_ssowork(PMESHLENGTH, PDLAT, PDLON)
subroutine read_binllvfast(UG, U, USS, HPROGRAM, HSUBROUTINE, HFILENAME)
subroutine read_ascllv(UG, U, USS, HPROGRAM, HSUBROUTINE, HFILENAME)
subroutine average2_mesh(PPGDARRAY)
subroutine get_luout(HPROGRAM, KLUOUT)
integer, dimension(:), allocatable nsize_task
integer, dimension(:,:), allocatable nsize
subroutine read_netcdf(UG, U, USS, HPROGRAM, HSUBROUTINE, HFILENAME, HNCVARNAME)
subroutine treat_bathyfield(UG, U, USS, HPROGRAM, HSCHEME, HFILETYPE, HSUBROUTINE, HFILENAME, HNCVARNAME, HFIELD, PPGDARRAY, HSFTYPE)
integer, dimension(:), allocatable nindex