8 punif_wsnow, punif_rsnow, &
9 punif_tsnow, punif_lwcsnow, &
11 punif_sg1snow, punif_sg2snow, &
12 punif_histsnow,punif_agesnow, &
50 USE yomhook
,ONLY : lhook, dr_hook
51 USE parkind1
,ONLY : jprb
59 INTEGER,
INTENT(IN) :: kluout
60 CHARACTER(LEN=10),
INTENT(IN) :: hsurf
61 REAL,
POINTER,
DIMENSION(:,:,:) :: pfield
63 LOGICAL,
INTENT(IN) :: osnow_ideal
64 REAL,
DIMENSION(:),
INTENT(IN) :: punif_wsnow
65 REAL,
DIMENSION(:),
INTENT(IN) :: punif_rsnow
66 REAL,
DIMENSION(:),
INTENT(IN) :: punif_tsnow
67 REAL,
DIMENSION(:),
INTENT(IN) :: punif_lwcsnow
68 REAL,
INTENT(IN) :: punif_asnow
69 REAL,
DIMENSION(:),
INTENT(IN) :: punif_sg1snow
70 REAL,
DIMENSION(:),
INTENT(IN) :: punif_sg2snow
71 REAL,
DIMENSION(:),
INTENT(IN) :: punif_histsnow
72 REAL,
DIMENSION(:),
INTENT(IN) :: punif_agesnow
73 INTEGER,
INTENT(IN) :: klayer
77 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: ztsnow, zrsnow
78 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: zlwcsnow
80 REAL,
DIMENSION(1) :: zd
83 REAL(KIND=JPRB) :: zhook_handle
88 IF (lhook) CALL dr_hook(
'PREP_SNOW_UNIF',0,zhook_handle)
91 ALLOCATE(pfield(1,
SIZE(punif_wsnow),nvegtype))
92 ALLOCATE(ztsnow(1,
SIZE(punif_wsnow),nvegtype))
93 ALLOCATE(zrsnow(1,
SIZE(punif_wsnow),nvegtype))
94 ALLOCATE(zlwcsnow(1,
SIZE(punif_wsnow),nvegtype))
96 IF(hsurf(1:3)==
'DEP')
THEN
97 ALLOCATE(pfield(1,klayer,nvegtype))
99 ALLOCATE(pfield(1,ngrid_level,nvegtype))
101 ALLOCATE(ztsnow(1,ngrid_level,nvegtype))
102 ALLOCATE(zrsnow(1,ngrid_level,nvegtype))
103 ALLOCATE(zlwcsnow(1,ngrid_level,nvegtype))
109 IF (any(punif_rsnow(:)==0. .AND. punif_wsnow(:)/=0.))
THEN
110 WRITE(kluout,*)
'XWSNOW/=0. AND RSNOW=0.'
111 CALL
abor1_sfx(
'PREP_SNOW_UNIF: WITH XWSNOW/=0., RSNOW MUST NOT BE 0.')
117 SELECT CASE(hsurf(1:3))
120 IF (osnow_ideal)
THEN
121 DO jvegtype=1,nvegtype
122 pfield(1,:,jvegtype) = punif_wsnow(:)
125 DO jvegtype=1,nvegtype
126 pfield(1,:,jvegtype) = punif_wsnow(1)
131 IF (osnow_ideal)
THEN
132 DO jvegtype=1,nvegtype
133 pfield(1,:,jvegtype) = punif_wsnow(:)/punif_rsnow(:)
136 IF(punif_rsnow(1)>0.0)
THEN
137 zd(1)=punif_wsnow(1)/punif_rsnow(1)
141 DO jvegtype=1,nvegtype
147 IF (osnow_ideal)
THEN
148 DO jvegtype=1,nvegtype
149 pfield(1,:,jvegtype) = punif_rsnow(:)
152 DO jvegtype=1,nvegtype
153 pfield(1,:,jvegtype) = punif_rsnow(1)
158 DO jvegtype=1,nvegtype
159 pfield(1,:,jvegtype) = punif_asnow
163 IF (osnow_ideal)
THEN
164 DO jvegtype=1,nvegtype
165 zrsnow(1,:,jvegtype) = punif_rsnow(:)
166 ztsnow(1,:,jvegtype) = punif_tsnow(:)
167 zlwcsnow(1,:,jvegtype) = punif_lwcsnow(:)
170 DO jvegtype=1,nvegtype
171 zrsnow(1,:,jvegtype) = punif_rsnow(1)
172 ztsnow(1,:,jvegtype) = punif_tsnow(1)
173 zlwcsnow(1,:,jvegtype) = punif_lwcsnow(1)
179 IF (osnow_ideal)
THEN
180 DO jvegtype=1,nvegtype
181 pfield(1,:,jvegtype) = punif_sg1snow(:)
184 DO jvegtype=1,nvegtype
185 pfield(1,:,jvegtype) = punif_sg1snow(1)
190 IF (osnow_ideal)
THEN
191 DO jvegtype=1,nvegtype
192 pfield(1,:,jvegtype) = punif_sg2snow(:)
195 DO jvegtype=1,nvegtype
196 pfield(1,:,jvegtype) = punif_sg2snow(1)
201 IF (osnow_ideal)
THEN
202 DO jvegtype=1,nvegtype
203 pfield(1,:,jvegtype) = punif_histsnow(:)
206 DO jvegtype=1,nvegtype
207 pfield(1,:,jvegtype) = punif_histsnow(1)
212 IF (osnow_ideal)
THEN
213 DO jvegtype=1,nvegtype
214 pfield(1,:,jvegtype) = punif_agesnow(:)
217 DO jvegtype=1,nvegtype
218 pfield(1,:,jvegtype) = punif_agesnow(1)
231 IF (lhook) CALL dr_hook(
'PREP_SNOW_UNIF',1,zhook_handle)
subroutine abor1_sfx(YTEXT)
subroutine prep_snow_unif(KLUOUT, HSURF, PFIELD, TPTIME, OSNOW_IDEAL, PUNIF_WSNOW, PUNIF_RSNOW, PUNIF_TSNOW, PUNIF_LWCSNOW, PUNIF_ASNOW, PUNIF_SG1SNOW, PUNIF_SG2SNOW, PUNIF_HISTSNOW, PUNIF_AGESNOW, KLAYER)