[MITgcm-support] a quick compile question

Oliver Jahn jahn at MIT.EDU
Thu Jul 15 08:57:25 EDT 2010


I think I've found the likely cause of your problem: on April 28, 2009, 
the _EXCH_XYZ_R8 macro was replaced by the _EXCH_XYZ_RL one (should have 
thought of this earlier).  I suspect you have an initialise_varia.F that 
is older than this and uses _EXCH_XYZ_R8, but your CPP_EEMACROS.h (where 
the macro is defined) is newer and only defines _EXCH_XYZ_RL.  Can you 
check whether one of the two files is in your code modifications 
directory (the argument to genmake2 -mods)?  You'll have to compare it 
carefully with the one in the model (eesupp/inc/CPP_EEMACROS.h or 
model/src/initialise_varia.F) and apply any changes from the original. 
If you have neither file in your code directory, make sure to do a clean 
build: start from an empty directory and run genmake2 ..., make depend, 
and make.

Oliver

On 2010-07-15 06:17, Andrew Keats wrote:
> Just one other thing, may or may not be related,  what are your
> arguments to the genmake2 command?  Are you depending on a
> genmake_local file to be present in the build directory?
>
> Andrew
>
> On Thu, Jul 15, 2010 at 7:36 AM, Yuan Lian<lian at ashimaresearch.com>  wrote:
>> Jens-Olaf and Oliver's suggestions make sense.
>>
>> First check Makefile and see if initialise_varia.f has all required macros.
>> The missing macros could be caused by "mkdepend".
>>   If the dependencies are all there, then Check initialise_varia.f before
>> you compile it to make sure _EXCH_XYZ_R8 has been replaced by
>> CALL EXCH_XYZ_R8 (open initialise_varia.f in editor and search for
>> EXCH_XYZ_R8). If _EXCH_XYZ_R8 is not converted correctly then there is
>> problem with cpp and its defines.
>>
>> Yuan
>>
>>
>> On 7/15/10 1:35 AM, q li wrote:
>>
>> Hi Jens-Olaf, Oliver and Yuan,
>>
>> Thanks for the suggestions. I am not familar with cpp. I still don't know
>> how to fix it. I "think" I have had all options for cpp. _EXCH _EXCH_XYZ_R8
>> should be converted to CALL EXCH _EXCH_XYZ_R8, I guess.
>>
>> Li
>>
>> Here is the cpp&  mpif77 command
>>
>> cat initialise_varia.F | /data2/home/hiphop/MITgcm/tools/set64bitConst.sh |
>> cpp  -traditional -P -DALLOW_USE_MPI -DALWAYS_USE_MPI -D_BYTESWAPIO
>> -DWORDLENGTH=4 -DALLOW_USE_MPI -DALWAYS_USE_MPI -DHAVE_SYSTEM -DHAVE_FDATE
>> -DHAVE_ETIME -DHAVE_CLOC -DHAVE_SETRLSTK -DHAVE_SIGREG -DHAVE_STAT
>> -I/usr/include -I/data2/home/hiphop/local/mpich-intel/include
>> -I/data2/software/intel/fce/9.1.040/include>  initialise_varia.f
>> mpif77 -132 -r8 -i4 -w95 -W0 -WB  -convert big_endian  -assume byterecl  -O3
>> -fp -align -c initialise_varia.f
>> fortcom: Error: initialise_varia.f, line 2202: Syntax error, found
>> END-OF-STATEMENT when expecting one of: =>  = . ( %
>>        _EXCH_XYZ_R8(wVel,myThid)
>> -------------------------------^
>> compilation aborted for initialise_varia.f (code 1)
>> make: *** [initialise_varia.o] Error 1
>>
>> ________________________________
>> From: Jens-Olaf Beismann<jbeismann at hpce.nec.com>
>> To: "mitgcm-support at mitgcm.org"<mitgcm-support at mitgcm.org>
>> Sent: Thu, July 15, 2010 3:10:57 AM
>> Subject: Re: [MITgcm-support] a quick compile question
>>
>> Li,
>>
>>> mpif77 -132 -r8 -i4 -w95 -W0 -WB  -O3 -fp -align -c initialise_varia.f
>>> fortcom: Error: initialise_varia.f, line 2202: Syntax error,
>>> found END-OF-STATEMENT when expecting one of: =>  = . ( %
>>>        _EXCH_XYZ_R8(wVel,myThid)
>>>              -------------------------------^
>>> compilation aborted for initialise_varia.f (code 1)
>>> make: *** [initialise_varia.o] Error 1
>>>
>>> Here is the line 2202:
>>>
>>> 2201 C--  Fill in overlap regions for wVel :
>>> 2202      _EXCH_XYZ_R8(wVel,myThid)
>>> 2203 C--  Finally summarise the model state
>>> 2204      IF (debugMode) CALL DEBUG_CALL('STATE_SUMMARY',myThid)
>>> 2205      CALL STATE_SUMMARY( myThid )
>>
>> as Oliver already mentioned this has nothing to do with the compiler or MPI
>> library you're using. For some reason the preprocessor (cpp) did not replace
>> _EXCH_XYZ_R8 with the appropriate subroutine call.
>>
>> Please make sure that the preprocessing step is successful. If I remember
>> correctly, *.f files are generated from the corresponding *.F in a separate
>> step in the MITgcm make process. From the stdout/stderr you should be able
>> to check the cpp command for any missing options/defines. You can re-run
>> just the cpp command interactively to find out what is needed for the
>> correct expansion of this macro.
>>
>> Cheers,
>>
>> Jens-Olaf
>> ---
>> Dr. Jens-Olaf Beismann        Senior Benchmarking Analyst
>> High Performance Computing    NEC Deutschland GmbH
>> Tel: +49 431 2372063 (office)      +49 160 1835289 (mobile)
>> Fax: +49 431 2372170        www.nec.com/de/prod/servers/hpc/
>> ---
>> NEC Deutschland GmbH, Hansaallee 101, D-40549 Düsseldorf
>> Geschäftsführer: Richard Hanscott
>> Handelsregister Düsseldorf, HRB 57941, VAT ID DE129424743
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>
>>
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>
>>
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>
>>
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support



More information about the MITgcm-support mailing list