文件
tem3dfdtd-open/tem3dfdtd/lib/free-memory.f90
T
2026-08-14 20:51:58 +08:00

45 行
2.0 KiB
Fortran

!Copyright (c) 2013 by https://git.em3d.cn/ under guide of Xiu Li(lixiu@chd.edu.cn)
!written by Huaifeng Sun(sunhuaifeng@email.sdu.edu.cn) and Xushan Lu(luxushan@gmail.com)
!Code distribution @ https://git.em3d.cn/
SUBROUTINE FREE_MEMORY
USE CONSTANTPARAMETERS
USE ELECTROMAGNETIC_VARIABLES
USE RES_MODEL_PARAMETER
USE TIME_PARAMETER
USE PML_PARAMETER
IMPLICIT NONE
INTEGER ERR
DEALLOCATE(EX, EY, EZ, STAT=ERR)
DEALLOCATE(HX, HY, HZ, STAT=ERR)
DEALLOCATE(CCSIG, STAT=ERR)
DEALLOCATE(CTIME, STAT=ERR)
DEALLOCATE(DELT, STAT=ERR)
DEALLOCATE(CDELX,CDELY,CDELZ,STAT=ERR)
IF(Logic_PML==1)THEN
DEALLOCATE(psi_Exy_1, psi_Exy_2, psi_Exz_1, psi_Exz_2, &
psi_Eyx_1, psi_Eyx_2, psi_Eyz_1, psi_Eyz_2, &
psi_Ezx_1, psi_Ezx_2, psi_Ezy_1, psi_Ezy_2, &
psi_Hxy_1, psi_Hxy_2, psi_Hxz_1, psi_Hxz_2, &
psi_Hyx_1, psi_Hyx_2, psi_Hyz_1, psi_Hyz_2, &
psi_Hzx_1, psi_Hzx_2, psi_Hzy_1, psi_Hzy_2, &
psi_Hzz_1, psi_Hzz_2, STAT=ERR)
DEALLOCATE(b_e_x1,c_e_x1,alpha_PML_e_x1,sig_PML_e_x1,kappa_PML_e_x1)
DEALLOCATE(b_h_x1,c_h_x1,alpha_PML_h_x1,sig_PML_h_x1,kappa_PML_h_x1)
DEALLOCATE(b_e_x2,c_e_x2,alpha_PML_e_x2,sig_PML_e_x2,kappa_PML_e_x2)
DEALLOCATE(b_h_x2,c_h_x2,alpha_PML_h_x2,sig_PML_h_x2,kappa_PML_h_x2)
DEALLOCATE(b_e_y1,c_e_y1,alpha_PML_e_y1,sig_PML_e_y1,kappa_PML_e_y1)
DEALLOCATE(b_h_y1,c_h_y1,alpha_PML_h_y1,sig_PML_h_y1,kappa_PML_h_y1)
DEALLOCATE(b_e_y2,c_e_y2,alpha_PML_e_y2,sig_PML_e_y2,kappa_PML_e_y2)
DEALLOCATE(b_h_y2,c_h_y2,alpha_PML_h_y2,sig_PML_h_y2,kappa_PML_h_y2)
DEALLOCATE(b_e_z1,c_e_z1,alpha_PML_e_z1,sig_PML_e_z1,kappa_PML_e_z1)
DEALLOCATE(b_h_z1,c_h_z1,alpha_PML_h_z1,sig_PML_h_z1,kappa_PML_h_z1)
DEALLOCATE(b_e_z2,c_e_z2,alpha_PML_e_z2,sig_PML_e_z2,kappa_PML_e_z2)
DEALLOCATE(b_h_z2,c_h_z2,alpha_PML_h_z2,sig_PML_h_z2,kappa_PML_h_z2)
ENDIF
DEALLOCATE(den_ex,den_hx,den_ey,den_hy,den_ez,den_hz)
DEALLOCATE(c_h_zz)
DEALLOCATE(inv_hz_den)
RETURN
ENDSUBROUTINE FREE_MEMORY