-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathgckpp_Global.F90
128 lines (112 loc) · 3.86 KB
/
gckpp_Global.F90
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
! Global Data Module File
!
! Generated by KPP-3.1.1 symbolic chemistry Kinetics PreProcessor
! (https:/github.com/KineticPreProcessor/KPP
! KPP is distributed under GPL, the general public licence
! (http://www.gnu.org/copyleft/gpl.html)
! (C) 1995-1997, V. Damian & A. Sandu, CGRER, Univ. Iowa
! (C) 1997-2022, A. Sandu, Michigan Tech, Virginia Tech
! With important contributions from:
! M. Damian, Villanova University, Philadelphia, PA, USA
! R. Sander, Max-Planck Institute for Chemistry, Mainz, Germany
! M. Long, Renaissance Fiber, LLC, North Carolina, USA
! H. Lin, Harvard University, Cambridge, MA, USA
! R. Yantosca, Harvard University, Cambridge, MA, USA
!
! File : gckpp_Global.F90
! Equation file : gckpp.kpp
! Output root filename : gckpp
!
! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MODULE gckpp_Global
USE gckpp_Parameters, ONLY: dp, NSPEC, NVAR, NFIX, NREACT, LU_NONZERO
PUBLIC
SAVE
! Declaration of global variables
! ~~~ If you are using KPP within an OpenMP parallel environment,
! ~~~ then these variables must be declared THREADPRIVATE. This means
! ~~~ that the compiler will make a private copy of these variables
! ~~~ (in stack memory) for each execution thread. At the end of
! ~~~ the OpenMP parallel loop, these variables will be finalized,
! ~~~ and their memory deallocated.
! ~~~
! ~~~ NOTE: Because the OpenMP commands all begin with a comment
! ~~~ character, they will be ignored unless the code is compiled
! ~~~ with OpenMP parallelization turned on.
! C - Concentration of all species
REAL(kind=dp), TARGET :: C(NSPEC)
!$OMP THREADPRIVATE( C )
! VAR - Concentrations of variable species (global)
REAL(kind=dp), POINTER :: VAR(:)
!$OMP THREADPRIVATE( VAR )
! FIX - Concentrations of fixed species (global)
REAL(kind=dp), POINTER :: FIX(:)
!$OMP THREADPRIVATE( FIX )
! RCONST - Rate constants (global)
REAL(kind=dp) :: RCONST(NREACT)
!$OMP THREADPRIVATE( RCONST )
! TIME - Current integration time
REAL(kind=dp) :: TIME
!$OMP THREADPRIVATE( TIME )
! SUN - Sunlight intensity between [0,1]
REAL(kind=dp) :: SUN
!$OMP THREADPRIVATE( SUN )
! TEMP - Temperature
REAL(kind=dp) :: TEMP
!$OMP THREADPRIVATE( TEMP )
! ~~~ If you are using KPP within an OpenMP parallel environment,
! ~~~ these variables DO NOT need to be declared THREADPRIVATE.
! TSTART - Integration start time
REAL(kind=dp) :: TSTART
! TEND - Integration end time
REAL(kind=dp) :: TEND
! DT - Integration step
REAL(kind=dp) :: DT
! ATOL - Absolute tolerance
REAL(kind=dp) :: ATOL(NVAR)
! RTOL - Relative tolerance
REAL(kind=dp) :: RTOL(NVAR)
! STEPMIN - Lower bound for integration step
REAL(kind=dp) :: STEPMIN
! STEPMAX - Upper bound for integration step
REAL(kind=dp) :: STEPMAX
! DO_JVS -
LOGICAL :: DO_JVS(LU_NONZERO)
! DO_SLV -
LOGICAL :: DO_SLV(NVAR+1)
! DO_FUN -
LOGICAL :: DO_FUN(NVAR)
! cLU_IROW -
INTEGER :: cLU_IROW(LU_NONZERO)
! cLU_ICOL -
INTEGER :: cLU_ICOL(LU_NONZERO)
! cLU_CROW -
INTEGER :: cLU_CROW(NVAR+1)
! cLU_DIAG -
INTEGER :: cLU_DIAG(NVAR+1)
! JVS_MAP -
INTEGER :: JVS_MAP(LU_NONZERO)
! SPC_MAP -
INTEGER :: SPC_MAP(NVAR)
! iSPC_MAP -
INTEGER :: iSPC_MAP(NVAR)
! RMV -
INTEGER :: RMV(NVAR)
! rNVAR -
INTEGER :: rNVAR
! cNONZERO -
INTEGER :: cNONZERO
! KEEPSPCACTIVE -
LOGICAL :: KEEPSPCACTIVE(NVAR)
! KEEPACTIVE -
LOGICAL :: KEEPACTIVE
!$OMP THREADPRIVATE( DO_JVS, DO_SLV, DO_FUN, cLU_IROW, cLU_ICOL, cLU_CROW )
!$OMP THREADPRIVATE( cLU_DIAG, JVS_MAP, SPC_MAP, iSPC_MAP, RMV, rNVAR, cNONZERO, KEEPACTIVE )
! CFACTOR - Conversion factor for concentration units
REAL(kind=dp) :: CFACTOR
! INLINED global variable declarations
#include "commonIncludeVars.H"
! INLINED global variable declarations
END MODULE gckpp_Global