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

📄 update.f90

📁 Sfdtd Simple finite-difference time-domain
💻 F90
字号:
! update.f90! ! Update Regeln fuer das FDTD Gitter!!    Copyright (C) 2007  Paul Panserrieu, < peutetre@cs.tu-berlin.de >!!    This program is free software: you can redistribute it and/or modify!    it under the terms of the GNU General Public License as published by!    the Free Software Foundation, either version 3 of the License.! ! last modified: 18-07-2007 01:25:26 PM CESTMODULE updateUSE fdtd_gitter IMPLICIT NONECONTAINSSUBROUTINE h_update(g)  TYPE(gitter), INTENT(INOUT)      :: g  INTEGER                          :: ix, iy, iz  DO iz=g%nzl, g%nzyh, 1    DO iy=g%nyl, g%nyyh, 1      DO ix=g%nxl+1, g%nxyh, 1        g%H(ix, iy, iz, 1) = g%H(ix, iy, iz, 1)                           &                            - g%MAT_MUE                                   &                              * ( g%E(ix  , iy  , iz  , 2)                &                                + g%E(ix  , iy+1, iz  , 3)                &                                - g%E(ix  , iy  , iz+1, 2)                &                                - g%E(ix  , iy  , iz  , 3)                &                                )      ENDDO    ENDDO  ENDDO  DO iz=g%nzl, g%nzyh, 1    DO iy=g%nyl+1, g%nyyh, 1      DO ix=g%nxl, g%nxyh, 1        g%H(ix, iy, iz, 2) = g%H(ix, iy, iz, 2)                             &                              - g%MAT_MUE                                   &                                * ( g%E(ix  , iy  , iz  , 3)                &                                  + g%E(ix  , iy  , iz+1, 1)                &                                  - g%E(ix+1, iy  , iz  , 3)                &                                  - g%E(ix  , iy  , iz  , 1)                &                                  )      ENDDO    ENDDO  ENDDO  DO iz=g%nzl+1, g%nzyh, 1    DO iy=g%nyl, g%nyyh, 1      DO ix=g%nxl, g%nxyh, 1        g%H(ix, iy, iz, 3) = g%H(ix, iy, iz, 3)                             &                              - g%MAT_MUE                                   &                                * ( g%E(ix  , iy  , iz  , 1)                &                                  + g%E(ix+1, iy  , iz  , 2)                &                                  - g%E(ix  , iy+1, iz  , 1)                &                                  - g%E(ix  , iy  , iz  , 2)                &                                  )      ENDDO    ENDDO  ENDDOEND SUBROUTINE h_updateSUBROUTINE e_update(g)  TYPE(gitter), INTENT(INOUT)      :: g  INTEGER                          :: ix, iy, iz  DO iz=g%nzl+1, g%nzyh, 1    DO iy=g%nyl+1, g%nyyh, 1      DO ix=g%nxl, g%nxyh, 1        g%E(ix, iy, iz, 1) = g%E(ix, iy, iz, 1)                             &                             + g%MAT_EPS                                    &                               * ( g%H(ix  , iy  , iz  , 3)                 &                                 - g%H(ix  , iy  , iz  , 2)                 &                                 - g%H(ix  , iy-1, iz  , 3)                 &                                 + g%H(ix  , iy  , iz-1, 2)                 &                                 )      ENDDO    ENDDO  ENDDO  DO iz=g%nzl+1, g%nzyh, 1    DO iy=g%nyl, g%nyyh, 1      DO ix=g%nxl+1, g%nxyh, 1        g%E(ix, iy, iz, 2)= g%E(ix, iy, iz, 2)                              &                             + g%MAT_EPS                                    &                               * ( g%H(ix  , iy  , iz  , 1)                 &                                 - g%H(ix  , iy  , iz  , 3)                 &                                 - g%H(ix  , iy  , iz-1, 1)                 &                                 + g%H(ix-1, iy  , iz  , 3)                 &                                 )      ENDDO    ENDDO  ENDDO  DO iz=g%nzl, g%nzyh, 1    DO iy=g%nyl+1, g%nyyh, 1      DO ix=g%nxl+1, g%nxyh, 1        g%E(ix, iy, iz, 3)= g%E(ix, iy, iz, 3)                              &                             + g%MAT_EPS                                    &                               * ( g%H(ix  , iy  , iz  , 2)                 &                                 - g%H(ix  , iy  , iz  , 1)                 &                                 - g%H(ix-1, iy  , iz  , 2)                 &                                 + g%H(ix  , iy-1, iz  , 1)                 &                                 )              ENDDO    ENDDO  ENDDOEND SUBROUTINE e_updateEND MODULE update

⌨️ 快捷键说明

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