注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

notes

@-@

 
 
 

日志

 
 
 
 

2009年5月27日  

2009-05-27 17:51:31|  分类: UNIX |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
seplib的安装
安装太烦了,在solaris下安装没有成功。
主要是fortran编译器的问题。如果设置FC=no有何影响?
后来转到 unbuntu下 安装
安装了gfortran
安装了inter的fortran编译器
--with-su=/home/zhang/cwp
另一个 对FC的定义
ifort不支持tpp6选项
This version of the compiler no longer supports the following compiler

options: -cxxlib-icc, -F (use -preprocess-only), -Kpic and -KPIC (use -fpic), -prof-format-32, -syntax (use -syntax-only), -tpp{5|6|7} (for -tpp7, use -mtune=pentium4).具体参见http://softwarecommunity.intel.c ... eproducts/ifort.txt详细说明了ifort的选项意义

错误 之一
undefined reference to `yywrap' You must have a working version of lex or flex installed
and in your default library path and/or the path described by the LDFLAGS variable.


SEPlib(SEP3D) 安装实例(fedora core 6系统下)
内容简介:Seplib是一款 和 SU齐名的 地球物理软件,本文将介绍 其在 FC6下 的安装。SEPLIB的版本为6。3。12,本文中的安装方法较“stupid",方法仅供参考。
要点:
      1 在FC6中默认的FORTRAN编译器为gfortran, 它和原来的g77之间还存在一些不兼容。因此,用这个默认的编译器会在make的时候出错。为此,需下载intel fortran compiler for linux.这个可以到inter的网站上下载,只需注册一个电子邮件即可。
      2 安装好intel fortran compiler。然后设置安装所需的环境变量FC。 如:export FC="ifort -O3 -tpp6 -xK". 其中,ifort是intel fortran compiler的执行程序(之前要设置好ifort的环境变量PATH)。
      3 ./configure --with-local --with-su=/your_su_dir .其中,--with-su用来生成SEGY,SU,SEP之间数据转换的命令,很有必要安装。/your_su_dir为自己SU的安装路径(在这个路 径下有SRC,如/home/wh/su)
      4 make. 在这个过程中会遇到8个相同的错误。错误的原因猜测为ifort与f95之间的关系作用冲突导致(f95和gfortran有些重要的关系,但还不清楚。)
      5 8个相同错误的解决方法为:进入产生错误所在的目录,然后编辑Makefile,将如下内容作变更
           (1)FCLINK = $(LIBTOOL) --mode=link $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \
    $(AM_LDFLAGS) $(LDFLAGS) -o $@
变为:FCLINK = $(LIBTOOL) --mode=link --tag=F77 $(FCLD) $(AM_FCFLAGS) $(FCFLAGS) \
     $(AM_LDFLAGS) $(LDFLAGS) -o $@
           (2)FCLD=
变为:          FCLD=$(FC)
            红色为需要添加的内容。然后重新make即可。最后,make install完成安装。

Seplib 在Debian 4.0 下的安装 

Seplib在Linux下的安装实在是很困难。按照Seplib提供的安装方法几乎是无法安装成功的。在经过无数次失败后终于把Seplib安装在Debian上了。不过能安装成功Seplib,得到的不仅仅是成就感了。

要安装好Seplib首先是要相信一定能装好,有这个信心以后就可以慢慢编译了。

安装的主要步骤是完全按照Seplib官方提供的方法。只是还有几个软件是他没有提到的,但是是需要的:

f2c  和 flex lesstif2-dev    libxaw7-dev   等等

只要仔细观察出错信息,看到如果缺少什么就可以用  apt-cache search xx  来寻找是不是有什么软件缺失。用

apt-get install f2c 
flex lesstif2-dev    libxaw7-dev

来安装。当然一些Fortran和gcc编译器也是当然需要的,比如build-essentialautoconf、automake、libtool、g77gfortran等等。

下面开始configure:

wusp@debian:~/seplib# export FC=gfortran
wusp@debian:~/seplib# ./configure --prefix=/usr/local --with-su=/home/wusp/su

当然都要根据你想安装Seplib的路径以及已经安装了的su(seismic unix)的路径。没有su就不用
--with-su=/home/wusp/su

configure一般不会出错,下面就要开始真正的make了。

wusp@debian:~/seplib# make install

如果正常的话,下面将会出现一些错误。主要估计是不同Fortran编译器和机器引起的。
总结起来,对于我的机器有下面几个问题:
(1)if (XXX)exit linear , 是if的问题,改成
          if (xxxx) then
                      exit linear
          endif
(2)cfortran.h 如果出现和cfortran.h有关的问题,比如
> cfortran.h:155: #error "cfortran.h:  Can't find your
> environment among: - MIPS cc and f77 2.0. (e.g.
> Silicon Graphics, DECstations, ...) - IBM AIX
修改seplib-6.5.3/seplib_base/include/cfortran.h ,在其中128行加入一行:

#define f2cFortran

加的位置大概在
Can't find your environment among: - MIPS cc and f77 2.……这句话前面一点适合的地方。主要是说明要用f2c

一个一个问题排除,排除一个以后就make install一下,再遇到问题再解决。这样耐心的排查和make install后,就应该可以安装成功了。

有信心和耐心肯定是可以成功的!

安装成功以后,可以测试了,在example目录下有个unscaled.HH文件,在这个目录下输入:

wusp@debian:~/seplib# Wiggle < unscaled.HH | Tube

发现Tube出了错,是不能找到csh(这个不一定都会发生)。找到Tube(/usr/local/bin/Tube),修改第一行

#! -f csh


#! -f /bin/csh

然后就行了。其它,如果也遇到同样问题,也可以解决。
最后是环境设置
编辑~/.datapath, 我的如下:
datapath=/home/wusp/data/sep/bin/;/home/wusp/data/sep/asc/
第一个是存放二进制数据文件的文件夹,后一个是相应文件的ascci文件
~/.bashrc加入
export SEP=/usr/local
export PYTHONPATH=$SEP/lib/python
export VPLOTSPOOLDIR=/tmp

总而言之,是不要怕问题和麻烦,自己多思考就行了。不过,也说明Seplib兼容方面做得不是很好。

下面是我所遇到的问题,以及解决方法:

 gfortran -g -O2 -ffree-form -I../../../lib/corelibs/sep -I../../../lib/corelibs/superset -I../../../lib/util/fft -I../../../lib/util/math -I../../../lib/util/sepaux -I../../../lib/class/gee -I../../../lib/seis/filter -I../../../lib/util/par -c dipinteg_3Dcos.f90 -o dipinteg_3Dcos.o
 In file dipinteg_3Dcos.f90:57

00000
    1
Error: Expected a right parenthesis in expression at (1)

/home/wusp/soft/seplib-6.5.3/seplib_base/lib/seis/dip/dipinteg_3Dcos.f90     57行
修改
if(cos_trans(i1,i2,i3)>.000001) cos_trans(i1,i2,i3)=cos_trans(i1,i2,i3)/(cos_trans(i1,i2,i3)*cos_trans(i1,i2,i3)+.000000001)/(8.*(n1_in*n2_in*n3_in))

 if(cos_trans(i1,i2,i3)>.000001) then
 cos_trans(i1,i2,i3)=cos_trans(i1,i2,i3)/(cos_trans(i1,i2,i3)*cos_trans(i1,i2,i3)+.000000001)/(8.*(n1_in*n2_in*n3_in))
           endif
 
cfortran.h:155: #error "cfortran.h:  Can't find your
environment among: - MIPS cc and f77 2.0. (e.g.
Silicon Graphics, DECstations, ...) - IBM AIX
……
      
/home/wusp/soft/seplib-6.5.3/seplib_base/include/cfortran.h 128 行
128行加入    
           #define f2cFortran
                    
 In file Dipintegrator.f90:578

 exit linear
    1
Error: Expected VARIABLE at (1)
 In file Dipintegrator.f90:835

 exit nonlinear3
    1
Error: Expected VARIABLE at (1)
make[3]: *** [Dipintegrator.o] Error 1
make[3]: Leaving directory `/home/wusp/soft/seplib-6.5.3/seplib_prog/seis/dip'
578行
修改
           if (abs(res_val)/(n1*n2*n3)<linear_stop_tol.and.j>min_liter) exit linear

           if (abs(res_val)/(n1*n2*n3)<linear_stop_tol.and.j>min_liter) then
               exit linear
               endif
835 行
修改              
               if ((((rk_1-rk)/r_0)**2.)**.5 <nonlinear_stop_tol.and.iter>min_niter) exit nonlinear3
为              
               if ((((rk_1-rk)/r_0)**2.)**.5 <nonlinear_stop_tol.and.iter>min_niter) then
               exit nonlinear3
               endif


  评论这张
 
阅读(789)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018