[MITgcm-devel] two of my favorite packages: exf/cal

Martin Losch Martin.Losch at awi.de
Thu Feb 8 08:54:02 EST 2007


Hi,

I am having trouble with exf and cal on a AIX, P5 IBM p690 and some  
xlf95 version 10 compiler (and something similar happens on our XD1  
with amd64 cpus with some pgi compiler, see optfiles sp4+mpi_jump and  
linux_amd64_pgf77+mpi_xd1).

I use the data.exf_hr and data.cal of Dimitris' high-res-cube  
configuration:
http://dev.mitgcm.org/cgi-bin/viewcvs.cgi/MITgcm_contrib/ 
high_res_cube/input/data.exf_hr?rev=1.16&only_with_tag=MAIN&content- 
type=text/vnd.viewcvs-markup
which has this latest modification about cyclic runoff climatology
Now I get this error (that does not make the model stop):
> (PID.TID 0041.0001) *** ERROR *** cal_CheckDate: Calendar date  
> before predef. reference date
When I took a closer look it turns out that's something wrong with  
runoffstartdate (real variable) as you can see from the STDOUT:
> (PID.TID 0041.0001)    Runnoff starts at     ************
> (PID.TID 0041.0001)    Runoff period is             -12.
> (PID.TID 0041.0001)    Runoff is read from file:
> (PID.TID 0041.0001)    >>  /home5/hhb11/hhb112/runoff/ 
> runoff-360x180x12.bin  <<
Along with this another startdate variable for runoff (some interger  
number in the cal-package) is zero, which is really smaller than the  
predef. reference date of the gregorian calendar (15821015).

Now, I can make this problem (and the warnings/errors) go away, if I  
use EXF_VERBOSE !!!!!
I found that EXF_VERBOSE only affects exf_getffieldrec.F and I have  
tried commenting out various parts of the code that is turned on by  
EXF_VERBOSE, but could not identify an individual line that does this  
(I don't get to run many small jobs on this machine, I have to wait  
forever for a 10sec run ...)

On the XD1 with pgi compiler, I can make the ******* go away, if I  
print runoffstartdate just before this message in exf_summary like this:
>       print *, 'ml-exf: runoffstartdate =', runoffstartdate
>       write(msgbuf,'(a,f13.0)')
>      &'   Runnoff starts at     ',
>      &    runoffstartdate
but that does not fix the cal-error/warnings. The value of  
runoffstartdate is then actually
> ml-exf: runoffstartdate =  -62861529600.00000
> (PID.TID 0000.0001)    Runnoff starts at     -62861529600.
> (PID.TID 0000.0001)    Runoff period is             -12.
> (PID.TID 0000.0001)    Runoff is read from file:
Something really strange. Using EXF_VERBOSE does not change anything  
in this case.

Can you reproduce this problem on any of your machines, Dimitris, I  
suspect that it has to do with the monthly cycling of runoff, right?

Do I have to worry about that at all?

Martin

Part of exf_getffieldrec.F
> #ifdef EXF_VERBOSE
> c     Do some printing for the protocol.
>       _BEGIN_MASTER( mythid )
>         write(msgbuf,'(a)') ' exf_GetFFieldsRec:'
>         call print_message( msgbuf, standardmessageunit,
>      &                      SQUEEZE_RIGHT , mythid)
>         write(msgbuf,'(a,2x,l2,2x,l2,2x,D15.8)')
>      &    ' exf_GetFFieldsRec: first, changed, fac:',
>      &                         first, changed, fac
>         call print_message( msgbuf, standardmessageunit,
>      &                      SQUEEZE_RIGHT , mythid)
>         write(msgbuf,'(a,3(1x,i6))')
>      &    ' exf_GetFFieldsRec: myiter, count0, count1:',
>      &                         myiter, count0, count1
>         call print_message( msgbuf, standardmessageunit,
>      &                      SQUEEZE_RIGHT , mythid)
>         write(msgbuf,'(a)') ' exf_GetFFieldsRec:'
>         call print_message( msgbuf, standardmessageunit,
>      &                      SQUEEZE_RIGHT , mythid)
>       _END_MASTER( mythid )
> #endif
>
>       end





More information about the MITgcm-devel mailing list