Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations waross on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Subroutine - dload 1

Status
Not open for further replies.

highlander3

Mechanical
Sep 25, 2006
14
0
0
Does anybody can check and and give me a tip about this subroutine.I wrote the subroutine which should distribute pressure over a certain surface as b - spline function.
When I started the analysis i didn't get any file like msg. odb....I think that the problem is with subroutine-maybe variable definition.

Thanks for your help in advance

in input file I used:

*Dload
Surf-1, PNU, 1.




SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS,
1 JLTYP,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION COORDS(3)
CHARACTER*80 SNAME
C
C B - SPLINE FUNCTION
C
REAL RX
REAL RY
REAL FX
REAL FY
C
C
C
RX = ABS(COORDS(1))/0.5

IF (RX > 2) THEN

FX = 0.0

ELSE IF (RX >= 1.0) THEN

FX = (1.0/6.0) * ((-1.0)*RX**3 + 6.0*RX**2 - 12.0*RX + 8.0)

ELSE
FX = (1.0/6.0) * ((3.0*RX**3) - (6.0*RX**2) + 4.0)


END IF
C
C
C
RY = ABS(COORDS(2))/0.5

IF (RY > 2) THEN

FY = 0.0

ELSE IF (RY >= 1.0) THEN
FY = (1.0/6.0) * ((-1.0)*RY**3 + 6.0*RY**2 - 12.0*RY + 8.0)
ELSE
FY = (1.0/6.0) * ((3.0*RY**3) - (6.0*RY**2) + 4.0)
END IF
C
C
C
F = FX*FY
C
RETURN
END
 
Replies continue below

Recommended for you

Your formatting (spacing, indents) is wrong - FORTRAN is quite picky!!

Try:

SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,
1 COORDS,JLTYP,SNAME)
C
INCLUDE 'ABA_PARAM.INC'
C
DIMENSION COORDS(3)
CHARACTER*80 SNAME
C
C B - SPLINE FUNCTION
C
REAL RX
REAL RY
REAL FX
REAL FY
C
C
C
RX = ABS(COORDS(1))/0.5
IF (RX > 2) THEN
FX = 0.0
ELSE IF (RX >= 1.0) THEN
FX = (1.0/6.0) * ((-1.0)*RX**3 + 6.0*RX**2 - 12.0*RX + 8.0)
ELSE
FX = (1.0/6.0) * ((3.0*RX**3) - (6.0*RX**2) + 4.0)
END IF
C
C
C
RY = ABS(COORDS(2))/0.5
IF (RY > 2) THEN
FY = 0.0
ELSE IF (RY >= 1.0) THEN
FY = (1.0/6.0) * ((-1.0)*RY**3 + 6.0*RY**2 - 12.0*RY + 8.0)
ELSE
FY = (1.0/6.0) * ((3.0*RY**3) - (6.0*RY**2) + 4.0)
END IF
C
C
C
F = FX*FY
C
RETURN
END
 
Status
Not open for further replies.
Back
Top