Line data Source code
1 : !-----------------------------------------------------------------------
2 : ! $Id$
3 : !===============================================================================
4 :
5 : module stats_rad_zm_module
6 :
7 : implicit none
8 :
9 : private ! Default Scope
10 :
11 : public :: stats_init_rad_zm
12 :
13 : ! Constant parameters
14 : integer, parameter, public :: nvarmax_rad_zm = 250 ! Maximum variables allowed
15 :
16 : contains
17 :
18 : !-----------------------------------------------------------------------
19 0 : subroutine stats_init_rad_zm( vars_rad_zm, & ! intent(in)
20 : l_error, & ! intent(in)
21 : stats_metadata, stats_rad_zm ) ! intent(inout)
22 :
23 : ! Description:
24 : ! Initializes array indices for stats_rad_zm variables
25 : !-----------------------------------------------------------------------
26 :
27 : use constants_clubb, only: &
28 : fstderr ! Constant(s)
29 :
30 : use stats_type_utilities, only: &
31 : stat_assign ! Procedure
32 :
33 : use stats_type, only: &
34 : stats ! Type
35 :
36 : use stats_variables, only: &
37 : stats_metadata_type
38 :
39 : implicit none
40 :
41 : !------------------------ Input Variable ------------------------
42 : character(len= * ), dimension(nvarmax_rad_zm), intent(in) :: vars_rad_zm
43 :
44 : !--------------------- InOut Variables ---------------------
45 : type (stats), target, intent(inout) :: &
46 : stats_rad_zm
47 :
48 : type (stats_metadata_type), intent(inout) :: &
49 : stats_metadata
50 :
51 : logical, intent(inout) :: l_error
52 :
53 : !------------------------ Local Varables ------------------------
54 : integer :: i, k
55 :
56 : !------------------------ Begin Code ------------------------
57 :
58 : ! Default initialization for array indices for stats_rad_zm
59 :
60 0 : stats_metadata%iFrad_LW_rad = 0
61 0 : stats_metadata%iFrad_SW_rad = 0
62 0 : stats_metadata%iFrad_SW_up_rad = 0
63 0 : stats_metadata%iFrad_LW_up_rad = 0
64 0 : stats_metadata%iFrad_SW_down_rad = 0
65 0 : stats_metadata%iFrad_LW_down_rad = 0
66 :
67 0 : stats_metadata%ifulwcl = 0
68 0 : stats_metadata%ifdlwcl = 0
69 0 : stats_metadata%ifdswcl = 0
70 0 : stats_metadata%ifuswcl = 0
71 :
72 : ! Assign pointers for statistics variables stats_rad_zm
73 :
74 0 : k = 1
75 0 : do i=1,stats_rad_zm%num_output_fields
76 :
77 0 : select case ( trim(vars_rad_zm(i)) )
78 :
79 : case('fulwcl')
80 0 : stats_metadata%ifulwcl = k
81 : call stat_assign( var_index=stats_metadata%ifulwcl, var_name="fulwcl", & ! intent(in)
82 : var_description="Upward clear-sky LW flux [W/m^2]", var_units="W/m^2", & ! intent(in)
83 : l_silhs=.false., & ! intent(in)
84 0 : grid_kind=stats_rad_zm ) ! intent(inout)
85 0 : k = k + 1
86 :
87 : case( 'fdlwcl' )
88 0 : stats_metadata%ifdlwcl = k
89 : call stat_assign( var_index=stats_metadata%ifdlwcl, var_name="fdlwcl", & ! intent(in)
90 : var_description="Downward clear-sky LW flux [W/m^2]", var_units="W/m^2", & !intent(in)
91 : l_silhs=.false., & ! intent(in)
92 0 : grid_kind=stats_rad_zm ) ! intent(inout)
93 0 : k = k + 1
94 :
95 : case( 'fdswcl' )
96 0 : stats_metadata%ifdswcl = k
97 : call stat_assign( var_index=stats_metadata%ifdswcl, var_name="fdswcl", & ! intent(in)
98 : var_description="Downward clear-sky SW flux [W/m^2]", var_units="W/m^2", & !intent(in)
99 : l_silhs=.false., & ! intent(in)
100 0 : grid_kind=stats_rad_zm ) ! intent(inout)
101 0 : k = k + 1
102 :
103 : case( 'fuswcl' )
104 0 : stats_metadata%ifuswcl = k
105 : call stat_assign( var_index=stats_metadata%ifuswcl, var_name="fuswcl", & ! intent(in)
106 : var_description="Upward clear-sky SW flux [W/m^2]", var_units="W/m^2", & ! intent(in)
107 : l_silhs=.false., & ! intent(in)
108 0 : grid_kind=stats_rad_zm ) ! intent(inout)
109 0 : k = k + 1
110 :
111 : case ('Frad_LW_rad')
112 0 : stats_metadata%iFrad_LW_rad = k
113 :
114 : call stat_assign( var_index=stats_metadata%iFrad_LW_rad, var_name="Frad_LW_rad", & ! intent(in)
115 : var_description="Net long-wave radiative flux [W/m^2]", var_units="W/m^2", & ! In
116 : l_silhs=.false., & ! intent(in)
117 0 : grid_kind=stats_rad_zm ) ! intent(inout)
118 0 : k = k + 1
119 :
120 : case ('Frad_SW_rad')
121 0 : stats_metadata%iFrad_SW_rad = k
122 :
123 : call stat_assign( var_index=stats_metadata%iFrad_SW_rad, var_name="Frad_SW_rad", & ! intent(in)
124 : var_description="Net short-wave radiative flux [W/m^2]", var_units="W/m^2", & ! In
125 : l_silhs=.false., & ! intent(in)
126 0 : grid_kind=stats_rad_zm ) ! intent(inout)
127 0 : k = k + 1
128 :
129 : case ('Frad_SW_up_rad')
130 0 : stats_metadata%iFrad_SW_up_rad = k
131 :
132 : call stat_assign( var_index=stats_metadata%iFrad_SW_up_rad, var_name="Frad_SW_up_rad", & ! intent(in)
133 : var_description="Short-wave upwelling radiative flux [W/m^2]", var_units="W/m^2", &!In
134 : l_silhs=.false., & ! intent(in)
135 0 : grid_kind=stats_rad_zm ) ! intent(inout)
136 0 : k = k + 1
137 :
138 : case ('Frad_LW_up_rad')
139 0 : stats_metadata%iFrad_LW_up_rad = k
140 :
141 : call stat_assign( var_index=stats_metadata%iFrad_LW_up_rad, var_name="Frad_LW_up_rad", & ! intent(in)
142 : var_description="Long-wave upwelling radiative flux [W/m^2]", var_units="W/m^2", &!In
143 : l_silhs=.false., & ! intent(in)
144 0 : grid_kind=stats_rad_zm ) ! intent(inout)
145 0 : k = k + 1
146 :
147 : case ('Frad_SW_down_rad')
148 0 : stats_metadata%iFrad_SW_down_rad = k
149 :
150 : call stat_assign( var_index=stats_metadata%iFrad_SW_down_rad, var_name="Frad_SW_down_rad", & ! intent(in)
151 : var_description="Short-wave downwelling radiative flux [W/m^2]", & ! intent(in)
152 : var_units="W/m^2", & ! intent(in)
153 : l_silhs=.false., & ! intent(in)
154 0 : grid_kind=stats_rad_zm ) ! intent(inout)
155 0 : k = k + 1
156 :
157 : case ('Frad_LW_down_rad')
158 0 : stats_metadata%iFrad_LW_down_rad = k
159 :
160 : call stat_assign( var_index=stats_metadata%iFrad_LW_down_rad, var_name="Frad_LW_down_rad", & ! intent(in)
161 : var_description="Long-wave downwelling radiative flux [W/m^2]", & ! intent(in)
162 : var_units="W/m^2", & ! intent(in)
163 : l_silhs=.false., & ! intent(in)
164 0 : grid_kind=stats_rad_zm ) ! intent(inout)
165 0 : k = k + 1
166 :
167 : case default
168 :
169 0 : write(fstderr,*) 'Error: unrecognized variable in vars_rad_zm: ', trim( vars_rad_zm(i) )
170 :
171 0 : l_error = .true. ! This will stop the run.
172 :
173 :
174 : end select
175 :
176 : end do
177 :
178 0 : return
179 : end subroutine stats_init_rad_zm
180 :
181 : end module stats_rad_zm_module
|