noah  1.13.0
All Namespaces Files Functions Pages
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
22  public set_soilveg_noahmp
23 
24 contains
25 
34 subroutine 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 
96 end subroutine set_soilveg_noah
97 
106 subroutine set_soilveg_noahmp(isot,ivet, maxsmc, bb, satpsi,iret)
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
141 end subroutine set_soilveg_noahmp
142 
143 end module set_soilveg_snippet_mod
subroutine, public set_soilveg_noah(isot, ivet, maxsmc, bb, satpsi, iret)
This subroutine initializes soil and vegetation parameters needed in global_cycle/land_increment.f90.
subroutine, public set_soilveg_noahmp(isot, ivet, maxsmc, bb, satpsi, iret)
This subroutine initializes soil and vegetation parameters needed in global_cycle/land_increment.f90 for noah-mp.
Below was extracted from namelist_soilveg.f and set_soilveg.f (couldn't get above to compile for doxy...