#!/bin/bash -e # --------------------------------------------------------------------------- # # w3_new : Touch and/or remove files to assure that make updates the # # correct subroutines after the switches in switch have been # # changed. # # # # use : w3_new keyword # # # # used by : w3_make # # # # keyword : all : redo entire compilation. # # ... : see make_makefile.prog # # # # error codes : 1 : no environment file $ww3_env found. # # # # programs used : # # # # Hendrik L. Tolman # # November 2013 # # # # Copyright 2009-2013 National Weather Service (NWS), # # National Oceanic and Atmospheric Administration. All rights # # reserved. WAVEWATCH III is a trademark of the NWS. # # No unauthorized use without permission. # # # # --------------------------------------------------------------------------- # # 0. Process command line arguments # # --------------------------------------------------------------------------- # if test "$#" -lt '1' then keys='all' else keys="$*" fi # --------------------------------------------------------------------------- # # 1. Preparations # # --------------------------------------------------------------------------- # # 1.a ID header - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # echo ' ' # echo ' *****************************' # echo ' *** WAVEWATCH III new ***' # echo ' *****************************' # echo ' ' # 1.b Read data from the environment file - - - - - - - - - - - - - - - - - - source $(dirname $0)/w3_setenv main_dir=$WWATCH3_DIR temp_dir=$WWATCH3_TMP list=$WWATCH3_LIST # --------------------------------------------------------------------------- # # 2. Process keywords. # # --------------------------------------------------------------------------- # for key in $keys do case $key in 'all' ) cd $main_dir ; rm -f obj_*/*.o rm -f mod_*/*.mod rm -f exe/ww3_* rm -f exe/gx_* rm -f exe/exec_type ;; 'nco' ) cd $main_dir/src ; touch w3bullmd.F90 touch ww3_prep.F90 touch ww3_shel.F90 touch ww3_ounp.F90 touch ww3_prnc.F90 touch ww3_outp.F90 touch ww3_prtide.F90 touch ww3_grib.F90 ;; 'grib' ) cd $main_dir/src ; touch ww3_grib.F90 ;; 'netcdf' ) cd $main_dir/src ; touch ww3_ounf.F90 touch ww3_ounp.F90 touch ww3_bounc.F90 touch ww3_systrk.F90 touch ww3_prnc.F90 touch ww3_trnc.F90 ;; 'scrip' ) cd $main_dir/src ; touch wmgridmd.F90 touch wmscrpmd.F90 touch w3gridmd.F90 cd $main_dir/src/SCRIP ; touch scrip_interface.F90 ;; 'scripnc') cd $main_dir/src ; touch wmgridmd.F90 cd $main_dir/src/SCRIP ; touch scrip_interface.F90 ;; 'trknc' ) cd $main_dir/src ; touch ww3_systrk.F90 ;; 'shared' ) ;; 'mpp' );; 'mpiexp' ) cd $main_dir/src ; touch wmgridmd.F90 ;; 'thread' ) cd $main_dir/src ; touch w3wavemd.F90 touch w3canomd.F90 touch w3fld1md.F90 touch w3fld2md.F90 touch w3iogomd.F90 touch w3pro1md.F90 touch w3pro2md.F90 touch w3pro3md.F90 touch w3psmcmd.F90 touch w3srcemd.F90 touch w3pro1md.F90 touch w3pro2md.F90 touch w3pro3md.F90 touch w3updtmd.F90 touch wmgridmd.F90 touch w3uno2md.F90 touch w3updtmd.F90 touch w3uqckmd.F90 touch w3iogomd.F90 touch ww3_multi.F90 touch ww3_shel.F90 ;; 'GSE' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3adatmd.F90 touch w3idatmd.F90 touch w3iogrmd.F90 touch w3updtmd.F90 touch w3wavemd.F90 touch w3triamd.F90 touch wmgridmd.F90 touch ww3_gspl.F90 touch ww3_shel.F90 touch w3gridmd.F90 ;; 'prop' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3adatmd.F90 touch w3idatmd.F90 touch w3iogrmd.F90 touch w3wavemd.F90 touch w3pro2md.F90 touch w3pro3md.F90 touch wmgridmd.F90 touch w3updtmd.F90 touch ww3_shel.F90 touch w3gridmd.F90 touch ww3_gspl.F90 ;; 'stress' ) cd $main_dir/src ; touch w3srcemd.F90 touch w3gdatmd.F90 touch w3iogrmd.F90 touch ww3_outp.F90 touch ww3_ounp.F90 touch w3gridmd.F90 touch gx_outp.F90 ;; 'dstress') cd $main_dir/src ; touch w3srcemd.F90 touch w3gdatmd.F90 touch w3iogrmd.F90 touch w3fld1md.F90 touch w3fld2md.F90 touch w3gridmd.F90 ;; 's_ln' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3srcemd.F90 touch w3iogrmd.F90 touch w3iorsmd.F90 touch w3adatmd.F90 touch w3iogrmd.F90 touch wminitmd.F90 touch w3gridmd.F90 touch ww3_outp.F90 touch ww3_ounp.F90 touch ww3_prep.F90 touch ww3_prnc.F90 touch ww3_prtide.F90 touch ww3_strt.F90 touch gx_outp.F90 ;; 'sterm' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3srcemd.F90 touch w3flx1md.F90 touch w3flx2md.F90 touch w3flx3md.F90 touch w3updtmd.F90 touch w3iogrmd.F90 touch w3iogomd.F90 touch w3updtmd.F90 touch wmesmfmd.F90 touch w3gridmd.F90 touch ww3_outp.F90 touch ww3_ounp.F90 touch ww3_ounf.F90 touch gx_outp.F90 ;; 'stab' ) cd $main_dir/src ; touch w3updtmd.F90 touch w3src3md.F90 touch w3src4md.F90 touch w3gridmd.F90 touch ww3_outp.F90 touch ww3_ounp.F90 touch gx_outp.F90 ;; 's_nl' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3adatmd.F90 touch w3srcemd.F90 touch w3iogrmd.F90 touch wminitmd.F90 touch w3gridmd.F90 touch ww3_prep.F90 touch ww3_outp.F90 touch ww3_ounp.F90 touch ww3_prnc.F90 touch ww3_strt.F90 touch ww3_prtide.F90 touch gx_outp.F90 ;; 'snls' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3srcemd.F90 touch w3iogrmd.F90 touch w3gridmd.F90 touch ww3_outp.F90 touch gx_outp.F90 ;; 's_bot' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3odatmd.F90 touch w3srcemd.F90 touch w3iogrmd.F90 touch w3iogomd.F90 touch w3profsmd_pdlib.F90 touch w3sic4md.F90 touch w3wavemd.F90 touch w3gridmd.F90 touch ww3_gint.F90 touch ww3_outp.F90 touch ww3_outf.F90 touch ww3_ounp.F90 touch ww3_ounf.F90 touch ww3_shel.F90 touch gx_outp.F90 ;; 's_db' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3srcemd.F90 touch w3iogrmd.F90 touch w3profsmd_pdlib.F90 touch w3gridmd.F90 touch ww3_outp.F90 touch ww3_ounp.F90 touch gx_outp.F90 ;; 'miche' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3srcemd.F90 touch w3gridmd.F90 ;; 's_tr' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3srcemd.F90 touch w3iogrmd.F90 touch w3profsmd_pdlib.F90 touch w3gridmd.F90 touch ww3_outp.F90 touch ww3_ounp.F90 touch gx_outp.F90 ;; 's_bs' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3srcemd.F90 touch w3iogrmd.F90 touch w3profsmd_pdlib.F90 touch w3gridmd.F90 touch ww3_outp.F90 touch ww3_ounp.F90 touch gx_outp.F90 ;; 's_ice' ) cd $main_dir/src ; touch w3iogrmd.F90 touch w3gdatmd.F90 touch w3adatmd.F90 touch w3profsmd_pdlib.F90 touch w3updtmd.F90 touch w3wavemd.F90 touch w3srcemd.F90 touch w3gridmd.F90 touch ww3_outp.F90 touch ww3_ounp.F90 touch ww3_shel.F90 touch gx_outp.F90 ;; 's_is' ) cd $main_dir/src ; touch w3srcemd.F90 touch w3iogrmd.F90 touch w3gdatmd.F90 touch w3iogomd.F90 touch w3odatmd.F90 touch w3sic2md.F90 touch w3wavemd.F90 touch ww3_gint.F90 touch w3gridmd.F90 touch ww3_ounf.F90 touch ww3_outf.F90 touch ww3_shel.F90 touch ww3_outp.F90 touch ww3_ounp.F90 touch gx_outf.F90 touch gx_outp.F90 ;; 'reflection' )cd $main_dir/src ; touch w3gdatmd.F90 touch w3iogrmd.F90 touch w3iorsmd.F90 touch w3profsmd.F90 touch w3profsmd_pdlib.F90 touch w3srcemd.F90 touch w3triamd.F90 touch w3updtmd.F90 touch w3wavemd.F90 touch w3gridmd.F90 ;; 'wind' ) cd $main_dir/src ; touch w3updtmd.F90 touch ww3_prnc.F90 touch ww3_prep.F90 ;; 'windx' ) cd $main_dir/src ; touch wmupdtmd.F90 ;; 'rwind' ) cd $main_dir/src ; touch w3updtmd.F90 touch w3gdatmd.F90 touch w3iogrmd.F90 touch w3gridmd.F90 ;; 'wcor' ) cd $main_dir/src ; touch w3updtmd.F90 touch w3gdatmd.F90 touch w3iogrmd.F90 touch w3gridmd.F90 ;; 'rstwind') cd $main_dir/src ; touch wmesmfmd.F90 touch w3idatmd.F90 touch w3iorsmd.F90 ;; 'curr' ) cd $main_dir/src ; touch w3updtmd.F90 touch ww3_prnc.F90 touch ww3_prep.F90 ;; 'currx' ) cd $main_dir/src ; touch wmupdtmd.F90 ;; 'mgwind' ) cd $main_dir/src ; touch w3updtmd.F90 touch wminitmd.F90 touch ww3_shel.F90 ;; 'mgprop' ) cd $main_dir/src ; touch w3pro1md.F90 touch w3pro2md.F90 touch w3pro3md.F90 touch w3profsmd.F90 touch w3profsmd_pdlib.F90 touch w3psmcmd.F90 touch wminitmd.F90 touch ww3_shel.F90 ;; 'mggse' ) cd $main_dir/src ; touch w3pro3md.F90 touch w3gridmd.F90 touch ww3_shel.F90 ;; 'subsec' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3iogrmd.F90 touch w3wavemd.F90 touch w3gridmd.F90 ;; 'tdyn' ) cd $main_dir/src ; touch w3pro2md.F90 touch w3psmcmd.F90 ;; 'dss0' ) cd $main_dir/src ; touch w3pro2md.F90 touch w3psmcmd.F90 ;; 'pdif' ) cd $main_dir/src ; touch w3pro2md.F90 touch w3psmcmd.F90 ;; 'tide' ) cd $main_dir/src ; touch w3updtmd.F90 touch w3idatmd.F90 touch w3fldsmd.F90 touch ww3_prnc.F90 touch ww3_shel.F90 ;; 'refrx' ) cd $main_dir/src ; touch w3wavemd.F90 touch w3parall.F90 touch w3pro1md.F90 touch w3pro2md.F90 touch w3pro3md.F90 ;; 'ig' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3iogomd.F90 touch w3iogrmd.F90 touch w3ref1md.F90 touch w3src4md.F90 touch w3srcemd.F90 touch w3gridmd.F90 touch ww3_ounp.F90 touch ww3_outp.F90 ;; 'rotag' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3iobcmd.F90 touch w3iogomd.F90 touch w3iogrmd.F90 touch w3iopomd.F90 touch w3updtmd.F90 touch ww3_grib.F90 touch ww3_ounf.F90 touch ww3_ounp.F90 touch ww3_outf.F90 touch w3gridmd.F90 ;; 'nnt' ) cd $main_dir/src ; touch w3srcemd.F90 ;; 'mprf' ) cd $main_dir/src ; touch wmmdatmd.F90 touch wminitmd.F90 touch wmwavemd.F90 touch wmfinlmd.F90 ;; 'cou' ) cd $main_dir/src ; touch w3iogomd.F90 touch w3nmlmultimd.F90 touch w3nmlshelmd.F90 touch w3wavemd.F90 touch wminitmd.F90 touch ww3_shel.F90 ;; 'oasis' ) cd $main_dir/src ; touch w3oacpmd.F90 touch w3fldsmd.F90 touch w3wavemd.F90 touch w3wdatmd.F90 touch ww3_shel.F90 ;; 'agcm' ) cd $main_dir/src ; touch w3agcmmd.F90 touch w3fldsmd.F90 touch w3iogomd.F90 touch w3oacpmd.F90 touch w3wavemd.F90 touch ww3_shel.F90 ;; 'ogcm' ) cd $main_dir/src ; touch w3ogcmmd.F90 touch w3fldsmd.F90 touch w3iogomd.F90 touch w3oacpmd.F90 touch w3updtmd.F90 touch w3wavemd.F90 touch ww3_shel.F90 ;; 'igcm' ) cd $main_dir/src ; touch w3igcmmd.F90 touch w3fldsmd.F90 touch w3oacpmd.F90 touch w3wavemd.F90 touch ww3_shel.F90 ;; 'setup' ) cd $main_dir/src ; touch w3initmd.F90 touch w3iogomd.F90 touch w3iopomd.F90 touch w3odatmd.F90 touch w3updtmd.F90 touch w3wavemd.F90 touch w3wdatmd.F90 touch ww3_ounf.F90 touch ww3_ounp.F90;; 'pdlib' ) cd $main_dir/src ; touch w3adatmd.F90 touch w3gdatmd.F90 touch w3initmd.F90 touch w3iorsmd.F90 touch w3parall.F90 touch w3srcemd.F90 touch w3triamd.F90 touch w3wavemd.F90 touch w3wdatmd.F90 touch wminiomd.F90 touch wmmdatmd.F90 touch ww3_shel.F90 ;; 'memck' ) cd $main_dir/src ; touch w3adatmd.F90 touch w3gdatmd.F90 touch w3initmd.F90 touch w3iogrmd.F90 touch w3profsmd_pdlib.F90 touch w3wavemd.F90 touch ww3_shel.F90 ;; 'uost' ) cd $main_dir/src ; touch w3gdatmd.F90 touch w3initmd.F90 touch w3iogrmd.F90 touch w3srcemd.F90 touch w3wavemd.F90 touch ww3_grid.F90 ;; 'smcg' ) cd $main_dir/src ; touch w3psmcmd.F90 touch w3smcomd.F90 ;; 'b4b' ) cd $main_dir/src ; touch w3psmcmd.F90 ;; * ) echo "w3_new: keyword [$key] not recognized" ;; esac done # End of w3_new ------------------------------------------------------------- #