********> bugfix.32 Author: Tom Cheatham Date: 8/7/95 Programs: sander Problem: Temperature blowup when compiled for SGI parallel using Machine.sgi as a MACHINE file. Cause: A modified Machine.sgi file from SGI that was put in place on 7/17 included a flag that enables broken code that was turned off by bugfix.19. Fix: Replace Machine.sgi with the appended version. If you have been using Machine.sgi as your MACHINE file, replace that as well and 'cd sander; make clean; make install'. All users who might someday compile on SGI machines may as well replace the file. Temporary workarounds: none Routines affected: SHAKE #! /bin/csh -f ######################################################################## # # # Copyright (c) 1986, 1991, 1995 # # Regents of the University of California # # # # All Rights Reserved # # # # Machine Dependency Handling System # # # # Bill Ross ross@cgl.ucsf.edu # # An extension of work of George Seibel # # # # Dependencies written by various authors. # # # # Permission to use, copy, modify, and distribute this software and # # its documentation for any purpose and without fee is hereby # # granted, provided that the above copyright notice appear in all # # copies and that both that copyright notice and this permission # # notice appear in supporting documentation, and that the name of # # the University of California not be used in advertising or # # publicity pertaining to distribution of the software without # # specific, written prior permission. # # # # THE REGENTS OF THE UNIVERSITY OF CALIFORNIA DISCLAIM ALL # # WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED # # WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL THE # # UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY SPECIAL, INDIRECT OR # # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM # # LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, # # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN # # CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # # # ######################################################################## # # Copy this file to amber4.1/src/MACHINE to install. # # This file is appropriate for: Any SGI machine with the # Fortran compiler installed. # Shared memory parallelism is # automatically invoked if possible. # # SPECIAL NOTE # # This MACHINE file is an SGI-specific self-configuring script. # During the compilation of AMBER source code, the Makefiles # execute the src/Compile script to perform compilation. This leads # to sourcing of the MACHINE file, whereupon various machine specific # flags are set. Therefore, this script is only applicable for # compiling source for the *current* machine you are running on. # In order to compile sources for SGI machines of a different type, # use the MACHINE file for the particular architecture of interest. # Note however that different SGI machines (at different levels of OS) # may have different binary formats, so you probably cannot compile # for another architecture SGI machine on this machine unless you # really know what you are doing... # # Old notes: With the 3.2 compiler, SGI has changed the definition # of the record length specifier for binary direct access files to be # denominated in 4 byte words instead of in bytes. This will # affect PREP and LINK (subrt openda). We use the -old_rl flag # to obtain the previous behavior. # # PROBLEMS? # # q. I upgraded my machine to IRIX 5.x or higher and I keep getting # these messages such as # FATAL 12: Object class error (foo.o): not a 64-bit object. # or another message to saying something like # cannot mix COFF and MIPSEB objects # # ...the source was not completely made clean prior to recompilation. # execute make clean in each of the src directories and also in # src/Machine/sgi # # q. I have a parallel machine running IRIX 5.2, such as a Challenge, # and I use this MACHINE script, but the stupid thing won't make a # shared memory parallel gibbs or sander?!!? # # ...there is a bug in some IRIX 5.2 distributions whereby a critical # library file is missing; this file is necessary for proper # compiling. The name of the file is /usr/lib/libI77_mp.a # Harass your SGI support team for this, look on the anonymous ftp # server at sgi.com, or e-mail amber-request@cgl.ucsf.edu to ask # for this library binary. # # q. I've got a TFP and I get lots of complaints from the compiler, # such as, # WARNING 84: /usr/lib64/mips4/libfastm.so is not used for resolving any # symbol. # WARNING 85: definition of profil_ in dpmisc.o preempts that definition # in /usr/lib64/mips4/libftn.so. # WARNING 85: definition of f77vms_flag_ in dpsander.o preempts that # definition in /usr/lib64/mips4/libft # # ...this is normal behavior # # ######################################################################### # # These aliases let us use the same command files for compilation # on Unix systems with different names and/or flags for the fortran # compiler. Environment variables set here specify the location # of system-specific source and control the use of Integer*2. # See install.doc: "Setting Up the Configuration File" # setenv MACHINE "SGI" setenv MACH IRIS setenv MACHINEFLAGS "-DISTAR2 -DNMLEQ -DEWALD " setenv SGIEXTRAS "-DBLAS1" # CPP is the cpp for this machine setenv CPP /lib/cpp # SYSDIR is the name of the system-specific source directory for makemake setenv SYSDIR Machine/sgi # SGI specific ``code'' to recognize the type of machine and its # environment, do not change... # Default Mips flag: -mips1 set MIPSFLAG = '-mips1' set LFASTM = '-lfastm' # Default Blas library: -lblas set BLASLIB = '-lblas' # Default MPFLAG: [blank] set MPFLAG = # Number of Processors set NPROC = 4 # Processor: set WHICHIP = `uname -m | sed s/IP//` @ WHICHIP += 0 # OS Version: set OSVERS = `uname -r` set OSMAJOR = ${OSVERS:r} set OSMAJOR = ${OSMAJOR:r} # USER SPECIFIED VARIABLES # The compiled in maximum number of processors allowed... set MAX_PRO = 1 # Power Series if ( $WHICHIP == 7) set MAX_PRO = 8 # Challenge if ( $WHICHIP == 19) set MAX_PRO = 36 # PowerChallenge if ( $WHICHIP == 21) set MAX_PRO = 18 #Now adjust the parameters to the machine if ( $NPROC > 1 ) then if ( ! ( -e /usr/lib/libI77_mp.a ) ) then @ NPROC = 1 else setenv SGIEXTRAS "$SGIEXTRAS -DSGI_MP -DSGI_MP_MAX_PROCESSORS=$MAX_PRO" set MPFLAG = -mp if ( $OSMAJOR > 4 ) then set BLASLIB = -lblas_mp endif endif endif #Use MEM_ALLOC if this an uniprocessor system if ( $NPROC == 1 ) then setenv SGIEXTRAS "$SGIEXTRAS -DMEM_ALLOC" endif # Do we have the FFT libraries in libcomplib.sgimath.a? if ( -e /usr/lib/libcomplib.sgimath.a | \ -e /usr/lib/mips2/libcomplib.sgimath.a | \ -e /usr/lib64/mips4/libcomplib.sgimath.a ) then setenv SGIEXTRAS "$SGIEXTRAS -DSGIFFT" if ( $NPROC > 1 ) then set BLASLIB = "$BLASLIB -lcomplib.sgimath_mp" else set BLASLIB = "$BLASLIB -lcomplib.sgimath" endif endif # Some (Optimization) flags set O0 = -O0 set OLO = -O1 set OHI = -O2 set NFLAGS = (-Nl200 -Nn10000) # R4k machines if ( $WHICHIP >= 17 ) then set MIPSFLAG = '-mips2' endif # R8k machines if ( $WHICHIP == 21 || $WHICHIP == 26 ) then set MIPSFLAG = '-mips4' setenv SGIEXTRAS "$SGIEXTRAS -DTFP -DCACHE_BLOCKSIZE=5000" set OHI = -O3 set NFLAGS = (-WK,-dr=AKC -OPT:roundoff=3:IEEE_arithmetic=3 -SWP:strict_ivdep=OFF -TENV:X=3 ) endif setenv MACHINEFLAGS "$MACHINEFLAGS $SGIEXTRAS" # COMPILER ALIASES: # LOADER/LINKER: setenv LOAD "f77 $MIPSFLAG $MPFLAG $LFASTM " setenv LOADLIB " $BLASLIB " setenv CFLAGS " $MIPSFLAG " # little or no optimization: (-Nl200 for lib/namlist90) setenv L0 "f77 -nocpp $MIPSFLAG -c $O0 -old_rl $NFLAGS " # modest optimization (local scalar): setenv L1 "f77 -nocpp $MIPSFLAG -c $OLO -old_rl $NFLAGS " # high scalar optimization setenv L2 "f77 -nocpp $MPFLAG $MIPSFLAG -c $OHI -old_rl $NFLAGS" # high optimization : setenv L3 "f77 -nocpp $MPFLAG $MIPSFLAG -c $OHI -old_rl $NFLAGS " # ranlib, if it exists setenv RANLIB "echo no ranlib" # spasms configuration #SPASMS MACHINE.sgi_spasms_config #SPASMS unix #SPASMS n390 #SPASMS large