1 | |
---|
2 | |
---|
3 | SUBROUTINE SISVAT_wEq( labWEq ,istart) |
---|
4 | |
---|
5 | ! +------------------------------------------------------------------------+ |
---|
6 | ! | MAR SISVAT_wEq 22-09-2001 MAR | |
---|
7 | ! | SubRoutine SISVAT_wEq computes the Snow/Ice Water Equivalent | |
---|
8 | ! | | |
---|
9 | ! | | |
---|
10 | ! | Preprocessing Option: SISVAT IO (not always a standard preprocess.) | |
---|
11 | ! | ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^ | |
---|
12 | ! | FILE | CONTENT | |
---|
13 | ! | ~~~~~~~~~~~~~~~~~~~~~+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
---|
14 | ! | # SISVAT_wEq.ve | #ve: OUTPUT/Verification: Snow/Ice Water Eqv. | |
---|
15 | ! | | unit 45, SubRoutine SISVAT_wEq **ONLY** | |
---|
16 | ! +------------------------------------------------------------------------+ |
---|
17 | |
---|
18 | |
---|
19 | |
---|
20 | |
---|
21 | ! +--Global Variables |
---|
22 | ! + ================ |
---|
23 | |
---|
24 | USE VARphy |
---|
25 | USE VAR_SV |
---|
26 | USE VARxSV |
---|
27 | |
---|
28 | IMPLICIT NONE |
---|
29 | |
---|
30 | |
---|
31 | |
---|
32 | CHARACTER(LEN=6) :: labWEq |
---|
33 | INTEGER :: istart |
---|
34 | |
---|
35 | LOGICAL :: logWEq |
---|
36 | common/SISVAT_wEq_L/logWEq |
---|
37 | |
---|
38 | |
---|
39 | ! +--Local Variables |
---|
40 | ! + ================ |
---|
41 | |
---|
42 | INTEGER :: ikl ,isn |
---|
43 | REAL :: SnoWEQ,IceWEQ |
---|
44 | |
---|
45 | |
---|
46 | ! +--Switch Initialization |
---|
47 | ! + ===================== |
---|
48 | |
---|
49 | IF (.NOT.logWEq) THEN |
---|
50 | logWEq = .TRUE. |
---|
51 | open(unit=45,status='unknown',file='SISVAT_wEq.ve') |
---|
52 | rewind 45 |
---|
53 | END IF |
---|
54 | |
---|
55 | |
---|
56 | ! +--Snow Water Equivalent |
---|
57 | ! + ===================== |
---|
58 | |
---|
59 | ikl = 1 |
---|
60 | IF (isnoSV(ikl)>iiceSV(ikl)) THEN |
---|
61 | |
---|
62 | SnoWEQ = 0. |
---|
63 | DO isn = iiceSV(ikl)+1 ,isnoSV(ikl) |
---|
64 | SnoWEQ = SnoWEQ + ro__SV(ikl,isn) * dzsnSV(ikl,isn) |
---|
65 | END DO |
---|
66 | |
---|
67 | END IF |
---|
68 | |
---|
69 | |
---|
70 | ! +--Ice Water Equivalent |
---|
71 | ! + ===================== |
---|
72 | |
---|
73 | IF (iiceSV(1)>0) THEN |
---|
74 | |
---|
75 | IceWEQ = 0. |
---|
76 | DO isn = 1 ,iiceSV(ikl) |
---|
77 | IceWEQ = IceWEQ + ro__SV(ikl,isn) * dzsnSV(ikl,isn) |
---|
78 | END DO |
---|
79 | |
---|
80 | END IF |
---|
81 | |
---|
82 | |
---|
83 | ! +--OUTPUT |
---|
84 | ! + ====== |
---|
85 | |
---|
86 | !! IF (istart.EQ.1) THEN |
---|
87 | !! WRITE(45,45)dahost,i___SV(lwriSV(1)),j___SV(lwriSV(1)), |
---|
88 | !! . n___SV(lwriSV(1)) |
---|
89 | !! 45 format(a18,10('-'),'Pt.',3i4,60('-')) |
---|
90 | !! END IF |
---|
91 | |
---|
92 | !! WRITE(45,450) labWEq,IceWEQ,iiceSV(ikl),SnoWEQ |
---|
93 | !! . ,IceWEQ+SnoWEQ,isnoSV(ikl) |
---|
94 | !! . ,drr_SV(ikl)*dt__SV |
---|
95 | !! . ,dsn_SV(ikl)*dt__SV |
---|
96 | !! . ,BufsSV(ikl) |
---|
97 | !! 450 format(a6,3x,' I+S =',f11.4,'(',i2,') +',f11.4,' =', |
---|
98 | !! . f11.4,'(',i2,')', |
---|
99 | !! . ' drr =', f7.4, |
---|
100 | !! . ' dsn =', f7.4, |
---|
101 | !! . ' Buf =', f7.4) |
---|
102 | |
---|
103 | |
---|
104 | END SUBROUTINE sisvat_weq |
---|