我不明白为什么会出现此运行时错误: 此错误的回溯:
#0 0xffffffffffffffff in ???
#1 0xffffffffffffffff in ???
#2 0xffffffffffffffff in ???
#3 0xffffffffffffffff in ???
#4 0xffffffffffffffff in ???
#5 0xffffffffffffffff in ???
#6 0xffffffffffffffff in ???
#7 0xffffffffffffffff in ???
#8 0xffffffffffffffff in ???
#9 0xffffffffffffffff in ???
0 [main] dertest2 248 cygwin_exception::open_stackdumpfile: Dumping stack trace to dertest2.exe.stackdump
这是我正在运行的代码
integer JELEM, NumPatch, NNODE, NDOFEL, MCRD
integer p, nxi, q, neta
real*8 Weight(1,9)
real*8 PtGaus(2)
integer Jpqr(3)
real*8 COORDS(2,9)
real*8 Xi(6)
real*8 Eta(6)
real*8 DetJac
real*8 R(9)
real*8 dRdx(2,9)
JELEM=1
NNODE=9
MCDR=2
nxi=6
Jpqr(1)=nxi-1
p=2
neta=6
Jpqr(2)=neta-1
q=2
do ii=1,NNODE
Weight(1,ii)=1.d0
enddo
Xi(1)=0.d0
Xi(2)=0.d0
Xi(3)=0.d0
Xi(4)=1.d0
Xi(5)=1.d0
Xi(6)=1.d0
PtGaus(1)=0.211324865405187d0
Eta(1)=0.d0
Eta(2)=0.d0
Eta(3)=0.d0
Eta(4)=1.d0
Eta(5)=1.d0
Eta(6)=1.d0
PtGaus(2)=0.211324865405187d0
COORDS(1,1)=0.d0
COORDS(2,1)=100.d0
COORDS(1,2)=0.d0
COORDS(2,2)=50.d0
COORDS(1,3)=0.d0
COORDS(2,3)=0.d0
COORDS(1,4)=50.d0
COORDS(2,4)=100.d0
COORDS(1,5)=50.d0
COORDS(2,5)=50.d0
COORDS(1,6)=50.d0
COORDS(2,6)=0.d0
COORDS(1,7)=100.d0
COORDS(2,7)=100.d0
COORDS(1,8)=100.d0
COORDS(2,8)=50.d0
COORDS(1,9)=100.d0
COORDS(2,9)=0.d0
call shap2(COORDS,dRdx,NNODE,R,PtGaus,DetJac,NDOFEL,
1 MCRD,JELEM,NumPatch,Jpqr,Weight,Xi,p,nxi,Eta,q,neta)
write(*,*) DetJac
end
include "./derivative.f"
include "./shap2.f"
代码工作正常 ''' write(,) DetJac''' 它不打印值的地方 当要求在子程序 shap2 中编写 DetJac 时,它确实工作正常 这是子程序 shap2
subroutine shap2(COORDS,dRdx,NNODE,R,PtGaus,DetJac,NDOFEL,
1 MCRD,JELEM,NumPatch,Jpqr,Weight,Xi,p,nxi,Eta,q,neta)
implicit none
integer ii,jj
integer JELEM, NumPatch, NNODE, NDOFEL, MCRD
integer n0, p, nxi, m0, q, neta
real*8 Weight(JELEM,NNODE)
real*8 PtGaus(MCRD)
integer Jpqr(3) !contains size nurb func.
real*8 COORDS(MCRD,NNODE) !Coordonnée Control Points (B)
real*8 Xi(nxi)
real*8 Eta(neta)
real*8 N(Jpqr(1),p+1) !Fonction d'inter direction xi
real*8 FN(Jpqr(1)) !Fonction d'inter direction xi at degree p
real*8 M(Jpqr(2),q+1) !Fonction d'inter direction eta
real*8 FM(Jpqr(2)) !Fonction d'inter direction eta at degree q
real*8 dNdxi(Jpqr(1)-p) !Dérivée fonc d'interp direction xi
real*8 dMdEta(Jpqr(2)-q) !Dérivée fonc d'interp direction eta
real*8 J(MCRD,MCRD) !jacobien ds le repère param
real*8 Jinv(MCRD,MCRD) !Inv Jac ds le repère parame
real*8 DetJac
real*8 R(NNODE) !Array of triviate nurbs basis fonction
real*8 dRdxi(Jpqr(1)-p,Jpqr(1)-p)
real*8 dRdeta(Jpqr(2)-q,Jpqr(2)-q)
real*8 dRdx(MCRD,NNODE)
do ii=1,Jpqr(1)
do jj=1,3
N(ii,jj)=0.d0
enddo
enddo
do ii=1,Jpqr(2)
do jj=1,3
M(ii,jj)=0.d0
enddo
enddo
call derivative(p,Xi,nxi,N,dNdxi,Jpqr(1),PtGaus(1))
call derivative(q,Eta,neta,M,dMdeta,Jpqr(2),PtGaus(2))
do ii=1,Jpqr(1)
FN(ii)=N(ii,p+1)
enddo
do ii=1,Jpqr(2)
FM(ii)=M(ii,p+1)
enddo
call NURBS2(p,Xi,nxi,FN,dNdxi,Jpqr(1),q,Eta,neta,FM,dMdeta,
# Jpqr(2), Weight(JELEM,1:),R,dRdxi,dRdeta,COORDS,J,dRdx,DetJac,
# NNODE)
return
end SUBROUTINE shap2
我运行了代码检查,只收到未使用的已定义变量的警告
gfortran -g -fbacktrace -Wall -fcheck=all
这就是我得到的:
f951: Warning: Nonconforming tab character in column 1 of line 75 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 2 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 6 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 78 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 143 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 161 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 162 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 175 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 176 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 3 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 14 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 53 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 138 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 139 [-Wtabs]
f951: Warning: Nonconforming tab character in column 1 of line 140 [-Wtabs]
./shap2.f:34:28:
34 | real*8 Jinv(MCRD,MCRD) !Inv Jac ds le repère parame
| 1
Warning: Unused variable 'jinv' declared at (1) [-Wunused-variable]
./shap2.f:9:28:
9 | integer n0, p, nxi, m0, q, neta
| 1
Warning: Unused variable 'm0' declared at (1) [-Wunused-variable]
./shap2.f:9:16:
9 | integer n0, p, nxi, m0, q, neta
| 1
Warning: Unused variable 'n0' declared at (1) [-Wunused-variable]
./shap2.f:1:63:
1 | subroutine shap2(COORDS,dRdx,NNODE,R,PtGaus,DetJac,NDOFEL,
| 1
Warning: Unused dummy argument 'ndofel' at (1) [-Wunused-dummy-argument]
./shap2.f:2:27:
2 | 1 MCRD,JELEM,NumPatch,Jpqr,Weight,Xi,p,nxi,Eta,q,neta)
| 1
Warning: Unused dummy argument 'numpatch' at (1) [-Wunused-dummy-argument]
./derivative.f:74:20:
74 | # M(m0-q), eps, temp1, temp2, temp3, temp4, gpt, w(NNODE),
| 1
Warning: Unused variable 'eps' declared at (1) [-Wunused-variable]
./derivative.f:69:49:
69 | subroutine NURBS2(p,Xi,nxi,N,dNdxi,n0,q,Eta,neta,M,dMdeta,m0, !ccccccc
| 1
Warning: Unused dummy argument 'eta' at (1) [-Wunused-dummy-argument]
./derivative.f:74:53:
74 | # M(m0-q), eps, temp1, temp2, temp3, temp4, gpt, w(NNODE),
| 1
Warning: Unused variable 'gpt' declared at (1) [-Wunused-variable]
./derivative.f:72:49:
72 | integer p, nxi, n0, q, neta, m0, ii, jj, kk, NNODE
| 1
Warning: Unused variable 'kk' declared at (1) [-Wunused-variable]
./derivative.f:74:41:
74 | # M(m0-q), eps, temp1, temp2, temp3, temp4, gpt, w(NNODE),
| 1
Warning: Unused variable 'temp3' declared at (1) [-Wunused-variable]
./derivative.f:74:48:
74 | # M(m0-q), eps, temp1, temp2, temp3, temp4, gpt, w(NNODE),
| 1
Warning: Unused variable 'temp4' declared at (1) [-Wunused-variable]
./derivative.f:69:28:
69 | subroutine NURBS2(p,Xi,nxi,N,dNdxi,n0,q,Eta,neta,M,dMdeta,m0, !ccccccc
| 1
Warning: Unused dummy argument 'xi' at (1) [-Wunused-dummy-argument]
./derivative.f:174:28:
174 | double precision DetBB
| 1
Warning: Unused variable 'detbb' declared at (1) [-Wunused-variable]
./derivative.f:5:26:
5 | # temp1, temp2, temp3, temp4, gpt
| 1
Warning: Unused variable 'temp3' declared at (1) [-Wunused-variable]
./derivative.f:5:33:
5 | # temp1, temp2, temp3, temp4, gpt
| 1
Warning: Unused variable 'temp4' declared at (1) [-Wunused-variable]
./derivative.f:147:29:
147 | # r,Zeta,nzeta,L,dLdzeta,l0,gpt)
| 1
Warning: Unused dummy argument 'dldzeta' at (1) [-Wunused-dummy-argument]
./derivative.f:146:63:
146 | subroutine NURBS3(p,Xi,nxi,N,dNdxi,n0,q,Eta,neta,M,dMdeta,m0, !ccccccccccc
| 1
Warning: Unused dummy argument 'dmdeta' at (1) [-Wunused-dummy-argument]
./derivative.f:146:40:
146 | subroutine NURBS3(p,Xi,nxi,N,dNdxi,n0,q,Eta,neta,M,dMdeta,m0, !ccccccccccc
| 1
Warning: Unused dummy argument 'dndxi' at (1) [-Wunused-dummy-argument]
./derivative.f:151:57:
151 | # M(m0-q), Zeta(nzeta), dLdzeta(l0-r), L(l0-r), eps, temp1,
| 1
Warning: Unused variable 'eps' declared at (1) [-Wunused-variable]
./derivative.f:146:49:
146 | subroutine NURBS3(p,Xi,nxi,N,dNdxi,n0,q,Eta,neta,M,dMdeta,m0, !ccccccccccc
| 1
Warning: Unused dummy argument 'eta' at (1) [-Wunused-dummy-argument]
./derivative.f:147:36:
147 | # r,Zeta,nzeta,L,dLdzeta,l0,gpt)
| 1
Warning: Unused dummy argument 'gpt' at (1) [-Wunused-dummy-argument]
./derivative.f:149:55:
149 | integer p, nxi, n0, q, neta, m0, r, nzeta, l0, ii, jj, kk
| 1
Warning: Unused variable 'ii' declared at (1) [-Wunused-variable]
./derivative.f:149:59:
149 | integer p, nxi, n0, q, neta, m0, r, nzeta, l0, ii, jj, kk
| 1
Warning: Unused variable 'jj' declared at (1) [-Wunused-variable]
./derivative.f:149:63:
149 | integer p, nxi, n0, q, neta, m0, r, nzeta, l0, ii, jj, kk
| 1
Warning: Unused variable 'kk' declared at (1) [-Wunused-variable]
./derivative.f:147:21:
147 | # r,Zeta,nzeta,L,dLdzeta,l0,gpt)
| 1
Warning: Unused dummy argument 'l' at (1) [-Wunused-dummy-argument]
./derivative.f:146:56:
146 | subroutine NURBS3(p,Xi,nxi,N,dNdxi,n0,q,Eta,neta,M,dMdeta,m0, !ccccccccccc
| 1
Warning: Unused dummy argument 'm' at (1) [-Wunused-dummy-argument]
./derivative.f:146:34:
146 | subroutine NURBS3(p,Xi,nxi,N,dNdxi,n0,q,Eta,neta,M,dMdeta,m0, !ccccccccccc
| 1
Warning: Unused dummy argument 'n' at (1) [-Wunused-dummy-argument]
./derivative.f:151:64:
151 | # M(m0-q), Zeta(nzeta), dLdzeta(l0-r), L(l0-r), eps, temp1,
| 1
Warning: Unused variable 'temp1' declared at (1) [-Wunused-variable]
./derivative.f:152:13:
152 | # temp2, temp3, temp4, gpt
| 1
Warning: Unused variable 'temp2' declared at (1) [-Wunused-variable]
./derivative.f:152:20:
152 | # temp2, temp3, temp4, gpt
| 1
Warning: Unused variable 'temp3' declared at (1) [-Wunused-variable]
./derivative.f:152:27:
152 | # temp2, temp3, temp4, gpt
| 1
Warning: Unused variable 'temp4' declared at (1) [-Wunused-variable]
./derivative.f:146:28:
146 | subroutine NURBS3(p,Xi,nxi,N,dNdxi,n0,q,Eta,neta,M,dMdeta,m0, !ccccccccccc
| 1
Warning: Unused dummy argument 'xi' at (1) [-Wunused-dummy-argument]
./derivative.f:147:13:
任何帮助将不胜感激