Difference between revisions of "Modules"

From WikiROMS
Jump to navigationJump to search
 
(2 intermediate revisions by one other user not shown)
Line 19: Line 19:


<section begin=mod_clima.F />;<span id="mod_clima.F"></span>[[mod_clima.F]]
<section begin=mod_clima.F />;<span id="mod_clima.F"></span>[[mod_clima.F]]
:If one of [[Options#CLIMATOLOGY | CLIMATOLOGY]], [[Options#AD_SENSITIVITY | AD_SENSITIVITY}}, [[Options#OPT_OBSERVATIONS | OPT_OBSERVATIONS]], or [[Options#SO_SEMI | SO_SEMI]] is '''#defined''', this will provide the storage for the climatological fields.<section end=mod_clima.F />
:If one of [[Options#CLIMATOLOGY | CLIMATOLOGY]], [[Options#AD_SENSITIVITY | AD_SENSITIVITY]], [[Options#OPT_OBSERVATIONS | OPT_OBSERVATIONS]], or [[Options#SO_SEMI | SO_SEMI]] is '''#defined''', this will provide the storage for the climatological fields.<section end=mod_clima.F />


<section begin=mod_coupler.F />;<span id="mod_coupler.F"></span>[[mod_coupler.F]]
<section begin=mod_coupler.F />;<span id="mod_coupler.F"></span>[[mod_coupler.F]]
:If either [[Options#MODEL_COUPLING | MODEL_COUPLING]] or [[Options#ESMF_LIB | ESMF_LIB]] is '''#defined''', this will set up the requisite fields and data structures for the coupling.
:If either [[Options#MODEL_COUPLING | MODEL_COUPLING]] or [[Options#ESMF_LIB | ESMF_LIB]] is '''#defined''', this will set up the requisite fields and data structures for the coupling.<section end=mod_coupler.F />
<section end=mod_coupler.F />


<section begin=mod_coupling.F />;<span id="mod_coupling.F"></span>[[mod_coupling.F]]
<section begin=mod_coupling.F />;<span id="mod_coupling.F"></span>[[mod_coupling.F]]
Line 50: Line 49:


<section begin=mod_iounits.F />;<span id="mod_iounits.F"></span>[[mod_iounits.F]]
<section begin=mod_iounits.F />;<span id="mod_iounits.F"></span>[[mod_iounits.F]]
:.<section end=mod_iounits.F />
:This contains a number of variables used by the I/O, including file names and file IDs.<section end=mod_iounits.F />


<section begin=mod_kinds.F />;<span id="mod_kinds.F"></span>[[mod_kinds.F]]
<section begin=mod_kinds.F />;<span id="mod_kinds.F"></span>[[mod_kinds.F]]
:.<section end=mod_kinds.F />
:This contains the integers associated with the various integer and real Fortran types. If you find more systems supporting 128-bit reals, let us know.<section end=mod_kinds.F />


<section begin=mod_mixing.F />;<span id="mod_mixing.F"></span>[[mod_mixing.F]]
<section begin=mod_mixing.F />;<span id="mod_mixing.F"></span>[[mod_mixing.F]]
:.
: This contains the arrays for the horizontal and vertical mixing parameterizations, including those used by the various optional schemes.<section end=mod_mixing.F />
<section end=mod_mixing.F />


<section begin=mod_ncparam.F />;<span id="mod_ncparam.F"></span>[[mod_ncparam.F]]
<section begin=mod_ncparam.F />;<span id="mod_ncparam.F"></span>[[mod_ncparam.F]]
:.
:This contains all sorts of parameters relating to the NetCDF I/O files, including that read from the '''varinfo.dat''' file. The parameter [[Variables#MT | MT]] is set here, giving the maximum number of variables that can be read.<section end=mod_ncparam.F />
<section end=mod_ncparam.F />


<section begin=mod_nesting.F />;<span id="mod_nesting.F"></span>[[mod_nesting.F]]
<section begin=mod_nesting.F />;<span id="mod_nesting.F"></span>[[mod_nesting.F]]
:.
:If [[Options#NESTING | NESTING]] is '''#defined''', this module defines generic structures used for nesting, composed, and mosaic grids.<section end=mod_nesting.F />
<section end=mod_nesting.F />


<section begin=mod_netcdf.F />;<span id="mod_netcdf.F"></span>[[mod_netcdf.F]]
<section begin=mod_netcdf.F />;<span id="mod_netcdf.F"></span>[[mod_netcdf.F]]
:.
:This brings in '''netcdf.mod''' and defines a few type variables based on it.<section end=mod_netcdf.F />
<section end=mod_netcdf.F />


<section begin=mod_obs.F />;<span id="mod_obs.F"></span>[[mod_obs.F]]
<section begin=mod_obs.F />;<span id="mod_obs.F"></span>[[mod_obs.F]]
:.
:If either [[Options#ASSIMILATION | ASSIMILATION]] or [[Options#NUDGING | NUDGING]] is '''#defined''', this contains variables for the observed fields.<section end=mod_obs.F />
<section end=mod_obs.F />


<section begin=mod_ocean.F />;<span id="mod_ocean.F"></span>[[mod_ocean.F]]
<section begin=mod_ocean.F />;<span id="mod_ocean.F"></span>[[mod_ocean.F]]
:.
:This contains the 2-D and 3-D fields of the primitive ocean variables and optionally the sediment variables.<section end=mod_ocean.F />
<section end=mod_ocean.F />


<section begin=mod_parallel.F />;<span id="mod_parallel.F"></span>[[mod_parallel.F]]
<section begin=mod_parallel.F />;<span id="mod_parallel.F"></span>[[mod_parallel.F]]
:.
:This sets up some global variables such as [[Variables#Master | Master]], which is true for the master thread or process. It also initializes the internal ROMS profiling arrays.<section end=mod_parallel.F />
<section end=mod_parallel.F />


<section begin=mod_param.F />;<span id="mod_param.F"></span>[[mod_param.F]]
<section begin=mod_param.F />;<span id="mod_param.F"></span>[[mod_param.F]]
:.
:This contains the sizes of each grid used, plus things like how many tidal constituents are being used. Many of these are read from the input files during initialization, not known at compile time.<section end=mod_param.F />
<section end=mod_param.F />


<section begin=mod_scalars.F />;<span id="mod_scalars.F"></span>[[mod_scalars.F]]
<section begin=mod_scalars.F />;<span id="mod_scalars.F"></span>[[mod_scalars.F]]
:.
:This contains a large number of scalars, i.e. values which don't have spatial dependence. Some are fixed constants such as [[Variables#itemp | itemp]] referring to the temperature tracer. Others could have a different value on each grid.<section end=mod_scalars.F />
<section end=mod_scalars.F />


<section begin=mod_sediment.F />;<span id="mod_sediment.F"></span>[[mod_sediment.F]]
<section begin=mod_sediment.F />;<span id="mod_sediment.F"></span>[[mod_sediment.F]]
:.
:If either [[Options#SEDIMENT | SEDIMENT]] or [[Options#BBL_MODEL | BBL_MODEL]] is '''#defined''', this contains parameters for the respective model.<section end=mod_sediment.F />
<section end=mod_sediment.F />


<section begin=mod_sources.F />;<span id="mod_sources.F"></span>[[mod_sources.F]]
<section begin=mod_sources.F />;<span id="mod_sources.F"></span>[[mod_sources.F]]
:.
:If one of [[Options#UV_PSOURCE | UV_PSOURCE]], [[Options#TS_PSOURCE | TS_PSOURCE]] or [[Options#Q_PSOURCE | Q_PSOURCE]] is '''#defined''', this contains the variables used for point sources.<section end=mod_sources.F />
<section end=mod_sources.F />


<section begin=mod_stepping.F />;<span id="mod_stepping.F"></span>[[mod_stepping.F]]
<section begin=mod_stepping.F />;<span id="mod_stepping.F"></span>[[mod_stepping.F]]
:.
:This contains the timestepping variables used to point to the relevant time level.<section end=mod_stepping.F />
<section end=mod_stepping.F />


<section begin=mod_storage.F />;<span id="mod_storage.F"></span>[[mod_storage.F]]
<section begin=mod_storage.F />;<span id="mod_storage.F"></span>[[mod_storage.F]]
:.
:If [[Options#PROPAGATOR | PROPAGATOR]] is '''#defined''', this module defines the work space for the Generalized Stability Theory (GST) Analysis package (ARPACK).<section end=mod_storage.F />
<section end=mod_storage.F />


<section begin=mod_strings.F />;<span id="mod_strings.F"></span>[[mod_strings.F]]
<section begin=mod_strings.F />;<span id="mod_strings.F"></span>[[mod_strings.F]]
:.
:This contains strings such as a title for the run, the list of '''cpp''' options defined, and the names of the sections of code being profiled.<section end=mod_strings.F />
<section end=mod_strings.F />


<section begin=mod_tides.F />;<span id="mod_tides.F"></span>[[mod_tides.F]]
<section begin=mod_tides.F />;<span id="mod_tides.F"></span>[[mod_tides.F]]
:.
:If one of [[Options#SSH_TIDES | SSH_TIDES]], [[Options#UV_TIDES | UV_TIDES]] or [[Options#POT_TIDES | POT_TIDES]] is '''#defined''', this contains the tidal variables. Also the [[Options#AVERAGES_DETIDE | AVERAGES_DETIDE]] variables if required.<section end=mod_tides.F />
<section end=mod_tides.F />

Latest revision as of 14:22, 1 July 2008

Modules

Now that we are using Fortran 90, the method of choice for managing data structures are modules. The ROMS/Modules directory contains all of the ROMS modules that contain globally used variables. The complete list is:

mod_arrays.F
This is actually a subroutine, not a module, but it calls the allocate and initialize routines for all the modules containing allocatable arrays.
mod_average.F
If AVERAGES is #defined, this will provide the storage for the running means of the fields you are averaging.
mod_bbl.F
If BBL_MODEL is #defined, this will provide the storage for the bottom boundary fields.
mod_biology.F
If BIOLOGY is #defined, this will provide the storage for the biology interaction parameters.
mod_boundary.F
This contains the storage for the open boundary conditions. If they aren't provided analytically, this will also provide the storage for fields read from a file that need to be time-interpolated.
mod_clima.F
If one of CLIMATOLOGY, AD_SENSITIVITY, OPT_OBSERVATIONS, or SO_SEMI is #defined, this will provide the storage for the climatological fields.
mod_coupler.F
If either MODEL_COUPLING or ESMF_LIB is #defined, this will set up the requisite fields and data structures for the coupling.
mod_coupling.F
If SOLVE3D is #defined, this will provide the storage for the fields used in coupling the 2-D and 3-D components of the simulation.
mod_diags.F
If DIAGNOSTICS is #defined, this will provide the storage for the various tendency terms.
mod_eclight.F
If both BIOLOGY and ECOSIM are #defined, this will set up the spectral irradiance variables.
mod_eoscoef.F
If NONLIN_EOS is #defined, this will provide the polynomial expansion coefficients for the nonlinear equation of state for sea water.
mod_floats.F
If FLOATS is #defined, this will provide the storage for the float tracking variables.
mod_forces.F
This provides the storage for the surface and bottom forcing fields.
mod_fourdvar.F
If either FOUR_DVAR or VERIFICATION is #defined, this will set up the variational data assimilation variables.
mod_grid.F
This provides the storage for the model grid fields.
mod_iounits.F
This contains a number of variables used by the I/O, including file names and file IDs.
mod_kinds.F
This contains the integers associated with the various integer and real Fortran types. If you find more systems supporting 128-bit reals, let us know.
mod_mixing.F
This contains the arrays for the horizontal and vertical mixing parameterizations, including those used by the various optional schemes.
mod_ncparam.F
This contains all sorts of parameters relating to the NetCDF I/O files, including that read from the varinfo.dat file. The parameter MT is set here, giving the maximum number of variables that can be read.
mod_nesting.F
If NESTING is #defined, this module defines generic structures used for nesting, composed, and mosaic grids.
mod_netcdf.F
This brings in netcdf.mod and defines a few type variables based on it.
mod_obs.F
If either ASSIMILATION or NUDGING is #defined, this contains variables for the observed fields.
mod_ocean.F
This contains the 2-D and 3-D fields of the primitive ocean variables and optionally the sediment variables.
mod_parallel.F
This sets up some global variables such as Master, which is true for the master thread or process. It also initializes the internal ROMS profiling arrays.
mod_param.F
This contains the sizes of each grid used, plus things like how many tidal constituents are being used. Many of these are read from the input files during initialization, not known at compile time.
mod_scalars.F
This contains a large number of scalars, i.e. values which don't have spatial dependence. Some are fixed constants such as itemp referring to the temperature tracer. Others could have a different value on each grid.
mod_sediment.F
If either SEDIMENT or BBL_MODEL is #defined, this contains parameters for the respective model.
mod_sources.F
If one of UV_PSOURCE, TS_PSOURCE or Q_PSOURCE is #defined, this contains the variables used for point sources.
mod_stepping.F
This contains the timestepping variables used to point to the relevant time level.
mod_storage.F
If PROPAGATOR is #defined, this module defines the work space for the Generalized Stability Theory (GST) Analysis package (ARPACK).
mod_strings.F
This contains strings such as a title for the run, the list of cpp options defined, and the names of the sections of code being profiled.
mod_tides.F
If one of SSH_TIDES, UV_TIDES or POT_TIDES is #defined, this contains the tidal variables. Also the AVERAGES_DETIDE variables if required.