📄 strain.f90
字号:
!=======================================================================SUBROUTINE STRAIN (D) USE PRECISION , ONLY: & WP USE CONTROL_DATA, ONLY: & KTTO, MZ USE AUXIL , ONLY: & AH, BH, CH USE WAVEFIELD , ONLY: & E!----------------------------------------------------------------------- IMPLICIT NONE INTEGER :: L REAL(WP), DIMENSION(0:MZ), INTENT(INOUT) :: D!----------------------------------------------------------------------- IF ( KTTO < 0 ) THEN ! top boundary is free surface: use AFDA E (0) = CH*( - 11._WP/12._WP * D (0) & + 17._WP/24._WP * D (1) & + 3._WP/ 8._WP * D (2) & - 5._WP/24._WP * D (3) & + 1._WP/24._WP * D (4) ) ELSE IF ( KTTO == 0 ) THEN ! top boundary is plane of symmetry: use symmetric imaging E (0) = AH*( D (2) - D (1) ) & + BH*( D (1) - D (0) ) ELSE ! top boundary is 'non-reflecting': use 2nd order FDA E (0) = CH*( D (1) - D (0) ) END IF DO L = 1, MZ-2 ! interior FD scheme E (L) = AH*( D (L+2) - D (L-1) ) & + BH*( D (L+1) - D (L ) ) END DO ! bottom boundary is 'non-reflecting': use 2nd order FDA L = MZ-1 E (L) = CH*( D (L+1) - D (L ) )END SUBROUTINE STRAIN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -