Line data Source code
1 : module runtime_opts
2 :
3 : !-----------------------------------------------------------------------
4 : !
5 : ! Provide driver level routine for making calls to the namelist readers
6 : ! for the infrastructure and the dycore and physics parameterizations.
7 : !
8 : !-----------------------------------------------------------------------
9 :
10 : use shr_kind_mod, only: r8=>shr_kind_r8
11 :
12 : implicit none
13 : private
14 : save
15 :
16 : public :: read_namelist
17 :
18 : !=======================================================================
19 : contains
20 : !=======================================================================
21 :
22 1536 : subroutine read_namelist(nlfilename, single_column, scmlat, scmlon)
23 :
24 : use cam_initfiles, only: cam_initfiles_readnl
25 : use constituents, only: cnst_readnl
26 :
27 : use phys_grid, only: phys_grid_readnl
28 :
29 : use chem_surfvals, only: chem_surfvals_readnl
30 : use check_energy, only: check_energy_readnl
31 : use radiation, only: radiation_readnl
32 : use carma_flags_mod, only: carma_readnl
33 : use co2_cycle, only: co2_cycle_readnl
34 : use scamMod, only: scam_readnl
35 :
36 : use spmd_utils, only: spmd_utils_readnl
37 : use cam_history, only: history_readnl
38 : use physconst, only: physconst_readnl
39 : use air_composition, only: air_composition_readnl
40 : use physics_buffer, only: pbuf_readnl
41 : use phys_control, only: phys_ctl_readnl
42 : use wv_saturation, only: wv_sat_readnl
43 : use ref_pres, only: ref_pres_readnl
44 : use dadadj_cam, only: dadadj_readnl
45 : use macrop_driver, only: macrop_driver_readnl
46 : use microp_driver, only: microp_driver_readnl
47 : use microp_aero, only: microp_aero_readnl
48 : use subcol, only: subcol_readnl
49 : use cloud_fraction, only: cldfrc_readnl
50 : use cldfrc2m, only: cldfrc2m_readnl
51 : use rk_stratiform, only: rk_stratiform_readnl
52 : use unicon_cam, only: unicon_cam_readnl
53 : use zm_conv_intr, only: zm_conv_readnl
54 : use hk_conv, only: hkconv_readnl
55 : use uwshcu, only: uwshcu_readnl
56 : use pkg_cld_sediment, only: cld_sediment_readnl
57 : use gw_drag, only: gw_drag_readnl
58 : use qbo, only: qbo_readnl
59 : use iondrag, only: iondrag_readnl
60 : use waccmx_phys_intr, only: waccmx_phys_ion_elec_temp_readnl
61 : use phys_debug_util, only: phys_debug_readnl
62 : use conv_water, only: conv_water_readnl
63 : use rad_constituents, only: rad_cnst_readnl
64 : use radiation_data, only: rad_data_readnl
65 : use aerosol_optics_cam, only: aerosol_optics_cam_readnl
66 : use clubb_intr, only: clubb_readnl
67 : use chemistry, only: chem_readnl
68 : use prescribed_volcaero, only: prescribed_volcaero_readnl
69 : use prescribed_strataero,only: prescribed_strataero_readnl
70 : use aerodep_flx, only: aerodep_flx_readnl
71 : use solar_data, only: solar_data_readnl
72 : use tropopause, only: tropopause_readnl
73 : use aoa_tracers, only: aoa_tracers_readnl
74 : use prescribed_ozone, only: prescribed_ozone_readnl
75 : use prescribed_aero, only: prescribed_aero_readnl
76 : use prescribed_ghg, only: prescribed_ghg_readnl
77 : use aircraft_emit, only: aircraft_emit_readnl
78 : use cospsimulator_intr, only: cospsimulator_intr_readnl
79 : use vertical_diffusion, only: vd_readnl
80 : use rayleigh_friction, only: rayleigh_friction_readnl
81 :
82 : use cam_diagnostics, only: diag_readnl
83 : use radheat, only: radheat_readnl
84 : #if ( defined OFFLINE_DYN )
85 : use metdata, only: metdata_readnl
86 : #endif
87 : use offline_driver, only: offline_driver_readnl
88 : use inic_analytic_utils, only: analytic_ic_readnl
89 : use rate_diags, only: rate_diags_readnl
90 : use tracers, only: tracers_readnl
91 : use nudging, only: nudging_readnl
92 : #if ( defined SIMPLE )
93 : use frierson_cam, only: frierson_readnl
94 : #endif
95 :
96 : use dyn_comp, only: dyn_readnl
97 : use ionosphere_interface,only: ionosphere_readnl
98 : use qneg_module, only: qneg_readnl
99 : use lunar_tides, only: lunar_tides_readnl
100 : use hemco_interface, only: hemco_readnl
101 : use upper_bc, only: ubc_readnl
102 : use cam_budget, only: cam_budget_readnl
103 : use phys_grid_ctem, only: phys_grid_ctem_readnl
104 : use mo_lightning, only: lightning_readnl
105 :
106 : !---------------------------Arguments-----------------------------------
107 :
108 : character(len=*), intent(in) :: nlfilename
109 : logical, intent(in) :: single_column
110 : real(r8), intent(in) :: scmlat
111 : real(r8), intent(in) :: scmlon
112 :
113 : !---------------------------Local variables-----------------------------
114 : character(len=*), parameter :: subname = "read_namelist"
115 :
116 : !-----------------------------------------------------------------------
117 :
118 : ! Call subroutines for modules to read their own namelist.
119 : ! In some cases namelist default values may depend on settings from
120 : ! other modules, so there may be an order dependence in the following
121 : ! calls.
122 : ! ***N.B.*** In particular, physconst_readnl should be called before
123 : ! the other readnl methods in case that method is used to set
124 : ! physical constants, some of which are set at runtime
125 : ! by the physconst_readnl method.
126 : ! Modules that read their own namelist are responsible for making sure
127 : ! all processes receive the values.
128 :
129 1536 : call spmd_utils_readnl(nlfilename)
130 1536 : call phys_grid_readnl(nlfilename)
131 1536 : call air_composition_readnl(nlfilename)
132 1536 : call physconst_readnl(nlfilename)
133 : !++bee 13 Oct 2015, need to fix the pbuf_global_allocate functionality, then
134 : ! can uncomment the pbuf_readnl line
135 : ! call pbuf_readnl(nlfilename)
136 1536 : call cam_initfiles_readnl(nlfilename)
137 1536 : call cnst_readnl(nlfilename)
138 1536 : call history_readnl(nlfilename)
139 1536 : call chem_surfvals_readnl(nlfilename)
140 1536 : call ubc_readnl(nlfilename)
141 1536 : call phys_ctl_readnl(nlfilename)
142 1536 : call wv_sat_readnl(nlfilename)
143 1536 : call ref_pres_readnl(nlfilename)
144 1536 : call dadadj_readnl(nlfilename)
145 1536 : call macrop_driver_readnl(nlfilename)
146 1536 : call microp_driver_readnl(nlfilename)
147 1536 : call microp_aero_readnl(nlfilename)
148 1536 : call clubb_readnl(nlfilename)
149 1536 : call subcol_readnl(nlfilename)
150 1536 : call cldfrc_readnl(nlfilename)
151 1536 : call cldfrc2m_readnl(nlfilename)
152 1536 : call unicon_cam_readnl(nlfilename)
153 1536 : call zm_conv_readnl(nlfilename)
154 1536 : call rk_stratiform_readnl(nlfilename)
155 1536 : call hkconv_readnl(nlfilename)
156 1536 : call uwshcu_readnl(nlfilename)
157 1536 : call cld_sediment_readnl(nlfilename)
158 1536 : call gw_drag_readnl(nlfilename)
159 1536 : call qbo_readnl(nlfilename)
160 1536 : call lunar_tides_readnl(nlfilename)
161 1536 : call iondrag_readnl(nlfilename)
162 1536 : call waccmx_phys_ion_elec_temp_readnl(nlfilename)
163 1536 : call phys_debug_readnl(nlfilename)
164 1536 : call conv_water_readnl(nlfilename)
165 1536 : call radiation_readnl(nlfilename)
166 1536 : call rad_cnst_readnl(nlfilename)
167 1536 : call rad_data_readnl(nlfilename)
168 1536 : call aerosol_optics_cam_readnl(nlfilename)
169 1536 : call chem_readnl(nlfilename)
170 1536 : call lightning_readnl(nlfilename)
171 1536 : call prescribed_volcaero_readnl(nlfilename)
172 1536 : call prescribed_strataero_readnl(nlfilename)
173 1536 : call solar_data_readnl(nlfilename)
174 1536 : call carma_readnl(nlfilename)
175 1536 : call tropopause_readnl(nlfilename)
176 1536 : call aoa_tracers_readnl(nlfilename)
177 1536 : call tracers_readnl(nlfilename)
178 1536 : call aerodep_flx_readnl(nlfilename)
179 1536 : call prescribed_ozone_readnl(nlfilename)
180 1536 : call prescribed_aero_readnl(nlfilename)
181 1536 : call prescribed_ghg_readnl(nlfilename)
182 1536 : call co2_cycle_readnl(nlfilename)
183 1536 : call aircraft_emit_readnl(nlfilename)
184 1536 : call cospsimulator_intr_readnl(nlfilename)
185 1536 : call diag_readnl(nlfilename)
186 1536 : call check_energy_readnl(nlfilename)
187 1536 : call radheat_readnl(nlfilename)
188 1536 : call vd_readnl(nlfilename)
189 1536 : call rayleigh_friction_readnl(nlfilename)
190 : #if ( defined OFFLINE_DYN )
191 : call metdata_readnl(nlfilename)
192 : #endif
193 1536 : call offline_driver_readnl(nlfilename)
194 1536 : call analytic_ic_readnl(nlfilename)
195 1536 : call rate_diags_readnl(nlfilename)
196 1536 : call scam_readnl(nlfilename, single_column, scmlat, scmlon)
197 1536 : call nudging_readnl(nlfilename)
198 : #if ( defined SIMPLE )
199 : call frierson_readnl(nlfilename)
200 : #endif
201 :
202 1536 : call dyn_readnl(nlfilename)
203 1536 : call ionosphere_readnl(nlfilename)
204 1536 : call qneg_readnl(nlfilename)
205 1536 : call hemco_readnl(nlfilename)
206 1536 : call cam_budget_readnl(nlfilename)
207 1536 : call phys_grid_ctem_readnl(nlfilename)
208 :
209 1536 : end subroutine read_namelist
210 :
211 :
212 : !=======================================================================
213 :
214 : end module runtime_opts
|