1 C --- Driver for computing sensitivity coefficients w.r.t. all initial values
4 INCLUDE
'KPP_ROOT_Parameters.h'
5 INCLUDE
'KPP_ROOT_Global.h'
7 C --- Number of sensitivity coefficients to compute
8 C --- Note: this value is set for sensitivities w.r.t. all initial values
9 C --- it may have to be changed for other applications
11 PARAMETER (NSENSIT
= NVAR
)
14 KPP_REAL Y
(NVAR*
(NSENSIT
+1))
15 C --- Note: Y contains: (1:NVAR) concentrations, followed by
16 C --- (1:NVAR) sensitivities w.r.t. first parameter, followed by
17 C --- etc., followed by
18 C --- (1:NVAR) sensitivities w.r.t. NSENSIT's parameter
22 C --- The type of sensitivity coefficients to compute
23 C --- DDMTYPE = 0 : sensitivities w.r.t. initial values
24 C --- DDMTYPE = 1 : sensitivities w.r.t. parameters
27 C ---- TIME VARIABLES ------------------
37 PRINT*
,'Please provide: RTOL = , ATOL = '
44 C ********** TIME LOOP *************************
48 C -- Initialize Concentrations and Sensitivities
53 C --- Note: the initial values below are for sensitivities w.r.t. initial values;
54 C --- they may have to be changed for other applications
64 WRITE(6,990) (SPC_NAMES
(MONITOR
(i
)), i
=1,NMONITOR
),
65 * (SMASS
(i
), i
=1,NMASS
)
66 990 FORMAT('done[%] Time[h] ',20(4X
,A6
))
69 DO WHILE (TIME
.lt
. TEND
)
71 CALL GetMass
( C
, DVAL
)
72 WRITE(6,991) (TIME
-TSTART
)/(TEND
-TSTART
)*100, TIME
/3600.,
73 * (C
(MONITOR
(i
))/CFACTOR
, i
=1,NMONITOR
),
74 * (DVAL
(i
)/CFACTOR
, i
=1,NMASS
)
75 991 FORMAT(F6
.1
,'% ',F7
.2
,3X
,20(E10
.4
,2X
))
82 CALL INTEGRATE
( NSENSIT
, Y
, TIME
, TIME
+DT
)
90 CALL GetMass
( C
, DVAL
)
91 WRITE(6,991) (TIME
-TSTART
)/(TEND
-TSTART
)*100, TIME
/3600.,
92 * (C
(MONITOR
(i
))/CFACTOR
, i
=1,NMONITOR
),
93 * (DVAL
(i
)/CFACTOR
, i
=1,NMASS
)
96 C WRITE(6,992) i, ( Y(NVAR*i+j), j=1,NVAR )
98 C 992 FORMAT('SEN(',I3,') = ',1000(E10.4,2X))
102 C *********** END TIME LOOP ********
103 OPEN
(20, FILE
='KPP_ROOT_results.m')
104 WRITE(6,*) '**************************************************'
105 WRITE(6,*) '* Concentrations and Sensitivities at final time *'
106 WRITE(6,*) '* were written in the file KPP_ROOT_results.m *'
107 WRITE(6,*) '**************************************************'
109 WRITE(20,993) ( Y
(NVAR*i
+j
), j
=1,NVAR
)
111 993 FORMAT(1000(E24
.16
,2X
))