7 hprogram,hinit,oland_use, &
10 pzenith,pazim,psw_bands,pdir_alb,psca_alb, &
11 pemis,ptsrad,ptsurf, &
12 kyear, kmonth,kday, ptime, &
13 hatmfile,hatmfiletype, &
52 USE yomhook
, ONLY : lhook, dr_hook
53 USE parkind1
,ONLY : jprb
58 USE modi_init_io_surf_n
59 USE modi_end_io_surf_n
61 USE modi_get_type_dim_n
64 USE modi_set_vegtypes_fractions
65 USE modi_compute_isba_parameters
75 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
76 CHARACTER(LEN=3),
INTENT(IN) :: hinit
77 LOGICAL,
INTENT(IN) :: oland_use
78 INTEGER,
INTENT(IN) :: ki
79 INTEGER,
INTENT(IN) :: ksv
80 INTEGER,
INTENT(IN) :: ksw
81 CHARACTER(LEN=6),
DIMENSION(KSV),
INTENT(IN) :: hsv
82 REAL,
DIMENSION(KI),
INTENT(IN) :: pco2
83 REAL,
DIMENSION(KI),
INTENT(IN) :: prhoa
84 REAL,
DIMENSION(KI),
INTENT(IN) :: pzenith
85 REAL,
DIMENSION(KI),
INTENT(IN) :: pazim
86 REAL,
DIMENSION(KSW),
INTENT(IN) :: psw_bands
87 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: pdir_alb
88 REAL,
DIMENSION(KI,KSW),
INTENT(OUT) :: psca_alb
89 REAL,
DIMENSION(KI),
INTENT(OUT) :: pemis
90 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsrad
91 REAL,
DIMENSION(KI),
INTENT(OUT) :: ptsurf
93 INTEGER,
INTENT(IN) :: kyear
94 INTEGER,
INTENT(IN) :: kmonth
95 INTEGER,
INTENT(IN) :: kday
96 REAL,
INTENT(IN) :: ptime
99 CHARACTER(LEN=28),
INTENT(IN) :: hatmfile
100 CHARACTER(LEN=6),
INTENT(IN) :: hatmfiletype
101 CHARACTER(LEN=2),
INTENT(IN) :: htest
106 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zwork
110 CHARACTER(LEN=12) :: yrecfm
111 CHARACTER(LEN=4) :: ylvl
112 REAL(KIND=JPRB) :: zhook_handle
116 IF (lhook) CALL dr_hook(
'INIT_SURF_LANDUSE_N',0,zhook_handle)
118 IF (htest/=
'OK')
THEN
119 CALL
abor1_sfx(
'INIT_SURF_LANDUSEN: FATAL ERROR DURING ARGUMENT TRANSFER')
122 IF (.NOT. oland_use)
THEN
123 IF (lhook) CALL dr_hook(
'INIT_SURF_LANDUSE_N',1,zhook_handle)
127 IF (ysc%IM%I%CISBA==
'DIF')
THEN
128 CALL
abor1_sfx(
'INIT_SURF_LANDUSEN: LAND USE NOT IMPLEMENTED WITH DIF')
136 hprogram,
'NATURE',
'ISBA ',
'READ ')
142 ALLOCATE(zwork(ilu,ysc%IM%I%NPATCH))
144 ysc%IM%DTI%LDATA_MIXPAR = .true.
145 IF (.NOT.
ASSOCIATED(ysc%IM%DTI%XPAR_VEGTYPE))
ALLOCATE(ysc%IM%DTI%XPAR_VEGTYPE(ilu,nvegtype))
146 IF (ysc%IM%DTI%NTIME==0) ysc%IM%DTI%NTIME = 36
147 IF (.NOT.
ASSOCIATED(ysc%IM%DTI%XPAR_LAI))
ALLOCATE(ysc%IM%DTI%XPAR_LAI(ilu,ysc%IM%DTI%NTIME,nvegtype))
148 IF (.NOT.
ASSOCIATED(ysc%IM%DTI%XPAR_H_TREE))
ALLOCATE(ysc%IM%DTI%XPAR_H_TREE(ilu,nvegtype))
149 IF (.NOT.
ASSOCIATED(ysc%IM%DTI%XPAR_ROOT_DEPTH))
ALLOCATE(ysc%IM%DTI%XPAR_ROOT_DEPTH(ilu,nvegtype))
150 IF (.NOT.
ASSOCIATED(ysc%IM%DTI%XPAR_ROOT_DEPTHGV))
ALLOCATE(ysc%IM%DTI%XPAR_ROOT_DEPTHGV(ilu,nvegtype))
151 IF (.NOT.
ASSOCIATED(ysc%IM%DTI%XPAR_GROUND_DEPTH))
ALLOCATE(ysc%IM%DTI%XPAR_GROUND_DEPTH(ilu,nvegtype))
152 IF (.NOT.
ASSOCIATED(ysc%IM%DTI%XPAR_IRRIG))
ALLOCATE(ysc%IM%DTI%XPAR_IRRIG(ilu,ysc%IM%DTI%NTIME,nvegtype))
153 IF (.NOT.
ASSOCIATED(ysc%IM%DTI%XPAR_WATSUP))
ALLOCATE(ysc%IM%DTI%XPAR_WATSUP(ilu,ysc%IM%DTI%NTIME,nvegtype))
157 ALLOCATE(ysc%IM%I%XPATCH_OLD(ilu,ysc%IM%I%NPATCH))
160 hprogram,yrecfm,ysc%IM%I%XPATCH_OLD(:,:),iresp)
164 ALLOCATE(ysc%IM%I%XDG_OLD(ilu,ysc%IM%I%NGROUND_LAYER,ysc%IM%I%NPATCH))
166 DO jlayer=1,ysc%IM%I%NGROUND_LAYER
167 WRITE(ylvl,
'(I4)') jlayer
168 yrecfm=
'OLD_DG'//adjustl(ylvl(:len_trim(ylvl)))
170 hprogram,yrecfm,zwork(:,:),iresp)
171 ysc%IM%I%XDG_OLD(:,jlayer,:)=zwork
190 ysc%DST, ysc%SLT, ysc%SV, &
191 hprogram,hinit,oland_use, &
194 pzenith,psw_bands,pdir_alb,psca_alb, &
195 pemis,ptsrad,ptsurf, &
199 IF (lhook) CALL dr_hook(
'INIT_SURF_LANDUSE_N',1,zhook_handle)
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
subroutine init_io_surf_n(DTCO, DGU, U, HPROGRAM, HMASK, HSCHEME, HACTION)
subroutine abor1_sfx(YTEXT)
subroutine set_vegtypes_fractions(DTCO, DGU, DTI, IG, I, UG, U, HPROGRAM)
subroutine end_io_surf_n(HPROGRAM)
subroutine init_surf_landuse_n(YSC, HPROGRAM, HINIT, OLAND_USE, KI, KSV, KSW, HSV, PCO2, PRHOA, PZENITH, PAZIM, PSW_BANDS, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, KYEAR, KMONTH, KDAY, PTIME, HATMFILE, HATMFILETYPE, HTEST)
subroutine compute_isba_parameters(DTCO, DGU, UG, U, IM, DST, SLT, SV, HPROGRAM, HINIT, OLAND_USE, KI, KSV, KSW, HSV, PCO2, PRHOA, PZENITH, PSW_BANDS, PDIR_ALB, PSCA_ALB, PEMIS, PTSRAD, PTSURF, HTEST)