7 SUBROUTINE pgd_topd (HISBA, HGRID, PGRID_PAR, KDIM_FULL, PSSO_SLOPE, HPROGRAM)
57 USE modi_read_nam_pgd_topd
58 USE modi_init_topd_pgd
60 USE modi_make_mask_topd_to_isba
61 USE modi_make_mask_isba_to_topd
62 USE modi_write_file_masktopd
65 USE modi_topd_to_isba_slope
76 CHARACTER(LEN=*),
INTENT(IN) :: HISBA
77 CHARACTER(LEN=*),
INTENT(IN) :: HGRID
78 REAL,
DIMENSION(:),
INTENT(IN) :: PGRID_PAR
79 INTEGER,
INTENT(IN) :: KDIM_FULL
80 REAL,
DIMENSION(:),
INTENT(INOUT) :: PSSO_SLOPE
86 INTEGER :: JJ,JI,JK,JWRK
87 INTEGER :: JCAT,JMESH,JPIX
92 REAL,
DIMENSION(:),
ALLOCATABLE :: ZXI, ZYI
93 REAL,
DIMENSION(:),
ALLOCATABLE :: ZDXI, ZDYI
94 REAL,
DIMENSION(:),
ALLOCATABLE :: ZXN, ZYN
95 REAL,
DIMENSION(:),
ALLOCATABLE :: ZLAT,ZLON
96 REAL,
DIMENSION(:),
ALLOCATABLE :: ZDTAV
99 REAL :: ZLONMIN,ZLONMAX
100 REAL :: ZLATMIN,ZLATMAX
110 REAL,
DIMENSION(:),
ALLOCATABLE :: ZF_PARAM,ZC_DEPTH_RATIO
111 REAL(KIND=JPRB) :: ZHOOK_HANDLE
119 IF (
lcoupl_topd .AND. (hisba/=
'3-L'.AND. hisba/=
'DIF')) &
120 CALL abor1_sfx(
"PGD_TOPD: coupling with topmodel only runs with CISBA=3-L or CISBA=DIF " 126 WRITE(iluout,*)
'Debut pgd_topd' 130 WRITE(iluout,*)
'NNCAT',
nncat 146 IF(hgrid.EQ.
'CONF PROJ')
THEN 148 WRITE(iluout,*)
'GRILLE PROJ CONF (application Cevennes)' 153 ALLOCATE(zxi(kdim_full))
154 ALLOCATE(zyi(kdim_full))
158 ALLOCATE(zdxi(kdim_full))
159 ALLOCATE(zdyi(kdim_full))
170 ALLOCATE(zxn(imeshl))
171 ALLOCATE(zyn(imeshl))
174 zxn(jj) = zxi(jj) - zdxi(jj)/2.
179 jwrk = (jj-1)*(
nimax+1)+1
181 zyn(jwrk) = zyi(ji) - zdyi(ji)/2.
186 zyn(jj) = zyi(ji) + zdyi(ji)/2.
195 jk = (ji-1)*(
nimax+1)+jj
202 jk = (ji-1)*(
nimax+1)+jj
203 jwrk = (ji-1)*(
nimax+1)+1
210 ALLOCATE(zlat(imeshl))
211 ALLOCATE(zlon(imeshl))
219 ELSE IF(hgrid.EQ.
'LONLAT REG')
THEN 221 WRITE(iluout,*)
'GRILLE LONLAT REG (application AMMA)' 223 ALLOCATE(zxi(kdim_full))
224 ALLOCATE(zyi(kdim_full))
233 ALLOCATE(zlon(imeshl))
234 ALLOCATE(zlat(imeshl))
235 ALLOCATE(zdxi(kdim_full))
236 ALLOCATE(zdyi(kdim_full))
238 zdxi(:)=(zlonmax-zlonmin)/(
nimax-1)
239 zdyi(:)=(zlatmax-zlatmin)/(
njmax-1)
242 zlon(jj) = zxi(jj) - zdxi(jj)/2.
247 jwrk=(jj-1)*(
nimax+1)+1
249 zlat(jwrk) = zyi(ji) - zdyi(ji)/2.
254 zlat(jj) = zyi(ji) + zdyi(ji)/2.
263 jk = (ji-1)*(
nimax+1)+jj
270 jk=(ji-1)*(
nimax+1)+jj
271 jwrk=(ji-1)*(
nimax+1)+1
277 ELSE IF (hgrid==
'IGN')
THEN 278 WRITE(iluout,*)
'GRILLE IGN (application Bulgarie)' 279 ALLOCATE(zxn(kdim_full))
280 ALLOCATE(zyn(kdim_full))
282 kl=il,px=zxn,py=zyn,kdimx=
nimax)
284 ALLOCATE(zlat(imeshl))
285 ALLOCATE(zlon(imeshl))
290 WRITE(iluout,*)
'ERREUR: TYPE DE GRILLE NON GERE PAR LE CODE' 291 CALL abor1_sfx(
"PGD_TOPD: TYPE DE GRILLE NON GERE PAR LE CODE")
298 ALLOCATE(
xxi(imeshl))
299 ALLOCATE(
xyi(imeshl))
301 IF (hgrid/=
'IGN')
THEN 318 ALLOCATE(
nnpix(kdim_full))
350 ALLOCATE (zf_param(kdim_full))
351 ALLOCATE (zc_depth_ratio(kdim_full))
354 zc_depth_ratio(:) = 0.
372 CALL open_file(
'ASCII ',
nunit,
'carte_f_dc.txt',
'FORMATTED',haction=
'WRITE' 374 WRITE(
nunit,*) zf_param(jmesh),zc_depth_ratio(jmesh)
379 DEALLOCATE(zc_depth_ratio)
381 WRITE(iluout,*)
'Couplage avec TOPMODEL active' 385 WRITE(iluout,*)
'Pas de couplage avec TOPMODEL' subroutine get_gridtype_ign(PGRID_PAR, KLAMBERT, KL, PX, PY, PDX, PDY, KDIMX, KDIMY, PXALL, PYALL)
subroutine xy_ign(KLAMBERT, PX, PY, PLAT, PLON)
real, dimension(:,:), allocatable xbv_in_mesh
subroutine open_file(HPROGRAM, KUNIT, HFILE, HFORM, HACTION, HACCESS, KR
real, dimension(:), allocatable xyi
character(len=15), dimension(jpcat) ccat
real, dimension(jpcat) xc_depth_ratio_bv
subroutine latlon_conf_proj(PLAT0, PLON0, PRPK, PBETA, PLATOR, PLONOR,
integer, dimension(:), allocatable nnpix
subroutine abor1_sfx(YTEXT)
real, dimension(:), allocatable xtotbv_in_mesh
subroutine make_mask_isba_to_topd(KI)
real, dimension(:), allocatable xdxt
subroutine latlon_ign(KLAMBERT, PX, PY, PLAT, PLON)
subroutine make_mask_topd_to_isba(HGRID, PGRID_PAR, KI)
subroutine init_topd_pgd(HPROGRAM)
subroutine get_gridtype_lonlat_reg(PGRID_PAR, PLONMIN, PLONMAX, PLATMIN, PLATMAX, KLON, KLAT, KL, PLON, PLAT)
integer, parameter nundef
subroutine close_file(HPROGRAM, KUNIT)
real, dimension(:), allocatable xxi
subroutine get_gridtype_conf_proj(PGRID_PAR, PLAT0, PLON0, PRPK, PBETA
real, dimension(jpcat) xf_param_bv
subroutine topd_to_isba_slope(PSSO_SLOPE, KI)
integer, dimension(:,:,:), allocatable nmaski
subroutine write_file_masktopd(KI)
subroutine pgd_topd(HISBA, HGRID, PGRID_PAR, KDIM_FULL, PSSO_SLOP
integer, dimension(:,:), allocatable nnbv_in_mesh
integer, dimension(:,:), allocatable nmaskt
real, dimension(jpcat) xrtop_d2