7 HPROGRAM,HINIFILE,HINIFILETYPE,OECOCLIMAP)
54 USE modd_data_cover_par
, ONLY : jpcover
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
73 USE modi_read_surfx2cov_1cov_mnh
89 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
90 CHARACTER(LEN=28),
INTENT(IN) :: HINIFILE
91 CHARACTER(LEN=6),
INTENT(IN) :: HINIFILETYPE
92 LOGICAL,
INTENT(OUT) :: OECOCLIMAP
106 REAL,
DIMENSION(:),
POINTER :: ZCOVER1D
108 REAL,
DIMENSION(:,:),
POINTER :: ZCOVER
109 REAL,
DIMENSION(:,:),
POINTER :: ZSEA1, ZWATER1, ZNATURE1, ZTOWN1
110 REAL,
DIMENSION(:,:),
POINTER :: ZSEA2, ZWATER2, ZNATURE2, ZTOWN2
111 REAL,
DIMENSION(:),
ALLOCATABLE :: ZSUM
112 CHARACTER(LEN=12) :: YRECFM
113 CHARACTER(LEN=100) :: YCOMMENT
114 REAL(KIND=JPRB) :: ZHOOK_HANDLE
116 IF (
lhook)
CALL dr_hook(
'ZOOM_PGD_COVER',0,zhook_handle)
128 CALL read_surf(hprogram,
'ECOCLIMAP',oecoclimap,iresp)
146 CALL read_surf(hprogram,yrecfm,iversion,iresp)
148 ALLOCATE(u%LCOVER(jpcover))
150 CALL old_name(hprogram,
'COVER_LIST ',yrecfm)
154 ALLOCATE(zcover(ini,
count(u%LCOVER)))
155 CALL read_surf_cov(hprogram,yrecfm,zcover(:,:),u%LCOVER,iresp,hdir=
'A')
158 ALLOCATE(zsea1(ini,1))
159 ALLOCATE(znature1(ini,1))
160 ALLOCATE(zwater1(ini,1))
161 ALLOCATE(ztown1(ini,1))
163 IF (iversion>=7)
THEN 164 CALL read_surf(hprogram,
'FRAC_SEA ',zsea1(:,1), iresp,hdir=
'A')
165 CALL read_surf(hprogram,
'FRAC_NATURE',znature1(:,1),iresp,hdir=
'A')
166 CALL read_surf(hprogram,
'FRAC_WATER ',zwater1(:,1), iresp,hdir=
'A')
167 CALL read_surf(hprogram,
'FRAC_TOWN ',ztown1(:,1), iresp,hdir=
'A')
181 ALLOCATE(u%XCOVER(il,
count(u%LCOVER)))
186 IF ( hprogram ==
'MESONH' )
THEN 187 ALLOCATE(zcover1d(ini))
190 IF ( u%LCOVER( jcover ) )
THEN 192 CALL read_surfx2cov_1cov_mnh(yrecfm,ini,jcover,zcover1d(:),iresp,ycomment
'A' 193 CALL hor_interpol(dtco, u,gcp,iluout,spread(zcover1d,2,1),u%XCOVER
206 ALLOCATE(zcover(il,
count(u%LCOVER)))
208 ALLOCATE(zsea2(il,1))
209 ALLOCATE(znature2(il,1))
210 ALLOCATE(zwater2(il,1))
211 ALLOCATE(ztown2(il,1))
214 CALL hor_interpol(dtco, u, gcp, iluout,znature1,znature2)
223 ALLOCATE(u%XSEA (il))
224 ALLOCATE(u%XNATURE(il))
225 ALLOCATE(u%XWATER (il))
226 ALLOCATE(u%XTOWN (il))
228 u%XSEA(:) = zsea2(:,1)
229 u%XNATURE(:)= znature2(:,1)
230 u%XWATER(:) = zwater2(:,1)
231 u%XTOWN(:) = ztown2(:,1)
246 DO jcover=1,
SIZE(u%XCOVER,2)
247 zsum(:) = zsum(:) + u%XCOVER(:,jcover)
250 DO jcover=1,
SIZE(u%XCOVER,2)
251 WHERE(zsum(:)/=0.) u%XCOVER(:,jcover) = u%XCOVER(:,jcover)/zsum(:)
264 u%NSIZE_NATURE =
count(u%XNATURE(:) > 0.0)
265 u%NSIZE_WATER =
count(u%XWATER (:) > 0.0)
266 u%NSIZE_SEA =
count(u%XSEA (:) > 0.0)
267 u%NSIZE_TOWN =
count(u%XTOWN (:) > 0.0)
278 ALLOCATE(u%NR_NATURE (u%NSIZE_NATURE))
279 ALLOCATE(u%NR_TOWN (u%NSIZE_TOWN ))
280 ALLOCATE(u%NR_WATER (u%NSIZE_WATER ))
281 ALLOCATE(u%NR_SEA (u%NSIZE_SEA ))
283 IF (u%NSIZE_SEA >0)
CALL get_1d_mask( u%NSIZE_SEA, u%NSIZE_FULL, u%XSEA
284 IF (u%NSIZE_WATER >0)
CALL get_1d_mask( u%NSIZE_WATER, u%NSIZE_FULL, u%XWATER
285 IF (u%NSIZE_TOWN >0)
CALL get_1d_mask( u%NSIZE_TOWN, u%NSIZE_FULL, u%XTOWN
286 IF (u%NSIZE_NATURE>0)
CALL get_1d_mask( u%NSIZE_NATURE, u%NSIZE_FULL, u%XNATURE
287 IF (
lhook)
CALL dr_hook(
'ZOOM_PGD_COVER',1,zhook_handle)
character(len=10) cingrid_type
subroutine clean_prep_output_grid
subroutine old_name(HPROGRAM, HRECIN, HRECOUT, HDIR)
integer function sum_on_all_procs(HPROGRAM, HGRID, OIN, HNAME)
character(len=6) cinterp_type
subroutine close_aux_io_surf(HFILE, HFILETYPE)
subroutine read_surf_cov(HPROGRAM, HREC, PFIELD, OFLAG, KRESP, HCOMMENT, HDIR)
subroutine prep_grid_extern(GCP, HFILETYPE, KLUOUT, HGRIDTYPE, HINTER
subroutine hor_interpol(DTCO, U, GCP, KLUOUT, PFIELDIN, PFIELDOUT)
subroutine read_lcover(HPROGRAM, OCOVER)
subroutine prep_output_grid(UG, G, KSIZE_FULL, KLUOUT)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine get_1d_mask(KSIZE, KFRAC, PFRAC, KMASK)
subroutine open_aux_io_surf(HFILE, HFILETYPE, HMASK, HDIR)
subroutine zoom_pgd_cover(DTCO, UG, U, GCP, HPROGRAM, HINIFILE, HINIFILETYPE, OECOCLIM
subroutine convert_cover_frac(DTCO, PCOVER, OCOVER, PSEA, PNATURE, PTOWN, PWATER)