28 INTEGER,
PARAMETER :: DBL = SELECTED_REAL_KIND(P=14,R=30)
31 REAL *8,
PARAMETER :: zero = 0.d0, &
42 two_thirds = two/three, &
43 root_two = 1.41421356237309515d0, &
45 j2cal = 1.0d0/4.1868d0, &
49 mpa2atm = 9.86923266716d0, &
50 pa2atm = mpa2atm*1
d-6, &
51 kgmc2gcc = kg2g/m2cm**3, &
52 j_m2cal_cm = j2cal/m2cm, &
53 j_msq2cal_cmsq = j2cal/m2cm**2, &
54 gcc2kgmc = one/kgmc2gcc, &
55 kcalmc2atm = 4186.8/101325.d0, &
56 j_kg2cal_g = j2cal/kg2g
62 REAL(DBL) :: a_p,n_p,Pref,Ac,eg_ru,ec_ru,alfac,C,lamg
63 REAL(DBL) :: Tstar0, To, Tignition, Tsurf, film_cons, lamc
65 INTEGER :: comm, igrid, numx, ixsymm
67 REAL(DBL) :: delt, xmax, beta, delz, x_surf_burn
68 REAL(DBL) :: delt_max, delz2inv, delzsqinv, dx1
69 REAL(DBL),
POINTER :: x(:), z(:), zx(:), zxx(:)
70 REAL(DBL) :: P_range(2), rb_range(2), Tf_range(2)
71 CHARACTER*50 :: TABNAM
79 REAL(DBL) :: P,rhoc,Qc,Qcprime,rb,Ts,To,lamc
80 REAL(DBL) :: fs,fsprime,Tstar,Ts0,Tslimit
81 REAL(DBL) :: c1,c2,c3,c4,c5,c6,alfa_eff,fx2
88 INTEGER :: nx_table,ny_table,nfield
91 REAL(DBL),
POINTER :: tsurf00(:),press00(:), heatflux00(:,:)
92 REAL(DBL),
POINTER :: rb00(:,:),fxsq00(:,:),Tgas00(:,:)
93 REAL(DBL),
POINTER :: Tstd00(:),rstd00(:),alph00(:,:)
95 REAL(DBL),
POINTER :: wrk1(:),wrk2(:),wrk3(:),wrk4(:),wrk5(:)
96 REAL(DBL),
POINTER :: wrk6(:),wrk7(:),wrk8(:),wrk9(:),wrk10(:)
98 REAL(DBL) :: alpha,chi,small_1,small_2
106 SUBROUTINE polin2(bp,x1a,x2a,y12a,m,n,x1,x2,y,j,k)
109 INTEGER ::
i,l,
m,
n,ixtrap,jsrt,
jend
110 INTEGER,
INTENT(INOUT) ::
j,
k
111 REAL(DBL) ::
dy,x1,x2,
y
112 REAL(DBL) :: x1a(
m),x2a(
n),y12a(
m,
n)
113 REAL(DBL) :: prod,difm,difp,
a(4),del12
114 REAL(DBL),
POINTER :: yntmp(:),ymtmp(:)
125 do while(prod .gt. 0)
130 if(
j .ge.
m-1 .AND. prod .gt. 0)
then
133 if(abs(x1-x1a(
m)) .lt. abs(x1-x1a(1)) )
then
143 do while(prod .gt. 0)
148 if(
k .ge.
n-1 .AND. prod .gt. 0)
then
151 if(abs(x2-x2a(
n)) .lt. abs(x2-x2a(1)) )
then
161 del12 = (x2a(
k+1) - x2a(
k))*(x1a(
j+1) - x1a(
j))
163 a(1) = (x2a(
k+1) - x2) * (x1a(
j+1) - x1)
164 a(2) = (x2a(
k+1) - x2) * (x1 - x1a(
j))
165 a(3) = (x2 - x2a(
k)) * (x1a(
j+1) - x1)
166 a(4) = (x2 - x2a(
k)) * (x1 - x1a(
j))
171 y =
a(1)*y12a(
j,
k) +
a(2)*y12a(
j+1,
k) +
a(3) * y12a(
j,
k+1) +
a(4) * y12a(
j+1,
k+1)
184 integer i,
j,
k,l,
m,
n,ixtrap
186 REAL(DBL) ::
x,
y,prod,difm,difp,yo,der,
dx
187 REAL(DBL) :: xa(
n),ya(
n)
188 REAL(DBL),
POINTER :: h(:),alp(:)
189 REAL(DBL),
POINTER :: c1(:),c2(:),c3(:)
190 REAL(DBL),
POINTER :: v1(:),v2(:),v3(:)
199 h(
i) = xa(
i+1) - xa(
i)
203 if(bp%TABLE%spline)
then
213 alp(
i) = 3.0/h(
i)*(ya(
i+1) -ya(
i)) &
214 - 3.0/h(
j)*(ya(
j+1) -ya(
j))
220 v1(
i) = 2.0d0*(xa(
i+1) -xa(
i-1)) - h(
i-1)*v2(
i-1)
222 v3(
i) = ( alp(
i) - h(
i-1)*v3(
i-1) ) / v1(
i)
229 c2(
i) = v3(
i) - v2(
i)* c2(
i+1)
230 c1(
i) = (ya(
i+1) -ya(
i))/h(
i) - &
231 h(
i) * ( c2(
i+1)+2.0*c2(
i) ) / 3.0d0
232 c3(
i) = (c2(
i+1)-c2(
i))/(3.0d0*h(
i))
239 do while(prod .gt. 0)
244 if(
i .ge.
n-1 .AND. prod .gt. 0)
then
253 if(bp%TABLE%spline)
then
255 y = ya(
i) + c1(
i)*(
x-xa(
i)) + c2(
i)*(
x-xa(
i))**2&
259 y = ya(
i) + (ya(
i+1)-ya(
i))/h(
i) * (
x-xa(
i))
262 if(ixtrap .eq. 1)
then
263 if(abs(
x-xa(
n)) .lt. abs(
x-xa(1)) )
then
265 der = (ya(
n)-ya(
n-1))/h(
n-1)
269 der = (ya(2)-ya(1))/h(1)
void int int REAL REAL * y
subroutine polint(bp, xa, ya, n, x, y, dx)
subroutine polin2(bp, x1a, x2a, y12a, m, n, x1, x2, y, j, k)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE knode jend