noah 1.14.0
Loading...
Searching...
No Matches
set_soilveg_snippet.f90
Go to the documentation of this file.
1
4
7
14
16
17 implicit none
18
19 private
20
21 public set_soilveg_noah
23
24contains
25
34subroutine set_soilveg_noah(isot,ivet, maxsmc, bb, satpsi, iret)
35 implicit none
36
37 integer, intent(in) :: isot,ivet
38 real, dimension(30), intent(out) :: maxsmc, bb, satpsi
39 integer, intent(out) :: iret
40
41! set vegetation-dependent params (May 2021, UFS uses ivet=1)
42! Draper, not needed for now, but might need SNUPX
43! for SWE-> SCF calculation later
44!
45! if(ivet.eq.1)then
46
47 !defined_veg=20
48! might want this later
49 ! SNUPX =(/0.080, 0.080, 0.080, 0.080, 0.080, 0.020,
50 !* 0.020, 0.060, 0.040, 0.020, 0.010, 0.020,
51 !* 0.020, 0.020, 0.013, 0.013, 0.010, 0.020,
52 !& 0.020, 0.020, 0.000, 0.000, 0.000, 0.000,
53 !& 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
54
55! endif
56
57! set soil-dependent params (May 2021, UFS uses isot=1)
58
59 if (isot .eq. 1) then
60
61! using stasgo table
62 bb =(/4.05, 4.26, 4.74, 5.33, 5.33, 5.25, &
63 6.77, 8.72, 8.17, 10.73, 10.39, 11.55,&
64 5.25, 4.26, 4.05, 4.26, 11.55, 4.05, &
65 4.05, 0.00, 0.00, 0.00, 0.00, 0.00, &
66 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
67! Draper, these are provided for reference only, and
68! may be useful for later SMC updates
69! DRYSMC=(/0.010, 0.025, 0.010, 0.010, 0.010, 0.010,
70! & 0.010, 0.010, 0.010, 0.010, 0.010, 0.010,
71! & 0.010, 0.010, 0.010, 0.010, 0.010, 0.010,
72! & 0.010, 0.000, 0.000, 0.000, 0.000, 0.000,
73! & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
74
75 maxsmc=(/0.395, 0.421, 0.434, 0.476, 0.476, 0.439, &
76 0.404, 0.464, 0.465, 0.406, 0.468, 0.457, &
77 0.464, 0.421, 0.200, 0.421, 0.457, 0.200, &
78 0.395, 0.000, 0.000, 0.000, 0.000, 0.000, &
79 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
80
81 satpsi=(/0.035, 0.0363, 0.1413, 0.7586, 0.7586, 0.3548, &
82 0.1349, 0.6166, 0.2630, 0.0977, 0.3236, 0.4677,&
83 0.3548, 0.0363, 0.0350, 0.0363, 0.4677, 0.0350,&
84 0.0350, 0.00, 0.00, 0.00, 0.00, 0.00, &
85 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
86
87 !defined_soil=19
88 else
89 print *, 'set_soilveg_snippet not coded for soil type ', isot
90 iret = -1
91 return
92 endif
93
94 iret = 0
95
96end subroutine set_soilveg_noah
97
106subroutine set_soilveg_noahmp(isot,ivet, maxsmc, bb, satpsi,iret)
107
108 implicit none
109
110 integer, intent(in) :: isot,ivet !ivet is *not* used for now
111 real, dimension(30), intent(out) :: maxsmc, bb, satpsi
112 integer, intent(out) :: iret
113
114 if (isot .eq. 1) then
115
116! set soil-dependent params (STATSGO is the only option for UFS, 07/13/2023)
117 maxsmc= (/0.339, 0.421, 0.434, 0.476, 0.484,&
118 & 0.439, 0.404, 0.464, 0.465, 0.406, 0.468, 0.468, &
119 & 0.439, 1.000, 0.200, 0.421, 0.468, 0.200, &
120 & 0.339, 0.339, 0.000, 0.000, 0.000, 0.000, &
121 & 0.000, 0.000, 0.000, 0.000, 0.000, 0.000/)
122 bb= (/2.79, 4.26, 4.74, 5.33, 3.86, 5.25,&
123 & 6.77, 8.72, 8.17, 10.73, 10.39, 11.55, &
124 & 5.25, 0.0, 2.79, 4.26, 11.55, 2.79, &
125 & 2.79, 0.00, 0.00, 0.00, 0.00, 0.00, &
126 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
127 satpsi= (/0.069, 0.036, 0.141, 0.759, 0.955, &
128 & 0.355, 0.135, 0.617, 0.263, 0.098, 0.324, 0.468, &
129 & 0.355, 0.00, 0.069, 0.036, 0.468, 0.069, &
130 & 0.069, 0.00, 0.00, 0.00, 0.00, 0.00, &
131 & 0.00, 0.00, 0.00, 0.00, 0.00, 0.00/)
132
133 else
134 print*, 'For Noah-MP, set_soilveg is not supported for soil type ', isot
135 iret = -1
136 return
137
138 endif
139
140 iret = 0
141end subroutine set_soilveg_noahmp
142
Below was extracted from namelist_soilveg.f and set_soilveg.f (couldn't get above to compile for doxy...
subroutine, public set_soilveg_noahmp(isot, ivet, maxsmc, bb, satpsi, iret)
This subroutine initializes soil and vegetation parameters needed in global_cycle/land_increment....
subroutine, public set_soilveg_noah(isot, ivet, maxsmc, bb, satpsi, iret)
This subroutine initializes soil and vegetation parameters needed in global_cycle/land_increment....