obsVariableTransforms_mod¶
Dependency Diagrams:
Description
MODULE obsVariableTransforms_mod (prefix=’ovt’ category=’4. Data Object transformations’)
- Purpose
To store various functions for variable transforms using inputs from obsSpaceData. Outputs are also placed ObsSpaceData.
Quick access
- Routines
ovt_adjusthumgz()
,ovt_bufrcodeskipped()
,ovt_getdestinationbufrcode()
,ovt_getsourcebufrcode()
,ovt_initstructure()
,ovt_istransformedvariable()
,ovt_iswindobs()
,ovt_preciptologprecip()
,ovt_preciptologprecip_residual()
,ovt_setup()
,ovt_transformobsvalues()
,ovt_transformresiduals()
,ovt_uvtowindspeeddirection_residual()
,ovt_vistologvis()
,ovt_vistologvis_residual()
,ovt_windspeeddirectiontouv()
Needed modules
obsspacedata_mod
: MODULE obsSpaceData_mod (prefix=’obs’ category=’6. High-level data objects’)
bufr_mod
: MODULE bufr_mod (prefix=’bufr’ 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’)
codtyp_mod
: MODULE codtyp_mod (prefix=’codtyp’ category=’8. Low-level utilities and constants’)
utilities_mod
: MODULE utilities_mod (prefix=’utl’ category=’8. Low-level utilities and constants’)
obsfilter_mod
: MODULE obsFilter_mod (prefix=’filt’ category=’5. Observation operators’)Types
- type obsvariabletransforms_mod/unknown_type¶
- Type fields
% active [logical ]
% destinationbufrcode (*) [integer ,allocatable]
% destinationbufrcodeextra (*) [integer ,allocatable]
% name [character ]
% nbufrcode [integer ]
% sourcebufrcode (*) [integer ,allocatable]
% sourcebufrcodeextra (*) [integer ,allocatable]
% wind [logical ]
Variables
Subroutines and functions
- subroutine obsvariabletransforms_mod/ovt_initstructure()¶
- Purpose
To set the transforms handled by this module
- Called from
- subroutine obsvariabletransforms_mod/ovt_setup(bufrcoderead)¶
- Purpose
To determine which transform must be actived
- Arguments
bufrcoderead (*) [integer ,in] :: The list of bufr code read
- Called from
- Call to
ovt_initstructure()
,filt_nbufrcodeassimilated()
,filt_getbufrcodeassimilated()
,filt_bufrcodeassimilated()
- function obsvariabletransforms_mod/ovt_bufrcodeskipped(sourcebufrcode)¶
- Purpose
To NEVER activate a variable transform for this bufr code, even when this bufr_code is read but not found in the assimilated list. So far, this function is only used to “skipped” wind speed reports because we do all the appropriate wind manipulations when we encounter direction.
- Arguments
sourcebufrcode [integer ,in] :: The input bufr code
- Return
skip [logical ] :: The decision
- Called from
- Call to
- function obsvariabletransforms_mod/ovt_getdestinationbufrcode(sourcebufrcode[, extra_opt])¶
- Purpose
To get the bufr code of the transformed/destination variable based on the bufr code of the source variable
- Arguments
sourcebufrcode [integer ,in] :: The input source bufr code
- Options
extra_opt [logical ,in,] :: Should we look in the “extra” bufr code list or not
- Return
destinationbufrcode [integer ] :: The returned destination/transform bufr code
- Called from
write_body()
,obsu_updatesourcevariablesflag()
,sqlr_readsqlite()
- Call to
- function obsvariabletransforms_mod/ovt_getsourcebufrcode(destinationbufrcode[, extra_opt])¶
- Purpose
To get the bufr code of the source variable based on the bufr code of the destination/transformed variable
- Arguments
destinationbufrcode [integer ,in] :: The input destination/transform bufr code
- Options
extra_opt [logical ,in,] :: Should we look in the “extra” bufr code list or not
- Return
sourcebufrcode [integer ] :: The returned source bufr code
- Called from
- Call to
- function obsvariabletransforms_mod/ovt_iswindobs(sourcebufrcode)¶
- Purpose
To determine if a bufr code is wind related
- Arguments
sourcebufrcode [integer ,in] :: The input source bufr code
- Return
wind [logical ] :: Is this bufr code linked to wind or not
- Called from
write_body()
,obsu_updatesourcevariablesflag()
,sqlr_readsqlite()
- Call to
- function obsvariabletransforms_mod/ovt_istransformedvariable(bufrcode)¶
- Purpose
To determine if a bufr code is a transfomed variabled
- Arguments
bufrcode [integer ,in] :: The input bufr code
- Return
transformed [logical ] :: Is this a bufr code associated to a transform variable or not
- Called from
- Call to
- subroutine obsvariabletransforms_mod/ovt_transformobsvalues(obsspacedata, headerindexstart, headerindexend)¶
- Purpose
To perform observation variable transforms
- Arguments
obsspacedata [struct_obs ,inout] :: The observation database
headerindexstart [integer ,in] :: The initial header index to analyse
headerindexend [integer ,in] :: The final header index to analyse
- Called from
- Call to
obs_numheader()
,utl_abort()
,ovt_windspeeddirectiontouv()
,ovt_vistologvis()
,ovt_preciptologprecip()
- subroutine obsvariabletransforms_mod/ovt_transformresiduals(obsspacedata, residualtypeid)¶
- Purpose
To compute the o-p or o-a of the source variable(s)
- Arguments
obsspacedata [struct_obs ,inout] :: The observation database
residualtypeid [integer ,in] :: The residual type ID (o-p or o-a)
- Called from
- Call to
obs_numheader()
,utl_abort()
,ovt_uvtowindspeeddirection_residual()
,ovt_vistologvis_residual()
,ovt_preciptologprecip_residual()
- subroutine obsvariabletransforms_mod/ovt_windspeeddirectiontouv(obsspacedata, headerindexstart, headerindexend)¶
- Purpose
To transform wind observation in terms of speed and direction to u and v
- Arguments
obsspacedata [struct_obs ,inout] :: The observation database
headerindexstart [integer ,in] :: The initial header index to analyse
headerindexend [integer ,in] :: The final header index to analyse
- Called from
- Call to
obs_headelem_i()
,obs_bodyelem_i()
,obs_bodyelem_r()
,utl_abort()
,obs_bodyset_i()
- subroutine obsvariabletransforms_mod/ovt_uvtowindspeeddirection_residual(obsspacedata, residualtypeid)¶
- Purpose
To transform wind residuals in terms of u and v to speed and direction
- Arguments
obsspacedata [struct_obs ,inout] :: The observation database
residualtypeid [integer ,in] :: The residual type ID (o-p or o-a)
- Called from
- Call to
obs_numbody()
,obs_bodyelem_i()
,obs_headelem_i()
,obs_bodyelem_r()
,obs_bodyset_i()
- subroutine obsvariabletransforms_mod/ovt_vistologvis(obsspacedata, headerindexstart, headerindexend)¶
- Purpose
To transform visibily observation to log(visibility)
- Arguments
obsspacedata [struct_obs ,inout] :: The observation database
headerindexstart [integer ,in] :: The initial header index to analyse
headerindexend [integer ,in] :: The final header index to analyse
- Called from
- Call to
obs_headelem_i()
,obs_bodyelem_i()
,obs_bodyelem_r()
,obs_bodyset_i()
,utl_abort()
- subroutine obsvariabletransforms_mod/ovt_vistologvis_residual(obsspacedata, residualtypeid)¶
- Purpose
To transform log(visibily) residuals to visibility
- Arguments
obsspacedata [struct_obs ,inout] :: The observation database
residualtypeid [integer ,in] :: The residual type ID (o-p or o-a)
- Called from
- Call to
obs_numbody()
,obs_bodyelem_i()
,obs_headelem_i()
,obs_bodyelem_r()
,obs_bodyset_i()
,utl_abort()
- subroutine obsvariabletransforms_mod/ovt_preciptologprecip(obsspacedata, headerindexstart, headerindexend)¶
- Purpose
To transform precipitation observation to log(precipitation)
- Arguments
obsspacedata [struct_obs ,inout] :: The observation database
headerindexstart [integer ,in] :: The initial header index to analyse
headerindexend [integer ,in] :: The final header index to analyse
- Called from
- Call to
obs_headelem_i()
,obs_bodyelem_i()
,obs_bodyelem_r()
,obs_bodyset_i()
,utl_abort()
- subroutine obsvariabletransforms_mod/ovt_preciptologprecip_residual(obsspacedata, residualtypeid)¶
- Purpose
To transform log(precip) residuals to precip
- Arguments
obsspacedata [struct_obs ,inout] :: The observation database
residualtypeid [integer ,in] :: The residual type ID (o-p or o-a)
- Called from
- Call to
obs_numbody()
,obs_bodyelem_i()
,obs_headelem_i()
,obs_bodyelem_r()
,obs_bodyset_i()
,utl_abort()
- subroutine obsvariabletransforms_mod/ovt_adjusthumgz(obsspacedata, headerindexstart, headerindexend)¶
- Purpose
To apply a threshold on dew-point departure values and to transform geopotential height values to geopotential
- Arguments
obsspacedata [struct_obs ,inout] :: The observation database
headerindexstart [integer ,in] :: The initial header index to analyse
headerindexend [integer ,in] :: The final header index to analyse
- Called from
- Call to