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
|
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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue