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

📄 nonref.f90

📁 1D有限差分波动方程模拟
💻 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 + -