Dear ABAQUS Users,
I am trying to assign the initial stresses for a region in my model using the SIGINI subroutine. I learned some fortran programming skills the last week and I managed to open the file where the stresses that I retrieve from an Abaqus analysis and assign these stresses in Array using fortran commands.
Now I am stuck with the writing of the SIGINI subroutine where I have the corresponding stresses that I store in my Array to the corresponding NOEL and NPT.
I wish to know if I have to include my fortran code that I use to retrieve the stresses and store them in the array. then I include the subroutine commands found in ABAQUS document where I include a Do loop statement to repeat the assignment for each integration point of the elements located in the region where I am interested to assign the stored stresses.
I will appreciate if anyone has similar code written in FORTRAN where I can learn the linking between the FORTRAN code to open and read the data in the external file (i.e. the external file includes the stresses generated as output by an ABAQUS analysis) where later the subroutine SIGINI statements should be added to assign the stored stresses for the second analysis.
Sorry for the long post but I wish to thank in advance everyone who has any light for such situation.
Best Regards
Sherif
From Dr Ofner's dissertation,And hopes this will work for you
*INCLUDE,INPUT=initial.ipe500
*INITIAL CONDITIONS,TYPE=STRESS,USER
*USER SUBROUTINES
SUBROUTINE SIGINI(SIGMA,COORDS,NTENS,NCRDS,NOEL,NP,LA,M,LR,RE)
INCLUDE ‘ABA_PARAM.INC’
DIMENSION SIGMA(NTENS),COORDS(NCRDS)
CHARACTER*8 RE
IF(NOEL.GE.1.AND.NOEL.LE.100)THEN
IF(M.EQ.1.OR.M.EQ.17.OR.M.EQ.33.OR.M.EQ.49)THEN
SIGMA(1)=-7.050
ELSE IF(M.EQ.2.OR.M.EQ.16.OR.M.EQ.34.OR.M.EQ.48)THEN
SIGMA(1)=-5.2875
ELSE IF(M.EQ.3.OR.M.EQ.15.OR.M.EQ.35.OR.M.EQ.47)THEN
SIGMA(1)=-3.525
ELSE IF(M.EQ.4.OR.M.EQ.14.OR.M.EQ.36.OR.M.EQ.46)THEN
SIGMA(1)=-1.7625
ELSE IF(M.EQ.5.OR.M.EQ.13.OR.M.EQ.37.OR.M.EQ.45)THEN
SIGMA(1)=0.
ELSE IF(M.EQ.6.OR.M.EQ.12.OR.M.EQ.38.OR.M.EQ.44)THEN
SIGMA(1)=1.7625
ELSE IF(M.EQ.7.OR.M.EQ.11.OR.M.EQ.39.OR.M.EQ.43)THEN
SIGMA(1)=3.525
ELSE IF(M.EQ.8.OR.M.EQ.10.OR.M.EQ.40.OR.M.EQ.42)THEN
SIGMA(1)=5.2875
ELSE IF(M.EQ.9.OR.M.EQ.41)THEN
SIGMA(1)=7.050
ELSE IF(M.EQ.18.OR.M.EQ.32)THEN
SIGMA(1)=5.3439
ELSE IF(M.EQ.19.OR.M.EQ.31)THEN
SIGMA(1)=3.6378
ELSE IF(M.EQ.20.OR.M.EQ.30)THEN
SIGMA(1)=1.9317
ELSE IF(M.EQ.21.OR.M.EQ.29)THEN
SIGMA(1)=0.2256
ELSE IF(M.EQ.22.OR.M.EQ.28)THEN
SIGMA(1)=-1.4805
ELSE IF(M.EQ.23.OR.M.EQ.27)THEN
SIGMA(1)=-3.1866
ELSE IF(M.EQ.24.OR.M.EQ.26)THEN
SIGMA(1)=-4.8927
ELSE IF(M.EQ.25)THEN
SIGMA(1)=-6.5988
ENDIF
ENDIF
RETURN
END