<TT>diag_manager_mod</TT> is a set of simple calls for parallel diagnostics on distributed systems. It is geared toward the writing of data in netCDF format.
time_manager_mod
mpp_io_mod
fms_mod
diag_axis_mod
diag_output_mod
use diag_manager_mod [, only: send_data,
register_diag_field,
register_static_field,
diag_manager_end,
diag_manager_init,
get_base_time,
get_base_date,
need_data ]
diag_field_id |
[integer] [integer] [integer] [integer] |
field |
[real] [real, dimension(:)] [real, dimension(:,:)] [real, dimension(:,:,:)] |
time |
[time_type] [time_type] [time_type] [time_type] |
register_diag_field (module_name, field_name, axes, init_time, & long_name, units, missing_value, range)
module_name |
[character(len=*)] |
field_name |
[character(len=*)] |
axes |
[integer, dimension(:)] |
init_time |
[time_type] |
long_name |
[character(len=*)] |
units |
[character(len=*)] |
missing_value |
[real] |
range |
[real, dimension(2)] |
register_static_field (module_name, field_name, axes, & long_name, units, missing_value, range, require)
module_name |
[character(len=*)] |
field_name |
[character(len=*)] |
axes |
[integer, dimension(:)] |
long_name |
[character(len=*)] |
units |
[character(len=*)] |
missing_value |
[real] |
range |
[real, dimension(2)] |
call diag_manager_end (time)
TIME |
[time_type] |
call diag_manager_init ()
call get_base_time ()
call get_base_date (year, month, day, hour, minute, second)
need_data (diag_field_id,next_model_time)
inext_model_time | next_model_time = current model time + model time_step [time_type] |
diag_field_id |
[integer] |
use diag_manager_modIf netCDF output is desired, the cpp flag <TT>-Duse_netCDF</TT> must be turned on. The loader step requires an explicit link to the netCDF library (typically something like <TT>-L/usr/local/lib -lnetcdf</TT>, depending on the path to the netCDF library). netCDF release 3 for fortran is required.
GFDL users can checkout diag_manager_mod using the cvs command <TT>setenv CVSROOT '/home/fms/cvs';cvs co diag_manager</TT>.
ACQUIRING SOURCE