Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.

Fortran Error

Hadi_M_1
Beginner
2,321 Views

Dear friends,
I have written a code in fortran for a special application in a commercial software (Abaqus) and I have received an error which is presented below:
°error 773 - Variable DEFGRADOLD follows another operand (possible unexpected space?)°
I also put some related lines of my main code here to take a look at that.
It would be really appreciated if someone tell me the reason of the error. 

Thanks,

Hadi

here is the main part of the code: 

--------------------------------------------------------------------------------------

     subroutine vumat (

c Read only -
     1 nblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,
     2 stepTime, totalTime, dt, cmname, coordMp, charLength,
     3 props, density, strainInc, relSpinInc,
     4 tempOld, stretchOld, defgradOld, fieldOld,
     5 stressOld, stateOld, enerInternOld, enerInelasOld,
     6 tempNew, stretchNew, defgradNew, fieldNew,
c Write only -
     7 stressNew, stateNew, enerInternNew, enerInelasNew)
c      include 'vaba_param.inc'
c
      dimension props(nprops), density(nblock), coordMp(nblock,*),
     1 charLength(*), strainInc(nblock,ndir+nshr),
     2 relSpinInc(nblock,*), tempOld(*),
     3 stretchOld(nblock,*),
     4 defgradOld(nblock,ndir+nshr+nshr),
     5 fieldOld(nblock,*), stressOld(nblock,ndir+nshr),
     6 stateOld(nblock,nstatev), enerInternOld(nblock),
     7 enerInelasOld(*), tempNew(*),
     8 stretchNew(nblock,*),
     9 defgradNew(nblock,*)
      dimension fieldNew(nblock,*),
     1 stressNew(nblock,ndir+nshr), stateNew(nblock,nstatev),
     2 enerInternNew(nblock), enerInelasNew(*), 
     3 strainOld(nblock,ndir+nshr), strant(nblock,ndir+nshr)
     4 , CFULL(6,6), CDFULL(6,6), CDTHREE(3,3)
      character*80 cmname
c     define the type of variables and constants
      double precision E_11, E_22, G_12, G_23, Nu_12, Nu_23, Nu_21,
     1    X_T, X_C, Y_C, Y_T, S_12, S_23, ALPHA, DFOLD, DMOLD
      integer I, km 
      parameter (ZERO = 0.D0,ONE = 1.D0,TWO = 2.D0, HALF = 0.5D0,
     1        THREE =3.D0)

............ 

c     strain(k,l) = 0.5 (F(j,k).F(j,l)-delta_cronicker(k,l))
       strainOld(km,1) = HALF * (defgradOld(km,1)** two +
     1      defgradOld(km,7)** two+defgradOld(km,6)** two - one)
      strainOld(km,2) = HALF*( defgradOld(km,4) ** two +
     1     defgradOld(km,2)** two + defgradOld(km,8)** two - one)
      strainOld(km,3) = HALF * (defgradOld(km,9)** two + 
     1   defgradOld(km,5) ** two + defgradOld(km,3) ** two - one)
      strainOld(km,4) = HALF * (defgradOld(km,1) * 
     1    defgradOld(km,4) + defgradOld(km,7) * defgradOld(km,2) +
     2    defgradOld(km,6) * defgradOld(km,8) )
      strainOld(km,5) = HALF * (defgradOld(km,4) * defgradOld(km,9)
     1    defgradOld(km,2) * defgradOld(km,5) + defgradOld(km,8)
     2      * defgradOld(km,3))
         strainOld(km,6) = HALF * ( defgradOld(km,9) * defgradOld(km,1)
     1    + defgradOld(km,5) * defgradOld(km,5) + defgradOld(km,3)
     2   * defgradOld(km,6)    )

0 Kudos
5 Replies
Arjen_Markus
Honored Contributor II
2,322 Views

There is no operand at the end of the first line:

strainOld(km,5) = HALF * (defgradOld(km,4) * defgradOld(km,9)
     1    defgradOld(km,2) * defgradOld(km,5) + defgradOld(km,8)
     2      * defgradOld(km,3))

That means that the compilers sees something like: *defgradOld(km,9)defgradOld(km,2)

(I removed the spaces to clarify the issue)

0 Kudos
Hadi_M_1
Beginner
2,324 Views

Thank you so much Arjenmarkus... Sometimes I get really tired and my eyes do not obey. I modified that line as you said (such as below) and you were absolutely right abou it, but again I have faced the same error which mentions these lines of the code. please take another look at it. 

error 773 - Variable DEFGRADOLD follows another operand (possible unexpected space?)

----------------------------------------modified part of the code----------------------------------

      strainOld(km,5) = HALF * (defgradOld(km,4) * defgradOld(km,9) +
     1    defgradOld(km,2) * defgradOld(km,5) + defgradOld(km,8) *
     2       defgradOld(km,3))

---------------------------------------------------------------------------------------

thanks, 

Hadi

0 Kudos
Hadi_M_1
Beginner
2,324 Views

the problem solved ..... Thank you so much

0 Kudos
Steven_L_Intel1
Employee
2,324 Views

I will comment that the error message shown is from some compiler other than Intel's. Intel Fortran's message would look different.

0 Kudos
Hadi_M_1
Beginner
2,324 Views

You Are absolutely right Steve and I just used PLATO to test my code and got that error. But my main work is working with Fortran codes which are implementing in a commercial software (Abaqus). For implementing Fortran subroutines in the software we have to link it to Intel compiler. 

Thank you so much for the attention,

Hadi

0 Kudos
Reply