⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 123.f90

📁 用fortran编写的长波传播计算程序
💻 F90
字号:
!!!!!!!!!!!!!!显式计算
!!!!!!!!!!!!!!作者:崔海洋  5010139006
!!!!!变量说明
  !!UNEW(I),UREN(I),UOLD(I)     U(n+1),U(n),U(n-1)流速值
  !!HNEW(I),HREN(i),HOLD(I)     H(n+1),H(n),H(n-1)的水深值
  !!S1,S2           上游和下游边界的波浪波高 
  !!IMAX=800         断面个数
  !!HO              初始水深值
  !!DT=30           时间步长
  !!DX=1000         距离步长
  !!
 
INTEGER,PARAMETER:: IMAX=800

 REAL:: UNEW(-1:IMAX),UREN(-1:IMAX),UOLD(-1:IMAX),HNEW(-1:IMAX),HREN(-1:IMAX),HOLD(-1:IMAX)
 REAL:: H0=10.0,DT=30,DX=1000
 REAL:: C=122.3167,W=2*3.142/12.4/3600,G=9.81,S1=1.5,S2 
 REAL:: B
 
  B=8*G/3./3.142/C/C
 IMAX1=IMAX-1
 DO I=0,IMAX
  
  HOLD(I)=1.5*(800-I)/800.

 
  UNEW(I)=0.0
  UREN(I)=0.0
  UOLD(I)=0.0
 ENDDO
  
    
!!欧拉步进
	DO I=1,IMAX1
	  
	  HREN(I)=HOLD(I)-DT/2./DX*(10.0+HOLD(I))*(UOLD(I+1)-UOLD(I-1))
	  UREN(I)=UOLD(I)-DT/2./DX*G*(HOLD(I+1)-HOLD(I-1))
	 
    ENDDO 
	 UREN(IMAX)=UREN(IMAX1)
	 UREN(0)=UREN(1)
	 HREN(0)=1.5
	 HREN(IMAX)=0.
	  
	
	
	 T=DT
    
     OPEN(3,FILE='DIANSHUJU.DAT',STATUS='REPLACE')
 DO  N=1,2880
     T=T+DT
	
     
     S2=0.5*SIN(W*T)
     HNEW(IMAX)=S2
	 HNEW(0)=1.5
      DO I=0,IMAX1 
    
      HNEW(I)=HOLD(I)-DT/DX*(10.0+HREN(I))*(UREN(I+1)-UREN(I-1))
      UNEW(I)=UOLD(I)-DT/DX*G*(HREN(I+1)-HREN(I-1))&
	          -2.*DT*G*ABS(UOLD(I))*UREN(I)/C/C/(10.0+HREN(I))
  
      ENDDO
	  UNEW(IMAX)=UNEW(IMAX1)
	  UNEW(0)=UNEW(1)
 
 
 
      DO I=0,IMAX
      UOLD(I)=UREN(I)
      UREN(I)=UNEW(I)
      ENDDO

      DO I=0,IMAX
      HOLD(I)=HREN(I)
      HREN(I)=HNEW(I)
      ENDDO
    
  
  WRITE(3,'(1F10.5)')(HNEW(800))

 
 ENDDO 
   CLOSE(3)
  OPEN(2,FILE='SHUJU.DAT',STATUS='REPLACE')
  
  WRITE(2,'(1F10.5)')(HNEW(I),I=0,IMAX)
 CLOSE(2)
STOP
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -