move parameter reader from ysolve to m_parameters

This commit is contained in:
ignis 2019-08-30 07:04:39 +09:00
parent a974e2959d
commit 042e594e07
3 changed files with 100 additions and 78 deletions

View file

@ -36,6 +36,84 @@ module m_parameters
INTEGER :: ncyc=0,int_pr,nx INTEGER :: ncyc=0,int_pr,nx
LOGICAL :: read_itape, read_stdin
CHARACTER(100) :: itape_name
contains contains
SUBROUTINE READ_INTRO
CHARACTER(LEN=8) :: cdum
INTEGER :: itape=300,otape=301
INTEGER :: i
IF (read_stdin) THEN
itape=5
ELSE
OPEN(itape,FILE=itape_name)
END IF
OPEN(otape,FILE='otape')
READ(itape,*) cdum,nx
WRITE(otape,*) cdum,nx
READ(itape,*) cdum,l_0
WRITE(otape,*) cdum,l_0
READ(itape,*) cdum,int_pr
WRITE(otape,*) cdum,int_pr
READ(itape,*) cdum,tar_lo
WRITE(otape,*) cdum,tar_lo
READ(itape,*) cdum,dt
WRITE(otape,*) cdum,dt
READ(itape,*) cdum,sc
WRITE(otape,*) cdum,sc
READ(itape,*) cdum,vis
WRITE(otape,*) cdum,vis
READ(itape,*) cdum,pre
WRITE(otape,*) cdum,pre
READ(itape,*) cdum,ac
WRITE(otape,*) cdum,ac
READ(itape,*) cdum,bc
WRITE(otape,*) cdum,bc
READ(itape,*) cdum,u0
WRITE(otape,*) cdum,u0
READ(itape,*) cdum,tf
WRITE(otape,*) cdum,tf
READ(itape,*) cdum,dt_uf
WRITE(otape,*) cdum,dt_uf
READ(itape,*) cdum,ctmp
WRITE(otape,*) cdum,ctmp
READ(itape,*) cdum,c_cut
WRITE(otape,*) cdum,c_cut
! READ(itape,*) cdum,cs
! WRITE(otape,*) cdum,cs
READ(itape,*) cdum,c_ref
WRITE(otape,*) cdum,c_ref
READ(itape,*) cdum,min_wr
WRITE(otape,*) cdum,min_wr
READ(itape,*) cdum,prof_wr
WRITE(otape,*) cdum,prof_wr
READ(itape,*) cdum,lewis
WRITE(otape,*) cdum,lewis
IF (.not.read_stdin) THEN
CLOSE(itape)
END IF
l_0=l_0*pi
hx=l_0/REAL(nx)
cdum='hx'
WRITE(otape,*) cdum,hx
cdum='Ta/Tu'
WRITE(otape,*) cdum,ac
cdum='Tb/Tu'
WRITE(otape,*) cdum,bc+1
diff=vis/sc
cdum='diff'
WRITE(otape,*) cdum,diff
refwr=pre*1.*exp(-ac/(1.+bc*c_ref))
END SUBROUTINE READ_INTRO
end module m_parameters end module m_parameters

View file

@ -7,5 +7,11 @@
USE ysolve USE ysolve
IMPLICIT NONE IMPLICIT NONE
CALL parse CALL parse
CALL init_solver
CALL solve CALL solve
CALL finalize_solver
END PROGRAM test END PROGRAM test

View file

@ -21,9 +21,6 @@
2114624349019./3568978502595., & 2114624349019./3568978502595., &
5198255086312./14908931495163. /) 5198255086312./14908931495163. /)
LOGICAL :: read_itape, read_stdin
CHARACTER(100) :: itape_name
CONTAINS CONTAINS
!------------------------------------------------------------------------ !------------------------------------------------------------------------
SUBROUTINE parse SUBROUTINE parse
@ -79,8 +76,6 @@
INTEGER :: i,j,k,savenum INTEGER :: i,j,k,savenum
REAL :: pflame,pflold,delf=0. REAL :: pflame,pflold,delf=0.
CALL READ_INTRO
CALL ludcmp(nx,5,5,1,0,0) CALL ludcmp(nx,5,5,1,0,0)
CALL SET_IC CALL SET_IC
@ -299,80 +294,11 @@
END SUBROUTINE SET_IC END SUBROUTINE SET_IC
SUBROUTINE READ_INTRO SUBROUTINE init_solver
CHARACTER(LEN=8) :: cdum
INTEGER :: itape=300,otape=301,ierr
INTEGER :: i
IF (read_stdin) THEN INTEGER :: ierr
itape=5
ELSE
OPEN(itape,FILE=itape_name)
END IF
OPEN(otape,FILE='otape') CALL READ_INTRO
READ(itape,*) cdum,nx
WRITE(otape,*) cdum,nx
READ(itape,*) cdum,l_0
WRITE(otape,*) cdum,l_0
READ(itape,*) cdum,int_pr
WRITE(otape,*) cdum,int_pr
READ(itape,*) cdum,tar_lo
WRITE(otape,*) cdum,tar_lo
READ(itape,*) cdum,dt
WRITE(otape,*) cdum,dt
READ(itape,*) cdum,sc
WRITE(otape,*) cdum,sc
READ(itape,*) cdum,vis
WRITE(otape,*) cdum,vis
READ(itape,*) cdum,pre
WRITE(otape,*) cdum,pre
READ(itape,*) cdum,ac
WRITE(otape,*) cdum,ac
READ(itape,*) cdum,bc
WRITE(otape,*) cdum,bc
READ(itape,*) cdum,u0
WRITE(otape,*) cdum,u0
READ(itape,*) cdum,tf
WRITE(otape,*) cdum,tf
READ(itape,*) cdum,dt_uf
WRITE(otape,*) cdum,dt_uf
READ(itape,*) cdum,ctmp
WRITE(otape,*) cdum,ctmp
READ(itape,*) cdum,c_cut
WRITE(otape,*) cdum,c_cut
! READ(itape,*) cdum,cs
! WRITE(otape,*) cdum,cs
READ(itape,*) cdum,c_ref
WRITE(otape,*) cdum,c_ref
READ(itape,*) cdum,min_wr
WRITE(otape,*) cdum,min_wr
READ(itape,*) cdum,prof_wr
WRITE(otape,*) cdum,prof_wr
READ(itape,*) cdum,lewis
WRITE(otape,*) cdum,lewis
IF (.not.read_stdin) THEN
CLOSE(itape)
END IF
! hx=l_0*pi/REAL(nx)
hx=l_0*pi/REAL(nx-1)
cdum='hx'
WRITE(otape,*) cdum,hx
cdum='Ta/Tu'
WRITE(otape,*) cdum,ac
cdum='Tb/Tu'
WRITE(otape,*) cdum,bc+1
diff=vis/sc
cdum='diff'
WRITE(otape,*) cdum,diff
! refwr=pre*1.*exp(-ac/(1.+bc*c_cut))
! minf=exp((c_ref-c_cut)*prof_wr)
refwr=pre*1.*exp(-ac/(1.+bc*c_ref))
l_0=l_0*pi
ALLOCATE( u(nx),STAT=ierr) ; u=0. ALLOCATE( u(nx),STAT=ierr) ; u=0.
ALLOCATE(y1(nx,2),STAT=ierr) ; y1=0. ALLOCATE(y1(nx,2),STAT=ierr) ; y1=0.
@ -382,7 +308,19 @@
ALLOCATE(duxt(nx),STAT=ierr) ; duxt=0. ALLOCATE(duxt(nx),STAT=ierr) ; duxt=0.
ALLOCATE(dm(nx),STAT=ierr) ; dm=diff ALLOCATE(dm(nx),STAT=ierr) ; dm=diff
END SUBROUTINE READ_INTRO END SUBROUTINE init_solver
SUBROUTINE finalize_solver
DEALLOCATE( u)
DEALLOCATE(y1)
DEALLOCATE(y2)
DEALLOCATE(yf)
DEALLOCATE(uxt)
DEALLOCATE(duxt)
DEALLOCATE(dm)
END SUBROUTINE finalize_solver
SUBROUTINE RK4(rhs) SUBROUTINE RK4(rhs)