diff --git a/manual/impl/switch.tex b/manual/impl/switch.tex index cc043c3ca7..eb9dd6f7b3 100644 --- a/manual/impl/switch.tex +++ b/manual/impl/switch.tex @@ -310,14 +310,6 @@ \subsubsection{~Optional switches} \label{sub:opt_switch} Eq.~(\ref{eq:move_GSE_avg2}).} \end{slist} -\noindent -The following compiler dependent switches are available. They may not have -been maintained for recent compiler versions. -\begin{slist} -\sit{c90} {Compiler directives for Cray C90 (vectorization).} -\sit{nec} {Compiler directives for NEC SX6/SX8 (vectorization).} -\end{slist} - \noindent Furthermore the following miscellaneous switches are available: \begin{slist} diff --git a/manual/sys/optim.tex b/manual/sys/optim.tex index a159999435..dcd2e9b5d2 100644 --- a/manual/sys/optim.tex +++ b/manual/sys/optim.tex @@ -12,8 +12,7 @@ \subsection{~Optimization} \label{sec:optim} the Cray YMP and C90. Note that some compiler directives for vectorization have been used. Note also that the vector optimization has not been updated since about 1997, and therefore needs to be revisited if the model is -implemented on a vector machine. Vectorization directives are activated by the -corresponding preprocessor switch ({\F c90}). +implemented on a vector machine. Parallelization for shared memory machines using threading has been implemented using standard OpenMP directives. Such parallelization takes place diff --git a/model/bin/make_makefile.sh b/model/bin/make_makefile.sh index af9269a281..c5edba6b6e 100755 --- a/model/bin/make_makefile.sh +++ b/model/bin/make_makefile.sh @@ -93,7 +93,7 @@ # NOTE: comment line with '#sort:key:" used by sort_switches, including ':' - for type in mach nco grib c90 nec netcdf scrip scripnc \ + for type in mach nco grib netcdf scrip scripnc \ shared mpp mpiexp thread GSE prop \ stress s_ln source stab s_nl snls s_bot s_db miche s_tr s_bs \ dstress s_ice s_is reflection s_xx \ @@ -115,16 +115,6 @@ grib ) TY='one' ID='GRIB package' OK='NOGRB NCEP1 NCEP2' ;; -#sort:c90: - c90 ) TY='upto1' - ID='Cray C90 compiler directives' - TS='C90' - OK='C90' ;; -#sort:nec: - nec ) TY='upto1' - ID='NEC compiler directives' - TS='NEC' - OK='NEC' ;; #sort:netcdf: netcdf ) TY='upto1' ID='netcdf api type' diff --git a/model/bin/w3_new b/model/bin/w3_new index 0d1a1f4e4c..2627f70422 100755 --- a/model/bin/w3_new +++ b/model/bin/w3_new @@ -85,21 +85,6 @@ touch ww3_prtide.ftn touch ww3_grib.ftn ;; 'grib' ) cd $main_dir/ftn ; touch ww3_grib.ftn ;; - 'c90' ) cd $main_dir/ftn ; touch w3iogomd.ftn - touch w3pro1md.ftn - touch w3pro2md.ftn - touch w3pro3md.ftn - touch w3profsmd.ftn - touch w3profsmd_pdlib.ftn - touch w3uno2md.ftn - touch w3uqckmd.ftn ;; - 'nec' ) cd $main_dir/ftn ; touch w3initmd.ftn - touch w3iogomd.ftn - touch w3pro1md.ftn - touch w3pro2md.ftn - touch w3pro3md.ftn - touch w3uno2md.ftn - touch w3uqckmd.ftn ;; 'netcdf' ) cd $main_dir/ftn ; touch ww3_ounf.ftn touch ww3_ounp.ftn touch ww3_bounc.ftn diff --git a/model/ftn/w3initmd.ftn b/model/ftn/w3initmd.ftn index 7f154ecc3d..bad6005449 100644 --- a/model/ftn/w3initmd.ftn +++ b/model/ftn/w3initmd.ftn @@ -1256,7 +1256,6 @@ ! !/DEBUGINIT WRITE(740+IAPROC,*) 'W3INIT, aft BLOCK_SOLVER_INIT, step 9.5' !/DEBUGINIT FLUSH(740+IAPROC) -!/NEC/!CDIR LOOPCNT=100000 DO IS=0, NSEA !/DEBUGINIT WRITE(740+IAPROC,*) 'IS=', IS !/DEBUGINIT FLUSH(740+IAPROC) @@ -1268,7 +1267,6 @@ ! !/T1 WRITE (NDST,9051) IS, DEPTH ! -!/NEC/!CDIR LOOPCNT=100000 DO IK=0, NK+1 ! ! Calculate wavenumbers and group velocities. diff --git a/model/ftn/w3iogomd.ftn b/model/ftn/w3iogomd.ftn index 6a8689ccf0..8201430421 100644 --- a/model/ftn/w3iogomd.ftn +++ b/model/ftn/w3iogomd.ftn @@ -113,8 +113,6 @@ ! !/DIST Id. ! ! !/OMPG OpenMP compiler directive for loop splitting. -! !/C90 Cray FORTRAN 90 compiler directive. -! !/NEC NEC SXF90 compiler directives. ! ! !/O8 Filter for low wave heights ( HSMIN ) ! !/O9 Negative wave height alowed, other mean parameters will @@ -1145,8 +1143,6 @@ ! !/SHRD Switch for shared / distributed memory architecture. ! !/DIST Id. ! -! !/C90 Cray FORTRAN 90 compiler directives. -! !/NEC NEC SXF90 compiler directives. ! !/OMPG OpenMP compiler directive for loop splitting. ! ! !/O8 Filter for low wave heights ( HSMIN ) @@ -2068,8 +2064,6 @@ ! DO ITH=1, NTH ! -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP !/OMPG/!$OMP PARALLEL DO PRIVATE(JSEA,ISEA) ! DO JSEA=1, NSEAL @@ -2100,8 +2094,6 @@ ! DO ITH=1, NTH ! -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP !/OMPG/!$OMP PARALLEL DO PRIVATE(JSEA,ISEA) ! DO JSEA=1, NSEAL @@ -3652,8 +3644,6 @@ ! !/SHRD Switch for shared / distributed memory architecture. ! !/DIST Id. ! -! !/C90 Cray FORTRAN 90 compiler directives. -! !/NEC NEC SXF90 compiler directives. ! !/OMPG OpenMP compiler directive for loop splitting. ! ! !/S Enable subroutine tracing. diff --git a/model/ftn/w3pro1md.ftn b/model/ftn/w3pro1md.ftn index 0365be5f20..2039bfd4fd 100644 --- a/model/ftn/w3pro1md.ftn +++ b/model/ftn/w3pro1md.ftn @@ -68,9 +68,6 @@ ! ! 6. Switches : ! -! !/C90 Cray FORTRAN 90 compiler directives. -! !/NEC NEC SXF90 compiler directives. -! ! !/S Enable subroutine tracing. ! !/Tn Enable test output. ! @@ -368,8 +365,6 @@ ! ! 9. Switches : ! -! !/NEC Enable NEC SXF90 compiler directives. -! ! !/S Enable subroutine tracing. ! ! !/OMPH Hybrid OpenMP directives. @@ -558,8 +553,6 @@ ! in FIELD/FLD2D, VCX IF ( ICLOSE.NE.ICLOSE_NONE ) THEN !/T1 WRITE (NDST,9024) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IY=1, NY FLD2D(IY,NX+1)=FLD2D(IY,1) VCX2D(IY,NX+1)=VCX2D(IY,1) @@ -643,8 +636,6 @@ ! 4. Propagate ------------------------------------------------------ * ! !/T3 WRITE (NDST,9040) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP ! !/OMPH/!$OMP PARALLEL DO PRIVATE (ISEA, IXY, JXN, JXP, JYN, JYP, IX, IY) ! diff --git a/model/ftn/w3pro2md.ftn b/model/ftn/w3pro2md.ftn index cecb1a3668..75c7abf541 100644 --- a/model/ftn/w3pro2md.ftn +++ b/model/ftn/w3pro2md.ftn @@ -85,9 +85,6 @@ ! ! !/OMPH Hybrid OpenMP directives. ! -! !/C90 Cray FORTRAN 90 compiler directives. -! !/NEC NEC SXF90 compiler directives. -! ! !/TDYN, !/DSS0, !/XW0, !/XW1 ! Diffusion options in W3XYP2 ! @@ -581,8 +578,6 @@ ! ! !/OMPH Hybrid OpenMP directives. ! -! !/NEC Enable NEC SXF90 compiler directives. -! ! !/S Enable subroutine tracing. ! ! !/T Enable general test output. @@ -1063,9 +1058,6 @@ ! !/T WRITE (NDST,9040) NSEA ! -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP -! !/OMPH/!$OMP PARALLEL DO PRIVATE (ISEA, IXY ) ! DO ISEA=1, NSEA diff --git a/model/ftn/w3pro3md.ftn b/model/ftn/w3pro3md.ftn index 943ce7f36d..67725c47d5 100644 --- a/model/ftn/w3pro3md.ftn +++ b/model/ftn/w3pro3md.ftn @@ -88,9 +88,6 @@ ! !/UQ 3rd order UQ propagation scheme. ! !/UNO 2nd order UNO propagation scheme. ! -! !/C90 Cray FORTRAN 90 compiler directives. -! !/NEC NEC SXF90 compiler directives. -! ! !/MGP Moving grid corrections. ! !/MGG Moving grid corrections. ! @@ -675,8 +672,6 @@ ! ! 9. Switches : ! -! !/NEC Enable NEC SXF90 compiler directives. -! ! !/S Enable subroutine tracing. ! ! !/OMPH Hybrid OpenMP directives. @@ -1249,8 +1244,6 @@ ! !/T WRITE (NDST,9040) NSEA ! -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP !/OMPH/!$OMP PARALLEL DO PRIVATE (ISEA, IXY) ! DO ISEA=1, NSEA diff --git a/model/ftn/w3profsmd.ftn b/model/ftn/w3profsmd.ftn index bc2b6fe428..d2f3010ab8 100644 --- a/model/ftn/w3profsmd.ftn +++ b/model/ftn/w3profsmd.ftn @@ -251,8 +251,6 @@ ENDDO ! 6. Store results in VQ in proper format --------------------------- * -! -!/C90/!DIR$ IVDEP ! DO ISEA=1, NSEA IXY = MAPSF(ISEA,3) diff --git a/model/ftn/w3profsmd_pdlib.ftn b/model/ftn/w3profsmd_pdlib.ftn index f9a03865e8..3aa4e8d44d 100644 --- a/model/ftn/w3profsmd_pdlib.ftn +++ b/model/ftn/w3profsmd_pdlib.ftn @@ -757,8 +757,6 @@ !/DEBUGSOLVER FLUSH(740+IAPROC) ! 6. Store results in VQ in proper format --------------------------- * -! -!/C90/!DIR$ IVDEP ! DO JSEA=1, NSEAL IP = JSEA diff --git a/model/ftn/w3uno2md.ftn b/model/ftn/w3uno2md.ftn index 32d4e9c5ec..351973a8fe 100644 --- a/model/ftn/w3uno2md.ftn +++ b/model/ftn/w3uno2md.ftn @@ -49,9 +49,6 @@ ! ! 6. Switches : ! -! !/C90 Cray FORTRAN 90 compiler directives. -! !/NEC NEC SXF90 compiler directives. -! ! !/OMPH Ading OMP directves for hybrid paralellization. ! ! !/S Enable subroutine tracing. @@ -195,8 +192,6 @@ IADN0 = IAD00 + MY*NX IADN1 = MY*NX IADN2 = IAD02 + MY*NX -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IY=1, NY Q (IY+IAD00) = Q (IY+IADN0) Q (IY+IADN1) = Q ( IY ) @@ -303,8 +298,6 @@ ! IF ( BCLOSE ) THEN !/T WRITE (NDST,9015) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IY=1, NY FLA (IY+IAD00) = FLA (IY+IADN0) END DO @@ -313,8 +306,6 @@ ! 6. Propagation -------------------------------------------------- * ! !/T2 WRITE (NDST,9020) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IP=1, NACT IXY = MAPACT(IP) !/T2 QOLD = Q(IXY) @@ -502,8 +493,6 @@ IADN0 = IAD00 + MY*NX IADN1 = MY*NX IADN2 = IAD02 + MY*NX -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IY=1, NY Q (IY+IAD00) = Q (IY+IADN0) Q (IY+IADN1) = Q ( IY ) @@ -595,8 +584,6 @@ ! IF ( BCLOSE ) THEN !/T WRITE (NDST,9015) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IY=1, NY FLA (IY+IAD00) = FLA (IY+IADN0) END DO @@ -605,8 +592,6 @@ ! 6. Propagation -------------------------------------------------- * ! !/T2 WRITE (NDST,9020) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IP=1, NACT IXY = MAPACT(IP) !/T2 QOLD = Q(IXY) @@ -793,8 +778,6 @@ IADN0 = IAD00 + MY*NX IADN1 = MY*NX IADN2 = IAD02 + MY*NX -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP ! !/OMPH/!$OMP PARALLEL DO PRIVATE (IY) ! @@ -899,8 +882,6 @@ ! IF ( BCLOSE ) THEN !/T WRITE (NDST,9015) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IY=1, NY FLA (IY+IAD00) = FLA (IY+IADN0) END DO @@ -909,8 +890,6 @@ ! 6. Propagation -------------------------------------------------- * ! !/T2 WRITE (NDST,9020) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP ! !/OMPH/!$OMP PARALLEL DO & !/OMPH/!/T2/!$OMP PRIVATE(QOLD), & diff --git a/model/ftn/w3uqckmd.ftn b/model/ftn/w3uqckmd.ftn index 2512e3ba93..7d2910be6b 100644 --- a/model/ftn/w3uqckmd.ftn +++ b/model/ftn/w3uqckmd.ftn @@ -57,9 +57,6 @@ ! ! 6. Switches : ! -! !/C90 Cray FORTRAN 90 compiler directives. -! !/NEC NEC SXF90 compiler directives. -! ! !/OMPH Ading OMP directves for hybrid paralellization. ! ! !/S Enable subroutine tracing. @@ -224,8 +221,6 @@ IADN0 = IAD00 + MY*NX IADN1 = MY*NX IADN2 = IAD02 + MY*NX -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IY=1, NY Q (IY+IAD00) = Q (IY+IADN0) Q (IY+IADN1) = Q ( IY ) @@ -328,8 +323,6 @@ ! IF ( CLOSE ) THEN !/T WRITE (NDST,9015) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IY=1, NY FLA (IY+IAD00) = FLA (IY+IADN0) END DO @@ -338,8 +331,6 @@ ! 6. Propagation -------------------------------------------------- * ! !/T2 WRITE (NDST,9020) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IP=1, NACT IXY = MAPACT(IP) !/T2 QOLD = Q(IXY) @@ -535,8 +526,6 @@ IADN0 = IAD00 + MY*NX IADN1 = MY*NX IADN2 = IAD02 + MY*NX -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IY=1, NY Q (IY+IAD00) = Q (IY+IADN0) Q (IY+IADN1) = Q ( IY ) @@ -648,8 +637,6 @@ ! IF ( CLOSE ) THEN !/T WRITE (NDST,9015) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IY=1, NY FLA (IY+IAD00) = FLA (IY+IADN0) END DO @@ -658,8 +645,6 @@ ! 6. Propagation -------------------------------------------------- * ! !/T2 WRITE (NDST,9020) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IP=1, NACT IXY = MAPACT(IP) !/T2 QOLD = Q(IXY) @@ -855,8 +840,6 @@ IADN0 = IAD00 + MY*NX IADN1 = MY*NX IADN2 = IAD02 + MY*NX -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP ! !/OMPH/!$OMP PARALLEL DO PRIVATE (IY) ! @@ -979,8 +962,6 @@ ! IF ( CLOSE ) THEN !/T WRITE (NDST,9015) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP DO IY=1, NY FLA (IY+IAD00) = FLA (IY+IADN0) END DO @@ -989,8 +970,6 @@ ! 6. Propagation -------------------------------------------------- * ! !/T2 WRITE (NDST,9020) -!/C90/!DIR$ IVDEP -!/NEC/!CDIR NODEP !/OMPH/!$OMP PARALLEL DO PRIVATE (IP, IXY, JN, JP ) ! DO IP=1, NACT