FV3 Bundle
diag_manifest_mod Module Reference

diag_manifest_mod writes out a manifest file for each diagnostic output file defined in the diag_table file. More...

Data Types

interface  assignment(=)
 Assignment operator for TYPE(manifest_field_type) More...
 
type  manifest_field_type
 A type to hold the data required for the manifest file. More...
 
type  manifest_fields_type
 A type to hold all the fields by dimension size. More...
 

Functions/Subroutines

subroutine, public write_diag_manifest (file)
 Public routine that will start the writing of the manifest file. More...
 
subroutine destroy_manifest_fields_type (manifest_fields)
 De-allocate arrays used in the manifest_fields_type. More...
 
subroutine manifest_field_type_assign (lhs, rhs)
 Allow ASSIGNMENT(=) operator to work on TYPE(manifest_field_type) More...
 
subroutine write_fields (unit, fields)
 Write the JSON format of the field object. More...
 
subroutine write_manifest (unit, fields, static)
 Write the JSON format of the static/temporal object. More...
 
type(manifest_fields_type) function get_diagnostic_fields (file, static)
 Extract the diagnostic fields, and collect the information about the fields. More...
 

Detailed Description

diag_manifest_mod writes out a manifest file for each diagnostic output file defined in the diag_table file.

Author
Seth Underwood Seth..nosp@m.Unde.nosp@m.rwood.nosp@m.@noa.nosp@m.a.gov

diag_manifest_mod writes a JSON formatted manifest file for each diagnostic file defined in the diag_table file. The manifest file contains basic information about each field. Although, this manifest file is for use in the future Chaco release of the FMS Runtime Environment (FRE), others may find the information in this file useful.

Although some FMS components write diagnostic files separated by tiles (Cubed-sphere atmosphere), and some models are run with multiple ensembles the only one manifest file will be written for each. That is, although an atmos_cubed_sphere component may write atmos_month.tile[1-6].nc, only one manifest file atmos_month.mfst will be written. This was done as diag_manager_mod does not allow a tile or ensemble to write out a different set of diagnostics. All tiles, and ensemble members read the same diag_table file.

Function/Subroutine Documentation

◆ destroy_manifest_fields_type()

subroutine diag_manifest_mod::destroy_manifest_fields_type ( type(manifest_fields_type), intent(inout)  manifest_fields)
private

De-allocate arrays used in the manifest_fields_type.

Definition at line 186 of file diag_manifest.F90.

Here is the caller graph for this function:

◆ get_diagnostic_fields()

type(manifest_fields_type) function diag_manifest_mod::get_diagnostic_fields ( integer, intent(in)  file,
logical, intent(in)  static 
)
private

Extract the diagnostic fields, and collect the information about the fields.

Parameters
[in]filediagnostic file, as defined by diag_manager_mod
[in]staticIndicates if looking for static or non-static fields. .TRUE. indicates looking only for static files. .FALSE. indicates looking only for non-static fields.

Definition at line 290 of file diag_manifest.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ manifest_field_type_assign()

subroutine diag_manifest_mod::manifest_field_type_assign ( type(manifest_field_type), intent(out)  lhs,
type(manifest_field_type), intent(in)  rhs 
)
private

Allow ASSIGNMENT(=) operator to work on TYPE(manifest_field_type)

Simply assign the type on the rhs to the type on the lhs of the =.

Parameters
[out]lhslhs, target
[in]rhsrhs, source

Definition at line 204 of file diag_manifest.F90.

◆ write_diag_manifest()

subroutine, public diag_manifest_mod::write_diag_manifest ( integer, intent(in)  file)

Public routine that will start the writing of the manifest file.

This routine is written in such a way that only the root MPI process and the master OpenMP thread will attempt to write the file.

Definition at line 107 of file diag_manifest.F90.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ write_fields()

subroutine diag_manifest_mod::write_fields ( integer, intent(in)  unit,
type(manifest_field_type), dimension(:), intent(in)  fields 
)
private

Write the JSON format of the field object.

Parameters
[in]unitFile unit number. File should already be opened.
[in]fieldsArray of fields to write

Definition at line 217 of file diag_manifest.F90.

Here is the caller graph for this function:

◆ write_manifest()

subroutine diag_manifest_mod::write_manifest ( integer, intent(in)  unit,
type(manifest_fields_type), intent(in)  fields,
logical, intent(in)  static 
)
private

Write the JSON format of the static/temporal object.

Parameters
[in]unitFile unit number. File should already be opened.
[in]fieldsAll fields to be written to manifest file
[in]staticIndicate if the fields in the fields array are static or non-static fields

Definition at line 243 of file diag_manifest.F90.

Here is the call graph for this function:
Here is the caller graph for this function: