FV3 Bundle
coupler_types_mod Module Reference

This module contains type declarations for the coupler. More...

Data Types

type  coupler_1d_bc_type
 
type  coupler_1d_field_type
 
type  coupler_1d_values_type
 
type  coupler_2d_bc_type
 
type  coupler_2d_field_type
 
type  coupler_2d_values_type
 
type  coupler_3d_bc_type
 
type  coupler_3d_field_type
 
type  coupler_3d_values_type
 
interface  coupler_type_copy
 This is the interface to spawn one coupler_bc_type into another and then register diagnostics associated with the new type. More...
 
interface  coupler_type_copy_data
 This is the interface to copy the field data from one coupler_bc_type to another of the same rank, size and decomposition. More...
 
interface  coupler_type_data_override
 This is the interface to override the values of the arrays in a coupler_bc_type. More...
 
interface  coupler_type_destructor
 This is the interface to deallocate any data associated with a coupler_bc_type. More...
 
interface  coupler_type_extract_data
 This is the interface to extract a field in a coupler_bc_type into an array. More...
 
interface  coupler_type_increment_data
 This is the interface to increment the field data from one coupler_bc_type with the data from another. Both must have the same horizontal size and decomposition, but a 2d type may be incremented by a 2d or 3d type. More...
 
interface  coupler_type_initialized
 This function interface indicates whether a coupler_bc_type has been initialized. More...
 
interface  coupler_type_redistribute_data
 This is the interface to redistribute the field data from one coupler_bc_type to another of the same rank and global size, but a different decomposition. More...
 
interface  coupler_type_register_restarts
 This is the interface to register the fields in a coupler_bc_type to be saved in restart files. More...
 
interface  coupler_type_rescale_data
 This is the interface to rescale the field data in a coupler_bc_type. More...
 
interface  coupler_type_restore_state
 This is the interface to read in the fields in a coupler_bc_type that have been saved in restart files. More...
 
interface  coupler_type_send_data
 This is the interface to write out diagnostics of the arrays in a coupler_bc_type. More...
 
interface  coupler_type_set_data
 This is the interface to set a field in a coupler_bc_type from an array. More...
 
interface  coupler_type_set_diags
 This is the interface to set diagnostics for the arrays in a coupler_bc_type. More...
 
interface  coupler_type_spawn
 This is the interface to spawn one coupler_bc_type into another. More...
 
interface  coupler_type_write_chksums
 This is the interface to write out checksums for the elements of a coupler_bc_type. More...
 

Functions/Subroutines

subroutine, public coupler_types_init
 Initialize the coupler types. More...
 
subroutine, public coupler_type_copy_1d_2d (var_in, var_out, is, ie, js, je, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 1-D to 2-D version for generic coupler_type_copy. More...
 
subroutine, public coupler_type_copy_1d_3d (var_in, var_out, is, ie, js, je, kd, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 1-D to 3-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_2d_2d (var_in, var_out, is, ie, js, je, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 2-D to 2-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_2d_3d (var_in, var_out, is, ie, js, je, kd, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 2-D to 3-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_3d_2d (var_in, var_out, is, ie, js, je, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 3-D to 2-D version for generic coupler_type_copy. More...
 
subroutine coupler_type_copy_3d_3d (var_in, var_out, is, ie, js, je, kd, diag_name, axes, time, suffix)
 Copy fields from one coupler type to another. 3-D to 3-D version for generic coupler_type_copy. More...
 
subroutine ct_spawn_1d_2d (var_in, var, idim, jdim, suffix, as_needed)
 Generate one coupler type using another as a template. 1-D to 2-D version for generic coupler_type_spawn. More...
 
subroutine ct_spawn_1d_3d (var_in, var, idim, jdim, kdim, suffix, as_needed)
 Generate one coupler type using another as a template. 1-D to 3-D version for generic CT_spawn. More...
 
subroutine ct_spawn_2d_2d (var_in, var, idim, jdim, suffix, as_needed)
 Generate one coupler type using another as a template. 2-D to 2-D version for generic CT_spawn. More...
 
subroutine ct_spawn_2d_3d (var_in, var, idim, jdim, kdim, suffix, as_needed)
 Generate one coupler type using another as a template. 2-D to 3-D version for generic CT_spawn. More...
 
subroutine ct_spawn_3d_2d (var_in, var, idim, jdim, suffix, as_needed)
 Generate one coupler type using another as a template. 3-D to 2-D version for generic CT_spawn. More...
 
subroutine ct_spawn_3d_3d (var_in, var, idim, jdim, kdim, suffix, as_needed)
 Generate one coupler type using another as a template. 3-D to 3-D version for generic CT_spawn. More...
 
subroutine ct_copy_data_2d (var_in, var, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice)
 Copy all elements of coupler_2d_bc_type. More...
 
subroutine ct_copy_data_3d (var_in, var, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice)
 Copy all elements of coupler_3d_bc_type. More...
 
subroutine ct_copy_data_2d_3d (var_in, var, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice, ind3_start, ind3_end)
 Copy all elements of coupler_2d_bc_type to coupler_3d_bc_type. More...
 
subroutine ct_redistribute_data_2d (var_in, domain_in, var_out, domain_out, complete)
 Redistribute the data in all elements of a coupler_2d_bc_type. More...
 
subroutine ct_redistribute_data_3d (var_in, domain_in, var_out, domain_out, complete)
 Redistributes the data in all elements of one coupler_2d_bc_type. More...
 
subroutine ct_rescale_data_2d (var, scale, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice)
 Rescales the fields in the fields in the elements of a coupler_2d_bc_type. More...
 
subroutine ct_rescale_data_3d (var, scale, halo_size, bc_index, field_index, exclude_flux_type, only_flux_type, pass_through_ice)
 
subroutine ct_increment_data_2d_2d (var_in, var, halo_size, bc_index, field_index, scale_factor, scale_prev, exclude_flux_type, only_flux_type, pass_through_ice)
 
subroutine ct_increment_data_3d_3d (var_in, var, halo_size, bc_index, field_index, scale_factor, scale_prev, exclude_flux_type, only_flux_type, pass_through_ice)
 
subroutine ct_increment_data_2d_3d (var_in, weights, var, halo_size, bc_index, field_index, scale_factor, scale_prev, exclude_flux_type, only_flux_type, pass_through_ice)
 
subroutine ct_extract_data_2d (var_in, bc_index, field_index, array_out, scale_factor, halo_size, idim, jdim)
 Extract a 2d field from a coupler_2d_bc_type. More...
 
subroutine ct_extract_data_3d_2d (var_in, bc_index, field_index, k_in, array_out, scale_factor, halo_size, idim, jdim)
 
subroutine ct_extract_data_3d (var_in, bc_index, field_index, array_out, scale_factor, halo_size, idim, jdim)
 Extract single 3d field from a coupler_3d_bc_type. More...
 
subroutine ct_set_data_2d (array_in, bc_index, field_index, var, scale_factor, halo_size, idim, jdim)
 Set single 2d field in coupler_3d_bc_type. More...
 
subroutine ct_set_data_2d_3d (array_in, bc_index, field_index, k_out, var, scale_factor, halo_size, idim, jdim)
 Set one k-level of a single 3d field in a coupler_3d_bc_type. More...
 
subroutine ct_set_data_3d (array_in, bc_index, field_index, var, scale_factor, halo_size, idim, jdim)
 Set a single 3d field in a coupler_3d_bc_type. More...
 
subroutine ct_set_diags_2d (var, diag_name, axes, time)
 
subroutine ct_set_diags_3d (var, diag_name, axes, time)
 Register the diagnostics of a coupler_3d_bc_type. More...
 
subroutine ct_send_data_2d (var, Time)
 Write out all diagnostics of elements of a coupler_2d_bc_type. More...
 
subroutine ct_send_data_3d (var, Time)
 Write out all diagnostics of elements of a coupler_3d_bc_type. More...
 
subroutine ct_register_restarts_2d (var, bc_rest_files, num_rest_files, mpp_domain, ocean_restart)
 
subroutine ct_register_restarts_to_file_2d (var, file_name, rest_file, mpp_domain, varname_prefix)
 
subroutine ct_register_restarts_3d (var, bc_rest_files, num_rest_files, mpp_domain, ocean_restart)
 
subroutine ct_register_restarts_to_file_3d (var, file_name, rest_file, mpp_domain, varname_prefix)
 Register the fields in a coupler_3d_bc_type to be saved to restart files. More...
 
subroutine ct_restore_state_2d (var, directory, all_or_nothing, all_required, test_by_field)
 Reads in fields from restart files into a coupler_2d_bc_type. More...
 
subroutine ct_restore_state_3d (var, directory, all_or_nothing, all_required, test_by_field)
 Read in fields from restart files into a coupler_3d_bc_type. More...
 
subroutine ct_data_override_2d (gridname, var, Time)
 Potentially override the values in a coupler_2d_bc_type. More...
 
subroutine ct_data_override_3d (gridname, var, Time)
 Potentially override the values in a coupler_3d_bc_type. More...
 
subroutine ct_write_chksums_2d (var, outunit, name_lead)
 Write out checksums for the elements of a coupler_2d_bc_type. More...
 
subroutine ct_write_chksums_3d (var, outunit, name_lead)
 Write out checksums for the elements of a coupler_3d_bc_type. More...
 
logical function ct_initialized_1d (var)
 Indicate whether a coupler_1d_bc_type has been initialized. More...
 
logical function ct_initialized_2d (var)
 Indicate whether a coupler_2d_bc_type has been initialized. More...
 
logical function ct_initialized_3d (var)
 Indicate whether a coupler_3d_bc_type has been initialized. More...
 
subroutine ct_destructor_1d (var)
 Deallocate all data associated with a coupler_1d_bc_type. More...
 
subroutine ct_destructor_2d (var)
 Deallocate all data associated with a coupler_2d_bc_type. More...
 
subroutine ct_destructor_3d (var)
 Deallocate all data associated with a coupler_3d_bc_type. More...
 

Variables

character(len= *), parameter mod_name = 'coupler_types_mod'
 
integer, public ind_pcair = 1
 The index of the atmospheric concentration. More...
 
integer, public ind_u10 = 2
 The index of the 10 m wind speed. More...
 
integer, public ind_psurf = 3
 The index of the surface atmospheric pressure. More...
 
integer, public ind_alpha = 1
 The index of the solubility array for a tracer. More...
 
integer, public ind_csurf = 2
 The index of the ocean surface concentration. More...
 
integer, public ind_sc_no = 3
 The index for the Schmidt number for a tracer flux. More...
 
integer, public ind_flux = 1
 The index for the tracer flux. More...
 
integer, public ind_deltap = 2
 The index for ocean-air gas partial pressure change. More...
 
integer, public ind_kw = 3
 The index for the piston velocity. More...
 
integer, public ind_flux0 = 4
 The index for the piston velocity. More...
 
integer, public ind_deposition = 1
 The index for the atmospheric deposition flux. More...
 
integer, public ind_runoff = 1
 The index for a runoff flux. More...
 

Detailed Description

This module contains type declarations for the coupler.

Author
Richard Slater Richa.nosp@m.rd.S.nosp@m.later.nosp@m.@noa.nosp@m.a.gov
John Dunne John..nosp@m.Dunn.nosp@m.e@noa.nosp@m.a.go.nosp@m.v

Function/Subroutine Documentation

◆ coupler_type_copy_1d_2d()

subroutine, public coupler_types_mod::coupler_type_copy_1d_2d ( type(coupler_1d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)

Copy fields from one coupler type to another. 1-D to 2-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 321 of file coupler_types.F90.

Here is the call graph for this function:

◆ coupler_type_copy_1d_3d()

subroutine, public coupler_types_mod::coupler_type_copy_1d_3d ( type(coupler_1d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  kd,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)

Copy fields from one coupler type to another. 1-D to 3-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields is exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]kdthird dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 356 of file coupler_types.F90.

Here is the call graph for this function:

◆ coupler_type_copy_2d_2d()

subroutine coupler_types_mod::coupler_type_copy_2d_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 2-D to 2-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields is exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 391 of file coupler_types.F90.

Here is the call graph for this function:

◆ coupler_type_copy_2d_3d()

subroutine coupler_types_mod::coupler_type_copy_2d_3d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  kd,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 2-D to 3-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields is exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]kdthird dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 425 of file coupler_types.F90.

Here is the call graph for this function:

◆ coupler_type_copy_3d_2d()

subroutine coupler_types_mod::coupler_type_copy_3d_2d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 3-D to 2-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields is exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 460 of file coupler_types.F90.

Here is the call graph for this function:

◆ coupler_type_copy_3d_3d()

subroutine coupler_types_mod::coupler_type_copy_3d_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var_out,
integer, intent(in)  is,
integer, intent(in)  ie,
integer, intent(in)  js,
integer, intent(in)  je,
integer, intent(in)  kd,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time,
character(len=*), intent(in), optional  suffix 
)
private

Copy fields from one coupler type to another. 3-D to 3-D version for generic coupler_type_copy.

Exceptions
FATAL,Number of output fields exceeds zero
Parameters
[in]var_invariable to copy information from
[in,out]var_outvariable to copy information to
[in]islower bound of first dimension
[in]ieupper bound of first dimension
[in]jslower bound of second dimension
[in]jeupper bound of second dimension
[in]kdthird dimension
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field
[in]suffixoptional suffix to make the name identifier unique

Definition at line 494 of file coupler_types.F90.

Here is the call graph for this function:

◆ coupler_types_init()

subroutine, public coupler_types_mod::coupler_types_init ( )

Initialize the coupler types.

Definition at line 299 of file coupler_types.F90.

◆ ct_copy_data_2d()

subroutine coupler_types_mod::ct_copy_data_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private

Copy all elements of coupler_2d_bc_type.

Do a direct copy of the data in all elements of one coupler_2d_bc_type into another. Both must have the same array sizes.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to copy
[in,out]varThe recipient BC_type structure
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this

Definition at line 1133 of file coupler_types.F90.

◆ ct_copy_data_2d_3d()

subroutine coupler_types_mod::ct_copy_data_2d_3d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice,
integer, intent(in), optional  ind3_start,
integer, intent(in), optional  ind3_end 
)
private

Copy all elements of coupler_2d_bc_type to coupler_3d_bc_type.

Do a direct copy of the data in all elements of one coupler_2d_bc_type into a coupler_3d_bc_type. Both must have the same array sizes for the first two dimensions, while the extend of the 3rd dimension that is being filled may be specified via optional arguments..

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to copy
[in,out]varThe recipient BC_type structure
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this
[in]ind3_startThe starting value of the 3rd index of the 3d type to fill in.
[in]ind3_endThe ending value of the 3rd index of the 3d type to fill in.

Definition at line 1330 of file coupler_types.F90.

◆ ct_copy_data_3d()

subroutine coupler_types_mod::ct_copy_data_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private

Copy all elements of coupler_3d_bc_type.

Do a direct copy of the data in all elements of one coupler_3d_bc_type into another. Both must have the same array sizes.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index is present and exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,bc_index must be present if field_index is present.
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,There is an k-direction computational domain size mismatch.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive k-direction halo size for the input structure.
Parameters
[in]var_inBC_type structure with the data to copy
[in,out]varThe recipient BC_type structure
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this

Definition at line 1228 of file coupler_types.F90.

◆ ct_data_override_2d()

subroutine coupler_types_mod::ct_data_override_2d ( character(len=3), intent(in)  gridname,
type(coupler_2d_bc_type), intent(inout)  var,
type(time_type), intent(in)  Time 
)
private

Potentially override the values in a coupler_2d_bc_type.

Parameters
[in]gridname3-character long model grid ID
[in,out]varBC_type structure to override
[in]timeThe current model time

Definition at line 3403 of file coupler_types.F90.

◆ ct_data_override_3d()

subroutine coupler_types_mod::ct_data_override_3d ( character(len=3), intent(in)  gridname,
type(coupler_3d_bc_type), intent(inout)  var,
type(time_type), intent(in)  Time 
)
private

Potentially override the values in a coupler_3d_bc_type.

Parameters
[in]gridname3-character long model grid ID
[in,out]varBC_type structure to override
[in]timeThe current model time

Definition at line 3418 of file coupler_types.F90.

◆ ct_destructor_1d()

subroutine coupler_types_mod::ct_destructor_1d ( type(coupler_1d_bc_type), intent(inout)  var)
private

Deallocate all data associated with a coupler_1d_bc_type.

Parameters
[in,out]varBC_type structure to be deconstructed

Definition at line 3500 of file coupler_types.F90.

◆ ct_destructor_2d()

subroutine coupler_types_mod::ct_destructor_2d ( type(coupler_2d_bc_type), intent(inout)  var)
private

Deallocate all data associated with a coupler_2d_bc_type.

Parameters
[in,out]varBC_type structure to be deconstructed

Definition at line 3520 of file coupler_types.F90.

◆ ct_destructor_3d()

subroutine coupler_types_mod::ct_destructor_3d ( type(coupler_3d_bc_type), intent(inout)  var)
private

Deallocate all data associated with a coupler_3d_bc_type.

Parameters
[in,out]varBC_type structure to be deconstructed

Definition at line 3540 of file coupler_types.F90.

◆ ct_extract_data_2d()

subroutine coupler_types_mod::ct_extract_data_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
integer, intent(in)  bc_index,
integer, intent(in)  field_index,
real, dimension(1:,1:), intent(out)  array_out,
real, intent(in), optional  scale_factor,
integer, intent(in), optional  halo_size,
integer, dimension(4), intent(in), optional  idim,
integer, dimension(4), intent(in), optional  jdim 
)
private

Extract a 2d field from a coupler_2d_bc_type.

Extract a single 2-d field from a coupler_2d_bc_type into a two-dimensional array.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive j-direction halo size for the input structure.
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,The declared i-dimension size of 'n' does not match the actual size of 'a'
FATAL,The declared j-dimension size of 'n' does not match the actual size of 'a'
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,The target array with i-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with j-dimension size 'n' is too small to match the data of size 'd'
Parameters
[in]var_inBC_type structure with the data to extract
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[out]array_outThe recipient array for the field; its size must match the size of the data being copied unless idim and jdim are supplied.
[in]scale_factorA scaling factor for the data that is being added
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]idimThe data and computational domain extents of the first dimension of the output array in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension of the output array in a non-decreasing list

Definition at line 2166 of file coupler_types.F90.

◆ ct_extract_data_3d()

subroutine coupler_types_mod::ct_extract_data_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
integer, intent(in)  bc_index,
integer, intent(in)  field_index,
real, dimension(1:,1:,1:), intent(out)  array_out,
real, intent(in), optional  scale_factor,
integer, intent(in), optional  halo_size,
integer, dimension(4), intent(in), optional  idim,
integer, dimension(4), intent(in), optional  jdim 
)
private

Extract single 3d field from a coupler_3d_bc_type.

Extract a single 3-d field from a coupler_3d_bc_type into a three-dimensional array.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive j-direction halo size for the input structure.
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,The declared i-dimension size of 'n' does not match the actual size of 'a'
FATAL,The declared j-dimension size of 'n' does not match the actual size of 'a'
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,The target array with i-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with j-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with k-dimension size 'n' does not match the data of size 'd'
Parameters
[in]var_inBC_type structure with the data to extract
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[out]array_outThe recipient array for the field; its size must match the size of the data being copied unless idim and jdim are supplied.
[in]scale_factorA scaling factor for the data that is being added
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]idimThe data and computational domain extents of the first dimension of the output array in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension of the output array in a non-decreasing list

Definition at line 2446 of file coupler_types.F90.

◆ ct_extract_data_3d_2d()

subroutine coupler_types_mod::ct_extract_data_3d_2d ( type(coupler_3d_bc_type), intent(in)  var_in,
integer, intent(in)  bc_index,
integer, intent(in)  field_index,
integer, intent(in)  k_in,
real, dimension(1:,1:), intent(out)  array_out,
real, intent(in), optional  scale_factor,
integer, intent(in), optional  halo_size,
integer, dimension(4), intent(in), optional  idim,
integer, dimension(4), intent(in), optional  jdim 
)
private
Parameters
[in]var_inBC_type structure with the data to extract
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]k_inThe k-index to extract
[out]array_outThe recipient array for the field; its size must match the size of the data being copied unless idim and jdim are supplied.
[in]scale_factorA scaling factor for the data that is being added
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]idimThe data and computational domain extents of the first dimension of the output array in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension of the output array in a non-decreasing list

Definition at line 2303 of file coupler_types.F90.

◆ ct_increment_data_2d_2d()

subroutine coupler_types_mod::ct_increment_data_2d_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
real, intent(in), optional  scale_factor,
real, intent(in), optional  scale_prev,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private
Parameters
[in]var_inBC_type structure with the data to add to the other type
[in,out]varThe BC_type structure whose fields are being incremented
[in]halo_sizeThe extent of the halo to increment; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]scale_factorA scaling factor for the data that is being added
[in]scale_prevA scaling factor for the data that is already here
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this increment.
[in]only_flux_typeA string describing which types of fluxes to include from this increment.
[in]pass_through_iceIf true, only increment BCs whose value of pass_through ice matches this

Definition at line 1804 of file coupler_types.F90.

◆ ct_increment_data_2d_3d()

subroutine coupler_types_mod::ct_increment_data_2d_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
real, dimension(:,:,:), intent(in)  weights,
type(coupler_2d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
real, intent(in), optional  scale_factor,
real, intent(in), optional  scale_prev,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private
Parameters
[in]var_inBC_type structure with the data to add to the other type
[in]weightsAn array of normalized weights for the 3d-data to increment the 2d-data. There is no renormalization, so if the weights do not sum to 1 in the 3rd dimension there may be adverse consequences!
[in,out]varThe BC_type structure whose fields are being incremented
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]scale_factorA scaling factor for the data that is being added
[in]scale_prevA scaling factor for the data that is already here
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this increment.
[in]only_flux_typeA string describing which types of fluxes to include from this increment.
[in]pass_through_iceIf true, only increment BCs whose value of pass_through ice matches this

Definition at line 2028 of file coupler_types.F90.

◆ ct_increment_data_3d_3d()

subroutine coupler_types_mod::ct_increment_data_3d_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
real, intent(in), optional  scale_factor,
real, intent(in), optional  scale_prev,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private
Parameters
[in]var_inBC_type structure with the data to add to the other type
[in,out]varThe BC_type structure whose fields are being incremented
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]scale_factorA scaling factor for the data that is being added
[in]scale_prevA scaling factor for the data that is already here
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this increment.
[in]only_flux_typeA string describing which types of fluxes to include from this increment.
[in]pass_through_iceIf true, only increment BCs whose value of pass_through ice matches this

Definition at line 1913 of file coupler_types.F90.

◆ ct_initialized_1d()

logical function coupler_types_mod::ct_initialized_1d ( type(coupler_1d_bc_type), intent(in)  var)
private

Indicate whether a coupler_1d_bc_type has been initialized.

Parameters
[in]varBC_type structure to be deconstructed

Definition at line 3479 of file coupler_types.F90.

◆ ct_initialized_2d()

logical function coupler_types_mod::ct_initialized_2d ( type(coupler_2d_bc_type), intent(in)  var)
private

Indicate whether a coupler_2d_bc_type has been initialized.

Parameters
[in]varBC_type structure to be deconstructed

Definition at line 3486 of file coupler_types.F90.

◆ ct_initialized_3d()

logical function coupler_types_mod::ct_initialized_3d ( type(coupler_3d_bc_type), intent(in)  var)
private

Indicate whether a coupler_3d_bc_type has been initialized.

Parameters
[in]varBC_type structure to be deconstructed

Definition at line 3493 of file coupler_types.F90.

◆ ct_redistribute_data_2d()

subroutine coupler_types_mod::ct_redistribute_data_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(domain2d), intent(in)  domain_in,
type(coupler_2d_bc_type), intent(inout)  var_out,
type(domain2d), intent(in)  domain_out,
logical, intent(in), optional  complete 
)
private

Redistribute the data in all elements of a coupler_2d_bc_type.

Redistributes the data in all elements of one coupler_2d_bc_type into another, which may be on different processors with a different decomposition.

Exceptions
FATAL,Mismatch in num_bcs in CT_copy_data_2d.
FATAL,Mismatch in the total number of fields in CT_redistribute_data_2d.
Parameters
[in]var_inBC_type structure with the data to copy (intent in)
[in]domain_inThe FMS domain for the input structure
[in,out]var_outThe recipient BC_type structure (data intent out)
[in]domain_outThe FMS domain for the output structure
[in]completeIf true, complete the updates

Definition at line 1428 of file coupler_types.F90.

◆ ct_redistribute_data_3d()

subroutine coupler_types_mod::ct_redistribute_data_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(domain2d), intent(in)  domain_in,
type(coupler_3d_bc_type), intent(inout)  var_out,
type(domain2d), intent(in)  domain_out,
logical, intent(in), optional  complete 
)
private

Redistributes the data in all elements of one coupler_2d_bc_type.

Redistributes the data in all elements of one coupler_2d_bc_type into another, which may be on different processors with a different decomposition.

Parameters
[in]var_inBC_type structure with the data to copy (intent in)
[in]domain_inThe FMS domain for the input structure
[in,out]var_outThe recipient BC_type structure (data intent out)
[in]domain_outThe FMS domain for the output structure
[in]completeIf true, complete the updates

Definition at line 1518 of file coupler_types.F90.

◆ ct_register_restarts_2d()

subroutine coupler_types_mod::ct_register_restarts_2d ( type(coupler_2d_bc_type), intent(inout)  var,
type(restart_file_type), dimension(:), pointer  bc_rest_files,
integer, intent(out)  num_rest_files,
type(domain2d), intent(in)  mpp_domain,
logical, intent(in), optional  ocean_restart 
)
private
Parameters
[in,out]varBC_type structure to be registered for restarts
bc_rest_filesStructures describing the restart files
[out]num_rest_filesThe number of restart files to use
[in]mpp_domainThe FMS domain to use for this registration call
[in]ocean_restartIf true, use the ocean restart file name.

Definition at line 3087 of file coupler_types.F90.

◆ ct_register_restarts_3d()

subroutine coupler_types_mod::ct_register_restarts_3d ( type(coupler_3d_bc_type), intent(inout)  var,
type(restart_file_type), dimension(:), pointer  bc_rest_files,
integer, intent(out)  num_rest_files,
type(domain2d), intent(in)  mpp_domain,
logical, intent(in), optional  ocean_restart 
)
private
Parameters
[in,out]varBC_type structure to be registered for restarts
bc_rest_filesStructures describing the restart files
[out]num_rest_filesThe number of restart files to use
[in]mpp_domainThe FMS domain to use for this registration call
[in]ocean_restartIf true, use the ocean restart file name.

Definition at line 3176 of file coupler_types.F90.

◆ ct_register_restarts_to_file_2d()

subroutine coupler_types_mod::ct_register_restarts_to_file_2d ( type(coupler_2d_bc_type), intent(inout)  var,
character(len=*), intent(in)  file_name,
type(restart_file_type), pointer  rest_file,
type(domain2d), intent(in)  mpp_domain,
character(len=*), intent(in), optional  varname_prefix 
)
private
Parameters
[in,out]varBC_type structure to be registered for restarts
[in]file_nameThe name of the restart file
rest_fileA (possibly associated) structure describing the restart file
[in]mpp_domainThe FMS domain to use for this registration call
[in]varname_prefixA prefix for the variable name in the restart file, intended to allow multiple BC_type variables to use the same restart files.

Definition at line 3143 of file coupler_types.F90.

◆ ct_register_restarts_to_file_3d()

subroutine coupler_types_mod::ct_register_restarts_to_file_3d ( type(coupler_3d_bc_type), intent(inout)  var,
character(len=*), intent(in)  file_name,
type(restart_file_type), pointer  rest_file,
type(domain2d), intent(in)  mpp_domain,
character(len=*), intent(in), optional  varname_prefix 
)
private

Register the fields in a coupler_3d_bc_type to be saved to restart files.

Registers the fields in a coupler_3d_bc_type to be saved in the specified restart file.

Parameters
[in,out]varBC_type structure to be registered for restarts
[in]file_nameThe name of the restart file
rest_fileA (possibly associated) structure describing the restart file
[in]mpp_domainThe FMS domain to use for this registration call
[in]varname_prefixA prefix for the variable name in the restart file, intended to allow multiple BC_type variables to use the same restart files.

Definition at line 3230 of file coupler_types.F90.

◆ ct_rescale_data_2d()

subroutine coupler_types_mod::ct_rescale_data_2d ( type(coupler_2d_bc_type), intent(inout)  var,
real, intent(in)  scale,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private

Rescales the fields in the fields in the elements of a coupler_2d_bc_type.

Rescales the fields in the elements of a coupler_2d_bc_type by multiplying by a factor scale. If scale is 0, this is a direct assignment to 0, so that NaNs will not persist.

Parameters
[in,out]varThe BC_type structure whose fields are being rescaled
[in]scaleA scaling factor to multiply fields by
[in]halo_sizeThe extent of the halo to copy; 0 by default or the full arrays if scale is 0.
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this

Definition at line 1611 of file coupler_types.F90.

◆ ct_rescale_data_3d()

subroutine coupler_types_mod::ct_rescale_data_3d ( type(coupler_3d_bc_type), intent(inout)  var,
real, intent(in)  scale,
integer, intent(in), optional  halo_size,
integer, intent(in), optional  bc_index,
integer, intent(in), optional  field_index,
character(len=*), intent(in), optional  exclude_flux_type,
character(len=*), intent(in), optional  only_flux_type,
logical, intent(in), optional  pass_through_ice 
)
private
Parameters
[in,out]varThe BC_type structure whose fields are being rescaled
[in]scaleA scaling factor to multiply fields by
[in]halo_sizeThe extent of the halo to copy; 0 by default or the full arrays if scale is 0.
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]exclude_flux_typeA string describing which types of fluxes to exclude from this copy.
[in]only_flux_typeA string describing which types of fluxes to include from this copy.
[in]pass_through_iceIf true, only copy BCs whose value of pass_through ice matches this

Definition at line 1701 of file coupler_types.F90.

◆ ct_restore_state_2d()

subroutine coupler_types_mod::ct_restore_state_2d ( type(coupler_2d_bc_type), intent(inout)  var,
character(len=*), intent(in), optional  directory,
logical, intent(in), optional  all_or_nothing,
logical, intent(in), optional  all_required,
logical, intent(in), optional  test_by_field 
)
private

Reads in fields from restart files into a coupler_2d_bc_type.

This subroutine reads in the fields in a coupler_2d_bc_type that have been saved in restart files.

Parameters
[in,out]varBC_type structure to restore from restart files
[in]directoryA directory where the restart files should be found. The default for FMS is 'INPUT'.
[in]all_or_nothingIf true and there are non-mandatory restart fields, it is still an error if some fields are read successfully but others are not.
[in]all_requiredIf true, all fields must be successfully read from the restart file, even if they were registered as not mandatory.
[in]test_by_fieldIf true, all or none of the variables in a single field must be read successfully.

Definition at line 3264 of file coupler_types.F90.

◆ ct_restore_state_3d()

subroutine coupler_types_mod::ct_restore_state_3d ( type(coupler_3d_bc_type), intent(inout)  var,
character(len=*), intent(in), optional  directory,
logical, intent(in), optional  all_or_nothing,
logical, intent(in), optional  all_required,
logical, intent(in), optional  test_by_field 
)
private

Read in fields from restart files into a coupler_3d_bc_type.

This subroutine reads in the fields in a coupler_3d_bc_type that have been saved in restart files.

Parameters
[in,out]varBC_type structure to restore from restart files
[in]directoryA directory where the restart files should be found. The default for FMS is 'INPUT'.
[in]all_or_nothingIf true and there are non-mandatory restart fields, it is still an error if some fields are read successfully but others are not.
[in]all_requiredIf true, all fields must be successfully read from the restart file, even if they were registered as not mandatory.
[in]test_by_fieldIf true, all or none of the variables in a single field must be read successfully.

Definition at line 3334 of file coupler_types.F90.

◆ ct_send_data_2d()

subroutine coupler_types_mod::ct_send_data_2d ( type(coupler_2d_bc_type), intent(in)  var,
type(time_type), intent(in)  Time 
)
private

Write out all diagnostics of elements of a coupler_2d_bc_type.

Parameters
[in]varBC_type structure with the diagnostics to write
[in]timeThe current model time

Definition at line 3050 of file coupler_types.F90.

◆ ct_send_data_3d()

subroutine coupler_types_mod::ct_send_data_3d ( type(coupler_3d_bc_type), intent(in)  var,
type(time_type), intent(in)  Time 
)
private

Write out all diagnostics of elements of a coupler_3d_bc_type.

Parameters
[in]varBC_type structure with the diagnostics to write
[in]timeThe current model time

Definition at line 3067 of file coupler_types.F90.

◆ ct_set_data_2d()

subroutine coupler_types_mod::ct_set_data_2d ( real, dimension(1:,1:), intent(in)  array_in,
integer, intent(in)  bc_index,
integer, intent(in)  field_index,
type(coupler_2d_bc_type), intent(inout)  var,
real, intent(in), optional  scale_factor,
integer, intent(in), optional  halo_size,
integer, dimension(4), intent(in), optional  idim,
integer, dimension(4), intent(in), optional  jdim 
)
private

Set single 2d field in coupler_3d_bc_type.

Set a single 2-d field in a coupler_3d_bc_type from a two-dimensional array.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive j-direction halo size for the input structure.
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,The declared i-dimension size of 'n' does not match the actual size of 'a'
FATAL,The declared j-dimension size of 'n' does not match the actual size of 'a'
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,The target array with i-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with j-dimension size 'n' is too small to match the data of size 'd'
Parameters
[in]array_inThe source array for the field; its size must match the size of the data being copied unless idim and jdim are supplied.
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in,out]varBC_type structure with the data to set
[in]scale_factorA scaling factor for the data that is being added
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]idimThe data and computational domain extents of the first dimension of the output array in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension of the output array in a non-decreasing list

Definition at line 2592 of file coupler_types.F90.

◆ ct_set_data_2d_3d()

subroutine coupler_types_mod::ct_set_data_2d_3d ( real, dimension(1:,1:), intent(in)  array_in,
integer, intent(in)  bc_index,
integer, intent(in)  field_index,
integer, intent(in)  k_out,
type(coupler_3d_bc_type), intent(inout)  var,
real, intent(in), optional  scale_factor,
integer, intent(in), optional  halo_size,
integer, dimension(4), intent(in), optional  idim,
integer, dimension(4), intent(in), optional  jdim 
)
private

Set one k-level of a single 3d field in a coupler_3d_bc_type.

This subroutine sets a one k-level of a single 3-d field in a coupler_3d_bc_type from a two-dimensional array.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive j-direction halo size for the input structure.
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,The declared i-dimension size of 'n' does not match the actual size of 'a'
FATAL,The declared j-dimension size of 'n' does not match the actual size of 'a'
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,The target array with i-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with j-dimension size 'n' is too small to match the data of size 'd'
FATAL,The k-index of 'k' is outside of the valid range of 'ks' to 'ke'
Parameters
[in]array_inThe source array for the field; its size must match the size of the data being copied unless idim and jdim are supplied.
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in]k_outThe k-index to set
[in,out]varBC_type structure with the data to be set
[in]scale_factorA scaling factor for the data that is being added
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]idimThe data and computational domain extents of the first dimension of the output array in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension of the output array in a non-decreasing list

Definition at line 2726 of file coupler_types.F90.

◆ ct_set_data_3d()

subroutine coupler_types_mod::ct_set_data_3d ( real, dimension(1:,1:,1:), intent(in)  array_in,
integer, intent(in)  bc_index,
integer, intent(in)  field_index,
type(coupler_3d_bc_type), intent(inout)  var,
real, intent(in), optional  scale_factor,
integer, intent(in), optional  halo_size,
integer, dimension(4), intent(in), optional  idim,
integer, dimension(4), intent(in), optional  jdim 
)
private

Set a single 3d field in a coupler_3d_bc_type.

This subroutine sets a single 3-d field in a coupler_3d_bc_type from a three-dimensional array.

Exceptions
FATAL,bc_index is present and exceeds var_in%num_bcs.
FATAL,field_index exceeds num_fields for var_in%bc(bc_incdx)%name
FATAL,Excessive i-direction halo size for the input structure.
FATAL,Excessive j-direction halo size for the input structure.
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,The declared i-dimension size of 'n' does not match the actual size of 'a'
FATAL,The declared j-dimension size of 'n' does not match the actual size of 'a'
FATAL,There is an i-direction computational domain size mismatch.
FATAL,There is an j-direction computational domain size mismatch.
FATAL,The target array with i-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with j-dimension size 'n' is too small to match the data of size 'd'
FATAL,The target array with K-dimension size 'n' is too small to match the data of size 'd'
Parameters
[in]array_inThe source array for the field; its size must match the size of the data being copied unless idim and jdim are supplied.
[in]bc_indexThe index of the boundary condition that is being copied
[in]field_indexThe index of the field in the boundary condition that is being copied
[in,out]varBC_type structure with the data to be set
[in]scale_factorA scaling factor for the data that is being added
[in]halo_sizeThe extent of the halo to copy; 0 by default
[in]idimThe data and computational domain extents of the first dimension of the output array in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension of the output array in a non-decreasing list

Definition at line 2867 of file coupler_types.F90.

◆ ct_set_diags_2d()

subroutine coupler_types_mod::ct_set_diags_2d ( type(coupler_2d_bc_type), intent(inout)  var,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time 
)
private
Parameters
[in,out]varBC_type structure for which to register diagnostics
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field

Definition at line 2997 of file coupler_types.F90.

Here is the caller graph for this function:

◆ ct_set_diags_3d()

subroutine coupler_types_mod::ct_set_diags_3d ( type(coupler_3d_bc_type), intent(inout)  var,
character(len=*), intent(in)  diag_name,
integer, dimension(:), intent(in)  axes,
type(time_type), intent(in)  time 
)
private

Register the diagnostics of a coupler_3d_bc_type.

Exceptions
FATAL,axes has less than 3 elements
Parameters
[in,out]varBC_type structure for which to register diagnostics
[in]diag_namename for diagnostic file–if blank, then don't register the fields
[in]axesarray of axes identifiers for diagnostic variable registration
[in]timemodel time variable for registering diagnostic field

Definition at line 3024 of file coupler_types.F90.

Here is the caller graph for this function:

◆ ct_spawn_1d_2d()

subroutine coupler_types_mod::ct_spawn_1d_2d ( type(coupler_1d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 1-D to 2-D version for generic coupler_type_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 535 of file coupler_types.F90.

Here is the caller graph for this function:

◆ ct_spawn_1d_3d()

subroutine coupler_types_mod::ct_spawn_1d_3d ( type(coupler_1d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
integer, dimension(2), intent(in)  kdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 1-D to 3-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]kdimThe array extents of the third dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 630 of file coupler_types.F90.

Here is the caller graph for this function:

◆ ct_spawn_2d_2d()

subroutine coupler_types_mod::ct_spawn_2d_2d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 2-D to 2-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 734 of file coupler_types.F90.

Here is the caller graph for this function:

◆ ct_spawn_2d_3d()

subroutine coupler_types_mod::ct_spawn_2d_3d ( type(coupler_2d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
integer, dimension(2), intent(in)  kdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 2-D to 3-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,Disordered k-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]kdimThe array extents of the third dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 829 of file coupler_types.F90.

Here is the caller graph for this function:

◆ ct_spawn_3d_2d()

subroutine coupler_types_mod::ct_spawn_3d_2d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_2d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 3-D to 2-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 931 of file coupler_types.F90.

Here is the caller graph for this function:

◆ ct_spawn_3d_3d()

subroutine coupler_types_mod::ct_spawn_3d_3d ( type(coupler_3d_bc_type), intent(in)  var_in,
type(coupler_3d_bc_type), intent(inout)  var,
integer, dimension(4), intent(in)  idim,
integer, dimension(4), intent(in)  jdim,
integer, dimension(2), intent(in)  kdim,
character(len=*), intent(in), optional  suffix,
logical, intent(in), optional  as_needed 
)
private

Generate one coupler type using another as a template. 3-D to 3-D version for generic CT_spawn.

Exceptions
FATAL,The output type has already been initialized
FATAL,The parent type has not been initialized
FATAL,Disordered i-dimension index bound list
FATAL,Disordered j-dimension index bound list
FATAL,Disordered k-dimension index bound list
FATAL,var%bc already assocated
FATAL,var%bc('n')%field already associated
FATAL,var%bc('n')%field('m')%values already associated
Parameters
[in]var_instructure from which to copy information
[in,out]varstructure into which to copy information
[in]idimThe data and computational domain extents of the first dimension in a non-decreasing list
[in]jdimThe data and computational domain extents of the second dimension in a non-decreasing list
[in]kdimThe array extents of the third dimension in a non-decreasing list
[in]suffixoptional suffix to make the name identifier unique
[in]as_neededOnly do the spawn if the target type (var) is not set and the parent type (var_in) is set.

Definition at line 1026 of file coupler_types.F90.

Here is the caller graph for this function:

◆ ct_write_chksums_2d()

subroutine coupler_types_mod::ct_write_chksums_2d ( type(coupler_2d_bc_type), intent(in)  var,
integer, intent(in)  outunit,
character(len=*), intent(in), optional  name_lead 
)
private

Write out checksums for the elements of a coupler_2d_bc_type.

Parameters
[in]varBC_type structure for which to register diagnostics
[in]outunitThe index of a open output file
[in]name_leadAn optional prefix for the variable names

Definition at line 3434 of file coupler_types.F90.

◆ ct_write_chksums_3d()

subroutine coupler_types_mod::ct_write_chksums_3d ( type(coupler_3d_bc_type), intent(in)  var,
integer, intent(in)  outunit,
character(len=*), intent(in), optional  name_lead 
)
private

Write out checksums for the elements of a coupler_3d_bc_type.

Parameters
[in]varBC_type structure for which to register diagnostics
[in]outunitThe index of a open output file
[in]name_leadAn optional prefix for the variable names

Definition at line 3456 of file coupler_types.F90.

Variable Documentation

◆ ind_alpha

integer, public coupler_types_mod::ind_alpha = 1

The index of the solubility array for a tracer.

Definition at line 192 of file coupler_types.F90.

◆ ind_csurf

integer, public coupler_types_mod::ind_csurf = 2

The index of the ocean surface concentration.

Definition at line 193 of file coupler_types.F90.

◆ ind_deltap

integer, public coupler_types_mod::ind_deltap = 2

The index for ocean-air gas partial pressure change.

Definition at line 196 of file coupler_types.F90.

◆ ind_deposition

integer, public coupler_types_mod::ind_deposition = 1

The index for the atmospheric deposition flux.

Definition at line 199 of file coupler_types.F90.

◆ ind_flux

integer, public coupler_types_mod::ind_flux = 1

The index for the tracer flux.

Definition at line 195 of file coupler_types.F90.

◆ ind_flux0

integer, public coupler_types_mod::ind_flux0 = 4

The index for the piston velocity.

Definition at line 198 of file coupler_types.F90.

◆ ind_kw

integer, public coupler_types_mod::ind_kw = 3

The index for the piston velocity.

Definition at line 197 of file coupler_types.F90.

◆ ind_pcair

integer, public coupler_types_mod::ind_pcair = 1

The index of the atmospheric concentration.

Definition at line 189 of file coupler_types.F90.

◆ ind_psurf

integer, public coupler_types_mod::ind_psurf = 3

The index of the surface atmospheric pressure.

Definition at line 191 of file coupler_types.F90.

◆ ind_runoff

integer, public coupler_types_mod::ind_runoff = 1

The index for a runoff flux.

Definition at line 200 of file coupler_types.F90.

◆ ind_sc_no

integer, public coupler_types_mod::ind_sc_no = 3

The index for the Schmidt number for a tracer flux.

Definition at line 194 of file coupler_types.F90.

◆ ind_u10

integer, public coupler_types_mod::ind_u10 = 2

The index of the 10 m wind speed.

Definition at line 190 of file coupler_types.F90.

◆ mod_name

character(len=*), parameter coupler_types_mod::mod_name = 'coupler_types_mod'
private

Definition at line 55 of file coupler_types.F90.