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
real :: ri(5,numclass),rac(5,numclass),rcl(maxspec,5,numclass)
real :: rgs(maxspec,5,numclass),rlu(maxspec,5,numclass)
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
integer :: spec_ass(maxspec)
......
......@@ -33,13 +33,16 @@ FLEXPART-ECMWF = FP_ecmwf_gfortran
FLEXPART-GFS = FP_gfs_gfortran
FLEXPART-GFS-MPI = FP_gfs_MPI
## Linker
LD = ld.gold
## COMPILERS
F90 = /usr/bin/gfortran
#F90 = ${HOME}/gcc-4.9.1/bin/gfortran
#F90 = /usr/bin/gfortran
F90 = ${HOME}/gcc-4.9.1/bin/gfortran
#MPIF90 = ${HOME}/opt/bin/mpifort
#MPIF90 = mpif90.mpich
MPIF90 = mpif90.openmpi
#MPIF90 = mpifort
#MPIF90 = mpif90.openmpi
MPIF90 = mpifort
## OPTIMIZATION LEVEL
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
## 1) System libraries at NILU
# INCPATH1 = /usr/include
INCPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/include
LIBPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/lib
# INCPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/include
# LIBPATH1 = /xnilu_wrk/flex_wrk/bin64/grib_api/lib
# LIBPATH2 = /usr/lib/x86_64-linux-gnu
## 2) Home-made libraries
#INCPATH2 = ${HOME}/include
INCPATH2 = /homevip/flexpart/include
LIBPATH2 = /homevip/flexpart/lib
#INCPATH2 = ${HOME}/lib
INCPATH1 = ${HOME}/include
INCPATH2 = /homevip/flexpart/include/
#LIBPATH2 = /homevip/flexpart/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
LDFLAGS = $(FFLAGS) -L$(LIBPATH1) -L$(LIBPATH2) $(LIBS)
......
......@@ -152,7 +152,7 @@ subroutine ohreaction(itime,ltsample,loutnext)
do k=1,nspec
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
restmass = xmass1(jpart,k)*exp(-1*ohrate*abs(ltsample))
if (restmass .gt. smallnum) then
......
......@@ -46,6 +46,7 @@ subroutine readspecies(id_spec,pos_spec)
! wetb_in Parameter for determining in-cloud scavenging *
! ohcconst OH reaction rate constant C *
! ohdconst OH reaction rate constant D *
! ohnconst OH reaction rate constant n *
! id_spec SPECIES number as referenced in RELEASE file *
! id_pos position where SPECIES data shall be stored *
! *
......@@ -65,7 +66,7 @@ subroutine readspecies(id_spec,pos_spec)
character(len=16) :: pspecies
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
integer :: readerror
......@@ -74,7 +75,7 @@ subroutine readspecies(id_spec,pos_spec)
pspecies, pdecay, pweta, pwetb, &
pweta_in, pwetb_in, pwetc_in, pwetd_in, &
preldiff, phenry, pf0, pdensity, pdquer, &
pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pspec_ass, pkao
pdsigma, pdryvel, pweightmolar, pohcconst, pohdconst, pohnconst, pspec_ass, pkao
pspecies=" "
pdecay=-999.9
......@@ -93,6 +94,7 @@ subroutine readspecies(id_spec,pos_spec)
pdryvel=-9.99
pohcconst=-9.99
pohdconst=-9.9E-09
pohnconst=2.0
pspec_ass=-9
pkao=-99.99
pweightmolar=-789.0 ! read failure indicator value
......@@ -159,6 +161,8 @@ subroutine readspecies(id_spec,pos_spec)
! write(*,*) ohcconst(pos_spec)
read(unitspecies,'(f8.2)',end=22) 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)
! write(*,*) spec_ass(pos_spec)
read(unitspecies,'(f18.2)',end=22) kao(pos_spec)
......@@ -182,6 +186,7 @@ subroutine readspecies(id_spec,pos_spec)
pweightmolar=weightmolar(pos_spec)
pohcconst=ohcconst(pos_spec)
pohdconst=ohdconst(pos_spec)
pohnconst=ohnconst(pos_spec)
pspec_ass=spec_ass(pos_spec)
pkao=kao(pos_spec)
......@@ -205,6 +210,7 @@ subroutine readspecies(id_spec,pos_spec)
weightmolar(pos_spec)=pweightmolar
ohcconst(pos_spec)=pohcconst
ohdconst(pos_spec)=pohdconst
ohdconst(pos_spec)=pohnconst
spec_ass(pos_spec)=pspec_ass
kao(pos_spec)=pkao
......
Markdown is supported
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