PHTOGR Module

Module for transformation of a field variable from the phase space into the physical space onto the reduced Gaussian grid


Used by

  • module~~phtogr~~UsedByGraph module~phtogr PHTOGR proc~vduvsub VDUVSUB proc~vduvsub->module~phtogr program~calc_etadot calc_etadot program~calc_etadot->module~phtogr module~grtoph GRTOPH program~calc_etadot->module~grtoph proc~phgrad PHGRAD proc~phgrad->module~phtogr module~grtoph->module~phtogr proc~vdtouv VDTOUV proc~vdtouv->module~phtogr proc~phgracut PHGRACUT proc~phgracut->module~phtogr

Contents


Variables

TypeVisibility AttributesNameInitial
integer, public, parameter:: MAXAUF =36000

Subroutines

public subroutine PHGR213(CXMN, FELD, WSAVE, IFAX, Z, MLAT, MNAUF, MAXL, MAXB, MLEVEL)

Arguments

Type IntentOptional AttributesName
real :: CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)
real :: FELD(MAXL,MLEVEL)
real :: WSAVE(8*MAXB+15,MAXB/2)
integer :: IFAX(10,MAXB)
real :: Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2)
integer :: MLAT(MAXB/2)
integer :: MNAUF
integer :: MAXL
integer :: MAXB
integer :: MLEVEL

public subroutine PHSYM(K, IND, CXMN, FELD, Z, WSAVE, IFAX, MLAT, MNAUF, MAXL, MAXB, MLEVEL)

Arguments

Type IntentOptional AttributesName
integer :: K
integer :: IND(MAXB)
real :: CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)
real :: FELD(MAXL,MLEVEL)
real :: Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB/2)
real :: WSAVE(8*MAXB+15,MAXB/2)
integer :: IFAX(10,MAXB)
integer :: MLAT(MAXB/2)
integer :: MNAUF
integer :: MAXL
integer :: MAXB
integer :: MLEVEL

public subroutine PHGCUT(CXMN, FELD, WSAVE, IFAX, Z, MNAUF, MMAX, MAUF, MANF, MAXL, MAXB, MLEVEL)

Carries out the transformation of a field variable from the phase space into the physical space on spherical coordinates. It is possible to specify a section of the Earth. This subroutine is slower thatn PHGRPH.

Arguments

Type IntentOptional AttributesName
real :: CXMN
real :: FELD(MAXL,MAXB,MLEVEL)
real :: WSAVE
integer :: IFAX(10)
real :: Z(0:((MMAX+3)*(MMAX+4))/2,MAXB)
integer :: MNAUF
integer :: MMAX
integer :: MAUF
integer :: MANF
integer :: MAXL
integer :: MAXB
integer :: MLEVEL

public subroutine PHSYMCUT(J, CXMN, FELD, Z, WSAVE, IFAX, MAUF, MNAUF, MAXL, MAXB, MLEVEL, MANF)

Arguments

Type IntentOptional AttributesName
integer :: J
real :: CXMN
real :: FELD(MAXL,MAXB,MLEVEL)
real :: Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB)
real :: WSAVE
integer :: IFAX(10)
integer :: MAUF
integer :: MNAUF
integer :: MAXL
integer :: MAXB
integer :: MLEVEL
integer :: MANF

public subroutine PHGPNS(CXMN, FELD, Z, WSAVE, IFAX, J, MNAUF, MAUF, MANF, MAXL, MAXB, MLEVEL)

Arguments

Type IntentOptional AttributesName
real, intent(in) :: CXMN(0:(MNAUF+1)*(MNAUF+2)-1,MLEVEL)
real :: FELD(MAXL,MAXB,MLEVEL)
real, intent(in) :: Z(0:((MNAUF+3)*(MNAUF+4))/2,MAXB)
real, intent(in) :: WSAVE(4*MAUF+15)
integer :: IFAX(10)
integer, intent(in) :: J
integer, intent(in) :: MNAUF
integer, intent(in) :: MAUF
integer, intent(in) :: MANF
integer, intent(in) :: MAXL
integer, intent(in) :: MAXB
integer, intent(in) :: MLEVEL

public subroutine LEGTR(CXMN, CXM, Z, MNAUF, MAUF)

Calculate the Fourier coefficients CXM

Arguments

Type IntentOptional AttributesName
real :: CXMN(0:(MNAUF+1)*(MNAUF+2)-1)
real :: CXM(0:MAXAUF-1)
real :: Z(0:((MNAUF+3)*(MNAUF+4))/2)
integer :: MNAUF
integer :: MAUF

public subroutine RFOURTR(CXM, TRIGS, IFAX, MNAUF, MAXL, ISIGN)

Calculates the Fourier sum with an FFT algorithm

Arguments

Type IntentOptional AttributesName
real :: CXM
real :: TRIGS(2*MAXL)
integer :: IFAX(10)
integer :: MNAUF
integer :: MAXL
integer :: ISIGN

public subroutine GAULEG(X1, X2, X, W, N)

Calculates the Gaussian latitudes

Arguments

Type IntentOptional AttributesName
real :: X1
real :: X2
real :: X
real :: W
integer :: N

public subroutine PLGNFA(LL, X, Z)

Calculates all normalised associated Legendre functions from P00(X) to PLL(X) and writes them into the field Z. The polynomials have indices as with ECMWF, i.e. P00,P10,P11,P20,P21,P22,... Otherwise, this subroutine is analogous to PLGNDN

Arguments

Type IntentOptional AttributesName
integer :: LL
real :: X
real :: Z

public subroutine DPLGND(MNAUF, Z, DZ)

Calculates the derivatives of the normalised associated Legendre function from P00(X) to PLL(X) and writes them into the field DZ. Order is P00(X),P01(X),P11(X),P02(X),P12(X),P22(X),..PLL(X)

Arguments

Type IntentOptional AttributesName
integer :: MNAUF
real :: Z
real :: DZ

public subroutine SPFILTER(FELDMN, MM, MMAX)

Implements spectral filter of Sardeshmukh and Hoskins (MWR 1984)

Arguments

Type IntentOptional AttributesName
real :: FELDMN(0:(MM+1)*(MM+2)-1)
integer :: MM
integer :: MMAX