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