MSJGMX/Fortran/Mc_method.f90

65 lines
2.1 KiB
Fortran
Raw Normal View History

2025-05-09 14:01:19 +08:00
! Mc_method.f90
!
! FUNCTIONS:
! Mc_method - Entry point of console application.
!
!****************************************************************************
!
! PROGRAM: Mc_method
!
! PURPOSE: Entry point for the console application.
!
!****************************************************************************
SUBROUTINE Mc_method( NFILENAME ,& ! <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ֳ<EFBFBD><D6B3><EFBFBD> <20><><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
FILENAME ,& ! <20>ļ<EFBFBD><C4BC><EFBFBD> <20>ַ<EFBFBD><D6B7><EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
N ,& ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Q1 ,& ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Q20 ,& ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼֵ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD>
X ,& ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
K ,& ! <20><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DETAT ,& ! ʱ<><EFBFBD><E4B2BD> <20><>Сʱ<D0A1><CAB1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
C0 ,& ! ϵ<><CFB5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
C1 ,& ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
C2 ,& ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Q2 ) ! <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> //<2F><><EFBFBD><EFBFBD>
INTEGER::NFILENAME
CHARACTER(LEN = NFILENAME)::FILENAME
INTEGER::N
REAL::Q1(1000)
REAL::Q20
REAL::Q2(1000)
REAL::I1
REAL::I2
REAL::C0
REAL::C1
REAL::C2
REAL::X
REAL::K
REAL::DETAT
INTEGER::I
C0 = (0.5*DETAT - K*X)/(0.5*DETAT + K - K*X)
C1 = (0.5*DETAT + K*X)/(0.5*DETAT + K - K*X)
C2 = (-0.5*DETAT +K - K*X)/(0.5*DETAT + K - K*X)
Q2(1) =Q20
DO I = 2,N
I2 = Q1(I)
I1 = Q1(I-1)
Q2(I) = C0*I2 + C1*I1 + C2*Q2(I-1)
END DO
END SUBROUTINE Mc_method