windfields_mod Module


Variables associated with the ECMWF meteorological input data ("wind fields")




Variables

Type Visibility Attributes Name Initial
integer, public :: numbwf
integer, public, allocatable, dimension(:) :: wftime
character(len=255), public, allocatable, dimension(:) :: wfname
character(len=255), public, allocatable, dimension(:,:) :: wfnamen
integer, public :: nxmax
integer, public :: nymax
integer, public :: nuvzmax
integer, public :: nwzmax
integer, public :: nzmax
real, public, allocatable, dimension(:,:) :: oro
real, public, allocatable, dimension(:,:) :: excessoro
real, public, allocatable, dimension(:,:) :: lsm
real, public, allocatable, dimension(:,:,:) :: oron
real, public, allocatable, dimension(:,:,:) :: excessoron
real, public, allocatable, dimension(:,:,:) :: lsmn
real, public, allocatable, dimension(:,:,:,:) :: uueta
real, public, allocatable, dimension(:,:,:,:) :: vveta
real, public, allocatable, dimension(:,:,:,:) :: wweta
real, public, allocatable, dimension(:,:,:,:) :: uupoleta
real, public, allocatable, dimension(:,:,:,:) :: vvpoleta
real, public, allocatable, dimension(:,:,:,:) :: tteta
real, public, allocatable, dimension(:,:,:,:) :: pveta
real, public, allocatable, dimension(:,:,:,:) :: rhoeta
real, public, allocatable, dimension(:,:,:,:) :: prseta
real, public, allocatable, dimension(:,:,:,:) :: drhodzeta
real, public, allocatable, dimension(:,:,:,:) :: etauvheight
real, public, allocatable, dimension(:,:,:,:) :: etawheight
real, public, allocatable, dimension(:,:,:,:) :: uu
real, public, allocatable, dimension(:,:,:,:) :: vv
real, public, allocatable, dimension(:,:,:,:) :: ww
real, public, allocatable, dimension(:,:,:,:) :: uupol
real, public, allocatable, dimension(:,:,:,:) :: vvpol
real, public, allocatable, dimension(:,:,:,:) :: tt
real, public, allocatable, dimension(:,:,:,:) :: tth
real, public, allocatable, dimension(:,:,:,:) :: qv
real, public, allocatable, dimension(:,:,:,:) :: qvh
real, public, allocatable, dimension(:,:,:,:) :: pv
real, public, allocatable, dimension(:,:,:,:) :: rho
real, public, allocatable, dimension(:,:,:,:) :: drhodz
real, public, allocatable, dimension(:,:,:,:) :: pplev
real, public, allocatable, dimension(:,:,:,:) :: prs
real, public, allocatable, dimension(:,:,:,:) :: rho_dry
real, public, allocatable, dimension(:,:,:,:) :: clwc
real, public, allocatable, dimension(:,:,:,:) :: ciwc
real, public, allocatable, dimension(:,:,:,:) :: clwch
real, public, allocatable, dimension(:,:,:,:) :: ciwch
real, public, allocatable, dimension(:,:,:) :: ctwc
integer, public, allocatable, dimension(:,:,:) :: icloudbot
integer, public, allocatable, dimension(:,:,:) :: icloudtop
real, public, allocatable, dimension(:,:,:,:,:) :: uun
real, public, allocatable, dimension(:,:,:,:,:) :: vvn
real, public, allocatable, dimension(:,:,:,:,:) :: wwn
real, public, allocatable, dimension(:,:,:,:,:) :: ttn
real, public, allocatable, dimension(:,:,:,:,:) :: tthn
real, public, allocatable, dimension(:,:,:,:,:) :: qvn
real, public, allocatable, dimension(:,:,:,:,:) :: qvhn
real, public, allocatable, dimension(:,:,:,:,:) :: pvn
real, public, allocatable, dimension(:,:,:,:,:) :: rhon
real, public, allocatable, dimension(:,:,:,:,:) :: prsn
real, public, allocatable, dimension(:,:,:,:,:) :: drhodzn
real, public, allocatable, dimension(:,:,:,:,:) :: uuetan
real, public, allocatable, dimension(:,:,:,:,:) :: vvetan
real, public, allocatable, dimension(:,:,:,:,:) :: wwetan
real, public, allocatable, dimension(:,:,:,:,:) :: ttetan
real, public, allocatable, dimension(:,:,:,:,:) :: pvetan
real, public, allocatable, dimension(:,:,:,:,:) :: rhoetan
real, public, allocatable, dimension(:,:,:,:,:) :: prsetan
real, public, allocatable, dimension(:,:,:,:,:) :: drhodzetan
real, public, allocatable, dimension(:,:,:,:,:) :: etauvheightn
real, public, allocatable, dimension(:,:,:,:,:) :: etawheightn
real, public, allocatable, dimension(:,:,:,:,:) :: clwcn
real, public, allocatable, dimension(:,:,:,:,:) :: ciwcn
real, public, allocatable, dimension(:,:,:,:,:) :: clwchn
real, public, allocatable, dimension(:,:,:,:,:) :: ciwchn
real, public, allocatable, dimension(:,:,:,:) :: ctwcn
integer, public, allocatable, dimension(:,:,:,:) :: icloudbotn
integer, public, allocatable, dimension(:,:,:,:) :: icloudtopn
real, public, allocatable, dimension(:,:,:,:) :: ps
real, public, allocatable, dimension(:,:,:,:) :: sd
real, public, allocatable, dimension(:,:,:,:) :: msl
real, public, allocatable, dimension(:,:,:,:) :: tcc
real, public, allocatable, dimension(:,:,:,:) :: u10
real, public, allocatable, dimension(:,:,:,:) :: v10
real, public, allocatable, dimension(:,:,:,:) :: tt2
real, public, allocatable, dimension(:,:,:,:) :: td2
real, public, allocatable, dimension(:,:,:,:) :: sshf
real, public, allocatable, dimension(:,:,:,:) :: ssr
real, public, allocatable, dimension(:,:,:,:) :: sfcstress
real, public, allocatable, dimension(:,:,:,:) :: ustar
real, public, allocatable, dimension(:,:,:,:) :: wstar
real, public, allocatable, dimension(:,:,:,:) :: hmix
real, public, allocatable, dimension(:,:,:,:) :: tropopause
real, public, allocatable, dimension(:,:,:,:) :: oli
real, public, allocatable, dimension(:,:,:,:,:) :: lsprec
real, public, allocatable, dimension(:,:,:,:,:) :: convprec
real, public, allocatable, dimension(:,:,:,:,:) :: psn
real, public, allocatable, dimension(:,:,:,:,:) :: sdn
real, public, allocatable, dimension(:,:,:,:,:) :: msln
real, public, allocatable, dimension(:,:,:,:,:) :: tccn
real, public, allocatable, dimension(:,:,:,:,:) :: u10n
real, public, allocatable, dimension(:,:,:,:,:) :: v10n
real, public, allocatable, dimension(:,:,:,:,:) :: tt2n
real, public, allocatable, dimension(:,:,:,:,:) :: td2n
real, public, allocatable, dimension(:,:,:,:,:) :: sshfn
real, public, allocatable, dimension(:,:,:,:,:) :: ssrn
real, public, allocatable, dimension(:,:,:,:,:) :: sfcstressn
real, public, allocatable, dimension(:,:,:,:,:) :: ustarn
real, public, allocatable, dimension(:,:,:,:,:) :: wstarn
real, public, allocatable, dimension(:,:,:,:,:) :: hmixn
real, public, allocatable, dimension(:,:,:,:,:) :: tropopausen
real, public, allocatable, dimension(:,:,:,:,:) :: olin
real, public, allocatable, dimension(:,:,:,:,:) :: vdepn
real, public, allocatable, dimension(:,:,:,:,:,:) :: lsprecn
real, public, allocatable, dimension(:,:,:,:,:,:) :: convprecn
integer, public :: metdata_format

Variables defining actual size and geographical location of the wind fields


integer, public :: nx
integer, public :: ny
integer, public :: nz
integer, public :: nxmin1
integer, public :: nymin1
integer, public :: nxfield
integer, public :: nuvz
integer, public :: nwz
integer, public :: nmixz
integer, public :: nlev_ec
real, public :: dxconst
real, public :: dyconst
integer, public :: nconvlevmax
integer, public :: na

Variables used for vertical model discretization


real, public, allocatable, dimension(:) :: height

Variables characterizing size and location of the nested wind fields


real, public, allocatable, dimension(:) :: wheight

Variables characterizing size and location of the nested wind fields


real, public, allocatable, dimension(:) :: uvheight

Variables characterizing size and location of the nested wind fields


real, public, allocatable, dimension(:) :: akm

Variables characterizing size and location of the nested wind fields


real, public, allocatable, dimension(:) :: bkm

Variables characterizing size and location of the nested wind fields


real, public, allocatable, dimension(:) :: akz

Variables characterizing size and location of the nested wind fields


real, public, allocatable, dimension(:) :: bkz

Variables characterizing size and location of the nested wind fields


real, public, allocatable, dimension(:) :: aknew

Variables characterizing size and location of the nested wind fields


real, public, allocatable, dimension(:) :: bknew

Variables characterizing size and location of the nested wind fields


integer, public, allocatable, dimension(:) :: nxn
integer, public, allocatable, dimension(:) :: nyn
real, public, allocatable, dimension(:) :: dxn

Certain auxiliary variables needed for the nests


real, public, allocatable, dimension(:) :: dyn

Certain auxiliary variables needed for the nests


real, public, allocatable, dimension(:) :: xlon0n

Certain auxiliary variables needed for the nests


real, public, allocatable, dimension(:) :: ylat0n

Certain auxiliary variables needed for the nests


real, public, allocatable, dimension(:) :: xresoln
real, public, allocatable, dimension(:) :: yresoln
real, public, allocatable, dimension(:) :: xln
real, public, allocatable, dimension(:) :: yln
real, public, allocatable, dimension(:) :: xrn
real, public, allocatable, dimension(:) :: yrn

Subroutines

public subroutine detectformat()

This routine reads the 1st file with windfields to determine * the format. * * Authors: M. Harustak * * 6 May 2015 * * Unified ECMWF and GFS builds * Marian Harustak, 12.5.2017 * - Added routine to FP10 Flexpart distribution *

Read more…

Arguments

None

public subroutine gridcheck_ecmwf()

Unified ECMWF and GFS builds * Marian Harustak, 12.5.2017 * - Renamed from gridcheck to gridcheck_ecmwf * * *
Anne Tipka, Petra Seibert 2021-02: implement new interpolation * for precipitation according to #295 using 2 additional fields * *

Read more…

Arguments

None

public subroutine gridcheck_gfs()

Unified ECMWF and GFS builds * Marian Harustak, 12.5.2017 * - Renamed routine from gridcheck to gridcheck_gfs * * *
Anne Tipka, Petra Seibert 2021-02: implement new interpolation * for precipitation according to #295 using 2 additional fields * *

Read more…

Arguments

None

public subroutine gridcheck_nest()

Anne Tipka, Petra Seibert 2021-02: implement new interpolation * for precipitation according to #295 using 2 additional fields * *

Read more…

Arguments

None

public subroutine readwind_ecmwf(indj, n, uuh, vvh, wwh)

Changes, Bernd C. Krueger, Feb. 2001: * Variables tth and qvh (on eta coordinates) in common block * * Unified ECMWF and GFS builds * Marian Harustak, 12.5.2017 * - Renamed from readwind to readwind_ecmwf * * L. Bakels, 2021: OpenMP parallelisation (following CTM version) * *
Anne Tipka, Petra Seibert 2021-02: implement new interpolation * for precipitation according to #295 using 2 additional fields * change some double loops in wrong order to forall constructs * *

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: indj
integer, intent(in) :: n
real(kind=4), intent(inout) :: uuh(0:nxmax-1,0:nymax-1,nuvzmax)
real(kind=4), intent(inout) :: vvh(0:nxmax-1,0:nymax-1,nuvzmax)
real(kind=4), intent(inout) :: wwh(0:nxmax-1,0:nymax-1,nwzmax)

public subroutine readwind_gfs(indj, n, uuh, vvh, wwh)

Unified ECMWF and GFS builds * Marian Harustak, 12.5.2017 * - Renamed routine from readwind to readwind_gfs * * Petra Seibert, Anne Tipka, 2021-02: implement new interpolation * just catch numpf>1 and produce error msg, adjust rank of precip * and correct some loops in bad order * * *
Anne Tipka, Petra Seibert 2021-02: implement new interpolation * for precipitation according to #295 using 2 additional fields * change some double loops in wrong order to forall constructs * *

Read more…

Arguments

Type IntentOptional Attributes Name
integer :: indj
integer :: n
real :: uuh(0:nxmax-1,0:nymax-1,nuvzmax)
real :: vvh(0:nxmax-1,0:nymax-1,nuvzmax)
real :: wwh(0:nxmax-1,0:nymax-1,nwzmax)

public subroutine readwind_nest(indj, n, uuhn, vvhn, wwhn)

Anne Tipka, Petra Seibert 2021-02: implement new interpolation * for precipitation according to #295 using 2 additional fields * change some double loops in wrong order to forall constructs * *

Read more…

Arguments

Type IntentOptional Attributes Name
integer :: indj
integer :: n
real :: uuhn(0:nxmaxn-1,0:nymaxn-1,nuvzmax,maxnests)
real :: vvhn(0:nxmaxn-1,0:nymaxn-1,nuvzmax,maxnests)
real :: wwhn(0:nxmaxn-1,0:nymaxn-1,nwzmax,maxnests)

public subroutine shift_field_0(field, nxf, nyf)

This subroutine shifts global fields by nxshift grid cells, in order to * facilitate all sorts of nested wind fields, or output grids, which, * without shifting, would overlap with the domain "boundary". * * Author: A. Stohl * * 3 July 2002 * *

Read more…

Arguments

Type IntentOptional Attributes Name
real :: field(0:nxmax-1,0:nymax-1) Read more…
integer :: nxf
integer :: nyf

public subroutine shift_field(field, nxf, nyf, nzfmax, nzf, nmax, n)

This subroutine shifts global fields by nxshift grid cells, in order to * facilitate all sorts of nested wind fields, or output grids, which, * without shifting, would overlap with the domain "boundary". * * Author: A. Stohl * * 3 July 2002 * *

Read more…

Arguments

Type IntentOptional Attributes Name
real :: field(0:nxmax-1,0:nymax-1,nzfmax,nmax) Read more…
integer :: nxf
integer :: nyf
integer :: nzfmax
integer :: nzf
integer :: nmax
integer :: n

public subroutine alloc_fixedfields()

Arguments

None

public subroutine alloc_fixedfields_nest()

Arguments

None

public subroutine alloc_windfields()

Read more…

Arguments

None

public subroutine alloc_windfields_nest()

Dynamic allocation of arrays

Read more…

Arguments

None

public subroutine alloc_nest_properties()

Arguments

None

public subroutine dealloc_windfields_nest()

Arguments

None

public subroutine dealloc_windfields()

Arguments

None