552 lines
21 KiB
HTML
552 lines
21 KiB
HTML
!=======================================================================
|
|
! File "isrpia_adj.inc" contains the common block declarations and some
|
|
! parameters for the ISORROPIAII code. This file replaces "isoropia.h" from
|
|
! previous ISORROPIA implementations.
|
|
! ( hotp 8/1/07 )
|
|
! ( previous implementation: bec, bmy, 3/7/05, 6/28/06 )
|
|
!
|
|
! Please contact the original authors before making modifications to
|
|
! ISOROPIAII.
|
|
!
|
|
! *** VERY IMPORTANT PORTING WARNING (slc.1.2012) ***
|
|
! ANISORROPIA code is optimized for adjoint frameworks and will not
|
|
! perform commensurately with publicly released ISORROPIAII code.
|
|
!
|
|
! Please visit http://nenes.eas.gatech.edu/ISORROPIA for current
|
|
! releases of ISORROPIAII for forward modeling.
|
|
!
|
|
! Original Documentation:
|
|
! *** ISORROPIA CODE II
|
|
! *** INCLUDE FILE 'ISRPIA.INC'
|
|
! *** THIS FILE CONTAINS THE DECLARATIONS OF THE GLOBAL CONSTANTS
|
|
! AND VARIABLES.
|
|
!
|
|
! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY,
|
|
! *** GEORGIA INSTITUTE OF TECHNOLOGY
|
|
! *** WRITTEN BY ATHANASIOS NENES
|
|
! *** UPDATED BY CHRISTOS FOUNTOUKIS
|
|
! *** ADJOINT & UPDATE BY SHANNON CAPPS
|
|
!
|
|
! NOTES:
|
|
! (1 ) Renamed common block GAS to GASCB to avoid confusion with array
|
|
! GAS in isoropiaIIcode.f (hotp)
|
|
! (2 ) Explicity declared all variables in this file (hotp)
|
|
! (3 ) Separated common blocks so that each block has only one type of data (hotp)
|
|
! (4 ) Declared all common blocks (except READ-ONLY blocks) as
|
|
! THREADPRIVATE (hotp)
|
|
! (5 ) Divided common blocks so that each has no more than 8 variables
|
|
! (this is to speed compilation) (hotp)
|
|
! (6 ) Divided common blocks so that READ-ONLY variables are not mixed with
|
|
! variables that are modified (hotp)
|
|
! (7 ) Removed DRYF since it is not used (hotp)
|
|
! (8 ) Bug fix: CRRAT was being truncated at column 72 (hotp, bmy, 6/1/10)
|
|
! (9 ) IONIC should be REAL*8 for consistency with -r8 flag during
|
|
! compiling of isoropiaIIcode routines (hotp, bmy, 6/28/10)
|
|
! 22 Aug 2011 - S. Capps - ANISORROPIA implementation
|
|
!=======================================================================
|
|
!
|
|
!=======================================================================
|
|
!
|
|
! *** ISORROPIA CODE
|
|
! *** INCLUDE FILE 'ISRPIA_ADJ.INC'
|
|
! *** THIS FILE CONTAINS THE DECLARATIONS OF THE GLOBAL CONSTANTS
|
|
! AND VARIABLES.
|
|
!
|
|
! *** COPYRIGHT 1996-2006, UNIVERSITY OF MIAMI, CARNEGIE MELLON UNIVERSITY,
|
|
! *** GEORGIA INSTITUTE OF TECHNOLOGY
|
|
! *** WRITTEN BY ATHANASIOS NENES
|
|
! *** UPDATED BY CHRISTOS FOUNTOUKIS
|
|
!
|
|
!=======================================================================
|
|
!
|
|
! leave this implicit statement for isoropiaIIcode.f variables
|
|
! ideally all variables would be declared
|
|
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
|
|
|
|
! INTEGER parameters
|
|
INTEGER, PARAMETER :: NCOMP = 8
|
|
INTEGER, PARAMETER :: NERRMX = 25
|
|
INTEGER, PARAMETER :: NGASAQ = 3
|
|
INTEGER, PARAMETER :: NIONS = 10
|
|
INTEGER, PARAMETER :: NPAIR = 23
|
|
INTEGER, PARAMETER :: NSLDS = 19
|
|
INTEGER, PARAMETER :: NZSR = 100
|
|
|
|
!=================================================================
|
|
! Input variables
|
|
!=================================================================
|
|
|
|
INTEGER :: METSTBL = 0
|
|
INTEGER :: IPROB = 0
|
|
COMMON /INPT/ IPROB, METSTBL
|
|
!$OMP THREADPRIVATE( /INPT/ )
|
|
|
|
INTEGER :: NADJ = 0
|
|
COMMON /INPT2/ NADJ
|
|
! INPT2 is read-only
|
|
|
|
REAL*8 :: W(NCOMP), WAER(NCOMP)
|
|
REAL*8 :: TEMP = 298.d0
|
|
REAL*8 :: RH = 0.9D0
|
|
COMMON /INPT3/ W, WAER, TEMP, RH
|
|
!$OMP THREADPRIVATE( /INPT3/ )
|
|
|
|
!=================================================================
|
|
! Water activities of pure salt solutions
|
|
!=================================================================
|
|
|
|
! /ZSR/ is read-only and doesn't have to be declared THREADPRIVATE
|
|
! block does not need to be split up to speed compilation
|
|
REAL*8 :: AWAS(NZSR), AWSS(NZSR), AWAC(NZSR), AWSC(NZSR)
|
|
REAL*8 :: AWAN(NZSR), AWSN(NZSR), AWSB(NZSR), AWAB(NZSR)
|
|
REAL*8 :: AWSA(NZSR), AWLC(NZSR), AWCS(NZSR), AWCN(NZSR)
|
|
REAL*8 :: AWCC(NZSR), AWPS(NZSR), AWPB(NZSR), AWPN(NZSR)
|
|
REAL*8 :: AWPC(NZSR), AWMS(NZSR), AWMN(NZSR), AWMC(NZSR)
|
|
COMMON /ZSR / AWAS, AWSS, AWAC, AWSC,
|
|
& AWAN, AWSN, AWSB, AWAB,
|
|
& AWSA, AWLC, AWCS, AWCN,
|
|
& AWCC, AWPS, AWPB, AWPN,
|
|
& AWPC, AWMS, AWMN, AWMC
|
|
! ZSR is read-only
|
|
|
|
!=================================================================
|
|
! Deliquescence relative humidities
|
|
!=================================================================
|
|
|
|
INTEGER :: WFTYP
|
|
COMMON /WFT/ WFTYP
|
|
! WFTYP is read-only
|
|
|
|
REAL*8 :: DRH2SO4, DRNH42S4, DRNAHSO4, DRNACL, DRNANO3
|
|
REAL*8 :: DRNA2SO4, DRNH4HS4, DRLC, DRNH4NO3, DRNH4CL
|
|
REAL*8 :: DRCASO4, DRCANO32, DRCACL2, DRK2SO4, DRKHSO4
|
|
REAL*8 :: DRKNO3, DRKCL, DRMGSO4, DRMGNO32, DRMGCL2
|
|
COMMON /DRH / DRH2SO4, DRNH42S4, DRNAHSO4, DRNACL, DRNANO3
|
|
COMMON /DRH2/ DRNA2SO4, DRNH4HS4, DRLC, DRNH4NO3, DRNH4CL
|
|
COMMON /DRH3/ DRCASO4, DRCANO32, DRCACL2, DRK2SO4, DRKHSO4
|
|
COMMON /DRH4/ DRKNO3, DRKCL, DRMGSO4, DRMGNO32, DRMGCL2
|
|
!$OMP THREADPRIVATE( /DRH/ )
|
|
!$OMP THREADPRIVATE( /DRH2/ )
|
|
!$OMP THREADPRIVATE( /DRH3/ )
|
|
!$OMP THREADPRIVATE( /DRH4/ )
|
|
|
|
REAL*8 :: DRMLCAB, DRMLCAS, DRMASAN, DRMG1, DRMG2
|
|
REAL*8 :: DRMG3, DRMH1, DRMH2, DRMI1, DRMI2
|
|
REAL*8 :: DRMI3, DRMQ1, DRMR1, DRMR2, DRMR3
|
|
REAL*8 :: DRMR4, DRMR5, DRMR6, DRMR7, DRMR8
|
|
REAL*8 :: DRMR9, DRMR10, DRMR11, DRMR12, DRMR13
|
|
COMMON /MDRH/ DRMLCAB, DRMLCAS, DRMASAN, DRMG1, DRMG2
|
|
COMMON /MDRH2/ DRMG3, DRMH1, DRMH2, DRMI1, DRMI2
|
|
COMMON /MDRH3/ DRMI3, DRMQ1, DRMR1, DRMR2, DRMR3
|
|
COMMON /MDRH4/ DRMR4, DRMR5, DRMR6, DRMR7, DRMR8
|
|
COMMON /MDRH5/ DRMR9, DRMR10, DRMR11, DRMR12, DRMR13
|
|
!$OMP THREADPRIVATE( /MDRH/ )
|
|
!$OMP THREADPRIVATE( /MDRH2/ )
|
|
!$OMP THREADPRIVATE( /MDRH3/ )
|
|
!$OMP THREADPRIVATE( /MDRH4/ )
|
|
!$OMP THREADPRIVATE( /MDRH5/ )
|
|
|
|
REAL*8 :: DRMO1, DRMO2, DRMO3, DRML1, DRML2
|
|
REAL*8 :: DRML3, DRMM1, DRMM2, DRMP1, DRMP2
|
|
REAL*8 :: DRMP3, DRMP4, DRMP5, DRMV1
|
|
COMMON /MDRH6/ DRMO1, DRMO2, DRMO3, DRML1, DRML2
|
|
COMMON /MDRH7/ DRML3, DRMM1, DRMM2, DRMP1, DRMP2
|
|
COMMON /MDRH8/ DRMP3, DRMP4, DRMP5, DRMV1
|
|
!$OMP THREADPRIVATE( /MDRH6/ )
|
|
!$OMP THREADPRIVATE( /MDRH7/ )
|
|
!$OMP THREADPRIVATE( /MDRH8/ )
|
|
|
|
!=================================================================
|
|
! Variables for liquid aerosol phase
|
|
!=================================================================
|
|
|
|
! /IONS/ size does not seem to slow compilation
|
|
REAL*8 :: MOLAL(NIONS) = 0.0D0
|
|
REAL*8 :: MOLALR(NPAIR) = 0.0D0
|
|
REAL*8 :: M0(NPAIR) = 1.0d5
|
|
REAL*8 :: GAMA(NPAIR) = NPAIR*0.1D0
|
|
REAL*8 :: GAMOU(NPAIR) = NPAIR*1.D10
|
|
REAL*8 :: GAMIN(NPAIR) = NPAIR*1.D10
|
|
REAL*8 :: GASAQ(NGASAQ) = 0.0D0
|
|
REAL*8 :: COH = 0.d0
|
|
REAL*8 :: CHNO3 = 0.d0
|
|
REAL*8 :: CHCL = 0.d0
|
|
REAL*8 :: WATER = 1.d-20
|
|
COMMON /IONS/ MOLAL, MOLALR, M0,
|
|
& GAMA,
|
|
& GAMOU, GAMIN, GASAQ,
|
|
& COH, CHNO3, CHCL,
|
|
& WATER
|
|
!$OMP THREADPRIVATE( /IONS/ )
|
|
|
|
REAL*8 :: ZZ(NPAIR) = (/ 1,2,1,2,1,1,2,1,1,1,1,1,2,4,2,2,2,
|
|
& 1,1,1,4,2,2 /)
|
|
REAL*8 :: Z(NIONS) = (/ 1.0D0, 1.0D0, 1.0D0, 1.0D0, 2.0D0,
|
|
& 1.0D0, 1.0D0, 2.0D0, 1.0D0, 2.0D0 /)
|
|
REAL*8 :: EPSACT = 5D-2
|
|
COMMON /IONS2/ ZZ, Z, EPSACT
|
|
! IONS2 is read-only
|
|
|
|
!----------------------------------------------------------------------
|
|
! Prior to 6/28/10:
|
|
! IONIC should be REAL*8 for consistency with -r8 flag during
|
|
! compiling of isoropiaIIcode routines (hotp 6/23/10)
|
|
!REAL*4 :: IONIC
|
|
!----------------------------------------------------------------------
|
|
REAL*8 :: IONIC = 0.d0
|
|
COMMON /IONS3/ IONIC
|
|
!$OMP THREADPRIVATE( /IONS3/ )
|
|
|
|
! DRYF removed since it is not used (hotp)
|
|
LOGICAL :: CALAOU = .TRUE.
|
|
LOGICAL :: CALAIN = .TRUE.
|
|
LOGICAL :: FRST = .TRUE.
|
|
COMMON /IONS4/ CALAOU, CALAIN, FRST
|
|
!$OMP THREADPRIVATE( /IONS4/ )
|
|
|
|
INTEGER :: IACALC = 0
|
|
COMMON /IONS5/ IACALC
|
|
! IONS5 is read-only
|
|
!=================================================================
|
|
! Variables for solid aerosol phase
|
|
!=================================================================
|
|
|
|
REAL*8 :: CH2SO4, CNH42S4, CNH4HS4, CNACL, CNA2SO4
|
|
REAL*8 :: CNANO3, CNH4NO3, CNH4CL, CNAHSO4, CLC, CCASO4
|
|
REAL*8 :: CCANO32, CCACL2, CK2SO4, CKHSO4, CKNO3, CKCL
|
|
REAL*8 :: CMGSO4, CMGNO32, CMGCL2
|
|
COMMON /SALT/ CH2SO4, CNH42S4, CNH4HS4, CNACL, CNA2SO4
|
|
COMMON /SALT2/ CNANO3, CNH4NO3, CNH4CL, CNAHSO4, CLC, CCASO4
|
|
COMMON /SALT3/ CCANO32, CCACL2, CK2SO4, CKHSO4, CKNO3, CKCL
|
|
COMMON /SALT4/ CMGSO4, CMGNO32, CMGCL2
|
|
!$OMP THREADPRIVATE( /SALT/ )
|
|
!$OMP THREADPRIVATE( /SALT2/ )
|
|
!$OMP THREADPRIVATE( /SALT3/ )
|
|
!$OMP THREADPRIVATE( /SALT4/ )
|
|
|
|
!=================================================================
|
|
! Variables for gas phase
|
|
!=================================================================
|
|
|
|
REAL*8 :: GNH3, GHNO3, GHCL
|
|
COMMON /GASCB/ GNH3, GHNO3, GHCL
|
|
!$OMP THREADPRIVATE( /GASCB/ )
|
|
|
|
!=================================================================
|
|
! Equilibrium constants
|
|
!=================================================================
|
|
|
|
REAL*8 :: XK1, XK2, XK3, XK4, XK5, XK6, XK7, XK8, XK9, XK10
|
|
REAL*8 :: XK11,XK12,XK13,XK14,XKW, XK21,XK22,XK31,XK32,XK41
|
|
REAL*8 :: XK42,XK15,XK16,XK17,XK18,XK19,XK20,XK23
|
|
REAL*8 :: XK24,XK25
|
|
COMMON /EQUK/ XK1, XK2, XK3, XK4, XK5, XK6, XK7, XK8, XK9, XK10
|
|
COMMON /EQUK2/ XK11,XK12,XK13,XK14,XKW, XK21,XK22,XK31,XK32,XK41
|
|
COMMON /EQUK3/ XK42,XK15,XK16,XK17,XK18,XK19,XK20,XK23
|
|
COMMON /EQUK4/ XK24,XK25
|
|
!C & , XK26, XK27
|
|
!$OMP THREADPRIVATE( /EQUK/ )
|
|
!$OMP THREADPRIVATE( /EQUK2/ )
|
|
!$OMP THREADPRIVATE( /EQUK3/ )
|
|
!$OMP THREADPRIVATE( /EQUK4/ )
|
|
|
|
!=================================================================
|
|
! Molecular Weights
|
|
!=================================================================
|
|
|
|
REAL*8 :: R = 82.0567D-6
|
|
REAL*8 :: IMW(NIONS) = (/ 1.0, 23.0, 18.0, 35.5, 96.0, 97.0,
|
|
& 62.0, 40.1, 39.1, 24.3 /)
|
|
REAL*8 :: WMW(NCOMP) = (/ 23.0, 98.0, 17.0, 63.0, 36.5, 40.1,
|
|
& 39.1, 24.3 /)
|
|
REAL*8 :: SMW(NPAIR) = (/ 58.5, 142., 85.0, 132., 80.0, 53.5,
|
|
& 98.0, 98.0, 115., 63.0, 36.5, 120.,
|
|
& 247., 136.1, 164., 111., 174.2,
|
|
& 136.1, 101.1, 74.5, 120.3, 148.3,
|
|
& 95.2 /)
|
|
|
|
COMMON /OTHR/ R, IMW, WMW, SMW
|
|
! OTHR is read-only
|
|
|
|
!=================================================================
|
|
! Solution/info variables
|
|
!=================================================================
|
|
|
|
CHARACTER(LEN=15) :: SCASE
|
|
COMMON /CASE/ SCASE
|
|
!$OMP THREADPRIVATE( /CASE/ )
|
|
|
|
REAL*8 :: SULRATW, SULRAT, SODRAT,
|
|
& SO4RAT, CRNARAT, CRRAT
|
|
COMMON /CASE2/ SULRATW, SULRAT, SODRAT,
|
|
& SO4RAT, CRNARAT, CRRAT
|
|
!$OMP THREADPRIVATE( /CASE2/ )
|
|
|
|
REAL*8 :: EPS = 1.D-10
|
|
COMMON /SOLN/ EPS
|
|
! SOLN is read-only
|
|
|
|
INTEGER :: MAXIT = 100
|
|
INTEGER :: NSWEEP = 10
|
|
INTEGER :: NDIV = 5
|
|
INTEGER :: ICLACT = 0
|
|
COMMON /SOLN2/ MAXIT, NSWEEP, NDIV
|
|
! SOLN 2 is read-only
|
|
|
|
COMMON /SOLN3/ ICLACT
|
|
!$OMP THREADPRIVATE( /SOLN3/ )
|
|
|
|
!=================================================================
|
|
! Error system
|
|
!=================================================================
|
|
|
|
CHARACTER(LEN=40) :: ERRMSG(NERRMX) = ' '
|
|
COMMON /EROR/ ERRMSG
|
|
!$OMP THREADPRIVATE( /EROR/ )
|
|
|
|
INTEGER :: ERRSTK(NERRMX) = 0
|
|
INTEGER :: NOFER = 0
|
|
COMMON /EROR2/ ERRSTK, NOFER
|
|
!$OMP THREADPRIVATE( /EROR2/ )
|
|
|
|
LOGICAL :: STKOFL = .FALSE.
|
|
COMMON /EROR3/ STKOFL
|
|
!$OMP THREADPRIVATE( /EROR3/ )
|
|
|
|
!=================================================================
|
|
! Generic Variables
|
|
!=================================================================
|
|
|
|
CHARACTER(LEN=15) :: VERSION = '2.0 (03/19/07)'
|
|
COMMON /CGEN/ VERSION
|
|
! CGEN is read-only
|
|
|
|
REAL*8 :: GREAT = 1.d10
|
|
REAL*8 :: TINY = 1.d-20
|
|
REAL*8 :: TINY2 = 1.d-11
|
|
REAL*8 :: ZERO = 0.d0
|
|
REAL*8 :: ONE = 1.d0
|
|
COMMON /CGEN2/ GREAT, TINY, TINY2, ZERO, ONE
|
|
! CGEN2 is read-only
|
|
|
|
!=================================================================
|
|
! coordinates for debugging
|
|
!=================================================================
|
|
INTEGER :: ICOOR, JCOOR, LCOOR
|
|
COMMON /LOC/ ICOOR, JCOOR, LCOOR
|
|
!$OMP THREADPRIVATE( /LOC/ )
|
|
|
|
!=================================================================
|
|
! Differentiated Routines
|
|
!=================================================================
|
|
|
|
! changes made by hotp 8/2/07
|
|
! explicitly declared all variables in SOLUT
|
|
! made SOLUT THREADPRIVATE for OPENMP parallelization
|
|
REAL*8 :: CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8
|
|
REAL*8 :: CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15
|
|
REAL*8 :: CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6
|
|
REAL*8 :: PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13
|
|
REAL*8 :: PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6
|
|
REAL*8 :: A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17
|
|
COMMON /SOLUT/ CHI1, CHI2, CHI3, CHI4, CHI5, CHI6, CHI7, CHI8,
|
|
& CHI9, CHI10, CHI11, CHI12, CHI13, CHI14, CHI15,
|
|
& CHI16, CHI17, PSI1, PSI2, PSI3, PSI4, PSI5, PSI6,
|
|
& PSI7, PSI8, PSI9, PSI10, PSI11, PSI12, PSI13,
|
|
& PSI14, PSI15, PSI16, PSI17, A1, A2, A3, A4, A5, A6,
|
|
& A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17
|
|
!$OMP THREADPRIVATE( /SOLUT/ )
|
|
|
|
REAL*8 :: wb(ncomp)
|
|
COMMON /inpt_b/ wb
|
|
!$OMP THREADPRIVATE( /inpt_b/ )
|
|
|
|
!=================================================================
|
|
! Case A Adjoint
|
|
!=================================================================
|
|
|
|
REAL*8 :: molalab(nions),gamaab(npair),waterab
|
|
COMMON /ions_ab/ molalab, gamaab, waterab
|
|
!$OMP THREADPRIVATE( /ions_ab/ )
|
|
|
|
REAL*8 :: wab(ncomp)
|
|
COMMON /inpt_ab/ wab
|
|
!$OMP THREADPRIVATE( /inpt_ab/ )
|
|
|
|
REAL*8 :: gnh3ab
|
|
COMMON /gas_ab/ gnh3ab
|
|
!$OMP THREADPRIVATE( /gas_ab/ )
|
|
|
|
!=================================================================
|
|
! Case B Adjoint
|
|
!=================================================================
|
|
|
|
REAL*8 :: molalbb(nions), gamabb(npair), waterbb
|
|
COMMON /ions_bb/ molalbb, gamabb, waterbb
|
|
!$OMP THREADPRIVATE( /ions_bb/ )
|
|
|
|
REAL*8 :: gnh3bb
|
|
COMMON /gas_bb/ gnh3bb
|
|
!$OMP THREADPRIVATE( /gas_bb/ )
|
|
|
|
!=================================================================
|
|
! Case C Adjoint
|
|
!=================================================================
|
|
|
|
REAL*8 :: molalcb(nions), gamacb(npair), watercb
|
|
COMMON /ions_cb/ molalcb, gamacb, watercb
|
|
!$OMP THREADPRIVATE( /ions_cb/ )
|
|
|
|
REAL*8 :: gnh3cb
|
|
COMMON /gas_cb/ gnh3cb
|
|
!$OMP THREADPRIVATE( /gas_cb/ )
|
|
|
|
!=================================================================
|
|
! Case D Adjoint
|
|
!=================================================================
|
|
|
|
REAL*8 :: molaldnrd(nions), gamadnrd(npair), waterdnrd
|
|
COMMON /ions_dnrd/ molaldnrd, gamadnrd, waterdnrd
|
|
!$OMP THREADPRIVATE( /ions_dnrd/ )
|
|
|
|
REAL*8 :: chi3db, chi4db, psi1db, psi2db
|
|
COMMON /solut_db/ chi3db, chi4db, psi1db, psi2db
|
|
!$OMP THREADPRIVATE( /solut_db/ )
|
|
|
|
REAL*8 :: molaldnrddb(nions), gamadnrddb(npair), waterdnrddb
|
|
COMMON /ions_dnrd_db/ molaldnrddb, gamadnrddb,waterdnrddb
|
|
!$OMP THREADPRIVATE( /ions_dnrd_db/ )
|
|
|
|
REAL*8 :: gnh3db, ghno3db
|
|
COMMON /gas_db/ gnh3db, ghno3db
|
|
!$OMP THREADPRIVATE( /gas_db/ )
|
|
|
|
REAL*8 :: molaldb(nions), molalrdb(npair), gamadb(npair),
|
|
& waterdb
|
|
COMMON /ions_db/ molaldb, molalrdb, gamadb, waterdb
|
|
!$OMP THREADPRIVATE( /ions_db/ )
|
|
|
|
!=================================================================
|
|
! Case E Adjoint
|
|
!=================================================================
|
|
|
|
REAL*8 :: molaleb(nions), gamaeb(npair), watereb
|
|
COMMON /ions_eb/ molaleb, gamaeb, watereb
|
|
!$OMP THREADPRIVATE( /ions_eb/ )
|
|
|
|
REAL*8 :: web(ncomp)
|
|
COMMON /inpt_eb/ web
|
|
!$OMP THREADPRIVATE( /inpt_eb/ )
|
|
|
|
REAL*8 :: ghno3eb
|
|
COMMON /gas_eb/ ghno3eb
|
|
!$OMP THREADPRIVATE( /gas_eb/ )
|
|
|
|
!=================================================================
|
|
! Case F Adjoint
|
|
!=================================================================
|
|
|
|
REAL*8 :: molalfb(nions)
|
|
REAL*8 :: gamafb(npair)
|
|
REAL*8 :: waterfb
|
|
COMMON /ions_fb/ molalfb, gamafb, waterfb
|
|
!$OMP THREADPRIVATE( /ions_fb/ )
|
|
|
|
REAL*8 :: wfb(ncomp)
|
|
COMMON /inpt_fb/ wfb
|
|
!$OMP THREADPRIVATE( /inpt_fb/ )
|
|
|
|
REAL*8 :: ghno3fb
|
|
COMMON /gas_fb/ ghno3fb
|
|
!$OMP THREADPRIVATE( /gas_fb/ )
|
|
|
|
!=================================================================
|
|
! Case G Adjoint
|
|
!=================================================================
|
|
|
|
REAL*8 :: molalgnrd(nions), gamagnrd(npair), watergnrd
|
|
COMMON /ions_gnrd/ molalgnrd, gamagnrd, watergnrd
|
|
!$OMP THREADPRIVATE( /ions_gnrd/ )
|
|
|
|
REAL*8 :: molalgnrdgb(nions), gamagnrdgb(npair), watergnrdgb
|
|
COMMON /ions_gnrd_gb/ molalgnrdgb, gamagnrdgb, watergnrdgb
|
|
!$OMP THREADPRIVATE( /ions_gnrd_gb/ )
|
|
|
|
REAL*8 :: chi4gb, chi5gb, chi6gb, psi2gb
|
|
COMMON /solut_gb/ chi4gb, chi5gb, chi6gb, psi2gb
|
|
!$OMP THREADPRIVATE( /solut_gb/ )
|
|
|
|
REAL*8 :: gnh3gb, ghno3gb, ghclgb
|
|
COMMON /gas_gb/ gnh3gb, ghno3gb, ghclgb
|
|
!$OMP THREADPRIVATE( /gas_gb/ )
|
|
|
|
REAL*8 :: molalgb(nions), molalrgb(npair), gamagb(npair),
|
|
& watergb
|
|
COMMON /ions_gb/ molalgb, molalrgb, gamagb, watergb
|
|
!$OMP THREADPRIVATE( /ions_gb/ )
|
|
|
|
REAL*8 :: wgb(ncomp)
|
|
COMMON /inpt_gb/ wgb
|
|
!$OMP THREADPRIVATE( /inpt_gb/ )
|
|
|
|
!=================================================================
|
|
! Case H Adjoint
|
|
!=================================================================
|
|
|
|
REAL*8 :: molalhnrd(nions), gamahnrd(npair), waterhnrd
|
|
COMMON /ions_hnrd/ molalhnrd, gamahnrd, waterhnrd
|
|
!$OMP THREADPRIVATE( /ions_hnrd/ )
|
|
|
|
REAL*8 :: molalhnrdhb(nions), gamahnrdhb(npair), waterhnrdhb
|
|
COMMON /ions_hnrd_hb/ molalhnrdhb, gamahnrdhb, waterhnrdhb
|
|
!$OMP THREADPRIVATE( /ions_hnrd_hb/ )
|
|
|
|
REAL*8 :: chi1hb, chi4hb, chi5hb, chi6hb, chi7hb, chi8hb
|
|
COMMON /solut_hb/ chi1hb, chi4hb, chi5hb, chi6hb, chi7hb, chi8hb
|
|
!$OMP THREADPRIVATE( /solut_hb/ )
|
|
|
|
REAL*8 :: gnh3hb, ghno3hb, ghclhb
|
|
COMMON /gas_hb/ gnh3hb, ghno3hb, ghclhb
|
|
!$OMP THREADPRIVATE( /gas_hb/ )
|
|
|
|
REAL*8 :: molalhb(nions), molalrhb(npair), gamahb(npair),
|
|
& waterhb
|
|
COMMON /ions_hb/ molalhb, molalrhb, gamahb, waterhb
|
|
!$OMP THREADPRIVATE( /ions_hb/ )
|
|
|
|
!=================================================================
|
|
! Case I Adjoint
|
|
!=================================================================
|
|
|
|
REAL*8 :: gnh3ib, ghno3ib, ghclib
|
|
COMMON /gas_ib/ gnh3ib, ghno3ib, ghclib
|
|
!$OMP THREADPRIVATE( /gas_ib/ )
|
|
|
|
REAL*8 :: molalib(nions), gamaib(npair), waterib
|
|
COMMON /ions_ib/ molalib, gamaib, waterib
|
|
!$OMP THREADPRIVATE( /ions_ib/ )
|
|
|
|
REAL*8 :: wib(ncomp)
|
|
COMMON /inpt_ib/ wib
|
|
!$OMP THREADPRIVATE( /inpt_ib/ )
|
|
|
|
!=================================================================
|
|
! Case J Adjoint
|
|
!=================================================================
|
|
|
|
REAL*8 :: gnh3jb, ghno3jb, ghcljb
|
|
COMMON /gas_jb/ gnh3jb, ghno3jb, ghcljb
|
|
!$OMP THREADPRIVATE( /gas_jb/ )
|
|
|
|
REAL*8 :: molaljb(nions), gamajb(npair), waterjb
|
|
COMMON /ions_jb/ molaljb, gamajb, waterjb
|
|
!$OMP THREADPRIVATE( /ions_jb/ )
|
|
|
|
REAL*8 :: wjb(ncomp)
|
|
COMMON /inpt_jb/ wjb
|
|
!$OMP THREADPRIVATE( /inpt_jb/ )
|
|
|
|
!
|
|
! === END OF INCLUDE FILE ==============================================
|
|
!
|