本帖最后由 JingheSu 于 2011-7-4 14:02 编辑
我在document中找了一个子程序的例子,其中子程序要用Fortran先处理。子程序可以编译,但是连接时总是出现
Linking...
dfor.lib(DFORMAIN.OBJ) : error LNK2001: unresolved external symbol _MAIN__
Debug/QW.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
QW.exe - 2 error(s), 0 warning(s)
请各位大侠帮帮忙哈。这到底得怎么改呀。我用的是compaq Visual Fortran 6.6,另外用Intel(R) Fortran Compiler 11.0.061也是出现同样的错误。谢谢大侠呀!
下面是crackplate_ls3s.inp文件(在document的实例手册中1.4.1)
*HEADING
QUARTER MODEL OF LARGE PLATE WITH CENTER SURFACE
CRACK [S8R]
*NODE
1,0.,0.
97,12.,0.
4801,0.,12.
4897,12.,12.
*NGEN,NSET=ONY
1,4801,100
*NGEN,NSET=FREE
97,4897,100
*NGEN
1,97
101,197
201,297
401,497
601,697
1001,1097
1401,1497,2
2201,2297,2
3001,3097,2
3901,3997,2
4801,4897,2
*NSET,NSET=ONX
27,29,33,37,41,45,49,53,57
61,69,77,87,97
*ELEMENT,TYPE=LS3S,ELSET=LS
1,25,24,23
5,17,15,13
*ELGEN,ELSET=LS
1,4,-2,1
5,4,-4,1
*ELEMENT,TYPE=S8R,ELSET=SHELL
9,1,5,205,201,3,105,203,101
13,17,19,219,217,18,119,218,117
17,25,29,229,225,27,129,227,125
18,29,37,237,229,33,137,233,129
22,61,77,277,261,69,177,269,161
23,77,97,297,277,87,197,287,177
24,201,209,609,601,205,409,605,401
26,601,609,1409,1401,605,1009,1405,1001
28,217,221,621,617,219,421,619,417
31,617,621,1421,1417,619,1021,1419,1017
34,229,237,637,629,233,437,633,429
38,629,637,1437,1429,633,1037,1433,1029
42,261,277,677,661,269,477,669,461
43,661,677,1477,1461,669,1077,1469,1061
44,277,297,697,677,287,497,687,477
45,677,697,1497,1477,687,1097,1487,1077
46,1401,1417,3017,3001,1409,2217,3009,2201
48,1417,1421,3021,3017,1419,2221,3019,2217
50,1421,1429,3029,3021,1425,2229,3025,2221
58,1477,1497,3097,3077,1487,2297,3087,2277
47,3001,3017,4817,4801,3009,3917,4809,3901
49,3017,3021,4821,4817,3019,3921,4819,3917
51,3021,3029,4829,4821,3025,3929,4825,3921
59,3077,3097,4897,4877,3087,3997,4887,3977
*ELGEN,ELSET=SHELL
9,4,4,1
13,4,2,1
18,4,8,1
24,2,8,1
26,2,8,1
28,3,4,1
31,3,4,1
34,4,8,1
38,4,8,1
46,2,28,6
52,3,16,2
47,2,28,6
53,3,16,2
*ELSET,ELSET=PRINT
9,59,15,16,17
*MATERIAL,NAME=A1
*ELASTIC
30.E6,.3
*SHELL SECTION,ELSET=SHELL,MATERIAL=A1
3.0,3
*SHELL SECTION,ELSET=LS,MATERIAL=A1
3.0,
*SURFACE FLAW,SIDE=POSITIVE,INPUT=CRACK.FLW
** DATA GENERATED FROM PROGRAM
** crackplate_surfaceflaw.f
*ELSET,ELSET=TOPL
47,49,51,53,55,57,59
*MPC
QUADRATIC,203,201,205,209
QUADRATIC,207,201,205,209
QUADRATIC,211,209,213,217
QUADRATIC,215,209,213,217
QUADRATIC,218,217,219,221
QUADRATIC,220,217,219,221
QUADRATIC,222,221,223,225
QUADRATIC,224,221,223,225
QUADRATIC,1405,1401,1409,1417
QUADRATIC,1413,1401,1409,1417
QUADRATIC,1423,1421,1425,1429
QUADRATIC,1427,1421,1425,1429
QUADRATIC,1433,1429,1437,1445
QUADRATIC,1441,1429,1437,1445
QUADRATIC,1449,1445,1453,1461
QUADRATIC,1457,1445,1453,1461
*BOUNDARY
ONY,1
ONY,5,6
ONX,2
ONX,4
ONX,6
1,3
*RESTART,WRITE,FREQUENCY=999
*STEP
*STATIC
0.1,1.0
*CLOAD
4801,2,100.
4809,2,400.
4817,2,125.
4819,2,100.
4821,2,75.
4825,2,200.
4829,2,150.
4837,2,400.
4845,2,200.
4853,2,400.
4861,2,200.
4869,2,400.
4877,2,225.
4887,2,500.
4897,2,125.
*EL PRINT,ELSET=LS
JK,
S,
*EL PRINT,ELSET=PRINT
COORD,
S,
E,
*EL FILE,ELSET=LS
JK,
S,
*EL FILE,ELSET=PRINT
COORD,
S,
E,
*NODE PRINT
U,
*NODE FILE
U,
*END STEP
下面是crackplate_surfaceflaw.f文件(也是实例手册中的)
CC--- PROGRAM TO GENERATE CRACK DEPTH DATA
C ROGRAM CRACK
C
SUBROUTINE ABQMAIN
C
IMPLICIT REAL*8(A-H,O-Z)
OPEN(UNIT=16,STATUS='NEW',ACCESS='SEQUENTIAL',
1 FORM='FORMATTED',FILE='CRACK.FLW')
C=3.
CC=C*C
N=24
NNODE=N+1
X0=C/DBLE(N)
X=0.
DO 100 I=1,NNODE
IF(I.GE.17) GO TO 1
IF((I/2)*2.EQ.I) GO TO 10
1 CONTINUE
XX=X*X
TMP=.2
Z=TMP*SQRT(CC-XX)
WRITE(6,99) I,Z
WRITE(16,99)I,Z
99 FORMAT(I5,', ',F10.7)
10 CONTINUE
X=X+X0
100 CONTINUE
REWIND 16
STOP
END
FORTRAN 编辑出错提示是
Linking...
dfor.lib(DFORMAIN.OBJ) : error LNK2001: unresolved external symbol _MAIN__
Debug/QW.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
QW.exe - 2 error(s), 0 warning(s) |