FV3 Bundle
diag_manager.F90 File Reference
#include <fms_platform.h>
#include <file_version.h>
Include dependency graph for diag_manager.F90:

Go to the source code of this file.

Data Types

interface  diag_manager_mod::send_data
 
interface  diag_manager_mod::register_diag_field
 
interface  diag_manager_mod::send_tile_averaged_data
 
interface  diag_manager_mod::diag_field_add_attribute
 

Modules

module  diag_manager_mod
 

Functions/Subroutines

integer function diag_manager_mod::register_diag_field_scalar (module_name, field_name, init_time, long_name, units, missing_value, range, standard_name, do_not_log, err_msg, area, volume, realm)
 
integer function diag_manager_mod::register_diag_field_array (module_name, field_name, axes, init_time, long_name, units, missing_value, range, mask_variant, standard_name, verbose, do_not_log, err_msg, interp_method, tile_count, area, volume, realm)
 
integer function, public diag_manager_mod::register_static_field (module_name, field_name, axes, long_name, units, missing_value, range, mask_variant, standard_name, DYNAMIC, do_not_log, interp_method, tile_count, area, volume, realm)
 
integer function, public diag_manager_mod::get_diag_field_id (module_name, field_name)
 
logical function diag_manager_mod::get_related_field (field, rel_field, out_field_id, out_file_id)
 
subroutine diag_manager_mod::init_field_cell_measures (output_field, area, volume, err_msg)
 
subroutine diag_manager_mod::add_associated_files (file_num, cm_file_num, cm_ind)
 Add to the associated files attribute. More...
 
logical function diag_manager_mod::send_data_0d (diag_field_id, field, time, err_msg)
 
logical function diag_manager_mod::send_data_1d (diag_field_id, field, time, is_in, mask, rmask, ie_in, weight, err_msg)
 
logical function diag_manager_mod::send_data_2d (diag_field_id, field, time, is_in, js_in, mask, rmask, ie_in, je_in, weight, err_msg)
 
logical function diag_manager_mod::send_data_2d_r8 (diag_field_id, field, time, is_in, js_in, mask, rmask, ie_in, je_in, weight, err_msg)
 
logical function diag_manager_mod::send_data_3d_r8 (diag_field_id, field, time, is_in, js_in, ks_in, mask, rmask, ie_in, je_in, ke_in, weight, err_msg)
 
logical function diag_manager_mod::send_data_3d (diag_field_id, field, time, is_in, js_in, ks_in, mask, rmask, ie_in, je_in, ke_in, weight, err_msg)
 
logical function diag_manager_mod::send_tile_averaged_data1d (id, field, area, time, mask)
 
subroutine diag_manager_mod::average_tiles1d (diag_field_id, x, area, mask, out)
 
logical function diag_manager_mod::send_tile_averaged_data2d (id, field, area, time, mask)
 
logical function diag_manager_mod::send_tile_averaged_data3d (id, field, area, time, mask)
 
subroutine diag_manager_mod::average_tiles (diag_field_id, x, area, mask, out)
 
integer function diag_manager_mod::writing_field (out_num, at_diag_end, error_string, time)
 
subroutine, public diag_manager_mod::diag_manager_set_time_end (Time_end_in)
 
subroutine, public diag_manager_mod::diag_send_complete_instant (time)
 The subroutine 'diag_send_complete_instant' allows the user to save diagnostic data on variable intervals (user defined in code logic) to the same file. The argument (time_type) will be written to the time axis correspondingly. More...
 
subroutine, public diag_manager_mod::diag_send_complete (time_step, err_msg)
 
subroutine, public diag_manager_mod::diag_manager_end (time)
 
subroutine diag_manager_mod::closing_file (file, time)
 
subroutine, public diag_manager_mod::diag_manager_init (diag_model_subset, time_init, err_msg)
 
type(time_type) function, public diag_manager_mod::get_base_time ()
 
subroutine, public diag_manager_mod::get_base_date (year, month, day, hour, minute, second)
 
logical function, public diag_manager_mod::need_data (diag_field_id, next_model_time)
 
integer function diag_manager_mod::init_diurnal_axis (n_samples)
 
subroutine diag_manager_mod::diag_field_attribute_init (diag_field_id, name, type, cval, ival, rval)
 
subroutine diag_manager_mod::diag_field_add_attribute_scalar_r (diag_field_id, att_name, att_value)
 
subroutine diag_manager_mod::diag_field_add_attribute_scalar_i (diag_field_id, att_name, att_value)
 
subroutine diag_manager_mod::diag_field_add_attribute_scalar_c (diag_field_id, att_name, att_value)
 
subroutine diag_manager_mod::diag_field_add_attribute_r1d (diag_field_id, att_name, att_value)
 
subroutine diag_manager_mod::diag_field_add_attribute_i1d (diag_field_id, att_name, att_value)
 
subroutine, public diag_manager_mod::diag_field_add_cell_measures (diag_field_id, area, volume)
 
program test
 diag_table for test 100 (unstructured grid) More...
 
subroutine compute_grid (nlon, nlat, is, ie, js, je, lon_global, lat_global, lonb_global, latb_global, lon, lat, lonb, latb)
 If the test_number == 100, then call the unstrcutured grid unit test and skip everything else. More...
 
subroutine unstruct_test (nx, ny, nz, npes, num_domain_tiles_x, num_domain_tiles_y, diag_time, io_tile_factor)
 

Variables

type(time_typediag_manager_mod::time_end
 

Function/Subroutine Documentation

◆ compute_grid()

subroutine test::compute_grid ( integer, intent(in)  nlon,
integer, intent(in)  nlat,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
real, dimension(:), intent(out)  lon_global,
real, dimension(:), intent(out)  lat_global,
real, dimension(:), intent(out)  lonb_global,
real, dimension(:), intent(out)  latb_global,
real, dimension(:), intent(out)  lon,
real, dimension(:), intent(out)  lat,
real, dimension(:), intent(out)  lonb,
real, dimension(:), intent(out)  latb 
)

If the test_number == 100, then call the unstrcutured grid unit test and skip everything else.

Definition at line 5357 of file diag_manager.F90.

Here is the caller graph for this function:

◆ test()

program test ( )

diag_table for test 100 (unstructured grid)

test_unstructured_grid_diag_manager 1990 1 1 0 0 0 #output files "unstructured_diag_test", 1, "days", 1, "days", "time", #output variables "UG_unit_test", "unstructured_real_scalar_field_data", "rsf_diag_1", "unstructured_diag_test", "all", .TRUE., "none", 1, "UG_unit_test", "unstructured_real_1D_field_data", "unstructured_real_1D_field_data", "unstructured_diag_test", "all", .TRUE., "none", 1, "UG_unit_test", "unstructured_real_2D_field_data", "unstructured_real_2D_field_data", "unstructured_diag_test", "all", .TRUE., "none", 1,

Definition at line 4567 of file diag_manager.F90.

Here is the call graph for this function:

◆ unstruct_test()

subroutine test::unstruct_test ( integer(int_kind), intent(in)  nx,
integer(int_kind), intent(in)  ny,
integer(int_kind), intent(in)  nz,
integer(int_kind), intent(in)  npes,
integer(int_kind), intent(in)  num_domain_tiles_x,
integer(int_kind), intent(in)  num_domain_tiles_y,
type(time_type), intent(inout)  diag_time,
integer(int_kind), intent(in)  io_tile_factor 
)
Parameters
[in]nxThe number of grid points in the x-direction.
[in]nyThe number of grid points in the y-direction.
[in]nzThe number of grid points in the z-direction.
[in]npesThe total number of ranks used in this test.
[in]num_domain_tiles_xThe total number of domain tiles in the x-dimension for the 2D structured domain in this test.
[in]num_domain_tiles_yThe total number of domain tiles in the y-dimension for the 2D structured domain in this test.
[in,out]diag_timeTime for diag_manager.
[in]io_tile_factorI/O tile factor. See below.

Set in namelist is "I/O tile factor". The number of ranks that participate in I/O for a tile is equal to:

num_io_ranks_on_a_tile = num_ranks_on_the_tile / "I/O tile factor".

so for:

io_tile_factor = 1, all of the ranks on a tile participate in the I/O io_tile_factor = 2, 1/2 of the ranks on a tile participate in the I/O io_tile_factor = 3, 1/3 of the ranks on a tile participate in the I/O ... io_tile_factor = 0 is a special case where only one rank participates in the I/O for a tile. io_tile_factor = 1

Latitude and Longitude

Definition at line 5385 of file diag_manager.F90.

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