********> bugfix.24 Author: Tom Cheatham Date: 6/21/95 Program: Sander Problem: On SP2: won't compile, I/O incomplete, wrong dynamics results. Fix: % cp Machine/rs6000/Makefile Machine/spx % cp Machine/rs6000/erfcfun.c Machine/spx and make the following changes to files: ------------------------------------------------------------------- *** OLD Machine/mpi/sp1.f --- NEW sp1.f *************** *** 51,57 return end ! subroutine MPI_FINALIZE(ierr) c************************************************************ c MP_STOPALL kills all tasks and stops program. c ierr is supposed to be a returned condition --- 51,57 ----- return end ! subroutine MPI_ABORT(ierr) c************************************************************ c MP_STOPALL kills all tasks and stops program. c************************************************************ *************** *** 54,59 subroutine MPI_FINALIZE(ierr) c************************************************************ c MP_STOPALL kills all tasks and stops program. c ierr is supposed to be a returned condition c but here is used as an input exit code c************************************************************ --- 54,68 ----- subroutine MPI_ABORT(ierr) c************************************************************ c MP_STOPALL kills all tasks and stops program. + c************************************************************ + integer ierr + + call mp_stopall(0) + return + end + + subroutine MPI_FINALIZE(ierr) + c************************************************************ c ierr is supposed to be a returned condition c but here is used as an input exit code c************************************************************ *************** *** 59,65 c************************************************************ integer ierr - call mp_stopall(0) return end --- 68,73 ----- c************************************************************ integer ierr return end ------------------------------------------------------------------- *** OLD sander/parallel.f --- NEW parallel.f *************** *** 1,4 #ifdef MPI # ifdef T3D # define MPI_NATIVE # endif --- 1,7 ----- #ifdef MPI + # ifdef POE + # define MPI_NATIVE + # endif # ifdef T3D # define MPI_NATIVE # endif *************** *** 587,592 integer ns,nr logical sendfirst #include "mpif.h" #ifdef PARAGON integer xlen,ylen ierr = 0 --- 590,606 ----- integer ns,nr logical sendfirst #include "mpif.h" + #ifdef POE + common/locpoe/allgrp + integer allgrp + integer i,size + + do i = 0, nproc-1 + call mp_bcast(x(iparpt(i)), 8*(iparpt(i+1)-iparpt(i)), + . i, allgrp) + enddo + return + #endif #ifdef PARAGON integer xlen,ylen ierr = 0 *************** *** 643,648 bit = ishft(bit,1) enddo return #endif end subroutine gdsum(node,nproc,x,temp,iparpt,ierr) --- 657,674 ----- bit = ishft(bit,1) enddo return + #endif + #ifndef POE + # ifndef PVM + # ifndef PARAGON + # ifndef CSPP + + write(6,'(a)') 'WARNING: DBCAST IS NOT IMPLEMENTED' + write(6,'(a)') 'See src/sander/parallel.f' + + # endif + # endif + # endif #endif end subroutine gdsum(node,nproc,x,temp,iparpt,ierr) ------------------------------------------------------------------- *** OLD lib/mexit.f --- NEW mexit.f *************** *** 22,27 C subroutine mexit(ifil, i) #ifdef MPI # ifdef T3D # define MPI_NATIVE # endif --- 22,30 ----- C subroutine mexit(ifil, i) #ifdef MPI + # ifdef POE + # define MPI_NATIVE + # endif # ifdef T3D # define MPI_NATIVE # endif ------------------------------------------------------------------- *** OLD Machine.sp2 --- NEW Machine.sp2 *************** *** 47,53 setenv MACHINE "IBM rs6000" setenv MACH rs6000 ! setenv MACHINEFLAGS "-DISTAR2 -DREGNML -DNMLEQ -DMPI -DPOE -DMPI_DISTSHAKE -DEWALD -DCLINK_PLAIN " # SYSDIR is the name of the system-specific source directory for makemake setenv SYSDIR Machine/spx --- 47,53 ----- setenv MACHINE "IBM rs6000" setenv MACH rs6000 ! setenv MACHINEFLAGS "-DISTAR2 -DREGNML -DNMLEQ -DMPI -DPOE -DEWALD -DCLINK_PLAIN " # SYSDIR is the name of the system-specific source directory for makemake setenv SYSDIR Machine/spx *************** *** 54,59 # CPP is the cpp for this machine setenv CPP /lib/cpp # COMPILER ALIASES: --- 54,60 ----- # CPP is the cpp for this machine setenv CPP /lib/cpp + setenv LOCINCLUDE "Machine/mpi" # COMPILER ALIASES: ------------------------------------------------------------------- *** OLD Machine/spx/sys_proto.f --- NEW sys_proto.f *************** *** 54,60 c c c --new for Version 2.3 of XLF; page 222 in the V2.3 Language Reference: ! c CALL FLUSH_(LUN) return end c----------------------------------------------------------------------- --- 54,61 ----- c c c --new for Version 2.3 of XLF; page 222 in the V2.3 Language Reference: ! c FLUSH_ call is needed for SP2 ! CALL FLUSH_(LUN) return end c----------------------------------------------------------------------- ------------------------------------------------------------------- Temporary workarounds: none