Waiting the availability of C++ with fortran...
I tought to this solution:
INP FILE:
...
*Elastic, Dependencies=1
** Table of values
**
0.0151,0.49,0.,0.
0.016688,0.49,0.,0.01
0.018443,0.49,0.,0.02
0.020383,0.49,0.,0.03
0.022527,0.49,0.,0.04
0.024896,0.49,0.,0.05
0.027514,0.49,0.,0.06
0.030408,0.49,0.,0.07
0.033606,0.49,0.,0.08
0.03714,0.49,0.,0.09
0.041046,0.49,0.,0.1
0.045363,0.49,0.,0.11
0.050134,.49,0.,0.12
0.055406,0.49,0.,0.13
0.061234,0.49,0.,0.14
0.067674,0.49,0.,0.15
0.074791,0.49,0.,0.16
0.082657,0.49,0.,0.17
0.09135,0.49,0.,0.18
0.10096,0.49,0.,0.19
0.11157,0.49,0.,0.2
0.12331,0.49,0.,0.21
0.13628,0.49,0.,0.22
0.15061,0.49,0.,0.23
0.16645,0.49,0.,0.24
0.18396,0.49,0.,0.25
0.2033,0.49,0.,0.26
0.22468,0.49,0.,0.27
0.24831,0.49,0.,0.28
0.27443,0.49,0.,0.29
0.30329,0.49,0.,0.3
0.33519,0.49,0.,0.31
0.37044,0.49,0.,0.32
0.4094,0.49,0.,0.33
0.45246,0.49,0.,0.34
0.50004,0.49,0.,0.35
0.55263,0.49,0.,0.36
0.61075,0.49,0.,0.37
0.67499,0.49,0.,0.38
0.74598,0.49,0.,0.39
0.82443,0.49,0.,0.4
0.91114,0.49,0.,0.41
1.007,0.49,0.,0.42
1.1129,0.49,0.,0.43
1.2299,0.49,0.,0.44
1.3593,0.49,0.,0.45
1.5022,0.49,0.,0.46
1.6602,0.49,0.,0.47
1.8348,0.49,0.,0.48
2.0278,0.49,0.,0.49
2.241,0.49,0.,0.5
2.4767,0.49,0.,0.51
2.7372,0.49,0.,0.52
3.0251,0.49,0.,0.53
3.3432,0.49,0.,0.54
3.6948,0.49,0.,0.55
4.0834,0.49,0.,0.56
4.5129,0.49,0.,0.57
4.9875,0.49,0.,0.58
5.5121,0.49,0.,0.59
6.0918,0.49,0.,0.6
6.7325,0.49,0.,0.61
7.4405,0.49,0.,0.62
8.223,0.49,0.,0.63
9.0879,0.49,0.,0.64
10.044,0.49,0.,0.65
11.1,0.49,0.,0.66
12.267,0.49,0.,0.67
13.557,0.49,0.,0.68
14.983,0.49,0.,0.69
16.559,0.49,0.,0.7
18.301,0.49,0.,0.71
20.225,0.49,0.,0.72
22.353,0.49,0.,0.73
24.703,0.49,0.,0.74
27.301,0.49,0.,0.75
30.173,0.49,0.,0.76
33.346,0.49,0.,0.77
36.853,0.49,0.,0.78
40.729,0.49,0.,0.79
45.012,0.49,0.,0.8
49.746,0.49,0.,0.81
54.978,0.49,0.,0.82
60.76,0.49,0.,0.83
67.151,0.49,0.,0.84
74.213,0.49,0.,0.85
82.018,0.49,0.,0.86
90.644,0.49,0.,0.87
100.18,0.49,0.,0.88
110.71,0.49,0.,0.89
122.36,0.49,0.,0.9
135.22,0.49,0.,0.91
149.45,0.49,0.,0.92
165.16,0.49,0.,0.93
182.53,0.49,0.,0.94
201.73,0.49,0.,0.95
222.95,0.49,0.,0.96
246.4,0.49,0.,0.97
272.31,0.49,0.,0.98
300.95,0.49,0.,0.99
332.6,0.49,0.,1
*User Defined Field
*Depvar
1
...
E changes with the exponential law.
While for the .for file:
SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,
3 LACCFLA)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME,ORNAME
CHARACTER*3 FLGRAY(15)
DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
1 T(3,3),TIME(2)
DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),
1 COORD(*)
C
C Absolute value of current strain:
CALL GETVRM('E',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
MATLAYO,LACCFLA)
EPS = ABS( ARRAY(1) )
C
C Use the current strain as a field variable
FIELD(1) = EPS
C Store the current strain as a solution dependent state
C variable
STATEV(1) = FIELD(1)
C If error, write comment to .DAT file:
IF(JRCD.NE.0)THEN
WRITE(6,*) 'REQUEST ERROR IN USDFLD FOR ELEMENT NUMBER ',
1 NOEL,'INTEGRATION POINT NUMBER ',NPT
ENDIF
C
RETURN
END
What is wrong in this?
Thank you very much...
Leo