FMS 2025.01-dev
Flexible Modeling System
|
Type descriptions and global variables for the diag_manager modules. More...
Data Types | |
type | coord_type |
Define the region for field output. More... | |
type | diag_atttype |
Attribute type for diagnostic fields. More... | |
type | diag_axis_type |
Type to hold the diagnostic axis description. More... | |
type | diag_fieldtype |
Diagnostic field type. More... | |
type | diag_global_att_type |
type | diag_grid |
Contains the coordinates of the local domain to output. More... | |
type | file_type |
Type to define the diagnostic files that will be written as defined by the diagnostic table. More... | |
type | fmsdiagattribute_type |
Type to hold the attributes of the field/axis/file. More... | |
type | input_field_type |
Type to hold the input field description. More... | |
type | output_field_type |
Type to hold the output field description. More... | |
Functions/Subroutines | |
subroutine | diag_data_init () |
Initialize and write the version number of this file to the log file. | |
subroutine | fms_add_attribute (this, att_name, att_value) |
Adds an attribute to the attribute type. | |
integer function | get_base_day () |
gets the module variable base_day | |
integer function | get_base_hour () |
gets the module variable base_hour | |
integer function | get_base_minute () |
gets the module variable base_minute | |
integer function | get_base_month () |
gets the module variable base_month | |
integer function | get_base_second () |
gets the module variable base_second | |
type(time_type) function | get_base_time () |
gets the module variable base_time | |
integer function | get_base_year () |
gets the module variable base_year | |
integer function | get_var_type (var) |
gets the type of a variable | |
subroutine | set_base_time (base_time_int) |
Set the module variable base_time. | |
subroutine | write_metadata (this, fileobj, var_name, cell_methods) |
Writes out the attributes from an fmsDiagAttribute_type. | |
Variables | |
logical | append_pelist_name = .FALSE. |
character(len=7) | avg_name = 'average' |
Name of the average fields. | |
integer, private | base_day |
integer, private | base_hour |
integer, private | base_minute |
integer, private | base_month |
integer, private | base_second |
type(time_type), private | base_time |
The base_time read from diag_table. | |
logical, private | base_time_set |
Flag indicating that the base_time is set This is to prevent users from calling set_base_time multiple times. | |
integer, private | base_year |
integer, parameter | begin_time = 1 |
Use the begining of the time average bounds. | |
real(r8_kind), parameter | cmor_missing_value = 1.0e20 |
CMOR standard missing value. | |
integer, parameter | daily = 24 |
logical | debug_diag_manager = .FALSE. |
integer, parameter | diag_all = 2 |
integer, parameter | diag_days = 4 |
integer, parameter | diag_field_not_found = -1 |
Return value for a diag_field that isn't found in the diag_table. | |
integer, parameter | diag_hours = 3 |
type(time_type) | diag_init_time |
Time diag_manager_init called. If init_time not included in diag_manager_init call, then same as base_time. | |
integer | diag_log_unit |
integer, parameter | diag_minutes = 2 |
integer, parameter | diag_months = 5 |
integer, parameter | diag_not_found = -1 |
integer, parameter | diag_not_registered = 0 |
character(len=1), parameter | diag_null_string = " " |
integer, parameter | diag_ocean = 1 |
integer, parameter | diag_other = 0 |
integer, parameter | diag_registered_id = 10 |
integer, parameter | diag_seconds = 1 |
integer, parameter | diag_years = 6 |
integer, parameter | direction_down = -1 |
The axis points down if positive. | |
integer, parameter | direction_up = 1 |
The axis points up if positive. | |
integer, parameter | diurnal = 2 |
logical | do_diag_field_log = .FALSE. |
real(r8_kind) | empty = 0.0 |
integer, parameter | end_of_run = -1 |
integer, parameter | end_time = 3 |
Use the end of the time average bounds. | |
integer, parameter | every_time = 0 |
type(fmsnetcdfdomainfile_t), dimension(:), allocatable, target | fileobj |
type(fmsnetcdffile_t), dimension(:), allocatable, target | fileobjnd |
type(fmsnetcdfunstructureddomainfile_t), dimension(:), allocatable, target | fileobju |
type(file_type), dimension(:), allocatable, save | files |
real | fill_value = NF_FILL_REAL |
Fill value used. Value will be NF90_FILL_REAL if using the netCDF module, otherwise will be 9.9692099683868690e+36. | |
logical | first_send_data_call = .TRUE. |
logical | flush_nc_files = .FALSE. |
Control if diag_manager will force a flush of the netCDF file on each write. Note: changing this to .TRUE. can greatly reduce the performance of the model, as the model must wait until the flush to disk has completed. | |
character(len=2), dimension(:), allocatable | fnum_for_domain |
If this file number in the array is for the "unstructured" or "2d" domain. | |
integer, parameter | glo_reg_val = -999 |
Value used in the region specification of the diag_table to indicate to use the full axis instead of a sub-axis. | |
integer, parameter | glo_reg_val_alt = -1 |
Alternate value used in the region specification of the diag_table to indicate to use the full axis instead of a sub-axis. | |
character(len=256) | global_descriptor |
integer, parameter | i4 = -4 |
integer, parameter | i8 = -8 |
integer, parameter | index_gridtype = 2 |
type(input_field_type), dimension(:), allocatable | input_fields |
integer, parameter | instantaneous = 0 |
integer, parameter | is_x_axis = 1 |
integer indicating that it is a x axis | |
integer, parameter | is_y_axis = 2 |
integer indicating that it is a y axis | |
logical | issue_oor_warnings = .TRUE. |
Issue warnings if the output field has values outside the given range for a variable. | |
integer, parameter | latlon_gridtype = 1 |
integer | max_axes = 60 |
Maximum number of independent axes. | |
integer | max_axis_attributes = 4 |
Maximum number of user definable attributes per axis. | |
integer | max_field_attributes = 4 |
Maximum number of user definable attributes per field. Liptak: Changed from 2 to 4 20170718. | |
integer, parameter | max_fields_per_file = 300 |
Maximum number of fields per file. | |
integer | max_file_attributes = 2 |
Maximum number of user definable global attributes per file. | |
integer | max_files = 31 |
Maximum number of output files allowed. Increase via diag_manager_nml. | |
integer | max_input_fields = 600 |
Maximum number of input fields. Increase via diag_manager_nml. | |
integer | max_num_axis_sets = 25 |
integer | max_out_per_in_field = 150 |
Maximum number of output_fields per input_field. Increase via diag_manager_nml. | |
integer | max_output_fields = 300 |
Maximum number of output fields. Increase via diag_manager_nml. | |
integer, parameter | max_str_len = 255 |
Max length for a string. | |
integer, parameter | max_subaxes = 10 |
real(r8_kind) | max_value |
integer, parameter | middle_time = 2 |
Use the middle of the time average bounds. | |
real(r8_kind) | min_value |
logical | mix_snapshot_average_fields =.FALSE. |
logical | module_is_initialized = .FALSE. |
Indicate if diag_manager has been initialized. | |
integer, parameter | monthly = 30 |
Supported averaging intervals. | |
integer, parameter | no_diag_averaging = 0 |
integer, parameter | no_domain = 1 |
Use the FmsNetcdfFile_t fileobj. | |
character(len=8) | no_units = "NO UNITS" |
String indicating that the variable has no units. | |
integer | null_axis_id |
integer, parameter | null_gridtype = DIAG_NULL |
integer, parameter | null_type_int = -999 |
integer | num_files = 0 |
Number of output files currenly in use by the diag_manager. | |
integer | num_input_fields = 0 |
Number of input fields in use. | |
integer | num_output_fields = 0 |
Number of output fields in use. | |
integer | oor_warning = WARNING |
logical | oor_warnings_fatal = .FALSE. |
Cause a fatal error if the output field has a value outside the given range for a variable. | |
type(output_field_type), dimension(:), allocatable | output_fields |
integer | pack_size = 1 |
1 for double and 2 for float | |
character(len=6) | pack_size_str ="double" |
Pack size as a string to be used in fms2_io register call set to "double" or "float". | |
character(len=32) | pelist_name |
logical | prepend_date = .TRUE. |
Should the history file have the start date prepended to the file name. .TRUE. is only supported if the diag_manager_init routine is called with the optional time_init parameter. | |
integer, parameter | r4 = 4 |
integer, parameter | r8 = 8 |
Supported type/kind of the variable. | |
logical | region_out_use_alt_value = .TRUE. |
Will determine which value to use when checking a regional output if the region is the full axis or a sub-axis. The values are defined as GLO_REG_VAL (-999) and GLO_REG_VAL_ALT (-1) in diag_data_mod . | |
integer, parameter | six_hourly = 6 |
integer, parameter | string = 19 |
s is the 19th letter of the alphabet | |
integer, parameter | sub_regional = 4 |
This is a file with a sub_region use the FmsNetcdfFile_t fileobj. | |
integer, parameter | three_hourly = 3 |
integer, parameter | time_average = 4 |
The reduction method is average of values. | |
integer, parameter | time_diurnal = 6 |
The reduction method is diurnal. | |
integer, parameter | time_max = 2 |
The reduction method is max value. | |
integer, parameter | time_min = 1 |
The reduction method is min value. | |
integer, parameter | time_none = 0 |
There is no reduction method. | |
integer, parameter | time_power = 7 |
The reduction method is average with exponents. | |
integer, parameter | time_rms = 5 |
The reudction method is root mean square of values. | |
integer, parameter | time_sum = 3 |
The reduction method is sum of values. | |
character(len=10), dimension(6) | time_unit_list = (/'seconds ', 'minutes ', 'hours ', 'days ', 'months ', 'years '/) |
type(time_type) | time_zero |
integer, parameter | two_d_domain = 2 |
Use the FmsNetcdfDomainFile_t fileobj. | |
integer, parameter | ug_domain = 3 |
Use the FmsNetcdfUnstructuredDomainFile_t fileobj. | |
logical | use_clock_average = .false. |
.TRUE. if the averaging of variable is done based on the clock For example, if doing daily averages and your start the simulation in day1_hour3, it will do the average between day1_hour3 to day2_hour 0 the default behavior will do the average between day1 hour3 to day2 hour3 | |
logical | use_cmor = .FALSE. |
Indicates if we should overwrite the MISSING_VALUE to use the CMOR missing value. | |
logical | use_modern_diag = .false. |
Namelist flag to use the modernized diag_manager code. | |
logical | use_mpp_io = .false. |
false is fms2_io (default); true is mpp_io | |
logical | use_refactored_send = .false. |
Namelist flag to use refactored send_data math funcitons. | |
integer, parameter | very_large_axis_length = 10000 |
integer, parameter | very_large_file_freq = 100000 |
logical | write_bytes_in_file = .FALSE. |
integer, parameter | yearly = 12 |
Type descriptions and global variables for the diag_manager modules.
Notation:
The data structure describing the field as registered by the model code.
Input fields, output fields, and output files are gathered in arrays called "input_fields", "output_fields", and "files", respectively. Indices in these arrays are used as pointers to create associations between various data structures.
Each input field associated with one or several output fields via array of indices output_fields; each output field points to the single "parent" input field with the input_field index, and to the output file with the output_file index.
type diag_data_mod::coord_type |
Define the region for field output.
Definition at line 171 of file diag_data.F90.
Public Attributes | |
real | xbegin |
real | xend |
real | ybegin |
real | yend |
real | zbegin |
real | zend |
real xbegin |
Definition at line 172 of file diag_data.F90.
real xend |
Definition at line 173 of file diag_data.F90.
real ybegin |
Definition at line 174 of file diag_data.F90.
real yend |
Definition at line 175 of file diag_data.F90.
real zbegin |
Definition at line 176 of file diag_data.F90.
real zend |
Definition at line 177 of file diag_data.F90.
type diag_data_mod::diag_atttype |
Attribute type for diagnostic fields.
Definition at line 157 of file diag_data.F90.
Public Attributes | |
character(len=1280) | catt |
Character string to hold character value of attribute. | |
real, dimension(:), allocatable | fatt |
REAL array to hold value of REAL attributes. | |
integer, dimension(:), allocatable | iatt |
INTEGER array to hold value of INTEGER attributes. | |
integer | len |
Number of values in attribute, or if a character string then length of the string. | |
character(len=128) | name |
Name of the attribute. | |
integer | type |
Data type of attribute values (NF_INT, NF_FLOAT, NF_CHAR) | |
character(len=1280) catt |
Character string to hold character value of attribute.
Definition at line 162 of file diag_data.F90.
real, dimension(:), allocatable fatt |
REAL array to hold value of REAL attributes.
Definition at line 163 of file diag_data.F90.
integer, dimension(:), allocatable iatt |
INTEGER array to hold value of INTEGER attributes.
Definition at line 164 of file diag_data.F90.
integer len |
Number of values in attribute, or if a character string then length of the string.
Definition at line 159 of file diag_data.F90.
character(len=128) name |
Name of the attribute.
Definition at line 161 of file diag_data.F90.
integer type |
Data type of attribute values (NF_INT, NF_FLOAT, NF_CHAR)
Definition at line 158 of file diag_data.F90.
type diag_data_mod::diag_axis_type |
Type to hold the diagnostic axis description.
Definition at line 306 of file diag_data.F90.
Public Attributes | |
type(diag_atttype), dimension(:), allocatable | attributes |
Array to hold user definable attributes. | |
character(len=128) | aux |
character(len=1) | cart_name |
real, dimension(:), pointer | diag_type_data |
integer | direction |
type(domain1d) | domain |
type(domain2d) | domain2 |
integer | domain_position |
The position in the doman (NORTH or EAST or CENTER) | |
type(domainug) | domainug |
integer | edges |
integer, dimension(max_subaxes) | end |
integer | length |
character(len=256) | long_name |
character(len=128) | name |
integer | num_attributes |
Number of defined attibutes. | |
character(len=128) | req |
integer | set |
integer | shift |
integer, dimension(max_subaxes) | start |
type(domain2d), dimension(max_subaxes) | subaxis_domain2 |
character(len=128), dimension(max_subaxes) | subaxis_name |
integer | tile_count |
character(len=256) | units |
type(diag_atttype), dimension(:), allocatable attributes |
Array to hold user definable attributes.
Definition at line 321 of file diag_data.F90.
character(len=128) aux |
Definition at line 319 of file diag_data.F90.
character(len=1) cart_name |
Definition at line 309 of file diag_data.F90.
real, dimension(:), pointer diag_type_data |
Definition at line 310 of file diag_data.F90.
integer direction |
Definition at line 314 of file diag_data.F90.
type(domain1d) domain |
Definition at line 315 of file diag_data.F90.
type(domain2d) domain2 |
Definition at line 316 of file diag_data.F90.
integer domain_position |
The position in the doman (NORTH or EAST or CENTER)
Definition at line 323 of file diag_data.F90.
Definition at line 318 of file diag_data.F90.
integer edges |
Definition at line 314 of file diag_data.F90.
integer, dimension(max_subaxes) end |
Definition at line 312 of file diag_data.F90.
integer length |
Definition at line 314 of file diag_data.F90.
character(len=256) long_name |
Definition at line 308 of file diag_data.F90.
character(len=128) name |
Definition at line 307 of file diag_data.F90.
integer num_attributes |
Number of defined attibutes.
Definition at line 322 of file diag_data.F90.
character(len=128) req |
Definition at line 319 of file diag_data.F90.
integer set |
Definition at line 314 of file diag_data.F90.
integer shift |
Definition at line 314 of file diag_data.F90.
integer, dimension(max_subaxes) start |
Definition at line 311 of file diag_data.F90.
type(domain2d), dimension(max_subaxes) subaxis_domain2 |
Definition at line 317 of file diag_data.F90.
character(len=128), dimension(max_subaxes) subaxis_name |
Definition at line 313 of file diag_data.F90.
integer tile_count |
Definition at line 320 of file diag_data.F90.
character(len=256) units |
Definition at line 308 of file diag_data.F90.
type diag_data_mod::diag_fieldtype |
Diagnostic field type.
Definition at line 146 of file diag_data.F90.
Public Attributes | |
type(domain2d) | domain |
type(domainug) | domainu |
character(len=128) | fieldname |
Fieldname. | |
real | miss |
real | miss_pack |
logical | miss_pack_present |
logical | miss_present |
integer | tile_count |
type(domain2d) domain |
Definition at line 147 of file diag_data.F90.
type(domainug) domainu |
Definition at line 148 of file diag_data.F90.
character(len=128) fieldname |
Fieldname.
Definition at line 152 of file diag_data.F90.
real miss |
Definition at line 149 of file diag_data.F90.
real miss_pack |
Definition at line 149 of file diag_data.F90.
logical miss_pack_present |
Definition at line 150 of file diag_data.F90.
logical miss_present |
Definition at line 150 of file diag_data.F90.
integer tile_count |
Definition at line 151 of file diag_data.F90.
type diag_data_mod::diag_global_att_type |
Definition at line 327 of file diag_data.F90.
Public Attributes | |
character(len=128) | grid_type ='regular' |
character(len=128) | tile_name ='N/A' |
character(len=128) grid_type ='regular' |
Definition at line 328 of file diag_data.F90.
character(len=128) tile_name ='N/A' |
Definition at line 329 of file diag_data.F90.
type diag_data_mod::diag_grid |
Contains the coordinates of the local domain to output.
Definition at line 136 of file diag_data.F90.
Public Attributes | |
real, dimension(3) | end |
end coordinates (lat,lon,depth) of local domain to output | |
integer, dimension(3) | l_end_indx |
end indices at each LOCAL PE | |
integer, dimension(3) | l_start_indx |
start indices at each LOCAL PE | |
real, dimension(3) | start |
start coordinates (lat,lon,depth) of local domain to output | |
integer, dimension(3) | subaxes |
id returned from diag_subaxes_init of 3 subaxes | |
real, dimension(3) end |
end coordinates (lat,lon,depth) of local domain to output
Definition at line 138 of file diag_data.F90.
integer, dimension(3) l_end_indx |
end indices at each LOCAL PE
Definition at line 140 of file diag_data.F90.
integer, dimension(3) l_start_indx |
start indices at each LOCAL PE
Definition at line 139 of file diag_data.F90.
real, dimension(3) start |
start coordinates (lat,lon,depth) of local domain to output
Definition at line 137 of file diag_data.F90.
integer, dimension(3) subaxes |
id returned from diag_subaxes_init of 3 subaxes
Definition at line 141 of file diag_data.F90.
type diag_data_mod::file_type |
Type to define the diagnostic files that will be written as defined by the diagnostic table.
Definition at line 182 of file diag_data.F90.
Public Attributes | |
type(diag_atttype), dimension(:), allocatable | attributes |
Array to hold user definable attributes. | |
integer | bytes_written |
type(time_type) | close_time |
Time file closed. File does not allow data after close time. | |
integer | duration |
integer | duration_units |
type(diag_fieldtype) | f_avg_end |
type(diag_fieldtype) | f_avg_nitems |
type(diag_fieldtype) | f_avg_start |
type(diag_fieldtype) | f_bounds |
integer, dimension(max_fields_per_file) | fields |
integer | file_unit |
character(len=10) | filename_time_bounds |
integer | format |
logical, allocatable | is_time_axis_registered |
type(time_type) | last_flush |
logical | local |
.TRUE. if fields are output in a region instead of global. | |
character(len=128) | long_name |
character(len=fms_file_len) | name |
Name of the output file. | |
integer | new_file_freq |
frequency to create new file | |
integer | new_file_freq_units |
time units of new_file_freq (days, hours, years, ...) | |
type(time_type) | next_open |
Time to open a new file. | |
integer | num_attributes |
Number of defined attibutes. | |
integer | num_fields |
integer | output_freq |
integer | output_units |
real | rtime_current |
type(time_type) | start_time |
Time file opened. | |
integer | tile_count |
integer | time_axis_id |
integer | time_bounds_id |
integer | time_index |
integer | time_units |
logical(i4_kind) | use_domain2d = .false. |
logical(i4_kind) | use_domainug = .false. |
type(diag_atttype), dimension(:), allocatable attributes |
Array to hold user definable attributes.
Definition at line 205 of file diag_data.F90.
integer bytes_written |
Definition at line 192 of file diag_data.F90.
type(time_type) close_time |
Time file closed. File does not allow data after close time.
Definition at line 203 of file diag_data.F90.
integer duration |
Definition at line 196 of file diag_data.F90.
integer duration_units |
Definition at line 197 of file diag_data.F90.
type(diag_fieldtype) f_avg_end |
Definition at line 204 of file diag_data.F90.
type(diag_fieldtype) f_avg_nitems |
Definition at line 204 of file diag_data.F90.
type(diag_fieldtype) f_avg_start |
Definition at line 204 of file diag_data.F90.
type(diag_fieldtype) f_bounds |
Definition at line 204 of file diag_data.F90.
integer, dimension(max_fields_per_file) fields |
Definition at line 185 of file diag_data.F90.
integer file_unit |
Definition at line 191 of file diag_data.F90.
character(len=10) filename_time_bounds |
Definition at line 217 of file diag_data.F90.
integer format |
Definition at line 189 of file diag_data.F90.
logical, allocatable is_time_axis_registered |
Definition at line 213 of file diag_data.F90.
type(time_type) last_flush |
Definition at line 200 of file diag_data.F90.
logical local |
.TRUE. if fields are output in a region instead of global.
Definition at line 199 of file diag_data.F90.
character(len=128) long_name |
Definition at line 184 of file diag_data.F90.
character(len=fms_file_len) name |
Name of the output file.
Definition at line 183 of file diag_data.F90.
integer new_file_freq |
frequency to create new file
Definition at line 194 of file diag_data.F90.
integer new_file_freq_units |
time units of new_file_freq (days, hours, years, ...)
Definition at line 195 of file diag_data.F90.
type(time_type) next_open |
Time to open a new file.
Definition at line 201 of file diag_data.F90.
integer num_attributes |
Number of defined attibutes.
Definition at line 206 of file diag_data.F90.
integer num_fields |
Definition at line 186 of file diag_data.F90.
integer output_freq |
Definition at line 187 of file diag_data.F90.
integer output_units |
Definition at line 188 of file diag_data.F90.
real rtime_current |
Definition at line 215 of file diag_data.F90.
type(time_type) start_time |
Time file opened.
Definition at line 202 of file diag_data.F90.
integer tile_count |
Definition at line 198 of file diag_data.F90.
integer time_axis_id |
Definition at line 193 of file diag_data.F90.
integer time_bounds_id |
Definition at line 193 of file diag_data.F90.
integer time_index |
Definition at line 216 of file diag_data.F90.
integer time_units |
Definition at line 190 of file diag_data.F90.
logical(i4_kind) use_domain2d = .false. |
Definition at line 210 of file diag_data.F90.
logical(i4_kind) use_domainug = .false. |
Definition at line 209 of file diag_data.F90.
type diag_data_mod::fmsdiagattribute_type |
Type to hold the attributes of the field/axis/file.
Definition at line 334 of file diag_data.F90.
Public Member Functions | |
procedure | add (this, att_name, att_value) |
Adds an attribute to the attribute type. | |
procedure | write_metadata (this, fileobj, var_name, cell_methods) |
Writes out the attributes from an fmsDiagAttribute_type. | |
Public Attributes | |
character(len=:), allocatable | att_name |
Name of the attribute. | |
class(*), dimension(:), allocatable | att_value |
Value of the attribute. | |
procedure add | ( | class(fmsdiagattribute_type), intent(inout) | this, |
character(len=*), intent(in) | att_name, | ||
class(*), dimension(:), intent(in) | att_value | ||
) |
Adds an attribute to the attribute type.
[in,out] | this | Diag attribute type |
[in] | att_name | Name of the attribute |
[in] | att_value | The attribute value to add |
Definition at line 338 of file diag_data.F90.
procedure write_metadata | ( | class(fmsdiagattribute_type), intent(inout) | this, |
class(fmsnetcdffile_t), intent(inout) | fileobj, | ||
character(len=*), intent(in) | var_name, | ||
character(len=*), intent(inout), optional | cell_methods | ||
) |
Writes out the attributes from an fmsDiagAttribute_type.
[in,out] | this | Diag attribute type |
[in,out] | fileobj | Fms2_io fileobj to write to |
[in] | var_name | The name of the variable to write to |
[in,out] | cell_methods | The cell methods attribute |
[in,out] | cell_methods | If the attribute is cell methods append to the current cell_methods attribute value This will be writen once all of the cell_methods attributes are gathered ... |
Definition at line 339 of file diag_data.F90.
character(len=:), allocatable att_name |
Name of the attribute.
Definition at line 336 of file diag_data.F90.
class(*), dimension(:), allocatable att_value |
Value of the attribute.
Definition at line 335 of file diag_data.F90.
type diag_data_mod::input_field_type |
Type to hold the input field description.
Definition at line 222 of file diag_data.F90.
Public Attributes | |
integer | active_omp_level |
The current level of OpenMP nesting. | |
integer, dimension(3) | axes |
character(len=128) | field_name |
character(len=64) | interp_method |
logical | issued_mask_ignore_warning |
Indicates if the mask_ignore_warning has been issued for this input field. Once .TRUE. the warning message is suppressed on all subsequent send_data calls. | |
logical | local |
type(coord_type) | local_coord |
character(len=128) | long_name |
logical | mask_variant |
real | missing_value |
logical | missing_value_present |
character(len=128) | module_name |
integer | num_axes |
integer | num_output_fields |
integer | numthreads |
integer, dimension(:), allocatable | output_fields |
real, dimension(2) | range |
logical | range_present |
logical | register |
integer, dimension(3) | size |
character(len=256) | standard_name |
logical | static |
integer | tile_count |
type(time_type) | time |
character(len=128) | units |
integer active_omp_level |
The current level of OpenMP nesting.
Definition at line 236 of file diag_data.F90.
integer, dimension(3) axes |
Definition at line 226 of file diag_data.F90.
character(len=128) field_name |
Definition at line 223 of file diag_data.F90.
character(len=64) interp_method |
Definition at line 225 of file diag_data.F90.
logical issued_mask_ignore_warning |
Indicates if the mask_ignore_warning has been issued for this input field. Once .TRUE. the warning message is suppressed on all subsequent send_data calls.
Definition at line 240 of file diag_data.F90.
logical local |
Definition at line 234 of file diag_data.F90.
type(coord_type) local_coord |
Definition at line 238 of file diag_data.F90.
character(len=128) long_name |
Definition at line 223 of file diag_data.F90.
logical mask_variant |
Definition at line 234 of file diag_data.F90.
real missing_value |
Definition at line 229 of file diag_data.F90.
logical missing_value_present |
Definition at line 228 of file diag_data.F90.
character(len=128) module_name |
Definition at line 223 of file diag_data.F90.
integer num_axes |
Definition at line 227 of file diag_data.F90.
integer num_output_fields |
Definition at line 232 of file diag_data.F90.
integer numthreads |
Definition at line 235 of file diag_data.F90.
integer, dimension(:), allocatable output_fields |
Definition at line 231 of file diag_data.F90.
real, dimension(2) range |
Definition at line 230 of file diag_data.F90.
logical range_present |
Definition at line 228 of file diag_data.F90.
logical register |
Definition at line 234 of file diag_data.F90.
integer, dimension(3) size |
Definition at line 233 of file diag_data.F90.
character(len=256) standard_name |
Definition at line 224 of file diag_data.F90.
logical static |
Definition at line 234 of file diag_data.F90.
integer tile_count |
Definition at line 237 of file diag_data.F90.
type(time_type) time |
Definition at line 239 of file diag_data.F90.
character(len=128) units |
Definition at line 223 of file diag_data.F90.
type diag_data_mod::output_field_type |
Type to hold the output field description.
Definition at line 249 of file diag_data.F90.
Public Attributes | |
type(diag_atttype), dimension(:), allocatable | attributes |
integer, dimension(4) | axes |
type(fmsdiagibounds_type) | buff_bounds |
real, dimension(:,:,:,:), allocatable | buffer |
coordinates of the buffer and counter are (x, y, z, time-of-day) | |
real, dimension(:), allocatable | count_0d |
the following two counters are used in time-averaging for some combination of the field options. Their size is the length of the diurnal axis; the counters must be tracked separately for each of the diurnal interval, because the number of time slices accumulated in each can be different, depending on time step and the number of diurnal samples. | |
real, dimension(:,:,:,:), allocatable | counter |
coordinates of the buffer and counter are (x,y,z,time-of-day) | |
type(diag_fieldtype) | f_type |
integer | input_field |
index of the corresponding input field in the table | |
type(time_type) | last_output |
logical | local_output |
integer | n_diurnal_samples |
number of diurnal sample intervals, 1 or more | |
logical | need_compute |
type(time_type) | next_next_output |
type(time_type) | next_output |
integer | num_attributes |
integer | num_axes |
integer, dimension(:), allocatable | num_elements |
the following two counters are used in time-averaging for some combination of the field options. Their size is the length of the diurnal axis; the counters must be tracked separately for each of the diurnal interval, because the number of time slices accumulated in each can be different, depending on time step and the number of diurnal samples. | |
integer | output_file |
index of the output file in the table | |
type(diag_grid) | output_grid |
character(len=128) | output_name |
integer | pack |
logical | phys_window |
integer | pow_value |
Power value to use for mean_pow(n) calculations. | |
logical | reduced_k_range |
logical | reduced_k_unstruct = .false. |
integer | region_elements |
logical | static |
logical | time_average |
true if the output field is averaged over time interval | |
logical | time_max |
true if the output field is maximum over time interval | |
character(len=50) | time_method |
time method field from the input file | |
logical | time_min |
true if the output field is minimum over time interval | |
type(time_type) | time_of_prev_field_data |
logical | time_ops |
true if any of time_min, time_max, time_rms or time_average is true | |
logical | time_rms |
true if the output field is the rms. If true, then time_average is also | |
logical | time_sum |
true if the output field is summed over time interval | |
integer | total_elements |
logical | written_once |
type(diag_atttype), dimension(:), allocatable attributes |
Definition at line 296 of file diag_data.F90.
integer, dimension(4) axes |
Definition at line 288 of file diag_data.F90.
type(fmsdiagibounds_type) buff_bounds |
Definition at line 294 of file diag_data.F90.
real, dimension(:,:,:,:), allocatable buffer |
coordinates of the buffer and counter are (x, y, z, time-of-day)
Definition at line 264 of file diag_data.F90.
real, dimension(:), allocatable count_0d |
the following two counters are used in time-averaging for some combination of the field options. Their size is the length of the diurnal axis; the counters must be tracked separately for each of the diurnal interval, because the number of time slices accumulated in each can be different, depending on time step and the number of diurnal samples.
Definition at line 273 of file diag_data.F90.
real, dimension(:,:,:,:), allocatable counter |
coordinates of the buffer and counter are (x,y,z,time-of-day)
Definition at line 266 of file diag_data.F90.
type(diag_fieldtype) f_type |
Definition at line 287 of file diag_data.F90.
integer input_field |
index of the corresponding input field in the table
Definition at line 250 of file diag_data.F90.
type(time_type) last_output |
Definition at line 286 of file diag_data.F90.
logical local_output |
Definition at line 292 of file diag_data.F90.
integer n_diurnal_samples |
number of diurnal sample intervals, 1 or more
Definition at line 290 of file diag_data.F90.
logical need_compute |
Definition at line 292 of file diag_data.F90.
type(time_type) next_next_output |
Definition at line 286 of file diag_data.F90.
type(time_type) next_output |
Definition at line 286 of file diag_data.F90.
integer num_attributes |
Definition at line 297 of file diag_data.F90.
integer num_axes |
Definition at line 289 of file diag_data.F90.
integer, dimension(:), allocatable num_elements |
the following two counters are used in time-averaging for some combination of the field options. Their size is the length of the diurnal axis; the counters must be tracked separately for each of the diurnal interval, because the number of time slices accumulated in each can be different, depending on time step and the number of diurnal samples.
Definition at line 279 of file diag_data.F90.
integer output_file |
index of the output file in the table
Definition at line 251 of file diag_data.F90.
type(diag_grid) output_grid |
Definition at line 291 of file diag_data.F90.
character(len=128) output_name |
Definition at line 252 of file diag_data.F90.
integer pack |
Definition at line 260 of file diag_data.F90.
logical phys_window |
Definition at line 292 of file diag_data.F90.
integer pow_value |
Power value to use for mean_pow(n) calculations.
Definition at line 261 of file diag_data.F90.
logical reduced_k_range |
Definition at line 293 of file diag_data.F90.
logical reduced_k_unstruct = .false. |
Definition at line 300 of file diag_data.F90.
integer region_elements |
Definition at line 289 of file diag_data.F90.
logical static |
Definition at line 255 of file diag_data.F90.
logical time_average |
true if the output field is averaged over time interval
Definition at line 253 of file diag_data.F90.
logical time_max |
true if the output field is maximum over time interval
Definition at line 256 of file diag_data.F90.
character(len=50) time_method |
time method field from the input file
Definition at line 262 of file diag_data.F90.
logical time_min |
true if the output field is minimum over time interval
Definition at line 257 of file diag_data.F90.
type(time_type) time_of_prev_field_data |
Definition at line 295 of file diag_data.F90.
logical time_ops |
true if any of time_min, time_max, time_rms or time_average is true
Definition at line 259 of file diag_data.F90.
logical time_rms |
true if the output field is the rms. If true, then time_average is also
Definition at line 254 of file diag_data.F90.
logical time_sum |
true if the output field is summed over time interval
Definition at line 258 of file diag_data.F90.
integer total_elements |
Definition at line 289 of file diag_data.F90.
logical written_once |
Definition at line 292 of file diag_data.F90.
subroutine diag_data_init |
Initialize and write the version number of this file to the log file.
Definition at line 449 of file diag_data.F90.
subroutine fms_add_attribute | ( | class(fmsdiagattribute_type), intent(inout) | this, |
character(len=*), intent(in) | att_name, | ||
class(*), dimension(:), intent(in) | att_value | ||
) |
Adds an attribute to the attribute type.
[in,out] | this | Diag attribute type |
[in] | att_name | Name of the attribute |
[in] | att_value | The attribute value to add |
Definition at line 564 of file diag_data.F90.
integer function get_base_day |
integer function get_base_hour |
gets the module variable base_hour
Definition at line 541 of file diag_data.F90.
integer function get_base_minute |
gets the module variable base_minute
Definition at line 549 of file diag_data.F90.
integer function get_base_month |
gets the module variable base_month
Definition at line 525 of file diag_data.F90.
integer function get_base_second |
gets the module variable base_second
Definition at line 557 of file diag_data.F90.
type(time_type) function get_base_time |
gets the module variable base_time
Definition at line 509 of file diag_data.F90.
integer function get_base_year |
gets the module variable base_year
Definition at line 517 of file diag_data.F90.
integer function get_var_type | ( | class(*), intent(in) | var | ) |
gets the type of a variable
[in] | var | Variable to get the type for |
Definition at line 597 of file diag_data.F90.
subroutine set_base_time | ( | integer, dimension(6) | base_time_int | ) |
Set the module variable base_time.
base_time_int | base_time as an array [year month day hour min sec] |
Definition at line 462 of file diag_data.F90.
subroutine write_metadata | ( | class(fmsdiagattribute_type), intent(inout) | this, |
class(fmsnetcdffile_t), intent(inout) | fileobj, | ||
character(len=*), intent(in) | var_name, | ||
character(len=*), intent(inout), optional | cell_methods | ||
) |
Writes out the attributes from an fmsDiagAttribute_type.
[in,out] | this | Diag attribute type |
[in,out] | fileobj | Fms2_io fileobj to write to |
[in] | var_name | The name of the variable to write to |
[in,out] | cell_methods | The cell methods attribute |
[in,out] | cell_methods | If the attribute is cell methods append to the current cell_methods attribute value This will be writen once all of the cell_methods attributes are gathered ... |
Definition at line 620 of file diag_data.F90.
logical append_pelist_name = .FALSE. |
Definition at line 354 of file diag_data.F90.
character(len=7) avg_name = 'average' |
Name of the average fields.
Definition at line 124 of file diag_data.F90.
|
private |
Definition at line 422 of file diag_data.F90.
|
private |
Definition at line 422 of file diag_data.F90.
|
private |
Definition at line 422 of file diag_data.F90.
|
private |
Definition at line 422 of file diag_data.F90.
|
private |
Definition at line 422 of file diag_data.F90.
|
private |
The base_time read from diag_table.
Definition at line 419 of file diag_data.F90.
|
private |
Flag indicating that the base_time is set This is to prevent users from calling set_base_time multiple times.
Definition at line 420 of file diag_data.F90.
|
private |
Definition at line 422 of file diag_data.F90.
integer, parameter begin_time = 1 |
Use the begining of the time average bounds.
Definition at line 126 of file diag_data.F90.
real(r8_kind), parameter cmor_missing_value = 1.0e20 |
CMOR standard missing value.
Definition at line 111 of file diag_data.F90.
integer, parameter daily = 24 |
Definition at line 74 of file diag_data.F90.
logical debug_diag_manager = .FALSE. |
Definition at line 364 of file diag_data.F90.
integer, parameter diag_all = 2 |
Definition at line 93 of file diag_data.F90.
integer, parameter diag_days = 4 |
Definition at line 99 of file diag_data.F90.
integer, parameter diag_field_not_found = -1 |
Return value for a diag_field that isn't found in the diag_table.
Definition at line 112 of file diag_data.F90.
integer, parameter diag_hours = 3 |
Definition at line 98 of file diag_data.F90.
type(time_type) diag_init_time |
Time diag_manager_init called. If init_time not included in diag_manager_init call, then same as base_time.
Definition at line 417 of file diag_data.F90.
integer diag_log_unit |
Definition at line 440 of file diag_data.F90.
integer, parameter diag_minutes = 2 |
Definition at line 98 of file diag_data.F90.
integer, parameter diag_months = 5 |
Definition at line 99 of file diag_data.F90.
integer, parameter diag_not_found = -1 |
Definition at line 69 of file diag_data.F90.
integer, parameter diag_not_registered = 0 |
Definition at line 70 of file diag_data.F90.
character(len=1), parameter diag_null_string = " " |
Definition at line 68 of file diag_data.F90.
integer, parameter diag_ocean = 1 |
Definition at line 92 of file diag_data.F90.
integer, parameter diag_other = 0 |
Definition at line 91 of file diag_data.F90.
integer, parameter diag_registered_id = 10 |
Definition at line 71 of file diag_data.F90.
integer, parameter diag_seconds = 1 |
Definition at line 98 of file diag_data.F90.
integer, parameter diag_years = 6 |
Definition at line 99 of file diag_data.F90.
integer, parameter direction_down = -1 |
The axis points down if positive.
Definition at line 106 of file diag_data.F90.
integer, parameter direction_up = 1 |
The axis points up if positive.
Definition at line 105 of file diag_data.F90.
integer, parameter diurnal = 2 |
Definition at line 75 of file diag_data.F90.
logical do_diag_field_log = .FALSE. |
Definition at line 362 of file diag_data.F90.
real(r8_kind) empty = 0.0 |
Definition at line 413 of file diag_data.F90.
integer, parameter end_of_run = -1 |
Definition at line 97 of file diag_data.F90.
integer, parameter end_time = 3 |
Use the end of the time average bounds.
Definition at line 128 of file diag_data.F90.
integer, parameter every_time = 0 |
Definition at line 96 of file diag_data.F90.
type(fmsnetcdfdomainfile_t), dimension(:), allocatable, target fileobj |
Definition at line 431 of file diag_data.F90.
type(fmsnetcdffile_t), dimension(:), allocatable, target fileobjnd |
Definition at line 432 of file diag_data.F90.
type(fmsnetcdfunstructureddomainfile_t), dimension(:), allocatable, target fileobju |
Definition at line 430 of file diag_data.F90.
type(file_type), dimension(:), allocatable, save files |
Definition at line 426 of file diag_data.F90.
real fill_value = NF_FILL_REAL |
Fill value used. Value will be NF90_FILL_REAL
if using the netCDF module, otherwise will be 9.9692099683868690e+36.
Definition at line 398 of file diag_data.F90.
logical first_send_data_call = .TRUE. |
Definition at line 438 of file diag_data.F90.
logical flush_nc_files = .FALSE. |
Control if diag_manager will force a flush of the netCDF file on each write. Note: changing this to .TRUE. can greatly reduce the performance of the model, as the model must wait until the flush to disk has completed.
Definition at line 365 of file diag_data.F90.
character(len=2), dimension(:), allocatable fnum_for_domain |
If this file number in the array is for the "unstructured" or "2d" domain.
Definition at line 433 of file diag_data.F90.
integer, parameter glo_reg_val = -999 |
Value used in the region specification of the diag_table to indicate to use the full axis instead of a sub-axis.
Definition at line 107 of file diag_data.F90.
integer, parameter glo_reg_val_alt = -1 |
Alternate value used in the region specification of the diag_table to indicate to use the full axis instead of a sub-axis.
Definition at line 109 of file diag_data.F90.
character(len = 256) global_descriptor |
Definition at line 423 of file diag_data.F90.
integer, parameter i4 = -4 |
Definition at line 87 of file diag_data.F90.
integer, parameter i8 = -8 |
Definition at line 86 of file diag_data.F90.
integer, parameter index_gridtype = 2 |
Definition at line 114 of file diag_data.F90.
type(input_field_type), dimension(:), allocatable input_fields |
Definition at line 427 of file diag_data.F90.
integer, parameter instantaneous = 0 |
Definition at line 78 of file diag_data.F90.
integer, parameter is_x_axis = 1 |
integer indicating that it is a x axis
Definition at line 130 of file diag_data.F90.
integer, parameter is_y_axis = 2 |
integer indicating that it is a y axis
Definition at line 131 of file diag_data.F90.
logical issue_oor_warnings = .TRUE. |
Issue warnings if the output field has values outside the given range for a variable.
Definition at line 373 of file diag_data.F90.
integer, parameter latlon_gridtype = 1 |
Definition at line 113 of file diag_data.F90.
integer max_axes = 60 |
Maximum number of independent axes.
Definition at line 361 of file diag_data.F90.
integer max_axis_attributes = 4 |
Maximum number of user definable attributes per axis.
Definition at line 385 of file diag_data.F90.
integer max_field_attributes = 4 |
Maximum number of user definable attributes per field. Liptak: Changed from 2 to 4 20170718.
Definition at line 382 of file diag_data.F90.
integer, parameter max_fields_per_file = 300 |
Maximum number of fields per file.
Definition at line 90 of file diag_data.F90.
integer max_file_attributes = 2 |
Maximum number of user definable global attributes per file.
Definition at line 384 of file diag_data.F90.
integer max_files = 31 |
Maximum number of output files allowed. Increase via diag_manager_nml.
Definition at line 356 of file diag_data.F90.
integer max_input_fields = 600 |
Maximum number of input fields. Increase via diag_manager_nml.
Definition at line 358 of file diag_data.F90.
integer max_num_axis_sets = 25 |
Definition at line 371 of file diag_data.F90.
integer max_out_per_in_field = 150 |
Maximum number of output_fields per input_field. Increase via diag_manager_nml.
Definition at line 359 of file diag_data.F90.
integer max_output_fields = 300 |
Maximum number of output fields. Increase via diag_manager_nml.
Definition at line 357 of file diag_data.F90.
integer, parameter max_str_len = 255 |
Max length for a string.
Definition at line 129 of file diag_data.F90.
integer, parameter max_subaxes = 10 |
Definition at line 100 of file diag_data.F90.
real(r8_kind) max_value |
Definition at line 414 of file diag_data.F90.
integer, parameter middle_time = 2 |
Use the middle of the time average bounds.
Definition at line 127 of file diag_data.F90.
real(r8_kind) min_value |
Definition at line 414 of file diag_data.F90.
logical mix_snapshot_average_fields =.FALSE. |
Definition at line 355 of file diag_data.F90.
logical module_is_initialized = .FALSE. |
Indicate if diag_manager has been initialized.
Definition at line 439 of file diag_data.F90.
integer, parameter monthly = 30 |
Supported averaging intervals.
Definition at line 73 of file diag_data.F90.
integer, parameter no_diag_averaging = 0 |
Definition at line 77 of file diag_data.F90.
integer, parameter no_domain = 1 |
Use the FmsNetcdfFile_t fileobj.
Definition at line 101 of file diag_data.F90.
character(len=8) no_units = "NO UNITS" |
String indicating that the variable has no units.
Definition at line 125 of file diag_data.F90.
integer null_axis_id |
Definition at line 351 of file diag_data.F90.
integer, parameter null_gridtype = DIAG_NULL |
Definition at line 115 of file diag_data.F90.
integer, parameter null_type_int = -999 |
Definition at line 89 of file diag_data.F90.
integer num_files = 0 |
Number of output files currenly in use by the diag_manager.
Definition at line 348 of file diag_data.F90.
integer num_input_fields = 0 |
Number of input fields in use.
Definition at line 349 of file diag_data.F90.
integer num_output_fields = 0 |
Number of output fields in use.
Definition at line 350 of file diag_data.F90.
integer oor_warning = WARNING |
Definition at line 444 of file diag_data.F90.
logical oor_warnings_fatal = .FALSE. |
Cause a fatal error if the output field has a value outside the given range for a variable.
Definition at line 375 of file diag_data.F90.
type(output_field_type), dimension(:), allocatable output_fields |
Definition at line 428 of file diag_data.F90.
integer pack_size = 1 |
1 for double and 2 for float
Definition at line 408 of file diag_data.F90.
character(len=6) pack_size_str ="double" |
Pack size as a string to be used in fms2_io register call set to "double" or "float".
Definition at line 409 of file diag_data.F90.
character(len=32) pelist_name |
Definition at line 443 of file diag_data.F90.
logical prepend_date = .TRUE. |
Should the history file have the start date prepended to the file name. .TRUE.
is only supported if the diag_manager_init routine is called with the optional time_init parameter.
Definition at line 386 of file diag_data.F90.
integer, parameter r4 = 4 |
Definition at line 85 of file diag_data.F90.
integer, parameter r8 = 8 |
Supported type/kind of the variable.
Definition at line 84 of file diag_data.F90.
logical region_out_use_alt_value = .TRUE. |
Will determine which value to use when checking a regional output if the region is the full axis or a sub-axis. The values are defined as GLO_REG_VAL
(-999) and GLO_REG_VAL_ALT
(-1) in diag_data_mod
.
Definition at line 377 of file diag_data.F90.
integer, parameter six_hourly = 6 |
Definition at line 80 of file diag_data.F90.
integer, parameter string = 19 |
s is the 19th letter of the alphabet
Definition at line 88 of file diag_data.F90.
integer, parameter sub_regional = 4 |
This is a file with a sub_region use the FmsNetcdfFile_t fileobj.
Definition at line 104 of file diag_data.F90.
integer, parameter three_hourly = 3 |
Definition at line 79 of file diag_data.F90.
integer, parameter time_average = 4 |
The reduction method is average of values.
Definition at line 120 of file diag_data.F90.
integer, parameter time_diurnal = 6 |
The reduction method is diurnal.
Definition at line 122 of file diag_data.F90.
integer, parameter time_max = 2 |
The reduction method is max value.
Definition at line 118 of file diag_data.F90.
integer, parameter time_min = 1 |
The reduction method is min value.
Definition at line 117 of file diag_data.F90.
integer, parameter time_none = 0 |
There is no reduction method.
Definition at line 116 of file diag_data.F90.
integer, parameter time_power = 7 |
The reduction method is average with exponents.
Definition at line 123 of file diag_data.F90.
integer, parameter time_rms = 5 |
The reudction method is root mean square of values.
Definition at line 121 of file diag_data.F90.
integer, parameter time_sum = 3 |
The reduction method is sum of values.
Definition at line 119 of file diag_data.F90.
character(len=10), dimension(6) time_unit_list = (/'seconds ', 'minutes ', 'hours ', 'days ', 'months ', 'years '/) |
Definition at line 441 of file diag_data.F90.
type(time_type) time_zero |
Definition at line 437 of file diag_data.F90.
integer, parameter two_d_domain = 2 |
Use the FmsNetcdfDomainFile_t fileobj.
Definition at line 102 of file diag_data.F90.
integer, parameter ug_domain = 3 |
Use the FmsNetcdfUnstructuredDomainFile_t fileobj.
Definition at line 103 of file diag_data.F90.
logical use_clock_average = .false. |
.TRUE. if the averaging of variable is done based on the clock For example, if doing daily averages and your start the simulation in day1_hour3, it will do the average between day1_hour3 to day2_hour 0 the default behavior will do the average between day1 hour3 to day2 hour3
Definition at line 392 of file diag_data.F90.
logical use_cmor = .FALSE. |
Indicates if we should overwrite the MISSING_VALUE to use the CMOR missing value.
Definition at line 372 of file diag_data.F90.
logical use_modern_diag = .false. |
Namelist flag to use the modernized diag_manager code.
Definition at line 391 of file diag_data.F90.
logical use_mpp_io = .false. |
false is fms2_io (default); true is mpp_io
Definition at line 389 of file diag_data.F90.
logical use_refactored_send = .false. |
Namelist flag to use refactored send_data math funcitons.
Definition at line 390 of file diag_data.F90.
integer, parameter very_large_axis_length = 10000 |
Definition at line 95 of file diag_data.F90.
integer, parameter very_large_file_freq = 100000 |
Definition at line 94 of file diag_data.F90.
logical write_bytes_in_file = .FALSE. |
Definition at line 363 of file diag_data.F90.
integer, parameter yearly = 12 |
Definition at line 76 of file diag_data.F90.