Fortran:程序接收信号 SIGABRT:进程中止信号

时间:2021-07-27 10:56:33

标签: fortran gfortran

我不明白为什么会出现此运行时错误: 此错误的回溯:

#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:

任何帮助将不胜感激

0 个答案:

没有答案
相关问题