You are on page 1of 2

1 module derivation

2 use potential
3 use initialcond
4
5 implicit none
6 real (kind=8) :: skim1, skip1, skjm1, skjp1, skkm1, skkp1
7 real (kind=8) :: pkim1, pkip1, pkjm1, pkjp1, pkkm1, pkkp1
8 real (kind=8) :: skk, pkk
9
10 contains
11
12 subroutine deriv(sa,san,pa,pan,delz,ijko,ijkg,pgeo,t,tto,ttg)
13 real (kind=8), dimension(4) :: t
14 real (kind=8) :: sa, san, pa, pan, delz, pgeo, tto, ttg, pbar, sbar
15 real (kind=8) :: krlo, krlg, dkroo, dkrgg
16 real (kind=8) :: to, tg, dtso, dtsg, dtpo, dtpg
17 real (kind=8) :: ijko, ijkg
18
19
20
21
22 if (ijkg == 0) then
23 krlg = krg(sa)
24 dkrgg = 0
25 else
26 krlg = krg(san)
27 dkrgg = dkrgs(san)
28
29 end if
30
31 if (ijko == 0) then
32 krlo = kro (sa)
33 dkroo = 0
34 else
35 krlo = kro (san)
36 dkroo = dkros(san)
37
38 end if
39
40 pbar = (pa+pan) * 0.5
41 sbar = (sa+san) * 0.5
42
43 aa = Miuo(pbar)
44 ab = miug(pbar)
45 ac = Bg_ft3(pbar)
46 ad = bo(pbar)
47 ae = dbgp(pbar)
48 af = dbop(pbar)
49 ag = dmuop(pbar)
50 ah = dmugp(pbar)
51 ai = Rs_ft3(pbar)
52 aj = drsp(pbar)
53 ak = Bg(pbar)
54 al = Rs(pbar)
55
56 to = pgeo*krlo/(aa*ad)
57 tg = pgeo*krlg/(ab*ac)
58
59 dtpo = -0.5d0*to*((1/aa)*ag+(1/ad)*af)
60 dtpg = -0.5d0*tg*((1/ab)*ah+(1/ac)*ae)
61
62 dtso = pgeo*dkroo*(1/(aa*ad))
63 dtsg = pgeo*dkrgg*(1/(ab*ac))
64
65
66 tto=to*(pan-pa)-to*dno(pbar)*delz
67 ttg=tg*(pan-pa)-tg*dng(pbar)*delz+ai*to*(pan-pa)-ai*to*dno(pbar)*delz
68
69 t(1) =
dtso*((pan-pa)-dno(pbar)*(delz))
70 t(2) =
dtpo*(pan-pa)+to-(dtpo*dno(pbar)+to*0.5d0*d_rho_o(pbar))*delz
71 t(3) =
dtsg*((pan-pa)-dng(pbar)*delz)+ ai*t(1)
72 t(4) =
dtpg*(pan-pa)+tg-(dtpg*dng(pbar)-tg*0.5d0*d_rho_g(pbar))*delz+&
73 ai*t(2)+0.5d0*aj*tto
74 end subroutine
75
76
77 end module

You might also like