• kiwi installation


    Mainly the installstion methods follow the url:

    https://github.com/emolch/kiwi/wiki/Installation
    

     there are some notices need to be mentioned:

    1: fftw3 download fftw3 here

    http://www.fftw.org/download.html
    

     and then install it using

    ./configure 
    make
    make install
    

     2:libmseed

    download libmseed.2.12 here:

    https://github.com/iris-edu/libmseed/releases
    

     then

    make

    and then

    copy all its header files (*.h) to /usr/local/include and libmseed.a to /usr/local/lib
    

     next

    edit the .zshrc in home filefolder

    #kiwi
    export LIBRARY_PATH=${LIBRARY_PATH}:/usr/local/lib
    export C_INCLUDE_PATH=${C_INCLUDE_PATH}:/usr/local/include
    

     besides, change the makefile.local as belows:

    ##
    ##            --- Local build settings for Kiwi Core Tools ---
    ##
    ##   Copy this file to 'Makefile.local', so that it is included by Makefile.
    ##                
    
    ## Fortran 95 compiler:
    FORTRANC = gfortran
    
    
    ## Select compilation flag preset ('debug' and 'fast' are predefined for g95,
    ## gfortran and ifort. 
    #
     PRESET = fast
    
    
    ## The following could be used to create a custom preset:
    #  PRESET = custom
    #  CFLAGS_$(FORTRANC)_custom = ...
    #  LDFLAGS_$(FORTRANC)_custom = ...
    
    
    ## Adjust if HDF5 is installed at a custom location
    #
    # INCHDF = -I/bonus/hdf5-$(FORTRANC)/include
    # LIBHDF = -L/bonus/hdf5-$(FORTRANC)/lib -lhdf5_fortran -lhdf5 -lz
    HDF5DIR = hdf5-1.8.21/hdf5
    INCHDF = -I$(HDF5DIR)/include
    LIBHDF = $(HDF5DIR)/lib/libhdf5_fortran.a $(HDF5DIR)/lib/libhdf5.a -ldl -lz
    
    
    ## Adjust if FFTW is installed at a custom location
    #
     INCFFTW = -I/usr/include
     LIBFFTW = -L/usr -lfftw3f
    
    
    ## Uncomment to disable SAC IO support to not depend on libsacio
    #
    LIBSAC = -Ldummy_sacio -lsacio
    
    
    ## Installation prefix
    #
    # prefix = /usr/local

    edit the makefile  (the -lmseed is replaced with '/usr/local/lib/libmseed.a')

    #
    #                --- Makefile for Kiwi Core Tools ---
    #
    #          Override default settings in file 'Makefile.local'
    #                   (see 'Makefile.local.example')
    #
    
    #### Basic settings ------------------------------------------------------------
    
    SHELL = /bin/sh
    MAKEDEPEND = ./fdepend.pl -g -d -i hdf5.mod -i omp_lib.mod -i kiwi_home.mod
    OBJDEPEND = ./objdepend.pl
    FORTRANC := gfortran
    INSTALL := /usr/bin/install
    
    #### Preset selection ----------------------------------------------------------
    
    # Can use 'fast' or 'debug' with gfortran, g95 and ifort. You may have to create
    # a custom preset when using a different compiler (see below and example in
    # Makefile.local.example).
    
    PRESET := fast
    
    
    #### Installation prefixes -----------------------------------------------------
    
    prefix = /usr/local
    datarootdir= $(prefix)/share
    datadir  = $(datarootdir)
    exec_prefix = $(prefix)
    bindir = $(exec_prefix)/bin
    
    
    #### Default library includes and linker settings ------------------------------
    
    INCDUMMYOMP = -Idummy_omp_lib
    LIBDUMMYOMP = dummy_omp_lib/omp_lib.o
    
    INCMSEED = 
    LIBMSEED = mseed/mseed_simple.o /usr/local/lib/libmseed.a
    
    INCHDF = $(shell pkg-config hdf5 --cflags)
    LIBHDF = $(shell pkg-config hdf5 --libs-only-L) -lhdf5_fortran -lhdf5 -lz
    
    INCSAC = 
    LIBSAC = -lsacio
    
    INCFFTW = 
    LIBFFTW = -lfftw3f 
    
    LIBSMINPACK = -Lsminpack -lsminpack
    
    
    #### Compiler and linker flag defaults -----------------------------------------
    
    CFLAGS =  $(INCMSEED) $(INCHDF) $(INCSAC) $(INCFFTW) 
    	      $(CFLAGS_$(FORTRANC)_$(PRESET))  #
    LDFLAGS = $(LIBMSEED) $(LIBSAC)  $(LIBHDF) $(LIBSMINPACK) $(LIBFFTW) 
              $(LDFLAGS_$(FORTRANC)_$(PRESET)) #
    
    
    #### Compiler specific presets  ------------------------------------------------
    
    CFLAGS_ifort_fast   = -openmp 
    LDFLAGS_ifort_fast  = -openmp
    
    CFLAGS_ifort_debug  = -openmp -g -warn all -ftrapuv -debug all
    LDFLAGS_ifort_debug = -openmp
    
    CFLAGS_g95_fast     = $(INCDUMMYOMP) -O3
    LDFLAGS_g95_fast    = $(LIBDUMMYOMP)
    
    CFLAGS_g95_debug    = $(INCDUMMYOMP) -g -Wall -ftrace=full -fbounds-check
    LDFLAGS_g95_debug   = $(LIBDUMMYOMP) -g -Wall -ftrace=full -fbounds-check 
    
    CFLAGS_gfortran_fast   = $(INCDUMMYOMP) -O3
    LDFLAGS_gfortran_fast  = $(LIBDUMMYOMP) 
    
    CFLAGS_gfortran_debug  = $(INCDUMMYOMP) -g -Wall
    LDFLAGS_gfortran_debug = $(LIBDUMMYOMP) 
    
    
    #### ---------------------------------------------------------------------------
    
    MACHINE := $(shell ./hostinfo.pl --machine)
    OS := $(shell ./hostinfo.pl --os)
    
    -include Makefile.local
    
    # communicate compiler settings to submake (for sminpack)
    export FORTRANC
    
    SRCS := $(shell ls *.f90)
    
    TARGETS := eulermt source_info minimizer gfdb_build gfdb_extract gfdb_redeploy 
    		  gfdb_info gfdb_specialextract gfdb_build_ahfull differential_azidist 
    		  eikonal_benchmark crust ahfull
    
    TESTS_SRCS := $(shell ls test_*.f90)
    TESTS = $(TESTS_SRCS:.f90=)
    
    .PHONY : clean clean-deps tests targets all check install uninstall
    
    # reset make's default suffix list for implicit rules, set our own
    .SUFFIXES :
    .SUFFIXES : .f90 .o .d .mod
    
    all : targets 
    
    $(TARGETS) $(TESTS) : .sminpackdone .mseedsimple .dummyomplib .dummysacio
    
    kiwi_home.f90 :
    	echo "module kiwi_home" > kiwi_home.f90
    	echo "character (len=*), parameter :: kiwi_home_dir = "$(datadir)/kiwi"" >> kiwi_home.f90
    	echo "end module" >> kiwi_home.f90
    
    .sminpackdone :
    	$(MAKE) -C sminpack/ && touch .sminpackdone
    
    .mseedsimple :
    	$(MAKE) -C mseed/ && touch .mseedsimple
    
    .dummyomplib :
    	$(MAKE) -C dummy_omp_lib/ && touch .dummyomplib
    
    .dummysacio :
    	$(MAKE) -C dummy_sacio/ && touch .dummysacio
    
    targets : $(TARGETS)
    
    
    install : targets
    	$(INSTALL) -d $(bindir)
    	$(INSTALL) $(TARGETS) $(bindir)
    	$(INSTALL) -d $(datadir)/kiwi
    	for f in `find aux -type d -and -not -path '*/.svn*'` ; do 
    	    $(INSTALL) -d $(datadir)/kiwi/$$f ; done
    	for f in `find aux -type f -and -not -path '*/.svn/*'` ; do 
    	    $(INSTALL) $$f $(datadir)/kiwi/$$f ; done
    
    	@echo 
    	@echo '-----------------------------------------------------------------------'
    	@echo '  Installation complete.'
    	@echo '  Please adjust your environment variables:'
    	@echo
    	@echo '   * PATH should contain:'
    	@echo '      ' $(bindir)
    	@echo '-----------------------------------------------------------------------'
    
    uninstall :
    	rm -rf -d $(datadir)/kiwi
    	cd $(bindir) ; rm -f $(TARGETS)
    
    tests : $(TESTS)
    
    printvars :
    	@echo FORTRANC = $(FORTRANC)
    	@echo CFLAGS = $(CFLAGS)
    	@echo LDFLAGS = $(LDFLAGS)
    
    check : tests
    	@for t in $(TESTS); do ./$$t ; done
    
    
    $(TARGETS) $(TESTS) : 
    	$(FORTRANC) $(filter %.o,$^) $(OMPLIB_$(FORTRANC)) $(LDFLAGS) -o $@
    
    
    # implicit rules for generating depfiles
    %.d : %.f90
    	@$(MAKEDEPEND) $<
    	@echo determining dependencies for $<...
    
    progobjects.do : $(SRCS:.f90=.d)
    	@$(OBJDEPEND) $(TARGETS) $(TESTS) -- $(SRCS:.f90=.d) > $@
    	@echo determining dependencies for executables...
    
    # implicit rule for compiling
    %.o : %.f90
    	$(FORTRANC) -c $(CFLAGS) $<
    
    kiwi_home.o kiwi_home.mod : kiwi_home.f90
    	$(FORTRANC) -c $(CFLAGS) $<
    
    minimizer.o : kiwi_home.mod
    
    clean :
    	rm -f *.o *.mod $(TESTS) $(TARGETS) .sminpackdone .mseedsimple .dummysacio .dummyomplib dummy_omp_lib/omp_lib.o dummy_omp_lib/omp_lib.mod kiwi_home.f90
    	$(MAKE) -C sminpack/ clean
    	$(MAKE) -C mseed/ clean
    	$(MAKE) -C dummy_omp_lib/ clean
    	$(MAKE) -C dummy_sacio/ clean
    
        
    clean-deps : clean
    	rm -f *.d *.do
    
    # include auto-created dependencies
    
    -include progobjects.do
    -include $(SRCS:.f90=.d) 
    

     then 'make' in the folder of kiwi and the output is as belows:

  • 相关阅读:
    【AS3代码】类的分包
    语句include和require的区别是什么?
    php创建多级目录的函数
    【AS3代码】打砖块
    【AS3代码】弧度的转换
    【AS3代码】是男人就坚持30秒
    每天问女儿的四个问题
    PowerDesigner16生成SQL2005列注释
    做分析师=盖房子【转】
    用gephi自动分析网站链接方式
  • 原文地址:https://www.cnblogs.com/seisjun/p/10798106.html
Copyright © 2020-2023  润新知