verttransform_mod Module



Subroutines

public subroutine verttransform_ecmwf(n, uuh, vvh, wwh, pvh)

CHANGES * * Major update: 17 February 1999 * by G. Wotawa * * - Vertical levels for u, v and w are put together * - Slope correction for vertical velocity: Modification of calculation * procedure * * Changes, Bernd C. Krueger, Feb. 2001: * Variables tth and qvh (on eta coordinates) from common block * * Sabine Eckhardt, March 2007 * added the variable cloud for use with scavenging - descr. in com_mod * * Unified ECMWF and GFS builds * Marian Harustak, 12.5.2017 * - Renamed from verttransform to verttransform_ecmwf * * Date: 2017-05-30 modification of a bug in ew. Don Morton (CTBTO project) * * Lucie Bakels, 2022 * - Separated the code into subroutines * - In case of wind_coord_type='ETA': keep ECMWF vertical winds in eta * coordinates * - OpenMP parallelisation * * Petra Seibert, Anne Philipp, 2019-05-02: implement wetdepo quickfix * Petra Seibert, Anne Tipka, 2020-11-19: reimplement in latest version * *

Read more…

Arguments

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

public subroutine verttransform_nest(n, uuhn, vvhn, wwhn, pvhn)

CHANGES * Major update: 17 February 1999 * by G. Wotawa * * - Vertical levels for u, v and w are put together * - Slope correction for vertical velocity: Modification of calculation * procedure * * Bernd C. Krueger, Feb. 2001: * Variables tthn and qvhn (on eta coordinates) from common block * * Sabine Eckhardt, March 2007: * added the variable cloud for use with scavenging - descr. in com_mod * PS/AT 2018/-21: variable "cloud" is replaced by quickfix, see below * * ESO, 2016 * -note that divide-by-zero occurs when nxmaxn,nymaxn etc. are larger than * the actual field dimensions * * Don Morton, 2017-05-30: * modification of a bug in ew. Don Morton (CTBTO project) * * undocumented modifications by NILU for v10 * * Petra Seibert, 2018-06-13: * - put back SAVE attribute for INIT, just to be safe * - minor changes, most of them just cosmetics * for details see changelog.txt in branch unive * * Petra Seibert, Anne Philipp, 2019-05-02: implement wetdepo quickfix * Petra Seibert, Anne Tipka, 2020-11-19: reimplement in latest version * *

Read more…

Arguments

Type IntentOptional Attributes Name
integer :: n Read more…
real, intent(in), dimension(0:nxmaxn-1,0:nymaxn-1,nuvzmax,numbnests) :: uuhn
real, intent(in), dimension(0:nxmaxn-1,0:nymaxn-1,nuvzmax,numbnests) :: vvhn
real, intent(in), dimension(0:nxmaxn-1,0:nymaxn-1,nwzmax,numbnests) :: wwhn
real, intent(in), dimension(0:nxmaxn-1,0:nymaxn-1,nuvzmax,numbnests) :: pvhn

public subroutine verttransform_init(n)

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n

public subroutine output_heightlevels(height_tmp, nmixz_tmp)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: height_tmp(nzmax)
integer, intent(in) :: nmixz_tmp

public subroutine read_heightlevels(height_tmp, nmixz_tmp)

Arguments

Type IntentOptional Attributes Name
real, intent(out) :: height_tmp(nzmax)
integer, intent(out) :: nmixz_tmp

public subroutine verttransform_ecmwf_windfields(n, nxlim, nylim, uuh, vvh, wwh, pvh, rhoh, prsh, pinmconv)

z=1

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n
integer, intent(in) :: nxlim
integer, intent(in) :: nylim
real, intent(in), dimension(0:nxlim,0:nylim,nuvzmax) :: uuh
real, intent(in), dimension(0:nxlim,0:nylim,nuvzmax) :: vvh
real, intent(in), dimension(0:nxlim,0:nylim,nwzmax) :: wwh
real, intent(in), dimension(0:nxlim,0:nylim,nuvzmax) :: pvh
real, intent(in), dimension(0:nxlim,0:nylim,nuvzmax) :: rhoh
real, intent(in), dimension(0:nxlim,0:nylim,nuvzmax) :: prsh
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: pinmconv

public subroutine verttransform_ecmwf_polar(n)

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: n

public subroutine verttransform_ecmwf_cloud(lcw_tmp, lcwsum_tmp, nxlim, nylim, ctwc_tmp, clwc_tmp, ciwc_tmp, icloudbot_tmp, icloudtop_tmp, lsprec_tmp, convprec_tmp, rho_tmp, tt_tmp, qv_tmp, uvzlev, wzlev)

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: lcw_tmp
logical, intent(in) :: lcwsum_tmp
integer, intent(in) :: nxlim
integer, intent(in) :: nylim
real, intent(out) :: ctwc_tmp(0:nxlim,0:nylim)
real, intent(inout) :: clwc_tmp(0:nxlim,0:nylim,nzmax)
real, intent(in) :: ciwc_tmp(0:nxlim,0:nylim,nzmax)
integer, intent(out) :: icloudbot_tmp(0:nxlim,0:nylim)
integer, intent(out) :: icloudtop_tmp(0:nxlim,0:nylim)
real, intent(in) :: lsprec_tmp(0:nxlim,0:nylim,numpf)
real, intent(in) :: convprec_tmp(0:nxlim,0:nylim,numpf)
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: rho_tmp
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: tt_tmp
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: qv_tmp
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: uvzlev
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: wzlev

public subroutine convert_cloud_params(ix, jy, nxlim, nylim, max_cloudthck_eta, conv_clrange_eta, highconvp_clrange_eta, lowconvp_clrange_eta, uvzlev)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ix
integer, intent(in) :: jy
integer, intent(in) :: nxlim
integer, intent(in) :: nylim
integer, intent(out) :: max_cloudthck_eta
integer, intent(out), dimension(2) :: conv_clrange_eta
integer, intent(out), dimension(2) :: highconvp_clrange_eta
integer, intent(out), dimension(2) :: lowconvp_clrange_eta
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: uvzlev

public subroutine identify_cloud(ix, jy, lcw_tmp, lcwsum_tmp, nxlim, nylim, ctwc_tmp, clwc_tmp, ciwc_tmp, icloudbot_tmp, icloudtop_tmp, rho_tmp, tt_tmp, qv_tmp, uvzlev, wzlev)

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ix
integer, intent(in) :: jy
logical, intent(in) :: lcw_tmp
logical, intent(in) :: lcwsum_tmp
integer, intent(in) :: nxlim
integer, intent(in) :: nylim
real, intent(out) :: ctwc_tmp(0:nxlim,0:nylim)
real, intent(inout) :: clwc_tmp(0:nxlim,0:nylim,nzmax)
real, intent(in) :: ciwc_tmp(0:nxlim,0:nylim,nzmax)
integer, intent(out) :: icloudbot_tmp(0:nxlim,0:nylim)
integer, intent(out) :: icloudtop_tmp(0:nxlim,0:nylim)
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: rho_tmp
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: tt_tmp
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: qv_tmp
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: uvzlev
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: wzlev

public subroutine apply_cloud_bounds(ix, jy, nxlim, nylim, lsprec_tmp, convprec_tmp, uvzlev, icloudbot_tmp, icloudtop_tmp, max_cloudthck_eta, conv_clrange_eta, highconvp_clrange_eta, lowconvp_clrange_eta)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: ix
integer, intent(in) :: jy
integer, intent(in) :: nxlim
integer, intent(in) :: nylim
real, intent(in) :: lsprec_tmp(0:nxlim,0:nylim,numpf)
real, intent(in) :: convprec_tmp(0:nxlim,0:nylim,numpf)
real, intent(in), dimension(0:nxlim,0:nylim,nzmax) :: uvzlev
integer, intent(inout) :: icloudbot_tmp(0:nxlim,0:nylim)
integer, intent(inout) :: icloudtop_tmp(0:nxlim,0:nylim)
integer, intent(in) :: max_cloudthck_eta
integer, intent(in), dimension(2) :: conv_clrange_eta
integer, intent(in), dimension(2) :: highconvp_clrange_eta
integer, intent(in), dimension(2) :: lowconvp_clrange_eta

public subroutine verttransform_gfs(n, uuh, vvh, wwh, pvh)

CHANGES * Major update: 17 February 1999 * by G. Wotawa * * - Vertical levels for u, v and w are put together * - Slope correction for vertical velocity: Modification of calculation * procedure * * Bernd C. Krueger, Feb. 2001: * Variables tth and qvh (on eta coordinates) from common block * * Sabine Eckhardt, March 2007: * added the variable cloud for use with scavenging - descr. in com_mod * PS/AT 2018/-21: variable "cloud" is replaced by quickfix, see below * * Unified ECMWF and GFS builds * Marian Harustak, 12.5.2017 * - Renamed from verttransform to verttransform_ecmwf * * undocumented modifications by NILU for v10 * * Petra Seibert, 2018-06-13: * - put back SAVE attribute for INIT, just to be safe * - minor changes, most of them just cosmetics * for details see changelog.txt in branch unive * * Petra Seibert, Anne Philipp, 2019-05-02: implement wetdepo quickfix * Petra Seibert, Anne Tipka, 2020-11-19: reimplement in latest version * *

Read more…

Arguments

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

public subroutine verttransform_ecmwf_heights(nxlim, nylim, tt2_tmp, td2_tmp, ps_tmp, qvh_tmp, tth_tmp, prsh_tmp, rhoh_tmp, pinmconv, uvzlev, wzlev)

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nxlim
integer, intent(in) :: nylim
real, intent(in), dimension(0:nxlim,0:nylim) :: tt2_tmp
real, intent(in), dimension(0:nxlim,0:nylim) :: td2_tmp
real, intent(in), dimension(0:nxlim,0:nylim) :: ps_tmp
real, intent(in), dimension(0:nxlim,0:nylim,nuvzmax) :: qvh_tmp
real, intent(in), dimension(0:nxlim,0:nylim,nuvzmax) :: tth_tmp
real, intent(out), dimension(0:nxlim,0:nylim,nuvzmax) :: prsh_tmp
real, intent(out), dimension(0:nxlim,0:nylim,nuvzmax) :: rhoh_tmp
real, intent(out), dimension(0:nxlim,0:nylim,nzmax) :: pinmconv
real, intent(out), dimension(0:nxlim,0:nylim,nuvzmax) :: uvzlev
real, intent(out), dimension(0:nxlim,0:nylim,nuvzmax) :: wzlev

public subroutine verttransform_ecmwf_windfields_nest(l, n, uuhn, vvhn, wwhn, pvhn, rhohn, prshn, pinmconv)

$OMP PARALLEL PRIVATE(jy,ix,kz,dz1,dz2,dz,ix1,jy1,ixp,jyp,dzdx1,dzdx2,dzdx, & $OMP dzdy1,dzdy2,dzdy,dpdeta)

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: l
integer, intent(in) :: n
real, intent(in), dimension(0:nxmaxn-1,0:nymaxn-1,nuvzmax,numbnests) :: uuhn
real, intent(in), dimension(0:nxmaxn-1,0:nymaxn-1,nuvzmax,numbnests) :: vvhn
real, intent(in), dimension(0:nxmaxn-1,0:nymaxn-1,nwzmax,numbnests) :: wwhn
real, intent(in), dimension(0:nxmaxn-1,0:nymaxn-1,nuvzmax,numbnests) :: pvhn
real, intent(in), dimension(0:nxmaxn-1,0:nymaxn-1,nuvzmax) :: rhohn
real, intent(in), dimension(0:nxmaxn-1,0:nymaxn-1,nuvzmax) :: prshn
real, intent(in), dimension(0:nxmaxn-1,0:nymaxn-1,nzmax) :: pinmconv