diff --git a/README.md b/README.md index 077e861fd..24c789367 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # The WAVEWATCH III Framework -WAVEWATCH III ™ is a community wave modeling framework that includes the +WAVEWATCH III ® is a community wave modeling framework that includes the latest scientific advancements in the field of wind-wave modeling and dynamics. ## General Features @@ -11,7 +11,7 @@ for shallow-water (surf zone) applications, as well as wetting and drying of grid points. Propagation of a wave spectrum can be solved using regular (rectilinear or curvilinear) and unstructured (triangular) grids. See [About WW3](https://github.com/NOAA-EMC/WW3/wiki/About-WW3) for a -detailed description of WAVEWATCH III ™. +detailed description of WAVEWATCH III ®. ## Installation diff --git a/model/bin/link.cray_xc.Intel b/model/bin/link.cray_xc.Intel index be5df1781..59a37eb38 100755 --- a/model/bin/link.cray_xc.Intel +++ b/model/bin/link.cray_xc.Intel @@ -82,7 +82,6 @@ # Intel compiler ------------------------------------------------------------ # 3.a Build options and determine compiler name -# No GRIB libraries for this one opt="-o $prog" opt="$opt -xHost -O3 -ip -fno-alias -fp-model strict -no-fma -ftz" @@ -121,7 +120,14 @@ fi fi - # netcdf library dir + if [ "$ncep_grib_compile" = 'yes' ] + then +# GRIB libraries for this one + opt="$opt -convert big_endian -assume byterecl -prec-div -prec-sqrt -ip" + libs="$libs ${G2_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} ${JASPER_LIB} ${PNG_LIB} ${Z_LIB}" + fi + +# netcdf library dir if [ "$netcdf_compile" = 'yes' ] then case $WWATCH3_NETCDF in diff --git a/model/bin/link.wcoss_phase2 b/model/bin/link.wcoss_phase2 index d18553fbc..3d5abaf36 100755 --- a/model/bin/link.wcoss_phase2 +++ b/model/bin/link.wcoss_phase2 @@ -140,8 +140,11 @@ esac fi - if [ "$prog" = 'ww3_grib' ] +# NCEP grib creation + if [ "$ncep_grib_compile" = 'yes' ] then +# GRIB libraries for this one + opt="$opt -convert big_endian -assume byterecl -prec-div -prec-sqrt -ip" libs="$libs ${G2_LIB4} ${W3NCO_LIB4} ${BACIO_LIB4} ${JASPER_LIB} ${PNG_LIB} ${Z_LIB}" fi diff --git a/model/bin/switch_NCEP_glwu b/model/bin/switch_NCEP_glwu new file mode 100755 index 000000000..ebc1025a4 --- /dev/null +++ b/model/bin/switch_NCEP_glwu @@ -0,0 +1 @@ +F90 NCO NOPA LRB4 NCEP2 DIST MPI SCRIP SCRIPNC NC4 PR3 UQ ST4 STAB0 FLX0 LN1 NL3 BT1 DB1 IC0 IS0 REF0 MLIM TR0 BS0 XX0 WNX1 WNT1 CRX1 CRT1 O0 O1 O2 O4 O5 O6 O7 O14 O15 diff --git a/model/bin/switch_NCEP_gwm b/model/bin/switch_NCEP_gwm new file mode 100755 index 000000000..402cc54a1 --- /dev/null +++ b/model/bin/switch_NCEP_gwm @@ -0,0 +1 @@ +F90 NCO NOPA LRB4 NOGRB DIST MPI OMPH OMPG SCRIP SCRIPNC NC4 PR3 UQ ST4 STAB0 FLX0 LN1 NL1 BT1 DB1 IC4 IS0 REF0 TR0 BS0 XX0 WNX1 WNT1 CRX1 CRT1 RWND O0 O1 O2 O4 O5 O6 O7 O14 O15 diff --git a/model/bin/w3_make b/model/bin/w3_make index 88cea43f1..f2727ea8a 100755 --- a/model/bin/w3_make +++ b/model/bin/w3_make @@ -161,6 +161,13 @@ cdf_programs="$cdf_programs ww3_prtide" fi + # NCEP GRIB + export ncep_grib_compile="no" + if [ -n "`grep NCEP $switch_file`" ] + then + export ncep_grib_compile="yes" + fi + # MULTI MULTI_ESMF SBS1 if [ -n "`grep SCRIPNC $switch_file`" ] || [ -n "`grep OASIS $switch_file`" ] || [ -n "`grep PDLIB $switch_file`" ] then diff --git a/model/ftn/ww3_ounf.ftn b/model/ftn/ww3_ounf.ftn index f3d3d2f31..7b8b2a9a9 100644 --- a/model/ftn/ww3_ounf.ftn +++ b/model/ftn/ww3_ounf.ftn @@ -3397,6 +3397,9 @@ FNAMENC(S1+S2+1:S1+S2+3) = '.nc' FNAMENC(S1+S2+4:S1+S2+6) = ' ' +!/NCO ! For NCEP application, requires fixed netcdf file name +!/NCO FNAMENC='ww3.gridded.nc' + ! If the flag frequency is .TRUE., defines the fourth dimension IF (FLFRQ) THEN UNITVAR(:)=UNITS diff --git a/model/ftn/ww3_ounp.ftn b/model/ftn/ww3_ounp.ftn index 3ae5cb519..111b9b591 100644 --- a/model/ftn/ww3_ounp.ftn +++ b/model/ftn/ww3_ounp.ftn @@ -202,7 +202,7 @@ !/MPI INTEGER :: IERR_MPI !/O14 INTEGER :: NDBO !/S INTEGER, SAVE :: IENT = 0 -!/NCO INTEGER :: NDSTAB +!/NCO INTEGER :: NDSTAB, NDST ! INTEGER, ALLOCATABLE :: INDREQ(:), INDREQTMP(:) INTEGER,ALLOCATABLE :: NCID(:) diff --git a/model/ftn/ww3_uprstr.ftn b/model/ftn/ww3_uprstr.ftn index 05dc8f4f5..23deba90a 100644 --- a/model/ftn/ww3_uprstr.ftn +++ b/model/ftn/ww3_uprstr.ftn @@ -115,62 +115,62 @@ ! i. ww3_uprstr.inp ! It includes some limited information for running the program: ! -!$ -------------------------------------------------------------------- $ -!$ WAVEWATCH III Update Restart input file $ -!$ -------------------------------------------------------------------- $ -!$ -!$ Time of Assimilation ----------------------------------------------- $ -!$ - Starting time in yyyymmdd hhmmss format. -!$ -!$ This is the assimilation starting time and has to be the same with -!$ the time at the restart.ww3. -!$ +! -------------------------------------------------------------------- $ +! WAVEWATCH III Update Restart input file $ +! -------------------------------------------------------------------- $ +! +! Time of Assimilation ----------------------------------------------- $ +! - Starting time in yyyymmdd hhmmss format. +! +! This is the assimilation starting time and has to be the same with +! the time at the restart.ww3. +! ! 19680607 120000 -!$ -!$ Choose algorithm to update restart file -!$ UPDN for the Nth approach -!$ The UPDN*, with N<2 the same correction factor is applied at all the grid points -!$ UPD0C:: ELIMINATED -!$ UPDOF:: Option 0F All the spectra are updated with a constant -!$ fac=HsAnl/HsBckg. -!$ Expected input: PRCNTG, as defined at fac -!$ UPD1 :: ELIMINATED -!$ UPDN, with N>1 each gridpoint has its own update factor. -!$ UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point -!$ according to HsBckg and HsAnl -!$ Expected input the Analysis field, grbtxt format -!$ UPD3 :: Option 3 The update factor is a surface with the shape of -!$ the background spectrum. -!$ Expected input the Analysis field, grbtxt format -!$ UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] -!$ Option 4 The generalization of the UPD3. The update factor -!$ is the sum of surfaces which are applied on the background -!$ spectrum. -!$ The algorithm requires the mapping of each partition on the -!$ individual spectra; the map is used to determine the weighting -!$ surfaces. -!$ Expected input: the Analysis field, grbtxt format and the -!$ functions(frq,theta) of the update to be applied. +! +! Choose algorithm to update restart file +! UPDN for the Nth approach +! The UPDN*, with N<2 the same correction factor is applied at all the grid points +! UPD0C:: ELIMINATED +! UPDOF:: Option 0F All the spectra are updated with a constant +! fac=HsAnl/HsBckg. +! Expected input: PRCNTG, as defined at fac +! UPD1 :: ELIMINATED +! UPDN, with N>1 each gridpoint has its own update factor. +! UPD2 :: Option 2 The fac(x,y,frq,theta), is calculated at each grid point +! according to HsBckg and HsAnl +! Expected input the Analysis field, grbtxt format +! UPD3 :: Option 3 The update factor is a surface with the shape of +! the background spectrum. +! Expected input the Analysis field, grbtxt format +! UPD4 :: [NOT INCLUDED in this Version, Just keeping the spot] +! Option 4 The generalization of the UPD3. The update factor +! is the sum of surfaces which are applied on the background +! spectrum. +! The algorithm requires the mapping of each partition on the +! individual spectra; the map is used to determine the weighting +! surfaces. +! Expected input: the Analysis field, grbtxt format and the +! functions(frq,theta) of the update to be applied. ! UPD3 -!$ -!$ PRCNTG is input for option 1 and it is the percentage of correction -!$applied to all the gridpoints (e.g. 1.) -!$ +! +! PRCNTG is input for option 1 and it is the percentage of correction +!applied to all the gridpoints (e.g. 1.) +! ! 0.475 -!$ -!$ PRCNTG_CAP is global input for option UPD2 and UPD3 and it is a cap on the -!$ maximun correction applied to all the gridpoints (e.g. 0.5) -!$ +! +! PRCNTG_CAP is global input for option UPD2 and UPD3 and it is a cap on the +! maximun correction applied to all the gridpoints (e.g. 0.5) +! ! 0.6 -!$ -!$ Name of the file with the SWH analysis from the DA system $ -!$ suffix .grbtxt for text out of grib2 file. $ -!$ +! +! Name of the file with the SWH analysis from the DA system $ +! suffix .grbtxt for text out of grib2 file. $ +! ! anl.grbtxt -!$ -!$ -------------------------------------------------------------------- $ -!$ WAVEWATCH III EoF ww3_uprstr.inp -!$ -------------------------------------------------------------------- $ +! +! -------------------------------------------------------------------- $ +! WAVEWATCH III EoF ww3_uprstr.inp +! -------------------------------------------------------------------- $ ! ! ii. Data files anl.XXX !