Giter VIP home page Giter VIP logo

emep-ctm's Introduction

Open Source EMEP MSC-W model

Documentation Status DOI

The EMEP models have been instrumental to the development of air quality policies in Europe since the late 1970s, mainly through their support to the strategy work under the Convention on Long-range Transboundary Air Pollution. In the 1990s the EMEP models became also the reference tools for atmospheric dispersion calculations as input to the Integrated Assessment Modelling, which supports the development of air quality polices in the European Union.

The EMEP MSC-W model is designed to calculate air concentrations and deposition fields for major acidifying and eutrophying pollutants, photo-oxidants and particulate matter. The Open Source releases are intended to:

  • facilitate insight in the model assumptions, the parametrisation used, the requirements for input data and the actual model code
  • encourage dialogue and collaboration with the modelling community
  • allow individual model runs and insight on how to run different scenarios

Releases

The latest Open Source EMEP MSC-W model version (5.0) is based on the version used on the EMEP status reporting of the year 2023. The source code, together with a set of input data, an updated user guide and a full year model results for the year 2015, under GPL license v3.

You can download the source code and input data by following the instructions on the OpenSource v5.0 (202310) release page.

Information on use of the model can be found in the EMEP MSC-W model User Guide

Previous releases (YYYYMM - date of release)

Model domain and resolution

The EMEP MSC-W model is very flexible with regard to the horizontal resolution and vertical resolutions. In 2008 the EMEP domain was extended to include EECCA countries. In 2017 the vertical resolution increased from 20 to 34 model levels. In the latest release, the provided gridded input and output data are provided on 2 different model domains and resolutions:

  • EECCA domain with a horizontal resolution of 50x50 km2 (at 60°N), on polar stereographic projection, and 20 vertical levels;
  • EMEP01 domain with a 0.1x0.1 degrees on long-lat projection, and 34 vertical levels.

Input data

The standard input files for the EMEP model are provided in two different formats, netCDF or ASCII. We presently follow as much as possible the netCDF CF conventions for both input and output data. More details about the input files are described in Chapter 2 of the EMEP MSC-W model User Guide.

IMPORTANT: The input data that accompanies each release model should be appropriately acknowledged when used for model runs. If nothing else is specified according to references further in this chapter, please acknowledge EMEP/MSC-W in any use of these data.

Model output

The main output files are in netCDF format and some additional output files are in ASCII format. Details about the output files are described in Chapter 3 of the User Guide.

Documentation

The EMEP MSC-W model is a chemical transport model developed at the Meteorological Synthesizing Centre - West (MSC-W) at the Norwegian Meteorological Institute (met.no). The EMEP model is a limited-area, terrain following hybrid coordinate model designed to calculate air concentration and deposition fields for

  • acidifying and eutrophying compounds (S, N)
  • ground level ozone (O3)
  • particulate matter (PM2.5, PM10).

as well as their long-range transport and fluxes across national boundaries (Transboundary air pollution). A history of the development of the EMEP model can be found at http://www.emep.int/models.

Model Description

The main documentation is still the 2012 ACP paper:

The EMEP MSC-W chemical transport model -- technical description D. Simpson, A. Benedictow, H. Berge, R. Bergstrõm, L. D. Emberson, H. Fagerli, C. R. Flechard, G. D. Hayman, M. Gauss, J. E. Jonson, M. E. Jenkin, A. Nyíri, C. Richter, V. S. Semeena, S. Tsyro, J.-P. Tuovinen, Á. Valdebenito, and P. Wind Atmos. Chem. Phys., 12, 7825-7865, 2012 http://www.atmos-chem-phys.net/12/7825/2012/acp-12-7825-2012.html

... but many changes (some major) have been made since then. These changes are reported each year in the "updates" chapter of EMEP Status reports. The latest update concerns v5.0, and is:

Simpson, D., van Caspel, W., Benedictow, A., Fagerli, H., Jonson, J. E., Tsyro, S., Valdebento, A., and Wind, P.: Updates to the EMEP/MSC-W model, 2022–2023, in: Transboundary particulate matter, photo-oxidants, acidifying and eutrophying components. EMEP Status Report 1/2023, The Norwegian Meteorological Institute, Oslo, Norway, 159–179, 2023. https://emep.int/publ/reports/2023/EMEP_Status_Report_1_2023.pdf

Please, when referring to the EMEP model, use the appropriate updates reference as well as the 2012 paper, e.g. Simpson et al., (2012, 2023, and references therein).

Running the model

How to submit a run is described in detail in Chapter 4 of the EMEP MSC-W model User Guide.

Questions on the EMEP model can be submitted to the issues tracker. Support to the user community will be developed here with your contribution. Please let us know what your needs for information are.

Computer requirements

To compile the EMEP model you need:

  • Fortran 95 compiler
  • NetCDF Library (>4.1.3)
  • MPI Library (>1.0)

It is necessary to compile with double precision reals (8 bytes reals). The program has been used on computers ranging from a Linux laptop to supercomputers (Itanium2 cluster, Intel Xeon cluster, Cray XT4, IBM power5+). It is compatible with all compilers tested so far: Intel, PGI, gfortran, XL fortran. A Makefile is included, the path to netcdf (INCL and LLIB) has to be adapted to your machine, and to the fortran compiler (F90) and flags (F90FLAGS) to the compiler you are using.

The code has been tested with 1 to 1024 CPUs, and scales well (for large grids). If only one CPU is used 1-2 GB memory is required. If more than one, for example 64 CPUs are used, 200 MB of memory per CPU is enough (in the case of a 132 X 159 grid size). For runs on more than 32 CPUs, a fast interconnect is recommended (infiniband for example), for smaller runs, gigabit ethernet is sufficient. It takes ~3.5 hrs on 64*Xeon X5355 (2.66GHz) for a 1-year simulation.

When downloading input data in order to do a "base run" please make sure that there are 35 Gb disc space available, especially due to large meteorology input files. The model can be run for shorter periods, users can download meteorology for only the period they are interested in, plus one day.

Verification

The EMEP MSC-W model is validated and reported to the Cooperative Programme for Monitoring and Evaluation of the Long-range Transmission for Air Pollutants in Europe (EMEP) each year by the EMEP/MSC-W group. The reports can be found under the following links:

Citation

@article{emep-mscw_2012,
  author = {Simpson, D. and Benedictow, A. and Berge, H. and Bergstr\"om, R. and Emberson, L. D. and 
            Fagerli, H. and Flechard, C. R. and Hayman, G. D. and Gauss, M. and Jonson, J. E. and
            Jenkin, M. E. and Ny\'{\i}ri, A. and Richter, C. and Semeena, V. S. and Tsyro, S. and
            Tuovinen, J.-P. and Valdebenito, \'A. and Wind, P.},
  title = {The EMEP MSC-W chemical transport model – technical description},
  journal = {Atmospheric Chemistry and Physics},
  volume = {12},
  year = {2012},
  number = {16},
  pages = {7825--7865},
  doi = {10.5194/acp-12-7825-2012},
  url = {https://www.atmos-chem-phys.net/12/7825/2012/}
}

@misc{emep-ctm_v5.0,
  author       = {EMEP MSC-W},
  title        = {Open Source EMEP/MSC-W model v5.0 (202310)},
  month        = oct,
  year         = 2023,
  doi          = {10.5281/zenodo.8431553},
  url          = {https://doi.org/10.5281/zenodo.8431553}
}

@misc{emep-ctm_rv4.45,
  author       = {EMEP MSC-W},
  title        = {Open Source EMEP/MSC-W model rv4.45 (202203)},
  month        = mar,
  year         = 2022,
  doi          = {10.5281/zenodo.8337953},
  url          = {https://doi.org/10.5281/zenodo.8337953}
}

@misc{emep-ctm_rv4.36,
  author       = {EMEP MSC-W},
  title        = {Open Source EMEP/MSC-W model rv4.36 (202011)},
  month        = nov,
  year         = 2020,
  doi          = {10.5281/zenodo.4230110},
  url          = {https://doi.org/10.5281/zenodo.4230110}
}

@misc{emep-ctm_rv4.34,
  author       = {EMEP MSC-W},
  title        = {Open Source EMEP/MSC-W model rv4.34 (202001)},
  month        = jan,
  year         = 2020,
  doi          = {10.5281/zenodo.3647990},
  url          = {https://doi.org/10.5281/zenodo.3647990}
}

@misc{emep-ctm_rv4.33,
  author       = {EMEP MSC-W},
  title        = {Open Source EMEP/MSC-W model rv4.33 (201906)},
  month        = jun,
  year         = 2019,
  doi          = {10.5281/zenodo.3265912},
  url          = {https://doi.org/10.5281/zenodo.3265912}
}

@misc{emep-ctm_rv4.17,
  author       = {EMEP MSC-W},
  title        = {Open Source EMEP/MSC-W model rv4.17 (201802)},
  month        = feb,
  year         = 2018,
  doi          = {10.5281/zenodo.3355023},
  url          = {https://doi.org/10.5281/zenodo.3355023}
}

@misc{emep-ctm_rv4.15,
  author       = {EMEP MSC-W},
  title        = {Open Source EMEP/MSC-W model rv4.15 (201709)},
  month        = sep,
  year         = 2017,
  doi          = {10.5281/zenodo.3355041},
  url          = {https://doi.org/10.5281/zenodo.3355041}
}

@misc{emep-ctm_rv4.10,
  author       = {EMEP MSC-W},
  title        = {Open Source EMEP/MSC-W model rv4.10 (201609)},
  month        = sep,
  year         = 2016,
  doi          = {10.5281/zenodo.3355083},
  url          = {https://doi.org/10.5281/zenodo.3355083}
}

emep-ctm's People

Contributors

avaldebe avatar gitpeterwind avatar andagit avatar mifads avatar

Stargazers

Joe avatar Thiago Brandenburg avatar Tobias Augspurger avatar  avatar Programminghut avatar Suyash Sharma avatar Edberto Moura Lima avatar  avatar rama avatar  avatar  avatar Rustam Salavatov avatar  avatar Markus avatar Jin Li avatar fabiocarrera avatar  avatar Eirik Gallefoss avatar  avatar Yufang Hao avatar Roy Wichink Kruit avatar liuc avatar  avatar Andreas Lepperød avatar Daniel Heydebreck avatar  avatar  avatar

Watchers

James Cloos avatar  avatar  avatar Andres Sepulveda avatar Erik Askov Mousing avatar  avatar  avatar Daniel Heinesen avatar  avatar  avatar  avatar Rosa G. avatar Roy Wichink Kruit avatar Alexander de Meij avatar  avatar

emep-ctm's Issues

output doc

Hi @avaldebe ( CC @mifads )
Do we have a documentation for outputting the data? (config_Output.nml), I didn't see any in the user guide.
Specifically, is it possible to output a group in 3D? (it didn't work when I tried).

Also I wanted to add some special things in the "outputting syntax" chapter. I have put it in Log.changes 24 May for now.

restructure master branch

Current situation with git subtrees

The master branch is implemented using git subtrees (#2,#3,#10). The directories docs/, source/ and tools/ each track a dedicated branch on this repository. In this way it is possible to keep the documentation, source code and tools up to date on their dedicated branches, while the master branch reflects the last official release.

Unfortunately, the double nature of the docs as a directory on the master in addition to its own branch is a cause of confusion, with our contributors updating the documentation on the wrong location. In hindsight, implementing similar functionality with git submodules would have been simpler to set up and maintain.

Move to git submodules

  • check that the docs/, source/ and tools/ sub directories on master have not diverged from their subtrees
  • update subtrees from master if needed
  • remove directories on master
  • set up sig submodules

catalog.py fail to download some meteo-EMEP01 files (Python 2.7)

Hi,
I'm trying to download meteorological files EMEP01 by using the recommended python command line:
./catalog.py -Y 2015 --meteo --met-domain EMEP01

The code line successes to download the majority of the data set, but it unexpectdly fails with the following errors:
Traceback (most recent call last):
File "./catalog.py", line 518, in
main(parse_arguments()[0])
File "./catalog.py", line 512, in main
x.download(opts.verbose)
File "./catalog.py", line 303, in download
url = urlopen(self.src)
File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
return _opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 410, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 523, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 448, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 404:

I have enough space in the computer, so that, I do not think it is a problem of memory space. I launched the same command line twice, without success. The following files are missing after the python error:
January days: 12 13 16 17 18 23 24 25
February days: 1
March days: 7 8 11 16 18 19 20 21 24 25 26 27
April days: 1 3 7 8 12 15 17 22 26 27 28
May days: 7 16 19 24 29
June days: 1 11 12 14 16 19 22 28
July days: 1 6 13 14 22 25
August days: 1 5 8 10 14 21 22 26
September days: 4 10 26
October days: 3 4 12 13 15 23 28 29
November days: 3 6 7 12 13 17 20 26 27
December days: 2 6 14 20 21

Had you get previuous issues concerning this error? Any idea of what is happening?
Thanks in advance

User guide for rv4_10

Update the new user guide.
Need to define a workflow between:

  • use Sphinx o build a documentation sire/pdf docs
    • Developed to build the Python documentation. Supports other languages, including Fortran.
    • Native support on mkdocs
    • Can be installed via pip or conda.
  • use Markdown to build a documentation site with mkdocs
  • continue working on LaTeX on our local machines
  • use LaTeX online on overleaf.com
  • use Madoko (LaTeX x Markdown) online on madoko.net

point emissions sources and other questions in EMEP

Good night, dear colleagues!
1)I have some questions in config_emep.nml. I have understood how to use grid emission file for example gridSOx. I But as know EMEP MSC-W uses also Point Sources FILE. What is the structure of file ?
2)Also tell me please - minimum time resolution is 1 hour in emep model.What should be the ratio between time resolution and grid resolution? Can I run the model in 1km resolution?
3)I can't understand how can EMEP(or maybe CEIP) calculate from summary country emissions into grid . Can you recommend me technical document?
Thank you for you help!

2016 Release

  • prepare code (on research repo)
    • gfortran -pedantic compile/cleanup (moved to #12)
    • clean up dev comments
    • commit (r3282) & tag (rv4_10)
  • Bundle datasets
    • import source from research repo
    • pack 2014 meteo
    • pack input for benchmark
    • create & pack benchmark output
    • pack extras
    • update user guide (moved to #11)
    • release note
    • update catalog.csv and catalog.py

Chemical group question.

Hi,
in CM_ChemGroup PM10 group is defined as follow:

integer, public, target, save, dimension(26) :: &
  PM10_GROUP = (/ SO4,NO3_F,NO3_C,NH4_F,ASH_F,ASH_C,POM_C_FFUEL,EC_F_WOOD_NEW,EC_F_WOOD_AGE,EC_C_WOOD,EC_F_FFUEL_NEW,EC_F_FFUEL_AGE,EC_C_FFUEL,REMPPM25,REMPPM_C,FFIRE_BC,FFIRE_REMPPM25,OM25_P,SEASALT_F,SEASALT_C,DUST_ROAD_F,DUST_ROAD_C,DUST_WB_F,DUST_WB_C,DUST_SAH_F,DUST_SAH_C /)

whereas in the DDEP_PM10_GROUP and WDEP_PM10_GROUP the ON25_P is missing? probably this is wanted.

thanks
Massimo

ForestFire

Should FINN forestfires be included in the inputs files?
I think it doesn't. Was it a copyright issue?
Anyone remember the background for not making those available? @mifads @avaldebe @andagit

coding style guidelines

We need to write "down the law" on issues such as:

  • end if/end do/&c vs endif/enddo/&c
  • Module naming: should we rename the modules loosing the _ml ending?

Subtree for source code

  • create git-subtree on a separate branch
  • old releases as tags
    • rv3
    • v201106
    • rv4_0
    • rv4_3
    • rv4_4
    • rv4_5
    • rv4_8
  • new code release (moved to #8)

fail to open Logan_P.nc

I am currently trying to run EMEP rv4-15(base run). It failed to open netCDF file “Logan_P.nc”

BC: O3 Mace Head correction for year  2015
 WARNING SET LATFUNC TO CONSTANT 1
 file does not exist: Logan_P.ncNetCDF: HDF error                                                               
 STOP-ALL ERROR: ReadField_CDF : file needed but not found
application called MPI_Abort(MPI_COMM_WORLD, 9) - process 0

And then I tried to open the file with ncview, it showed:

ncview: can't recognize format of input file /home/emep/EMEP_MSC-W_model.rv4.15.OpenSource/input/Logan_P.nc

Any idea to solve this problem? Thanks.

EMEP running on docker

Hello, I'm a master student from MSVE, ODU (https://www.odu.edu/msve), and I'm trying to make a simulation and visualization on air pollutions. That is why I'm learning to run EMEP in docker on windows.
I got my graduate degree in atmospheric science so I think I can understand common parameters and process, but yet I have never operate such software head to toe, So I'm here for asking potentially "silly questions".
If my question is already written in the guide or somewhere else, please point it out and I will have a look at it.

Thank you.

===update===
It is , up to now , running in docker in windows 10, running the modrun.sh.

image

This is the result that I modified the selected line in config_emep.nml.
image

Before that, It keeps giving error

At line 233 of file My_Derived_ml.f90 (unit = 28, file = 'config_emep.nml')
Fortran runtime error: Cannot match namelist object name 'omcoarse'
====

interpolation bug for fine resolutions

When the input data has at least 10 times coarser resolution than the metdata
and both are in lat lon projection, there can be an interpolation bug that give zero.
Shows clearly as vertical lines.
In file NetCDF_ml.f90
Lines 3190, 3198 and 3205, the number 10.0 must be multiplied by a factor Grid_resolution/GRIDWIDTH_M:

    if(fraclastlon(ig)<0.0 .or. fraclastlon(ig)>10.0*max(1.0,Grid_resolution/GRIDWIDTH_M))then

FTP links on README.md

The ftp links on the README.md do not render. Need to find a way around this.
Maybe this will not be an issue after #2, #3 and #6 are dealt with.

Emissions variable does not include shipping emissions

Hi All,
in the new rv4.15 the variable Emiss_mgm2_xxx does not include the emission from shipping.
Perhaps, this was wanted but I found it cleaner, and more useful for checks, if “all” the emissions are included in the Emis_mgm2_xxxx prognostic.

The shipping emissions are properly read in tho.

I think in the Emiss_mgm2_XXXX all emissions should be included (e.g. DMS, soil NOx, shipping, etc.). For non "MSc-W" users the Emis_mgm2_xxxx variable is a useful way to check that new emissions inputs are ok.

Small bugs that cause errors for gortran compiler

Using the gfortran compiler (version 6.2.0) I run into the following (tiny) errors:

  1. Met_ml.f90 line 3117 if(met(ix)%found == .false.) then
    fixed by using .eqv. instead of ==

  2. EmisDef_ml.f90 lines 104-107
    integer, save, dimension(NSECTORS_SNAP,3) ::snap2gnfr= (/1,3,2,4,13,5,6,7,10,11,-1 &
    ,-1,-1,-1,-1,-1,-1,-1,8,-1,12,-1 &
    ,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1 &
    /)
    from the dimensions given I thought this could be
    integer, save, dimension(NSECTORS_SNAP,3) ::snap2gnfr= reshape( (/1,3,2,4,13,5,6,7,10,11,-1 &
    ,-1,-1,-1,-1,-1,-1,-1,8,-1,12,-1 &
    ,-1,-1,-1,-1,-1,-1,-1,9,-1,-1,-1 &
    /), &
    (/NSECTORS_SNAP,3/) )

  3. CellMet_ml.f90
    line 212 if(z0_out_ix) d_2d(z0_out_ix,i,j,IOU_INST) = &
    line 221 if(z0_out_ix) d_2d(z0_out_ix,i,j,IOU_INST) = &
    from the context I'm guessing
    if(z0_out_ix>0)

  4. ColumnSource_ml.f90 lines 172-173
    NAMELIST /ColumnSource_config/&
    NMAX_LOC,NMAX_EMS,flocdef,femsdef,need_topo
    appears outside the definition block of the subroutine, needed to move these two lines before the
    if(.not.foundtopo) [...] end if -block

interpolation of input files in non-standard projections

rv4_17, in the file NetCDF_ml.f90 on line 3734 (edited)
Ndiv=5
should be removed.
This is unlikely to destroy your runs if you do not remove it.
It may affects the level of interpolation of input files if the input file is neither in lonlat nor in polar stereographic projection.
None of the input file we provide is affected.

gfortran -pedantic compile/cleanup

Files changed since rv4_8, sorted by last author:

  • alvarov (r3273,r3279):
    • AOD_PM_ml.f90
    • AOTnPOD_ml.f90
    • Chem_ml.f90
    • Derived_ml.f90
    • EcoSystem_ml.f90
    • ModelConstants_ml.f90
    • MosaicOutputs_ml.f90
    • MPI_Groups_ml.f90
    • My_Derived_ml.f90
    • Nest_ml.f90
    • Output_hourly.f90
    • OwnDataTypes_ml.f90
    • PhyChem_ml.f90
    • PointSource_ml.f90
    • TimeDate_ExtraUtil_ml.f90
    • Unimod.f90
    • Units_ml.f90
    • ZD_3DVar/My_3DVar_ml.f90
    • ZD_OZONE/My_Outputs_ml.f90
    • ZD_Pollen/My_Pollen_ml.f90
  • annac:
    • BoundaryConditions_ml.f90
  • davids (r3271,r3272,r3276):
    • AeroFunctions.f90
    • ChemFunctions_ml.f90
    • Runchem_ml.f90
    • Setup_1dfields_ml.f90
    • SmallUtils_ml.f90
    • SOA_ml.f90
    • TimeDate_ml.f90
  • peterw (r3270):
    • Advection_ml.f90
    • AirEmis_ml.f90
    • Aqueous_n_WetDep_ml.f90
    • Biogenics_ml.f90
    • CheckStop_ml.f90
    • CoDep_ml.f90
    • ColumnSource_ml.f90
    • Convection_ml.f90
    • Country_ml.f90
    • DefPhotolysis_ml.f90
    • DerivedFields_ml.f90
    • DustProd_ml.f90
    • EmisDef_ml.f90
    • EmisGet_ml.f90
    • Emissions_ml.f90
    • FastJ_ml.f90
    • ForestFire_ml.f90
    • global2local.f90
    • GridValues_ml.f90
    • Io_Progs_ml.f90
    • LandPFT_ml.f90
    • Landuse_ml.f90
    • MassBudget_ml.f90
    • MetFields_ml.f90
    • Met_ml.f90
    • NetCDF_ml.f90
    • OutputChem_ml.f90
    • Par_ml.f90
    • ReadField_ml.f90
    • Setup_1d_ml.f90
    • Sites_ml.f90
    • SoilWater_ml.f90
    • Solver.f90
    • StoFlux_ml.f90
    • Timefactors_ml.f90
    • Trajectory_ml.f90
  • svetlanat:
    • SeaSalt_ml.f90

Mixing GNFR with SNAP

Hi,
I am testing an EMEP4UK new emissions setup using the provided GNFRemis_EMEP01_2015.nc for Europe and a SNAP based emissions file for the UK.

I run the rv4.17 with all SNAP and with the GNFR-SNAP mix, the total UK NH3 is the same but the surface concnetrations for NH3 are quite different (much lower for the GNFR-SNAP mix) for the UK only. The only thing could be different is the emissions height which may get mixed up? I am using the layers emissions height rather than the pressure level.

Massimo

How to download inputs without meteorology files

Questions on behalf of my guest....
Many users have sets of meteorology already, and just want the other input files. How do they get for example just the new model code and inputs for running EECCA domain, excluding this files? Thanks.

Further, 2015 is now 'special' with the need for FMI shipping emissions. Is it clear to users wanting to run e.g. 2012 that these files aren't needed?

Subtree for user guide

  • create git-subtree on a separate branch
  • old guides as additional files to old releases
    • rv3
    • v201106
    • rv4_0
    • rv4_3
    • rv4_4
    • rv4_5
    • rv4_8
  • update guide to new code release (moved to #8)

User guide improvements

  • Tables:
    • centrer tables in page
    • wrap long lines in cells
  • References:
    • unnumbered chapter
    • chapter named References, not Bibliography
    • NatBib citations
    • BibTex reference file
  • New content:
    • sites and sondes NetCDF output format
    • output configuration namelist
    • AeroCom benchmarks

catalog.py fail to untar on Python 2.6

[emep4uk@nemesis Common_4.17]$ ./catalog.py -R rv4_17
Queue download:   2.7G rv4_17input
Queue download:  21.1G meteo2015
Queue download: 715.7K rv4_17source
Queue download: 524.7K rv4_17docs
Queue download:   2.3G rv4_17output
Queue download:  26.1G Total
Do you wish to proceed? [Y]/n:Y
Untar    meteo2015        1.8G EMEP_MSC-W_model.rv4.17.OpenSource/meteo2015/EECCA/meteo201507.tar.bz2
Traceback (most recent call last):
  File "./catalog.py", line 517, in <module>
    main(parse_arguments()[0])
  File "./catalog.py", line 512, in main
    x.unpack(opts.verbose, opts.ask)
  File "./catalog.py", line 330, in unpack
    with tarfile.open(self.dst, 'r') as infile:
AttributeError: 'TarFile' object has no attribute '__exit__'

Landuse_ml problems

I seem to have no problem running EMEP in 1, 2 or 3 process (using for instance mpiexec -np 3 Unimod), but when I try to use 4 processes or more, EMEP crashes with the following output:

 InitLanduse: nFluxVegs=            3
 Inputs.Landuse not found
 InitLanduse: Into CDF 
 RdLanduseCDF: Starting           2           1
 MapFile /misc/orsbackup/backup/Photosmog_China/modeling/simulations/EMEP/input/EMEP_MSC-W_model.rv4.15.OpenSource/input/Landuse_PS_5km_LC.nc
 MapFile /misc/orsbackup/backup/Photosmog_China/modeling/simulations/EMEP/input/EMEP_MSC-W_model.rv4.15.OpenSource/input/glc2000mCLM.nc
RdLanduseCDF:LANDUSE: found  1 .../Landuse_PS_5km_LC.nc
RdLanduseCDF:LANDUSE: found  2 .../glc2000mCLM.nc
 LandDefs DONE           33                       0.99989318987354636       -9.9000000000000000E+019
 CDFLAND_CODES:           32  :
CF                  DF                  NF                  BF                  TC                  
MC                  RC                  SNL                 GR                  MS                  
WE                  TU                  DE                  W                   ICE                 
U                   BARE                NDLF_EVGN_TMPT_TREE NDLF_EVGN_BORL_TREE NDLF_DECD_BORL_TREE 
BDLF_EVGN_TROP_TREE BDLF_EVGN_TMPT_TREE BDLF_DECD_TROP_TREE BDLF_DECD_TMPT_TREE BDLF_DECD_BORL_TREE 
BDLF_EVGN_SHRB      BDLF_DECD_TMPT_SHRB BDLF_DECD_BORL_SHRB C3_ARCT_GRSS        C3_NARC_GRSS        
C4_GRSS             CROP                
       RdLanduseCDF: SumFrac Error    0   1  17   1  17      0.0000  75  46   1   1  75  46  15.00  82.75
 lat/lon:       RdLanduseCDF: SumFrac Error    0   1  17   1  17      0.0000  75  46   1   1  75  46  15.00  82.75   15.000000000000000        82.750000000000000     
 STOP-ALL ERROR:       RdLanduseCDF: SumFrac Error    0   1  17   1  17      0.0000  75  46   1   1  75  46  15.00  82.75
application called MPI_Abort(MPI_COMM_WORLD, 9) - process 0

===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   EXIT CODE: 9
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================

Any idea what is causing this?

Additional options

  • ask before dowloading
  • local directory for (uncompressed) files (--outpath)
  • local directory for temporary downloads (--tmppath)
  • clean-up temporary downloads (--cleanup)

Errors with Base run

Hi,

Recently, EMEP model (EMEP_MSC-W rv4.17) was compiled on our cluster. However, when I tried to run the basic Base run, I got the following error:

gcc/4.8.5 is loaded
glib/2.42.1 is loaded
mpich2/hydra/gcc/3.2 is loaded
curl/7.42.1 is loaded
glib/2.42.1 is loaded
hdf5/gcc/1.8.18_mpi is loaded
 Found     4 MPI processes available
 Config_MC:NAMELIST START 
 Config_MC:DataDir set to/home/wrfchem/EMEP/output/input
 Config_MC:Defined DegreeDayFactorsFile as:
 meteo2015/EECCA/.//DegreeDayFactors.nc
 Config_MC:Landcover file           1 Landuse_PS_5km_LC.nc
 Config_MC:Landcover file           2 glc2000xCLMf18.nc
Base
Opensource_Setup_2018
startdate = 2015010100
enddate   = 2015123124
 reading domain sizes from meteo2015/EECCA/meteo20150101.nc
 Defining grid properties from meteo2015/EECCA/meteo20150101.nc
 projection: Stereographic
 dimensions input grid:         132         159          37
 METSTEP set to            3  hours
FULLDOMAIN has sizes   132 X   159
RUNDOMAIN  x coordinates from     1 to   132
RUNDOMAIN  y coordinates from     1 to   159
 Using   4 processors out of   4 available for calculations
 Divided rundomain into   2 X    2 subdomains
 Defining grid parameters from meteo2015/EECCA/meteo20150101.nc
 Grid_resolution   50000.000000000000     
 reading met hybrid levels from meteo2015/EECCA/meteo20150101.nc
 P0 =    101325.00000000000     
 Hybrid vertical coordinates, P at levels boundaries:
   1     7306.63
   2     8772.74
   3    10422.88
   4    12261.37
   5    14290.17
   6    16508.86
   7    18914.66
   8    21502.51
   9    24265.23
  10    27205.92
  11    30321.74
  12    33604.39
  13    37040.72
  14    40613.28
  15    44300.86
  16    48079.07
  17    51920.93
  18    55797.34
  19    59677.74
  20    63530.60
  21    67324.03
  22    71026.27
  23    74606.35
  24    78034.55
  25    81283.03
  26    84326.34
  27    87142.03
  28    89711.18
  29    92018.93
  30    94055.11
  31    95814.77
  32    97298.68
  33    98513.99
  34    99474.72
  35   100202.36
  36   100726.39
  37   101084.87
  38   101325.00
 WARNING: lowest level very shallow;    240.12809100000595      Pa
 STOP-ALL ERROR: Lowest level too thin! Change vertical levels definition in /home/wrfchem/EMEP/output/input/Vertical_levels20.txt
application called MPI_Abort(MPI_COMM_WORLD, 9) - process 0

Can somebody suggest what values need to change in order to complete the simulation?

Regards
Martin

Subtree for tools

MAybe we should keep the tools in a separate branch/git-subtree, as it is done for source and docs

MET_inner and RUNDOMAIN_inner with WRF met files

I'm running EMEP with WRF met files from two nested WRF domains. When running EMEP on the outer domain I tried to use the MET_inner and RUNDOMAIN_inner parameters. These are not documented in the user guide, but from reading the code I got the impression that EMEP would read the met file for the inner domain specified in MET_inner and together with RUNDOMAIN_inner automatically determine which cells it needs to save data from for the inner domain run.

However, this doesn't seem to work for me. I think the problem is that the code reading the relevant info from the inner domain met file is not adapted to read WRF met files. It seems to be looking for attributes and variables not present my WRF met files.

Temporal variations in emissions

I have some questions related to the files controlling temporal variability of emissions.

I realise that there are monthly and daily (as in day of the week) variations in emissions, which are defined in the DailyFac.speciesname and MonthlyFac.speciesname files in the input directory. However, the hourly variation seems less clear to me. I found the file called HOURLY-FACS, but this seems to include both hourly and daily emission variation. So my other question is, which set of daily emission variations are used, those in HOURLY-FACS or those in DailyFac.speciesname?

Problem with Ini-LandDefs

I am trying to do some test runs using rv4.15 in order to try and output the photolysis rates following the recommendation from Jan in the earlier issue I raised here on the GitHub.

However, I am running into a problem when I launch the model. At the moment I suspect that I have done something stupid in the setup of my simulation. The model is complaining that during the initialisation of the land definitions, that the model did not find all of the codes:

STOP-ALL ERROR: Ini-LandDefs: didn't find all codes

I have tried various solutions but I have so far been unsuccessful . Please use my config file and the .out file to try to help diagnose the problem.

job.c7-8.644848.out.txt
config_emep.nml.txt

config_emep.nml Fortran runtime error: End of file

Hi,
I'm trying to recreate the base run of the software. The code appears to compile okay, at least with the default settings. But when I run modrun.sh, I'am getting an error:
At line 728 of file Config_module.f90 (unit = 28, file = 'config_emep.nml')
Fortran runtime error: End of file

the 728 line is: read(IO_NML,NML=ModelConstants_config)

I'm using gfortran compiler. I read that some fortran executables can be sensitive to line endings, demanding the correct line-terminator for the OS, including on the last line of a data file.
However in your code you specifically comment to
"! do not close(IO_NML), other modules will be read namelist on this file"

It must be a very stupid error, but I'm affraid to change a code line which could generate further problems. Could you please advise about it?

Many thanks in advance

How to output Deposition Velocities?

I've found there have cases "VG","Rs","Rns","Gns" in the MosaicOutputs_ml.f90, and the guide seems have a
variable named "VG_NO3_F_Grid".
but how could us output these varibles? what's the format we need to add in the config?
shall we need to change any code?

Understanding model run on a smaller domain

Hi,
I whish to run the model on a smaller domain than the full regional domain. I understood that it can be set by using RUNDOMAIN variable in the Model Constants_config namelist. Although the model run well, I am wondering about the behaviour of the model for this kind of simulation, mainly the setting of boundary conditions.

  1. Actually, I did not find the module GlobalBCs_ml.f90 within the codes' folder that I downloded; besides, I do not realize what are the inputs (datasets) that the model use for setting boundary conditions.
  2. How the model manages bondary conditions for simulation of smaller domains? Has the model any specific interpolation routine for setting boundary conditions?
  3. In case I want to use a nesting run, could a base-run simulation (i.e. the full regional domain) be used as boundary for the smaller domains, it would be advisable?

Many thanks in advance

WRF data with EMEP model

Good afternoon,dear colleagues!
I'm trying to calculate wet deposition of sulfur dioxide by using EMEP MSC-W model with meteo files made by WRF model. I run the rv4.10 and I have several problem

  1. If I try to use final meteofiles from WRF model without changes ( for emample, wrfout_d03_2013-10-02_00:00:00), the program writes me an error massage:
/home/kuza/EMEP_folder/EMEP_MSC-W_model.rv4.10.OpenSource/wrf_2013_2014/d3/wrfout_d03_2013-10-02_00: 
No such file or directory 

 STOP-ALL ERROR: Error in netcdf routine

application called MPI_Abort(MPI_COMM_WORLD, 9) - process 0

[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=9:system msg for write_line failure : Bad file descriptor 

2)Then I change the name of my file from "wrfout_d03_2013-10-02_00:00:00" to "wrfout_d03_2013-10-02.nc". After changing EMEP model runs the simulation, but also it Writes me such messages as

2D precipitations sum of large_scale and convective precipitations
 release profile for 3D precipitations derived from QRAIN
variable does not exist: v10NetCDF: Variable not found
  found v component of 10m wind 

and after several days of simulations :

variable does not exist: sigma_dotNetCDF: Variable not found
variable does not exist: precipitationNetCDF: Variable not found
variable  does not exist: eddy_diffusion_coefficientNetCDF: Variable not found
variable does not exist: relative_humidity_2mNetCDF: Variable not found
variable does not exist: surface_stressNetCDF: Variable not found
Warning: not reading all levels            4           1 SMOIS
Warning: not reading all levels            4           3 SMOIS
variable does not exist: v10NetCDF: Variable not found

Tell me please How should I you correctly use WRF data?
Thank you!

Absolute path to some input data files limited to 100 characters

I keep all my input data on a network server and the absolute paths to the files become quite long due to a deep directory tree. This becomes a problem in some cases where the Fortran code uses strings with a fixed length of 100 characters to represent these paths. I know there may be possible workarounds (such as using symbolic links) but it would be better to eliminate this limitation. Here are the places in the code where I made changes to make it work for me:

In ModelConstants_ml.f90, line 256:
character (len=100), public :: DataPath(20) = 'NOTSET'

In Met_ml.f90, line 144:
character (len = 100), save :: meteoname ! name of the meteofile
and line 277:
character (len = 100), save :: meteoname ! name of the meteofile

I changed the string lengths to 200 characters, but maybe that could also be a limitation for someone else in the future.

How to output photolysis rates?

I am currently running the 4.10 open source version of EMEP. In order to help diagnose the chemical behaviour in the model I would like to look at the photolysis rates in the model. I am specifically interested in JNO2. Ideally I would like to be able to plot the photolysis rates on an hourly basis. I also understand it can be difficult to output variables from the model if no specific diagnostic already exists in the output routines.

So far I just tried to crudely print the JNO2 photolysis rates. I have figured out where the rates are read in from the look up tables and how they get modified to consider clouds in the subroutine DefPhotolysis_ml.f90. I have added a print statement at the end of DefPhotolysis_ml.f90 (see below) and I have been able to analyse the rates that get printed.

          if(MasterProc) write(*,*) "JNO2 KCHEMTOP",rcphot(IDNO2,KCHEMTOP)
          if(MasterProc) write(*,*) "JNO2 KMAX_MID",rcphot(IDNO2,KMAX_MID)

The problem I have is that I have no way of figuring out which time the outputted rates correspond to. It seems that within runchem, that setup_phot gets called many times each hour. I have tried some crude analysis techniques on the outputted JNO2 values I printed to try and separate out the hourly variations by filtering out JNO2 values that repeat, but the results are not satisfying. I can see the dynamic range of JNO2 now, which is helpful, but I was looking for something a little more detailed, and perhaps have the chance to plot the variability of JNO2 for a specific day in the year, e.g., June 21st or December 21st.

Another way of doing this might be to "hack" the lookup tables for the information I need. The problem I have here is that I am not sure how to figure out the indexing within the tables to be able to extract a diurnal profile of JNO2 for a specific day.

Any help you could give to solve this issue I have would be greatly appreciated. Thanks in advance.

Code missing

Dear EMEP Support,

I am new to EMEP model. The EMEP files were downloaded via the catalog.py tool. Then I tried to run the Base run simulation using the provided jobscript named modrun.sh

The links in the jobscript were updated in order to match the path of the input files. However, it was noticed that my download is missing the crucial part of the EMEP code. In fact, in my EMEP directory I can't find the following directory: /code/Unimod

Without the model code I can't run a simulation. Any guidance on how to get the source code for the directory: /code/Unimod

Your guidance is highly appreciated.

Regards
Martin

modrun

EMEP_directory
EMEP_path

Too large integer literal in ChemReates_ml.f90

On line 136 and 137 in ChemRates_ml.f90 there are two large integer literals in the reaction rate expressions:

       rct(67,:) = 97760000*exp(-7261*TINV) 
       rct(68,:) = 1450000000000*exp(-10688*TINV) 

My compiler complained about this so I had to change them to floats. Dave told me that these where generated by GenChem, so maybe that is where this should really be fixed.

Error compiling EMEP_MSC_W with gfortran.

Hi,
I am trying to compile EMEP_MSC_W. I already downloaded the code sources, the complementary data and tools. But some bugs arise when compiling. See detailed description bellow.
I see that you solved a similar issue in june 2018: #38
It seems you solved it in an specific dev version. Could you please indicate me what is the version (github path) that I have to download?
(I'm currently compiling OpenSource rv4.17 (201802))
Many thanks in advance
Best regards

Jessie

  1. Met_ml.f90:3117.5:

if(met(ix)%found == .false.) then
1
Error: Logicals at (1) must be compared with .eqv. instead of ==
make: *** [Met_ml.o] Error 1

NOTE: It disappears when substituting the logical sentences

  1. EmisDef_ml.f90:104.56:

    integer, save, dimension(NSECTORS_SNAP,3) ::snap2gnfr=(/1,3,2,4,13,5,6,7,10,
    1
    Error: Incompatible ranks 2 and 1 in assignment at (1)
    make: *** [EmisDef_ml.o] Error 1

NOTE: It disappears when uncomment line 103 and comment 104
! integer, save, dimension(NSECTORS_SNAP) ::snap2gnfr=(/1,3,2,4,13,5,6,7,10,11,-1/)

  1. CellMet_ml.f90:212.14:

        if(z0_out_ix) d_2d(z0_out_ix,i,j,IOU_INST) = &
           1
    

Error: IF clause at (1) requires a scalar LOGICAL expression
CellMet_ml.f90:221.14:

       if(z0_out_ix) d_2d(z0_out_ix,i,j,IOU_INST) = &
          1

Error: IF clause at (1) requires a scalar LOGICAL expression
make: *** [CellMet_ml.o] Error 1

NOTE: From: https://oss.deltares.nl/web/xbeach/forum/-/message_boards/message/456419
Some compilers (intel) support if statements with integers, some (gfortran) don't. In this case someone was probably using the intel compiler and not aware that using integers as logicals is an intel specific extension. I updated the code in subversion.
line 212: if(z0_out_ix == 1)
line 221: if(z0_out_ix == 1)

  1. CM_ChemRates_ml.f90:137.32:

    rct(68,:) = 1450000000000*exp(-10688*TINV)
                             1
    

Error: Integer too big for its kind at (1). This check can be disabled with the option -fno-range-check
make: *** [CM_ChemRates_ml.o] Error 1

How to output PM25 concentrations

Hi,
I am trying to output all variables related to PM25 variables:
SURF_ug_PM25
SURF_ug_PM25_rh50
SURF_ug_PM25X
SURF_ug_PM25X_rh50
It seems that they have not included by default,
I modified the config_emep.nml by addind the corresponding lines in the OutConcs namelist. The model is running well but I verified the output Base_day.nc and it is not outputing the desired variables.

How to output short lived gas concentrations

I am trying to diagnose the behaviour of the chemistry in EMEP. Specifically I want to create some diagnostics offline that given information on the reaction budgets for some of the important chemical species in the model. In order to do this, I would like to be able to output the concentrations of the different species beyond the default list in the config_emep.nml input file. I have tried a few tests trying to output OH concentrations, and I have gotten as far as testing this in the OutputConcs namelist:

'OH' ,'molec/cm3' ,'2d','AIR_CONCS','SHL' ,'YMDI',

However, when I try this I get the following error message after EMEP crashes:

NetCDF: Name contains illegal characters
ERRMSG: def2d:SURF_molec/cm3_OH
STOP-ALL ERROR: Error in netcdf routine

Please can anyone explain how to output chemical species like OH, and the ones in the list below? Thanks in advance.

In the end, I would like to output the following list of chemical species from the chemical mechanism used by EMEP: NO3, HO2, CH3O2, C2H5O2, CH3COO2, SECC4H9O2, MEKO2, ETHRO2, PRRO2, OXYO2, MALO2, ISRO2, MVKO2, MACRO2, MACO3, ISNIR, ISONO3, OP, and (as previously mentioned) OH.

I should clarify, I am using EMEP version rv4.10.

GridValues_ml.f90

Hello,

is there some progress with "subroutine lb2ij_real" in GridValues_ml.f90 with general projection?

...
case default ! general projection, Use only info from glon_fdom and glat_fdom
!first find closest by testing all gridcells.
call StopAll('lb2ij: conversion broken 27 Oct 2015, Peter')
!glon_fdom is no more defined. Could easily rewrite if necessary
...

Is the formula for xr2 and yr2 correct "subroutine lb2ij_real"? I think gb2 and gl2 need to be swaped.

select case (projection)
  case('Stereographic')
    PId4  =PI/4.
    dr2   =dr*0.5   ! degrees to radians /2
    fi_loc=fi
    an_loc=an
    xp_loc=xp
    yp_loc=yp

    if(present(fi2))fi_loc=fi2
    if(present(an2))an_loc=an2
    if(present(xp2))xp_loc=xp2
    if(present(yp2))yp_loc=yp2

    xr2=xp_loc+an_loc*tan(PId4-gb2*dr2)*sin(dr*(gl2-fi_loc))
    yr2=yp_loc-an_loc*tan(PId4-gb2*dr2)*cos(dr*(gl2-fi_loc))

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.