PRIVATE FUNCTIONS *
Interpolation of wind fields
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real, | public, | allocatable, dimension(:,:) | :: | uprof | |||
real, | public, | allocatable, dimension(:,:) | :: | vprof | |||
real, | public, | allocatable, dimension(:,:) | :: | wprof | |||
real, | public, | allocatable, dimension(:,:) | :: | usigprof | |||
real, | public, | allocatable, dimension(:,:) | :: | vsigprof | |||
real, | public, | allocatable, dimension(:,:) | :: | wsigprof | |||
real, | public, | allocatable, dimension(:,:) | :: | rhoprof | |||
real, | public, | allocatable, dimension(:,:) | :: | rhogradprof | |||
logical, | public, | allocatable, dimension(:,:) | :: | indzindicator | |||
logical, | public, | allocatable, dimension(:,:) | :: | depoindicator | |||
real, | public | :: | u | ||||
real, | public | :: | v | ||||
real, | public | :: | w | ||||
real, | public | :: | usig | ||||
real, | public | :: | vsig | ||||
real, | public | :: | wsig | ||||
real, | public | :: | p1 | ||||
real, | public | :: | p2 | ||||
real, | public | :: | p3 | ||||
real, | public | :: | p4 | ||||
real, | public | :: | ddx | ||||
real, | public | :: | ddy | ||||
real, | public | :: | rddx | ||||
real, | public | :: | rddy | ||||
real, | public | :: | dtt | ||||
real, | public | :: | dt1 | ||||
real, | public | :: | dt2 | ||||
real, | public | :: | xtn | ||||
real, | public | :: | ytn | ||||
real, | public | :: | dz1out | ||||
real, | public | :: | dz2out | ||||
integer, | public | :: | nix | ||||
integer, | public | :: | njy | ||||
integer, | public | :: | ix | ||||
integer, | public | :: | jy | ||||
integer, | public | :: | ixp | ||||
integer, | public | :: | jyp | ||||
integer, | public | :: | ngrid | ||||
integer, | public | :: | indz | ||||
integer, | public | :: | indzp | ||||
integer, | public | :: | induv | ||||
integer, | public | :: | indpuv | ||||
logical, | public | :: | lbounds(2) | ||||
real, | public, | allocatable, dimension(:,:) | :: | wprofeta | |||
real, | public | :: | ueta | ||||
real, | public | :: | veta | ||||
real, | public | :: | weta | ||||
real, | public | :: | wsigeta | ||||
integer, | public | :: | indzeta | ||||
integer, | public | :: | indzpeta | ||||
logical, | public | :: | lbounds_w(2) | ||||
logical, | public | :: | lbounds_uv(2) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | field(0:nxmax-1,0:nymax-1,ztot,numwfmem) | |||
real, | intent(inout) | :: | output | |||
integer, | intent(in) | :: | zlevel | |||
integer, | intent(in) | :: | indexh | |||
integer, | intent(in) | :: | ztot |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | field(0:nxmax-1,0:nymax-1) | |||
real, | intent(inout) | :: | output |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | field(0:nxmaxn-1,0:nymaxn-1,ztot,numwfmem,numbnests) | |||
real, | intent(inout) | :: | output | |||
integer, | intent(in) | :: | zlevel | |||
integer, | intent(in) | :: | indexh | |||
integer, | intent(in) | :: | ztot |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | field(0:nxmaxn-1,0:nymaxn-1,numbnests) | |||
real, | intent(inout) | :: | output |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | xt | |||
real(kind=dp), | intent(in) | :: | yt |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | xt | |||
real, | intent(in) | :: | yt |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | itime | |||
real, | intent(in) | :: | xt | |||
real, | intent(in) | :: | yt | |||
real, | intent(in) | :: | zt | |||
real, | intent(in) | :: | zteta |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | xt | |||
real, | intent(in) | :: | yt |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | xt | |||
real, | intent(in) | :: | yt |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | itime |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | zt | |||
real, | intent(in) | :: | zteta |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | zt |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | zteta |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | zteta |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | zteta |
This subroutine computes the vertical interpolation variables * logarithmically, unless log_interpol=.false. in the par_mod * * Author: L. Bakels *
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | vertlevels(:) | |||
real, | intent(in) | :: | zpos | |||
integer, | intent(in) | :: | zlevel | |||
real, | intent(inout) | :: | dz1 | |||
real, | intent(inout) | :: | dz2 | |||
logical, | intent(in) | :: | bounds(2) | |||
logical, | intent(in) | :: | wlevel |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | vertlevels(:) | |||
real, | intent(in) | :: | zpos | |||
integer, | intent(in) | :: | zlevel | |||
real, | intent(inout) | :: | dz1 | |||
real, | intent(inout) | :: | dz2 | |||
logical, | intent(in) | :: | bounds(2) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | xt | |||
real(kind=dp), | intent(in) | :: | yt |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | xt | |||
real, | intent(in) | :: | yt |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | field(0:nxmax-1,0:nymax-1,ztot,numwfmem) | |||
real, | intent(inout) | :: | output | |||
integer, | intent(in) | :: | zlevel | |||
integer, | intent(in) | :: | indexh | |||
integer, | intent(in) | :: | ztot |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | field(0:nxmax-1,0:nymax-1) | |||
real, | intent(inout) | :: | output |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | field(0:nxmaxn-1,0:nymaxn-1,ztot,numwfmem,numbnests) | |||
real, | intent(inout) | :: | output | |||
integer, | intent(in) | :: | zlevel | |||
integer, | intent(in) | :: | indexh | |||
integer, | intent(in) | :: | ztot |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | field(0:nxmaxn-1,0:nymaxn-1,numbnests) | |||
real, | intent(inout) | :: | output |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | time1 | |||
real, | intent(in) | :: | time2 | |||
real, | intent(inout) | :: | output |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | input1 | |||
real, | intent(in) | :: | input2 | |||
real, | intent(in) | :: | dz1 | |||
real, | intent(in) | :: | dz2 | |||
real, | intent(inout) | :: | output |
2.) Linear vertical interpolation on logarithmic scale
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | field(0:nxmax-1,0:nymax-1,ztot,numwfmem) | |||
real, | intent(inout) | :: | output(2) | |||
integer, | intent(in) | :: | zlevel | |||
real, | intent(in) | :: | dz1 | |||
real, | intent(in) | :: | dz2 | |||
integer, | intent(in) | :: | ztot |
2.) Linear vertical interpolation on logarithmic scale
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | field(0:nxmaxn-1,0:nymaxn-1,ztot,numwfmem,numbnests) | |||
real, | intent(inout) | :: | output(2) | |||
integer, | intent(in) | :: | zlevel | |||
real, | intent(in) | :: | dz1 | |||
real, | intent(in) | :: | dz2 | |||
integer, | intent(in) | :: | ztot |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | field(0:nxmax-1,0:nymax-1,ztot,numwfmem) | |||
real, | intent(inout) | :: | sl | |||
real, | intent(inout) | :: | sq | |||
integer, | intent(in) | :: | zlevel | |||
integer, | intent(in) | :: | indexh | |||
integer, | intent(in) | :: | ztot |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | field(0:nxmaxn-1,0:nymaxn-1,ztot,numwfmem,numbnests) | |||
real, | intent(inout) | :: | sl | |||
real, | intent(inout) | :: | sq | |||
integer, | intent(in) | :: | zlevel | |||
integer, | intent(in) | :: | indexh | |||
integer, | intent(in) | :: | ztot |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | sl | |||
real, | intent(in) | :: | sq | |||
real, | intent(in) | :: | divisor | |||
real, | intent(out) | :: | output |
This subroutine interpolates everything that is needed for calculating the* dispersion. * * Author: A. Stohl * * 16 December 1997 * * Revision March 2005 by AST : all output variables in common block cal- * culation of standard deviation done in this * routine rather than subroutine call in order * to save computation time * *
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | itime | |||
real, | intent(in) | :: | xt | |||
real, | intent(in) | :: | yt | |||
real, | intent(in) | :: | zt | |||
real, | intent(in) | :: | zteta | |||
integer, | intent(in) | :: | ithread |
This subroutine interpolates u,v,w, density and density gradients. * * Author: A. Stohl * * 16 December 1997 * Update: 2 March 1999 * * Revision March 2005 by AST : all output variables in common block cal- * culation of standard deviation done in this * routine rather than subroutine call in order * to save computation time * *
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ithread |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | zt | |||
real, | intent(inout) | :: | rhoa | |||
real, | intent(inout) | :: | rhograd | |||
integer, | intent(in) | :: | ithread |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(in) | :: | xt | |||
real, | intent(in) | :: | yt | |||
real, | intent(in) | :: | zt | |||
real, | intent(in) | :: | zteta |
This subroutine interpolates the wind data to current trajectory position.* * Author: A. Stohl * * 16 December 1997 * * Revision March 2005 by AST : all output variables in common block cal- * culation of standard deviation done in this * routine rather than subroutine call in order * to save computation time * *
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | itime | |||
real, | intent(in) | :: | xt | |||
real, | intent(in) | :: | yt | |||
real, | intent(in) | :: | zt | |||
real, | intent(in) | :: | zteta |
This subroutine interpolates the wind data to current trajectory position.* * Author: A. Stohl * * 16 December 1997 * * Revision March 2005 by AST : all output variables in common block * *
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | itime | |||
real, | intent(in) | :: | xt | |||
real, | intent(in) | :: | yt | |||
real, | intent(in) | :: | zt | |||
real, | intent(in) | :: | zteta |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
character(len=2), | intent(in) | :: | fieldname | |||
real, | intent(inout) | :: | output |
|
||
integer, | intent(in) | :: | j |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real, | intent(inout) | :: | tropop | |||
real, | intent(inout) | :: | h |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | itime | |||
integer, | intent(in) | :: | ipart | |||
real, | intent(inout) | :: | output |
Interpolation of meteorological fields on 2-d model layers. * In horizontal direction bilinear interpolation is used. * Temporally a linear interpolation is used. * Seven fields are interpolated at the same time. * * This is a special version of levlininterpol to save CPU time. * * 1 first time * 2 second time * * * Author: A. Stohl * * 30 August 1996 * * * PS, AP 04/2019, 11/2020: * put back temporal interpolation of rain, from v10.01 * and cloud bottom / thickness interpolation * PS, AP 01/2021: * interpolate particle temperature and cloud total water * PS, AP 02/2021: * interpolation of precipitation using two additional fields * which are temporally equidistant between the main fields * *
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | itime | |||
integer, | intent(in) | :: | kz | |||
real, | intent(out) | :: | yint1 | |||
real, | intent(out) | :: | yint2 | |||
real, | intent(out) | :: | yint3 | |||
real, | intent(out) | :: | ytint | |||
real, | intent(out) | :: | yint4 | |||
integer, | intent(out) | :: | intiy1 | |||
integer, | intent(out) | :: | intiy2 | |||
integer, | intent(in) | :: | icmv |