[Fortran] 纯文本查看 复制代码
program test
implicit none
call FRIC()
call FRIC()
end program test
SUBROUTINE FRIC(LM,TAU,DDTDDG,DDTDDP,DSLIP,SED,SFD,
1 DDTDDT,PNEWDT,STATEV,DGAM,TAULM,PRESS,DPRESS,DDPDDH,SLIP,
2 KSTEP,KINC,TIME,DTIME,NOEL,CINAME,SLNAME,MSNAME,NPT,NODE,
3 NPATCH,COORDS,RCOORD,DROT,TEMP,PREDEF,NFDIR,MCRD,NPRED,
4 NSTATV,CHRLNGTH,PROPS,NPROPS)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CINAME,SLNAME,MSNAME
C
DIMENSION TAU(NFDIR),DDTDDG(NFDIR,NFDIR),DDTDDP(NFDIR),
1 DSLIP(NFDIR),DDTDDT(NFDIR,2),STATEV(*),DGAM(NFDIR),
2 TAULM(NFDIR),SLIP(NFDIR),TIME(2),COORDS(MCRD),
3 RCOORD(MCRD),DROT(2,2),TEMP(2),PREDEF(2,*),PROPS(NPROPS)
if(LM.EQ.2) return
FK1=PROPS(1)
FK2=PROPS(2)
FN=PROPS(3)
FRF=PROPS(4)
FFAI=TAN(PROPS(5)/180.*3.1415926)
FGW=PROPS(6)
FPA=PROPS(7)
xpress=press-dpress
IF(XPRESS.LE.10)THEN
XPRESS=10.
END IF
FEI1=FRF*abs(TAU(1))/(XPRESS*FFAI)
FEI2=FRF*abs(TAU(2))/(XPRESS*FFAI)
IF(FEI1.GE.0.99)FEI1=0.99
IF(FEI2.GE.0.99)FEI2=0.99
XK1=(1-FEI1)**2*FK1*FGW*(XPRESS/FPA)**FN
XK2=(1-FEI2)**2*FK2*FGW*(XPRESS/FPA)**FN
LM=0
TAU(1)=TAU(1)+XK1*DGAM(1)
TAU(2)=TAU(2)+XK2*DGAM(2)
DDTDDG(1,1)=XK1
DDTDDG(2,2)=XK2
DDTDDG(1,2)=0.0
DDTDDG(2,1)=0.0
return
end