This information was compiled by Jeff Durachta, [EMAIL PROTECTED]

Topics:

1. Compiling FMS w/ IBM xlf compiler: Method 1
2. Compiling FMS 2/ IBM xlf compiler: Method 2
3. STDOUT on IBM: use of MP_FLUSH

1. Compiling FMS w/ IBM xlf compiler: Method 1

At least two methods, slightly different in implementation but similar in
result have been found to get the preprocessing of the FMS .F90 files and
compilation of the .f90 files accomplished within the framework of the IBM
xlf compiler. The first method customizes the xlf.cfg file and the second
uses compiler options.It is outlined in a follow on post. While a little
more complicated, the first method eliminates certain irrelevant error
messages.  Since most do not have system root privileges, first copy
/etc/xlf.cfg to a local directory.Edit the DEFLT stanza at the bottom of
xlf.cfg:
          
          cpp        = /usr/ccs/lib/cpp
          cppoptions = -P,-qlanglvl=classic
          cppsuffix = F90 

Add the following line to the compiler stanza which you are invoking
(likely mpxlf90 since that has all the MPI lib paths built in):

          fsuffix    = f90

The template file for the make is constructed as follows. Note the
structure preprocessing directives:
      
 FC = xlf90 -F${HOME}/etc/xlf.cfg:mpxlf90
 LD = xlf90 -F${HOME}/etc/xlf.cfg:mpxlf90
 CFLAGS = -O
 FFLAGS = -qarch=auto -qmaxmem=-1 -qdpc -qrealsize=8 -qintsize=4 -O -I./ 
-I/usr/local/include
 LDFLAGS = -L/usr/local/lib -lnetcdf
 CPPFLAGS = -I/usr/local/include-WF,-DFLUSH=FLUSH_,-Duse_netCDF,-Duse_libMPI           
                                                                                       
                                                                                       
                                                                                       
      

Note that the syntax for the fortran preprocessing does not play well with
what is expected for the C language.  If nsclock.c was included with your
source (/shared/mpp/nsclock.c), you will either need to remove the
reference from the path_names file and build the Makefile or edit the
Makefile and define a separate flag for one of the source types. For
example, change CPPFLAGS to FPPFLAGS for the .F90 files.


2. Compiling FMS 2/ IBM xlf compiler: Method 2

If you don't mind some additional "verbosity" during the compilation 
process, an FMS beta tester working on an IBM platform has found that the 
-qsuffix compiler option will produce much of the same effect as described 
in Method 1:

       -qsuffix=f=f90:cpp=F90 

The template would then look something like this:  

 FC = xlf90 -F:mpxlf90 
 LD = xlf90 -F:mpxlf90 
 CFLAGS = -O  
 FFLAGS = -qarch=auto -qsuffix=f=f90:cpp=F90 -qmaxmem=-1 -qdpc -qrealsize=8 
-qintsize=4 -O -I./ -I/usr/local/include   
 LDFLAGS = -L/usr/local/lib -lnetcdf 
 CPPFLAGS = -I/usr/local/include-WF,-DFLUSH=FLUSH_,-Duse_netCDF,-Duse_libMPI  

As with Method 1, syntax for C and fortran preprocessing directives 
differs. See the bottom of the Method 1 section for details.

3. STDOUT on IBM: use of MP_FLUSH

A beta tester of FMS for the IBM platform has noted that even with 
MP_STDOUTMODE set to "ordered", there are problems with information written 
to the screen by FMS. This tester has found that placing a call to MP_FLUSH 
in mpp_sync seems to fix the problem.









_______________________________________________________________
Hundreds of nodes, one monster rendering program.
Now that's a super model! Visit http://clustering.foundries.sf.net/

_______________________________________________
Fms-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fms-users

Reply via email to