[MITgcm-devel] alpha et omega

chris hill cnh at mit.edu
Wed Nov 22 12:11:16 EST 2006


Hi Martin,

  Are vort3, strain and hFacZ initialized everywhere (included overlaps).
  Alpha compilers like to leave invalid floating points in unitialized 
variables that can cause this. Most other compilers have zeros in 
unitialized vars which makes this hard to detect.

Chris
Martin.Losch at awi.de wrote:
> Hi there,
> 
> we are having problems on a Dec-Alpha system:
> uname -a: OSF1 adva.weizmann.ac.il V5.1 2650 alpha
> and some fort90 compiler that I cannot clear identify (no man pages, no -V option, really nice). With this configuration we 
> run into strange problems. I'll try to list them and maybe someone can help:
> - in single CPU mode (no MPI) everything seems to work fine
> - with MPI the model stops with a floating point exception depending on the viscosity parameters and the compile 
> options.
> 1. with the standard options (derived from osf1_alpha_f77), I cannot use viscA4/hSmag >0 (stops in mom_u_yviscflux.F)
> 2. with an additional array bound check I cannot use any viscosity at all (momViscosity=.false. is the only thing that 
> works), stops in either mom_fluxform.F or mom_vecinv.F at approximately the same lines:
>         CALL MOM_CALC_HDIV(bi,bj,k,2,uFld,vFld,hDiv,myThid)
>         CALL MOM_CALC_RELVORT3(bi,bj,k,uFld,vFld,hFacZ,vort3,myThid)
>         CALL MOM_CALC_TENSION(bi,bj,k,uFld,vFld,tension,myThid)
>         CALL MOM_CALC_STRAIN(bi,bj,k,uFld,vFld,hFacZ,strain,myThid)
>         DO j=1-Oly,sNy+Oly
>          DO i=1-Olx,sNx+Olx
>            IF ( hFacZ(i,j).EQ.0. ) THEN
>              vort3(i,j)  = sideMaskFac*vort3(i,j)     <----- mom_fluxform
>              strain(i,j) = sideMaskFac*strain(i,j)    <----- mom_vecinv
>            ENDIF
>          ENDDO
>         ENDDO
> 
> The system tells me where the floating point exception occurs but that's about it. I have not been able to use any 
> debugging options etc, it's all very buggy.
> 
> Any idea, what's going on? (apart from the obvious problem, that the compute is not very well maintained)
> 
> Martin
> 
> Martin Losch
> Alfred Wegener Institute 
> Postfach 120161, 27515 Bremerhaven, Germany; 
> Tel./Fax: ++49(0471)4831-1872/1797
> 
> content of the optfile:
> #!/bin/bash
> ## Yossi's version for alpha MPI
> #
> #  $Header: /u/gcmpack/MITgcm/tools/build_options/osf1+mpi,v 1.2 2003/08/27 22:12:31 edhill Exp $
> #
> 
> S64='$(TOOLSDIR)/set64bitConst.sh'
> #MAKEDEPEND='mkdep -f depend.out'
> ## MAKEDEPEND=makedepend
> ## DEFINES='-DWORDLENGTH=4'
> ## DEFINES='-DALLOW_USE_MPI -DALWAYS_USE_MPI -DTARGET_DEC -DWORDLENGTH=1'
> DEFINES='-DTARGET_DEC -DWORDLENGTH=1'
> FC_NAMEMANGLE='#define FC_NAMEMANGLE(X) X ## _'
> 
> MPI='true'
> CPP='/usr/local/bin/cpp -traditional -P'
> #ph: e.g. halem.gsfc.nasa.gov
> LIBS='-L/opt/mpi/lib/alpha/ -lfmpi -lmpi -lkmp_osfp10 -pthread -L/appl/netcdf/lib'
> ## LIBS='-L/opt/mpi/lib/alpha/ -lfmpi -lmpi'
> FC='/opt/mpi/bin/mpif77'
> LINK='/opt/mpi/bin/mpif77'
> FFLAGS='-convert big_endian -r8 -extend_source -automatic -call_shared -notransform_loops -align dcommons'
> # FOPTIM='-O5 -fast -tune host -inline all'
> FOPTIM='-O5 -fast -tune host -inline all'
> #ph: -O5 probably too aggressive in conjunction with adjoint code
> ## INCLUDEDIRS='/opt/mpi/include/64'
> INCLUDES='-I/opt/mpi/include/64 -I/appl/netcdf/include '
> #ph: -lkmp_osfp10 not needed on some/many platforms
> NOOPTFILES='barrier.F different_multiple.F external_fields_load.F'
> NOOPTFLAGS='-O0'
> RMFILES='*.p.out'
> ## CPP='/lib/cpp -P -DMPI -DDEC -I/opt/mpi/include/'
> 
> 
> 
> _______________________________________________
> MITgcm-devel mailing list
> MITgcm-devel at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-devel
> 




More information about the MITgcm-devel mailing list