FMS
2024.03
Flexible Modeling System
|
Functions and subroutines necessary for the diag_manager_mod
.
More...
Data Types | |
interface | attribute_init |
Allocates the atttype in out_file. More... | |
interface | prepend_attribute |
Prepend a value to a string attribute in the output field or output file. More... | |
Functions/Subroutines | |
logical function | a_greaterthan_b (a, b) |
return true iff a>b. More... | |
logical function | a_lessthan_b (a, b) |
return true iff a<b. More... | |
logical function | a_noteq_b (a, b) |
return true iff a /= b More... | |
subroutine | attribute_init_field (out_field, err_msg) |
Allocates the atttype in out_field. More... | |
subroutine | attribute_init_file (out_file, err_msg) |
Allocates the atttype in out_file. More... | |
subroutine | check_and_open (file, time, do_write, filename_time) |
Checks if it is time to open a new file. More... | |
subroutine, public | check_bounds_are_exact_dynamic (out_num, diag_field_id, Time, err_msg) |
This is an adaptor to the check_bounds_are_exact_dynamic_modern function to maintain an interface servicing the legacy diag_manager. More... | |
subroutine, public | check_bounds_are_exact_static (out_num, diag_field_id, err_msg) |
Check if the array indices for output_fields(out_num) are equal to the output_fields(out_num)buffer upper and lower bounds. More... | |
subroutine, public | check_duplicate_output_fields (err_msg) |
Checks to see if output_name and output_file are unique in output_fields . More... | |
subroutine, public | check_out_of_bounds (out_num, diag_field_id, err_msg) |
Checks if the array indices for output_fields(out_num) are outside the output_fields(out_num)buffer upper and lower bounds. If there is an error then error message will be filled. More... | |
logical function | compare_buffer_bounds_to_size (current_bounds, bounds, error_str, lowerb_comp, upperb_comp) |
Compares the bounding indices of an array specified in "current_bounds" to the corresponding lower and upper bounds specified in "bounds" Comparison is done by the two user specified input functions lowerb_comp and upperb_comp. If any compariosn function returns true, then, after filling error_str, this routine also returns true. The suplied comparison functions should return true for errors : for indices out of bounds, or indices are not equal when expected to be equal. More... | |
subroutine, public | diag_data_out (file, field, dat, time, final_call_in, static_write_in, filename_time) |
Write data out to file, and if necessary flush the buffers. More... | |
subroutine, public | diag_util_init () |
Write the version number of this file to the log file. | |
integer function | find_file (name, tile_count) |
Return the file number for file name and tile. More... | |
integer function, public | find_input_field (module_name, field_name, tile_count) |
Return the field number for the given module name, field name, and tile number. More... | |
subroutine, public | fms_diag_check_bounds_are_exact_dynamic (current_bounds, bounds, output_name, module_name, Time, field_prev_Time, err_msg) |
Checks that array indices specified in the bounding box "current_bounds" are identical to those in the bounding box "bounds" match exactly. The check occurs only when the time changed. If there is an error then error message will be filled. More... | |
subroutine, public | fms_diag_check_bounds_are_exact_static (current_bounds, bounds, output_name, module_name, err_msg) |
Check if the array indices specified in the bounding box "current_bounds" are equal to those specified in the bounding box "bounds" output_fields are equal to the buffer upper and lower bounds. If there is an error then error message will be filled. More... | |
subroutine | fms_diag_check_out_of_bounds_r4 (ofb, bounds, output_name, module_name, err_msg) |
Checks if the array indices for output_fields(out_num) are outside the output_fields(out_num)buffer upper and lower bounds. If there is an error then error message will be filled. More... | |
subroutine | fms_diag_check_out_of_bounds_r8 (ofb, bounds, output_name, module_name, err_msg) |
Checks if the array indices for output_field buffer (ofb) are outside the are outside the bounding box (bounds). If there is an error then error message will be filled. More... | |
type(time_type) function, public | get_file_start_time (file_num) |
Get the a diag_file's start_time as it is defined in the diag_table. More... | |
integer function | get_index (number, array) |
Find index i of array such that array(i) is closest to number. | |
subroutine, public | get_subfield_size (axes, outnum) |
Get the size, start, and end indices for output fields. More... | |
subroutine, public | get_subfield_vert_size (axes, outnum) |
Get size, start and end indices for output fields. More... | |
subroutine, public | init_file (name, output_freq, output_units, format, time_units, long_name, tile_count, new_file_freq, new_file_freq_units, start_time, file_duration, file_duration_units, filename_time_bounds) |
Initialize the output file. More... | |
subroutine, public | init_input_field (module_name, field_name, tile_count) |
Initialize the input field. More... | |
subroutine, public | init_output_field (module_name, field_name, output_name, output_file, time_method, pack, tile_count, local_coord) |
Initialize the output field. More... | |
subroutine, public | log_diag_field_info (module_name, field_name, axes, long_name, units, missing_value, range, dynamic) |
Writes brief diagnostic field info to the log file. More... | |
subroutine | opening_file (file, time, filename_time) |
Open file for output, and write the meta data. More... | |
subroutine | prepend_attribute_field (out_field, att_name, prepend_value, err_msg) |
Prepends the attribute value to an already existing attribute. If the attribute isn't yet defined, then creates a new attribute. More... | |
subroutine | prepend_attribute_file (out_file, att_name, prepend_value, err_msg) |
Prepends the attribute value to an already existing attribute. If the attribute isn't yet defined, then creates a new attribute. More... | |
subroutine, public | sync_file_times (file_id, init_time, err_msg) |
Synchronize the file's start and close times with the model start and end times. More... | |
subroutine, public | update_bounds (out_num, lower_i, upper_i, lower_j, upper_j, lower_k, upper_k) |
Update the output_fields x, y, and z min and max boundaries (array indices) with the six specified bounds values. More... | |
subroutine, public | write_static (file) |
Output all static fields in this file. More... | |
Variables | |
character(len=1), public | field_log_separator = '|' |
separator used for csv-style log of registered fields set by nml in diag_manager init | |
logical | module_initialized = .FALSE. |
Functions and subroutines necessary for the diag_manager_mod
.
interface diag_util_mod::attribute_init |
Allocates the atttype in out_file.
Definition at line 98 of file diag_util.F90.
Private Member Functions | |
subroutine | attribute_init_field (out_field, err_msg) |
Allocates the atttype in out_field. More... | |
subroutine | attribute_init_file (out_file, err_msg) |
Allocates the atttype in out_file. More... | |
|
private |
Allocates the atttype in out_field.
[in,out] | out_field | output field to allocate memory for attribute |
[out] | err_msg | Error message, passed back to calling function |
Definition at line 2268 of file diag_util.F90.
|
private |
Allocates the atttype in out_file.
[in,out] | out_file | output file to allocate memory for attribute |
[out] | err_msg | Error message, passed back to calling function |
Definition at line 2384 of file diag_util.F90.
interface diag_util_mod::prepend_attribute |
Prepend a value to a string attribute in the output field or output file.
Definition at line 91 of file diag_util.F90.
Private Member Functions | |
subroutine | prepend_attribute_field (out_field, att_name, prepend_value, err_msg) |
Prepends the attribute value to an already existing attribute. If the attribute isn't yet defined, then creates a new attribute. More... | |
subroutine | prepend_attribute_file (out_file, att_name, prepend_value, err_msg) |
Prepends the attribute value to an already existing attribute. If the attribute isn't yet defined, then creates a new attribute. More... | |
|
private |
Prepends the attribute value to an already existing attribute. If the attribute isn't yet defined, then creates a new attribute.
[in,out] | out_field | output field that will get the attribute |
[in] | att_name | Name of the attribute |
[in] | prepend_value | Value to prepend |
[out] | err_msg | Error message, passed back to calling routine |
Definition at line 2297 of file diag_util.F90.
|
private |
Prepends the attribute value to an already existing attribute. If the attribute isn't yet defined, then creates a new attribute.
[in,out] | out_file | output file that will get the attribute |
[in] | att_name | Name of the attribute |
[in] | prepend_value | Value to prepend |
[out] | err_msg | Error message, passed back to calling routine |
Definition at line 2413 of file diag_util.F90.
|
private |
return true iff a>b.
[in] | a | The first of the two integer args that are to be compared to each other. |
[in] | b | The first of the two integer args that are to be compared to each other. |
Definition at line 826 of file diag_util.F90.
|
private |
return true iff a<b.
[in] | a | The first of the two integer args that are to be compared to each other. |
[in] | b | The first of the two integer args that are to be compared to each other. |
Definition at line 819 of file diag_util.F90.
|
private |
return true iff a /= b
[in] | a | The first of the two integer args that are to be compared to each other. |
[in] | b | The first of the two integer args that are to be compared to each other. |
Definition at line 833 of file diag_util.F90.
|
private |
Allocates the atttype in out_field.
[in,out] | out_field | output field to allocate memory for attribute |
[out] | err_msg | Error message, passed back to calling function |
Definition at line 2268 of file diag_util.F90.
|
private |
Allocates the atttype in out_file.
[in,out] | out_file | output file to allocate memory for attribute |
[out] | err_msg | Error message, passed back to calling function |
Definition at line 2384 of file diag_util.F90.
|
private |
Checks if it is time to open a new file.
Checks if it is time to open a new file. If yes, it first closes the current file, opens a new file and returns file_unit previous diag_manager_end is replaced by closing_file and output_setup by opening_file.
[in] | file | File ID. |
[in] | time | Current model time. |
[out] | do_write | .TRUE. if file is expecting more data to write, .FALSE. otherwise. |
[in] | filename_time | Time used in setting the filename when writting periodic files |
[in] | filename_time | Reset the number of times in the files back to 0 |
Definition at line 2164 of file diag_util.F90.
subroutine, public diag_util_mod::check_bounds_are_exact_dynamic | ( | integer, intent(in) | out_num, |
integer, intent(in) | diag_field_id, | ||
type(time_type), intent(in) | Time, | ||
character(len=*), intent(out) | err_msg | ||
) |
This is an adaptor to the check_bounds_are_exact_dynamic_modern function to maintain an interface servicing the legacy diag_manager.
[in] | out_num | Output field ID number. |
[in] | diag_field_id | Input field ID number. |
[in] | time | Time to use in check. The check is only performed if output_fields(out_num)Time_of_prev_field_data is not equal to Time or Time_zero . |
[out] | err_msg | Return status of check_bounds_are_exact_dynamic . An empty error string indicates the x, y, and z indices are equal to the buffer array boundaries. |
Definition at line 990 of file diag_util.F90.
subroutine, public diag_util_mod::check_bounds_are_exact_static | ( | integer, intent(in) | out_num, |
integer, intent(in) | diag_field_id, | ||
character(len=*), intent(out) | err_msg | ||
) |
Check if the array indices for output_fields(out_num)
are equal to the output_fields(out_num)buffer
upper and lower bounds.
[in] | out_num | Output field ID |
[in] | diag_field_id | Input field ID. |
[out] | err_msg | The return status, which is set to non-empty message if the check fails. |
Definition at line 1017 of file diag_util.F90.
subroutine, public diag_util_mod::check_duplicate_output_fields | ( | character(len=*), intent(out), optional | err_msg | ) |
Checks to see if output_name
and output_file
are unique in output_fields
.
[out] | err_msg | Error message. If empty, then no duplicates found. |
Definition at line 2238 of file diag_util.F90.
subroutine, public diag_util_mod::check_out_of_bounds | ( | integer, intent(in) | out_num, |
integer, intent(in) | diag_field_id, | ||
character(len=*), intent(out) | err_msg | ||
) |
Checks if the array indices for output_fields(out_num)
are outside the output_fields(out_num)buffer
upper and lower bounds. If there is an error then error message will be filled.
[in] | out_num | Output field ID number. |
[in] | diag_field_id | Input field ID number. |
[out] | err_msg | Return status of check_out_of_bounds . An empty error string indicates the x, y, and z indices are not outside the |
Definition at line 842 of file diag_util.F90.
|
private |
Compares the bounding indices of an array specified in "current_bounds" to the corresponding lower and upper bounds specified in "bounds" Comparison is done by the two user specified input functions lowerb_comp and upperb_comp. If any compariosn function returns true, then, after filling error_str, this routine also returns true. The suplied comparison functions should return true for errors : for indices out of bounds, or indices are not equal when expected to be equal.
[in] | current_bounds | A bounding box holding the current bounds of an array. |
[in] | bounds | The bounding box to check against. |
[out] | error_str | The return status, which is set to non-empty message if the check fails. |
Interface lowerb_comp should be used for comparison to lower bounds of buffer.
Interface lowerb_comp should be used for comparison to upper bounds of buffer.
Definition at line 767 of file diag_util.F90.
subroutine, public diag_util_mod::diag_data_out | ( | integer, intent(in) | file, |
integer, intent(in) | field, | ||
real, dimension(:,:,:,:), intent(inout) | dat, | ||
type(time_type), intent(in) | time, | ||
logical, intent(in), optional | final_call_in, | ||
logical, intent(in), optional | static_write_in, | ||
type(time_type), intent(in), optional | filename_time | ||
) |
Write data out to file, and if necessary flush the buffers.
[in] | file | File ID. |
[in] | field | Field ID. |
[in,out] | dat | Data to write out. |
[in] | time | Current model time. |
[in] | final_call_in | .TRUE. if this is the last write for file. |
[in] | static_write_in | .TRUE. if static fields are to be written to file. |
[in] | filename_time | Time used in setting the filename when writting periodic files |
dif is the time as a real that is evaluated
Set up the time index and write the correct time value to the time array
Write data
Definition at line 2057 of file diag_util.F90.
|
private |
Return the file number for file name and tile.
[in] | tile_count | Tile number. |
[in] | name | File name. |
Definition at line 1274 of file diag_util.F90.
integer function, public diag_util_mod::find_input_field | ( | character(len=*), intent(in) | module_name, |
character(len=*), intent(in) | field_name, | ||
integer, intent(in) | tile_count | ||
) |
Return the field number for the given module name, field name, and tile number.
[in] | module_name | Module name. |
[in] | field_name | field name. |
[in] | tile_count | Tile number. |
Definition at line 1291 of file diag_util.F90.
subroutine, public diag_util_mod::fms_diag_check_bounds_are_exact_dynamic | ( | type (fmsdiagibounds_type), intent(in) | current_bounds, |
type (fmsdiagibounds_type), intent(inout) | bounds, | ||
character(:), intent(in), allocatable | output_name, | ||
character(:), intent(in), allocatable | module_name, | ||
type(time_type), intent(in) | Time, | ||
type(time_type), intent(inout) | field_prev_Time, | ||
character(len=*), intent(out) | err_msg | ||
) |
Checks that array indices specified in the bounding box "current_bounds" are identical to those in the bounding box "bounds" match exactly. The check occurs only when the time changed. If there is an error then error message will be filled.
[in] | current_bounds | A bounding box holding the current bounds of an array. |
[in,out] | bounds | The bounding box to check against |
[in] | output_name | output name for placing in error message |
[in] | module_name | module name for placing in error message |
[in] | time | Time to use in check. The check is only performed if output_fields(out_num)Time_of_prev_field_data is not equal to Time or Time_zero . |
[in,out] | field_prev_time | output_fields(out_num)Time_of_prev_field_data |
[out] | err_msg | Return status of check_bounds_are_exact_dynamic . An empty error string indicates the x, y, and z indices are equal to the buffer array boundaries. |
Definition at line 939 of file diag_util.F90.
subroutine, public diag_util_mod::fms_diag_check_bounds_are_exact_static | ( | type (fmsdiagibounds_type), intent(in) | current_bounds, |
type (fmsdiagibounds_type), intent(inout) | bounds, | ||
character(:), intent(in), allocatable | output_name, | ||
character(:), intent(in), allocatable | module_name, | ||
character(len=*), intent(out) | err_msg | ||
) |
Check if the array indices specified in the bounding box "current_bounds" are equal to those specified in the bounding box "bounds" output_fields are equal to the buffer upper and lower bounds. If there is an error then error message will be filled.
[in] | current_bounds | A bounding box holding the current bounds of the array. |
[in,out] | bounds | The bounding box to check against |
[in] | output_name | output name for placing in error message |
[in] | module_name | module name for placing in error message |
[out] | err_msg | The return status, which is set to non-empty message if the check fails. |
Definition at line 1039 of file diag_util.F90.
|
private |
Checks if the array indices for output_fields(out_num)
are outside the output_fields(out_num)buffer
upper and lower bounds. If there is an error then error message will be filled.
[in] | ofb | The output field buffer to check |
[in,out] | bounds | The bounding box to check against |
[in] | output_name | output name for placing in error message |
[in] | module_name | module name for placing in error message |
[in,out] | err_msg | Return status of check_out_of_bounds . An empty error string indicates the x, y, and z indices are not outside the |
Definition at line 874 of file diag_util.F90.
|
private |
Checks if the array indices for output_field buffer (ofb) are outside the are outside the bounding box (bounds). If there is an error then error message will be filled.
[in] | ofb | The output field buffer to check |
[in,out] | bounds | The bounding box to check against |
[in] | output_name | output name for placing in error message |
[in] | module_name | module name for placing in error message |
[out] | err_msg | Return status of check_out_of_bounds . An empty error string indicates the x, y, and z indices are not outside the |
Definition at line 906 of file diag_util.F90.
type(time_type) function, public diag_util_mod::get_file_start_time | ( | integer, intent(in) | file_num | ) |
Get the a diag_file's start_time as it is defined in the diag_table.
[in] | file_num | File number of the file to get the start_time from |
Definition at line 2502 of file diag_util.F90.
subroutine, public diag_util_mod::get_subfield_size | ( | integer, dimension(:), intent(in) | axes, |
integer, intent(in) | outnum | ||
) |
Get the size, start, and end indices for output fields.
[in] | axes | axes of the input_field |
[in] | outnum | position in array output_fields |
Definition at line 134 of file diag_util.F90.
subroutine, public diag_util_mod::get_subfield_vert_size | ( | integer, dimension(:), intent(in) | axes, |
integer, intent(in) | outnum | ||
) |
Get size, start and end indices for output fields.
[in] | axes | axes of the input_field |
[in] | outnum | position in array output_fields |
Definition at line 416 of file diag_util.F90.
subroutine, public diag_util_mod::init_file | ( | character(len=*), intent(in) | name, |
integer, intent(in) | output_freq, | ||
integer, intent(in) | output_units, | ||
integer, intent(in) | format, | ||
integer, intent(in) | time_units, | ||
character(len=*), intent(in) | long_name, | ||
integer, intent(in) | tile_count, | ||
integer, intent(in), optional | new_file_freq, | ||
integer, intent(in), optional | new_file_freq_units, | ||
type(time_type), intent(in), optional | start_time, | ||
integer, intent(in), optional | file_duration, | ||
integer, intent(in), optional | file_duration_units, | ||
character(len=*), intent(in), optional | filename_time_bounds | ||
) |
Initialize the output file.
[in] | name | File name. |
[in] | long_name | Long name for time axis. |
[in] | output_freq | How often data is to be written to the file. |
[in] | output_units | The output frequency unit. (MIN, HOURS, DAYS, etc.) |
[in] | format | Number type/kind the data is to be written out to the file. |
[in] | time_units | Time axis units. |
[in] | tile_count | Tile number. |
[in] | new_file_freq | How often a new file is to be created. |
[in] | new_file_freq_units | The new file frequency unit. (MIN, HOURS, DAYS, etc.)</IN> |
[in] | file_duration | How long file is to be used. |
[in] | file_duration_units | File duration unit. (MIN, HOURS, DAYS, etc.) |
[in] | start_time | Time when the file is to start |
[in] | filename_time_bounds | Set time bound file name to |
Initialize the times to 0
Definition at line 1063 of file diag_util.F90.
subroutine, public diag_util_mod::init_input_field | ( | character(len=*), intent(in) | module_name, |
character(len=*), intent(in) | field_name, | ||
integer, intent(in) | tile_count | ||
) |
Initialize the input field.
[in] | module_name | Module name. |
[in] | field_name | Input field name. |
[in] | tile_count | Tile number. |
Definition at line 1310 of file diag_util.F90.
subroutine, public diag_util_mod::init_output_field | ( | character(len=*), intent(in) | module_name, |
character(len=*), intent(in) | field_name, | ||
character(len=*), intent(in) | output_name, | ||
character(len=*), intent(in) | output_file, | ||
character(len=*), intent(in) | time_method, | ||
integer, intent(in) | pack, | ||
integer, intent(in) | tile_count, | ||
type(coord_type), intent(in), optional | local_coord | ||
) |
Initialize the output field.
[in] | module_name | Module name. |
[in] | field_name | Output field name. |
[in] | output_name | Output name written to file. |
[in] | output_file | File where field should be written. |
[in] | time_method | Data reduction method. See <LINK SRC="diag_manager.html">diag_manager_mod</LINK> for valid methods.</IN> |
[in] | pack | Packing method. |
[in] | tile_count | Tile number. |
[in] | local_coord | Region to be written. If missing, then all data to be written.</IN> |
Definition at line 1342 of file diag_util.F90.
subroutine, public diag_util_mod::log_diag_field_info | ( | character(len=*), intent(in) | module_name, |
character(len=*), intent(in) | field_name, | ||
integer, dimension(:), intent(in) | axes, | ||
character(len=*), intent(in), optional | long_name, | ||
character(len=*), intent(in), optional | units, | ||
class(*), intent(in), optional | missing_value, | ||
class(*), dimension(:), intent(in), optional | range, | ||
logical, intent(in), optional | dynamic | ||
) |
Writes brief diagnostic field info to the log file.
If the do_diag_field_log
namelist parameter is .TRUE., then a line briefly describing diagnostic field is added to the log file. Normally users should not call this subroutine directly, since it is called by register_static_field and register_diag_field if do_not_log is not set to .TRUE.. It is used, however, in LM3 to avoid excessive logs due to the number of fields registered for each of the tile types. LM3 code uses a do_not_log parameter in the registration calls, and subsequently calls this subroutine to log field information under a generic name.
[in] | module_name | Module name |
[in] | field_name | Field name |
[in] | axes | Axis IDs |
[in] | long_name | Long name for field. |
[in] | units | Unit of field. |
[in] | missing_value | Missing value value. |
[in] | range | Valid range of values for field. |
[in] | dynamic | .TRUE. if field is not static. |
Definition at line 635 of file diag_util.F90.
|
private |
Open file for output, and write the meta data.
[in] | file | File ID. |
[in] | time | Time for the file time stamp |
[in] | filename_time | Time used in setting the filename when writting periodic files |
update fnum_for_domain with the correct domain
Allocate the is_time_axis_registered field and set it to false for the first trip
Use the correct file object
Definition at line 1635 of file diag_util.F90.
|
private |
Prepends the attribute value to an already existing attribute. If the attribute isn't yet defined, then creates a new attribute.
[in,out] | out_field | output field that will get the attribute |
[in] | att_name | Name of the attribute |
[in] | prepend_value | Value to prepend |
[out] | err_msg | Error message, passed back to calling routine |
Definition at line 2297 of file diag_util.F90.
|
private |
Prepends the attribute value to an already existing attribute. If the attribute isn't yet defined, then creates a new attribute.
[in,out] | out_file | output file that will get the attribute |
[in] | att_name | Name of the attribute |
[in] | prepend_value | Value to prepend |
[out] | err_msg | Error message, passed back to calling routine |
Definition at line 2413 of file diag_util.F90.
subroutine, public diag_util_mod::sync_file_times | ( | integer, intent(in) | file_id, |
type(time_type), intent(in) | init_time, | ||
character(len=*), intent(out), optional | err_msg | ||
) |
Synchronize the file's start and close times with the model start and end times.
sync_file_times
checks to see if the file start time is less than the model's init time (passed in as the only argument). If it is less, then the both the file start time and end time are synchronized using the passed in initial time and the duration as calculated by the diag_time_inc
function. sync_file_times
will also increase the next_open
until it is greater than the init_time.
[in] | file_id | The file ID |
[in] | init_time | Initial time use for the synchronization. |
[out] | err_msg | Return error message |
Definition at line 1244 of file diag_util.F90.
subroutine, public diag_util_mod::update_bounds | ( | integer, intent(in) | out_num, |
integer, intent(in) | lower_i, | ||
integer, intent(in) | upper_i, | ||
integer, intent(in) | lower_j, | ||
integer, intent(in) | upper_j, | ||
integer, intent(in) | lower_k, | ||
integer, intent(in) | upper_k | ||
) |
Update the output_fields
x, y, and z min and max boundaries (array indices) with the six specified bounds values.
[in] | out_num | output field ID |
[in] | lower_i | Lower i bound. |
[in] | upper_i | Upper i bound. |
[in] | lower_j | Lower j bound. |
[in] | upper_j | Upper j bound. |
[in] | lower_k | Lower k bound. |
[in] | upper_k | Upper k bound. |
Definition at line 747 of file diag_util.F90.
subroutine, public diag_util_mod::write_static | ( | integer, intent(in) | file | ) |
Output all static fields in this file.
[in] | file | File ID. |
Definition at line 2207 of file diag_util.F90.