diff --git a/share/ecwam/parameters.yml b/share/ecwam/parameters.yml index 3ac23e7eb..5a47982b1 100644 --- a/share/ecwam/parameters.yml +++ b/share/ecwam/parameters.yml @@ -47,13 +47,13 @@ parameters: mpts: index: 16 description: Mean period of total swell - '017': + awh: index: 17 description: Altimeter wave height - '018': + acwh: index: 18 description: Corrected altimeter wave height - '019': + arrc: index: 19 description: Altimeter range correction mp1: @@ -113,61 +113,61 @@ parameters: vcu: index: 38 description: Northward sea water velocity - '039': + phioc: index: 39 description: Normalised energy flux to ocean - '040': + phiaw: index: 40 description: Normalised energy flux to waves - '041': + tauoc: index: 41 description: Normalised momentum flux to ocean - '042': + swh1: index: 42 description: Swell partition 1 wave height - '043': + mwd1: index: 43 description: Swell partition 1 direction - '044': + mwp1: index: 44 description: Swell partition 1 mean period - '045': + swh2: index: 45 description: Swell partition 2 wave height - '046': + mwd2: index: 46 description: Swell partition 2 direction - '047': + mwp2: index: 47 description: Swell partition 2 mean period - '048': + swh3: index: 48 description: Swell partition 3 wave height - '049': + mwd3: index: 49 description: Swell partition 3 direction - '050': + mwp3: index: 50 description: Swell partition 3 mean period - '051': + mswsi: index: 51 description: Mean square strain in ice - '052': + sh10: index: 52 description: Wave height with period > 10s - '053': + rhoao: index: 53 description: Surface air density - '054': + wstar: index: 54 description: Convective velocity scale ci: index: 55 description: Sea ice area fraction - '056': + sithick: index: 56 description: Sea ice thickness - '057': + wss: index: 57 description: Spectral skewness sic: @@ -182,52 +182,52 @@ parameters: vcurr: index: 61 description: V-component of current (NEMO) - '062': + wefxm: index: 62 description: Wave energy flux magnitude - '063': + wefxd: index: 63 description: Wave energy flux direction - '064': + h1012: index: 64 description: Significant wave height 10<=T<=12 - '065': + h1214: index: 65 description: Significant wave height 12<=T<=14 - '066': + h1417: index: 66 description: Significant wave height 14<=T<=17 - '067': + h1721: index: 67 description: Significant wave height 17<=T<=21 - '068': + h2125: index: 68 description: Significant wave height 21<=T<=25 - '069': + h2530: index: 69 description: Significant wave height 25<=T<=30 - '070': + weta: index: 70 description: Wave induced sea level correction - '071': + wraf: index: 71 description: Spectral width index - '072': + wnslc: index: 72 description: Number of freak waves events - '073': + utaua: index: 73 description: U-component atmospheric stress - '074': + vtaua: index: 74 description: V-component atmospheric stress - '075': + utauo: index: 75 description: U-component stress into oceans - '076': + vtauo: index: 76 description: V-component stress into oceans - '077': + wphio: index: 77 description: Turbulence energy flux into oceans tdcmax: @@ -251,4 +251,3 @@ parameters: ywrs: index: 84 description: V-component wave radiative stress to sea ice - diff --git a/share/ecwam/scripts/ecwam_configure.sh b/share/ecwam/scripts/ecwam_configure.sh index e73435dee..cddc52479 100644 --- a/share/ecwam/scripts/ecwam_configure.sh +++ b/share/ecwam/scripts/ecwam_configure.sh @@ -162,16 +162,6 @@ function ecwam_configure { amoeap=357.0000 deptha=5.0 iper=1 - elif [[ $wamresol = medite25 ]] ; then - xdella=0.2500000 - amosop=9.00000 - amonop=90.00000 - amowep=-98.00000 - amoeap=42.0000 - iper=0 - ##!! - cldomain=m - ##!! elif [[ $wamresol = medite25 ]] ; then xdella=0.2500000 amosop=30.00000 @@ -205,6 +195,23 @@ function ecwam_configure { ##!! cldomain=m ##!! + elif [[ $wamresol = lam_highres ]] ; then + xdella=0.016666667 + amosop=30.00000 + amonop=46.00000 + amowep=10.00000 + amoeap=24.0000 + iper=0 + deptha=1.0 + irgg=0 + fr1=0.055 + ifre1=1 + ##!! + cldomain=m + ##!! + llgrib_bathy_out=T + llgrib_obstrt_out=T + llobstrout=F elif [[ $wamresol = onegrdpt ]] ; then # one grid point setup xdella=0.5000000 diff --git a/share/ecwam/scripts/ecwam_helper_functions.sh b/share/ecwam/scripts/ecwam_helper_functions.sh index 4a83e029e..82c0e1729 100644 --- a/share/ecwam/scripts/ecwam_helper_functions.sh +++ b/share/ecwam/scripts/ecwam_helper_functions.sh @@ -96,18 +96,22 @@ function find_preproc_files() { } function find_preset_files() { - date=${1} + local date="$1" + shift # remove first argument + local -a header_list=("$@") # remaining arguments become a list + SEARCH_LOCATION=${ECWAM_PRESET_RUN_DIR:-${RUN_DIR}} found=true - files=(restart/LAW${date}_000000000000 restart/BLS${date}_000000000000) - for file in "${files[@]}"; do + for header in "${header_list[@]}"; do + file="restart/${header}${date}_000000000000" if [[ ! ( -r ${SEARCH_LOCATION}/${file} ) ]] ; then found=false fi done if $found ; then mkdir -p ${RUN_DIR}/restart - for file in "${files[@]}"; do + for header in "${header_list[@]}"; do + file="restart/${header}${date}_000000000000" if [[ ! ( -r ${RUN_DIR}/${file} ) ]] ; then echo " ln -sf ${SEARCH_LOCATION}/${file} ${RUN_DIR}/${file}" ln -sf ${SEARCH_LOCATION}/${file} ${RUN_DIR}/${file} @@ -116,7 +120,8 @@ function find_preset_files() { else builtin echo builtin echo "ERROR: Initial condition files not found in ${SEARCH_LOCATION}:" - for file in "${files[@]}"; do + for header in "${header_list[@]}"; do + file="restart/${header}${date}_000000000000" if [[ ! ( -r ${SEARCH_LOCATION}/${file} ) ]] ; then builtin echo " - ${file}" fi diff --git a/share/ecwam/scripts/ecwam_run_create_bathymetry.sh b/share/ecwam/scripts/ecwam_run_create_bathymetry.sh index 54cdcd03f..2409df4f2 100755 --- a/share/ecwam/scripts/ecwam_run_create_bathymetry.sh +++ b/share/ecwam/scripts/ecwam_run_create_bathymetry.sh @@ -173,12 +173,12 @@ else echo "\n\n\t Getting ETOPO1 data set\n" log ${SCRIPTS_DIR}/ecwam_retrieve.sh ${ETOPO1} ${DATA_DIR}/${ETOPO1} ln -sf ${DATA_DIR}/${ETOPO1} ETOPO1_Ice_g_int.xyz - CREATE_WAM_BATHYMETRY_EXE=${CREATE_WAM_BATHYMETRY_ETOPO1} + CREATE_WAM_BATHYMETRY_EXE=${CREATE_WAM_BATHYMETRY_ETOPO1}-${prec} else echo "\n\n\t Getting ETOPO2 data set\n" log ${SCRIPTS_DIR}/ecwam_retrieve.sh ${ETOPO2} ${DATA_DIR}/${ETOPO2} ln -sf ${DATA_DIR}/${ETOPO2} etopo2_2006apr.dat - CREATE_WAM_BATHYMETRY_EXE=${CREATE_WAM_BATHYMETRY_ETOPO2} + CREATE_WAM_BATHYMETRY_EXE=${CREATE_WAM_BATHYMETRY_ETOPO2}-${prec} fi assert_executable_is_available ${CREATE_WAM_BATHYMETRY_EXE} || abort 4 @@ -245,13 +245,22 @@ EOF mkdir -p ${DATA_DIR}/data/bathymetry/$(dirname ${WAM_TOPO}) mv wam_topo_${cwamresol} ${DATA_DIR}/data/bathymetry/${WAM_TOPO} - for ip in 0 1 2; do - if [[ ! -r wam_grib_subgrid_${ip} ]] ; then - echo "\n\n\t File wam_grib_subgrid_${ip} does not exist\n\n" - abort 9 - fi - mv wam_grib_subgrid_${ip} ${DATA_DIR}/data/bathymetry/${subgrid_files[$ip]} - done + if [[ $llobstrout = T ]] ; then + for ip in 0 1 2; do + if [[ ! -r wam_grib_subgrid_${ip} ]] ; then + echo "\n\n\t File wam_grib_subgrid_${ip} does not exist\n\n" + abort 9 + fi + mv wam_grib_subgrid_${ip} ${DATA_DIR}/data/bathymetry/${subgrid_files[$ip]} + done + else + for ip in 0 1 2 + do + echo "llobstrout was set to false. No need for this file" + rm -f ${DATA_DIR}/data/bathymetry/${subgrid_files[$ip]} + touch ${DATA_DIR}/data/bathymetry/${subgrid_files[$ip]} + done + fi fi @@ -264,4 +273,4 @@ for ip in 0 1 2; do echo "\n\t wam_grib_subgrid_${ip} is available in DATA_DIR with symlink in RUN_DIR:\n\n\t ${RUN_DIR}/wam_subgrid_${ip} -> ${DATA_DIR}/data/bathymetry/${subgrid_files[$ip]}" done -cleanup \ No newline at end of file +cleanup diff --git a/share/ecwam/scripts/ecwam_run_model.sh b/share/ecwam/scripts/ecwam_run_model.sh index ec9b699ba..0e2a5a265 100755 --- a/share/ecwam/scripts/ecwam_run_model.sh +++ b/share/ecwam/scripts/ecwam_run_model.sh @@ -30,12 +30,27 @@ endofrn=$(read_config end --format="%Y%m%d%H%M%S") begoffo=$(read_config forcing.at[1].begin --format="%Y%m%d%H%M%S" --default=${endofrn} ) find_preproc_files -find_preset_files ${begofrn} -lgribin=F -lgribout=F +lgribin=$(read_config lgribin --default=F) +lgribout=$(read_config lgribout --default=F) +# Note that lnocdin=T is only meaningful for grib restart (lgribin=T) (rather than pure binary) +# for which the model drag coefficient and the corresponding 10m wind speed are not available +# For cycling the runs, one will need to extract the relevant parameters from the grib output MPP* +# and place them in the relevant CDWAVEIN* and UWAVEIN* files lnocdin=T + +if [[ ${lgribin} = T ]]; then + if [[ ${lnocdin} = T ]]; then + initial_file_header_list="SGS" + else + initial_file_header_list="SGS CDWAVEIN UWAVEIN" + fi +else + initial_file_header_list="LAW BLS" +fi +find_preset_files ${begofrn} ${initial_file_header_list} + output_fields=$(read_config output.fields.name[:] --default="") output_statistics=$(read_config output.statistics.name[:] --default="") @@ -78,18 +93,24 @@ done # MODEL SETUP: ############## +cldomain=$(read_config cldomain --default=g) wamnang=$(read_config directions) wamnfre=$(read_config frequencies) +fr1=$(read_config fr1 --default=4.177248E-02) +ifre1=$(read_config ifre1 --default=1) +lsubgrid=$(read_config lsubgrid --default=T) +irefra=$(read_config advection.irefra --default=0) + +iphys=$(read_config physics.iphys --default=1) +llgcbz0=$(read_config physics.llgcbz0 --default=F) +llnormagam=$(read_config physics.llnormagam --default=F) +lmaskice=$(read_config physics.lmaskice --default=T) +lciwa1=$(read_config physics.lciwa1 --default=F) +lciwa2=$(read_config physics.lciwa2 --default=F) +lciwa3=$(read_config physics.lciwa3 --default=F) +lciscal=$(read_config physics.lciscal --default=F) nproma=$(read_config nproma --default=24) -iphys=$(read_config iphys --default=1) -llgcbz0=$(read_config llgcbz0 --default=F) -llnormagam=$(read_config llnormagam --default=F) -irefra=$(read_config irefra --default=0) -lciwa1=$(read_config lciwa1 --default=F) -lciwa2=$(read_config lciwa2 --default=F) -lciwa3=$(read_config lciwa3 --default=F) -lciscal=$(read_config lciscal --default=F) # read timesteps phys_tstp=$(read_config physics.timestep --format=seconds --default=900) @@ -117,6 +138,7 @@ fi ppfreq=$(read_config output.fields.at[0].timestep --format=hours --default=02:00) forcings_file=$(read_config forcings.file) +currents_file=$(read_config currents.file --default=NOTFOUND ) function cleanup() { shopt -s nullglob @@ -144,7 +166,7 @@ function cleanup() { done mkdir -p ${RUN_DIR}/restart/ - for outfile in ${WORK_DIR}/LAW* ${WORK_DIR}/BLS*; do + for outfile in ${WORK_DIR}/LAW* ${WORK_DIR}/BLS* ${WORK_DIR}/SGS* ; do mv ${outfile} ${RUN_DIR}/restart/ done @@ -185,14 +207,33 @@ done # Initial stress and spectrum ############################# -for preset_file in LAW${begofrn}_000000000000 BLS${begofrn}_000000000000; do +rm -rf specwavein cdwavein uwavein + +for header in ${initial_file_header_list}; do + preset_file=${header}${begofrn}_000000000000 + if [[ -r ${RUN_DIR}/restart/${preset_file} ]] ; then - ln -sf ${RUN_DIR}/restart/${preset_file} ${preset_file} + if [[ ${lgribin} = T ]]; then + # Grib restart files + if [[ ${header} = SGS ]] ; then + ln -sf ${RUN_DIR}/restart/${preset_file} specwavein + elif [[ ${header} = CDWAVEIN ]] ; then + ln -sf ${RUN_DIR}/restart/${preset_file} cdwavein + elif [[ ${header} = UWAVEIN ]] ; then + ln -sf ${RUN_DIR}/restart/${preset_file} uwavein + else + ln -sf ${RUN_DIR}/restart/${preset_file} ${preset_file} + fi + else + # Pure binary restart files + ln -sf ${RUN_DIR}/restart/${preset_file} ${preset_file} + fi else echo "\n\n\tPRESET FILE ${preset_file} was not found in ${RUN_DIR}/restart" trace_ls ${RUN_DIR}/restart exit 1 fi + done # Forcing @@ -205,15 +246,32 @@ log ${SCRIPTS_DIR}/ecwam_retrieve.sh ${forcings_file} ${DATA_DIR}/${forcings_fil ln -s ${DATA_DIR}/${forcings_file} sfcwindin + +# Surface currents (if needed) +############################## +if [ "${currents_file}" != NOTFOUND ]; then + log ${SCRIPTS_DIR}/ecwam_retrieve.sh ${currents_file} ${DATA_DIR}/${currents_file} || { + echo "ERROR: Could not retrieve surface currents ${currents_file}" + exit 4 +} + + ln -s ${DATA_DIR}/${currents_file} currents +fi + # NAMELIST ########## cat > wam_namelist << EOF &NALINE + CLHEADER = " WAVE MODEL ", + CLDOMAIN = "${cldomain}", + NPROMA_WAM = ${nproma}, + LL1D = F, NANG = ${wamnang}, NFRE = 36, NFRE_RED = ${wamnfre}, - CLHEADER = " WAVE MODEL ", + FR1 = ${fr1}, + IFRE1 = ${ifre1}, CBPLTDT = "${begofrn}", CEPLTDT = "${endofrn}", CDATEF = "${begoffo}", @@ -222,49 +280,45 @@ cat > wam_namelist << EOF IFRELFMAX = ${ifrelfmax}, IDELPRO = ${adv_base_tstp}, IDELT = ${phys_tstp}, - IDELINT = ${ppfreq}, IDELCUR = ${idelcur} - IREST = 1, - LFDBIOOUT = F, - LFDB = F, IPHYS = ${iphys}, - ISHALLO = 0, - ISNONLIN = 0, - LBIWBK = T, - LLCAPCHNK = T, LLGCBZ0 = ${llgcbz0}, LLNORMAGAM = ${llnormagam}, + ISNONLIN = 0, + LICERUN = ${licerun}, + LMASKICE = ${lmaskice}, + LCIWA1 = ${lciwa1}, + LCIWA2 = ${lciwa2}, + LCIWA3 = ${lciwa3}, + LICETH = F, + ZALPFACB = 1.0, + LCISCAL = ${lciscal}, IPROPAGS = 2, - LSUBGRID = F, + LSUBGRID = ${lsubgrid}, IREFRA = ${irefra}, - LICERUN = ${licerun}, - LMASKICE = T, - LWAMRSETCI = T, + LRELWIND = T, + RWFAC = 0.5, + LFDBIOOUT = F, + LFDB = F, NGRIB_VERSION = 2, - LL_GRID_SIMPLE_MATRIX = F, - LLRSTGRIBPARAM = F, + LLRSTGRIBPARAM = T, YCLASS = "rd", YEXPVER = "wave", ISTREAM = 1045, CPATH = "${WORK_DIR}", LGRIBIN = ${lgribin}, - LGRIBOUT = ${lgribout}, LNOCDIN = ${lnocdin}, - NPROMA_WAM = ${nproma}, - LL1D = F, + LGRIBOUT = ${lgribout}, LFRSTFLD = T, IDELRES = 0, ! regular output for restart spectra, ignored if NAOS sections exists + IDELINT = ${ppfreq}, + LSECONDORDER = F, + IREST = 1, LRSTPARALR = F, LRSTPARALW = F, - LSECONDORDER = F, - LWVFLX_SNL = T, LLNORMWAMOUT = T, LLNORMWAMOUT_GLOBAL = T, CNORMWAMOUT_FILE = "statistics.log", - LCIWA1 = ${lciwa1}, - LCIWA2 = ${lciwa2}, - LCIWA3 = ${lciwa3}, - LCISCAL = ${lciscal}, ${OUTPUT_FLAGS} / ${NAWI} diff --git a/share/ecwam/scripts/ecwam_run_preset.sh b/share/ecwam/scripts/ecwam_run_preset.sh index c9b72d33a..2f929cbe3 100755 --- a/share/ecwam/scripts/ecwam_run_preset.sh +++ b/share/ecwam/scripts/ecwam_run_preset.sh @@ -145,16 +145,28 @@ begoffo=$(read_config forcings.at[1].begin --format="%Y%m%d%H%M%S" --default=${e # MODEL SETUP: ############## +cldomain=$(read_config cldomain --default=g) wamnang=$(read_config directions) wamnfre=$(read_config frequencies) +fr1=$(read_config fr1 --default=4.177248E-02) +ifre1=$(read_config ifre1 --default=1) forcings_file=$(read_config forcings.file) opti=1 -fetch=50000.0 -fmax=0.2000000 +fetch=1200.0 +fmax=0.4000000 +lmaskice=$(read_config physics.lmaskice --default=$(read_config lmaskice --default=T)) + +if [[ $(read_config forcings.sea_ice --default=True) == "True" ]] ; then + licerun=T +else + licerun=F +fi llunstr=F -lgribout=F +lgribout=$(read_config lgribout --default=F) + +nproma=$(read_config nproma --default=24) assert_executable_is_available ${PRESET}-${prec} || abort 4 @@ -192,6 +204,7 @@ ln -s ${DATA_DIR}/${forcings_file} sfcwindin cat > PREINFO < PREINFO < PREINFO < CILIMIT) THEN + FL1(IJ,K,M) = MAX((1.0_JWRB - CICOVER(IJ)) * FL1(IJ,K,M), 0.0_JWRB) + ENDIF + ENDDO + ENDDO + ENDDO + ENDIF + END SUBROUTINE MSTART diff --git a/src/ecwam/readfl.F90 b/src/ecwam/readfl.F90 index aa9b19f37..56a6af0cd 100644 --- a/src/ecwam/readfl.F90 +++ b/src/ecwam/readfl.F90 @@ -136,11 +136,24 @@ SUBROUTINE READFL(FL, IJINF, IJSUP, KINF, KSUP, MINF, MSUP, & ELSE ! WHEN 2-D DECOMPOSITION IS USED THEN THE INDEXES IJ ARE RE-LABELLED ! BUT THE BINARY INPUT FILES ARE IN THE OLD MAPPING - READ(IUNIT) (((FL(IJ2NEWIJ(IJ),J2,J3), & + + READ(IUNIT) (((FL_G(IJ,J2,J3), & & IJ=IJINF,IJSUP), & & J2=KINF,KSUP), & & J3=MINF,MSUP) +! RE-ORDER +!$OMP PARALLEL DO SCHEDULE(STATIC) PRIVATE(J3, J2, IJ) + DO J3 = MINF, MSUP + DO J2 = KINF, KSUP + DO IJ = IJINF, IJSUP + FL(IJ2NEWIJ(IJ),J2,J3) = FL_G(IJ,J2,J3) + ENDDO + ENDDO + ENDDO +!$OMP END PARALLEL DO + + ENDIF IF (LCUNIT) CLOSE(IUNIT) diff --git a/src/ecwam/readstress.F90 b/src/ecwam/readstress.F90 index aa4bbb8f0..45ba2f5ca 100644 --- a/src/ecwam/readstress.F90 +++ b/src/ecwam/readstress.F90 @@ -117,7 +117,11 @@ SUBROUTINE READSTRESS(IJINF, IJSUP, NREAL, RFIELD, FILENAME, LRSTPARAL) ! WHEN 2-D DECOMPOSITION IS USED THEN THE INDEXES IJ ARE ! RE-LABELLED BUT THE BINARY INPUT FILES ARE IN THE OLD MAPPING DO IFLD=1,NREAL - READ(IUNIT)(RFIELD(IJ2NEWIJ(IJ),IFLD),IJ=IJINF,IJSUP) + READ(IUNIT)(RFIELD_G(IJ),IJ=IJINF,IJSUP) +! RE-ORDER + DO IJ = IJINF, IJSUP + RFIELD(IJ2NEWIJ(IJ),IFLD) = RFIELD_G(IJ) + ENDDO ENDDO ENDIF diff --git a/src/ecwam/readwind.F90 b/src/ecwam/readwind.F90 index 512701709..0e905b121 100644 --- a/src/ecwam/readwind.F90 +++ b/src/ecwam/readwind.F90 @@ -310,6 +310,7 @@ SUBROUTINE READWIND (CDTWIR, FILNM, LLNOTOPENED, IREAD, & & CDSTRING='READWIND IDUM:') IF (IRANK /= IREAD) THEN ISIZE=IDUM(1) + IF (ALLOCATED(KGRIB)) DEALLOCATE(KGRIB) ALLOCATE(KGRIB(ISIZE)) ENDIF @@ -382,7 +383,10 @@ SUBROUTINE READWIND (CDTWIR, FILNM, LLNOTOPENED, IREAD, & ELSEIF (IPARAM == 31 .OR. IPARAM == 139) THEN IPARAMCI=IPARAM - IF (LLNOTREAD(IVAR)) THEN + IF (.NOT.LICERUN) THEN +! SKIP SEA ICE MASK INFORMATION AS IT IS NOT NEEDED + GOTO 2002 + ELSEIF (LLNOTREAD(IVAR)) THEN DO J = NYS, NYE JSN = NGY-J+1 DO I = NXS, MIN(NLONRGG_LOC(JSN), NXE) @@ -390,17 +394,16 @@ SUBROUTINE READWIND (CDTWIR, FILNM, LLNOTOPENED, IREAD, & ENDDO ENDDO LLNOTREAD(IVAR)=.FALSE. - ELSEIF (.NOT.LICERUN .AND. & - & (IPARAM == 31 .OR. IPARAM == 139) ) THEN -! SKIP SEA ICE MASK INFORMATION AS IT IS NOT NEEDED - GOTO 2002 ELSE LLABORT=.TRUE. ENDIF ELSEIF (IPARAM == 92) THEN - IF (LLNOTREAD(IVAR)) THEN + IF (.NOT.LICETH) THEN +! SKIP SEA ICE THICKNESS INFORMATION AS IT IS NOT NEEDED + GOTO 2002 + ELSEIF (LLNOTREAD(IVAR)) THEN DO J = NYS, NYE JSN = NGY-J+1 DO I = NXS, MIN(NLONRGG_LOC(JSN), NXE) @@ -408,10 +411,6 @@ SUBROUTINE READWIND (CDTWIR, FILNM, LLNOTOPENED, IREAD, & ENDDO ENDDO LLNOTREAD(IVAR)=.FALSE. - ELSEIF (.NOT.LICETH .AND. & - & (IPARAM == 92) ) THEN -! SKIP SEA ICE THICKNESS INFORMATION AS IT IS NOT NEEDED - GOTO 2002 ELSE LLABORT=.TRUE. ENDIF diff --git a/src/ecwam/sdice3.F90 b/src/ecwam/sdice3.F90 index 10d216fff..6db5e9f80 100644 --- a/src/ecwam/sdice3.F90 +++ b/src/ecwam/sdice3.F90 @@ -127,8 +127,7 @@ SUBROUTINE SDICE3 (KIJS, KIJL, FL1, FLD, SL, SLICE, & DO M = 1,NFRE DO IJ = KIJS,KIJL -! ALP(IJ,M) = (2._JWRB*CDICE*(CITH(IJ)**(1.25_JWRB))*(FR(M)**(4.5_JWRB))) * ALPFAC(IJ) * ZALPFACB - ALP(IJ,M) = (2._JWRB*CDICE*(CITH(IJ)**(1.25_JWRB))*(FR(M)**(4.5_JWRB))) * ALPFAC(IJ) ! (old way to ensure bit-identicality) + ALP(IJ,M) = (2._JWRB*CDICE*(CITH(IJ)**(1.25_JWRB))*(FR(M)**(4.5_JWRB))) * ALPFAC(IJ) * ZALPFACB END DO END DO diff --git a/src/ecwam/wgrib_edition.F90 b/src/ecwam/wgrib_edition.F90 index 2ebd29cb8..cfa79e371 100644 --- a/src/ecwam/wgrib_edition.F90 +++ b/src/ecwam/wgrib_edition.F90 @@ -30,6 +30,8 @@ INTEGER FUNCTION WGRIB_EDITION (IPARAMID) IF ( (IPARAMID >= 140131 .AND. IPARAMID <= 140134) .OR. IPARAMID == 140150 .OR. IPARAMID == 140149 .OR. IPARAMID == 262025 ) THEN WGRIB_EDITION = 2 +ELSEIF ( IPARAMID >= 262000 .AND. IPARAMID <= 262999 ) THEN + WGRIB_EDITION = 2 ELSE WGRIB_EDITION = 0 ENDIF diff --git a/src/ecwam/writefl.F90 b/src/ecwam/writefl.F90 index 0d255a8ca..9d01e93fb 100644 --- a/src/ecwam/writefl.F90 +++ b/src/ecwam/writefl.F90 @@ -95,7 +95,7 @@ SUBROUTINE WRITEFL(FL, IJINF, IJSUP, KINF, KSUP, MINF, MSUP, & IF (LOUNIT) THEN IUNIT=IWAM_GET_UNIT(IU06, FILENAME(1:LFILE) , 'w', 'u', 0, 'READWRITE') ELSE - IUNIT=IWAM_GET_UNIT(IU06, FILENAME(1:LFILE) , 'a', 'u', 0, 'READWRITE') + IUNIT=IWAM_GET_UNIT(-1, FILENAME(1:LFILE) , 'a', 'u', 0, 'READWRITE') ENDIF IF (LLUNSTR .AND. .NOT.LRSTPARAL) THEN @@ -114,7 +114,18 @@ SUBROUTINE WRITEFL(FL, IJINF, IJSUP, KINF, KSUP, MINF, MSUP, & ELSE ! WHEN 2-D DECOMPOSITION IS USED THEN THE INDEXES IJ ARE RE-LABELLED ! BUT THE SINGLE BINARY INPUT FILES SHOULD BE IN THE OLD MAPPING - WRITE(IUNIT) (((FL(IJ2NEWIJ(IJ),J2,J3),IJ=IJINF,IJSUP),J2=KINF,KSUP),J3=MINF,MSUP) + +!$OMP PARALLEL DO SCHEDULE(STATIC) PRIVATE(J3, J2, IJ) + DO J3 = MINF, MSUP + DO J2 = KINF, KSUP + DO IJ = IJINF, IJSUP + FL_G(IJ,J2,J3) = FL(IJ2NEWIJ(IJ),J2,J3) + ENDDO + ENDDO + ENDDO +!$OMP END PARALLEL DO + + WRITE(IUNIT) (((FL_G(IJ,J2,J3),IJ=IJINF,IJSUP),J2=KINF,KSUP),J3=MINF,MSUP) ENDIF CLOSE(IUNIT) diff --git a/src/ecwam/yowwind.F90 b/src/ecwam/yowwind.F90 index e9b8c7ac3..bf689c9d1 100644 --- a/src/ecwam/yowwind.F90 +++ b/src/ecwam/yowwind.F90 @@ -18,7 +18,7 @@ MODULE YOWWIND REAL(KIND=JWRB) :: WSPMIN REAL(KIND=JWRB), PARAMETER :: WSPMIN_RESET_TAUW=4.0_JWRB REAL(KIND=JWRB), PARAMETER :: USTMIN_RESET_TAUW=0.08_JWRB - REAL(KIND=JWRB), PARAMETER :: RWFAC=0.5_JWRB + REAL(KIND=JWRB) :: RWFAC CHARACTER(LEN=14) :: CDATEWL CHARACTER(LEN=14) :: CDAWIFL diff --git a/src/programs/preset.F90 b/src/programs/preset.F90 index e5259c023..eca1575c7 100644 --- a/src/programs/preset.F90 +++ b/src/programs/preset.F90 @@ -85,6 +85,7 @@ PROGRAM preset USE YOWGRID , ONLY : DELPHI ,IJS , IJL , NTOTIJ , & & NPROMA_WAM, NCHNK, KIJL4CHNK, IJFROMCHNK, & & IJSLOC ,IJLLOC ,IJGLOBAL_OFFSET + USE YOWICE , ONLY : LICERUN ,LMASKICE USE YOWMAP , ONLY : CLDOMAIN ,BLK2GLO ,IRGG ,AMOWEP , & & AMOSOP ,AMOEAP ,AMONOP ,XDELLA ,XDELLO , & & BLK2LOC ,NGX ,NGY ,NIBLO @@ -186,6 +187,7 @@ PROGRAM preset & CLDOMAIN, & & NANG, IFRE1, FR1, NFRE, NFRE_RED, & & IOPTI, ITEST, ITESTB, & + & LICERUN, LMASKICE, & & ALFA, FM, GAMMA, SA, SB, THETA, FETCH, SWAMPWIND , & & USERID, RUNID, PATH, CPATH, & & CDATEA, IDELWI, CLTUNIT, & @@ -253,6 +255,9 @@ PROGRAM preset CLTUNIT= 'H' IDELWI = 0 + LICERUN = .FALSE. + LMASKICE = .TRUE. + LLUNSTR =.FALSE. LPREPROC =.FALSE. @@ -633,7 +638,8 @@ PROGRAM preset DO ICHNK = 1, NCHNK CALL MSTART (IOPTI, FETCH, FRMAX, THETAQ, & & FM, ALFA, GAMMA, SA, SB, & - & 1, NPROMA_WAM, VARS_4D%FL1(:,:,:,ICHNK), & + & 1, NPROMA_WAM, VARS_4D%FL1(:,:,:,ICHNK), & + & FF_NOW%CICOVER(:,ICHNK), & & FF_NOW%WSWAVE(:,ICHNK), FF_NOW%WDWAVE(:,ICHNK)) ENDDO !$OMP END PARALLEL DO diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index d11e173c7..733856496 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -24,6 +24,10 @@ foreach( prec sp dp ) ecwam_add_test( ${PROJECT_NAME}_test_etopo1_oper_an_fc_O48 CONFIG etopo1_oper_an_fc_O48.yml MPI 4 OMP 1 PREC ${prec} ) ecwam_add_test( ${PROJECT_NAME}_test_etopo1_oper_an_fc_O48 CONFIG etopo1_oper_an_fc_O48.yml MPI 1 OMP 4 PREC ${prec} ) + ecwam_add_test( ${PROJECT_NAME}_test_etopo1_oper_an_fc_grib_restart_O96 CONFIG etopo1_oper_an_fc_grib_restart_O96.yml PREC ${prec} ) + ecwam_add_test( ${PROJECT_NAME}_test_etopo1_oper_an_fc_grib_restart_O96 CONFIG etopo1_oper_an_fc_grib_restart_O96.yml MPI 4 OMP 1 PREC ${prec} ) + ecwam_add_test( ${PROJECT_NAME}_test_etopo1_oper_an_fc_grib_restart_O96 CONFIG etopo1_oper_an_fc_grib_restart_O96.yml MPI 1 OMP 4 PREC ${prec} ) + # This configuration is retained for the test-base purely for coverage reasons, and is not used for # research or operational forecasts. As such, Loki transformations remove the relevant code-paths as # this can yield significant performance benefits, especially on GPU. @@ -34,13 +38,5 @@ foreach( prec sp dp ) ecwam_add_test( ${PROJECT_NAME}_test_etopo1_oper_an_fc_O48_iphys_0 CONFIG etopo1_oper_an_fc_O48_iphys_0.yml MPI 1 OMP 4 PREC ${prec} ) endif() - ecwam_add_test( ${PROJECT_NAME}_test_etopo1_oper_an_fc_O48_cy49r1 CONFIG etopo1_oper_an_fc_O48_cy49r1.yml PREC ${prec} ) - ecwam_add_test( ${PROJECT_NAME}_test_etopo1_oper_an_fc_O48_cy49r1 CONFIG etopo1_oper_an_fc_O48_cy49r1.yml MPI 4 OMP 1 PREC ${prec} ) - ecwam_add_test( ${PROJECT_NAME}_test_etopo1_oper_an_fc_O48_cy49r1 CONFIG etopo1_oper_an_fc_O48_cy49r1.yml MPI 1 OMP 4 PREC ${prec} ) - - ecwam_add_test( ${PROJECT_NAME}_test_etopo1_oper_an_fc_O48_cy50r1 CONFIG etopo1_oper_an_fc_O48_cy50r1.yml PREC ${prec} ) - ecwam_add_test( ${PROJECT_NAME}_test_etopo1_oper_an_fc_O48_cy50r1 CONFIG etopo1_oper_an_fc_O48_cy50r1.yml MPI 4 OMP 1 PREC ${prec} ) - ecwam_add_test( ${PROJECT_NAME}_test_etopo1_oper_an_fc_O48_cy50r1 CONFIG etopo1_oper_an_fc_O48_cy50r1.yml MPI 1 OMP 4 PREC ${prec} ) - endif() endforeach() diff --git a/tests/aqua_era5_O48.yml b/tests/aqua_era5_O48.yml index 4fb9d7ba6..17cb6aa2c 100644 --- a/tests/aqua_era5_O48.yml +++ b/tests/aqua_era5_O48.yml @@ -1,17 +1,30 @@ grid: O48 +cldomain: g directions: 12 frequencies: 25 +fr1: 4.177248E-02 +ifre1: 1 bathymetry: aqua +lsubgrid: F advection: + irefra: 0 timestep: 1200 physics: + iphys: 1 timestep: 1200 + llgcbz0: T + llnormagam: T + lmaskice: T + lciwa3: F + lciscal: F begin: 2022-01-01 00:00:00 end: 2022-01-01 06:00:00 nproma: 24 +lgribin: F +lgribout: F forcings: file: data/forcings/era5_2022010100_36h_O48.grib @@ -24,6 +37,12 @@ output: fields: name: - swh # Significant height of combined wind waves and swell + - mwd # Mean wave direction + - mwp # Mean wave period + - pp1d # Peak wave period + - dwi # 10 metre wind direction + - cdww # Coefficient of drag with waves + - wind # 10 metre wind speed format: grib # (default : grib) or binary at: - timestep: 01:00 @@ -41,33 +60,33 @@ validation: # initial time - name: swh time: 2022-01-01 00:00:00 - average: 0.1297292357578561E+01 + average: 3.759515218870229e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF4C1B5A1926918'] + hashes: ['0x3FD80F96F8D8B75D'] # After 1h - name: swh time: 2022-01-01 01:00:00 - average: 0.1310657012118055E+01 + average: 4.618561980882285e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF4F8737CB51F37'] + hashes: ['0x3FDD8F0D4C8F9B0F'] # After 6h - name: swh time: 2022-01-01 06:00:00 - average: 0.1349752334552524E+01 + average: 7.045946694407140e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF59895E769A4D3'] + hashes: ['0x3FE68C0A1EC5E1AB'] - name: swh time: 2022-01-01 06:00:00 - minimum: 0.8578696971216837E+00 + minimum: 2.176688382325517e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FEB73AB26ABBEEE'] + hashes: ['0x3FCBDC928EC89785'] - name: swh time: 2022-01-01 06:00:00 - maximum: 0.6566551146080710E+01 + maximum: 4.283898323513900e+00 relative_tolerance: 1.e-14 - hashes: ['0x401A4425FBCFB63D'] + hashes: ['0x401122B63DFB8695'] single_precision: diff --git a/tests/aqua_oper_an_fc_O48.yml b/tests/aqua_oper_an_fc_O48.yml index e4b2afdb9..f10828026 100644 --- a/tests/aqua_oper_an_fc_O48.yml +++ b/tests/aqua_oper_an_fc_O48.yml @@ -1,12 +1,23 @@ grid: O48 -directions: 12 +cldomain: g +directions: 12 frequencies: 25 +fr1: 4.177248E-02 +ifre1: 1 bathymetry: aqua +lsubgrid: F advection: + irefra: 0 timestep: 900 physics: + iphys: 1 timestep: 900 + llgcbz0: T + llnormagam: T + lmaskice: T + lciwa3: F + lciscal: F analysis.begin: 2022-12-31 12:00:00 analysis.end: 2023-01-01 00:00:00 @@ -17,6 +28,8 @@ begin: ${analysis.begin} end: ${forecast.end} nproma: 24 +lgribin: F +lgribout: F forcings: file: data/forcings/oper_an_12h_fc_2023010100_36h_O48.grib @@ -24,7 +37,7 @@ forcings: at: - begin: ${analysis.begin} end: ${analysis.end} - timestep: 06:00 + timestep: 06:00 - begin: ${forecast.begin} end: ${forecast.end} timestep: 01:00 @@ -36,7 +49,7 @@ output: - mwd # Mean wave direction - mwp # Mean wave period - pp1d # Peak wave period - - dwi # 10 metre wind direction + - dwi # 10 metre wind direction - cdww # Coefficient of drag with waves - wind # 10 metre wind speed format: grib # (default : grib) or binary @@ -46,7 +59,7 @@ output: restart: format: binary # (default : binary) or grib at: - - time: ${end} + - time: ${analysis.end} validation: @@ -56,33 +69,33 @@ validation: # initial analysis time - name: swh time: 2022-12-31 12:00:00 - average: 0.1305516097122228E+01 + average: 3.801328565519289e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF4E364D8D8AA19'] + hashes: ['0x3FD85418C2C1A355'] # initial forecast time - name: swh time: 2023-01-01 00:00:00 - average: 0.1425978329163169E+01 + average: 9.260182952917514e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF6D0CEA708F7F1'] + hashes: ['0x3FEDA1F11EB8D2E3'] - # 6h into forcast + # 6h into forecast - name: swh time: 2023-01-01 06:00:00 - average: 0.1471501243754861E+01 + average: 1.059431637034954e+00 relative_tolerance: 1.e-14 - hashes: ['0x3FF78B44E35F350C'] + hashes: ['0x3FF0F36E96969B1D'] - name: swh time: 2023-01-01 06:00:00 - minimum: 0.1756714116574739E-01 + minimum: 1.932673932890733e-02 relative_tolerance: 1.e-14 - hashes: ['0x3F91FD1EE32A1635'] + hashes: ['0x3F93CA63856C8470'] - name: swh time: 2023-01-01 06:00:00 - maximum: 0.6986921340924501E+01 + maximum: 6.511461310821066e+00 relative_tolerance: 1.e-14 - hashes: ['0x401BF29B820BFB15'] + hashes: ['0x401A0BBC838C9545'] single_precision: @@ -100,7 +113,7 @@ validation: relative_tolerance: 1.e-6 hashes: ['0x3FF6CD1040000000'] - # 6h into forcast + # 6h into forecast - name: swh time: 2023-01-01 06:00:00 average: 0.1471550345420837E+01 diff --git a/tests/etopo1_era5_O48.yml b/tests/etopo1_era5_O48.yml index 8172cdf31..217129040 100644 --- a/tests/etopo1_era5_O48.yml +++ b/tests/etopo1_era5_O48.yml @@ -1,17 +1,30 @@ grid: O48 +cldomain: g directions: 12 frequencies: 25 -bathymetry: ETOPO1 +fr1: 4.177248E-02 +ifre1: 1 +bathymetry: ETOPO1 +lsubgrid: T advection: + irefra: 0 timestep: 1200 physics: - timestep: 1200 + iphys: 1 + timestep: 1200 + llgcbz0: T + llnormagam: T + lmaskice: F + lciwa3: T + lciscal: T begin: 2022-01-01 00:00:00 end: 2022-01-01 06:00:00 nproma: 24 +lgribin: F +lgribout: F forcings: file: data/forcings/era5_2022010100_36h_O48.grib @@ -24,6 +37,73 @@ output: fields: name: - swh # Significant height of combined wind waves and swell + - mwd # Mean wave direction + - mwp # Mean wave period + - pp1d # Peak wave period + - dwi # 10 metre wind direction + - cdww # Coefficient of drag with waves + - wind # 10 metre wind speed + - msqs # Mean square slope of waves + - shww # Significant height of wind waves + - shts # Significant height of total swell + - mdww # Mean direction of wind waves + - mdts # Mean direction of total swell + - mpww # Mean period of wind waves + - mpts # Mean period of total swell + - mp1 # Mean wave period based on first moment + - mp2 # Mean zero-crossing wave period + - wdw # Wave spectral directional width + - p1ww # Mean wave period based on first moment for wind waves + - p1ps # Mean wave period based on first moment for swell + - p2ww # Mean wave period based on second moment for wind waves + - p2ps # Mean wave period based on second moment for swell + - dwww # Wave spectral directional width for wind waves + - dwps # Wave spectral directional width for swell + - wsk # Wave spectral kurtosis + - bfi # Benjamin-Feir index + - wsp # Wave spectral peakedness + - wmb # Model bathymetry + - hmax # Maximum individual wave height + - tmax # Period corresponding to maximum individual wave height + - ust # U-component stokes drift + - vst # V-component stokes drift + - phioc # Normalised energy flux to ocean + - phiaw # Normalised energy flux to waves + - tauoc # Normalised momentum flux to ocean + - swh1 # Swell partition 1 wave height + - mwd1 # Swell partition 1 direction + - mwp1 # Swell partition 1 mean period + - swh2 # Swell partition 2 wave height + - mwd2 # Swell partition 2 direction + - mwp2 # Swell partition 2 mean period + - swh3 # Swell partition 3 wave height + - mwd3 # Swell partition 3 direction + - mwp3 # Swell partition 3 mean period + - sh10 # Wave height with period > 10s + - wss # Spectral skewness + - wefxm # Wave energy flux magnitude + - wefxd # Wave energy flux direction + - h1012 # Significant wave height 10<=T<=12 + - h1214 # Significant wave height 12<=T<=14 + - h1417 # Significant wave height 14<=T<=17 + - h1721 # Significant wave height 17<=T<=21 + - h2125 # Significant wave height 21<=T<=25 + - h2530 # Significant wave height 25<=T<=30 + - weta # Wave induced sea level correction + - wraf # Spectral width index + - wnslc # Number of freak waves events + - utaua # U-component atmospheric stress + - vtaua # V-component atmospheric stress + - utauo # U-component stress into oceans + - vtauo # V-component stress into oceans + - wphio # Turbulence energy flux into oceans + - tdcmax # Time domain maximum crest height + - tdhmax # Time domain maximum wave height + - stcmax # Space time maximum crest height + - sthmax # Space time maximum wave height + - sibm # Sea ice break up memory + - xwrs # U-component wave radiative stress to sea ice + - ywrs # V-component wave radiative stress to sea ice format: grib # (default : grib) or binary at: - timestep: 01:00 @@ -41,33 +121,33 @@ validation: # initial time - name: swh time: 2022-01-01 00:00:00 - average: 0.1328781785601431E+01 + average: 3.798319828376563e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF542B0B08ADBA9'] + hashes: ['0x3FD84F2ACE10CDE6'] # After 1h - name: swh time: 2022-01-01 01:00:00 - average: 0.1354420753906861E+01 + average: 4.840283485796651e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF5ABB518B0DBAD'] + hashes: ['0x3FDEFA5209DF23A1'] # After 6h - name: swh time: 2022-01-01 06:00:00 - average: 0.1442422513474463E+01 + average: 7.970841426388247e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF71429A12630E6'] + hashes: ['0x3FE981B69A99680C'] - name: swh time: 2022-01-01 06:00:00 - minimum: 0.2141090245852280E+00 + minimum: 4.326228740126664e-03 relative_tolerance: 1.e-14 - hashes: ['0x3FCB67ECAD2F9E2A'] + hashes: ['0x3F71B8612F4301FA'] - name: swh time: 2022-01-01 06:00:00 - maximum: 0.6566141026555312E+01 + maximum: 4.283173941421830e+00 relative_tolerance: 1.e-14 - hashes: ['0x401A43BA7927EA6D'] + hashes: ['0x401121F85985F1D9'] single_precision: diff --git a/tests/etopo1_oper_an_fc_O1280.yml b/tests/etopo1_oper_an_fc_O1280.yml index 44ce1e04d..657a12db1 100644 --- a/tests/etopo1_oper_an_fc_O1280.yml +++ b/tests/etopo1_oper_an_fc_O1280.yml @@ -1,15 +1,26 @@ grid: O1280 +cldomain: g directions: 36 frequencies: 29 +fr1: 4.177248E-02 +ifre1: 3 bathymetry: ETOPO1 +lsubgrid: T advection: - timestep: 450 + irefra: 2 + timestep: 450 fast_waves: timestep: 225 - max_frequency: 5 + max_frequency: 7 physics: + iphys: 1 timestep: 900 + llgcbz0: T + llnormagam: T + lmaskice: F + lciwa3: T + lciscal: T analysis.begin: 2022-12-31 12:00:00 analysis.end: 2023-01-01 00:00:00 @@ -20,6 +31,8 @@ begin: ${analysis.begin} end: ${forecast.end} nproma: 24 +lgribin: F +lgribout: F forcings: file: data/forcings/oper_an_12h_fc_2023010100_36h_O1280.grib @@ -32,6 +45,10 @@ forcings: end: ${forecast.end} timestep: 01:00 +currents: + file: data/forcings/daily_average_surface_currents_ORAS6_20221231_20230102_O1280.grib + input_step: 86400 + output: fields: name: @@ -49,7 +66,7 @@ output: restart: format: binary # (default : binary) or grib at: - - time: ${end} + - time: ${analysis.end} validation: @@ -59,29 +76,30 @@ validation: # initial analysis time - name: swh time: 2022-12-31 12:00:00 - average: 0.1333968766800869E+01 + average: 3.878921852381331e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF557EFA234B912'] + hashes: ['0x3FD8D339BE7E313F'] # initial forecast time - name: swh time: 2023-01-01 00:00:00 - average: 0.1513401152656281E+01 - hashes: ['0x3FF836E4208632E9'] + average: 1.052671880035781e+00 + relative_tolerance: 1.e-14 + hashes: ['0x3FF0D7BE7822C29D'] - # 6h into forcast + # 6h into forecast - name: swh time: 2023-01-01 06:00:00 - average: 0.1591519358217514E+01 + average: 1.213041806873566e+00 relative_tolerance: 1.e-14 - hashes: ['0x3FF976DD00A7EC10'] + hashes: ['0x3FF3689E86933E53'] - name: swh time: 2023-01-01 06:00:00 - minimum: 0.1593042438860915E-01 + minimum: 4.387390382286470e-03 relative_tolerance: 1.e-14 - hashes: ['0x3F905010AF0ABA82'] + hashes: ['0x3F71F883234EAA3F'] - name: swh time: 2023-01-01 06:00:00 - maximum: 0.7670097764777837E+01 + maximum: 7.162006493701588e+00 relative_tolerance: 1.e-14 - hashes: ['0x401EAE2E1BC35FC1'] + hashes: ['0x401CA5E507C0C076'] diff --git a/tests/etopo1_oper_an_fc_O320.yml b/tests/etopo1_oper_an_fc_O320.yml index 498380c8f..d3b600161 100644 --- a/tests/etopo1_oper_an_fc_O320.yml +++ b/tests/etopo1_oper_an_fc_O320.yml @@ -1,12 +1,23 @@ grid: O320 +cldomain: g directions: 24 frequencies: 29 +fr1: 4.177248E-02 +ifre1: 3 bathymetry: ETOPO1 +lsubgrid: T advection: - timestep: 900 + irefra: 2 + timestep: 450 physics: + iphys: 1 timestep: 900 + llgcbz0: T + llnormagam: T + lmaskice: F + lciwa3: T + lciscal: T analysis.begin: 2022-12-31 12:00:00 analysis.end: 2023-01-01 00:00:00 @@ -17,6 +28,8 @@ begin: ${analysis.begin} end: ${forecast.end} nproma: 64 +lgribin: F +lgribout: F forcings: file: data/forcings/oper_an_12h_fc_2023010100_36h_O320.grib @@ -29,6 +42,10 @@ forcings: end: ${forecast.end} timestep: 01:00 +currents: + file: data/forcings/daily_average_surface_currents_ORAS6_20221231_20230102_O320.grib + input_step: 86400 + output: fields: name: @@ -39,6 +56,67 @@ output: - dwi # 10 metre wind direction - cdww # Coefficient of drag with waves - wind # 10 metre wind speed + - msqs # Mean square slope of waves + - shww # Significant height of wind waves + - shts # Significant height of total swell + - mdww # Mean direction of wind waves + - mdts # Mean direction of total swell + - mpww # Mean period of wind waves + - mpts # Mean period of total swell + - mp1 # Mean wave period based on first moment + - mp2 # Mean zero-crossing wave period + - wdw # Wave spectral directional width + - p1ww # Mean wave period based on first moment for wind waves + - p1ps # Mean wave period based on first moment for swell + - p2ww # Mean wave period based on second moment for wind waves + - p2ps # Mean wave period based on second moment for swell + - dwww # Wave spectral directional width for wind waves + - dwps # Wave spectral directional width for swell + - wsk # Wave spectral kurtosis + - bfi # Benjamin-Feir index + - wsp # Wave spectral peakedness + - wmb # Model bathymetry + - hmax # Maximum individual wave height + - tmax # Period corresponding to maximum individual wave height + - ust # U-component stokes drift + - vst # V-component stokes drift + - phioc # Normalised energy flux to ocean + - phiaw # Normalised energy flux to waves + - tauoc # Normalised momentum flux to ocean + - swh1 # Swell partition 1 wave height + - mwd1 # Swell partition 1 direction + - mwp1 # Swell partition 1 mean period + - swh2 # Swell partition 2 wave height + - mwd2 # Swell partition 2 direction + - mwp2 # Swell partition 2 mean period + - swh3 # Swell partition 3 wave height + - mwd3 # Swell partition 3 direction + - mwp3 # Swell partition 3 mean period + - sh10 # Wave height with period > 10s + - wss # Spectral skewness + - wefxm # Wave energy flux magnitude + - wefxd # Wave energy flux direction + - h1012 # Significant wave height 10<=T<=12 + - h1214 # Significant wave height 12<=T<=14 + - h1417 # Significant wave height 14<=T<=17 + - h1721 # Significant wave height 17<=T<=21 + - h2125 # Significant wave height 21<=T<=25 + - h2530 # Significant wave height 25<=T<=30 + - weta # Wave induced sea level correction + - wraf # Spectral width index + - wnslc # Number of freak waves events + - utaua # U-component atmospheric stress + - vtaua # V-component atmospheric stress + - utauo # U-component stress into oceans + - vtauo # V-component stress into oceans + - wphio # Turbulence energy flux into oceans + - tdcmax # Time domain maximum crest height + - tdhmax # Time domain maximum wave height + - stcmax # Space time maximum crest height + - sthmax # Space time maximum wave height + - sibm # Sea ice break up memory + - xwrs # U-component wave radiative stress to sea ice + - ywrs # V-component wave radiative stress to sea ice format: grib # (default : grib) or binary at: - timestep: 01:00 @@ -46,7 +124,7 @@ output: restart: format: binary # (default : binary) or grib at: - - time: ${end} + - time: ${analysis.end} validation: @@ -56,33 +134,33 @@ validation: # initial analysis time - name: swh time: 2022-12-31 12:00:00 - average: 0.1334550046812762E+01 + average: 3.872165538593810e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF55A51265EFA31'] + hashes: ['0x3FD8C827F0D2EF6F'] # initial forecast time - name: swh time: 2023-01-01 00:00:00 - average: 0.1522689283126691E+01 + average: 1.055434588222599e+00 relative_tolerance: 1.e-14 - hashes: ['0x3FF85CEF700FFB2D'] + hashes: ['0x3FF0E30F60F7BB8E'] - # 6h into forcast + # 6h into forecast - name: swh time: 2023-01-01 06:00:00 - average: 0.1602300108466806E+01 + average: 1.216411067836199e+00 relative_tolerance: 1.e-14 - hashes: ['0x3FF9A3057043DFFE'] + hashes: ['0x3FF3766B73AD9524'] - name: swh time: 2023-01-01 06:00:00 - minimum: 0.1582178271632631E-01 + minimum: 0.4390841548729450E-02 relative_tolerance: 1.e-14 - hashes: ['0x3F903395DD52FC09'] + hashes: ['0x3F71FC218DA8CCD8'] - name: swh time: 2023-01-01 06:00:00 - maximum: 0.7470872982664355E+01 + maximum: 0.6931936421923670E+01 relative_tolerance: 1.e-14 - hashes: ['0x401DE22C86F4741A'] + hashes: ['0x401BBA4D8A987424'] single_precision: @@ -96,23 +174,23 @@ validation: # initial forecast time - name: swh time: 2023-01-01 00:00:00 - average: 0.1522688508033752E+01 + average: 0.1522839903831482E+01 relative_tolerance: 1.e-6 - hashes: ['0x3FF85CEEA0000000'] + hashes: ['0x3FF85D8D60000000'] - # 6h into forcast + # 6h into forecast - name: swh time: 2023-01-01 06:00:00 - average: 0.1602300763130188E+01 + average: 0.1602508664131165E+01 relative_tolerance: 1.e-6 - hashes: ['0x3FF9A30620000000'] + hashes: ['0x3FF9A3E020000000'] - name: swh time: 2023-01-01 06:00:00 - minimum: 0.1582174561917782E-01 + minimum: 0.1582271233201027E-01 relative_tolerance: 1.e-6 - hashes: ['0x3F90339360000000'] + hashes: ['0x3F9033D440000000'] - name: swh time: 2023-01-01 06:00:00 - maximum: 0.7470870494842529E+01 + maximum: 0.7461367130279541E+01 relative_tolerance: 1.e-6 - hashes: ['0x401DE22BE0000000'] + hashes: ['0x401DD870A0000000'] diff --git a/tests/etopo1_oper_an_fc_O320_cy49r2.yml b/tests/etopo1_oper_an_fc_O320_cy49r2.yml deleted file mode 100644 index ac90d6e83..000000000 --- a/tests/etopo1_oper_an_fc_O320_cy49r2.yml +++ /dev/null @@ -1,122 +0,0 @@ -grid: O320 -directions: 24 -frequencies: 29 -bathymetry: ETOPO1 - -advection: - timestep: 450 -physics: - timestep: 900 - -analysis.begin: 2022-12-31 12:00:00 -analysis.end: 2023-01-01 00:00:00 -forecast.begin: 2023-01-01 00:00:00 -forecast.end: 2023-01-01 06:00:00 - -begin: ${analysis.begin} -end: ${forecast.end} - -nproma: 64 -irefra: 2 - -forcings: - file: data/forcings/oper_an_12h_fc_2023010100_36h_O320.grib - - at: - - begin: ${analysis.begin} - end: ${analysis.end} - timestep: 06:00 - - begin: ${forecast.begin} - end: ${forecast.end} - timestep: 01:00 - -currents: - input_step: 86400 - -output: - fields: - name: - - swh # Significant height of combined wind waves and swell - - mwd # Mean wave direction - - mwp # Mean wave period - - pp1d # Peak wave period - - dwi # 10 metre wind direction - - cdww # Coefficient of drag with waves - - wind # 10 metre wind speed - format: grib # (default : grib) or binary - at: - - timestep: 01:00 - - restart: - format: binary # (default : binary) or grib - at: - - time: ${end} - - -validation: - - double_precision: - - # initial analysis time - - name: swh - time: 2022-12-31 12:00:00 - average: 0.1334550046812762E+01 - relative_tolerance: 1.e-14 - hashes: ['0x3FF55A51265EFA31'] - - # initial forecast time - - name: swh - time: 2023-01-01 00:00:00 - average: 0.1522843092815532E+01 - relative_tolerance: 1.e-14 - hashes: ['0x3FF85D90B80950B2'] - - # 6h into forecast - - name: swh - time: 2023-01-01 06:00:00 - average: 0.1602510880624898E+01 - relative_tolerance: 1.e-14 - hashes: ['0x3FF9A3E272FC4A20'] - - name: swh - time: 2023-01-01 06:00:00 - minimum: 0.1582275045416100E-01 - relative_tolerance: 1.e-14 - hashes: ['0x3F9033D6CEEEFDF6'] - - name: swh - time: 2023-01-01 06:00:00 - maximum: 0.7461369035298830E+01 - relative_tolerance: 1.e-14 - hashes: ['0x401DD8711FD7FB70'] - - single_precision: - - # initial analysis time - - name: swh - time: 2022-12-31 12:00:00 - average: 0.1334386110305786E+01 - relative_tolerance: 1.e-6 - hashes: ['0x3FF559A540000000'] - - # initial forecast time - - name: swh - time: 2023-01-01 00:00:00 - average: 0.1522839903831482E+01 - relative_tolerance: 1.e-6 - hashes: ['0x3FF85D8D60000000'] - - # 6h into forecast - - name: swh - time: 2023-01-01 06:00:00 - average: 0.1602508664131165E+01 - relative_tolerance: 1.e-6 - hashes: ['0x3FF9A3E020000000'] - - name: swh - time: 2023-01-01 06:00:00 - minimum: 0.1582271233201027E-01 - relative_tolerance: 1.e-6 - hashes: ['0x3F9033D440000000'] - - name: swh - time: 2023-01-01 06:00:00 - maximum: 0.7461367130279541E+01 - relative_tolerance: 1.e-6 - hashes: ['0x401DD870A0000000'] diff --git a/tests/etopo1_oper_an_fc_O48.yml b/tests/etopo1_oper_an_fc_O48.yml index 253f2a5b0..ec2f2e404 100644 --- a/tests/etopo1_oper_an_fc_O48.yml +++ b/tests/etopo1_oper_an_fc_O48.yml @@ -1,12 +1,23 @@ grid: O48 -directions: 12 +cldomain: g +directions: 12 frequencies: 25 +fr1: 4.177248E-02 +ifre1: 1 bathymetry: ETOPO1 +lsubgrid: T advection: + irefra: 0 timestep: 900 physics: + iphys: 1 timestep: 900 + llgcbz0: T + llnormagam: T + lmaskice: F + lciwa3: T + lciscal: T analysis.begin: 2022-12-31 12:00:00 analysis.end: 2023-01-01 00:00:00 @@ -17,6 +28,8 @@ begin: ${analysis.begin} end: ${forecast.end} nproma: 32 +lgribin: F +lgribout: F forcings: file: data/forcings/oper_an_12h_fc_2023010100_36h_O48.grib @@ -24,7 +37,7 @@ forcings: at: - begin: ${analysis.begin} end: ${analysis.end} - timestep: 06:00 + timestep: 06:00 - begin: ${forecast.begin} end: ${forecast.end} timestep: 01:00 @@ -36,9 +49,70 @@ output: - mwd # Mean wave direction - mwp # Mean wave period - pp1d # Peak wave period - - dwi # 10 metre wind direction + - dwi # 10 metre wind direction - cdww # Coefficient of drag with waves - wind # 10 metre wind speed + - msqs # Mean square slope of waves + - shww # Significant height of wind waves + - shts # Significant height of total swell + - mdww # Mean direction of wind waves + - mdts # Mean direction of total swell + - mpww # Mean period of wind waves + - mpts # Mean period of total swell + - mp1 # Mean wave period based on first moment + - mp2 # Mean zero-crossing wave period + - wdw # Wave spectral directional width + - p1ww # Mean wave period based on first moment for wind waves + - p1ps # Mean wave period based on first moment for swell + - p2ww # Mean wave period based on second moment for wind waves + - p2ps # Mean wave period based on second moment for swell + - dwww # Wave spectral directional width for wind waves + - dwps # Wave spectral directional width for swell + - wsk # Wave spectral kurtosis + - bfi # Benjamin-Feir index + - wsp # Wave spectral peakedness + - wmb # Model bathymetry + - hmax # Maximum individual wave height + - tmax # Period corresponding to maximum individual wave height + - ust # U-component stokes drift + - vst # V-component stokes drift + - phioc # Normalised energy flux to ocean + - phiaw # Normalised energy flux to waves + - tauoc # Normalised momentum flux to ocean + - swh1 # Swell partition 1 wave height + - mwd1 # Swell partition 1 direction + - mwp1 # Swell partition 1 mean period + - swh2 # Swell partition 2 wave height + - mwd2 # Swell partition 2 direction + - mwp2 # Swell partition 2 mean period + - swh3 # Swell partition 3 wave height + - mwd3 # Swell partition 3 direction + - mwp3 # Swell partition 3 mean period + - sh10 # Wave height with period > 10s + - wss # Spectral skewness + - wefxm # Wave energy flux magnitude + - wefxd # Wave energy flux direction + - h1012 # Significant wave height 10<=T<=12 + - h1214 # Significant wave height 12<=T<=14 + - h1417 # Significant wave height 14<=T<=17 + - h1721 # Significant wave height 17<=T<=21 + - h2125 # Significant wave height 21<=T<=25 + - h2530 # Significant wave height 25<=T<=30 + - weta # Wave induced sea level correction + - wraf # Spectral width index + - wnslc # Number of freak waves events + - utaua # U-component atmospheric stress + - vtaua # V-component atmospheric stress + - utauo # U-component stress into oceans + - vtauo # V-component stress into oceans + - wphio # Turbulence energy flux into oceans + - tdcmax # Time domain maximum crest height + - tdhmax # Time domain maximum wave height + - stcmax # Space time maximum crest height + - sthmax # Space time maximum wave height + - sibm # Sea ice break up memory + - xwrs # U-component wave radiative stress to sea ice + - ywrs # V-component wave radiative stress to sea ice format: grib # (default : grib) or binary at: - timestep: 01:00 @@ -46,7 +120,7 @@ output: restart: format: binary # (default : binary) or grib at: - - time: ${end} + - time: ${analysis.end} validation: @@ -56,33 +130,33 @@ validation: # initial analysis time - name: swh time: 2022-12-31 12:00:00 - average: 0.1337362278436861E+01 + average: 3.830924202241996e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF565D5FD0CA556'] + hashes: ['0x3FD88496120D56DC'] # initial forecast time - name: swh time: 2023-01-01 00:00:00 - average: 0.1559703647315126E+01 + average: 1.059076530679594e+00 relative_tolerance: 1.e-14 - hashes: ['0x3FF8F48BCFCAB9E6'] + hashes: ['0x3FF0F1FA3B73AE11'] - # 6h into forcast + # 6h into forecast - name: swh time: 2023-01-01 06:00:00 - average: 0.1644591617144662E+01 + average: 1.223563306057211e+00 relative_tolerance: 1.e-14 - hashes: ['0x3FFA503F4CAE97DB'] + hashes: ['0x3FF393B71E019F2A'] - name: swh time: 2023-01-01 06:00:00 - minimum: 0.1938981429960242E-01 + minimum: 0.4326539111291028E-02 relative_tolerance: 1.e-14 - hashes: ['0x3F93DAEC692B5224'] + hashes: ['0x3F71B8B47FCE4627'] - name: swh time: 2023-01-01 06:00:00 - maximum: 0.6986921476900227E+01 + maximum: 6.511460010823870e+00 relative_tolerance: 1.e-14 - hashes: ['0x401BF29B8B2C06A6'] + hashes: ['0x401A0BBC2C4ECD23'] single_precision: @@ -96,23 +170,23 @@ validation: # initial forecast time - name: swh time: 2023-01-01 00:00:00 - average: 0.1559746265411377E+01 + average: 0.1549576163291931E+01 relative_tolerance: 1.e-6 - hashes: ['0x3FF8F4B880000000'] + hashes: ['0x3FF8CB1060000000'] - # 6h into forcast + # 6h into forecast - name: swh time: 2023-01-01 06:00:00 - average: 0.1644564986228943E+01 + average: 0.1632413744926453E+01 relative_tolerance: 1.e-6 - hashes: ['0x3FFA502360000000'] + hashes: ['0x3FFA1E5DE0000000'] - name: swh time: 2023-01-01 06:00:00 - minimum: 0.1938981935381889E-01 + minimum: 0.1905178464949131E-01 relative_tolerance: 1.e-6 - hashes: ['0x3F93DAECC0000000'] + hashes: ['0x3F93824FA0000000'] - name: swh time: 2023-01-01 06:00:00 - maximum: 0.6986917018890381E+01 + maximum: 0.6807114124298096E+01 relative_tolerance: 1.e-6 - hashes: ['0x401BF29A60000000'] + hashes: ['0x401B3A7C20000000'] diff --git a/tests/etopo1_oper_an_fc_O48_cy49r1.yml b/tests/etopo1_oper_an_fc_O48_cy49r1.yml deleted file mode 100644 index 1e5cce10f..000000000 --- a/tests/etopo1_oper_an_fc_O48_cy49r1.yml +++ /dev/null @@ -1,120 +0,0 @@ -grid: O48 -directions: 12 -frequencies: 25 -bathymetry: ETOPO1 - -advection: - timestep: 900 -physics: - timestep: 900 - -analysis.begin: 2022-12-31 12:00:00 -analysis.end: 2023-01-01 00:00:00 -forecast.begin: 2023-01-01 00:00:00 -forecast.end: 2023-01-01 06:00:00 - -begin: ${analysis.begin} -end: ${forecast.end} - -nproma: 32 -llgcbz0: T -llnormagam: T - -forcings: - file: data/forcings/oper_an_12h_fc_2023010100_36h_O48.grib - - at: - - begin: ${analysis.begin} - end: ${analysis.end} - timestep: 06:00 - - begin: ${forecast.begin} - end: ${forecast.end} - timestep: 01:00 - -output: - fields: - name: - - swh # Significant height of combined wind waves and swell - - mwd # Mean wave direction - - mwp # Mean wave period - - pp1d # Peak wave period - - dwi # 10 metre wind direction - - cdww # Coefficient of drag with waves - - wind # 10 metre wind speed - format: grib # (default : grib) or binary - at: - - timestep: 01:00 - - restart: - format: binary # (default : binary) or grib - at: - - time: ${end} - - -validation: - - double_precision: - - # initial analysis time - - name: swh - time: 2022-12-31 12:00:00 - average: 0.1337362278436861E+01 - relative_tolerance: 1.e-14 - hashes: ['0x3FF565D5FD0CA556'] - - # initial forecast time - - name: swh - time: 2023-01-01 00:00:00 - average: 0.1549601083318924E+01 - relative_tolerance: 1.e-14 - hashes: ['0x3FF8CB2A816B3716'] - - # 6h into forecast - - name: swh - time: 2023-01-01 06:00:00 - average: 0.1632568966056613E+01 - relative_tolerance: 1.e-14 - hashes: ['0x3FFA1F00A2DAD7D0'] - - name: swh - time: 2023-01-01 06:00:00 - minimum: 0.1901901685126460E-01 - relative_tolerance: 1.e-14 - hashes: ['0x3F9379B89D83551B'] - - name: swh - time: 2023-01-01 06:00:00 - maximum: 0.6807117063672430E+01 - relative_tolerance: 1.e-14 - hashes: ['0x401B3A7CE5421109'] - - single_precision: - - # initial analysis time - - name: swh - time: 2022-12-31 12:00:00 - average: 0.1337408304214478E+01 - relative_tolerance: 1.e-6 - hashes: ['0x3FF5660640000000'] - - # initial forecast time - - name: swh - time: 2023-01-01 00:00:00 - average: 0.1549641370773315E+01 - relative_tolerance: 1.e-6 - hashes: ['0x3FF8CB54C0000000'] - - # 6h into forecast - - name: swh - time: 2023-01-01 06:00:00 - average: 0.1632539391517639E+01 - relative_tolerance: 1.e-6 - hashes: ['0x3FFA1EE1A0000000'] - - name: swh - time: 2023-01-01 06:00:00 - minimum: 0.1901897042989731E-01 - relative_tolerance: 1.e-6 - hashes: ['0x3F9379B580000000'] - - name: swh - time: 2023-01-01 06:00:00 - maximum: 0.6807114124298096E+01 - relative_tolerance: 1.e-6 - hashes: ['0x401B3A7C20000000'] diff --git a/tests/etopo1_oper_an_fc_O48_cy50r1.yml b/tests/etopo1_oper_an_fc_O48_cy50r1.yml deleted file mode 100644 index 8a1d94e6e..000000000 --- a/tests/etopo1_oper_an_fc_O48_cy50r1.yml +++ /dev/null @@ -1,122 +0,0 @@ -grid: O48 -directions: 12 -frequencies: 25 -bathymetry: ETOPO1 - -advection: - timestep: 900 -physics: - timestep: 900 - -analysis.begin: 2022-12-31 12:00:00 -analysis.end: 2023-01-01 00:00:00 -forecast.begin: 2023-01-01 00:00:00 -forecast.end: 2023-01-01 06:00:00 - -begin: ${analysis.begin} -end: ${forecast.end} - -nproma: 32 -llgcbz0: T -llnormagam: T -lciwa3: T -lciscal: T - -forcings: - file: data/forcings/oper_an_12h_fc_2023010100_36h_O48.grib - - at: - - begin: ${analysis.begin} - end: ${analysis.end} - timestep: 06:00 - - begin: ${forecast.begin} - end: ${forecast.end} - timestep: 01:00 - -output: - fields: - name: - - swh # Significant height of combined wind waves and swell - - mwd # Mean wave direction - - mwp # Mean wave period - - pp1d # Peak wave period - - dwi # 10 metre wind direction - - cdww # Coefficient of drag with waves - - wind # 10 metre wind speed - format: grib # (default : grib) or binary - at: - - timestep: 01:00 - - restart: - format: binary # (default : binary) or grib - at: - - time: ${end} - - -validation: - - double_precision: - - # initial analysis time - - name: swh - time: 2022-12-31 12:00:00 - average: 0.1337362278436861E+01 - relative_tolerance: 1.e-14 - hashes: ['0x3FF565D5FD0CA556'] - - # initial forecast time - - name: swh - time: 2023-01-01 00:00:00 - average: 0.1549542256416082E+01 - relative_tolerance: 1.e-14 - hashes: ['0x3FF8CAECD2313BDF'] - - # 6h into forecast - - name: swh - time: 2023-01-01 06:00:00 - average: 0.1632449648145021E+01 - relative_tolerance: 1.e-14 - hashes: ['0x3FFA1E8385B264A5'] - - name: swh - time: 2023-01-01 06:00:00 - minimum: 0.1905182728883706E-01 - relative_tolerance: 1.e-14 - hashes: ['0x3F9382527C89D368'] - - name: swh - time: 2023-01-01 06:00:00 - maximum: 0.6807117063618366E+01 - relative_tolerance: 1.e-14 - hashes: ['0x401B3A7CE5412342'] - - single_precision: - - # initial analysis time - - name: swh - time: 2022-12-31 12:00:00 - average: 0.1337408304214478E+01 - relative_tolerance: 1.e-6 - hashes: ['0x3FF5660640000000'] - - # initial forecast time - - name: swh - time: 2023-01-01 00:00:00 - average: 0.1549576163291931E+01 - relative_tolerance: 1.e-6 - hashes: ['0x3FF8CB1060000000'] - - # 6h into forecast - - name: swh - time: 2023-01-01 06:00:00 - average: 0.1632413744926453E+01 - relative_tolerance: 1.e-6 - hashes: ['0x3FFA1E5DE0000000'] - - name: swh - time: 2023-01-01 06:00:00 - minimum: 0.1905178464949131E-01 - relative_tolerance: 1.e-6 - hashes: ['0x3F93824FA0000000'] - - name: swh - time: 2023-01-01 06:00:00 - maximum: 0.6807114124298096E+01 - relative_tolerance: 1.e-6 - hashes: ['0x401B3A7C20000000'] diff --git a/tests/etopo1_oper_an_fc_O48_iphys_0.yml b/tests/etopo1_oper_an_fc_O48_iphys_0.yml index 2f80eb428..ec987bd2e 100644 --- a/tests/etopo1_oper_an_fc_O48_iphys_0.yml +++ b/tests/etopo1_oper_an_fc_O48_iphys_0.yml @@ -1,12 +1,23 @@ grid: O48 +cldomain: g directions: 12 frequencies: 25 +fr1: 4.177248E-02 +ifre1: 1 bathymetry: ETOPO1 +lsubgrid: T advection: + irefra: 0 timestep: 900 physics: + iphys: 0 timestep: 900 + llgcbz0: T + llnormagam: T + lmaskice: F + lciwa3: T + lciscal: T analysis.begin: 2022-12-31 12:00:00 analysis.end: 2023-01-01 00:00:00 @@ -16,8 +27,9 @@ forecast.end: 2023-01-01 06:00:00 begin: ${analysis.begin} end: ${forecast.end} -nproma: 24 -iphys: 0 +nproma: 32 +lgribin: F +lgribout: F forcings: file: data/forcings/oper_an_12h_fc_2023010100_36h_O48.grib @@ -25,7 +37,7 @@ forcings: at: - begin: ${analysis.begin} end: ${analysis.end} - timestep: 06:00 + timestep: 06:00 - begin: ${forecast.begin} end: ${forecast.end} timestep: 01:00 @@ -37,7 +49,7 @@ output: - mwd # Mean wave direction - mwp # Mean wave period - pp1d # Peak wave period - - dwi # 10 metre wind direction + - dwi # 10 metre wind direction - cdww # Coefficient of drag with waves - wind # 10 metre wind speed format: grib # (default : grib) or binary @@ -47,7 +59,7 @@ output: restart: format: binary # (default : binary) or grib at: - - time: ${end} + - time: ${analysis.end} validation: @@ -57,33 +69,33 @@ validation: # initial analysis time - name: swh time: 2022-12-31 12:00:00 - average: 0.1337362278436861E+01 + average: 3.830924202241996e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF565D5FD0CA556'] + hashes: ['0x3FD88496120D56DC'] # initial forecast time - name: swh time: 2023-01-01 00:00:00 - average: 0.1490252638493936E+01 + average: 1.120570318637665e+00 relative_tolerance: 1.e-14 - hashes: ['0x3FF7D8132691BF26'] + hashes: ['0x3FF1EDDB2476AC52'] - # 6h into forcast + # 6h into forecast - name: swh time: 2023-01-01 06:00:00 - average: 0.1549563711889876E+01 + average: 1.252364915640471e+00 relative_tolerance: 1.e-14 - hashes: ['0x3FF8CB03519A2A87'] + hashes: ['0x3FF409AFCB355685'] - name: swh time: 2023-01-01 06:00:00 - minimum: 0.2299725580886074E-01 + minimum: 4.326539111291028e-03 relative_tolerance: 1.e-14 - hashes: ['0x3F978C97B663204D'] + hashes: ['0x3F71B8B47FCE4627'] - name: swh time: 2023-01-01 06:00:00 - maximum: 0.7301215285182999E+01 + maximum: 7.335172288887112e+00 relative_tolerance: 1.e-14 - hashes: ['0x401D3471C79BAA49'] + hashes: ['0x401D5737678D2EB4'] single_precision: @@ -101,7 +113,7 @@ validation: relative_tolerance: 1.e-6 hashes: ['0x3FF7D816C0000000'] - # 6h into forcast + # 6h into forecast - name: swh time: 2023-01-01 06:00:00 average: 0.1549521923065186E+01 diff --git a/tests/etopo1_oper_an_fc_O640.yml b/tests/etopo1_oper_an_fc_O640.yml index 0e767dbbe..0158808d3 100644 --- a/tests/etopo1_oper_an_fc_O640.yml +++ b/tests/etopo1_oper_an_fc_O640.yml @@ -1,12 +1,26 @@ grid: O640 +cldomain: g directions: 36 frequencies: 29 +fr1: 4.177248E-02 +ifre1: 3 bathymetry: ETOPO1 +lsubgrid: T advection: - timestep: 450 + irefra: 2 + timestep: 720 + fast_waves: + timestep: 360 + max_frequency: 4 physics: - timestep: 450 + iphys: 1 + timestep: 720 + llgcbz0: T + llnormagam: T + lmaskice: F + lciwa3: T + lciscal: T analysis.begin: 2022-12-31 12:00:00 analysis.end: 2023-01-01 00:00:00 @@ -17,6 +31,8 @@ begin: ${analysis.begin} end: ${forecast.end} nproma: 24 +lgribin: F +lgribout: F forcings: file: data/forcings/oper_an_12h_fc_2023010100_36h_O640.grib @@ -29,6 +45,10 @@ forcings: end: ${forecast.end} timestep: 01:00 +currents: + file: data/forcings/daily_average_surface_currents_ORAS6_20221231_20230102_O640.grib + input_step: 86400 + output: fields: name: @@ -46,7 +66,7 @@ output: restart: format: binary # (default : binary) or grib at: - - time: ${end} + - time: ${analysis.end} validation: @@ -56,30 +76,30 @@ validation: # initial analysis time - name: swh time: 2022-12-31 12:00:00 - average: 0.1333763376011752E+01 + average: 3.875267447586148e-01 relative_tolerance: 1.e-14 - hashes: ['0x3FF5571844092B1F'] + hashes: ['0x3FD8CD3CF9C411DC'] # initial forecast time - name: swh time: 2023-01-01 00:00:00 - average: 0.1505943670306413E+01 + average: 1.054427510278385e+00 relative_tolerance: 1.e-14 - hashes: ['0x3FF8185863D95918'] + hashes: ['0x3FF0DEEF618A5FB6'] - # 6h into forcast + # 6h into forecast - name: swh time: 2023-01-01 06:00:00 - average: 0.1586225037945644E+01 + average: 1.213609084519249e+00 relative_tolerance: 1.e-14 - hashes: ['0x3FF9612D81612A98'] + hashes: ['0x3FF36AF15C023804'] - name: swh time: 2023-01-01 06:00:00 - minimum: 0.1484097208178847E-01 + minimum: 0.4387775653038153E-02 relative_tolerance: 1.e-14 - hashes: ['0x3F8E64F18DDB6741'] + hashes: ['0x3F71F8EA8EE967F6'] - name: swh time: 2023-01-01 06:00:00 - maximum: 0.7616438850798844E+01 + maximum: 0.7122682487149604E+01 relative_tolerance: 1.e-14 - hashes: ['0x401E773BBF00A8D1'] + hashes: ['0x401C7DA07A5865E0'] diff --git a/tests/etopo1_oper_an_fc_grib_restart_O320.yml b/tests/etopo1_oper_an_fc_grib_restart_O320.yml new file mode 100644 index 000000000..0945ee6d3 --- /dev/null +++ b/tests/etopo1_oper_an_fc_grib_restart_O320.yml @@ -0,0 +1,196 @@ +grid: O320 +cldomain: g +directions: 24 +frequencies: 29 +fr1: 4.177248E-02 +ifre1: 3 +bathymetry: ETOPO1 +lsubgrid: T + +advection: + irefra: 2 + timestep: 450 +physics: + iphys: 1 + timestep: 900 + llgcbz0: T + llnormagam: T + lmaskice: F + lciwa3: T + lciscal: T + +analysis.begin: 2022-12-31 12:00:00 +analysis.end: 2023-01-01 00:00:00 +forecast.begin: 2023-01-01 00:00:00 +forecast.end: 2023-01-01 06:00:00 + +begin: ${analysis.begin} +end: ${forecast.end} + +nproma: 64 +lgribin: T +lgribout: T + +forcings: + file: data/forcings/oper_an_12h_fc_2023010100_36h_O320.grib + + at: + - begin: ${analysis.begin} + end: ${analysis.end} + timestep: 06:00 + - begin: ${forecast.begin} + end: ${forecast.end} + timestep: 01:00 + +currents: + file: data/forcings/daily_average_surface_currents_ORAS6_20221231_20230102_O320.grib + input_step: 86400 + +output: + fields: + name: + - swh # Significant height of combined wind waves and swell + - mwd # Mean wave direction + - mwp # Mean wave period + - pp1d # Peak wave period + - dwi # 10 metre wind direction + - cdww # Coefficient of drag with waves + - wind # 10 metre wind speed + - msqs # Mean square slope of waves + - shww # Significant height of wind waves + - shts # Significant height of total swell + - mdww # Mean direction of wind waves + - mdts # Mean direction of total swell + - mpww # Mean period of wind waves + - mpts # Mean period of total swell + - mp1 # Mean wave period based on first moment + - mp2 # Mean zero-crossing wave period + - wdw # Wave spectral directional width + - p1ww # Mean wave period based on first moment for wind waves + - p1ps # Mean wave period based on first moment for swell + - p2ww # Mean wave period based on second moment for wind waves + - p2ps # Mean wave period based on second moment for swell + - dwww # Wave spectral directional width for wind waves + - dwps # Wave spectral directional width for swell + - wsk # Wave spectral kurtosis + - bfi # Benjamin-Feir index + - wsp # Wave spectral peakedness + - wmb # Model bathymetry + - hmax # Maximum individual wave height + - tmax # Period corresponding to maximum individual wave height + - ust # U-component stokes drift + - vst # V-component stokes drift + - phioc # Normalised energy flux to ocean + - phiaw # Normalised energy flux to waves + - tauoc # Normalised momentum flux to ocean + - swh1 # Swell partition 1 wave height + - mwd1 # Swell partition 1 direction + - mwp1 # Swell partition 1 mean period + - swh2 # Swell partition 2 wave height + - mwd2 # Swell partition 2 direction + - mwp2 # Swell partition 2 mean period + - swh3 # Swell partition 3 wave height + - mwd3 # Swell partition 3 direction + - mwp3 # Swell partition 3 mean period + - sh10 # Wave height with period > 10s + - wss # Spectral skewness + - wefxm # Wave energy flux magnitude + - wefxd # Wave energy flux direction + - h1012 # Significant wave height 10<=T<=12 + - h1214 # Significant wave height 12<=T<=14 + - h1417 # Significant wave height 14<=T<=17 + - h1721 # Significant wave height 17<=T<=21 + - h2125 # Significant wave height 21<=T<=25 + - h2530 # Significant wave height 25<=T<=30 + - weta # Wave induced sea level correction + - wraf # Spectral width index + - wnslc # Number of freak waves events + - utaua # U-component atmospheric stress + - vtaua # V-component atmospheric stress + - utauo # U-component stress into oceans + - vtauo # V-component stress into oceans + - wphio # Turbulence energy flux into oceans + - tdcmax # Time domain maximum crest height + - tdhmax # Time domain maximum wave height + - stcmax # Space time maximum crest height + - sthmax # Space time maximum wave height + - sibm # Sea ice break up memory + - xwrs # U-component wave radiative stress to sea ice + - ywrs # V-component wave radiative stress to sea ice + format: grib # (default : grib) or binary + at: + - timestep: 01:00 + + restart: + format: binary # (default : binary) or grib + at: + - time: ${analysis.end} + + +validation: + + double_precision: + + # initial analysis time + - name: swh + time: 2022-12-31 12:00:00 + average: 3.740910048130137e-01 + relative_tolerance: 1.e-14 + hashes: ['0x3FD7F11B65D9943B'] + + # initial forecast time + - name: swh + time: 2023-01-01 00:00:00 + average: 1.052354948638135e+00 + relative_tolerance: 1.e-14 + hashes: ['0x3FF0D6722482F3EB'] + + # 6h into forecast + - name: swh + time: 2023-01-01 06:00:00 + average: 1.214298695088632e+00 + relative_tolerance: 1.e-14 + hashes: ['0x3FF36DC477EFB2C9'] + - name: swh + time: 2023-01-01 06:00:00 + minimum: 0.4390841548729450E-02 + relative_tolerance: 1.e-14 + hashes: ['0x3F71FC218DA8CCD8'] + - name: swh + time: 2023-01-01 06:00:00 + maximum: 6.929218100210148e+00 + relative_tolerance: 1.e-14 + hashes: ['0x401BB784F31D03EE'] + + single_precision: + + # initial analysis time + - name: swh + time: 2022-12-31 12:00:00 + average: 0.1334386110305786E+01 + relative_tolerance: 1.e-6 + hashes: ['0x3FF559A540000000'] + + # initial forecast time + - name: swh + time: 2023-01-01 00:00:00 + average: 0.1522839903831482E+01 + relative_tolerance: 1.e-6 + hashes: ['0x3FF85D8D60000000'] + + # 6h into forecast + - name: swh + time: 2023-01-01 06:00:00 + average: 0.1602508664131165E+01 + relative_tolerance: 1.e-6 + hashes: ['0x3FF9A3E020000000'] + - name: swh + time: 2023-01-01 06:00:00 + minimum: 0.1582271233201027E-01 + relative_tolerance: 1.e-6 + hashes: ['0x3F9033D440000000'] + - name: swh + time: 2023-01-01 06:00:00 + maximum: 0.7461367130279541E+01 + relative_tolerance: 1.e-6 + hashes: ['0x401DD870A0000000'] diff --git a/tests/etopo1_oper_an_fc_grib_restart_O48.yml b/tests/etopo1_oper_an_fc_grib_restart_O48.yml new file mode 100644 index 000000000..9e1e93047 --- /dev/null +++ b/tests/etopo1_oper_an_fc_grib_restart_O48.yml @@ -0,0 +1,192 @@ +grid: O48 +cldomain: g +directions: 12 +frequencies: 25 +fr1: 4.177248E-02 +ifre1: 1 +bathymetry: ETOPO1 +lsubgrid: T + +advection: + irefra: 0 + timestep: 900 +physics: + iphys: 1 + timestep: 900 + llgcbz0: T + llnormagam: T + lmaskice: F + lciwa3: T + lciscal: T + +analysis.begin: 2022-12-31 12:00:00 +analysis.end: 2023-01-01 00:00:00 +forecast.begin: 2023-01-01 00:00:00 +forecast.end: 2023-01-01 06:00:00 + +begin: ${analysis.begin} +end: ${forecast.end} + +nproma: 32 +lgribin: T +lgribout: T + +forcings: + file: data/forcings/oper_an_12h_fc_2023010100_36h_O48.grib + + at: + - begin: ${analysis.begin} + end: ${analysis.end} + timestep: 06:00 + - begin: ${forecast.begin} + end: ${forecast.end} + timestep: 01:00 + +output: + fields: + name: + - swh # Significant height of combined wind waves and swell + - mwd # Mean wave direction + - mwp # Mean wave period + - pp1d # Peak wave period + - dwi # 10 metre wind direction + - cdww # Coefficient of drag with waves + - wind # 10 metre wind speed + - msqs # Mean square slope of waves + - shww # Significant height of wind waves + - shts # Significant height of total swell + - mdww # Mean direction of wind waves + - mdts # Mean direction of total swell + - mpww # Mean period of wind waves + - mpts # Mean period of total swell + - mp1 # Mean wave period based on first moment + - mp2 # Mean zero-crossing wave period + - wdw # Wave spectral directional width + - p1ww # Mean wave period based on first moment for wind waves + - p1ps # Mean wave period based on first moment for swell + - p2ww # Mean wave period based on second moment for wind waves + - p2ps # Mean wave period based on second moment for swell + - dwww # Wave spectral directional width for wind waves + - dwps # Wave spectral directional width for swell + - wsk # Wave spectral kurtosis + - bfi # Benjamin-Feir index + - wsp # Wave spectral peakedness + - wmb # Model bathymetry + - hmax # Maximum individual wave height + - tmax # Period corresponding to maximum individual wave height + - ust # U-component stokes drift + - vst # V-component stokes drift + - phioc # Normalised energy flux to ocean + - phiaw # Normalised energy flux to waves + - tauoc # Normalised momentum flux to ocean + - swh1 # Swell partition 1 wave height + - mwd1 # Swell partition 1 direction + - mwp1 # Swell partition 1 mean period + - swh2 # Swell partition 2 wave height + - mwd2 # Swell partition 2 direction + - mwp2 # Swell partition 2 mean period + - swh3 # Swell partition 3 wave height + - mwd3 # Swell partition 3 direction + - mwp3 # Swell partition 3 mean period + - sh10 # Wave height with period > 10s + - wss # Spectral skewness + - wefxm # Wave energy flux magnitude + - wefxd # Wave energy flux direction + - h1012 # Significant wave height 10<=T<=12 + - h1214 # Significant wave height 12<=T<=14 + - h1417 # Significant wave height 14<=T<=17 + - h1721 # Significant wave height 17<=T<=21 + - h2125 # Significant wave height 21<=T<=25 + - h2530 # Significant wave height 25<=T<=30 + - weta # Wave induced sea level correction + - wraf # Spectral width index + - wnslc # Number of freak waves events + - utaua # U-component atmospheric stress + - vtaua # V-component atmospheric stress + - utauo # U-component stress into oceans + - vtauo # V-component stress into oceans + - wphio # Turbulence energy flux into oceans + - tdcmax # Time domain maximum crest height + - tdhmax # Time domain maximum wave height + - stcmax # Space time maximum crest height + - sthmax # Space time maximum wave height + - sibm # Sea ice break up memory + - xwrs # U-component wave radiative stress to sea ice + - ywrs # V-component wave radiative stress to sea ice + format: grib # (default : grib) or binary + at: + - timestep: 01:00 + + restart: + format: binary # (default : binary) or grib + at: + - time: ${analysis.end} + + +validation: + + double_precision: + + # initial analysis time + - name: swh + time: 2022-12-31 12:00:00 + average: 4.059280839077075e-01 + relative_tolerance: 1.e-14 + hashes: ['0x3FD9FAB9C93A56CC'] + + # initial forecast time + - name: swh + time: 2023-01-01 00:00:00 + average: 1.063233424309939e+00 + relative_tolerance: 1.e-14 + hashes: ['0x3FF103010D16CDF0'] + + # 6h into forecast + - name: swh + time: 2023-01-01 06:00:00 + average: 1.226326314190551e+00 + relative_tolerance: 1.e-14 + hashes: ['0x3FF39F08575AC31F'] + - name: swh + time: 2023-01-01 06:00:00 + minimum: 4.326539111291028e-03 + relative_tolerance: 1.e-14 + hashes: ['0x3F71B8B47FCE4627'] + - name: swh + time: 2023-01-01 06:00:00 + maximum: 6.512645602565808e+00 + relative_tolerance: 1.e-14 + hashes: ['0x401A0CF2F805D55C'] + + single_precision: + + # initial analysis time + - name: swh + time: 2022-12-31 12:00:00 + average: 0.1337408304214478E+01 + relative_tolerance: 1.e-6 + hashes: ['0x3FF5660640000000'] + + # initial forecast time + - name: swh + time: 2023-01-01 00:00:00 + average: 0.1549576163291931E+01 + relative_tolerance: 1.e-6 + hashes: ['0x3FF8CB1060000000'] + + # 6h into forecast + - name: swh + time: 2023-01-01 06:00:00 + average: 0.1632413744926453E+01 + relative_tolerance: 1.e-6 + hashes: ['0x3FFA1E5DE0000000'] + - name: swh + time: 2023-01-01 06:00:00 + minimum: 0.1905178464949131E-01 + relative_tolerance: 1.e-6 + hashes: ['0x3F93824FA0000000'] + - name: swh + time: 2023-01-01 06:00:00 + maximum: 0.6807114124298096E+01 + relative_tolerance: 1.e-6 + hashes: ['0x401B3A7C20000000'] diff --git a/tests/etopo1_oper_an_fc_grib_restart_O96.yml b/tests/etopo1_oper_an_fc_grib_restart_O96.yml new file mode 100644 index 000000000..dc82d1479 --- /dev/null +++ b/tests/etopo1_oper_an_fc_grib_restart_O96.yml @@ -0,0 +1,196 @@ +grid: O96 +cldomain: g +directions: 24 +frequencies: 25 +fr1: 4.177248E-02 +ifre1: 1 +bathymetry: ETOPO1 +lsubgrid: T + +advection: + irefra: 2 + timestep: 1200 + fast_waves: + timestep: 600 + max_frequency: 3 +physics: + iphys: 1 + timestep: 1200 + llgcbz0: T + llnormagam: T + lmaskice: F + lciwa3: T + lciscal: T + +analysis.begin: 2022-12-31 12:00:00 +analysis.end: 2023-01-01 00:00:00 +forecast.begin: 2023-01-01 00:00:00 +forecast.end: 2023-01-01 06:00:00 + +begin: ${analysis.begin} +end: ${forecast.end} + +nproma: 32 +lgribin: T +lgribout: T + +forcings: + # For testing the internal interpolation scheme in ecWAM, we do not match the wind forcing resolution with the model grid resolution + file: data/forcings/oper_an_12h_fc_2023010100_36h_O48.grib + + at: + - begin: ${analysis.begin} + end: ${analysis.end} + timestep: 06:00 + - begin: ${forecast.begin} + end: ${forecast.end} + timestep: 01:00 + +output: + fields: + name: + - swh # Significant height of combined wind waves and swell + - mwd # Mean wave direction + - mwp # Mean wave period + - pp1d # Peak wave period + - dwi # 10 metre wind direction + - cdww # Coefficient of drag with waves + - wind # 10 metre wind speed + - msqs # Mean square slope of waves + - shww # Significant height of wind waves + - shts # Significant height of total swell + - mdww # Mean direction of wind waves + - mdts # Mean direction of total swell + - mpww # Mean period of wind waves + - mpts # Mean period of total swell + - mp1 # Mean wave period based on first moment + - mp2 # Mean zero-crossing wave period + - wdw # Wave spectral directional width + - p1ww # Mean wave period based on first moment for wind waves + - p1ps # Mean wave period based on first moment for swell + - p2ww # Mean wave period based on second moment for wind waves + - p2ps # Mean wave period based on second moment for swell + - dwww # Wave spectral directional width for wind waves + - dwps # Wave spectral directional width for swell + - wsk # Wave spectral kurtosis + - bfi # Benjamin-Feir index + - wsp # Wave spectral peakedness + - wmb # Model bathymetry + - hmax # Maximum individual wave height + - tmax # Period corresponding to maximum individual wave height + - ust # U-component stokes drift + - vst # V-component stokes drift + - phioc # Normalised energy flux to ocean + - phiaw # Normalised energy flux to waves + - tauoc # Normalised momentum flux to ocean + - swh1 # Swell partition 1 wave height + - mwd1 # Swell partition 1 direction + - mwp1 # Swell partition 1 mean period + - swh2 # Swell partition 2 wave height + - mwd2 # Swell partition 2 direction + - mwp2 # Swell partition 2 mean period + - swh3 # Swell partition 3 wave height + - mwd3 # Swell partition 3 direction + - mwp3 # Swell partition 3 mean period + - sh10 # Wave height with period > 10s + - wss # Spectral skewness + - wefxm # Wave energy flux magnitude + - wefxd # Wave energy flux direction + - h1012 # Significant wave height 10<=T<=12 + - h1214 # Significant wave height 12<=T<=14 + - h1417 # Significant wave height 14<=T<=17 + - h1721 # Significant wave height 17<=T<=21 + - h2125 # Significant wave height 21<=T<=25 + - h2530 # Significant wave height 25<=T<=30 + - weta # Wave induced sea level correction + - wraf # Spectral width index + - wnslc # Number of freak waves events + - utaua # U-component atmospheric stress + - vtaua # V-component atmospheric stress + - utauo # U-component stress into oceans + - vtauo # V-component stress into oceans + - wphio # Turbulence energy flux into oceans + - tdcmax # Time domain maximum crest height + - tdhmax # Time domain maximum wave height + - stcmax # Space time maximum crest height + - sthmax # Space time maximum wave height + - sibm # Sea ice break up memory + - xwrs # U-component wave radiative stress to sea ice + - ywrs # V-component wave radiative stress to sea ice + format: grib # (default : grib) or binary + at: + - timestep: 01:00 + + restart: + format: binary # (default : binary) or grib + at: + - time: ${analysis.end} + + +validation: + + double_precision: + + # initial analysis time + - name: swh + time: 2022-12-31 12:00:00 + average: 4.039332563619328e-01 + relative_tolerance: 1.e-14 + hashes: ['0x3FD9DA0ADF75D79E'] + + # initial forecast time + - name: swh + time: 2023-01-01 00:00:00 + average: 9.740975537893722e-01 + relative_tolerance: 1.e-14 + hashes: ['0x3FEF2BCEA2147251'] + + # 6h into forecast + - name: swh + time: 2023-01-01 06:00:00 + average: 1.116009510311353e+00 + relative_tolerance: 1.e-14 + hashes: ['0x3FF1DB2CC9CCFEEA'] + - name: swh + time: 2023-01-01 06:00:00 + minimum: 4.326592382617202e-03 + relative_tolerance: 1.e-14 + hashes: ['0x3F71B8C2CC955ADC'] + - name: swh + time: 2023-01-01 06:00:00 + maximum: 6.288749015943960e+00 + relative_tolerance: 1.e-14 + hashes: ['0x401927ADD270ED0C'] + + single_precision: + + # initial analysis time + - name: swh + time: 2022-12-31 12:00:00 + average: 4.039332563619328e-01 + relative_tolerance: 1.e-14 + hashes: ['0x3FD9DA0ADF75D79E'] + + # initial forecast time + - name: swh + time: 2023-01-01 00:00:00 + average: 9.740975537893722e-01 + relative_tolerance: 1.e-14 + hashes: ['0x3FEF2BCEA2147251'] + + # 6h into forecast + - name: swh + time: 2023-01-01 06:00:00 + average: 1.116009510311353e+00 + relative_tolerance: 1.e-14 + hashes: ['0x3FF1DB2CC9CCFEEA'] + - name: swh + time: 2023-01-01 06:00:00 + minimum: 4.326592382617202e-03 + relative_tolerance: 1.e-14 + hashes: ['0x3F71B8C2CC955ADC'] + - name: swh + time: 2023-01-01 06:00:00 + maximum: 6.288749015943960e+00 + relative_tolerance: 1.e-14 + hashes: ['0x401927ADD270ED0C'] diff --git a/tests/etopo1_oper_an_fc_lam_highres.yml b/tests/etopo1_oper_an_fc_lam_highres.yml new file mode 100644 index 000000000..05d429c09 --- /dev/null +++ b/tests/etopo1_oper_an_fc_lam_highres.yml @@ -0,0 +1,102 @@ +grid: lam_highres +cldomain: m +directions: 36 +frequencies: 36 +fr1: 0.055 +ifre1: 1 +bathymetry: ETOPO1 +lsubgrid: F + +advection: + irefra: 0 + timestep: 120 + fast_waves: + timestep: 60 + max_frequency: 5 +physics: + iphys: 1 + timestep: 240 + llgcbz0: T + llnormagam: T + lmaskice: F + lciwa3: T + lciscal: T + +analysis.begin: 2022-12-31 12:00:00 +analysis.end: 2023-01-01 00:00:00 +forecast.begin: 2023-01-01 00:00:00 +forecast.end: 2023-01-01 06:00:00 + +begin: ${analysis.begin} +end: ${forecast.end} + +nproma: 24 +lgribin: F +lgribout: F + +forcings: + sea_ice: False + + file: data/forcings/oper_an_12h_fc_2023010100_36h_O1280.grib + + at: + - begin: ${analysis.begin} + end: ${analysis.end} + timestep: 06:00 + - begin: ${forecast.begin} + end: ${forecast.end} + timestep: 01:00 + +output: + fields: + name: + - swh # Significant height of combined wind waves and swell + - mwd # Mean wave direction + - mwp # Mean wave period + - pp1d # Peak wave period + - dwi # 10 metre wind direction + - cdww # Coefficient of drag with waves + - wind # 10 metre wind speed + format: grib # (default : grib) or binary + at: + - timestep: 01:00 + + restart: + format: binary # (default : binary) or grib + at: + - time: ${analysis.end} + + +validation: + + double_precision: + + # initial analysis time + - name: swh + time: 2022-12-31 12:00:00 + average: 3.188565402145367e-01 + relative_tolerance: 1.e-14 + hashes: ['0x3FD46825431593C4'] + + # initial forecast time + - name: swh + time: 2023-01-01 00:00:00 + average: 2.297867064718079e-01 + hashes: ['0x3FCD69A69AAD0D3D'] + + # 6h into forecast + - name: swh + time: 2023-01-01 06:00:00 + average: 2.531205436037192e-01 + relative_tolerance: 1.e-14 + hashes: ['0x3FD03320822E515C'] + - name: swh + time: 2023-01-01 06:00:00 + minimum: 1.261118225844372e-02 + relative_tolerance: 1.e-14 + hashes: ['0x3F89D3E43AE94A44'] + - name: swh + time: 2023-01-01 06:00:00 + maximum: 9.275915911218660e-01 + relative_tolerance: 1.e-14 + hashes: ['0x3FEDAED48F7D3772']