Code Monkey home page Code Monkey logo

Comments (17)

rgknox avatar rgknox commented on August 23, 2024

Hi Shawn,

I have this issue on linux too.

I build in this order:

./generate_deps.sh
make -f Makefile clean OPT=
make -f Makefile OPT=

where matches include.mk.

On Fri, Sep 5, 2014 at 1:53 PM, Shawn P. Serbin [email protected]
wrote:

./install.sh
rules.mk:551: dependency.mk: No such file or directory
make: ***No rule to make target 'dependency.mk'. Stop.

I don't have this issue with older versions, including r82 that you can
install using the PEcAn instructions. Has anyone else had this issue before?

System specifics:
Sci Linux (RHEL/CentOS 6.5)
Using gfortran compiler, openmpi, etc, etc...standard stuff


Reply to this email directly or view it on GitHub
#7.

from ed2.

serbinsh avatar serbinsh commented on August 23, 2024

OK, I have moved beyond this error to another with the bleeding edge ED2 code. I am now getting this error:
mpif90 -c -DUSE_INTERF=1 -DUSENC=0 -DPC_LINUX1 -DUSE_HDF5=1 -DUSE_COLLECTIVE_MPIO=0 -DUSE_MPIWTIME=1 -O3 -ffree-line-length-none -fno-whole-file -I../../src/include -I/usr/include -DRAMS_MPI -I/usr/include hdf5_coms.F90
hdf5_coms.F90:3.7:

use hdf5
1
Fatal Error: Cannot read module file 'hdf5.mod' opened at (1), because it was created by a different version of GNU Fortran
make[1]: *** [hdf5_coms.o] Error 1
make[1]: Leaving directory `/data/software/src/ED2.mainline/ED/build/bin'
make: *** [all] Error 2

After pulling the latest version of the code. Getting closer.

from ed2.

serbinsh avatar serbinsh commented on August 23, 2024

First fix attempt: reinstall all hdf5 libs using latest gfortran. Didn't fix issue.

from ed2.

serbinsh avatar serbinsh commented on August 23, 2024

trying to compile a simple program to check hdf5 install:

The program:
program test
use mpi
use hdf5
end

[sserbin@test data]$ mpif90 test.f90
test.f90:3.6:

use hdf5
1
Fatal Error: Can't open module file 'hdf5.mod' for reading at (1): No such file or directory

from ed2.

serbinsh avatar serbinsh commented on August 23, 2024

Not pointing to the correct HDF5 location; using default. Need to specify in the include file

mpif90 -c -DUSE_INTERF=1 -DUSENC=0 -DPC_LINUX1 -DUSE_HDF5=1 -DUSE_COLLECTIVE_MPIO=0 -DUSE_MPIWTIME=1 -O3 -ffree-line-length-none -fno-whole-file -I../../src/include -I/usr/include -DRAMS_MPI -I/usr/include hdf5_coms.F90
hdf5_coms.F90:3.7:

use hdf5
1
Fatal Error: Cannot read module file 'hdf5.mod' opened at (1), because it was created by a different version of GNU Fortran
make[1]: *** [hdf5_coms.o] Error 1
make[1]: Leaving directory `/data/software/src/ED2.mainline/ED/build/bin'
make: *** [all] Error 2

from ed2.

serbinsh avatar serbinsh commented on August 23, 2024

New error:

cp -f ../../src/driver/edmain.f90 edmain.f90
mpif90 -c -O3 -ffree-line-length-none -fno-whole-file -I../../src/include -I/data/software/hdf5/1.8.13/include -DRAMS_MPI edmain.f90
rm -f edmain.f90

mpif90 -o ../../build//ed_2.1-opt edmain.o -O3 -ffree-line-length-none -fno-whole-file ../../build//ed_2.1-opt.a -L/data/software/hdf5/1.8.13/lib -lhdf5 -lm -lhdf5_fortran -lhdf5 -lhdf5_hl -lz
-L/dev/null -O3 -ffree-line-length-none -fno-whole-file
../../build//ed_2.1-opt.a(rsys.o): In function timing_': rsys.F90:(.text+0x9a): undefined reference toetime_'
collect2: error: ld returned 1 exit status
make[1]: *** [../../build//ed_2.1-opt] Error 1
make[1]: Leaving directory `/data/software/src/ED2.mainline/ED/build/bin'
make: *** [all] Error 2

Will try to adjust compile flags

from ed2.

serbinsh avatar serbinsh commented on August 23, 2024

New error message:

mpif90 -c -O3 -I../../src/include -I/data/software/hdf5/1.8.13/include -DRAMS_MPI ed_init.f90
ed_init.f90:131.31:

     call soil_default_fill(cgrid,ifm,ipy)
                           1

Error: Dummy argument 'cgrid' of procedure 'soil_default_fill' at (1) has an attribute that requires an explicit interface for this procedure
ed_init.f90:465.29:

     call print_soil_info(edgrid_g(igr),igr)
                         1

Error: Dummy argument 'cgrid' of procedure 'print_soil_info' at (1) has an attribute that requires an explicit interface for this procedure
make[1]: *** [ed_init.o] Error 1

Here are my compile options:
#gfortran
CMACH=PC_LINUX1
F_COMP=mpif90
#F_OPTS=-O3 -ffree-line-length-none -fno-whole-file
F_OPTS=-O3
C_COMP=mpicc
C_OPTS=-O3
LOADER=mpif90
LOADER_OPTS=${F_OPTS}
C_LOADER=mpicc
LIBS=
MOD_EXT=mod

Note F_OPTS and C_OPTS are only -O3. Any thoughts @rgknox @robkooper @mdietze?

from ed2.

robkooper avatar robkooper commented on August 23, 2024

I had to add the following patch for time on ubuntu, if this works for you on redhat I might make an official pull request to ED.

diff -cr ED.r82.orig/ED/src/utils/rsys.F90 ED.r82/ED/src/utils/rsys.F90
*** ED.r82.orig/ED/src/utils/rsys.F90   2012-07-01 12:02:28.000000000 -0500
--- ED.r82/ED/src/utils/rsys.F90        2012-07-01 17:20:58.069145247 -0500
***************
*** 114,119 ****
--- 114,121 ----
     real   , external     :: cputime
  #elif defined(MAC_OS_X)
     real                  :: etime
+ #elif defined(__GFORTRAN__)
+    real                  :: etime
  #else
     real   , external     :: etime
  #endif

from ed2.

robkooper avatar robkooper commented on August 23, 2024

the -fno-whole-file will avoid the interface issues.

from ed2.

serbinsh avatar serbinsh commented on August 23, 2024

@robkooper is the difference/change that it should be GFORTRAN and not PC_GFORTRAN?

!==========================================================================================!
!==========================================================================================!
! Routine returns CPU time. Called with ICALL=1 at beginning of timestep, ICALL=2 at !
! end of timestep. !
!------------------------------------------------------------------------------------------!
subroutine timing(icall,t1)
implicit none
integer, intent(in) :: icall
real , intent(out) :: t1
real , dimension(2) :: et(2)

#if defined(VAX)
integer :: iad0
#endif

#if defined(IBM)
real , external :: mclock
#elif defined(CRAY)
real , external :: cputime
#elif defined(MAC_OS_X)
real :: etime
#elif defined(PC_GFORTRAN) **<-----HERE???
real :: etime
#else
real ,external :: etime
#endif

from ed2.

robkooper avatar robkooper commented on August 23, 2024

I guess so, try and see what happens, I just added a new clause in case that would otherwise break some other compiler.

from ed2.

serbinsh avatar serbinsh commented on August 23, 2024

@robkooper Good idea

from ed2.

serbinsh avatar serbinsh commented on August 23, 2024

This issue can be closed.

Finished building === ../../build//ed_2.1-opt

make[1]: Leaving directory /data/software/src/ED2.mainline/ED/build/bin' make ../../build//ed_2.1-opt make[1]: Entering directory/data/software/src/ED2.mainline/ED/build/bin'
make[1]: ../../build//ed_2.1-opt' is up to date. make[1]: Leaving directory/data/software/src/ED2.mainline/ED/build/bin'
make ../../build//ed_2.1-opt
make[1]: Entering directory /data/software/src/ED2.mainline/ED/build/bin' make[1]:../../build//ed_2.1-opt' is up to date.
make[1]: Leaving directory /data/software/src/ED2.mainline/ED/build/bin' make ../../build//ed_2.1-opt make[1]: Entering directory/data/software/src/ED2.mainline/ED/build/bin'
make[1]: ../../build//ed_2.1-opt' is up to date. make[1]: Leaving directory/data/software/src/ED2.mainline/ED/build/bin'
make ../../build//ed_2.1-opt
make[1]: Entering directory /data/software/src/ED2.mainline/ED/build/bin' make[1]:../../build//ed_2.1-opt' is up to date.
make[1]: Leaving directory `/data/software/src/ED2.mainline/ED/build/bin'

from ed2.

rgknox avatar rgknox commented on August 23, 2024

I put in PC_GFORTRAN for this specific issue. We can call it whatever we
want, but I don't think we need two directives.

On Thu, Nov 6, 2014 at 10:08 AM, Shawn P. Serbin [email protected]
wrote:

This issue can be closed.

Finished building === ../../build//ed_2.1-opt

make[1]: Leaving directory /data/software/src/ED2.mainline/ED/build/bin'
make ../../build//ed_2.1-opt
make[1]: Entering directory/data/software/src/ED2.mainline/ED/build/bin'
make[1]: ../../build//ed_2.1-opt' is up to date.
make[1]: Leaving directory/data/software/src/ED2.mainline/ED/build/bin'
make ../../build//ed_2.1-opt
make[1]: Entering directory /data/software/src/ED2.mainline/ED/build/bin'
make[1]:../../build//ed_2.1-opt' is up to date.
make[1]: Leaving directory /data/software/src/ED2.mainline/ED/build/bin'
make ../../build//ed_2.1-opt
make[1]: Entering directory/data/software/src/ED2.mainline/ED/build/bin'
make[1]: ../../build//ed_2.1-opt' is up to date.
make[1]: Leaving directory/data/software/src/ED2.mainline/ED/build/bin'
make ../../build//ed_2.1-opt
make[1]: Entering directory /data/software/src/ED2.mainline/ED/build/bin'
make[1]:../../build//ed_2.1-opt' is up to date.
make[1]: Leaving directory `/data/software/src/ED2.mainline/ED/build/bin'


Reply to this email directly or view it on GitHub
#7 (comment).

from ed2.

robkooper avatar robkooper commented on August 23, 2024

I used GFORTRAN since this is a predefined variable by gfortran, so any gfotran compiled will automatically have this set.

from ed2.

serbinsh avatar serbinsh commented on August 23, 2024

@rgknox I would have thought so too but it seems that it would compile for me until I set this to:
+#elif defined(GFORTRAN)

  • real :: etime

Since it is in an if/else I suppose it doesn't hurt to have both.....

from ed2.

rgknox avatar rgknox commented on August 23, 2024

all sounds good, I will go ahead and accept the pull request (if it hasn't
already)

On Thu, Nov 6, 2014 at 3:47 PM, Rob Kooper [email protected] wrote:

I used GFORTRAN since this is a predefined variable by gfortran, so
any gfotran compiled will automatically have this set.


Reply to this email directly or view it on GitHub
#7 (comment).

from ed2.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.