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

📄 p7.for

📁 关于simple算法
💻 FOR
字号:
*=======================================================================
      SUBROUTINE USER(K)
*-----------------------------------------------------------------------
$INCLUDE:'SIMPLE.INC'
      DIMENSION TH(22),THU(22),THDIF(22),THCV(22),THCVS(22)
      EQUIVALENCE(X,TH),(XU,THU),(XDIF,THDIF),(XCV,THCV),
     + (XCVS,THCVS),(XL,THL)
*-----------------------------------------------------------------------
      COMMON/CNTL/LSTOP
      COMMON/SORC/SMAX,SSUM
      COMMON/COEF/FLOW,DIFF,ACOF
*-----------------------------------------------------------------------
*---------------------------   PROBLEM  7   ----------------------------
*-----------------------------------------------------------------------
	DIMENSION T(22,22)
	EQUIVALENCE (F(1,1,4),T(1,1))
*-----------------------------------------------------------------------
	GOTO (1,2,3,4,5,6),K
*-----------------------------------------------------------------------
*	ENTRY GRID
1	XL=1.
	YL=1.
	L1=7
	M1=7
	MODE=1
	CALL SUPPLY(1)
	RETURN
*-----------------------------------------------------------------------
*	ENTRY START
2	CONTINUE
	DO 14 I=1,4
	LSOLVE(I)=.TRUE.
14	LPRINT(I)=.TRUE.
	TITLE(1)=' VEL U '
	TITLE(2)=' VEL V '
	TITLE(3)=' STR FN'
	TITLE(4)=' TEMP  '
	TITLE(11)='PRESSURE'
	TITLE(5)=' W/WBAR  '
	RELAX(1)=0.5
	RELAX(2)=0.5
	RELAX(11)=0.8
	LPRINT(11)=.TRUE.
	LPRINT(5)=.TRUE.
	LAST=25
	GBR=1.E+4
	DPDZ=-3000.
	DO 100 J=1,M1
	DO 100 I=1,L1
	U(I,J)=0.
	V(I,J)=0.
	T(I,J)=0.
	T(L1,J)=1.
	F(I,J,5)=100.
	IF(I.EQ.1.OR.I.EQ.L1)F(I,J,5)=0.
	IF(J.EQ.1.OR.J.EQ.M1)F(I,J,5)=0.
100	CONTINUE
	PR=.7
	AMU=1.
	AMUP=AMU/PR
	RETURN
*-----------------------------------------------------------------------
*	ENTRY DENSE
3	CONTINUE
	RETURN
*-----------------------------------------------------------------------
*	ENTRY BOUND
4	CONTINUE
	FRE=0.
	IF(ITER.LT.20)RETURN
	IF(LSOLVE(5))GOTO 301
	DO 300 NF=1,4
300	LSOLVE(NF)=.FALSE.
	LSOLVE(5)=.TRUE.
301	WBAR=0.
	DO 302 J=2,M2
	DO 302 I=2,L2
302	WBAR=WBAR+F(I,J,5)*XCV(I)*YCV(J)
	FRE=-DPDZ*2.*XL*YL/(WBAR*AMU)
	RETURN
*-----------------------------------------------------------------------
*	ENTRY OUTPUT
5	CONTINUE
	IF(ITER.NE.0) GO TO 400
	WRITE(*,401)
401	FORMAT('   ITER',6X,'SMAX',8X,'SSUM',7X,'V(6,4)',6X,
     + 'T(2,6)',6X,'F.RE')
400	WRITE(*,403) ITER,SMAX,SSUM,V(6,4),T(2,6),FRE
403	FORMAT(I6,1P5E12.3)
	IF(ITER.NE.LAST)RETURN
	DO 410 J=1,M1
	DO 410 I=1,L1
410	F(I,J,5)=F(I,J,5)/WBAR
	CALL SUPPLY(2)
	RETURN
*-----------------------------------------------------------------------
*	ENTRY GAMSOR
6	CONTINUE
	DO 500 J=1,M1
	DO 500 I=1,L1
	GAM(I,J)=AMU
	IF(NF.NE.4) GO TO 500
	GAM(I,J)=AMUP
	GAM(I,1)=0.
	GAM(I,M1)=0.
500	CONTINUE
	DO 510 J=2,M2
	DO 510 I=2,L2
	IF(NF.NE.2) GOTO 503
	IF(J.EQ.2)GOTO 510
	TM=0.5*(T(I,J)+T(I,J-1))
	CON(I,J)=TM*GBR
	GOTO 510
503	IF(NF.NE.5)GOTO 510
	CON(I,J)=-DPDZ
510	CONTINUE
	RETURN
	END

⌨️ 快捷键说明

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