Compiling error: dateclock?

Discussion about coupled ecosystem models

Moderators: arango, robertson

Post Reply
Message
Author
drivas
Posts: 27
Joined: Tue Aug 28, 2007 8:31 pm
Location: CICESE

Compiling error: dateclock?

#1 Post by drivas » Wed Apr 26, 2017 1:55 am

Hello,

I guess someone in this group has experienced this same problem. I'm compiling the model's last version with gfortran in Centos and I get this error (I include only the last part):

cd /home/ROMS_MODEL/RUN_ROMS/Build; /usr/bin/gfortran -c -frepack-arrays -fopenmp -O3 -ffast-math mod_eclight.f90
dateclock.f90:137.8:

DateNumber=Rclock.Dnumber+CurrentTime ! fractional days
1
Error: Unclassifiable statement at (1)
dateclock.f90:154.8:

DateNumber=Rclock.Dnumber+CurrentTime ! fractional days
1
Error: Unclassifiable statement at (1)
dateclock.f90:171.8:

DateNumber=Rclock.Dnumber+CurrentTime
1
Error: Unclassifiable statement at (1)
dateclock.f90:211.33:

IF (CurrentTime.ge.Rclock.Dnumber) THEN
1
Error: Syntax error in IF-expression at (1)
dateclock.f90:214.25:

jday=INT(Rclock.Dnumber+CurrentTime) ! Truncated Julian Day
1
Error: Syntax error in argument list at (1)
dateclock.f90:241.9:

END IF
1
Error: Expecting END SUBROUTINE statement at (1)
dateclock.f90:816.6:

Rclock.yday =yday
1
Error: Unclassifiable statement at (1)
dateclock.f90:817.6:

Rclock.year =iyear
1
Error: Unclassifiable statement at (1)
dateclock.f90:818.6:

Rclock.month =month
1
Error: Unclassifiable statement at (1)
dateclock.f90:819.6:

Rclock.day =iday
1
Error: Unclassifiable statement at (1)
dateclock.f90:820.6:

Rclock.hour =ihour
1
Error: Unclassifiable statement at (1)
dateclock.f90:821.6:

Rclock.minutes =minute
1
Error: Unclassifiable statement at (1)
dateclock.f90:822.6:

Rclock.seconds =isec
1
Error: Unclassifiable statement at (1)
dateclock.f90:823.6:

Rclock.base =r_time
1
Error: Unclassifiable statement at (1)
dateclock.f90:824.6:

Rclock.Dnumber =DateNumber(1)
1
Error: Unclassifiable statement at (1)
dateclock.f90:825.6:

Rclock.Snumber =DateNumber(2)
1
Error: Unclassifiable statement at (1)
dateclock.f90:826.6:

Rclock.string =string
1
Error: Unclassifiable statement at (1)
dateclock.f90:827.6:

Rclock.calendar=TRIM(calendar)
1
Error: Unclassifiable statement at (1)
dateclock.f90:888.6:

ClockTime=DateNumber(2)-Rclock.Snumber
1
Error: Unclassifiable statement at (1)
make: *** [/home/ROMS_MODEL/RUN_ROMS/Build/dateclock.o] Error 1
make: *** Waiting for unfinished jobs....


Any thought?
Thanks,

DAVID

User avatar
kate
Posts: 3704
Joined: Wed Jul 02, 2003 5:29 pm
Location: IMS/UAF, USA

Re: Compiling error: dateclock?

#2 Post by kate » Wed Apr 26, 2017 5:06 am

Right you are - it fails with gfortran, compiles with ifort. Reading the errors, I don't understand why it doesn't compile.

ymamoutos
Posts: 55
Joined: Fri Nov 19, 2010 2:33 pm
Location: University of Aegean

Re: Compiling error: dateclock?

#3 Post by ymamoutos » Wed Apr 26, 2017 10:42 am

Greetings

FYI I am also experiencing the same
problem after updating to version 841.
I am using gfortran 4.9.2 on Debian.

Giannis

User avatar
kate
Posts: 3704
Joined: Wed Jul 02, 2003 5:29 pm
Location: IMS/UAF, USA

Re: Compiling error: dateclock?

#4 Post by kate » Wed Apr 26, 2017 6:17 pm

The correct syntax for structure components in Fortran is:

Code: Select all

Rclock%Dnumber
not

Code: Select all

Rclock.Dnumber
. Fixing that in dateclock.F allows it to compile, only to fail on:

Code: Select all

diag.f90:355.55:

            WRITE (stdout,30) MOD(iic(ng)-1,10000000000), time_code(ng),&
                                                       1
Error: Integer too big for its kind at (1). This check can be disabled with the option -fno-range-check
make: *** [Build_up/diag.o] Error 1
It compiles with one less zero there.

There are other Rclock.xx things in def_*.F.

User avatar
arango
Site Admin
Posts: 1082
Joined: Wed Feb 26, 2003 4:41 pm
Location: IMCS, Rutgers University
Contact:

Re: Compiling error: dateclock?

#5 Post by arango » Wed Apr 26, 2017 8:22 pm

Yes, thank you for reporting this one. The weird thing is that I ran and debugged (TotalView) this version several times with the ifort compiler and didn't report any errors or warnings. It seems to be happy with the dot syntax. Of course, the correct syntax in Fortran is to use Rclock %. This happens for coding some of the functions in module dateclock.F in both Fortran and Matlab. The dot syntax is correct in Matlab.

Please update your code. Check the following :arrow: trak ticket for details.

drivas
Posts: 27
Joined: Tue Aug 28, 2007 8:31 pm
Location: CICESE

Re: Compiling error: dateclock?

#6 Post by drivas » Wed Apr 26, 2017 10:16 pm

Thanks for your comments, guys. I replaced the newest version by the one I downloaded by the end of the last year and it's now working. I'll update it soon.
Regards,

David

Post Reply