From 4c4411d6d3c23c067e3a61c90762085908fa328b Mon Sep 17 00:00:00 2001 From: ignis Date: Wed, 26 Feb 2020 12:42:23 +0900 Subject: [PATCH] moved rhs selecting conditional to upper level --- code/ysolve.f90 | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/code/ysolve.f90 b/code/ysolve.f90 index ede43c3..d967215 100644 --- a/code/ysolve.f90 +++ b/code/ysolve.f90 @@ -90,15 +90,23 @@ SUBROUTINE solve IF (reaction_type == "onestep") THEN - CALL solve_ + CALL solve_ (fonestep) ELSE IF (reaction_type == "twostep") THEN - CALL solve_ + CALL solve_ (fns) ELSE - CALL solve_ + WRITE(*,*)'ERROR, UNSUPPORTED REACTION ', trim(reaction_type), '. STOPPING' + STOP END IF END SUBROUTINE solve - SUBROUTINE solve_ + SUBROUTINE solve_ (rhs) + + INTERFACE + SUBROUTINE rhs(r1,f) + REAL, INTENT(IN), DIMENSION(:,:) :: r1 + REAL, INTENT(OUT), DIMENSION(:,:) :: f + END SUBROUTINE rhs + END INTERFACE INTEGER :: i,j,k,savenum REAL :: pflame,pflold,delf=0. @@ -127,14 +135,7 @@ CALL SET_BC - if ( reaction_type == "onestep" ) then - CALL RK4(fonestep) - else if ( reaction_type == "twostep" ) then - CALL RK4(fns) - else - WRITE(*,*) 'ERROR, UNDEFINED REACTION TYPE ', reaction_type - stop - end if + CALL RK4(rhs) IF (t_uf.ge.dt_uf) THEN pflold=pflame