37 USE yomhook
,ONLY : lhook, dr_hook
38 USE parkind1
,ONLY : jprb
46 REAL(KIND=JPRB) :: zhook_handle
50 IF (lhook) CALL dr_hook(
'MKFLAG_SNOW',0,zhook_handle)
51 IF (tpsnow%SCHEME==
'NON' .AND. lhook) CALL dr_hook(
'MKFLAG_SNOW',1,zhook_handle)
52 IF (tpsnow%SCHEME==
'NON')
RETURN
54 DO jpatch =1,
SIZE(tpsnow%WSNOW,3)
56 IF (tpsnow%SCHEME==
'D95' .OR. tpsnow%SCHEME==
'EBA' .OR. tpsnow%SCHEME==
'1-L' .OR. tpsnow%SCHEME==
'3-L' &
57 .OR. tpsnow%SCHEME==
'CRO')
THEN
58 DO jlayer=1,tpsnow%NLAYER
59 WHERE ( tpsnow%RHO(:,1,jpatch)== xundef .AND. tpsnow%WSNOW(:,jlayer,jpatch) > 0.0 .AND. tpsnow%WSNOW(:,1,jpatch)/= xundef )
60 tpsnow%WSNOW(:,jlayer,jpatch) = 0.0
65 IF (tpsnow%SCHEME==
'1-L')
THEN
66 DO jlayer=1,tpsnow%NLAYER
67 WHERE ( tpsnow%WSNOW(:,1,jpatch)==0. .OR. tpsnow%WSNOW(:,1,jpatch)== xundef )
68 tpsnow%T(:,jlayer,jpatch) = xundef
73 IF (tpsnow%SCHEME==
'D95' .OR. tpsnow%SCHEME==
'EBA' .OR. tpsnow%SCHEME==
'1-L' .OR. tpsnow%SCHEME==
'3-L' &
74 .OR. tpsnow%SCHEME==
'CRO')
THEN
75 DO jlayer=1,tpsnow%NLAYER
76 WHERE ( tpsnow%WSNOW(:,1,jpatch)==0. .OR. tpsnow%WSNOW(:,1,jpatch)== xundef )
77 tpsnow%RHO(:,jlayer,jpatch) = xundef
82 IF (tpsnow%SCHEME==
'3-L' .OR. tpsnow%SCHEME==
'CRO')
THEN
83 DO jlayer=1,tpsnow%NLAYER
84 WHERE ( tpsnow%WSNOW(:,1,jpatch)==0. .OR. tpsnow%WSNOW(:,1,jpatch)== xundef )
85 tpsnow%HEAT(:,jlayer,jpatch) = xundef
86 tpsnow%AGE (:,jlayer,jpatch) = xundef
91 IF (tpsnow%SCHEME==
'CRO')
THEN
92 DO jlayer=1,tpsnow%NLAYER
93 WHERE ( tpsnow%WSNOW(:,1,jpatch)==0. .OR. tpsnow%WSNOW(:,1,jpatch)== xundef )
94 tpsnow%GRAN1(:,jlayer,jpatch) = xundef
95 tpsnow%GRAN2(:,jlayer,jpatch) = xundef
96 tpsnow%HIST(:,jlayer,jpatch) = xundef
101 IF (tpsnow%SCHEME==
'D95' .OR. tpsnow%SCHEME==
'EBA' .OR. tpsnow%SCHEME==
'1-L' .OR. tpsnow%SCHEME==
'3-L' &
102 .OR. tpsnow%SCHEME==
'CRO')
THEN
103 WHERE ( tpsnow%WSNOW(:,1,jpatch)==0. .OR. tpsnow%WSNOW(:,1,jpatch)== xundef )
104 tpsnow%ALB(:,jpatch) = xundef
105 tpsnow%ALBVIS(:,jpatch) = xundef
106 tpsnow%ALBNIR(:,jpatch) = xundef
107 tpsnow%ALBFIR(:,jpatch) = xundef
111 IF (tpsnow%SCHEME==
'1-L')
THEN
112 WHERE ( tpsnow%WSNOW(:,1,jpatch)==0. .OR. tpsnow%WSNOW(:,1,jpatch)== xundef )
113 tpsnow%EMIS(:,jpatch) = xundef
117 IF (tpsnow%SCHEME==
'1-L')
THEN
118 WHERE ( tpsnow%WSNOW(:,1,jpatch)==0. .OR. tpsnow%WSNOW(:,1,jpatch)== xundef )
119 tpsnow%TS(:,jpatch) = xundef
124 IF (lhook) CALL dr_hook(
'MKFLAG_SNOW',1,zhook_handle)
subroutine mkflag_snow(TPSNOW)