gridVariableTransforms_mod¶
Dependency Diagrams:
Description
MODULE gridVariableTransforms_mod (prefix=’gvt’ category=’4. Data Object transformations’)
- Purpose
To store various functions for variable transforms using inputs from gridStateVector(s). Outputs are also placed in a gridStateVector.
Quick access
- Variables
- Routines
ch_bounds()
,expch_tlm()
,gvt_getstatevectortrial()
,gvt_oceanicecontinuous()
,gvt_setup()
,gvt_setupreffromstatevector()
,gvt_setupreffromtrialfiles()
,gvt_sstspread()
,gvt_transform_ens()
,gvt_transform_gsv()
,hutolq_ens()
,hutolq_gsv()
,hutolq_tlm()
,logch_ens()
,lprtopr_ens()
,lprtopr_gsv()
,lqtohu()
,lqtohu_tlm()
,lvistovis()
,prtolpr_gsv()
,uvtopsichi_ens()
,uvtopsichi_gsv()
,uvtovortdiv_ens()
,uvtovortdiv_gsv()
,vortdivtopsichi_gsv()
,zandp_ad()
,zandp_tl()
Needed modules
midasmpi_mod
: MODULE midasMpi_mod (prefix=’mmpi’ category=’8. Low-level utilities and constants’)
codeprecision_mod
: MODULE codePrecision_mod (prefix=’pre’ category=’8. Low-level utilities and constants’)
mathphysconstants_mod
: MODULE mathPhysConstants_mod (prefix=’mpc’ category=’8. Low-level utilities and constants’)
earthconstants_mod
: MODULE earthConstants_mod (prefix=’ec’ category=’8. Low-level utilities and constants’)
timecoord_mod
: MODULE timeCoord_mod (prefix=’tim’ category=’7. Low-level data objects’)
gridstatevector_mod
: MODULE gridStateVector_mod (prefix=’gsv’ category=’6. High-level data objects’)
gridstatevectorfileio_mod
: MODULE gridStateVectorFileIO_mod (prefix=’gio’ category=’4. Data Object transformations’)
interpolation_mod
: MODULE interpolation_mod (prefix=’int’ category=’4. Data Object transformations’)
ensemblestatevector_mod
: MODULE ensembleStateVector_mod (prefix=’ens’ category=’6. High-level data objects’)
lamspectraltransform_mod
: MODULE lamSpectralTransform_mod (prefix=’lst’ category=’4. Data Object transformations’)
globalspectraltransform_mod
: MODULE globalSpectralTransform_mod (prefix=’gst’ category=’4. Data Object transformations’)
lamanalysisgridtransforms_mod
: MODULE lamAnalysisGridTransforms_mod (prefix=’lgt’ category=’7. Low-level data objects’)
horizontalcoord_mod
: MODULE horizontalCoord_mod (prefix=’hco’ category=’7. Low-level data objects’)
verticalcoord_mod
: MODULE verticalCoord_mod (prefix=’vco’ category=’7. Low-level data objects’)
utilities_mod
: MODULE utilities_mod (prefix=’utl’ category=’8. Low-level utilities and constants’)
varnamelist_mod
: MODULE varNameList_mod (prefix=’vnl’ category=’7. Low-level data objects’)
calcheightandpressure_mod
: MODULE calcHeightAndPressure_mod (prefix=’czp’ category=’4. Data Object transformations’)
humiditylimits_mod
: MODULE humidityLimits_mod (prefix=’qlim’ category=’4. Data Object transformations’)
getgridposition_mod
: MODULE getGridPosition_mod (prefix=’gpos’ category=’8. Low-level utilities and constants’)Variables
- gridvariabletransforms_mod/gvt_transform [public]¶
Subroutines and functions
- subroutine gridvariabletransforms_mod/gvt_setup(hco_in, hco_core, vco_in)¶
- Purpose
To set up a variable transformation object
- Arguments
hco_in [struct_hco ,inout,pointer]
hco_core [struct_hco ,inout,pointer]
vco_in [struct_vco ,inout,pointer]
- Called from
csg_toolbox()
,epp_addrandompert()
,midas_adjointtest
,midas_diagbmatrix
,midas_diaghbht
,midas_extractbmatrixfor1dvar
,midas_obsimpact
,midas_randompert
,midas_var
,midas_var1d
- Call to
- subroutine gridvariabletransforms_mod/gvt_setupreffromtrialfiles(varname[, varkind_opt])¶
- Purpose
Initialise reference statevector from file
- Arguments
- varKind_opt
optional variable “kind” argument presently used to initialise the reference state in a chemical assimilation context.
- Arguments
varname [character ,in] :: reference variable/type used
- Options
varkind_opt [character ,in,] :: additional variable/type information mandatory for some initialization
- Called from
midas_adjointtest
,midas_diagbmatrix
,midas_diaghbht
,midas_extractbmatrixfor1dvar
,midas_obsimpact
,midas_randompert
- Call to
gsv_allocate()
,tim_getdatestamp()
,gio_readtrials()
,gsv_isallocated()
,gsv_zero()
,gsv_copy()
,gsv_deallocate()
,vnl_varkindfromvarname()
,vnl_varlistindex()
,utl_abort()
- subroutine gridvariabletransforms_mod/gvt_transform_gsv(statevector, transform[, statevectorout_opt[, statevectorref_opt[, varname_opt[, allowoverwrite_opt[, maxboxsize_opt[, subgrid_opt]]]]]])¶
- Purpose
Top-level switch routine for transformations on the grid.
- Arguments
statevector [struct_gsv ,inout] :: statevector operand of the transformation
transform [character ,in] :: string identifying the requested transformation
- Options
statevectorout_opt [struct_gsv ,inout,]
statevectorref_opt [struct_gsv ,in,] :: reference statevector necessary for some transformation
varname_opt [character ,in,] :: additional variable/type info mandatory for some transformation
allowoverwrite_opt [logical ,in,]
maxboxsize_opt [integer ,in,] :: additional info required by SSTSpread
subgrid_opt [character ,in,] :: additional info required by SSTSpread to spread SST values
- Call to
hco_equal()
,vco_equal()
,utl_abort()
,gsv_varexist()
,lprtopr_gsv()
,lvistovis()
,uvtovortdiv_gsv()
,vortdivtopsichi_gsv()
,uvtopsichi_gsv()
,lqtohu()
,hutolq_gsv()
,lqtohu_tlm()
,hutolq_tlm()
,prtolpr_gsv()
,zandp_tl()
,zandp_ad()
,gsv_varkindexist()
,vnl_varkindfromvarname()
,expch_tlm()
,ch_bounds()
,gvt_oceanicecontinuous()
,gvt_sstspread()
- subroutine gridvariabletransforms_mod/gvt_transform_ens(ens, transform[, allowoverwrite_opt[, varname_opt[, huminvalue_opt]]])¶
- Purpose
Top-level switch routine for ensemble transformations on the grid
- Arguments
ens [struct_ens ,inout] :: operand (ensemble of statevector)
transform [character ,in] :: string identifying the requested transformation
- Options
allowoverwrite_opt [logical ,in,]
varname_opt [character ,in,] :: additional variable/type information mandatory for some transformation
huminvalue_opt [real ,in,] :: HU min value for ‘HUtoLQ’ transformation
- Call to
ens_varexist()
,lprtopr_ens()
,hutolq_ens()
,uvtopsichi_ens()
,uvtovortdiv_ens()
,utl_abort()
,vnl_varkindfromvarname()
,logch_ens()
- function gridvariabletransforms_mod/gvt_getstatevectortrial(varname)¶
- Purpose
Returns a pointer to requested reference statevector
- Arguments
varname [character ,in] :: reference variable/type requested
- Return
statevector_ptr [struct_gsv ,pointer]
- Called from
- Call to
- subroutine gridvariabletransforms_mod/gvt_setupreffromstatevector(statevectorontrlgrid, varname[, applylimitonhu_opt])¶
- Purpose
computing the reference stateVector on the analysis grid at each outer-loop iteration. The calculation is skipped if stateVectorRef* is initialized (gsv_containsNonZeroValue(stateVectorRef*)=.true.). The input stateVector is the high spatial/temporal resolution statevector used for reading the trials and should contain TT/HU/P0 if stateVectorRefHeight is asked for.
- Arguments
statevectorontrlgrid [struct_gsv ,in] :: high spatial/temporal resolution statevector
varname [character ,in] :: reference variable/type used
- Options
applylimitonhu_opt [logical ,in,]
- Called from
- Call to
gsv_gethco()
,gsv_getvco()
,utl_abort()
,gsv_isallocated()
,gsv_allocate()
,tim_getdatestamp()
,gsv_zero()
,gsv_copy()
,gsv_varnameslist()
,int_interp_gsv()
,gsv_deallocate()
- subroutine gridvariabletransforms_mod/lqtohu(statevector)¶
- Purpose
Specific humidity logarithm exponentiation.
- Arguments
statevector [struct_gsv ,inout]
- Called from
- Call to
- subroutine gridvariabletransforms_mod/hutolq_gsv(statevector)¶
- Purpose
Logarithmic transformation of specific humidity
- Arguments
statevector [struct_gsv ,inout]
- Called from
- Call to
gsv_getdatakind()
,gsv_getnumlev()
,vnl_varlevelfromvarname()
- subroutine gridvariabletransforms_mod/hutolq_ens(ens[, huminvalue_opt])¶
- Purpose
Specific humidity logarithm exponentiation (ensemble processing)
- Arguments
ens [struct_ens ,inout]
- Options
huminvalue_opt [real ,in,]
- Called from
- Call to
ens_getlatlonbounds()
,ens_getnumk()
,ens_getvarnamefromk()
,ens_getonelev_r4()
,ens_getnumstep()
,ens_getnummembers()
- subroutine gridvariabletransforms_mod/lqtohu_tlm(statevector[, statevectorref_opt])¶
- Purpose
Tangent linear of exponentiation transformation of specific humidity in logarithmic representation
- Arguments
statevector [struct_gsv ,inout]
- Options
statevectorref_opt [struct_gsv ,in,]
- Called from
- Call to
gsv_varexist()
,utl_abort()
,gsv_containsnonzerovalues()
,gsv_getdatakind()
,gsv_getnumlev()
,vnl_varlevelfromvarname()
- subroutine gridvariabletransforms_mod/hutolq_tlm(statevector[, statevectorref_opt])¶
- Purpose
Tangent linear of logarithmic transformation of specific humidity
- Arguments
statevector [struct_gsv ,inout]
- Options
statevectorref_opt [struct_gsv ,in,]
- Called from
- Call to
gsv_containsnonzerovalues()
,utl_abort()
,gsv_getdatakind()
,gsv_getnumlev()
,vnl_varlevelfromvarname()
- subroutine gridvariabletransforms_mod/lprtopr_gsv(statevector[, statevectorout_opt[, allowoverwrite_opt]])¶
- Purpose
Quantity of precipitation logarithm exponentiation
- Arguments
statevector [struct_gsv ,inout]
- Options
statevectorout_opt [struct_gsv ,inout,]
allowoverwrite_opt [logical ,in,]
- Called from
- Call to
gsv_varexist()
,utl_abort()
,gsv_getdatakind()
,gsv_getnumlev()
,vnl_varlevelfromvarname()
,gsv_modifyvarname()
- subroutine gridvariabletransforms_mod/lprtopr_ens(ens[, allowoverwrite_opt])¶
- Purpose
Quantity of precipitation logarithm exponentiation (ensemble processing)
- Arguments
ens [struct_ens ,inout]
- Options
allowoverwrite_opt [logical ,in,]
- Called from
- Call to
ens_varexist()
,utl_abort()
,ens_getlatlonbounds()
,ens_getkfromlevvarname()
,ens_getonelev_r4()
,ens_getnumstep()
,ens_getnummembers()
,ens_modifyvarname()
- subroutine gridvariabletransforms_mod/prtolpr_gsv(statevector[, statevectorout_opt])¶
- Purpose
Logarithmic transformation of quantity of precipitation
- Arguments
statevector [struct_gsv ,inout]
- Options
statevectorout_opt [struct_gsv ,inout,]
- Called from
- Call to
gsv_getdatakind()
,gsv_getnumlev()
,vnl_varlevelfromvarname()
- subroutine gridvariabletransforms_mod/lvistovis(statevector[, statevectorout_opt[, allowoverwrite_opt]])¶
- Purpose
Visibility logarithm exponentiation
- Arguments
statevector [struct_gsv ,inout]
- Options
statevectorout_opt [struct_gsv ,inout,]
allowoverwrite_opt [logical ,in,]
- Called from
- Call to
gsv_varexist()
,utl_abort()
,gsv_getdatakind()
,gsv_getnumlev()
,vnl_varlevelfromvarname()
,gsv_modifyvarname()
- subroutine gridvariabletransforms_mod/zandp_tl(statevector)¶
- Purpose
Tangeant linear of height and pressure computation. The computation order depends on the native model representation (height or pressure based).
- Arguments
statevector [struct_gsv ,inout]
- Called from
- subroutine gridvariabletransforms_mod/zandp_ad(statevector)¶
- Purpose
Adjoint of the tangeant linear computation of both height and pressure. The computation order depends on the native model representation (height or pressure based).
- Arguments
statevector [struct_gsv ,inout]
- Called from
- subroutine gridvariabletransforms_mod/uvtovortdiv_gsv(statevector)¶
- Purpose
Wind components to relative vorticity and divergence transformation.
- Arguments
statevector [struct_gsv ,inout]
- Called from
- Call to
gsv_varexist()
,gsv_getnumlev()
,utl_abort()
,lgt_uvtovortdiv()
- subroutine gridvariabletransforms_mod/vortdivtopsichi_gsv(statevector)¶
- Purpose
Relative vorticity and divergence to stream function and velocity potential transformation.
- Arguments
statevector [struct_gsv ,inout] :: IN
- Called from
- Call to
gsv_varexist()
,gsv_getnumlev()
,utl_abort()
,lst_setup()
,lst_laplacian()
- subroutine gridvariabletransforms_mod/uvtopsichi_gsv(statevector)¶
- Purpose
Wind components to stream function and velocity potential transformation.
- Arguments
statevector [struct_gsv ,inout]
- Called from
- Call to
uvtovortdiv_gsv()
,vortdivtopsichi_gsv()
,gsv_varexist()
,gsv_getnumlev()
,gst_setup()
,mmpi_setup_m()
,mmpi_setup_n()
,gst_ilalist_mpiglobal()
,gst_ilalist_mpilocal()
,gst_setid()
,gst_gdsp()
,gst_getr1snp1()
,gst_speree()
- subroutine gridvariabletransforms_mod/uvtopsichi_ens(ens)¶
- Purpose
Wind components to stream function and velocity potential transformation (ensemble processing).
- Arguments
ens [struct_ens ,inout]
- Called from
- Call to
ens_gethco()
,gsv_allocate()
,ens_getvco()
,tim_getdatestamp()
,ens_getnummembers()
,ens_copymember()
,uvtopsichi_gsv()
,ens_insertmember()
,gsv_deallocate()
- subroutine gridvariabletransforms_mod/uvtovortdiv_ens(ens)¶
- Purpose
Wind components to relative vorticity and divergence transformation (ensemble processing)
- Arguments
ens [struct_ens ,inout]
- Called from
- Call to
ens_gethco()
,utl_abort()
,gsv_allocate()
,ens_getvco()
,tim_getdatestamp()
,ens_getnummembers()
,ens_copymember()
,uvtovortdiv_gsv()
,ens_insertmember()
,gsv_deallocate()
- subroutine gridvariabletransforms_mod/logch_ens(ens, varname)¶
- Purpose
Logarithmic transformation of a chemical species concentration (ensemble processing)
- Arguments
ens [struct_ens ,inout]
varname [character ,in]
- Called from
- Call to
ens_getlatlonbounds()
,ens_getnumk()
,ens_getvarnamefromk()
,ens_getonelev_r4()
,vnl_varlistindex()
,ens_getnumstep()
,ens_getnummembers()
- subroutine gridvariabletransforms_mod/expch_tlm(statevector, varname[, statevectorref_opt])¶
- Purpose
Tangent linear of exponentiation of chemical species concentration. Transform d[log(x)] to dx where x = ‘stateVectorRef_opt’, the input ‘statevector’ component is d[log(x)] and the output ‘statevector’ component is dx.
- Arguments
statevector [struct_gsv ,inout]
varname [character ,in]
- Options
statevectorref_opt [struct_gsv ,in,]
- Called from
- Call to
vnl_varlistindex()
,utl_abort()
,gsv_getnumlev()
,vnl_varlevelfromvarname()
- subroutine gridvariabletransforms_mod/ch_bounds(statevector)¶
- Purpose
Impose boundary values to variables of CH kind.
- Arguments
statevector [struct_gsv ,inout]
- Called from
- Call to
gsv_varexist()
,vnl_varkindfromvarname()
,vnl_varlistindex()
,gsv_getnumlev()
,vnl_varlevelfromvarname()
- subroutine gridvariabletransforms_mod/gvt_oceanicecontinuous(statevector, statevectorref, outputvarname)¶
- Purpose
Solve laplaces equation at a subset of gridpoints subject to the boundary conditions imposed by the surrounding points. Uses the method of sequential relaxation or Liebmann relaxation, which converges more rapidly than the simultaneous relaxation (see numerical weather analysis and prediction by P. D. Thompson, 1961, pp92-98). NOTE: this subroutine currently uses the oceanMask only for the first level. Therefore, if it is applied to 3D masked fields that have level-dependent masks, the code will abort so that the user can make the necessary adjustments to ensure the correct behaviour.
- Arguments
statevector [struct_gsv ,inout]
statevectorref [struct_gsv ,in]
outputvarname [character ,in]
- Called from
- Call to
utl_abort()
,gsv_allocate()
,gsv_transposetilestostep()
,gsv_isallocated()
,gpos_gridisorca()
,gsv_getnumlev()
,vnl_varlevelfromvarname()
,gsv_transposesteptotiles()
,gsv_deallocate()
- subroutine gridvariabletransforms_mod/gvt_sstspread(statevector, variablename, maxboxsize, subgrid)¶
- Purpose
Spread SST values on neigbouring land surface points
- Arguments
statevector [struct_gsv ,inout] :: state vector of SST analysis
variablename [character ,in] :: variable name
maxboxsize [integer ,in] :: maximum box size of SST values spreading
subgrid [character ,in] :: spread SST values on neighbouring land points of “Yin” or “Yan” subgrid
- Called from
- Call to
utl_abort()
,gsv_getnumlev()
,vnl_varlevelfromvarname()
,gsv_allocate()
,gsv_transposetilestostep()
,gsv_isallocated()
,gsv_transposesteptotiles()
,gsv_deallocate()