1 PROGRAM KPP_ROOT_Driver
4 USE KPP_ROOT_Initialize
, ONLY
: Initialize
8 !~~~> No. of Stochastic events per simulation snaphot
10 !~~~> No. of Stochastic tau-steps simulation snaphot
12 !~~~> No. of Molecules
13 INTEGER :: NmlcV(NVAR
), NmlcF(NFIX
)
18 KPP_REAL
:: T
, Tau
, SCT(NREACT
)
20 !~~~~> Initialize and prescribe volume and no. of events
25 Tau
= (TEND
-TSTART
)/100.0
28 !~~~> Translate initial values from conc. to NmlcVules
29 NmlcV(1:NVAR
) = INT(Volume
*VAR(1:NVAR
))
30 NmlcF(1:NFIX
) = INT(Volume
*FIX(1:NFIX
))
31 !~~~> Compute the stochastic reaction rates
33 CALL StochasticRates( RCONST
, Volume
, SCT
)
35 !~~~> Save initial data
36 OPEN(10, file
='KPP_ROOT_stochastic.dat')
37 WRITE(10,992) T
, (NmlcV(i
),i
=1,NVAR
)
39 !~~~> TIME loop starts
41 kron
: DO WHILE (T
< TEND
)
43 WRITE(6,991) T
,(SPC_NAMES(i
),NmlcV(i
), i
=1,NVAR
)
45 !~~~> Choose here one of the following time-stepping routines
46 CALL Gillespie(Nevents
, T
, SCT
, NmlcV
, NmlcF
)
47 ! CALL TauLeap(Nsteps, Tau, T, SCT, NmlcV, NmlcF)
49 WRITE(10,992) T
, (NmlcV(i
),i
=1,NVAR
)
54 WRITE(6,991) T
,(SPC_NAMES(i
), NmlcV(i
), i
=1,NVAR
)
58 991 FORMAT('T=',F12
.3
,20(A
,'=',I5
,'; '))
59 992 FORMAT(E24
.14
,200(1X
,I12
))
62 END PROGRAM KPP_ROOT_Driver