|
这种情况该如何解决,在第一个end if处出现:0x00007FF7914E1983 处(位于 intelcal64.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000000000000000 时发生访问冲突。
以下是原代码:
SUBROUTINE GET_NodeLoad(NUM_ELEMENT1,SumNodeLoad)
use all_control, only: iflag_dimension
use ALL_CONTROL, only: ESP, N_MAXSIDE,NG
use ALL_CONTROL, only: IFLAG_ElementLoad,IFLAG_Weight,IFLAG_Thermal,IFLAG_Creep,IFLAG_Viscous,IFLAG_InPresure
USE ELEMENT, only: N_SIDE, N_S_IN
use io_control, only: IFLAG_OUTPUT
use element
implicit none
integer*4,intent(in) :: NUM_ELEMENT1
real*8,intent(out) :: SumNodeLoad(N_MAXSIDE*iflag_dimension)
real*8 :: NodeLoad(N_side(NUM_ELEMENT1)*iflag_dimension)
real*8 thermal_force(MAXVAL(N_side)*iflag_dimension)
integer*4 :: FD
integer*4 J,L
if(.not.IFLAG_ElementLoad) return
SumNodeLoad = 0.D0
FD = N_side(NUM_ELEMENT1)*iflag_dimension
call GET_NodeLoad_from_in(NUM_ELEMENT1,NodeLoad)!,PASCAL)
SumNodeLoad(1:FD) = SumNodeLoad(1:FD) - NodeLoad(1:FD)
IF(IFLAG_Thermal)THEN
CALL GET_NodeLoad_thermal(NUM_ELEMENT1,NodeLoad)
SumNodeLoad(1:FD) = SumNodeLoad(1:FD) + NodeLoad(1:FD)
end if
IF(IFLAG_Creep) THEN
CALL GET_NodeLoad_creep(NUM_ELEMENT1,NodeLoad)
SumNodeLoad(1:FD) = SumNodeLoad(1:FD) + NodeLoad(1:FD)
END IF
RETURN
END
|
|