The field manager reads entries from a field table and stores this information along with the type of field it belongs to. This allows the component models to query the field manager to see if non-default methods of operation are desired. In essence the field table is a powerful type of namelist. Default values can be provided for all the fields through a namelist, individual fields can be modified through the field table however.
"tracer","atmos_mod","sphum"/ "tracer","atmos_mod","sf6" "longname","sulf_hex" "advection_scheme_horiz","2nd_order" "Profile_type","Fixed","surface_value = 0.0E+00"/In this example we have two field entries.
mpp_mod
mpp_io_mod
fms_mod
use field_manager_mod [, only: field_manager_init,
field_manager_end,
find_field_index,
get_field_info,
get_field_method,
get_field_methods,
parse ]
Name | Type | Value | Units | Description |
---|---|---|---|---|
NUM_MODELS | integer, parameter | 5 | --- | Number of models. |
module_is_initialized | logical | .false. | --- | Field manager is initialized. |
MODEL_ATMOS | integer, parameter | 1 | --- | Atmospheric model. |
MODEL_OCEAN | integer, parameter | 2 | --- | Ocean model. |
MODEL_LAND | integer, parameter | 3 | --- | Land model. |
MODEL_ICE | integer, parameter | 4 | --- | Ice model. |
call field_manager_init (nfields, table_name)
table_name | The name of the field table. The default name is field_table. [character, optional, dimension(len=128)] |
nfields | The number of fields. [integer] |
call field_manager_end
value= find_field_index ( model, field_name )
model | The number indicating which model is used. [integer] |
call get_field_info ( n,fld_type,fld_name,model,num_methods )
n | The field index. [integer] |
fld_type | The field type. [character, dimension(*)] |
fld_name | The name of the field. [character, dimension(*)] |
model | The number indicating which model is used. [integer] |
num_methods | The number of methods. [integer] |
call get_field_method ( n,m,method )
n | The field index. [integer] |
m | The method index. [integer] |
call get_field_methods ( n,methods )
n | The field index. [integer] |
number = parse (text, label, value)
text | The text string from which the values will be parsed. [character(len=*)] |
label | A label which describes the values being decoded. [character(len=*)] |
value | The value or values that have been decoded. [integer, real, character(len=*)] |
parse | The number of values that have been decoded. This allows
a user to define a large array and fill it partially with
values from a list. This should be the size of the value array. [integer] |