FMS  2024.03
Flexible Modeling System
By Module
Interfaces and derived types by module
[detail level 12]
 Namip_interp_mod
 Camip_interp_newInitializes data needed for the horizontal interpolation between the sst data and model grid
 Camip_interp_typeContains information needed by the interpolation module (exchange_mod) and buffers data (r4_kind flavor)
 Cassignment(=)Assignment overload to allow native assignment between amip_interp_type variables
 Cdate_typePrivate data type for representing a calendar date
 Cget_amip_iceAMIP interpolation for ice
 Cget_amip_sstRetrieve sea surface temperature data and interpolated grid
 Coperator(/=)Private logical inequality overload for amip_interp_type
 Coperator(==)Private logical equality overload for amip_interp_type
 Coperator(>)Private logical greater than overload for amip_interp_type
 Nastronomy_mod
 Cangle
 Cannual_mean_solarCalculates the annual mean of solar information for a given latitude and time
 Cdaily_mean_solarCalculates the daily mean solar information for a given time and latitude
 Cdeclination
 Cdiurnal_solarCalculates solar information for the given location(lat & lon) and time
 Cget_orbital_parameters
 Cget_periodGets the length of year for current calendar
 Chalf_dayPrivate interface for internal use by dirunal_solar and daily_mean_solar
 Cr_inv_squared
 Cset_orbital_parameters
 Cset_periodSets the length of a year for the calendar in use
 Naxis_utils2_mod
 Caxis_edgesPerform 1D interpolation between grids
 Cfind_index
 Cfrac_index
 Cinterp_1d
 Cinterp_1d_cubic_spline
 Cinterp_1d_linear
 Clon_in_range
 Cnearest_index
 Ctranlon
 Nblock_control_mod
 Cblock_control_typeBlock data and extents for OpenMP threading of column-based calculations
 Cix_typeType to dereference packed index from global index
 Cpk_typeType to dereference packed index from global indices
 Ncolumn_diagnostics_mod
 Ccolumn_diagnostics_header
 Cinitialize_diagnostic_columns
 Ncoupler_types_mod
 Ccoupler_1d_bc_typeCoupler data for 1D boundary conditions
 Ccoupler_1d_real4_field_typeCoupler data for 1D fields
 Ccoupler_1d_real4_values_typeCoupler data for 1D values
 Ccoupler_1d_real8_field_typeCoupler data for 1D fields
 Ccoupler_1d_real8_values_typeCoupler data for 1D values
 Ccoupler_2d_bc_typeCoupler data for 2D boundary conditions
 Ccoupler_2d_real4_field_typeCoupler data for 2D fields
 Ccoupler_2d_real4_values_typeCoupler data for 2D values
 Ccoupler_2d_real8_field_typeCoupler data for 2D fields
 Ccoupler_2d_real8_values_typeCoupler data for 2D values
 Ccoupler_3d_bc_typeCoupler data for 3D boundary conditions
 Ccoupler_3d_real4_field_typeCoupler data for 3D fields
 Ccoupler_3d_real4_values_typeCoupler data for 3D values
 Ccoupler_3d_real8_field_typeCoupler data for 3D fields
 Ccoupler_3d_real8_values_typeCoupler data for 3D values
 Ccoupler_type_copyThis is the interface to spawn one coupler_bc_type into another and then register diagnostics associated with the new type
 Ccoupler_type_copy_dataThis is the interface to copy the field data from one coupler_bc_type to another of the same rank, size and decomposition
 Ccoupler_type_data_overrideThis is the interface to override the values of the arrays in a coupler_bc_type
 Ccoupler_type_destructorThis is the interface to deallocate any data associated with a coupler_bc_type
 Ccoupler_type_extract_dataThis is the interface to extract a field in a coupler_bc_type into an array
 Ccoupler_type_increment_dataThis is the interface to increment the field data from one coupler_bc_type with the data from another. Both must have the same horizontal size and decomposition, but a 2d type may be incremented by a 2d or 3d type
 Ccoupler_type_initializedThis function interface indicates whether a coupler_bc_type has been initialized
 Ccoupler_type_redistribute_dataThis is the interface to redistribute the field data from one coupler_bc_type to another of the same rank and global size, but a different decomposition
 Ccoupler_type_register_restartsThis is the interface to register the fields in a coupler_bc_type to be saved in restart files
 Ccoupler_type_rescale_dataThis is the interface to rescale the field data in a coupler_bc_type
 Ccoupler_type_restore_stateThis is the interface to read in the fields in a coupler_bc_type that have been saved in restart files
 Ccoupler_type_send_dataThis is the interface to write out diagnostics of the arrays in a coupler_bc_type
 Ccoupler_type_set_dataThis is the interface to set a field in a coupler_bc_type from an array
 Ccoupler_type_set_diagsThis is the interface to set diagnostics for the arrays in a coupler_bc_type
 Ccoupler_type_spawnThis is the interface to spawn one coupler_bc_type into another
 Ccoupler_type_write_chksumsThis is the interface to write out checksums for the elements of a coupler_bc_type
 Ndata_override_mod
 Cdata_overrideInterface for inserting and interpolating data into a file for a model's grid and time. Data path must be described in a user-provided data_table, see module description for more information
 Cdata_override_ugVersion of Data Override for unstructured grids
 Ndiag_axis_mod
 Cdiag_axis_add_attributeAdd an arbitrary attribute and value to the diagnostic axis
 Ndiag_data_mod
 Ccoord_typeDefine the region for field output
 Cdiag_atttypeAttribute type for diagnostic fields
 Cdiag_axis_typeType to hold the diagnostic axis description
 Cdiag_fieldtypeDiagnostic field type
 Cdiag_global_att_type
 Cdiag_gridContains the coordinates of the local domain to output
 Cfile_typeType to define the diagnostic files that will be written as defined by the diagnostic table
 Cfmsdiagattribute_typeType to hold the attributes of the field/axis/file
 Cinput_field_typeType to hold the input field description
 Coutput_field_typeType to hold the output field description
 Ndiag_grid_mod
 Cdiag_global_grid_typePrivate type to hold the model's global grid data, and other grid information for use in this module
 CpointPrivate type to hold the corresponding (x,y,z) location for a (lat,lon) location
 Ndiag_integral_mod
 Csum_diag_integral_fieldPerform a summation of the named integral field
 Ndiag_manager_mod
 Cdiag_field_add_attributeAdd a attribute to the output field
 Cregister_diag_fieldRegister a diagnostic field for a given module
 Csend_dataSend data over to output fields
 Csend_tile_averaged_dataSend tile-averaged data over to output fields
 Ndiag_table_mod
 Cfield_description_typePrivate type to hold field information for the diag table
 Cfile_description_typePrivate type to hold file information for the diag table
 Ndiag_util_mod
 Cattribute_initAllocates the atttype in out_file
 Cfms_diag_check_out_of_bounds
 Cprepend_attributePrepend a value to a string attribute in the output field or output file
 Nfield_manager_mod
 Cfield_defPrivate type for internal use
 Cfield_mgr_typePrivate type for internal use
 Cfield_names_typePrivate type for internal use
 Cfield_names_type_shortPrivate type for internal use
 Cfind_field_indexReturns an index corresponding to the given field name
 Cfm_get_valueAn overloaded function to find and extract a value for a named field
 Cfm_list_iter_typeIterator over the field manager list
 Cfm_loop_over_listA function for looping over a list
 Cfm_new_valueAn overloaded function to assign a value to a field
 Cmethod_typeThis method_type is a way to allow a component module to alter the parameters it needs for various tracers
 Cmethod_type_shortThis method_type is the same as method_type except that the method_control string is not present. This is used when you wish to change to a scheme within a module but do not need to pass parameters. See method_type for member information
 Cmethod_type_very_shortThis is the same as method_type except that the method_control and method_name strings are not present. This is used when you wish to change to a scheme within a module but do not need to pass parameters
 CparseA function to parse an integer or an array of integers, a real or an array of reals, a string or an array of strings
 Nfm_util_mod
 Cfm_util_set_value
 Cfm_util_set_value_real
 Cfm_util_set_value_real_array
 Nfm_yaml_mod
 Cfmattr_tThis type represents a subparameter block for a given variable parameter. This type contains the name of the associated parameter and the subparameter key/value pairs
 Cfmmodel_tThis type represents the entries for a given model, e.g. land, ocean, atmosphere. This type contains the name of the model, the block id, and the variables within this model
 Cfmtable_tThis type contains the field types within a field table
 Cfmtype_tThis type represents the entries for a specific field type, e.g. a tracer. This type contains the name of the field type, the block id, and the models within this field type
 Cfmvar_tThis type represents the entries for a given variable, e.g. dust. This type contains the name of the variable, the block id, the key/value pairs for the variable's parameters, and any applicable subparameters
 Nfms2_io_mod
 Cclose_fileClose a netcdf or domain file opened with open_file or open_virtual_file
 Copen_fileOpens a given netcdf or domain file
 Copen_virtual_fileCreates a diskless netcdf or domain file
 Cread_dataRead data from a defined field in a file
 Cread_new_restartRead registered restarts from a new file Optionally takes directory to write to, model time and filename
Example usage: call read_new_restart(fileobj, unlimted_dimension_level)
 Cread_restartReads in restart variables from a given file
Example usage: call read_restart(fileobj) Reads registered restart variables from fileobj
 Cregister_axisAdd a dimension to a given file
 Cregister_fieldDefines a new field within the given file
Example usage:
 Cregister_restart_fieldSimilar to register_field, but occupies the field with data for restarts
Example usage:
 Cwrite_dataWrite data to a defined field within a file
Example usage:
 Cwrite_new_restartWrites all restart fields in a given restart file to a new restart file
Example usage:
 Cwrite_restartWrites all restart fields registered within a given restart file
Example usage:
 Nfms_affinity_mod
 Cfms_affinity_getInterface to get affinity from the current component
 Cget_cpusetPrivate interface to retrieve this groups CPU set and it's size
 Cset_cpu_affinityPrivate interface to set CPU afinity to a given core
 Nfms_diag_axis_object_mod
 Cdiagdomain1d_tType to hold the 1d domain
 Cdiagdomain2d_tType to hold the 2d domain
 Cdiagdomain_tType to hold the domain info for an axis This type was created to avoid having to send in "Domain", "Domain2", "DomainUG" as arguments into subroutines and instead only 1 class(diagDomain_t) argument can be send
 Cdiagdomainug_tType to hold the unstructured domain
 Cfmsdiagaxis_typeType to hold the diagnostic axis description
 Cfmsdiagaxiscontainer_typeType to hold the diag_axis (either subaxis or a full axis)
 Cfmsdiagdiurnalaxis_typeType to hold the diurnal axis
 Cfmsdiagfullaxis_typeType to hold the diagnostic axis description
 Cfmsdiagsubaxis_typeType to hold the subaxis
 Nfms_diag_bbox_mod
 Cfmsdiagboundshalos_typeData structure holding starting and ending indices in the I, J, and K dimensions. It also has extra members related to halo sizes and updated indices in I and J dimensions
 Cfmsdiagibounds_typeData structure holding a 3D bounding box. It is commonlyused to represent the interval bounds or limits of a 3D sub-array such as the array index bounds of the spatial component a diag_manager field output buffer array
 Nfms_diag_elem_weight_procs_mod
 CaddwfInterface for the elemental function addwf, which Calculates and returns the value given by this formula: returned_value = buff + (weight * field)**pow_value
 Nfms_diag_field_object_mod
 Cfmsdiagfield_typeObject that holds all variable information
 Nfms_diag_fieldbuff_update_mod
 Cfieldbuff_copy_fieldvalsInterface fieldbuff_copy_fieldvals updates elements of the field output buffer with copies of corresponding element values in the input field data
 Cfieldbuff_copy_missvalsInterface fieldbuff_copy_missvals updates elements of the field output buffer with the missvalue input argument
 Cfieldbuff_updateInterface fieldbuff_update updates elements of field output buffer based on input field data and mathematical operations on the field data
 Nfms_diag_file_object_mod
 Cfmsdiagfile_type
 Cfmsdiagfilecontainer_typeA container for fmsDiagFile_type. This is used to create the array of files
 Csubregionalfile_type
 Nfms_diag_input_buffer_mod
 Cappend_data_bufferAppends the input_data_buffer and the mask (only when the mask is set to .True.)
 Cfmsdiaginputbuffer_tType to hold the information needed for the input buffer This is used when set_math_needs_to_be_done = .true. (i.e calling send_data from an openmp region with multiple threads)
 Csum_data_bufferSums the data in the input_data_buffer
 Nfms_diag_object_mod
 Cfmsdiagobject_type
 Nfms_diag_outfield_mod
 Cfmsdiagoutfield_typeClass fmsDiagOutfield_type (along with class ms_diag_outfield_index_type ) contain information used in updating the output buffers by the diag_manager send_data routines. In some sense they can be seen as encapsulating related information in a convenient way (e.g. to pass to functions and for do loop controls.)
 Cfmsdiagoutfieldindex_typeClass fms_diag_outfield_index_type which (along with class fmsDiagOutfield_type) encapsulate related information used in updating the output buffers by the diag_manager send_data routines. This class in particular focuses on do loop index controls or settings. Note that the index names in this class should be indentical to the names used in the diag_manager send_data functions and in the "math" buffer update functions. The purpose of this class is also to allow for a smaller call function signature for the math/buffer update functions
 Nfms_diag_output_buffer_modContains buffer types and routines for the diag manager
 Cfmsdiagoutputbuffer_typeHolds an allocated buffer0-5d object
 Nfms_diag_reduction_methods_mod
 Cdo_time_maxDoes the time_max reduction method. See include/fms_diag_reduction_methods.inc
 Cdo_time_minDoes the time_min reduction method. See include/fms_diag_reduction_methods.inc
 Cdo_time_noneDoes the time_none reduction method. See include/fms_diag_reduction_methods.inc
 Cdo_time_sum_updateSum update updates the buffer for any reductions that involve summation (ie. time_sum, avg, rms, pow) TODO This needs to be extended to integers
 Ctime_update_doneFinishes a reduction that involves an average (ie. time_avg, rms, pow) This takes the average at the end of the time step
 Nfms_diag_time_reduction_mod
 Cfmsdiagtimereduction_type
 Nfms_diag_yaml_mod
 Cdiagyamlfiles_typeType to hold the diag_file information
 Cdiagyamlfilesvar_typeType to hold the info a diag_field
 Cdiagyamlobject_typeObject that holds the information of the diag_yaml
 Cfilelist_typeType to hold an array of sorted diag_files
 Csubregion_typeType to hold the sub region information about a file
 Cvarlist_typeType to hold an array of sorted diag_fiels
 Nfms_io_utils_mod
 Callocate_array
 Cchar_linked_listA linked list of strings
 Cget_array_section
 Cget_data_type_string
 Cget_mosaic_tile_file
 Cparse_mask_table
 Cput_array_section
 Nfms_mod
 Cmonotonic_array
 Cnml_errors_typeNamelist read error values
 Nfms_netcdf_domain_io_mod
 Ccompute_global_checksum
 Cdomaindimension_tDomain variable
 Cfmsnetcdfdomainfile_tNetcdf domain file type
 Nfms_netcdf_unstructured_domain_io_mod
 Cfmsnetcdfunstructureddomainfile_tNetcdf unstructured domain file type
 Nfms_string_utils_mod
 Cc_freeFrees a C pointer
 Cc_strlenFinds the length of a C-string
 Cfms_c2f_stringConverts a C string to a Fortran string
 Cfms_cstring2cpointerConverts a kind=c_char to type c_ptr
 Cfms_find_my_string_bindingPrivate c function that finds a string in a SORTED array of c pointers
 Cfms_find_uniqueC function that finds the number of unique strings in an array of c pointers
 Cfms_sort_thisSorts an array of pointers (my pointer) of size (p_size) in alphabetical order
 CstringifyConverts an array of real numbers to a string
 Nfms_yaml_output_mod
 Cfmsyamloutkeys_typeKeys for the output yaml on a given level corresponding to the struct in yaml_output_functions.c Should be set using the fms_f2c_string routine to get properly formatted c style strings level2keys should be set with add_level2key()
 Cfmsyamloutvalues_typeValues for the output yaml on a given level corresponding to the struct in yaml_output_functions.c
 Cwrite_yaml_from_struct_3
 Cyaml_out_add_level2key_cAdds a level 2 key (key that starts new tabbed section) to the list. yaml_out_add_level2key (wrapper routine) should be used instead
 Ngaussian_topog_mod
 Cgaussian_topog_init
 Cget_gaussian_topog
 Nget_cal_time_mod
 Cget_cal_timeAdded for mixed precision support. Updates force time_manager math to be done with kind=8 reals _wrap just casts a passed in r4 to r8 and calls r8 version
 Nget_grid_version_mod
 Cget_grid_version_1
 Cget_grid_version_2
 Ngrid2_mod
 Cget_grid_cell_areaFinds area of a grid cell
 Cget_grid_cell_centersGets grid cell centers
 Cget_grid_cell_verticesGets arrays of global grid cell boundaries for given model component and mosaic tile number
 Cget_grid_comp_areaGets the area of a given component per grid cell
 Cget_grid_sizeGets the size of the grid for one or all tiles
 Nhoriz_interp_bicubic_mod
 Cbcucof
 Cbcuint
 Cfill_xy
 Choriz_interp_bicubicPerform bicubic horizontal interpolation
 Choriz_interp_bicubic_newCreates a new horiz_interp_type for bicubic interpolation. Allocates space and initializes a derived-type variable that contains pre-computed interpolation indices and weights
 CindlFind the lower neighbour of xf in field xc, return is the index
 CinduFind the upper neighbour of xf in field xc, return is the index
 Nhoriz_interp_bilinear_mod
 Choriz_interp_bilinear
 Choriz_interp_bilinear_newCreates a horiz_interp_type for bilinear interpolation
 Choriz_interp_read_weights_bilinearSubroutines for reading in weight files and using that to fill in the horiz_interp type instead calculating it
 Cintersect
 Nhoriz_interp_conserve_mod
 Cdata_sumPrivate helper routines
 Choriz_interp_conserve
 Choriz_interp_conserve_newAllocates space and initializes a derived-type variable that contains pre-computed interpolation indices and weights
 Choriz_interp_conserve_version1
 Choriz_interp_conserve_version2
 Cstats
 Nhoriz_interp_mod
 Choriz_interpSubroutine for performing the horizontal interpolation between two grids
 Choriz_interp_newAllocates space and initializes a derived-type variable that contains pre-computed interpolation indices and weights
 Choriz_interp_read_weightsSubroutines for reading in weight files and using that to fill in the horiz_interp type instead calculating it
 Choriz_interp_solo_1d
 Cis_lat_lonPrivate helper routines
 Nhoriz_interp_spherical_mod
 Cfull_searchPrivate helper routines
 Choriz_interp_spherical
 Choriz_interp_spherical_new
 Choriz_interp_spherical_wght
 Cradial_search
 Cspherical_distance
 Nhoriz_interp_type_mod
 Cassignment(=)
 Choriz_interp_typeHolds data pointers and metadata for horizontal interpolations, passed between the horiz_interp modules
 Chorizinterpreals4_typeHolds real(4) pointers for use in horiz_interp_type
 Chorizinterpreals8_typeReal(8) pointers for use in horiz_interp_type
 Cstats
 Ninterpolator_mod
 Cassignment(=)Private assignment override interface for interpolate type
 Ccart_to_latlon
 Ccell_center2
 Cdiag_read_data
 Cfms2io_interpolator_init
 Cget_axis_latlon_data
 Cget_axis_level_data
 Cinterp_linear
 Cinterp_weighted_scalarPrivate interface for weighted scalar interpolation
 Cinterpolate_r4_typeRedundant climatology data between fields
 Cinterpolate_r8_type
 Cinterpolate_type
 CinterpolatorInterpolates a field to a model grid
 Cinterpolator_init
 Clatlon2xyz
 Cread_data
 Cread_data_no_time_axis
 Nmersennetwister_mod
 Cnew_randomnumbersequence
 CrandomnumbersequenceThe type containing the state variable
 Nmonin_obukhov_inter
 Cmonin_obukhov_derivative_m
 Cmonin_obukhov_derivative_t
 Cmonin_obukhov_diff
 Cmonin_obukhov_drag_1d
 Cmonin_obukhov_integral_m
 Cmonin_obukhov_integral_tq
 Cmonin_obukhov_profile_1d
 Cmonin_obukhov_solve_zeta
 Cmonin_obukhov_stable_mix
 Nmonin_obukhov_mod
 Cmo_derivative_m
 Cmo_derivative_t
 Cmo_diff
 Cmo_dragCompute surface drag coefficients
 Cmo_integral_m
 Cmo_integral_tq
 Cmo_profile
 Cstable_mix
 Nmosaic2_mod
 Ccalc_mosaic_grid_area
 Ccalc_mosaic_grid_great_circle_area
 Cget_mosaic_xgrid
 Cis_inside_polygon
 Nmpp_domains_mod
 Ccheck_data_sizePrivate interface for internal usage, compares two sizes
 Ccontact_typeType used to represent the contact between tiles
 Cdomain1dOne dimensional domain used to manage shared data access between pes
 Cdomain1d_specA private type used to specify index limits for a domain decomposition
 Cdomain2dThe domain2D type contains all the necessary information to define the global, compute and data domains of each task, as well as the PE associated with the task. The PEs from which remote data may be acquired to update the data domain are also contained in a linked list of neighbours
 Cdomain2d_specPrivate type to specify multiple index limits and pe information for a 2D domain
 Cdomain_axis_specUsed to specify index limits along an axis of a domain
 Cdomaincommunicator2dUsed for sending domain data between pe's
 CdomainugDomain information for managing data on unstructured grids
 Cindex_typeIndex bounds for use in nestSpec
 Cmpp_broadcast_domainBroadcasts domain to every pe. Only useful outside the context of it's own pelist
 Cmpp_check_fieldParallel checking between two ensembles which run on different set pes at the same time
There are two forms for the mpp_check_field call. The 2D version is generally to be used and 3D version is built by repeated calls to the 2D version.

Example usage:
 Cmpp_complete_do_updatePrivate interface used for non blocking updates
 Cmpp_complete_group_updateCompletes a pending non-blocking group update Must follow a call to mpp_start_group_update
 Cmpp_complete_update_domainsMust be used after a call to mpp_start_update_domains in order to complete a nonblocking domain update. See mpp_start_update_domains for more info
 Cmpp_copy_domainCopy 1D or 2D domain
 Cmpp_create_group_updateConstructor for the mpp_group_update_type which is then used with mpp_start_group_update
 Cmpp_deallocate_domainDeallocate given 1D or 2D domain
 Cmpp_define_domainsSet up a domain decomposition
 Cmpp_define_layoutRetrieve layout associated with a domain decomposition. Given a global 2D domain and the number of divisions in the decomposition ndivs (usually the PE count unless some domains are masked) this calls returns a 2D domain layout. By default, mpp_define_layout will attempt to divide the 2D index space into domains that maintain the aspect ratio of the global domain. If this cannot be done, the algorithm favours domains that are longer in x than y, a preference that could improve vector performance.
Example usage:
 Cmpp_define_null_domainDefines a nullified 1D or 2D domain
 Cmpp_do_checkPrivate interface to updates data domain of 3D field whose computational domains have been computed
 Cmpp_do_get_boundary
 Cmpp_do_get_boundary_ad
 Cmpp_do_global_fieldPrivate helper interface used by mpp_global_field
 Cmpp_do_global_field_a2a
 Cmpp_do_global_field_ad
 Cmpp_do_group_update
 Cmpp_do_redistribute
 Cmpp_do_updatePrivate interface used for mpp_update_domains
 Cmpp_do_update_adPasses a data field from a unstructured grid to an structured grid
Example usage:
 Cmpp_do_update_nest_coarseUsed by mpp_update_nest_coarse to perform domain updates
 Cmpp_do_update_nest_fine
 Cmpp_get_boundaryGet the boundary data for symmetric domain when the data is at C, E, or N-cell center.
mpp_get_boundary is used to get the boundary data for symmetric domain when the data is at C, E, or N-cell center. For cubic grid, the data should always at C-cell center.
Example usage:
 Cmpp_get_boundary_ad
 Cmpp_get_compute_domainThese routines retrieve the axis specifications associated with the compute domains. The domain is a derived type with private elements. These routines retrieve the axis specifications associated with the compute domains The 2D version of these is a simple extension of 1D.
Example usage:
 Cmpp_get_compute_domainsRetrieve the entire array of compute domain extents associated with a decomposition
 Cmpp_get_data_domainThese routines retrieve the axis specifications associated with the data domains. The domain is a derived type with private elements. These routines retrieve the axis specifications associated with the data domains. The 2D version of these is a simple extension of 1D.
Example usage:
 Cmpp_get_domain_extents
 Cmpp_get_f2c_indexGet the index of the data passed from fine grid to coarse grid.
Example usage:
 Cmpp_get_global_domainThese routines retrieve the axis specifications associated with the global domains. The domain is a derived type with private elements. These routines retrieve the axis specifications associated with the global domains. The 2D version of these is a simple extension of 1D.
Example usage:
 Cmpp_get_global_domains
 Cmpp_get_layoutRetrieve layout associated with a domain decomposition The 1D version of this call returns the number of divisions that was assigned to this decomposition axis. The 2D version of this call returns an array of dimension 2 holding the results on two axes.
Example usage:
 Cmpp_get_memory_domainThese routines retrieve the axis specifications associated with the memory domains. The domain is a derived type with private elements. These routines retrieve the axis specifications associated with the memory domains. The 2D version of these is a simple extension of 1D.
Example usage:
 Cmpp_get_neighbor_peRetrieve PE number of a neighboring domain
 Cmpp_get_pelistRetrieve list of PEs associated with a domain decomposition. The 1D version of this call returns an array of the PEs assigned to this 1D domain decomposition. In addition the optional argument pos may be used to retrieve the 0-based position of the domain local to the calling PE, i.e., domain%list(pos)%pe is the local PE, as returned by mpp_pe(). The 2D version of this call is identical to 1D version
 Cmpp_global_fieldFill in a global array from domain-decomposed arrays.
 Cmpp_global_field_ad
 Cmpp_global_field_ugSame functionality as mpp_global_field but for unstructured domains
 Cmpp_global_maxGlobal max of domain-decomposed arrays.
mpp_global_max is used to get the maximum value of a domain-decomposed array on each PE. MPP_TYPE_can be of type integer or real; of 4-byte or 8-byte kind; of rank up to 5. The dimension of locus must equal the rank of field.

All PEs in a domain decomposition must call mpp_global_max, and each will have the result upon exit. The function mpp_global_min, with an identical syntax. is also available
 Cmpp_global_minGlobal min of domain-decomposed arrays.
mpp_global_min is used to get the minimum value of a domain-decomposed array on each PE. MPP_TYPE_can be of type integer or real; of 4-byte or 8-byte kind; of rank up to 5. The dimension of locus must equal the rank of field.

All PEs in a domain decomposition must call mpp_global_min, and each will have the result upon exit. The function mpp_global_max, with an identical syntax. is also available
 Cmpp_global_sumGlobal sum of domain-decomposed arrays.
mpp_global_sum is used to get the sum of a domain-decomposed array on each PE. MPP_TYPE_ can be of type integer, complex, or real; of 4-byte or 8-byte kind; of rank up to 5
 Cmpp_global_sum_ad
 Cmpp_global_sum_tl
 Cmpp_group_update_typeUsed for updates on a group
 Cmpp_modify_domainModifies the extents (compute, data and global) of a given domain
 Cmpp_nullify_domain_listNullify domain list. This interface is needed in mpp_domains_test. 1-D case can be added in if needed.
Example usage:
 Cmpp_pass_sg_to_ugPasses data from a structured grid to an unstructured grid
Example usage:
 Cmpp_pass_ug_to_sgPasses a data field from a structured grid to an unstructured grid
Example usage:
 Cmpp_redistributeReorganization of distributed global arrays.
mpp_redistribute is used to reorganize a distributed array. MPP_TYPE_can be of type integer, complex, or real; of 4-byte or 8-byte kind; of rank up to 5.
Example usage: call mpp_redistribute( domain_in, field_in, domain_out, field_out )
 Cmpp_reset_group_update_field
 Cmpp_set_compute_domainThese routines set the axis specifications associated with the compute domains. The domain is a derived type with private elements. These routines set the axis specifications associated with the compute domains The 2D version of these is a simple extension of 1D.
Example usage:
 Cmpp_set_data_domainThese routines set the axis specifications associated with the data domains. The domain is a derived type with private elements. These routines set the axis specifications associated with the data domains. The 2D version of these is a simple extension of 1D.
Example usage:
 Cmpp_set_global_domainThese routines set the axis specifications associated with the global domains. The domain is a derived type with private elements. These routines set the axis specifications associated with the global domains. The 2D version of these is a simple extension of 1D.
Example usage:
 Cmpp_start_do_updatePrivate interface used for non blocking updates
 Cmpp_start_group_updateStarts non-blocking group update Must be followed up with a call to mpp_complete_group_update mpp_group_update_type can be created with mpp_create_group_update
 Cmpp_start_update_domainsInterface to start halo updates mpp_start_update_domains is used to start a halo update of a domain-decomposed array on each PE. MPP_TYPE_ can be of type complex, integer, logical or real; of 4-byte or 8-byte kind; of rank up to 5. The vector version (with two input data fields) is only present for \ereal types.

\empp_start_update_domains must be paired together with \empp_complete_update_domains. In mpp_start_update_domains, a buffer will be pre-post to receive (non-blocking) the data and data on computational domain will be packed and sent (non-blocking send) to other processor. In mpp_complete_update_domains, buffer will be unpacked to fill the halo and mpp_sync_self will be called to to ensure communication safe at the last call of mpp_complete_update_domains.

Each mpp_update_domains can be replaced by the combination of mpp_start_update_domains and mpp_complete_update_domains. The arguments in mpp_start_update_domains and mpp_complete_update_domains should be the exact the same as in mpp_update_domains to be replaced except no optional argument "complete". The following are examples on how to replace mpp_update_domains with mpp_start_update_domains/mpp_complete_update_domains
 Cmpp_update_domainsPerforms halo updates for a given domain.
 Cmpp_update_domains_adSimilar to mpp_update_domains , updates adjoint domains
 Cmpp_update_nest_coarsePass the data from fine grid to fill the buffer to be ready to be interpolated onto coarse grid.
Example usage:
 Cmpp_update_nest_finePass the data from coarse grid to fill the buffer to be ready to be interpolated onto fine grid.
Example usage:
 Cnest_domain_typeDomain with nested fine and course tiles
 Cnest_level_typePrivate type to hold data for each level of nesting
 CnestspecUsed to specify bounds and index information for nested tiles as a linked list
 Cnonblock_typeUsed for nonblocking data transfer
 Coperator(.eq.)Equality/inequality operators for domaintypes.
 Coperator(.ne.)
 Coverlap_typeType for overlapping data
 CoverlapspecPrivate type for overlap specifications
 Ctile_typeUpper and lower x and y bounds for a tile
 Cunstruct_axis_specPrivate type for axis specification data for an unstructured grid
 Cunstruct_domain_specPrivate type for axis specification data for an unstructured domain
 Cunstruct_overlap_typePrivate type
 Cunstruct_pass_typePrivate type
 Nmpp_efp_mod
 Cassignment(=)Assignment override interface for mpp_efp_type
 Cmpp_efp_typeThe Extended Fixed Point (mpp_efp) type provides a public interface for doing sums and taking differences with this type
 Cmpp_reproducing_sumThis interface uses a conversion to an integer representation of real numbers to give order-invariant sums that will reproduce across PE count
 Coperator(+)Operator override interface for mpp_efp_type
 Coperator(-)Operator override interface for mpp_efp_type
 Nmpp_io_mod
 Catttype
 Caxistype
 Cfieldtype
 Cfiletype
 Cmpp_copy_meta
 Cmpp_def_dim
 Cmpp_get_att_value
 Cmpp_get_attsGet file global metadata
 Cmpp_get_id
 Cmpp_io_unstructured_read
 Cmpp_io_unstructured_write
 Cmpp_modify_meta
 Cmpp_read
 Cmpp_read_compressed
 Cmpp_read_distributed_ascii
 Cmpp_write
 Cmpp_write_compressed
 Cmpp_write_metaEach file can contain any number of fields, which can be functions of 0-3 spatial axes and 0-1 time axes. Axis descriptors are stored in the <axistype> structure and field descriptors in the <fieldtype> structure
 Cmpp_write_unlimited_axis
 Cvalidtype
 Cwrite_record
 Nmpp_mod
 Carray_to_charTakes a given integer or real array and returns it as a string
 CclockClock contains an array of event profiles for a region
 Cclock_data_summarySummary of information from a clock run
 CcommunicatorCommunication information for message passing libraries
 CeventCommunication event profile
 Cmpp_alltoallScatter a vector across all PEs
 Cmpp_broadcastPerform parallel broadcasts
 Cmpp_chksumCalculate parallel checksums
 Cmpp_errorError handler
 Cmpp_gatherGather data sent from pelist onto the root pe Wrapper for MPI_gather, can be used with and without indices
 Cmpp_maxReduction operations. Find the max of scalar a from the PEs in pelist result is also automatically broadcast to all PEs
 Cmpp_minReduction operations. Find the min of scalar a from the PEs in pelist result is also automatically broadcast to all PEs
 Cmpp_recvRecieve data from another PE
 Cmpp_scatterScatter (ie - is) * (je - js) contiguous elements of array data from the designated root pe into contigous members of array segment in each pe that is included in the pelist argument
 Cmpp_sendSend data to a receiving PE
 Cmpp_sumReduction operation
 Cmpp_sum_adCalculates sum of a given numerical array across pe's for adjoint domains
 Cmpp_transmitBasic message-passing call
 Cmpp_typeData types for generalized data transfer (e.g. MPI_Type)
 Cmpp_type_createCreate a mpp_type variable
 Cmpp_type_listPersisent elements for linked list interaction
 Csummary_structHolds name and clock data for use in mpp_util.h
 Nmpp_pset_mod
 Cmpp_pset_broadcast_ptr
 Cmpp_pset_print_chksum
 Cmpp_pset_type
 Cmpp_recv_ptr
 Cmpp_send_ptr
 Nnetcdf_io_mod
 Cbc_informationInformation needed fr regional restart variables
 Ccompressed_write
 Ccompresseddimension_tCompressed dimension
 Cdimension_informationInformation about the current dimensions for regional restart variables
 Cfmsnetcdffile_tNetcdf file type
 Cgather_data_bc
 Cget_global_attribute
 Cget_variable_attribute
 Cis_validThe interface is needed to accomodate pgi because it can't handle class * and there was no other way around it
 Cnetcdf_add_restart_variable
 Cnetcdf_read_data
 Cnetcdf_write_data
 Cregister_global_attribute
 Cregister_variable_attribute
 Crestartvariable_tRestart variable
 Cscatter_data_bc
 Cvalid_tRange type for a netcdf variable
 Nrandom_numbers_mod
 CgetrandomnumbersReturns scalar, 1 or 2 D random real numbers
 CinitializerandomnumberstreamInitializes stream for generating random numbers
 CrandomnumberstreamType to hold a stream of randomly generated numbers
 Nsat_vapor_pres_k_mod
 Ccompute_es_k
 Ccompute_es_liq_ice_k
 Ccompute_es_liq_k
 Ccompute_mrs_k
 Ccompute_qs_k
 Clookup_des2_k
 Clookup_des3_k
 Clookup_des_k
 Clookup_es2_des2_k
 Clookup_es2_k
 Clookup_es3_des3_k
 Clookup_es3_k
 Clookup_es_des_k
 Clookup_es_k
 Csat_vapor_pres_init_k
 Nsat_vapor_pres_mod
 Ccheck_1d
 Ccheck_2d
 Ccompute_mrsFor the given temperatures, pressures and optionally vapor mixing ratio, returns the vapor mixing ratio at saturation (optionally at relative humidity hc instead of at saturation) and optionally the derivative of saturation vapor mixing ratio w.r.t. temperature, and the saturation vapor pressure
 Ccompute_qsFor the given temperatures, pressures and optionally vapor specific humidity, returns the specific humidity at saturation (optionally at relative humidity hc instead of at saturation) and optionally the derivative of saturation specific humidity w.r.t. temperature, and the saturation vapor pressure
 CdescompProvided for backward compatibility (to be removed soon)
 CescompProvided for backward compatibility (to be removed soon)
 Clookup_desFor the given temperatures, returns the derivative of saturation vapor pressure with respect to temperature
 Clookup_des2
 Clookup_des3
 Clookup_esFor the given temperatures, returns the saturation vapor pressures
 Clookup_es2
 Clookup_es2_des2
 Clookup_es3
 Clookup_es3_des3
 Clookup_es_desFor the given temperatures, returns the saturation vapor pressure and the derivative of saturation vapor pressure with respect to temperature
 Cshow_all_bad
 Ctemp_check
 Nstock_constants_mod
 Cstock_typeHolds stocks amounts per PE values
 Ntime_interp_external2_mod
 Cext_fieldtypeRepresents external fields
 CfiletypeHolds filename and file object
 Ctime_interp_externalProvide data from external file interpolated to current model time. Data may be local to current processor or global, depending on "init_external_field" flags. Uses FMS2 IO for I/O
 Ctime_interp_external_bridge
 Ntime_interp_mod
 Ctime_interpReturns a weight and dates or indices for interpolating between two dates. The interface fraction_of_year is provided for backward compatibility with the previous version.
 Ntime_manager_mod
 Cassignment(=)Operator override interface for use with time_type
 Coperator(*)Operator override interface for use with time_type
 Coperator(+)Operator override interface for use with time_type
 Coperator(-)Operator override interface for use with time_type
 Coperator(/)Operator override interface for use with time_type
 Coperator(//)Operator override interface for use with time_type
 Coperator(/=)Operator override interface for use with time_type
 Coperator(<)Operator override interface for use with time_type
 Coperator(<=)Operator override interface for use with time_type
 Coperator(==)Operator override interface for use with time_type
 Coperator(>)Operator override interface for use with time_type
 Coperator(>=)Operator override interface for use with time_type
 Creal_to_time_typeWrapper for the real to time interface Takes seconds as reals to convert to a time_type representation of an interval r4 versions just casts to r8
 Cset_dateGiven an input date in year, month, days, etc., creates a time_type that represents this time interval from the internally defined base date
 Cset_timeGiven some number of seconds and days, returns the corresponding time_type
 Ctime_typeType to represent amounts of time. Implemented as seconds and days to allow for larger intervals
 Ntopography_mod
 Cdetermine_ocean_points
 Cfind_indices
 Cget_ocean_fracReturns fractional area covered by ocean in a grid box. Returns fractional area covered by ocean in the given model grid boxes
 Cget_ocean_maskReturns a land-ocean mask in a grid box
 Cget_topog_meanReturns a "realistic" mean surface height field
 Cget_topog_stdevReturns a standard deviation of higher resolution topography with the given model grid boxes
 Cget_water_fracReturns fractional area covered by water
 Cget_water_maskReturns a land-water mask in a grid box
 Cinput_data
 Cinterp_topog
 Cinterp_water
 Ntracer_manager_mod
 Cget_tracer_indexFunction which returns the number assigned to the tracer name
 Cinst_typePrivate type to represent named instances
 Cset_tracer_profile
 Ctracer_name_typePrivate type to holds string data for a tracer
 Ctracer_typePrivate type to hold metadata for a tracer
 Ntridiagonal_mod
 Ctri_invertInterface to solve tridiagonal systems of equations for either kind value. Module level variables will be deallocated and allocated for every Since this relies on the state of module variables (unless A,B,C are specified) the values stored are distinct for each kind call unless the added optional argument store_both_kinds is true
 Ctridiag_reals_r4
 Ctridiag_reals_r8
 Nxgrid_mod
 Ccomm_typePrivate type used for exchange grid communication
 Cconservation_checkReturns three numbers which are the global sum of a variable
 Cconservation_check_ugFor an unstructured grid, returns three numbers which are the global sum of a variable (1) on its home model grid, (2) after interpolation to the other side grid(s), and (3) after re_interpolation back onto its home side grid(s)
 Cget_area_elements
 Cget_from_xgridSums data from exchange grid to model grid
 Cget_from_xgrid_ugget_from_xgrid for unstructured grids
 Cget_nest_contact
 Cgrid_box_typeType to hold pointers for grid boxes
 Cgrid_typePrivate type to hold all data needed from given grid for an exchange grid
 Coverlap_typePrivate type for overlap exchange grid data
 Cput_to_xgridScatters data from model grid onto exchange grid
 Cput_to_xgrid_ugput_to_xgrid for unstructured grids
 Cset_frac_areaSets sub-grid area and numbering in the given exchange grid
 Cstock_move
 Cstock_move_ug
 Cx1_typePrivate type for exchange grid data
 Cx2_typePrivate type for exchange grid data
 Cxcell_typePrivate type for cell indices and data in the exchange grid
 Cxmap_typeType for an exchange grid, holds pointers to included grids and any necessary data
 Nyaml_parser_mod
 Cget_blockPrivate c function that get the block name from a block_id in a yaml file
 Cget_block_ids_allPrivate c function that gets the the ids of the blocks with block_name in the yaml file (see yaml_parser_binding.c)
 Cget_block_ids_childPrivate c function that gets the the ids of the blocks with block_name and that belong to a parent block id in the yaml file (see yaml_parser_binding.c)
 Cget_keyPrivate c function that get the key from a key_id in a yaml file
 Cget_key_ids_bindingPrivate c function that gets the ids of the key-value pairs in a block (see yaml_parser_binding.c)
 Cget_nkeys_bindingPrivate c function that gets the number of key-value pairs in a block (see yaml_parser_binding.c)
 Cget_num_blocks_allPrivate c function that determines the number of blocks with block_name in the yaml file (see yaml_parser_binding.c)
 Cget_num_blocks_childPrivate c function that determines the number of blocks with block_name that belong to a parent block with parent_block_id in the yaml file (see yaml_parser_binding.c)
 Cget_num_unique_blocks_bindPrivate c function that determines the number of unique blocks that belong to a parent block with parent_block_id in the yaml file (see yaml_parser_binding.c)
 Cget_unique_block_ids_bindPrivate c function that gets the the ids of the unique blocks in the yaml file (see yaml_parser_binding.c)
 Cget_valuePrivate c function that get the value from a key_id in a yaml file
 Cget_value_from_keyDermine the value of a key from a keyname
 Cget_value_from_key_wrapPrivate c function that determines the value of a key in yaml_file (see yaml_parser_binding.c)
 Cis_valid_block_idPrivate c function that checks if a block_id is valid (see yaml_parser_binding.c)
 Cis_valid_file_idPrivate c function that checks if a file_id is valid (see yaml_parser_binding.c)
 Cis_valid_key_idPrivate c function that checks if a key_id is valid (see yaml_parser_binding.c)
 Copen_and_parse_file_wrapC functions binding