7 hprogram,hsurf,hfile, &
50 USE modd_prep, ONLY : cinterp_type, cingrid_type
51 USE modd_pgd_grid, ONLY : nl,llatlonmask,cgrid,xgrid_par,ngrid_par
58 USE modi_get_latlonmask_n
61 USE modi_get_surf_mask_n
63 USE modi_get_type_dim_n
64 USE yomhook
,ONLY : lhook, dr_hook
65 USE parkind1
,ONLY : jprb
76 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
77 CHARACTER(LEN=7),
INTENT(IN) :: hsurf
78 CHARACTER(LEN=28),
INTENT(IN) :: hfile
79 INTEGER,
INTENT(IN) :: kluout
81 REAL,
POINTER,
DIMENSION(:,:,:) :: pfield
85 REAL,
DIMENSION(:),
ALLOCATABLE :: zlat
86 REAL,
DIMENSION(:),
ALLOCATABLE :: zlon
87 REAL,
DIMENSION(:),
ALLOCATABLE :: zdepth
88 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: zfield
89 REAL,
DIMENSION(:,:,:,:),
ALLOCATABLE :: zfieldr
96 INTEGER,
DIMENSION(:),
POINTER :: imask
97 CHARACTER(LEN=6) :: ymask
98 REAL(KIND=JPRB) :: zhook_handle
101 IF (lhook) CALL dr_hook(
'PREP_OCEAN_ASCLLV',0,zhook_handle)
103 cingrid_type=
'CONF PROJ '
116 llatlonmask,cgrid,xgrid_par,ngrid_par)
120 WRITE(kluout,*)
"==================================== "
121 WRITE(kluout,*)
"Control print in prep_ocean_ascllv "
122 WRITE(kluout,*)
"NL, NOCKMAX", nl,nockmax
126 ALLOCATE(zdepth(nockmax))
128 ALLOCATE(zfieldr(nl,nockmax,4, 1))
129 ALLOCATE(zfield(nl,nockmax, 1))
132 WRITE(kluout,*)
"ZFIELDR",shape(zfieldr)
133 WRITE(kluout,*)
"File name used in ocean ascllv", hfile
135 WRITE(kluout,*)
"USURF= " , hsurf
136 WRITE(kluout,*)
"NL (dim)=", nl
137 WRITE(kluout,*)
"IL (dim)=", il
141 CALL
open_file(hprogram,iglb,hfile,
'FORMATTED',haction=
'READ')
146 READ(iglb,*,end=99) zlat(ji),zlon(ji), zdepth(jk), &
147 zfieldr(ji,jk,1,1), zfieldr(ji,jk,2,1),zfieldr(ji,jk,3,1), &
159 WRITE(kluout,*) minval(zfieldr), maxval(zfieldr)
165 zfield(:,:,1) = zfieldr(:,:,1,1)
167 zfield(:,:,1) = zfieldr(:,:,2,1)
169 zfield(:,:,1) = zfieldr(:,:,3,1)
171 zfield(:,:,1) = zfieldr(:,:,4,1)
186 WRITE(kluout,*)
"IDIM (dim sea) =", idim
188 ALLOCATE(pfield(1:idim,1:
SIZE(zfield,2),1:
SIZE(zfield,3)))
190 IF (idim/=
SIZE(pfield,1))
THEN
191 WRITE(kluout,*)
'Wrong dimension of MASK: ',idim,
SIZE(pfield)
192 CALL
abor1_sfx(
'PGD_FIELD: WRONG DIMENSION OF MASK')
195 ALLOCATE(imask(idim))
198 ymask,idim,imask,ilu,kluout)
207 IF (
ALLOCATED(zlon ))
DEALLOCATE(zlon )
208 IF (
ALLOCATED(zlat ))
DEALLOCATE(zlat )
209 IF (
ALLOCATED(zdepth ))
DEALLOCATE(zdepth )
210 IF (
ALLOCATED(zfield ))
DEALLOCATE(zfield )
211 IF (
ALLOCATED(zfieldr ))
DEALLOCATE(zfieldr )
213 IF (lhook) CALL dr_hook(
'PREP_OCEAN_ASCLLV',1,zhook_handle)
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
subroutine prep_ocean_ascllv(DTCO, UG, U, HPROGRAM, HSURF, HFILE, KLUOUT, PFIELD)
subroutine abor1_sfx(YTEXT)
subroutine get_latlonmask_n(UG, OLATLONMASK, HGRID, PGRID_PAR, KGRID_PAR)
subroutine get_surf_mask_n(DTCO, U, HTYPE, KDIM, KMASK, KLU, KLUOUT)
subroutine close_file(HPROGRAM, KUNIT)
subroutine open_file(HPROGRAM, KUNIT, HFILE, HFORM, HACTION, HACCESS, KRECL)