67 INTEGER,
INTENT(IN) :: ierr
69 print *,
"ROCBRUN_ZN ERROR: unable to allocate memory"
70 CALL mpi_abort( mpi_comm_world, -1)
76 INTEGER,
INTENT(IN) :: comm
77 CHARACTER(*),
INTENT(IN) :: indir
78 INTEGER,
INTENT(OUT) :: nxmax
79 REAL(DBL),
INTENT (OUT) :: to_read
92 CHARACTER(*),
INTENT(IN) :: indir
95 SUBROUTINE zn_gen_grid(G_ZN, gridtype, numx, x, z, zx, zxx)
98 INTEGER,
INTENT(IN) :: gridtype, numx
99 REAL(DBL),
INTENT (OUT) ::
x(:),
z(:), zx(:), zxx(:)
109 g_zn%MPI_COMM_ROCBURN = comm
110 CALL mpi_comm_rank(comm, g_zn%rank, ierror)
120 ALLOCATE(g_zn%x(1:g_zn%nxmax), stat=ierror); CALL
check_alloc(ierror)
121 ALLOCATE(g_zn%z(1:g_zn%nxmax), stat=ierror); CALL
check_alloc(ierror)
122 ALLOCATE(g_zn%zx(1:g_zn%nxmax), stat=ierror); CALL
check_alloc(ierror)
123 ALLOCATE(g_zn%zxx(1:g_zn%nxmax), stat=ierror); CALL
check_alloc(ierror)
129 g_zn%x, g_zn%z, g_zn%zx, g_zn%zxx)
141 SUBROUTINE initialize_1d( G_ZN, bflag, P_mks, To, rhoc_mks, p_coor, rb_mks, Toa, fr, Tn, Tflame)
147 INTEGER,
INTENT(INOUT) :: bflag
148 REAL(DBL),
INTENT (IN) :: p_mks, to, rhoc_mks, p_coor(3)
149 REAL(DBL),
INTENT (OUT) :: rb_mks, toa, fr
150 REAL(DBL),
INTENT (OUT) :: tn(:)
151 REAL(DBL),
INTENT (OUT) :: tflame
154 SUBROUTINE zn_sswsb(G_ZN, P, qr, To, rhoc, rb, Ts, Tf, fr, Tn)
157 REAL(DBL),
INTENT(IN) :: p, qr, to, rhoc
158 REAL(DBL),
INTENT(OUT) :: rb, ts, tf, fr
159 REAL(DBL),
INTENT(OUT) :: tn(:)
165 REAL(DBL) :: p, rhoc, rb, ts, tf
170 IF( (bflag == 0).OR.(g_zn%ign_flag == 1) )
THEN
182 p = p_mks *9.869232667e-6
183 rhoc = rhoc_mks*1.0e-3
186 CALL
zn_sswsb(g_zn, p, qr , g_zn%To, rhoc, rb, ts, tf, fr, tn)
192 tflame = g_zn%Tf_adiabatic
208 REAL(DBL),
INTENT (IN) :: p_coor(3), ts, t_euler, p
209 REAL(DBL),
INTENT (OUT) :: qc, qcprime
232 REAL(DBL),
INTENT (IN) :: rb, toa
233 REAL(DBL),
INTENT (OUT) :: dt_max
241 IF( abs(toa - g_zn%To) >= 0.9*g_zn%To)
THEN
242 dt_c = 0.1*g_zn%alfac/(rb*rb*1.0e4)
243 dt_max=
min(g_zn%delt_max, dt_c)
245 dt_max= g_zn%delt_max
260 qc_mks, qc_old_mks, qr_mks, qr_old_mks, rhoc_mks, &
261 toa, rb_mks, fr, bflag, tnp1, tflame)
264 REAL(DBL),
INTENT (IN) :: delt, p_mks, to
265 REAL(DBL),
INTENT (IN) :: tn(:)
266 REAL(DBL),
INTENT (IN) :: qc_mks, qc_old_mks, qr_mks, qr_old_mks
267 REAL(DBL),
INTENT (IN) :: rhoc_mks
268 REAL(DBL),
INTENT (INOUT) :: toa, rb_mks, fr
269 INTEGER,
INTENT (INOUT) :: bflag
270 REAL(DBL),
INTENT (OUT) :: tnp1(:)
271 REAL(DBL),
INTENT (OUT) :: tflame
274 SUBROUTINE zn_sswsb(G_ZN, P, qr, To, rhoc, rb, Ts, Tf, fr, Tn)
277 REAL(DBL),
INTENT(IN) :: p, qr, to, rhoc
278 REAL(DBL),
INTENT(OUT) :: rb, ts, tf, fr
279 REAL(DBL),
INTENT(OUT) :: tn(:)
283 toa, rb, ts, fr, tn, tnp1)
286 REAL(DBL),
INTENT(IN) :: delt, p, qr, to, rhoc
287 REAL(DBL),
INTENT(IN) :: qr_old, fr_old, toa
288 REAL(DBL),
INTENT(OUT) :: rb, ts, fr
289 REAL(DBL),
INTENT(IN) :: tn(:)
290 REAL(DBL),
INTENT(OUT) :: tnp1(:)
297 REAL(DBL) :: p, qc, qc_old, qr, qr_old, rhoc, rb
302 tflame = g_zn%Tf_adiabatic
306 IF(tn(1) > g_zn%To)
THEN
310 p = p_mks *9.869232667e-6
312 qr = qr_mks * 0.2388459e-4
313 qc = qc_mks * 0.2388459e-4
314 qr_old = qr_old_mks * 0.2388459e-4
315 qc_old = qc_old_mks * 0.2388459e-4
316 rhoc = rhoc_mks*1.0e-3
320 toa, rb, ts, fr, tn, tnp1)
329 p = p_mks *9.869232667e-6
330 rhoc = rhoc_mks*1.0e-3
331 qr = qr_mks * 0.2388459e-4
333 CALL
zn_sswsb(g_zn, p, qr, g_zn%To, rhoc, rb, ts, tf, fr, tnp1)
343 IF(g_zn%ign_flag == 1)
THEN
349 WRITE(*,*)
'ROCBURN_ZN: rank=',g_zn%rank
350 WRITE(*,*)
' Error: igntion model not ready'
351 WRITE(*,*)
' job aborted'
352 CALL mpi_abort( mpi_comm_world, -1)
subroutine get_burning_rate_1d(G_APN, delt, P_mks, To, Tn, qc_mks, qc_old_mks, qr_mks, qr_old_mks, rhoc_mks, Toa, rb_mks, fr, bflag, Tnp1, Tflame, p_coor)
subroutine get_time_step_1d(bp, rb, Toa, dt_max)
subroutine initialize_0d(G_APN, comm, Indir, nxmax, To_read)
subroutine initialize_1d(G_APN, bflag, P_mks, To, rhoc_mks, p_coor, rb_mks, Toa, fr, Tn, Tflame)
subroutine get_film_coeff_1d(G_ZN, p_coor, Ts, T_euler, P, qc, qcPrime)
subroutine zn_sswsb(G_ZN, P, qr, To, rhoc, rb, Ts, Tf, fr, Tn)
subroutine zn_gen_grid(G_ZN, gridtype, numx, x, z, zx, zxx)
void int int int REAL REAL REAL * z
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
subroutine finalize_0d(G_APN)
subroutine zn_calc_burning_rate(G_ZN, delt, P, qr, To, rhoc, qr_old, fr_old, Toa, rb, Ts, fr, Tn, Tnp1)
subroutine check_alloc(ierr)