| 查看: 1747 | 回复: 18 | |||
[交流]
【求助】f77的ifdef语句
|
|
在看一个老的f77程序,其中inc文件有这么几句: #ifdef BL real dd(nbig) #else real dd(1) #endif 好像是为了省点内存。 但我用g95编译不过去,说第2个dd已经被定义了。 该怎么处理呀? 谢谢 |
» 猜你喜欢
孩子确诊有中度注意力缺陷
已经有14人回复
三甲基碘化亚砜的氧化反应
已经有4人回复
请问下大家为什么这个铃木偶联几乎不反应呢
已经有5人回复
请问有评职称,把科研教学业绩算分排序的高校吗
已经有5人回复
2025冷门绝学什么时候出结果
已经有3人回复
天津工业大学郑柳春团队欢迎化学化工、高分子化学或有机合成方向的博士生和硕士生加入
已经有4人回复
康复大学泰山学者周祺惠团队招收博士研究生
已经有6人回复
AI论文写作工具:是科研加速器还是学术作弊器?
已经有3人回复
论文投稿,期刊推荐
已经有4人回复
请问2026国家基金面上项目会启动申2停1吗
已经有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人回复
» 抢金币啦!回帖就可以得到:
加拿大/英属哥伦比亚大学曹彦凯课题组招收全奖博士/博后 [机器学习/优化/控制方向]
+1/85
华东师范大学 程义云 课题组招2026年博士研究生 - 有机化学、材料化学、高分子合成等
+1/79
中国科学院赣江创新研究院特别研究助理/博士后招聘(1-2名)
+1/78
Call for papers,征稿
+1/70
北京化工大学生命科学与技术学院岗位招聘信息
+1/64
东北大学杰青团队招收2026级博士生
+5/40
2026博士申请-药物化学方向(小分子化合物合成)
+1/32
北京理工大学国家杰青梁军教授课题组招聘2026级博士研究生
+1/31
南京大学蔡亮课题组诚招2026年申请-考核制博士生2-3名(电解水制氢,XAFS谱学等)
+1/6
诚招博士后及研究人员
+1/5
华南师大化学单颗粒活性组招聘1人-特聘副研究员/研究员
+1/4
长江学者团队招聘高校教师7名(地点杭州、有事业编)+博后5名
+1/4
想替换掉环状DNA中心通道中的金属离子 如何替换才是正确操作
+1/4
兰州大学大气科学学院招收2026届生成式AI方向博士研究生
+1/4
大连海事大学国家级人才团队2026年博士研究生招生启事
+1/3
氨基酸的技术难度有哪些? 色氨酸为何单独做,有何不同?
+1/2
三峡集团科研院海上风电研究项目实习生招聘公告
+1/2
上海交通大学 Jaehyung Ju 课题组招收2026年申请考核博士生1 名
+1/1
清华大学化学系王梅祥院士课题组招聘博士后
+1/1
上海交通大学AIMS-Lab招收AI for Science方向2026级博士生
+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













回复此楼