📄 nonref.f90
字号:
!-----------------------------------------------------------------------SUBROUTINE NONREF (H, KEY, VEL, & AX01, AX02, AX10, AX11, AX12, AX20, AX21, AX22) USE PRECISION , ONLY: & WP, DP USE CONTROL_DATA, ONLY: & DT, OMG, WB!----------------------------------------------------------------------- IMPLICIT NONE INTEGER, INTENT (IN) :: KEY REAL (KIND=WP), INTENT (IN) :: H, VEL REAL (KIND=WP), INTENT (OUT) :: & AX01, AX02, AX10, AX11, AX12, AX20, AX21, AX22 REAL (KIND=DP) :: gplus, gminus, dtaux, haux, & aa00,aa01,aa02,aa10,aa11,aa12,aa20,aa21,aa22 REAL (KIND=WP) :: TMP, TMP1, TMP2!----------------------------------------------------------------------- SELECT CASE ( KEY )! Solid Boundary CASE DEFAULT AX01 = 0._WP AX02 = 0._WP AX10 = 0._WP AX11 = 0._WP AX12 = 0._WP AX20 = 0._WP AX21 = 0._WP AX22 = 0._WP ! Plane of Symmetry CASE ( 0 ) AX01 = 0._WP AX02 = 1._WP AX10 = 0._WP AX11 = 0._WP AX12 = 0._WP AX20 = 0._WP AX21 = 0._WP AX22 = 0._WP ! Reynolds CASE ( 2 ) TMP = -DT*VEL/H AX01 = 0._WP AX02 = 0._WP AX10 = 1._WP + TMP AX11 = 1._WP - TMP AX12 = 0._WP AX20 = 0._WP AX21 = -1._WP - TMP AX22 = TMP ! Peng & Toksoz CASE ( 3 )! gplus = DBLE (THPP)! gminus= DBLE (THSS) gplus = DBLE (0._WP) gminus= DBLE (0._WP) dtaux = DBLE (OMG*DT) haux = DBLE (OMG/VEL*H) CALL OptAbsBc(gplus, gminus, dtaux, haux, & aa00,aa01,aa02,aa10,aa11,aa12,aa20,aa21,aa22) AX01 = REAL (aa01) AX02 = REAL (aa02) AX10 = REAL (aa10) AX11 = REAL (aa11) AX12 = REAL (aa12) AX20 = REAL (aa20) AX21 = REAL (aa21) AX22 = REAL (aa22)! Emerman & Stephen CASE ( 4 ) TMP1 = ( DT - H/VEL )/( DT + H/VEL ) TMP2 = 2._WP*H/VEL /( DT + H/VEL ) AX01 = TMP1 AX02 = 0._WP AX10 = TMP2 AX11 = TMP2 AX12 = 0._WP AX20 = TMP1 AX21 = -1._WP AX22 = 0._WP! Clayton & Engquist A1 CASE ( 5 ) TMP1 = VEL*DT/H AX01 = - ( 1._WP - TMP1 )/( 1._WP + TMP1 ) AX02 = 0._WP AX10 = ( 1._WP - TMP1 )/( 1._WP + TMP1 ) AX11 = 1._WP AX12 = 0._WP AX20 = 0._WP AX21 = 0._WP AX22 = 0._WP! Higdon + Clayton & Engquist A1 Simple CASE ( 6 ) CALL HIGCE_FD ( WB, VEL, VEL, DT, H, & aa00,aa01,aa02,aa10,aa11,aa12,aa20,aa21,aa22) AX01 = REAL (aa01,WP) AX02 = REAL (aa02,WP) AX10 = REAL (aa10,WP) AX11 = REAL (aa11,WP) AX12 = REAL (aa12,WP) AX20 = REAL (aa20,WP) AX21 = REAL (aa21,WP) AX22 = REAL (aa22,WP) END SELECTEND SUBROUTINE NONREF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -