7 psoildepth,psoilgrid,kwg_layer )
48 USE yomhook
,ONLY : lhook, dr_hook
49 USE parkind1
,ONLY : jprb
56 CHARACTER(LEN=*),
INTENT(IN) :: hisba
57 REAL,
DIMENSION(:,:,:),
INTENT(OUT) :: pdg_out
59 REAL,
DIMENSION(:),
OPTIONAL,
INTENT(IN) :: psurf
60 REAL,
DIMENSION(:),
OPTIONAL,
INTENT(IN) :: psurf2
61 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(IN) :: prootdepth
62 REAL,
DIMENSION(:,:),
OPTIONAL,
INTENT(IN) :: psoildepth
63 REAL,
DIMENSION(:),
OPTIONAL,
INTENT(IN) :: psoilgrid
65 INTEGER,
DIMENSION(:,:),
OPTIONAL,
INTENT(OUT) :: kwg_layer
70 LOGICAL,
DIMENSION(SIZE(PDG_OUT,1)) :: lsurf
75 REAL(KIND=JPRB) :: zhook_handle
82 IF (lhook) CALL dr_hook(
'INI_DATA_SOIL',0,zhook_handle)
84 pdg_out(:,:,:) = xundef
93 IF (present(psurf2) .AND. present(psurf))
THEN
94 lsurf(:) = (psurf(:)==0. .AND. psurf2(:)==0.)
95 ELSEIF (present(psurf))
THEN
96 lsurf(:) = (psurf(:)==0.)
104 IF (hisba==
'2-L')
THEN
106 IF (.NOT.present(prootdepth)) CALL
abor1_sfx(
"INI_DATA_SOIL: FOR HISBA==2-L, PROOTDEPTH IS NEEDED")
108 DO jloop = 1,
SIZE(lsurf)
109 IF (lsurf(jloop)) cycle
110 WHERE(prootdepth(jloop,:) /= xundef)
111 pdg_out(jloop,1,:) = 0.01
112 pdg_out(jloop,2,:) = prootdepth(jloop,:)
122 IF (.NOT.present(psoildepth)) CALL
abor1_sfx(
"INI_DATA_SOIL: FOR HISBA/=2-L, PSOILDEPTH IS NEEDED")
124 IF (hisba==
'3-L')
THEN
126 IF (.NOT.present(prootdepth)) CALL
abor1_sfx(
"INI_DATA_SOIL: FOR HISBA==3-L, PROOTDEPTH IS NEEDED")
128 DO jloop = 1,
SIZE(lsurf)
129 IF (lsurf(jloop)) cycle
130 WHERE(psoildepth(jloop,:) /= xundef)
131 pdg_out(jloop,1,:) = 0.01
132 pdg_out(jloop,2,:) = prootdepth(jloop,:)
133 pdg_out(jloop,3,:) = psoildepth(jloop,:)
143 IF (.NOT.present(psoilgrid)) CALL
abor1_sfx(
"INI_DATA_SOIL: FOR HISBA==DIF, PSOILGRID IS NEEDED")
144 IF (.NOT.present(kwg_layer)) CALL
abor1_sfx(
"INI_DATA_SOIL: FOR HISBA==DIF, KWG_LAYER IS NEEDED")
146 CALL
soilgrid(psoilgrid,psoildepth,pdg_out,kwg_layer)
152 IF (lhook) CALL dr_hook(
'INI_DATA_SOIL',1,zhook_handle)
subroutine soilgrid(PSOILGRID, PSOILDEPTH, PDG, KWG_LAYER)
subroutine ini_data_soil(HISBA, PDG_OUT, PSURF, PSURF2, PROOTDEPTH, PSOILDEPTH, PSOILGRID, KWG_LAYER)
subroutine abor1_sfx(YTEXT)