| 查看: 2301 | 回复: 18 | |||
[交流]
【求助】f77的ifdef语句
|
|
在看一个老的f77程序,其中inc文件有这么几句: #ifdef BL real dd(nbig) #else real dd(1) #endif 好像是为了省点内存。 但我用g95编译不过去,说第2个dd已经被定义了。 该怎么处理呀? 谢谢 |
» 猜你喜欢
2026年国自然面上资助率
已经有11人回复
微信指数没变化,科研之友没阅读
已经有18人回复
基础研究怎么拉横向,学校到款任务越来越多,难以完成 拉横向,都有哪些途径啊
已经有8人回复
HXDI做水性聚氨酯乳液,是不是特别容易出渣
已经有3人回复
小木虫看见有人已经知道结果了
已经有19人回复
系统今天又提示维护了,估计离放榜不远了
已经有15人回复
申请2027年材料/化学类博士
已经有5人回复
你们的时间戳变了吗
已经有4人回复
今年的WR进展到哪一步了?
已经有9人回复
产物和副产物价值比较
已经有5人回复
» 本主题相关价值贴推荐,对您同样有帮助:
【求助】VASP5.2 编译出错make
已经有0人回复
求助Quantum-ESPRESSO5.0 安装问题
已经有2人回复
【求助】安装vasp出错 make: *** [fftmpi_map.o] 错误 1【已解决】
已经有6人回复
【求助成功】Vasp 5.2.11编译出错
已经有10人回复
【求助】VASP5.2 f951: error: unrecognized command line option "-assume
已经有1人回复
【求助成功】vasp5.2并行安装不上
已经有18人回复
【求助】fedora中LAMMPS编译问题
已经有4人回复
【求助】安装mpich2时出现问题!
已经有6人回复
【求助】pwscf安装问题
已经有0人回复
【求助】vasp计算出现的very serious problem【完结】
已经有10人回复
【求助】fortran 程序windows 下编译正确,而linux下出错
已经有2人回复
【求助】vasp4.6 并行编译警告怎么处理
已经有6人回复
【求助】dalton-2.0编译及测试问题【完结】
已经有18人回复
» 抢金币啦!回帖就可以得到:
2027年博士生(硕博连读/直博)吉林大学-苏州国家实验室光电半导体智能设计与应用团队
+1/477
具有超高耐腐蚀性的铝合金阳极氧化后处理工艺
+1/82
上海 东华大学 刘栋良 招 2027 学术型博士(化学专业)
+1/72
祈福面上好运,散金币
+1/48
中科院东莞材料所依托中科大招收2027届推免生
+1/42
西湖大学拓扑光学、非厄米光学、太赫兹方向博士后招聘(长期有效)
+5/35
中国特种设备检测研究院招聘1名高温涂层方向博士后
+2/34
坐标南京
+1/30
武汉大学集成与超构光子芯片团队招收博士生
+5/25
深圳大学 招收2027级推免研究生 (金属材料/ 3D打印/ 氢能等方向)
+1/24
直博夏令营--北京理工大学/国家人工智能学院AI交叉学科联合招生
+1/21
【香港城市大学】范战西教授课题组现招收博士生(全奖, 2027年秋季入学)
+1/7
四川大学周加境课题组招博士研究生/研究助理(自组装材料/生物医学方向)
+1/6
浙江大学医学院附属妇产科医院张霈婧课题组招科研助理——生物信息方向
+2/6
(Scopus期刊)Biofunctional Materials《生物功能性材料》招募青年编委及征稿
+1/4
中山大学孙逸仙纪念医院潘越教授团队招聘博士后(40万年薪)和科研助理
+1/3
宁波诺丁汉大学新能源与环境材料技术研究中心招收2027年春季入学博士生
+1/3
这些Scopus收录的英文国际期刊正在征稿(快速审稿)2026年底前免APC!
+1/2
浙江大学王宇课题组诚聘博士后/博士研究生/科研助理(招聘长期有效)
+1/1
浙江大学王宇课题组诚聘博士后/博士研究生/科研助理
+1/1
2楼2010-12-04 19:33:31
ajian04:欢迎交流~ 2010-12-11 10:44:14
|
makefile里有这么一句: .Inc.inc: @if [ -f $*.inc ]; then mv -f $*.inc $*.inc.bak; fi $(CPP) -D"real_precision"=$(FPREC) $(CPPFLAGS) $(FLOWFLAGS) $< >$*.inc 我现在所有的F文件都编译过去了,只剩下几个cpp文件编不过去。 原来的makefile是linux下的,我在xp下用gcc4.5, 肯定makefile改的还没对。 [ Last edited by cean on 2010-12-4 at 21:18 ] |
3楼2010-12-04 20:20:38
4楼2010-12-04 22:01:17
5楼2010-12-05 19:14:10
6楼2010-12-05 21:24:06
ajian04:欢迎交流~ 2010-12-11 10:44:42
|
我把小inc改了名,但好像这个前处理语句没执行到。 另外一个.F.f的目标,我改.f成.for,生成了.for文件,但接下去编译是自动用f77了,我的gcc4.5带的是gfortran. makefile里定义了f77=gfortran,但.for的名字就能用f77编吧。按来还得把名字改回.f .F.f: @if [ -f $*.f ]; then mv -f $*.f $*.f.bak; fi $(CPP) -D"real_precision"=$(FPREC) $(CPPFLAGS) $(FLOWFLAGS) $< >$*.f |
7楼2010-12-06 10:29:09
8楼2010-12-06 10:34:37
★
ajian04(金币+1):欢迎交流~ 2010-12-11 10:45:09
ajian04(金币+1):欢迎交流~ 2010-12-11 10:45:09
|
回的真快。 不好意思贴一大段。 这是其中要插入的一个文件。原来是给linux的,我正试着改成win的。这个是流体程序duns,http://duns.sourceforge.net/home.html 我用的win下的gcc4.5.1是这里的 http://www.equation.com/servlet/equation.cmd?call=fortran 预处理怎么没执行到? .f和.F两个目标,在win下我必须注释掉一个。 谢谢 # # This makesystem was constructed on a PII machine running Linux. # We found we had to use fort77 (front-end to f2c) # instead of g77/f77 that comes with most distributions, although # we still link with the g2c directory. Enjoy. # .SUFFIXES: .Inc .inc .o .F .C .f .cpp .c F77 = gfortran CPP = gcc -C -x c -P -E -traditional-cpp CPLUS = g++ CC = gcc LINKER = gcc LIBMAKER= ar vr MKDIR =mkdir RM = del CP = copy #CHMOD = /bin/chmod CPPFLAGS = -DFUNDER -DISNAN #CFLAGS = -DRANGECHECK CFLAGS = -O2 F77FLAGS = -O2 -w #CPLUSFLAGS= -DRANGECHECK CPLUSFLAGS= -O2 LFLAGS = -Xlinker -Bstatic SYSLIBS = -L/usr/lib/gcc-lib/i486-suse-linux/2.95.2 -lg2c -lm GRAFLIBS = -lmbgrafic -lgrafic -L/usr/X11R6/lib -lX11 MACH = pcmach.o XGROBJ = Xunderscore.o #CPREC = double #FPREC = "double precision" CPREC = float FPREC = real VERSN = `2.7` .Inc.incw: @if [ -f $*.incw ]; then mv -f $*.incw $*.incw.bak; fi $(CPP) -D"real_precision"=$(FPREC) $(CPPFLAGS) $(FLOWFLAGS) $< >$*.incw .for.f: @if [ -f $*.f ]; then mv -f $*.f $*.f.bak; fi $(CPP) -D"real_precision"=$(FPREC) $(CPPFLAGS) $(FLOWFLAGS) $< >$*.f .cpp.c: @if [ -f $*.c ]; then mv -f $*.c $*.c.bak; fi $(CPP) -D"Include"="#include" -D"Define"="#define" -Dreal=$(CPREC) $(CPPFLAGS) $(FLOWFLAGS) $< >$*.c #.F.o: # $(CPP) -D"real_precision"=$(FPREC) $(CPPFLAGS) $(FLOWFLAGS) $< >$*.f $(F77) $(F77FLAGS) -c $*.f #.C.o: # $(CPLUS) $(INCLUDE) -Dreal=$(CPREC) $(CPLUSFLAGS) -c $< .f.o: $(F77) $(F77FLAGS) -c $< .c.o: $(CC) $(CFLAGS) -DVERSION=\"$(VERSN)\" -c $< [ Last edited by cean on 2010-12-6 at 11:03 ] |
9楼2010-12-06 10:59:57
10楼2010-12-06 14:19:10
ajian04:欢迎交流~ 2010-12-11 10:45:39
|
确实辛苦了。先把我剩下的金币献上。 我原来以为我可以不要这个SYSLIBS呢。不过好像只是和取系统时间的几个小函数有关。 GRAFLIBS只是一个简单的画图程序要用到,没什么用,确实可以不要。现在其他的后处理软件强大多了。 这个程序一个主程序是c的,计算都是fortran的。 没事只是想看看我能不能把它在win编过去。至少现在对预处理有了点了解。 我再试试。有一点是.F和.f的目标不能共存,在win下gcc会不理其中的一个的。 谢谢。 [ Last edited by cean on 2010-12-6 at 20:20 ] |
11楼2010-12-06 19:15:47
12楼2010-12-06 21:36:32
13楼2010-12-06 21:45:21
14楼2010-12-07 20:56:54
|
我的情况是不是应该写: c:\gcc\i686-pc-mingw32\lib 现在我是能把所有的f都编译过去了,但cpp都不行。 timer.cpp有句Include setsignals.cpp编译错误invalid use of undefined type 'struct sigaction'在31,32行 struct sigaction没定义! 最后一个main.cpp还没到可编译的程度。 实在不行自己写个main.f, timer和setsignals都不要了。 |
15楼2010-12-08 20:12:17
16楼2010-12-08 21:34:42
★
ajian04(金币+1):楼主也辛苦了,鼓励一下吧,欢迎多多交流…… 我最近也在研究ubuntu10.10,呵呵~ 2010-12-11 11:03:54
ajian04(金币+1):楼主也辛苦了,鼓励一下吧,欢迎多多交流…… 我最近也在研究ubuntu10.10,呵呵~ 2010-12-11 11:03:54
|
我在ubuntu10.04下试着编了一下,gcc现成的(应该没gfortran),fortran装了个www.g95.org的, f和c都编译过了,现在连接库时有问题。 那个rh7的makefile里SYSLIBS = -lg2c -lm,我编译说找不到-lg2c。 这个-lg2c据说是f77的库,供c连f的。这个程序是老了。呵呵。 不过预编译挺有意思。这里是用它生成解决不同问题的源代码。这样可执行文件对要解决的问题等于是优化了的。 |
17楼2010-12-10 20:27:06
18楼2010-12-13 13:47:25
19楼2010-12-13 20:21:08










回复此楼