SOCA
soca_increment_mod::soca_increment Type Reference

Increment fields. More...

Inheritance diagram for soca_increment_mod::soca_increment:
Collaboration diagram for soca_increment_mod::soca_increment:

Public Member Functions

procedure convert => soca_increment_change_resol
 Change resolution. More...
 
get/set for a single point
procedure getpoint => soca_increment_getpoint
 Get the values at a specific grid point. More...
 
procedure setpoint => soca_increment_setpoint
 Set the values at a specific grid point. More...
 
atlas I/O
procedure set_atlas => soca_increment_set_atlas
 Setup atlas fields. More...
 
procedure to_atlas => soca_increment_to_atlas
 Convert the increment to an atlas fieldset. More...
 
procedure from_atlas => soca_increment_from_atlas
 Set the our increment values from an atlas fieldset. More...
 
math operators
procedure dirac => soca_increment_dirac
 Apply a dirac increment. More...
 
procedure random => soca_increment_random
 initialize fields with random normal distribution More...
 
procedure schur => soca_increment_schur
 perform a shur product between two sets of fields More...
 
- Public Member Functions inherited from soca_fields_mod::soca_fields
procedure create => soca_fields_create
 Create a new set of fields, allocate space for them, and initialize to zero. More...
 
procedure copy => soca_fields_copy
 Copy the contents of rhs to self. More...
 
procedure delete => soca_fields_delete
 delete all the fields More...
 
procedure get => soca_fields_get
 Get a pointer to the soca_field with the given name. More...
 
procedure has => soca_fields_has
 Returns whether a field with the given name exists. More...
 
procedure check_congruent => soca_fields_check_congruent
 Make sure two sets of fields are the same shape (same variables, same resolution) More...
 
procedure check_subset => soca_fields_check_subset
 make sure two sets of fields are the same shape for fields they have in common More...
 
procedure add => soca_fields_add
 Add two sets of fields together. More...
 
procedure axpy => soca_fields_axpy
 Add two fields (multiplying the rhs first) More...
 
procedure dot_prod => soca_fields_dotprod
 Calculate the global dot product of two sets of fields. More...
 
procedure gpnorm => soca_fields_gpnorm
 calculate global statistics for each field (min, max, average) More...
 
procedure mul => soca_fields_mul
 Multiply a set of fields by a constant. More...
 
procedure sub => soca_fields_sub
 subtract two sets of fields More...
 
procedure ones => soca_fields_ones
 Set the value of all fields to one. More...
 
procedure zeros => soca_fields_zeros
 Reset the value of all fields to zero. More...
 
procedure read => soca_fields_read
 read a set of fields from a file More...
 
procedure write_file => soca_fields_write_file
 Save soca fields to file using fms write_data. More...
 
procedure write_rst => soca_fields_write_rst
 Save soca fields in a restart format. More...
 
procedure update_halos => soca_fields_update_halos
 Update the halo region of all fields. More...
 
procedure colocate => soca_fields_colocate
 Colocate by interpolating from one c-grid location to another. More...
 
procedure serial_size => soca_fields_serial_size
 Number of elements to return in the serialized array. More...
 
procedure serialize => soca_fields_serialize
 Return the fields as a serialized array. More...
 
procedure deserialize => soca_fields_deserialize
 Deserialize, creating fields from a single serialized array. More...
 

Related Functions

(Note that these are not member functions.)

subroutine soca_increment_random (self)
 initialize fields with random normal distribution More...
 
subroutine soca_increment_schur (self, rhs)
 perform a shur product between two sets of fields More...
 
subroutine soca_increment_getpoint (self, geoiter, values)
 Get the values at a specific grid point. More...
 
subroutine soca_increment_setpoint (self, geoiter, values)
 Set the values at a specific grid point. More...
 
subroutine soca_increment_dirac (self, f_conf)
 Apply a dirac increment. More...
 
subroutine soca_increment_set_atlas (self, geom, vars, afieldset)
 Setup atlas fields. More...
 
subroutine soca_increment_to_atlas (self, geom, vars, afieldset)
 Convert the increment to an atlas fieldset. More...
 
subroutine soca_increment_from_atlas (self, geom, vars, afieldset)
 Set the our increment values from an atlas fieldset. More...
 
subroutine soca_increment_change_resol (self, rhs)
 Change resolution. More...
 

Additional Inherited Members

- Public Attributes inherited from soca_fields_mod::soca_fields
type(soca_geom), pointer geom => null()
 Pointer to the relevant soca_geom_mod::soca_geom. More...
 
type(soca_field), dimension(:), pointer fields => null()
 The soca_field instances that make up the fields. More...
 

Detailed Description

Increment fields.

Any procedures that are shared with soca_state are implemented in the soca_fields base class

Definition at line 30 of file soca_increment_mod.F90.

Member Function/Subroutine Documentation

◆ convert()

procedure soca_increment_mod::soca_increment::convert

Change resolution.

See also
soca_increment_change_resol

Definition at line 76 of file soca_increment_mod.F90.

◆ dirac()

procedure soca_increment_mod::soca_increment::dirac

Apply a dirac increment.

See also
soca_increment_dirac

Definition at line 64 of file soca_increment_mod.F90.

◆ from_atlas()

procedure soca_increment_mod::soca_increment::from_atlas

Set the our increment values from an atlas fieldset.

See also
soca_increment_from_atlas

Definition at line 55 of file soca_increment_mod.F90.

◆ getpoint()

procedure soca_increment_mod::soca_increment::getpoint

Get the values at a specific grid point.

See also
soca_increment_getpoint

Definition at line 37 of file soca_increment_mod.F90.

◆ random()

procedure soca_increment_mod::soca_increment::random

initialize fields with random normal distribution

See also
soca_increment_random

Definition at line 67 of file soca_increment_mod.F90.

◆ schur()

procedure soca_increment_mod::soca_increment::schur

perform a shur product between two sets of fields

See also
soca_increment_schur

Definition at line 70 of file soca_increment_mod.F90.

◆ set_atlas()

procedure soca_increment_mod::soca_increment::set_atlas

Setup atlas fields.

See also
soca_increment_set_atlas

Definition at line 49 of file soca_increment_mod.F90.

◆ setpoint()

procedure soca_increment_mod::soca_increment::setpoint

Set the values at a specific grid point.

See also
soca_increment_setpoint

Definition at line 40 of file soca_increment_mod.F90.

◆ to_atlas()

procedure soca_increment_mod::soca_increment::to_atlas

Convert the increment to an atlas fieldset.

See also
soca_increment_to_atlas

Definition at line 52 of file soca_increment_mod.F90.

Friends And Related Function Documentation

◆ soca_increment_change_resol()

subroutine soca_increment_change_resol ( class(soca_increment), intent(inout)  self,
class(soca_increment), intent(in)  rhs 
)
related

Change resolution.

Definition at line 451 of file soca_increment_mod.F90.

◆ soca_increment_dirac()

subroutine soca_increment_dirac ( class(soca_increment), intent(inout)  self,
type(fckit_configuration), intent(in), value  f_conf 
)
related

Apply a dirac increment.

\raises abor1_ftn aborts if there is an error in the input configuration

Todo:
generalize by removing the hardcoded int=>field_name
Parameters
[in]f_confConfiguration

Definition at line 208 of file soca_increment_mod.F90.

◆ soca_increment_from_atlas()

subroutine soca_increment_from_atlas ( class(soca_increment), intent(inout)  self,
type(soca_geom), intent(in)  geom,
type(oops_variables), intent(in)  vars,
type(atlas_fieldset), intent(in)  afieldset 
)
related

Set the our increment values from an atlas fieldset.

Definition at line 392 of file soca_increment_mod.F90.

◆ soca_increment_getpoint()

subroutine soca_increment_getpoint ( class(soca_increment), intent(in)  self,
type(soca_geom_iter), intent(in)  geoiter,
real(kind=kind_real), dimension(:), intent(inout)  values 
)
related

Get the values at a specific grid point.

Todo:
clean this up so that the variable names are not hardcoded
Parameters
[in]geoiteriterator pointing to desired gridpoint
[in,out]valuesreturn values for every field in a vertical column

Definition at line 149 of file soca_increment_mod.F90.

◆ soca_increment_random()

subroutine soca_increment_random ( class(soca_increment), intent(inout)  self)
related

initialize fields with random normal distribution

Note
"hocn" field, if present, is NOT randomized, because doing so causes problems

Definition at line 92 of file soca_increment_mod.F90.

◆ soca_increment_schur()

subroutine soca_increment_schur ( class(soca_increment), intent(inout)  self,
class(soca_increment), intent(in)  rhs 
)
related

perform a shur product between two sets of fields

Parameters
[in]rhsother incrment in schur product

Definition at line 129 of file soca_increment_mod.F90.

◆ soca_increment_set_atlas()

subroutine soca_increment_set_atlas ( class(soca_increment), intent(in)  self,
type(soca_geom), intent(in)  geom,
type(oops_variables), intent(in)  vars,
type(atlas_fieldset), intent(inout)  afieldset 
)
related

Setup atlas fields.

See also
soca_increment_to_atlas
soca_increment_from_atlas

Definition at line 282 of file soca_increment_mod.F90.

◆ soca_increment_setpoint()

subroutine soca_increment_setpoint ( class(soca_increment), intent(inout)  self,
type(soca_geom_iter), intent(in)  geoiter,
real(kind=kind_real), dimension(:), intent(in)  values 
)
related

Set the values at a specific grid point.

Todo:
need to remove the hardcoded variable names
Parameters
[in]geoiteriterator pointing to desired gridpoint
[in]valuesvalues to set. Values are for for every field in a vertical column

Definition at line 178 of file soca_increment_mod.F90.

◆ soca_increment_to_atlas()

subroutine soca_increment_to_atlas ( class(soca_increment), intent(in)  self,
type(soca_geom), intent(in)  geom,
type(oops_variables), intent(in)  vars,
type(atlas_fieldset), intent(inout)  afieldset 
)
related

Convert the increment to an atlas fieldset.

Definition at line 328 of file soca_increment_mod.F90.


The documentation for this type was generated from the following file: