7 hprogram,hinifile,hinifiletype,oecoclimap)
55 USE modd_prep, ONLY : cingrid_type, cinterp_type
59 USE modi_convert_cover_frac
60 USE modi_open_aux_io_surf
62 USE modi_close_aux_io_surf
63 USE modi_prep_grid_extern
65 USE modi_prep_output_grid
67 USE modi_sum_on_all_procs
69 USE modi_clean_prep_output_grid
72 USE yomhook
,ONLY : lhook, dr_hook
73 USE parkind1
,ONLY : jprb
85 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
86 CHARACTER(LEN=28),
INTENT(IN) :: hinifile
87 CHARACTER(LEN=6),
INTENT(IN) :: hinifiletype
88 LOGICAL,
INTENT(OUT) :: oecoclimap
94 INTEGER :: icpt1, icpt2
101 REAL,
DIMENSION(:,:),
POINTER :: zcover
102 REAL,
DIMENSION(:,:),
POINTER :: zsea1, zwater1, znature1, ztown1
103 REAL,
DIMENSION(:,:),
POINTER :: zsea2, zwater2, znature2, ztown2
104 REAL,
DIMENSION(:),
ALLOCATABLE :: zsum
105 CHARACTER(LEN=12) :: yrecfm
106 REAL(KIND=JPRB) :: zhook_handle
108 IF (lhook) CALL dr_hook(
'ZOOM_PGD_COVER',0,zhook_handle)
119 hinifile,hinifiletype,
'FULL ')
122 hprogram,
'ECOCLIMAP',oecoclimap,iresp)
130 hinifiletype,iluout,cingrid_type,cinterp_type,ini)
133 iluout,ug%CGRID,ug%XGRID_PAR,ug%XLAT,ug%XLON)
142 hprogram,yrecfm,iversion,iresp)
144 ALLOCATE(u%LCOVER(jpcover))
146 hprogram,
'COVER_LIST ',yrecfm)
148 hprogram,yrecfm,u%LCOVER(:),iresp,hdir=
'-')
150 ALLOCATE(zcover(ini,count(u%LCOVER)))
152 hprogram,yrecfm,zcover(:,:),u%LCOVER,iresp,hdir=
'A')
154 ALLOCATE(zsea1(ini,1))
155 ALLOCATE(znature1(ini,1))
156 ALLOCATE(zwater1(ini,1))
157 ALLOCATE(ztown1(ini,1))
159 IF (iversion>=7)
THEN
161 hprogram,
'FRAC_SEA ',zsea1(:,1), iresp,hdir=
'A')
163 hprogram,
'FRAC_NATURE',znature1(:,1),iresp,hdir=
'A')
165 hprogram,
'FRAC_WATER ',zwater1(:,1), iresp,hdir=
'A')
167 hprogram,
'FRAC_TOWN ',ztown1(:,1), iresp,hdir=
'A')
171 zcover,u%LCOVER,zsea1(:,1),znature1(:,1),ztown1(:,1),zwater1(:,1))
181 ALLOCATE(u%XCOVER(il,count(u%LCOVER)))
184 iluout,zcover,u%XCOVER)
188 ALLOCATE(zcover(il,count(u%LCOVER)))
191 DO jcover = 1,jpcover
192 IF (u%LCOVER(jcover))
THEN
194 IF (all(u%XCOVER(:,icpt1)==0.))
THEN
195 u%LCOVER(jcover) = .false.
198 zcover(:,icpt2) = u%XCOVER(:,icpt1)
204 ALLOCATE(u%XCOVER(il,icpt2))
205 u%XCOVER(:,:) = zcover(:,1:icpt2)
208 ALLOCATE(zsea2(il,1))
209 ALLOCATE(znature2(il,1))
210 ALLOCATE(zwater2(il,1))
211 ALLOCATE(ztown2(il,1))
216 iluout,znature1,znature2)
218 iluout,zwater1,zwater2)
220 iluout,ztown1,ztown2)
227 ALLOCATE(u%XSEA (il))
228 ALLOCATE(u%XNATURE(il))
229 ALLOCATE(u%XWATER (il))
230 ALLOCATE(u%XTOWN (il))
232 u%XSEA(:) = zsea2(:,1)
233 u%XNATURE(:)= znature2(:,1)
234 u%XWATER(:) = zwater2(:,1)
235 u%XTOWN(:) = ztown2(:,1)
250 DO jcover=1,
SIZE(u%XCOVER,2)
251 zsum(:) = zsum(:) + u%XCOVER(:,jcover)
254 DO jcover=1,
SIZE(u%XCOVER,2)
255 WHERE(zsum(:)/=0.) u%XCOVER(:,jcover) = u%XCOVER(:,jcover)/zsum(:)
258 DO jcover=1,
SIZE(u%XCOVER,2)
259 IF (all(u%XCOVER(:,jcover)==0.)) u%LCOVER(jcover) = .false.
271 u%NSIZE_NATURE = count(u%XNATURE(:) > 0.0)
272 u%NSIZE_WATER = count(u%XWATER (:) > 0.0)
273 u%NSIZE_SEA = count(u%XSEA (:) > 0.0)
274 u%NSIZE_TOWN = count(u%XTOWN (:) > 0.0)
277 u%NDIM_NATURE =
sum_on_all_procs(hprogram,ug%CGRID,u%XNATURE(:) > 0.,
'DIM')
285 ALLOCATE(u%NR_NATURE (u%NSIZE_NATURE))
286 ALLOCATE(u%NR_TOWN (u%NSIZE_TOWN ))
287 ALLOCATE(u%NR_WATER (u%NSIZE_WATER ))
288 ALLOCATE(u%NR_SEA (u%NSIZE_SEA ))
290 IF (u%NSIZE_SEA >0)CALL
get_1d_mask( u%NSIZE_SEA, u%NSIZE_FULL, u%XSEA , u%NR_SEA )
291 IF (u%NSIZE_WATER >0)CALL
get_1d_mask( u%NSIZE_WATER, u%NSIZE_FULL, u%XWATER , u%NR_WATER )
292 IF (u%NSIZE_TOWN >0)CALL
get_1d_mask( u%NSIZE_TOWN, u%NSIZE_FULL, u%XTOWN , u%NR_TOWN )
293 IF (u%NSIZE_NATURE>0)CALL
get_1d_mask( u%NSIZE_NATURE, u%NSIZE_FULL, u%XNATURE, u%NR_NATURE)
294 IF (lhook) CALL dr_hook(
'ZOOM_PGD_COVER',1,zhook_handle)
subroutine, public read_surf_cov(HPROGRAM, HREC, PFIELD, OFLAG, KRESP, HCOMMENT, HDIR)
subroutine clean_prep_output_grid
integer function sum_on_all_procs(HPROGRAM, HGRID, OIN, HNAME)
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine hor_interpol(DTCO, U, KLUOUT, PFIELDIN, PFIELDOUT)
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine get_1d_mask(KSIZE, KFRAC, PFRAC, KMASK)
subroutine zoom_pgd_cover(DTCO, UG, U, HPROGRAM, HINIFILE, HINIFILETYPE, OECOCLIMAP)
subroutine prep_grid_extern(HFILETYPE, KLUOUT, HGRIDTYPE, HINTERP_TYPE, KNI)
subroutine prep_output_grid(UG, U, KLUOUT, HGRID, PGRID_PAR, PLAT, PLON)
subroutine convert_cover_frac(DTCO, PCOVER, OCOVER, PSEA, PNATURE, PTOWN, PWATER)
subroutine old_name(HPROGRAM, HRECIN, HRECOUT)