Hoe voer ik een berekening uit met RIVM OPS?

Instructies op basis van patches op OPS v5.0.0 ontwikkeld door Gerard Cats.

Voorbereiding

In dit hoofdstuk staan de stappen om de omgeving voor te bereiden op een berekening.

Zorg dat je een omgeving hebt met de gecompileerde OPS versie (stappen voor het compileren van OPS).

Metereologische Data

Voor de verwerking heb je een aantal bestanden nodig met metereologische data, zoals

  • Z0FILE z0_jr_250_lgn7.ops: hierin staat de ruwheid van het Nederlandse terrein beschreven.
  • LUFILE lu_250_lgn7.ops: hierin staat het landgebruik als codegetallen.
  • MTFILE m005114c.*: hierin staat de metereologische input.
  • dvepre.ops: hierin staat de dagelijkse gang van de bronnen (codegetallen).
  • z0eur.ops: hierin staat de terreinruwheid buiten Nederland.

Je kunt de bestanden online gratis aanvragen bij het RIVM als onderdeel van OPS-Pro. OPS-Pro is een Windows-schil rond OPS.

Merk op dat deze bestanden afhankelijk zijn van de endianness van je processor, maar als je met een Intel-compatible processor werkt dan kun je de bestanden van RIVM rechtstreeks gebruiken. Meer informatie over de opslagformaten is te vinden in een GitHub project van Gerard Cats. De bestanden staan bij een standaardinstallatie in de map

C:\Applics\OPS-Pro_2020\Data

De installatie-instructies en de download zijn ook online te vinden te vinden.

Berekening uitvoeren

Voer de volgende stappen uit om je eerste berekening uit te voeren:

  • Maak een map test.
  • Pak het aan dit topic bijgevoegde zip-bestand uit hierin met als resultaat:
  • De bestanden die beginnen qua naam met example betreffen voorbeelden.
  • Open het stuurbestand example3.ctr in een teksteditor.
  • Vervang de verwijzingen naar mappen als weergegeven:
*-----------------------directory layer---------------------------------*
DATADIR        /cygdrive/c/Applics/OPS-Pro_2020/Data/
*-----------------------identification layer----------------------------*
PROJECT        V5
RUNID          example3
YEAR           2030
*-----------------------substance layer---------------------------------*
COMPCODE       3
COMPNAME       NH3 (ammonium) - gas.
MOLWEIGHT      17.0
PHASE          1
LOSS           1
DDSPECTYPE     
DDPARVALUE     
WDSPECTYPE     
WDPARVALUE     
DIFFCOEFF      .240
WASHOUT        0
CONVRATE       EMEP
LDCONVRATE     
*-----------------------emission layer----------------------------------*
EMFILE         /cygdrive/c/PAD/test/example3.brn
USDVEFILE      
USPSDFILE      
EMCORFAC       1.0
TARGETGROUP    0
COUNTRY        0
*-----------------------receptor layer----------------------------------*
RECEPTYPE      2
XCENTER        
YCENTER        
NCOLS          
NROWS          
RESO           
OUTER          
RCPFILE        /cygdrive/c/PAD/test/example3.rcp
*-----------------------meteo & surface char layer----------------------*
ROUGHNESS      0.0
Z0FILE         /cygdrive/c/Applics/OPS-Pro_2020/Data/z0_jr_250_lgn7.ops
LUFILE         /cygdrive/c/Applics/OPS-Pro_2020/Data/lu_250_lgn7.ops
METEOTYPE      0
MTFILE         /cygdrive/c/Applics/OPS-Pro_2020/Meteo/m005114c.*
*-----------------------output layer------------------------------------*
DEPUNIT        3
PLTFILE        /cygdrive/c/PAD/test/example3.tab
PRNFILE        /cygdrive/c/PAD/test/example3.lpt
INCLUDE        0
GUIMADE        1
  • Voer de berekening uit met:
./OPS.exe -v -i MAP/example3.crt

Bestandsextensies

De volgende bestandsextensies worden gebruikt door OPS:

  • ctr: stuurfile met verwerkingsinstructies. Deze geef je mee aan de OPS-executable (input).
  • brn: bronbestand (input).
  • rcp: receptorpunten (input).
  • err: foutmeldingen uit run (output).
  • tab: tabel met concentratie en depositie op de receptorpunten.
  • lpt: diagnostische uitvoer.
  • ind: onbekend, mogelijkerwijs een soort voortgangsverslag

Foutmeldingenbestand

De foutmeldingen gedurende de berekening landen uitsluitend in het err bestand. Bij het veld Io-status staat een nummer. De betekenis van deze nummers staat gedefinieerd in gcc/fortran/libgfortran.h en is:

Id Label
-3 LIBERROR_FIRST
-2 LIBERROR_EOR
-1 LIBERROR_END
0 LIBERROR_OK
5000 LIBERROR_OS
5001 LIBERROR_OPTION_CONFLICT
5002 LIBERROR_BAD_OPTION
5003 LIBERROR_MISSING_OPTION
5004 LIBERROR_ALREADY_OPEN
5005 LIBERROR_BAD_UNIT
5006 LIBERROR_FORMAT
5007 LIBERROR_BAD_ACTION
5008 LIBERROR_ENDFILE
5009 LIBERROR_BAD_US
5010 LIBERROR_READ_VALUE
5011 LIBERROR_READ_OVERFLOW
5012 LIBERROR_INTERNAL
5013 LIBERROR_INTERNAL_UNIT
5014 LIBERROR_ALLOCATION
5015 LIBERROR_DIRECT_EOR
5016 LIBERROR_SHORT_RECORD
5017 LIBERROR_CORRUPT_FILE
5018 LIBERROR_INQUIRE_INTERNAL_UNIT

Resultaten vergelijken

Een manier om de uitvoer van het model te vergelijken is met diff -b FILE1.tab FILE2.tab.