ticket_278_TicketSummary_VarCodeAndSettingsForVarConvergence - ACCESS-NRI/accessdev-Trac-archive GitHub Wiki

VAR Code and Settings Relevant to This VAR Convergence Study

The computed covariance based on a sample of forecast errors is read in from a global CovStats file. Some of its parameter values are modified by VAR code related to CVT. This describes the parts of VAR code which may affect the way the covariance is modeled.

Fortran modules

  • "VarMod_TransformInfo/VarMod_TransformInfo.f90" declares the namelist group, "Var_TransformNL" which contains the namelist variables that control CVT - i.e. covariance modeling.

  • "VarMod_TransformInfo/VarMod_HorizTransformInfo.f90" declares variables related to horizontal transform.

Examples variables

Take "hRescaleCovPsi" as an example. In "VarMod_TransformInfo/VarMod_HorizTransformInfo.f90",

...
! DESCRIPTION:
! Contains control parameters for the control variable transforms that relate to
!   horizontal spectra and horizontal spectrum coefficients.
!
!   The ambition is for all variables here to deal with this horizontal spectra
!      in one way or another in order to make a block
!
!   Variables/switches that are used in both spectral and grid point space are
!    not included and are kept in VarMod_TransformInfo.
!
!   Variables whose default values depend on the grid are set to MDI here.
!    They may then be read from a namelist.
!    Then Var_SetupGridDep sets them if they are still MDI.

...
...

REAL     :: hRescaleCovPsi    = RMDI  ! Used to multiply scale taken
REAL     :: hRescaleCovChi    = RMDI  ! from GLOBAL COV FILE
REAL     :: hRescaleCovAp     = RMDI  ! and used in SOAR or Gaussian
REAL     :: hRescaleCovMu     = RMDI  ! correlation function
REAL     :: hRescaleCovOzone  = RMDI
REAL     :: hRescaleCovDustt  = RMDI

Then in "VarMod_TransformInfo/Var_SetupGridDep.f90":

!-------------------------------------------------------------------------------
! Set defaults which depend on grid
!-------------------------------------------------------------------------------

IF (.NOT. LS_header % global) THEN
  ! Limited area run:
  ...
  ...

!
! #???? This code was written to duplicate existing functionality
!       even if the in-line comments imply this was silly! AL
  ! Global Old Dynamics defaults (not used by MES)
  ! SQRT can't be used in VarMod_TransformInfo
  IF(hRescaleCovPsi==RMDI) hRescaleCovPsi   = SQRT(0.5)
  IF(hRescaleCovChi==RMDI) hRescaleCovChi   = SQRT(0.5)
  IF(hRescaleCovAp ==RMDI) hRescaleCovAp    = SQRT(0.5)
  IF(hRescaleCovMu ==RMDI) hRescaleCovMu    = SQRT(0.5)
  IF(hRescaleCovOzone==RMDI) hRescaleCovOzone = SQRT(0.5)
  IF(hRescaleCovDustT==RMDI) hRescaleCovDustT = SQRT(0.5)

  ...
  ...

ELSE ! (LS_header % global)

  IF (L_NetCDF_COVFILE) THEN
    ...

  ELSE

    ...
    ...

    ! With hShape_ConvSOAR options '1.2 *' increases length scales by ~ 10%
    IF(hRescaleCovPsi==RMDI) hRescaleCovPsi   = 1.2 * SQRT(0.5)
    IF(hRescaleCovChi==RMDI) hRescaleCovChi   = 1.2 * SQRT(0.5)
    IF(hRescaleCovAp ==RMDI) hRescaleCovAp    = 1.2 * SQRT(0.5)
    IF(hRescaleCovMu ==RMDI) hRescaleCovMu    = 1.2 * SQRT(0.5)
    IF(hRescaleCovOzone==RMDI) hRescaleCovOzone = 1.2 * SQRT(0.5)
    IF(hRescaleCovDustT==RMDI) hRescaleCovDustT  = 1.2 * SQRT(0.5)

    ...
    ...

  END IF
END IF

...
...

Q. It looks like "hRescaleCovPsi" (and related namelist variables) is not used for LAM (?)