From 6c87ebda0d252540dd8f08f691b7a766182e1f09 Mon Sep 17 00:00:00 2001 From: lucieb92 <lucie.bakels@univie.ac.at> Date: Thu, 23 May 2024 12:04:55 +0200 Subject: [PATCH] Updated documentation, including example option files Former-commit-id: 9cd1d5752d0ebe679be03605ed38fd25521aaba6 --- documentation/docs/building.md | 10 +++--- documentation/docs/configuration.md | 51 ++++++++++++++++------------ documentation/docs/examples.md | 29 ++++++++++++++++ examples/Aerosol/AGECLASSES | 17 ++++++++++ examples/Aerosol/COMMAND | 38 +++++++++++++++++++++ examples/Aerosol/OUTGRID | 22 ++++++++++++ examples/Aerosol/RELEASES | 35 +++++++++++++++++++ examples/Aerosol/SPECIES/SPECIES_040 | 27 +++++++++++++++ examples/Nuclear/AGECLASSES | 17 ++++++++++ examples/Nuclear/COMMAND | 39 +++++++++++++++++++++ examples/Nuclear/OUTGRID | 12 +++++++ examples/Nuclear/OUTGRID_NEST | 8 +++++ examples/Nuclear/RELEASES | 35 +++++++++++++++++++ examples/Nuclear/SPECIES/SPECIES_021 | 21 ++++++++++++ examples/Tracer/AGECLASSES | 17 ++++++++++ examples/Tracer/COMMAND | 37 ++++++++++++++++++++ examples/Tracer/OUTGRID | 22 ++++++++++++ examples/Tracer/PARTOPTIONS | 38 +++++++++++++++++++++ examples/Tracer/RELEASES | 30 ++++++++++++++++ examples/Tracer/SPECIES/SPECIES_024 | 21 ++++++++++++ 20 files changed, 500 insertions(+), 26 deletions(-) create mode 100644 examples/Aerosol/AGECLASSES create mode 100644 examples/Aerosol/COMMAND create mode 100644 examples/Aerosol/OUTGRID create mode 100644 examples/Aerosol/RELEASES create mode 100644 examples/Aerosol/SPECIES/SPECIES_040 create mode 100644 examples/Nuclear/AGECLASSES create mode 100644 examples/Nuclear/COMMAND create mode 100644 examples/Nuclear/OUTGRID create mode 100644 examples/Nuclear/OUTGRID_NEST create mode 100644 examples/Nuclear/RELEASES create mode 100644 examples/Nuclear/SPECIES/SPECIES_021 create mode 100644 examples/Tracer/AGECLASSES create mode 100644 examples/Tracer/COMMAND create mode 100644 examples/Tracer/OUTGRID create mode 100644 examples/Tracer/PARTOPTIONS create mode 100644 examples/Tracer/RELEASES create mode 100644 examples/Tracer/SPECIES/SPECIES_024 diff --git a/documentation/docs/building.md b/documentation/docs/building.md index a52d84d3..0eccace5 100644 --- a/documentation/docs/building.md +++ b/documentation/docs/building.md @@ -37,10 +37,12 @@ These libraries are usually available as packages in most Linux distributions an ## Parameters Before compiling FLEXPART, you might want to change parameters defined in par_mod.f90 -- `wind_coord_type`: for ECMWF meteorological data, you can set this to ETA to use the native eta coordinate system. Otherwise, set this to METER. -- `mesoscale_turbulence`: by default the mesocale turbulence is switched off, but can be switched on setting this variable to .true. -- `max_partoutput_filesize`: maximum output of each partoutput NetCDF-4 file in Mb before a new one is created. -- `max_numthreads_grid`: when using many openmp threads and gridded output (IOUT>0 in COMMAND option file), this variable sets a maximum on how many threads are used for doing the reductions on the grid. A high number can result in a significant increase in RAM usage. +- `dp`, `sp`, `dep_prec`: Setting the precision of the simulation. +- `lusekerneloutput`: Switch for using a kernel for calculating concentrations/deposition. Default: **True**. +- `lparticlecountoutput`: Switch to set output units to number of particles per grid cell. Default: **False**. +- `numpf`: Number of precipitation fields read by the executable. This should correspond with the number of precipitation fields present in the meteorological data. Default: **1**. +- `lpartoutputperfield`: When using particle output (IPOUT=1), this switch sets if all selected fields are written to one netcdf file or a separate one for each field. +- Many parameters that govern the different parameter schemes within FLEXPART. ## <a name="compiling"></a>Compiling FLEXPART _FLEXPART_ is compiled with [make](https://www.gnu.org/software/make/), which uses the makefile in the `src` subdirectory. Starting from the root directory, you can then compile _FLEXPART_ with the following steps: diff --git a/documentation/docs/configuration.md b/documentation/docs/configuration.md index f9119e09..65c65f4f 100644 --- a/documentation/docs/configuration.md +++ b/documentation/docs/configuration.md @@ -208,15 +208,17 @@ The file should contain two namelist: 1) &NAGE - | Variable name | Description | Data type | - | ------------- | ------------ | --------- | - |NAGECLASS | Number of ageclasses for the age spectra calculation | integer | +| Variable name | Description | Data type | +| ------------- | ------------ | --------- | +|NAGECLASS | Number of ageclasses for the age spectra calculation | integer | + +<br/> 2) &AGECLASS - | Variable name | Description | Data type | - | ------------- | ------------ | --------- | - |LAGE | Maximum age of particles in seconds for each ageclass | integer(s divided by comma's) | +| Variable name | Description | Data type | +| ------------- | ------------ | --------- | +|LAGE | Maximum age of particles in seconds for each ageclass | integer(s divided by comma's) | <br/> @@ -226,25 +228,27 @@ The file should contain two namelist: 1) &INITCONC_CTRL - | Variable name | Description | Data type | - | ------------- | ------------ | --------- | - |NINIT | Number of species for which initial concentration is specified | integer | - |SPECNUM_REL | List of species of length NSPEC set in [RELEASES](configuration.md#releases) | integer | +| Variable name | Description | Data type | +| ------------- | ------------ | --------- | +|NINIT | Number of species for which initial concentration is specified | integer | +|SPECNUM_REL | List of species of length NSPEC set in [RELEASES](configuration.md#releases) | integer | + +<br/> 2) &INITCONC - | Variable name | Description | Data type | - | ------------- | ------------ | --------- | - |PATH_NAME | Path to initial concentration files | character string | - |FILE_NAME | Name of the receptor point | character string | - |VAR_NAME | Generic name of file (using YYYY[MM][DD]) for dates | character string | - |HYA_NAME | Name of concentration variable in file | character string | - |HYB_NAME | Name of hybrid pressure coord A (use "" if none)| character string | - |PS_NAME | Name of surface pressure variable (use "" if none) | character string | - |Q_NAME | Name of specific humidity variable (use "" if none, then assumes dry air mixing ratio) | character string | - |PRS_NAME | Name of vertical pressure coordinate (use "" if none) | character string | - |ALT_NAME | Name of altitude coordinate (use "" if none) | character string | - |COEFF | Coefficient from input unit to ppbv | real | +| Variable name | Description | Data type | +| ------------- | ------------ | --------- | +|PATH_NAME | Path to initial concentration files | character string | +|FILE_NAME | Name of the receptor point | character string | +|VAR_NAME | Generic name of file (using YYYY[MM][DD]) for dates | character string | +|HYA_NAME | Name of concentration variable in file | character string | +|HYB_NAME | Name of hybrid pressure coord A (use "" if none)| character string | +|PS_NAME | Name of surface pressure variable (use "" if none) | character string | +|Q_NAME | Name of specific humidity variable (use "" if none, then assumes dry air mixing ratio) | character string | +|PRS_NAME | Name of vertical pressure coordinate (use "" if none) | character string | +|ALT_NAME | Name of altitude coordinate (use "" if none) | character string | +|COEFF | Coefficient from input unit to ppbv | real | <br/> @@ -280,6 +284,9 @@ The file should contain two namelist: Each property can also be printed out as an average instead of an instantaneous value. For example, if one makes internal time steps of 600 seconds each, and writes properties to files every hour, the outputted value will be the average of the 6 previous values of the particle of the past hour. Note that this comes with an additional computational cost. +If the particle output is switched on (IPOUT=1), terminated particles are kept in the simulation, but values associated with them are set to`NaN' instead of being overwritten by newly released particles in the NetCDF output. +This comes with no additional computational cost, but it may need more memory than when running without the particle output option switched on. +As some applications might use a large number of short-lived particles during a longer simulation, the behaviour of overwriting terminated particles can be restored by removing \texttt{ipout.eq.0} from the \texttt{get\_newpart\_index} subroutine, located in the \texttt{particle\_mod.f90}. <br/> ### <a name="reagents"></a>REAGENTS diff --git a/documentation/docs/examples.md b/documentation/docs/examples.md index df635b4e..70b3fb0a 100644 --- a/documentation/docs/examples.md +++ b/documentation/docs/examples.md @@ -1 +1,30 @@ # Examples + +Since its inception, FLEXPART has proven to be a valuable tool for studying a wide range of environmental problems both for the research community as well as in operational settings. Some examples where FLEXPART was used in the literature are: + +- Studying the transport of heat and water in the atmosphere: [Baier et al.](https://doi.org/10.1029/2022GL100906),[Peng et al. 2022](https://doi.org/10.1175/JCLI-D-21-0289.1). +- Volcanic and wildfire plumes: [Stohl et al. 2006](https://doi.org/10.1029/2006JD007216), [Stohl et al. 2011](https://doi.org/10.5194/acpd-11-5541-2011), [Moxnes et al. 2014](https://doi.org/10.1002/2013JD021129). +- Transport and fall-out after nuclear accidents or explosions: [Stohl et al. 2012](https://doi.org/10.5194/acp-12-2313-2012), [Arnold et al. 2015](https://doi.org/10.1016/j.jenvrad.2014.02.013). +- Transport of aerosols such as dust: [Zwaaftink et al. 2017](https://doi.org/10.5194/acp-17-10865-2017), [Ryder et al. 2019](https://doi.org/10.5194/acp-19-15353-2019). +- The interpretation of biogenic secondary organic aerosol compound measurements: [Martinsson et al. 2017](https://doi.org/10.5194/acp-17-11025-2017). +- Transport of pollutants into remote regions like the Arctic: [Dada et al. 2022](https://doi.org/10.1038/s41467-022-32872-2), [Zhu et al. 2020](https://doi.org/10.5194/acp-20-1641-2020). +- The interpretation of ice cores: [Eckhardt et al. 2023](https://doi.org/10.1038/s41467-022-35660-0). +- Modelling emission sensitivities of greenhouse gases: [Vojta et al. 2022](https://doi.org/10.5194/gmd-15-8295-2022). + +## Example cases +The range of FLEXPART capabilities comes with a complicated set of option files (see [**option files**](configuration.md#options)), which can be overwhelming to new users. Therefore, we have outlined the settings of three common groups of simulations below, which correspond to the test cases used in the publication of FLEXPART 11. + +Each set of option files can be found in the repository in the 'examples' directory. The `IGBP_int1.dat`, `sfcdata.t`, `sfcdepo.t` files are not present here, but can be found in the 'options' directory in the repository. + +### Case Tracer +This case is useful for studying transport of heat and water through the global atmosphere. It is a domain-filling simulation, with 10 million particles representing a passive air tracer distributed across the globe following air density. Every hour, all particle in- +formation but no gridded output is written to NetCDF files. The example runs for only 5 hours, using 10 minute time-steps, and the turbulence options are set to CTL=10 and IFINE=10. + +### Case Aerosol +This case serves as a template for option files using aerosol particles, i.e. tracing pollutants. Case Aerosol simulations generally take much longer than Case Tracer simulations, on one hand because of the extra computations in the wet and dry deposition and gravitational settling routines and on the other hand because of all particles starting within the ABL, where solving the Langevin equations of the turbulence parameterisation requires very short time steps. + +This is a very general example, where 1 million particles representing spherical aerosols with a diameter of 50 micrometer are initially homogeneously distributed in the bottom 100 meters across the globe. Every hour, gridded properties are printed to NetCDF files on the same horizontal resolution as the input data (0.5° by 0.5° global grid), and four vertical levels. The example runs for only 5 hours, using 15 minute time-steps, and turbulence options CTL=10 and IFINE=4. +MAXTHREADGRID is set to 16, meaning that the gridded computations are using a maximum of 16 threads. The efficiency of this setting should be carefully checked when changing the dimensions of the grid and the number of particles. + +### Case Nuclear +This example includes a nested input and output grid over Europe with 0.25° by 0.25°. Using the RELEASES file, 1 million particles representing xenon-133 are released at a single location, using the CBL option for skewed turbulence in the ABL and CTL=40 and IFINE=5. MAXTHREADGRID is set to 1, meaning that gridded computations are conducted on a single thread. \ No newline at end of file diff --git a/examples/Aerosol/AGECLASSES b/examples/Aerosol/AGECLASSES new file mode 100644 index 00000000..bfcfb245 --- /dev/null +++ b/examples/Aerosol/AGECLASSES @@ -0,0 +1,17 @@ +************************************************ +* * +*Lagrangian particle dispersion model FLEXPART * +* Please select your options * +* * +*This file determines the ageclasses to be used* +* * +*Ages are given in seconds. The first class * +*starts at age zero and goes up to the first * +*age specified. The last age gives the maximum * +*time a particle is carried in the simulation. * +* * +************************************************ +&AGECLASS + NAGECLASS= 1, + LAGE= 1728000, + / diff --git a/examples/Aerosol/COMMAND b/examples/Aerosol/COMMAND new file mode 100644 index 00000000..a23db575 --- /dev/null +++ b/examples/Aerosol/COMMAND @@ -0,0 +1,38 @@ +*************************************************************************************************************** +* * +* Input file for the Lagrangian particle dispersion model FLEXPART * +* Please select your options * +* * +*************************************************************************************************************** +&COMMAND + LDIRECT= 1, ! Simulation direction in time ; 1 (forward) or -1 (backward) + IBDATE= 19950101, ! Start date of the simulation ; YYYYMMDD: YYYY=year, MM=month, DD=day + IBTIME= 000000, ! Start time of the simulation ; HHMISS: HH=hours, MI=min, SS=sec; UTC + IEDATE= 19950101, ! End date of the simulation ; same format as IBDATE + IETIME= 050000, ! End time of the simulation ; same format as IBTIME + LOUTSTEP= 3600, ! Interval of model output; average concentrations calculated every LOUTSTEP (s) !600 or 3600 + LOUTAVER= 3600, ! Interval of output averaging (s) !600 or 3600 + LOUTSAMPLE= 900, ! Interval of output sampling (s), higher stat. accuracy with shorter intervals !300 or 900 + LOUTRESTART= -1, ! Interval of particle splitting (s) + LSYNCTIME= 900, ! All processes are synchronized to this time interval (s) !300 or 900 + CTL= 10.0000000, ! CTL>1, ABL time step = (Lagrangian timescale (TL))/CTL, uses LSYNCTIME if CTL<0 + IFINE= 4, ! Reduction for time step in vertical transport, used only if CTL>1 + IOUT= 9, ! Output type: [1]mass 2]pptv 3]1&2 4]plume 5]1&4, +8 for NetCDF output + IPOUT= 0, ! Particle position output: 0]no 1]every output 2]only at end 3]time averaged + LSUBGRID= 0, ! Increase of ABL heights due to sub-grid scale orographic variations;[0]off 1]on + LCONVECTION= 1, ! Switch for convection parameterization;0]off [1]on + LAGESPECTRA= 0, ! Switch for calculation of age spectra (needs AGECLASSES);[0]off 1]on + IPIN= 0, ! Warm start from particle dump (needs previous partposit_end file); [0]no 1]yes + IOUTPUTFOREACHRELEASE= 1, ! Separate output fields for each location in the RELEASE file; [0]no 1]yes + IFLUX= 0, ! Output of mass fluxes through output grid box boundaries + MDOMAINFILL= 0, ! Switch for domain-filling, if limited-area particles generated at boundary + IND_SOURCE= 1, ! Unit to be used at the source ; [1]mass 2]mass mixing ratio + IND_RECEPTOR= 1, ! Unit to be used at the receptor; [1]mass 2]mass mixing ratio 3]wet depo. 4]dry depo. + MQUASILAG= 0, ! Quasi-Lagrangian mode to track individual numbered particles + NESTED_OUTPUT= 0, ! Output also for a nested domain + LINIT_COND= 0, ! Output sensitivity to initial conditions (bkw mode only) [0]off 1]conc 2]mmr + SURF_ONLY= 0, ! Output only for the lowest model layer, used w/ LINIT_COND=1 or 2 + CBLFLAG= 0, ! Skewed, not Gaussian turbulence in the convective ABL, need large CTL and IFINE + OHFIELDS_PATH= "../../flexin/", ! Default path for OH file + MAXTHREADGRID=16, + / diff --git a/examples/Aerosol/OUTGRID b/examples/Aerosol/OUTGRID new file mode 100644 index 00000000..bcb8f77b --- /dev/null +++ b/examples/Aerosol/OUTGRID @@ -0,0 +1,22 @@ +!******************************************************************************* +! * +! Input file for the Lagrangian particle dispersion model FLEXPART * +! Please specify your output grid * +! * +! OUTLON0 = GEOGRAPHYICAL LONGITUDE OF LOWER LEFT CORNER OF OUTPUT GRID * +! OUTLAT0 = GEOGRAPHYICAL LATITUDE OF LOWER LEFT CORNER OF OUTPUT GRID * +! NUMXGRID = NUMBER OF GRID POINTS IN X DIRECTION (= No. of cells + 1) * +! NUMYGRID = NUMBER OF GRID POINTS IN Y DIRECTION (= No. of cells + 1) * +! DXOUT = GRID DISTANCE IN X DIRECTION * +! DYOUN = GRID DISTANCE IN Y DIRECTION * +! OUTHEIGHTS = HEIGHT OF LEVELS (UPPER BOUNDARY) * +!******************************************************************************* +&OUTGRID + OUTLON0= 0.00, !-179.0 for ERAI; -178 for CERA; 0.0 for ERA5 + OUTLAT0= -90.00, + NUMXGRID= 720, !720 for ERA5; 180 for CERA + NUMYGRID= 360, !360 for ERA5; 90 for CERA + DXOUT= 0.5, + DYOUT= 0.5, + OUTHEIGHTS= 100.0,500.0,1000.0 + / diff --git a/examples/Aerosol/RELEASES b/examples/Aerosol/RELEASES new file mode 100644 index 00000000..80e041c5 --- /dev/null +++ b/examples/Aerosol/RELEASES @@ -0,0 +1,35 @@ +*************************************************************************************************************** +* * +* * +* * +* Input file for the Lagrangian particle dispersion model FLEXPART * +* Please select your options * +* * +* * +* * +*************************************************************************************************************** +&RELEASES_CTRL + NSPEC = 1, ! Total number of species + SPECNUM_REL= 40, ! Species numbers in directory SPECIES + / +&RELEASE ! For each release + IDATE1 = 19950101, ! Release start date, YYYYMMDD: YYYY=year, MM=month, DD=day + ITIME1 = 000000, ! Release start time in UTC HHMISS: HH hours, MI=minutes, SS=seconds + IDATE2 = 19950101, ! Release end date, same as IDATE1I + ITIME2 = 000000, ! Release end time, same as ITIME1 + LON1 = 0.000, ! Left longitude of release box -180 < LON1 <180 + LON2 = 360.00, ! Right longitude of release box, same as LON1 + LAT1 = -90.000, ! Lower latitude of release box, -90 < LAT1 < 90 + LAT2 = 90.000, ! Upper latitude of release box same format as LAT1 + Z1 = 10.000, ! Lower height of release box meters/hPa above reference level + Z2 = 100.000, ! Upper height of release box meters/hPa above reference level + ZKIND = 1, ! Reference level 1=above ground, 2=above sea level, 3 for pressure in hPa + MASS = 1.0, ! Total mass emitted, only relevant for fwd simulations + PARTS = 1000000, ! Total number of particles to be released + COMMENT = "RELEASE 1", ! Comment, written in the outputfile + / + +&& Arctic: LON 17.00 17.5; LAT 78.00 78.5 (R4) +&& Tropical Pacific LON 147.00 147.5; LAT -10.0 -10.5 (R3) +&& Russan North: LON 53.0 53.5; LAT 62.0 62.5 (R2) +&& Italy: LON 10.0 10.5; LAT 45.0 45.5 (R1) diff --git a/examples/Aerosol/SPECIES/SPECIES_040 b/examples/Aerosol/SPECIES/SPECIES_040 new file mode 100644 index 00000000..978908c6 --- /dev/null +++ b/examples/Aerosol/SPECIES/SPECIES_040 @@ -0,0 +1,27 @@ +&SPECIES_PARAMS + PSPECIES="BC", ! Tracer name + PDECAY=-9.9, ! Species half life + PWETA_GAS=-0.9E-9, ! Below-cloud scavenging (gases) - A (weta_gas) + PWETB_GAS=-9.9, ! Below-cloud scavenging (gases) - B (wetb_gas) + PCRAIN_AERO=1.0, ! Below-cloud scavenging (particles) - Crain (crain_aero) + PCSNOW_AERO=1.0, ! Below-cloud scavenging (particles) - Csnow (csnow_aero) + PCCN_AERO=0.9, ! In-cloud scavenging (particles) - CCNeff (ccn_aero) + PIN_AERO=0.1, ! In-cloud scavenging (particles) - INeff (in_aero) + PDENSITY=1000.0, ! Dry deposition (particles) - rho ! default 2000 + PDIA=50.0E-06, ! Dry deposition (particles) - dia + PNDIA=11, ! Dry deposition (particles) - ndia + PDSIGMA=3.3, ! Dry deposition (particles) - dsig !default 3.3 + PDRYVEL=-9.9, ! Alternative: dry deposition velocity + PRELDIFF=-9.9, ! Dry deposition (gases) - D + PHENRY=-0.9E-9, ! Dry deposition (gases) - Henrys const. + PF0=-9, ! Dry deposition (gases) - f0 (reactivity) + PWEIGHTMOLAR=-9.9, ! molweight + PCCONST=-0.9E-9, ! OH Reaction rate - C [cm^3/molecule/sec] + PDCONST=-9.9, ! OH Reaction rate - D [K] + PNCONST=2.0, ! OH Reaction rate - C [cm^3/molecule/sec] + PSHAPE=0, ! 0 for sphere, 1 for other shapes + PLA=940, ! Longest axis in micrometer (Bagheri & Bonadonna 2016) + PIA=9.4, ! Intermediate axis + PSA=9.4, ! Smallest axis + PORIENT=0, ! 0 for horizontal, 1 for random orientation of particles + / diff --git a/examples/Nuclear/AGECLASSES b/examples/Nuclear/AGECLASSES new file mode 100644 index 00000000..bfcfb245 --- /dev/null +++ b/examples/Nuclear/AGECLASSES @@ -0,0 +1,17 @@ +************************************************ +* * +*Lagrangian particle dispersion model FLEXPART * +* Please select your options * +* * +*This file determines the ageclasses to be used* +* * +*Ages are given in seconds. The first class * +*starts at age zero and goes up to the first * +*age specified. The last age gives the maximum * +*time a particle is carried in the simulation. * +* * +************************************************ +&AGECLASS + NAGECLASS= 1, + LAGE= 1728000, + / diff --git a/examples/Nuclear/COMMAND b/examples/Nuclear/COMMAND new file mode 100644 index 00000000..0070458b --- /dev/null +++ b/examples/Nuclear/COMMAND @@ -0,0 +1,39 @@ +*************************************************************************************************************** +* * +* Input file for the Lagrangian particle dispersion model FLEXPART * +* Please select your options * +* * +*************************************************************************************************************** +&COMMAND + LDIRECT= 1, ! Simulation direction in time ; 1 (forward) or -1 (backward) + IBDATE= 20140101, ! Start date of the simulation ; YYYYMMDD: YYYY=year, MM=month, DD=day + IBTIME= 000000, ! Start time of the simulation ; HHMISS: HH=hours, MI=min, SS=sec; UTC + IEDATE= 20140101, ! End date of the simulation ; same format as IBDATE + IETIME= 050000, ! End time of the simulation ; same format as IBTIME + LOUTSTEP= 3600, ! Interval of model output; average concentrations calculated every LOUTSTEP (s) !600 or 3600 + LOUTAVER= 3600, ! Interval of output averaging (s) !600 or 3600 + LOUTSAMPLE= 900, ! Interval of output sampling (s), higher stat. accuracy with shorter intervals !300 or 900 + LOUTRESTART= -1, ! Interval of particle splitting (s) + LSYNCTIME= 900, ! All processes are synchronized to this time interval (s) !300 or 900 + CTL= 40.0000000, ! CTL>1, ABL time step = (Lagrangian timescale (TL))/CTL, uses LSYNCTIME if CTL<0 + IFINE= 5, ! Reduction for time step in vertical transport, used only if CTL>1 + IOUT= 9, ! Output type: [1]mass 2]pptv 3]1&2 4]plume 5]1&4, +8 for NetCDF output + IPOUT= 0, ! Particle position output: 0]no 1]every output 2]only at end 3]time averaged + LSUBGRID= 0, ! Increase of ABL heights due to sub-grid scale orographic variations;[0]off 1]on + LCONVECTION= 1, ! Switch for convection parameterization;0]off [1]on + LAGESPECTRA= 0, ! Switch for calculation of age spectra (needs AGECLASSES);[0]off 1]on + IPIN= 0, ! Warm start from particle dump (needs previous partposit_end file); [0]no 1]yes + IOUTPUTFOREACHRELEASE= 1, ! Separate output fields for each location in the RELEASE file; [0]no 1]yes + IFLUX= 0, ! Output of mass fluxes through output grid box boundaries + MDOMAINFILL= 0, ! Switch for domain-filling, if limited-area particles generated at boundary + IND_SOURCE= 1, ! Unit to be used at the source ; [1]mass 2]mass mixing ratio + IND_RECEPTOR= 1, ! Unit to be used at the receptor; [1]mass 2]mass mixing ratio 3]wet depo. 4]dry depo. + MQUASILAG= 0, ! Quasi-Lagrangian mode to track individual numbered particles + NESTED_OUTPUT= 1, ! Output also for a nested domain + LINIT_COND= 0, ! Output sensitivity to initial conditions (bkw mode only) [0]off 1]conc 2]mmr + SURF_ONLY= 0, ! Output only for the lowest model layer, used w/ LINIT_COND=1 or 2 + CBLFLAG= 1, ! Skewed, not Gaussian turbulence in the convective ABL, need large CTL and IFINE + OHFIELDS_PATH= "../../flexin/", ! Default path for OH file + NXSHIFT=0, + MAXTHREADGRID=16, + / diff --git a/examples/Nuclear/OUTGRID b/examples/Nuclear/OUTGRID new file mode 100644 index 00000000..02886b0e --- /dev/null +++ b/examples/Nuclear/OUTGRID @@ -0,0 +1,12 @@ +&OUTGRID + OUTLON0= -179.500000 , + OUTLAT0= -90.0000000 , + NUMXGRID=360 , + NUMYGRID=180 , + DXOUT= 1.00000000 , + DYOUT= 1.00000000 , + OUTHEIGHTS= 100.000000 , 500.000000 , 1000.00000 , 2000.00000 , 3000.00000 , + 4000.00000 , 5000.00000 , 7000.00000 , 9000.00000 , 11000.0000 , 13000.0000 , + 15000.0000 , 17000.0000 , 20000.0000 , 25000.0000 , 30000.0000 , 40000.0000 , + 50000.0000 , + / diff --git a/examples/Nuclear/OUTGRID_NEST b/examples/Nuclear/OUTGRID_NEST new file mode 100644 index 00000000..c4cd989c --- /dev/null +++ b/examples/Nuclear/OUTGRID_NEST @@ -0,0 +1,8 @@ +&OUTGRIDN + OUTLON0N= -15.0000000 , + OUTLAT0N= 30.0000000 , + NUMXGRIDN=220 , + NUMYGRIDN=168 , + DXOUTN= 0.250000000 , + DYOUTN= 0.250000000 , + / diff --git a/examples/Nuclear/RELEASES b/examples/Nuclear/RELEASES new file mode 100644 index 00000000..82bf44c3 --- /dev/null +++ b/examples/Nuclear/RELEASES @@ -0,0 +1,35 @@ +*************************************************************************************************************** +* * +* * +* * +* Input file for the Lagrangian particle dispersion model FLEXPART * +* Please select your options * +* * +* * +* * +*************************************************************************************************************** +&RELEASES_CTRL + NSPEC = 1, ! Total number of species + SPECNUM_REL= 21, ! Species numbers in directory SPECIES + / +&RELEASE ! For each release + IDATE1 = 20140101, ! Release start date, YYYYMMDD: YYYY=year, MM=month, DD=day + ITIME1 = 000000, ! Release start time in UTC HHMISS: HH hours, MI=minutes, SS=seconds + IDATE2 = 20140101, ! Release end date, same as IDATE1I + ITIME2 = 000000, ! Release end time, same as ITIME1 + LON1 = 6.000, ! Left longitude of release box -180 < LON1 <180 + LON2 = 6.000, ! Right longitude of release box, same as LON1 + LAT1 = 30.000, ! Lower latitude of release box, -90 < LAT1 < 90 + LAT2 = 30.000, ! Upper latitude of release box same format as LAT1 + Z1 = 10.000, ! Lower height of release box meters/hPa above reference level + Z2 = 100.000, ! Upper height of release box meters/hPa above reference level + ZKIND = 1, ! Reference level 1=above ground, 2=above sea level, 3 for pressure in hPa + MASS = 1.0, ! Total mass emitted, only relevant for fwd simulations + PARTS = 1000000, ! Total number of particles to be released + COMMENT = "RELEASE 1", ! Comment, written in the outputfile + / + +&& Arctic: LON 17.00 17.5; LAT 78.00 78.5 (R4) +&& Tropical Pacific LON 147.00 147.5; LAT -10.0 -10.5 (R3) +&& Russan North: LON 53.0 53.5; LAT 62.0 62.5 (R2) +&& Italy: LON 10.0 10.5; LAT 45.0 45.5 (R1) diff --git a/examples/Nuclear/SPECIES/SPECIES_021 b/examples/Nuclear/SPECIES/SPECIES_021 new file mode 100644 index 00000000..a76f6fc8 --- /dev/null +++ b/examples/Nuclear/SPECIES/SPECIES_021 @@ -0,0 +1,21 @@ +&SPECIES_PARAMS + PSPECIES="Xe-133", ! Tracer name + PDECAY=453168.0, ! Species half life + PWETA_GAS=-0.9E-9, ! Below-cloud scavenging (gases) - A (weta_gas) + PWETB_GAS=-9.9, ! Below-cloud scavenging (gases) - B (wetb_gas) + PCRAIN_AERO=-9.9, ! Below-cloud scavenging (particles) - Crain (crain_aero) + PCSNOW_AERO=-9.9, ! Below-cloud scavenging (particles) - Csnow (csnow_aero) + PCCN_AERO=-9.9, ! In-cloud scavenging (particles) - CCNeff (ccn_aero) + PIN_AERO=-9.9, ! In-cloud scavenging (particles) - INeff (in_aero) + PDENSITY=-0.9E+9, ! Dry deposition (particles) - rho + PDIA=0.0, ! Dry deposition (particles) - dquer + PDSIGMA=0.0, ! Dry deposition (particles) - dsig + PDRYVEL=-9.99, ! Alternative: dry deposition velocity + PRELDIFF=-9.9, ! Dry deposition (gases) - D + PHENRY=-0.9E-9, ! Dry deposition (gases) - Henrys const. + PF0=-9, ! Dry deposition (gases) - f0 (reactivity) + PWEIGHTMOLAR=-9.9, ! molweight + PCCONST=-0.9E-9, ! OH Reaction rate - C [cm^3/molecule/sec] + PDCONST=-9.9, ! OH Reaction rate - D [K] + PNCONST=2.0, ! OH Reaction rate - N (no unit) + / diff --git a/examples/Tracer/AGECLASSES b/examples/Tracer/AGECLASSES new file mode 100644 index 00000000..08a41a66 --- /dev/null +++ b/examples/Tracer/AGECLASSES @@ -0,0 +1,17 @@ +************************************************ +* * +*Lagrangian particle dispersion model FLEXPART * +* Please select your options * +* * +*This file determines the ageclasses to be used* +* * +*Ages are given in seconds. The first class * +*starts at age zero and goes up to the first * +*age specified. The last age gives the maximum * +*time a particle is carried in the simulation. * +* * +************************************************ +&AGECLASS + NAGECLASS= 1, + LAGE= 1728000, + / diff --git a/examples/Tracer/COMMAND b/examples/Tracer/COMMAND new file mode 100644 index 00000000..ef8fd009 --- /dev/null +++ b/examples/Tracer/COMMAND @@ -0,0 +1,37 @@ +*************************************************************************************************************** +* * +* Input file for the Lagrangian particle dispersion model FLEXPART * +* Please select your options * +* * +*************************************************************************************************************** +&COMMAND + LDIRECT= 1, ! Simulation direction in time ; 1 (forward) or -1 (backward) + IBDATE= 19950101, ! Start date of the simulation ; YYYYMMDD: YYYY=year, MM=month, DD=day + IBTIME= 000000, ! Start time of the simulation ; HHMISS: HH=hours, MI=min, SS=sec; UTC + IEDATE= 19950101, ! End date of the simulation ; same format as IBDATE + IETIME= 050000, ! End time of the simulation ; same format as IBTIME + LOUTSTEP= 3600, ! Interval of model output; average concentrations calculated every LOUTSTEP (s) + LOUTAVER= 3600, ! Interval of output averaging (s) + LOUTSAMPLE= 600, ! Interval of output sampling (s), higher stat. accuracy with shorter intervals + LOUTRESTART= -1, ! Interval of particle splitting (s) + LSYNCTIME= 600, ! All processes are synchronized to this time interval (s) + CTL= 10.0000000, ! CTL>1, ABL time step = (Lagrangian timescale (TL))/CTL, uses LSYNCTIME if CTL<0 + IFINE= 10, ! Reduction for time step in vertical transport, used only if CTL>1 + IOUT= 0, ! Output type: [1]mass 2]pptv 3]1&2 4]plume 5]1&4, +8 for NetCDF output + IPOUT= 1, ! Particle position output: 0]no 1]every output 2]only at end 3]time averaged + LSUBGRID= 1, ! Increase of ABL heights due to sub-grid scale orographic variations;[0]off 1]on + LCONVECTION= 1, ! Switch for convection parameterization;0]off [1]on + LAGESPECTRA= 0, ! Switch for calculation of age spectra (needs AGECLASSES);[0]off 1]on + IPIN= 0, ! Warm start from particle dump (needs previous partposit_end file); [0]no 1]yes + IOUTPUTFOREACHRELEASE= 0, ! Separate output fields for each location in the RELEASE file; [0]no 1]yes + IFLUX= 0, ! Output of mass fluxes through output grid box boundaries + MDOMAINFILL= 1, ! Switch for domain-filling, if limited-area particles generated at boundary + IND_SOURCE= 1, ! Unit to be used at the source ; [1]mass 2]mass mixing ratio + IND_RECEPTOR= 1, ! Unit to be used at the receptor; [1]mass 2]mass mixing ratio 3]wet depo. 4]dry depo. + MQUASILAG= 0, ! Quasi-Lagrangian mode to track individual numbered particles + NESTED_OUTPUT= 0, ! Output also for a nested domain + LINIT_COND= 0, ! Output sensitivity to initial conditions (bkw mode only) [0]off 1]conc 2]mmr + SURF_ONLY= 0, ! Output only for the lowest model layer, used w/ LINIT_COND=1 or 2 + CBLFLAG= 0, ! Skewed, not Gaussian turbulence in the convective ABL, need large CTL and IFINE + OHFIELDS_PATH= "../../flexin/", ! Default path for OH file + / diff --git a/examples/Tracer/OUTGRID b/examples/Tracer/OUTGRID new file mode 100644 index 00000000..6debcb36 --- /dev/null +++ b/examples/Tracer/OUTGRID @@ -0,0 +1,22 @@ +!******************************************************************************* +! * +! Input file for the Lagrangian particle dispersion model FLEXPART * +! Please specify your output grid * +! * +! OUTLON0 = GEOGRAPHYICAL LONGITUDE OF LOWER LEFT CORNER OF OUTPUT GRID * +! OUTLAT0 = GEOGRAPHYICAL LATITUDE OF LOWER LEFT CORNER OF OUTPUT GRID * +! NUMXGRID = NUMBER OF GRID POINTS IN X DIRECTION (= No. of cells + 1) * +! NUMYGRID = NUMBER OF GRID POINTS IN Y DIRECTION (= No. of cells + 1) * +! DXOUT = GRID DISTANCE IN X DIRECTION * +! DYOUN = GRID DISTANCE IN Y DIRECTION * +! OUTHEIGHTS = HEIGHT OF LEVELS (UPPER BOUNDARY) * +!******************************************************************************* +&OUTGRID + OUTLON0= 0.00, + OUTLAT0= -90.00, + NUMXGRID= 60, + NUMYGRID= 30, + DXOUT= 6.00, + DYOUT= 6.00, + OUTHEIGHTS= 100.0, 500.0, 1000.0 , 50000.0, + / diff --git a/examples/Tracer/PARTOPTIONS b/examples/Tracer/PARTOPTIONS new file mode 100644 index 00000000..04a2bdeb --- /dev/null +++ b/examples/Tracer/PARTOPTIONS @@ -0,0 +1,38 @@ +*************************************************************************************************************** +* * +* Input file for the Lagrangian particle dispersion model FLEXPART * +* Please select which fields you would like to print in the partoutput files * +* * +*************************************************************************************************************** +&PARTOPTIONS + LONGITUDE= .true., ! + LONGITUDE_AVERAGE= .false., ! + LATITUDE= .true., ! + LATITUDE_AVERAGE= .false., ! + HEIGHT= .true., ! + HEIGHT_AVERAGE= .false., ! + PV= .true., ! + PV_AVERAGE= .false., ! + QV= .true., ! + QV_AVERAGE= .false., ! + DENSITY= .true., ! + DENSITY_AVERAGE= .false., ! + TEMPERATURE= .true., ! + TEMPERATURE_AVERAGE= .false., ! + PRESSURE= .false., ! + PRESSURE_AVERAGE= .false., ! + MIXINGHEIGHT= .true., ! + MIXINGHEIGHT_AVERAGE= .false., ! + TROPOPAUSE= .true., ! + TROPOPAUSE_AVERAGE= .false., ! + TOPOGRAPHY= .true., ! + TOPOGRAPHY_AVERAGE= .false., ! + MASS= .true., ! + MASS_AVERAGE= .false., ! + U= .false., ! + U_AVERAGE= .false., ! + V= .false., ! + V_AVERAGE= .false., ! + W= .false., ! + W_AVERAGE= .false., ! + / diff --git a/examples/Tracer/RELEASES b/examples/Tracer/RELEASES new file mode 100644 index 00000000..f9761508 --- /dev/null +++ b/examples/Tracer/RELEASES @@ -0,0 +1,30 @@ +*************************************************************************************************************** +* * +* * +* * +* Input file for the Lagrangian particle dispersion model FLEXPART * +* Please select your options * +* * +* * +* * +*************************************************************************************************************** +&RELEASES_CTRL + NSPEC = 1, ! Total number of species + SPECNUM_REL= 24, ! Species numbers in directory SPECIES + / +&RELEASE ! For each release + IDATE1 = 19950101, ! Release start date, YYYYMMDD: YYYY=year, MM=month, DD=day + ITIME1 = 000000, ! Release start time in UTC HHMISS: HH hours, MI=minutes, SS=seconds + IDATE2 = 19950101, ! Release end date, same as IDATE1 + ITIME2 = 000000, ! Release end time, same as ITIME1 + LON1 = 0.000, ! Left longitude of release box -180 < LON1 <180 + LON2 = 360.000, ! Right longitude of release box, same as LON1 + LAT1 = -90.000, ! Lower latitude of release box, -90 < LAT1 < 90 + LAT2 = 90.000, ! Upper latitude of release box same format as LAT1 + Z1 = 0.000, ! Lower height of release box meters/hPa above reference level + Z2 = 35000.000, ! Upper height of release box meters/hPa above reference level + ZKIND = 1, ! Reference level 1=above ground, 2=above sea level, 3 for pressure in hPa + MASS = 5.09256513E18, ! Total mass emitted, only relevant for fwd simulations + PARTS = 10000000, ! Total number of particles to be released + COMMENT = "RELEASE 1", ! Comment, written in the outputfile + / diff --git a/examples/Tracer/SPECIES/SPECIES_024 b/examples/Tracer/SPECIES/SPECIES_024 new file mode 100644 index 00000000..051755a5 --- /dev/null +++ b/examples/Tracer/SPECIES/SPECIES_024 @@ -0,0 +1,21 @@ +&SPECIES_PARAMS + PSPECIES="AIRTRACER", ! Tracer name + PDECAY=-9.9, ! Species half life + PWETA_GAS=-0.9E-9, ! Below-cloud scavenging (gases) - A (weta_gas) + PWETB_GAS=-9.9, ! Below-cloud scavenging (gases) - B (wetb_gas) + PCRAIN_AERO=-9.9, ! Below-cloud scavenging (particles) - Crain (crain_aero) + PCSNOW_AERO=-9.9, ! Below-cloud scavenging (particles) - Csnow (csnow_aero) + PCCN_AERO=-9.9, ! In-cloud scavenging (particles) - CCNeff (ccn_aero) + PIN_AERO=-9.9, ! In-cloud scavenging (particles) - INeff (in_aero) + PDENSITY=-0.9E+9, ! Dry deposition (particles) - rho + PDIA=0.0, ! Dry deposition (particles) - dquer + PDSIGMA=0.0, ! Dry deposition (particles) - dsig + PDRYVEL=-9.99, ! Alternative: dry deposition velocity + PRELDIFF=-9.9, ! Dry deposition (gases) - D + PHENRY=-0.9E-9, ! Dry deposition (gases) - Henrys const. + PF0=-9, ! Dry deposition (gases) - f0 (reactivity) + PWEIGHTMOLAR=29.0, ! molweight + PCCONST=-0.9E-9, ! OH Reaction rate - C [cm^3/molecule/sec] + PDCONST=-9.9, ! OH Reaction rate - D [K] + PNCONST=2.0, ! OH Reaction rate - N (no unit) + / -- GitLab