Skip to content

Commit

Permalink
Update to OPS v5.0.1.3
Browse files Browse the repository at this point in the history
  • Loading branch information
RIVM-OPS committed Jan 20, 2022
1 parent 7a1aa73 commit 4d8565a
Show file tree
Hide file tree
Showing 83 changed files with 7,828 additions and 7,802 deletions.
30 changes: 24 additions & 6 deletions README.MD
Original file line number Diff line number Diff line change
@@ -1,9 +1,27 @@
OPS (Operationele Prioritaire Stoffen) is een rekenprogramma om de verspreiding van verontreinigende stoffen in de lucht te simuleren.
Daarnaast berekent het model hoeveel van die stoffen per hectare op bodem of gewas terechtkomt (depositie).
Het model wordt sinds 1989 gebruikt om de relatie tussen de uitstoot van stoffen in Europa enerzijds en de concentratie of depositie van die stoffen anderzijds op de schaal van Nederland te bepalen.
Het OPS-model (Operationele Prioritaire Stoffen model) is een rekenprogramma om
de verspreiding van verontreinigende stoffen in de lucht te simuleren.
Daarnaast berekent het model hoeveel van die stoffen per hectare op bodem of
gewas terechtkomt (depositie). Het model wordt sinds 1989 gebruikt om de
relatie tussen de uitstoot van stoffen in Europa enerzijds, en de concentratie
of depositie van die stoffen anderzijds, in Nederland te bepalen.

Meer informatie en een uitgebreide documentatie van de werking van het model vindt u op www.rivm.nl/ops.
Het OPS model is eigendom van het Rijksinstituut voor Volksgezondheid en Milieu
(RIVM). Het model en bijbehorende documentatie kunnen via
[https://www.rivm.nl/operationele-prioritaire-stoffen-model](https://www.rivm.nl/operationele-prioritaire-stoffen-model)
worden gedownload. Een Windows- of Linux executable van OPS, met
omgevingsdata, is te downloaden via dezelfde website. Voor de Windows omgeving
is tevens een Grafische User Interface beschikbaar. Voor instructies voor het
zelf compileren van de source code kunt u contact opnemen met
[[email protected]](mailto:[email protected]).

Een Windows-executable van OPS + Grafische User Interface om invoerbestanden voor OPS te genereren is te downloaden via dezelfde website.
Met het ter beschikking stellen van het model aan derden geeft het RIVM inzicht
in de gebruikte methodieken en worden uniformiteit en vergelijkbaarheid van
rekenresultaten bevorderd.

Voor instructies voor het zelf compileren van de source code kunt u contact opnemen met [email protected].
Deze repository op GitHub wordt op dit moment enkel gebruikt om de broncode van
het OPS-model publiek beschikbaar te stellen. De ontwikkeling van OPS vindt
(nog) niet op GitHub plaats, voor vragen of opmerkingen over de broncode kunt u
het [bovenstaande emailadres](mailto:[email protected]) gebruiken, of kunt u
[hier](https://github.com/rivm-syso/OPS/issues/new) een issue aanmaken. Geef
daarin een bondige omschrijving van de vraag of het probleem, met eventueel een
mogelijke oplossing.
32 changes: 16 additions & 16 deletions binas.f90
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
!-------------------------------------------------------------------------------------------------------------------------------
!
! This program is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! This program is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with this program. If not, see <http://www.gnu.org/licenses/>.
!
!-------------------------------------------------------------------------------------------------------------------------------
!
! This program is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! This program is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with this program. If not, see <http://www.gnu.org/licenses/>.
!
module Binas

implicit none
Expand All @@ -25,7 +25,7 @@ module Binas
!BOI
!
! !TITLE: Binas - geometrical and physical constants
! !AUTHORS:
! !AUTHORS: Arjo Segers
! !AFFILIATION: KNMI
! !DATE: \today
!
Expand Down
157 changes: 85 additions & 72 deletions m_aps.f90

Large diffs are not rendered by default.

45 changes: 45 additions & 0 deletions m_commonconst_lib.f90
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
!-------------------------------------------------------------------------------------------------------------------------------
!
! This program is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! This program is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with this program. If not, see <http://www.gnu.org/licenses/>.
!
!-------------------------------------------------------------------------------------------------------------------------------
! DESCRIPTION : Defines common parameters, values, etc. stripped version for library
!-------------------------------------------------------------------------------------------------------------------------------
MODULE m_commonconst_lib

USE Binas, only: pi

! CONSTANTS (dimensions of meteo input)
INTEGER*4, PARAMETER :: NSEK = 12 ! number of wind sectors
INTEGER*4, PARAMETER :: NSTAB = 6 ! number of stability classes
INTEGER*4, PARAMETER :: NTRAJ = 4 ! number of distance classes
INTEGER*4, PARAMETER :: NCOMP = 27 ! number of components in meteo input (from METPRO)
INTEGER*4, PARAMETER :: NMETREG = 6 ! number of meteo regions

! CONSTANTS (dimensions of distributions, building effect table)
INTEGER*4, PARAMETER :: MAXDISTR = 9999 ! maximal number of distributions (for particle size or emission variation)
INTEGER*4, PARAMETER :: ncolBuildingEffectTable = 5 ! 1st column corresponds to distance from building. 2-5 correspond to different building types
!
! CONSTANTS - miscellaneous
REAL*4, PARAMETER :: zmet_T = 1.5 ! reference height for temperature measurements [m]
REAL*4, PARAMETER :: zmet_u = 10.0 ! reference height for wind speed measurements [m]
INTEGER*4, PARAMETER :: MISVALNUM = -9999 ! missing value
REAL*4 :: r4_for_tiny ! help variable to define EPS_DELTA
REAL*8 :: r8_for_tiny ! help variable to define DEPS_DELTA
REAL*4, PARAMETER :: EPS_DELTA = tiny(r4_for_tiny) ! tiny number (real)
REAL*8, PARAMETER :: DPEPS_DELTA = tiny(r8_for_tiny) ! tiny number (double precision)
REAL*4, PARAMETER :: HUMAX = 500. ! maximal plume height [m]
integer, parameter :: nlu = 9 ! number of landuse types, used in DEPAC

END MODULE m_commonconst_lib
100 changes: 42 additions & 58 deletions m_commonconst.f90 → m_commonconst_lt.f90
Original file line number Diff line number Diff line change
@@ -1,53 +1,45 @@
!-------------------------------------------------------------------------------------------------------------------------------
!
! This program is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! This program is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with this program. If not, see <http://www.gnu.org/licenses/>.
!
!-------------------------------------------------------------------------------------------------------------------------------
! Copyright by
! National Institute of Public Health and Environment
! Laboratory for Air Research (RIVM/LLO)
! The Netherlands
! No part of this software may be used, copied or distributed without permission of RIVM/LLO (2002)
!
! MODULE : m_commonconst
! FILENAME : %M%
! SCCS(SOURCE) : %P%
! RELEASE - LEVEL : %R% - %L%
! BRANCH - SEQUENCE : %B% - %S%
! DATE - TIME : %E% - %U%
! WHAT : %W%:%E%
! AUTHOR : OPS-support
! FIRM/INSTITUTE : RIVM/LLO
! LANGUAGE : FORTRAN-F90
! This program is free software: you can redistribute it and/or modify
! it under the terms of the GNU General Public License as published by
! the Free Software Foundation, either version 3 of the License, or
! (at your option) any later version.
!
! This program is distributed in the hope that it will be useful,
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! along with this program. If not, see <http://www.gnu.org/licenses/>.
!

!-------------------------------------------------------------------------------------------------------------------------------
! DESCRIPTION : Defines common parameters, values, etc.
! EXIT CODES :
! FILES AND OTHER :
! I/O DEVICES
! SYSTEM DEPENDENCIES: HP Fortran
! CALLED FUNCTIONS :
! UPDATE HISTORY :
!-------------------------------------------------------------------------------------------------------------------------------
MODULE m_commonconst
MODULE m_commonconst_lt

use m_commonconst_lib
! m_commonconst_lib contains the following variables (see m_commonconst_lib.f90 for actual settings)
! INTEGER*4, PARAMETER :: NSEK = 12 ! number of wind sectors
! INTEGER*4, PARAMETER :: NSTAB = 6 ! number of stability classes
! INTEGER*4, PARAMETER :: NTRAJ = 4 ! number of distance classes
! INTEGER*4, PARAMETER :: NCOMP = 27 ! number of components in meteo input (from METPRO)
! INTEGER*4, PARAMETER :: NMETREG = 6 ! number of meteo regions
! INTEGER*4, PARAMETER :: MAXDISTR = 9999 ! maximal number of distributions (for particle size or emission variation)
! INTEGER*4, PARAMETER :: ncolBuildingEffectTable = 5 ! 1st column = distance from building. 2-5 = different building types
! REAL*4, PARAMETER :: zmet_T = 1.5 ! reference height for temperature measurements [m]
! INTEGER*4, PARAMETER :: MISVALNUM = -9999 ! missing value
! REAL*4 :: r4_for_tiny ! help variable to define EPS_DELTA
! REAL*8 :: r8_for_tiny ! help variable to define DEPS_DELTA
! REAL*4, PARAMETER :: EPS_DELTA = tiny(r4_for_tiny) ! tiny number (real)
! REAL*8, PARAMETER :: DPEPS_DELTA = tiny(r8_for_tiny) ! tiny number (double precision)
! REAL*4, PARAMETER :: HUMAX = 500. ! maximal plume height [m]
! END m_commonconst_lib

USE Binas, only: pi
use Binas, only: pi

INTEGER*4, PARAMETER :: NUNIT = 6 ! number of units for deposition
INTEGER*4, PARAMETER :: NMETREG = 6 ! number of meteo regions
INTEGER*4, PARAMETER :: NSEK = 12 ! number of wind sectors
INTEGER*4, PARAMETER :: NSTAB = 6 ! number of stability classes
INTEGER*4, PARAMETER :: NTRAJ = 4 ! number of distance classes
INTEGER*4, PARAMETER :: NCOMP = 27 ! number of components in meteo input (from METPRO)
INTEGER*4, PARAMETER :: NHRBLOCKS = 12 ! number of two-hour blocks in a day
INTEGER*4, PARAMETER :: NPARTCLASS = 6 ! number of particle size classes
INTEGER*4, PARAMETER :: NMONTH = 12 ! number of months in a year
Expand All @@ -58,29 +50,21 @@ MODULE m_commonconst
INTEGER*4, PARAMETER :: NLANDMAX = 50 ! maximal number of emission countries (land << country)
INTEGER*4, PARAMETER :: NBGMAPS = 5 ! number of background maps
INTEGER*4, PARAMETER :: NYEARS = 43 ! number of years for interpolating backgground maps
INTEGER*4, PARAMETER :: MAXDISTR = 9999 ! maximal number of distributions (for particle size or emission variation)
INTEGER*4, PARAMETER :: MAXROW = 9999 ! maximal number of rows in receptor grid
INTEGER*4, PARAMETER :: MAXCOL = 9999 ! maximal number of columns in receptor grid
INTEGER*4, PARAMETER :: NLU = 9 ! number of landuse classes
INTEGER*4, PARAMETER :: ncolBuildingEffectTable = 5 ! 1st column corresponds to distance from building. 2-5 correspond to different building types
INTEGER*4, PARAMETER :: DISTMIN = 5000 ! mimimum distance in meters for which a result will be calculated (if mindist=.true.)
INTEGER*4, PARAMETER :: DISTMAX = 25000 ! maximum distance in meters for which a result will be calculated (if maxdist=.true.)

! CONSTANTS - overige
REAL*4 :: z0_FACT_NL = 10000. ! default factor for conversion of z0_nl gridvalue to meters
REAL*4 :: z0_FACT_EUR = 10000. ! default factor for conversion of z0_eur gridvalue to meters

REAL*4, PARAMETER :: zmet_T = 1.5 ! reference height for temperature measurements [m]

INTEGER*4, PARAMETER :: IGEO = 0 ! 1 -> Geographical coordinates lon-lat [degrees]; 0 -> RDM coordinates [m]
INTEGER*4, PARAMETER :: MISVALNUM = -9999 ! missing value
INTEGER*4, PARAMETER :: FIRSTYEAR = 1977 ! first year, used for interpolating background maps
INTEGER*4, PARAMETER :: FUTUREYEAR = 2021 ! future year, used for interpolating background maps
REAL*4 :: r4_for_tiny ! help variable to define EPS_DELTA
REAL*8 :: r8_for_tiny ! help variable to define DEPS_DELTA
REAL*4, PARAMETER :: EPS_DELTA = tiny(r4_for_tiny) ! tiny number (real)
REAL*8, PARAMETER :: DPEPS_DELTA = tiny(r8_for_tiny) ! tiny number (double precision)
REAL*4, PARAMETER :: HUMAX = 500. ! maximal plume height [m]
CHARACTER*8, PARAMETER :: MODVERSIE = '5.0.1.0' ! model version OPS-LT
CHARACTER*20, PARAMETER :: RELEASEDATE = '09 dec 2020' ! release date
CHARACTER*8, PARAMETER :: MODVERSIE = '5.0.1.3' ! model version OPS-LT
CHARACTER*20, PARAMETER :: RELEASEDATE = '11 nov 2021' ! release date

!
! CONSTANTS - Data
Expand Down Expand Up @@ -162,11 +146,11 @@ MODULE m_commonconst
! CNAME(:,5): primary substance name used in DEPAC
DATA CNAME /'SO2', 'NOx' , 'NH3', &
& 'SO4', 'NO3+HNO3', 'NH4', &
& ' ', 'NO3' , ' ', &
& ' ', 'NO3' , ' ', & ! not used anymore -> CNAME_SUBSEC
& 'SOx', 'NOy' , 'NHx', &
& 'SO2', 'NO2' , 'NH3' /

! CNAME_SEC is defined in ops_read_ctr
! CNAME_SUBSEC is defined in ops_read_ctr
! DATA CNAME_SUBSEC /'HNO3', 'NO3_C', 'NO3_F' / ! HNO3, NO3_coarse (in PM10-PM2.5), NO3_fine (in PM2.5)
! DATA CNAME_SUBSEC /'HNO3', 'NO3_AER' / ! HNO3, NO3_aerosol (in PM10)

Expand All @@ -184,4 +168,4 @@ MODULE m_commonconst
& 'S-Limburg, E-Brabant, Achterhoek ', &
& 'Special_climatological_datafile '/ ! always the last one

END MODULE m_commonconst
END MODULE m_commonconst_lt
Loading

0 comments on commit 4d8565a

Please sign in to comment.