1 |
|
2 |
#include "ctrparam.h" |
3 |
|
4 |
! ========================================================== |
5 |
! |
6 |
! TRVDATA.F: THIS SUBROUTINE CALCULATS TRANSIENT VDATA |
7 |
! |
8 |
! ========================================================== |
9 |
|
10 |
SUBROUTINE TRVDATA |
11 |
C**** 1502. |
12 |
C**** 1505. |
13 |
|
14 |
|
15 |
#include "ODIFF.COM" |
16 |
#include "BD2G04.COM" |
17 |
#include "RADCOM.COM" |
18 |
#include "run.COM" |
19 |
|
20 |
|
21 |
COMMON/SPEC2/KM,KINC,COEK,C3LAND(IO0,JM0),C3OICE(IO0,JM0) 1506.1 |
22 |
* ,C3LICE(IO0,JM0),WMGE(IO0,JM0),TSSFC(IM0,JM0,4) 1506.2 |
23 |
common/veg/TRVEG,IYVEG |
24 |
logical TRVEG |
25 |
dimension VMASK(JM0) |
26 |
JM=JM0 1531. |
27 |
IM=IM0 |
28 |
IO=IO0 1532.5 |
29 |
LM=LM0 1533. |
30 |
C**** READ IN EARTH RATIOS FOR THE 8 VEGETATION TYPES AND THE VADATA : 1816. |
31 |
C VADATA(TYPE,SEASON,1)=GROUND ALBEDO FOR A GIVEN TYPE AND SEASON 1817. |
32 |
C 1 2 3 4 5 6 7 8 1818. |
33 |
C DESRT TNDRA GRASS SHRUB TREES DECID EVERG RAINF 1819. |
34 |
C SPRN 0.35, 0.12, 0.16, 0.16, 0.14, 0.18, 0.12, 0.11, 1820. |
35 |
C SUMR 0.35, 0.12, 0.20, 0.18, 0.14, 0.12, 0.12, 0.11, 1821. |
36 |
C FALL 0.35, 0.17, 0.20, 0.25, 0.17, 0.15, 0.15, 0.11, 1822. |
37 |
C WNTR 0.35, 0.15, 0.18, 0.20, 0.12, 0.12, 0.11, 0.11/ 1823. |
38 |
C 1824. |
39 |
C VADATA(TYPE,SEASON,2)=RATIO OF NEAR IR ALBEDO TO VIS ALBEDO FOR...1825. |
40 |
C 1 2 3 4 5 6 7 8 1826. |
41 |
C DESRT TNDRA GRASS SHRUB TREES DECID EVERG RAINF 1827. |
42 |
C SPRN 1.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 3.0, 1828. |
43 |
C SUMR 1.0, 3.3, 3.5, 3.0, 3.3, 4.0, 3.0, 3.0, 1829. |
44 |
C FALL 1.0, 3.5, 4.0, 3.0, 3.5, 5.0, 3.0, 3.0, 1830. |
45 |
C WNTR 1.0, 3.2, 3.5, 3.0, 3.2, 4.0, 3.0, 3.0/ 1831. |
46 |
C 1832. |
47 |
C VADATA(TYPE,1,3)=MASKING DEPTH FOR A GIVEN TYPE 1833. |
48 |
C 1834. |
49 |
C 1 2 3 4 5 6 7 8 1835. |
50 |
C DESRT TNDRA GRASS SHRUB TREES DECID EVERG RAINF 1836. |
51 |
C 10., 20., 20., 50., 200., 500., 1000., 2500., 1837. |
52 |
C 1838. |
53 |
C VADATA(TYPE,1+K,3)=WATER FIELD CAPACITY FOR K-TH GROUND LAYER 1839. |
54 |
C 1840. |
55 |
C 1 10., 30., 30., 30., 30., 30., 30., 200., 1841. |
56 |
C 2 10., 200., 200., 300., 300., 450., 450., 450., 1842. |
57 |
C (3) 0., 0., 0., 0., 0., 0., 0., 0./ 1843. |
58 |
C 1844. |
59 |
READ (523) IYVEG |
60 |
764 READ (523) (((VDATA(I,J,K),I=1,IO),J=1,JM),K=1,8) |
61 |
print *,' From trvdata iyveg=',iyveg |
62 |
c print *,'VADATA' |
63 |
c do k=1,3 |
64 |
c print *,' K=',k |
65 |
c print '(8f7.2)',((VADATA(I,J,K),I=1,8),J=1,4) |
66 |
c enddo |
67 |
C**** MODIFY THE VADATA IF DESIRED 1847. |
68 |
C NO MODIFICATIONS 1848. |
69 |
C**** COMPUTE WATER FIELD CAPACITIES FOR GROUND LAYERS 1 AND 2 1849. |
70 |
IOFF=0 1849.1 |
71 |
IF(VADATA(4,2,3).LT.100.) IOFF=1 1849.2 |
72 |
ERROR=.001 1849.3 |
73 |
DEFLT=24. 1850. |
74 |
DO 785 L=1,2 1851. |
75 |
DO 780 J=1,JM 1852. |
76 |
DO 780 I=1,IO 1853. |
77 |
WFCIJL=0. 1854. |
78 |
DO 770 K=1,8 1855. |
79 |
770 WFCIJL=WFCIJL+VDATA(I,J,K)*VADATA(K,L+IOFF,3) 1856. |
80 |
IF (WFCIJL.LT.1.) WFCIJL=DEFLT 1857. |
81 |
IF(ISTART.NE.2) GO TO 780 |
82 |
IF(GDATA(I,J,4*L+1)+GDATA(I,J,4*L+2).LE.WFCIJL) GO TO 780 1858. |
83 |
X=WFCIJL/(GDATA(I,J,4*L+1)+GDATA(I,J,4*L+2)+1.E-3) 1859. |
84 |
GDATA(I,J,4*L+1)=GDATA(I,J,4*L+1)*X 1860. |
85 |
GDATA(I,J,4*L+2)=GDATA(I,J,4*L+2)*X 1861. |
86 |
780 VDATA(I,J,L+8)=WFCIJL 1862. |
87 |
DEFLT=60. 1863. |
88 |
785 CONTINUE 1864. |
89 |
DO 765 K=1,10 1864.5 |
90 |
DO 765 J=2,JMM1 1864.51 |
91 |
CONT1=0. 1864.52 |
92 |
SUM1=0. 1864.53 |
93 |
DO 766 I=1,IO 1864.54 |
94 |
PEARTH=C3LAND(I,J)-C3LICE(I,J) 1864.55 |
95 |
CONT1=CONT1+PEARTH 1864.56 |
96 |
766 SUM1=SUM1+PEARTH*VDATA(I,J,K) 1864.57 |
97 |
IF (CONT1.LE.0.) GO TO 765 1864.58 |
98 |
SUM1=SUM1/CONT1 1864.59 |
99 |
DO 767 I=1,IO 1864.6 |
100 |
767 VDATA(I,J,K)=SUM1 1864.61 |
101 |
765 CONTINUE 1864.62 |
102 |
c print *,' BEAR LAND' |
103 |
c print '(12f7.2,/,11f7.2)',(VDATA(1,j,1),j=1,JM) |
104 |
c print *,' TRVDATA' |
105 |
c print *,' WMAX1' |
106 |
c print '(12f7.2,/,11f7.2)',(VDATA(1,j,9),j=1,JM) |
107 |
c print *,' WMAX2' |
108 |
c print '(12f7.2,/,11f7.2)',(VDATA(1,j,10),j=1,JM) |
109 |
C ************* |
110 |
DO K=1,8 |
111 |
c VADATA(K,4,3)=0.1*VADATA(K,4,3) |
112 |
VADATA(K,4,3)=VADATA(K,3,3) |
113 |
ENDDO |
114 |
DO J=1,JM |
115 |
CONT1=0. |
116 |
SUM1=0. |
117 |
DO I=1,IO |
118 |
WFCIJL=0. |
119 |
PEARTH=C3LAND(I,J)-C3LICE(I,J) |
120 |
CONT1=CONT1+PEARTH |
121 |
SUM1=SUM1+PEARTH*WFCIJL |
122 |
DO K=1,8 |
123 |
WFCIJL=WFCIJL+VDATA(I,J,K)*VADATA(K,4,3) |
124 |
ENDDO ! K |
125 |
SUM1=SUM1+PEARTH*WFCIJL |
126 |
ENDDO ! I |
127 |
IF (CONT1.LE.0.) GO TO 865 |
128 |
SUM1=SUM1/CONT1 |
129 |
VMASK(J)=SUM1 |
130 |
865 CONTINUE |
131 |
ENDDO ! J |
132 |
c print *,' VMASK form NP to SP in meters of water' |
133 |
c print '(12f7.2,/11f7.2)',(VMASK(jm-j+1),j=1,JM) |
134 |
C ************ |
135 |
return |
136 |
END 1923. |