calc_etadot Program

Uses

  • program~~calc_etadot~~UsesGraph program~calc_etadot calc_etadot module~phtogr PHTOGR program~calc_etadot->module~phtogr module~rwgrib2 RWGRIB2 program~calc_etadot->module~rwgrib2 module~ftrafo FTRAFO program~calc_etadot->module~ftrafo module~grtoph GRTOPH program~calc_etadot->module~grtoph GRIB_API GRIB_API program~calc_etadot->GRIB_API module~grtoph->module~phtogr

Prepare input data for FLEXPART, esp. vertical velocity as etadot or etadot * dp/deta


author: L. Haimberger date: 03/2010 version: V4.0

Program calc_etadot

Prepares input data for POP model meteorological preprocessor


Calculation of etapoint on a regular grid and writing U,V,ETAPOINT,T,PS,Q,SD,MSL,TCC,10U, 10V, 2T,2D,LSP,CP,SSHF,SSR, EWSS,NSSS to an output file (input and output in GRIB 1 or 2 format).
etapoint is defined as the total time derivative of ECMWF vertical coordinate eta multiplied by the derivative of pressure with respect to eta:

Version history and authors:

  • 04/1994: Leopold Haimberger, Gerhard Wotawa

  • 2003-05-11: Alexander Beck

  • 12/2006: L. Haimberger V2.0, handle arbitrary regular grids and T799 resolution data

  • 03/2010: L. Haimberger V4.0, handle GRIB edition 2 fields and T1279 resolution data

  • 04-06/2019: Petra Seibert, beautify code and add FORD documentation

#

Input required:

 UNIT  FILE      PARAMETER(S)    DATA REPRESENTATION

 11    fort.11   T,U,V           regular lambda phi grid
 12    fort.12   D               regular lambda phi grid   
 13    fort.13   LNSP            spherical harmonics
 14    fort.14   SD,MSL,TCC,10U,                                
                 10V,2T,2D       regular lambda phi grid     
 16    fort.16   LSP,CP,SSHF,         
                 SSR,EWSS,NSSS   regular lambda phi grid
 17    fort.17   Q               regular lambda phi grid

Output produced:

UNIT  FILE      PARAMETER(S)      DATA REPRESENTATION

15    fort.15   `U,V,ETA,T,PS,                                  
                `Q,SD,MSL,TCC,`                                  
                `10U,10V,2T,2D,`  regular lambda phi grid         
                `LSP,CP,SSHF,`                                   
                `SSR,EWSS,NSSS`

ALLOCATE VARIABLES

Initialisieren Legendretransformation auf das LaT/LON Gitter

Initialisation of fields for FFT and Legendre transformation to Gaussian grid and back to phase space read LNSP in SH read u,v in SH Transformieren des Windes auf das Gaussgitter
read DIV in SH Transformieren der horizontalen Divergenz auf das Gaussgitter
Berechnung des Gradienten des Logarithmus des Bodendrucks auf dem Gaussgitter
Berechnung der Vertikalgeschwindigkeit auf dem Gaussgitter
Berechnung von Omega auf dem Gaussgitter

READING OF SURFACE PRESSURE

READING OF U,V

READING OF LNSP on grid

READING OF DIVERGENCE

Initialisieren Legendretransformation auf das LaT/LON Gitter Without Gaussian grid calculation Legendre Polynomials are calculated only for one latitude to save space

CREATE FILE VERTICAL.EC NEEDED BY POP MODEL

READING OF T

READING OF SPECIFIC HUMIDITY

WRITE MODEL LEVEL DATA TO fort.15

 Calculation of etadot in CONTGL needed scaled winds (ucosphi,vcosphi)
 Now we are transforming back to the usual winds.

Calls

program~~calc_etadot~~CallsGraph program~calc_etadot calc_etadot proc~readspectral READSPECTRAL program~calc_etadot->proc~readspectral proc~phgcut PHGCUT program~calc_etadot->proc~phgcut proc~grph213 GRPH213 program~calc_etadot->proc~grph213 grib_close_file grib_close_file program~calc_etadot->grib_close_file proc~statis STATIS program~calc_etadot->proc~statis proc~phgr213 PHGR213 program~calc_etadot->proc~phgr213 proc~gauleg GAULEG program~calc_etadot->proc~gauleg grib_open_file grib_open_file program~calc_etadot->grib_open_file set99 set99 program~calc_etadot->set99 proc~posnam POSNAM program~calc_etadot->proc~posnam proc~readlatlon READLATLON program~calc_etadot->proc~readlatlon proc~phgrad PHGRAD program~calc_etadot->proc~phgrad proc~readspectral->grib_close_file grib_count_in_file grib_count_in_file proc~readspectral->grib_count_in_file proc~phsymcut PHSYMCUT proc~phgcut->proc~phsymcut proc~phgpns PHGPNS proc~phgcut->proc~phgpns proc~grphsub GRPHSUB proc~grph213->proc~grphsub ind ind proc~grph213->ind proc~phsym PHSYM proc~phgr213->proc~phsym dcos dcos proc~gauleg->dcos proc~readlatlon->grib_close_file proc~readlatlon->grib_count_in_file proc~rfourtr RFOURTR proc~phsymcut->proc~rfourtr proc~phgpns->proc~rfourtr fft99 fft99 proc~rfourtr->fft99

Contents


Variables

Type AttributesNameInitial
real, ALLOCATABLE, DIMENSION (:,:):: LNPS
real, ALLOCATABLE, DIMENSION (:,:):: Z
real, ALLOCATABLE, DIMENSION (:,:,:):: T
real, ALLOCATABLE, DIMENSION (:,:,:):: UV
real, ALLOCATABLE, DIMENSION (:,:,:):: UV2
real, ALLOCATABLE, DIMENSION (:,:,:):: QA
real, ALLOCATABLE, DIMENSION (:,:,:):: OM
real, ALLOCATABLE, DIMENSION (:,:,:):: OMR
real, ALLOCATABLE, DIMENSION (:,:,:):: DIV
real, ALLOCATABLE, DIMENSION (:,:,:):: ETA
real, ALLOCATABLE, DIMENSION (:,:,:):: ETAR
real, ALLOCATABLE, DIMENSION (:,:):: DPSDL
real, ALLOCATABLE, DIMENSION (:,:):: DPSDM
real, ALLOCATABLE, DIMENSION (:,:,:):: PS
real, ALLOCATABLE, DIMENSION (:,:,:):: DPSDT
real, ALLOCATABLE, DIMENSION (:,:,:):: SURF
real, ALLOCATABLE, DIMENSION (:,:,:):: FLUX
real, ALLOCATABLE, DIMENSION (:,:,:):: OROLSM
real, ALLOCATABLE, DIMENSION (:):: WSAVE
real, ALLOCATABLE, DIMENSION (:):: H
real, ALLOCATABLE, DIMENSION (:):: SINL
real, ALLOCATABLE, DIMENSION (:):: COSL
real, ALLOCATABLE, DIMENSION (:):: WSAVE2
real, ALLOCATABLE, DIMENSION (:):: BREITE
real, ALLOCATABLE, DIMENSION (:):: GBREITE
real, ALLOCATABLE, DIMENSION (:):: AK
real, ALLOCATABLE, DIMENSION (:):: BK
real, ALLOCATABLE, DIMENSION (:):: pv
real :: X1
real :: X2
real :: RMS
real :: MW
real :: SIG
real :: LAM
real, ALLOCATABLE:: CUA(:,:,:)
real, ALLOCATABLE:: CVA(:,:,:)
real, ALLOCATABLE, DIMENSION (:,:):: P
real, ALLOCATABLE, DIMENSION (:,:):: PP
real, ALLOCATABLE, DIMENSION (:,:):: P2
real, ALLOCATABLE, DIMENSION (:,:):: XMN
real, ALLOCATABLE, DIMENSION (:,:):: HILFUV
real, ALLOCATABLE, DIMENSION (:):: LNPMN
real, ALLOCATABLE, DIMENSION (:):: LNPMN2
real, ALLOCATABLE, DIMENSION (:):: LNPMN3
real, ALLOCATABLE, DIMENSION (:):: WEIGHT
real, ALLOCATABLE, DIMENSION (:,:):: UGVG
real, ALLOCATABLE, DIMENSION (:,:):: DG
real, ALLOCATABLE, DIMENSION (:,:):: ETAG
real, ALLOCATABLE, DIMENSION (:,:):: GWSAVE
real, ALLOCATABLE, DIMENSION (:):: PSG
real, ALLOCATABLE, DIMENSION (:):: HILF
integer, ALLOCATABLE, DIMENSION (:):: MLAT
integer, ALLOCATABLE, DIMENSION (:):: MPSURF
integer, ALLOCATABLE, DIMENSION (:):: MPFLUX
integer, ALLOCATABLE, DIMENSION (:):: MPORO
integer, ALLOCATABLE, DIMENSION (:):: MPAR
integer, ALLOCATABLE:: GIFAX(:,:)
real :: PI
real :: COSB
real :: DAK
real :: DBK
real :: P00
real :: URLAR8
real :: JMIN1
real :: LLLAR8
real :: MAXBMIN1
real :: PIR8
real :: DCOSB
integer :: I
integer :: J
integer :: K
integer :: L
integer :: IERR
integer :: M
integer :: LTEST
integer :: MK
integer :: NGI
integer :: NGJ
integer :: MFLUX
integer :: MSURF
integer :: MORO
integer :: LUNIT
integer :: LUNIT2
integer :: MAXL
integer :: MAXB
integer :: MLEVEL
integer :: LEVOUT
integer :: LEVMIN
integer :: LEVMAX
integer :: MOMEGA
integer :: MOMEGADIFF
integer :: MGAUSS
integer :: MSMOOTH
integer :: MNAUF
integer :: META
integer :: METADIFF
integer :: MDPDETA
integer :: METAPAR
real :: RLO0
real :: RLO1
real :: RLA0
real :: RLA1
character(len=300) :: MLEVELIST
integer :: MAUF
integer :: MANF
integer :: IFAX(10)
integer :: IGRIB(1)
integer :: iret
integer :: ogrib
character(len=80) :: FILENAME