Commit f9ce123b authored by Espen Sollum's avatar Espen Sollum
Browse files

Added new parameter ohnconst for OH fields. Updated SPECIES files

parent 6f3a20a6
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
...@@ -162,7 +162,7 @@ module com_mod ...@@ -162,7 +162,7 @@ module com_mod
real :: ri(5,numclass),rac(5,numclass),rcl(maxspec,5,numclass) real :: ri(5,numclass),rac(5,numclass),rcl(maxspec,5,numclass)
real :: rgs(maxspec,5,numclass),rlu(maxspec,5,numclass) real :: rgs(maxspec,5,numclass),rlu(maxspec,5,numclass)
real :: rm(maxspec),dryvel(maxspec),kao(maxspec) real :: rm(maxspec),dryvel(maxspec),kao(maxspec)
real :: ohcconst(maxspec),ohdconst(maxspec) real :: ohcconst(maxspec),ohdconst(maxspec),ohnconst(maxspec)
! se it is possible to associate a species with a second one to make transfer from gas to aerosol ! se it is possible to associate a species with a second one to make transfer from gas to aerosol
integer :: spec_ass(maxspec) integer :: spec_ass(maxspec)
......
...@@ -33,13 +33,16 @@ FLEXPART-ECMWF = FP_ecmwf_gfortran ...@@ -33,13 +33,16 @@ FLEXPART-ECMWF = FP_ecmwf_gfortran
FLEXPART-GFS = FP_gfs_gfortran FLEXPART-GFS = FP_gfs_gfortran
FLEXPART-GFS-MPI = FP_gfs_MPI FLEXPART-GFS-MPI = FP_gfs_MPI
## Linker
LD = ld.gold
## COMPILERS ## COMPILERS
F90 = /usr/bin/gfortran #F90 = /usr/bin/gfortran
#F90 = ${HOME}/gcc-4.9.1/bin/gfortran F90 = ${HOME}/gcc-4.9.1/bin/gfortran
#MPIF90 = ${HOME}/opt/bin/mpifort #MPIF90 = ${HOME}/opt/bin/mpifort
#MPIF90 = mpif90.mpich #MPIF90 = mpif90.mpich
MPIF90 = mpif90.openmpi #MPIF90 = mpif90.openmpi
#MPIF90 = mpifort MPIF90 = mpifort
## OPTIMIZATION LEVEL ## OPTIMIZATION LEVEL
O_LEV = 2 # [0,1,2,3,g,s,fast] O_LEV = 2 # [0,1,2,3,g,s,fast]
...@@ -50,17 +53,19 @@ LIBS = -lgrib_api_f90 -lgrib_api -lm -ljasper -lnetcdff # -fopenmp # -llapack ...@@ -50,17 +53,19 @@ LIBS = -lgrib_api_f90 -lgrib_api -lm -ljasper -lnetcdff # -fopenmp # -llapack
## 1) System libraries at NILU ## 1) System libraries at NILU
# INCPATH1 = /usr/include # INCPATH1 = /usr/include
INCPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/include # INCPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/include
LIBPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/lib # LIBPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/lib
# LIBPATH2 = /usr/lib/x86_64-linux-gnu # LIBPATH2 = /usr/lib/x86_64-linux-gnu
## 2) Home-made libraries ## 2) Home-made libraries
#INCPATH2 = ${HOME}/include INCPATH1 = ${HOME}/include
INCPATH2 = /homevip/flexpart/include INCPATH2 = /homevip/flexpart/include/
LIBPATH2 = /homevip/flexpart/lib #LIBPATH2 = /homevip/flexpart/lib/
#INCPATH2 = ${HOME}/lib LIBPATH1 = ${HOME}/lib
LIBPATH2 = ${HOME}/lib
FFLAGS = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV) -g -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV) -mtune=native -fuse-linker-plugin $(FUSER) # -march=native
FFLAGS = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV) -g -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV) -mtune=native $(FUSER) # -march=native
DBGFLAGS = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV_DBG) -g3 -ggdb3 -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV_DBG) -fbacktrace -Warray-bounds -Wall -fcheck=all $(FUSER) # -ffpe-trap=invalid,overflow,denormal,underflow,zero -fdump-core DBGFLAGS = -I$(INCPATH1) -I$(INCPATH2) -O$(O_LEV_DBG) -g3 -ggdb3 -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -fmessage-length=0 -flto=jobserver -O$(O_LEV_DBG) -fbacktrace -Warray-bounds -Wall -fcheck=all $(FUSER) # -ffpe-trap=invalid,overflow,denormal,underflow,zero -fdump-core
LDFLAGS = $(FFLAGS) -L$(LIBPATH1) -L$(LIBPATH2) $(LIBS) LDFLAGS = $(FFLAGS) -L$(LIBPATH1) -L$(LIBPATH2) $(LIBS)
......
...@@ -152,7 +152,7 @@ subroutine ohreaction(itime,ltsample,loutnext) ...@@ -152,7 +152,7 @@ subroutine ohreaction(itime,ltsample,loutnext)
do k=1,nspec do k=1,nspec
if (ohcconst(k).gt.0.) then if (ohcconst(k).gt.0.) then
ohrate=ohcconst(k)*temp**2*exp(-ohdconst(k)/temp)*oh_average ohrate=ohcconst(k)*temp**ohnconst(k)*exp(-ohdconst(k)/temp)*oh_average
! new particle mass ! new particle mass
restmass = xmass1(jpart,k)*exp(-1*ohrate*abs(ltsample)) restmass = xmass1(jpart,k)*exp(-1*ohrate*abs(ltsample))
if (restmass .gt. smallnum) then if (restmass .gt. smallnum) then
......
...@@ -46,6 +46,7 @@ subroutine readspecies(id_spec,pos_spec) ...@@ -46,6 +46,7 @@ subroutine readspecies(id_spec,pos_spec)
! wetb_in Parameter for determining in-cloud scavenging * ! wetb_in Parameter for determining in-cloud scavenging *
! ohcconst OH reaction rate constant C * ! ohcconst OH reaction rate constant C *
! ohdconst OH reaction rate constant D * ! ohdconst OH reaction rate constant D *
! ohnconst OH reaction rate constant n *
! id_spec SPECIES number as referenced in RELEASE file * ! id_spec SPECIES number as referenced in RELEASE file *
! id_pos position where SPECIES data shall be stored * ! id_pos position where SPECIES data shall be stored *
! * ! *
...@@ -65,7 +66,7 @@ subroutine readspecies(id_spec,pos_spec) ...@@ -65,7 +66,7 @@ subroutine readspecies(id_spec,pos_spec)
character(len=16) :: pspecies character(len=16) :: pspecies
real :: pdecay, pweta, pwetb, preldiff, phenry, pf0, pdensity, pdquer real :: pdecay, pweta, pwetb, preldiff, phenry, pf0, pdensity, pdquer
real :: pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pspec_ass, pkao real :: pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, pspec_ass, pkao
real :: pweta_in, pwetb_in, pwetc_in, pwetd_in real :: pweta_in, pwetb_in, pwetc_in, pwetd_in
integer :: readerror integer :: readerror
...@@ -74,7 +75,7 @@ subroutine readspecies(id_spec,pos_spec) ...@@ -74,7 +75,7 @@ subroutine readspecies(id_spec,pos_spec)
pspecies, pdecay, pweta, pwetb, & pspecies, pdecay, pweta, pwetb, &
pweta_in, pwetb_in, pwetc_in, pwetd_in, & pweta_in, pwetb_in, pwetc_in, pwetd_in, &
preldiff, phenry, pf0, pdensity, pdquer, & preldiff, phenry, pf0, pdensity, pdquer, &
pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pspec_ass, pkao pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, pspec_ass, pkao
pspecies=" " pspecies=" "
pdecay=-999.9 pdecay=-999.9
...@@ -93,6 +94,7 @@ subroutine readspecies(id_spec,pos_spec) ...@@ -93,6 +94,7 @@ subroutine readspecies(id_spec,pos_spec)
pdryvel=-9.99 pdryvel=-9.99
pohcconst=-9.99 pohcconst=-9.99
pohdconst=-9.9E-09 pohdconst=-9.9E-09
pohnconst=2.0
pspec_ass=-9 pspec_ass=-9
pkao=-99.99 pkao=-99.99
pweightmolar=-789.0 ! read failure indicator value pweightmolar=-789.0 ! read failure indicator value
...@@ -159,6 +161,8 @@ subroutine readspecies(id_spec,pos_spec) ...@@ -159,6 +161,8 @@ subroutine readspecies(id_spec,pos_spec)
! write(*,*) ohcconst(pos_spec) ! write(*,*) ohcconst(pos_spec)
read(unitspecies,'(f8.2)',end=22) ohdconst(pos_spec) read(unitspecies,'(f8.2)',end=22) ohdconst(pos_spec)
! write(*,*) ohdconst(pos_spec) ! write(*,*) ohdconst(pos_spec)
read(unitspecies,'(f8.2)',end=22) ohnconst(pos_spec)
! write(*,*) ohnconst(pos_spec)
read(unitspecies,'(i18)',end=22) spec_ass(pos_spec) read(unitspecies,'(i18)',end=22) spec_ass(pos_spec)
! write(*,*) spec_ass(pos_spec) ! write(*,*) spec_ass(pos_spec)
read(unitspecies,'(f18.2)',end=22) kao(pos_spec) read(unitspecies,'(f18.2)',end=22) kao(pos_spec)
...@@ -182,6 +186,7 @@ subroutine readspecies(id_spec,pos_spec) ...@@ -182,6 +186,7 @@ subroutine readspecies(id_spec,pos_spec)
pweightmolar=weightmolar(pos_spec) pweightmolar=weightmolar(pos_spec)
pohcconst=ohcconst(pos_spec) pohcconst=ohcconst(pos_spec)
pohdconst=ohdconst(pos_spec) pohdconst=ohdconst(pos_spec)
pohnconst=ohnconst(pos_spec)
pspec_ass=spec_ass(pos_spec) pspec_ass=spec_ass(pos_spec)
pkao=kao(pos_spec) pkao=kao(pos_spec)
...@@ -205,6 +210,7 @@ subroutine readspecies(id_spec,pos_spec) ...@@ -205,6 +210,7 @@ subroutine readspecies(id_spec,pos_spec)
weightmolar(pos_spec)=pweightmolar weightmolar(pos_spec)=pweightmolar
ohcconst(pos_spec)=pohcconst ohcconst(pos_spec)=pohcconst
ohdconst(pos_spec)=pohdconst ohdconst(pos_spec)=pohdconst
ohdconst(pos_spec)=pohnconst
spec_ass(pos_spec)=pspec_ass spec_ass(pos_spec)=pspec_ass
kao(pos_spec)=pkao kao(pos_spec)=pkao
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment