[Fortran] 纯文本查看 复制代码 TABLE : abc (Medium)
1 / FORTRAN
FUNCTION F(X)
C
C F = QC * V1 * V2 * V3 with
C V1 = exp( -( YY-Y0-VY*TT )^2/AC^2 )
C V2 = exp( -( XX-X0 )^2/B^2 )
C V3 = exp( -( ZZ-Z0 )^2/C^2 )
C if ( -YY + Y0 +VY*TT ) greater than 0
C QC = QF et AC = AF
C else
C QC = QR et AC = AR
C
DIMENSION X(4)
C
C Input
C
XX = X(1) ; X Coordinate
YY = X(2) ; Y Coordinate
ZZ = X(3) ; Z Coordinate
TT = X(4) ; Time
C
C Variables
C
QF = 72.1725997925 ; Maximal front source intensity
QR = 36.0862998962 ; Maximal rear source intensity
AF = 3 ; Gaussian parameter
AR = 4 ; Gaussian parameter
B = 2 ; Gaussian parameter
C = 3 ; Gaussian parameter
X0 = 0 ; X initial location of source center
Y0 = 0 ; Y initial location of source center
Z0 = 0 ; Z initial location of source center
VY = 0 ; Source displacement velocity
AY = 0 ; Angle of torch [deg.]
C
C Constant
C
M1 = -1
PIDEG = ATAN(1.)
PIDEG = PIDEG / 45.
AY = AY * PIDEG
C
C Transformation of global to local coordinates
C
XD = XX - X0
YD = VY * TT
YD = YD + Y0
ZD = ZZ - Z0
C
C Source rotation about Y axis
C
SA = SIN( AY )
SA = - SA
CA = COS( AY )
A1 = XD * CA
A2 = ZD * SA
XL = A1 + A2
YL = YY - YD
A1 = ZD * CA
A2 = XD * SA
ZL = A1 - A2
C
C Condition computation, QC and AC initialisation
C
COND = VY * YL
IF (VY .EQ. 0.) COND = YL
QC = QR
AC = AR
IF( COND .GT. 0. ) QC = QF
IF( COND .GT. 0. ) AC = AF
C
C V1 computation
C
A1 = YL * YL
A2 = AC * AC
A2 = A1 / A2
A2 = M1 * A2
V1 = EXP( A2 )
C
C V2 computation
C
A1 = XL * XL
A2 = B * B
A2 = A1 / A2
A2 = M1 * A2
V2 = EXP( A2 )
C
C V3 computation
C
A1 = ZL * ZL
A2 = C * C
A2 = A1 / A2
A2 = M1 * A2
V3 = EXP( A2 )
C
C F computation
C
F = QC * V1
F = F * V2
F = F * V3
C
RETURN
END
FIN TABLE
这是一个双椭球体热源模型,我是用来模焊接过程用的,C Variables下面的那些参数就是双椭球的参数,我想再弄另一组双椭球的参数,让这个程序在第一组参数下运行19ms,然后换到第二组参数下运行4ms,再换到第一组参数下运行19ms,一直循环下去,实现循环加载。
|