1 !***********************************************************************
2 !* GNU Lesser General Public License
4 !* This file is part of the GFDL Flexible Modeling System (FMS).
6 !* FMS is free software: you can redistribute it and/or modify it under
7 !* the terms of the GNU Lesser General Public License as published by
8 !* the Free Software Foundation, either version 3 of the License, or (at
9 !* your option) any later version.
11 !* FMS is distributed in the hope that it will be useful, but WITHOUT
12 !* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 !* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 !* You should have received a copy of the GNU Lesser General Public
17 !* License along with FMS. If not, see <http://www.gnu.org/licenses/>.
18 !***********************************************************************
21 !> @brief A convenience module to use any FMS routines, functions, values
22 !> @author Ryan Mulhall
26 !! Imports all supported FMS modules so that any public interfaces,
27 !! variables or routines can be used via this module. Excludes mpp_io modules
28 !! and routines. Overloaded type operators/assignments cannot be imported individually
29 !! (ie. `use fms, only: OPERATOR(*)` includes any defined '*' operators within FMS).
32 !! Routines and variables: fms_<module_name>_routine_name
33 !! Types: FmsModuleNameTypeName
35 !! Exceptions (mainly for rep:
36 !! - Parameter values are kept their original names
37 !! - If module name is already included (like in init routines) only fms prefix will be added.
38 !! - Similarly if theres a redundant module name included already included it will not be repeated
39 !! (ie. mpp_update_domains => fms_mpp_domains_update_domains)
40 !! - Override interfaces for operators and assignment are provided
42 !! Remappings due to name conflicts:
44 !! ZERO from interpolator_mod(mpp_parameter) => INTERPOLATOR_ZERO
46 !! version from fms_mod => version_FMS
48 !! Not in this module:
50 !! axis_utils_mod, fms_io_mod, time_interp_external_mod
51 !! get_grid_version_mpp_mod, mpp_io_mod, mosaic_mod, &
52 !! fms_mod(partial, old io excluded), drifters modules
53 !! constants_mod (FMSconstants should be used externally)
54 !! grid_mod, mosaic_mod
56 !! A full list of supported interfaces and public types intended for use via
57 !! this module is provided in the [supported_interfaces.md](../../supported_interfaces.md)
61 !> @brief File for @ref FMS
67 !> import each FMS module's public routines/functions, interfaces, and variables
68 !! done explicitly to avoid including any unwanted/depracated routines/modules
71 use fms_affinity_mod, only: fms_affinity_init, fms_affinity_get, &
75 use amip_interp_mod, only: fms_amip_interp_init => amip_interp_init, &
76 fms_amip_interp_get_amip_sst => get_amip_sst, &
77 fms_amip_interp_get_amip_ice => get_amip_ice, &
78 fms_amip_interp_new => amip_interp_new, &
79 fms_amip_interp_del => amip_interp_del, &
80 FmsAmipInterp_type => amip_interp_type, &
82 fms_amip_interp_i_sst => i_sst, &
83 fms_amip_interp_j_sst => j_sst, &
84 fms_amip_interp_sst_ncep => sst_ncep, &
85 fms_amip_interp_sst_anom => sst_anom, &
86 fms_amip_interp_forecast_mode=> forecast_mode, &
87 fms_amip_interp_use_ncep_sst => use_ncep_sst
89 use astronomy_mod, only: fms_astronomy_init => astronomy_init, &
90 fms_astronomy_get_period => get_period, &
91 fms_astronomy_set_period => set_period, &
92 fms_astronomy_set_orbital_parameters => set_orbital_parameters, &
93 fms_astronomy_get_orbital_parameters => get_orbital_parameters, &
94 fms_astronomy_set_ref_date_of_ae => set_ref_date_of_ae, &
95 fms_astronomy_get_ref_date_of_ae => get_ref_date_of_ae, &
96 fms_astronomy_diurnal_solar => diurnal_solar, &
97 fms_astronomy_daily_mean_solar => daily_mean_solar, &
98 fms_astronomy_annual_mean_solar => annual_mean_solar, &
99 fms_astronomy_end => astronomy_end, &
100 fms_astronomy_universal_time => universal_time, &
101 fms_astronomy_orbital_time => orbital_time
104 use axis_utils2_mod, only: fms_axis_utils2_get_axis_cart => get_axis_cart, &
105 fms_axis_utils2_get_axis_modulo => get_axis_modulo, &
106 fms_axis_utils2_lon_in_range => lon_in_range, &
107 fms_axis_utils2_tranlon => tranlon, &
108 fms_axis_utils2_frac_index => frac_index, &
109 fms_axis_utils2_nearest_index => nearest_index, &
110 fms_axis_utils2_interp_1d => interp_1d, &
111 fms_axis_utils2_get_axis_modulo_times => get_axis_modulo_times, &
112 fms_axis_utils2_axis_edges => axis_edges
115 use block_control_mod, only: FmsBlockControl_type => block_control_type, &
116 fms_block_control_define_blocks => define_blocks, &
117 fms_block_control_define_blocks_packed => define_blocks_packed
119 !> column_diagnostics
120 use column_diagnostics_mod, only: fms_column_diagnostics_init => column_diagnostics_init, &
121 fms_column_diagnostics_initialize_diagnostic_columns => &
122 initialize_diagnostic_columns, &
123 fms_column_diagnostics_header => column_diagnostics_header, &
124 fms_column_diagnostics_close_units => close_column_diagnostics_units
127 use coupler_types_mod, only: fms_coupler_types_init => coupler_types_init, &
128 fms_coupler_type_copy => coupler_type_copy, &
129 fms_coupler_type_spawn => coupler_type_spawn, &
130 fms_coupler_type_set_diags => coupler_type_set_diags, &
131 fms_coupler_type_write_chksums => coupler_type_write_chksums, &
132 fms_coupler_type_send_data => coupler_type_send_data, &
133 fms_coupler_type_data_override => coupler_type_data_override, &
134 fms_coupler_type_register_restarts => coupler_type_register_restarts, &
135 fms_coupler_type_restore_state => coupler_type_restore_state, &
136 fms_coupler_type_increment_data => coupler_type_increment_data, &
137 fms_coupler_type_rescale_data => coupler_type_rescale_data, &
138 fms_coupler_type_copy_data => coupler_type_copy_data, &
139 fms_coupler_type_redistribute_data => coupler_type_redistribute_data, &
140 fms_coupler_type_destructor => coupler_type_destructor, &
141 fms_coupler_type_initialized => coupler_type_initialized, &
142 fms_coupler_type_extract_data => coupler_type_extract_data, &
143 fms_coupler_type_set_data => coupler_type_set_data, &
144 fms_coupler_type_copy_1d_2d => coupler_type_copy_1d_2d, &
145 fms_coupler_type_copy_1d_3d => coupler_type_copy_1d_3d, &
146 FmsCoupler3dValuesReals8_type => coupler_3d_real8_values_type, &
147 FmsCoupler3dFieldReals8_type => coupler_3d_real8_field_type, &
148 FmsCoupler2dValuesReals8_type => coupler_2d_real8_values_type, &
149 FmsCoupler2dFieldReals8_type => coupler_2d_real8_field_type, &
150 FmsCoupler1dValuesReals8_type => coupler_1d_real8_values_type, &
151 FmsCoupler1dFieldReals8_type => coupler_1d_real8_field_type, &
152 FmsCoupler3dValuesReals4_type => coupler_3d_real4_values_type, &
153 FmsCoupler3dFieldReals4_type => coupler_3d_real4_field_type, &
154 FmsCoupler2dValuesReals4_type => coupler_2d_real4_values_type, &
155 FmsCoupler2dFieldReals4_type => coupler_2d_real4_field_type, &
156 FmsCoupler1dValuesReals4_type => coupler_1d_real4_values_type, &
157 FmsCoupler1dFieldReals4_type => coupler_1d_real4_field_type, &
158 FmsCoupler3dBC_type => coupler_3d_bc_type, &
159 FmsCoupler2dBC_type => coupler_2d_bc_type, &
160 FmsCoupler1dBC_type => coupler_1d_bc_type, &
161 fms_coupler_ind_pcair => ind_pcair, &
162 fms_coupler_ind_u10 => ind_u10, &
163 fms_coupler_ind_psurf => ind_psurf, &
164 fms_coupler_ind_alpha => ind_alpha, &
165 fms_coupler_ind_csurf => ind_csurf, &
166 fms_coupler_ind_sc_no => ind_sc_no, &
167 fms_coupler_ind_flux => ind_flux, &
168 fms_coupler_ind_deltap => ind_deltap, &
169 fms_coupler_ind_kw => ind_kw, &
170 fms_coupler_ind_flux0 => ind_flux0, &
171 fms_coupler_ind_deposition => ind_deposition,&
172 fms_coupler_ind_runoff => ind_runoff
173 use ensemble_manager_mod, only: fms_ensemble_manager_init => ensemble_manager_init, &
174 fms_ensemble_manager_get_ensemble_id => get_ensemble_id, &
175 fms_ensemble_manager_get_ensemble_size => get_ensemble_size, &
176 fms_ensemble_manager_get_ensemble_pelist => get_ensemble_pelist, &
177 fms_ensemble_manager_ensemble_pelist_setup => ensemble_pelist_setup, &
178 fms_ensemble_manager_get_ensemble_filter_pelist => get_ensemble_filter_pelist
179 use atmos_ocean_fluxes_mod, only: fms_atmos_ocean_fluxes_init => atmos_ocean_fluxes_init, &
180 fms_atmos_ocean_type_fluxes_init => atmos_ocean_type_fluxes_init, &
181 fms_atmos_ocean_fluxes_set_coupler_flux => aof_set_coupler_flux
184 use data_override_mod, only: fms_data_override_init => data_override_init, &
185 fms_data_override => data_override, &
186 fms_data_override_unset_domains => data_override_unset_domains, &
187 fms_data_override_UG => data_override_UG
190 use diag_integral_mod, only: fms_diag_integral_init => diag_integral_init, &
191 fms_diag_integral_field_init => diag_integral_field_init, &
192 fms_sum_diag_integral_field => sum_diag_integral_field, &
193 fms_diag_integral_output => diag_integral_output, &
194 fms_diag_integral_end => diag_integral_end
197 !! includes imports from submodules made public
198 use diag_manager_mod, only: fms_diag_init => diag_manager_init, &
199 fms_diag_send_data => send_data, &
200 fms_diag_send_tile_averaged_data => send_tile_averaged_data, &
201 fms_diag_end => diag_manager_end, &
202 fms_diag_register_diag_field => register_diag_field, &
203 fms_diag_register_static_field => register_static_field, &
204 fms_diag_axis_init => diag_axis_init, &
205 fms_diag_get_base_time => get_base_time, &
206 fms_diag_get_base_date => get_base_date, &
207 fms_diag_need_data => need_data, &
211 fms_get_date_dif => get_date_dif, &
218 fms_diag_get_global_att => get_diag_global_att, &
219 fms_diag_set_global_att => set_diag_global_att, &
220 fms_diag_field_add_attribute => diag_field_add_attribute, &
221 fms_diag_field_add_cell_measures => diag_field_add_cell_measures, &
222 fms_diag_get_field_id => get_diag_field_id, &
223 fms_diag_axis_add_attribute => diag_axis_add_attribute, &
224 fms_diag_grid_init => diag_grid_init, &
225 fms_diag_grid_end => diag_grid_end, &
226 fms_diag_set_time_end => diag_manager_set_time_end, &
227 fms_diag_send_complete => diag_send_complete, &
228 fms_diag_send_complete_instant => diag_send_complete_instant, &
229 DIAG_FIELD_NOT_FOUND, &
230 CMOR_MISSING_VALUE, &
234 use xgrid_mod, only: FmsXgridXmap_type => xmap_type, &
235 fms_xgrid_setup_xmap => setup_xmap, &
236 fms_xgrid_set_frac_area => set_frac_area, &
237 fms_xgrid_put_to_xgrid => put_to_xgrid, &
238 fms_xgrid_get_from_xgrid => get_from_xgrid, &
239 fms_xgrid_count => xgrid_count, &
240 fms_xgrid_some => some, &
241 fms_xgrid_conservation_check => conservation_check, &
242 fms_xgrid_init => xgrid_init, &
243 AREA_ATM_SPHERE, AREA_OCN_SPHERE, AREA_ATM_MODEL, AREA_OCN_MODEL, &
244 fms_xgrid_get_ocean_model_area_elements => get_ocean_model_area_elements, &
245 FmsXgridGridBox_type => grid_box_type, &
246 fms_xgrid_get_xmap_grid_area => get_xmap_grid_area, &
247 fms_xgrid_put_to_xgrid_ug => put_to_xgrid_ug, &
248 fms_xgrid_get_from_xgrid_ug => get_from_xgrid_ug, &
249 fms_xgrid_set_frac_area_ug => set_frac_area_ug, &
250 FIRST_ORDER, SECOND_ORDER, &
251 fms_xgrid_stock_move_ug => stock_move_ug, &
252 fms_xgrid_stock_move => stock_move, &
253 FmsXgridStock_type => stock_type, &
254 fms_xgrid_stock_print => stock_print, &
255 fms_xgrid_get_index_range => get_index_range, &
256 fms_xgrid_stock_integrate_2d => stock_integrate_2d
257 use stock_constants_mod, only: NELEMS, ISTOCK_WATER, ISTOCK_HEAT, ISTOCK_SALT, &
258 ISTOCK_TOP, ISTOCK_BOTTOM, ISTOCK_SIDE, &
259 fms_stock_constants_stocks_file => stocks_file, &
260 fms_stock_constants_stocks_report => stocks_report, &
261 fms_stocks_report_init => stocks_report_init, &
262 fms_stocks_set_init_time => stocks_set_init_time, &
263 fms_stock_constants_atm_stock => atm_stock, &
264 fms_stock_constants_ocn_stock => ocn_stock, &
265 fms_stock_constants_lnd_stock => lnd_stock, &
266 fms_stock_constants_ice_stock => ice_stock
269 use field_manager_mod, only: fms_field_manager_init => field_manager_init, &
270 fms_field_manager_end => field_manager_end, &
271 fms_field_manager_find_field_index => find_field_index, &
272 fms_field_manager_get_field_info => get_field_info, &
273 fms_field_manager_get_field_method => get_field_method, &
274 fms_field_manager_get_field_methods => get_field_methods, &
275 fms_field_manager_parse => parse, &
276 fms_field_manager_fm_change_list => fm_change_list, &
277 fms_field_manager_fm_change_root => fm_change_root, &
278 fms_field_manager_fm_dump_list => fm_dump_list, &
279 fms_field_manager_fm_exists => fm_exists, &
280 fms_field_manager_fm_get_index => fm_get_index, &
281 fms_field_manager_fm_get_current_list => fm_get_current_list, &
282 fms_field_manager_fm_get_length => fm_get_length, &
283 fms_field_manager_fm_get_type => fm_get_type, &
284 fms_field_manager_fm_get_value => fm_get_value, &
285 fms_field_manager_fm_init_loop => fm_init_loop, &
286 fms_field_manager_fm_loop_over_list => fm_loop_over_list, &
287 fms_field_manager_fm_new_list => fm_new_list, &
288 fms_field_manager_fm_new_value => fm_new_value, &
289 fms_field_manager_fm_reset_loop => fm_reset_loop, &
290 fms_field_manager_fm_return_root => fm_return_root, &
291 fms_field_manager_fm_modify_name => fm_modify_name, &
292 fms_field_manager_fm_query_method => fm_query_method, &
293 fms_field_manager_fm_find_methods => fm_find_methods, &
294 fms_field_manager_fm_copy_list => fm_copy_list, &
295 fms_field_manager_fm_field_name_len => fm_field_name_len, &
296 fms_field_manager_fm_path_name_len => fm_path_name_len, &
297 fms_field_manager_fm_string_len => fm_string_len, &
298 fms_field_manager_fm_type_name_len => fm_type_name_len, &
299 NUM_MODELS, NO_FIELD, MODEL_ATMOS, MODEL_OCEAN, MODEL_LAND, MODEL_ICE, MODEL_COUPLER, &
300 FmsFieldManagerMethod_type => method_type, &
301 FmsFieldManagerMethodShort_type => method_type_short, &
302 FmsFieldManagerMethodVeryShort_type => method_type_very_short, &
303 FmsFieldManagerListIterator_type => fm_list_iter_type, &
304 fms_field_manager_default_method => default_method
305 use fm_util_mod, only: fms_fm_util_start_namelist => fm_util_start_namelist, &
306 fms_fm_util_end_namelist => fm_util_end_namelist, &
307 fms_fm_util_check_for_bad_fields => fm_util_check_for_bad_fields, &
308 fms_fm_util_set_caller => fm_util_set_caller, &
309 fms_fm_util_reset_caller => fm_util_reset_caller, &
310 fms_fm_util_set_no_overwrite => fm_util_set_no_overwrite, &
311 fms_fm_util_reset_no_overwrite => fm_util_reset_no_overwrite, &
312 fms_fm_util_set_good_name_list => fm_util_set_good_name_list, &
313 fms_fm_util_reset_good_name_list => fm_util_reset_good_name_list, &
314 fms_fm_util_get_length => fm_util_get_length, &
315 fms_fm_util_get_integer => fm_util_get_integer, &
316 fms_fm_util_get_logical => fm_util_get_logical, &
317 fms_fm_util_get_real => fm_util_get_real, &
318 fms_fm_util_get_string => fm_util_get_string, &
319 fms_fm_util_get_integer_array => fm_util_get_integer_array, &
320 fms_fm_util_get_logical_array => fm_util_get_logical_array, &
321 fms_fm_util_get_real_array => fm_util_get_real_array, &
322 fms_fm_util_get_string_array => fm_util_get_string_array, &
323 fms_fm_util_set_value => fm_util_set_value, &
324 fms_fm_util_set_value_integer_array => fm_util_set_value_integer_array, &
325 fms_fm_util_set_value_logical_array => fm_util_set_value_logical_array, &
326 fms_fm_util_set_value_real_array => fm_util_set_value_real_array, &
327 fms_fm_util_set_value_string_array => fm_util_set_value_string_array, &
328 fms_fm_util_set_value_integer => fm_util_set_value_integer, &
329 fms_fm_util_set_value_logical => fm_util_set_value_logical, &
330 fms_fm_util_set_value_real => fm_util_set_value_real, &
331 fms_fm_util_set_value_string => fm_util_set_value_string, &
332 fms_fm_util_get_index_list => fm_util_get_index_list, &
333 fms_fm_util_get_index_string => fm_util_get_index_string, &
334 fms_fm_util_default_caller => fm_util_default_caller
337 !! TODO need to see opinions on these
338 !! not sure if we need fms_ prefix for routines
339 !! types do not follow our typical naming convention(no _type and uses camel case instead of _ spacing)
340 use fms2_io_mod, only: unlimited, FmsNetcdfFile_t, FmsNetcdfDomainFile_t, &
341 FmsNetcdfUnstructuredDomainFile_t, &
343 fms2_io_open_file => open_file, &
344 fms2_io_open_virtual_file => open_virtual_file, &
345 fms2_io_close_file => close_file, &
346 fms2_io_register_axis => register_axis, &
347 fms2_io_register_field => register_field, &
348 fms2_io_register_restart_field => register_restart_field, &
349 fms2_io_write_data => write_data, &
350 fms2_io_read_data => read_data, &
351 fms2_io_write_restart => write_restart, &
352 fms2_io_write_new_restart => write_new_restart, &
353 fms2_io_read_restart => read_restart, &
354 fms2_io_read_new_restart => read_new_restart, &
355 fms2_io_global_att_exists => global_att_exists, &
356 fms2_io_variable_att_exists => variable_att_exists, &
357 fms2_io_register_global_attribute => register_global_attribute, &
358 fms2_io_register_variable_attribute => register_variable_attribute, &
359 fms2_io_get_global_attribute => get_global_attribute, &
360 fms2_io_get_variable_attribute => get_variable_attribute, &
361 fms2_io_get_num_dimensions => get_num_dimensions, &
362 fms2_io_get_dimension_names => get_dimension_names, &
363 fms2_io_dimension_exists => dimension_exists, &
364 fms2_io_is_dimension_unlimited => is_dimension_unlimited, &
365 fms2_io_get_dimension_size => get_dimension_size, &
366 fms2_io_get_num_variables => get_num_variables, &
367 fms2_io_get_variable_names => get_variable_names, &
368 fms2_io_variable_exists => variable_exists, &
369 fms2_io_get_variable_num_dimensions => get_variable_num_dimensions, &
370 fms2_io_get_variable_dimension_names => get_variable_dimension_names, &
371 fms2_io_get_variable_size => get_variable_size, &
372 fms2_io_get_compute_domain_dimension_indices => get_compute_domain_dimension_indices, &
373 fms2_io_get_global_io_domain_indices => get_global_io_domain_indices, &
374 fms2_io_get_valid => get_valid, &
375 fms2_io_is_valid => is_valid, &
376 fms2_io_get_unlimited_dimension_name => get_unlimited_dimension_name, &
377 fms2_io_get_variable_unlimited_dimension_index => get_variable_unlimited_dimension_index, &
378 fms2_io_file_exists => file_exists, &
379 fms2_io_compressed_start_and_count => compressed_start_and_count, &
380 fms2_io_get_variable_sense => get_variable_sense, &
381 fms2_io_get_variable_missing => get_variable_missing, &
382 fms2_io_get_variable_units => get_variable_units, &
383 fms2_io_get_time_calendar => get_time_calendar, &
384 fms2_io_open_check => open_check, &
385 fms2_io_is_registered_to_restart => is_registered_to_restart, &
386 fms2_io_check_if_open => check_if_open, &
387 fms2_io_set_fileobj_time_name => set_fileobj_time_name, &
388 fms2_io_is_dimension_registered => is_dimension_registered, &
389 fms2_io_fms2_io_init => fms2_io_init, &
390 fms2_io_get_mosaic_tile_grid => get_mosaic_tile_grid, &
391 fms2_io_write_restart_bc => write_restart_bc, &
392 fms2_io_read_restart_bc => read_restart_bc, &
393 fms2_io_get_filename_appendix => get_filename_appendix, &
394 fms2_io_set_filename_appendix => set_filename_appendix, &
395 fms2_io_get_instance_filename => get_instance_filename, &
396 fms2_io_nullify_filename_appendix => nullify_filename_appendix, &
397 fms2_io_ascii_read => ascii_read, &
398 fms2_io_get_mosaic_tile_file => get_mosaic_tile_file, &
399 fms2_io_parse_mask_table => parse_mask_table
401 ! fms_io_utils_mod, fms_netcdf_domain_io_mod, netcdf_io_mod, &
402 ! fms_netcdf_unstructured_domain_io_mod, blackboxio
405 !! routines that don't conflict with fms2_io
406 use fms_mod, only: fms_init, fms_end, error_mesg, fms_error_handler, &
408 fms_monotonic_array => monotonic_array, fms_string_array_index => string_array_index, &
409 fms_clock_flag_default => clock_flag_default, fms_print_memory_usage => print_memory_usage, &
410 fms_write_version_number => write_version_number
413 use horiz_interp_mod, only: fms_horiz_interp => horiz_interp, fms_horiz_interp_new => horiz_interp_new, &
414 fms_horiz_interp_del => horiz_interp_del, fms_horiz_interp_init => horiz_interp_init, &
415 fms_horiz_interp_end => horiz_interp_end
416 use horiz_interp_type_mod, only: FmsHorizInterp_type => horiz_interp_type, &
417 assignment(=), CONSERVE, BILINEAR, SPHERICA, BICUBIC, &
418 fms_horiz_interp_type_stats => stats
419 !! used via horiz_interp
420 ! horiz_interp_bicubic_mod, horiz_interp_bilinear_mod
421 ! horiz_interp_conserve_mod, horiz_interp_spherical_mod
424 use interpolator_mod, only: fms_interpolator_init => interpolator_init, &
425 fms_interpolator => interpolator, &
426 fms_interpolate_type_eq => interpolate_type_eq, &
427 fms_interpolator_obtain_interpolator_time_slices => obtain_interpolator_time_slices, &
428 fms_interpolator_unset_interpolator_time_flag => unset_interpolator_time_flag, &
429 fms_interpolator_end => interpolator_end, &
430 fms_interpolator_init_clim_diag => init_clim_diag, &
431 fms_interpolator_query_interpolator => query_interpolator, &
432 FmsInterpolate_type => interpolate_type, &
433 CONSTANT, INTERP_WEIGHTED_P, INTERP_LINEAR_P, INTERP_LOG_P, &
434 FMS_INTERPOLATOR_ZERO=>ZERO, & !! conflicts with mpp_parameter's ZERO
435 fms_interpolator_read_data=>read_data
438 use memutils_mod, only: fms_memutils_init => memutils_init, &
439 fms_memutils_print_memuse_stats => print_memuse_stats
442 use monin_obukhov_mod, only: fms_monin_obukhov_init => monin_obukhov_init, &
443 fms_monin_obukhov_end => monin_obukhov_end, &
444 fms_monin_obukhov_mo_drag => mo_drag, &
445 fms_monin_obukhov_mo_profile => mo_profile, &
446 fms_monin_obukhov_mo_diff => mo_diff, &
447 fms_monin_obukhov_stable_mix => stable_mix
448 use monin_obukhov_inter, only: fms_monin_obukhov_inter_diff => monin_obukhov_diff, &
449 fms_monin_obukhov_inter_drag_1d => monin_obukhov_drag_1d, &
450 fms_monin_obukhov_inter_solve_zeta => monin_obukhov_solve_zeta, &
451 fms_monin_obukhov_inter_derivative_t => monin_obukhov_derivative_t, &
452 fms_monin_obukhov_inter_derivative_m => monin_obukhov_derivative_m, &
453 fms_monin_obukhov_inter_profile_1d => monin_obukhov_profile_1d, &
454 fms_monin_obukhov_inter_integral_m => monin_obukhov_integral_m, &
455 fms_monin_obukhov_inter_integral_tq => monin_obukhov_integral_tq, &
456 fms_monin_obukhov_inter_stable_mix => monin_obukhov_stable_mix
459 use mosaic2_mod, only: fms_mosaic2_get_mosaic_ntiles => get_mosaic_ntiles, &
460 fms_mosaic2_get_mosaic_ncontacts => get_mosaic_ncontacts, &
461 fms_mosaic2_get_mosaic_grid_sizes => get_mosaic_grid_sizes, &
462 fms_mosaic2_get_mosaic_contact => get_mosaic_contact, &
463 fms_mosaic2_get_mosaic_xgrid_size => get_mosaic_xgrid_size, &
464 fms_mosaic2_get_mosaic_xgrid => get_mosaic_xgrid, &
465 fms_mosaic2_calc_mosaic_grid_area => calc_mosaic_grid_area, &
466 fms_mosaic2_calc_mosaic_grid_great_circle_area => calc_mosaic_grid_great_circle_area, &
467 fms_mosaic2_is_inside_polygon => is_inside_polygon, &
468 fms_mosaic2_get_mosaic_tile_grid => get_mosaic_tile_grid !overloaded in fms2_io
469 use grid2_mod, only: fms_grid2_get_grid_ntiles => get_grid_ntiles, &
470 fms_grid2_get_grid_size => get_grid_size, &
471 fms_grid2_get_grid_cell_centers => get_grid_cell_centers, &
472 fms_grid2_get_grid_cell_vertices => get_grid_cell_vertices, &
473 fms_grid2_get_grid_cell_Area => get_grid_cell_Area, &
474 fms_grid2_get_grid_comp_area => get_grid_comp_area, &
475 fms_grid2_define_cube_mosaic => define_cube_mosaic, &
476 fms_grid2_get_great_circle_algorithm => get_great_circle_algorithm, &
477 fms_grid2_grid_init => grid_init, &
478 fms_grid2_end => grid_end
479 use gradient_mod, only: fms_gradient_cubic => gradient_cubic, &
480 fms_gradient_calc_cubic_grid_info => calc_cubic_grid_info
483 use mpp_mod, only: fms_mpp_stdin => stdin, &
484 fms_mpp_stdout => stdout, &
485 fms_mpp_stderr => stderr, &
486 fms_mpp_stdlog => stdlog, &
487 fms_mpp_lowercase => lowercase, &
488 fms_mpp_uppercase => uppercase, &
489 fms_mpp_error => mpp_error, &
490 fms_mpp_error_state => mpp_error_state, &
491 fms_mpp_set_warn_level => mpp_set_warn_level, &
492 fms_mpp_sync => mpp_sync, &
493 fms_mpp_sync_self => mpp_sync_self, &
494 fms_mpp_set_stack_size => mpp_set_stack_size, &
495 fms_mpp_pe => mpp_pe, &
496 fms_mpp_npes => mpp_npes, &
497 fms_mpp_root_pe => mpp_root_pe, &
498 fms_mpp_set_root_pe => mpp_set_root_pe, &
499 fms_mpp_declare_pelist => mpp_declare_pelist, &
500 fms_mpp_get_current_pelist => mpp_get_current_pelist, &
501 fms_mpp_set_current_pelist => mpp_set_current_pelist, &
502 fms_mpp_get_current_pelist_name => mpp_get_current_pelist_name, &
503 fms_mpp_clock_id => mpp_clock_id, &
504 fms_mpp_clock_set_grain => mpp_clock_set_grain, &
505 fms_mpp_record_timing_data => mpp_record_timing_data, &
506 fms_mpp_get_unit => get_unit, &
507 fms_mpp_read_ascii_file => read_ascii_file, &
508 fms_mpp_read_input_nml => read_input_nml, &
509 fms_mpp_clock_begin => mpp_clock_begin, &
510 fms_mpp_clock_end => mpp_clock_end, &
511 fms_mpp_get_ascii_file_num_lines => get_ascii_file_num_lines, &
512 fms_mpp_record_time_start => mpp_record_time_start, &
513 fms_mpp_record_time_end => mpp_record_time_end, &
514 fms_mpp_chksum => mpp_chksum, &
515 fms_mpp_max => mpp_max, &
516 fms_mpp_min => mpp_min, &
517 fms_mpp_sum => mpp_sum, &
518 fms_mpp_transmit => mpp_transmit, &
519 fms_mpp_send => mpp_send, &
520 fms_mpp_recv => mpp_recv, &
521 fms_mpp_sum_ad => mpp_sum_ad, &
522 fms_mpp_broadcast => mpp_broadcast, &
523 fms_mpp_init => mpp_init, &
524 fms_mpp_exit => mpp_exit, &
525 fms_mpp_gather => mpp_gather, &
526 fms_mpp_scatter => mpp_scatter, &
527 fms_mpp_alltoall => mpp_alltoall, &
528 FmsMpp_type => mpp_type, &
529 FmsMpp_byte => mpp_byte, &
530 fms_mpp_type_create => mpp_type_create, &
531 fms_mpp_type_free => mpp_type_free, &
532 fms_mpp_input_nml_file => input_nml_file
533 use mpp_parameter_mod,only:MAXPES, MPP_VERBOSE, MPP_DEBUG, ALL_PES, ANY_PE, NULL_PE, &
534 NOTE, WARNING, FATAL, MPP_WAIT, MPP_READY, MAX_CLOCKS, &
535 MAX_EVENT_TYPES, MAX_EVENTS, MPP_CLOCK_SYNC, MPP_CLOCK_DETAILED, &
536 CLOCK_COMPONENT, CLOCK_SUBCOMPONENT, CLOCK_MODULE_DRIVER, &
537 CLOCK_MODULE, CLOCK_ROUTINE, CLOCK_LOOP, CLOCK_INFRA, MAX_BINS, &
538 EVENT_ALLREDUCE, EVENT_BROADCAST, EVENT_RECV, EVENT_SEND, EVENT_WAIT, &
539 EVENT_ALLTOALL, EVENT_TYPE_CREATE, EVENT_TYPE_FREE, &
540 DEFAULT_TAG, COMM_TAG_1, COMM_TAG_2, COMM_TAG_3, COMM_TAG_4, &
541 COMM_TAG_5, COMM_TAG_6, COMM_TAG_7, COMM_TAG_8, &
542 COMM_TAG_9, COMM_TAG_10, COMM_TAG_11, COMM_TAG_12, &
543 COMM_TAG_13, COMM_TAG_14, COMM_TAG_15, COMM_TAG_16, &
544 COMM_TAG_17, COMM_TAG_18, COMM_TAG_19, COMM_TAG_20, &
545 MPP_FILL_INT, MPP_FILL_FLOAT, MPP_FILL_DOUBLE, &
546 GLOBAL_DATA_DOMAIN, CYCLIC_GLOBAL_DOMAIN, BGRID_NE, &
547 BGRID_SW, CGRID_NE, CGRID_SW, DGRID_NE, DGRID_SW, &
548 FOLD_WEST_EDGE, FOLD_EAST_EDGE, FOLD_SOUTH_EDGE, &
549 FOLD_NORTH_EDGE, WUPDATE, EUPDATE, SUPDATE, NUPDATE, &
550 XUPDATE, YUPDATE, BITWISE_EXACT_SUM, NON_BITWISE_EXACT_SUM, &
551 MPP_DOMAIN_TIME, WEST, EAST, SOUTH, NORTH, SCALAR_BIT, SCALAR_PAIR, &
552 BITWISE_EFP_SUM, NORTH_EAST, SOUTH_EAST, SOUTH_WEST, NORTH_WEST, &
553 AGRID, GLOBAL, CYCLIC, DOMAIN_ID_BASE, CENTER, CORNER, &
554 MAX_DOMAIN_FIELDS, MAX_TILES, ZERO, NINETY, MINUS_NINETY, &
555 ONE_HUNDRED_EIGHTY, NONBLOCK_UPDATE_TAG, EDGEUPDATE, EDGEONLY, &
556 NONSYMEDGEUPDATE, NONSYMEDGE
557 ! this should really only be used internally
558 !use mpp_data_mod, only: stat, mpp_stack, ptr_stack, status, ptr_status, sync, &
559 ! ptr_sync, mpp_from_pe, ptr_from, remote_Data_loc, &
560 ! ptr_remote, mpp_domains_stack, ptr_domains_stack, &
561 ! mpp_domains_stack_nonblock, ptr_domains_stack_nonblock
562 use mpp_utilities_mod, only: fms_mpp_utilities_array_global_min_max => mpp_array_global_min_max
563 use mpp_memutils_mod, only: fms_mpp_memutils_print_memuse_stats => mpp_print_memuse_stats, &
564 fms_mpp_memutils_mem_dump => mpp_mem_dump, &
565 fms_mpp_memutils_memuse_begin => mpp_memuse_begin, &
566 fms_mpp_memutils_memuse_end => mpp_memuse_end
567 use mpp_efp_mod, only: fms_mpp_efp_reproducing_sum => mpp_reproducing_sum, &
568 fms_mpp_efp_list_sum_across_PEs => mpp_efp_list_sum_across_PEs, &
569 fms_mpp_efp_plus => mpp_efp_plus, &
570 fms_mpp_efp_minus => mpp_efp_minus, &
571 fms_mpp_efp_to_real => mpp_efp_to_real, &
572 fms_mpp_efp_real_to_efp => mpp_real_to_efp, &
573 fms_mpp_efp_real_diff => mpp_efp_real_diff, &
574 operator(+), operator(-), assignment(=), &
575 fms_mpp_efp_query_overflow_error => mpp_query_efp_overflow_error, &
576 fms_mpp_efp_reset_overflow_error => mpp_reset_efp_overflow_error, &
577 FmsMppEfp_type => mpp_efp_type
578 use mpp_domains_mod, only: FmsMppDomains_axis_spec => domain_axis_spec, &
579 FmsMppDomain1D => domain1D, &
580 FmsMppDomain2D => domain2D, &
581 FmsMppDomainCommunicator2D => DomainCommunicator2D, &
582 FmsMppDomainsNestDomain_type => nest_domain_type, &
583 FmsMppDomainsGroupUpdate_type => mpp_group_update_type, &
584 fms_mpp_domains_domains_set_stack_size => mpp_domains_set_stack_size, &
585 fms_mpp_domains_get_compute_domain => mpp_get_compute_domain, &
586 fms_mpp_domains_get_compute_domains => mpp_get_compute_domains, &
587 fms_mpp_domains_get_data_domain => mpp_get_data_domain, &
588 fms_mpp_domains_get_global_domain => mpp_get_global_domain, &
589 fms_mpp_domains_get_domain_components => mpp_get_domain_components, &
590 fms_mpp_domains_get_layout => mpp_get_layout, &
591 fms_mpp_domains_get_pelist => mpp_get_pelist, &
592 operator(.EQ.), operator(.NE.), &
593 fms_mpp_domains_domain_is_symmetry => mpp_domain_is_symmetry, &
594 fms_mpp_domains_domain_is_initialized => mpp_domain_is_initialized, &
595 fms_mpp_domains_get_neighbor_pe => mpp_get_neighbor_pe, &
596 fms_mpp_domains_nullify_domain_list => mpp_nullify_domain_list, &
597 fms_mpp_domains_set_compute_domain => mpp_set_compute_domain, &
598 fms_mpp_domains_set_data_domain => mpp_set_data_domain, &
599 fms_mpp_domains_set_global_domain => mpp_set_global_domain, &
600 fms_mpp_domains_get_memory_domain => mpp_get_memory_domain, &
601 fms_mpp_domains_get_domain_shift => mpp_get_domain_shift, &
602 fms_mpp_domains_domain_is_tile_root_pe => mpp_domain_is_tile_root_pe, &
603 fms_mpp_domains_get_tile_id => mpp_get_tile_id, &
604 fms_mpp_domains_get_domain_extents => mpp_get_domain_extents, &
605 fms_mpp_domains_get_current_ntile => mpp_get_current_ntile, &
606 fms_mpp_domains_get_ntile_count => mpp_get_ntile_count, &
607 fms_mpp_domains_get_tile_list => mpp_get_tile_list, &
608 fms_mpp_domains_get_tile_npes => mpp_get_tile_npes, &
609 fms_mpp_domains_get_domain_root_pe => mpp_get_domain_root_pe, &
610 fms_mpp_domains_get_tile_pelist => mpp_get_tile_pelist, &
611 fms_mpp_domains_get_tile_compute_domains => mpp_get_tile_compute_domains, &
612 fms_mpp_domains_get_num_overlap => mpp_get_num_overlap, &
613 fms_mpp_domains_get_overlap => mpp_get_overlap, &
614 fms_mpp_domains_get_io_domain => mpp_get_io_domain, &
615 fms_mpp_domains_get_domain_pe => mpp_get_domain_pe, &
616 fms_mpp_domains_get_domain_tile_root_pe => mpp_get_domain_tile_root_pe, &
617 fms_mpp_domains_get_domain_name => mpp_get_domain_name, &
618 fms_mpp_domains_get_io_domain_layout => mpp_get_io_domain_layout, &
619 fms_mpp_domains_copy_domain => mpp_copy_domain, &
620 fms_mpp_domains_set_domain_symmetry => mpp_set_domain_symmetry, &
621 fms_mpp_domains_get_update_pelist => mpp_get_update_pelist, &
622 fms_mpp_domains_get_update_size => mpp_get_update_size, &
623 fms_mpp_domains_get_domain_npes => mpp_get_domain_npes, &
624 fms_mpp_domains_get_domain_pelist => mpp_get_domain_pelist, &
625 fms_mpp_domains_clear_group_update => mpp_clear_group_update, &
626 fms_mpp_domains_group_update_initialized => mpp_group_update_initialized, &
627 fms_mpp_domains_group_update_is_set => mpp_group_update_is_set, &
628 fms_mpp_domains_get_global_domains => mpp_get_global_domains, &
629 fms_mpp_domains_global_field => mpp_global_field, &
630 fms_mpp_domains_global_max => mpp_global_max, &
631 fms_mpp_domains_global_min => mpp_global_min, &
632 fms_mpp_domains_global_sum => mpp_global_sum, &
633 fms_mpp_domains_global_sum_tl => mpp_global_sum_tl, &
634 fms_mpp_domains_global_sum_ad => mpp_global_sum_ad, &
635 fms_mpp_domains_broadcast_domain => mpp_broadcast_domain, &
636 fms_mpp_domains_init => mpp_domains_init, &
637 fms_mpp_domains_exit => mpp_domains_exit, &
638 fms_mpp_domains_redistribute => mpp_redistribute, &
639 fms_mpp_domains_update_domains => mpp_update_domains, &
640 fms_mpp_domains_check_field => mpp_check_field, &
641 fms_mpp_domains_start_update_domains => mpp_start_update_domains, &
642 fms_mpp_domains_complete_update_domains => mpp_complete_update_domains, &
643 fms_mpp_domains_create_group_update => mpp_create_group_update, &
644 fms_mpp_domains_do_group_update => mpp_do_group_update, &
645 fms_mpp_domains_start_group_update => mpp_start_group_update, &
646 fms_mpp_domains_complete_group_update => mpp_complete_group_update, &
647 fms_mpp_domains_reset_group_update_field => mpp_reset_group_update_field, &
648 fms_mpp_domains_update_nest_fine => mpp_update_nest_fine, &
649 fms_mpp_domains_update_nest_coarse => mpp_update_nest_coarse, &
650 fms_mpp_domains_get_boundary => mpp_get_boundary, &
651 fms_mpp_domains_update_domains_ad => mpp_update_domains_ad, &
652 fms_mpp_domains_get_boundary_ad => mpp_get_boundary_ad, &
653 fms_mpp_domains_pass_SG_to_UG => mpp_pass_SG_to_UG, &
654 fms_mpp_domains_pass_UG_to_SG => mpp_pass_UG_to_SG, &
655 fms_mpp_domains_define_layout => mpp_define_layout, &
656 fms_mpp_domains_define_domains => mpp_define_domains, &
657 fms_mpp_domains_modify_domain => mpp_modify_domain, &
658 fms_mpp_domains_define_mosaic => mpp_define_mosaic, &
659 fms_mpp_domains_define_mosaic_pelist => mpp_define_mosaic_pelist, &
660 fms_mpp_domains_define_null_domain => mpp_define_null_domain, &
661 fms_mpp_domains_mosaic_defined => mpp_mosaic_defined, &
662 fms_mpp_domains_define_io_domain => mpp_define_io_domain, &
663 fms_mpp_domains_deallocate_domain => mpp_deallocate_domain, &
664 fms_mpp_domains_compute_extent => mpp_compute_extent, &
665 fms_mpp_domains_compute_block_extent => mpp_compute_block_extent, &
666 fms_mpp_domains_define_unstruct_domain => mpp_define_unstruct_domain, &
667 fmsMppDomainUG => domainUG, &
668 fms_mpp_domains_get_UG_io_domain => mpp_get_UG_io_domain, &
669 fms_mpp_domains_get_UG_domain_npes => mpp_get_UG_domain_npes, &
670 fms_mpp_domains_get_UG_compute_domain => mpp_get_UG_compute_domain, &
671 fms_mpp_domains_get_UG_domain_tile_id => mpp_get_UG_domain_tile_id, &
672 fms_mpp_domains_get_UG_domain_pelist => mpp_get_UG_domain_pelist, &
673 fms_mpp_domains_get_ug_domain_grid_index => mpp_get_ug_domain_grid_index, &
674 fms_mpp_domains_get_UG_domain_ntiles => mpp_get_UG_domain_ntiles, &
675 fms_mpp_domains_get_UG_global_domain => mpp_get_UG_global_domain, &
676 fms_mpp_domains_global_field_ug => mpp_global_field_ug, &
677 fms_mpp_domains_get_ug_domain_tile_list => mpp_get_ug_domain_tile_list, &
678 fms_mpp_domains_get_UG_compute_domains => mpp_get_UG_compute_domains, &
679 fms_mpp_domains_define_null_UG_domain => mpp_define_null_UG_domain, &
680 fms_mpp_domains_NULL_DOMAINUG => NULL_DOMAINUG, &
681 fms_mpp_domains_get_UG_domains_index => mpp_get_UG_domains_index, &
682 fms_mpp_domains_get_UG_SG_domain => mpp_get_UG_SG_domain, &
683 fms_mpp_domains_get_UG_domain_tile_pe_inf => mpp_get_UG_domain_tile_pe_inf, &
684 fms_mpp_domains_define_nest_domains => mpp_define_nest_domains, &
685 fms_mpp_domains_get_C2F_index => mpp_get_C2F_index, &
686 fms_mpp_domains_get_F2C_index => mpp_get_F2C_index, &
687 fms_mpp_domains_get_nest_coarse_domain => mpp_get_nest_coarse_domain, &
688 fms_mpp_domains_get_nest_fine_domain => mpp_get_nest_fine_domain, &
689 fms_mpp_domains_is_nest_coarse => mpp_is_nest_coarse, &
690 fms_mpp_domains_is_nest_fine => mpp_is_nest_fine, &
691 fms_mpp_domains_get_nest_pelist => mpp_get_nest_pelist, &
692 fms_mpp_domains_get_nest_npes => mpp_get_nest_npes, &
693 fms_mpp_domains_get_nest_fine_pelist => mpp_get_nest_fine_pelist, &
694 fms_mpp_domains_get_nest_fine_npes => mpp_get_nest_fine_npes, &
695 fms_mpp_domains_domain_UG_is_tile_root_pe => mpp_domain_UG_is_tile_root_pe, &
696 fms_mpp_domains_deallocate_domainUG => mpp_deallocate_domainUG, &
697 fms_mpp_domains_get_io_domain_UG_layout => mpp_get_io_domain_UG_layout, &
700 fms_mpp_domains_create_super_grid_domain => mpp_create_super_grid_domain, &
701 fms_mpp_domains_shift_nest_domains => mpp_shift_nest_domains
704 use yaml_parser_mod, only: fms_yaml_parser_open_and_parse_file => open_and_parse_file, &
705 fms_yaml_parser_get_num_blocks => get_num_blocks, &
706 fms_yaml_parser_get_block_ids => get_block_ids, &
707 fms_yaml_parser_get_value_from_key => get_value_from_key, &
708 fms_yaml_parser_get_nkeys => get_nkeys, &
709 fms_yaml_parser_get_key_ids => get_key_ids, &
710 fms_yaml_parser_get_key_name => get_key_name, &
711 fms_yaml_parser_get_key_value => get_key_value
715 use platform_mod, only: r8_kind, r4_kind, i8_kind, i4_kind, c8_kind, c4_kind, &
716 l8_kind, l4_kind, i2_kind, ptr_kind
719 use random_numbers_mod, only: fms_random_numbers_randomNumberStream => randomNumberStream, &
720 fms_random_numbers_initializeRandomNumbersStream => initializeRandomNumberStream, &
721 fms_random_numbers_getRandomNumbers => getRandomNumbers, &
722 fms_random_numbers_constructSeed => constructSeed
725 use sat_vapor_pres_mod, only: fms_sat_vapor_pres_lookup_es => lookup_es, &
726 fms_sat_vapor_pres_lookup_des => lookup_des, &
727 fms_sat_vapor_pres_init => sat_vapor_pres_init, &
728 fms_sat_vapor_pres_lookup_es2 => lookup_es2, &
729 fms_sat_vapor_pres_lookup_des2 => lookup_des2, &
730 fms_sat_vapor_pres_lookup_es2_des2 => lookup_es2_des2, &
731 fms_sat_vapor_pres_lookup_es3 => lookup_es3, &
732 fms_sat_vapor_pres_lookup_des3 => lookup_des3, &
733 fms_sat_vapor_pres_lookup_es3_des3 => lookup_es3_des3, &
734 fms_sat_vapor_pres_lookup_es_des => lookup_es_des, &
735 fms_sat_vapor_pres_compute_qs => compute_qs, &
736 fms_sat_vapor_pres_compute_mrs => compute_mrs, &
737 fms_sat_vapor_pres_escomp => escomp, &
738 fms_sat_vapor_pres_descomp => descomp
740 use fms_string_utils_mod, only: fms_string_utils_string => string, &
741 fms_string_utils_array_to_pointer => fms_array_to_pointer, &
742 fms_string_utils_fms_pointer_to_array => fms_pointer_to_array, &
743 fms_string_utils_sort_this => fms_sort_this, &
744 fms_string_utils_find_my_string => fms_find_my_string, &
745 fms_string_utils_find_unique => fms_find_unique, &
746 fms_string_utils_c2f_string => fms_c2f_string, &
747 fms_string_utils_cstring2cpointer => fms_cstring2cpointer, &
748 fms_string_utils_copy => string_copy
751 use time_interp_mod, only: fms_time_interp_init => time_interp_init, &
752 fms_time_interp => time_interp, fms_fraction_of_year=> fraction_of_year, &
753 NONE, YEAR, MONTH, DAY
754 use time_interp_external2_mod, only: fms_time_interp_external_init_external_field => init_external_field, &
755 fms_time_interp_external => time_interp_external, &
756 fms_time_interp_external_init => time_interp_external_init, &
757 fms_time_interp_external_exit => time_interp_external_exit, &
758 fms_time_interp_external_get_external_field_size => get_external_field_size, &
759 fms_time_interp_external_get_time_axis => get_time_axis, &
760 fms_time_interp_external_get_external_field_missing => get_external_field_missing, &
761 fms_time_interp_external_set_override_region => set_override_region, &
762 fms_time_interp_external_reset_src_data_region => reset_src_data_region, &
763 fms_time_interp_external_get_external_fileobj => get_external_fileobj, &
764 NO_REGION, INSIDE_REGION, OUTSIDE_REGION, &
765 SUCCESS, ERR_FIELD_NOT_FOUND
768 use time_manager_mod, only: FmsTime_type => time_type, &
769 operator(+), operator(-), operator(*), assignment(=),&
770 operator(/), operator(>), operator(>=), operator(==), &
771 operator(/=), operator(<), operator(<=), operator(//), &
772 fms_time_manager_set_time => set_time, &
773 fms_time_manager_increment_time => increment_time, &
774 fms_time_manager_decrement_time => decrement_time, &
775 fms_time_manager_get_time => get_time, &
776 fms_time_manager_interval_alarm => interval_alarm, &
777 fms_time_manager_repeat_alarm => repeat_alarm, &
778 fms_time_manager_time_type_to_real => time_type_to_real, &
779 fms_time_manager_real_to_time_type => real_to_time_type, &
780 fms_time_manager_time_list_error => time_list_error, &
781 THIRTY_DAY_MONTHS, JULIAN, GREGORIAN, NOLEAP, NO_CALENDAR, INVALID_CALENDAR, &
782 fms_time_manager_set_calendar_type => set_calendar_type, &
783 fms_time_manager_get_calendar_type => get_calendar_type, &
784 fms_time_manager_set_ticks_per_second => set_ticks_per_second, &
785 fms_time_manager_get_ticks_per_second => get_ticks_per_second, &
786 fms_time_manager_set_date => set_date, &
787 fms_time_manager_get_date => get_date, &
788 fms_time_manager_increment_date => increment_date, &
789 fms_time_manager_decrement_date => decrement_date, &
790 fms_time_manager_days_in_month => days_in_month, &
791 fms_time_manager_leap_year => leap_year, &
792 fms_time_manager_length_of_year => length_of_year, &
793 fms_time_manager_days_in_year => days_in_year, &
794 fms_time_manager_day_of_year => day_of_year, &
795 fms_time_manager_month_name => month_name, &
796 fms_time_manager_valid_calendar_types => valid_calendar_types, &
797 fms_time_manager_init => time_manager_init, &
798 fms_time_manager_print_time => print_time, &
799 fms_time_manager_print_date => print_date, &
800 fms_time_manager_set_date_julian => set_date_julian, &
801 fms_time_manager_get_date_julian => get_date_julian, &
802 fms_time_manager_get_date_no_leap => get_date_no_leap, &
803 fms_time_manager_date_to_string => date_to_string
804 use get_cal_time_mod, only: fms_get_cal_time => get_cal_time
807 use gaussian_topog_mod, only: fms_gaussian_topog_init => gaussian_topog_init, &
808 fms_get_gaussian_topog => get_gaussian_topog
809 use topography_mod, only: fms_topography_init => topography_init, &
810 fms_topography_get_topog_mean => get_topog_mean, &
811 fms_topography_get_topog_stdev => get_topog_stdev, &
812 fms_topography_get_ocean_frac => get_ocean_frac, &
813 fms_topography_get_ocean_mask => get_ocean_mask, &
814 fms_topography_get_water_frac => get_water_frac, &
815 fms_topography_get_water_mask => get_water_mask
818 use tracer_manager_mod, only: fms_tracer_manager_init => tracer_manager_init, &
819 fms_tracer_manager_end => tracer_manager_end, &
820 fms_tracer_manager_check_if_prognostic => check_if_prognostic, &
821 fms_tracer_manager_get_tracer_indices => get_tracer_indices, &
822 fms_tracer_manager_get_tracer_index => get_tracer_index, &
823 fms_tracer_manager_get_tracer_names => get_tracer_names, &
824 fms_tracer_manager_get_tracer_name => get_tracer_name, &
825 fms_tracer_manager_query_method => query_method, &
826 fms_tracer_manager_set_tracer_atts => set_tracer_atts, &
827 fms_tracer_manager_set_tracer_profile => set_tracer_profile, &
828 fms_tracer_manager_register_tracers => register_tracers, &
829 fms_tracer_manager_get_number_tracers => get_number_tracers, &
830 fms_tracer_manager_adjust_mass => adjust_mass, &
831 fms_tracer_manager_adjust_positive_def => adjust_positive_def, &
832 NO_TRACER, MAX_TRACER_FIELDS
835 use tridiagonal_mod, only: fms_tridiagonal_tri_invert => tri_invert, &
836 fms_tridiagonal_close_tridiagonal => close_tridiagonal
840 #include <file_version.h>
841 character(len=*), parameter, public :: version_FMS = version
846 ! close documentation grouping