move parameter reader from ysolve to m_parameters
This commit is contained in:
parent
a974e2959d
commit
042e594e07
3 changed files with 100 additions and 78 deletions
|
|
@ -36,6 +36,84 @@ module m_parameters
|
|||
|
||||
INTEGER :: ncyc=0,int_pr,nx
|
||||
|
||||
LOGICAL :: read_itape, read_stdin
|
||||
|
||||
CHARACTER(100) :: itape_name
|
||||
|
||||
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
|
||||
|
|
|
|||
|
|
@ -7,5 +7,11 @@
|
|||
USE ysolve
|
||||
IMPLICIT NONE
|
||||
CALL parse
|
||||
|
||||
CALL init_solver
|
||||
|
||||
CALL solve
|
||||
|
||||
CALL finalize_solver
|
||||
|
||||
END PROGRAM test
|
||||
|
|
|
|||
|
|
@ -21,9 +21,6 @@
|
|||
2114624349019./3568978502595., &
|
||||
5198255086312./14908931495163. /)
|
||||
|
||||
LOGICAL :: read_itape, read_stdin
|
||||
CHARACTER(100) :: itape_name
|
||||
|
||||
CONTAINS
|
||||
!------------------------------------------------------------------------
|
||||
SUBROUTINE parse
|
||||
|
|
@ -79,8 +76,6 @@
|
|||
INTEGER :: i,j,k,savenum
|
||||
REAL :: pflame,pflold,delf=0.
|
||||
|
||||
CALL READ_INTRO
|
||||
|
||||
CALL ludcmp(nx,5,5,1,0,0)
|
||||
|
||||
CALL SET_IC
|
||||
|
|
@ -299,80 +294,11 @@
|
|||
|
||||
END SUBROUTINE SET_IC
|
||||
|
||||
SUBROUTINE READ_INTRO
|
||||
CHARACTER(LEN=8) :: cdum
|
||||
INTEGER :: itape=300,otape=301,ierr
|
||||
INTEGER :: i
|
||||
SUBROUTINE init_solver
|
||||
|
||||
IF (read_stdin) THEN
|
||||
itape=5
|
||||
ELSE
|
||||
OPEN(itape,FILE=itape_name)
|
||||
END IF
|
||||
INTEGER :: ierr
|
||||
|
||||
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
|
||||
|
||||
! 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
|
||||
CALL READ_INTRO
|
||||
|
||||
ALLOCATE( u(nx),STAT=ierr) ; u=0.
|
||||
ALLOCATE(y1(nx,2),STAT=ierr) ; y1=0.
|
||||
|
|
@ -382,7 +308,19 @@
|
|||
ALLOCATE(duxt(nx),STAT=ierr) ; duxt=0.
|
||||
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)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue