interpol_mod Module



PRIVATE FUNCTIONS *


Interpolation of wind fields




Variables

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)

Interfaces

public interface hor_interpol

  • public subroutine hor_interpol_4d(field, output, zlevel, indexh, ztot)

    Arguments

    Type IntentOptional 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
  • public subroutine hor_interpol_2d(field, output)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: field(0:nxmax-1,0:nymax-1)
    real, intent(inout) :: output

public interface hor_interpol_nest

  • public subroutine hor_interpol_4d_nest(field, output, zlevel, indexh, ztot)

    Arguments

    Type IntentOptional 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
  • public subroutine hor_interpol_2d_nest(field, output)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: field(0:nxmaxn-1,0:nymaxn-1,numbnests)
    real, intent(inout) :: output

public interface find_ngrid

  • public subroutine find_ngrid_dp(xt, yt)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=dp), intent(in) :: xt
    real(kind=dp), intent(in) :: yt
  • public subroutine find_ngrid_sp(xt, yt)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: xt
    real, intent(in) :: yt

Subroutines

public subroutine alloc_interpol()

Arguments

None

public subroutine dealloc_interpol()

Arguments

None

public subroutine init_interpol(itime, xt, yt, zt, zteta)

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: itime
real, intent(in) :: xt
real, intent(in) :: yt
real, intent(in) :: zt
real, intent(in) :: zteta

public subroutine find_grid_indices(xt, yt)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: xt
real, intent(in) :: yt

public subroutine find_grid_distances(xt, yt)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: xt
real, intent(in) :: yt

public subroutine find_time_vars(itime)

Arguments

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

public subroutine find_z_level(zt, zteta)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: zt
real, intent(in) :: zteta

public subroutine find_z_level_meters(zt)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: zt

public subroutine find_z_level_eta(zteta)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: zteta

public subroutine find_z_level_eta_w(zteta)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: zteta

public subroutine find_z_level_eta_uv(zteta)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: zteta

public subroutine find_vert_vars(vertlevels, zpos, zlevel, dz1, dz2, bounds, wlevel)

This subroutine computes the vertical interpolation variables * logarithmically, unless log_interpol=.false. in the par_mod * * Author: L. Bakels *

Read more…

Arguments

Type IntentOptional 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

public subroutine find_vert_vars_lin(vertlevels, zpos, zlevel, dz1, dz2, bounds)

Arguments

Type IntentOptional 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)

public subroutine find_ngrid_dp(xt, yt)

Arguments

Type IntentOptional Attributes Name
real(kind=dp), intent(in) :: xt
real(kind=dp), intent(in) :: yt

public subroutine find_ngrid_sp(xt, yt)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: xt
real, intent(in) :: yt

public subroutine hor_interpol_4d(field, output, zlevel, indexh, ztot)

Arguments

Type IntentOptional 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

public subroutine hor_interpol_2d(field, output)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: field(0:nxmax-1,0:nymax-1)
real, intent(inout) :: output

public subroutine hor_interpol_4d_nest(field, output, zlevel, indexh, ztot)

Arguments

Type IntentOptional 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

public subroutine hor_interpol_2d_nest(field, output)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: field(0:nxmaxn-1,0:nymaxn-1,numbnests)
real, intent(inout) :: output

public subroutine temporal_interpolation(time1, time2, output)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: time1
real, intent(in) :: time2
real, intent(inout) :: output

public subroutine vert_interpol(input1, input2, dz1, dz2, output)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: input1
real, intent(in) :: input2
real, intent(in) :: dz1
real, intent(in) :: dz2
real, intent(inout) :: output

public subroutine bilin_spatial_interpol(field, output, zlevel, dz1, dz2, ztot)

2.) Linear vertical interpolation on logarithmic scale

Read more…

Arguments

Type IntentOptional 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

public subroutine bilin_spatial_interpol_nest(field, output, zlevel, dz1, dz2, ztot)

2.) Linear vertical interpolation on logarithmic scale

Read more…

Arguments

Type IntentOptional 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

public subroutine compute_sl_sq(field, sl, sq, zlevel, indexh, ztot)

Arguments

Type IntentOptional 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

public subroutine compute_sl_sq_nest(field, sl, sq, zlevel, indexh, ztot)

Arguments

Type IntentOptional 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

public subroutine stdev(sl, sq, divisor, output)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: sl
real, intent(in) :: sq
real, intent(in) :: divisor
real, intent(out) :: output

public subroutine interpol_pbl(itime, xt, yt, zt, zteta, ithread)

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 * *

Read more…

Arguments

Type IntentOptional 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

public subroutine interpol_pbl_misslev(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 * *

Read more…

Arguments

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

public subroutine interpol_pbl_short(zt, rhoa, rhograd, ithread)

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: zt
real, intent(inout) :: rhoa
real, intent(inout) :: rhograd
integer, intent(in) :: ithread

public subroutine interpol_mesoscale(xt, yt, zt, zteta)

Read more…

Arguments

Type IntentOptional Attributes Name
real, intent(in) :: xt
real, intent(in) :: yt
real, intent(in) :: zt
real, intent(in) :: zteta

public subroutine interpol_wind(itime, xt, yt, zt, 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 * *

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: itime
real, intent(in) :: xt
real, intent(in) :: yt
real, intent(in) :: zt
real, intent(in) :: zteta

public subroutine interpol_wind_short(itime, xt, yt, zt, 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 * *

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: itime
real, intent(in) :: xt
real, intent(in) :: yt
real, intent(in) :: zt
real, intent(in) :: zteta

public subroutine interpol_partoutput_val(fieldname, output, j)

Arguments

Type IntentOptional Attributes Name
character(len=2), intent(in) :: fieldname
real, intent(inout) :: output Read more…
integer, intent(in) :: j

public subroutine interpol_htropo_hmix(tropop, h)

Arguments

Type IntentOptional Attributes Name
real, intent(inout) :: tropop
real, intent(inout) :: h

public subroutine interpol_density(itime, ipart, output)

Read more…

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: itime
integer, intent(in) :: ipart
real, intent(inout) :: output

public subroutine interpol_rain(itime, kz, yint1, yint2, yint3, ytint, yint4, intiy1, intiy2, icmv)

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 * *

Read more…

Arguments

Type IntentOptional 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