diff --git a/code/m_parameters.f90 b/code/m_parameters.f90 index a096fa2..2e868e4 100644 --- a/code/m_parameters.f90 +++ b/code/m_parameters.f90 @@ -12,6 +12,7 @@ module m_parameters ! Transport Properties real :: vis,sc,diff real :: d_turb + integer :: d_mode real :: scp,prp,lep,vis0p,rod real :: lewis, le_a, le_x @@ -122,6 +123,7 @@ contains CALL READ_PARAMETER (nrxn) ! number of reactions CALL READ_PARAMETER (d_turb) ! turbulent diffusivity + CALL READ_PARAMETER (d_mode) ! diffusivity formula selector ! READ(itape,*) cdum,table_size ! WRITE(otape,*) cdum,table_size diff --git a/code/sample/itape.py b/code/sample/itape.py index ea3c0bf..1a5c078 100755 --- a/code/sample/itape.py +++ b/code/sample/itape.py @@ -40,6 +40,7 @@ le_x 0.20 nsp 2 nrxn 1 d_turb 0 +d_mode 0 ''' ).split() diff --git a/code/ysolve.f90 b/code/ysolve.f90 index 37d8ef9..fed339a 100644 --- a/code/ysolve.f90 +++ b/code/ysolve.f90 @@ -89,17 +89,33 @@ !------------------------------------------------------------------------ SUBROUTINE solve - IF (reaction_type == "onestep") THEN - CALL solve_ (fonestep, SET_IC_ONESTEP) - ELSE IF (reaction_type == "twostep") THEN - CALL solve_ (fns, SET_IC_TWOSTEP) + IF (d_mode == 0) THEN + CALL solve_with_diffusivity (update_dm) + ELSE IF (d_mode == 1) THEN + CALL solve_with_diffusivity (update_dm) ELSE - WRITE(*,*)'ERROR, UNSUPPORTED REACTION ', trim(reaction_type), '. STOPPING' + WRITE(*,*)'ERROR, UNSUPPORTED DIFFUSIVITY ', d_mode, '. STOPPING' STOP END IF END SUBROUTINE solve - SUBROUTINE solve_ (rhs, SET_IC) + SUBROUTINE solve_with_diffusivity (calc_diff) + INTERFACE + SUBROUTINE calc_diff + END SUBROUTINE calc_diff + END INTERFACE + + IF (reaction_type == "onestep") THEN + CALL solve_ (fonestep, SET_IC_ONESTEP, calc_diff) + ELSE IF (reaction_type == "twostep") THEN + CALL solve_ (fns, SET_IC_TWOSTEP, calc_diff) + ELSE + WRITE(*,*)'ERROR, UNSUPPORTED REACTION ', trim(reaction_type), '. STOPPING' + STOP + END IF + END SUBROUTINE solve_with_diffusivity + + SUBROUTINE solve_ (rhs, SET_IC, calc_diff) INTERFACE SUBROUTINE rhs(r1,f) @@ -109,6 +125,9 @@ SUBROUTINE SET_IC END SUBROUTINE SET_IC + + SUBROUTINE calc_diff + END SUBROUTINE calc_diff END INTERFACE INTEGER :: i,j,k,savenum