com_mod Module



Uses


Variables

Type Visibility Attributes Name Initial
integer, public :: num_partopt = 34
integer, public :: n_average
type(particleoptions), public, allocatable :: partopt(:)

Variables defining where FLEXPART input/output files are stored


character(len=1), public :: path(numpath+2*maxnests)*120
integer, public :: length(numpath+2*maxnests)
character(len=256), public :: pathfile
character(len=256), public :: flexversion
character(len=256), public :: flexversion_major
character(len=256), public :: arg1
character(len=256), public :: arg2
character(len=256), public :: ohfields_path
character(len=256), public :: gitversion

Variables defining the general model run specifications


integer, public :: ibdate
integer, public :: ibtime
integer, public :: iedate
integer, public :: ietime
integer, public :: itime_init
integer, public :: loutnext_init
integer, public :: lrecoutnext_init
real, public :: outnum_init
real(kind=dp), public :: bdate
real(kind=dp), public :: edate
integer, public :: ldirect
integer, public :: ideltas
integer, public :: loutstep
integer, public :: loutaver
integer, public :: loutsample
integer, public :: loutrestart
integer, public :: method
integer, public :: lsynctime
integer, public :: lrecoutstep
integer, public :: lrecoutaver
integer, public :: lrecoutsample
real, public :: outstep
real, public :: ctl
real, public :: fine
integer, public :: ifine
integer, public :: iout
integer, public :: ipout
integer, public :: ipin
integer, public :: iflux
integer, public :: mdomainfill
integer, public :: ipoutfac
integer, public :: mquasilag
integer, public :: nested_output
integer, public :: ind_source
integer, public :: ind_receptor
integer, public :: nxshift
integer, public :: ind_rel
integer, public :: ind_samp
integer, public :: ioutputforeachrelease
integer, public :: linit_cond
integer, public :: sfc_only
integer, public :: surf_only
logical, public :: turbswitch
integer, public :: cblflag
logical, public :: llcmoutput
integer, public :: mintime
integer, public :: itsplit
integer, public :: lsubgrid
integer, public :: lconvection
integer, public :: lturbulence
integer, public :: lagespectra
logical, public :: lmesoscale_turb = .false.
integer, public :: lnetcdfout
integer, public :: linversionout
integer, public :: nageclass
integer, public, allocatable, dimension(:) :: lage
logical, public :: lsettling = .true.
logical, public :: gdomainfill
logical, public :: lcw = .false.
logical, public :: lcwsum = .false.
logical, public :: lprecint
logical, public, dimension(maxnests) :: lcw_nest = .false.
logical, public, dimension(maxnests) :: lcwsum_nest = .false.
logical, public, dimension(maxnests) :: lprecintn
integer(kind=selected_int_kind(16)), public, allocatable, dimension(:) :: icnt_belowcld

Variables defining the release locations, released species and their properties, etc.


integer(kind=selected_int_kind(16)), public, allocatable, dimension(:) :: icnt_incld

Variables defining the release locations, released species and their properties, etc.


character(len=1), public :: compoint(1001)*45
integer, public :: numpoint
integer, public, allocatable, dimension(:) :: specnum
real, public, allocatable, dimension(:) :: decay
real, public, allocatable, dimension(:) :: weta_gas
real, public, allocatable, dimension(:) :: wetb_gas
real, public, allocatable, dimension(:) :: crain_aero
real, public, allocatable, dimension(:) :: csnow_aero
real, public, allocatable, dimension(:) :: ccn_aero
real, public, allocatable, dimension(:) :: in_aero
real, public, allocatable, dimension(:) :: reldiff
real, public, allocatable, dimension(:) :: henry
real, public, allocatable, dimension(:) :: f0
real, public, allocatable, dimension(:) :: density
real, public, allocatable, dimension(:) :: dquer
real, public, allocatable, dimension(:) :: dsigma
integer, public, allocatable, dimension(:) :: ndia
real, public, allocatable, dimension(:) :: vsetaver
real, public, allocatable, dimension(:) :: cunningham
real, public, allocatable, dimension(:) :: weightmolar
real, public, allocatable, dimension(:,:) :: vset
real, public, allocatable, dimension(:,:) :: schmi
real, public, allocatable, dimension(:,:) :: fract
real, public, allocatable, dimension(:,:) :: ri
real, public, allocatable, dimension(:,:) :: rac
real, public, allocatable, dimension(:,:,:) :: rcl
real, public, allocatable, dimension(:,:,:) :: rgs
real, public, allocatable, dimension(:,:,:) :: rlu
real, public, allocatable, dimension(:) :: rm
real, public, allocatable, dimension(:) :: dryvel
real, public, allocatable, dimension(:) :: Fn
real, public, allocatable, dimension(:) :: Fs
real, public, allocatable, dimension(:) :: ks1
real, public, allocatable, dimension(:) :: ks2
real, public, allocatable, dimension(:) :: kn2
integer, public, allocatable, dimension(:) :: ishape
integer, public, allocatable, dimension(:) :: orient
character(len=256), public :: reag_path(maxreagent)
character(len=16), public :: reagents(maxreagent)
character(len=16), public :: reag_unit(maxreagent)
integer, public :: reag_hourly(maxreagent)
integer, public :: nreagent
real, public, allocatable, dimension(:,:) :: reaccconst
real, public, allocatable, dimension(:,:) :: reacdconst
real, public, allocatable, dimension(:,:) :: reacnconst
character(len=256), public, allocatable, dimension(:) :: emis_path
character(len=256), public, allocatable, dimension(:) :: emis_file
character(len=256), public, allocatable, dimension(:) :: emis_name
integer, public, allocatable, dimension(:) :: emis_unit
real, public, allocatable, dimension(:) :: emis_coeff
real, public, allocatable, dimension(:,:) :: area_hour
real, public, allocatable, dimension(:,:) :: point_hour
real, public, allocatable, dimension(:,:) :: area_dow
real, public, allocatable, dimension(:,:) :: point_dow
integer, public :: nspec
integer, public :: maxpointspec_act
character(len=10), public, allocatable, dimension(:) :: species

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


integer, public :: memtime(numwfmem)

Variables associated with the ECMWF input data (nested wind fields)



integer, public :: memind(3)

Variables associated with the ECMWF input data (nested wind fields)



integer, public :: lwindinterv

Variables associated with the ECMWF input data (nested wind fields)



integer, public :: numbnests

Variables defining the polar stereographic projection


integer, public :: nxmaxn

Variables defining the polar stereographic projection


integer, public :: nymaxn

Variables defining the polar stereographic projection


logical, public :: xglobal
logical, public :: sglobal
logical, public :: nglobal
real, public :: switchnorthg
real, public :: switchsouthg
real, public :: southpolemap(9)

Landuse inventory Sabine Eckhardt Dec 06: change to new landuse inventary - 11 classes, 1200 x 600 global


real, public :: northpolemap(9)

Landuse inventory Sabine Eckhardt Dec 06: change to new landuse inventary - 11 classes, 1200 x 600 global


integer(kind=1), public :: landinvent(1200,600,6)
real, public :: z0(numclass)

Variables characterizing the output grid and containing the model results


integer, public :: numxgrid
integer, public :: numygrid
integer, public :: numzgrid
real, public :: dxout
real, public :: dyout
real, public :: outlon0
real, public :: outlat0
real, public :: xoutshift
real, public :: youtshift
integer, public :: numxgridn
integer, public :: numygridn
real, public :: dxoutn
real, public :: dyoutn
real, public :: outlon0n
real, public :: outlat0n
real, public :: xoutshiftn
real, public :: youtshiftn
logical, public :: DEP
logical, public :: DRYDEP
logical, public :: WETDEP
logical, public :: CLREA
logical, public :: ASSSPEC
logical, public :: LDECAY
logical, public :: LEMIS
logical, public, allocatable, dimension(:) :: DRYDEPSPEC
logical, public, allocatable, dimension(:) :: WETDEPSPEC
logical, public :: DRYBKDEP

Variables defining receptor points


logical, public :: WETBKDEP

Variables defining receptor points


real, public, allocatable, dimension(:) :: xreceptor
real, public, allocatable, dimension(:) :: yreceptor
real, public, allocatable, dimension(:) :: zreceptor
integer, public, allocatable, dimension(:) :: treceptor
real, public, allocatable, dimension(:) :: receptorarea
real, public, allocatable, dimension(:,:) :: creceptor
real, public, allocatable, dimension(:,:) :: crecuncert
real, public, allocatable, dimension(:) :: xkreceptor
real, public, allocatable, dimension(:) :: nnreceptor
character(len=16), public, allocatable, dimension(:) :: receptorname
integer, public :: cpointer(maxrecsample)
integer, public :: numreceptor
integer, public :: numcurrec
logical, public :: lrecregular
real, public, allocatable, dimension(:) :: xsatellite
real, public, allocatable, dimension(:) :: ysatellite
integer, public, allocatable, dimension(:) :: tsatellite
real, public, allocatable, dimension(:) :: satellitearea
real, public, allocatable, dimension(:,:) :: zsatellite
real, public, allocatable, dimension(:,:,:) :: csatellite
real, public, allocatable, dimension(:,:,:) :: csatuncert
real, public, allocatable, dimension(:,:) :: xksatellite
real, public, allocatable, dimension(:,:) :: nnsatellite
character(len=24), public, allocatable, dimension(:) :: satellitename
integer, public :: numsatreceptor
integer, public :: nlayermax
integer, public :: numsatellite
integer, public :: numcursat
integer, public, allocatable, dimension(:) :: nnsatlayer
integer, public :: csatpointer(maxrecsample)

Variables characterizing each particle


integer, public :: numpart = 0
integer, public :: numparticlecount
integer, public :: maxspec

Variables used for writing out interval averages for partoutput


integer, public, allocatable, dimension(:) :: npart_av
real, public, allocatable, dimension(:) :: part_av_cartx
real, public, allocatable, dimension(:) :: part_av_carty
real, public, allocatable, dimension(:) :: part_av_cartz
real, public, allocatable, dimension(:) :: part_av_z
real, public, allocatable, dimension(:) :: part_av_topo
real, public, allocatable, dimension(:) :: part_av_pv
real, public, allocatable, dimension(:) :: part_av_qv
real, public, allocatable, dimension(:) :: part_av_tt
real, public, allocatable, dimension(:) :: part_av_rho
real, public, allocatable, dimension(:) :: part_av_tro
real, public, allocatable, dimension(:) :: part_av_hmix
real, public, allocatable, dimension(:) :: part_av_uu
real, public, allocatable, dimension(:) :: part_av_vv
real, public, allocatable, dimension(:) :: part_av_energy
real, public, allocatable, dimension(:,:) :: checklifetime

Info table on available chemical species/radionuclides



Random number field


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

Info table on available chemical species/radionuclides



Random number field


real, public :: rannumb(maxrand+2)

variables to control stability of CBL scheme under variation of statistics in time and space


integer, public :: sum_nan_count(3600)
integer, public :: maxtl = 1200
integer, public, allocatable, dimension(:) :: nan_count

variables to test well-mixed state of CBL scheme not to be included in final release


real, public :: well_mixed_vector(50)

Verbosity, testing flags, namelist I/O


real, public :: h_well

Verbosity, testing flags, namelist I/O


real, public :: well_mixed_norm

Verbosity, testing flags, namelist I/O


real, public :: avg_air_dens(50)

Verbosity, testing flags, namelist I/O


real, public :: avg_ol

Verbosity, testing flags, namelist I/O


real, public :: avg_wst

Verbosity, testing flags, namelist I/O


real, public :: avg_h

Verbosity, testing flags, namelist I/O


logical, public :: debug_mode = .false.
integer, public :: verbosity = 0
integer, public :: info_flag = 0
integer, public :: count_clock
integer, public :: count_clock0
integer, public :: count_rate
integer, public :: count_max
real, public :: tins
logical, public, parameter :: nmlout = .true.

These variables are used to avoid having separate versions of files in cases where differences with MPI version are minor (eso)


integer, public :: mpi_mode = 0
logical, public :: lroot = .true.
logical, public, parameter :: interpolhmix = .false.
integer, public :: numthreads
integer, public :: numthreads_grid
integer, public :: maxthreadgrid

Maximum output of each partoutput NetCDF-4 file in Mb before a new one is created


integer, public :: maxfilesize
integer, public :: logvertinterp
logical, public :: log_interpol = .false.

LB 04.05.2021, simple timing of IO and total running time


real, public :: s_readwind = 0
real, public :: s_writepartav = 0
real, public :: s_writepart = 0
real, public :: s_temp = 0
real, public :: s_total = 0
real, public :: s_firstt = 0
real, public, parameter :: eta_convert = 1000000.
real, public, parameter :: zfac = 100.

Derived Types

type, public ::  particleoptions

Components

Type Visibility Attributes Name Initial
character(len=2), public :: name
character(len=28), public :: long_name
character(len=7), public :: short_name
logical, public :: print
logical, public :: average = .false.
integer, public :: i_average = 0
integer, public :: ncid

Subroutines

public subroutine alloc_com()

Arguments

None

public subroutine alloc_com_ndia()

Arguments

None

public subroutine dealloc_com()

Arguments

None

public subroutine mpi_alloc_part(nmpart)

Dynamic allocation of arrays

Read more…

Arguments

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

public subroutine update_gitversion(gitversion_tmp)

Arguments

Type IntentOptional Attributes Name
character(len=256) :: gitversion_tmp