calculate diffusivity using argument passed

This commit is contained in:
ignis 2020-02-27 08:23:02 +09:00
parent 5aa8111eb6
commit 1b4ab8456e

View file

@ -101,7 +101,8 @@
SUBROUTINE solve_with_diffusivity (calc_diff) SUBROUTINE solve_with_diffusivity (calc_diff)
INTERFACE INTERFACE
SUBROUTINE calc_diff SUBROUTINE calc_diff(r1)
REAL, INTENT(IN), DIMENSION(:,:) :: r1
END SUBROUTINE calc_diff END SUBROUTINE calc_diff
END INTERFACE END INTERFACE
@ -126,7 +127,8 @@
SUBROUTINE SET_IC SUBROUTINE SET_IC
END SUBROUTINE SET_IC END SUBROUTINE SET_IC
SUBROUTINE calc_diff SUBROUTINE calc_diff(r1)
REAL, INTENT(IN), DIMENSION(:,:) :: r1
END SUBROUTINE calc_diff END SUBROUTINE calc_diff
END INTERFACE END INTERFACE
@ -163,7 +165,7 @@
CALL SET_BC CALL SET_BC
CALL RK4(rhs) CALL RK4(rhs, calc_diff)
IF (t_uf.ge.dt_uf) THEN IF (t_uf.ge.dt_uf) THEN
pflold=pflame pflold=pflame
@ -478,13 +480,17 @@
END SUBROUTINE finalize_solver END SUBROUTINE finalize_solver
SUBROUTINE RK4(rhs) SUBROUTINE RK4(rhs, calc_diff)
INTERFACE INTERFACE
SUBROUTINE rhs(r1,f) SUBROUTINE rhs(r1,f)
REAL, INTENT(IN), DIMENSION(:,:) :: r1 REAL, INTENT(IN), DIMENSION(:,:) :: r1
REAL, INTENT(OUT), DIMENSION(:,:) :: f REAL, INTENT(OUT), DIMENSION(:,:) :: f
END SUBROUTINE rhs END SUBROUTINE rhs
SUBROUTINE calc_diff(r1)
REAL, INTENT(IN), DIMENSION(:,:) :: r1
END SUBROUTINE calc_diff
END INTERFACE END INTERFACE
CALL substep(1,y1,y1,y2,yf) CALL substep(1,y1,y1,y2,yf)
@ -516,7 +522,7 @@
INTEGER :: i,j,k INTEGER :: i,j,k
REAL :: at,bt REAL :: at,bt
CALL update_dm CALL calc_diff(ri)
CALL rhs(ri,f) CALL rhs(ri,f)
@ -533,7 +539,8 @@
END SUBROUTINE RK4 END SUBROUTINE RK4
SUBROUTINE update_dm SUBROUTINE update_dm(r1)
REAL, INTENT(IN),DIMENSION(:,:) :: r1
INTEGER :: i INTEGER :: i
DO i=1,nx DO i=1,nx
@ -541,6 +548,15 @@
ENDDO ENDDO
END SUBROUTINE update_dm END SUBROUTINE update_dm
SUBROUTINE update_dm_cd(r1)
REAL, INTENT(IN),DIMENSION(:,:) :: r1
INTEGER :: i
DO i=1,nx
dm(i) = diff + d_turb
ENDDO
END SUBROUTINE update_dm_cd
SUBROUTINE fonestep(r1,f) SUBROUTINE fonestep(r1,f)
REAL, INTENT(IN),DIMENSION(:,:) :: r1 REAL, INTENT(IN),DIMENSION(:,:) :: r1
REAL, INTENT(OUT),DIMENSION(:,:) :: f REAL, INTENT(OUT),DIMENSION(:,:) :: f