8 PUNIF_WSNOW, PUNIF_RSNOW, &
9 PUNIF_TSNOW, PUNIF_LWCSNOW, &
11 PUNIF_SG1SNOW, PUNIF_SG2SNOW, &
12 PUNIF_HISTSNOW,PUNIF_AGESNOW, &
45 USE modd_data_cover_par
, ONLY : nvegtype
56 INTEGER,
INTENT(IN) :: KLUOUT
57 CHARACTER(LEN=10),
INTENT(IN) :: HSURF
58 REAL,
POINTER,
DIMENSION(:,:,:) :: PFIELD
60 LOGICAL,
INTENT(IN) :: OSNOW_IDEAL
61 REAL,
DIMENSION(:),
INTENT(IN) :: PUNIF_WSNOW
62 REAL,
DIMENSION(:),
INTENT(IN) :: PUNIF_RSNOW
63 REAL,
DIMENSION(:),
INTENT(IN) :: PUNIF_TSNOW
64 REAL,
DIMENSION(:),
INTENT(IN) :: PUNIF_LWCSNOW
65 REAL,
INTENT(IN) :: PUNIF_ASNOW
66 REAL,
DIMENSION(:),
INTENT(IN) :: PUNIF_SG1SNOW
67 REAL,
DIMENSION(:),
INTENT(IN) :: PUNIF_SG2SNOW
68 REAL,
DIMENSION(:),
INTENT(IN) :: PUNIF_HISTSNOW
69 REAL,
DIMENSION(:),
INTENT(IN) :: PUNIF_AGESNOW
70 INTEGER,
INTENT(IN) :: KLAYER
74 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: ZTSNOW, ZRSNOW
75 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: ZLWCSNOW
77 REAL,
DIMENSION(1) :: ZD
80 REAL(KIND=JPRB) :: ZHOOK_HANDLE
88 ALLOCATE(pfield(1,
SIZE(punif_wsnow),1))
89 ALLOCATE(ztsnow(1,
SIZE(punif_wsnow),1))
90 ALLOCATE(zrsnow(1,
SIZE(punif_wsnow),1))
91 ALLOCATE(zlwcsnow(1,
SIZE(punif_wsnow),1))
93 ALLOCATE(pfield(1,1,1))
94 ALLOCATE(ztsnow(1,1,1))
95 ALLOCATE(zrsnow(1,1,1))
96 ALLOCATE(zlwcsnow(1,1,1))
102 IF (any(punif_rsnow(:)==0. .AND. punif_wsnow(:)/=0.))
THEN 103 WRITE(kluout,*)
'XWSNOW/=0. AND RSNOW=0.' 104 CALL abor1_sfx(
'PREP_SNOW_UNIF: WITH XWSNOW/=0., RSNOW MUST NOT BE 0.')
110 SELECT CASE(hsurf(1:3))
113 IF (osnow_ideal)
THEN 114 pfield(1,:,1) = punif_wsnow(:)
116 pfield(1,:,1) = punif_wsnow(1)
120 IF (osnow_ideal)
THEN 121 pfield(1,:,1) = punif_wsnow(:)/punif_rsnow(:)
123 IF(punif_rsnow(1)>0.0)
THEN 124 zd(1)=punif_wsnow(1)/punif_rsnow(1)
132 IF (osnow_ideal)
THEN 133 pfield(1,:,1) = punif_rsnow(:)
135 pfield(1,:,1) = punif_rsnow(1)
139 pfield(1,:,1) = punif_asnow
142 IF (osnow_ideal)
THEN 143 pfield(1,:,1) = punif_tsnow(:)
145 pfield(1,:,1) = punif_tsnow(1)
150 IF (osnow_ideal)
THEN 151 pfield(1,:,1) = punif_sg1snow(:)
153 pfield(1,:,1) = punif_sg1snow(1)
157 IF (osnow_ideal)
THEN 158 pfield(1,:,1) = punif_sg2snow(:)
160 pfield(1,:,1) = punif_sg2snow(1)
164 IF (osnow_ideal)
THEN 165 pfield(1,:,1) = punif_histsnow(:)
167 pfield(1,:,1) = punif_histsnow(1)
171 IF (osnow_ideal)
THEN 172 pfield(1,:,1) = punif_agesnow(:)
174 pfield(1,:,1) = punif_agesnow(1)
186 IF (
lhook)
CALL dr_hook(
'PREP_SNOW_UNIF',1,zhook_handle)
character(len=6) cinterp_type
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)