From 5c31d4eb9a5d9fe638df79c527270d0d1723a310 Mon Sep 17 00:00:00 2001 From: Juan Manuel Castillo Sanchez <48921434+ukmo-juan-castillo@users.noreply.github.com> Date: Mon, 5 Oct 2020 17:07:50 +0100 Subject: [PATCH 1/4] Fb oasis t+0 (#13) In the original code a coupling lag had to be used, coupling took place at the last time step but not at the first, and the coupling fields had to be written in an oasis restart file. With this ticket, the program can run in a different way by not using a coupling lag, coupling taking place at the first time step but not the last, and the coupling fields are written in the wave restart file - no extra oasis restart file needed. --- model/bin/ww3_from_ftp.sh | 3 +- model/ftn/w3fldsmd.ftn | 8 +- model/ftn/w3initmd.ftn | 437 +++++++++++++++++- model/ftn/w3iogomd.ftn | 34 +- model/ftn/w3iorsmd.ftn | 313 ++++++++++++- model/ftn/w3iosfmd.ftn | 4 +- model/ftn/w3nmlmultimd.ftn | 20 +- model/ftn/w3nmlshelmd.ftn | 16 +- model/ftn/w3oacpmd.ftn | 5 +- model/ftn/w3odatmd.ftn | 16 +- model/ftn/w3wavemd.ftn | 63 +-- model/ftn/ww3_shel.ftn | 80 +++- model/inp/ww3_shel.inp | 7 +- model/nml/ww3_shel.nml | 7 + regtests/bin/matrix.base | 21 +- regtests/ww3_tp2.14/info | 42 +- .../ww3_tp2.14/input/TOYNAMELIST.nam.OASACM4 | 14 + .../ww3_tp2.14/input/TOYNAMELIST.nam.OASACM5 | 14 + regtests/ww3_tp2.14/input/namcouple.OASACM4 | 135 ++++++ regtests/ww3_tp2.14/input/namcouple.OASACM5 | 135 ++++++ regtests/ww3_tp2.14/input/prep_env.sh | 12 +- regtests/ww3_tp2.14/input/switch_OASACM3 | 1 + regtests/ww3_tp2.14/input/switch_OASACM4 | 1 + regtests/ww3_tp2.14/input/switch_OASACM5 | 1 + .../ww3_tp2.14/input/ww3_shel_OASACM3.inp | 153 ++++++ .../ww3_tp2.14/input/ww3_shel_OASACM3.nml | 336 ++++++++++++++ .../ww3_tp2.14/input/ww3_shel_OASACM4.inp | 152 ++++++ .../ww3_tp2.14/input/ww3_shel_OASACM4.nml | 339 ++++++++++++++ .../ww3_tp2.14/input/ww3_shel_OASACM5.inp | 152 ++++++ .../ww3_tp2.14/input/ww3_shel_OASACM5.nml | 338 ++++++++++++++ 30 files changed, 2758 insertions(+), 101 deletions(-) create mode 100755 regtests/ww3_tp2.14/input/TOYNAMELIST.nam.OASACM4 create mode 100755 regtests/ww3_tp2.14/input/TOYNAMELIST.nam.OASACM5 create mode 100755 regtests/ww3_tp2.14/input/namcouple.OASACM4 create mode 100755 regtests/ww3_tp2.14/input/namcouple.OASACM5 create mode 100755 regtests/ww3_tp2.14/input/switch_OASACM3 create mode 100755 regtests/ww3_tp2.14/input/switch_OASACM4 create mode 100755 regtests/ww3_tp2.14/input/switch_OASACM5 create mode 100755 regtests/ww3_tp2.14/input/ww3_shel_OASACM3.inp create mode 100644 regtests/ww3_tp2.14/input/ww3_shel_OASACM3.nml create mode 100755 regtests/ww3_tp2.14/input/ww3_shel_OASACM4.inp create mode 100644 regtests/ww3_tp2.14/input/ww3_shel_OASACM4.nml create mode 100755 regtests/ww3_tp2.14/input/ww3_shel_OASACM5.inp create mode 100644 regtests/ww3_tp2.14/input/ww3_shel_OASACM5.nml diff --git a/model/bin/ww3_from_ftp.sh b/model/bin/ww3_from_ftp.sh index b7723efc5..1a01000b3 100755 --- a/model/bin/ww3_from_ftp.sh +++ b/model/bin/ww3_from_ftp.sh @@ -36,7 +36,6 @@ cp -r data_regtests/ww3_tp2.12/input/* regtests/ww3_tp2.12/input/ cp -r data_regtests/ww3_tp2.12/input_be/* regtests/ww3_tp2.12/input_be/ cp -r data_regtests/ww3_tp2.12/input_le/* regtests/ww3_tp2.12/input_le/ cp -r data_regtests/ww3_tp2.14/input/r-ww3.nc.OAS*CM regtests/ww3_tp2.14/input/ -cp -r data_regtests/ww3_tp2.14/input/r-ww3.nc.OASACM regtests/ww3_tp2.14/input/OASACM2 cp -r data_regtests/ww3_tp2.14/input/r-ww3.nc.OASACM regtests/ww3_tp2.14/input/r-ww3.nc.OASACM2 if [ ! -d regtests/ww3_tp2.14/input/oasis3-mct/doc ] then @@ -46,6 +45,8 @@ cp -r data_regtests/ww3_tp2.14/input/oasis3-mct/doc/* regtests/ww3_tp2.14/input/ cp -r data_regtests/ww3_tp2.14/input/toy/*.nc.OAS*CM regtests/ww3_tp2.14/input/toy/ cp -r data_regtests/ww3_tp2.14/input/toy/r-toy.nc.OASACM regtests/ww3_tp2.14/input/toy/r-toy.nc.OASACM2 cp -r data_regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM2 +cp -r data_regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM4 +cp -r data_regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM5 cp -r data_regtests/ww3_tp2.14/input/toy/*.nc regtests/ww3_tp2.14/input/toy/ cp -r data_regtests/ww3_tp2.17/input/* regtests/ww3_tp2.17/input/ diff --git a/model/ftn/w3fldsmd.ftn b/model/ftn/w3fldsmd.ftn index 0f59832b1..e0478f5de 100644 --- a/model/ftn/w3fldsmd.ftn +++ b/model/ftn/w3fldsmd.ftn @@ -919,7 +919,7 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 24-Apr-2015 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ 15-Jan-1999 : Final FORTRAN 77 ( version 1.18 ) @@ -929,6 +929,7 @@ !/ 26-Dec-2012 : Modified obsolete declarations. ( version 4.11 ) !/ 24-Apr-2015 : Adding OASIS coupling calls ( version 5.07 ) !/ (M. Accensi & F. Ardhuin, IFREMER) +!/ 25-Sep-2020 : Receive coupled fields at T+0 ( version 7.xx ) !/ ! 1. Purpose : ! @@ -1020,7 +1021,7 @@ !/ !/S USE W3SERVMD, ONLY: STRACE USE W3TIMEMD -!/OASIS USE W3OACPMD, ONLY: ID_OASIS_TIME +!/OASIS USE W3OACPMD, ONLY: ID_OASIS_TIME, CPLT0 !/OASACM USE W3AGCMMD, ONLY: RCV_FIELDS_FROM_ATMOS !/OASOCM USE W3OGCMMD, ONLY: RCV_FIELDS_FROM_OCEAN !/OASICM USE W3IGCMMD, ONLY: RCV_FIELDS_FROM_ICE @@ -1164,7 +1165,8 @@ !/OASIS IF (FLCOUPL) THEN !/OASIS ! Do not receive coupling fields at the end of the first integration time in case of !/OASIS ! forcing with a non interpolated field (like lev, ice, ...) -!/OASIS IF ((ID_OASIS_TIME.EQ.0 .AND. FLFRST) .OR. (ID_OASIS_TIME.GT.0)) THEN +!/OASIS IF ( (ID_OASIS_TIME.EQ.0 .AND. ( FLFRST .OR. CPLT0 )) .OR. & +!/OASIS (ID_OASIS_TIME.GT.0)) THEN ! !/OASACM ! Getting U10 (FXN) and V10 (FYN) from atmospheric model !/OASACM CALL RCV_FIELDS_FROM_ATMOS(COUPL_COMM, & diff --git a/model/ftn/w3initmd.ftn b/model/ftn/w3initmd.ftn index 7b3565874..051215bd0 100644 --- a/model/ftn/w3initmd.ftn +++ b/model/ftn/w3initmd.ftn @@ -6,7 +6,7 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 05-Jun-2018 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ 28-Dec-2004 : Origination (out of W3WAVEMD). ( version 3.06 ) @@ -57,6 +57,7 @@ !/ 05-Jun-2018 : Adds PDLIB/MEMCHECK/DEBUG ( version 6.04 ) !/ 21-Aug-2018 : Add WBT parameter ( version 6.06 ) !/ 26-Aug-2018 : UOST (Mentaschi et al. 2015, 2018) ( version 6.06 ) +!/ 25-Sep-2020 : Extra fields for coupling restart ( version 7.xx ) !/ !/ Copyright 2009-2013 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights @@ -327,9 +328,9 @@ USE CONSTANTS !/MEMCHECK USE MallocInfo_m !/ - USE W3GDATMD, ONLY: W3SETG, P2MSF, E3DF, US3DF, USSPF, RSTYPE + USE W3GDATMD, ONLY: W3SETG, RSTYPE USE W3WDATMD, ONLY: W3SETW, W3DIMW - USE W3ADATMD, ONLY: W3SETA, W3DIMA, P2SMS, HS, EF, US3D, USSP + USE W3ADATMD, ONLY: W3SETA, W3DIMA !/MEMCHECK USE W3ADATMD, ONLY: MALLINFOS USE W3IDATMD, ONLY: W3SETI, W3DIMI USE W3ODATMD, ONLY: W3SETO, W3DMO5 @@ -1949,6 +1950,7 @@ !/ ------------------------------------------------------------------- / ! !/MPI USE W3ADATMD, ONLY: W3XDMA, W3SETA, W3XETA +!/MPI USE W3IORSMD, ONLY: OARST USE W3SERVMD, ONLY: EXTCDE !/S USE W3SERVMD, ONLY: STRACE !/ @@ -1974,12 +1976,12 @@ !/MPI STH2M, HSIG, PHICE, TAUICE, USSP, & !/MPI STMAXE, STMAXD, HMAXE, HCMAXE, HMAXD, & !/MPI HCMAXD, QP, PTHP0, PQP, PPE, PGW, PSW, & -!/MPI PTM1, PT1, PT2, PEP, WBT +!/MPI PTM1, PT1, PT2, PEP, WBT, CX, CY !/MPI USE W3GDATMD, ONLY: NK !/MPI USE W3ODATMD, ONLY: NDST, IAPROC, NAPROC, NTPROC, FLOUT, & !/MPI NAPFLD, NAPPNT, NAPRST, NAPBPT, NAPTRK,& -!/MPI NOGRP, NGRPP, NOGE +!/MPI NOGRP, NGRPP, NOGE, FLOGRR !/MPI USE W3ODATMD, ONLY: OUTPTS, NRQGO, NRQGO2, IRQGO, IRQGO2, & !/MPI FLOGRD, NRQPO, NRQPO2, IRQPO1, IRQPO2, & !/MPI NOPTS, IPTINT, NRQRS, IRQRS, NBLKRS, & @@ -2012,6 +2014,7 @@ !/MPI ISEA, ISPROC, K, NRQMAX !/S INTEGER, SAVE :: IENT !/MPI LOGICAL :: FLGRDALL(NOGRP,NGRPP) +!/MPI LOGICAL :: FLGRDARST(NOGRP,NGRPP) !/MPIT CHARACTER(LEN=5) :: STRING !/ !/ ------------------------------------------------------------------- / @@ -2023,6 +2026,7 @@ !/MPI DO J=1, NOGRP !/MPI DO K=1, NGRPP !/MPI FLGRDALL (J,K) = (FLOGRD(J,K) .OR. FLOGR2(J,K)) +!/MPI FLGRDARST(J,K) = (FLGRDALL(J,K) .OR. FLOGRR(J,K)) !/MPI END DO !/MPI END DO ! @@ -2851,7 +2855,11 @@ ! ! 1.b Setting up expanded arrays ! -!/MPI CALL W3XDMA ( IMOD, NDSE, NDST, FLGRDALL ) +!/MPI IF (NAPFLD .EQ. NAPRST) THEN +!/MPI CALL W3XDMA ( IMOD, NDSE, NDST, FLGRDARST ) +!/MPI ELSE +!/MPI CALL W3XDMA ( IMOD, NDSE, NDST, FLGRDALL ) +!/MPI ENDIF ! ! 1.c Receives of fields ! @@ -3661,14 +3669,19 @@ !/MPI IROOT = NAPRST - 1 ! !/MPI IF ( FLOUT(4) .OR. FLOUT(8) ) THEN -!/MPI ALLOCATE ( OUTPTS(IMOD)%OUT4%IRQRS(3*NAPROC) ) +!/MPI IF (OARST) THEN +!/MPI ALLOCATE ( OUTPTS(IMOD)%OUT4%IRQRS(30*NAPROC) ) +!/MPI ELSE +!/MPI ALLOCATE ( OUTPTS(IMOD)%OUT4%IRQRS(3*NAPROC) ) +!/MPI ENDIF !/MPI IRQRS => OUTPTS(IMOD)%OUT4%IRQRS ! -! 2.b Fields at end of file (allways) +! 2.b Fields at end of file (always) ! !/MPIT WRITE (NDST,9020) ! -!/MPI IF ( IAPROC.NE.NAPRST .AND. IAPROC.LE.NAPROC ) THEN +!/MPI IF ( IAPROC.LE.NAPROC ) THEN +!/MPI IF ( IAPROC.NE.NAPRST ) THEN ! !/MPI IH = IH + 1 !/MPI IT = IT0 + 1 @@ -3687,8 +3700,208 @@ !/MPI CALL MPI_SEND_INIT (FPIS(IAPROC), 1, WW3_FIELD_VEC, & !/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) !/MPIT WRITE (NDST,9021) IH, 'S FP', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF (OARST) THEN +!/MPI IF ( FLOGRR( 1, 2) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 4 +!/MPI CALL MPI_SEND_INIT (CX(IAPROC), 1, WW3_FIELD_VEC, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S CX', IROOT, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 5 +!/MPI CALL MPI_SEND_INIT (CY(IAPROC), 1, WW3_FIELD_VEC, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S CY', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 1, 9) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 6 +!/MPI CALL MPI_SEND_INIT (ICEF(IAPROC), 1, WW3_FIELD_VEC, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S IF', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 2, 1) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 7 +!/MPI CALL MPI_SEND_INIT (HS (1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S HS', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 2, 2) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 8 +!/MPI CALL MPI_SEND_INIT (WLM (1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S WL', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 2, 4) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 9 +!/MPI CALL MPI_SEND_INIT (T0M1(1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9011) IH, 'S T0', IROOT, IT, IRQRS(IH), IERR +!/MPI ENDIF +! +!/MPI IF ( FLOGRR( 2, 6) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 10 +!/MPI CALL MPI_SEND_INIT (FP0 (1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S FP', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 2, 7) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 11 +!/MPI CALL MPI_SEND_INIT (THM (1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S TH', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 5, 2) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 12 +!/MPI CALL MPI_SEND_INIT (CHARN(1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S CH', IROOT, IT, IRQRS(IH), IERR +!/MPI ENDIF +! +!/MPI IF ( FLOGRR( 5, 5) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 13 +!/MPI CALL MPI_SEND_INIT (TAUWIX(1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S WX', IROOT, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 14 +!/MPI CALL MPI_SEND_INIT (TAUWIY(1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S WY', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 5, 11) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 15 +!/MPI CALL MPI_SEND_INIT (TWS (1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S TS', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 6, 2) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 16 +!/MPI CALL MPI_SEND_INIT (TAUOX(1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S OX', IROOT, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 17 +!/MPI CALL MPI_SEND_INIT (TAUOY(1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S OY', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 6, 3) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 18 +!/MPI CALL MPI_SEND_INIT (BHD (1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S BH', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 6, 4) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 19 +!/MPI CALL MPI_SEND_INIT (PHIOC(1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S PH', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 6, 5) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 20 +!/MPI CALL MPI_SEND_INIT (TUSX (1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S UX', IROOT, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 21 +!/MPI CALL MPI_SEND_INIT (TUSY (1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S UY', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 6, 6) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 22 +!/MPI CALL MPI_SEND_INIT (USSX (1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S SX', IROOT, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 23 +!/MPI CALL MPI_SEND_INIT (USSY (1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S SY', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 6,10) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 24 +!/MPI CALL MPI_SEND_INIT (TAUICE(1,1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S I1', IROOT, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 25 +!/MPI CALL MPI_SEND_INIT (TAUICE(1,2), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S I2', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 7, 2) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 26 +!/MPI CALL MPI_SEND_INIT (UBA (1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S BA', IROOT, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 27 +!/MPI CALL MPI_SEND_INIT (UBD (1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S BD', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 7, 4) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 28 +!/MPI CALL MPI_SEND_INIT (PHIBBL(1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S PB', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 7, 5) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 29 +!/MPI CALL MPI_SEND_INIT (TAUBBL(1,1), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S T1', IROOT, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 30 +!/MPI CALL MPI_SEND_INIT (TAUBBL(1,2), NSEALM, MPI_REAL, & +!/MPI IROOT, IT, MPI_COMM_WAVE, IRQRS(IH), IERR) +!/MPIT WRITE (NDST,9021) IH, 'S T2', IROOT, IT, IRQRS(IH), IERR +!/MPI END IF +!/MPI ENDIF +! +!/MPI IF ( IAPROC .EQ. NAPRST ) THEN +!/MPI IF (OARST) THEN +!/MPI IF (NAPRST .NE. NAPFLD) CALL W3XDMA ( IMOD, NDSE, NDST, FLOGRR ) +!/MPI CALL W3XETA ( IMOD, NDSE, NDST ) +!/MPI ENDIF ! -!/MPI ELSE IF ( IAPROC .EQ. NAPRST ) THEN !/MPI DO I0=1, NAPROC !/MPI IFROM = I0 - 1 !/MPI IF ( I0 .NE. IAPROC ) THEN @@ -3710,14 +3923,214 @@ !/MPI CALL MPI_RECV_INIT (FPIS(I0),1,WW3_FIELD_VEC, & !/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) !/MPIT WRITE (NDST,9021) IH, 'R FP', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF ! +!/MPI IF (OARST) THEN +!/MPI IF ( FLOGRR( 1, 2) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 4 +!/MPI CALL MPI_RECV_INIT (CX (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R CX', IFROM, IT, IRQRS(IH), IERR +!/MPI IH = IT0 + 5 +!/MPI IT = IT + 1 +!/MPI CALL MPI_RECV_INIT (CY (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R CY', IFROM, IT, IRQRS(IH), IERR !/MPI END IF ! -!/MPI END DO +!/MPI IF ( FLOGRR( 1, 9) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 6 +!/MPI CALL MPI_RECV_INIT (ICEF (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R IF', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 2, 1) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 7 +!/MPI CALL MPI_RECV_INIT (HS (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R HS', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 2, 2) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 8 +!/MPI CALL MPI_RECV_INIT (WLM (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R WL', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 2, 4) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 9 +!/MPI CALL MPI_RECV_INIT (T0M1(I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R T0', IFROM, IT, IRQRS(IH), IERR +!/MPI ENDIF +! +!/MPI IF ( FLOGRR( 2, 6) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 10 +!/MPI CALL MPI_RECV_INIT (FP0 (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R FP', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 2, 7) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 11 +!/MPI CALL MPI_RECV_INIT (THM (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R TH', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 5, 2) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 12 +!/MPI CALL MPI_RECV_INIT (CHARN(I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R CH', IFROM, IT, IRQRS(IH), IERR +!/MPI ENDIF +! +!/MPI IF ( FLOGRR( 5, 5) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 13 +!/MPI CALL MPI_RECV_INIT (TAUWIX(I0),1,WW3_FIELD_VEC,& +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R WX', IFROM, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 14 +!/MPI CALL MPI_RECV_INIT (TAUWIY(I0),1,WW3_FIELD_VEC,& +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R WY', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 5,11) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 15 +!/MPI CALL MPI_RECV_INIT (TWS (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R TS', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 6, 2) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 16 +!/MPI CALL MPI_RECV_INIT (TAUOX(I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R OX', IFROM, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 17 +!/MPI CALL MPI_RECV_INIT (TAUOY(I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R OY', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 6, 3) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 18 +!/MPI CALL MPI_RECV_INIT (BHD (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R BH', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 6, 4) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 19 +!/MPI CALL MPI_RECV_INIT (PHIOC(I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R PH', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 6, 5) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 20 +!/MPI CALL MPI_RECV_INIT (TUSX (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R UX', IFROM, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 21 +!/MPI CALL MPI_RECV_INIT (TUSY (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R UY', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 6, 6) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 22 +!/MPI CALL MPI_RECV_INIT (USSX (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R SX', IFROM, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 23 +!/MPI CALL MPI_RECV_INIT (USSY (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R SY', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 6,10) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 24 +!/MPI CALL MPI_RECV_INIT (TAUICE(I0,1),1,WW3_FIELD_VEC,& +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R I1', IFROM, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 25 +!/MPI CALL MPI_RECV_INIT (TAUICE(I0,2),1,WW3_FIELD_VEC,& +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R I2', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 7, 2) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 26 +!/MPI CALL MPI_RECV_INIT (UBA (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R BA', IFROM, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 27 +!/MPI CALL MPI_RECV_INIT (UBD (I0),1,WW3_FIELD_VEC, & +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R BD', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 7, 4) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 28 +!/MPI CALL MPI_RECV_INIT (PHIBBL(I0),1,WW3_FIELD_VEC,& +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R PB', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +! +!/MPI IF ( FLOGRR( 7, 5) ) THEN +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 29 +!/MPI CALL MPI_RECV_INIT (TAUBBL(I0,1),1,WW3_FIELD_VEC,& +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R T1', IFROM, IT, IRQRS(IH), IERR +!/MPI IH = IH + 1 +!/MPI IT = IT0 + 30 +!/MPI CALL MPI_RECV_INIT (TAUBBL(I0,2),1,WW3_FIELD_VEC,& +!/MPI IFROM, IT, MPI_COMM_WAVE, IRQRS(IH), IERR ) +!/MPIT WRITE (NDST,9021) IH, 'R T2', IFROM, IT, IRQRS(IH), IERR +!/MPI END IF +!/MPI END IF +! +!/MPI END DO +! +!/MPI IF (OARST) CALL W3SETA ( IMOD, NDSE, NDST ) !/MPI END IF +!/MPI END IF ! !/MPI NRQRS = IH -!/MPI IT0 = IT0 + 3 +!/MPI IF (OARST) THEN +!/MPI IT0 = IT0 + 30 +!/MPI ELSE +!/MPI IT0 = IT0 + 3 +!/MPI ENDIF ! !/MPIT WRITE (NDST,9022) !/MPIT WRITE (NDST,9023) NRQRS diff --git a/model/ftn/w3iogomd.ftn b/model/ftn/w3iogomd.ftn index 242c85356..5a07b269d 100644 --- a/model/ftn/w3iogomd.ftn +++ b/model/ftn/w3iogomd.ftn @@ -284,12 +284,13 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | F. Ardhuin | !/ | FORTRAN 90 | -!/ | Last update : 30-Apr-2014 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ 15-Apr-2013 : Origination. ( version 4.10 ) !/ 31-Jan-2014 : Bug fix warning output (Tolman). ( version 4.18 ) !/ 30-Apr-2014 : Add th2m and sth2m calculation ( version 5.01 ) +!/ 25-Sep-2020 : Calculate FLG1D for any processor ( version 7.xx ) !/ ! 1. Purpose : ! @@ -655,11 +656,10 @@ CASE('U2') FLG2D(10,2)=.TRUE. !/COU CASE('DRY') + CASE('UNSET') CASE DEFAULT IF ( IAPROC .EQ. NAPOUT ) WRITE (NDSEN,1004) TRIM(TESTSTR) END SELECT -! - IF(ANY(FLG2D(IFI,:))) FLG1D(IFI)=.TRUE. !Update FLG1D ! IOUT=IOUT+1 ! @@ -667,9 +667,9 @@ ! END IF ! - IF ( IAPROC .EQ. NAPOUT ) THEN - FLT = .TRUE. - DO IFI=1, NOGRP + FLT = .TRUE. + DO IFI=1, NOGRP + IF ( IAPROC .EQ. NAPOUT ) THEN DO IFJ=1, NGRPP IF ( FLG2D(IFI,IFJ) ) THEN IF ( FLT ) THEN @@ -680,7 +680,10 @@ END IF END IF END DO - END DO + END IF + IF(ANY(FLG2D(IFI,:))) FLG1D(IFI)=.TRUE. !Update FLG1D + END DO + IF ( IAPROC .EQ. NAPOUT ) THEN IF ( FLT ) WRITE (NDSO,1945) 'no fields defined' END IF ! @@ -745,13 +748,14 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | F. Ardhuin | !/ | FORTRAN 90 | -!/ | Last update : 30-Apr-2014 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ 15-Apr-2013 : Origination. ( version 4.10 ) !/ 31-Jan-2014 : Bug fix warning output (Tolman). ( version 4.18 ) !/ 30-Apr-2014 : Add th2m and sth2m calculation ( version 5.01 ) !/ 17-Feb-2016 : New version for namelist use ( version 5.11 ) +!/ 25-Sep-2020 : Calculate FLG1D for any processor ( version 7.xx ) !/ ! 1. Purpose : ! @@ -1084,9 +1088,9 @@ ! END DO ! - IF ( IAPROC .EQ. NAPOUT ) THEN - FLT = .TRUE. - DO IFI=1, NOGRP + FLT = .TRUE. + DO IFI=1, NOGRP + IF ( IAPROC .EQ. NAPOUT ) THEN DO IFJ=1, NGRPP IF ( FLG2D(IFI,IFJ) ) THEN IF ( FLT ) THEN @@ -1097,10 +1101,12 @@ END IF END IF END DO - IF(ANY(FLG2D(IFI,:))) FLG1D(IFI)=.TRUE. !Update FLG1D - END DO + ENDIF + IF(ANY(FLG2D(IFI,:))) FLG1D(IFI)=.TRUE. !Update FLG1D + END DO + IF ( IAPROC .EQ. NAPOUT ) THEN IF ( FLT ) WRITE (NDSO,1945) 'no fields defined' - END IF + ENDIF ! RETURN ! diff --git a/model/ftn/w3iorsmd.ftn b/model/ftn/w3iorsmd.ftn index a6cb704c0..3a3ca9c40 100644 --- a/model/ftn/w3iorsmd.ftn +++ b/model/ftn/w3iorsmd.ftn @@ -52,10 +52,13 @@ ! !/ ------------------------------------------------------------------- / PUBLIC +!/ + ! Add fields needed for OASIS coupling in restart + LOGICAL :: OARST !/ !/ Private parameter statements (ID strings) !/ - CHARACTER(LEN=10), PARAMETER, PRIVATE :: VERINI = '2019-12-29' + CHARACTER(LEN=10), PARAMETER, PRIVATE :: VERINI = '2020-09-25' CHARACTER(LEN=26), PARAMETER, PRIVATE :: & IDSTR = 'WAVEWATCH III RESTART FILE' !/ @@ -67,7 +70,7 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 05-Jun-2018 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ 12-Jan-1999 : Final FORTRAN 77 ( version 1.18 ) @@ -100,6 +103,7 @@ !/ 19-Dec-2019 : Optional second stream of ( version 7.00 ) !/ restart files !/ (Roberto Padilla-Hernandez & J.H. Alves) +!/ 25-Sep-2020 : Extra fields for coupled restart ( version 7.xx ) !/ !/ Copyright 2009-2013 National Weather Service (NWS), @@ -242,6 +246,11 @@ !/ ------------------------------------------------------------------- / USE W3GDATMD, ONLY: W3SETG, W3SETREF, RSTYPE USE W3ODATMD, ONLY: W3SETO + USE W3ADATMD, ONLY: W3SETA, W3XETA, NSEALM + USE W3ADATMD, ONLY: CX, CY, HS, WLM, T0M1, FP0, THM, CHARN, & + TAUWIX, TAUWIY, TWS, TAUOX, TAUOY, BHD, & + PHIOC, TUSX, TUSY, USSX, USSY, TAUICE, & + UBA, UBD, PHIBBL, TAUBBL !/ USE W3GDATMD, ONLY: NX, NY, NSEA, NSEAL, NSPEC, MAPSTA, MAPST2, & GNAME, FILEXT, GTYPE, UNGTYPE @@ -250,7 +259,8 @@ !/WRST USE W3IDATMD, ONLY: WXN, WYN, W3SETI !/WRST USE W3IDATMD, ONLY: WXNwrst, WYNwrst USE W3ODATMD, ONLY: NDSE, NDST, IAPROC, NAPROC, NAPERR, NAPRST, & - IFILE => IFILE4, FNMPRE, NTPROC, IOSTYP + IFILE => IFILE4, FNMPRE, NTPROC, IOSTYP, & + FLOGRR !/MPI USE W3ODATMD, ONLY: NRQRS, NBLKRS, RSBLKS, IRQRS, IRQRSS, & !/MPI VAAUX !/MPI USE W3ADATMD, ONLY: MPI_COMM_WCMP @@ -294,7 +304,7 @@ INTEGER(KIND=8) :: RPOS !/MPI INTEGER, ALLOCATABLE :: STAT1(:,:), STAT2(:,:) !/MPI REAL, ALLOCATABLE :: VGBUFF(:), VLBUFF(:) - REAL(KIND=LRB), ALLOCATABLE :: WRITEBUFF(:) + REAL(KIND=LRB), ALLOCATABLE :: WRITEBUFF(:), TMP(:), TMP2(:) LOGICAL :: WRITE, IOSFLG CHARACTER(LEN=4) :: TYPE @@ -376,6 +386,12 @@ ALLOCATE(WRITEBUFF(NSIZE)) WRITEBUFF(:) = 0. ! +! Allocate memory to receive fields needed for coupling + IF (OARST) THEN + ALLOCATE(TMP(NSEA)) + ALLOCATE(TMP2(NSEA)) + ENDIF +! ! open file ---------------------------------------------------------- * ! I = LEN_TRIM(FILEXT) @@ -813,6 +829,66 @@ (FPIS(ISEA),ISEA=1+(IPART-1)*NSIZE, & MIN(NSEA,IPART*NSIZE)) END DO + IF (OARST) THEN +!/MPI CALL W3XETA ( IGRD, NDSE, NDST ) +! + IF ( FLOGRR(1,2) ) THEN + WRITE(NDSR,ERR=803,IOSTAT=IERR) CX(1:NSEA) + WRITE(NDSR,ERR=803,IOSTAT=IERR) CY(1:NSEA) + ENDIF + IF ( FLOGRR(1,9) ) & + WRITE(NDSR,ERR=803,IOSTAT=IERR) ICEF(1:NSEA) + IF ( FLOGRR(2,1) ) & + WRITE(NDSR,ERR=803,IOSTAT=IERR) HS(1:NSEA) + IF ( FLOGRR(2,2) ) & + WRITE(NDSR,ERR=803,IOSTAT=IERR) WLM(1:NSEA) + IF ( FLOGRR(2,4) ) & + WRITE(NDSR,ERR=803,IOSTAT=IERR) T0M1(1:NSEA) + IF ( FLOGRR(2,6) ) & + WRITE(NDSR,ERR=803,IOSTAT=IERR) FP0(1:NSEA) + IF ( FLOGRR(2,7) ) & + WRITE(NDSR,ERR=803,IOSTAT=IERR) THM(1:NSEA) + IF ( FLOGRR(5,2) ) & + WRITE(NDSR,ERR=803,IOSTAT=IERR) CHARN(1:NSEA) + IF ( FLOGRR(5,5) ) THEN + WRITE(NDSR,ERR=803,IOSTAT=IERR) TAUWIX(1:NSEA) + WRITE(NDSR,ERR=803,IOSTAT=IERR) TAUWIY(1:NSEA) + ENDIF + IF ( FLOGRR(5,11) ) & + WRITE(NDSR,ERR=803,IOSTAT=IERR) TWS(1:NSEA) + IF ( FLOGRR(6,2) ) THEN + WRITE(NDSR,ERR=803,IOSTAT=IERR) TAUOX(1:NSEA) + WRITE(NDSR,ERR=803,IOSTAT=IERR) TAUOY(1:NSEA) + ENDIF + IF ( FLOGRR(6,3) ) & + WRITE(NDSR,ERR=803,IOSTAT=IERR) BHD(1:NSEA) + IF ( FLOGRR(6,4) ) & + WRITE(NDSR,ERR=803,IOSTAT=IERR) PHIOC(1:NSEA) + IF ( FLOGRR(6,5) ) THEN + WRITE(NDSR,ERR=803,IOSTAT=IERR) TUSX(1:NSEA) + WRITE(NDSR,ERR=803,IOSTAT=IERR) TUSY(1:NSEA) + ENDIF + IF ( FLOGRR(6,6) ) THEN + WRITE(NDSR,ERR=803,IOSTAT=IERR) USSX(1:NSEA) + WRITE(NDSR,ERR=803,IOSTAT=IERR) USSY(1:NSEA) + ENDIF + IF ( FLOGRR(6,10) ) THEN + WRITE(NDSR,ERR=803,IOSTAT=IERR) TAUICE(1:NSEA,1) + WRITE(NDSR,ERR=803,IOSTAT=IERR) TAUICE(1:NSEA,2) + ENDIF + IF ( FLOGRR(7,2) ) THEN + WRITE(NDSR,ERR=803,IOSTAT=IERR) UBA(1:NSEA) + WRITE(NDSR,ERR=803,IOSTAT=IERR) UBD(1:NSEA) + ENDIF + IF ( FLOGRR(7,4) ) & + WRITE(NDSR,ERR=803,IOSTAT=IERR) PHIBBL(1:NSEA) + IF ( FLOGRR(7,5) ) THEN + WRITE(NDSR,ERR=803,IOSTAT=IERR) TAUBBL(1:NSEA,1) + WRITE(NDSR,ERR=803,IOSTAT=IERR) TAUBBL(1:NSEA,2) + ENDIF +! +!/MPI CALL W3SETA ( IGRD, NDSE, NDST ) + ENDIF !/T WRITE (NDST,9007) !/T ELSE !/T DO ISEA=1, NSEA @@ -820,9 +896,9 @@ !/T ICE(ISEA) = 0. !/T END DO !/T WRITE (NDST,9008) - END IF - END IF - ELSE + END IF + END IF + ELSE IF (TYPE.EQ.'FULL') THEN RPOS = 1_8 + LRECL*(NREC-1_8) READ (NDSR,POS=RPOS,ERR=802,IOSTAT=IERR) & @@ -916,8 +992,196 @@ (FPIS(ISEA),ISEA=1+(IPART-1)*NSIZE, & MIN(NSEA,IPART*NSIZE)) END DO + IF (OARST) THEN +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading CUR' + IF ( FLOGRR(1,2) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + READ (NDSR,ERR=802,IOSTAT=IERR) TMP2(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) THEN + CX(I) = TMP(J) + CY(I) = TMP2(J) + ENDIF + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading ICEF' + IF ( FLOGRR(1,9) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) ICEF(I) = TMP(J) + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading HS' + IF ( FLOGRR(2,1) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) HS(I) = TMP(J) + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading WLM' + IF ( FLOGRR(2,2) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) WLM(I) = TMP(J) + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading T0M1' + IF ( FLOGRR(2,4) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) THEN + T0M1(I) = TMP(J) + ENDIF + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading FP0' + IF ( FLOGRR(2,6) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) FP0(I) = TMP(J) + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading THM' + IF ( FLOGRR(2,7) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) THM(I) = TMP(J) + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading CHARN' + IF ( FLOGRR(5,2) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) CHARN(I) = TMP(J) + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading TAUWI' + IF ( FLOGRR(5,5) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + READ (NDSR,ERR=802,IOSTAT=IERR) TMP2(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) THEN + TAUWIX(I) = TMP(J) + TAUWIY(I) = TMP2(J) + ENDIF + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading TWS' + IF ( FLOGRR(5,11) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) TWS(I) = TMP(J) + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading TAUO' + IF ( FLOGRR(6,2) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + READ (NDSR,ERR=802,IOSTAT=IERR) TMP2(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) THEN + TAUOX(I) = TMP(J) + TAUOY(I) = TMP2(J) + ENDIF + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading BHD' + IF ( FLOGRR(6,3) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) BHD(I) = TMP(J) + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading PHIOC' + IF ( FLOGRR(6,4) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) PHIOC(I) = TMP(J) + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading TUS' + IF ( FLOGRR(6,5) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + READ (NDSR,ERR=802,IOSTAT=IERR) TMP2(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) THEN + TUSX(I) = TMP(J) + TUSY(I) = TMP2(J) + ENDIF + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading USS' + IF ( FLOGRR(6,6) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + READ (NDSR,ERR=802,IOSTAT=IERR) TMP2(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) THEN + USSX(I) = TMP(J) + USSY(I) = TMP2(J) + ENDIF + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading TAUICE' + IF ( FLOGRR(6,10) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + READ (NDSR,ERR=802,IOSTAT=IERR) TMP2(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) THEN + TAUICE(I,1) = TMP(J) + TAUICE(I,2) = TMP2(J) + ENDIF + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading UB' + IF ( FLOGRR(7,2) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + READ (NDSR,ERR=802,IOSTAT=IERR) TMP2(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) THEN + UBA(I) = TMP(J) + UBD(I) = TMP2(J) + ENDIF + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading PHIBBL' + IF ( FLOGRR(7,4) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) PHIBBL(I) = TMP(J) + ENDDO + ENDIF +!/DEBUGINIT WRITE(740+IAPROC,*) 'Before reading TAUBBL' + IF ( FLOGRR(7,5) ) THEN + READ (NDSR,ERR=802,IOSTAT=IERR) TMP(1:NSEA) + READ (NDSR,ERR=802,IOSTAT=IERR) TMP2(1:NSEA) + DO I=1, NSEALM + J = IAPROC + (I-1)*NAPROC + IF (J .LE. NSEA) THEN + TAUBBL(I,1) = TMP(J) + TAUBBL(I,2) = TMP2(J) + ENDIF + ENDDO + ENDIF + ENDIF !/T WRITE (NDST,9007) - ELSE + ELSE TLEV(1) = -1 TLEV(2) = 0 TICE(1) = -1 @@ -932,8 +1196,37 @@ ICE = 0. ASF = 1. FPIS = DUMFPI + + ! Initialize coupled fields if no restart is present + IF (OARST) THEN + CX = 0. + CY = 0. + ICEF = 0. + HS = 0. + WLM = 0. + T0M1 = 0. + FP0 = 1. + THM = 0. + CHARN = 0.0185 + TAUWIX = 0. + TAUWIY = 0. + TWS = 0. + TAUOX = 0. + TAUOY = 0. + BHD = 0. + PHIOC = 0. + TUSX = 0. + TUSY = 0. + USSX = 0. + USSY = 0. + TAUICE = 0. + UBA = 0. + UBD = 0. + PHIBBL = 0. + TAUBBL = 0. + ENDIF !/T WRITE (NDST,9008) - END IF + END IF END IF ! ! Close file --------------------------------------------------------- * @@ -946,6 +1239,8 @@ !/DEBUGIO FLUSH(740+IAPROC) ! IF (ALLOCATED(WRITEBUFF)) DEALLOCATE(WRITEBUFF) + IF (ALLOCATED(TMP)) DEALLOCATE(TMP) + IF (ALLOCATED(TMP2)) DEALLOCATE(TMP2) ! RETURN ! diff --git a/model/ftn/w3iosfmd.ftn b/model/ftn/w3iosfmd.ftn index 7c063bed4..d0a8e8553 100644 --- a/model/ftn/w3iosfmd.ftn +++ b/model/ftn/w3iosfmd.ftn @@ -498,7 +498,7 @@ !/MPI MPI_COMM_WAVE, IERR_MPI ) !/MPI DTSIZ = ICPRT(NSEAL+1,2) - 1 ! -!/MPIT WRITE (NDST,9021) IAPROC, NAPPRT, DTSIZ +!/T WRITE (NDST,9021) IAPROC, NAPPRT, DTSIZ ! !/MPI IT = IT0PRT + NAPROC + IAPROC - 1 !/MPI IF ( DTSIZ .GT. 0 ) CALL MPI_SEND & @@ -537,7 +537,7 @@ !/MPI JSLM = 1 + (NSEA-JAPROC)/NAPROC !/MPI DTSIZ = ICP(JSLM+1,2) - 1 ! -!/MPIT WRITE (NDST,9031) JAPROC, DTSIZ +!/T WRITE (NDST,9031) JAPROC, DTSIZ ! !/MPI ALLOCATE ( PROC(JAPROC)%DTPRT(DIMP,MAX(1,DTSIZ)) ) !/MPI DTP => PROC(JAPROC)%DTPRT diff --git a/model/ftn/w3nmlmultimd.ftn b/model/ftn/w3nmlmultimd.ftn index 91400e401..497d4aeea 100644 --- a/model/ftn/w3nmlmultimd.ftn +++ b/model/ftn/w3nmlmultimd.ftn @@ -7,7 +7,7 @@ !/ | M. Accensi | !/ | | !/ | FORTRAN 90 | -!/ | Last update : 04-Jan-2018 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ For updates see subroutines. @@ -134,7 +134,12 @@ !/COU TYPE NML_COUPLING_T !/COU CHARACTER(1024) :: SENT !/COU CHARACTER(1024) :: RECEIVED +!/COU LOGICAL :: COUPLET0 !/COU END TYPE NML_COUPLING_T +! + TYPE NML_RESTART_T + CHARACTER(1024) :: EXTRA + END TYPE NML_RESTART_T ! TYPE NML_OUTPUT_TYPE_T TYPE(NML_POINT_T) :: POINT @@ -142,6 +147,7 @@ TYPE(NML_TRACK_T) :: TRACK TYPE(NML_PARTITION_T) :: PARTITION !/COU TYPE(NML_COUPLING_T) :: COUPLING + TYPE(NML_RESTART_T) :: RESTART END TYPE NML_OUTPUT_TYPE_T @@ -906,11 +912,12 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | M. Accensi | !/ | FORTRAN 90 | -!/ | Last update : 15-May-2018 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ 09-Aug-2016 : Adding comments ( version 5.12 ) !/ 15-May-2018 : Update namelist ( version 6.05 ) +!/ 25-Sep-2020 : Update namelist ( version 7.xx ) !/ ! 1. Purpose : ! @@ -998,6 +1005,8 @@ ITYPE(I)%PARTITION%FORMAT = .TRUE. !/COU ITYPE(I)%COUPLING%SENT = 'unset' !/COU ITYPE(I)%COUPLING%RECEIVED = 'unset' +!/COU ITYPE(I)%COUPLING%COUPLET0 = .FALSE. + ITYPE(I)%RESTART%EXTRA = 'unset' END DO ALLTYPE%FIELD%LIST = 'unset' ALLTYPE%POINT%NAME = 'unset' @@ -1012,6 +1021,8 @@ ALLTYPE%PARTITION%FORMAT = .TRUE. !/COU ALLTYPE%COUPLING%SENT = 'unset' !/COU ALLTYPE%COUPLING%RECEIVED = 'unset' +!/COU ALLTYPE%COUPLING%COUPLET0 = .FALSE. + ALLTYPE%RESTART%EXTRA = 'unset' ! read OUTPUT_TYPE namelist @@ -1700,11 +1711,12 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | M. Accensi | !/ | FORTRAN 90 | -!/ | Last update : 15-May-2018 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ 09-Aug-2016 : Adding comments ( version 5.12 ) !/ 15-May-2018 : Update namelist ( version 6.05 ) +!/ 25-Sep-2020 : Update namelist ( version 7.xx ) !/ ! 1. Purpose : ! @@ -1782,6 +1794,8 @@ WRITE (NDSN,13) TRIM(MSG),'PARTITION % FORMAT = ', NML_OUTPUT_TYPE(I)%PARTITION%FORMAT !/COU WRITE (NDSN,10) TRIM(MSG),'COUPLING % SENT = ', TRIM(NML_OUTPUT_TYPE(I)%COUPLING%SENT) !/COU WRITE (NDSN,10) TRIM(MSG),'COUPLING % RECEIVED = ', TRIM(NML_OUTPUT_TYPE(I)%COUPLING%RECEIVED) +!/COU WRITE (NDSN,13) TRIM(MSG),'COUPLING % COUPLET0 = ', NML_OUTPUT_TYPE(I)%COUPLING%COUPLET0 + WRITE (NDSN,10) TRIM(MSG),'RESTART % EXTRA = ', TRIM(NML_OUTPUT_TYPE(I)%RESTART%EXTRA) END DO WRITE (NDSN,'(A)') diff --git a/model/ftn/w3nmlshelmd.ftn b/model/ftn/w3nmlshelmd.ftn index 1d048b555..471e8cdcd 100644 --- a/model/ftn/w3nmlshelmd.ftn +++ b/model/ftn/w3nmlshelmd.ftn @@ -7,7 +7,7 @@ !/ | M. Accensi | !/ | | !/ | FORTRAN 90 | -!/ | Last update : 15-May-2018 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ For updates see subroutines. @@ -86,7 +86,12 @@ !/COU TYPE NML_COUPLING_T !/COU CHARACTER(1024) :: SENT !/COU CHARACTER(1024) :: RECEIVED +!/COU LOGICAL :: COUPLET0 !/COU END TYPE NML_COUPLING_T +! + TYPE NML_RESTART_T + CHARACTER(1024) :: EXTRA + END TYPE NML_RESTART_T ! TYPE NML_OUTPUT_TYPE_T TYPE(NML_POINT_T) :: POINT @@ -94,6 +99,7 @@ TYPE(NML_TRACK_T) :: TRACK TYPE(NML_PARTITION_T) :: PARTITION !/COU TYPE(NML_COUPLING_T) :: COUPLING + TYPE(NML_RESTART_T) :: RESTART END TYPE NML_OUTPUT_TYPE_T @@ -547,7 +553,7 @@ !/ | M. Accensi | !/ | | !/ | FORTRAN 90 | -!/ | Last update : 18-Apr-2018 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ @@ -629,6 +635,8 @@ TYPE%PARTITION%FORMAT = .TRUE. !/COU TYPE%COUPLING%SENT = 'unset' !/COU TYPE%COUPLING%RECEIVED = 'unset' +!/COU TYPE%COUPLING%COUPLET0 = .FALSE. + TYPE%RESTART%EXTRA = 'unset' ! read output type namelist @@ -1132,7 +1140,7 @@ !/ | M. Accensi | !/ | | !/ | FORTRAN 90 | -!/ | Last update : 18-Apr-2018 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ @@ -1207,6 +1215,8 @@ WRITE (NDSN,13) TRIM(MSG),'PARTITION % FORMAT = ', NML_OUTPUT_TYPE%PARTITION%FORMAT !/COU WRITE (NDSN,10) TRIM(MSG),'COUPLING % SENT = ', TRIM(NML_OUTPUT_TYPE%COUPLING%SENT) !/COU WRITE (NDSN,10) TRIM(MSG),'COUPLING % RECEIVED = ', TRIM(NML_OUTPUT_TYPE%COUPLING%RECEIVED) +!/COU WRITE (NDSN,13) TRIM(MSG),'COUPLING % COUPLET0 = ', NML_OUTPUT_TYPE%COUPLING%COUPLET0 + WRITE (NDSN,10) TRIM(MSG),'RESTART % EXTRA = ', TRIM(NML_OUTPUT_TYPE%RESTART%EXTRA) 10 FORMAT (A,2X,A,A) 11 FORMAT (A,2X,A,I8) diff --git a/model/ftn/w3oacpmd.ftn b/model/ftn/w3oacpmd.ftn index 15959cd43..315dafb8f 100644 --- a/model/ftn/w3oacpmd.ftn +++ b/model/ftn/w3oacpmd.ftn @@ -6,12 +6,13 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | A. Thevenin | !/ | FORTRAN 90 | -!/ | Last update : April-2016 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ July-2013 : Origination. ( version 4.18 ) !/ For upgrades see subroutines. !/ April-2016 : Add comments (J. Pianezze) ( version 5.07 ) +!/ 25-Sep-2020 : Coupling at T+0 support ( version 7.xx ) !/ !/ Copyright 2009-2012 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights @@ -74,6 +75,8 @@ TYPE(CPL_FIELD), DIMENSION(IP_MAXFLD), PUBLIC :: RCV_FLD, SND_FLD ! Coupling fields ! INTEGER, PUBLIC :: ID_OASIS_TIME=0 ! time counter for coupling exchanges +! + LOGICAL, PUBLIC :: CPLT0 ! Flag for coupling at T+0 ! ! * Accessibility PUBLIC CPL_OASIS_INIT diff --git a/model/ftn/w3odatmd.ftn b/model/ftn/w3odatmd.ftn index 421237735..580e1e31d 100644 --- a/model/ftn/w3odatmd.ftn +++ b/model/ftn/w3odatmd.ftn @@ -6,7 +6,7 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 27-Jul-2018 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ 13-Dec-2004 : Origination. ( version 3.06 ) @@ -43,6 +43,7 @@ !/ 27-Jul-2018 : Added PTMETH and PTFCUT variables ( version 6.05 ) !/ for alternative partition methods. !/ (C. Bunney, UKMO) +!/ 25-Sep-2020 : Flags for coupling restart ( version 7.xx ) !/ !/ Copyright 2009-2012 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights @@ -143,8 +144,10 @@ ! IRQGO I.A. Public Array with MPI handles W3IOGO. ! FLOGRD L.A. Public FLags for output fields. ! FLOGR2 L.A. Public FLags for coupling fields. +! FLOGRR L.A. Public FLags for optional coupling restart (2D). ! FLOGD L.A. Public Flags for output groups ! FLOG2 L.A. Public Flags for coupling groups +! FLOGR L.A. Public FLags for optional coupling restart (1D). ! ---------------------------------------------------------------- ! ! Elements of OUT2 are aliased to pointers with the same @@ -330,6 +333,7 @@ !/MPI INTEGER, POINTER :: IRQGO(:), IRQGO2(:) LOGICAL :: FLOGRD(NOGRP,NGRPP), FLOGD(NOGRP), & FLOGR2(NOGRP,NGRPP), FLOG2(NOGRP), & + FLOGRR(NOGRP,NGRPP), FLOGR(NOGRP), & WRITE1 END TYPE OTYPE1 !/ @@ -435,8 +439,9 @@ INTEGER, POINTER :: IPASS1 !/MPI INTEGER, POINTER :: NRQGO, NRQGO2 !/MPI INTEGER, POINTER :: IRQGO(:), IRQGO2(:) - LOGICAL, POINTER :: FLOGRD(:,:), FLOGR2(:,:), FLOGD(:), & - FLOG2(:), WRITE1 + LOGICAL, POINTER :: FLOGRD(:,:), FLOGR2(:,:), & + FLOGRR(:,:),FLOGD(:), FLOG2(:), & + FLOGR(:), WRITE1 !/ !/ Type 2 ... !/ @@ -1377,7 +1382,7 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 12-Dec-2014 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ 13-Dec-2004 : Origination. ( version 3.06 ) @@ -1391,6 +1396,7 @@ !/ 27-Jul-2010 : Add NKI, NTHI, XFRI, FR1I, TH1I. ( version 3.14.3 ) !/ 19-Dec-2012 : Move NOSWLL to data structure. ( version 4.11 ) !/ 12-Dec-2014 : Modify instanciation of NRQTR ( version 5.04 ) +!/ 25-Sep-2020 : Flags for coupling restart ( version 7.xx ) !/ ! 1. Purpose : ! @@ -1519,8 +1525,10 @@ !/MPI IF ( NRQGO2 .NE. 0 ) IRQGO2 => OUTPTS(IMOD)%OUT1%IRQGO2 FLOGRD => OUTPTS(IMOD)%OUT1%FLOGRD FLOGR2 => OUTPTS(IMOD)%OUT1%FLOGR2 + FLOGRR => OUTPTS(IMOD)%OUT1%FLOGRR FLOGD => OUTPTS(IMOD)%OUT1%FLOGD FLOG2 => OUTPTS(IMOD)%OUT1%FLOG2 + FLOGR => OUTPTS(IMOD)%OUT1%FLOGR ! IPASS2 => OUTPTS(IMOD)%OUT2%IPASS2 NOPTS => OUTPTS(IMOD)%OUT2%NOPTS diff --git a/model/ftn/w3wavemd.ftn b/model/ftn/w3wavemd.ftn index 3c573f800..48d4f1f63 100644 --- a/model/ftn/w3wavemd.ftn +++ b/model/ftn/w3wavemd.ftn @@ -177,14 +177,14 @@ CONTAINS !/ ------------------------------------------------------------------- / SUBROUTINE W3WAVE ( IMOD, ODAT, TEND, STAMP, NO_OUT & -!/OASIS ,ID_LCOMM & +!/OASIS ,ID_LCOMM, TIMEN & ) !/ !/ +-----------------------------------+ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 06-Jun-2018 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ 17-Mar-1999 : Distributed FORTRAN 77 version. ( version 1.18 ) @@ -250,6 +250,7 @@ !/ OASIS/DEBUGINIT/DEBUGSRC/DEBUGRUN/DEBUGCOH !/ DEBUGIOBP/DEBUGIOBC ( version 6.04 ) !/ 14-Sep-2018 : Remove PALM implementation ( version 6.06 ) +!/ 25-Sep-2020 : Oasis coupling at T+0 ( version 7.xx ) !/ ! 1. Purpose : ! @@ -396,7 +397,7 @@ !/SETUP USE W3WAVSET, only : WAVE_SETUP_COMPUTATION !/NETCDF_QAD USE W3NETCDF, only : OUTPUT_NETCDF_QUICK_AND_DIRTY -!/OASIS USE W3OACPMD, ONLY: ID_OASIS_TIME +!/OASIS USE W3OACPMD, ONLY: ID_OASIS_TIME, CPLT0 !/OASOCM USE W3OGCMMD, ONLY: SND_FIELDS_TO_OCEAN !/OASACM USE W3AGCMMD, ONLY: SND_FIELDS_TO_ATMOS !/OASICM USE W3IGCMMD, ONLY: SND_FIELDS_TO_ICE @@ -414,6 +415,7 @@ INTEGER, INTENT(IN) :: IMOD, TEND(2),ODAT(35) LOGICAL, INTENT(IN), OPTIONAL :: STAMP, NO_OUT !/OASIS INTEGER, INTENT(IN), OPTIONAL :: ID_LCOMM +!/OASIS INTEGER, INTENT(IN), OPTIONAL :: TIMEN(2) !/ !/ ------------------------------------------------------------------- / !/ Local parameters : @@ -429,7 +431,7 @@ INTEGER :: TTEST(2),DTTEST REAL :: ICEDAVE ! -!/OASIS INTEGER :: OASISED +!/MPI LOGICAL :: SBSED !/SEC1 INTEGER :: ISEC1 !/SBS INTEGER :: JJ, NDSOFLG !/MPI INTEGER :: IERR_MPI, NRQMAX @@ -588,6 +590,8 @@ END IF ! !/SBS NDSOFLG = 99 +!/MPI SBSED = .FALSE. +!/SBS SBSED = .TRUE. ! TAUWX = 0. TAUWY = 0. @@ -2221,9 +2225,9 @@ !/MPI FLGMPI = .FALSE. !/MPI NRQMAX = 0 ! -!/MPI IF ( ( ( DSEC21(TIME,TONEXT(:,1)).EQ.0. ) .OR. & -!/MPI ( DSEC21(TIME,TONEXT(:,7)).EQ.0. ) ).and. & -!/MPI (FLOUT(1) .OR. FLOUT(7)) ) THEN +!/MPI IF ( ( (DSEC21(TIME,TONEXT(:,1)).EQ.0.) .AND. FLOUT(1) ) .OR. & +!/MPI ( (DSEC21(TIME,TONEXT(:,7)).EQ.0.) .AND. FLOUT(7) .AND. & +!/MPI SBSED ) ) THEN !/MPI IF (.NOT. LPDLIB .or. (GTYPE.ne.UNGTYPE)) THEN !/MPI IF (NRQGO.NE.0 ) THEN !/DEBUGRUN WRITE(740+IAPROC,*) 'BEFORE STARTALL NRQGO.NE.0 , step 0', & @@ -2357,14 +2361,17 @@ DTTST = DSEC21 ( TIME, TOUT ) ! IF ( DTTST .EQ. 0. ) THEN - IF ( ( J .EQ. 1 ) .OR. ( J .EQ. 7 ) ) THEN + IF ( ( J .EQ. 1 ) & +!/SBS .OR. ( J .EQ. 7 ) & + ) THEN IF ( IAPROC .EQ. NAPFLD ) THEN !/MPI IF ( FLGMPI(1) ) CALL MPI_WAITALL & !/MPI ( NRQGO2, IRQGO2, STATIO, IERR_MPI ) !/MPI FLGMPI(1) = .FALSE. ! - IF ( J .EQ. 1 ) CALL W3IOGO & - ( 'WRITE', NDS(7), ITEST, IMOD ) +!/SBS IF ( J .EQ. 1 ) THEN + CALL W3IOGO( 'WRITE', NDS(7), ITEST, IMOD ) +!/SBS ENDIF ! !/SBS ! !/SBS ! Generate output flag file for fields and SBS coupling. @@ -2378,23 +2385,7 @@ !/SBS OPEN( UNIT=NDSOFLG, FILE=FOUTNAME) !/SBS CLOSE( NDSOFLG ) END IF - - IF ( J .EQ. 7 ) THEN -!/OASIS ! -!/OASIS ! Send variables to atmospheric or ocean circulation or ice model -!/OASIS ! -!/OASIS IF (DTOUT(7).NE.0) THEN -!/OASIS IF ( (MOD(ID_OASIS_TIME,NINT(DTOUT(7))) .EQ. 0 ) .AND. & -!/OASIS (DSEC21 (TIME00, TIME) .GT. 0.0) ) THEN -!/OASACM CALL SND_FIELDS_TO_ATMOS() -!/OASOCM CALL SND_FIELDS_TO_OCEAN() -!/OASICM CALL SND_FIELDS_TO_ICE() -!/OASIS ID_OASIS_TIME = DSEC21 ( TIME00 , TIME ) -!/OASIS ENDIF - -!/OASIS END IF - END IF - +! ELSE IF ( J .EQ. 2 ) THEN ! ! Point output @@ -2424,6 +2415,24 @@ END IF ELSE IF ( J .EQ. 6 ) THEN CALL W3IOSF ( NDS(13), IMOD ) +!/OASIS ELSE IF ( J .EQ. 7 ) THEN +!/OASIS ! +!/OASIS ! Send variables to atmospheric or ocean circulation or ice model +!/OASIS ! +!/OASIS IF (DTOUT(7).NE.0) THEN +!/OASIS IF ( (MOD(ID_OASIS_TIME/DTOUT(7),1.0) .LT. 1.E-7 ) .AND. & +!/OASIS (DSEC21 (TIME00, TIME) .GT. 0.0) ) THEN +!/OASIS IF ( (CPLT0 .AND. (DSEC21 (TIME, TIMEN) .GT. 0.0)) .OR. & +!/OASIS .NOT. CPLT0 ) THEN +!/OASIS IF (CPLT0) ID_OASIS_TIME = NINT(DSEC21 ( TIME00 , TIME )) +!/OASIS +!/OASACM CALL SND_FIELDS_TO_ATMOS() +!/OASOCM CALL SND_FIELDS_TO_OCEAN() +!/OASICM CALL SND_FIELDS_TO_ICE() +!/OASIS IF (.NOT. CPLT0) ID_OASIS_TIME = NINT(DSEC21 ( TIME00 , TIME )) +!/OASIS ENDIF +!/OASIS ENDIF +!/OASIS ENDIF END IF ! CALL TICK21 ( TOUT, DTOUT(J) ) diff --git a/model/ftn/ww3_shel.ftn b/model/ftn/ww3_shel.ftn index 2ea322a40..c69a5f4ca 100644 --- a/model/ftn/ww3_shel.ftn +++ b/model/ftn/ww3_shel.ftn @@ -6,7 +6,7 @@ !/ | WAVEWATCH III NOAA/NCEP | !/ | H. L. Tolman | !/ | FORTRAN 90 | -!/ | Last update : 06-Jun-2018 | +!/ | Last update : 25-Sep-2020 | !/ +-----------------------------------+ !/ !/ 19-Jan-1999 : Final FORTRAN 77 ( version 1.18 ) @@ -54,6 +54,7 @@ !/ 04-Oct-2019 : Inline Output implementation ( version 6.07 ) !/ (Roberto Padilla-Hernandez) !/ 16-Jul-2020 : Variable coupling time step ( version 7.08 ) +!/ 25-Sep-2020 : Oasis coupling at T+0 ( version 7.xx ) !/ !/ Copyright 2009-2012 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights @@ -242,11 +243,11 @@ USE W3ADATMD, ONLY: W3NAUX, W3DIMA, W3SETA !/MEMCHECK USE W3ADATMD, ONLY: MALLINFOS USE W3IDATMD -!/OASIS USE W3ODATMD, ONLY: DTOUT +!/OASIS USE W3ODATMD, ONLY: DTOUT, FLOUT USE W3ODATMD, ONLY: W3NOUT, W3SETO USE W3ODATMD, ONLY: NAPROC, IAPROC, NAPOUT, NAPERR, NOGRP, & NGRPP, IDOUT, FNMPRE, IOSTYP, NOTYPE - USE W3ODATMD, ONLY: OFILES + USE W3ODATMD, ONLY: FLOGRR, FLOGR, OFILES !/ USE W3FLDSMD USE W3INITMD @@ -255,6 +256,7 @@ !/ USE W3IOGRMD, ONLY: W3IOGR USE W3IOGOMD, ONLY: W3READFLGRD, FLDOUT, W3FLGRDFLAG + USE W3IORSMD, ONLY: OARST USE W3IOPOMD USE W3SERVMD, ONLY : NEXTLN, EXTCDE USE W3TIMEMD @@ -266,7 +268,11 @@ !/NCC USE WW_cc, ONLY: MPI_COMM_WW !/OASIS USE W3OACPMD, ONLY: CPL_OASIS_INIT, CPL_OASIS_GRID, & !/OASIS CPL_OASIS_DEFINE, CPL_OASIS_FINALIZE, & -!/OASIS ID_OASIS_TIME +!/OASIS ID_OASIS_TIME, CPLT0 +!/OASOCM USE W3OGCMMD, ONLY: SND_FIELDS_TO_OCEAN +!/OASACM USE W3AGCMMD, ONLY: SND_FIELDS_TO_ATMOS +!/OASICM USE W3IGCMMD, ONLY: SND_FIELDS_TO_ICE + !/TIDE USE W3TIDEMD ! USE W3NMLSHELMD @@ -326,8 +332,9 @@ CHARACTER(LEN=80) :: LINE CHARACTER(LEN=256) :: TMPLINE, TEST CHARACTER(LEN=1024) :: FLDIN + CHARACTER(LEN=1024) :: FLDRST CHARACTER(LEN=80) :: LINEIN - CHARACTER(LEN=8) :: WORDS(6)='' + CHARACTER(LEN=8) :: WORDS(7)='' !/COU CHARACTER(LEN=30) :: OFILE ! @@ -930,11 +937,18 @@ !/COU FLGR2, IAPROC, NAPOUT, IERR ) !/COU IF ( IERR .NE. 0 ) GOTO 2222 !/COU FLDIN = NML_OUTPUT_TYPE%COUPLING%RECEIVED +!/COU CPLT0 = NML_OUTPUT_TYPE%COUPLING%COUPLET0 END IF ! J END IF ! ODAT END DO ! J + ! Extra fields to be written in the restart + FLDRST = NML_OUTPUT_TYPE%RESTART%EXTRA + CALL W3FLGRDFLAG ( NDSO, NDSO, NDSE, FLDRST, FLOGR, & + FLOGRR, IAPROC, NAPOUT, IERR ) + IF ( IERR .NE. 0 ) GOTO 2222 + ! force minimal allocation to avoid memory seg fault IF ( .NOT.ALLOCATED(X) .AND. NPTS.EQ.0 ) ALLOCATE ( X(1), Y(1), PNAMES(1) ) @@ -1225,7 +1239,7 @@ ! CHECKPOINT IF(J .EQ. 4) THEN ODAT(38)=0 - WORDS(1:6)='' + WORDS(1:7)='' READ (NDSI,'(A)') LINEIN READ(LINEIN,*,iostat=ierr) WORDS READ(WORDS( 1 ), * ) ODAT(16) @@ -1234,10 +1248,17 @@ READ(WORDS( 4 ), * ) ODAT(19) READ(WORDS( 5 ), * ) ODAT(20) IF (WORDS(6) .EQ. 'T') THEN - CALL NEXTLN ( COMSTR , NDSI , NDSEN ) + CALL NEXTLN ( COMSTR , NDSI , NDSEN ) READ (NDSI,*,END=2001,ERR=2002)(ODAT(I),I=5*(8-1)+1,5*8) WRITE(*,*)(ODAT(I),I=5*(8-1)+1,5*8) END IF + IF (WORDS(7) .EQ. 'T') THEN + CALL NEXTLN ( COMSTR , NDSI , NDSEN ) + READ (NDSI,*,END=2001,ERR=2002) FLDRST + CALL W3FLGRDFLAG ( NDSO, NDSO, NDSE, FLDRST, FLOGR, & + FLOGRR, IAPROC, NAPOUT, IERR ) + IF ( IERR .NE. 0 ) GOTO 2222 + END IF ELSE ! !INLINE NEW VARIABLE TO READ IF PRESENT OFILES(J), IF NOT ==0 @@ -1270,6 +1291,22 @@ END IF +!/COU ELSE IF(J .EQ. 7) THEN +!/COU WORDS(1:6)='' +!/COU READ (NDSI,'(A)') LINEIN +!/COU READ(LINEIN,*,iostat=ierr) WORDS +!/COU +!/COU READ(WORDS( 1 ), * ) ODAT(31) +!/COU READ(WORDS( 2 ), * ) ODAT(32) +!/COU READ(WORDS( 3 ), * ) ODAT(33) +!/COU READ(WORDS( 4 ), * ) ODAT(34) +!/COU READ(WORDS( 5 ), * ) ODAT(35) +!/COU +!/COU IF (WORDS(6) .EQ. 'T') THEN +!/COU CPLT0 = .TRUE. +!/COU ELSE +!/COU CPLT0 = .FALSE. +!/COU END IF ELSE OFILES(J)=0 READ (NDSI,*,END=2001,ERR=2002)(ODAT(I),I=5*(J-1)+1,5*J) @@ -1425,7 +1462,6 @@ ! force minimal allocation to avoid memory seg fault IF ( .NOT.ALLOCATED(X) .AND. NPTS.EQ.0 ) ALLOCATE ( X(1), Y(1), PNAMES(1) ) - ! 2.6 Homogeneous field data IF ( FLHOM ) THEN @@ -1755,6 +1791,18 @@ !/TIDE IF (FLAGSTIDE(2)) CALL W3FLDTIDE1 ( 'READ', NDSF(2), NDST, NDSEN, NX, NY, IDSTR(2), IERR ) !/TIDE END IF ! +!/COU ! Sent coupled fields must be written in the restart when coupling at T+0 +!/COU IF (CPLT0) THEN +!/COU DO J=1, NOGRP +!/COU FLOGR(J) = FLOGR(J) .OR. FLG2(J) +!/COU DO I=1, NGRPP +!/COU FLOGRR(J,I) = FLOGRR(J,I) .OR. FLGR2(J,I) +!/COU END DO +!/COU END DO +!/COU ENDIF +! + OARST = ANY(FLOGR) +! CALL W3INIT ( 1, .FALSE., 'ww3', NDS, NTRACE, ODAT, FLGRD, FLGR2, FLGD, & FLG2, NPTS, X, Y, PNAMES, IPRT, PRTFRM, MPI_COMM, & FLAGSTIDEIN=FLAGSTIDE ) @@ -1825,7 +1873,7 @@ ! IF ( IAPROC .EQ. NAPOUT ) WRITE (NDSO,960) CALL W3WAVE ( 1, ODAT, TIMEN & -!/OASIS ,.TRUE., .FALSE., MPI_COMM & +!/OASIS , .TRUE., .FALSE., MPI_COMM, TIMEN & ) ! GOTO 2222 @@ -1853,6 +1901,14 @@ !/NCC GRIDS(1)%X0,GRIDS(1)%Y0,GRIDS(1)%SX,GRIDS(1)%SY !/NCC WRITE(9753) GRIDS(1)%MAPSTA !/NCC END IF + +!/OASIS ! Send coupling fields at the initial time step +!/OASIS IF ( FLOUT(7) .AND. CPLT0 ) THEN +!/OASACM CALL SND_FIELDS_TO_ATMOS() +!/OASOCM CALL SND_FIELDS_TO_OCEAN() +!/OASICM CALL SND_FIELDS_TO_ICE() +!/OASIS END IF + 700 CONTINUE ! !/NCC IF ( IAPROC .EQ. NAPOUT .AND. DEBUG_NCC ) WRITE(9753) TIME0 @@ -1910,7 +1966,7 @@ DTTST = DSEC21 ( TIME0 , TTT ) END IF !/OASIS ELSE -!/OASIS ID_OASIS_TIME = DSEC21 ( TIME00 , TIME ) +!/OASIS ID_OASIS_TIME = NINT(DSEC21 ( TIME00 , TIME )) !/OASIS IF ( (DTOUT(7).NE.0) .AND. & !/OASIS (MOD(ID_OASIS_TIME, NINT(DTOUT(7))) .EQ. 0 ) .AND. & !/OASIS (DSEC21 (TIME, TIMEEND) .GT. 0.0)) DTTST=0. @@ -2305,7 +2361,7 @@ TIME0 = TTIME ! CALL W3WAVE ( 1, ODAT, TIME0 & -!/OASIS ,.TRUE., .FALSE., MPI_COMM & +!/OASIS , .TRUE., .FALSE., MPI_COMM, TIMEN & ) !/MEMCHECK write(740+IAPROC,*) 'memcheck_____:', 'WW3_SHEL SECTION 9' @@ -2347,7 +2403,7 @@ IF ( DTTST .EQ. 0. ) THEN IF ( IAPROC .EQ. NAPOUT ) WRITE (NDSO,*) ' ' CALL W3WAVE ( 1, ODAT, TIME0 & -!/OASIS , .TRUE., .FALSE., MPI_COMM & +!/OASIS , .TRUE., .FALSE., MPI_COMM, TIMEN & ) END IF END IF diff --git a/model/inp/ww3_shel.inp b/model/inp/ww3_shel.inp index 4809e3a6b..2b45e0709 100644 --- a/model/inp/ww3_shel.inp +++ b/model/inp/ww3_shel.inp @@ -309,8 +309,10 @@ $ $ Type 4 : Restart files (no additional data required). $ The data file is restartN.ww3, see $ w3iors.ftn for additional doc. +$ Flag for second restart (data server mode) +$ Flag for extra fields in the restart file (coupling restart) $ - 19680606 030000 3600 19680607 030000 + 19680606 030000 3600 19680607 030000 F F $ $ Type 5 : Boundary data (no additional data required). $ The data file is nestN.ww3, see @@ -325,10 +327,11 @@ $ 0 999 1 0 999 1 T $ $ Type 7 : Coupling. (must be fully commented if not used with switch COU) +$ Couple at T+0 flag $ Namelist type selection is used here. $ Diagnostic fields to exchange. (see namcouple for more information) $ -$ 19680606 000000 3600 20010102 000000 +$ 19680606 000000 3600 20010102 000000 F $ N $ $ - Sent fields by ww3: diff --git a/model/nml/ww3_shel.nml b/model/nml/ww3_shel.nml index d2d44ad1e..a7262b720 100644 --- a/model/nml/ww3_shel.nml +++ b/model/nml/ww3_shel.nml @@ -230,6 +230,11 @@ ! - Atmospheric model : WND ! - Ice model : ICE IC1 IC5 ! +! * Coupling at T+0 (extra fields in the restart needed) +! +! * extra fields to be written to the restart: +! - The list includes all fields sent by coupling exchange only +! ! * namelist must be terminated with / ! * definitions & defaults: ! TYPE%FIELD%LIST = 'unset' @@ -244,6 +249,8 @@ ! TYPE%PARTITION%FORMAT = T ! TYPE%COUPLING%SENT = 'unset' ! TYPE%COUPLING%RECEIVED = 'unset' +! TYPE%COUPLING%COUPLET0 = .FALSE. +! TYPE%RESTART%EXTRA = 'unset' ! ! -------------------------------------------------------------------- ! &OUTPUT_TYPE_NML diff --git a/regtests/bin/matrix.base b/regtests/bin/matrix.base index 133165df7..6e9134b8e 100755 --- a/regtests/bin/matrix.base +++ b/regtests/bin/matrix.base @@ -2030,10 +2030,23 @@ if [ "$oasis" = 'y' ] && [ "$dist" = 'y' ] then echo ' ' >> matrix.body - echo "$rtst -s OASACM -w work_OASACM -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body - echo "$rtst -s OASACM2 -w work_OASACM2 -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body - echo "$rtst -s OASOCM -w work_OASOCM -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body - echo "$rtst -s OASICM -w work_OASICM -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "$rtst -s OASACM -w work_OASACM -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "$rtst -s OASACM2 -w work_OASACM2 -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "mkdir -p ww3_tp2.14/work_OASACM3" >> matrix.body + echo "cp ww3_tp2.14/input/ww3_shel_OASACM3.nml ww3_tp2.14/work_OASACM3/ww3_shel.nml" >> matrix.body + echo "$rtst -s OASACM3 -w work_OASACM3 -f -p $mpi -n $np/2 -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "mkdir -p ww3_tp2.14/work_OASACM4" >> matrix.body + echo "ln -sf ../work_OASACM3/restart001.ww3 ww3_tp2.14/work_OASACM4/restart.ww3" >> matrix.body + echo "$rtst -r ww3_grid -s OASACM4 -w work_OASACM4 -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "$rtst -r ww3_shel -s OASACM4 -w work_OASACM4 -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "$rtst -r ww3_ounf -s OASACM4 -w work_OASACM4 -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "mkdir -p ww3_tp2.14/work_OASACM5" >> matrix.body + echo "ln -sf ../work_OASACM4/restart001.ww3 ww3_tp2.14/work_OASACM5/restart.ww3" >> matrix.body + echo "$rtst -r ww3_grid -s OASACM5 -w work_OASACM5 -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "$rtst -r ww3_shel -s OASACM5 -w work_OASACM5 -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "$rtst -r ww3_ounf -s OASACM5 -w work_OASACM5 -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "$rtst -s OASOCM -w work_OASOCM -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "$rtst -s OASICM -w work_OASICM -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body fi # 365_day and 360_day calendars, no switch sharing here diff --git a/regtests/ww3_tp2.14/info b/regtests/ww3_tp2.14/info index b306c6f43..98789952c 100644 --- a/regtests/ww3_tp2.14/info +++ b/regtests/ww3_tp2.14/info @@ -8,6 +8,19 @@ # # # !/COU !/OASIS !/OASACM # # selecting coupling atmospheric model with the coupler OASIS3-mct # +# !/COU !/OASIS !/OASACM2 # +# selecting coupling atmospheric model with the coupler OASIS3-mct # +# coupling frequency not the same as the integration time step # +# !/COU !/OASIS !/OASACM3 # +# uncoupled run generating a restart file including coupling fields # +# number of processors used different to coupled runs # +# !/COU !/OASIS !/OASACM4 # +# selecting coupling atmospheric model with the coupler OASIS3-mct # +# reading restart generated by an uncoupled run containing # +# coupling fields for initialization at T+0 # +# !/COU !/OASIS !/OASACM5 # +# selecting coupling atmospheric model with the coupler OASIS3-mct # +# reading restart generated by a coupled run (continuation run) # # !/COU !/OASIS !/OASOCM # # selecting coupling ocean model with the coupler OASIS3-mct # # !/COU !/OASIS !/OASICM # @@ -18,7 +31,7 @@ # -a makefile must be defined in the oasis3-mct/util/make_dir with the # # same extension as comp & link in ww3 bin folder # # # -# -netCDF4 librairies must be installed and NETCDF variables setup # +# -netCDF4 libraries must be installed and NETCDF variables setup # # # # Remarks : # # # @@ -76,9 +89,34 @@ # -p mpirun -n 4 ../model ww3_tp2.14 # # ./bin/run_test -C OASIS -c Altix -s OASICM -f -o netcdf -w work_OASICM # # -p mpirun -n 4 ../model ww3_tp2.14 # +# ./bin/run_rest -s OASACM2 -w work_OASACM2 -C OASIS -f -p mpirun -n 4 # +# -o netcdf ../model ww3_tp2.14 # +# mkdir -p ww3_tp2.14/work_OASACM3 # +# cp ww3_tp2.14/input/ww3_shel_OASACM3.nml # +# ww3_tp2.14/work_OASACM3/ww3_shel.nml # +# ./bin/run_test -s OASACM3 -w work_OASACM3 -f -p mpirun -n 2 -o netcdf # +# ../model ww3_tp2.14 # +# mkdir -p ww3_tp2.14/work_OASACM4 # +# ln -sf ../work_OASACM3/restart001.ww3 # +# ww3_tp2.14/work_OASACM4/restart.ww3 # +# ./bin/run_test -r ww3_grid -s OASACM4 -w work_OASACM4 -C OASIS -f # +# -p mpirun -n 4 -o netcdf ../model ww3_tp2.14 # +# ./bin/run_test -r ww3_shel -s OASACM4 -w work_OASACM4 -C OASIS -f # +# -p mpirun -n 4 -o netcdf ../model ww3_tp2.14 # +# ./bin/run_test -r ww3_ounf -s OASACM4 -w work_OASACM4 -C OASIS -f # +# -p mpirun -n 4 -o netcdf ../model ww3_tp2.14 # +# mkdir -p ww3_tp2.14/work_OASACM5 # +# ln -sf ../work_OASACM4/restart001.ww3 # +# ww3_tp2.14/work_OASACM5/restart.ww3" # +# ./bin/run_test -r ww3_grid -s OASACM5 -w work_OASACM5 -C OASIS -f # +# -p mpirun -n 4 -o netcdf ../model ww3_tp2.14 # +# ./bin/run_test -r ww3_shel -s OASACM5 -w work_OASACM5 -C OASIS -f # +# -p mpirun -n 4 -o netcdf ../model ww3_tp2.14 # +# ./bin/run_test -r ww3_ounf -s OASACM5 -w work_OASACM5 -C OASIS -f # +# -p mpirun -n 4 -o netcdf ../model ww3_tp2.14 # # # # M. Accensi, Feb 2015 # # Ifremer Institute # -# Last Mod : Aug 2017 # +# Last Mod : Sept 2020 # # # ############################################################################# diff --git a/regtests/ww3_tp2.14/input/TOYNAMELIST.nam.OASACM4 b/regtests/ww3_tp2.14/input/TOYNAMELIST.nam.OASACM4 new file mode 100755 index 000000000..9b4b994b5 --- /dev/null +++ b/regtests/ww3_tp2.14/input/TOYNAMELIST.nam.OASACM4 @@ -0,0 +1,14 @@ +&NAM_OASIS IL_NB_TIME_STEPS=10, + DELTA_T=360, + DATA_FILENAME='grid_toy_model.nc' / + +&NAM_FCT_SEND CTYPE_FCT='FILES', + CNAME_FILE='toy_coupled_field.nc', + VALUE=10 / + +&NAM_RECV_FIELDS NB_RECV_FIELDS=1, + CRCVFIELDS(1)='TOY__CHA' / + +&NAM_SEND_FIELDS NB_SEND_FIELDS=2, + CSNDFIELDS(1)='TOY_U10M', + CSNDFIELDS(2)='TOY_V10M' / diff --git a/regtests/ww3_tp2.14/input/TOYNAMELIST.nam.OASACM5 b/regtests/ww3_tp2.14/input/TOYNAMELIST.nam.OASACM5 new file mode 100755 index 000000000..9b4b994b5 --- /dev/null +++ b/regtests/ww3_tp2.14/input/TOYNAMELIST.nam.OASACM5 @@ -0,0 +1,14 @@ +&NAM_OASIS IL_NB_TIME_STEPS=10, + DELTA_T=360, + DATA_FILENAME='grid_toy_model.nc' / + +&NAM_FCT_SEND CTYPE_FCT='FILES', + CNAME_FILE='toy_coupled_field.nc', + VALUE=10 / + +&NAM_RECV_FIELDS NB_RECV_FIELDS=1, + CRCVFIELDS(1)='TOY__CHA' / + +&NAM_SEND_FIELDS NB_SEND_FIELDS=2, + CSNDFIELDS(1)='TOY_U10M', + CSNDFIELDS(2)='TOY_V10M' / diff --git a/regtests/ww3_tp2.14/input/namcouple.OASACM4 b/regtests/ww3_tp2.14/input/namcouple.OASACM4 new file mode 100755 index 000000000..56a6795dc --- /dev/null +++ b/regtests/ww3_tp2.14/input/namcouple.OASACM4 @@ -0,0 +1,135 @@ +# This is a typical input file for OASIS3-MCT. +# Keywords used in previous versions of OASIS3 +# but now obsolete are marked "Not used" +# Don't hesitate to ask precisions or make suggestions (oasishelp@cerfacs.fr). +# +# Any line beginning with # is ignored. Blank lines are not allowed. +# +######################################################################### + $NFIELDS +# The number of fields described in the second part of the namcouple. +# + 3 + $END +######################################################################### + $NBMODEL +# The number of models in this experiment + their names (6 characters) +# + 2 toyexe wwatch + $END +########################################################################### + $RUNTIME +# The total simulated time for this run in seconds +# + 3600 + $END +########################################################################### + $NLOGPRT +# The first (0 to 30) and second (0 to 3) numbers refer to the ammount of +# debug and time statistic information written by OASIS3-MCT for each model +# and processor (see user manual for more details) +# + 1 + $END +########################################################################### + $STRINGS +# +# The above variables are the general parameters for the experiment. +# Everything below has to do with the fields being exchanged. +# +# line 1: field in ww3 model, field in target model, unused, coupling +# period, number of transformation, restart file, field status +# line 2: nb of pts for ww3 grid without halo first dim, and second dim, +# for target grid first dim, and second dim (optionals, default=0), +# ww3 grid name, target grid name, lag index +# line 3: ww3 grid periodical (P) or regional (R), and nb of overlapping +# points, target grid periodical (P) or regional (R), and number of +# overlapping points +# line 4: list of transformations performed +# line 5: parameters for each transformation +# +# See the correspondances between WW3 and OASIS fields below: +# +# |--------------------------------------------------------------| +# | received fields by ww3 from Ocean model : WW3 | OASIS | +# |--------------------------------------------------------------| +# | not defined | WW3_OWDH WW3_OWDU WW3_OWDV | +# | SSH | WW3__SSH | +# | CUR | WW3_OSSU WW3_OSSV | +# |--------------------------------------------------------------| +# | received fields by ww3 from Atmospheric model : WW3 | OASIS | +# --------------------------------------------------------------| +# | WND | WW3__U10 WW3__V10 | +# |--------------------------------------------------------------| +# | received fields by ww3 from Ice model : WW3 | OASIS | +# --------------------------------------------------------------| +# | ICE | WW3__ICE | +# | IC1 | WW3__IC1 | +# | IC5 | WW3__IC5 | +# |--------------------------------------------------------------| +# | sent fields by ww3 to Ocean model : WW3 | OASIS | +# |--------------------------------------------------------------| +# | not defined | WW3_ODRY | +# | T0M1 | WW3_T0M1 | +# | HS | WW3__OHS | +# | DIR | WW3_CDIR WW3_SDIR | +# | BHD | WW3__BHD | +# | TWO | WW3_TWOX WW3_TWOY | +# | UBR | WW3__UBR | +# | FOC | WW3__FOC | +# | TAW | WW3_TAWX WW3_TAWY | +# | LM | WW3___LM | +# | OCHA | WW3_OCHA | +# |--------------------------------------------------------------| +# | sent fields by ww3 to Atmospheric model : WW3 | OASIS | +# |--------------------------------------------------------------| +# | CUR | WW3_WSSU WW3_WSSV | +# | ACHA | WW3_ACHA | +# | HS | WW3__AHS | +# | FP | WW3___FP | +# | FWS | WW3__FWS | +# |--------------------------------------------------------------| +# | sent fields by ww3 to Ice model : WW3 | OASIS | +# |--------------------------------------------------------------| +# | TWI | WW3_TWIX WW3_TWIY | +# | IC5 | WW3_ICEF | +# |--------------------------------------------------------------| +# +# +# +# ------------------------------------------ +# TOY (toyexe) ==> WW3 (wwatch) +# ------------------------------------------ +# +#~~~~~~~~~~~ +# Field 1 : +#~~~~~~~~~~~ +TOY_U10M WW3__U10 1 360 1 r-toy.nc EXPOUT +80 80 103 119 toyt ww3t +R 0 R 0 +SCRIPR +DISTWGT LR SCALAR LATLON 1 4 +# +#~~~~~~~~~~~ +# Field 2 : +#~~~~~~~~~~~ +TOY_V10M WW3__V10 1 360 1 r-toy.nc EXPOUT +80 80 103 119 toyt ww3t +R 0 R 0 +SCRIPR +DISTWGT LR SCALAR LATLON 1 4 +# +# ----------------------------------------- +# WW3 (wwatch) ==> TOY (toyexe) +# ----------------------------------------- +# +#~~~~~~~~~~~ +# Field 3 : +#~~~~~~~~~~~ +WW3_ACHA TOY__CHA 1 360 1 r-ww3.nc EXPOUT +103 119 80 80 ww3t toyt +R 0 R 0 +SCRIPR +DISTWGT LR SCALAR LATLON 1 4 +# + $END diff --git a/regtests/ww3_tp2.14/input/namcouple.OASACM5 b/regtests/ww3_tp2.14/input/namcouple.OASACM5 new file mode 100755 index 000000000..56a6795dc --- /dev/null +++ b/regtests/ww3_tp2.14/input/namcouple.OASACM5 @@ -0,0 +1,135 @@ +# This is a typical input file for OASIS3-MCT. +# Keywords used in previous versions of OASIS3 +# but now obsolete are marked "Not used" +# Don't hesitate to ask precisions or make suggestions (oasishelp@cerfacs.fr). +# +# Any line beginning with # is ignored. Blank lines are not allowed. +# +######################################################################### + $NFIELDS +# The number of fields described in the second part of the namcouple. +# + 3 + $END +######################################################################### + $NBMODEL +# The number of models in this experiment + their names (6 characters) +# + 2 toyexe wwatch + $END +########################################################################### + $RUNTIME +# The total simulated time for this run in seconds +# + 3600 + $END +########################################################################### + $NLOGPRT +# The first (0 to 30) and second (0 to 3) numbers refer to the ammount of +# debug and time statistic information written by OASIS3-MCT for each model +# and processor (see user manual for more details) +# + 1 + $END +########################################################################### + $STRINGS +# +# The above variables are the general parameters for the experiment. +# Everything below has to do with the fields being exchanged. +# +# line 1: field in ww3 model, field in target model, unused, coupling +# period, number of transformation, restart file, field status +# line 2: nb of pts for ww3 grid without halo first dim, and second dim, +# for target grid first dim, and second dim (optionals, default=0), +# ww3 grid name, target grid name, lag index +# line 3: ww3 grid periodical (P) or regional (R), and nb of overlapping +# points, target grid periodical (P) or regional (R), and number of +# overlapping points +# line 4: list of transformations performed +# line 5: parameters for each transformation +# +# See the correspondances between WW3 and OASIS fields below: +# +# |--------------------------------------------------------------| +# | received fields by ww3 from Ocean model : WW3 | OASIS | +# |--------------------------------------------------------------| +# | not defined | WW3_OWDH WW3_OWDU WW3_OWDV | +# | SSH | WW3__SSH | +# | CUR | WW3_OSSU WW3_OSSV | +# |--------------------------------------------------------------| +# | received fields by ww3 from Atmospheric model : WW3 | OASIS | +# --------------------------------------------------------------| +# | WND | WW3__U10 WW3__V10 | +# |--------------------------------------------------------------| +# | received fields by ww3 from Ice model : WW3 | OASIS | +# --------------------------------------------------------------| +# | ICE | WW3__ICE | +# | IC1 | WW3__IC1 | +# | IC5 | WW3__IC5 | +# |--------------------------------------------------------------| +# | sent fields by ww3 to Ocean model : WW3 | OASIS | +# |--------------------------------------------------------------| +# | not defined | WW3_ODRY | +# | T0M1 | WW3_T0M1 | +# | HS | WW3__OHS | +# | DIR | WW3_CDIR WW3_SDIR | +# | BHD | WW3__BHD | +# | TWO | WW3_TWOX WW3_TWOY | +# | UBR | WW3__UBR | +# | FOC | WW3__FOC | +# | TAW | WW3_TAWX WW3_TAWY | +# | LM | WW3___LM | +# | OCHA | WW3_OCHA | +# |--------------------------------------------------------------| +# | sent fields by ww3 to Atmospheric model : WW3 | OASIS | +# |--------------------------------------------------------------| +# | CUR | WW3_WSSU WW3_WSSV | +# | ACHA | WW3_ACHA | +# | HS | WW3__AHS | +# | FP | WW3___FP | +# | FWS | WW3__FWS | +# |--------------------------------------------------------------| +# | sent fields by ww3 to Ice model : WW3 | OASIS | +# |--------------------------------------------------------------| +# | TWI | WW3_TWIX WW3_TWIY | +# | IC5 | WW3_ICEF | +# |--------------------------------------------------------------| +# +# +# +# ------------------------------------------ +# TOY (toyexe) ==> WW3 (wwatch) +# ------------------------------------------ +# +#~~~~~~~~~~~ +# Field 1 : +#~~~~~~~~~~~ +TOY_U10M WW3__U10 1 360 1 r-toy.nc EXPOUT +80 80 103 119 toyt ww3t +R 0 R 0 +SCRIPR +DISTWGT LR SCALAR LATLON 1 4 +# +#~~~~~~~~~~~ +# Field 2 : +#~~~~~~~~~~~ +TOY_V10M WW3__V10 1 360 1 r-toy.nc EXPOUT +80 80 103 119 toyt ww3t +R 0 R 0 +SCRIPR +DISTWGT LR SCALAR LATLON 1 4 +# +# ----------------------------------------- +# WW3 (wwatch) ==> TOY (toyexe) +# ----------------------------------------- +# +#~~~~~~~~~~~ +# Field 3 : +#~~~~~~~~~~~ +WW3_ACHA TOY__CHA 1 360 1 r-ww3.nc EXPOUT +103 119 80 80 ww3t toyt +R 0 R 0 +SCRIPR +DISTWGT LR SCALAR LATLON 1 4 +# + $END diff --git a/regtests/ww3_tp2.14/input/prep_env.sh b/regtests/ww3_tp2.14/input/prep_env.sh index 5262d33d7..bba5df192 100755 --- a/regtests/ww3_tp2.14/input/prep_env.sh +++ b/regtests/ww3_tp2.14/input/prep_env.sh @@ -78,7 +78,11 @@ ln -sf ../input/namcouple.$swtstr namcouple echo ' copy toy model inputs' cd $path_w -cp ../input/toy/r-toy.nc.$swtstr r-toy.nc +if [ -f ../input/toy/r-toy.nc.$swtstr ]; then + cp ../input/toy/r-toy.nc.$swtstr r-toy.nc +else + echo "WARNING: model input ../input/toy/r-toy.nc.$swtstr does not exist" +fi ln -sf ../input/toy/grid_toy_model.nc . ln -sf ../input/toy/toy_coupled_field.nc.$swtstr toy_coupled_field.nc ln -sf ../input/TOYNAMELIST.nam.$swtstr TOYNAMELIST.nam @@ -86,7 +90,11 @@ ln -sf ../input/toy/toy_model . echo ' copy ww3 model inputs' cd $path_w -cp ../input/r-ww3.nc.$swtstr r-ww3.nc +if [ -f ../input/r-ww3.nc.$swtstr ]; then + cp ../input/r-ww3.nc.$swtstr r-ww3.nc +else + echo "WARNING: model input ../input/toy/r-ww3.nc.$swtstr does not exist" +fi cp ../input/ww3_shel_${swtstr}.inp ../input/ww3_shel.inp cp ../input/ww3_shel_${swtstr}.nml ../input/ww3_shel.nml echo '' diff --git a/regtests/ww3_tp2.14/input/switch_OASACM3 b/regtests/ww3_tp2.14/input/switch_OASACM3 new file mode 100755 index 000000000..fad60d4f1 --- /dev/null +++ b/regtests/ww3_tp2.14/input/switch_OASACM3 @@ -0,0 +1 @@ +F90 NOGRB NC4 TRKNC DIST MPI PR3 UQ FLX0 LN1 ST4 STAB0 NL1 BT4 DB1 MLIM TR0 BS0 IC2 IS0 REF1 XX0 WNT0 WNX1 RWND CRT1 CRX1 O0 O1 O2 O2a O2b O2c O3 O4 O5 O6 O7 diff --git a/regtests/ww3_tp2.14/input/switch_OASACM4 b/regtests/ww3_tp2.14/input/switch_OASACM4 new file mode 100755 index 000000000..9fff33b21 --- /dev/null +++ b/regtests/ww3_tp2.14/input/switch_OASACM4 @@ -0,0 +1 @@ +F90 NOGRB NC4 TRKNC DIST MPI PR3 UQ FLX0 LN1 ST4 STAB0 NL1 BT4 DB1 MLIM TR0 BS0 IC2 IS0 REF1 XX0 WNT0 WNX1 RWND CRT1 CRX1 COU OASIS OASACM O0 O1 O2 O2a O2b O2c O3 O4 O5 O6 O7 diff --git a/regtests/ww3_tp2.14/input/switch_OASACM5 b/regtests/ww3_tp2.14/input/switch_OASACM5 new file mode 100755 index 000000000..9fff33b21 --- /dev/null +++ b/regtests/ww3_tp2.14/input/switch_OASACM5 @@ -0,0 +1 @@ +F90 NOGRB NC4 TRKNC DIST MPI PR3 UQ FLX0 LN1 ST4 STAB0 NL1 BT4 DB1 MLIM TR0 BS0 IC2 IS0 REF1 XX0 WNT0 WNX1 RWND CRT1 CRX1 COU OASIS OASACM O0 O1 O2 O2a O2b O2c O3 O4 O5 O6 O7 diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.inp b/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.inp new file mode 100755 index 000000000..c2410038f --- /dev/null +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.inp @@ -0,0 +1,153 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III shell input file $ +$ -------------------------------------------------------------------- $ +$ Define input to be used with F/T/C flag for use or nor or coupling and +$ T/F flag for definition as a homogeneous field. +$ +$ Include ice and mud parameters only if IC1/2/3/4 used : + F F Ice parameter 1 + F F Ice parameter 2 + F F Ice parameter 3 + F F Ice parameter 4 + F F Ice parameter 5 + F F Mud parameter 1 + F F Mud parameter 2 + F F Mud parameter 3 + F F Water levels + F F Currents + F F Winds + F Ice concentrations + F Assimilation data : Mean parameters + F Assimilation data : 1-D spectra + F Assimilation data : 2-D spectra +$ +$ Time frame of calculations ----------------------------------------- $ +$ - Starting time in yyyymmdd hhmmss format. +$ - Ending time in yyyymmdd hhmmss format. +$ + 20110902 000000 + 20110902 010000 +$ +$ Define output data ------------------------------------------------- $ +$ +$ Define output server mode. This is used only in the parallel version +$ of the model. To keep the input file consistent, it is always needed. +$ IOSTYP = 1 is generally recommended. IOSTYP > 2 may be more efficient +$ for massively parallel computations. Only IOSTYP = 0 requires a true +$ parallel file system like GPFS. +$ +$ IOSTYP = 0 : No data server processes, direct access output from +$ each process (requires true parallel file system). +$ 1 : No data server process. All output for each type +$ performed by process that performs computations too. +$ 2 : Last process is reserved for all output, and does no +$ computing. +$ 3 : Multiple dedicated output processes. +$ + 1 +$ +$ Five output types are available (see below). All output types share +$ a similar format for the first input line: +$ - first time in yyyymmdd hhmmss format, output interval (s), and +$ last time in yyyymmdd hhmmss format (all integers). +$ Output is disabled by setting the output interval to 0. +$ +$ ------------------------------------------------------------------- $ +$ +$ Type 1 : Fields of mean wave parameters +$ Standard line and line with logical flags to activate output +$ fields as defined in section 2.4 of the manual. The logical +$ flags are not supplied if no output is requested. The logical +$ flags can be placed on multiple consecutive lines. However, +$ the total number and order of the logical flags is fixed. +$ The raw data file is out_grd.ww3, +$ see w3iogo.ftn for additional doc. +$ + 20110902 000000 180 20110902 010000 +$---------------------------------------------------------------- +$ Output request flags identifying fields. +$ +N +$ +HS FP DIR DP CHA UST DPT CUR WND +$ +$---------------------------------------------------------------- +$ +$ Type 2 : Point output +$ Standard line and a number of lines identifying the +$ longitude, latitude and name (C*10) of output points. +$ The list is closed by defining a point with the name +$ 'STOPSTRING'. No point info read if no point output is +$ requested (i.e., no 'STOPSTRING' needed). +$ The raw data file is out_pnt.ww3, +$ see w3iogo.ftn for additional doc. +$ + 20110902 000000 0 20110902 010000 +$ -4.97 48.29 '62069' +$ -6.00 48.29 'Boundary' +$ 0.0 0.0 'STOPSTRING' +$ +$ +$ Type 3 : Output along track. +$ Flag for formatted input file. +$ The data files are track_i.ww3 and +$ track_o.ww3, see w3iotr.ftn for ad. doc. +$ + 20110902 000000 0 20110902 010000 +$ T +$ +$ Type 4 : Restart files (no additional data required). +$ The data file is restartN.ww3, see +$ w3iors.ftn for additional doc. +$ + 20110902 010000 3600 20110902 020000 F T +CHA +$ +$ Type 5 : Boundary data (no additional data required). +$ The data file is nestN.ww3, see +$ w3iobcmd.ftn for additional doc. +$ + 20110902 000000 0 20110902 010000 +$ +$ Type 6 : Separated wave field data (dummy for now). +$ First, last step IX and IY, flag for formatted file +$ + 20110902 000000 0 20110902 010000 +$ 0 999 1 0 999 1 T +$ +$ Type 7 : Coupling. (must be fully commented if not used with switch COU) +$ Namelist type selection is used here. +$ Diagnostic fields to exchange. (see namcouple for more information) +$ +$ 20110902 000000 360 20110902 010000 +$ N +$ +$ - Sent fields by ww3: +$ - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +$ - Atmospheric model : ACHA AHS TP (or FP) FWS +$ - Ice model : IC5 TWI +$ +$ ACHA +$ +$ - Received fields by ww3: +$ - Ocean model : SSH CUR +$ - Atmospheric model : WND +$ - Ice model : ICE IC1 IC5 +$ +$ WND +$ +$ Homogeneous field data --------------------------------------------- $ +$ Homogeneous fields can be defined by a list of lines containing an ID +$ string 'LEV' 'CUR' 'WND', date and time information (yyyymmdd +$ hhmmss), value (S.I. units), direction (current and wind, oceanogr. +$ convention degrees)) and air-sea temperature difference (degrees C). +$ 'STP' is mandatory stop string. +$ Also defined here are the speed with which the grid is moved +$ continuously, ID string 'MOV', parameters as for 'CUR'. +$ +$ 'CUR' 20110902 000000 2.0 25. + 'STP' +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.nml b/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.nml new file mode 100644 index 000000000..257b3de32 --- /dev/null +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.nml @@ -0,0 +1,336 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_shel.nml - single-grid model ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define top-level model parameters via DOMAIN_NML namelist +! +! * IOSTYP defines the output server mode for parallel implementation. +! 0 : No data server processes, direct access output from +! each process (requires true parallel file system). +! 1 : No data server process. All output for each type +! performed by process that performs computations too. +! 2 : Last process is reserved for all output, and does no +! computing. +! 3 : Multiple dedicated output processes. +! +! * namelist must be terminated with / +! * definitions & defaults: +! DOMAIN%IOSTYP = 1 ! Output server type +! DOMAIN%START = '19680606 000000' ! Start date for the entire model +! DOMAIN%STOP = '19680607 000000' ! Stop date for the entire model +! -------------------------------------------------------------------- ! +&DOMAIN_NML + DOMAIN%START = '20110902 000000' + DOMAIN%STOP = '20110902 010000' +/ + +! -------------------------------------------------------------------- ! +! Define each forcing via the INPUT_NML namelist +! +! * The FORCING flag can be : 'F' for "no forcing" +! 'T' for "external forcing file" +! 'H' for "homogeneous forcing input" +! 'C' for "coupled forcing field" +! +! * homogeneous forcing is not available for ICE_CONC +! +! * The ASSIM flag can : 'F' for "no forcing" +! 'T' for "external forcing file" +! +! * namelist must be terminated with / +! * definitions & defaults: +! INPUT%FORCING%WATER_LEVELS = 'F' +! INPUT%FORCING%CURRENTS = 'F' +! INPUT%FORCING%WINDS = 'F' +! INPUT%FORCING%ICE_CONC = 'F' +! INPUT%FORCING%ICE_PARAM1 = 'F' +! INPUT%FORCING%ICE_PARAM2 = 'F' +! INPUT%FORCING%ICE_PARAM3 = 'F' +! INPUT%FORCING%ICE_PARAM4 = 'F' +! INPUT%FORCING%ICE_PARAM5 = 'F' +! INPUT%FORCING%MUD_DENSITY = 'F' +! INPUT%FORCING%MUD_THICKNESS = 'F' +! INPUT%FORCING%MUD_VISCOSITY = 'F' +! INPUT%ASSIM%MEAN = 'F' +! INPUT%ASSIM%SPEC1D = 'F' +! INPUT%ASSIM%SPEC2D = 'F' +! -------------------------------------------------------------------- ! +&INPUT_NML + INPUT%FORCING%WINDS = 'F' +/ + +! -------------------------------------------------------------------- ! +! Define the output types point parameters via OUTPUT_TYPE_NML namelist +! +! * the point file is a space separated values per line : lon lat 'name' +! +! * the full list of field names is : +! All parameters listed below are available in output file of the types +! ASCII and NetCDF. If selected output file types are grads or grib, +! some parameters may not be available. The first two columns in the +! table below identify such cases by flags, cols 1 (GRB) and 2 (GXO) +! refer to grib (ww3_grib) and grads (gx_outf), respectively. +! +! Columns 3 and 4 provide group and parameter numbers per group. +! Columns 5, 6 and 7 provide: +! 5 - code name (internal) +! 6 - output tags (names used is ASCII file extensions, NetCDF +! variable names and namelist-based selection +! 7 - Long parameter name/definition +! +! G G +! R X Grp Param Code Output Parameter/Group +! B O Numb Numbr Name Tag Definition +! -------------------------------------------------- +! 1 Forcing Fields +! ------------------------------------------------- +! T T 1 1 DW DPT Water depth. +! T T 1 2 C[X,Y] CUR Current velocity. +! T T 1 3 UA WND Wind speed. +! T T 1 4 AS AST Air-sea temperature difference. +! T T 1 5 WLV WLV Water levels. +! T T 1 6 ICE ICE Ice concentration. +! T T 1 7 IBG IBG Iceberg-induced damping. +! T T 1 8 D50 D50 Median sediment grain size. +! T T 1 9 IC1 IC1 Ice thickness. +! T T 1 10 IC5 IC5 Ice flow diameter. +! ------------------------------------------------- +! 2 Standard mean wave Parameters +! ------------------------------------------------- +! T T 2 1 HS HS Wave height. +! T T 2 2 WLM LM Mean wave length. +! T T 2 3 T02 T02 Mean wave period (Tm0,2). +! T T 2 4 TM10 TM10 Mean wave period (Tm-1,0). +! T T 2 5 T01 T01 Mean wave period (Tm0,1). +! T T 2 6 FP0 FP Peak frequency. +! T T 2 7 THM DIR Mean wave direction. +! T T 2 8 THS SPR Mean directional spread. +! T T 2 9 THP0 DP Peak direction. +! T T 2 10 HIG HIG Infragravity height +! T T 2 11 STMAXE MXE Max surface elev (STE) +! T T 2 12 STMAXD MXES St Dev of max surface elev (STE) +! T T 2 13 HMAXE MXH Max wave height (STE) +! T T 2 14 HCMAXE MXHC Max wave height from crest (STE) +! T T 2 15 HMAXD SDMH St Dev of MXC (STE) +! T T 2 16 HCMAXD SDMHC St Dev of MXHC (STE) +! F T 2 17 WBT WBT Domiant wave breaking probability bT +! ------------------------------------------------- +! 3 Spectral Parameters (first 5) +! ------------------------------------------------- +! F F 3 1 EF EF Wave frequency spectrum +! F F 3 2 TH1M TH1M Mean wave direction from a1,b2 +! F F 3 3 STH1M STH1M Directional spreading from a1,b2 +! F F 3 4 TH2M TH2M Mean wave direction from a2,b2 +! F F 3 5 STH2M STH2M Directional spreading from a2,b2 +! F F 3 6 WN WN Wavenumber array +! ------------------------------------------------- +! 4 Spectral Partition Parameters +! ------------------------------------------------- +! T T 4 1 PHS PHS Partitioned wave heights. +! T T 4 2 PTP PTP Partitioned peak period. +! T T 4 3 PLP PLP Partitioned peak wave length. +! T T 4 4 PDIR PDIR Partitioned mean direction. +! T T 4 5 PSI PSPR Partitioned mean directional spread. +! T T 4 6 PWS PWS Partitioned wind sea fraction. +! T T 4 7 PTHP0 PDP Peak wave direction of partition. +! T T 4 8 PQP PQP Goda peakdedness parameter of partition. +! T T 4 9 PPE PPE JONSWAP peak enhancement factor of partition. +! T T 4 10 PGW PGW Gaussian frequency width of partition. +! T T 4 11 PSW PSW Spectral width of partition. +! T T 4 12 PTM1 PTM10 Mean wave period (Tm-1,0) of partition. +! T T 4 13 PT1 PT01 Mean wave period (Tm0,1) of partition. +! T T 4 14 PT2 PT02 Mean wave period (Tm0,2) of partition. +! T T 4 15 PEP PEP Peak spectral density of partition. +! T T 4 16 PWST TWS Total wind sea fraction. +! T T 4 17 PNR PNR Number of partitions. +! ------------------------------------------------- +! 5 Atmosphere-waves layer +! ------------------------------------------------- +! T T 5 1 UST UST Friction velocity. +! F T 5 2 CHARN CHA Charnock parameter +! F T 5 3 CGE CGE Energy flux +! F T 5 4 PHIAW FAW Air-sea energy flux +! F T 5 5 TAUWI[X,Y] TAW Net wave-supported stress +! F T 5 6 TAUWN[X,Y] TWA Negative part of the wave-supported stress +! F F 5 7 WHITECAP WCC Whitecap coverage +! F F 5 8 WHITECAP WCF Whitecap thickness +! F F 5 9 WHITECAP WCH Mean breaking height +! F F 5 10 WHITECAP WCM Whitecap moment +! F F 5 11 FWS FWS Wind sea mean period +! ------------------------------------------------- +! 6 Wave-ocean layer +! ------------------------------------------------- +! F F 6 1 S[XX,YY,XY] SXY Radiation stresses. +! F F 6 2 TAUO[X,Y] TWO Wave to ocean momentum flux +! F F 6 3 BHD BHD Bernoulli head (J term) +! F F 6 4 PHIOC FOC Wave to ocean energy flux +! F F 6 5 TUS[X,Y] TUS Stokes transport +! F F 6 6 USS[X,Y] USS Surface Stokes drift +! F F 6 7 [PR,TP]MS P2S Second-order sum pressure +! F F 6 8 US3D USF Spectrum of surface Stokes drift +! F F 6 9 P2SMS P2L Micro seism source term +! F F 6 10 TAUICE TWI Wave to sea ice stress +! F F 6 11 PHICE FIC Wave to sea ice energy flux +! ------------------------------------------------- +! 7 Wave-bottom layer +! ------------------------------------------------- +! F F 7 1 ABA ABR Near bottom rms amplitides. +! F F 7 2 UBA UBR Near bottom rms velocities. +! F F 7 3 BEDFORMS BED Bedforms +! F F 7 4 PHIBBL FBB Energy flux due to bottom friction +! F F 7 5 TAUBBL TBB Momentum flux due to bottom friction +! ------------------------------------------------- +! 8 Spectrum parameters +! ------------------------------------------------- +! F F 8 1 MSS[X,Y] MSS Mean square slopes +! F F 8 2 MSC[X,Y] MSC Spectral level at high frequency tail +! F F 8 3 WL02[X,Y] WL02 East/X North/Y mean wavelength compon +! F F 8 4 ALPXT AXT Correl sea surface gradients (x,t) +! F F 8 5 ALPYT AYT Correl sea surface gradients (y,t) +! F F 8 6 ALPXY AXY Correl sea surface gradients (x,y) +! ------------------------------------------------- +! 9 Numerical diagnostics +! ------------------------------------------------- +! T T 9 1 DTDYN DTD Average time step in integration. +! T T 9 2 FCUT FC Cut-off frequency. +! T T 9 3 CFLXYMAX CFX Max. CFL number for spatial advection. +! T T 9 4 CFLTHMAX CFD Max. CFL number for theta-advection. +! F F 9 5 CFLKMAX CFK Max. CFL number for k-advection. +! ------------------------------------------------- +! 10 User defined +! ------------------------------------------------- +! F F 10 1 U1 User defined #1. (requires coding ...) +! F F 10 2 U2 User defined #1. (requires coding ...) +! ------------------------------------------------- +! +! Section 4 consist of a set of fields, index 0 = wind sea, index +! 1:NOSWLL are first NOSWLL swell fields. +! +! +! * output track file formatted (T) or unformated (F) +! +! * coupling fields exchanged list is : +! - Sent fields by ww3: +! - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +! - Atmospheric model : ACHA AHS TP (or FP) FWS +! - Ice model : IC5 TWI +! - Received fields by ww3: +! - Ocean model : SSH CUR +! - Atmospheric model : WND +! - Ice model : ICE IC1 IC5 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TYPE%FIELD%LIST = 'unset' +! TYPE%POINT%FILE = 'points.list' +! TYPE%TRACK%FORMAT = T +! TYPE%PARTITION%X0 = 0 +! TYPE%PARTITION%XN = 0 +! TYPE%PARTITION%NX = 0 +! TYPE%PARTITION%Y0 = 0 +! TYPE%PARTITION%YN = 0 +! TYPE%PARTITION%NY = 0 +! TYPE%PARTITION%FORMAT = T +! TYPE%COUPLING%SENT = 'unset' +! TYPE%COUPLING%RECEIVED = 'unset' +! +! -------------------------------------------------------------------- ! +&OUTPUT_TYPE_NML + TYPE%FIELD%LIST = 'HS FP DIR DP CHA UST DPT CUR WND' + TYPE%RESTART%EXTRA = 'CHA' +/ + +! -------------------------------------------------------------------- ! +! Define output dates via OUTPUT_DATE_NML namelist +! +! * start and stop times are with format 'yyyymmdd hhmmss' +! * if time stride is equal '0', then output is disabled +! * time stride is given in seconds +! +! * namelist must be terminated with / +! * definitions & defaults: +! DATE%FIELD%START = '19680606 000000' +! DATE%FIELD%STRIDE = '0' +! DATE%FIELD%STOP = '19680607 000000' +! DATE%POINT%START = '19680606 000000' +! DATE%POINT%STRIDE = '0' +! DATE%POINT%STOP = '19680607 000000' +! DATE%TRACK%START = '19680606 000000' +! DATE%TRACK%STRIDE = '0' +! DATE%TRACK%STOP = '19680607 000000' +! DATE%RESTART%START = '19680606 000000' +! DATE%RESTART%STRIDE = '0' +! DATE%RESTART%STOP = '19680607 000000' +! DATE%BOUNDARY%START = '19680606 000000' +! DATE%BOUNDARY%STRIDE = '0' +! DATE%BOUNDARY%STOP = '19680607 000000' +! DATE%PARTITION%START = '19680606 000000' +! DATE%PARTITION%STRIDE = '0' +! DATE%PARTITION%STOP = '19680607 000000' +! DATE%COUPLING%START = '19680606 000000' +! DATE%COUPLING%STRIDE = '0' +! DATE%COUPLING%STOP = '19680607 000000' +! +! DATE%RESTART = '19680606 000000' '0' '19680607 000000' +! -------------------------------------------------------------------- ! +&OUTPUT_DATE_NML + DATE%FIELD = '20110902 000000' '180' '20110902 010000' + DATE%RESTART = '20110902 010000' '3600' '20110902 020000' +/ + +! -------------------------------------------------------------------- ! +! Define homogeneous input via HOMOG_COUNT_NML and HOMOG_INPUT_NML namelist +! +! * the number of each homogeneous input is defined by HOMOG_COUNT +! * the total number of homogeneous input is automatically calculated +! * the homogeneous input must start from index 1 to N +! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV +! * each homogeneous input is defined over a maximum of 3 values detailled below : +! - IC1 is defined by thickness +! - IC2 is defined by viscosity +! - IC3 is defined by density +! - IC4 is defined by modulus +! - IC5 is defined by floe diameter +! - MDN is defined by density +! - MTH is defined by thickness +! - MVS is defined by viscosity +! - LEV is defined by height +! - CUR is defined by speed and direction +! - WND is defined by speed, direction and airseatemp +! - ICE is defined by concentration +! - MOV is defined by speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! HOMOG_COUNT%N_IC1 = 0 +! HOMOG_COUNT%N_IC2 = 0 +! HOMOG_COUNT%N_IC3 = 0 +! HOMOG_COUNT%N_IC4 = 0 +! HOMOG_COUNT%N_IC5 = 0 +! HOMOG_COUNT%N_MDN = 0 +! HOMOG_COUNT%N_MTH = 0 +! HOMOG_COUNT%N_MVS = 0 +! HOMOG_COUNT%N_LEV = 0 +! HOMOG_COUNT%N_CUR = 0 +! HOMOG_COUNT%N_WND = 0 +! HOMOG_COUNT%N_ICE = 0 +! HOMOG_COUNT%N_MOV = 0 +! +! HOMOG_INPUT(I)%NAME = 'unset' +! HOMOG_INPUT(I)%DATE = '19680606 000000' +! HOMOG_INPUT(I)%VALUE1 = 0 +! HOMOG_INPUT(I)%VALUE2 = 0 +! HOMOG_INPUT(I)%VALUE3 = 0 +! -------------------------------------------------------------------- ! +&HOMOG_COUNT_NML +/ + +&HOMOG_INPUT_NML +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.inp b/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.inp new file mode 100755 index 000000000..6221b7979 --- /dev/null +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.inp @@ -0,0 +1,152 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III shell input file $ +$ -------------------------------------------------------------------- $ +$ Define input to be used with F/T/C flag for use or nor or coupling and +$ T/F flag for definition as a homogeneous field. +$ +$ Include ice and mud parameters only if IC1/2/3/4 used : + F F Ice parameter 1 + F F Ice parameter 2 + F F Ice parameter 3 + F F Ice parameter 4 + F F Ice parameter 5 + F F Mud parameter 1 + F F Mud parameter 2 + F F Mud parameter 3 + F F Water levels + F F Currents + C F Winds + F Ice concentrations + F Assimilation data : Mean parameters + F Assimilation data : 1-D spectra + F Assimilation data : 2-D spectra +$ +$ Time frame of calculations ----------------------------------------- $ +$ - Starting time in yyyymmdd hhmmss format. +$ - Ending time in yyyymmdd hhmmss format. +$ + 20110902 010000 + 20110902 020000 +$ +$ Define output data ------------------------------------------------- $ +$ +$ Define output server mode. This is used only in the parallel version +$ of the model. To keep the input file consistent, it is always needed. +$ IOSTYP = 1 is generally recommended. IOSTYP > 2 may be more efficient +$ for massively parallel computations. Only IOSTYP = 0 requires a true +$ parallel file system like GPFS. +$ +$ IOSTYP = 0 : No data server processes, direct access output from +$ each process (requires true parallel file system). +$ 1 : No data server process. All output for each type +$ performed by process that performs computations too. +$ 2 : Last process is reserved for all output, and does no +$ computing. +$ 3 : Multiple dedicated output processes. +$ + 1 +$ +$ Five output types are available (see below). All output types share +$ a similar format for the first input line: +$ - first time in yyyymmdd hhmmss format, output interval (s), and +$ last time in yyyymmdd hhmmss format (all integers). +$ Output is disabled by setting the output interval to 0. +$ +$ ------------------------------------------------------------------- $ +$ +$ Type 1 : Fields of mean wave parameters +$ Standard line and line with logical flags to activate output +$ fields as defined in section 2.4 of the manual. The logical +$ flags are not supplied if no output is requested. The logical +$ flags can be placed on multiple consecutive lines. However, +$ the total number and order of the logical flags is fixed. +$ The raw data file is out_grd.ww3, +$ see w3iogo.ftn for additional doc. +$ + 20110902 010000 180 20110902 020000 +$---------------------------------------------------------------- +$ Output request flags identifying fields. +$ +N +$ +HS FP DIR DP CHA UST DPT CUR WND +$ +$---------------------------------------------------------------- +$ +$ Type 2 : Point output +$ Standard line and a number of lines identifying the +$ longitude, latitude and name (C*10) of output points. +$ The list is closed by defining a point with the name +$ 'STOPSTRING'. No point info read if no point output is +$ requested (i.e., no 'STOPSTRING' needed). +$ The raw data file is out_pnt.ww3, +$ see w3iogo.ftn for additional doc. +$ + 20110902 010000 0 20110902 020000 +$ -4.97 48.29 '62069' +$ -6.00 48.29 'Boundary' +$ 0.0 0.0 'STOPSTRING' +$ +$ +$ Type 3 : Output along track. +$ Flag for formatted input file. +$ The data files are track_i.ww3 and +$ track_o.ww3, see w3iotr.ftn for ad. doc. +$ + 20110902 010000 0 20110902 020000 +$ T +$ +$ Type 4 : Restart files (no additional data required). +$ The data file is restartN.ww3, see +$ w3iors.ftn for additional doc. +$ + 20110902 020000 3600 20110902 030000 +$ +$ Type 5 : Boundary data (no additional data required). +$ The data file is nestN.ww3, see +$ w3iobcmd.ftn for additional doc. +$ + 20110902 010000 0 20110902 020000 +$ +$ Type 6 : Separated wave field data (dummy for now). +$ First, last step IX and IY, flag for formatted file +$ + 20110902 010000 0 20110902 020000 +$ 0 999 1 0 999 1 T +$ +$ Type 7 : Coupling. (must be fully commented if not used with switch COU) +$ Namelist type selection is used here. +$ Diagnostic fields to exchange. (see namcouple for more information) +$ + 20110902 010000 360 20110902 020000 T + N +$ +$ - Sent fields by ww3: +$ - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +$ - Atmospheric model : ACHA AHS TP (or FP) FWS +$ - Ice model : IC5 TWI +$ + ACHA +$ +$ - Received fields by ww3: +$ - Ocean model : SSH CUR +$ - Atmospheric model : WND +$ - Ice model : ICE IC1 IC5 +$ + WND +$ +$ Homogeneous field data --------------------------------------------- $ +$ Homogeneous fields can be defined by a list of lines containing an ID +$ string 'LEV' 'CUR' 'WND', date and time information (yyyymmdd +$ hhmmss), value (S.I. units), direction (current and wind, oceanogr. +$ convention degrees)) and air-sea temperature difference (degrees C). +$ 'STP' is mandatory stop string. +$ Also defined here are the speed with which the grid is moved +$ continuously, ID string 'MOV', parameters as for 'CUR'. +$ +$ 'CUR' 20110902 000000 2.0 25. + 'STP' +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.nml b/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.nml new file mode 100644 index 000000000..01a8eece4 --- /dev/null +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.nml @@ -0,0 +1,339 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_shel.nml - single-grid model ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define top-level model parameters via DOMAIN_NML namelist +! +! * IOSTYP defines the output server mode for parallel implementation. +! 0 : No data server processes, direct access output from +! each process (requires true parallel file system). +! 1 : No data server process. All output for each type +! performed by process that performs computations too. +! 2 : Last process is reserved for all output, and does no +! computing. +! 3 : Multiple dedicated output processes. +! +! * namelist must be terminated with / +! * definitions & defaults: +! DOMAIN%IOSTYP = 1 ! Output server type +! DOMAIN%START = '19680606 000000' ! Start date for the entire model +! DOMAIN%STOP = '19680607 000000' ! Stop date for the entire model +! -------------------------------------------------------------------- ! +&DOMAIN_NML + DOMAIN%START = '20110902 010000' + DOMAIN%STOP = '20110902 020000' +/ + +! -------------------------------------------------------------------- ! +! Define each forcing via the INPUT_NML namelist +! +! * The FORCING flag can be : 'F' for "no forcing" +! 'T' for "external forcing file" +! 'H' for "homogeneous forcing input" +! 'C' for "coupled forcing field" +! +! * homogeneous forcing is not available for ICE_CONC +! +! * The ASSIM flag can : 'F' for "no forcing" +! 'T' for "external forcing file" +! +! * namelist must be terminated with / +! * definitions & defaults: +! INPUT%FORCING%WATER_LEVELS = 'F' +! INPUT%FORCING%CURRENTS = 'F' +! INPUT%FORCING%WINDS = 'F' +! INPUT%FORCING%ICE_CONC = 'F' +! INPUT%FORCING%ICE_PARAM1 = 'F' +! INPUT%FORCING%ICE_PARAM2 = 'F' +! INPUT%FORCING%ICE_PARAM3 = 'F' +! INPUT%FORCING%ICE_PARAM4 = 'F' +! INPUT%FORCING%ICE_PARAM5 = 'F' +! INPUT%FORCING%MUD_DENSITY = 'F' +! INPUT%FORCING%MUD_THICKNESS = 'F' +! INPUT%FORCING%MUD_VISCOSITY = 'F' +! INPUT%ASSIM%MEAN = 'F' +! INPUT%ASSIM%SPEC1D = 'F' +! INPUT%ASSIM%SPEC2D = 'F' +! -------------------------------------------------------------------- ! +&INPUT_NML + INPUT%FORCING%WINDS = 'C' +/ + +! -------------------------------------------------------------------- ! +! Define the output types point parameters via OUTPUT_TYPE_NML namelist +! +! * the point file is a space separated values per line : lon lat 'name' +! +! * the full list of field names is : +! All parameters listed below are available in output file of the types +! ASCII and NetCDF. If selected output file types are grads or grib, +! some parameters may not be available. The first two columns in the +! table below identify such cases by flags, cols 1 (GRB) and 2 (GXO) +! refer to grib (ww3_grib) and grads (gx_outf), respectively. +! +! Columns 3 and 4 provide group and parameter numbers per group. +! Columns 5, 6 and 7 provide: +! 5 - code name (internal) +! 6 - output tags (names used is ASCII file extensions, NetCDF +! variable names and namelist-based selection +! 7 - Long parameter name/definition +! +! G G +! R X Grp Param Code Output Parameter/Group +! B O Numb Numbr Name Tag Definition +! -------------------------------------------------- +! 1 Forcing Fields +! ------------------------------------------------- +! T T 1 1 DW DPT Water depth. +! T T 1 2 C[X,Y] CUR Current velocity. +! T T 1 3 UA WND Wind speed. +! T T 1 4 AS AST Air-sea temperature difference. +! T T 1 5 WLV WLV Water levels. +! T T 1 6 ICE ICE Ice concentration. +! T T 1 7 IBG IBG Iceberg-induced damping. +! T T 1 8 D50 D50 Median sediment grain size. +! T T 1 9 IC1 IC1 Ice thickness. +! T T 1 10 IC5 IC5 Ice flow diameter. +! ------------------------------------------------- +! 2 Standard mean wave Parameters +! ------------------------------------------------- +! T T 2 1 HS HS Wave height. +! T T 2 2 WLM LM Mean wave length. +! T T 2 3 T02 T02 Mean wave period (Tm0,2). +! T T 2 4 TM10 TM10 Mean wave period (Tm-1,0). +! T T 2 5 T01 T01 Mean wave period (Tm0,1). +! T T 2 6 FP0 FP Peak frequency. +! T T 2 7 THM DIR Mean wave direction. +! T T 2 8 THS SPR Mean directional spread. +! T T 2 9 THP0 DP Peak direction. +! T T 2 10 HIG HIG Infragravity height +! T T 2 11 STMAXE MXE Max surface elev (STE) +! T T 2 12 STMAXD MXES St Dev of max surface elev (STE) +! T T 2 13 HMAXE MXH Max wave height (STE) +! T T 2 14 HCMAXE MXHC Max wave height from crest (STE) +! T T 2 15 HMAXD SDMH St Dev of MXC (STE) +! T T 2 16 HCMAXD SDMHC St Dev of MXHC (STE) +! F T 2 17 WBT WBT Domiant wave breaking probability bT +! ------------------------------------------------- +! 3 Spectral Parameters (first 5) +! ------------------------------------------------- +! F F 3 1 EF EF Wave frequency spectrum +! F F 3 2 TH1M TH1M Mean wave direction from a1,b2 +! F F 3 3 STH1M STH1M Directional spreading from a1,b2 +! F F 3 4 TH2M TH2M Mean wave direction from a2,b2 +! F F 3 5 STH2M STH2M Directional spreading from a2,b2 +! F F 3 6 WN WN Wavenumber array +! ------------------------------------------------- +! 4 Spectral Partition Parameters +! ------------------------------------------------- +! T T 4 1 PHS PHS Partitioned wave heights. +! T T 4 2 PTP PTP Partitioned peak period. +! T T 4 3 PLP PLP Partitioned peak wave length. +! T T 4 4 PDIR PDIR Partitioned mean direction. +! T T 4 5 PSI PSPR Partitioned mean directional spread. +! T T 4 6 PWS PWS Partitioned wind sea fraction. +! T T 4 7 PTHP0 PDP Peak wave direction of partition. +! T T 4 8 PQP PQP Goda peakdedness parameter of partition. +! T T 4 9 PPE PPE JONSWAP peak enhancement factor of partition. +! T T 4 10 PGW PGW Gaussian frequency width of partition. +! T T 4 11 PSW PSW Spectral width of partition. +! T T 4 12 PTM1 PTM10 Mean wave period (Tm-1,0) of partition. +! T T 4 13 PT1 PT01 Mean wave period (Tm0,1) of partition. +! T T 4 14 PT2 PT02 Mean wave period (Tm0,2) of partition. +! T T 4 15 PEP PEP Peak spectral density of partition. +! T T 4 16 PWST TWS Total wind sea fraction. +! T T 4 17 PNR PNR Number of partitions. +! ------------------------------------------------- +! 5 Atmosphere-waves layer +! ------------------------------------------------- +! T T 5 1 UST UST Friction velocity. +! F T 5 2 CHARN CHA Charnock parameter +! F T 5 3 CGE CGE Energy flux +! F T 5 4 PHIAW FAW Air-sea energy flux +! F T 5 5 TAUWI[X,Y] TAW Net wave-supported stress +! F T 5 6 TAUWN[X,Y] TWA Negative part of the wave-supported stress +! F F 5 7 WHITECAP WCC Whitecap coverage +! F F 5 8 WHITECAP WCF Whitecap thickness +! F F 5 9 WHITECAP WCH Mean breaking height +! F F 5 10 WHITECAP WCM Whitecap moment +! F F 5 11 FWS FWS Wind sea mean period +! ------------------------------------------------- +! 6 Wave-ocean layer +! ------------------------------------------------- +! F F 6 1 S[XX,YY,XY] SXY Radiation stresses. +! F F 6 2 TAUO[X,Y] TWO Wave to ocean momentum flux +! F F 6 3 BHD BHD Bernoulli head (J term) +! F F 6 4 PHIOC FOC Wave to ocean energy flux +! F F 6 5 TUS[X,Y] TUS Stokes transport +! F F 6 6 USS[X,Y] USS Surface Stokes drift +! F F 6 7 [PR,TP]MS P2S Second-order sum pressure +! F F 6 8 US3D USF Spectrum of surface Stokes drift +! F F 6 9 P2SMS P2L Micro seism source term +! F F 6 10 TAUICE TWI Wave to sea ice stress +! F F 6 11 PHICE FIC Wave to sea ice energy flux +! ------------------------------------------------- +! 7 Wave-bottom layer +! ------------------------------------------------- +! F F 7 1 ABA ABR Near bottom rms amplitides. +! F F 7 2 UBA UBR Near bottom rms velocities. +! F F 7 3 BEDFORMS BED Bedforms +! F F 7 4 PHIBBL FBB Energy flux due to bottom friction +! F F 7 5 TAUBBL TBB Momentum flux due to bottom friction +! ------------------------------------------------- +! 8 Spectrum parameters +! ------------------------------------------------- +! F F 8 1 MSS[X,Y] MSS Mean square slopes +! F F 8 2 MSC[X,Y] MSC Spectral level at high frequency tail +! F F 8 3 WL02[X,Y] WL02 East/X North/Y mean wavelength compon +! F F 8 4 ALPXT AXT Correl sea surface gradients (x,t) +! F F 8 5 ALPYT AYT Correl sea surface gradients (y,t) +! F F 8 6 ALPXY AXY Correl sea surface gradients (x,y) +! ------------------------------------------------- +! 9 Numerical diagnostics +! ------------------------------------------------- +! T T 9 1 DTDYN DTD Average time step in integration. +! T T 9 2 FCUT FC Cut-off frequency. +! T T 9 3 CFLXYMAX CFX Max. CFL number for spatial advection. +! T T 9 4 CFLTHMAX CFD Max. CFL number for theta-advection. +! F F 9 5 CFLKMAX CFK Max. CFL number for k-advection. +! ------------------------------------------------- +! 10 User defined +! ------------------------------------------------- +! F F 10 1 U1 User defined #1. (requires coding ...) +! F F 10 2 U2 User defined #1. (requires coding ...) +! ------------------------------------------------- +! +! Section 4 consist of a set of fields, index 0 = wind sea, index +! 1:NOSWLL are first NOSWLL swell fields. +! +! +! * output track file formatted (T) or unformated (F) +! +! * coupling fields exchanged list is : +! - Sent fields by ww3: +! - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +! - Atmospheric model : ACHA AHS TP (or FP) FWS +! - Ice model : IC5 TWI +! - Received fields by ww3: +! - Ocean model : SSH CUR +! - Atmospheric model : WND +! - Ice model : ICE IC1 IC5 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TYPE%FIELD%LIST = 'unset' +! TYPE%POINT%FILE = 'points.list' +! TYPE%TRACK%FORMAT = T +! TYPE%PARTITION%X0 = 0 +! TYPE%PARTITION%XN = 0 +! TYPE%PARTITION%NX = 0 +! TYPE%PARTITION%Y0 = 0 +! TYPE%PARTITION%YN = 0 +! TYPE%PARTITION%NY = 0 +! TYPE%PARTITION%FORMAT = T +! TYPE%COUPLING%SENT = 'unset' +! TYPE%COUPLING%RECEIVED = 'unset' +! +! -------------------------------------------------------------------- ! +&OUTPUT_TYPE_NML + TYPE%FIELD%LIST = 'HS FP DIR DP CHA UST DPT CUR WND' + TYPE%COUPLING%SENT = 'ACHA' + TYPE%COUPLING%RECEIVED = 'WND' + TYPE%COUPLING%COUPLET0 = .TRUE. +/ + +! -------------------------------------------------------------------- ! +! Define output dates via OUTPUT_DATE_NML namelist +! +! * start and stop times are with format 'yyyymmdd hhmmss' +! * if time stride is equal '0', then output is disabled +! * time stride is given in seconds +! +! * namelist must be terminated with / +! * definitions & defaults: +! DATE%FIELD%START = '19680606 000000' +! DATE%FIELD%STRIDE = '0' +! DATE%FIELD%STOP = '19680607 000000' +! DATE%POINT%START = '19680606 000000' +! DATE%POINT%STRIDE = '0' +! DATE%POINT%STOP = '19680607 000000' +! DATE%TRACK%START = '19680606 000000' +! DATE%TRACK%STRIDE = '0' +! DATE%TRACK%STOP = '19680607 000000' +! DATE%RESTART%START = '19680606 000000' +! DATE%RESTART%STRIDE = '0' +! DATE%RESTART%STOP = '19680607 000000' +! DATE%BOUNDARY%START = '19680606 000000' +! DATE%BOUNDARY%STRIDE = '0' +! DATE%BOUNDARY%STOP = '19680607 000000' +! DATE%PARTITION%START = '19680606 000000' +! DATE%PARTITION%STRIDE = '0' +! DATE%PARTITION%STOP = '19680607 000000' +! DATE%COUPLING%START = '19680606 000000' +! DATE%COUPLING%STRIDE = '0' +! DATE%COUPLING%STOP = '19680607 000000' +! +! DATE%RESTART = '19680606 000000' '0' '19680607 000000' +! -------------------------------------------------------------------- ! +&OUTPUT_DATE_NML + DATE%FIELD = '20110902 010000' '180' '20110902 020000' + DATE%RESTART = '20110902 020000' '3600' '20110902 030000' + DATE%COUPLING = '20110902 010000' '360' '20110902 020000' +/ + +! -------------------------------------------------------------------- ! +! Define homogeneous input via HOMOG_COUNT_NML and HOMOG_INPUT_NML namelist +! +! * the number of each homogeneous input is defined by HOMOG_COUNT +! * the total number of homogeneous input is automatically calculated +! * the homogeneous input must start from index 1 to N +! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV +! * each homogeneous input is defined over a maximum of 3 values detailled below : +! - IC1 is defined by thickness +! - IC2 is defined by viscosity +! - IC3 is defined by density +! - IC4 is defined by modulus +! - IC5 is defined by floe diameter +! - MDN is defined by density +! - MTH is defined by thickness +! - MVS is defined by viscosity +! - LEV is defined by height +! - CUR is defined by speed and direction +! - WND is defined by speed, direction and airseatemp +! - ICE is defined by concentration +! - MOV is defined by speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! HOMOG_COUNT%N_IC1 = 0 +! HOMOG_COUNT%N_IC2 = 0 +! HOMOG_COUNT%N_IC3 = 0 +! HOMOG_COUNT%N_IC4 = 0 +! HOMOG_COUNT%N_IC5 = 0 +! HOMOG_COUNT%N_MDN = 0 +! HOMOG_COUNT%N_MTH = 0 +! HOMOG_COUNT%N_MVS = 0 +! HOMOG_COUNT%N_LEV = 0 +! HOMOG_COUNT%N_CUR = 0 +! HOMOG_COUNT%N_WND = 0 +! HOMOG_COUNT%N_ICE = 0 +! HOMOG_COUNT%N_MOV = 0 +! +! HOMOG_INPUT(I)%NAME = 'unset' +! HOMOG_INPUT(I)%DATE = '19680606 000000' +! HOMOG_INPUT(I)%VALUE1 = 0 +! HOMOG_INPUT(I)%VALUE2 = 0 +! HOMOG_INPUT(I)%VALUE3 = 0 +! -------------------------------------------------------------------- ! +&HOMOG_COUNT_NML +/ + +&HOMOG_INPUT_NML +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.inp b/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.inp new file mode 100755 index 000000000..cf66d2e74 --- /dev/null +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.inp @@ -0,0 +1,152 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III shell input file $ +$ -------------------------------------------------------------------- $ +$ Define input to be used with F/T/C flag for use or nor or coupling and +$ T/F flag for definition as a homogeneous field. +$ +$ Include ice and mud parameters only if IC1/2/3/4 used : + F F Ice parameter 1 + F F Ice parameter 2 + F F Ice parameter 3 + F F Ice parameter 4 + F F Ice parameter 5 + F F Mud parameter 1 + F F Mud parameter 2 + F F Mud parameter 3 + F F Water levels + F F Currents + C F Winds + F Ice concentrations + F Assimilation data : Mean parameters + F Assimilation data : 1-D spectra + F Assimilation data : 2-D spectra +$ +$ Time frame of calculations ----------------------------------------- $ +$ - Starting time in yyyymmdd hhmmss format. +$ - Ending time in yyyymmdd hhmmss format. +$ + 20110902 020000 + 20110902 030000 +$ +$ Define output data ------------------------------------------------- $ +$ +$ Define output server mode. This is used only in the parallel version +$ of the model. To keep the input file consistent, it is always needed. +$ IOSTYP = 1 is generally recommended. IOSTYP > 2 may be more efficient +$ for massively parallel computations. Only IOSTYP = 0 requires a true +$ parallel file system like GPFS. +$ +$ IOSTYP = 0 : No data server processes, direct access output from +$ each process (requires true parallel file system). +$ 1 : No data server process. All output for each type +$ performed by process that performs computations too. +$ 2 : Last process is reserved for all output, and does no +$ computing. +$ 3 : Multiple dedicated output processes. +$ + 1 +$ +$ Five output types are available (see below). All output types share +$ a similar format for the first input line: +$ - first time in yyyymmdd hhmmss format, output interval (s), and +$ last time in yyyymmdd hhmmss format (all integers). +$ Output is disabled by setting the output interval to 0. +$ +$ ------------------------------------------------------------------- $ +$ +$ Type 1 : Fields of mean wave parameters +$ Standard line and line with logical flags to activate output +$ fields as defined in section 2.4 of the manual. The logical +$ flags are not supplied if no output is requested. The logical +$ flags can be placed on multiple consecutive lines. However, +$ the total number and order of the logical flags is fixed. +$ The raw data file is out_grd.ww3, +$ see w3iogo.ftn for additional doc. +$ + 20110902 020000 180 20110902 030000 +$---------------------------------------------------------------- +$ Output request flags identifying fields. +$ +N +$ +HS FP DIR DP CHA UST DPT CUR WND +$ +$---------------------------------------------------------------- +$ +$ Type 2 : Point output +$ Standard line and a number of lines identifying the +$ longitude, latitude and name (C*10) of output points. +$ The list is closed by defining a point with the name +$ 'STOPSTRING'. No point info read if no point output is +$ requested (i.e., no 'STOPSTRING' needed). +$ The raw data file is out_pnt.ww3, +$ see w3iogo.ftn for additional doc. +$ + 20110902 020000 0 20110902 030000 +$ -4.97 48.29 '62069' +$ -6.00 48.29 'Boundary' +$ 0.0 0.0 'STOPSTRING' +$ +$ +$ Type 3 : Output along track. +$ Flag for formatted input file. +$ The data files are track_i.ww3 and +$ track_o.ww3, see w3iotr.ftn for ad. doc. +$ + 20110902 020000 0 20110902 030000 +$ T +$ +$ Type 4 : Restart files (no additional data required). +$ The data file is restartN.ww3, see +$ w3iors.ftn for additional doc. +$ + 20110902 020000 0 20110902 030000 +$ +$ Type 5 : Boundary data (no additional data required). +$ The data file is nestN.ww3, see +$ w3iobcmd.ftn for additional doc. +$ + 20110902 020000 0 20110902 030000 +$ +$ Type 6 : Separated wave field data (dummy for now). +$ First, last step IX and IY, flag for formatted file +$ + 20110902 020000 0 20110902 030000 +$ 0 999 1 0 999 1 T +$ +$ Type 7 : Coupling. (must be fully commented if not used with switch COU) +$ Namelist type selection is used here. +$ Diagnostic fields to exchange. (see namcouple for more information) +$ + 20110902 020000 360 20110902 030000 T + N +$ +$ - Sent fields by ww3: +$ - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +$ - Atmospheric model : ACHA AHS TP (or FP) FWS +$ - Ice model : IC5 TWI +$ + ACHA +$ +$ - Received fields by ww3: +$ - Ocean model : SSH CUR +$ - Atmospheric model : WND +$ - Ice model : ICE IC1 IC5 +$ + WND +$ +$ Homogeneous field data --------------------------------------------- $ +$ Homogeneous fields can be defined by a list of lines containing an ID +$ string 'LEV' 'CUR' 'WND', date and time information (yyyymmdd +$ hhmmss), value (S.I. units), direction (current and wind, oceanogr. +$ convention degrees)) and air-sea temperature difference (degrees C). +$ 'STP' is mandatory stop string. +$ Also defined here are the speed with which the grid is moved +$ continuously, ID string 'MOV', parameters as for 'CUR'. +$ +$ 'CUR' 20110902 000000 2.0 25. + 'STP' +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.nml b/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.nml new file mode 100644 index 000000000..afede1f6e --- /dev/null +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.nml @@ -0,0 +1,338 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_shel.nml - single-grid model ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define top-level model parameters via DOMAIN_NML namelist +! +! * IOSTYP defines the output server mode for parallel implementation. +! 0 : No data server processes, direct access output from +! each process (requires true parallel file system). +! 1 : No data server process. All output for each type +! performed by process that performs computations too. +! 2 : Last process is reserved for all output, and does no +! computing. +! 3 : Multiple dedicated output processes. +! +! * namelist must be terminated with / +! * definitions & defaults: +! DOMAIN%IOSTYP = 1 ! Output server type +! DOMAIN%START = '19680606 000000' ! Start date for the entire model +! DOMAIN%STOP = '19680607 000000' ! Stop date for the entire model +! -------------------------------------------------------------------- ! +&DOMAIN_NML + DOMAIN%START = '20110902 020000' + DOMAIN%STOP = '20110902 030000' +/ + +! -------------------------------------------------------------------- ! +! Define each forcing via the INPUT_NML namelist +! +! * The FORCING flag can be : 'F' for "no forcing" +! 'T' for "external forcing file" +! 'H' for "homogeneous forcing input" +! 'C' for "coupled forcing field" +! +! * homogeneous forcing is not available for ICE_CONC +! +! * The ASSIM flag can : 'F' for "no forcing" +! 'T' for "external forcing file" +! +! * namelist must be terminated with / +! * definitions & defaults: +! INPUT%FORCING%WATER_LEVELS = 'F' +! INPUT%FORCING%CURRENTS = 'F' +! INPUT%FORCING%WINDS = 'F' +! INPUT%FORCING%ICE_CONC = 'F' +! INPUT%FORCING%ICE_PARAM1 = 'F' +! INPUT%FORCING%ICE_PARAM2 = 'F' +! INPUT%FORCING%ICE_PARAM3 = 'F' +! INPUT%FORCING%ICE_PARAM4 = 'F' +! INPUT%FORCING%ICE_PARAM5 = 'F' +! INPUT%FORCING%MUD_DENSITY = 'F' +! INPUT%FORCING%MUD_THICKNESS = 'F' +! INPUT%FORCING%MUD_VISCOSITY = 'F' +! INPUT%ASSIM%MEAN = 'F' +! INPUT%ASSIM%SPEC1D = 'F' +! INPUT%ASSIM%SPEC2D = 'F' +! -------------------------------------------------------------------- ! +&INPUT_NML + INPUT%FORCING%WINDS = 'C' +/ + +! -------------------------------------------------------------------- ! +! Define the output types point parameters via OUTPUT_TYPE_NML namelist +! +! * the point file is a space separated values per line : lon lat 'name' +! +! * the full list of field names is : +! All parameters listed below are available in output file of the types +! ASCII and NetCDF. If selected output file types are grads or grib, +! some parameters may not be available. The first two columns in the +! table below identify such cases by flags, cols 1 (GRB) and 2 (GXO) +! refer to grib (ww3_grib) and grads (gx_outf), respectively. +! +! Columns 3 and 4 provide group and parameter numbers per group. +! Columns 5, 6 and 7 provide: +! 5 - code name (internal) +! 6 - output tags (names used is ASCII file extensions, NetCDF +! variable names and namelist-based selection +! 7 - Long parameter name/definition +! +! G G +! R X Grp Param Code Output Parameter/Group +! B O Numb Numbr Name Tag Definition +! -------------------------------------------------- +! 1 Forcing Fields +! ------------------------------------------------- +! T T 1 1 DW DPT Water depth. +! T T 1 2 C[X,Y] CUR Current velocity. +! T T 1 3 UA WND Wind speed. +! T T 1 4 AS AST Air-sea temperature difference. +! T T 1 5 WLV WLV Water levels. +! T T 1 6 ICE ICE Ice concentration. +! T T 1 7 IBG IBG Iceberg-induced damping. +! T T 1 8 D50 D50 Median sediment grain size. +! T T 1 9 IC1 IC1 Ice thickness. +! T T 1 10 IC5 IC5 Ice flow diameter. +! ------------------------------------------------- +! 2 Standard mean wave Parameters +! ------------------------------------------------- +! T T 2 1 HS HS Wave height. +! T T 2 2 WLM LM Mean wave length. +! T T 2 3 T02 T02 Mean wave period (Tm0,2). +! T T 2 4 TM10 TM10 Mean wave period (Tm-1,0). +! T T 2 5 T01 T01 Mean wave period (Tm0,1). +! T T 2 6 FP0 FP Peak frequency. +! T T 2 7 THM DIR Mean wave direction. +! T T 2 8 THS SPR Mean directional spread. +! T T 2 9 THP0 DP Peak direction. +! T T 2 10 HIG HIG Infragravity height +! T T 2 11 STMAXE MXE Max surface elev (STE) +! T T 2 12 STMAXD MXES St Dev of max surface elev (STE) +! T T 2 13 HMAXE MXH Max wave height (STE) +! T T 2 14 HCMAXE MXHC Max wave height from crest (STE) +! T T 2 15 HMAXD SDMH St Dev of MXC (STE) +! T T 2 16 HCMAXD SDMHC St Dev of MXHC (STE) +! F T 2 17 WBT WBT Domiant wave breaking probability bT +! ------------------------------------------------- +! 3 Spectral Parameters (first 5) +! ------------------------------------------------- +! F F 3 1 EF EF Wave frequency spectrum +! F F 3 2 TH1M TH1M Mean wave direction from a1,b2 +! F F 3 3 STH1M STH1M Directional spreading from a1,b2 +! F F 3 4 TH2M TH2M Mean wave direction from a2,b2 +! F F 3 5 STH2M STH2M Directional spreading from a2,b2 +! F F 3 6 WN WN Wavenumber array +! ------------------------------------------------- +! 4 Spectral Partition Parameters +! ------------------------------------------------- +! T T 4 1 PHS PHS Partitioned wave heights. +! T T 4 2 PTP PTP Partitioned peak period. +! T T 4 3 PLP PLP Partitioned peak wave length. +! T T 4 4 PDIR PDIR Partitioned mean direction. +! T T 4 5 PSI PSPR Partitioned mean directional spread. +! T T 4 6 PWS PWS Partitioned wind sea fraction. +! T T 4 7 PTHP0 PDP Peak wave direction of partition. +! T T 4 8 PQP PQP Goda peakdedness parameter of partition. +! T T 4 9 PPE PPE JONSWAP peak enhancement factor of partition. +! T T 4 10 PGW PGW Gaussian frequency width of partition. +! T T 4 11 PSW PSW Spectral width of partition. +! T T 4 12 PTM1 PTM10 Mean wave period (Tm-1,0) of partition. +! T T 4 13 PT1 PT01 Mean wave period (Tm0,1) of partition. +! T T 4 14 PT2 PT02 Mean wave period (Tm0,2) of partition. +! T T 4 15 PEP PEP Peak spectral density of partition. +! T T 4 16 PWST TWS Total wind sea fraction. +! T T 4 17 PNR PNR Number of partitions. +! ------------------------------------------------- +! 5 Atmosphere-waves layer +! ------------------------------------------------- +! T T 5 1 UST UST Friction velocity. +! F T 5 2 CHARN CHA Charnock parameter +! F T 5 3 CGE CGE Energy flux +! F T 5 4 PHIAW FAW Air-sea energy flux +! F T 5 5 TAUWI[X,Y] TAW Net wave-supported stress +! F T 5 6 TAUWN[X,Y] TWA Negative part of the wave-supported stress +! F F 5 7 WHITECAP WCC Whitecap coverage +! F F 5 8 WHITECAP WCF Whitecap thickness +! F F 5 9 WHITECAP WCH Mean breaking height +! F F 5 10 WHITECAP WCM Whitecap moment +! F F 5 11 FWS FWS Wind sea mean period +! ------------------------------------------------- +! 6 Wave-ocean layer +! ------------------------------------------------- +! F F 6 1 S[XX,YY,XY] SXY Radiation stresses. +! F F 6 2 TAUO[X,Y] TWO Wave to ocean momentum flux +! F F 6 3 BHD BHD Bernoulli head (J term) +! F F 6 4 PHIOC FOC Wave to ocean energy flux +! F F 6 5 TUS[X,Y] TUS Stokes transport +! F F 6 6 USS[X,Y] USS Surface Stokes drift +! F F 6 7 [PR,TP]MS P2S Second-order sum pressure +! F F 6 8 US3D USF Spectrum of surface Stokes drift +! F F 6 9 P2SMS P2L Micro seism source term +! F F 6 10 TAUICE TWI Wave to sea ice stress +! F F 6 11 PHICE FIC Wave to sea ice energy flux +! ------------------------------------------------- +! 7 Wave-bottom layer +! ------------------------------------------------- +! F F 7 1 ABA ABR Near bottom rms amplitides. +! F F 7 2 UBA UBR Near bottom rms velocities. +! F F 7 3 BEDFORMS BED Bedforms +! F F 7 4 PHIBBL FBB Energy flux due to bottom friction +! F F 7 5 TAUBBL TBB Momentum flux due to bottom friction +! ------------------------------------------------- +! 8 Spectrum parameters +! ------------------------------------------------- +! F F 8 1 MSS[X,Y] MSS Mean square slopes +! F F 8 2 MSC[X,Y] MSC Spectral level at high frequency tail +! F F 8 3 WL02[X,Y] WL02 East/X North/Y mean wavelength compon +! F F 8 4 ALPXT AXT Correl sea surface gradients (x,t) +! F F 8 5 ALPYT AYT Correl sea surface gradients (y,t) +! F F 8 6 ALPXY AXY Correl sea surface gradients (x,y) +! ------------------------------------------------- +! 9 Numerical diagnostics +! ------------------------------------------------- +! T T 9 1 DTDYN DTD Average time step in integration. +! T T 9 2 FCUT FC Cut-off frequency. +! T T 9 3 CFLXYMAX CFX Max. CFL number for spatial advection. +! T T 9 4 CFLTHMAX CFD Max. CFL number for theta-advection. +! F F 9 5 CFLKMAX CFK Max. CFL number for k-advection. +! ------------------------------------------------- +! 10 User defined +! ------------------------------------------------- +! F F 10 1 U1 User defined #1. (requires coding ...) +! F F 10 2 U2 User defined #1. (requires coding ...) +! ------------------------------------------------- +! +! Section 4 consist of a set of fields, index 0 = wind sea, index +! 1:NOSWLL are first NOSWLL swell fields. +! +! +! * output track file formatted (T) or unformated (F) +! +! * coupling fields exchanged list is : +! - Sent fields by ww3: +! - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +! - Atmospheric model : ACHA AHS TP (or FP) FWS +! - Ice model : IC5 TWI +! - Received fields by ww3: +! - Ocean model : SSH CUR +! - Atmospheric model : WND +! - Ice model : ICE IC1 IC5 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TYPE%FIELD%LIST = 'unset' +! TYPE%POINT%FILE = 'points.list' +! TYPE%TRACK%FORMAT = T +! TYPE%PARTITION%X0 = 0 +! TYPE%PARTITION%XN = 0 +! TYPE%PARTITION%NX = 0 +! TYPE%PARTITION%Y0 = 0 +! TYPE%PARTITION%YN = 0 +! TYPE%PARTITION%NY = 0 +! TYPE%PARTITION%FORMAT = T +! TYPE%COUPLING%SENT = 'unset' +! TYPE%COUPLING%RECEIVED = 'unset' +! +! -------------------------------------------------------------------- ! +&OUTPUT_TYPE_NML + TYPE%FIELD%LIST = 'HS FP DIR DP CHA UST DPT CUR WND' + TYPE%COUPLING%SENT = 'ACHA' + TYPE%COUPLING%RECEIVED = 'WND' + TYPE%COUPLING%COUPLET0 = .TRUE. +/ + +! -------------------------------------------------------------------- ! +! Define output dates via OUTPUT_DATE_NML namelist +! +! * start and stop times are with format 'yyyymmdd hhmmss' +! * if time stride is equal '0', then output is disabled +! * time stride is given in seconds +! +! * namelist must be terminated with / +! * definitions & defaults: +! DATE%FIELD%START = '19680606 000000' +! DATE%FIELD%STRIDE = '0' +! DATE%FIELD%STOP = '19680607 000000' +! DATE%POINT%START = '19680606 000000' +! DATE%POINT%STRIDE = '0' +! DATE%POINT%STOP = '19680607 000000' +! DATE%TRACK%START = '19680606 000000' +! DATE%TRACK%STRIDE = '0' +! DATE%TRACK%STOP = '19680607 000000' +! DATE%RESTART%START = '19680606 000000' +! DATE%RESTART%STRIDE = '0' +! DATE%RESTART%STOP = '19680607 000000' +! DATE%BOUNDARY%START = '19680606 000000' +! DATE%BOUNDARY%STRIDE = '0' +! DATE%BOUNDARY%STOP = '19680607 000000' +! DATE%PARTITION%START = '19680606 000000' +! DATE%PARTITION%STRIDE = '0' +! DATE%PARTITION%STOP = '19680607 000000' +! DATE%COUPLING%START = '19680606 000000' +! DATE%COUPLING%STRIDE = '0' +! DATE%COUPLING%STOP = '19680607 000000' +! +! DATE%RESTART = '19680606 000000' '0' '19680607 000000' +! -------------------------------------------------------------------- ! +&OUTPUT_DATE_NML + DATE%FIELD = '20110902 020000' '180' '20110902 030000' + DATE%COUPLING = '20110902 020000' '360' '20110902 030000' +/ + +! -------------------------------------------------------------------- ! +! Define homogeneous input via HOMOG_COUNT_NML and HOMOG_INPUT_NML namelist +! +! * the number of each homogeneous input is defined by HOMOG_COUNT +! * the total number of homogeneous input is automatically calculated +! * the homogeneous input must start from index 1 to N +! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV +! * each homogeneous input is defined over a maximum of 3 values detailled below : +! - IC1 is defined by thickness +! - IC2 is defined by viscosity +! - IC3 is defined by density +! - IC4 is defined by modulus +! - IC5 is defined by floe diameter +! - MDN is defined by density +! - MTH is defined by thickness +! - MVS is defined by viscosity +! - LEV is defined by height +! - CUR is defined by speed and direction +! - WND is defined by speed, direction and airseatemp +! - ICE is defined by concentration +! - MOV is defined by speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! HOMOG_COUNT%N_IC1 = 0 +! HOMOG_COUNT%N_IC2 = 0 +! HOMOG_COUNT%N_IC3 = 0 +! HOMOG_COUNT%N_IC4 = 0 +! HOMOG_COUNT%N_IC5 = 0 +! HOMOG_COUNT%N_MDN = 0 +! HOMOG_COUNT%N_MTH = 0 +! HOMOG_COUNT%N_MVS = 0 +! HOMOG_COUNT%N_LEV = 0 +! HOMOG_COUNT%N_CUR = 0 +! HOMOG_COUNT%N_WND = 0 +! HOMOG_COUNT%N_ICE = 0 +! HOMOG_COUNT%N_MOV = 0 +! +! HOMOG_INPUT(I)%NAME = 'unset' +! HOMOG_INPUT(I)%DATE = '19680606 000000' +! HOMOG_INPUT(I)%VALUE1 = 0 +! HOMOG_INPUT(I)%VALUE2 = 0 +! HOMOG_INPUT(I)%VALUE3 = 0 +! -------------------------------------------------------------------- ! +&HOMOG_COUNT_NML +/ + +&HOMOG_INPUT_NML +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! From 76920cef1b8b0e4f59d0ef16a6b0d403cb1d5d4e Mon Sep 17 00:00:00 2001 From: Andy Saulter <48921142+ukmo-ansaulter@users.noreply.github.com> Date: Wed, 7 Oct 2020 10:31:30 +0100 Subject: [PATCH 2/4] Fb uprstr inp (#15) Enhancement to improve the way in which input data is read in and logged by the ww3_uprstr program: * read in variables specific to the update process selected * output the values provided in the ww3_uprstr.out log file * update the .inp template file and regtests to improve clarity and work with the changes * add capability to read inputs from a namelist (ww3_uprstr.nml) file --- model/bin/make_makefile.sh | 3 +- model/ftn/w3nmluprstrmd.ftn | 529 ++++++++++++++++++ model/ftn/ww3_uprstr.ftn | 121 ++-- model/inp/ww3_uprstr.inp | 58 +- model/nml/ww3_uprstr.nml | 113 ++++ regtests/bin/matrix.base | 10 +- regtests/bin/run_test | 12 +- regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.inp | 69 +-- regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.nml | 112 ++++ regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.inp | 69 +-- regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.nml | 112 ++++ regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.inp | 83 ++- regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.nml | 113 ++++ regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.inp | 83 ++- regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.nml | 113 ++++ .../ww3_ta1/input_UPD2_U_cap/ww3_uprstr.inp | 83 ++- .../ww3_ta1/input_UPD2_U_cap/ww3_uprstr.nml | 113 ++++ regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.inp | 83 ++- regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.nml | 113 ++++ regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.inp | 83 ++- regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.nml | 113 ++++ .../ww3_ta1/input_UPD3_U_cap/ww3_uprstr.inp | 83 ++- .../ww3_ta1/input_UPD3_U_cap/ww3_uprstr.nml | 113 ++++ regtests/ww3_ta1/input_UPD5_O/ww3_uprstr.inp | 77 +-- regtests/ww3_ta1/input_UPD5_O/ww3_uprstr.nml | 114 ++++ regtests/ww3_ta1/input_UPD5_U/ww3_uprstr.inp | 77 +-- regtests/ww3_ta1/input_UPD5_U/ww3_uprstr.nml | 114 ++++ .../ww3_ta1/input_UPD5_U_cap/ww3_uprstr.inp | 77 +-- .../ww3_ta1/input_UPD5_U_cap/ww3_uprstr.nml | 114 ++++ regtests/ww3_ta1/input_UPD6_O/ww3_uprstr.inp | 77 +-- regtests/ww3_ta1/input_UPD6_O/ww3_uprstr.nml | 114 ++++ regtests/ww3_ta1/input_UPD6_U/ww3_uprstr.inp | 77 +-- regtests/ww3_ta1/input_UPD6_U/ww3_uprstr.nml | 114 ++++ .../ww3_ta1/input_UPD6_U_cap/ww3_uprstr.inp | 77 +-- .../ww3_ta1/input_UPD6_U_cap/ww3_uprstr.nml | 114 ++++ 35 files changed, 2769 insertions(+), 761 deletions(-) create mode 100644 model/ftn/w3nmluprstrmd.ftn create mode 100644 model/nml/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD2_U_cap/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD3_U_cap/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD5_O/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD5_U/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD5_U_cap/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD6_O/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD6_U/ww3_uprstr.nml create mode 100644 regtests/ww3_ta1/input_UPD6_U_cap/ww3_uprstr.nml diff --git a/model/bin/make_makefile.sh b/model/bin/make_makefile.sh index 15545e493..6b93f072f 100755 --- a/model/bin/make_makefile.sh +++ b/model/bin/make_makefile.sh @@ -1099,7 +1099,7 @@ source="$memcode $pdlibcode $pdlibyow $flx $ln $st $nl $bt $ic $is $db $tr $bs $xx $uostmd" IO='w3iogrmd w3iogomd w3iorsmd' aux="constants w3servmd w3timemd w3arrymd w3dispmd w3gsrumd" - aux="$aux w3parall" ;; + aux="$aux w3parall w3nmluprstrmd" ;; esac # if esmf is included in program name, then @@ -1374,6 +1374,7 @@ 'W3NMLBOUNCMD' ) modtest=w3nmlbouncmd.o ;; 'W3NMLSHELMD' ) modtest=w3nmlshelmd.o ;; 'W3NMLGRIDMD' ) modtest=w3nmlgridmd.o ;; + 'W3NMLUPRSTRMD' ) modtest=w3nmluprstrmd.o ;; 'W3NETCDF' ) modtest=w3netcdf.o ;; 'YOWFUNCTION' ) modtest=yowfunction.o ;; 'YOWDATAPOOL' ) modtest=yowdatapool.o ;; diff --git a/model/ftn/w3nmluprstrmd.ftn b/model/ftn/w3nmluprstrmd.ftn new file mode 100644 index 000000000..1c6cd9949 --- /dev/null +++ b/model/ftn/w3nmluprstrmd.ftn @@ -0,0 +1,529 @@ +#include "w3macros.h" +!/ ------------------------------------------------------------------- / + MODULE W3NMLUPRSTRMD +!/ +!/ +-----------------------------------+ +!/ | WAVEWATCH III NOAA/NCEP | +!/ | M. Accensi | +!/ | | +!/ | FORTRAN 90 | +!/ | Last update : 06-Oct-2020 | +!/ +-----------------------------------+ +!/ +!/ For updates see subroutines. +!/ +! 1. Purpose : +! +! Manages namelists from configuration file ww3_uprstr.nml for ww3_uprstr program +! +!/ ------------------------------------------------------------------- / + + ! module defaults + IMPLICIT NONE + + PUBLIC + + ! restart time + TYPE NML_RESTART_T + CHARACTER(15) :: RESTARTTIME + END TYPE NML_RESTART_T + + ! update approach + TYPE NML_UPDATE_T + CHARACTER(5) :: UPDPROC + REAL :: PRCNTG + REAL :: PRCNTGCAP + REAL :: THRWSEA + CHARACTER(30) :: FILE + END TYPE NML_UPDATE_T + + ! miscellaneous + CHARACTER(256) :: MSG + INTEGER :: NDSN + + + + + CONTAINS +!/ ------------------------------------------------------------------- / + SUBROUTINE W3NMLUPRSTR (NDSI, INFILE, NML_RESTART, NML_UPDATE, IERR) +!/ +!/ +-----------------------------------+ +!/ | WAVEWATCH III NOAA/NCEP | +!/ | M. Accensi | +!/ | | +!/ | FORTRAN 90 | +!/ | Last update : 06-Oct-2020 | +!/ +-----------------------------------+ +!/ +! +! 1. Purpose : +! +! Reads all the namelist to define the output field +! +! 2. Method : +! +! See source term routines. +! +! 3. Parameters : +! +! Parameter list +! ---------------------------------------------------------------- +! NDSI Int. +! INFILE Char. +! NML_RESTART type. +! NML_UPDATE type. +! IERR Int. +! ---------------------------------------------------------------- +! +! 4. Subroutines used : +! +! Name TYPE Module Description +! ---------------------------------------------------------------- +! STRACE Subr. W3SERVMD SUBROUTINE tracing. +! READ_RESTART_NML +! READ_UPDATE_NML +! ---------------------------------------------------------------- +! +! 5. Called by : +! +! Name TYPE Module Description +! ---------------------------------------------------------------- +! WW3_UPRSTR Prog. N/A Update restart file +! ---------------------------------------------------------------- +! +! 6. Error messages : +! +! None. +! +! 7. Remarks : +! +! 8. Structure : +! +! See source code. +! +! 9. Switches : +! +! 10. Source code : +! +!/ ------------------------------------------------------------------- / + + USE W3ODATMD, ONLY: NDSE +!/S USE W3SERVMD, ONLY: STRACE + + IMPLICIT NONE + + INTEGER, INTENT(IN) :: NDSI + CHARACTER*(*), INTENT(IN) :: INFILE + TYPE(NML_RESTART_T), INTENT(INOUT) :: NML_RESTART + TYPE(NML_UPDATE_T), INTENT(INOUT) :: NML_UPDATE + INTEGER, INTENT(OUT) :: IERR +!/S INTEGER, SAVE :: IENT = 0 + + IERR = 0 +!/S CALL STRACE (IENT, 'W3NMLUPRSTR') + + ! open namelist log file + NDSN = 3 + OPEN (NDSN, file=TRIM(INFILE)//'.log', form='formatted', iostat=IERR) + IF (IERR.NE.0) THEN + WRITE (NDSE,'(A)') 'ERROR: open full nml file '//TRIM(INFILE)//'.log failed' + RETURN + END IF + + ! open input file + OPEN (NDSI, file=TRIM(INFILE), form='formatted', status='old', iostat=IERR) + IF (IERR.NE.0) THEN + WRITE (NDSE,'(A)') 'ERROR: open input file '//TRIM(INFILE)//' failed' + RETURN + END IF + + ! read restart time namelist + CALL READ_RESTART_NML (NDSI, NML_RESTART) + CALL REPORT_RESTART_NML (NML_RESTART) + + ! read update approach namelist + CALL READ_UPDATE_NML (NDSI, NML_UPDATE) + CALL REPORT_UPDATE_NML (NML_UPDATE) + + ! close namelist files + CLOSE (NDSI) + CLOSE (NDSN) + + END SUBROUTINE W3NMLUPRSTR + + +!/ ------------------------------------------------------------------- / + + + +!/ ------------------------------------------------------------------- / + + SUBROUTINE READ_RESTART_NML (NDSI, NML_RESTART) +!/ +!/ +-----------------------------------+ +!/ | WAVEWATCH III NOAA/NCEP | +!/ | M. Accensi | +!/ | | +!/ | FORTRAN 90 | +!/ | Last update : 06-Oct-2020 | +!/ +-----------------------------------+ +!/ +! 1. Purpose : +! +! +! 2. Method : +! +! See source term routines. +! +! 3. Parameters : +! +! Parameter list +! ---------------------------------------------------------------- +! NDSI Int. +! NML_RESTART Type. +! ---------------------------------------------------------------- +! +! 4. Subroutines used : +! +! Name TYPE Module Description +! ---------------------------------------------------------------- +! STRACE Subr. W3SERVMD SUBROUTINE tracing. +! ---------------------------------------------------------------- +! +! 5. Called by : +! +! Name TYPE Module Description +! ---------------------------------------------------------------- +! W3NMLUPRSTR Subr. N/A Namelist configuration routine. +! ---------------------------------------------------------------- +! +! 6. Error messages : +! +! None. +! +! 7. Remarks : +! +! 8. Structure : +! +! See source code. +! +! 9. Switches : +! +! 10. Source code : +! +!/ ------------------------------------------------------------------- / + + USE W3ODATMD, ONLY: NDSE + USE W3SERVMD, ONLY: EXTCDE +!/S USE W3SERVMD, ONLY: STRACE + + IMPLICIT NONE + + INTEGER, INTENT(IN) :: NDSI + TYPE(NML_RESTART_T), INTENT(INOUT) :: NML_RESTART + + ! locals + INTEGER :: IERR + TYPE(NML_RESTART_T) :: RESTART + NAMELIST /RESTART_NML/ RESTART +!/S INTEGER, SAVE :: IENT = 0 + + IERR = 0 +!/S CALL STRACE (IENT, 'READ_RESTART_NML') + + ! set default values + RESTART%RESTARTTIME = '19680607 120000' + + ! read restart namelist + REWIND (NDSI) + READ (NDSI, nml=RESTART_NML, iostat=IERR, iomsg=MSG) + IF (IERR.NE.0) THEN + WRITE (NDSE,'(A,/A)') & + 'ERROR: READ_RESTART_NML: namelist read error', & + 'ERROR: '//TRIM(MSG) + CALL EXTCDE (1) + END IF + + ! save namelist + NML_RESTART = RESTART + + END SUBROUTINE READ_RESTART_NML + +!/ ------------------------------------------------------------------- / + + + +!/ ------------------------------------------------------------------- / + + SUBROUTINE READ_UPDATE_NML (NDSI, NML_UPDATE) +!/ +!/ +-----------------------------------+ +!/ | WAVEWATCH III NOAA/NCEP | +!/ | M. Accensi | +!/ | | +!/ | FORTRAN 90 | +!/ | Last update : 06-Oct-2020 | +!/ +-----------------------------------+ +!/ +! 1. Purpose : +! +! +! 2. Method : +! +! See source term routines. +! +! 3. Parameters : +! +! Parameter list +! ---------------------------------------------------------------- +! NDSI Int. +! NML_UPDATE Type. +! ---------------------------------------------------------------- +! +! 4. Subroutines used : +! +! Name TYPE Module Description +! ---------------------------------------------------------------- +! STRACE Subr. W3SERVMD SUBROUTINE tracing. +! ---------------------------------------------------------------- +! +! 5. Called by : +! +! Name TYPE Module Description +! ---------------------------------------------------------------- +! W3NMLUPRSTR Subr. N/A Namelist configuration routine. +! ---------------------------------------------------------------- +! +! 6. Error messages : +! +! None. +! +! 7. Remarks : +! +! 8. Structure : +! +! See source code. +! +! 9. Switches : +! +! 10. Source code : +! +!/ ------------------------------------------------------------------- / + + USE W3ODATMD, ONLY: NDSE + USE W3SERVMD, ONLY: EXTCDE +!/S USE W3SERVMD, ONLY: STRACE + + IMPLICIT NONE + + INTEGER, INTENT(IN) :: NDSI + TYPE(NML_UPDATE_T), INTENT(INOUT) :: NML_UPDATE + + ! locals + INTEGER :: IERR + TYPE(NML_UPDATE_T) :: UPDATE + NAMELIST /UPDATE_NML/ UPDATE +!/S INTEGER, SAVE :: IENT = 0 + + IERR = 0 +!/S CALL STRACE (IENT, 'READ_UPDATE_NML') + + ! set default values for update approach + ! as set, these would run the update but not correct + ! any spectra (scalar correction by factor of 1.0) + UPDATE%UPDPROC = 'UPD0F' ! Update type + UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) + UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor + UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance + UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file + + ! read file namelist + REWIND (NDSI) + READ (NDSI, nml=UPDATE_NML, iostat=IERR, iomsg=MSG) + IF (IERR.GT.0) THEN + WRITE (NDSE,'(A,/A)') & + 'ERROR: READ_UPDATE_NML: namelist read error', & + 'ERROR: '//TRIM(MSG) + CALL EXTCDE (2) + END IF + + ! save namelist + NML_UPDATE = UPDATE + + END SUBROUTINE READ_UPDATE_NML + +!/ ------------------------------------------------------------------- / + + + +!/ ------------------------------------------------------------------- / + + SUBROUTINE REPORT_RESTART_NML (NML_RESTART) +!/ +!/ +-----------------------------------+ +!/ | WAVEWATCH III NOAA/NCEP | +!/ | M. Accensi | +!/ | FORTRAN 90 | +!/ | Last update : 06-Oct-2020 | +!/ +-----------------------------------+ +!/ +!/ +! 1. Purpose : +! +! +! 2. Method : +! +! See source term routines. +! +! 3. Parameters : +! +! Parameter list +! ---------------------------------------------------------------- +! NML_RESTART Type. +! ---------------------------------------------------------------- +! +! 4. Subroutines used : +! +! Name TYPE Module Description +! ---------------------------------------------------------------- +! STRACE Subr. W3SERVMD SUBROUTINE tracing. +! ---------------------------------------------------------------- +! +! 5. Called by : +! +! Name TYPE Module Description +! ---------------------------------------------------------------- +! W3NMLUPRSTR Subr. N/A Namelist configuration routine. +! ---------------------------------------------------------------- +! +! 6. Error messages : +! +! None. +! +! 7. Remarks : +! +! 8. Structure : +! +! See source code. +! +! 9. Switches : +! +! 10. Source code : +! +!/ ------------------------------------------------------------------- / + +!/S USE W3SERVMD, ONLY: STRACE + + IMPLICIT NONE + + TYPE(NML_RESTART_T), INTENT(IN) :: NML_RESTART +!/S INTEGER, SAVE :: IENT = 0 + +!/S CALL STRACE (IENT, 'REPORT_RESTART_NML') + + WRITE (MSG,'(A)') 'RESTART % ' + WRITE (NDSN,'(A)') + WRITE (NDSN,10) TRIM(MSG),'RESTARTTIME = ', TRIM(NML_RESTART%RESTARTTIME) + +10 FORMAT (A,2X,A,A) + + END SUBROUTINE REPORT_RESTART_NML + +!/ ------------------------------------------------------------------- / + + + +!/ ------------------------------------------------------------------- / + + SUBROUTINE REPORT_UPDATE_NML (NML_UPDATE) +!/ +!/ +-----------------------------------+ +!/ | WAVEWATCH III NOAA/NCEP | +!/ | M. Accensi | +!/ | FORTRAN 90 | +!/ | Last update : 06-Oct-2020 | +!/ +-----------------------------------+ +!/ +!/ +! 1. Purpose : +! +! +! 2. Method : +! +! See source term routines. +! +! 3. Parameters : +! +! Parameter list +! ---------------------------------------------------------------- +! NML_UPDATE Type. +! ---------------------------------------------------------------- +! +! 4. Subroutines used : +! +! Name TYPE Module Description +! ---------------------------------------------------------------- +! STRACE Subr. W3SERVMD SUBROUTINE tracing. +! ---------------------------------------------------------------- +! +! 5. Called by : +! +! Name TYPE Module Description +! ---------------------------------------------------------------- +! W3NMLUPRSTR Subr. N/A Namelist configuration routine. +! ---------------------------------------------------------------- +! +! 6. Error messages : +! +! None. +! +! 7. Remarks : +! +! 8. Structure : +! +! See source code. +! +! 9. Switches : +! +! 10. Source code : +! +!/ ------------------------------------------------------------------- / + +!/S USE W3SERVMD, ONLY: STRACE + + IMPLICIT NONE + + TYPE(NML_UPDATE_T), INTENT(IN) :: NML_UPDATE +!/S INTEGER, SAVE :: IENT = 0 + +!/S CALL STRACE (IENT, 'REPORT_UPDATE_NML') + + WRITE (MSG,'(A)') 'UPDATE % ' + WRITE (NDSN,'(A)') + WRITE (NDSN,10) TRIM(MSG),'UPDPROC = ', TRIM(NML_UPDATE%UPDPROC) + ! PRCNTG only used by UPD0F + IF (TRIM(NML_UPDATE%UPDPROC) .EQ. 'UPD0F') THEN + WRITE (NDSN,11) TRIM(MSG),'PRCNTG = ', NML_UPDATE%PRCNTG + ELSE + WRITE (NDSN,11) TRIM(MSG),'PRCNTGCAP = ', NML_UPDATE%PRCNTGCAP + ! THRWSEA only used by UPD5/6 + IF ((TRIM(NML_UPDATE%UPDPROC) .EQ. 'UPD5') .OR. & + (TRIM(NML_UPDATE%UPDPROC) .EQ. 'UPD6')) THEN + WRITE (NDSN,11) TRIM(MSG),'THRWSEA = ', NML_UPDATE%THRWSEA + ENDIF + WRITE (NDSN,10) TRIM(MSG),'FILE = ', TRIM(NML_UPDATE%FILE) + ENDIF + +10 FORMAT (A,2X,A,A) +11 FORMAT (A,2X,A,F5.3) + + END SUBROUTINE REPORT_UPDATE_NML + +!/ ------------------------------------------------------------------- / + + + +END MODULE W3NMLUPRSTRMD + +!/ ------------------------------------------------------------------- / diff --git a/model/ftn/ww3_uprstr.ftn b/model/ftn/ww3_uprstr.ftn index 849a1b247..986e97681 100644 --- a/model/ftn/ww3_uprstr.ftn +++ b/model/ftn/ww3_uprstr.ftn @@ -25,6 +25,7 @@ !/ with SMC grids (Andy Saulter) ( version 6.07 ) !/ 01-Nov-2019 : UPD5 and UPD6 use wind data either from anl.XXX file !/ or from restart under WRST switch (Andy Saulter) +!/ 06-Oct-2020 : Added namelist input options ( version 7.11 ) !/ !/ Copyright 2010 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights @@ -324,6 +325,8 @@ USE W3ODATMD, ONLY: IAPROC, NAPERR, NAPLOG, NDS, NAPOUT USE W3ODATMD, ONLY: NDSE, NDSO, NDST, IDOUT, FNMPRE !/WRST USE W3IDATMD +! + USE W3NMLUPRSTRMD ! IMPLICIT NONE !/ @@ -332,10 +335,13 @@ !/ INTEGER :: NDSI, NDSM, NDSTRC, NTRACE, IERR, I, J CHARACTER :: COMSTR*1 +! + TYPE(NML_RESTART_T) :: NML_RESTART + TYPE(NML_UPDATE_T) :: NML_UPDATE ! ! REAL, ALLOCATABLE :: BETAW(:) ! LOGICAL, ALLOCATABLE :: MASK(:) - LOGICAL :: anl_exists, CORWSEA + LOGICAL :: anl_exists, CORWSEA, FLGNML INTEGER :: IMOD, NDSEN, IX, IY, IK, ITH, & IXW, IYW REAL, ALLOCATABLE :: UPDPRCNT(:,:),VATMP(:), HSIG(:,:), & @@ -394,7 +400,6 @@ ! WRITE (NDSO,900) ! -! !/WRST !Compiling with WRST will allow access to options UPD5/6 !/WRST WRSTON = .TRUE. !/WRST WRITE (NDSO,*) '*** UPRSTR will read wind from restart files' @@ -407,31 +412,53 @@ !/SMC WRITE (NDSO,*) '*** UPRSTR set to work with SMC grid model' !/ !/ ------------------------------------------------------------------- / -! 2. Read the ww3_uprstr.inp -!/ - J = LEN_TRIM(FNMPRE) - OPEN (NDSI,FILE=FNMPRE(:J)//'ww3_uprstr.inp',STATUS='OLD', & - ERR=800,IOSTAT=IERR) - READ (NDSI,'(A)',END=801,ERR=802) COMSTR - IF (COMSTR.EQ.' ') COMSTR = '$' - WRITE (NDSO,901) COMSTR -! - CALL NEXTLN ( COMSTR , NDSI , NDSEN ) - READ (NDSI,*,END=2001,ERR=2002) TIME - CALL NEXTLN ( COMSTR , NDSI , NDSEN ) - READ (NDSI,*,END=2001,ERR=2002) UPDPROC - CALL NEXTLN ( COMSTR , NDSI , NDSEN ) - READ (NDSI,*,END=2001,ERR=2002) PRCNTG - CALL NEXTLN ( COMSTR , NDSI , NDSEN ) - READ (NDSI,*,END=2001,ERR=2002) PRCNTG_CAP -!/F CALL NEXTLN ( COMSTR , NDSI , NDSEN ) -!/F READ (NDSI,*,END=2001,ERR=2002) FLNMCOR - CALL NEXTLN ( COMSTR , NDSI , NDSEN ) - READ (NDSI,*,END=2001,ERR=2002) FLNMANL +! 2. Read the ww3_uprstr input data +! +! process ww3_uprstr namelist +! + INQUIRE(FILE=TRIM(FNMPRE)//"ww3_uprstr.nml", EXIST=FLGNML) + IF (FLGNML) THEN + ! Read namelist + CALL W3NMLUPRSTR (NDSI, TRIM(FNMPRE)//'ww3_uprstr.nml', NML_RESTART, & + NML_UPDATE, IERR) + READ(NML_RESTART%RESTARTTIME, *) TIME + UPDPROC = NML_UPDATE%UPDPROC + PRCNTG = NML_UPDATE%PRCNTG + PRCNTG_CAP = NML_UPDATE%PRCNTGCAP + THRWSEA = NML_UPDATE%THRWSEA + FLNMANL = NML_UPDATE%FILE + END IF +!/ +! otherwise read from the .inp file + IF (.NOT. FLGNML) THEN + J = LEN_TRIM(FNMPRE) + OPEN (NDSI,FILE=FNMPRE(:J)//'ww3_uprstr.inp',STATUS='OLD', & + ERR=800,IOSTAT=IERR) + READ (NDSI,'(A)',END=801,ERR=802) COMSTR + IF (COMSTR.EQ.' ') COMSTR = '$' + WRITE (NDSO,901) COMSTR +! + CALL NEXTLN ( COMSTR , NDSI , NDSEN ) + READ (NDSI,*,END=2001,ERR=2002) TIME + CALL NEXTLN ( COMSTR , NDSI , NDSEN ) + READ (NDSI,*,END=2001,ERR=2002) UPDPROC + CALL NEXTLN ( COMSTR , NDSI , NDSEN ) + IF (UPDPROC .EQ. 'UPD0F') THEN + READ (NDSI,*,END=2001,ERR=2002) PRCNTG + ELSE + IF ((UPDPROC .EQ. 'UPD2') .OR. (UPDPROC .EQ. 'UPD3')) THEN +! CALL NEXTLN ( COMSTR , NDSI , NDSEN ) + READ (NDSI,*,END=2001,ERR=2002) PRCNTG_CAP +!/F CALL NEXTLN ( COMSTR , NDSI , NDSEN ) +!/F READ (NDSI,*,END=2001,ERR=2002) FLNMCOR + ELSE + READ (NDSI,*,END=2001,ERR=2002) PRCNTG_CAP, THRWSEA + END IF + CALL NEXTLN ( COMSTR , NDSI , NDSEN ) + READ (NDSI,*,END=2001,ERR=2002) FLNMANL + END IF + ENDIF !/T WRITE (NDSO,*)' TIME: ',TIME -!/T WRITE (NDSO,1004)' FLNMANL: ', trim(FLNMANL), & -!/T ' UPDPROC: ', trim(UPDPROC) -!/T WRITE (NDSO,*)' PRCNTG: ', PRCNTG !/ !/ ------------------------------------------------------------------- / ! 3. Read model definition file. @@ -453,7 +480,8 @@ 'file is not read' CALL EXTCDE ( 1 ) ELSE - WRITE (NDSO,1004) 'Updating Restart File' + WRITE (NDSO,1004) ' Updating Restart File' + WRITE (NDSO,*) ' TIME: ',TIME END IF END IF !/T WRITE (NDST,*), MYNAME,' : Exporting VA as imported to VA01.txt' @@ -469,6 +497,7 @@ !/ CASE ('UPD0F') WRITE (NDSO,902) 'UPD0F' + WRITE (NDSO,1005) ' PRCNTG = ',PRCNTG !/T ALLOCATE( VATMP (SIZE(VA ,1) )) !/T ALLOCATE( SWHANL (SIZE(MAPSTA,1), SIZE(MAPSTA,2))) !/T ALLOCATE( SWHBCKG(SIZE(MAPSTA,1), SIZE(MAPSTA,2))) @@ -500,6 +529,8 @@ !/ CASE ('UPD2') WRITE (NDSO,902) 'UPD2' + WRITE (NDSO,1005) ' PRCNTG_CAP = ',PRCNTG_CAP + WRITE (NDSO,1006) ' Reading updated SWH from: ',trim(FLNMANL) ! ! Array allocation ALLOCATE ( VATMP(SIZE(VA,1))) @@ -572,6 +603,8 @@ !/ CASE ('UPD3') WRITE (NDSO,902) 'UPD3' + WRITE (NDSO,1005) ' PRCNTG_CAP = ',PRCNTG_CAP + WRITE (NDSO,1006) ' Reading updated SWH from: ',trim(FLNMANL) ! ! Array allocation ALLOCATE ( VATMP(SIZE(VA,1))) @@ -667,9 +700,12 @@ !/ CASE ('UPD5') WRITE (NDSO,902) 'UPD5' + WRITE (NDSO,1005) ' PRCNTG_CAP = ',PRCNTG_CAP + WRITE (NDSO,1005) ' THRWSEA = ',THRWSEA + WRITE (NDSO,1006) ' Reading updated SWH from: ',trim(FLNMANL) ! Presently set hardwired THRWSEA energy threshold here ! not user defined in input file - THRWSEA = 0.7 + ! THRWSEA = 0.7 ! ! Array allocation ALLOCATE ( VATMP(SIZE(VA,1))) @@ -734,8 +770,11 @@ !/SMC IX = 1 !/SMC IY = ISEA !/SMC IF( SMCWND ) THEN -!/SMC IXW = IX -!/SMC IYW = IY +!/SMC ! Wind arrays allocated using (X,Y) convention for regular grids +!/SMC ! but overriding here for the SMC grid which are always defined +!/SMC ! as (NSEA,1) by switching the IY and IX dimension values around +!/SMC IXW = IY +!/SMC IYW = IX !/SMC ELSE !/SMC IXW = MAPSF(ISEA,1) !/SMC IYW= MAPSF(ISEA,2) @@ -788,10 +827,13 @@ !/ CASE ('UPD6') WRITE (NDSO,902) 'UPD6' + WRITE (NDSO,1005) ' PRCNTG_CAP = ',PRCNTG_CAP + WRITE (NDSO,1005) ' THRWSEA = ',THRWSEA + WRITE (NDSO,1006) ' Reading updated SWH from: ',trim(FLNMANL) ! Presently set hardwired CORWSEA logical and THRWSEA energy ! thresholds here, not user defined in input file CORWSEA = .FALSE. - THRWSEA = 0.7 + !THRWSEA = 0.7 ! ! Array allocation ALLOCATE ( VATMP(SIZE(VA,1))) @@ -856,8 +898,11 @@ !/SMC IX = 1 !/SMC IY = ISEA !/SMC IF( SMCWND ) THEN -!/SMC IXW = IX -!/SMC IYW = IY +!/SMC ! Wind arrays allocated using (X,Y) convention for regular grids +!/SMC ! but overriding here for the SMC grid which are always defined +!/SMC ! as (NSEA,1) by switching the IY and IX dimension values around +!/SMC IXW = IY +!/SMC IYW = IX !/SMC ELSE !/SMC IXW = MAPSF(ISEA,1) !/SMC IYW = MAPSF(ISEA,2) @@ -982,7 +1027,7 @@ ! 999 FORMAT (/' End of program '/ & ' ========================================='/ & - ' WAVEWATCH III ww3_uprsrt '/) + ' WAVEWATCH III ww3_uprstr '/) ! 1000 FORMAT (/' *** WAVEWATCH III ERROR IN W3UPRSTR : '/ & ' ERROR IN OPENING INPUT FILE'/ & @@ -995,7 +1040,8 @@ ' ERROR IN READING FROM INPUT FILE'/ & ' IOSTAT =',I5/) 1004 FORMAT (/' '/,A/) -1005 FORMAT (/' '/,A, I5, I5/) +1005 FORMAT (' ',A, F6.3/) +1006 FORMAT (' ',A, A/) ! !/ CONTAINS @@ -1109,6 +1155,11 @@ CHARACTER(12), PARAMETER :: MYNAME='CHECK_PRCNTG' !/T !/T WRITE (NDSO,*) trim(MYNAME)," The original correction is ",PRCNTG +!/T WRITE (NDSO,*) trim(MYNAME)," The cap is ",PRCNTG_CAP + IF ( PRCNTG_CAP < 1. ) THEN + WRITE (NDSO,*) trim(MYNAME)," WARNING: PRCNTG_CAP set < 1." + WRITE (NDSO,*) trim(MYNAME)," This may introduce spurious corrections" + END IF !/T WRITE (NDSO,*) trim(MYNAME)," The cap is ",PRCNTG_CAP IF ( PRCNTG > 1. ) THEN !/T WRITE (NDSO,*) trim(MYNAME)," PRCNTG > 1." diff --git a/model/inp/ww3_uprstr.inp b/model/inp/ww3_uprstr.inp index ad9012e5c..f0ee6faf9 100644 --- a/model/inp/ww3_uprstr.inp +++ b/model/inp/ww3_uprstr.inp @@ -12,14 +12,31 @@ $ $ $ $ $ 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 $ +$ the grid points using: $ +$ PRCNTG is input for option UPD0F and is the correction $ +$ factor applied to all the gridpoints (e.g. 1.) $ +$ $ $ 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. $ +$ -------------------------------------------------------------------- $ +$ UPD0F +$ 0.6754 +$ $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>1 each gridpoint has its own update factor and uses: $ +$ PRCNTG_CAP - global input for option UPD2+ and is a cap on $ +$ the maximum SWH correction factor applied to all the $ +$ gridpoints, as both a multiple or divisor (e.g. cap at 5.0 $ +$ means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value $ +$ given should not be less than 1.0 $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ $ 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 $ @@ -36,6 +53,21 @@ $ 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. $ +$ -------------------------------------------------------------------- $ + UPD2 + 10.0 + anl.grbtxt +$ $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>=5 each gridpoint has its own update factor and uses $ +$ wind field data to evaluate wind-sea and swell fields. Also $ +$ uses: $ +$ PRCNTG_CAP - see above $ +$ THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the $ +$ sea-state is considered wind-sea dominated by the DA scheme $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ $ $ UPD5 :: Option 5 Corrections are calculated as per UPD2 but are $ $ applied to wind-sea parts of the spectrum only when $ $ wind-sea is the dominant component, otherwise the whole $ @@ -47,24 +79,10 @@ $ wind-sea components are also shifted in frequency space $ $ using Toba (1973) $ $ Expected input: the Analysis Hs field plus background wind $ $ speed and direction $ - UPD3 -$ -$ PRCNTG is input for option UPD0F and is the correction factor $ -$ applied to all the gridpoints (e.g. 1.) $ -$ - 0.6754 -$ -$ PRCNTG_CAP is global input for option UPD2+ and is a cap on $ -$ the maximum SWH correction factor applied to all the gridpoints, as $ -$ both a multiple or divisor (e.g. cap at 5.0 means SWHANL/SWHBKG<=5.0 $ -$ and SWHANL/SWHBKG>=0.2). The value given should not be less than 1.0 $ -$ $ - 10. -$ $ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ $ - anl.grbtxt +$ -------------------------------------------------------------------- $ +$ UPD6 +$ 10.0 0.7 +$ anl.grbtxt $ $ $ -------------------------------------------------------------------- $ $ WAVEWATCH III EoF ww3_uprstr.inp $ diff --git a/model/nml/ww3_uprstr.nml b/model/nml/ww3_uprstr.nml new file mode 100644 index 000000000..947e024b8 --- /dev/null +++ b/model/nml/ww3_uprstr.nml @@ -0,0 +1,113 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD2' + UPDATE%PRCNTGCAP = 10.0 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/bin/matrix.base b/regtests/bin/matrix.base index 6e9134b8e..f20c00ecd 100755 --- a/regtests/bin/matrix.base +++ b/regtests/bin/matrix.base @@ -2010,18 +2010,18 @@ if [ "$assim" = 'y' ] then echo ' ' >> matrix.body - echo "$rtst -s ST4 -w work_UPD0F_O -i input_UPD0F_O $ww3 ww3_ta1" >> matrix.body + echo "$rtst -s ST4 -N -w work_UPD0F_O -i input_UPD0F_O $ww3 ww3_ta1" >> matrix.body echo "$rtst -s ST4 -w work_UPD0F_U -i input_UPD0F_U $ww3 ww3_ta1" >> matrix.body echo "$rtst -s ST4 -w work_UPD2_O -i input_UPD2_O $ww3 ww3_ta1" >> matrix.body - echo "$rtst -s ST4 -w work_UPD2_U -i input_UPD2_U $ww3 ww3_ta1" >> matrix.body + echo "$rtst -s ST4 -N -w work_UPD2_U -i input_UPD2_U $ww3 ww3_ta1" >> matrix.body echo "$rtst -s ST4 -w work_UPD2_U_cap -i input_UPD2_U_cap $ww3 ww3_ta1" >> matrix.body echo "$rtst -s ST4 -w work_UPD3_O -i input_UPD3_O $ww3 ww3_ta1" >> matrix.body echo "$rtst -s ST4 -w work_UPD3_U -i input_UPD3_U $ww3 ww3_ta1" >> matrix.body - echo "$rtst -s ST4 -w work_UPD3_U_cap -i input_UPD3_U_cap $ww3 ww3_ta1" >> matrix.body + echo "$rtst -s ST4 -N -w work_UPD3_U_cap -i input_UPD3_U_cap $ww3 ww3_ta1" >> matrix.body echo "$rtst -s ST4 -w work_UPD5_O -i input_UPD5_O $ww3 ww3_ta1" >> matrix.body - echo "$rtst -s ST4 -w work_UPD5_U -i input_UPD5_U $ww3 ww3_ta1" >> matrix.body + echo "$rtst -s ST4 -N -w work_UPD5_U -i input_UPD5_U $ww3 ww3_ta1" >> matrix.body echo "$rtst -s ST4 -w work_UPD5_U_cap -i input_UPD5_U_cap $ww3 ww3_ta1" >> matrix.body - echo "$rtst -s ST4 -w work_UPD6_O -i input_UPD6_O $ww3 ww3_ta1" >> matrix.body + echo "$rtst -s ST4 -N -w work_UPD6_O -i input_UPD6_O $ww3 ww3_ta1" >> matrix.body echo "$rtst -s ST4 -w work_UPD6_U -i input_UPD6_U $ww3 ww3_ta1" >> matrix.body echo "$rtst -s ST4 -w work_UPD6_U_cap -i input_UPD6_U_cap $ww3 ww3_ta1" >> matrix.body fi diff --git a/regtests/bin/run_test b/regtests/bin/run_test index cdc02dfb0..0ff6b5495 100755 --- a/regtests/bin/run_test +++ b/regtests/bin/run_test @@ -2547,12 +2547,12 @@ then # Check for input file # select inp/nml files -#if [ $nml_input ] && [ ! -z "`ls ${path_i}/${prog}.nml 2>/dev/null`" ] -#then -# ifile="`ls ${path_i}/${prog}.nml 2>/dev/null`" -#else - ifile="`ls $path_i/$prog.inp 2>/dev/null`" -#fi + if [ $nml_input ] && [ ! -z "`ls ${path_i}/${prog}.nml 2>/dev/null`" ] + then + ifile="`ls ${path_i}/${prog}.nml 2>/dev/null`" + else + ifile="`ls $path_i/$prog.inp 2>/dev/null`" + fi if [ $? = 0 ] then diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.inp index a348eb153..61ad1fefa 100644 --- a/regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.inp @@ -1,57 +1,32 @@ $ -------------------------------------------------------------------- $ $ 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. +$ - 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 using: $ +$ PRCNTG is input for option UPD0F and is the correction $ +$ factor applied to all the gridpoints (e.g. 1.) $ +$ $ +$ 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 $ +$ -------------------------------------------------------------------- $ UPD0F -$ -$ PRCNTG is input for option 1 and it is the percentage of correction -$applied to all the gridpoints (e.g. 1.) -$ 0.6754 $ -$ 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. $ -$ - anl.grbtxt -$ $ -------------------------------------------------------------------- $ $ WAVEWATCH III EoF ww3_uprstr.inp $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.nml new file mode 100644 index 000000000..b1fbb0f8b --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_O/ww3_uprstr.nml @@ -0,0 +1,112 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD0F' + UPDATE%PRCNTG = 0.6754 +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.inp index c16e94d74..8ffc31714 100644 --- a/regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.inp @@ -1,57 +1,32 @@ $ -------------------------------------------------------------------- $ $ 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. +$ - 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 using: $ +$ PRCNTG is input for option UPD0F and is the correction $ +$ factor applied to all the gridpoints (e.g. 1.) $ +$ $ +$ 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 $ +$ -------------------------------------------------------------------- $ UPD0F -$ -$ PRCNTG is input for option 1 and it is the percentage of correction -$applied to all the gridpoints (e.g. 1.) -$ 4.6754 $ -$ 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. $ -$ - anl.grbtxt -$ $ -------------------------------------------------------------------- $ $ WAVEWATCH III EoF ww3_uprstr.inp $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.nml new file mode 100644 index 000000000..9a0529b27 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD0F_U/ww3_uprstr.nml @@ -0,0 +1,112 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD0F' + UPDATE%PRCNTG = 4.6754 +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.inp index 904aa5052..6e06dea4b 100644 --- a/regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.inp @@ -1,57 +1,46 @@ $ -------------------------------------------------------------------- $ $ 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. +$ - 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 $ +$ $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>1 each gridpoint has its own update factor and uses: $ +$ PRCNTG_CAP - global input for option UPD2+ and is a cap on $ +$ the maximum SWH correction factor applied to all the $ +$ gridpoints, as both a multiple or divisor (e.g. cap at 5.0 $ +$ means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value $ +$ given should not be less than 1.0 $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ +$ 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 and cap $ +$ for the last gross check. $ +$ 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. $ +$ -------------------------------------------------------------------- $ UPD2 -$ -$ PRCNTG is input for option 1 and it is the percentage of correction -$applied to all the gridpoints (e.g. 1.) -$ - 0.6754 -$ -$ 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) -$ - 3 -$ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ + 3.0 anl.grbtxt $ $ -------------------------------------------------------------------- $ $ WAVEWATCH III EoF ww3_uprstr.inp $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.nml new file mode 100644 index 000000000..023b5f4ac --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_O/ww3_uprstr.nml @@ -0,0 +1,113 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD2' + UPDATE%PRCNTGCAP = 3.0 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.inp index 5150e74bf..bffe7786a 100644 --- a/regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.inp @@ -1,57 +1,46 @@ $ -------------------------------------------------------------------- $ $ 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. +$ - 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 $ +$ $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>1 each gridpoint has its own update factor and uses: $ +$ PRCNTG_CAP - global input for option UPD2+ and is a cap on $ +$ the maximum SWH correction factor applied to all the $ +$ gridpoints, as both a multiple or divisor (e.g. cap at 5.0 $ +$ means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value $ +$ given should not be less than 1.0 $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ +$ 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 and cap $ +$ for the last gross check. $ +$ 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. $ +$ -------------------------------------------------------------------- $ UPD2 -$ -$ PRCNTG is input for option 1 and it is the percentage of correction -$applied to all the gridpoints (e.g. 1.) -$ - 0.6754 -$ -$ 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) -$ - 10 -$ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ + 10.0 anl.grbtxt $ $ -------------------------------------------------------------------- $ $ WAVEWATCH III EoF ww3_uprstr.inp $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.nml new file mode 100644 index 000000000..947e024b8 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U/ww3_uprstr.nml @@ -0,0 +1,113 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD2' + UPDATE%PRCNTGCAP = 10.0 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_uprstr.inp index 6975b3943..1583b9d0d 100644 --- a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_uprstr.inp @@ -1,57 +1,46 @@ $ -------------------------------------------------------------------- $ $ 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. +$ - 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 $ +$ $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>1 each gridpoint has its own update factor and uses: $ +$ PRCNTG_CAP - global input for option UPD2+ and is a cap on $ +$ the maximum SWH correction factor applied to all the $ +$ gridpoints, as both a multiple or divisor (e.g. cap at 5.0 $ +$ means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value $ +$ given should not be less than 1.0 $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ +$ 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 and cap $ +$ for the last gross check. $ +$ 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. $ +$ -------------------------------------------------------------------- $ UPD2 -$ -$ PRCNTG is input for option 1 and it is the percentage of correction -$applied to all the gridpoints (e.g. 1.) -$ - 0.6754 -$ -$ 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.333 -$ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ + 1.333 anl.grbtxt $ $ -------------------------------------------------------------------- $ $ WAVEWATCH III EoF ww3_uprstr.inp $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD2_U_cap/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_uprstr.nml new file mode 100644 index 000000000..e28b96210 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD2_U_cap/ww3_uprstr.nml @@ -0,0 +1,113 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD2' + UPDATE%PRCNTGCAP = 1.333 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.inp index 03930f941..40321fea0 100644 --- a/regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.inp @@ -1,57 +1,46 @@ $ -------------------------------------------------------------------- $ $ 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. +$ - 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 $ +$ $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>1 each gridpoint has its own update factor and uses: $ +$ PRCNTG_CAP - global input for option UPD2+ and is a cap on $ +$ the maximum SWH correction factor applied to all the $ +$ gridpoints, as both a multiple or divisor (e.g. cap at 5.0 $ +$ means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value $ +$ given should not be less than 1.0 $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ +$ 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 and cap $ +$ for the last gross check. $ +$ 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.) -$ - 0.6754 -$ -$ 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) -$ - 3 -$ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ + 3.0 anl.grbtxt $ $ -------------------------------------------------------------------- $ $ WAVEWATCH III EoF ww3_uprstr.inp $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.nml new file mode 100644 index 000000000..b1e82c898 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_O/ww3_uprstr.nml @@ -0,0 +1,113 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD3' + UPDATE%PRCNTGCAP = 3.0 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.inp index 9b403ab97..f967ad3b6 100644 --- a/regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.inp @@ -1,57 +1,46 @@ $ -------------------------------------------------------------------- $ $ 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. +$ - 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 $ +$ $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>1 each gridpoint has its own update factor and uses: $ +$ PRCNTG_CAP - global input for option UPD2+ and is a cap on $ +$ the maximum SWH correction factor applied to all the $ +$ gridpoints, as both a multiple or divisor (e.g. cap at 5.0 $ +$ means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value $ +$ given should not be less than 1.0 $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ +$ 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 and cap $ +$ for the last gross check. $ +$ 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.) -$ - 0.6754 -$ -$ 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) -$ - 10 -$ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ + 10.0 anl.grbtxt $ $ -------------------------------------------------------------------- $ $ WAVEWATCH III EoF ww3_uprstr.inp $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.nml new file mode 100644 index 000000000..a111e1c79 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U/ww3_uprstr.nml @@ -0,0 +1,113 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD3' + UPDATE%PRCNTGCAP = 10.0 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_uprstr.inp index 6b75a442e..47b31c47f 100644 --- a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_uprstr.inp @@ -1,57 +1,46 @@ $ -------------------------------------------------------------------- $ $ 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. +$ - 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 $ +$ $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>1 each gridpoint has its own update factor and uses: $ +$ PRCNTG_CAP - global input for option UPD2+ and is a cap on $ +$ the maximum SWH correction factor applied to all the $ +$ gridpoints, as both a multiple or divisor (e.g. cap at 5.0 $ +$ means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value $ +$ given should not be less than 1.0 $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ +$ 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 and cap $ +$ for the last gross check. $ +$ 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.) -$ - 0.6754 -$ -$ 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.333 -$ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ + 1.333 anl.grbtxt $ $ -------------------------------------------------------------------- $ $ WAVEWATCH III EoF ww3_uprstr.inp $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD3_U_cap/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_uprstr.nml new file mode 100644 index 000000000..ef20c9001 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD3_U_cap/ww3_uprstr.nml @@ -0,0 +1,113 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD3' + UPDATE%PRCNTGCAP = 1.333 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD5_O/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD5_O/ww3_uprstr.inp index cef44a1a0..86efe4a3f 100644 --- a/regtests/ww3_ta1/input_UPD5_O/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD5_O/ww3_uprstr.inp @@ -1,72 +1,43 @@ $ -------------------------------------------------------------------- $ $ 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 -$ +$ - 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 and cap $ -$ for the last gross check. $ -$ 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. $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>=5 each gridpoint has its own update factor and uses $ +$ wind field data to evaluate wind-sea and swell fields. Also $ +$ uses: $ +$ PRCNTG_CAP - see above $ +$ THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the $ +$ sea-state is considered wind-sea dominated by the DA scheme $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ $ $ UPD5 :: Option 5 Corrections are calculated as per UPD2 but are $ $ applied to wind-sea parts of the spectrum only when $ $ wind-sea is the dominant component, otherwise the whole $ $ spectrum is corrected $ $ Expected input: the Analysis Hs field plus background wind $ -$ speed and direction, in text format $ +$ speed and direction $ $ UPD6 :: Option 6 Corrections are calculated as per UPD5 but $ $ wind-sea components are also shifted in frequency space $ $ using Toba (1973) $ $ Expected input: the Analysis Hs field plus background wind $ -$ speed and direction, in text format $ +$ speed and direction $ +$ -------------------------------------------------------------------- $ UPD5 -$ -$ PRCNTG is input for option UPD0F and is the correction factor $ -$ applied to all the gridpoints (e.g. 1.) $ -$ - 0.6754 -$ -$ PRCNTG_CAP is global input for option UPD2+ and is a cap on $ -$ the maximum SWH correction factor applied to all the gridpoints, as $ -$ both a multiple or divisor (e.g. cap at 5.0 means SWHANL/SWHBKG<=5.0 $ -$ and SWHANL/SWHBKG>=0.2). The value given should not be less than 1.0 $ -$ - 10.0 -$ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ + 10.0 0.7 anl.grbtxt -$ +$ $ $ -------------------------------------------------------------------- $ -$ WAVEWATCH III EoF ww3_uprstr.inp +$ WAVEWATCH III EoF ww3_uprstr.inp $ $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD5_O/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD5_O/ww3_uprstr.nml new file mode 100644 index 000000000..c5d576df0 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD5_O/ww3_uprstr.nml @@ -0,0 +1,114 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD5' + UPDATE%PRCNTGCAP = 10.0 + UPDATE%THRWSEA = 0.7 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD5_U/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD5_U/ww3_uprstr.inp index cef44a1a0..86efe4a3f 100644 --- a/regtests/ww3_ta1/input_UPD5_U/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD5_U/ww3_uprstr.inp @@ -1,72 +1,43 @@ $ -------------------------------------------------------------------- $ $ 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 -$ +$ - 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 and cap $ -$ for the last gross check. $ -$ 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. $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>=5 each gridpoint has its own update factor and uses $ +$ wind field data to evaluate wind-sea and swell fields. Also $ +$ uses: $ +$ PRCNTG_CAP - see above $ +$ THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the $ +$ sea-state is considered wind-sea dominated by the DA scheme $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ $ $ UPD5 :: Option 5 Corrections are calculated as per UPD2 but are $ $ applied to wind-sea parts of the spectrum only when $ $ wind-sea is the dominant component, otherwise the whole $ $ spectrum is corrected $ $ Expected input: the Analysis Hs field plus background wind $ -$ speed and direction, in text format $ +$ speed and direction $ $ UPD6 :: Option 6 Corrections are calculated as per UPD5 but $ $ wind-sea components are also shifted in frequency space $ $ using Toba (1973) $ $ Expected input: the Analysis Hs field plus background wind $ -$ speed and direction, in text format $ +$ speed and direction $ +$ -------------------------------------------------------------------- $ UPD5 -$ -$ PRCNTG is input for option UPD0F and is the correction factor $ -$ applied to all the gridpoints (e.g. 1.) $ -$ - 0.6754 -$ -$ PRCNTG_CAP is global input for option UPD2+ and is a cap on $ -$ the maximum SWH correction factor applied to all the gridpoints, as $ -$ both a multiple or divisor (e.g. cap at 5.0 means SWHANL/SWHBKG<=5.0 $ -$ and SWHANL/SWHBKG>=0.2). The value given should not be less than 1.0 $ -$ - 10.0 -$ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ + 10.0 0.7 anl.grbtxt -$ +$ $ $ -------------------------------------------------------------------- $ -$ WAVEWATCH III EoF ww3_uprstr.inp +$ WAVEWATCH III EoF ww3_uprstr.inp $ $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD5_U/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD5_U/ww3_uprstr.nml new file mode 100644 index 000000000..d3e4f5c01 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD5_U/ww3_uprstr.nml @@ -0,0 +1,114 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant varaibles should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD5' + UPDATE%PRCNTGCAP = 10.0 + UPDATE%THRWSEA = 0.7 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD5_U_cap/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD5_U_cap/ww3_uprstr.inp index 889a8fa09..742e1d538 100644 --- a/regtests/ww3_ta1/input_UPD5_U_cap/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD5_U_cap/ww3_uprstr.inp @@ -1,72 +1,43 @@ $ -------------------------------------------------------------------- $ $ 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 -$ +$ - 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 and cap $ -$ for the last gross check. $ -$ 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. $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>=5 each gridpoint has its own update factor and uses $ +$ wind field data to evaluate wind-sea and swell fields. Also $ +$ uses: $ +$ PRCNTG_CAP - see above $ +$ THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the $ +$ sea-state is considered wind-sea dominated by the DA scheme $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ $ $ UPD5 :: Option 5 Corrections are calculated as per UPD2 but are $ $ applied to wind-sea parts of the spectrum only when $ $ wind-sea is the dominant component, otherwise the whole $ $ spectrum is corrected $ $ Expected input: the Analysis Hs field plus background wind $ -$ speed and direction, in text format $ +$ speed and direction $ $ UPD6 :: Option 6 Corrections are calculated as per UPD5 but $ $ wind-sea components are also shifted in frequency space $ $ using Toba (1973) $ $ Expected input: the Analysis Hs field plus background wind $ -$ speed and direction, in text format $ +$ speed and direction $ +$ -------------------------------------------------------------------- $ UPD5 -$ -$ PRCNTG is input for option UPD0F and is the correction factor $ -$ applied to all the gridpoints (e.g. 1.) $ -$ - 0.6754 -$ -$ PRCNTG_CAP is global input for option UPD2+ and is a cap on $ -$ the maximum SWH correction factor applied to all the gridpoints, as $ -$ both a multiple or divisor (e.g. cap at 5.0 means SWHANL/SWHBKG<=5.0 $ -$ and SWHANL/SWHBKG>=0.2). The value given should not be less than 1.0 $ -$ - 1.333 -$ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ + 1.333 0.7 anl.grbtxt -$ +$ $ $ -------------------------------------------------------------------- $ -$ WAVEWATCH III EoF ww3_uprstr.inp +$ WAVEWATCH III EoF ww3_uprstr.inp $ $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD5_U_cap/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD5_U_cap/ww3_uprstr.nml new file mode 100644 index 000000000..168d38ff7 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD5_U_cap/ww3_uprstr.nml @@ -0,0 +1,114 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD5' + UPDATE%PRCNTGCAP = 1.333 + UPDATE%THRWSEA = 0.7 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD6_O/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD6_O/ww3_uprstr.inp index ca8dc3fe7..118c94e88 100644 --- a/regtests/ww3_ta1/input_UPD6_O/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD6_O/ww3_uprstr.inp @@ -1,72 +1,43 @@ $ -------------------------------------------------------------------- $ $ 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 -$ +$ - 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 and cap $ -$ for the last gross check. $ -$ 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. $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>=5 each gridpoint has its own update factor and uses $ +$ wind field data to evaluate wind-sea and swell fields. Also $ +$ uses: $ +$ PRCNTG_CAP - see above $ +$ THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the $ +$ sea-state is considered wind-sea dominated by the DA scheme $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ $ $ UPD5 :: Option 5 Corrections are calculated as per UPD2 but are $ $ applied to wind-sea parts of the spectrum only when $ $ wind-sea is the dominant component, otherwise the whole $ $ spectrum is corrected $ $ Expected input: the Analysis Hs field plus background wind $ -$ speed and direction, in text format $ +$ speed and direction $ $ UPD6 :: Option 6 Corrections are calculated as per UPD5 but $ $ wind-sea components are also shifted in frequency space $ $ using Toba (1973) $ $ Expected input: the Analysis Hs field plus background wind $ -$ speed and direction, in text format $ +$ speed and direction $ +$ -------------------------------------------------------------------- $ UPD6 -$ -$ PRCNTG is input for option UPD0F and is the correction factor $ -$ applied to all the gridpoints (e.g. 1.) $ -$ - 0.6754 -$ -$ PRCNTG_CAP is global input for option UPD2+ and is a cap on $ -$ the maximum SWH correction factor applied to all the gridpoints, as $ -$ both a multiple or divisor (e.g. cap at 5.0 means SWHANL/SWHBKG<=5.0 $ -$ and SWHANL/SWHBKG>=0.2). The value given should not be less than 1.0 $ -$ - 5.0 -$ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ + 5.0 0.7 anl.grbtxt -$ +$ $ $ -------------------------------------------------------------------- $ -$ WAVEWATCH III EoF ww3_uprstr.inp +$ WAVEWATCH III EoF ww3_uprstr.inp $ $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD6_O/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD6_O/ww3_uprstr.nml new file mode 100644 index 000000000..9557a374f --- /dev/null +++ b/regtests/ww3_ta1/input_UPD6_O/ww3_uprstr.nml @@ -0,0 +1,114 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD6' + UPDATE%PRCNTGCAP = 5.0 + UPDATE%THRWSEA = 0.7 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD6_U/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD6_U/ww3_uprstr.inp index 17f31c90f..c34b36051 100644 --- a/regtests/ww3_ta1/input_UPD6_U/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD6_U/ww3_uprstr.inp @@ -1,72 +1,43 @@ $ -------------------------------------------------------------------- $ $ 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 -$ +$ - 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 and cap $ -$ for the last gross check. $ -$ 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. $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>=5 each gridpoint has its own update factor and uses $ +$ wind field data to evaluate wind-sea and swell fields. Also $ +$ uses: $ +$ PRCNTG_CAP - see above $ +$ THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the $ +$ sea-state is considered wind-sea dominated by the DA scheme $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ $ $ UPD5 :: Option 5 Corrections are calculated as per UPD2 but are $ $ applied to wind-sea parts of the spectrum only when $ $ wind-sea is the dominant component, otherwise the whole $ $ spectrum is corrected $ $ Expected input: the Analysis Hs field plus background wind $ -$ speed and direction, in text format $ +$ speed and direction $ $ UPD6 :: Option 6 Corrections are calculated as per UPD5 but $ $ wind-sea components are also shifted in frequency space $ $ using Toba (1973) $ $ Expected input: the Analysis Hs field plus background wind $ -$ speed and direction, in text format $ +$ speed and direction $ +$ -------------------------------------------------------------------- $ UPD6 -$ -$ PRCNTG is input for option UPD0F and is the correction factor $ -$ applied to all the gridpoints (e.g. 1.) $ -$ - 0.6754 -$ -$ PRCNTG_CAP is global input for option UPD2+ and is a cap on $ -$ the maximum SWH correction factor applied to all the gridpoints, as $ -$ both a multiple or divisor (e.g. cap at 5.0 means SWHANL/SWHBKG<=5.0 $ -$ and SWHANL/SWHBKG>=0.2). The value given should not be less than 1.0 $ -$ - 10.0 -$ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ + 10.0 0.7 anl.grbtxt -$ +$ $ $ -------------------------------------------------------------------- $ -$ WAVEWATCH III EoF ww3_uprstr.inp +$ WAVEWATCH III EoF ww3_uprstr.inp $ $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD6_U/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD6_U/ww3_uprstr.nml new file mode 100644 index 000000000..44a656519 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD6_U/ww3_uprstr.nml @@ -0,0 +1,114 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant variables should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD6' + UPDATE%PRCNTGCAP = 10.0 + UPDATE%THRWSEA = 0.7 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + diff --git a/regtests/ww3_ta1/input_UPD6_U_cap/ww3_uprstr.inp b/regtests/ww3_ta1/input_UPD6_U_cap/ww3_uprstr.inp index 518469343..bfc561b73 100644 --- a/regtests/ww3_ta1/input_UPD6_U_cap/ww3_uprstr.inp +++ b/regtests/ww3_ta1/input_UPD6_U_cap/ww3_uprstr.inp @@ -1,72 +1,43 @@ $ -------------------------------------------------------------------- $ $ 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 -$ +$ - 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 and cap $ -$ for the last gross check. $ -$ 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. $ +$ -------------------------------------------------------------------- $ +$ UPDN, with N>=5 each gridpoint has its own update factor and uses $ +$ wind field data to evaluate wind-sea and swell fields. Also $ +$ uses: $ +$ PRCNTG_CAP - see above $ +$ THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the $ +$ sea-state is considered wind-sea dominated by the DA scheme $ +$ Name of the file with the SWH analysis from the DA system $ +$ suffix .grbtxt for text out of grib2 file. $ +$ $ $ UPD5 :: Option 5 Corrections are calculated as per UPD2 but are $ $ applied to wind-sea parts of the spectrum only when $ $ wind-sea is the dominant component, otherwise the whole $ $ spectrum is corrected $ $ Expected input: the Analysis Hs field plus background wind $ -$ speed and direction, in text format $ +$ speed and direction $ $ UPD6 :: Option 6 Corrections are calculated as per UPD5 but $ $ wind-sea components are also shifted in frequency space $ $ using Toba (1973) $ $ Expected input: the Analysis Hs field plus background wind $ -$ speed and direction, in text format $ +$ speed and direction $ +$ -------------------------------------------------------------------- $ UPD6 -$ -$ PRCNTG is input for option UPD0F and is the correction factor $ -$ applied to all the gridpoints (e.g. 1.) $ -$ - 0.6754 -$ -$ PRCNTG_CAP is global input for option UPD2+ and is a cap on $ -$ the maximum SWH correction factor applied to all the gridpoints, as $ -$ both a multiple or divisor (e.g. cap at 5.0 means SWHANL/SWHBKG<=5.0 $ -$ and SWHANL/SWHBKG>=0.2). The value given should not be less than 1.0 $ -$ - 1.333 -$ -$ Name of the file with the SWH analysis from the DA system $ -$ suffix .grbtxt for text out of grib2 file. $ -$ + 1.333 0.7 anl.grbtxt -$ +$ $ $ -------------------------------------------------------------------- $ -$ WAVEWATCH III EoF ww3_uprstr.inp +$ WAVEWATCH III EoF ww3_uprstr.inp $ $ -------------------------------------------------------------------- $ - diff --git a/regtests/ww3_ta1/input_UPD6_U_cap/ww3_uprstr.nml b/regtests/ww3_ta1/input_UPD6_U_cap/ww3_uprstr.nml new file mode 100644 index 000000000..8767412a5 --- /dev/null +++ b/regtests/ww3_ta1/input_UPD6_U_cap/ww3_uprstr.nml @@ -0,0 +1,114 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_uprstr.nml - Grid output post-processing ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define the assimilation time for initialising the wave model. This +! has to be the same as the time of the restart.ww3 +! +! * namelist must be terminated with / +! * definitions & defaults: +! RESTART%RESTARTTIME = '19680607 120000' ! assimilation time +! -------------------------------------------------------------------- ! +&RESTART_NML + RESTART%RESTARTTIME = '19680607 120000' +/ + + +! -------------------------------------------------------------------- ! +! Define the update approach and associated variables +! Note: Only the relevant variables for each update type need to be +! set. Setting non-relevant varaibles should not affect the way the +! code works +! +! A number of different update approaches are available. UPDN is used +! for the Nth approach +! +! The UPDN*, with N<2 the same correction factor is applied at all +! the grid points using: +! PRCNTG is input for option UPD0F and is the correction +! factor applied to all the gridpoints (e.g. 1.) +! 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 and uses: +! PRCNTG_CAP - global input for option UPD2+ and is a cap on +! the maximum SWH correction factor applied to all the +! gridpoints, as both a multiple or divisor (e.g. cap at 5.0 +! means SWHANL/SWHBKG<=5.0 and SWHANL/SWHBKG>=0.2). The value +! given should not be less than 1.0 +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! 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 and cap +! for the last gross check. +! 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. +! +! UPDN, with N>=5 each gridpoint has its own update factor and uses +! wind field data to evaluate wind-sea and swell fields. Also +! uses: +! PRCNTG_CAP - see above +! THRWSEA - energy threshold (SWH_WS**2/SWH**2) above which the +! sea-state is considered wind-sea dominated by the DA scheme +! Name of the file with the SWH analysis from the DA system +! suffix .grbtxt for text out of grib2 file. +! UPD5 :: Option 5 Corrections are calculated as per UPD2 but are +! applied to wind-sea parts of the spectrum only when +! wind-sea is the dominant component, otherwise the whole +! spectrum is corrected +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! UPD6 :: Option 6 Corrections are calculated as per UPD5 but +! wind-sea components are also shifted in frequency space +! using Toba (1973) +! Expected input: the Analysis Hs field plus background wind +! speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! +! UPD0F +! UPDATE%UPDPROC = 'UPD0F' ! Update type +! UPDATE%PRCNTG = 1.0 ! Scalar correction factor (1.0=no correction) +! +! UPD2/3 +! UPDATE%UPDPROC = 'UPD2' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! +! UPD5/6 +! UPDATE%UPDPROC = 'UPD5' ! Update type +! UPDATE%PRCNTGCAP = 10.0 ! Cap on correction factor +! UPDATE%THRWSEA = 0.7 ! Energy threshold for wind-sea dominance +! UPDATE%FILE = 'anl.grbtxt' ! Corrected analysed SWH field file +! + +! -------------------------------------------------------------------- ! +&UPDATE_NML + UPDATE%UPDPROC = 'UPD6' + UPDATE%PRCNTGCAP = 1.333 + UPDATE%THRWSEA = 0.7 + UPDATE%FILE = 'anl.grbtxt' +/ + + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! + From 2ae6342a3c79051ea098ef69360ac7d3687a36d4 Mon Sep 17 00:00:00 2001 From: Juan Manuel Castillo Sanchez <48921434+ukmo-juan-castillo@users.noreply.github.com> Date: Thu, 22 Oct 2020 13:40:15 +0100 Subject: [PATCH 3/4] Bf unconforming where in coupling routines (#17) * Fix non-conforming WHERE statements in coupled routines * Stop comparing history lines in OASIS rmp files --- model/ftn/w3agcmmd.ftn | 11 ++++----- model/ftn/w3igcmmd.ftn | 4 ++-- model/ftn/w3ogcmmd.ftn | 52 ++++++++++++++++++++-------------------- regtests/bin/matrix.comp | 3 +++ 4 files changed, 36 insertions(+), 34 deletions(-) diff --git a/model/ftn/w3agcmmd.ftn b/model/ftn/w3agcmmd.ftn index d7b840004..d7ab969d6 100644 --- a/model/ftn/w3agcmmd.ftn +++ b/model/ftn/w3agcmmd.ftn @@ -136,7 +136,6 @@ DO JSEA=1, NSEAL ISEA=IAPROC+(JSEA-1)*NAPROC IF(CY(ISEA) /= UNDEF) TMP(JSEA)=CY(ISEA) - TMP(JSEA)=CY(ISEA) END DO RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) @@ -146,7 +145,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_ACHA') THEN TMP(1:NSEAL) = 0.0 - WHERE(CHARN /= UNDEF) TMP=CHARN + WHERE(CHARN(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=CHARN(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -155,7 +154,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3__AHS') THEN TMP(1:NSEAL) = 0.0 - WHERE(HS /= UNDEF) TMP=HS + WHERE(HS(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=HS(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -164,7 +163,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3___FP') THEN TMP(1:NSEAL) = 0.0 - WHERE(FP0 /= UNDEF) TMP=FP0 + WHERE(FP0(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=FP0(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -173,7 +172,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3___TP') THEN TMP(1:NSEAL) = 0.0 - WHERE(FP0 /= UNDEF) TMP=1./FP0 + WHERE(FP0(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=1./FP0(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -182,7 +181,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3__FWS') THEN TMP(1:NSEAL) = 0.0 - WHERE(TWS /= UNDEF) TMP=TWS + WHERE(TWS(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=TWS(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF diff --git a/model/ftn/w3igcmmd.ftn b/model/ftn/w3igcmmd.ftn index ed7ba6e49..793429a8b 100644 --- a/model/ftn/w3igcmmd.ftn +++ b/model/ftn/w3igcmmd.ftn @@ -131,13 +131,13 @@ CASE ('WW3_TWIX') TMP(1:NSEAL) = 0.0 - WHERE(TAUICE(:,1) /= UNDEF) TMP(:)=TAUICE(:,1) + WHERE(TAUICE(1:NSEAL,1) /= UNDEF) TMP(1:NSEAL)=TAUICE(1:NSEAL,1) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) CASE ('WW3_TWIY') TMP(1:NSEAL) = 0.0 - WHERE(TAUICE(:,2) /= UNDEF) TMP(:)=TAUICE(:,2) + WHERE(TAUICE(1:NSEAL,2) /= UNDEF) TMP(1:NSEAL)=TAUICE(1:NSEAL,2) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) diff --git a/model/ftn/w3ogcmmd.ftn b/model/ftn/w3ogcmmd.ftn index 0006956c5..ac62e9393 100644 --- a/model/ftn/w3ogcmmd.ftn +++ b/model/ftn/w3ogcmmd.ftn @@ -108,9 +108,9 @@ ! USE W3OACPMD, ONLY: ID_OASIS_TIME, IL_NB_SND, SND_FLD, CPL_OASIS_SND USE W3GDATMD, ONLY: NSEAL, MAPSTA, MAPSF - USE W3ADATMD, ONLY: HS, T0M1, THM, BHD, TAUOX, TAUOY, PHIOC, UBA, UBD, & - TAUWIX, TAUWIY, TUSX, TUSY, USSX, USSY, WLM, & - PHIBBL,TAUBBL, CHARN + USE W3ADATMD, ONLY: HS, T0M1, THM, BHD, TAUOX, TAUOY, PHIOC, & + UBA, UBD, TAUWIX, TAUWIY, TUSX, TUSY, & + USSX, USSY, WLM, PHIBBL,TAUBBL, CHARN USE W3ODATMD, ONLY: NAPROC, IAPROC, UNDEF USE CONSTANTS, ONLY: PI, DERA ! @@ -121,12 +121,12 @@ !/ ------------------------------------------------------------------- / !/ Local parameters !/ - INTEGER :: I, ISEA, IX, IY - INTEGER, DIMENSION(NSEAL) :: MASK + INTEGER :: I, ISEA, IX, IY + INTEGER, DIMENSION(NSEAL) :: MASK REAL(kind=8), DIMENSION(NSEAL,1) :: RLA_OASIS_SND - INTEGER :: IB_DO - LOGICAL :: LL_ACTION - REAL(kind=8), DIMENSION(NSEAL) :: TMP + INTEGER :: IB_DO + LOGICAL :: LL_ACTION + REAL(kind=8), DIMENSION(NSEAL) :: TMP ! !---------------------------------------------------------------------- ! * Executable part @@ -152,7 +152,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_T0M1') THEN TMP(1:NSEAL) = 0.0 - WHERE(T0M1 /= UNDEF) TMP=T0M1 + WHERE(T0M1(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=T0M1(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -177,7 +177,7 @@ ! theta : trigonometric convention ( 0 at East, 90 at North) IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_CDIR') THEN TMP(1:NSEAL) = 0.0 - WHERE(THM /= UNDEF) TMP=COS(THM) + WHERE(THM(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=COS(THM(1:NSEAL)) RLA_OASIS_SND(:,1) = TMP(1:NSEAL) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -188,7 +188,7 @@ ! theta : trigonometric convention ( 0 at East, 90 at North) IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_SDIR') THEN TMP(1:NSEAL) = 0.0 - WHERE(THM /= UNDEF) TMP=SIN(THM) + WHERE(THM(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=SIN(THM(1:NSEAL)) RLA_OASIS_SND(:,1) = TMP(1:NSEAL) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -204,7 +204,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_TWOX') THEN TMP(1:NSEAL) = 0.0 - WHERE(TAUOX /= UNDEF) TMP(:)=TAUOX(:) + WHERE(TAUOX(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=TAUOX(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -213,7 +213,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_TWOY') THEN TMP(1:NSEAL) = 0.0 - WHERE(TAUOY /= UNDEF) TMP(:)=TAUOY (:) + WHERE(TAUOY(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=TAUOY(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -222,7 +222,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3__FOC') THEN TMP(1:NSEAL) = 0.0 - WHERE(PHIOC /= UNDEF) TMP(:)=PHIOC(:) + WHERE(PHIOC(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=PHIOC(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -231,7 +231,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_TBBX') THEN TMP(1:NSEAL) = 0.0 - WHERE(TAUOX /= UNDEF) TMP(:)=TAUBBL(:,1) + WHERE(TAUBBL(1:NSEAL,1) /= UNDEF) TMP(1:NSEAL)=TAUBBL(1:NSEAL,1) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -240,7 +240,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_TBBY') THEN TMP(1:NSEAL) = 0.0 - WHERE(TAUOY /= UNDEF) TMP(:)=TAUBBL(:,2) + WHERE(TAUBBL(1:NSEAL,2) /= UNDEF) TMP(1:NSEAL)=TAUBBL(1:NSEAL,2) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -249,7 +249,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3__FBB') THEN TMP(1:NSEAL) = 0.0 - WHERE(PHIOC /= UNDEF) TMP(:)=PHIBBL(:) + WHERE(PHIBBL(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=PHIBBL(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -265,7 +265,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_UBRX') THEN TMP(1:NSEAL) = 0.0 - WHERE(UBA(:) /= UNDEF) TMP=UBA(:)*COS(UBD(:)) + WHERE(UBA(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=UBA(1:NSEAL)*COS(UBD(1:NSEAL)) RLA_OASIS_SND(:,1) = TMP(1:NSEAL) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -274,7 +274,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_UBRY') THEN TMP(1:NSEAL) = 0.0 - WHERE(UBA(:) /= UNDEF) TMP=UBA(:)*SIN(UBD(:)) + WHERE(UBA(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=UBA(1:NSEAL)*SIN(UBD(1:NSEAL)) RLA_OASIS_SND(:,1) = TMP(1:NSEAL) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -283,7 +283,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_TAWX') THEN TMP(1:NSEAL) = 0.0 - WHERE(TAUWIX /= UNDEF) TMP(:)=TAUWIX(:) + WHERE(TAUWIX(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=TAUWIX(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -292,7 +292,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_TAWY') THEN TMP(1:NSEAL) = 0.0 - WHERE(TAUWIY /= UNDEF) TMP(:)=TAUWIY(:) + WHERE(TAUWIY(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=TAUWIY(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -301,7 +301,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_TUSX') THEN TMP(1:NSEAL) = 0.0 - WHERE(TUSX /= UNDEF) TMP(:)=TUSX(:) + WHERE(TUSX(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=TUSX(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -310,7 +310,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_TUSY') THEN TMP(1:NSEAL) = 0.0 - WHERE(TUSY /= UNDEF) TMP(:)=TUSY(:) + WHERE(TUSY(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=TUSY(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -319,7 +319,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_USSX') THEN TMP(1:NSEAL) = 0.0 - WHERE(USSX /= UNDEF) TMP(:)=USSX(:) + WHERE(USSX(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=USSX(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -328,7 +328,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3_USSY') THEN TMP(1:NSEAL) = 0.0 - WHERE(USSY /= UNDEF) TMP(:)=USSY(:) + WHERE(USSY(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=USSY(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF @@ -337,7 +337,7 @@ ! --------------------------------------------------------------------- IF (SND_FLD(IB_DO)%CL_FIELD_NAME == 'WW3___LM') THEN TMP(1:NSEAL) = 0.0 - WHERE(WLM /= UNDEF) TMP(:)=WLM(:) + WHERE(WLM(1:NSEAL) /= UNDEF) TMP(1:NSEAL)=WLM(1:NSEAL) RLA_OASIS_SND(:,1) = DBLE(TMP(1:NSEAL)) CALL CPL_OASIS_SND(IB_DO, ID_OASIS_TIME, RLA_OASIS_SND, LL_ACTION) ENDIF diff --git a/regtests/bin/matrix.comp b/regtests/bin/matrix.comp index 3d6604a81..609675914 100755 --- a/regtests/bin/matrix.comp +++ b/regtests/bin/matrix.comp @@ -279,6 +279,9 @@ ncdump $file > $output/${basename}_base.txt ncdump $return_comp/$run/$file > $output/${basename}_comp.txt diff $output/${basename}_base.txt $output/${basename}_comp.txt > $output/${basename}_diff.txt + if [[ $basename == rmp_* ]]; then + grep -v "history" $output/${basename}_diff.txt > $output/${basename}_diff.txt + fi size_1=`wc -l $output/${basename}_diff.txt | awk '{ print $1}'` if [ "$size_1" = '0' ] then From 426d42349f54faf3b0f90569e120807eac2778d9 Mon Sep 17 00:00:00 2001 From: Juan Manuel Castillo Sanchez <48921434+ukmo-juan-castillo@users.noreply.github.com> Date: Wed, 28 Oct 2020 13:08:53 +0000 Subject: [PATCH 4/4] Changes for efficient SMC grid coupling (#16) * Changes for efficient SMC grid coupling * Ensure consistency between SMC coupled test nml and inp files --- model/bin/ww3_from_ftp.sh | 2 + model/ftn/w3oacpmd.ftn | 218 +- regtests/bin/matrix.base | 4 + regtests/ww3_tp2.14/info | 10 +- regtests/ww3_tp2.14/input/BrestISides.dat | 3016 ++++++++++++++++ regtests/ww3_tp2.14/input/BrestJSides.dat | 3072 +++++++++++++++++ regtests/ww3_tp2.14/input/BrestObstrs.dat | 2890 ++++++++++++++++ regtests/ww3_tp2.14/input/BrestSMCels.dat | 2890 ++++++++++++++++ .../ww3_tp2.14/input/TOYNAMELIST.nam.OASACM6 | 14 + regtests/ww3_tp2.14/input/namcouple.OASACM6 | 135 + regtests/ww3_tp2.14/input/namelists_BREST.nml | 2 + regtests/ww3_tp2.14/input/switch_OASACM6 | 1 + .../ww3_tp2.14/input/ww3_grid_OASACM6.inp | 290 ++ .../ww3_tp2.14/input/ww3_grid_OASACM6.nml | 319 ++ .../ww3_tp2.14/input/ww3_ounf.inp-OASACM6 | 42 + .../ww3_tp2.14/input/ww3_shel_OASACM3.inp | 2 +- .../ww3_tp2.14/input/ww3_shel_OASACM3.nml | 1 + .../ww3_tp2.14/input/ww3_shel_OASACM4.inp | 2 +- .../ww3_tp2.14/input/ww3_shel_OASACM4.nml | 1 + .../ww3_tp2.14/input/ww3_shel_OASACM5.inp | 2 +- .../ww3_tp2.14/input/ww3_shel_OASACM5.nml | 1 + .../ww3_tp2.14/input/ww3_shel_OASACM6.inp | 152 + .../ww3_tp2.14/input/ww3_shel_OASACM6.nml | 340 ++ 23 files changed, 13322 insertions(+), 84 deletions(-) create mode 100644 regtests/ww3_tp2.14/input/BrestISides.dat create mode 100644 regtests/ww3_tp2.14/input/BrestJSides.dat create mode 100644 regtests/ww3_tp2.14/input/BrestObstrs.dat create mode 100644 regtests/ww3_tp2.14/input/BrestSMCels.dat create mode 100755 regtests/ww3_tp2.14/input/TOYNAMELIST.nam.OASACM6 create mode 100755 regtests/ww3_tp2.14/input/namcouple.OASACM6 create mode 100644 regtests/ww3_tp2.14/input/namelists_BREST.nml create mode 100755 regtests/ww3_tp2.14/input/switch_OASACM6 create mode 100755 regtests/ww3_tp2.14/input/ww3_grid_OASACM6.inp create mode 100644 regtests/ww3_tp2.14/input/ww3_grid_OASACM6.nml create mode 100755 regtests/ww3_tp2.14/input/ww3_ounf.inp-OASACM6 create mode 100755 regtests/ww3_tp2.14/input/ww3_shel_OASACM6.inp create mode 100644 regtests/ww3_tp2.14/input/ww3_shel_OASACM6.nml diff --git a/model/bin/ww3_from_ftp.sh b/model/bin/ww3_from_ftp.sh index 1a01000b3..14da5d2d7 100755 --- a/model/bin/ww3_from_ftp.sh +++ b/model/bin/ww3_from_ftp.sh @@ -37,6 +37,7 @@ cp -r data_regtests/ww3_tp2.12/input_be/* regtests/ww3_tp2.12/input_be/ cp -r data_regtests/ww3_tp2.12/input_le/* regtests/ww3_tp2.12/input_le/ cp -r data_regtests/ww3_tp2.14/input/r-ww3.nc.OAS*CM regtests/ww3_tp2.14/input/ cp -r data_regtests/ww3_tp2.14/input/r-ww3.nc.OASACM regtests/ww3_tp2.14/input/r-ww3.nc.OASACM2 +cp -r data_regtests/ww3_tp2.14/input/rmp_* regtests/ww3_tp2.14/input/ if [ ! -d regtests/ww3_tp2.14/input/oasis3-mct/doc ] then mkdir regtests/ww3_tp2.14/input/oasis3-mct/doc @@ -47,6 +48,7 @@ cp -r data_regtests/ww3_tp2.14/input/toy/r-toy.nc.OASACM regtests/ww3_tp2.14/inp cp -r data_regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM2 cp -r data_regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM4 cp -r data_regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM5 +cp -r data_regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM regtests/ww3_tp2.14/input/toy/toy_coupled_field.nc.OASACM6 cp -r data_regtests/ww3_tp2.14/input/toy/*.nc regtests/ww3_tp2.14/input/toy/ cp -r data_regtests/ww3_tp2.17/input/* regtests/ww3_tp2.17/input/ diff --git a/model/ftn/w3oacpmd.ftn b/model/ftn/w3oacpmd.ftn index 315dafb8f..a0f132101 100644 --- a/model/ftn/w3oacpmd.ftn +++ b/model/ftn/w3oacpmd.ftn @@ -198,6 +198,7 @@ USE W3GDATMD, ONLY: NX, NY, FLAGLL, XGRD, YGRD, MAPSTA, & & HPFAC, HQFAC, GTYPE, & & UNGTYPE, RLGTYPE, CLGTYPE +!/SMC USE W3GDATMD, ONLY: NSEA, X0, Y0, MRFct, SX, SY, IJKCel !/MPI INCLUDE "mpif.h" ! !/ ------------------------------------------------------------------- / @@ -214,15 +215,13 @@ REAL, ALLOCATABLE :: LON(:,:),LAT(:,:),AREA(:,:), & CORLON(:,:,:),CORLAT(:,:,:) REAL :: FACTOR + LOGICAL :: RGLGRD = .TRUE. +!/SMC REAL :: DLON, DLAT !/ ------------------------------------------------------------------- / ! IF (LD_MASTER) THEN ! - IF (FLAGLL) THEN - FACTOR = 1. - ELSE - FACTOR = 1. / (RADIUS * DERA) - END IF +!/SMC RGLGRD = .FALSE. ! ! 0. Create grids file ! -------------------------------- @@ -231,61 +230,100 @@ ! 1. Get the lat/lon/corners,areas and masks ! ------------------------------------------- IF (GTYPE .EQ. RLGTYPE .OR. GTYPE .EQ. CLGTYPE) THEN - ! - ! 1.1. regular and curvilinear grids - ! ---------------------------------- - NNODES = NX*NY - NXW=1 - NXE=NX - NYS=1 - NYN=NY - ! - ! lat/lon - ALLOCATE ( LON(NNODES,1), LAT(NNODES,1) ) - I = 0 - DO IY = NYS, NYN +! + IF (RGLGRD) THEN + IF (FLAGLL) THEN + FACTOR = 1. + ELSE + FACTOR = 1. / (RADIUS * DERA) + END IF + ! + ! 1.1. regular and curvilinear grids + ! ---------------------------------- + NNODES = NX*NY + NXW=1 + NXE=NX + NYS=1 + NYN=NY + ! + ! lat/lon + ALLOCATE ( LON(NNODES,1), LAT(NNODES,1) ) + I = 0 + DO IY = NYS, NYN DO IX = NXW, NXE - I = I+1 - LON(I,1)=XGRD(IY,IX)*FACTOR - LAT(I,1)=YGRD(IY,IX)*FACTOR + I = I+1 + LON(I,1)=XGRD(IY,IX)*FACTOR + LAT(I,1)=YGRD(IY,IX)*FACTOR END DO - END DO - ! - ! areas, corners - ALLOCATE ( AREA(NNODES,1), CORLON(NNODES,1,4), CORLAT(NNODES,1,4) ) - I = 0 - DO IY = NYS, NYN + END DO + ! + ! areas, corners + ALLOCATE ( AREA(NNODES,1), CORLON(NNODES,1,4), CORLAT(NNODES,1,4) ) + I = 0 + DO IY = NYS, NYN DO IX = NXW, NXE - I = I+1 - CORLON(I,1,1)=LON(I,1)+HPFAC(IY,IX)/2.*FACTOR - CORLON(I,1,2)=LON(I,1)-HPFAC(IY,IX)/2.*FACTOR - CORLON(I,1,3)=LON(I,1)-HPFAC(IY,IX)/2.*FACTOR - CORLON(I,1,4)=LON(I,1)+HPFAC(IY,IX)/2.*FACTOR - CORLAT(I,1,1)=LAT(I,1)+HQFAC(IY,IX)/2.*FACTOR - CORLAT(I,1,2)=LAT(I,1)+HQFAC(IY,IX)/2.*FACTOR - CORLAT(I,1,3)=LAT(I,1)-HQFAC(IY,IX)/2.*FACTOR - CORLAT(I,1,4)=LAT(I,1)-HQFAC(IY,IX)/2.*FACTOR - AREA(I,1)=HPFAC(IY,IX)*HQFAC(IY,IX) + I = I+1 + CORLON(I,1,1)=LON(I,1)+HPFAC(IY,IX)/2.*FACTOR + CORLON(I,1,2)=LON(I,1)-HPFAC(IY,IX)/2.*FACTOR + CORLON(I,1,3)=LON(I,1)-HPFAC(IY,IX)/2.*FACTOR + CORLON(I,1,4)=LON(I,1)+HPFAC(IY,IX)/2.*FACTOR + CORLAT(I,1,1)=LAT(I,1)+HQFAC(IY,IX)/2.*FACTOR + CORLAT(I,1,2)=LAT(I,1)+HQFAC(IY,IX)/2.*FACTOR + CORLAT(I,1,3)=LAT(I,1)-HQFAC(IY,IX)/2.*FACTOR + CORLAT(I,1,4)=LAT(I,1)-HQFAC(IY,IX)/2.*FACTOR + AREA(I,1)=HPFAC(IY,IX)*HQFAC(IY,IX) END DO - END DO - ! - ! Model grid mask - ALLOCATE ( MASK(NNODES,1) ) - I = 0 - DO IY = NYS, NYN + END DO + ! + ! Model grid mask + ALLOCATE ( MASK(NNODES,1) ) + I = 0 + DO IY = NYS, NYN DO IX = NXW, NXE - I = I+1 - ! Get the mask : 0 - sea / 1 - open boundary cells (the land is already excluded) - IF ((MAPSTA(IY,IX) .EQ. 1)) THEN - MASK(I,1) = 0 - ELSE - MASK(I,1) = 1 - END IF + I = I+1 + ! Get the mask : 0 - sea / 1 - open boundary cells (the land is already excluded) + IF ((MAPSTA(IY,IX) .EQ. 1)) THEN + MASK(I,1) = 0 + ELSE + MASK(I,1) = 1 + END IF END DO - END DO + END DO +!/SMC ELSE +!/SMC ! +!/SMC ! 1.2. SMC grids +!/SMC ! ---------------------------------- +!/SMC NNODES = NSEA +!/SMC ! +!/SMC ! Calculate the smallest grid cell increments depending on the number of SMC levels +!/SMC DLON = SX / MRFct +!/SMC DLAT = SY / MRFct +!/SMC ! +!/SMC ALLOCATE ( LON(NNODES,1), LAT(NNODES,1) ) +!/SMC ALLOCATE ( AREA(NNODES,1), CORLON(NNODES,1,4), CORLAT(NNODES,1,4) ) +!/SMC ALLOCATE ( MASK(NNODES,1) ) +!/SMC DO I=1, NNODES +!/SMC ! lat/lon +!/SMC LON(I,1) = X0 + (IJKCel(1,I) + IJKCel(3,I)*0.5)*DLON +!/SMC LAT(I,1) = Y0 + (IJKCel(2,I) + IJKCel(4,I)*0.5)*DLAT +!/SMC ! corners +!/SMC CORLON(I,1,1) = X0 + IJKCel(1,I)*DLON +!/SMC CORLON(I,1,2) = X0 + (IJKCel(1,I) + IJKCel(3,I))*DLON +!/SMC CORLON(I,1,3) = CORLON(I,1,2) +!/SMC CORLON(I,1,4) = CORLON(I,1,1) +!/SMC CORLAT(I,1,1) = Y0 + IJKCel(2,I)*DLAT +!/SMC CORLAT(I,1,2)=CORLAT(I,1,1) +!/SMC CORLAT(I,1,3) = Y0 + (IJKCel(2,I) + IJKCel(4,I))*DLAT +!/SMC CORLAT(I,1,4)=CORLAT(I,1,3) +!/SMC ! areas +!/SMC AREA(I,1) = 0.25 * IJKCEL(3,I)*DLON * IJKCEL(4,I)*DLAT +!/SMC ! Model grid mask +!/SMC MASK(I,1) = 1 +!/SMC ENDDO + ENDIF ELSE ! - ! 1.2. Unstructured grids + ! 1.3. Unstructured grids ! ---------------------------------- WRITE(*,*) 'TO BE IMPLEMENT FOR UNSTRUCTURED GRIDS' STOP @@ -389,42 +427,62 @@ INTEGER :: ISEA, JSEA, IX, IY INTEGER :: NHXW, NHXE, NHYS, NHYN ! size of the halo at the western, eastern, southern, northern boundaries LOGICAL :: LL_MPI_FILE ! to check if there an mpi.txt file for domain decompasition + LOGICAL :: RGLGRD = .TRUE. !/ !/ ------------------------------------------------------------------- / !/ Executable part !/ +!/SMC RGLGRD = .FALSE. +! IF (GTYPE .EQ. RLGTYPE .OR. GTYPE .EQ. CLGTYPE) THEN - ! - ! 1.1. regular and curvilinear grids - ! ---------------------------------- - NHXW = 1 ; NHXE = NX ; NHYS = 1 ; NHYN = NY - NHXW = NHXW - 1 - NHXE = NX - NHXE - NHYS = NHYS - 1 - NHYN = NY - NHYN - ! - ALLOCATE(ILA_PARAL(2+NSEAL*2)) - ! - ! * Define the partition : OASIS ORANGE partition - ILA_PARAL(1) = 3 - ! - ! * total number of segments of the global domain - ILA_PARAL(2) = NSEAL - ! - DO JSEA=1, NSEAL - CALL INIT_GET_ISEA(ISEA,JSEA) - - IX = MAPSF(ISEA,1) - IY = MAPSF(ISEA,2) - ILA_PARAL(JSEA*2+1) = (IY - NHYN -1)*(NX - NHXE - NHXW) + (IX - NHXW - 1) - ILA_PARAL(JSEA*2+2) = 1 - END DO - ! + IF (RGLGRD) THEN + ! + ! 1.1. regular and curvilinear grids + ! ---------------------------------- + NHXW = 1 ; NHXE = NX ; NHYS = 1 ; NHYN = NY + NHXW = NHXW - 1 + NHXE = NX - NHXE + NHYS = NHYS - 1 + NHYN = NY - NHYN + ! + ALLOCATE(ILA_PARAL(2+NSEAL*2)) + ! + ! * Define the partition : OASIS ORANGE partition + ILA_PARAL(1) = 3 + ! + ! * total number of segments of the global domain + ILA_PARAL(2) = NSEAL + ! + DO JSEA=1, NSEAL + CALL INIT_GET_ISEA(ISEA,JSEA) + + IX = MAPSF(ISEA,1) + IY = MAPSF(ISEA,2) + ILA_PARAL(JSEA*2+1) = (IY - NHYN -1)*(NX - NHXE - NHXW) + (IX - NHXW - 1) + ILA_PARAL(JSEA*2+2) = 1 + END DO +!/SMC ELSE +!/SMC ! +!/SMC ! 1.2. SMC grids +!/SMC ! ---------------------------------- +!/SMC ALLOCATE(ILA_PARAL(2+NSEAL)) +!/SMC ! +!/SMC ! * Define the partition : OASIS POINTS partition +!/SMC ILA_PARAL(1) = 4 +!/SMC ! +!/SMC ! * total number of segments of the global domain +!/SMC ILA_PARAL(2) = NSEAL +!/SMC ! +!/SMC DO JSEA=1, NSEAL +!/SMC ILA_PARAL(JSEA+2) = IAPROC + (JSEA-1)*NAPROC +!/SMC ENDDO + ENDIF + ! ELSE ! - ! 1.2. Unstructured grids + ! 1.3. Unstructured grids ! ---------------------------------- - WRITE(*,*) 'TO BE VERIFY FOR UNSTRUCTURED GRIDS' + WRITE(*,*) 'TO BE VERIFIED FOR UNSTRUCTURED GRIDS' STOP ! DO JSEA=1,NSEAL diff --git a/regtests/bin/matrix.base b/regtests/bin/matrix.base index f20c00ecd..0afb37309 100755 --- a/regtests/bin/matrix.base +++ b/regtests/bin/matrix.base @@ -2045,6 +2045,10 @@ echo "$rtst -r ww3_grid -s OASACM5 -w work_OASACM5 -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body echo "$rtst -r ww3_shel -s OASACM5 -w work_OASACM5 -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body echo "$rtst -r ww3_ounf -s OASACM5 -w work_OASACM5 -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "mv ww3_tp2.14/input/ww3_ounf.inp ww3_tp2.14/input/ww3_ounf.inp.bak" >> matrix.body + echo "cp ww3_tp2.14/input/ww3_ounf.inp-OASACM6 ww3_tp2.14/input/ww3_ounf.inp" >> matrix.body + echo "$rtst -g OASACM6 -s OASACM6 -w work_OASACM6 -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body + echo "mv ww3_tp2.14/input/ww3_ounf.inp.bak ww3_tp2.14/input/ww3_ounf.inp" >> matrix.body echo "$rtst -s OASOCM -w work_OASOCM -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body echo "$rtst -s OASICM -w work_OASICM -C OASIS -f -p $mpi -n $np -o netcdf $ww3 ww3_tp2.14" >> matrix.body fi diff --git a/regtests/ww3_tp2.14/info b/regtests/ww3_tp2.14/info index 98789952c..9e9d412e7 100644 --- a/regtests/ww3_tp2.14/info +++ b/regtests/ww3_tp2.14/info @@ -21,6 +21,9 @@ # !/COU !/OASIS !/OASACM5 # # selecting coupling atmospheric model with the coupler OASIS3-mct # # reading restart generated by a coupled run (continuation run) # +# !/COU !/OASIS !/OASACM6 # +# selecting coupling atmospheric model with the coupler OASIS3-mct # +# coupling with SMC grid, coupling at T+0 # # !/COU !/OASIS !/OASOCM # # selecting coupling ocean model with the coupler OASIS3-mct # # !/COU !/OASIS !/OASICM # @@ -114,9 +117,14 @@ # -p mpirun -n 4 -o netcdf ../model ww3_tp2.14 # # ./bin/run_test -r ww3_ounf -s OASACM5 -w work_OASACM5 -C OASIS -f # # -p mpirun -n 4 -o netcdf ../model ww3_tp2.14 # +# mv ww3_tp2.14/input/ww3_ounf.inp ww3_tp2.14/input/ww3_ounf.inp.bak # +# cp ww3_tp2.14/input/ww3_ounf.inp-OASACM6 ww3_tp2.14/input/ww3_ounf.inp # +# ./bin/run_test -g OASACM6 -s OASACM6 -w work_OASACM6 -C OASIS -f # +# -p mpirun -n 4 -o netcdf ../model ww3_tp2.14 # +# mv ww3_tp2.14/input/ww3_ounf.inp.bak ww3_tp2.14/input/ww3_ounf.inp # # # # M. Accensi, Feb 2015 # # Ifremer Institute # -# Last Mod : Sept 2020 # +# Last Mod : Oct 2020 # # # ############################################################################# diff --git a/regtests/ww3_tp2.14/input/BrestISides.dat b/regtests/ww3_tp2.14/input/BrestISides.dat new file mode 100644 index 000000000..54ba09c5b --- /dev/null +++ b/regtests/ww3_tp2.14/input/BrestISides.dat @@ -0,0 +1,3016 @@ +3015 322 2693 0 0 + 0 12 1 9 10 498 499 + 92 12 1 542 543 1 2 + 93 12 1 543 1 2 3 + 94 12 1 1 2 3 4 + 95 12 1 2 3 4 5 + 96 12 1 3 4 5 0 + 97 12 1 4 5 0 0 + 99 12 1 0 0 6 7 + 100 12 1 0 6 7 8 + 101 12 1 6 7 8 9 + 102 12 1 7 8 9 10 + 103 12 1 8 9 10 498 + 0 13 1 0 0 498 499 + 92 13 1 542 543 0 0 + 92 16 1 634 635 11 0 + 93 16 1 635 11 0 0 + 92 17 1 634 635 12 0 + 93 17 1 635 12 0 0 + 92 18 1 680 681 13 0 + 93 18 1 681 13 0 0 + 92 19 1 680 681 14 0 + 93 19 1 681 14 0 0 + 92 20 1 726 727 15 0 + 93 20 1 727 15 0 0 + 92 21 1 726 727 0 0 + 90 22 1 771 772 16 18 + 91 22 1 772 16 18 0 + 92 22 1 16 18 0 0 + 90 23 1 771 772 17 0 + 91 23 1 772 17 0 0 + 90 24 1 816 817 19 0 + 91 24 1 817 19 0 0 + 90 25 1 816 817 0 0 + 88 26 1 860 861 20 0 + 89 26 1 861 20 0 0 + 88 27 1 860 861 0 0 + 86 28 1 903 904 21 0 + 87 28 1 904 21 0 0 + 86 29 1 903 904 0 0 + 74 30 1 940 941 22 24 + 75 30 1 941 22 24 25 + 76 30 1 22 24 25 26 + 77 30 1 24 25 26 27 + 78 30 1 25 26 27 28 + 79 30 1 26 27 28 0 + 80 30 1 27 28 0 0 + 74 31 1 940 941 23 0 + 75 31 1 941 23 0 0 + 62 32 1 971 972 29 30 + 63 32 1 972 29 30 0 + 64 32 1 29 30 0 0 + 69 32 1 0 0 33 973 + 70 32 1 0 33 973 35 + 72 32 1 33 973 35 0 + 73 32 1 973 35 0 0 + 62 33 1 971 972 0 0 + 67 33 1 0 0 31 32 + 68 33 1 0 31 32 34 + 69 33 1 31 32 34 973 + 70 33 1 32 34 973 36 + 72 33 1 34 973 36 37 + 73 33 1 973 36 37 0 + 74 33 1 36 37 0 0 + 74 34 1 1009 1010 0 0 + 74 35 1 1009 1010 38 39 + 75 35 1 1010 38 39 40 + 76 35 1 38 39 40 41 + 77 35 1 39 40 41 42 + 78 35 1 40 41 42 43 + 79 35 1 41 42 43 0 + 80 35 1 42 43 0 0 + 84 36 1 1051 1052 0 0 + 84 37 1 1051 1052 44 45 + 85 37 1 1052 44 45 46 + 86 37 1 44 45 46 0 + 87 37 1 45 46 0 0 + 95 37 1 0 0 47 0 + 96 37 1 0 47 0 0 + 96 38 1 1099 1100 48 0 + 97 38 1 1100 48 0 0 + 96 39 1 1099 1100 49 0 + 97 39 1 1100 49 0 0 + 96 40 1 1147 1148 50 0 + 97 40 1 1148 50 0 0 + 96 41 1 1147 1148 51 0 + 97 41 1 1148 51 0 0 + 82 42 1 1188 1189 52 53 + 83 42 1 1189 52 53 1190 + 84 42 1 52 53 1190 1191 + 82 43 1 1188 1189 0 0 + 84 43 1 0 0 1190 1191 + 82 44 1 1235 1236 54 0 + 83 44 1 1236 54 0 0 + 85 44 1 0 0 56 1237 + 86 44 1 0 56 1237 1238 + 94 44 1 1239 1240 58 60 + 95 44 1 1240 58 60 0 + 96 44 1 58 60 0 0 + 82 45 1 1235 1236 55 0 + 83 45 1 1236 55 0 0 + 85 45 1 0 0 57 1237 + 86 45 1 0 57 1237 1238 + 94 45 1 1239 1240 59 0 + 95 45 1 1240 59 0 0 + 82 46 1 1280 1281 61 0 + 83 46 1 1281 61 0 0 + 90 46 1 1282 1283 62 63 + 91 46 1 1283 62 63 0 + 92 46 1 62 63 0 0 + 82 47 1 1280 1281 0 0 + 90 47 1 1282 1283 0 0 + 80 48 1 1322 1323 64 66 + 81 48 1 1323 64 66 0 + 82 48 1 64 66 0 0 + 80 49 1 1322 1323 65 0 + 81 49 1 1323 65 0 0 + 90 52 1 0 0 1405 73 + 92 52 1 0 1405 73 0 + 93 52 1 1405 73 0 0 + 83 53 1 0 0 67 68 + 84 53 1 0 67 68 0 + 85 53 1 67 68 0 0 + 86 53 1 0 0 69 70 + 87 53 1 0 69 70 71 + 88 53 1 69 70 71 72 + 89 53 1 70 71 72 1405 + 90 53 1 71 72 1405 74 + 92 53 1 72 1405 74 75 + 93 53 1 1405 74 75 0 + 94 53 1 74 75 0 0 + 70 54 1 1439 1440 76 78 + 71 54 1 1440 76 78 79 + 72 54 1 76 78 79 80 + 73 54 1 78 79 80 1441 + 74 54 1 79 80 1441 1442 + 80 54 1 1442 1443 82 0 + 81 54 1 1443 82 0 0 + 83 54 1 0 0 84 85 + 84 54 1 0 84 85 0 + 85 54 1 84 85 0 0 + 86 54 1 0 0 1444 88 + 88 54 1 0 1444 88 89 + 89 54 1 1444 88 89 91 + 90 54 1 88 89 91 92 + 91 54 1 89 91 92 1445 + 92 54 1 91 92 1445 0 + 94 54 1 92 1445 0 0 + 70 55 1 1439 1440 77 0 + 71 55 1 1440 77 0 0 + 73 55 1 0 0 81 1441 + 74 55 1 0 81 1441 1442 + 80 55 1 1442 1443 83 0 + 81 55 1 1443 83 0 0 + 84 55 1 0 0 86 87 + 85 55 1 0 86 87 1444 + 86 55 1 86 87 1444 0 + 88 55 1 87 1444 0 0 + 89 55 1 0 0 90 0 + 90 55 1 0 90 0 0 + 92 55 1 0 0 1445 93 + 94 55 1 0 1445 93 0 + 95 55 1 1445 93 0 0 + 66 56 1 1477 1478 94 95 + 67 56 1 1478 94 95 1479 + 68 56 1 94 95 1479 96 + 70 56 1 95 1479 96 98 + 71 56 1 1479 96 98 0 + 72 56 1 96 98 0 0 + 75 56 1 0 0 99 101 + 76 56 1 0 99 101 103 + 77 56 1 99 101 103 104 + 78 56 1 101 103 104 0 + 79 56 1 103 104 0 0 + 80 56 1 0 0 105 106 + 81 56 1 0 105 106 107 + 82 56 1 105 106 107 0 + 83 56 1 106 107 0 0 + 84 56 1 0 0 1480 1481 + 88 56 1 1480 1481 0 0 + 93 56 1 0 0 111 112 + 94 56 1 0 111 112 0 + 95 56 1 111 112 0 0 + 66 57 1 1477 1478 0 0 + 68 57 1 0 0 1479 97 + 70 57 1 0 1479 97 0 + 71 57 1 1479 97 0 0 + 75 57 1 0 0 100 102 + 76 57 1 0 100 102 0 + 77 57 1 100 102 0 0 + 82 57 1 0 0 108 109 + 83 57 1 0 108 109 1480 + 84 57 1 108 109 1480 1481 + 88 57 1 1480 1481 110 0 + 89 57 1 1481 110 0 0 + 62 58 1 1511 1512 113 114 + 63 58 1 1512 113 114 116 + 64 58 1 113 114 116 117 + 65 58 1 114 116 117 119 + 66 58 1 116 117 119 0 + 67 58 1 117 119 0 0 + 68 58 1 0 0 1513 0 + 70 58 1 0 1513 0 0 + 85 58 1 0 0 124 125 + 86 58 1 0 124 125 126 + 87 58 1 124 125 126 128 + 88 58 1 125 126 128 0 + 89 58 1 126 128 0 0 + 62 59 1 1511 1512 0 0 + 63 59 1 0 0 115 0 + 64 59 1 0 115 0 0 + 65 59 1 0 0 118 120 + 66 59 1 0 118 120 121 + 67 59 1 118 120 121 1513 + 68 59 1 120 121 1513 122 + 70 59 1 121 1513 122 123 + 71 59 1 1513 122 123 0 + 72 59 1 122 123 0 0 + 87 59 1 0 0 127 129 + 88 59 1 0 127 129 130 + 89 59 1 127 129 130 0 + 90 59 1 129 130 0 0 + 60 60 1 1542 1543 131 0 + 61 60 1 1543 131 0 0 + 64 60 1 -1 1544 0 0 + 65 60 1 0 0 134 1545 + 66 60 1 0 134 1545 1546 + 70 60 1 1545 1546 136 0 + 71 60 1 1546 136 0 0 + 89 60 1 0 0 138 139 + 90 60 1 0 138 139 0 + 91 60 1 138 139 0 0 + 60 61 1 1542 1543 132 0 + 61 61 1 1543 132 0 0 + 64 61 1 -1 1544 133 135 + 65 61 1 1544 133 135 1545 + 66 61 1 133 135 1545 1546 + 70 61 1 1545 1546 137 0 + 71 61 1 1546 137 0 0 + 58 62 1 1574 1575 140 141 + 59 62 1 1575 140 141 1576 + 60 62 1 140 141 1576 1577 + 58 63 1 1574 1575 0 0 + 59 63 1 0 0 142 1576 + 60 63 1 0 142 1576 1577 + 50 64 1 1604 1605 143 145 + 51 64 1 1605 143 145 146 + 52 64 1 143 145 146 0 + 53 64 1 145 146 0 0 + 55 64 1 0 0 147 148 + 56 64 1 0 147 148 149 + 57 64 1 147 148 149 1606 + 58 64 1 148 149 1606 1607 + 70 64 1 1610 1611 0 0 + 50 65 1 1604 1605 144 0 + 51 65 1 1605 144 0 0 + 57 65 1 0 0 150 1606 + 58 65 1 0 150 1606 1607 + 70 65 1 1610 1611 151 0 + 71 65 1 1611 151 0 0 + 52 66 1 1636 1637 0 0 + 58 66 1 0 0 1638 1639 + 70 66 1 1642 1643 155 0 + 71 66 1 1643 155 0 0 + 52 67 1 1636 1637 152 153 + 53 67 1 1637 152 153 0 + 54 67 1 152 153 0 0 + 57 67 1 0 0 154 1638 + 58 67 1 0 154 1638 1639 + 70 67 1 1642 1643 156 0 + 71 67 1 1643 156 0 0 + 70 68 1 1677 1678 157 0 + 71 68 1 1678 157 0 0 + 70 69 1 1677 1678 158 0 + 71 69 1 1678 158 0 0 + 70 70 1 1712 1713 159 0 + 71 70 1 1713 159 0 0 + 70 71 1 1712 1713 160 0 + 71 71 1 1713 160 0 0 + 72 72 1 1748 1749 161 0 + 73 72 1 1749 161 0 0 + 72 73 1 1748 1749 162 0 + 73 73 1 1749 162 0 0 + 74 74 1 1785 1786 163 0 + 75 74 1 1786 163 0 0 + 74 75 1 1785 1786 164 0 + 75 75 1 1786 164 0 0 + 76 75 1 0 0 165 0 + 77 75 1 0 165 0 0 + 72 76 1 1821 1822 166 0 + 73 76 1 1822 166 0 0 + 74 76 1 0 0 1823 1824 + 72 77 1 1821 1822 167 168 + 73 77 1 1822 167 168 1823 + 74 77 1 167 168 1823 1824 + 80 78 1 1864 1865 169 0 + 81 78 1 1865 169 0 0 + 80 79 1 1864 1865 170 171 + 81 79 1 1865 170 171 0 + 82 79 1 170 171 0 0 + 82 80 1 1905 1906 172 0 + 83 80 1 1906 172 0 0 + 84 80 1 0 0 1907 1908 + 88 80 1 1907 1908 0 0 + 82 81 1 1905 1906 173 174 + 83 81 1 1906 173 174 1907 + 84 81 1 173 174 1907 1908 + 88 81 1 1907 1908 175 0 + 89 81 1 1908 175 0 0 + 90 82 1 1952 1953 0 0 + 99 82 1 0 0 183 0 + 100 82 1 0 183 0 0 + 90 83 1 1952 1953 176 177 + 91 83 1 1953 176 177 178 + 92 83 1 176 177 178 0 + 93 83 1 177 178 0 0 + 95 83 1 0 0 179 180 + 96 83 1 0 179 180 181 + 97 83 1 179 180 181 182 + 98 83 1 180 181 182 184 + 99 83 1 181 182 184 185 + 100 83 1 182 184 185 0 + 101 83 1 184 185 0 0 + 0 0 2 236 237 186 187 + 2 0 2 237 186 187 188 + 4 0 2 186 187 188 189 + 6 0 2 187 188 189 190 + 8 0 2 188 189 190 191 + 10 0 2 189 190 191 192 + 12 0 2 190 191 192 193 + 14 0 2 191 192 193 194 + 16 0 2 192 193 194 195 + 18 0 2 193 194 195 196 + 20 0 2 194 195 196 197 + 22 0 2 195 196 197 198 + 24 0 2 196 197 198 199 + 26 0 2 197 198 199 200 + 28 0 2 198 199 200 201 + 30 0 2 199 200 201 202 + 32 0 2 200 201 202 203 + 34 0 2 201 202 203 204 + 36 0 2 202 203 204 205 + 38 0 2 203 204 205 206 + 40 0 2 204 205 206 207 + 42 0 2 205 206 207 208 + 44 0 2 206 207 208 209 + 46 0 2 207 208 209 210 + 48 0 2 208 209 210 211 + 50 0 2 209 210 211 212 + 52 0 2 210 211 212 213 + 54 0 2 211 212 213 214 + 56 0 2 212 213 214 215 + 58 0 2 213 214 215 216 + 60 0 2 214 215 216 217 + 62 0 2 215 216 217 218 + 64 0 2 216 217 218 219 + 66 0 2 217 218 219 220 + 68 0 2 218 219 220 221 + 70 0 2 219 220 221 222 + 72 0 2 220 221 222 223 + 74 0 2 221 222 223 224 + 76 0 2 222 223 224 225 + 78 0 2 223 224 225 226 + 80 0 2 224 225 226 227 + 82 0 2 225 226 227 228 + 84 0 2 226 227 228 229 + 86 0 2 227 228 229 230 + 88 0 2 228 229 230 231 + 90 0 2 229 230 231 232 + 92 0 2 230 231 232 233 + 94 0 2 231 232 233 234 + 96 0 2 232 233 234 235 + 98 0 2 233 234 235 236 + 100 0 2 234 235 236 237 + 102 0 2 235 236 237 186 + 0 2 2 288 289 238 239 + 2 2 2 289 238 239 240 + 4 2 2 238 239 240 241 + 6 2 2 239 240 241 242 + 8 2 2 240 241 242 243 + 10 2 2 241 242 243 244 + 12 2 2 242 243 244 245 + 14 2 2 243 244 245 246 + 16 2 2 244 245 246 247 + 18 2 2 245 246 247 248 + 20 2 2 246 247 248 249 + 22 2 2 247 248 249 250 + 24 2 2 248 249 250 251 + 26 2 2 249 250 251 252 + 28 2 2 250 251 252 253 + 30 2 2 251 252 253 254 + 32 2 2 252 253 254 255 + 34 2 2 253 254 255 256 + 36 2 2 254 255 256 257 + 38 2 2 255 256 257 258 + 40 2 2 256 257 258 259 + 42 2 2 257 258 259 260 + 44 2 2 258 259 260 261 + 46 2 2 259 260 261 262 + 48 2 2 260 261 262 263 + 50 2 2 261 262 263 264 + 52 2 2 262 263 264 265 + 54 2 2 263 264 265 266 + 56 2 2 264 265 266 267 + 58 2 2 265 266 267 268 + 60 2 2 266 267 268 269 + 62 2 2 267 268 269 270 + 64 2 2 268 269 270 271 + 66 2 2 269 270 271 272 + 68 2 2 270 271 272 273 + 70 2 2 271 272 273 274 + 72 2 2 272 273 274 275 + 74 2 2 273 274 275 276 + 76 2 2 274 275 276 277 + 78 2 2 275 276 277 278 + 80 2 2 276 277 278 279 + 82 2 2 277 278 279 280 + 84 2 2 278 279 280 281 + 86 2 2 279 280 281 282 + 88 2 2 280 281 282 283 + 90 2 2 281 282 283 284 + 92 2 2 282 283 284 285 + 94 2 2 283 284 285 286 + 96 2 2 284 285 286 287 + 98 2 2 285 286 287 288 + 100 2 2 286 287 288 289 + 102 2 2 287 288 289 238 + 0 4 2 340 341 290 291 + 2 4 2 341 290 291 292 + 4 4 2 290 291 292 293 + 6 4 2 291 292 293 294 + 8 4 2 292 293 294 295 + 10 4 2 293 294 295 296 + 12 4 2 294 295 296 297 + 14 4 2 295 296 297 298 + 16 4 2 296 297 298 299 + 18 4 2 297 298 299 300 + 20 4 2 298 299 300 301 + 22 4 2 299 300 301 302 + 24 4 2 300 301 302 303 + 26 4 2 301 302 303 304 + 28 4 2 302 303 304 305 + 30 4 2 303 304 305 306 + 32 4 2 304 305 306 307 + 34 4 2 305 306 307 308 + 36 4 2 306 307 308 309 + 38 4 2 307 308 309 310 + 40 4 2 308 309 310 311 + 42 4 2 309 310 311 312 + 44 4 2 310 311 312 313 + 46 4 2 311 312 313 314 + 48 4 2 312 313 314 315 + 50 4 2 313 314 315 316 + 52 4 2 314 315 316 317 + 54 4 2 315 316 317 318 + 56 4 2 316 317 318 319 + 58 4 2 317 318 319 320 + 60 4 2 318 319 320 321 + 62 4 2 319 320 321 322 + 64 4 2 320 321 322 323 + 66 4 2 321 322 323 324 + 68 4 2 322 323 324 325 + 70 4 2 323 324 325 326 + 72 4 2 324 325 326 327 + 74 4 2 325 326 327 328 + 76 4 2 326 327 328 329 + 78 4 2 327 328 329 330 + 80 4 2 328 329 330 331 + 82 4 2 329 330 331 332 + 84 4 2 330 331 332 333 + 86 4 2 331 332 333 334 + 88 4 2 332 333 334 335 + 90 4 2 333 334 335 336 + 92 4 2 334 335 336 337 + 94 4 2 335 336 337 338 + 96 4 2 336 337 338 339 + 98 4 2 337 338 339 340 + 100 4 2 338 339 340 341 + 102 4 2 339 340 341 290 + 0 6 2 392 393 342 343 + 2 6 2 393 342 343 344 + 4 6 2 342 343 344 345 + 6 6 2 343 344 345 346 + 8 6 2 344 345 346 347 + 10 6 2 345 346 347 348 + 12 6 2 346 347 348 349 + 14 6 2 347 348 349 350 + 16 6 2 348 349 350 351 + 18 6 2 349 350 351 352 + 20 6 2 350 351 352 353 + 22 6 2 351 352 353 354 + 24 6 2 352 353 354 355 + 26 6 2 353 354 355 356 + 28 6 2 354 355 356 357 + 30 6 2 355 356 357 358 + 32 6 2 356 357 358 359 + 34 6 2 357 358 359 360 + 36 6 2 358 359 360 361 + 38 6 2 359 360 361 362 + 40 6 2 360 361 362 363 + 42 6 2 361 362 363 364 + 44 6 2 362 363 364 365 + 46 6 2 363 364 365 366 + 48 6 2 364 365 366 367 + 50 6 2 365 366 367 368 + 52 6 2 366 367 368 369 + 54 6 2 367 368 369 370 + 56 6 2 368 369 370 371 + 58 6 2 369 370 371 372 + 60 6 2 370 371 372 373 + 62 6 2 371 372 373 374 + 64 6 2 372 373 374 375 + 66 6 2 373 374 375 376 + 68 6 2 374 375 376 377 + 70 6 2 375 376 377 378 + 72 6 2 376 377 378 379 + 74 6 2 377 378 379 380 + 76 6 2 378 379 380 381 + 78 6 2 379 380 381 382 + 80 6 2 380 381 382 383 + 82 6 2 381 382 383 384 + 84 6 2 382 383 384 385 + 86 6 2 383 384 385 386 + 88 6 2 384 385 386 387 + 90 6 2 385 386 387 388 + 92 6 2 386 387 388 389 + 94 6 2 387 388 389 390 + 96 6 2 388 389 390 391 + 98 6 2 389 390 391 392 + 100 6 2 390 391 392 393 + 102 6 2 391 392 393 342 + 0 8 2 444 445 394 395 + 2 8 2 445 394 395 396 + 4 8 2 394 395 396 397 + 6 8 2 395 396 397 398 + 8 8 2 396 397 398 399 + 10 8 2 397 398 399 400 + 12 8 2 398 399 400 401 + 14 8 2 399 400 401 402 + 16 8 2 400 401 402 403 + 18 8 2 401 402 403 404 + 20 8 2 402 403 404 405 + 22 8 2 403 404 405 406 + 24 8 2 404 405 406 407 + 26 8 2 405 406 407 408 + 28 8 2 406 407 408 409 + 30 8 2 407 408 409 410 + 32 8 2 408 409 410 411 + 34 8 2 409 410 411 412 + 36 8 2 410 411 412 413 + 38 8 2 411 412 413 414 + 40 8 2 412 413 414 415 + 42 8 2 413 414 415 416 + 44 8 2 414 415 416 417 + 46 8 2 415 416 417 418 + 48 8 2 416 417 418 419 + 50 8 2 417 418 419 420 + 52 8 2 418 419 420 421 + 54 8 2 419 420 421 422 + 56 8 2 420 421 422 423 + 58 8 2 421 422 423 424 + 60 8 2 422 423 424 425 + 62 8 2 423 424 425 426 + 64 8 2 424 425 426 427 + 66 8 2 425 426 427 428 + 68 8 2 426 427 428 429 + 70 8 2 427 428 429 430 + 72 8 2 428 429 430 431 + 74 8 2 429 430 431 432 + 76 8 2 430 431 432 433 + 78 8 2 431 432 433 434 + 80 8 2 432 433 434 435 + 82 8 2 433 434 435 436 + 84 8 2 434 435 436 437 + 86 8 2 435 436 437 438 + 88 8 2 436 437 438 439 + 90 8 2 437 438 439 440 + 92 8 2 438 439 440 441 + 94 8 2 439 440 441 442 + 96 8 2 440 441 442 443 + 98 8 2 441 442 443 444 + 100 8 2 442 443 444 445 + 102 8 2 443 444 445 394 + 0 10 2 496 497 446 447 + 2 10 2 497 446 447 448 + 4 10 2 446 447 448 449 + 6 10 2 447 448 449 450 + 8 10 2 448 449 450 451 + 10 10 2 449 450 451 452 + 12 10 2 450 451 452 453 + 14 10 2 451 452 453 454 + 16 10 2 452 453 454 455 + 18 10 2 453 454 455 456 + 20 10 2 454 455 456 457 + 22 10 2 455 456 457 458 + 24 10 2 456 457 458 459 + 26 10 2 457 458 459 460 + 28 10 2 458 459 460 461 + 30 10 2 459 460 461 462 + 32 10 2 460 461 462 463 + 34 10 2 461 462 463 464 + 36 10 2 462 463 464 465 + 38 10 2 463 464 465 466 + 40 10 2 464 465 466 467 + 42 10 2 465 466 467 468 + 44 10 2 466 467 468 469 + 46 10 2 467 468 469 470 + 48 10 2 468 469 470 471 + 50 10 2 469 470 471 472 + 52 10 2 470 471 472 473 + 54 10 2 471 472 473 474 + 56 10 2 472 473 474 475 + 58 10 2 473 474 475 476 + 60 10 2 474 475 476 477 + 62 10 2 475 476 477 478 + 64 10 2 476 477 478 479 + 66 10 2 477 478 479 480 + 68 10 2 478 479 480 481 + 70 10 2 479 480 481 482 + 72 10 2 480 481 482 483 + 74 10 2 481 482 483 484 + 76 10 2 482 483 484 485 + 78 10 2 483 484 485 486 + 80 10 2 484 485 486 487 + 82 10 2 485 486 487 488 + 84 10 2 486 487 488 489 + 86 10 2 487 488 489 490 + 88 10 2 488 489 490 491 + 90 10 2 489 490 491 492 + 92 10 2 490 491 492 493 + 94 10 2 491 492 493 494 + 96 10 2 492 493 494 495 + 98 10 2 493 494 495 496 + 100 10 2 494 495 496 497 + 102 10 2 495 496 497 446 + 2 12 2 0 498 499 500 + 4 12 2 498 499 500 501 + 6 12 2 499 500 501 502 + 8 12 2 500 501 502 503 + 10 12 2 501 502 503 504 + 12 12 2 502 503 504 505 + 14 12 2 503 504 505 506 + 16 12 2 504 505 506 507 + 18 12 2 505 506 507 508 + 20 12 2 506 507 508 509 + 22 12 2 507 508 509 510 + 24 12 2 508 509 510 511 + 26 12 2 509 510 511 512 + 28 12 2 510 511 512 513 + 30 12 2 511 512 513 514 + 32 12 2 512 513 514 515 + 34 12 2 513 514 515 516 + 36 12 2 514 515 516 517 + 38 12 2 515 516 517 518 + 40 12 2 516 517 518 519 + 42 12 2 517 518 519 520 + 44 12 2 518 519 520 521 + 46 12 2 519 520 521 522 + 48 12 2 520 521 522 523 + 50 12 2 521 522 523 524 + 52 12 2 522 523 524 525 + 54 12 2 523 524 525 526 + 56 12 2 524 525 526 527 + 58 12 2 525 526 527 528 + 60 12 2 526 527 528 529 + 62 12 2 527 528 529 530 + 64 12 2 528 529 530 531 + 66 12 2 529 530 531 532 + 68 12 2 530 531 532 533 + 70 12 2 531 532 533 534 + 72 12 2 532 533 534 535 + 74 12 2 533 534 535 536 + 76 12 2 534 535 536 537 + 78 12 2 535 536 537 538 + 80 12 2 536 537 538 539 + 82 12 2 537 538 539 540 + 84 12 2 538 539 540 541 + 86 12 2 539 540 541 542 + 88 12 2 540 541 542 543 + 90 12 2 541 542 543 0 + 0 14 2 -1 -1 544 545 + 2 14 2 -1 544 545 546 + 4 14 2 544 545 546 547 + 6 14 2 545 546 547 548 + 8 14 2 546 547 548 549 + 10 14 2 547 548 549 550 + 12 14 2 548 549 550 551 + 14 14 2 549 550 551 552 + 16 14 2 550 551 552 553 + 18 14 2 551 552 553 554 + 20 14 2 552 553 554 555 + 22 14 2 553 554 555 556 + 24 14 2 554 555 556 557 + 26 14 2 555 556 557 558 + 28 14 2 556 557 558 559 + 30 14 2 557 558 559 560 + 32 14 2 558 559 560 561 + 34 14 2 559 560 561 562 + 36 14 2 560 561 562 563 + 38 14 2 561 562 563 564 + 40 14 2 562 563 564 565 + 42 14 2 563 564 565 566 + 44 14 2 564 565 566 567 + 46 14 2 565 566 567 568 + 48 14 2 566 567 568 569 + 50 14 2 567 568 569 570 + 52 14 2 568 569 570 571 + 54 14 2 569 570 571 572 + 56 14 2 570 571 572 573 + 58 14 2 571 572 573 574 + 60 14 2 572 573 574 575 + 62 14 2 573 574 575 576 + 64 14 2 574 575 576 577 + 66 14 2 575 576 577 578 + 68 14 2 576 577 578 579 + 70 14 2 577 578 579 580 + 72 14 2 578 579 580 581 + 74 14 2 579 580 581 582 + 76 14 2 580 581 582 583 + 78 14 2 581 582 583 584 + 80 14 2 582 583 584 585 + 82 14 2 583 584 585 586 + 84 14 2 584 585 586 587 + 86 14 2 585 586 587 588 + 88 14 2 586 587 588 589 + 90 14 2 587 588 589 -1 + 92 14 2 588 589 -1 -1 + 0 16 2 -1 -1 590 591 + 2 16 2 -1 590 591 592 + 4 16 2 590 591 592 593 + 6 16 2 591 592 593 594 + 8 16 2 592 593 594 595 + 10 16 2 593 594 595 596 + 12 16 2 594 595 596 597 + 14 16 2 595 596 597 598 + 16 16 2 596 597 598 599 + 18 16 2 597 598 599 600 + 20 16 2 598 599 600 601 + 22 16 2 599 600 601 602 + 24 16 2 600 601 602 603 + 26 16 2 601 602 603 604 + 28 16 2 602 603 604 605 + 30 16 2 603 604 605 606 + 32 16 2 604 605 606 607 + 34 16 2 605 606 607 608 + 36 16 2 606 607 608 609 + 38 16 2 607 608 609 610 + 40 16 2 608 609 610 611 + 42 16 2 609 610 611 612 + 44 16 2 610 611 612 613 + 46 16 2 611 612 613 614 + 48 16 2 612 613 614 615 + 50 16 2 613 614 615 616 + 52 16 2 614 615 616 617 + 54 16 2 615 616 617 618 + 56 16 2 616 617 618 619 + 58 16 2 617 618 619 620 + 60 16 2 618 619 620 621 + 62 16 2 619 620 621 622 + 64 16 2 620 621 622 623 + 66 16 2 621 622 623 624 + 68 16 2 622 623 624 625 + 70 16 2 623 624 625 626 + 72 16 2 624 625 626 627 + 74 16 2 625 626 627 628 + 76 16 2 626 627 628 629 + 78 16 2 627 628 629 630 + 80 16 2 628 629 630 631 + 82 16 2 629 630 631 632 + 84 16 2 630 631 632 633 + 86 16 2 631 632 633 634 + 88 16 2 632 633 634 635 + 90 16 2 633 634 635 12 + 0 18 2 -1 -1 636 637 + 2 18 2 -1 636 637 638 + 4 18 2 636 637 638 639 + 6 18 2 637 638 639 640 + 8 18 2 638 639 640 641 + 10 18 2 639 640 641 642 + 12 18 2 640 641 642 643 + 14 18 2 641 642 643 644 + 16 18 2 642 643 644 645 + 18 18 2 643 644 645 646 + 20 18 2 644 645 646 647 + 22 18 2 645 646 647 648 + 24 18 2 646 647 648 649 + 26 18 2 647 648 649 650 + 28 18 2 648 649 650 651 + 30 18 2 649 650 651 652 + 32 18 2 650 651 652 653 + 34 18 2 651 652 653 654 + 36 18 2 652 653 654 655 + 38 18 2 653 654 655 656 + 40 18 2 654 655 656 657 + 42 18 2 655 656 657 658 + 44 18 2 656 657 658 659 + 46 18 2 657 658 659 660 + 48 18 2 658 659 660 661 + 50 18 2 659 660 661 662 + 52 18 2 660 661 662 663 + 54 18 2 661 662 663 664 + 56 18 2 662 663 664 665 + 58 18 2 663 664 665 666 + 60 18 2 664 665 666 667 + 62 18 2 665 666 667 668 + 64 18 2 666 667 668 669 + 66 18 2 667 668 669 670 + 68 18 2 668 669 670 671 + 70 18 2 669 670 671 672 + 72 18 2 670 671 672 673 + 74 18 2 671 672 673 674 + 76 18 2 672 673 674 675 + 78 18 2 673 674 675 676 + 80 18 2 674 675 676 677 + 82 18 2 675 676 677 678 + 84 18 2 676 677 678 679 + 86 18 2 677 678 679 680 + 88 18 2 678 679 680 681 + 90 18 2 679 680 681 14 + 0 20 2 -1 -1 682 683 + 2 20 2 -1 682 683 684 + 4 20 2 682 683 684 685 + 6 20 2 683 684 685 686 + 8 20 2 684 685 686 687 + 10 20 2 685 686 687 688 + 12 20 2 686 687 688 689 + 14 20 2 687 688 689 690 + 16 20 2 688 689 690 691 + 18 20 2 689 690 691 692 + 20 20 2 690 691 692 693 + 22 20 2 691 692 693 694 + 24 20 2 692 693 694 695 + 26 20 2 693 694 695 696 + 28 20 2 694 695 696 697 + 30 20 2 695 696 697 698 + 32 20 2 696 697 698 699 + 34 20 2 697 698 699 700 + 36 20 2 698 699 700 701 + 38 20 2 699 700 701 702 + 40 20 2 700 701 702 703 + 42 20 2 701 702 703 704 + 44 20 2 702 703 704 705 + 46 20 2 703 704 705 706 + 48 20 2 704 705 706 707 + 50 20 2 705 706 707 708 + 52 20 2 706 707 708 709 + 54 20 2 707 708 709 710 + 56 20 2 708 709 710 711 + 58 20 2 709 710 711 712 + 60 20 2 710 711 712 713 + 62 20 2 711 712 713 714 + 64 20 2 712 713 714 715 + 66 20 2 713 714 715 716 + 68 20 2 714 715 716 717 + 70 20 2 715 716 717 718 + 72 20 2 716 717 718 719 + 74 20 2 717 718 719 720 + 76 20 2 718 719 720 721 + 78 20 2 719 720 721 722 + 80 20 2 720 721 722 723 + 82 20 2 721 722 723 724 + 84 20 2 722 723 724 725 + 86 20 2 723 724 725 726 + 88 20 2 724 725 726 727 + 90 20 2 725 726 727 0 + 0 22 2 -1 -1 728 729 + 2 22 2 -1 728 729 730 + 4 22 2 728 729 730 731 + 6 22 2 729 730 731 732 + 8 22 2 730 731 732 733 + 10 22 2 731 732 733 734 + 12 22 2 732 733 734 735 + 14 22 2 733 734 735 736 + 16 22 2 734 735 736 737 + 18 22 2 735 736 737 738 + 20 22 2 736 737 738 739 + 22 22 2 737 738 739 740 + 24 22 2 738 739 740 741 + 26 22 2 739 740 741 742 + 28 22 2 740 741 742 743 + 30 22 2 741 742 743 744 + 32 22 2 742 743 744 745 + 34 22 2 743 744 745 746 + 36 22 2 744 745 746 747 + 38 22 2 745 746 747 748 + 40 22 2 746 747 748 749 + 42 22 2 747 748 749 750 + 44 22 2 748 749 750 751 + 46 22 2 749 750 751 752 + 48 22 2 750 751 752 753 + 50 22 2 751 752 753 754 + 52 22 2 752 753 754 755 + 54 22 2 753 754 755 756 + 56 22 2 754 755 756 757 + 58 22 2 755 756 757 758 + 60 22 2 756 757 758 759 + 62 22 2 757 758 759 760 + 64 22 2 758 759 760 761 + 66 22 2 759 760 761 762 + 68 22 2 760 761 762 763 + 70 22 2 761 762 763 764 + 72 22 2 762 763 764 765 + 74 22 2 763 764 765 766 + 76 22 2 764 765 766 767 + 78 22 2 765 766 767 768 + 80 22 2 766 767 768 769 + 82 22 2 767 768 769 770 + 84 22 2 768 769 770 771 + 86 22 2 769 770 771 772 + 88 22 2 770 771 772 17 + 0 24 2 -1 -1 773 774 + 2 24 2 -1 773 774 775 + 4 24 2 773 774 775 776 + 6 24 2 774 775 776 777 + 8 24 2 775 776 777 778 + 10 24 2 776 777 778 779 + 12 24 2 777 778 779 780 + 14 24 2 778 779 780 781 + 16 24 2 779 780 781 782 + 18 24 2 780 781 782 783 + 20 24 2 781 782 783 784 + 22 24 2 782 783 784 785 + 24 24 2 783 784 785 786 + 26 24 2 784 785 786 787 + 28 24 2 785 786 787 788 + 30 24 2 786 787 788 789 + 32 24 2 787 788 789 790 + 34 24 2 788 789 790 791 + 36 24 2 789 790 791 792 + 38 24 2 790 791 792 793 + 40 24 2 791 792 793 794 + 42 24 2 792 793 794 795 + 44 24 2 793 794 795 796 + 46 24 2 794 795 796 797 + 48 24 2 795 796 797 798 + 50 24 2 796 797 798 799 + 52 24 2 797 798 799 800 + 54 24 2 798 799 800 801 + 56 24 2 799 800 801 802 + 58 24 2 800 801 802 803 + 60 24 2 801 802 803 804 + 62 24 2 802 803 804 805 + 64 24 2 803 804 805 806 + 66 24 2 804 805 806 807 + 68 24 2 805 806 807 808 + 70 24 2 806 807 808 809 + 72 24 2 807 808 809 810 + 74 24 2 808 809 810 811 + 76 24 2 809 810 811 812 + 78 24 2 810 811 812 813 + 80 24 2 811 812 813 814 + 82 24 2 812 813 814 815 + 84 24 2 813 814 815 816 + 86 24 2 814 815 816 817 + 88 24 2 815 816 817 0 + 0 26 2 -1 -1 818 819 + 2 26 2 -1 818 819 820 + 4 26 2 818 819 820 821 + 6 26 2 819 820 821 822 + 8 26 2 820 821 822 823 + 10 26 2 821 822 823 824 + 12 26 2 822 823 824 825 + 14 26 2 823 824 825 826 + 16 26 2 824 825 826 827 + 18 26 2 825 826 827 828 + 20 26 2 826 827 828 829 + 22 26 2 827 828 829 830 + 24 26 2 828 829 830 831 + 26 26 2 829 830 831 832 + 28 26 2 830 831 832 833 + 30 26 2 831 832 833 834 + 32 26 2 832 833 834 835 + 34 26 2 833 834 835 836 + 36 26 2 834 835 836 837 + 38 26 2 835 836 837 838 + 40 26 2 836 837 838 839 + 42 26 2 837 838 839 840 + 44 26 2 838 839 840 841 + 46 26 2 839 840 841 842 + 48 26 2 840 841 842 843 + 50 26 2 841 842 843 844 + 52 26 2 842 843 844 845 + 54 26 2 843 844 845 846 + 56 26 2 844 845 846 847 + 58 26 2 845 846 847 848 + 60 26 2 846 847 848 849 + 62 26 2 847 848 849 850 + 64 26 2 848 849 850 851 + 66 26 2 849 850 851 852 + 68 26 2 850 851 852 853 + 70 26 2 851 852 853 854 + 72 26 2 852 853 854 855 + 74 26 2 853 854 855 856 + 76 26 2 854 855 856 857 + 78 26 2 855 856 857 858 + 80 26 2 856 857 858 859 + 82 26 2 857 858 859 860 + 84 26 2 858 859 860 861 + 86 26 2 859 860 861 0 + 0 28 2 -1 -1 862 863 + 2 28 2 -1 862 863 864 + 4 28 2 862 863 864 865 + 6 28 2 863 864 865 866 + 8 28 2 864 865 866 867 + 10 28 2 865 866 867 868 + 12 28 2 866 867 868 869 + 14 28 2 867 868 869 870 + 16 28 2 868 869 870 871 + 18 28 2 869 870 871 872 + 20 28 2 870 871 872 873 + 22 28 2 871 872 873 874 + 24 28 2 872 873 874 875 + 26 28 2 873 874 875 876 + 28 28 2 874 875 876 877 + 30 28 2 875 876 877 878 + 32 28 2 876 877 878 879 + 34 28 2 877 878 879 880 + 36 28 2 878 879 880 881 + 38 28 2 879 880 881 882 + 40 28 2 880 881 882 883 + 42 28 2 881 882 883 884 + 44 28 2 882 883 884 885 + 46 28 2 883 884 885 886 + 48 28 2 884 885 886 887 + 50 28 2 885 886 887 888 + 52 28 2 886 887 888 889 + 54 28 2 887 888 889 890 + 56 28 2 888 889 890 891 + 58 28 2 889 890 891 892 + 60 28 2 890 891 892 893 + 62 28 2 891 892 893 894 + 64 28 2 892 893 894 895 + 66 28 2 893 894 895 896 + 68 28 2 894 895 896 897 + 70 28 2 895 896 897 898 + 72 28 2 896 897 898 899 + 74 28 2 897 898 899 900 + 76 28 2 898 899 900 901 + 78 28 2 899 900 901 902 + 80 28 2 900 901 902 903 + 82 28 2 901 902 903 904 + 84 28 2 902 903 904 0 + 0 30 2 -1 -1 905 906 + 2 30 2 -1 905 906 907 + 4 30 2 905 906 907 908 + 6 30 2 906 907 908 909 + 8 30 2 907 908 909 910 + 10 30 2 908 909 910 911 + 12 30 2 909 910 911 912 + 14 30 2 910 911 912 913 + 16 30 2 911 912 913 914 + 18 30 2 912 913 914 915 + 20 30 2 913 914 915 916 + 22 30 2 914 915 916 917 + 24 30 2 915 916 917 918 + 26 30 2 916 917 918 919 + 28 30 2 917 918 919 920 + 30 30 2 918 919 920 921 + 32 30 2 919 920 921 922 + 34 30 2 920 921 922 923 + 36 30 2 921 922 923 924 + 38 30 2 922 923 924 925 + 40 30 2 923 924 925 926 + 42 30 2 924 925 926 927 + 44 30 2 925 926 927 928 + 46 30 2 926 927 928 929 + 48 30 2 927 928 929 930 + 50 30 2 928 929 930 931 + 52 30 2 929 930 931 932 + 54 30 2 930 931 932 933 + 56 30 2 931 932 933 934 + 58 30 2 932 933 934 935 + 60 30 2 933 934 935 936 + 62 30 2 934 935 936 937 + 64 30 2 935 936 937 938 + 66 30 2 936 937 938 939 + 68 30 2 937 938 939 940 + 70 30 2 938 939 940 941 + 72 30 2 939 940 941 23 + 0 32 2 -1 -1 942 943 + 2 32 2 -1 942 943 944 + 4 32 2 942 943 944 945 + 6 32 2 943 944 945 946 + 8 32 2 944 945 946 947 + 10 32 2 945 946 947 948 + 12 32 2 946 947 948 949 + 14 32 2 947 948 949 950 + 16 32 2 948 949 950 951 + 18 32 2 949 950 951 952 + 20 32 2 950 951 952 953 + 22 32 2 951 952 953 954 + 24 32 2 952 953 954 955 + 26 32 2 953 954 955 956 + 28 32 2 954 955 956 957 + 30 32 2 955 956 957 958 + 32 32 2 956 957 958 959 + 34 32 2 957 958 959 960 + 36 32 2 958 959 960 961 + 38 32 2 959 960 961 962 + 40 32 2 960 961 962 963 + 42 32 2 961 962 963 964 + 44 32 2 962 963 964 965 + 46 32 2 963 964 965 966 + 48 32 2 964 965 966 967 + 50 32 2 965 966 967 968 + 52 32 2 966 967 968 969 + 54 32 2 967 968 969 970 + 56 32 2 968 969 970 971 + 58 32 2 969 970 971 972 + 60 32 2 970 971 972 0 + 0 34 2 -1 -1 974 975 + 2 34 2 -1 974 975 976 + 4 34 2 974 975 976 977 + 6 34 2 975 976 977 978 + 8 34 2 976 977 978 979 + 10 34 2 977 978 979 980 + 12 34 2 978 979 980 981 + 14 34 2 979 980 981 982 + 16 34 2 980 981 982 983 + 18 34 2 981 982 983 984 + 20 34 2 982 983 984 985 + 22 34 2 983 984 985 986 + 24 34 2 984 985 986 987 + 26 34 2 985 986 987 988 + 28 34 2 986 987 988 989 + 30 34 2 987 988 989 990 + 32 34 2 988 989 990 991 + 34 34 2 989 990 991 992 + 36 34 2 990 991 992 993 + 38 34 2 991 992 993 994 + 40 34 2 992 993 994 995 + 42 34 2 993 994 995 996 + 44 34 2 994 995 996 997 + 46 34 2 995 996 997 998 + 48 34 2 996 997 998 999 + 50 34 2 997 998 999 1000 + 52 34 2 998 999 1000 1001 + 54 34 2 999 1000 1001 1002 + 56 34 2 1000 1001 1002 1003 + 58 34 2 1001 1002 1003 1004 + 60 34 2 1002 1003 1004 1005 + 62 34 2 1003 1004 1005 1006 + 64 34 2 1004 1005 1006 1007 + 66 34 2 1005 1006 1007 1008 + 68 34 2 1006 1007 1008 1009 + 70 34 2 1007 1008 1009 1010 + 72 34 2 1008 1009 1010 0 + 0 36 2 -1 -1 1011 1012 + 2 36 2 -1 1011 1012 1013 + 4 36 2 1011 1012 1013 1014 + 6 36 2 1012 1013 1014 1015 + 8 36 2 1013 1014 1015 1016 + 10 36 2 1014 1015 1016 1017 + 12 36 2 1015 1016 1017 1018 + 14 36 2 1016 1017 1018 1019 + 16 36 2 1017 1018 1019 1020 + 18 36 2 1018 1019 1020 1021 + 20 36 2 1019 1020 1021 1022 + 22 36 2 1020 1021 1022 1023 + 24 36 2 1021 1022 1023 1024 + 26 36 2 1022 1023 1024 1025 + 28 36 2 1023 1024 1025 1026 + 30 36 2 1024 1025 1026 1027 + 32 36 2 1025 1026 1027 1028 + 34 36 2 1026 1027 1028 1029 + 36 36 2 1027 1028 1029 1030 + 38 36 2 1028 1029 1030 1031 + 40 36 2 1029 1030 1031 1032 + 42 36 2 1030 1031 1032 1033 + 44 36 2 1031 1032 1033 1034 + 46 36 2 1032 1033 1034 1035 + 48 36 2 1033 1034 1035 1036 + 50 36 2 1034 1035 1036 1037 + 52 36 2 1035 1036 1037 1038 + 54 36 2 1036 1037 1038 1039 + 56 36 2 1037 1038 1039 1040 + 58 36 2 1038 1039 1040 1041 + 60 36 2 1039 1040 1041 1042 + 62 36 2 1040 1041 1042 1043 + 64 36 2 1041 1042 1043 1044 + 66 36 2 1042 1043 1044 1045 + 68 36 2 1043 1044 1045 1046 + 70 36 2 1044 1045 1046 1047 + 72 36 2 1045 1046 1047 1048 + 74 36 2 1046 1047 1048 1049 + 76 36 2 1047 1048 1049 1050 + 78 36 2 1048 1049 1050 1051 + 80 36 2 1049 1050 1051 1052 + 82 36 2 1050 1051 1052 0 + 0 38 2 -1 -1 1053 1054 + 2 38 2 -1 1053 1054 1055 + 4 38 2 1053 1054 1055 1056 + 6 38 2 1054 1055 1056 1057 + 8 38 2 1055 1056 1057 1058 + 10 38 2 1056 1057 1058 1059 + 12 38 2 1057 1058 1059 1060 + 14 38 2 1058 1059 1060 1061 + 16 38 2 1059 1060 1061 1062 + 18 38 2 1060 1061 1062 1063 + 20 38 2 1061 1062 1063 1064 + 22 38 2 1062 1063 1064 1065 + 24 38 2 1063 1064 1065 1066 + 26 38 2 1064 1065 1066 1067 + 28 38 2 1065 1066 1067 1068 + 30 38 2 1066 1067 1068 1069 + 32 38 2 1067 1068 1069 1070 + 34 38 2 1068 1069 1070 1071 + 36 38 2 1069 1070 1071 1072 + 38 38 2 1070 1071 1072 1073 + 40 38 2 1071 1072 1073 1074 + 42 38 2 1072 1073 1074 1075 + 44 38 2 1073 1074 1075 1076 + 46 38 2 1074 1075 1076 1077 + 48 38 2 1075 1076 1077 1078 + 50 38 2 1076 1077 1078 1079 + 52 38 2 1077 1078 1079 1080 + 54 38 2 1078 1079 1080 1081 + 56 38 2 1079 1080 1081 1082 + 58 38 2 1080 1081 1082 1083 + 60 38 2 1081 1082 1083 1084 + 62 38 2 1082 1083 1084 1085 + 64 38 2 1083 1084 1085 1086 + 66 38 2 1084 1085 1086 1087 + 68 38 2 1085 1086 1087 1088 + 70 38 2 1086 1087 1088 1089 + 72 38 2 1087 1088 1089 1090 + 74 38 2 1088 1089 1090 1091 + 76 38 2 1089 1090 1091 1092 + 78 38 2 1090 1091 1092 1093 + 80 38 2 1091 1092 1093 1094 + 82 38 2 1092 1093 1094 1095 + 84 38 2 1093 1094 1095 1096 + 86 38 2 1094 1095 1096 1097 + 88 38 2 1095 1096 1097 1098 + 90 38 2 1096 1097 1098 1099 + 92 38 2 1097 1098 1099 1100 + 94 38 2 1098 1099 1100 49 + 0 40 2 -1 -1 1101 1102 + 2 40 2 -1 1101 1102 1103 + 4 40 2 1101 1102 1103 1104 + 6 40 2 1102 1103 1104 1105 + 8 40 2 1103 1104 1105 1106 + 10 40 2 1104 1105 1106 1107 + 12 40 2 1105 1106 1107 1108 + 14 40 2 1106 1107 1108 1109 + 16 40 2 1107 1108 1109 1110 + 18 40 2 1108 1109 1110 1111 + 20 40 2 1109 1110 1111 1112 + 22 40 2 1110 1111 1112 1113 + 24 40 2 1111 1112 1113 1114 + 26 40 2 1112 1113 1114 1115 + 28 40 2 1113 1114 1115 1116 + 30 40 2 1114 1115 1116 1117 + 32 40 2 1115 1116 1117 1118 + 34 40 2 1116 1117 1118 1119 + 36 40 2 1117 1118 1119 1120 + 38 40 2 1118 1119 1120 1121 + 40 40 2 1119 1120 1121 1122 + 42 40 2 1120 1121 1122 1123 + 44 40 2 1121 1122 1123 1124 + 46 40 2 1122 1123 1124 1125 + 48 40 2 1123 1124 1125 1126 + 50 40 2 1124 1125 1126 1127 + 52 40 2 1125 1126 1127 1128 + 54 40 2 1126 1127 1128 1129 + 56 40 2 1127 1128 1129 1130 + 58 40 2 1128 1129 1130 1131 + 60 40 2 1129 1130 1131 1132 + 62 40 2 1130 1131 1132 1133 + 64 40 2 1131 1132 1133 1134 + 66 40 2 1132 1133 1134 1135 + 68 40 2 1133 1134 1135 1136 + 70 40 2 1134 1135 1136 1137 + 72 40 2 1135 1136 1137 1138 + 74 40 2 1136 1137 1138 1139 + 76 40 2 1137 1138 1139 1140 + 78 40 2 1138 1139 1140 1141 + 80 40 2 1139 1140 1141 1142 + 82 40 2 1140 1141 1142 1143 + 84 40 2 1141 1142 1143 1144 + 86 40 2 1142 1143 1144 1145 + 88 40 2 1143 1144 1145 1146 + 90 40 2 1144 1145 1146 1147 + 92 40 2 1145 1146 1147 1148 + 94 40 2 1146 1147 1148 51 + 0 42 2 -1 -1 1149 1150 + 2 42 2 -1 1149 1150 1151 + 4 42 2 1149 1150 1151 1152 + 6 42 2 1150 1151 1152 1153 + 8 42 2 1151 1152 1153 1154 + 10 42 2 1152 1153 1154 1155 + 12 42 2 1153 1154 1155 1156 + 14 42 2 1154 1155 1156 1157 + 16 42 2 1155 1156 1157 1158 + 18 42 2 1156 1157 1158 1159 + 20 42 2 1157 1158 1159 1160 + 22 42 2 1158 1159 1160 1161 + 24 42 2 1159 1160 1161 1162 + 26 42 2 1160 1161 1162 1163 + 28 42 2 1161 1162 1163 1164 + 30 42 2 1162 1163 1164 1165 + 32 42 2 1163 1164 1165 1166 + 34 42 2 1164 1165 1166 1167 + 36 42 2 1165 1166 1167 1168 + 38 42 2 1166 1167 1168 1169 + 40 42 2 1167 1168 1169 1170 + 42 42 2 1168 1169 1170 1171 + 44 42 2 1169 1170 1171 1172 + 46 42 2 1170 1171 1172 1173 + 48 42 2 1171 1172 1173 1174 + 50 42 2 1172 1173 1174 1175 + 52 42 2 1173 1174 1175 1176 + 54 42 2 1174 1175 1176 1177 + 56 42 2 1175 1176 1177 1178 + 58 42 2 1176 1177 1178 1179 + 60 42 2 1177 1178 1179 1180 + 62 42 2 1178 1179 1180 1181 + 64 42 2 1179 1180 1181 1182 + 66 42 2 1180 1181 1182 1183 + 68 42 2 1181 1182 1183 1184 + 70 42 2 1182 1183 1184 1185 + 72 42 2 1183 1184 1185 1186 + 74 42 2 1184 1185 1186 1187 + 76 42 2 1185 1186 1187 1188 + 78 42 2 1186 1187 1188 1189 + 80 42 2 1187 1188 1189 0 + 86 42 2 0 1190 1191 1192 + 88 42 2 1190 1191 1192 1193 + 90 42 2 1191 1192 1193 1194 + 92 42 2 1192 1193 1194 1195 + 94 42 2 1193 1194 1195 -1 + 96 42 2 1194 1195 -1 -1 + 0 44 2 -1 -1 1196 1197 + 2 44 2 -1 1196 1197 1198 + 4 44 2 1196 1197 1198 1199 + 6 44 2 1197 1198 1199 1200 + 8 44 2 1198 1199 1200 1201 + 10 44 2 1199 1200 1201 1202 + 12 44 2 1200 1201 1202 1203 + 14 44 2 1201 1202 1203 1204 + 16 44 2 1202 1203 1204 1205 + 18 44 2 1203 1204 1205 1206 + 20 44 2 1204 1205 1206 1207 + 22 44 2 1205 1206 1207 1208 + 24 44 2 1206 1207 1208 1209 + 26 44 2 1207 1208 1209 1210 + 28 44 2 1208 1209 1210 1211 + 30 44 2 1209 1210 1211 1212 + 32 44 2 1210 1211 1212 1213 + 34 44 2 1211 1212 1213 1214 + 36 44 2 1212 1213 1214 1215 + 38 44 2 1213 1214 1215 1216 + 40 44 2 1214 1215 1216 1217 + 42 44 2 1215 1216 1217 1218 + 44 44 2 1216 1217 1218 1219 + 46 44 2 1217 1218 1219 1220 + 48 44 2 1218 1219 1220 1221 + 50 44 2 1219 1220 1221 1222 + 52 44 2 1220 1221 1222 1223 + 54 44 2 1221 1222 1223 1224 + 56 44 2 1222 1223 1224 1225 + 58 44 2 1223 1224 1225 1226 + 60 44 2 1224 1225 1226 1227 + 62 44 2 1225 1226 1227 1228 + 64 44 2 1226 1227 1228 1229 + 66 44 2 1227 1228 1229 1230 + 68 44 2 1228 1229 1230 1231 + 70 44 2 1229 1230 1231 1232 + 72 44 2 1230 1231 1232 1233 + 74 44 2 1231 1232 1233 1234 + 76 44 2 1232 1233 1234 1235 + 78 44 2 1233 1234 1235 1236 + 80 44 2 1234 1235 1236 55 + 88 44 2 57 1237 1238 1239 + 90 44 2 1237 1238 1239 1240 + 92 44 2 1238 1239 1240 59 + 0 46 2 -1 -1 1241 1242 + 2 46 2 -1 1241 1242 1243 + 4 46 2 1241 1242 1243 1244 + 6 46 2 1242 1243 1244 1245 + 8 46 2 1243 1244 1245 1246 + 10 46 2 1244 1245 1246 1247 + 12 46 2 1245 1246 1247 1248 + 14 46 2 1246 1247 1248 1249 + 16 46 2 1247 1248 1249 1250 + 18 46 2 1248 1249 1250 1251 + 20 46 2 1249 1250 1251 1252 + 22 46 2 1250 1251 1252 1253 + 24 46 2 1251 1252 1253 1254 + 26 46 2 1252 1253 1254 1255 + 28 46 2 1253 1254 1255 1256 + 30 46 2 1254 1255 1256 1257 + 32 46 2 1255 1256 1257 1258 + 34 46 2 1256 1257 1258 1259 + 36 46 2 1257 1258 1259 1260 + 38 46 2 1258 1259 1260 1261 + 40 46 2 1259 1260 1261 1262 + 42 46 2 1260 1261 1262 1263 + 44 46 2 1261 1262 1263 1264 + 46 46 2 1262 1263 1264 1265 + 48 46 2 1263 1264 1265 1266 + 50 46 2 1264 1265 1266 1267 + 52 46 2 1265 1266 1267 1268 + 54 46 2 1266 1267 1268 1269 + 56 46 2 1267 1268 1269 1270 + 58 46 2 1268 1269 1270 1271 + 60 46 2 1269 1270 1271 1272 + 62 46 2 1270 1271 1272 1273 + 64 46 2 1271 1272 1273 1274 + 66 46 2 1272 1273 1274 1275 + 68 46 2 1273 1274 1275 1276 + 70 46 2 1274 1275 1276 1277 + 72 46 2 1275 1276 1277 1278 + 74 46 2 1276 1277 1278 1279 + 76 46 2 1277 1278 1279 1280 + 78 46 2 1278 1279 1280 1281 + 80 46 2 1279 1280 1281 0 + 86 46 2 -1 -1 1282 1283 + 88 46 2 -1 1282 1283 0 + 0 48 2 -1 -1 1284 1285 + 2 48 2 -1 1284 1285 1286 + 4 48 2 1284 1285 1286 1287 + 6 48 2 1285 1286 1287 1288 + 8 48 2 1286 1287 1288 1289 + 10 48 2 1287 1288 1289 1290 + 12 48 2 1288 1289 1290 1291 + 14 48 2 1289 1290 1291 1292 + 16 48 2 1290 1291 1292 1293 + 18 48 2 1291 1292 1293 1294 + 20 48 2 1292 1293 1294 1295 + 22 48 2 1293 1294 1295 1296 + 24 48 2 1294 1295 1296 1297 + 26 48 2 1295 1296 1297 1298 + 28 48 2 1296 1297 1298 1299 + 30 48 2 1297 1298 1299 1300 + 32 48 2 1298 1299 1300 1301 + 34 48 2 1299 1300 1301 1302 + 36 48 2 1300 1301 1302 1303 + 38 48 2 1301 1302 1303 1304 + 40 48 2 1302 1303 1304 1305 + 42 48 2 1303 1304 1305 1306 + 44 48 2 1304 1305 1306 1307 + 46 48 2 1305 1306 1307 1308 + 48 48 2 1306 1307 1308 1309 + 50 48 2 1307 1308 1309 1310 + 52 48 2 1308 1309 1310 1311 + 54 48 2 1309 1310 1311 1312 + 56 48 2 1310 1311 1312 1313 + 58 48 2 1311 1312 1313 1314 + 60 48 2 1312 1313 1314 1315 + 62 48 2 1313 1314 1315 1316 + 64 48 2 1314 1315 1316 1317 + 66 48 2 1315 1316 1317 1318 + 68 48 2 1316 1317 1318 1319 + 70 48 2 1317 1318 1319 1320 + 72 48 2 1318 1319 1320 1321 + 74 48 2 1319 1320 1321 1322 + 76 48 2 1320 1321 1322 1323 + 78 48 2 1321 1322 1323 65 + 0 50 2 -1 -1 1324 1325 + 2 50 2 -1 1324 1325 1326 + 4 50 2 1324 1325 1326 1327 + 6 50 2 1325 1326 1327 1328 + 8 50 2 1326 1327 1328 1329 + 10 50 2 1327 1328 1329 1330 + 12 50 2 1328 1329 1330 1331 + 14 50 2 1329 1330 1331 1332 + 16 50 2 1330 1331 1332 1333 + 18 50 2 1331 1332 1333 1334 + 20 50 2 1332 1333 1334 1335 + 22 50 2 1333 1334 1335 1336 + 24 50 2 1334 1335 1336 1337 + 26 50 2 1335 1336 1337 1338 + 28 50 2 1336 1337 1338 1339 + 30 50 2 1337 1338 1339 1340 + 32 50 2 1338 1339 1340 1341 + 34 50 2 1339 1340 1341 1342 + 36 50 2 1340 1341 1342 1343 + 38 50 2 1341 1342 1343 1344 + 40 50 2 1342 1343 1344 1345 + 42 50 2 1343 1344 1345 1346 + 44 50 2 1344 1345 1346 1347 + 46 50 2 1345 1346 1347 1348 + 48 50 2 1346 1347 1348 1349 + 50 50 2 1347 1348 1349 1350 + 52 50 2 1348 1349 1350 1351 + 54 50 2 1349 1350 1351 1352 + 56 50 2 1350 1351 1352 1353 + 58 50 2 1351 1352 1353 1354 + 60 50 2 1352 1353 1354 1355 + 62 50 2 1353 1354 1355 1356 + 64 50 2 1354 1355 1356 1357 + 66 50 2 1355 1356 1357 1358 + 68 50 2 1356 1357 1358 1359 + 70 50 2 1357 1358 1359 1360 + 72 50 2 1358 1359 1360 1361 + 74 50 2 1359 1360 1361 1362 + 76 50 2 1360 1361 1362 1363 + 78 50 2 1361 1362 1363 -1 + 80 50 2 1362 1363 -1 -1 + 0 52 2 -1 -1 1364 1365 + 2 52 2 -1 1364 1365 1366 + 4 52 2 1364 1365 1366 1367 + 6 52 2 1365 1366 1367 1368 + 8 52 2 1366 1367 1368 1369 + 10 52 2 1367 1368 1369 1370 + 12 52 2 1368 1369 1370 1371 + 14 52 2 1369 1370 1371 1372 + 16 52 2 1370 1371 1372 1373 + 18 52 2 1371 1372 1373 1374 + 20 52 2 1372 1373 1374 1375 + 22 52 2 1373 1374 1375 1376 + 24 52 2 1374 1375 1376 1377 + 26 52 2 1375 1376 1377 1378 + 28 52 2 1376 1377 1378 1379 + 30 52 2 1377 1378 1379 1380 + 32 52 2 1378 1379 1380 1381 + 34 52 2 1379 1380 1381 1382 + 36 52 2 1380 1381 1382 1383 + 38 52 2 1381 1382 1383 1384 + 40 52 2 1382 1383 1384 1385 + 42 52 2 1383 1384 1385 1386 + 44 52 2 1384 1385 1386 1387 + 46 52 2 1385 1386 1387 1388 + 48 52 2 1386 1387 1388 1389 + 50 52 2 1387 1388 1389 1390 + 52 52 2 1388 1389 1390 1391 + 54 52 2 1389 1390 1391 1392 + 56 52 2 1390 1391 1392 1393 + 58 52 2 1391 1392 1393 1394 + 60 52 2 1392 1393 1394 1395 + 62 52 2 1393 1394 1395 1396 + 64 52 2 1394 1395 1396 1397 + 66 52 2 1395 1396 1397 1398 + 68 52 2 1396 1397 1398 1399 + 70 52 2 1397 1398 1399 1400 + 72 52 2 1398 1399 1400 1401 + 74 52 2 1399 1400 1401 1402 + 76 52 2 1400 1401 1402 1403 + 78 52 2 1401 1402 1403 1404 + 80 52 2 1402 1403 1404 -1 + 82 52 2 1403 1404 -1 -1 + 0 54 2 -1 -1 1406 1407 + 2 54 2 -1 1406 1407 1408 + 4 54 2 1406 1407 1408 1409 + 6 54 2 1407 1408 1409 1410 + 8 54 2 1408 1409 1410 1411 + 10 54 2 1409 1410 1411 1412 + 12 54 2 1410 1411 1412 1413 + 14 54 2 1411 1412 1413 1414 + 16 54 2 1412 1413 1414 1415 + 18 54 2 1413 1414 1415 1416 + 20 54 2 1414 1415 1416 1417 + 22 54 2 1415 1416 1417 1418 + 24 54 2 1416 1417 1418 1419 + 26 54 2 1417 1418 1419 1420 + 28 54 2 1418 1419 1420 1421 + 30 54 2 1419 1420 1421 1422 + 32 54 2 1420 1421 1422 1423 + 34 54 2 1421 1422 1423 1424 + 36 54 2 1422 1423 1424 1425 + 38 54 2 1423 1424 1425 1426 + 40 54 2 1424 1425 1426 1427 + 42 54 2 1425 1426 1427 1428 + 44 54 2 1426 1427 1428 1429 + 46 54 2 1427 1428 1429 1430 + 48 54 2 1428 1429 1430 1431 + 50 54 2 1429 1430 1431 1432 + 52 54 2 1430 1431 1432 1433 + 54 54 2 1431 1432 1433 1434 + 56 54 2 1432 1433 1434 1435 + 58 54 2 1433 1434 1435 1436 + 60 54 2 1434 1435 1436 1437 + 62 54 2 1435 1436 1437 1438 + 64 54 2 1436 1437 1438 1439 + 66 54 2 1437 1438 1439 1440 + 68 54 2 1438 1439 1440 77 + 76 54 2 81 1441 1442 1443 + 78 54 2 1441 1442 1443 83 + 0 56 2 -1 -1 1446 1447 + 2 56 2 -1 1446 1447 1448 + 4 56 2 1446 1447 1448 1449 + 6 56 2 1447 1448 1449 1450 + 8 56 2 1448 1449 1450 1451 + 10 56 2 1449 1450 1451 1452 + 12 56 2 1450 1451 1452 1453 + 14 56 2 1451 1452 1453 1454 + 16 56 2 1452 1453 1454 1455 + 18 56 2 1453 1454 1455 1456 + 20 56 2 1454 1455 1456 1457 + 22 56 2 1455 1456 1457 1458 + 24 56 2 1456 1457 1458 1459 + 26 56 2 1457 1458 1459 1460 + 28 56 2 1458 1459 1460 1461 + 30 56 2 1459 1460 1461 1462 + 32 56 2 1460 1461 1462 1463 + 34 56 2 1461 1462 1463 1464 + 36 56 2 1462 1463 1464 1465 + 38 56 2 1463 1464 1465 1466 + 40 56 2 1464 1465 1466 1467 + 42 56 2 1465 1466 1467 1468 + 44 56 2 1466 1467 1468 1469 + 46 56 2 1467 1468 1469 1470 + 48 56 2 1468 1469 1470 1471 + 50 56 2 1469 1470 1471 1472 + 52 56 2 1470 1471 1472 1473 + 54 56 2 1471 1472 1473 1474 + 56 56 2 1472 1473 1474 1475 + 58 56 2 1473 1474 1475 1476 + 60 56 2 1474 1475 1476 1477 + 62 56 2 1475 1476 1477 1478 + 64 56 2 1476 1477 1478 0 + 86 56 2 0 1480 1481 0 + 0 58 2 -1 -1 1482 1483 + 2 58 2 -1 1482 1483 1484 + 4 58 2 1482 1483 1484 1485 + 6 58 2 1483 1484 1485 1486 + 8 58 2 1484 1485 1486 1487 + 10 58 2 1485 1486 1487 1488 + 12 58 2 1486 1487 1488 1489 + 14 58 2 1487 1488 1489 1490 + 16 58 2 1488 1489 1490 1491 + 18 58 2 1489 1490 1491 1492 + 20 58 2 1490 1491 1492 1493 + 22 58 2 1491 1492 1493 1494 + 24 58 2 1492 1493 1494 1495 + 26 58 2 1493 1494 1495 1496 + 28 58 2 1494 1495 1496 1497 + 30 58 2 1495 1496 1497 1498 + 32 58 2 1496 1497 1498 1499 + 34 58 2 1497 1498 1499 1500 + 36 58 2 1498 1499 1500 1501 + 38 58 2 1499 1500 1501 1502 + 40 58 2 1500 1501 1502 1503 + 42 58 2 1501 1502 1503 1504 + 44 58 2 1502 1503 1504 1505 + 46 58 2 1503 1504 1505 1506 + 48 58 2 1504 1505 1506 1507 + 50 58 2 1505 1506 1507 1508 + 52 58 2 1506 1507 1508 1509 + 54 58 2 1507 1508 1509 1510 + 56 58 2 1508 1509 1510 1511 + 58 58 2 1509 1510 1511 1512 + 60 58 2 1510 1511 1512 0 + 0 60 2 -1 -1 1514 1515 + 2 60 2 -1 1514 1515 1516 + 4 60 2 1514 1515 1516 1517 + 6 60 2 1515 1516 1517 1518 + 8 60 2 1516 1517 1518 1519 + 10 60 2 1517 1518 1519 1520 + 12 60 2 1518 1519 1520 1521 + 14 60 2 1519 1520 1521 1522 + 16 60 2 1520 1521 1522 1523 + 18 60 2 1521 1522 1523 1524 + 20 60 2 1522 1523 1524 1525 + 22 60 2 1523 1524 1525 1526 + 24 60 2 1524 1525 1526 1527 + 26 60 2 1525 1526 1527 1528 + 28 60 2 1526 1527 1528 1529 + 30 60 2 1527 1528 1529 1530 + 32 60 2 1528 1529 1530 1531 + 34 60 2 1529 1530 1531 1532 + 36 60 2 1530 1531 1532 1533 + 38 60 2 1531 1532 1533 1534 + 40 60 2 1532 1533 1534 1535 + 42 60 2 1533 1534 1535 1536 + 44 60 2 1534 1535 1536 1537 + 46 60 2 1535 1536 1537 1538 + 48 60 2 1536 1537 1538 1539 + 50 60 2 1537 1538 1539 1540 + 52 60 2 1538 1539 1540 1541 + 54 60 2 1539 1540 1541 1542 + 56 60 2 1540 1541 1542 1543 + 58 60 2 1541 1542 1543 132 + 62 60 2 -1 -1 1544 0 + 68 60 2 135 1545 1546 137 + 0 62 2 -1 -1 1547 1548 + 2 62 2 -1 1547 1548 1549 + 4 62 2 1547 1548 1549 1550 + 6 62 2 1548 1549 1550 1551 + 8 62 2 1549 1550 1551 1552 + 10 62 2 1550 1551 1552 1553 + 12 62 2 1551 1552 1553 1554 + 14 62 2 1552 1553 1554 1555 + 16 62 2 1553 1554 1555 1556 + 18 62 2 1554 1555 1556 1557 + 20 62 2 1555 1556 1557 1558 + 22 62 2 1556 1557 1558 1559 + 24 62 2 1557 1558 1559 1560 + 26 62 2 1558 1559 1560 1561 + 28 62 2 1559 1560 1561 1562 + 30 62 2 1560 1561 1562 1563 + 32 62 2 1561 1562 1563 1564 + 34 62 2 1562 1563 1564 1565 + 36 62 2 1563 1564 1565 1566 + 38 62 2 1564 1565 1566 1567 + 40 62 2 1565 1566 1567 1568 + 42 62 2 1566 1567 1568 1569 + 44 62 2 1567 1568 1569 1570 + 46 62 2 1568 1569 1570 1571 + 48 62 2 1569 1570 1571 1572 + 50 62 2 1570 1571 1572 1573 + 52 62 2 1571 1572 1573 1574 + 54 62 2 1572 1573 1574 1575 + 56 62 2 1573 1574 1575 0 + 62 62 2 142 1576 1577 1578 + 64 62 2 1576 1577 1578 1579 + 66 62 2 1577 1578 1579 1580 + 68 62 2 1578 1579 1580 -1 + 70 62 2 1579 1580 -1 -1 + 0 64 2 -1 -1 1581 1582 + 2 64 2 -1 1581 1582 1583 + 4 64 2 1581 1582 1583 1584 + 6 64 2 1582 1583 1584 1585 + 8 64 2 1583 1584 1585 1586 + 10 64 2 1584 1585 1586 1587 + 12 64 2 1585 1586 1587 1588 + 14 64 2 1586 1587 1588 1589 + 16 64 2 1587 1588 1589 1590 + 18 64 2 1588 1589 1590 1591 + 20 64 2 1589 1590 1591 1592 + 22 64 2 1590 1591 1592 1593 + 24 64 2 1591 1592 1593 1594 + 26 64 2 1592 1593 1594 1595 + 28 64 2 1593 1594 1595 1596 + 30 64 2 1594 1595 1596 1597 + 32 64 2 1595 1596 1597 1598 + 34 64 2 1596 1597 1598 1599 + 36 64 2 1597 1598 1599 1600 + 38 64 2 1598 1599 1600 1601 + 40 64 2 1599 1600 1601 1602 + 42 64 2 1600 1601 1602 1603 + 44 64 2 1601 1602 1603 1604 + 46 64 2 1602 1603 1604 1605 + 48 64 2 1603 1604 1605 144 + 60 64 2 150 1606 1607 1608 + 62 64 2 1606 1607 1608 1609 + 64 64 2 1607 1608 1609 1610 + 66 64 2 1608 1609 1610 1611 + 68 64 2 1609 1610 1611 0 + 0 66 2 -1 -1 1612 1613 + 2 66 2 -1 1612 1613 1614 + 4 66 2 1612 1613 1614 1615 + 6 66 2 1613 1614 1615 1616 + 8 66 2 1614 1615 1616 1617 + 10 66 2 1615 1616 1617 1618 + 12 66 2 1616 1617 1618 1619 + 14 66 2 1617 1618 1619 1620 + 16 66 2 1618 1619 1620 1621 + 18 66 2 1619 1620 1621 1622 + 20 66 2 1620 1621 1622 1623 + 22 66 2 1621 1622 1623 1624 + 24 66 2 1622 1623 1624 1625 + 26 66 2 1623 1624 1625 1626 + 28 66 2 1624 1625 1626 1627 + 30 66 2 1625 1626 1627 1628 + 32 66 2 1626 1627 1628 1629 + 34 66 2 1627 1628 1629 1630 + 36 66 2 1628 1629 1630 1631 + 38 66 2 1629 1630 1631 1632 + 40 66 2 1630 1631 1632 1633 + 42 66 2 1631 1632 1633 1634 + 44 66 2 1632 1633 1634 1635 + 46 66 2 1633 1634 1635 1636 + 48 66 2 1634 1635 1636 1637 + 50 66 2 1635 1636 1637 0 + 60 66 2 0 1638 1639 1640 + 62 66 2 1638 1639 1640 1641 + 64 66 2 1639 1640 1641 1642 + 66 66 2 1640 1641 1642 1643 + 68 66 2 1641 1642 1643 156 + 0 68 2 -1 -1 1644 1645 + 2 68 2 -1 1644 1645 1646 + 4 68 2 1644 1645 1646 1647 + 6 68 2 1645 1646 1647 1648 + 8 68 2 1646 1647 1648 1649 + 10 68 2 1647 1648 1649 1650 + 12 68 2 1648 1649 1650 1651 + 14 68 2 1649 1650 1651 1652 + 16 68 2 1650 1651 1652 1653 + 18 68 2 1651 1652 1653 1654 + 20 68 2 1652 1653 1654 1655 + 22 68 2 1653 1654 1655 1656 + 24 68 2 1654 1655 1656 1657 + 26 68 2 1655 1656 1657 1658 + 28 68 2 1656 1657 1658 1659 + 30 68 2 1657 1658 1659 1660 + 32 68 2 1658 1659 1660 1661 + 34 68 2 1659 1660 1661 1662 + 36 68 2 1660 1661 1662 1663 + 38 68 2 1661 1662 1663 1664 + 40 68 2 1662 1663 1664 1665 + 42 68 2 1663 1664 1665 1666 + 44 68 2 1664 1665 1666 1667 + 46 68 2 1665 1666 1667 1668 + 48 68 2 1666 1667 1668 1669 + 50 68 2 1667 1668 1669 1670 + 52 68 2 1668 1669 1670 1671 + 54 68 2 1669 1670 1671 1672 + 56 68 2 1670 1671 1672 1673 + 58 68 2 1671 1672 1673 1674 + 60 68 2 1672 1673 1674 1675 + 62 68 2 1673 1674 1675 1676 + 64 68 2 1674 1675 1676 1677 + 66 68 2 1675 1676 1677 1678 + 68 68 2 1676 1677 1678 158 + 0 70 2 -1 -1 1679 1680 + 2 70 2 -1 1679 1680 1681 + 4 70 2 1679 1680 1681 1682 + 6 70 2 1680 1681 1682 1683 + 8 70 2 1681 1682 1683 1684 + 10 70 2 1682 1683 1684 1685 + 12 70 2 1683 1684 1685 1686 + 14 70 2 1684 1685 1686 1687 + 16 70 2 1685 1686 1687 1688 + 18 70 2 1686 1687 1688 1689 + 20 70 2 1687 1688 1689 1690 + 22 70 2 1688 1689 1690 1691 + 24 70 2 1689 1690 1691 1692 + 26 70 2 1690 1691 1692 1693 + 28 70 2 1691 1692 1693 1694 + 30 70 2 1692 1693 1694 1695 + 32 70 2 1693 1694 1695 1696 + 34 70 2 1694 1695 1696 1697 + 36 70 2 1695 1696 1697 1698 + 38 70 2 1696 1697 1698 1699 + 40 70 2 1697 1698 1699 1700 + 42 70 2 1698 1699 1700 1701 + 44 70 2 1699 1700 1701 1702 + 46 70 2 1700 1701 1702 1703 + 48 70 2 1701 1702 1703 1704 + 50 70 2 1702 1703 1704 1705 + 52 70 2 1703 1704 1705 1706 + 54 70 2 1704 1705 1706 1707 + 56 70 2 1705 1706 1707 1708 + 58 70 2 1706 1707 1708 1709 + 60 70 2 1707 1708 1709 1710 + 62 70 2 1708 1709 1710 1711 + 64 70 2 1709 1710 1711 1712 + 66 70 2 1710 1711 1712 1713 + 68 70 2 1711 1712 1713 160 + 0 72 2 -1 -1 1714 1715 + 2 72 2 -1 1714 1715 1716 + 4 72 2 1714 1715 1716 1717 + 6 72 2 1715 1716 1717 1718 + 8 72 2 1716 1717 1718 1719 + 10 72 2 1717 1718 1719 1720 + 12 72 2 1718 1719 1720 1721 + 14 72 2 1719 1720 1721 1722 + 16 72 2 1720 1721 1722 1723 + 18 72 2 1721 1722 1723 1724 + 20 72 2 1722 1723 1724 1725 + 22 72 2 1723 1724 1725 1726 + 24 72 2 1724 1725 1726 1727 + 26 72 2 1725 1726 1727 1728 + 28 72 2 1726 1727 1728 1729 + 30 72 2 1727 1728 1729 1730 + 32 72 2 1728 1729 1730 1731 + 34 72 2 1729 1730 1731 1732 + 36 72 2 1730 1731 1732 1733 + 38 72 2 1731 1732 1733 1734 + 40 72 2 1732 1733 1734 1735 + 42 72 2 1733 1734 1735 1736 + 44 72 2 1734 1735 1736 1737 + 46 72 2 1735 1736 1737 1738 + 48 72 2 1736 1737 1738 1739 + 50 72 2 1737 1738 1739 1740 + 52 72 2 1738 1739 1740 1741 + 54 72 2 1739 1740 1741 1742 + 56 72 2 1740 1741 1742 1743 + 58 72 2 1741 1742 1743 1744 + 60 72 2 1742 1743 1744 1745 + 62 72 2 1743 1744 1745 1746 + 64 72 2 1744 1745 1746 1747 + 66 72 2 1745 1746 1747 1748 + 68 72 2 1746 1747 1748 1749 + 70 72 2 1747 1748 1749 162 + 0 74 2 -1 -1 1750 1751 + 2 74 2 -1 1750 1751 1752 + 4 74 2 1750 1751 1752 1753 + 6 74 2 1751 1752 1753 1754 + 8 74 2 1752 1753 1754 1755 + 10 74 2 1753 1754 1755 1756 + 12 74 2 1754 1755 1756 1757 + 14 74 2 1755 1756 1757 1758 + 16 74 2 1756 1757 1758 1759 + 18 74 2 1757 1758 1759 1760 + 20 74 2 1758 1759 1760 1761 + 22 74 2 1759 1760 1761 1762 + 24 74 2 1760 1761 1762 1763 + 26 74 2 1761 1762 1763 1764 + 28 74 2 1762 1763 1764 1765 + 30 74 2 1763 1764 1765 1766 + 32 74 2 1764 1765 1766 1767 + 34 74 2 1765 1766 1767 1768 + 36 74 2 1766 1767 1768 1769 + 38 74 2 1767 1768 1769 1770 + 40 74 2 1768 1769 1770 1771 + 42 74 2 1769 1770 1771 1772 + 44 74 2 1770 1771 1772 1773 + 46 74 2 1771 1772 1773 1774 + 48 74 2 1772 1773 1774 1775 + 50 74 2 1773 1774 1775 1776 + 52 74 2 1774 1775 1776 1777 + 54 74 2 1775 1776 1777 1778 + 56 74 2 1776 1777 1778 1779 + 58 74 2 1777 1778 1779 1780 + 60 74 2 1778 1779 1780 1781 + 62 74 2 1779 1780 1781 1782 + 64 74 2 1780 1781 1782 1783 + 66 74 2 1781 1782 1783 1784 + 68 74 2 1782 1783 1784 1785 + 70 74 2 1783 1784 1785 1786 + 72 74 2 1784 1785 1786 164 + 0 76 2 -1 -1 1787 1788 + 2 76 2 -1 1787 1788 1789 + 4 76 2 1787 1788 1789 1790 + 6 76 2 1788 1789 1790 1791 + 8 76 2 1789 1790 1791 1792 + 10 76 2 1790 1791 1792 1793 + 12 76 2 1791 1792 1793 1794 + 14 76 2 1792 1793 1794 1795 + 16 76 2 1793 1794 1795 1796 + 18 76 2 1794 1795 1796 1797 + 20 76 2 1795 1796 1797 1798 + 22 76 2 1796 1797 1798 1799 + 24 76 2 1797 1798 1799 1800 + 26 76 2 1798 1799 1800 1801 + 28 76 2 1799 1800 1801 1802 + 30 76 2 1800 1801 1802 1803 + 32 76 2 1801 1802 1803 1804 + 34 76 2 1802 1803 1804 1805 + 36 76 2 1803 1804 1805 1806 + 38 76 2 1804 1805 1806 1807 + 40 76 2 1805 1806 1807 1808 + 42 76 2 1806 1807 1808 1809 + 44 76 2 1807 1808 1809 1810 + 46 76 2 1808 1809 1810 1811 + 48 76 2 1809 1810 1811 1812 + 50 76 2 1810 1811 1812 1813 + 52 76 2 1811 1812 1813 1814 + 54 76 2 1812 1813 1814 1815 + 56 76 2 1813 1814 1815 1816 + 58 76 2 1814 1815 1816 1817 + 60 76 2 1815 1816 1817 1818 + 62 76 2 1816 1817 1818 1819 + 64 76 2 1817 1818 1819 1820 + 66 76 2 1818 1819 1820 1821 + 68 76 2 1819 1820 1821 1822 + 70 76 2 1820 1821 1822 167 + 76 76 2 0 1823 1824 1825 + 78 76 2 1823 1824 1825 -1 + 80 76 2 1824 1825 -1 -1 + 0 78 2 -1 -1 1826 1827 + 2 78 2 -1 1826 1827 1828 + 4 78 2 1826 1827 1828 1829 + 6 78 2 1827 1828 1829 1830 + 8 78 2 1828 1829 1830 1831 + 10 78 2 1829 1830 1831 1832 + 12 78 2 1830 1831 1832 1833 + 14 78 2 1831 1832 1833 1834 + 16 78 2 1832 1833 1834 1835 + 18 78 2 1833 1834 1835 1836 + 20 78 2 1834 1835 1836 1837 + 22 78 2 1835 1836 1837 1838 + 24 78 2 1836 1837 1838 1839 + 26 78 2 1837 1838 1839 1840 + 28 78 2 1838 1839 1840 1841 + 30 78 2 1839 1840 1841 1842 + 32 78 2 1840 1841 1842 1843 + 34 78 2 1841 1842 1843 1844 + 36 78 2 1842 1843 1844 1845 + 38 78 2 1843 1844 1845 1846 + 40 78 2 1844 1845 1846 1847 + 42 78 2 1845 1846 1847 1848 + 44 78 2 1846 1847 1848 1849 + 46 78 2 1847 1848 1849 1850 + 48 78 2 1848 1849 1850 1851 + 50 78 2 1849 1850 1851 1852 + 52 78 2 1850 1851 1852 1853 + 54 78 2 1851 1852 1853 1854 + 56 78 2 1852 1853 1854 1855 + 58 78 2 1853 1854 1855 1856 + 60 78 2 1854 1855 1856 1857 + 62 78 2 1855 1856 1857 1858 + 64 78 2 1856 1857 1858 1859 + 66 78 2 1857 1858 1859 1860 + 68 78 2 1858 1859 1860 1861 + 70 78 2 1859 1860 1861 1862 + 72 78 2 1860 1861 1862 1863 + 74 78 2 1861 1862 1863 1864 + 76 78 2 1862 1863 1864 1865 + 78 78 2 1863 1864 1865 170 + 0 80 2 -1 -1 1866 1867 + 2 80 2 -1 1866 1867 1868 + 4 80 2 1866 1867 1868 1869 + 6 80 2 1867 1868 1869 1870 + 8 80 2 1868 1869 1870 1871 + 10 80 2 1869 1870 1871 1872 + 12 80 2 1870 1871 1872 1873 + 14 80 2 1871 1872 1873 1874 + 16 80 2 1872 1873 1874 1875 + 18 80 2 1873 1874 1875 1876 + 20 80 2 1874 1875 1876 1877 + 22 80 2 1875 1876 1877 1878 + 24 80 2 1876 1877 1878 1879 + 26 80 2 1877 1878 1879 1880 + 28 80 2 1878 1879 1880 1881 + 30 80 2 1879 1880 1881 1882 + 32 80 2 1880 1881 1882 1883 + 34 80 2 1881 1882 1883 1884 + 36 80 2 1882 1883 1884 1885 + 38 80 2 1883 1884 1885 1886 + 40 80 2 1884 1885 1886 1887 + 42 80 2 1885 1886 1887 1888 + 44 80 2 1886 1887 1888 1889 + 46 80 2 1887 1888 1889 1890 + 48 80 2 1888 1889 1890 1891 + 50 80 2 1889 1890 1891 1892 + 52 80 2 1890 1891 1892 1893 + 54 80 2 1891 1892 1893 1894 + 56 80 2 1892 1893 1894 1895 + 58 80 2 1893 1894 1895 1896 + 60 80 2 1894 1895 1896 1897 + 62 80 2 1895 1896 1897 1898 + 64 80 2 1896 1897 1898 1899 + 66 80 2 1897 1898 1899 1900 + 68 80 2 1898 1899 1900 1901 + 70 80 2 1899 1900 1901 1902 + 72 80 2 1900 1901 1902 1903 + 74 80 2 1901 1902 1903 1904 + 76 80 2 1902 1903 1904 1905 + 78 80 2 1903 1904 1905 1906 + 80 80 2 1904 1905 1906 173 + 86 80 2 0 1907 1908 0 + 0 82 2 -1 -1 1909 1910 + 2 82 2 -1 1909 1910 1911 + 4 82 2 1909 1910 1911 1912 + 6 82 2 1910 1911 1912 1913 + 8 82 2 1911 1912 1913 1914 + 10 82 2 1912 1913 1914 1915 + 12 82 2 1913 1914 1915 1916 + 14 82 2 1914 1915 1916 1917 + 16 82 2 1915 1916 1917 1918 + 18 82 2 1916 1917 1918 1919 + 20 82 2 1917 1918 1919 1920 + 22 82 2 1918 1919 1920 1921 + 24 82 2 1919 1920 1921 1922 + 26 82 2 1920 1921 1922 1923 + 28 82 2 1921 1922 1923 1924 + 30 82 2 1922 1923 1924 1925 + 32 82 2 1923 1924 1925 1926 + 34 82 2 1924 1925 1926 1927 + 36 82 2 1925 1926 1927 1928 + 38 82 2 1926 1927 1928 1929 + 40 82 2 1927 1928 1929 1930 + 42 82 2 1928 1929 1930 1931 + 44 82 2 1929 1930 1931 1932 + 46 82 2 1930 1931 1932 1933 + 48 82 2 1931 1932 1933 1934 + 50 82 2 1932 1933 1934 1935 + 52 82 2 1933 1934 1935 1936 + 54 82 2 1934 1935 1936 1937 + 56 82 2 1935 1936 1937 1938 + 58 82 2 1936 1937 1938 1939 + 60 82 2 1937 1938 1939 1940 + 62 82 2 1938 1939 1940 1941 + 64 82 2 1939 1940 1941 1942 + 66 82 2 1940 1941 1942 1943 + 68 82 2 1941 1942 1943 1944 + 70 82 2 1942 1943 1944 1945 + 72 82 2 1943 1944 1945 1946 + 74 82 2 1944 1945 1946 1947 + 76 82 2 1945 1946 1947 1948 + 78 82 2 1946 1947 1948 1949 + 80 82 2 1947 1948 1949 1950 + 82 82 2 1948 1949 1950 1951 + 84 82 2 1949 1950 1951 1952 + 86 82 2 1950 1951 1952 1953 + 88 82 2 1951 1952 1953 0 + 0 84 2 2004 2005 1954 1955 + 2 84 2 2005 1954 1955 1956 + 4 84 2 1954 1955 1956 1957 + 6 84 2 1955 1956 1957 1958 + 8 84 2 1956 1957 1958 1959 + 10 84 2 1957 1958 1959 1960 + 12 84 2 1958 1959 1960 1961 + 14 84 2 1959 1960 1961 1962 + 16 84 2 1960 1961 1962 1963 + 18 84 2 1961 1962 1963 1964 + 20 84 2 1962 1963 1964 1965 + 22 84 2 1963 1964 1965 1966 + 24 84 2 1964 1965 1966 1967 + 26 84 2 1965 1966 1967 1968 + 28 84 2 1966 1967 1968 1969 + 30 84 2 1967 1968 1969 1970 + 32 84 2 1968 1969 1970 1971 + 34 84 2 1969 1970 1971 1972 + 36 84 2 1970 1971 1972 1973 + 38 84 2 1971 1972 1973 1974 + 40 84 2 1972 1973 1974 1975 + 42 84 2 1973 1974 1975 1976 + 44 84 2 1974 1975 1976 1977 + 46 84 2 1975 1976 1977 1978 + 48 84 2 1976 1977 1978 1979 + 50 84 2 1977 1978 1979 1980 + 52 84 2 1978 1979 1980 1981 + 54 84 2 1979 1980 1981 1982 + 56 84 2 1980 1981 1982 1983 + 58 84 2 1981 1982 1983 1984 + 60 84 2 1982 1983 1984 1985 + 62 84 2 1983 1984 1985 1986 + 64 84 2 1984 1985 1986 1987 + 66 84 2 1985 1986 1987 1988 + 68 84 2 1986 1987 1988 1989 + 70 84 2 1987 1988 1989 1990 + 72 84 2 1988 1989 1990 1991 + 74 84 2 1989 1990 1991 1992 + 76 84 2 1990 1991 1992 1993 + 78 84 2 1991 1992 1993 1994 + 80 84 2 1992 1993 1994 1995 + 82 84 2 1993 1994 1995 1996 + 84 84 2 1994 1995 1996 1997 + 86 84 2 1995 1996 1997 1998 + 88 84 2 1996 1997 1998 1999 + 90 84 2 1997 1998 1999 2000 + 92 84 2 1998 1999 2000 2001 + 94 84 2 1999 2000 2001 2002 + 96 84 2 2000 2001 2002 2003 + 98 84 2 2001 2002 2003 2004 + 100 84 2 2002 2003 2004 2005 + 102 84 2 2003 2004 2005 1954 + 0 86 2 2056 2057 2006 2007 + 2 86 2 2057 2006 2007 2008 + 4 86 2 2006 2007 2008 2009 + 6 86 2 2007 2008 2009 2010 + 8 86 2 2008 2009 2010 2011 + 10 86 2 2009 2010 2011 2012 + 12 86 2 2010 2011 2012 2013 + 14 86 2 2011 2012 2013 2014 + 16 86 2 2012 2013 2014 2015 + 18 86 2 2013 2014 2015 2016 + 20 86 2 2014 2015 2016 2017 + 22 86 2 2015 2016 2017 2018 + 24 86 2 2016 2017 2018 2019 + 26 86 2 2017 2018 2019 2020 + 28 86 2 2018 2019 2020 2021 + 30 86 2 2019 2020 2021 2022 + 32 86 2 2020 2021 2022 2023 + 34 86 2 2021 2022 2023 2024 + 36 86 2 2022 2023 2024 2025 + 38 86 2 2023 2024 2025 2026 + 40 86 2 2024 2025 2026 2027 + 42 86 2 2025 2026 2027 2028 + 44 86 2 2026 2027 2028 2029 + 46 86 2 2027 2028 2029 2030 + 48 86 2 2028 2029 2030 2031 + 50 86 2 2029 2030 2031 2032 + 52 86 2 2030 2031 2032 2033 + 54 86 2 2031 2032 2033 2034 + 56 86 2 2032 2033 2034 2035 + 58 86 2 2033 2034 2035 2036 + 60 86 2 2034 2035 2036 2037 + 62 86 2 2035 2036 2037 2038 + 64 86 2 2036 2037 2038 2039 + 66 86 2 2037 2038 2039 2040 + 68 86 2 2038 2039 2040 2041 + 70 86 2 2039 2040 2041 2042 + 72 86 2 2040 2041 2042 2043 + 74 86 2 2041 2042 2043 2044 + 76 86 2 2042 2043 2044 2045 + 78 86 2 2043 2044 2045 2046 + 80 86 2 2044 2045 2046 2047 + 82 86 2 2045 2046 2047 2048 + 84 86 2 2046 2047 2048 2049 + 86 86 2 2047 2048 2049 2050 + 88 86 2 2048 2049 2050 2051 + 90 86 2 2049 2050 2051 2052 + 92 86 2 2050 2051 2052 2053 + 94 86 2 2051 2052 2053 2054 + 96 86 2 2052 2053 2054 2055 + 98 86 2 2053 2054 2055 2056 + 100 86 2 2054 2055 2056 2057 + 102 86 2 2055 2056 2057 2006 + 0 88 2 2108 2109 2058 2059 + 2 88 2 2109 2058 2059 2060 + 4 88 2 2058 2059 2060 2061 + 6 88 2 2059 2060 2061 2062 + 8 88 2 2060 2061 2062 2063 + 10 88 2 2061 2062 2063 2064 + 12 88 2 2062 2063 2064 2065 + 14 88 2 2063 2064 2065 2066 + 16 88 2 2064 2065 2066 2067 + 18 88 2 2065 2066 2067 2068 + 20 88 2 2066 2067 2068 2069 + 22 88 2 2067 2068 2069 2070 + 24 88 2 2068 2069 2070 2071 + 26 88 2 2069 2070 2071 2072 + 28 88 2 2070 2071 2072 2073 + 30 88 2 2071 2072 2073 2074 + 32 88 2 2072 2073 2074 2075 + 34 88 2 2073 2074 2075 2076 + 36 88 2 2074 2075 2076 2077 + 38 88 2 2075 2076 2077 2078 + 40 88 2 2076 2077 2078 2079 + 42 88 2 2077 2078 2079 2080 + 44 88 2 2078 2079 2080 2081 + 46 88 2 2079 2080 2081 2082 + 48 88 2 2080 2081 2082 2083 + 50 88 2 2081 2082 2083 2084 + 52 88 2 2082 2083 2084 2085 + 54 88 2 2083 2084 2085 2086 + 56 88 2 2084 2085 2086 2087 + 58 88 2 2085 2086 2087 2088 + 60 88 2 2086 2087 2088 2089 + 62 88 2 2087 2088 2089 2090 + 64 88 2 2088 2089 2090 2091 + 66 88 2 2089 2090 2091 2092 + 68 88 2 2090 2091 2092 2093 + 70 88 2 2091 2092 2093 2094 + 72 88 2 2092 2093 2094 2095 + 74 88 2 2093 2094 2095 2096 + 76 88 2 2094 2095 2096 2097 + 78 88 2 2095 2096 2097 2098 + 80 88 2 2096 2097 2098 2099 + 82 88 2 2097 2098 2099 2100 + 84 88 2 2098 2099 2100 2101 + 86 88 2 2099 2100 2101 2102 + 88 88 2 2100 2101 2102 2103 + 90 88 2 2101 2102 2103 2104 + 92 88 2 2102 2103 2104 2105 + 94 88 2 2103 2104 2105 2106 + 96 88 2 2104 2105 2106 2107 + 98 88 2 2105 2106 2107 2108 + 100 88 2 2106 2107 2108 2109 + 102 88 2 2107 2108 2109 2058 + 0 90 2 2160 2161 2110 2111 + 2 90 2 2161 2110 2111 2112 + 4 90 2 2110 2111 2112 2113 + 6 90 2 2111 2112 2113 2114 + 8 90 2 2112 2113 2114 2115 + 10 90 2 2113 2114 2115 2116 + 12 90 2 2114 2115 2116 2117 + 14 90 2 2115 2116 2117 2118 + 16 90 2 2116 2117 2118 2119 + 18 90 2 2117 2118 2119 2120 + 20 90 2 2118 2119 2120 2121 + 22 90 2 2119 2120 2121 2122 + 24 90 2 2120 2121 2122 2123 + 26 90 2 2121 2122 2123 2124 + 28 90 2 2122 2123 2124 2125 + 30 90 2 2123 2124 2125 2126 + 32 90 2 2124 2125 2126 2127 + 34 90 2 2125 2126 2127 2128 + 36 90 2 2126 2127 2128 2129 + 38 90 2 2127 2128 2129 2130 + 40 90 2 2128 2129 2130 2131 + 42 90 2 2129 2130 2131 2132 + 44 90 2 2130 2131 2132 2133 + 46 90 2 2131 2132 2133 2134 + 48 90 2 2132 2133 2134 2135 + 50 90 2 2133 2134 2135 2136 + 52 90 2 2134 2135 2136 2137 + 54 90 2 2135 2136 2137 2138 + 56 90 2 2136 2137 2138 2139 + 58 90 2 2137 2138 2139 2140 + 60 90 2 2138 2139 2140 2141 + 62 90 2 2139 2140 2141 2142 + 64 90 2 2140 2141 2142 2143 + 66 90 2 2141 2142 2143 2144 + 68 90 2 2142 2143 2144 2145 + 70 90 2 2143 2144 2145 2146 + 72 90 2 2144 2145 2146 2147 + 74 90 2 2145 2146 2147 2148 + 76 90 2 2146 2147 2148 2149 + 78 90 2 2147 2148 2149 2150 + 80 90 2 2148 2149 2150 2151 + 82 90 2 2149 2150 2151 2152 + 84 90 2 2150 2151 2152 2153 + 86 90 2 2151 2152 2153 2154 + 88 90 2 2152 2153 2154 2155 + 90 90 2 2153 2154 2155 2156 + 92 90 2 2154 2155 2156 2157 + 94 90 2 2155 2156 2157 2158 + 96 90 2 2156 2157 2158 2159 + 98 90 2 2157 2158 2159 2160 + 100 90 2 2158 2159 2160 2161 + 102 90 2 2159 2160 2161 2110 + 0 92 2 2212 2213 2162 2163 + 2 92 2 2213 2162 2163 2164 + 4 92 2 2162 2163 2164 2165 + 6 92 2 2163 2164 2165 2166 + 8 92 2 2164 2165 2166 2167 + 10 92 2 2165 2166 2167 2168 + 12 92 2 2166 2167 2168 2169 + 14 92 2 2167 2168 2169 2170 + 16 92 2 2168 2169 2170 2171 + 18 92 2 2169 2170 2171 2172 + 20 92 2 2170 2171 2172 2173 + 22 92 2 2171 2172 2173 2174 + 24 92 2 2172 2173 2174 2175 + 26 92 2 2173 2174 2175 2176 + 28 92 2 2174 2175 2176 2177 + 30 92 2 2175 2176 2177 2178 + 32 92 2 2176 2177 2178 2179 + 34 92 2 2177 2178 2179 2180 + 36 92 2 2178 2179 2180 2181 + 38 92 2 2179 2180 2181 2182 + 40 92 2 2180 2181 2182 2183 + 42 92 2 2181 2182 2183 2184 + 44 92 2 2182 2183 2184 2185 + 46 92 2 2183 2184 2185 2186 + 48 92 2 2184 2185 2186 2187 + 50 92 2 2185 2186 2187 2188 + 52 92 2 2186 2187 2188 2189 + 54 92 2 2187 2188 2189 2190 + 56 92 2 2188 2189 2190 2191 + 58 92 2 2189 2190 2191 2192 + 60 92 2 2190 2191 2192 2193 + 62 92 2 2191 2192 2193 2194 + 64 92 2 2192 2193 2194 2195 + 66 92 2 2193 2194 2195 2196 + 68 92 2 2194 2195 2196 2197 + 70 92 2 2195 2196 2197 2198 + 72 92 2 2196 2197 2198 2199 + 74 92 2 2197 2198 2199 2200 + 76 92 2 2198 2199 2200 2201 + 78 92 2 2199 2200 2201 2202 + 80 92 2 2200 2201 2202 2203 + 82 92 2 2201 2202 2203 2204 + 84 92 2 2202 2203 2204 2205 + 86 92 2 2203 2204 2205 2206 + 88 92 2 2204 2205 2206 2207 + 90 92 2 2205 2206 2207 2208 + 92 92 2 2206 2207 2208 2209 + 94 92 2 2207 2208 2209 2210 + 96 92 2 2208 2209 2210 2211 + 98 92 2 2209 2210 2211 2212 + 100 92 2 2210 2211 2212 2213 + 102 92 2 2211 2212 2213 2162 + 0 94 2 2264 2265 2214 2215 + 2 94 2 2265 2214 2215 2216 + 4 94 2 2214 2215 2216 2217 + 6 94 2 2215 2216 2217 2218 + 8 94 2 2216 2217 2218 2219 + 10 94 2 2217 2218 2219 2220 + 12 94 2 2218 2219 2220 2221 + 14 94 2 2219 2220 2221 2222 + 16 94 2 2220 2221 2222 2223 + 18 94 2 2221 2222 2223 2224 + 20 94 2 2222 2223 2224 2225 + 22 94 2 2223 2224 2225 2226 + 24 94 2 2224 2225 2226 2227 + 26 94 2 2225 2226 2227 2228 + 28 94 2 2226 2227 2228 2229 + 30 94 2 2227 2228 2229 2230 + 32 94 2 2228 2229 2230 2231 + 34 94 2 2229 2230 2231 2232 + 36 94 2 2230 2231 2232 2233 + 38 94 2 2231 2232 2233 2234 + 40 94 2 2232 2233 2234 2235 + 42 94 2 2233 2234 2235 2236 + 44 94 2 2234 2235 2236 2237 + 46 94 2 2235 2236 2237 2238 + 48 94 2 2236 2237 2238 2239 + 50 94 2 2237 2238 2239 2240 + 52 94 2 2238 2239 2240 2241 + 54 94 2 2239 2240 2241 2242 + 56 94 2 2240 2241 2242 2243 + 58 94 2 2241 2242 2243 2244 + 60 94 2 2242 2243 2244 2245 + 62 94 2 2243 2244 2245 2246 + 64 94 2 2244 2245 2246 2247 + 66 94 2 2245 2246 2247 2248 + 68 94 2 2246 2247 2248 2249 + 70 94 2 2247 2248 2249 2250 + 72 94 2 2248 2249 2250 2251 + 74 94 2 2249 2250 2251 2252 + 76 94 2 2250 2251 2252 2253 + 78 94 2 2251 2252 2253 2254 + 80 94 2 2252 2253 2254 2255 + 82 94 2 2253 2254 2255 2256 + 84 94 2 2254 2255 2256 2257 + 86 94 2 2255 2256 2257 2258 + 88 94 2 2256 2257 2258 2259 + 90 94 2 2257 2258 2259 2260 + 92 94 2 2258 2259 2260 2261 + 94 94 2 2259 2260 2261 2262 + 96 94 2 2260 2261 2262 2263 + 98 94 2 2261 2262 2263 2264 + 100 94 2 2262 2263 2264 2265 + 102 94 2 2263 2264 2265 2214 + 0 96 2 2316 2317 2266 2267 + 2 96 2 2317 2266 2267 2268 + 4 96 2 2266 2267 2268 2269 + 6 96 2 2267 2268 2269 2270 + 8 96 2 2268 2269 2270 2271 + 10 96 2 2269 2270 2271 2272 + 12 96 2 2270 2271 2272 2273 + 14 96 2 2271 2272 2273 2274 + 16 96 2 2272 2273 2274 2275 + 18 96 2 2273 2274 2275 2276 + 20 96 2 2274 2275 2276 2277 + 22 96 2 2275 2276 2277 2278 + 24 96 2 2276 2277 2278 2279 + 26 96 2 2277 2278 2279 2280 + 28 96 2 2278 2279 2280 2281 + 30 96 2 2279 2280 2281 2282 + 32 96 2 2280 2281 2282 2283 + 34 96 2 2281 2282 2283 2284 + 36 96 2 2282 2283 2284 2285 + 38 96 2 2283 2284 2285 2286 + 40 96 2 2284 2285 2286 2287 + 42 96 2 2285 2286 2287 2288 + 44 96 2 2286 2287 2288 2289 + 46 96 2 2287 2288 2289 2290 + 48 96 2 2288 2289 2290 2291 + 50 96 2 2289 2290 2291 2292 + 52 96 2 2290 2291 2292 2293 + 54 96 2 2291 2292 2293 2294 + 56 96 2 2292 2293 2294 2295 + 58 96 2 2293 2294 2295 2296 + 60 96 2 2294 2295 2296 2297 + 62 96 2 2295 2296 2297 2298 + 64 96 2 2296 2297 2298 2299 + 66 96 2 2297 2298 2299 2300 + 68 96 2 2298 2299 2300 2301 + 70 96 2 2299 2300 2301 2302 + 72 96 2 2300 2301 2302 2303 + 74 96 2 2301 2302 2303 2304 + 76 96 2 2302 2303 2304 2305 + 78 96 2 2303 2304 2305 2306 + 80 96 2 2304 2305 2306 2307 + 82 96 2 2305 2306 2307 2308 + 84 96 2 2306 2307 2308 2309 + 86 96 2 2307 2308 2309 2310 + 88 96 2 2308 2309 2310 2311 + 90 96 2 2309 2310 2311 2312 + 92 96 2 2310 2311 2312 2313 + 94 96 2 2311 2312 2313 2314 + 96 96 2 2312 2313 2314 2315 + 98 96 2 2313 2314 2315 2316 + 100 96 2 2314 2315 2316 2317 + 102 96 2 2315 2316 2317 2266 + 0 98 2 2368 2369 2318 2319 + 2 98 2 2369 2318 2319 2320 + 4 98 2 2318 2319 2320 2321 + 6 98 2 2319 2320 2321 2322 + 8 98 2 2320 2321 2322 2323 + 10 98 2 2321 2322 2323 2324 + 12 98 2 2322 2323 2324 2325 + 14 98 2 2323 2324 2325 2326 + 16 98 2 2324 2325 2326 2327 + 18 98 2 2325 2326 2327 2328 + 20 98 2 2326 2327 2328 2329 + 22 98 2 2327 2328 2329 2330 + 24 98 2 2328 2329 2330 2331 + 26 98 2 2329 2330 2331 2332 + 28 98 2 2330 2331 2332 2333 + 30 98 2 2331 2332 2333 2334 + 32 98 2 2332 2333 2334 2335 + 34 98 2 2333 2334 2335 2336 + 36 98 2 2334 2335 2336 2337 + 38 98 2 2335 2336 2337 2338 + 40 98 2 2336 2337 2338 2339 + 42 98 2 2337 2338 2339 2340 + 44 98 2 2338 2339 2340 2341 + 46 98 2 2339 2340 2341 2342 + 48 98 2 2340 2341 2342 2343 + 50 98 2 2341 2342 2343 2344 + 52 98 2 2342 2343 2344 2345 + 54 98 2 2343 2344 2345 2346 + 56 98 2 2344 2345 2346 2347 + 58 98 2 2345 2346 2347 2348 + 60 98 2 2346 2347 2348 2349 + 62 98 2 2347 2348 2349 2350 + 64 98 2 2348 2349 2350 2351 + 66 98 2 2349 2350 2351 2352 + 68 98 2 2350 2351 2352 2353 + 70 98 2 2351 2352 2353 2354 + 72 98 2 2352 2353 2354 2355 + 74 98 2 2353 2354 2355 2356 + 76 98 2 2354 2355 2356 2357 + 78 98 2 2355 2356 2357 2358 + 80 98 2 2356 2357 2358 2359 + 82 98 2 2357 2358 2359 2360 + 84 98 2 2358 2359 2360 2361 + 86 98 2 2359 2360 2361 2362 + 88 98 2 2360 2361 2362 2363 + 90 98 2 2361 2362 2363 2364 + 92 98 2 2362 2363 2364 2365 + 94 98 2 2363 2364 2365 2366 + 96 98 2 2364 2365 2366 2367 + 98 98 2 2365 2366 2367 2368 + 100 98 2 2366 2367 2368 2369 + 102 98 2 2367 2368 2369 2318 + 0 100 2 2420 2421 2370 2371 + 2 100 2 2421 2370 2371 2372 + 4 100 2 2370 2371 2372 2373 + 6 100 2 2371 2372 2373 2374 + 8 100 2 2372 2373 2374 2375 + 10 100 2 2373 2374 2375 2376 + 12 100 2 2374 2375 2376 2377 + 14 100 2 2375 2376 2377 2378 + 16 100 2 2376 2377 2378 2379 + 18 100 2 2377 2378 2379 2380 + 20 100 2 2378 2379 2380 2381 + 22 100 2 2379 2380 2381 2382 + 24 100 2 2380 2381 2382 2383 + 26 100 2 2381 2382 2383 2384 + 28 100 2 2382 2383 2384 2385 + 30 100 2 2383 2384 2385 2386 + 32 100 2 2384 2385 2386 2387 + 34 100 2 2385 2386 2387 2388 + 36 100 2 2386 2387 2388 2389 + 38 100 2 2387 2388 2389 2390 + 40 100 2 2388 2389 2390 2391 + 42 100 2 2389 2390 2391 2392 + 44 100 2 2390 2391 2392 2393 + 46 100 2 2391 2392 2393 2394 + 48 100 2 2392 2393 2394 2395 + 50 100 2 2393 2394 2395 2396 + 52 100 2 2394 2395 2396 2397 + 54 100 2 2395 2396 2397 2398 + 56 100 2 2396 2397 2398 2399 + 58 100 2 2397 2398 2399 2400 + 60 100 2 2398 2399 2400 2401 + 62 100 2 2399 2400 2401 2402 + 64 100 2 2400 2401 2402 2403 + 66 100 2 2401 2402 2403 2404 + 68 100 2 2402 2403 2404 2405 + 70 100 2 2403 2404 2405 2406 + 72 100 2 2404 2405 2406 2407 + 74 100 2 2405 2406 2407 2408 + 76 100 2 2406 2407 2408 2409 + 78 100 2 2407 2408 2409 2410 + 80 100 2 2408 2409 2410 2411 + 82 100 2 2409 2410 2411 2412 + 84 100 2 2410 2411 2412 2413 + 86 100 2 2411 2412 2413 2414 + 88 100 2 2412 2413 2414 2415 + 90 100 2 2413 2414 2415 2416 + 92 100 2 2414 2415 2416 2417 + 94 100 2 2415 2416 2417 2418 + 96 100 2 2416 2417 2418 2419 + 98 100 2 2417 2418 2419 2420 + 100 100 2 2418 2419 2420 2421 + 102 100 2 2419 2420 2421 2370 + 0 102 2 2472 2473 2422 2423 + 2 102 2 2473 2422 2423 2424 + 4 102 2 2422 2423 2424 2425 + 6 102 2 2423 2424 2425 2426 + 8 102 2 2424 2425 2426 2427 + 10 102 2 2425 2426 2427 2428 + 12 102 2 2426 2427 2428 2429 + 14 102 2 2427 2428 2429 2430 + 16 102 2 2428 2429 2430 2431 + 18 102 2 2429 2430 2431 2432 + 20 102 2 2430 2431 2432 2433 + 22 102 2 2431 2432 2433 2434 + 24 102 2 2432 2433 2434 2435 + 26 102 2 2433 2434 2435 2436 + 28 102 2 2434 2435 2436 2437 + 30 102 2 2435 2436 2437 2438 + 32 102 2 2436 2437 2438 2439 + 34 102 2 2437 2438 2439 2440 + 36 102 2 2438 2439 2440 2441 + 38 102 2 2439 2440 2441 2442 + 40 102 2 2440 2441 2442 2443 + 42 102 2 2441 2442 2443 2444 + 44 102 2 2442 2443 2444 2445 + 46 102 2 2443 2444 2445 2446 + 48 102 2 2444 2445 2446 2447 + 50 102 2 2445 2446 2447 2448 + 52 102 2 2446 2447 2448 2449 + 54 102 2 2447 2448 2449 2450 + 56 102 2 2448 2449 2450 2451 + 58 102 2 2449 2450 2451 2452 + 60 102 2 2450 2451 2452 2453 + 62 102 2 2451 2452 2453 2454 + 64 102 2 2452 2453 2454 2455 + 66 102 2 2453 2454 2455 2456 + 68 102 2 2454 2455 2456 2457 + 70 102 2 2455 2456 2457 2458 + 72 102 2 2456 2457 2458 2459 + 74 102 2 2457 2458 2459 2460 + 76 102 2 2458 2459 2460 2461 + 78 102 2 2459 2460 2461 2462 + 80 102 2 2460 2461 2462 2463 + 82 102 2 2461 2462 2463 2464 + 84 102 2 2462 2463 2464 2465 + 86 102 2 2463 2464 2465 2466 + 88 102 2 2464 2465 2466 2467 + 90 102 2 2465 2466 2467 2468 + 92 102 2 2466 2467 2468 2469 + 94 102 2 2467 2468 2469 2470 + 96 102 2 2468 2469 2470 2471 + 98 102 2 2469 2470 2471 2472 + 100 102 2 2470 2471 2472 2473 + 102 102 2 2471 2472 2473 2422 + 0 104 2 2524 2525 2474 2475 + 2 104 2 2525 2474 2475 2476 + 4 104 2 2474 2475 2476 2477 + 6 104 2 2475 2476 2477 2478 + 8 104 2 2476 2477 2478 2479 + 10 104 2 2477 2478 2479 2480 + 12 104 2 2478 2479 2480 2481 + 14 104 2 2479 2480 2481 2482 + 16 104 2 2480 2481 2482 2483 + 18 104 2 2481 2482 2483 2484 + 20 104 2 2482 2483 2484 2485 + 22 104 2 2483 2484 2485 2486 + 24 104 2 2484 2485 2486 2487 + 26 104 2 2485 2486 2487 2488 + 28 104 2 2486 2487 2488 2489 + 30 104 2 2487 2488 2489 2490 + 32 104 2 2488 2489 2490 2491 + 34 104 2 2489 2490 2491 2492 + 36 104 2 2490 2491 2492 2493 + 38 104 2 2491 2492 2493 2494 + 40 104 2 2492 2493 2494 2495 + 42 104 2 2493 2494 2495 2496 + 44 104 2 2494 2495 2496 2497 + 46 104 2 2495 2496 2497 2498 + 48 104 2 2496 2497 2498 2499 + 50 104 2 2497 2498 2499 2500 + 52 104 2 2498 2499 2500 2501 + 54 104 2 2499 2500 2501 2502 + 56 104 2 2500 2501 2502 2503 + 58 104 2 2501 2502 2503 2504 + 60 104 2 2502 2503 2504 2505 + 62 104 2 2503 2504 2505 2506 + 64 104 2 2504 2505 2506 2507 + 66 104 2 2505 2506 2507 2508 + 68 104 2 2506 2507 2508 2509 + 70 104 2 2507 2508 2509 2510 + 72 104 2 2508 2509 2510 2511 + 74 104 2 2509 2510 2511 2512 + 76 104 2 2510 2511 2512 2513 + 78 104 2 2511 2512 2513 2514 + 80 104 2 2512 2513 2514 2515 + 82 104 2 2513 2514 2515 2516 + 84 104 2 2514 2515 2516 2517 + 86 104 2 2515 2516 2517 2518 + 88 104 2 2516 2517 2518 2519 + 90 104 2 2517 2518 2519 2520 + 92 104 2 2518 2519 2520 2521 + 94 104 2 2519 2520 2521 2522 + 96 104 2 2520 2521 2522 2523 + 98 104 2 2521 2522 2523 2524 + 100 104 2 2522 2523 2524 2525 + 102 104 2 2523 2524 2525 2474 + 0 106 2 2576 2577 2526 2527 + 2 106 2 2577 2526 2527 2528 + 4 106 2 2526 2527 2528 2529 + 6 106 2 2527 2528 2529 2530 + 8 106 2 2528 2529 2530 2531 + 10 106 2 2529 2530 2531 2532 + 12 106 2 2530 2531 2532 2533 + 14 106 2 2531 2532 2533 2534 + 16 106 2 2532 2533 2534 2535 + 18 106 2 2533 2534 2535 2536 + 20 106 2 2534 2535 2536 2537 + 22 106 2 2535 2536 2537 2538 + 24 106 2 2536 2537 2538 2539 + 26 106 2 2537 2538 2539 2540 + 28 106 2 2538 2539 2540 2541 + 30 106 2 2539 2540 2541 2542 + 32 106 2 2540 2541 2542 2543 + 34 106 2 2541 2542 2543 2544 + 36 106 2 2542 2543 2544 2545 + 38 106 2 2543 2544 2545 2546 + 40 106 2 2544 2545 2546 2547 + 42 106 2 2545 2546 2547 2548 + 44 106 2 2546 2547 2548 2549 + 46 106 2 2547 2548 2549 2550 + 48 106 2 2548 2549 2550 2551 + 50 106 2 2549 2550 2551 2552 + 52 106 2 2550 2551 2552 2553 + 54 106 2 2551 2552 2553 2554 + 56 106 2 2552 2553 2554 2555 + 58 106 2 2553 2554 2555 2556 + 60 106 2 2554 2555 2556 2557 + 62 106 2 2555 2556 2557 2558 + 64 106 2 2556 2557 2558 2559 + 66 106 2 2557 2558 2559 2560 + 68 106 2 2558 2559 2560 2561 + 70 106 2 2559 2560 2561 2562 + 72 106 2 2560 2561 2562 2563 + 74 106 2 2561 2562 2563 2564 + 76 106 2 2562 2563 2564 2565 + 78 106 2 2563 2564 2565 2566 + 80 106 2 2564 2565 2566 2567 + 82 106 2 2565 2566 2567 2568 + 84 106 2 2566 2567 2568 2569 + 86 106 2 2567 2568 2569 2570 + 88 106 2 2568 2569 2570 2571 + 90 106 2 2569 2570 2571 2572 + 92 106 2 2570 2571 2572 2573 + 94 106 2 2571 2572 2573 2574 + 96 106 2 2572 2573 2574 2575 + 98 106 2 2573 2574 2575 2576 + 100 106 2 2574 2575 2576 2577 + 102 106 2 2575 2576 2577 2526 + 0 108 2 2628 2629 2578 2579 + 2 108 2 2629 2578 2579 2580 + 4 108 2 2578 2579 2580 2581 + 6 108 2 2579 2580 2581 2582 + 8 108 2 2580 2581 2582 2583 + 10 108 2 2581 2582 2583 2584 + 12 108 2 2582 2583 2584 2585 + 14 108 2 2583 2584 2585 2586 + 16 108 2 2584 2585 2586 2587 + 18 108 2 2585 2586 2587 2588 + 20 108 2 2586 2587 2588 2589 + 22 108 2 2587 2588 2589 2590 + 24 108 2 2588 2589 2590 2591 + 26 108 2 2589 2590 2591 2592 + 28 108 2 2590 2591 2592 2593 + 30 108 2 2591 2592 2593 2594 + 32 108 2 2592 2593 2594 2595 + 34 108 2 2593 2594 2595 2596 + 36 108 2 2594 2595 2596 2597 + 38 108 2 2595 2596 2597 2598 + 40 108 2 2596 2597 2598 2599 + 42 108 2 2597 2598 2599 2600 + 44 108 2 2598 2599 2600 2601 + 46 108 2 2599 2600 2601 2602 + 48 108 2 2600 2601 2602 2603 + 50 108 2 2601 2602 2603 2604 + 52 108 2 2602 2603 2604 2605 + 54 108 2 2603 2604 2605 2606 + 56 108 2 2604 2605 2606 2607 + 58 108 2 2605 2606 2607 2608 + 60 108 2 2606 2607 2608 2609 + 62 108 2 2607 2608 2609 2610 + 64 108 2 2608 2609 2610 2611 + 66 108 2 2609 2610 2611 2612 + 68 108 2 2610 2611 2612 2613 + 70 108 2 2611 2612 2613 2614 + 72 108 2 2612 2613 2614 2615 + 74 108 2 2613 2614 2615 2616 + 76 108 2 2614 2615 2616 2617 + 78 108 2 2615 2616 2617 2618 + 80 108 2 2616 2617 2618 2619 + 82 108 2 2617 2618 2619 2620 + 84 108 2 2618 2619 2620 2621 + 86 108 2 2619 2620 2621 2622 + 88 108 2 2620 2621 2622 2623 + 90 108 2 2621 2622 2623 2624 + 92 108 2 2622 2623 2624 2625 + 94 108 2 2623 2624 2625 2626 + 96 108 2 2624 2625 2626 2627 + 98 108 2 2625 2626 2627 2628 + 100 108 2 2626 2627 2628 2629 + 102 108 2 2627 2628 2629 2578 + 0 110 2 2680 2681 2630 2631 + 2 110 2 2681 2630 2631 2632 + 4 110 2 2630 2631 2632 2633 + 6 110 2 2631 2632 2633 2634 + 8 110 2 2632 2633 2634 2635 + 10 110 2 2633 2634 2635 2636 + 12 110 2 2634 2635 2636 2637 + 14 110 2 2635 2636 2637 2638 + 16 110 2 2636 2637 2638 2639 + 18 110 2 2637 2638 2639 2640 + 20 110 2 2638 2639 2640 2641 + 22 110 2 2639 2640 2641 2642 + 24 110 2 2640 2641 2642 2643 + 26 110 2 2641 2642 2643 2644 + 28 110 2 2642 2643 2644 2645 + 30 110 2 2643 2644 2645 2646 + 32 110 2 2644 2645 2646 2647 + 34 110 2 2645 2646 2647 2648 + 36 110 2 2646 2647 2648 2649 + 38 110 2 2647 2648 2649 2650 + 40 110 2 2648 2649 2650 2651 + 42 110 2 2649 2650 2651 2652 + 44 110 2 2650 2651 2652 2653 + 46 110 2 2651 2652 2653 2654 + 48 110 2 2652 2653 2654 2655 + 50 110 2 2653 2654 2655 2656 + 52 110 2 2654 2655 2656 2657 + 54 110 2 2655 2656 2657 2658 + 56 110 2 2656 2657 2658 2659 + 58 110 2 2657 2658 2659 2660 + 60 110 2 2658 2659 2660 2661 + 62 110 2 2659 2660 2661 2662 + 64 110 2 2660 2661 2662 2663 + 66 110 2 2661 2662 2663 2664 + 68 110 2 2662 2663 2664 2665 + 70 110 2 2663 2664 2665 2666 + 72 110 2 2664 2665 2666 2667 + 74 110 2 2665 2666 2667 2668 + 76 110 2 2666 2667 2668 2669 + 78 110 2 2667 2668 2669 2670 + 80 110 2 2668 2669 2670 2671 + 82 110 2 2669 2670 2671 2672 + 84 110 2 2670 2671 2672 2673 + 86 110 2 2671 2672 2673 2674 + 88 110 2 2672 2673 2674 2675 + 90 110 2 2673 2674 2675 2676 + 92 110 2 2674 2675 2676 2677 + 94 110 2 2675 2676 2677 2678 + 96 110 2 2676 2677 2678 2679 + 98 110 2 2677 2678 2679 2680 + 100 110 2 2678 2679 2680 2681 + 102 110 2 2679 2680 2681 2630 + 0 112 2 2732 2733 2682 2683 + 2 112 2 2733 2682 2683 2684 + 4 112 2 2682 2683 2684 2685 + 6 112 2 2683 2684 2685 2686 + 8 112 2 2684 2685 2686 2687 + 10 112 2 2685 2686 2687 2688 + 12 112 2 2686 2687 2688 2689 + 14 112 2 2687 2688 2689 2690 + 16 112 2 2688 2689 2690 2691 + 18 112 2 2689 2690 2691 2692 + 20 112 2 2690 2691 2692 2693 + 22 112 2 2691 2692 2693 2694 + 24 112 2 2692 2693 2694 2695 + 26 112 2 2693 2694 2695 2696 + 28 112 2 2694 2695 2696 2697 + 30 112 2 2695 2696 2697 2698 + 32 112 2 2696 2697 2698 2699 + 34 112 2 2697 2698 2699 2700 + 36 112 2 2698 2699 2700 2701 + 38 112 2 2699 2700 2701 2702 + 40 112 2 2700 2701 2702 2703 + 42 112 2 2701 2702 2703 2704 + 44 112 2 2702 2703 2704 2705 + 46 112 2 2703 2704 2705 2706 + 48 112 2 2704 2705 2706 2707 + 50 112 2 2705 2706 2707 2708 + 52 112 2 2706 2707 2708 2709 + 54 112 2 2707 2708 2709 2710 + 56 112 2 2708 2709 2710 2711 + 58 112 2 2709 2710 2711 2712 + 60 112 2 2710 2711 2712 2713 + 62 112 2 2711 2712 2713 2714 + 64 112 2 2712 2713 2714 2715 + 66 112 2 2713 2714 2715 2716 + 68 112 2 2714 2715 2716 2717 + 70 112 2 2715 2716 2717 2718 + 72 112 2 2716 2717 2718 2719 + 74 112 2 2717 2718 2719 2720 + 76 112 2 2718 2719 2720 2721 + 78 112 2 2719 2720 2721 2722 + 80 112 2 2720 2721 2722 2723 + 82 112 2 2721 2722 2723 2724 + 84 112 2 2722 2723 2724 2725 + 86 112 2 2723 2724 2725 2726 + 88 112 2 2724 2725 2726 2727 + 90 112 2 2725 2726 2727 2728 + 92 112 2 2726 2727 2728 2729 + 94 112 2 2727 2728 2729 2730 + 96 112 2 2728 2729 2730 2731 + 98 112 2 2729 2730 2731 2732 + 100 112 2 2730 2731 2732 2733 + 102 112 2 2731 2732 2733 2682 + 0 114 2 2784 2785 2734 2735 + 2 114 2 2785 2734 2735 2736 + 4 114 2 2734 2735 2736 2737 + 6 114 2 2735 2736 2737 2738 + 8 114 2 2736 2737 2738 2739 + 10 114 2 2737 2738 2739 2740 + 12 114 2 2738 2739 2740 2741 + 14 114 2 2739 2740 2741 2742 + 16 114 2 2740 2741 2742 2743 + 18 114 2 2741 2742 2743 2744 + 20 114 2 2742 2743 2744 2745 + 22 114 2 2743 2744 2745 2746 + 24 114 2 2744 2745 2746 2747 + 26 114 2 2745 2746 2747 2748 + 28 114 2 2746 2747 2748 2749 + 30 114 2 2747 2748 2749 2750 + 32 114 2 2748 2749 2750 2751 + 34 114 2 2749 2750 2751 2752 + 36 114 2 2750 2751 2752 2753 + 38 114 2 2751 2752 2753 2754 + 40 114 2 2752 2753 2754 2755 + 42 114 2 2753 2754 2755 2756 + 44 114 2 2754 2755 2756 2757 + 46 114 2 2755 2756 2757 2758 + 48 114 2 2756 2757 2758 2759 + 50 114 2 2757 2758 2759 2760 + 52 114 2 2758 2759 2760 2761 + 54 114 2 2759 2760 2761 2762 + 56 114 2 2760 2761 2762 2763 + 58 114 2 2761 2762 2763 2764 + 60 114 2 2762 2763 2764 2765 + 62 114 2 2763 2764 2765 2766 + 64 114 2 2764 2765 2766 2767 + 66 114 2 2765 2766 2767 2768 + 68 114 2 2766 2767 2768 2769 + 70 114 2 2767 2768 2769 2770 + 72 114 2 2768 2769 2770 2771 + 74 114 2 2769 2770 2771 2772 + 76 114 2 2770 2771 2772 2773 + 78 114 2 2771 2772 2773 2774 + 80 114 2 2772 2773 2774 2775 + 82 114 2 2773 2774 2775 2776 + 84 114 2 2774 2775 2776 2777 + 86 114 2 2775 2776 2777 2778 + 88 114 2 2776 2777 2778 2779 + 90 114 2 2777 2778 2779 2780 + 92 114 2 2778 2779 2780 2781 + 94 114 2 2779 2780 2781 2782 + 96 114 2 2780 2781 2782 2783 + 98 114 2 2781 2782 2783 2784 + 100 114 2 2782 2783 2784 2785 + 102 114 2 2783 2784 2785 2734 + 0 116 2 2836 2837 2786 2787 + 2 116 2 2837 2786 2787 2788 + 4 116 2 2786 2787 2788 2789 + 6 116 2 2787 2788 2789 2790 + 8 116 2 2788 2789 2790 2791 + 10 116 2 2789 2790 2791 2792 + 12 116 2 2790 2791 2792 2793 + 14 116 2 2791 2792 2793 2794 + 16 116 2 2792 2793 2794 2795 + 18 116 2 2793 2794 2795 2796 + 20 116 2 2794 2795 2796 2797 + 22 116 2 2795 2796 2797 2798 + 24 116 2 2796 2797 2798 2799 + 26 116 2 2797 2798 2799 2800 + 28 116 2 2798 2799 2800 2801 + 30 116 2 2799 2800 2801 2802 + 32 116 2 2800 2801 2802 2803 + 34 116 2 2801 2802 2803 2804 + 36 116 2 2802 2803 2804 2805 + 38 116 2 2803 2804 2805 2806 + 40 116 2 2804 2805 2806 2807 + 42 116 2 2805 2806 2807 2808 + 44 116 2 2806 2807 2808 2809 + 46 116 2 2807 2808 2809 2810 + 48 116 2 2808 2809 2810 2811 + 50 116 2 2809 2810 2811 2812 + 52 116 2 2810 2811 2812 2813 + 54 116 2 2811 2812 2813 2814 + 56 116 2 2812 2813 2814 2815 + 58 116 2 2813 2814 2815 2816 + 60 116 2 2814 2815 2816 2817 + 62 116 2 2815 2816 2817 2818 + 64 116 2 2816 2817 2818 2819 + 66 116 2 2817 2818 2819 2820 + 68 116 2 2818 2819 2820 2821 + 70 116 2 2819 2820 2821 2822 + 72 116 2 2820 2821 2822 2823 + 74 116 2 2821 2822 2823 2824 + 76 116 2 2822 2823 2824 2825 + 78 116 2 2823 2824 2825 2826 + 80 116 2 2824 2825 2826 2827 + 82 116 2 2825 2826 2827 2828 + 84 116 2 2826 2827 2828 2829 + 86 116 2 2827 2828 2829 2830 + 88 116 2 2828 2829 2830 2831 + 90 116 2 2829 2830 2831 2832 + 92 116 2 2830 2831 2832 2833 + 94 116 2 2831 2832 2833 2834 + 96 116 2 2832 2833 2834 2835 + 98 116 2 2833 2834 2835 2836 + 100 116 2 2834 2835 2836 2837 + 102 116 2 2835 2836 2837 2786 + 0 118 2 2888 2889 2838 2839 + 2 118 2 2889 2838 2839 2840 + 4 118 2 2838 2839 2840 2841 + 6 118 2 2839 2840 2841 2842 + 8 118 2 2840 2841 2842 2843 + 10 118 2 2841 2842 2843 2844 + 12 118 2 2842 2843 2844 2845 + 14 118 2 2843 2844 2845 2846 + 16 118 2 2844 2845 2846 2847 + 18 118 2 2845 2846 2847 2848 + 20 118 2 2846 2847 2848 2849 + 22 118 2 2847 2848 2849 2850 + 24 118 2 2848 2849 2850 2851 + 26 118 2 2849 2850 2851 2852 + 28 118 2 2850 2851 2852 2853 + 30 118 2 2851 2852 2853 2854 + 32 118 2 2852 2853 2854 2855 + 34 118 2 2853 2854 2855 2856 + 36 118 2 2854 2855 2856 2857 + 38 118 2 2855 2856 2857 2858 + 40 118 2 2856 2857 2858 2859 + 42 118 2 2857 2858 2859 2860 + 44 118 2 2858 2859 2860 2861 + 46 118 2 2859 2860 2861 2862 + 48 118 2 2860 2861 2862 2863 + 50 118 2 2861 2862 2863 2864 + 52 118 2 2862 2863 2864 2865 + 54 118 2 2863 2864 2865 2866 + 56 118 2 2864 2865 2866 2867 + 58 118 2 2865 2866 2867 2868 + 60 118 2 2866 2867 2868 2869 + 62 118 2 2867 2868 2869 2870 + 64 118 2 2868 2869 2870 2871 + 66 118 2 2869 2870 2871 2872 + 68 118 2 2870 2871 2872 2873 + 70 118 2 2871 2872 2873 2874 + 72 118 2 2872 2873 2874 2875 + 74 118 2 2873 2874 2875 2876 + 76 118 2 2874 2875 2876 2877 + 78 118 2 2875 2876 2877 2878 + 80 118 2 2876 2877 2878 2879 + 82 118 2 2877 2878 2879 2880 + 84 118 2 2878 2879 2880 2881 + 86 118 2 2879 2880 2881 2882 + 88 118 2 2880 2881 2882 2883 + 90 118 2 2881 2882 2883 2884 + 92 118 2 2882 2883 2884 2885 + 94 118 2 2883 2884 2885 2886 + 96 118 2 2884 2885 2886 2887 + 98 118 2 2885 2886 2887 2888 + 100 118 2 2886 2887 2888 2889 + 102 118 2 2887 2888 2889 2838 diff --git a/regtests/ww3_tp2.14/input/BrestJSides.dat b/regtests/ww3_tp2.14/input/BrestJSides.dat new file mode 100644 index 000000000..809d47fda --- /dev/null +++ b/regtests/ww3_tp2.14/input/BrestJSides.dat @@ -0,0 +1,3072 @@ +3071 309 2762 0 0 + 92 12 1 440 492 1 0 1 + 93 12 1 440 492 2 0 1 + 94 12 1 441 493 3 0 1 + 95 12 1 441 493 4 0 1 + 96 12 1 442 494 5 0 1 + 99 12 1 443 495 6 0 1 + 100 12 1 444 496 7 0 1 + 101 12 1 444 496 8 0 1 + 102 12 1 445 497 9 0 1 + 103 12 1 445 497 10 0 1 + 92 13 1 492 1 0 0 1 + 93 13 1 492 2 0 0 1 + 94 13 1 493 3 0 0 1 + 95 13 1 493 4 0 0 1 + 96 13 1 494 5 0 0 1 + 99 13 1 495 6 0 0 1 + 100 13 1 496 7 0 0 1 + 101 13 1 496 8 0 0 1 + 102 13 1 497 9 0 0 1 + 103 13 1 497 10 0 0 1 + 92 16 1 0 0 11 12 1 + 92 17 1 0 11 12 13 1 + 92 18 1 11 12 13 14 1 + 92 19 1 12 13 14 15 1 + 92 20 1 13 14 15 0 1 + 92 21 1 14 15 0 0 1 + 90 22 1 681 727 16 17 1 + 91 22 1 681 727 18 0 1 + 90 23 1 727 16 17 19 1 + 91 23 1 727 18 0 0 1 + 90 24 1 16 17 19 0 1 + 90 25 1 17 19 0 0 1 + 88 26 1 772 817 20 0 1 + 88 27 1 817 20 0 0 1 + 86 28 1 816 861 21 0 1 + 86 29 1 861 21 0 0 1 + 74 30 1 855 899 22 23 1 + 75 30 1 855 899 24 0 1 + 76 30 1 856 900 25 0 1 + 77 30 1 856 900 26 0 1 + 78 30 1 857 901 27 0 1 + 79 30 1 857 901 28 0 1 + 74 31 1 899 22 23 0 1 + 75 31 1 899 24 0 0 1 + 76 31 1 900 25 0 0 1 + 77 31 1 900 26 0 0 1 + 78 31 1 901 27 0 0 1 + 79 31 1 901 28 0 0 1 + 62 32 1 893 936 29 0 1 + 63 32 1 893 936 30 0 1 + 69 32 1 896 939 33 34 1 + 72 32 1 898 941 35 36 1 + 74 32 1 22 23 0 0 1 + 62 33 1 936 29 0 0 1 + 63 33 1 936 30 0 0 1 + 67 33 1 0 0 31 1007 1 + 68 33 1 0 0 32 1008 1 + 69 33 1 939 33 34 1008 1 + 72 33 1 941 35 36 1010 1 + 73 33 1 0 0 37 1010 1 + 67 34 1 0 31 1007 1044 1 + 68 34 1 0 32 1008 1045 1 + 69 34 1 33 34 1008 1045 1 + 72 34 1 35 36 1010 1047 1 + 73 34 1 0 37 1010 1047 1 + 74 35 1 0 0 38 1048 1 + 75 35 1 0 0 39 1048 1 + 76 35 1 0 0 40 1049 1 + 77 35 1 0 0 41 1049 1 + 78 35 1 0 0 42 1050 1 + 79 35 1 0 0 43 1050 1 + 74 36 1 0 38 1048 1090 1 + 75 36 1 0 39 1048 1090 1 + 76 36 1 0 40 1049 1091 1 + 77 36 1 0 41 1049 1091 1 + 78 36 1 0 42 1050 1092 1 + 79 36 1 0 43 1050 1092 1 + 84 37 1 0 0 44 1095 1 + 85 37 1 0 0 45 1095 1 + 86 37 1 0 0 46 1096 1 + 95 37 1 0 0 47 1100 1 + 84 38 1 0 44 1095 1143 1 + 85 38 1 0 45 1095 1143 1 + 86 38 1 0 46 1096 1144 1 + 95 38 1 0 47 1100 1148 1 + 96 38 1 0 0 48 49 1 + 96 39 1 0 48 49 50 1 + 96 40 1 48 49 50 51 1 + 96 41 1 49 50 51 0 1 + 82 42 1 1094 1142 52 0 1 + 83 42 1 1094 1142 53 0 1 + 96 42 1 50 51 0 0 1 + 82 43 1 1142 52 0 0 1 + 83 43 1 1142 53 0 0 1 + 82 44 1 0 0 54 55 1 + 85 44 1 1143 1190 56 57 1 + 94 44 1 1148 1195 58 59 1 + 95 44 1 1148 1195 60 0 1 + 82 45 1 0 54 55 61 1 + 85 45 1 1190 56 57 0 1 + 94 45 1 1195 58 59 0 1 + 95 45 1 1195 60 0 0 1 + 82 46 1 54 55 61 0 1 + 85 46 1 56 57 0 0 1 + 90 46 1 1193 1239 62 0 1 + 91 46 1 1193 1239 63 0 1 + 94 46 1 58 59 0 0 1 + 82 47 1 55 61 0 0 1 + 90 47 1 1239 62 0 0 1 + 91 47 1 1239 63 0 0 1 + 80 48 1 1236 1281 64 65 1 + 81 48 1 1236 1281 66 0 1 + 80 49 1 1281 64 65 0 1 + 81 49 1 1281 66 0 0 1 + 80 50 1 64 65 0 0 1 + 92 52 1 0 0 73 74 1 + 83 53 1 0 0 67 84 1 + 84 53 1 0 0 68 85 1 + 86 53 1 0 0 69 1444 1 + 87 53 1 0 0 70 1444 1 + 88 53 1 0 0 71 88 1 + 89 53 1 0 0 72 89 1 + 92 53 1 0 73 74 1445 1 + 93 53 1 0 0 75 1445 1 + 70 54 1 1359 1399 76 77 1 + 71 54 1 1359 1399 78 0 1 + 72 54 1 1360 1400 79 0 1 + 73 54 1 1360 1400 80 81 1 + 80 54 1 -1 1404 82 83 1 + 83 54 1 0 67 84 0 1 + 84 54 1 0 68 85 86 1 + 86 54 1 0 69 1444 1481 1 + 87 54 1 0 70 1444 1481 1 + 88 54 1 0 71 88 0 1 + 89 54 1 0 72 89 90 1 + 90 54 1 -1 1405 91 0 1 + 91 54 1 -1 1405 92 0 1 + 92 54 1 73 74 1445 0 1 + 93 54 1 0 75 1445 111 1 + 70 55 1 1399 76 77 96 1 + 71 55 1 1399 78 0 0 1 + 72 55 1 1400 79 0 0 1 + 73 55 1 1400 80 81 0 1 + 80 55 1 1404 82 83 105 1 + 83 55 1 67 84 0 0 1 + 84 55 1 68 85 86 1480 1 + 85 55 1 0 0 87 1480 1 + 88 55 1 71 88 0 0 1 + 89 55 1 72 89 90 0 1 + 90 55 1 1405 91 0 0 1 + 91 55 1 1405 92 0 0 1 + 94 55 1 0 0 93 112 1 + 66 56 1 1397 1439 94 0 1 + 67 56 1 1397 1439 95 0 1 + 70 56 1 76 77 96 97 1 + 71 56 1 0 0 98 0 1 + 73 56 1 80 81 0 0 1 + 75 56 1 1401 1441 99 100 1 + 76 56 1 1402 1442 101 102 1 + 77 56 1 1402 1442 103 0 1 + 78 56 1 1403 1443 104 0 1 + 80 56 1 82 83 105 0 1 + 81 56 1 0 0 106 0 1 + 82 56 1 0 0 107 108 1 + 84 56 1 85 86 1480 0 1 + 85 56 1 0 87 1480 124 1 + 89 56 1 89 90 0 0 1 + 93 56 1 75 1445 111 0 1 + 94 56 1 0 93 112 0 1 + 66 57 1 1439 94 0 0 1 + 67 57 1 1439 95 0 0 1 + 70 57 1 77 96 97 0 1 + 71 57 1 0 98 0 0 1 + 75 57 1 1441 99 100 0 1 + 76 57 1 1442 101 102 0 1 + 77 57 1 1442 103 0 0 1 + 78 57 1 1443 104 0 0 1 + 80 57 1 83 105 0 0 1 + 81 57 1 0 106 0 0 1 + 82 57 1 0 107 108 0 1 + 83 57 1 0 0 109 0 1 + 88 57 1 0 0 110 128 1 + 93 57 1 1445 111 0 0 1 + 94 57 1 93 112 0 0 1 + 62 58 1 1437 1477 113 0 1 + 63 58 1 1437 1477 114 115 1 + 64 58 1 1438 1478 116 0 1 + 65 58 1 1438 1478 117 118 1 + 66 58 1 0 0 119 120 1 + 70 58 1 96 97 0 0 1 + 75 58 1 99 100 0 0 1 + 76 58 1 101 102 0 0 1 + 82 58 1 107 108 0 0 1 + 83 58 1 0 109 0 0 1 + 85 58 1 87 1480 124 0 1 + 86 58 1 1444 1481 125 0 1 + 87 58 1 1444 1481 126 127 1 + 88 58 1 0 110 128 129 1 + 62 59 1 1477 113 0 0 1 + 63 59 1 1477 114 115 1544 1 + 64 59 1 1478 116 0 0 1 + 65 59 1 1478 117 118 134 1 + 66 59 1 0 119 120 1545 1 + 67 59 1 0 0 121 1545 1 + 70 59 1 0 0 122 136 1 + 71 59 1 0 0 123 0 1 + 85 59 1 1480 124 0 0 1 + 86 59 1 1481 125 0 0 1 + 87 59 1 1481 126 127 0 1 + 88 59 1 110 128 129 0 1 + 89 59 1 0 0 130 138 1 + 60 60 1 1476 1512 131 132 1 + 63 60 1 114 115 1544 1577 1 + 65 60 1 117 118 134 135 1 + 66 60 1 119 120 1545 1579 1 + 67 60 1 0 121 1545 1579 1 + 70 60 1 0 122 136 137 1 + 71 60 1 0 123 0 0 1 + 87 60 1 126 127 0 0 1 + 88 60 1 128 129 0 0 1 + 89 60 1 0 130 138 0 1 + 90 60 1 0 0 139 0 1 + 60 61 1 1512 131 132 1576 1 + 64 61 1 0 0 133 1578 1 + 65 61 1 118 134 135 1578 1 + 70 61 1 122 136 137 0 1 + 89 61 1 130 138 0 0 1 + 90 61 1 0 139 0 0 1 + 58 62 1 1511 1543 140 0 1 + 59 62 1 1511 1543 141 142 1 + 60 62 1 131 132 1576 1607 1 + 64 62 1 0 133 1578 1609 1 + 65 62 1 134 135 1578 1609 1 + 70 62 1 136 137 0 0 1 + 58 63 1 1543 140 0 0 1 + 59 63 1 1543 141 142 1606 1 + 50 64 1 1539 1572 143 144 1 + 51 64 1 1539 1572 145 0 1 + 52 64 1 1540 1573 146 0 1 + 55 64 1 1541 1574 147 0 1 + 56 64 1 1542 1575 148 0 1 + 57 64 1 1542 1575 149 150 1 + 59 64 1 141 142 1606 1638 1 + 50 65 1 1572 143 144 1637 1 + 51 65 1 1572 145 0 0 1 + 52 65 1 1573 146 0 0 1 + 55 65 1 1574 147 0 0 1 + 56 65 1 1575 148 0 0 1 + 57 65 1 1575 149 150 0 1 + 70 65 1 0 0 151 155 1 + 50 66 1 143 144 1637 1669 1 + 57 66 1 149 150 0 0 1 + 70 66 1 0 151 155 156 1 + 52 67 1 0 0 152 1670 1 + 53 67 1 0 0 153 1670 1 + 57 67 1 0 0 154 1672 1 + 70 67 1 151 155 156 157 1 + 52 68 1 0 152 1670 1705 1 + 53 68 1 0 153 1670 1705 1 + 57 68 1 0 154 1672 1707 1 + 70 68 1 155 156 157 158 1 + 70 69 1 156 157 158 159 1 + 70 70 1 157 158 159 160 1 + 70 71 1 158 159 160 1749 1 + 70 72 1 159 160 1749 1785 1 + 72 72 1 0 0 161 162 1 + 72 73 1 0 161 162 1786 1 + 72 74 1 161 162 1786 166 1 + 74 74 1 0 0 163 164 1 + 74 75 1 0 163 164 1823 1 + 76 75 1 0 0 165 1824 1 + 72 76 1 162 1786 166 167 1 + 74 76 1 163 164 1823 1863 1 + 76 76 1 0 165 1824 1864 1 + 72 77 1 1786 166 167 1862 1 + 73 77 1 0 0 168 1862 1 + 72 78 1 166 167 1862 1902 1 + 73 78 1 0 168 1862 1902 1 + 80 78 1 0 0 169 170 1 + 80 79 1 0 169 170 1906 1 + 81 79 1 0 0 171 1906 1 + 80 80 1 169 170 1906 1949 1 + 81 80 1 0 171 1906 1949 1 + 82 80 1 0 0 172 173 1 + 82 81 1 0 172 173 1950 1 + 83 81 1 0 0 174 1950 1 + 88 81 1 0 0 175 1953 1 + 82 82 1 172 173 1950 1995 1 + 83 82 1 0 174 1950 1995 1 + 88 82 1 0 175 1953 1998 1 + 99 82 1 0 0 183 184 1 + 90 83 1 0 0 176 1999 1 + 91 83 1 0 0 177 1999 1 + 92 83 1 0 0 178 2000 1 + 95 83 1 0 0 179 2001 1 + 96 83 1 0 0 180 2002 1 + 97 83 1 0 0 181 2002 1 + 98 83 1 0 0 182 2003 1 + 99 83 1 0 183 184 2003 1 + 100 83 1 0 0 185 2004 1 + 90 84 1 0 176 1999 2051 1 + 91 84 1 0 177 1999 2051 1 + 92 84 1 0 178 2000 2052 1 + 95 84 1 0 179 2001 2053 1 + 96 84 1 0 180 2002 2054 1 + 97 84 1 0 181 2002 2054 1 + 98 84 1 0 182 2003 2055 1 + 99 84 1 183 184 2003 2055 1 + 100 84 1 0 185 2004 2056 1 + 0 0 2 -1 -1 186 238 2 + 2 0 2 -1 -1 187 239 2 + 4 0 2 -1 -1 188 240 2 + 6 0 2 -1 -1 189 241 2 + 8 0 2 -1 -1 190 242 2 + 10 0 2 -1 -1 191 243 2 + 12 0 2 -1 -1 192 244 2 + 14 0 2 -1 -1 193 245 2 + 16 0 2 -1 -1 194 246 2 + 18 0 2 -1 -1 195 247 2 + 20 0 2 -1 -1 196 248 2 + 22 0 2 -1 -1 197 249 2 + 24 0 2 -1 -1 198 250 2 + 26 0 2 -1 -1 199 251 2 + 28 0 2 -1 -1 200 252 2 + 30 0 2 -1 -1 201 253 2 + 32 0 2 -1 -1 202 254 2 + 34 0 2 -1 -1 203 255 2 + 36 0 2 -1 -1 204 256 2 + 38 0 2 -1 -1 205 257 2 + 40 0 2 -1 -1 206 258 2 + 42 0 2 -1 -1 207 259 2 + 44 0 2 -1 -1 208 260 2 + 46 0 2 -1 -1 209 261 2 + 48 0 2 -1 -1 210 262 2 + 50 0 2 -1 -1 211 263 2 + 52 0 2 -1 -1 212 264 2 + 54 0 2 -1 -1 213 265 2 + 56 0 2 -1 -1 214 266 2 + 58 0 2 -1 -1 215 267 2 + 60 0 2 -1 -1 216 268 2 + 62 0 2 -1 -1 217 269 2 + 64 0 2 -1 -1 218 270 2 + 66 0 2 -1 -1 219 271 2 + 68 0 2 -1 -1 220 272 2 + 70 0 2 -1 -1 221 273 2 + 72 0 2 -1 -1 222 274 2 + 74 0 2 -1 -1 223 275 2 + 76 0 2 -1 -1 224 276 2 + 78 0 2 -1 -1 225 277 2 + 80 0 2 -1 -1 226 278 2 + 82 0 2 -1 -1 227 279 2 + 84 0 2 -1 -1 228 280 2 + 86 0 2 -1 -1 229 281 2 + 88 0 2 -1 -1 230 282 2 + 90 0 2 -1 -1 231 283 2 + 92 0 2 -1 -1 232 284 2 + 94 0 2 -1 -1 233 285 2 + 96 0 2 -1 -1 234 286 2 + 98 0 2 -1 -1 235 287 2 + 100 0 2 -1 -1 236 288 2 + 102 0 2 -1 -1 237 289 2 + 0 2 2 -1 186 238 290 2 + 2 2 2 -1 187 239 291 2 + 4 2 2 -1 188 240 292 2 + 6 2 2 -1 189 241 293 2 + 8 2 2 -1 190 242 294 2 + 10 2 2 -1 191 243 295 2 + 12 2 2 -1 192 244 296 2 + 14 2 2 -1 193 245 297 2 + 16 2 2 -1 194 246 298 2 + 18 2 2 -1 195 247 299 2 + 20 2 2 -1 196 248 300 2 + 22 2 2 -1 197 249 301 2 + 24 2 2 -1 198 250 302 2 + 26 2 2 -1 199 251 303 2 + 28 2 2 -1 200 252 304 2 + 30 2 2 -1 201 253 305 2 + 32 2 2 -1 202 254 306 2 + 34 2 2 -1 203 255 307 2 + 36 2 2 -1 204 256 308 2 + 38 2 2 -1 205 257 309 2 + 40 2 2 -1 206 258 310 2 + 42 2 2 -1 207 259 311 2 + 44 2 2 -1 208 260 312 2 + 46 2 2 -1 209 261 313 2 + 48 2 2 -1 210 262 314 2 + 50 2 2 -1 211 263 315 2 + 52 2 2 -1 212 264 316 2 + 54 2 2 -1 213 265 317 2 + 56 2 2 -1 214 266 318 2 + 58 2 2 -1 215 267 319 2 + 60 2 2 -1 216 268 320 2 + 62 2 2 -1 217 269 321 2 + 64 2 2 -1 218 270 322 2 + 66 2 2 -1 219 271 323 2 + 68 2 2 -1 220 272 324 2 + 70 2 2 -1 221 273 325 2 + 72 2 2 -1 222 274 326 2 + 74 2 2 -1 223 275 327 2 + 76 2 2 -1 224 276 328 2 + 78 2 2 -1 225 277 329 2 + 80 2 2 -1 226 278 330 2 + 82 2 2 -1 227 279 331 2 + 84 2 2 -1 228 280 332 2 + 86 2 2 -1 229 281 333 2 + 88 2 2 -1 230 282 334 2 + 90 2 2 -1 231 283 335 2 + 92 2 2 -1 232 284 336 2 + 94 2 2 -1 233 285 337 2 + 96 2 2 -1 234 286 338 2 + 98 2 2 -1 235 287 339 2 + 100 2 2 -1 236 288 340 2 + 102 2 2 -1 237 289 341 2 + 0 4 2 186 238 290 342 2 + 2 4 2 187 239 291 343 2 + 4 4 2 188 240 292 344 2 + 6 4 2 189 241 293 345 2 + 8 4 2 190 242 294 346 2 + 10 4 2 191 243 295 347 2 + 12 4 2 192 244 296 348 2 + 14 4 2 193 245 297 349 2 + 16 4 2 194 246 298 350 2 + 18 4 2 195 247 299 351 2 + 20 4 2 196 248 300 352 2 + 22 4 2 197 249 301 353 2 + 24 4 2 198 250 302 354 2 + 26 4 2 199 251 303 355 2 + 28 4 2 200 252 304 356 2 + 30 4 2 201 253 305 357 2 + 32 4 2 202 254 306 358 2 + 34 4 2 203 255 307 359 2 + 36 4 2 204 256 308 360 2 + 38 4 2 205 257 309 361 2 + 40 4 2 206 258 310 362 2 + 42 4 2 207 259 311 363 2 + 44 4 2 208 260 312 364 2 + 46 4 2 209 261 313 365 2 + 48 4 2 210 262 314 366 2 + 50 4 2 211 263 315 367 2 + 52 4 2 212 264 316 368 2 + 54 4 2 213 265 317 369 2 + 56 4 2 214 266 318 370 2 + 58 4 2 215 267 319 371 2 + 60 4 2 216 268 320 372 2 + 62 4 2 217 269 321 373 2 + 64 4 2 218 270 322 374 2 + 66 4 2 219 271 323 375 2 + 68 4 2 220 272 324 376 2 + 70 4 2 221 273 325 377 2 + 72 4 2 222 274 326 378 2 + 74 4 2 223 275 327 379 2 + 76 4 2 224 276 328 380 2 + 78 4 2 225 277 329 381 2 + 80 4 2 226 278 330 382 2 + 82 4 2 227 279 331 383 2 + 84 4 2 228 280 332 384 2 + 86 4 2 229 281 333 385 2 + 88 4 2 230 282 334 386 2 + 90 4 2 231 283 335 387 2 + 92 4 2 232 284 336 388 2 + 94 4 2 233 285 337 389 2 + 96 4 2 234 286 338 390 2 + 98 4 2 235 287 339 391 2 + 100 4 2 236 288 340 392 2 + 102 4 2 237 289 341 393 2 + 0 6 2 238 290 342 394 2 + 2 6 2 239 291 343 395 2 + 4 6 2 240 292 344 396 2 + 6 6 2 241 293 345 397 2 + 8 6 2 242 294 346 398 2 + 10 6 2 243 295 347 399 2 + 12 6 2 244 296 348 400 2 + 14 6 2 245 297 349 401 2 + 16 6 2 246 298 350 402 2 + 18 6 2 247 299 351 403 2 + 20 6 2 248 300 352 404 2 + 22 6 2 249 301 353 405 2 + 24 6 2 250 302 354 406 2 + 26 6 2 251 303 355 407 2 + 28 6 2 252 304 356 408 2 + 30 6 2 253 305 357 409 2 + 32 6 2 254 306 358 410 2 + 34 6 2 255 307 359 411 2 + 36 6 2 256 308 360 412 2 + 38 6 2 257 309 361 413 2 + 40 6 2 258 310 362 414 2 + 42 6 2 259 311 363 415 2 + 44 6 2 260 312 364 416 2 + 46 6 2 261 313 365 417 2 + 48 6 2 262 314 366 418 2 + 50 6 2 263 315 367 419 2 + 52 6 2 264 316 368 420 2 + 54 6 2 265 317 369 421 2 + 56 6 2 266 318 370 422 2 + 58 6 2 267 319 371 423 2 + 60 6 2 268 320 372 424 2 + 62 6 2 269 321 373 425 2 + 64 6 2 270 322 374 426 2 + 66 6 2 271 323 375 427 2 + 68 6 2 272 324 376 428 2 + 70 6 2 273 325 377 429 2 + 72 6 2 274 326 378 430 2 + 74 6 2 275 327 379 431 2 + 76 6 2 276 328 380 432 2 + 78 6 2 277 329 381 433 2 + 80 6 2 278 330 382 434 2 + 82 6 2 279 331 383 435 2 + 84 6 2 280 332 384 436 2 + 86 6 2 281 333 385 437 2 + 88 6 2 282 334 386 438 2 + 90 6 2 283 335 387 439 2 + 92 6 2 284 336 388 440 2 + 94 6 2 285 337 389 441 2 + 96 6 2 286 338 390 442 2 + 98 6 2 287 339 391 443 2 + 100 6 2 288 340 392 444 2 + 102 6 2 289 341 393 445 2 + 0 8 2 290 342 394 446 2 + 2 8 2 291 343 395 447 2 + 4 8 2 292 344 396 448 2 + 6 8 2 293 345 397 449 2 + 8 8 2 294 346 398 450 2 + 10 8 2 295 347 399 451 2 + 12 8 2 296 348 400 452 2 + 14 8 2 297 349 401 453 2 + 16 8 2 298 350 402 454 2 + 18 8 2 299 351 403 455 2 + 20 8 2 300 352 404 456 2 + 22 8 2 301 353 405 457 2 + 24 8 2 302 354 406 458 2 + 26 8 2 303 355 407 459 2 + 28 8 2 304 356 408 460 2 + 30 8 2 305 357 409 461 2 + 32 8 2 306 358 410 462 2 + 34 8 2 307 359 411 463 2 + 36 8 2 308 360 412 464 2 + 38 8 2 309 361 413 465 2 + 40 8 2 310 362 414 466 2 + 42 8 2 311 363 415 467 2 + 44 8 2 312 364 416 468 2 + 46 8 2 313 365 417 469 2 + 48 8 2 314 366 418 470 2 + 50 8 2 315 367 419 471 2 + 52 8 2 316 368 420 472 2 + 54 8 2 317 369 421 473 2 + 56 8 2 318 370 422 474 2 + 58 8 2 319 371 423 475 2 + 60 8 2 320 372 424 476 2 + 62 8 2 321 373 425 477 2 + 64 8 2 322 374 426 478 2 + 66 8 2 323 375 427 479 2 + 68 8 2 324 376 428 480 2 + 70 8 2 325 377 429 481 2 + 72 8 2 326 378 430 482 2 + 74 8 2 327 379 431 483 2 + 76 8 2 328 380 432 484 2 + 78 8 2 329 381 433 485 2 + 80 8 2 330 382 434 486 2 + 82 8 2 331 383 435 487 2 + 84 8 2 332 384 436 488 2 + 86 8 2 333 385 437 489 2 + 88 8 2 334 386 438 490 2 + 90 8 2 335 387 439 491 2 + 92 8 2 336 388 440 492 2 + 94 8 2 337 389 441 493 2 + 96 8 2 338 390 442 494 2 + 98 8 2 339 391 443 495 2 + 100 8 2 340 392 444 496 2 + 102 8 2 341 393 445 497 2 + 0 10 2 342 394 446 498 2 + 2 10 2 343 395 447 499 2 + 4 10 2 344 396 448 500 2 + 6 10 2 345 397 449 501 2 + 8 10 2 346 398 450 502 2 + 10 10 2 347 399 451 503 2 + 12 10 2 348 400 452 504 2 + 14 10 2 349 401 453 505 2 + 16 10 2 350 402 454 506 2 + 18 10 2 351 403 455 507 2 + 20 10 2 352 404 456 508 2 + 22 10 2 353 405 457 509 2 + 24 10 2 354 406 458 510 2 + 26 10 2 355 407 459 511 2 + 28 10 2 356 408 460 512 2 + 30 10 2 357 409 461 513 2 + 32 10 2 358 410 462 514 2 + 34 10 2 359 411 463 515 2 + 36 10 2 360 412 464 516 2 + 38 10 2 361 413 465 517 2 + 40 10 2 362 414 466 518 2 + 42 10 2 363 415 467 519 2 + 44 10 2 364 416 468 520 2 + 46 10 2 365 417 469 521 2 + 48 10 2 366 418 470 522 2 + 50 10 2 367 419 471 523 2 + 52 10 2 368 420 472 524 2 + 54 10 2 369 421 473 525 2 + 56 10 2 370 422 474 526 2 + 58 10 2 371 423 475 527 2 + 60 10 2 372 424 476 528 2 + 62 10 2 373 425 477 529 2 + 64 10 2 374 426 478 530 2 + 66 10 2 375 427 479 531 2 + 68 10 2 376 428 480 532 2 + 70 10 2 377 429 481 533 2 + 72 10 2 378 430 482 534 2 + 74 10 2 379 431 483 535 2 + 76 10 2 380 432 484 536 2 + 78 10 2 381 433 485 537 2 + 80 10 2 382 434 486 538 2 + 82 10 2 383 435 487 539 2 + 84 10 2 384 436 488 540 2 + 86 10 2 385 437 489 541 2 + 88 10 2 386 438 490 542 2 + 90 10 2 387 439 491 543 2 + 92 10 2 388 440 492 2 2 + 94 10 2 389 441 493 4 2 + 96 10 2 390 442 494 0 2 + 98 10 2 391 443 495 0 2 + 100 10 2 392 444 496 8 2 + 102 10 2 393 445 497 10 2 + 0 12 2 394 446 498 544 2 + 2 12 2 395 447 499 545 2 + 4 12 2 396 448 500 546 2 + 6 12 2 397 449 501 547 2 + 8 12 2 398 450 502 548 2 + 10 12 2 399 451 503 549 2 + 12 12 2 400 452 504 550 2 + 14 12 2 401 453 505 551 2 + 16 12 2 402 454 506 552 2 + 18 12 2 403 455 507 553 2 + 20 12 2 404 456 508 554 2 + 22 12 2 405 457 509 555 2 + 24 12 2 406 458 510 556 2 + 26 12 2 407 459 511 557 2 + 28 12 2 408 460 512 558 2 + 30 12 2 409 461 513 559 2 + 32 12 2 410 462 514 560 2 + 34 12 2 411 463 515 561 2 + 36 12 2 412 464 516 562 2 + 38 12 2 413 465 517 563 2 + 40 12 2 414 466 518 564 2 + 42 12 2 415 467 519 565 2 + 44 12 2 416 468 520 566 2 + 46 12 2 417 469 521 567 2 + 48 12 2 418 470 522 568 2 + 50 12 2 419 471 523 569 2 + 52 12 2 420 472 524 570 2 + 54 12 2 421 473 525 571 2 + 56 12 2 422 474 526 572 2 + 58 12 2 423 475 527 573 2 + 60 12 2 424 476 528 574 2 + 62 12 2 425 477 529 575 2 + 64 12 2 426 478 530 576 2 + 66 12 2 427 479 531 577 2 + 68 12 2 428 480 532 578 2 + 70 12 2 429 481 533 579 2 + 72 12 2 430 482 534 580 2 + 74 12 2 431 483 535 581 2 + 76 12 2 432 484 536 582 2 + 78 12 2 433 485 537 583 2 + 80 12 2 434 486 538 584 2 + 82 12 2 435 487 539 585 2 + 84 12 2 436 488 540 586 2 + 86 12 2 437 489 541 587 2 + 88 12 2 438 490 542 588 2 + 90 12 2 439 491 543 589 2 + 97 12 1 442 494 0 0 2 + 98 12 1 443 495 0 0 2 + 0 14 2 446 498 544 590 2 + 2 14 2 447 499 545 591 2 + 4 14 2 448 500 546 592 2 + 6 14 2 449 501 547 593 2 + 8 14 2 450 502 548 594 2 + 10 14 2 451 503 549 595 2 + 12 14 2 452 504 550 596 2 + 14 14 2 453 505 551 597 2 + 16 14 2 454 506 552 598 2 + 18 14 2 455 507 553 599 2 + 20 14 2 456 508 554 600 2 + 22 14 2 457 509 555 601 2 + 24 14 2 458 510 556 602 2 + 26 14 2 459 511 557 603 2 + 28 14 2 460 512 558 604 2 + 30 14 2 461 513 559 605 2 + 32 14 2 462 514 560 606 2 + 34 14 2 463 515 561 607 2 + 36 14 2 464 516 562 608 2 + 38 14 2 465 517 563 609 2 + 40 14 2 466 518 564 610 2 + 42 14 2 467 519 565 611 2 + 44 14 2 468 520 566 612 2 + 46 14 2 469 521 567 613 2 + 48 14 2 470 522 568 614 2 + 50 14 2 471 523 569 615 2 + 52 14 2 472 524 570 616 2 + 54 14 2 473 525 571 617 2 + 56 14 2 474 526 572 618 2 + 58 14 2 475 527 573 619 2 + 60 14 2 476 528 574 620 2 + 62 14 2 477 529 575 621 2 + 64 14 2 478 530 576 622 2 + 66 14 2 479 531 577 623 2 + 68 14 2 480 532 578 624 2 + 70 14 2 481 533 579 625 2 + 72 14 2 482 534 580 626 2 + 74 14 2 483 535 581 627 2 + 76 14 2 484 536 582 628 2 + 78 14 2 485 537 583 629 2 + 80 14 2 486 538 584 630 2 + 82 14 2 487 539 585 631 2 + 84 14 2 488 540 586 632 2 + 86 14 2 489 541 587 633 2 + 88 14 2 490 542 588 634 2 + 90 14 2 491 543 589 635 2 + 0 16 2 498 544 590 636 2 + 2 16 2 499 545 591 637 2 + 4 16 2 500 546 592 638 2 + 6 16 2 501 547 593 639 2 + 8 16 2 502 548 594 640 2 + 10 16 2 503 549 595 641 2 + 12 16 2 504 550 596 642 2 + 14 16 2 505 551 597 643 2 + 16 16 2 506 552 598 644 2 + 18 16 2 507 553 599 645 2 + 20 16 2 508 554 600 646 2 + 22 16 2 509 555 601 647 2 + 24 16 2 510 556 602 648 2 + 26 16 2 511 557 603 649 2 + 28 16 2 512 558 604 650 2 + 30 16 2 513 559 605 651 2 + 32 16 2 514 560 606 652 2 + 34 16 2 515 561 607 653 2 + 36 16 2 516 562 608 654 2 + 38 16 2 517 563 609 655 2 + 40 16 2 518 564 610 656 2 + 42 16 2 519 565 611 657 2 + 44 16 2 520 566 612 658 2 + 46 16 2 521 567 613 659 2 + 48 16 2 522 568 614 660 2 + 50 16 2 523 569 615 661 2 + 52 16 2 524 570 616 662 2 + 54 16 2 525 571 617 663 2 + 56 16 2 526 572 618 664 2 + 58 16 2 527 573 619 665 2 + 60 16 2 528 574 620 666 2 + 62 16 2 529 575 621 667 2 + 64 16 2 530 576 622 668 2 + 66 16 2 531 577 623 669 2 + 68 16 2 532 578 624 670 2 + 70 16 2 533 579 625 671 2 + 72 16 2 534 580 626 672 2 + 74 16 2 535 581 627 673 2 + 76 16 2 536 582 628 674 2 + 78 16 2 537 583 629 675 2 + 80 16 2 538 584 630 676 2 + 82 16 2 539 585 631 677 2 + 84 16 2 540 586 632 678 2 + 86 16 2 541 587 633 679 2 + 88 16 2 542 588 634 680 2 + 90 16 2 543 589 635 681 2 + 0 18 2 544 590 636 682 2 + 2 18 2 545 591 637 683 2 + 4 18 2 546 592 638 684 2 + 6 18 2 547 593 639 685 2 + 8 18 2 548 594 640 686 2 + 10 18 2 549 595 641 687 2 + 12 18 2 550 596 642 688 2 + 14 18 2 551 597 643 689 2 + 16 18 2 552 598 644 690 2 + 18 18 2 553 599 645 691 2 + 20 18 2 554 600 646 692 2 + 22 18 2 555 601 647 693 2 + 24 18 2 556 602 648 694 2 + 26 18 2 557 603 649 695 2 + 28 18 2 558 604 650 696 2 + 30 18 2 559 605 651 697 2 + 32 18 2 560 606 652 698 2 + 34 18 2 561 607 653 699 2 + 36 18 2 562 608 654 700 2 + 38 18 2 563 609 655 701 2 + 40 18 2 564 610 656 702 2 + 42 18 2 565 611 657 703 2 + 44 18 2 566 612 658 704 2 + 46 18 2 567 613 659 705 2 + 48 18 2 568 614 660 706 2 + 50 18 2 569 615 661 707 2 + 52 18 2 570 616 662 708 2 + 54 18 2 571 617 663 709 2 + 56 18 2 572 618 664 710 2 + 58 18 2 573 619 665 711 2 + 60 18 2 574 620 666 712 2 + 62 18 2 575 621 667 713 2 + 64 18 2 576 622 668 714 2 + 66 18 2 577 623 669 715 2 + 68 18 2 578 624 670 716 2 + 70 18 2 579 625 671 717 2 + 72 18 2 580 626 672 718 2 + 74 18 2 581 627 673 719 2 + 76 18 2 582 628 674 720 2 + 78 18 2 583 629 675 721 2 + 80 18 2 584 630 676 722 2 + 82 18 2 585 631 677 723 2 + 84 18 2 586 632 678 724 2 + 86 18 2 587 633 679 725 2 + 88 18 2 588 634 680 726 2 + 90 18 2 589 635 681 727 2 + 0 20 2 590 636 682 728 2 + 2 20 2 591 637 683 729 2 + 4 20 2 592 638 684 730 2 + 6 20 2 593 639 685 731 2 + 8 20 2 594 640 686 732 2 + 10 20 2 595 641 687 733 2 + 12 20 2 596 642 688 734 2 + 14 20 2 597 643 689 735 2 + 16 20 2 598 644 690 736 2 + 18 20 2 599 645 691 737 2 + 20 20 2 600 646 692 738 2 + 22 20 2 601 647 693 739 2 + 24 20 2 602 648 694 740 2 + 26 20 2 603 649 695 741 2 + 28 20 2 604 650 696 742 2 + 30 20 2 605 651 697 743 2 + 32 20 2 606 652 698 744 2 + 34 20 2 607 653 699 745 2 + 36 20 2 608 654 700 746 2 + 38 20 2 609 655 701 747 2 + 40 20 2 610 656 702 748 2 + 42 20 2 611 657 703 749 2 + 44 20 2 612 658 704 750 2 + 46 20 2 613 659 705 751 2 + 48 20 2 614 660 706 752 2 + 50 20 2 615 661 707 753 2 + 52 20 2 616 662 708 754 2 + 54 20 2 617 663 709 755 2 + 56 20 2 618 664 710 756 2 + 58 20 2 619 665 711 757 2 + 60 20 2 620 666 712 758 2 + 62 20 2 621 667 713 759 2 + 64 20 2 622 668 714 760 2 + 66 20 2 623 669 715 761 2 + 68 20 2 624 670 716 762 2 + 70 20 2 625 671 717 763 2 + 72 20 2 626 672 718 764 2 + 74 20 2 627 673 719 765 2 + 76 20 2 628 674 720 766 2 + 78 20 2 629 675 721 767 2 + 80 20 2 630 676 722 768 2 + 82 20 2 631 677 723 769 2 + 84 20 2 632 678 724 770 2 + 86 20 2 633 679 725 771 2 + 88 20 2 634 680 726 772 2 + 90 20 2 635 681 727 18 2 + 0 22 2 636 682 728 773 2 + 2 22 2 637 683 729 774 2 + 4 22 2 638 684 730 775 2 + 6 22 2 639 685 731 776 2 + 8 22 2 640 686 732 777 2 + 10 22 2 641 687 733 778 2 + 12 22 2 642 688 734 779 2 + 14 22 2 643 689 735 780 2 + 16 22 2 644 690 736 781 2 + 18 22 2 645 691 737 782 2 + 20 22 2 646 692 738 783 2 + 22 22 2 647 693 739 784 2 + 24 22 2 648 694 740 785 2 + 26 22 2 649 695 741 786 2 + 28 22 2 650 696 742 787 2 + 30 22 2 651 697 743 788 2 + 32 22 2 652 698 744 789 2 + 34 22 2 653 699 745 790 2 + 36 22 2 654 700 746 791 2 + 38 22 2 655 701 747 792 2 + 40 22 2 656 702 748 793 2 + 42 22 2 657 703 749 794 2 + 44 22 2 658 704 750 795 2 + 46 22 2 659 705 751 796 2 + 48 22 2 660 706 752 797 2 + 50 22 2 661 707 753 798 2 + 52 22 2 662 708 754 799 2 + 54 22 2 663 709 755 800 2 + 56 22 2 664 710 756 801 2 + 58 22 2 665 711 757 802 2 + 60 22 2 666 712 758 803 2 + 62 22 2 667 713 759 804 2 + 64 22 2 668 714 760 805 2 + 66 22 2 669 715 761 806 2 + 68 22 2 670 716 762 807 2 + 70 22 2 671 717 763 808 2 + 72 22 2 672 718 764 809 2 + 74 22 2 673 719 765 810 2 + 76 22 2 674 720 766 811 2 + 78 22 2 675 721 767 812 2 + 80 22 2 676 722 768 813 2 + 82 22 2 677 723 769 814 2 + 84 22 2 678 724 770 815 2 + 86 22 2 679 725 771 816 2 + 88 22 2 680 726 772 817 2 + 0 24 2 682 728 773 818 2 + 2 24 2 683 729 774 819 2 + 4 24 2 684 730 775 820 2 + 6 24 2 685 731 776 821 2 + 8 24 2 686 732 777 822 2 + 10 24 2 687 733 778 823 2 + 12 24 2 688 734 779 824 2 + 14 24 2 689 735 780 825 2 + 16 24 2 690 736 781 826 2 + 18 24 2 691 737 782 827 2 + 20 24 2 692 738 783 828 2 + 22 24 2 693 739 784 829 2 + 24 24 2 694 740 785 830 2 + 26 24 2 695 741 786 831 2 + 28 24 2 696 742 787 832 2 + 30 24 2 697 743 788 833 2 + 32 24 2 698 744 789 834 2 + 34 24 2 699 745 790 835 2 + 36 24 2 700 746 791 836 2 + 38 24 2 701 747 792 837 2 + 40 24 2 702 748 793 838 2 + 42 24 2 703 749 794 839 2 + 44 24 2 704 750 795 840 2 + 46 24 2 705 751 796 841 2 + 48 24 2 706 752 797 842 2 + 50 24 2 707 753 798 843 2 + 52 24 2 708 754 799 844 2 + 54 24 2 709 755 800 845 2 + 56 24 2 710 756 801 846 2 + 58 24 2 711 757 802 847 2 + 60 24 2 712 758 803 848 2 + 62 24 2 713 759 804 849 2 + 64 24 2 714 760 805 850 2 + 66 24 2 715 761 806 851 2 + 68 24 2 716 762 807 852 2 + 70 24 2 717 763 808 853 2 + 72 24 2 718 764 809 854 2 + 74 24 2 719 765 810 855 2 + 76 24 2 720 766 811 856 2 + 78 24 2 721 767 812 857 2 + 80 24 2 722 768 813 858 2 + 82 24 2 723 769 814 859 2 + 84 24 2 724 770 815 860 2 + 86 24 2 725 771 816 861 2 + 88 24 2 726 772 817 0 2 + 0 26 2 728 773 818 862 2 + 2 26 2 729 774 819 863 2 + 4 26 2 730 775 820 864 2 + 6 26 2 731 776 821 865 2 + 8 26 2 732 777 822 866 2 + 10 26 2 733 778 823 867 2 + 12 26 2 734 779 824 868 2 + 14 26 2 735 780 825 869 2 + 16 26 2 736 781 826 870 2 + 18 26 2 737 782 827 871 2 + 20 26 2 738 783 828 872 2 + 22 26 2 739 784 829 873 2 + 24 26 2 740 785 830 874 2 + 26 26 2 741 786 831 875 2 + 28 26 2 742 787 832 876 2 + 30 26 2 743 788 833 877 2 + 32 26 2 744 789 834 878 2 + 34 26 2 745 790 835 879 2 + 36 26 2 746 791 836 880 2 + 38 26 2 747 792 837 881 2 + 40 26 2 748 793 838 882 2 + 42 26 2 749 794 839 883 2 + 44 26 2 750 795 840 884 2 + 46 26 2 751 796 841 885 2 + 48 26 2 752 797 842 886 2 + 50 26 2 753 798 843 887 2 + 52 26 2 754 799 844 888 2 + 54 26 2 755 800 845 889 2 + 56 26 2 756 801 846 890 2 + 58 26 2 757 802 847 891 2 + 60 26 2 758 803 848 892 2 + 62 26 2 759 804 849 893 2 + 64 26 2 760 805 850 894 2 + 66 26 2 761 806 851 895 2 + 68 26 2 762 807 852 896 2 + 70 26 2 763 808 853 897 2 + 72 26 2 764 809 854 898 2 + 74 26 2 765 810 855 899 2 + 76 26 2 766 811 856 900 2 + 78 26 2 767 812 857 901 2 + 80 26 2 768 813 858 902 2 + 82 26 2 769 814 859 903 2 + 84 26 2 770 815 860 904 2 + 86 26 2 771 816 861 0 2 + 89 26 1 772 817 0 0 2 + 0 28 2 773 818 862 905 2 + 2 28 2 774 819 863 906 2 + 4 28 2 775 820 864 907 2 + 6 28 2 776 821 865 908 2 + 8 28 2 777 822 866 909 2 + 10 28 2 778 823 867 910 2 + 12 28 2 779 824 868 911 2 + 14 28 2 780 825 869 912 2 + 16 28 2 781 826 870 913 2 + 18 28 2 782 827 871 914 2 + 20 28 2 783 828 872 915 2 + 22 28 2 784 829 873 916 2 + 24 28 2 785 830 874 917 2 + 26 28 2 786 831 875 918 2 + 28 28 2 787 832 876 919 2 + 30 28 2 788 833 877 920 2 + 32 28 2 789 834 878 921 2 + 34 28 2 790 835 879 922 2 + 36 28 2 791 836 880 923 2 + 38 28 2 792 837 881 924 2 + 40 28 2 793 838 882 925 2 + 42 28 2 794 839 883 926 2 + 44 28 2 795 840 884 927 2 + 46 28 2 796 841 885 928 2 + 48 28 2 797 842 886 929 2 + 50 28 2 798 843 887 930 2 + 52 28 2 799 844 888 931 2 + 54 28 2 800 845 889 932 2 + 56 28 2 801 846 890 933 2 + 58 28 2 802 847 891 934 2 + 60 28 2 803 848 892 935 2 + 62 28 2 804 849 893 936 2 + 64 28 2 805 850 894 937 2 + 66 28 2 806 851 895 938 2 + 68 28 2 807 852 896 939 2 + 70 28 2 808 853 897 940 2 + 72 28 2 809 854 898 941 2 + 74 28 2 810 855 899 24 2 + 76 28 2 811 856 900 26 2 + 78 28 2 812 857 901 28 2 + 80 28 2 813 858 902 -1 2 + 82 28 2 814 859 903 -1 2 + 84 28 2 815 860 904 -1 2 + 87 28 1 816 861 0 0 2 + 0 30 2 818 862 905 942 2 + 2 30 2 819 863 906 943 2 + 4 30 2 820 864 907 944 2 + 6 30 2 821 865 908 945 2 + 8 30 2 822 866 909 946 2 + 10 30 2 823 867 910 947 2 + 12 30 2 824 868 911 948 2 + 14 30 2 825 869 912 949 2 + 16 30 2 826 870 913 950 2 + 18 30 2 827 871 914 951 2 + 20 30 2 828 872 915 952 2 + 22 30 2 829 873 916 953 2 + 24 30 2 830 874 917 954 2 + 26 30 2 831 875 918 955 2 + 28 30 2 832 876 919 956 2 + 30 30 2 833 877 920 957 2 + 32 30 2 834 878 921 958 2 + 34 30 2 835 879 922 959 2 + 36 30 2 836 880 923 960 2 + 38 30 2 837 881 924 961 2 + 40 30 2 838 882 925 962 2 + 42 30 2 839 883 926 963 2 + 44 30 2 840 884 927 964 2 + 46 30 2 841 885 928 965 2 + 48 30 2 842 886 929 966 2 + 50 30 2 843 887 930 967 2 + 52 30 2 844 888 931 968 2 + 54 30 2 845 889 932 969 2 + 56 30 2 846 890 933 970 2 + 58 30 2 847 891 934 971 2 + 60 30 2 848 892 935 972 2 + 62 30 2 849 893 936 30 2 + 64 30 2 850 894 937 -1 2 + 66 30 2 851 895 938 -1 2 + 68 30 2 852 896 939 0 2 + 70 30 2 853 897 940 973 2 + 72 30 2 854 898 941 0 2 + 80 30 2 858 902 -1 -1 2 + 82 30 2 859 903 -1 -1 2 + 84 30 2 860 904 -1 -1 2 + 0 32 2 862 905 942 974 2 + 2 32 2 863 906 943 975 2 + 4 32 2 864 907 944 976 2 + 6 32 2 865 908 945 977 2 + 8 32 2 866 909 946 978 2 + 10 32 2 867 910 947 979 2 + 12 32 2 868 911 948 980 2 + 14 32 2 869 912 949 981 2 + 16 32 2 870 913 950 982 2 + 18 32 2 871 914 951 983 2 + 20 32 2 872 915 952 984 2 + 22 32 2 873 916 953 985 2 + 24 32 2 874 917 954 986 2 + 26 32 2 875 918 955 987 2 + 28 32 2 876 919 956 988 2 + 30 32 2 877 920 957 989 2 + 32 32 2 878 921 958 990 2 + 34 32 2 879 922 959 991 2 + 36 32 2 880 923 960 992 2 + 38 32 2 881 924 961 993 2 + 40 32 2 882 925 962 994 2 + 42 32 2 883 926 963 995 2 + 44 32 2 884 927 964 996 2 + 46 32 2 885 928 965 997 2 + 48 32 2 886 929 966 998 2 + 50 32 2 887 930 967 999 2 + 52 32 2 888 931 968 1000 2 + 54 32 2 889 932 969 1001 2 + 56 32 2 890 933 970 1002 2 + 58 32 2 891 934 971 1003 2 + 60 32 2 892 935 972 1004 2 + 64 32 2 894 937 -1 -1 2 + 66 32 2 895 938 -1 -1 2 + 68 32 1 896 939 0 0 2 + 70 32 2 897 940 973 1009 2 + 73 32 1 898 941 0 0 2 + 0 34 2 905 942 974 1011 2 + 2 34 2 906 943 975 1012 2 + 4 34 2 907 944 976 1013 2 + 6 34 2 908 945 977 1014 2 + 8 34 2 909 946 978 1015 2 + 10 34 2 910 947 979 1016 2 + 12 34 2 911 948 980 1017 2 + 14 34 2 912 949 981 1018 2 + 16 34 2 913 950 982 1019 2 + 18 34 2 914 951 983 1020 2 + 20 34 2 915 952 984 1021 2 + 22 34 2 916 953 985 1022 2 + 24 34 2 917 954 986 1023 2 + 26 34 2 918 955 987 1024 2 + 28 34 2 919 956 988 1025 2 + 30 34 2 920 957 989 1026 2 + 32 34 2 921 958 990 1027 2 + 34 34 2 922 959 991 1028 2 + 36 34 2 923 960 992 1029 2 + 38 34 2 924 961 993 1030 2 + 40 34 2 925 962 994 1031 2 + 42 34 2 926 963 995 1032 2 + 44 34 2 927 964 996 1033 2 + 46 34 2 928 965 997 1034 2 + 48 34 2 929 966 998 1035 2 + 50 34 2 930 967 999 1036 2 + 52 34 2 931 968 1000 1037 2 + 54 34 2 932 969 1001 1038 2 + 56 34 2 933 970 1002 1039 2 + 58 34 2 934 971 1003 1040 2 + 60 34 2 935 972 1004 1041 2 + 62 34 2 -1 -1 1005 1042 2 + 64 34 2 -1 -1 1006 1043 2 + 66 34 1 0 0 1007 1044 2 + 70 34 2 940 973 1009 1046 2 + 0 36 2 942 974 1011 1053 2 + 2 36 2 943 975 1012 1054 2 + 4 36 2 944 976 1013 1055 2 + 6 36 2 945 977 1014 1056 2 + 8 36 2 946 978 1015 1057 2 + 10 36 2 947 979 1016 1058 2 + 12 36 2 948 980 1017 1059 2 + 14 36 2 949 981 1018 1060 2 + 16 36 2 950 982 1019 1061 2 + 18 36 2 951 983 1020 1062 2 + 20 36 2 952 984 1021 1063 2 + 22 36 2 953 985 1022 1064 2 + 24 36 2 954 986 1023 1065 2 + 26 36 2 955 987 1024 1066 2 + 28 36 2 956 988 1025 1067 2 + 30 36 2 957 989 1026 1068 2 + 32 36 2 958 990 1027 1069 2 + 34 36 2 959 991 1028 1070 2 + 36 36 2 960 992 1029 1071 2 + 38 36 2 961 993 1030 1072 2 + 40 36 2 962 994 1031 1073 2 + 42 36 2 963 995 1032 1074 2 + 44 36 2 964 996 1033 1075 2 + 46 36 2 965 997 1034 1076 2 + 48 36 2 966 998 1035 1077 2 + 50 36 2 967 999 1036 1078 2 + 52 36 2 968 1000 1037 1079 2 + 54 36 2 969 1001 1038 1080 2 + 56 36 2 970 1002 1039 1081 2 + 58 36 2 971 1003 1040 1082 2 + 60 36 2 972 1004 1041 1083 2 + 62 36 2 -1 1005 1042 1084 2 + 64 36 2 -1 1006 1043 1085 2 + 66 36 2 0 1007 1044 1086 2 + 68 36 2 34 1008 1045 1087 2 + 70 36 2 973 1009 1046 1088 2 + 72 36 2 37 1010 1047 1089 2 + 80 36 2 -1 -1 1051 1093 2 + 82 36 2 -1 -1 1052 1094 2 + 0 38 2 974 1011 1053 1101 2 + 2 38 2 975 1012 1054 1102 2 + 4 38 2 976 1013 1055 1103 2 + 6 38 2 977 1014 1056 1104 2 + 8 38 2 978 1015 1057 1105 2 + 10 38 2 979 1016 1058 1106 2 + 12 38 2 980 1017 1059 1107 2 + 14 38 2 981 1018 1060 1108 2 + 16 38 2 982 1019 1061 1109 2 + 18 38 2 983 1020 1062 1110 2 + 20 38 2 984 1021 1063 1111 2 + 22 38 2 985 1022 1064 1112 2 + 24 38 2 986 1023 1065 1113 2 + 26 38 2 987 1024 1066 1114 2 + 28 38 2 988 1025 1067 1115 2 + 30 38 2 989 1026 1068 1116 2 + 32 38 2 990 1027 1069 1117 2 + 34 38 2 991 1028 1070 1118 2 + 36 38 2 992 1029 1071 1119 2 + 38 38 2 993 1030 1072 1120 2 + 40 38 2 994 1031 1073 1121 2 + 42 38 2 995 1032 1074 1122 2 + 44 38 2 996 1033 1075 1123 2 + 46 38 2 997 1034 1076 1124 2 + 48 38 2 998 1035 1077 1125 2 + 50 38 2 999 1036 1078 1126 2 + 52 38 2 1000 1037 1079 1127 2 + 54 38 2 1001 1038 1080 1128 2 + 56 38 2 1002 1039 1081 1129 2 + 58 38 2 1003 1040 1082 1130 2 + 60 38 2 1004 1041 1083 1131 2 + 62 38 2 1005 1042 1084 1132 2 + 64 38 2 1006 1043 1085 1133 2 + 66 38 2 1007 1044 1086 1134 2 + 68 38 2 1008 1045 1087 1135 2 + 70 38 2 1009 1046 1088 1136 2 + 72 38 2 1010 1047 1089 1137 2 + 74 38 2 39 1048 1090 1138 2 + 76 38 2 41 1049 1091 1139 2 + 78 38 2 43 1050 1092 1140 2 + 80 38 2 -1 1051 1093 1141 2 + 82 38 2 -1 1052 1094 1142 2 + 87 38 1 0 0 1096 1144 2 + 88 38 2 -1 -1 1097 1145 2 + 90 38 2 -1 -1 1098 1146 2 + 92 38 2 -1 -1 1099 1147 2 + 94 38 1 0 0 1100 1148 2 + 0 40 2 1011 1053 1101 1149 2 + 2 40 2 1012 1054 1102 1150 2 + 4 40 2 1013 1055 1103 1151 2 + 6 40 2 1014 1056 1104 1152 2 + 8 40 2 1015 1057 1105 1153 2 + 10 40 2 1016 1058 1106 1154 2 + 12 40 2 1017 1059 1107 1155 2 + 14 40 2 1018 1060 1108 1156 2 + 16 40 2 1019 1061 1109 1157 2 + 18 40 2 1020 1062 1110 1158 2 + 20 40 2 1021 1063 1111 1159 2 + 22 40 2 1022 1064 1112 1160 2 + 24 40 2 1023 1065 1113 1161 2 + 26 40 2 1024 1066 1114 1162 2 + 28 40 2 1025 1067 1115 1163 2 + 30 40 2 1026 1068 1116 1164 2 + 32 40 2 1027 1069 1117 1165 2 + 34 40 2 1028 1070 1118 1166 2 + 36 40 2 1029 1071 1119 1167 2 + 38 40 2 1030 1072 1120 1168 2 + 40 40 2 1031 1073 1121 1169 2 + 42 40 2 1032 1074 1122 1170 2 + 44 40 2 1033 1075 1123 1171 2 + 46 40 2 1034 1076 1124 1172 2 + 48 40 2 1035 1077 1125 1173 2 + 50 40 2 1036 1078 1126 1174 2 + 52 40 2 1037 1079 1127 1175 2 + 54 40 2 1038 1080 1128 1176 2 + 56 40 2 1039 1081 1129 1177 2 + 58 40 2 1040 1082 1130 1178 2 + 60 40 2 1041 1083 1131 1179 2 + 62 40 2 1042 1084 1132 1180 2 + 64 40 2 1043 1085 1133 1181 2 + 66 40 2 1044 1086 1134 1182 2 + 68 40 2 1045 1087 1135 1183 2 + 70 40 2 1046 1088 1136 1184 2 + 72 40 2 1047 1089 1137 1185 2 + 74 40 2 1048 1090 1138 1186 2 + 76 40 2 1049 1091 1139 1187 2 + 78 40 2 1050 1092 1140 1188 2 + 80 40 2 1051 1093 1141 1189 2 + 82 40 2 1052 1094 1142 53 2 + 84 40 2 45 1095 1143 1190 2 + 86 40 2 0 1096 1144 1191 2 + 88 40 2 -1 1097 1145 1192 2 + 90 40 2 -1 1098 1146 1193 2 + 92 40 2 -1 1099 1147 1194 2 + 94 40 2 0 1100 1148 1195 2 + 0 42 2 1053 1101 1149 1196 2 + 2 42 2 1054 1102 1150 1197 2 + 4 42 2 1055 1103 1151 1198 2 + 6 42 2 1056 1104 1152 1199 2 + 8 42 2 1057 1105 1153 1200 2 + 10 42 2 1058 1106 1154 1201 2 + 12 42 2 1059 1107 1155 1202 2 + 14 42 2 1060 1108 1156 1203 2 + 16 42 2 1061 1109 1157 1204 2 + 18 42 2 1062 1110 1158 1205 2 + 20 42 2 1063 1111 1159 1206 2 + 22 42 2 1064 1112 1160 1207 2 + 24 42 2 1065 1113 1161 1208 2 + 26 42 2 1066 1114 1162 1209 2 + 28 42 2 1067 1115 1163 1210 2 + 30 42 2 1068 1116 1164 1211 2 + 32 42 2 1069 1117 1165 1212 2 + 34 42 2 1070 1118 1166 1213 2 + 36 42 2 1071 1119 1167 1214 2 + 38 42 2 1072 1120 1168 1215 2 + 40 42 2 1073 1121 1169 1216 2 + 42 42 2 1074 1122 1170 1217 2 + 44 42 2 1075 1123 1171 1218 2 + 46 42 2 1076 1124 1172 1219 2 + 48 42 2 1077 1125 1173 1220 2 + 50 42 2 1078 1126 1174 1221 2 + 52 42 2 1079 1127 1175 1222 2 + 54 42 2 1080 1128 1176 1223 2 + 56 42 2 1081 1129 1177 1224 2 + 58 42 2 1082 1130 1178 1225 2 + 60 42 2 1083 1131 1179 1226 2 + 62 42 2 1084 1132 1180 1227 2 + 64 42 2 1085 1133 1181 1228 2 + 66 42 2 1086 1134 1182 1229 2 + 68 42 2 1087 1135 1183 1230 2 + 70 42 2 1088 1136 1184 1231 2 + 72 42 2 1089 1137 1185 1232 2 + 74 42 2 1090 1138 1186 1233 2 + 76 42 2 1091 1139 1187 1234 2 + 78 42 2 1092 1140 1188 1235 2 + 80 42 2 1093 1141 1189 1236 2 + 84 42 2 1095 1143 1190 0 2 + 86 42 2 1096 1144 1191 1237 2 + 88 42 2 1097 1145 1192 1238 2 + 90 42 2 1098 1146 1193 1239 2 + 92 42 2 1099 1147 1194 1240 2 + 94 42 2 1100 1148 1195 60 2 + 0 44 2 1101 1149 1196 1241 2 + 2 44 2 1102 1150 1197 1242 2 + 4 44 2 1103 1151 1198 1243 2 + 6 44 2 1104 1152 1199 1244 2 + 8 44 2 1105 1153 1200 1245 2 + 10 44 2 1106 1154 1201 1246 2 + 12 44 2 1107 1155 1202 1247 2 + 14 44 2 1108 1156 1203 1248 2 + 16 44 2 1109 1157 1204 1249 2 + 18 44 2 1110 1158 1205 1250 2 + 20 44 2 1111 1159 1206 1251 2 + 22 44 2 1112 1160 1207 1252 2 + 24 44 2 1113 1161 1208 1253 2 + 26 44 2 1114 1162 1209 1254 2 + 28 44 2 1115 1163 1210 1255 2 + 30 44 2 1116 1164 1211 1256 2 + 32 44 2 1117 1165 1212 1257 2 + 34 44 2 1118 1166 1213 1258 2 + 36 44 2 1119 1167 1214 1259 2 + 38 44 2 1120 1168 1215 1260 2 + 40 44 2 1121 1169 1216 1261 2 + 42 44 2 1122 1170 1217 1262 2 + 44 44 2 1123 1171 1218 1263 2 + 46 44 2 1124 1172 1219 1264 2 + 48 44 2 1125 1173 1220 1265 2 + 50 44 2 1126 1174 1221 1266 2 + 52 44 2 1127 1175 1222 1267 2 + 54 44 2 1128 1176 1223 1268 2 + 56 44 2 1129 1177 1224 1269 2 + 58 44 2 1130 1178 1225 1270 2 + 60 44 2 1131 1179 1226 1271 2 + 62 44 2 1132 1180 1227 1272 2 + 64 44 2 1133 1181 1228 1273 2 + 66 44 2 1134 1182 1229 1274 2 + 68 44 2 1135 1183 1230 1275 2 + 70 44 2 1136 1184 1231 1276 2 + 72 44 2 1137 1185 1232 1277 2 + 74 44 2 1138 1186 1233 1278 2 + 76 44 2 1139 1187 1234 1279 2 + 78 44 2 1140 1188 1235 1280 2 + 80 44 2 1141 1189 1236 1281 2 + 84 44 1 1143 1190 0 0 2 + 86 44 2 1144 1191 1237 1282 2 + 88 44 2 1145 1192 1238 1283 2 + 90 44 2 1146 1193 1239 63 2 + 92 44 2 1147 1194 1240 -1 2 + 0 46 2 1149 1196 1241 1284 2 + 2 46 2 1150 1197 1242 1285 2 + 4 46 2 1151 1198 1243 1286 2 + 6 46 2 1152 1199 1244 1287 2 + 8 46 2 1153 1200 1245 1288 2 + 10 46 2 1154 1201 1246 1289 2 + 12 46 2 1155 1202 1247 1290 2 + 14 46 2 1156 1203 1248 1291 2 + 16 46 2 1157 1204 1249 1292 2 + 18 46 2 1158 1205 1250 1293 2 + 20 46 2 1159 1206 1251 1294 2 + 22 46 2 1160 1207 1252 1295 2 + 24 46 2 1161 1208 1253 1296 2 + 26 46 2 1162 1209 1254 1297 2 + 28 46 2 1163 1210 1255 1298 2 + 30 46 2 1164 1211 1256 1299 2 + 32 46 2 1165 1212 1257 1300 2 + 34 46 2 1166 1213 1258 1301 2 + 36 46 2 1167 1214 1259 1302 2 + 38 46 2 1168 1215 1260 1303 2 + 40 46 2 1169 1216 1261 1304 2 + 42 46 2 1170 1217 1262 1305 2 + 44 46 2 1171 1218 1263 1306 2 + 46 46 2 1172 1219 1264 1307 2 + 48 46 2 1173 1220 1265 1308 2 + 50 46 2 1174 1221 1266 1309 2 + 52 46 2 1175 1222 1267 1310 2 + 54 46 2 1176 1223 1268 1311 2 + 56 46 2 1177 1224 1269 1312 2 + 58 46 2 1178 1225 1270 1313 2 + 60 46 2 1179 1226 1271 1314 2 + 62 46 2 1180 1227 1272 1315 2 + 64 46 2 1181 1228 1273 1316 2 + 66 46 2 1182 1229 1274 1317 2 + 68 46 2 1183 1230 1275 1318 2 + 70 46 2 1184 1231 1276 1319 2 + 72 46 2 1185 1232 1277 1320 2 + 74 46 2 1186 1233 1278 1321 2 + 76 46 2 1187 1234 1279 1322 2 + 78 46 2 1188 1235 1280 1323 2 + 80 46 2 1189 1236 1281 66 2 + 86 46 2 1191 1237 1282 -1 2 + 88 46 2 1192 1238 1283 -1 2 + 92 46 2 1194 1240 -1 -1 2 + 0 48 2 1196 1241 1284 1324 2 + 2 48 2 1197 1242 1285 1325 2 + 4 48 2 1198 1243 1286 1326 2 + 6 48 2 1199 1244 1287 1327 2 + 8 48 2 1200 1245 1288 1328 2 + 10 48 2 1201 1246 1289 1329 2 + 12 48 2 1202 1247 1290 1330 2 + 14 48 2 1203 1248 1291 1331 2 + 16 48 2 1204 1249 1292 1332 2 + 18 48 2 1205 1250 1293 1333 2 + 20 48 2 1206 1251 1294 1334 2 + 22 48 2 1207 1252 1295 1335 2 + 24 48 2 1208 1253 1296 1336 2 + 26 48 2 1209 1254 1297 1337 2 + 28 48 2 1210 1255 1298 1338 2 + 30 48 2 1211 1256 1299 1339 2 + 32 48 2 1212 1257 1300 1340 2 + 34 48 2 1213 1258 1301 1341 2 + 36 48 2 1214 1259 1302 1342 2 + 38 48 2 1215 1260 1303 1343 2 + 40 48 2 1216 1261 1304 1344 2 + 42 48 2 1217 1262 1305 1345 2 + 44 48 2 1218 1263 1306 1346 2 + 46 48 2 1219 1264 1307 1347 2 + 48 48 2 1220 1265 1308 1348 2 + 50 48 2 1221 1266 1309 1349 2 + 52 48 2 1222 1267 1310 1350 2 + 54 48 2 1223 1268 1311 1351 2 + 56 48 2 1224 1269 1312 1352 2 + 58 48 2 1225 1270 1313 1353 2 + 60 48 2 1226 1271 1314 1354 2 + 62 48 2 1227 1272 1315 1355 2 + 64 48 2 1228 1273 1316 1356 2 + 66 48 2 1229 1274 1317 1357 2 + 68 48 2 1230 1275 1318 1358 2 + 70 48 2 1231 1276 1319 1359 2 + 72 48 2 1232 1277 1320 1360 2 + 74 48 2 1233 1278 1321 1361 2 + 76 48 2 1234 1279 1322 1362 2 + 78 48 2 1235 1280 1323 1363 2 + 86 48 2 1237 1282 -1 -1 2 + 88 48 2 1238 1283 -1 -1 2 + 0 50 2 1241 1284 1324 1364 2 + 2 50 2 1242 1285 1325 1365 2 + 4 50 2 1243 1286 1326 1366 2 + 6 50 2 1244 1287 1327 1367 2 + 8 50 2 1245 1288 1328 1368 2 + 10 50 2 1246 1289 1329 1369 2 + 12 50 2 1247 1290 1330 1370 2 + 14 50 2 1248 1291 1331 1371 2 + 16 50 2 1249 1292 1332 1372 2 + 18 50 2 1250 1293 1333 1373 2 + 20 50 2 1251 1294 1334 1374 2 + 22 50 2 1252 1295 1335 1375 2 + 24 50 2 1253 1296 1336 1376 2 + 26 50 2 1254 1297 1337 1377 2 + 28 50 2 1255 1298 1338 1378 2 + 30 50 2 1256 1299 1339 1379 2 + 32 50 2 1257 1300 1340 1380 2 + 34 50 2 1258 1301 1341 1381 2 + 36 50 2 1259 1302 1342 1382 2 + 38 50 2 1260 1303 1343 1383 2 + 40 50 2 1261 1304 1344 1384 2 + 42 50 2 1262 1305 1345 1385 2 + 44 50 2 1263 1306 1346 1386 2 + 46 50 2 1264 1307 1347 1387 2 + 48 50 2 1265 1308 1348 1388 2 + 50 50 2 1266 1309 1349 1389 2 + 52 50 2 1267 1310 1350 1390 2 + 54 50 2 1268 1311 1351 1391 2 + 56 50 2 1269 1312 1352 1392 2 + 58 50 2 1270 1313 1353 1393 2 + 60 50 2 1271 1314 1354 1394 2 + 62 50 2 1272 1315 1355 1395 2 + 64 50 2 1273 1316 1356 1396 2 + 66 50 2 1274 1317 1357 1397 2 + 68 50 2 1275 1318 1358 1398 2 + 70 50 2 1276 1319 1359 1399 2 + 72 50 2 1277 1320 1360 1400 2 + 74 50 2 1278 1321 1361 1401 2 + 76 50 2 1279 1322 1362 1402 2 + 78 50 2 1280 1323 1363 1403 2 + 0 52 2 1284 1324 1364 1406 2 + 2 52 2 1285 1325 1365 1407 2 + 4 52 2 1286 1326 1366 1408 2 + 6 52 2 1287 1327 1367 1409 2 + 8 52 2 1288 1328 1368 1410 2 + 10 52 2 1289 1329 1369 1411 2 + 12 52 2 1290 1330 1370 1412 2 + 14 52 2 1291 1331 1371 1413 2 + 16 52 2 1292 1332 1372 1414 2 + 18 52 2 1293 1333 1373 1415 2 + 20 52 2 1294 1334 1374 1416 2 + 22 52 2 1295 1335 1375 1417 2 + 24 52 2 1296 1336 1376 1418 2 + 26 52 2 1297 1337 1377 1419 2 + 28 52 2 1298 1338 1378 1420 2 + 30 52 2 1299 1339 1379 1421 2 + 32 52 2 1300 1340 1380 1422 2 + 34 52 2 1301 1341 1381 1423 2 + 36 52 2 1302 1342 1382 1424 2 + 38 52 2 1303 1343 1383 1425 2 + 40 52 2 1304 1344 1384 1426 2 + 42 52 2 1305 1345 1385 1427 2 + 44 52 2 1306 1346 1386 1428 2 + 46 52 2 1307 1347 1387 1429 2 + 48 52 2 1308 1348 1388 1430 2 + 50 52 2 1309 1349 1389 1431 2 + 52 52 2 1310 1350 1390 1432 2 + 54 52 2 1311 1351 1391 1433 2 + 56 52 2 1312 1352 1392 1434 2 + 58 52 2 1313 1353 1393 1435 2 + 60 52 2 1314 1354 1394 1436 2 + 62 52 2 1315 1355 1395 1437 2 + 64 52 2 1316 1356 1396 1438 2 + 66 52 2 1317 1357 1397 1439 2 + 68 52 2 1318 1358 1398 1440 2 + 70 52 2 1319 1359 1399 78 2 + 72 52 2 1320 1360 1400 80 2 + 74 52 2 1321 1361 1401 1441 2 + 76 52 2 1322 1362 1402 1442 2 + 78 52 2 1323 1363 1403 1443 2 + 80 52 2 -1 -1 1404 0 2 + 90 52 2 -1 -1 1405 92 2 + 0 54 2 1324 1364 1406 1446 2 + 2 54 2 1325 1365 1407 1447 2 + 4 54 2 1326 1366 1408 1448 2 + 6 54 2 1327 1367 1409 1449 2 + 8 54 2 1328 1368 1410 1450 2 + 10 54 2 1329 1369 1411 1451 2 + 12 54 2 1330 1370 1412 1452 2 + 14 54 2 1331 1371 1413 1453 2 + 16 54 2 1332 1372 1414 1454 2 + 18 54 2 1333 1373 1415 1455 2 + 20 54 2 1334 1374 1416 1456 2 + 22 54 2 1335 1375 1417 1457 2 + 24 54 2 1336 1376 1418 1458 2 + 26 54 2 1337 1377 1419 1459 2 + 28 54 2 1338 1378 1420 1460 2 + 30 54 2 1339 1379 1421 1461 2 + 32 54 2 1340 1380 1422 1462 2 + 34 54 2 1341 1381 1423 1463 2 + 36 54 2 1342 1382 1424 1464 2 + 38 54 2 1343 1383 1425 1465 2 + 40 54 2 1344 1384 1426 1466 2 + 42 54 2 1345 1385 1427 1467 2 + 44 54 2 1346 1386 1428 1468 2 + 46 54 2 1347 1387 1429 1469 2 + 48 54 2 1348 1388 1430 1470 2 + 50 54 2 1349 1389 1431 1471 2 + 52 54 2 1350 1390 1432 1472 2 + 54 54 2 1351 1391 1433 1473 2 + 56 54 2 1352 1392 1434 1474 2 + 58 54 2 1353 1393 1435 1475 2 + 60 54 2 1354 1394 1436 1476 2 + 62 54 2 1355 1395 1437 1477 2 + 64 54 2 1356 1396 1438 1478 2 + 66 54 2 1357 1397 1439 95 2 + 68 54 2 1358 1398 1440 1479 2 + 74 54 2 1361 1401 1441 0 2 + 76 54 2 1362 1402 1442 103 2 + 78 54 2 1363 1403 1443 0 2 + 81 54 1 -1 1404 0 0 2 + 0 56 2 1364 1406 1446 1482 2 + 2 56 2 1365 1407 1447 1483 2 + 4 56 2 1366 1408 1448 1484 2 + 6 56 2 1367 1409 1449 1485 2 + 8 56 2 1368 1410 1450 1486 2 + 10 56 2 1369 1411 1451 1487 2 + 12 56 2 1370 1412 1452 1488 2 + 14 56 2 1371 1413 1453 1489 2 + 16 56 2 1372 1414 1454 1490 2 + 18 56 2 1373 1415 1455 1491 2 + 20 56 2 1374 1416 1456 1492 2 + 22 56 2 1375 1417 1457 1493 2 + 24 56 2 1376 1418 1458 1494 2 + 26 56 2 1377 1419 1459 1495 2 + 28 56 2 1378 1420 1460 1496 2 + 30 56 2 1379 1421 1461 1497 2 + 32 56 2 1380 1422 1462 1498 2 + 34 56 2 1381 1423 1463 1499 2 + 36 56 2 1382 1424 1464 1500 2 + 38 56 2 1383 1425 1465 1501 2 + 40 56 2 1384 1426 1466 1502 2 + 42 56 2 1385 1427 1467 1503 2 + 44 56 2 1386 1428 1468 1504 2 + 46 56 2 1387 1429 1469 1505 2 + 48 56 2 1388 1430 1470 1506 2 + 50 56 2 1389 1431 1471 1507 2 + 52 56 2 1390 1432 1472 1508 2 + 54 56 2 1391 1433 1473 1509 2 + 56 56 2 1392 1434 1474 1510 2 + 58 56 2 1393 1435 1475 1511 2 + 60 56 2 1394 1436 1476 1512 2 + 62 56 2 1395 1437 1477 114 2 + 64 56 2 1396 1438 1478 117 2 + 68 56 2 1398 1440 1479 1513 2 + 74 56 1 1401 1441 0 0 2 + 79 56 1 1403 1443 0 0 2 + 86 56 2 70 1444 1481 126 2 + 92 56 1 74 1445 0 0 2 + 0 58 2 1406 1446 1482 1514 2 + 2 58 2 1407 1447 1483 1515 2 + 4 58 2 1408 1448 1484 1516 2 + 6 58 2 1409 1449 1485 1517 2 + 8 58 2 1410 1450 1486 1518 2 + 10 58 2 1411 1451 1487 1519 2 + 12 58 2 1412 1452 1488 1520 2 + 14 58 2 1413 1453 1489 1521 2 + 16 58 2 1414 1454 1490 1522 2 + 18 58 2 1415 1455 1491 1523 2 + 20 58 2 1416 1456 1492 1524 2 + 22 58 2 1417 1457 1493 1525 2 + 24 58 2 1418 1458 1494 1526 2 + 26 58 2 1419 1459 1495 1527 2 + 28 58 2 1420 1460 1496 1528 2 + 30 58 2 1421 1461 1497 1529 2 + 32 58 2 1422 1462 1498 1530 2 + 34 58 2 1423 1463 1499 1531 2 + 36 58 2 1424 1464 1500 1532 2 + 38 58 2 1425 1465 1501 1533 2 + 40 58 2 1426 1466 1502 1534 2 + 42 58 2 1427 1467 1503 1535 2 + 44 58 2 1428 1468 1504 1536 2 + 46 58 2 1429 1469 1505 1537 2 + 48 58 2 1430 1470 1506 1538 2 + 50 58 2 1431 1471 1507 1539 2 + 52 58 2 1432 1472 1508 1540 2 + 54 58 2 1433 1473 1509 1541 2 + 56 58 2 1434 1474 1510 1542 2 + 58 58 2 1435 1475 1511 1543 2 + 60 58 2 1436 1476 1512 0 2 + 68 58 2 1440 1479 1513 1546 2 + 84 58 1 86 1480 0 0 2 + 0 60 2 1446 1482 1514 1547 2 + 2 60 2 1447 1483 1515 1548 2 + 4 60 2 1448 1484 1516 1549 2 + 6 60 2 1449 1485 1517 1550 2 + 8 60 2 1450 1486 1518 1551 2 + 10 60 2 1451 1487 1519 1552 2 + 12 60 2 1452 1488 1520 1553 2 + 14 60 2 1453 1489 1521 1554 2 + 16 60 2 1454 1490 1522 1555 2 + 18 60 2 1455 1491 1523 1556 2 + 20 60 2 1456 1492 1524 1557 2 + 22 60 2 1457 1493 1525 1558 2 + 24 60 2 1458 1494 1526 1559 2 + 26 60 2 1459 1495 1527 1560 2 + 28 60 2 1460 1496 1528 1561 2 + 30 60 2 1461 1497 1529 1562 2 + 32 60 2 1462 1498 1530 1563 2 + 34 60 2 1463 1499 1531 1564 2 + 36 60 2 1464 1500 1532 1565 2 + 38 60 2 1465 1501 1533 1566 2 + 40 60 2 1466 1502 1534 1567 2 + 42 60 2 1467 1503 1535 1568 2 + 44 60 2 1468 1504 1536 1569 2 + 46 60 2 1469 1505 1537 1570 2 + 48 60 2 1470 1506 1538 1571 2 + 50 60 2 1471 1507 1539 1572 2 + 52 60 2 1472 1508 1540 1573 2 + 54 60 2 1473 1509 1541 1574 2 + 56 60 2 1474 1510 1542 1575 2 + 58 60 2 1475 1511 1543 141 2 + 61 60 1 1476 1512 0 0 2 + 62 60 1 0 0 1544 1577 2 + 68 60 2 1479 1513 1546 1580 2 + 0 62 2 1482 1514 1547 1581 2 + 2 62 2 1483 1515 1548 1582 2 + 4 62 2 1484 1516 1549 1583 2 + 6 62 2 1485 1517 1550 1584 2 + 8 62 2 1486 1518 1551 1585 2 + 10 62 2 1487 1519 1552 1586 2 + 12 62 2 1488 1520 1553 1587 2 + 14 62 2 1489 1521 1554 1588 2 + 16 62 2 1490 1522 1555 1589 2 + 18 62 2 1491 1523 1556 1590 2 + 20 62 2 1492 1524 1557 1591 2 + 22 62 2 1493 1525 1558 1592 2 + 24 62 2 1494 1526 1559 1593 2 + 26 62 2 1495 1527 1560 1594 2 + 28 62 2 1496 1528 1561 1595 2 + 30 62 2 1497 1529 1562 1596 2 + 32 62 2 1498 1530 1563 1597 2 + 34 62 2 1499 1531 1564 1598 2 + 36 62 2 1500 1532 1565 1599 2 + 38 62 2 1501 1533 1566 1600 2 + 40 62 2 1502 1534 1567 1601 2 + 42 62 2 1503 1535 1568 1602 2 + 44 62 2 1504 1536 1569 1603 2 + 46 62 2 1505 1537 1570 1604 2 + 48 62 2 1506 1538 1571 1605 2 + 50 62 2 1507 1539 1572 145 2 + 52 62 2 1508 1540 1573 0 2 + 54 62 2 1509 1541 1574 0 2 + 56 62 2 1510 1542 1575 149 2 + 61 62 1 0 0 1576 1607 2 + 62 62 2 0 1544 1577 1608 2 + 66 62 2 121 1545 1579 1610 2 + 68 62 2 1513 1546 1580 1611 2 + 0 64 2 1514 1547 1581 1612 2 + 2 64 2 1515 1548 1582 1613 2 + 4 64 2 1516 1549 1583 1614 2 + 6 64 2 1517 1550 1584 1615 2 + 8 64 2 1518 1551 1585 1616 2 + 10 64 2 1519 1552 1586 1617 2 + 12 64 2 1520 1553 1587 1618 2 + 14 64 2 1521 1554 1588 1619 2 + 16 64 2 1522 1555 1589 1620 2 + 18 64 2 1523 1556 1590 1621 2 + 20 64 2 1524 1557 1591 1622 2 + 22 64 2 1525 1558 1592 1623 2 + 24 64 2 1526 1559 1593 1624 2 + 26 64 2 1527 1560 1594 1625 2 + 28 64 2 1528 1561 1595 1626 2 + 30 64 2 1529 1562 1596 1627 2 + 32 64 2 1530 1563 1597 1628 2 + 34 64 2 1531 1564 1598 1629 2 + 36 64 2 1532 1565 1599 1630 2 + 38 64 2 1533 1566 1600 1631 2 + 40 64 2 1534 1567 1601 1632 2 + 42 64 2 1535 1568 1602 1633 2 + 44 64 2 1536 1569 1603 1634 2 + 46 64 2 1537 1570 1604 1635 2 + 48 64 2 1538 1571 1605 1636 2 + 53 64 1 1540 1573 0 0 2 + 54 64 1 1541 1574 0 0 2 + 58 64 1 0 0 1606 1638 2 + 60 64 2 0 1576 1607 1639 2 + 62 64 2 1544 1577 1608 1640 2 + 64 64 2 135 1578 1609 1641 2 + 66 64 2 1545 1579 1610 1642 2 + 68 64 2 1546 1580 1611 1643 2 + 0 66 2 1547 1581 1612 1644 2 + 2 66 2 1548 1582 1613 1645 2 + 4 66 2 1549 1583 1614 1646 2 + 6 66 2 1550 1584 1615 1647 2 + 8 66 2 1551 1585 1616 1648 2 + 10 66 2 1552 1586 1617 1649 2 + 12 66 2 1553 1587 1618 1650 2 + 14 66 2 1554 1588 1619 1651 2 + 16 66 2 1555 1589 1620 1652 2 + 18 66 2 1556 1590 1621 1653 2 + 20 66 2 1557 1591 1622 1654 2 + 22 66 2 1558 1592 1623 1655 2 + 24 66 2 1559 1593 1624 1656 2 + 26 66 2 1560 1594 1625 1657 2 + 28 66 2 1561 1595 1626 1658 2 + 30 66 2 1562 1596 1627 1659 2 + 32 66 2 1563 1597 1628 1660 2 + 34 66 2 1564 1598 1629 1661 2 + 36 66 2 1565 1599 1630 1662 2 + 38 66 2 1566 1600 1631 1663 2 + 40 66 2 1567 1601 1632 1664 2 + 42 66 2 1568 1602 1633 1665 2 + 44 66 2 1569 1603 1634 1666 2 + 46 66 2 1570 1604 1635 1667 2 + 48 66 2 1571 1605 1636 1668 2 + 51 66 1 0 0 1637 1669 2 + 58 66 2 0 1606 1638 1673 2 + 60 66 2 1576 1607 1639 1674 2 + 62 66 2 1577 1608 1640 1675 2 + 64 66 2 1578 1609 1641 1676 2 + 66 66 2 1579 1610 1642 1677 2 + 68 66 2 1580 1611 1643 1678 2 + 0 68 2 1581 1612 1644 1679 2 + 2 68 2 1582 1613 1645 1680 2 + 4 68 2 1583 1614 1646 1681 2 + 6 68 2 1584 1615 1647 1682 2 + 8 68 2 1585 1616 1648 1683 2 + 10 68 2 1586 1617 1649 1684 2 + 12 68 2 1587 1618 1650 1685 2 + 14 68 2 1588 1619 1651 1686 2 + 16 68 2 1589 1620 1652 1687 2 + 18 68 2 1590 1621 1653 1688 2 + 20 68 2 1591 1622 1654 1689 2 + 22 68 2 1592 1623 1655 1690 2 + 24 68 2 1593 1624 1656 1691 2 + 26 68 2 1594 1625 1657 1692 2 + 28 68 2 1595 1626 1658 1693 2 + 30 68 2 1596 1627 1659 1694 2 + 32 68 2 1597 1628 1660 1695 2 + 34 68 2 1598 1629 1661 1696 2 + 36 68 2 1599 1630 1662 1697 2 + 38 68 2 1600 1631 1663 1698 2 + 40 68 2 1601 1632 1664 1699 2 + 42 68 2 1602 1633 1665 1700 2 + 44 68 2 1603 1634 1666 1701 2 + 46 68 2 1604 1635 1667 1702 2 + 48 68 2 1605 1636 1668 1703 2 + 50 68 2 0 1637 1669 1704 2 + 54 68 2 -1 -1 1671 1706 2 + 56 68 1 0 0 1672 1707 2 + 58 68 2 1606 1638 1673 1708 2 + 60 68 2 1607 1639 1674 1709 2 + 62 68 2 1608 1640 1675 1710 2 + 64 68 2 1609 1641 1676 1711 2 + 66 68 2 1610 1642 1677 1712 2 + 68 68 2 1611 1643 1678 1713 2 + 0 70 2 1612 1644 1679 1714 2 + 2 70 2 1613 1645 1680 1715 2 + 4 70 2 1614 1646 1681 1716 2 + 6 70 2 1615 1647 1682 1717 2 + 8 70 2 1616 1648 1683 1718 2 + 10 70 2 1617 1649 1684 1719 2 + 12 70 2 1618 1650 1685 1720 2 + 14 70 2 1619 1651 1686 1721 2 + 16 70 2 1620 1652 1687 1722 2 + 18 70 2 1621 1653 1688 1723 2 + 20 70 2 1622 1654 1689 1724 2 + 22 70 2 1623 1655 1690 1725 2 + 24 70 2 1624 1656 1691 1726 2 + 26 70 2 1625 1657 1692 1727 2 + 28 70 2 1626 1658 1693 1728 2 + 30 70 2 1627 1659 1694 1729 2 + 32 70 2 1628 1660 1695 1730 2 + 34 70 2 1629 1661 1696 1731 2 + 36 70 2 1630 1662 1697 1732 2 + 38 70 2 1631 1663 1698 1733 2 + 40 70 2 1632 1664 1699 1734 2 + 42 70 2 1633 1665 1700 1735 2 + 44 70 2 1634 1666 1701 1736 2 + 46 70 2 1635 1667 1702 1737 2 + 48 70 2 1636 1668 1703 1738 2 + 50 70 2 1637 1669 1704 1739 2 + 52 70 2 153 1670 1705 1740 2 + 54 70 2 -1 1671 1706 1741 2 + 56 70 2 0 1672 1707 1742 2 + 58 70 2 1638 1673 1708 1743 2 + 60 70 2 1639 1674 1709 1744 2 + 62 70 2 1640 1675 1710 1745 2 + 64 70 2 1641 1676 1711 1746 2 + 66 70 2 1642 1677 1712 1747 2 + 68 70 2 1643 1678 1713 1748 2 + 0 72 2 1644 1679 1714 1750 2 + 2 72 2 1645 1680 1715 1751 2 + 4 72 2 1646 1681 1716 1752 2 + 6 72 2 1647 1682 1717 1753 2 + 8 72 2 1648 1683 1718 1754 2 + 10 72 2 1649 1684 1719 1755 2 + 12 72 2 1650 1685 1720 1756 2 + 14 72 2 1651 1686 1721 1757 2 + 16 72 2 1652 1687 1722 1758 2 + 18 72 2 1653 1688 1723 1759 2 + 20 72 2 1654 1689 1724 1760 2 + 22 72 2 1655 1690 1725 1761 2 + 24 72 2 1656 1691 1726 1762 2 + 26 72 2 1657 1692 1727 1763 2 + 28 72 2 1658 1693 1728 1764 2 + 30 72 2 1659 1694 1729 1765 2 + 32 72 2 1660 1695 1730 1766 2 + 34 72 2 1661 1696 1731 1767 2 + 36 72 2 1662 1697 1732 1768 2 + 38 72 2 1663 1698 1733 1769 2 + 40 72 2 1664 1699 1734 1770 2 + 42 72 2 1665 1700 1735 1771 2 + 44 72 2 1666 1701 1736 1772 2 + 46 72 2 1667 1702 1737 1773 2 + 48 72 2 1668 1703 1738 1774 2 + 50 72 2 1669 1704 1739 1775 2 + 52 72 2 1670 1705 1740 1776 2 + 54 72 2 1671 1706 1741 1777 2 + 56 72 2 1672 1707 1742 1778 2 + 58 72 2 1673 1708 1743 1779 2 + 60 72 2 1674 1709 1744 1780 2 + 62 72 2 1675 1710 1745 1781 2 + 64 72 2 1676 1711 1746 1782 2 + 66 72 2 1677 1712 1747 1783 2 + 68 72 2 1678 1713 1748 1784 2 + 71 72 1 0 0 1749 1785 2 + 0 74 2 1679 1714 1750 1787 2 + 2 74 2 1680 1715 1751 1788 2 + 4 74 2 1681 1716 1752 1789 2 + 6 74 2 1682 1717 1753 1790 2 + 8 74 2 1683 1718 1754 1791 2 + 10 74 2 1684 1719 1755 1792 2 + 12 74 2 1685 1720 1756 1793 2 + 14 74 2 1686 1721 1757 1794 2 + 16 74 2 1687 1722 1758 1795 2 + 18 74 2 1688 1723 1759 1796 2 + 20 74 2 1689 1724 1760 1797 2 + 22 74 2 1690 1725 1761 1798 2 + 24 74 2 1691 1726 1762 1799 2 + 26 74 2 1692 1727 1763 1800 2 + 28 74 2 1693 1728 1764 1801 2 + 30 74 2 1694 1729 1765 1802 2 + 32 74 2 1695 1730 1766 1803 2 + 34 74 2 1696 1731 1767 1804 2 + 36 74 2 1697 1732 1768 1805 2 + 38 74 2 1698 1733 1769 1806 2 + 40 74 2 1699 1734 1770 1807 2 + 42 74 2 1700 1735 1771 1808 2 + 44 74 2 1701 1736 1772 1809 2 + 46 74 2 1702 1737 1773 1810 2 + 48 74 2 1703 1738 1774 1811 2 + 50 74 2 1704 1739 1775 1812 2 + 52 74 2 1705 1740 1776 1813 2 + 54 74 2 1706 1741 1777 1814 2 + 56 74 2 1707 1742 1778 1815 2 + 58 74 2 1708 1743 1779 1816 2 + 60 74 2 1709 1744 1780 1817 2 + 62 74 2 1710 1745 1781 1818 2 + 64 74 2 1711 1746 1782 1819 2 + 66 74 2 1712 1747 1783 1820 2 + 68 74 2 1713 1748 1784 1821 2 + 70 74 2 0 1749 1785 1822 2 + 73 74 1 0 0 1786 0 2 + 0 76 2 1714 1750 1787 1826 2 + 2 76 2 1715 1751 1788 1827 2 + 4 76 2 1716 1752 1789 1828 2 + 6 76 2 1717 1753 1790 1829 2 + 8 76 2 1718 1754 1791 1830 2 + 10 76 2 1719 1755 1792 1831 2 + 12 76 2 1720 1756 1793 1832 2 + 14 76 2 1721 1757 1794 1833 2 + 16 76 2 1722 1758 1795 1834 2 + 18 76 2 1723 1759 1796 1835 2 + 20 76 2 1724 1760 1797 1836 2 + 22 76 2 1725 1761 1798 1837 2 + 24 76 2 1726 1762 1799 1838 2 + 26 76 2 1727 1763 1800 1839 2 + 28 76 2 1728 1764 1801 1840 2 + 30 76 2 1729 1765 1802 1841 2 + 32 76 2 1730 1766 1803 1842 2 + 34 76 2 1731 1767 1804 1843 2 + 36 76 2 1732 1768 1805 1844 2 + 38 76 2 1733 1769 1806 1845 2 + 40 76 2 1734 1770 1807 1846 2 + 42 76 2 1735 1771 1808 1847 2 + 44 76 2 1736 1772 1809 1848 2 + 46 76 2 1737 1773 1810 1849 2 + 48 76 2 1738 1774 1811 1850 2 + 50 76 2 1739 1775 1812 1851 2 + 52 76 2 1740 1776 1813 1852 2 + 54 76 2 1741 1777 1814 1853 2 + 56 76 2 1742 1778 1815 1854 2 + 58 76 2 1743 1779 1816 1855 2 + 60 76 2 1744 1780 1817 1856 2 + 62 76 2 1745 1781 1818 1857 2 + 64 76 2 1746 1782 1819 1858 2 + 66 76 2 1747 1783 1820 1859 2 + 68 76 2 1748 1784 1821 1860 2 + 70 76 2 1749 1785 1822 1861 2 + 73 76 1 0 1786 0 0 2 + 75 76 1 0 0 1823 1863 2 + 77 76 1 0 0 1824 1864 2 + 78 76 2 -1 -1 1825 1865 2 + 0 78 2 1750 1787 1826 1866 2 + 2 78 2 1751 1788 1827 1867 2 + 4 78 2 1752 1789 1828 1868 2 + 6 78 2 1753 1790 1829 1869 2 + 8 78 2 1754 1791 1830 1870 2 + 10 78 2 1755 1792 1831 1871 2 + 12 78 2 1756 1793 1832 1872 2 + 14 78 2 1757 1794 1833 1873 2 + 16 78 2 1758 1795 1834 1874 2 + 18 78 2 1759 1796 1835 1875 2 + 20 78 2 1760 1797 1836 1876 2 + 22 78 2 1761 1798 1837 1877 2 + 24 78 2 1762 1799 1838 1878 2 + 26 78 2 1763 1800 1839 1879 2 + 28 78 2 1764 1801 1840 1880 2 + 30 78 2 1765 1802 1841 1881 2 + 32 78 2 1766 1803 1842 1882 2 + 34 78 2 1767 1804 1843 1883 2 + 36 78 2 1768 1805 1844 1884 2 + 38 78 2 1769 1806 1845 1885 2 + 40 78 2 1770 1807 1846 1886 2 + 42 78 2 1771 1808 1847 1887 2 + 44 78 2 1772 1809 1848 1888 2 + 46 78 2 1773 1810 1849 1889 2 + 48 78 2 1774 1811 1850 1890 2 + 50 78 2 1775 1812 1851 1891 2 + 52 78 2 1776 1813 1852 1892 2 + 54 78 2 1777 1814 1853 1893 2 + 56 78 2 1778 1815 1854 1894 2 + 58 78 2 1779 1816 1855 1895 2 + 60 78 2 1780 1817 1856 1896 2 + 62 78 2 1781 1818 1857 1897 2 + 64 78 2 1782 1819 1858 1898 2 + 66 78 2 1783 1820 1859 1899 2 + 68 78 2 1784 1821 1860 1900 2 + 70 78 2 1785 1822 1861 1901 2 + 74 78 2 0 1823 1863 1903 2 + 76 78 2 0 1824 1864 1904 2 + 78 78 2 -1 1825 1865 1905 2 + 0 80 2 1787 1826 1866 1909 2 + 2 80 2 1788 1827 1867 1910 2 + 4 80 2 1789 1828 1868 1911 2 + 6 80 2 1790 1829 1869 1912 2 + 8 80 2 1791 1830 1870 1913 2 + 10 80 2 1792 1831 1871 1914 2 + 12 80 2 1793 1832 1872 1915 2 + 14 80 2 1794 1833 1873 1916 2 + 16 80 2 1795 1834 1874 1917 2 + 18 80 2 1796 1835 1875 1918 2 + 20 80 2 1797 1836 1876 1919 2 + 22 80 2 1798 1837 1877 1920 2 + 24 80 2 1799 1838 1878 1921 2 + 26 80 2 1800 1839 1879 1922 2 + 28 80 2 1801 1840 1880 1923 2 + 30 80 2 1802 1841 1881 1924 2 + 32 80 2 1803 1842 1882 1925 2 + 34 80 2 1804 1843 1883 1926 2 + 36 80 2 1805 1844 1884 1927 2 + 38 80 2 1806 1845 1885 1928 2 + 40 80 2 1807 1846 1886 1929 2 + 42 80 2 1808 1847 1887 1930 2 + 44 80 2 1809 1848 1888 1931 2 + 46 80 2 1810 1849 1889 1932 2 + 48 80 2 1811 1850 1890 1933 2 + 50 80 2 1812 1851 1891 1934 2 + 52 80 2 1813 1852 1892 1935 2 + 54 80 2 1814 1853 1893 1936 2 + 56 80 2 1815 1854 1894 1937 2 + 58 80 2 1816 1855 1895 1938 2 + 60 80 2 1817 1856 1896 1939 2 + 62 80 2 1818 1857 1897 1940 2 + 64 80 2 1819 1858 1898 1941 2 + 66 80 2 1820 1859 1899 1942 2 + 68 80 2 1821 1860 1900 1943 2 + 70 80 2 1822 1861 1901 1944 2 + 72 80 2 168 1862 1902 1945 2 + 74 80 2 1823 1863 1903 1946 2 + 76 80 2 1824 1864 1904 1947 2 + 78 80 2 1825 1865 1905 1948 2 + 84 80 2 -1 -1 1907 1951 2 + 86 80 2 -1 -1 1908 1952 2 + 0 82 2 1826 1866 1909 1954 2 + 2 82 2 1827 1867 1910 1955 2 + 4 82 2 1828 1868 1911 1956 2 + 6 82 2 1829 1869 1912 1957 2 + 8 82 2 1830 1870 1913 1958 2 + 10 82 2 1831 1871 1914 1959 2 + 12 82 2 1832 1872 1915 1960 2 + 14 82 2 1833 1873 1916 1961 2 + 16 82 2 1834 1874 1917 1962 2 + 18 82 2 1835 1875 1918 1963 2 + 20 82 2 1836 1876 1919 1964 2 + 22 82 2 1837 1877 1920 1965 2 + 24 82 2 1838 1878 1921 1966 2 + 26 82 2 1839 1879 1922 1967 2 + 28 82 2 1840 1880 1923 1968 2 + 30 82 2 1841 1881 1924 1969 2 + 32 82 2 1842 1882 1925 1970 2 + 34 82 2 1843 1883 1926 1971 2 + 36 82 2 1844 1884 1927 1972 2 + 38 82 2 1845 1885 1928 1973 2 + 40 82 2 1846 1886 1929 1974 2 + 42 82 2 1847 1887 1930 1975 2 + 44 82 2 1848 1888 1931 1976 2 + 46 82 2 1849 1889 1932 1977 2 + 48 82 2 1850 1890 1933 1978 2 + 50 82 2 1851 1891 1934 1979 2 + 52 82 2 1852 1892 1935 1980 2 + 54 82 2 1853 1893 1936 1981 2 + 56 82 2 1854 1894 1937 1982 2 + 58 82 2 1855 1895 1938 1983 2 + 60 82 2 1856 1896 1939 1984 2 + 62 82 2 1857 1897 1940 1985 2 + 64 82 2 1858 1898 1941 1986 2 + 66 82 2 1859 1899 1942 1987 2 + 68 82 2 1860 1900 1943 1988 2 + 70 82 2 1861 1901 1944 1989 2 + 72 82 2 1862 1902 1945 1990 2 + 74 82 2 1863 1903 1946 1991 2 + 76 82 2 1864 1904 1947 1992 2 + 78 82 2 1865 1905 1948 1993 2 + 80 82 2 171 1906 1949 1994 2 + 84 82 2 -1 1907 1951 1996 2 + 86 82 2 -1 1908 1952 1997 2 + 89 82 1 0 0 1953 1998 2 + 0 84 2 1866 1909 1954 2006 2 + 2 84 2 1867 1910 1955 2007 2 + 4 84 2 1868 1911 1956 2008 2 + 6 84 2 1869 1912 1957 2009 2 + 8 84 2 1870 1913 1958 2010 2 + 10 84 2 1871 1914 1959 2011 2 + 12 84 2 1872 1915 1960 2012 2 + 14 84 2 1873 1916 1961 2013 2 + 16 84 2 1874 1917 1962 2014 2 + 18 84 2 1875 1918 1963 2015 2 + 20 84 2 1876 1919 1964 2016 2 + 22 84 2 1877 1920 1965 2017 2 + 24 84 2 1878 1921 1966 2018 2 + 26 84 2 1879 1922 1967 2019 2 + 28 84 2 1880 1923 1968 2020 2 + 30 84 2 1881 1924 1969 2021 2 + 32 84 2 1882 1925 1970 2022 2 + 34 84 2 1883 1926 1971 2023 2 + 36 84 2 1884 1927 1972 2024 2 + 38 84 2 1885 1928 1973 2025 2 + 40 84 2 1886 1929 1974 2026 2 + 42 84 2 1887 1930 1975 2027 2 + 44 84 2 1888 1931 1976 2028 2 + 46 84 2 1889 1932 1977 2029 2 + 48 84 2 1890 1933 1978 2030 2 + 50 84 2 1891 1934 1979 2031 2 + 52 84 2 1892 1935 1980 2032 2 + 54 84 2 1893 1936 1981 2033 2 + 56 84 2 1894 1937 1982 2034 2 + 58 84 2 1895 1938 1983 2035 2 + 60 84 2 1896 1939 1984 2036 2 + 62 84 2 1897 1940 1985 2037 2 + 64 84 2 1898 1941 1986 2038 2 + 66 84 2 1899 1942 1987 2039 2 + 68 84 2 1900 1943 1988 2040 2 + 70 84 2 1901 1944 1989 2041 2 + 72 84 2 1902 1945 1990 2042 2 + 74 84 2 1903 1946 1991 2043 2 + 76 84 2 1904 1947 1992 2044 2 + 78 84 2 1905 1948 1993 2045 2 + 80 84 2 1906 1949 1994 2046 2 + 82 84 2 174 1950 1995 2047 2 + 84 84 2 1907 1951 1996 2048 2 + 86 84 2 1908 1952 1997 2049 2 + 88 84 2 0 1953 1998 2050 2 + 93 84 1 0 0 2000 2052 2 + 94 84 1 0 0 2001 2053 2 + 101 84 1 0 0 2004 2056 2 + 102 84 2 -1 -1 2005 2057 2 + 0 86 2 1909 1954 2006 2058 2 + 2 86 2 1910 1955 2007 2059 2 + 4 86 2 1911 1956 2008 2060 2 + 6 86 2 1912 1957 2009 2061 2 + 8 86 2 1913 1958 2010 2062 2 + 10 86 2 1914 1959 2011 2063 2 + 12 86 2 1915 1960 2012 2064 2 + 14 86 2 1916 1961 2013 2065 2 + 16 86 2 1917 1962 2014 2066 2 + 18 86 2 1918 1963 2015 2067 2 + 20 86 2 1919 1964 2016 2068 2 + 22 86 2 1920 1965 2017 2069 2 + 24 86 2 1921 1966 2018 2070 2 + 26 86 2 1922 1967 2019 2071 2 + 28 86 2 1923 1968 2020 2072 2 + 30 86 2 1924 1969 2021 2073 2 + 32 86 2 1925 1970 2022 2074 2 + 34 86 2 1926 1971 2023 2075 2 + 36 86 2 1927 1972 2024 2076 2 + 38 86 2 1928 1973 2025 2077 2 + 40 86 2 1929 1974 2026 2078 2 + 42 86 2 1930 1975 2027 2079 2 + 44 86 2 1931 1976 2028 2080 2 + 46 86 2 1932 1977 2029 2081 2 + 48 86 2 1933 1978 2030 2082 2 + 50 86 2 1934 1979 2031 2083 2 + 52 86 2 1935 1980 2032 2084 2 + 54 86 2 1936 1981 2033 2085 2 + 56 86 2 1937 1982 2034 2086 2 + 58 86 2 1938 1983 2035 2087 2 + 60 86 2 1939 1984 2036 2088 2 + 62 86 2 1940 1985 2037 2089 2 + 64 86 2 1941 1986 2038 2090 2 + 66 86 2 1942 1987 2039 2091 2 + 68 86 2 1943 1988 2040 2092 2 + 70 86 2 1944 1989 2041 2093 2 + 72 86 2 1945 1990 2042 2094 2 + 74 86 2 1946 1991 2043 2095 2 + 76 86 2 1947 1992 2044 2096 2 + 78 86 2 1948 1993 2045 2097 2 + 80 86 2 1949 1994 2046 2098 2 + 82 86 2 1950 1995 2047 2099 2 + 84 86 2 1951 1996 2048 2100 2 + 86 86 2 1952 1997 2049 2101 2 + 88 86 2 1953 1998 2050 2102 2 + 90 86 2 177 1999 2051 2103 2 + 92 86 2 0 2000 2052 2104 2 + 94 86 2 0 2001 2053 2105 2 + 96 86 2 181 2002 2054 2106 2 + 98 86 2 184 2003 2055 2107 2 + 100 86 2 0 2004 2056 2108 2 + 102 86 2 -1 2005 2057 2109 2 + 0 88 2 1954 2006 2058 2110 2 + 2 88 2 1955 2007 2059 2111 2 + 4 88 2 1956 2008 2060 2112 2 + 6 88 2 1957 2009 2061 2113 2 + 8 88 2 1958 2010 2062 2114 2 + 10 88 2 1959 2011 2063 2115 2 + 12 88 2 1960 2012 2064 2116 2 + 14 88 2 1961 2013 2065 2117 2 + 16 88 2 1962 2014 2066 2118 2 + 18 88 2 1963 2015 2067 2119 2 + 20 88 2 1964 2016 2068 2120 2 + 22 88 2 1965 2017 2069 2121 2 + 24 88 2 1966 2018 2070 2122 2 + 26 88 2 1967 2019 2071 2123 2 + 28 88 2 1968 2020 2072 2124 2 + 30 88 2 1969 2021 2073 2125 2 + 32 88 2 1970 2022 2074 2126 2 + 34 88 2 1971 2023 2075 2127 2 + 36 88 2 1972 2024 2076 2128 2 + 38 88 2 1973 2025 2077 2129 2 + 40 88 2 1974 2026 2078 2130 2 + 42 88 2 1975 2027 2079 2131 2 + 44 88 2 1976 2028 2080 2132 2 + 46 88 2 1977 2029 2081 2133 2 + 48 88 2 1978 2030 2082 2134 2 + 50 88 2 1979 2031 2083 2135 2 + 52 88 2 1980 2032 2084 2136 2 + 54 88 2 1981 2033 2085 2137 2 + 56 88 2 1982 2034 2086 2138 2 + 58 88 2 1983 2035 2087 2139 2 + 60 88 2 1984 2036 2088 2140 2 + 62 88 2 1985 2037 2089 2141 2 + 64 88 2 1986 2038 2090 2142 2 + 66 88 2 1987 2039 2091 2143 2 + 68 88 2 1988 2040 2092 2144 2 + 70 88 2 1989 2041 2093 2145 2 + 72 88 2 1990 2042 2094 2146 2 + 74 88 2 1991 2043 2095 2147 2 + 76 88 2 1992 2044 2096 2148 2 + 78 88 2 1993 2045 2097 2149 2 + 80 88 2 1994 2046 2098 2150 2 + 82 88 2 1995 2047 2099 2151 2 + 84 88 2 1996 2048 2100 2152 2 + 86 88 2 1997 2049 2101 2153 2 + 88 88 2 1998 2050 2102 2154 2 + 90 88 2 1999 2051 2103 2155 2 + 92 88 2 2000 2052 2104 2156 2 + 94 88 2 2001 2053 2105 2157 2 + 96 88 2 2002 2054 2106 2158 2 + 98 88 2 2003 2055 2107 2159 2 + 100 88 2 2004 2056 2108 2160 2 + 102 88 2 2005 2057 2109 2161 2 + 0 90 2 2006 2058 2110 2162 2 + 2 90 2 2007 2059 2111 2163 2 + 4 90 2 2008 2060 2112 2164 2 + 6 90 2 2009 2061 2113 2165 2 + 8 90 2 2010 2062 2114 2166 2 + 10 90 2 2011 2063 2115 2167 2 + 12 90 2 2012 2064 2116 2168 2 + 14 90 2 2013 2065 2117 2169 2 + 16 90 2 2014 2066 2118 2170 2 + 18 90 2 2015 2067 2119 2171 2 + 20 90 2 2016 2068 2120 2172 2 + 22 90 2 2017 2069 2121 2173 2 + 24 90 2 2018 2070 2122 2174 2 + 26 90 2 2019 2071 2123 2175 2 + 28 90 2 2020 2072 2124 2176 2 + 30 90 2 2021 2073 2125 2177 2 + 32 90 2 2022 2074 2126 2178 2 + 34 90 2 2023 2075 2127 2179 2 + 36 90 2 2024 2076 2128 2180 2 + 38 90 2 2025 2077 2129 2181 2 + 40 90 2 2026 2078 2130 2182 2 + 42 90 2 2027 2079 2131 2183 2 + 44 90 2 2028 2080 2132 2184 2 + 46 90 2 2029 2081 2133 2185 2 + 48 90 2 2030 2082 2134 2186 2 + 50 90 2 2031 2083 2135 2187 2 + 52 90 2 2032 2084 2136 2188 2 + 54 90 2 2033 2085 2137 2189 2 + 56 90 2 2034 2086 2138 2190 2 + 58 90 2 2035 2087 2139 2191 2 + 60 90 2 2036 2088 2140 2192 2 + 62 90 2 2037 2089 2141 2193 2 + 64 90 2 2038 2090 2142 2194 2 + 66 90 2 2039 2091 2143 2195 2 + 68 90 2 2040 2092 2144 2196 2 + 70 90 2 2041 2093 2145 2197 2 + 72 90 2 2042 2094 2146 2198 2 + 74 90 2 2043 2095 2147 2199 2 + 76 90 2 2044 2096 2148 2200 2 + 78 90 2 2045 2097 2149 2201 2 + 80 90 2 2046 2098 2150 2202 2 + 82 90 2 2047 2099 2151 2203 2 + 84 90 2 2048 2100 2152 2204 2 + 86 90 2 2049 2101 2153 2205 2 + 88 90 2 2050 2102 2154 2206 2 + 90 90 2 2051 2103 2155 2207 2 + 92 90 2 2052 2104 2156 2208 2 + 94 90 2 2053 2105 2157 2209 2 + 96 90 2 2054 2106 2158 2210 2 + 98 90 2 2055 2107 2159 2211 2 + 100 90 2 2056 2108 2160 2212 2 + 102 90 2 2057 2109 2161 2213 2 + 0 92 2 2058 2110 2162 2214 2 + 2 92 2 2059 2111 2163 2215 2 + 4 92 2 2060 2112 2164 2216 2 + 6 92 2 2061 2113 2165 2217 2 + 8 92 2 2062 2114 2166 2218 2 + 10 92 2 2063 2115 2167 2219 2 + 12 92 2 2064 2116 2168 2220 2 + 14 92 2 2065 2117 2169 2221 2 + 16 92 2 2066 2118 2170 2222 2 + 18 92 2 2067 2119 2171 2223 2 + 20 92 2 2068 2120 2172 2224 2 + 22 92 2 2069 2121 2173 2225 2 + 24 92 2 2070 2122 2174 2226 2 + 26 92 2 2071 2123 2175 2227 2 + 28 92 2 2072 2124 2176 2228 2 + 30 92 2 2073 2125 2177 2229 2 + 32 92 2 2074 2126 2178 2230 2 + 34 92 2 2075 2127 2179 2231 2 + 36 92 2 2076 2128 2180 2232 2 + 38 92 2 2077 2129 2181 2233 2 + 40 92 2 2078 2130 2182 2234 2 + 42 92 2 2079 2131 2183 2235 2 + 44 92 2 2080 2132 2184 2236 2 + 46 92 2 2081 2133 2185 2237 2 + 48 92 2 2082 2134 2186 2238 2 + 50 92 2 2083 2135 2187 2239 2 + 52 92 2 2084 2136 2188 2240 2 + 54 92 2 2085 2137 2189 2241 2 + 56 92 2 2086 2138 2190 2242 2 + 58 92 2 2087 2139 2191 2243 2 + 60 92 2 2088 2140 2192 2244 2 + 62 92 2 2089 2141 2193 2245 2 + 64 92 2 2090 2142 2194 2246 2 + 66 92 2 2091 2143 2195 2247 2 + 68 92 2 2092 2144 2196 2248 2 + 70 92 2 2093 2145 2197 2249 2 + 72 92 2 2094 2146 2198 2250 2 + 74 92 2 2095 2147 2199 2251 2 + 76 92 2 2096 2148 2200 2252 2 + 78 92 2 2097 2149 2201 2253 2 + 80 92 2 2098 2150 2202 2254 2 + 82 92 2 2099 2151 2203 2255 2 + 84 92 2 2100 2152 2204 2256 2 + 86 92 2 2101 2153 2205 2257 2 + 88 92 2 2102 2154 2206 2258 2 + 90 92 2 2103 2155 2207 2259 2 + 92 92 2 2104 2156 2208 2260 2 + 94 92 2 2105 2157 2209 2261 2 + 96 92 2 2106 2158 2210 2262 2 + 98 92 2 2107 2159 2211 2263 2 + 100 92 2 2108 2160 2212 2264 2 + 102 92 2 2109 2161 2213 2265 2 + 0 94 2 2110 2162 2214 2266 2 + 2 94 2 2111 2163 2215 2267 2 + 4 94 2 2112 2164 2216 2268 2 + 6 94 2 2113 2165 2217 2269 2 + 8 94 2 2114 2166 2218 2270 2 + 10 94 2 2115 2167 2219 2271 2 + 12 94 2 2116 2168 2220 2272 2 + 14 94 2 2117 2169 2221 2273 2 + 16 94 2 2118 2170 2222 2274 2 + 18 94 2 2119 2171 2223 2275 2 + 20 94 2 2120 2172 2224 2276 2 + 22 94 2 2121 2173 2225 2277 2 + 24 94 2 2122 2174 2226 2278 2 + 26 94 2 2123 2175 2227 2279 2 + 28 94 2 2124 2176 2228 2280 2 + 30 94 2 2125 2177 2229 2281 2 + 32 94 2 2126 2178 2230 2282 2 + 34 94 2 2127 2179 2231 2283 2 + 36 94 2 2128 2180 2232 2284 2 + 38 94 2 2129 2181 2233 2285 2 + 40 94 2 2130 2182 2234 2286 2 + 42 94 2 2131 2183 2235 2287 2 + 44 94 2 2132 2184 2236 2288 2 + 46 94 2 2133 2185 2237 2289 2 + 48 94 2 2134 2186 2238 2290 2 + 50 94 2 2135 2187 2239 2291 2 + 52 94 2 2136 2188 2240 2292 2 + 54 94 2 2137 2189 2241 2293 2 + 56 94 2 2138 2190 2242 2294 2 + 58 94 2 2139 2191 2243 2295 2 + 60 94 2 2140 2192 2244 2296 2 + 62 94 2 2141 2193 2245 2297 2 + 64 94 2 2142 2194 2246 2298 2 + 66 94 2 2143 2195 2247 2299 2 + 68 94 2 2144 2196 2248 2300 2 + 70 94 2 2145 2197 2249 2301 2 + 72 94 2 2146 2198 2250 2302 2 + 74 94 2 2147 2199 2251 2303 2 + 76 94 2 2148 2200 2252 2304 2 + 78 94 2 2149 2201 2253 2305 2 + 80 94 2 2150 2202 2254 2306 2 + 82 94 2 2151 2203 2255 2307 2 + 84 94 2 2152 2204 2256 2308 2 + 86 94 2 2153 2205 2257 2309 2 + 88 94 2 2154 2206 2258 2310 2 + 90 94 2 2155 2207 2259 2311 2 + 92 94 2 2156 2208 2260 2312 2 + 94 94 2 2157 2209 2261 2313 2 + 96 94 2 2158 2210 2262 2314 2 + 98 94 2 2159 2211 2263 2315 2 + 100 94 2 2160 2212 2264 2316 2 + 102 94 2 2161 2213 2265 2317 2 + 0 96 2 2162 2214 2266 2318 2 + 2 96 2 2163 2215 2267 2319 2 + 4 96 2 2164 2216 2268 2320 2 + 6 96 2 2165 2217 2269 2321 2 + 8 96 2 2166 2218 2270 2322 2 + 10 96 2 2167 2219 2271 2323 2 + 12 96 2 2168 2220 2272 2324 2 + 14 96 2 2169 2221 2273 2325 2 + 16 96 2 2170 2222 2274 2326 2 + 18 96 2 2171 2223 2275 2327 2 + 20 96 2 2172 2224 2276 2328 2 + 22 96 2 2173 2225 2277 2329 2 + 24 96 2 2174 2226 2278 2330 2 + 26 96 2 2175 2227 2279 2331 2 + 28 96 2 2176 2228 2280 2332 2 + 30 96 2 2177 2229 2281 2333 2 + 32 96 2 2178 2230 2282 2334 2 + 34 96 2 2179 2231 2283 2335 2 + 36 96 2 2180 2232 2284 2336 2 + 38 96 2 2181 2233 2285 2337 2 + 40 96 2 2182 2234 2286 2338 2 + 42 96 2 2183 2235 2287 2339 2 + 44 96 2 2184 2236 2288 2340 2 + 46 96 2 2185 2237 2289 2341 2 + 48 96 2 2186 2238 2290 2342 2 + 50 96 2 2187 2239 2291 2343 2 + 52 96 2 2188 2240 2292 2344 2 + 54 96 2 2189 2241 2293 2345 2 + 56 96 2 2190 2242 2294 2346 2 + 58 96 2 2191 2243 2295 2347 2 + 60 96 2 2192 2244 2296 2348 2 + 62 96 2 2193 2245 2297 2349 2 + 64 96 2 2194 2246 2298 2350 2 + 66 96 2 2195 2247 2299 2351 2 + 68 96 2 2196 2248 2300 2352 2 + 70 96 2 2197 2249 2301 2353 2 + 72 96 2 2198 2250 2302 2354 2 + 74 96 2 2199 2251 2303 2355 2 + 76 96 2 2200 2252 2304 2356 2 + 78 96 2 2201 2253 2305 2357 2 + 80 96 2 2202 2254 2306 2358 2 + 82 96 2 2203 2255 2307 2359 2 + 84 96 2 2204 2256 2308 2360 2 + 86 96 2 2205 2257 2309 2361 2 + 88 96 2 2206 2258 2310 2362 2 + 90 96 2 2207 2259 2311 2363 2 + 92 96 2 2208 2260 2312 2364 2 + 94 96 2 2209 2261 2313 2365 2 + 96 96 2 2210 2262 2314 2366 2 + 98 96 2 2211 2263 2315 2367 2 + 100 96 2 2212 2264 2316 2368 2 + 102 96 2 2213 2265 2317 2369 2 + 0 98 2 2214 2266 2318 2370 2 + 2 98 2 2215 2267 2319 2371 2 + 4 98 2 2216 2268 2320 2372 2 + 6 98 2 2217 2269 2321 2373 2 + 8 98 2 2218 2270 2322 2374 2 + 10 98 2 2219 2271 2323 2375 2 + 12 98 2 2220 2272 2324 2376 2 + 14 98 2 2221 2273 2325 2377 2 + 16 98 2 2222 2274 2326 2378 2 + 18 98 2 2223 2275 2327 2379 2 + 20 98 2 2224 2276 2328 2380 2 + 22 98 2 2225 2277 2329 2381 2 + 24 98 2 2226 2278 2330 2382 2 + 26 98 2 2227 2279 2331 2383 2 + 28 98 2 2228 2280 2332 2384 2 + 30 98 2 2229 2281 2333 2385 2 + 32 98 2 2230 2282 2334 2386 2 + 34 98 2 2231 2283 2335 2387 2 + 36 98 2 2232 2284 2336 2388 2 + 38 98 2 2233 2285 2337 2389 2 + 40 98 2 2234 2286 2338 2390 2 + 42 98 2 2235 2287 2339 2391 2 + 44 98 2 2236 2288 2340 2392 2 + 46 98 2 2237 2289 2341 2393 2 + 48 98 2 2238 2290 2342 2394 2 + 50 98 2 2239 2291 2343 2395 2 + 52 98 2 2240 2292 2344 2396 2 + 54 98 2 2241 2293 2345 2397 2 + 56 98 2 2242 2294 2346 2398 2 + 58 98 2 2243 2295 2347 2399 2 + 60 98 2 2244 2296 2348 2400 2 + 62 98 2 2245 2297 2349 2401 2 + 64 98 2 2246 2298 2350 2402 2 + 66 98 2 2247 2299 2351 2403 2 + 68 98 2 2248 2300 2352 2404 2 + 70 98 2 2249 2301 2353 2405 2 + 72 98 2 2250 2302 2354 2406 2 + 74 98 2 2251 2303 2355 2407 2 + 76 98 2 2252 2304 2356 2408 2 + 78 98 2 2253 2305 2357 2409 2 + 80 98 2 2254 2306 2358 2410 2 + 82 98 2 2255 2307 2359 2411 2 + 84 98 2 2256 2308 2360 2412 2 + 86 98 2 2257 2309 2361 2413 2 + 88 98 2 2258 2310 2362 2414 2 + 90 98 2 2259 2311 2363 2415 2 + 92 98 2 2260 2312 2364 2416 2 + 94 98 2 2261 2313 2365 2417 2 + 96 98 2 2262 2314 2366 2418 2 + 98 98 2 2263 2315 2367 2419 2 + 100 98 2 2264 2316 2368 2420 2 + 102 98 2 2265 2317 2369 2421 2 + 0 100 2 2266 2318 2370 2422 2 + 2 100 2 2267 2319 2371 2423 2 + 4 100 2 2268 2320 2372 2424 2 + 6 100 2 2269 2321 2373 2425 2 + 8 100 2 2270 2322 2374 2426 2 + 10 100 2 2271 2323 2375 2427 2 + 12 100 2 2272 2324 2376 2428 2 + 14 100 2 2273 2325 2377 2429 2 + 16 100 2 2274 2326 2378 2430 2 + 18 100 2 2275 2327 2379 2431 2 + 20 100 2 2276 2328 2380 2432 2 + 22 100 2 2277 2329 2381 2433 2 + 24 100 2 2278 2330 2382 2434 2 + 26 100 2 2279 2331 2383 2435 2 + 28 100 2 2280 2332 2384 2436 2 + 30 100 2 2281 2333 2385 2437 2 + 32 100 2 2282 2334 2386 2438 2 + 34 100 2 2283 2335 2387 2439 2 + 36 100 2 2284 2336 2388 2440 2 + 38 100 2 2285 2337 2389 2441 2 + 40 100 2 2286 2338 2390 2442 2 + 42 100 2 2287 2339 2391 2443 2 + 44 100 2 2288 2340 2392 2444 2 + 46 100 2 2289 2341 2393 2445 2 + 48 100 2 2290 2342 2394 2446 2 + 50 100 2 2291 2343 2395 2447 2 + 52 100 2 2292 2344 2396 2448 2 + 54 100 2 2293 2345 2397 2449 2 + 56 100 2 2294 2346 2398 2450 2 + 58 100 2 2295 2347 2399 2451 2 + 60 100 2 2296 2348 2400 2452 2 + 62 100 2 2297 2349 2401 2453 2 + 64 100 2 2298 2350 2402 2454 2 + 66 100 2 2299 2351 2403 2455 2 + 68 100 2 2300 2352 2404 2456 2 + 70 100 2 2301 2353 2405 2457 2 + 72 100 2 2302 2354 2406 2458 2 + 74 100 2 2303 2355 2407 2459 2 + 76 100 2 2304 2356 2408 2460 2 + 78 100 2 2305 2357 2409 2461 2 + 80 100 2 2306 2358 2410 2462 2 + 82 100 2 2307 2359 2411 2463 2 + 84 100 2 2308 2360 2412 2464 2 + 86 100 2 2309 2361 2413 2465 2 + 88 100 2 2310 2362 2414 2466 2 + 90 100 2 2311 2363 2415 2467 2 + 92 100 2 2312 2364 2416 2468 2 + 94 100 2 2313 2365 2417 2469 2 + 96 100 2 2314 2366 2418 2470 2 + 98 100 2 2315 2367 2419 2471 2 + 100 100 2 2316 2368 2420 2472 2 + 102 100 2 2317 2369 2421 2473 2 + 0 102 2 2318 2370 2422 2474 2 + 2 102 2 2319 2371 2423 2475 2 + 4 102 2 2320 2372 2424 2476 2 + 6 102 2 2321 2373 2425 2477 2 + 8 102 2 2322 2374 2426 2478 2 + 10 102 2 2323 2375 2427 2479 2 + 12 102 2 2324 2376 2428 2480 2 + 14 102 2 2325 2377 2429 2481 2 + 16 102 2 2326 2378 2430 2482 2 + 18 102 2 2327 2379 2431 2483 2 + 20 102 2 2328 2380 2432 2484 2 + 22 102 2 2329 2381 2433 2485 2 + 24 102 2 2330 2382 2434 2486 2 + 26 102 2 2331 2383 2435 2487 2 + 28 102 2 2332 2384 2436 2488 2 + 30 102 2 2333 2385 2437 2489 2 + 32 102 2 2334 2386 2438 2490 2 + 34 102 2 2335 2387 2439 2491 2 + 36 102 2 2336 2388 2440 2492 2 + 38 102 2 2337 2389 2441 2493 2 + 40 102 2 2338 2390 2442 2494 2 + 42 102 2 2339 2391 2443 2495 2 + 44 102 2 2340 2392 2444 2496 2 + 46 102 2 2341 2393 2445 2497 2 + 48 102 2 2342 2394 2446 2498 2 + 50 102 2 2343 2395 2447 2499 2 + 52 102 2 2344 2396 2448 2500 2 + 54 102 2 2345 2397 2449 2501 2 + 56 102 2 2346 2398 2450 2502 2 + 58 102 2 2347 2399 2451 2503 2 + 60 102 2 2348 2400 2452 2504 2 + 62 102 2 2349 2401 2453 2505 2 + 64 102 2 2350 2402 2454 2506 2 + 66 102 2 2351 2403 2455 2507 2 + 68 102 2 2352 2404 2456 2508 2 + 70 102 2 2353 2405 2457 2509 2 + 72 102 2 2354 2406 2458 2510 2 + 74 102 2 2355 2407 2459 2511 2 + 76 102 2 2356 2408 2460 2512 2 + 78 102 2 2357 2409 2461 2513 2 + 80 102 2 2358 2410 2462 2514 2 + 82 102 2 2359 2411 2463 2515 2 + 84 102 2 2360 2412 2464 2516 2 + 86 102 2 2361 2413 2465 2517 2 + 88 102 2 2362 2414 2466 2518 2 + 90 102 2 2363 2415 2467 2519 2 + 92 102 2 2364 2416 2468 2520 2 + 94 102 2 2365 2417 2469 2521 2 + 96 102 2 2366 2418 2470 2522 2 + 98 102 2 2367 2419 2471 2523 2 + 100 102 2 2368 2420 2472 2524 2 + 102 102 2 2369 2421 2473 2525 2 + 0 104 2 2370 2422 2474 2526 2 + 2 104 2 2371 2423 2475 2527 2 + 4 104 2 2372 2424 2476 2528 2 + 6 104 2 2373 2425 2477 2529 2 + 8 104 2 2374 2426 2478 2530 2 + 10 104 2 2375 2427 2479 2531 2 + 12 104 2 2376 2428 2480 2532 2 + 14 104 2 2377 2429 2481 2533 2 + 16 104 2 2378 2430 2482 2534 2 + 18 104 2 2379 2431 2483 2535 2 + 20 104 2 2380 2432 2484 2536 2 + 22 104 2 2381 2433 2485 2537 2 + 24 104 2 2382 2434 2486 2538 2 + 26 104 2 2383 2435 2487 2539 2 + 28 104 2 2384 2436 2488 2540 2 + 30 104 2 2385 2437 2489 2541 2 + 32 104 2 2386 2438 2490 2542 2 + 34 104 2 2387 2439 2491 2543 2 + 36 104 2 2388 2440 2492 2544 2 + 38 104 2 2389 2441 2493 2545 2 + 40 104 2 2390 2442 2494 2546 2 + 42 104 2 2391 2443 2495 2547 2 + 44 104 2 2392 2444 2496 2548 2 + 46 104 2 2393 2445 2497 2549 2 + 48 104 2 2394 2446 2498 2550 2 + 50 104 2 2395 2447 2499 2551 2 + 52 104 2 2396 2448 2500 2552 2 + 54 104 2 2397 2449 2501 2553 2 + 56 104 2 2398 2450 2502 2554 2 + 58 104 2 2399 2451 2503 2555 2 + 60 104 2 2400 2452 2504 2556 2 + 62 104 2 2401 2453 2505 2557 2 + 64 104 2 2402 2454 2506 2558 2 + 66 104 2 2403 2455 2507 2559 2 + 68 104 2 2404 2456 2508 2560 2 + 70 104 2 2405 2457 2509 2561 2 + 72 104 2 2406 2458 2510 2562 2 + 74 104 2 2407 2459 2511 2563 2 + 76 104 2 2408 2460 2512 2564 2 + 78 104 2 2409 2461 2513 2565 2 + 80 104 2 2410 2462 2514 2566 2 + 82 104 2 2411 2463 2515 2567 2 + 84 104 2 2412 2464 2516 2568 2 + 86 104 2 2413 2465 2517 2569 2 + 88 104 2 2414 2466 2518 2570 2 + 90 104 2 2415 2467 2519 2571 2 + 92 104 2 2416 2468 2520 2572 2 + 94 104 2 2417 2469 2521 2573 2 + 96 104 2 2418 2470 2522 2574 2 + 98 104 2 2419 2471 2523 2575 2 + 100 104 2 2420 2472 2524 2576 2 + 102 104 2 2421 2473 2525 2577 2 + 0 106 2 2422 2474 2526 2578 2 + 2 106 2 2423 2475 2527 2579 2 + 4 106 2 2424 2476 2528 2580 2 + 6 106 2 2425 2477 2529 2581 2 + 8 106 2 2426 2478 2530 2582 2 + 10 106 2 2427 2479 2531 2583 2 + 12 106 2 2428 2480 2532 2584 2 + 14 106 2 2429 2481 2533 2585 2 + 16 106 2 2430 2482 2534 2586 2 + 18 106 2 2431 2483 2535 2587 2 + 20 106 2 2432 2484 2536 2588 2 + 22 106 2 2433 2485 2537 2589 2 + 24 106 2 2434 2486 2538 2590 2 + 26 106 2 2435 2487 2539 2591 2 + 28 106 2 2436 2488 2540 2592 2 + 30 106 2 2437 2489 2541 2593 2 + 32 106 2 2438 2490 2542 2594 2 + 34 106 2 2439 2491 2543 2595 2 + 36 106 2 2440 2492 2544 2596 2 + 38 106 2 2441 2493 2545 2597 2 + 40 106 2 2442 2494 2546 2598 2 + 42 106 2 2443 2495 2547 2599 2 + 44 106 2 2444 2496 2548 2600 2 + 46 106 2 2445 2497 2549 2601 2 + 48 106 2 2446 2498 2550 2602 2 + 50 106 2 2447 2499 2551 2603 2 + 52 106 2 2448 2500 2552 2604 2 + 54 106 2 2449 2501 2553 2605 2 + 56 106 2 2450 2502 2554 2606 2 + 58 106 2 2451 2503 2555 2607 2 + 60 106 2 2452 2504 2556 2608 2 + 62 106 2 2453 2505 2557 2609 2 + 64 106 2 2454 2506 2558 2610 2 + 66 106 2 2455 2507 2559 2611 2 + 68 106 2 2456 2508 2560 2612 2 + 70 106 2 2457 2509 2561 2613 2 + 72 106 2 2458 2510 2562 2614 2 + 74 106 2 2459 2511 2563 2615 2 + 76 106 2 2460 2512 2564 2616 2 + 78 106 2 2461 2513 2565 2617 2 + 80 106 2 2462 2514 2566 2618 2 + 82 106 2 2463 2515 2567 2619 2 + 84 106 2 2464 2516 2568 2620 2 + 86 106 2 2465 2517 2569 2621 2 + 88 106 2 2466 2518 2570 2622 2 + 90 106 2 2467 2519 2571 2623 2 + 92 106 2 2468 2520 2572 2624 2 + 94 106 2 2469 2521 2573 2625 2 + 96 106 2 2470 2522 2574 2626 2 + 98 106 2 2471 2523 2575 2627 2 + 100 106 2 2472 2524 2576 2628 2 + 102 106 2 2473 2525 2577 2629 2 + 0 108 2 2474 2526 2578 2630 2 + 2 108 2 2475 2527 2579 2631 2 + 4 108 2 2476 2528 2580 2632 2 + 6 108 2 2477 2529 2581 2633 2 + 8 108 2 2478 2530 2582 2634 2 + 10 108 2 2479 2531 2583 2635 2 + 12 108 2 2480 2532 2584 2636 2 + 14 108 2 2481 2533 2585 2637 2 + 16 108 2 2482 2534 2586 2638 2 + 18 108 2 2483 2535 2587 2639 2 + 20 108 2 2484 2536 2588 2640 2 + 22 108 2 2485 2537 2589 2641 2 + 24 108 2 2486 2538 2590 2642 2 + 26 108 2 2487 2539 2591 2643 2 + 28 108 2 2488 2540 2592 2644 2 + 30 108 2 2489 2541 2593 2645 2 + 32 108 2 2490 2542 2594 2646 2 + 34 108 2 2491 2543 2595 2647 2 + 36 108 2 2492 2544 2596 2648 2 + 38 108 2 2493 2545 2597 2649 2 + 40 108 2 2494 2546 2598 2650 2 + 42 108 2 2495 2547 2599 2651 2 + 44 108 2 2496 2548 2600 2652 2 + 46 108 2 2497 2549 2601 2653 2 + 48 108 2 2498 2550 2602 2654 2 + 50 108 2 2499 2551 2603 2655 2 + 52 108 2 2500 2552 2604 2656 2 + 54 108 2 2501 2553 2605 2657 2 + 56 108 2 2502 2554 2606 2658 2 + 58 108 2 2503 2555 2607 2659 2 + 60 108 2 2504 2556 2608 2660 2 + 62 108 2 2505 2557 2609 2661 2 + 64 108 2 2506 2558 2610 2662 2 + 66 108 2 2507 2559 2611 2663 2 + 68 108 2 2508 2560 2612 2664 2 + 70 108 2 2509 2561 2613 2665 2 + 72 108 2 2510 2562 2614 2666 2 + 74 108 2 2511 2563 2615 2667 2 + 76 108 2 2512 2564 2616 2668 2 + 78 108 2 2513 2565 2617 2669 2 + 80 108 2 2514 2566 2618 2670 2 + 82 108 2 2515 2567 2619 2671 2 + 84 108 2 2516 2568 2620 2672 2 + 86 108 2 2517 2569 2621 2673 2 + 88 108 2 2518 2570 2622 2674 2 + 90 108 2 2519 2571 2623 2675 2 + 92 108 2 2520 2572 2624 2676 2 + 94 108 2 2521 2573 2625 2677 2 + 96 108 2 2522 2574 2626 2678 2 + 98 108 2 2523 2575 2627 2679 2 + 100 108 2 2524 2576 2628 2680 2 + 102 108 2 2525 2577 2629 2681 2 + 0 110 2 2526 2578 2630 2682 2 + 2 110 2 2527 2579 2631 2683 2 + 4 110 2 2528 2580 2632 2684 2 + 6 110 2 2529 2581 2633 2685 2 + 8 110 2 2530 2582 2634 2686 2 + 10 110 2 2531 2583 2635 2687 2 + 12 110 2 2532 2584 2636 2688 2 + 14 110 2 2533 2585 2637 2689 2 + 16 110 2 2534 2586 2638 2690 2 + 18 110 2 2535 2587 2639 2691 2 + 20 110 2 2536 2588 2640 2692 2 + 22 110 2 2537 2589 2641 2693 2 + 24 110 2 2538 2590 2642 2694 2 + 26 110 2 2539 2591 2643 2695 2 + 28 110 2 2540 2592 2644 2696 2 + 30 110 2 2541 2593 2645 2697 2 + 32 110 2 2542 2594 2646 2698 2 + 34 110 2 2543 2595 2647 2699 2 + 36 110 2 2544 2596 2648 2700 2 + 38 110 2 2545 2597 2649 2701 2 + 40 110 2 2546 2598 2650 2702 2 + 42 110 2 2547 2599 2651 2703 2 + 44 110 2 2548 2600 2652 2704 2 + 46 110 2 2549 2601 2653 2705 2 + 48 110 2 2550 2602 2654 2706 2 + 50 110 2 2551 2603 2655 2707 2 + 52 110 2 2552 2604 2656 2708 2 + 54 110 2 2553 2605 2657 2709 2 + 56 110 2 2554 2606 2658 2710 2 + 58 110 2 2555 2607 2659 2711 2 + 60 110 2 2556 2608 2660 2712 2 + 62 110 2 2557 2609 2661 2713 2 + 64 110 2 2558 2610 2662 2714 2 + 66 110 2 2559 2611 2663 2715 2 + 68 110 2 2560 2612 2664 2716 2 + 70 110 2 2561 2613 2665 2717 2 + 72 110 2 2562 2614 2666 2718 2 + 74 110 2 2563 2615 2667 2719 2 + 76 110 2 2564 2616 2668 2720 2 + 78 110 2 2565 2617 2669 2721 2 + 80 110 2 2566 2618 2670 2722 2 + 82 110 2 2567 2619 2671 2723 2 + 84 110 2 2568 2620 2672 2724 2 + 86 110 2 2569 2621 2673 2725 2 + 88 110 2 2570 2622 2674 2726 2 + 90 110 2 2571 2623 2675 2727 2 + 92 110 2 2572 2624 2676 2728 2 + 94 110 2 2573 2625 2677 2729 2 + 96 110 2 2574 2626 2678 2730 2 + 98 110 2 2575 2627 2679 2731 2 + 100 110 2 2576 2628 2680 2732 2 + 102 110 2 2577 2629 2681 2733 2 + 0 112 2 2578 2630 2682 2734 2 + 2 112 2 2579 2631 2683 2735 2 + 4 112 2 2580 2632 2684 2736 2 + 6 112 2 2581 2633 2685 2737 2 + 8 112 2 2582 2634 2686 2738 2 + 10 112 2 2583 2635 2687 2739 2 + 12 112 2 2584 2636 2688 2740 2 + 14 112 2 2585 2637 2689 2741 2 + 16 112 2 2586 2638 2690 2742 2 + 18 112 2 2587 2639 2691 2743 2 + 20 112 2 2588 2640 2692 2744 2 + 22 112 2 2589 2641 2693 2745 2 + 24 112 2 2590 2642 2694 2746 2 + 26 112 2 2591 2643 2695 2747 2 + 28 112 2 2592 2644 2696 2748 2 + 30 112 2 2593 2645 2697 2749 2 + 32 112 2 2594 2646 2698 2750 2 + 34 112 2 2595 2647 2699 2751 2 + 36 112 2 2596 2648 2700 2752 2 + 38 112 2 2597 2649 2701 2753 2 + 40 112 2 2598 2650 2702 2754 2 + 42 112 2 2599 2651 2703 2755 2 + 44 112 2 2600 2652 2704 2756 2 + 46 112 2 2601 2653 2705 2757 2 + 48 112 2 2602 2654 2706 2758 2 + 50 112 2 2603 2655 2707 2759 2 + 52 112 2 2604 2656 2708 2760 2 + 54 112 2 2605 2657 2709 2761 2 + 56 112 2 2606 2658 2710 2762 2 + 58 112 2 2607 2659 2711 2763 2 + 60 112 2 2608 2660 2712 2764 2 + 62 112 2 2609 2661 2713 2765 2 + 64 112 2 2610 2662 2714 2766 2 + 66 112 2 2611 2663 2715 2767 2 + 68 112 2 2612 2664 2716 2768 2 + 70 112 2 2613 2665 2717 2769 2 + 72 112 2 2614 2666 2718 2770 2 + 74 112 2 2615 2667 2719 2771 2 + 76 112 2 2616 2668 2720 2772 2 + 78 112 2 2617 2669 2721 2773 2 + 80 112 2 2618 2670 2722 2774 2 + 82 112 2 2619 2671 2723 2775 2 + 84 112 2 2620 2672 2724 2776 2 + 86 112 2 2621 2673 2725 2777 2 + 88 112 2 2622 2674 2726 2778 2 + 90 112 2 2623 2675 2727 2779 2 + 92 112 2 2624 2676 2728 2780 2 + 94 112 2 2625 2677 2729 2781 2 + 96 112 2 2626 2678 2730 2782 2 + 98 112 2 2627 2679 2731 2783 2 + 100 112 2 2628 2680 2732 2784 2 + 102 112 2 2629 2681 2733 2785 2 + 0 114 2 2630 2682 2734 2786 2 + 2 114 2 2631 2683 2735 2787 2 + 4 114 2 2632 2684 2736 2788 2 + 6 114 2 2633 2685 2737 2789 2 + 8 114 2 2634 2686 2738 2790 2 + 10 114 2 2635 2687 2739 2791 2 + 12 114 2 2636 2688 2740 2792 2 + 14 114 2 2637 2689 2741 2793 2 + 16 114 2 2638 2690 2742 2794 2 + 18 114 2 2639 2691 2743 2795 2 + 20 114 2 2640 2692 2744 2796 2 + 22 114 2 2641 2693 2745 2797 2 + 24 114 2 2642 2694 2746 2798 2 + 26 114 2 2643 2695 2747 2799 2 + 28 114 2 2644 2696 2748 2800 2 + 30 114 2 2645 2697 2749 2801 2 + 32 114 2 2646 2698 2750 2802 2 + 34 114 2 2647 2699 2751 2803 2 + 36 114 2 2648 2700 2752 2804 2 + 38 114 2 2649 2701 2753 2805 2 + 40 114 2 2650 2702 2754 2806 2 + 42 114 2 2651 2703 2755 2807 2 + 44 114 2 2652 2704 2756 2808 2 + 46 114 2 2653 2705 2757 2809 2 + 48 114 2 2654 2706 2758 2810 2 + 50 114 2 2655 2707 2759 2811 2 + 52 114 2 2656 2708 2760 2812 2 + 54 114 2 2657 2709 2761 2813 2 + 56 114 2 2658 2710 2762 2814 2 + 58 114 2 2659 2711 2763 2815 2 + 60 114 2 2660 2712 2764 2816 2 + 62 114 2 2661 2713 2765 2817 2 + 64 114 2 2662 2714 2766 2818 2 + 66 114 2 2663 2715 2767 2819 2 + 68 114 2 2664 2716 2768 2820 2 + 70 114 2 2665 2717 2769 2821 2 + 72 114 2 2666 2718 2770 2822 2 + 74 114 2 2667 2719 2771 2823 2 + 76 114 2 2668 2720 2772 2824 2 + 78 114 2 2669 2721 2773 2825 2 + 80 114 2 2670 2722 2774 2826 2 + 82 114 2 2671 2723 2775 2827 2 + 84 114 2 2672 2724 2776 2828 2 + 86 114 2 2673 2725 2777 2829 2 + 88 114 2 2674 2726 2778 2830 2 + 90 114 2 2675 2727 2779 2831 2 + 92 114 2 2676 2728 2780 2832 2 + 94 114 2 2677 2729 2781 2833 2 + 96 114 2 2678 2730 2782 2834 2 + 98 114 2 2679 2731 2783 2835 2 + 100 114 2 2680 2732 2784 2836 2 + 102 114 2 2681 2733 2785 2837 2 + 0 116 2 2682 2734 2786 2838 2 + 2 116 2 2683 2735 2787 2839 2 + 4 116 2 2684 2736 2788 2840 2 + 6 116 2 2685 2737 2789 2841 2 + 8 116 2 2686 2738 2790 2842 2 + 10 116 2 2687 2739 2791 2843 2 + 12 116 2 2688 2740 2792 2844 2 + 14 116 2 2689 2741 2793 2845 2 + 16 116 2 2690 2742 2794 2846 2 + 18 116 2 2691 2743 2795 2847 2 + 20 116 2 2692 2744 2796 2848 2 + 22 116 2 2693 2745 2797 2849 2 + 24 116 2 2694 2746 2798 2850 2 + 26 116 2 2695 2747 2799 2851 2 + 28 116 2 2696 2748 2800 2852 2 + 30 116 2 2697 2749 2801 2853 2 + 32 116 2 2698 2750 2802 2854 2 + 34 116 2 2699 2751 2803 2855 2 + 36 116 2 2700 2752 2804 2856 2 + 38 116 2 2701 2753 2805 2857 2 + 40 116 2 2702 2754 2806 2858 2 + 42 116 2 2703 2755 2807 2859 2 + 44 116 2 2704 2756 2808 2860 2 + 46 116 2 2705 2757 2809 2861 2 + 48 116 2 2706 2758 2810 2862 2 + 50 116 2 2707 2759 2811 2863 2 + 52 116 2 2708 2760 2812 2864 2 + 54 116 2 2709 2761 2813 2865 2 + 56 116 2 2710 2762 2814 2866 2 + 58 116 2 2711 2763 2815 2867 2 + 60 116 2 2712 2764 2816 2868 2 + 62 116 2 2713 2765 2817 2869 2 + 64 116 2 2714 2766 2818 2870 2 + 66 116 2 2715 2767 2819 2871 2 + 68 116 2 2716 2768 2820 2872 2 + 70 116 2 2717 2769 2821 2873 2 + 72 116 2 2718 2770 2822 2874 2 + 74 116 2 2719 2771 2823 2875 2 + 76 116 2 2720 2772 2824 2876 2 + 78 116 2 2721 2773 2825 2877 2 + 80 116 2 2722 2774 2826 2878 2 + 82 116 2 2723 2775 2827 2879 2 + 84 116 2 2724 2776 2828 2880 2 + 86 116 2 2725 2777 2829 2881 2 + 88 116 2 2726 2778 2830 2882 2 + 90 116 2 2727 2779 2831 2883 2 + 92 116 2 2728 2780 2832 2884 2 + 94 116 2 2729 2781 2833 2885 2 + 96 116 2 2730 2782 2834 2886 2 + 98 116 2 2731 2783 2835 2887 2 + 100 116 2 2732 2784 2836 2888 2 + 102 116 2 2733 2785 2837 2889 2 + 0 118 2 2734 2786 2838 -1 2 + 2 118 2 2735 2787 2839 -1 2 + 4 118 2 2736 2788 2840 -1 2 + 6 118 2 2737 2789 2841 -1 2 + 8 118 2 2738 2790 2842 -1 2 + 10 118 2 2739 2791 2843 -1 2 + 12 118 2 2740 2792 2844 -1 2 + 14 118 2 2741 2793 2845 -1 2 + 16 118 2 2742 2794 2846 -1 2 + 18 118 2 2743 2795 2847 -1 2 + 20 118 2 2744 2796 2848 -1 2 + 22 118 2 2745 2797 2849 -1 2 + 24 118 2 2746 2798 2850 -1 2 + 26 118 2 2747 2799 2851 -1 2 + 28 118 2 2748 2800 2852 -1 2 + 30 118 2 2749 2801 2853 -1 2 + 32 118 2 2750 2802 2854 -1 2 + 34 118 2 2751 2803 2855 -1 2 + 36 118 2 2752 2804 2856 -1 2 + 38 118 2 2753 2805 2857 -1 2 + 40 118 2 2754 2806 2858 -1 2 + 42 118 2 2755 2807 2859 -1 2 + 44 118 2 2756 2808 2860 -1 2 + 46 118 2 2757 2809 2861 -1 2 + 48 118 2 2758 2810 2862 -1 2 + 50 118 2 2759 2811 2863 -1 2 + 52 118 2 2760 2812 2864 -1 2 + 54 118 2 2761 2813 2865 -1 2 + 56 118 2 2762 2814 2866 -1 2 + 58 118 2 2763 2815 2867 -1 2 + 60 118 2 2764 2816 2868 -1 2 + 62 118 2 2765 2817 2869 -1 2 + 64 118 2 2766 2818 2870 -1 2 + 66 118 2 2767 2819 2871 -1 2 + 68 118 2 2768 2820 2872 -1 2 + 70 118 2 2769 2821 2873 -1 2 + 72 118 2 2770 2822 2874 -1 2 + 74 118 2 2771 2823 2875 -1 2 + 76 118 2 2772 2824 2876 -1 2 + 78 118 2 2773 2825 2877 -1 2 + 80 118 2 2774 2826 2878 -1 2 + 82 118 2 2775 2827 2879 -1 2 + 84 118 2 2776 2828 2880 -1 2 + 86 118 2 2777 2829 2881 -1 2 + 88 118 2 2778 2830 2882 -1 2 + 90 118 2 2779 2831 2883 -1 2 + 92 118 2 2780 2832 2884 -1 2 + 94 118 2 2781 2833 2885 -1 2 + 96 118 2 2782 2834 2886 -1 2 + 98 118 2 2783 2835 2887 -1 2 + 100 118 2 2784 2836 2888 -1 2 + 102 118 2 2785 2837 2889 -1 2 + 0 120 2 2786 2838 -1 -1 2 + 2 120 2 2787 2839 -1 -1 2 + 4 120 2 2788 2840 -1 -1 2 + 6 120 2 2789 2841 -1 -1 2 + 8 120 2 2790 2842 -1 -1 2 + 10 120 2 2791 2843 -1 -1 2 + 12 120 2 2792 2844 -1 -1 2 + 14 120 2 2793 2845 -1 -1 2 + 16 120 2 2794 2846 -1 -1 2 + 18 120 2 2795 2847 -1 -1 2 + 20 120 2 2796 2848 -1 -1 2 + 22 120 2 2797 2849 -1 -1 2 + 24 120 2 2798 2850 -1 -1 2 + 26 120 2 2799 2851 -1 -1 2 + 28 120 2 2800 2852 -1 -1 2 + 30 120 2 2801 2853 -1 -1 2 + 32 120 2 2802 2854 -1 -1 2 + 34 120 2 2803 2855 -1 -1 2 + 36 120 2 2804 2856 -1 -1 2 + 38 120 2 2805 2857 -1 -1 2 + 40 120 2 2806 2858 -1 -1 2 + 42 120 2 2807 2859 -1 -1 2 + 44 120 2 2808 2860 -1 -1 2 + 46 120 2 2809 2861 -1 -1 2 + 48 120 2 2810 2862 -1 -1 2 + 50 120 2 2811 2863 -1 -1 2 + 52 120 2 2812 2864 -1 -1 2 + 54 120 2 2813 2865 -1 -1 2 + 56 120 2 2814 2866 -1 -1 2 + 58 120 2 2815 2867 -1 -1 2 + 60 120 2 2816 2868 -1 -1 2 + 62 120 2 2817 2869 -1 -1 2 + 64 120 2 2818 2870 -1 -1 2 + 66 120 2 2819 2871 -1 -1 2 + 68 120 2 2820 2872 -1 -1 2 + 70 120 2 2821 2873 -1 -1 2 + 72 120 2 2822 2874 -1 -1 2 + 74 120 2 2823 2875 -1 -1 2 + 76 120 2 2824 2876 -1 -1 2 + 78 120 2 2825 2877 -1 -1 2 + 80 120 2 2826 2878 -1 -1 2 + 82 120 2 2827 2879 -1 -1 2 + 84 120 2 2828 2880 -1 -1 2 + 86 120 2 2829 2881 -1 -1 2 + 88 120 2 2830 2882 -1 -1 2 + 90 120 2 2831 2883 -1 -1 2 + 92 120 2 2832 2884 -1 -1 2 + 94 120 2 2833 2885 -1 -1 2 + 96 120 2 2834 2886 -1 -1 2 + 98 120 2 2835 2887 -1 -1 2 + 100 120 2 2836 2888 -1 -1 2 + 102 120 2 2837 2889 -1 -1 2 diff --git a/regtests/ww3_tp2.14/input/BrestObstrs.dat b/regtests/ww3_tp2.14/input/BrestObstrs.dat new file mode 100644 index 000000000..a70a0e2e9 --- /dev/null +++ b/regtests/ww3_tp2.14/input/BrestObstrs.dat @@ -0,0 +1,2890 @@ + 2889 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 diff --git a/regtests/ww3_tp2.14/input/BrestSMCels.dat b/regtests/ww3_tp2.14/input/BrestSMCels.dat new file mode 100644 index 000000000..f7ad83709 --- /dev/null +++ b/regtests/ww3_tp2.14/input/BrestSMCels.dat @@ -0,0 +1,2890 @@ + 2889 185 2704 + 92 12 1 1 7 + 93 12 1 1 7 + 94 12 1 1 7 + 95 12 1 1 7 + 96 12 1 1 11 + 99 12 1 1 8 + 100 12 1 1 10 + 101 12 1 1 10 + 102 12 1 1 10 + 103 12 1 1 10 + 92 16 1 1 14 + 92 17 1 1 13 + 92 18 1 1 11 + 92 19 1 1 7 + 92 20 1 1 7 + 90 22 1 1 15 + 90 23 1 1 10 + 91 22 1 1 7 + 90 24 1 1 7 + 88 26 1 1 10 + 86 28 1 1 10 + 74 30 1 1 20 + 74 31 1 1 24 + 75 30 1 1 20 + 76 30 1 1 21 + 77 30 1 1 21 + 78 30 1 1 20 + 79 30 1 1 13 + 62 32 1 1 17 + 63 32 1 1 16 + 67 33 1 1 16 + 68 33 1 1 42 + 69 32 1 1 25 + 69 33 1 1 36 + 72 32 1 1 23 + 72 33 1 1 36 + 73 33 1 1 31 + 74 35 1 1 40 + 75 35 1 1 37 + 76 35 1 1 34 + 77 35 1 1 33 + 78 35 1 1 28 + 79 35 1 1 28 + 84 37 1 1 26 + 85 37 1 1 27 + 86 37 1 1 23 + 95 37 1 1 10 + 96 38 1 1 8 + 96 39 1 1 10 + 96 40 1 1 11 + 96 41 1 1 9 + 82 42 1 1 19 + 83 42 1 1 17 + 82 44 1 1 11 + 82 45 1 1 9 + 85 44 1 1 18 + 85 45 1 1 14 + 94 44 1 1 15 + 94 45 1 1 8 + 95 44 1 1 9 + 82 46 1 1 7 + 90 46 1 1 17 + 91 46 1 1 12 + 80 48 1 1 25 + 80 49 1 1 8 + 81 48 1 1 17 + 83 53 1 1 7 + 84 53 1 1 7 + 86 53 1 1 13 + 87 53 1 1 19 + 88 53 1 1 20 + 89 53 1 1 17 + 92 52 1 1 9 + 92 53 1 1 11 + 93 53 1 1 15 + 70 54 1 1 25 + 70 55 1 1 16 + 71 54 1 1 25 + 72 54 1 1 23 + 73 54 1 1 22 + 73 55 1 1 19 + 80 54 1 1 21 + 80 55 1 1 27 + 83 54 1 1 7 + 84 54 1 1 9 + 84 55 1 1 24 + 85 55 1 1 34 + 88 54 1 1 22 + 89 54 1 1 28 + 89 55 1 1 10 + 90 54 1 1 13 + 91 54 1 1 15 + 94 55 1 1 7 + 66 56 1 1 7 + 67 56 1 1 7 + 70 56 1 1 14 + 70 57 1 1 11 + 71 56 1 1 13 + 75 56 1 1 13 + 75 57 1 1 7 + 76 56 1 1 20 + 76 57 1 1 9 + 77 56 1 1 18 + 78 56 1 1 13 + 80 56 1 1 36 + 81 56 1 1 32 + 82 56 1 1 7 + 82 57 1 1 19 + 83 57 1 1 25 + 88 57 1 1 7 + 93 56 1 1 7 + 94 56 1 1 7 + 62 58 1 1 7 + 63 58 1 1 7 + 63 59 1 1 7 + 64 58 1 1 9 + 65 58 1 1 7 + 65 59 1 1 7 + 66 58 1 1 9 + 66 59 1 1 8 + 67 59 1 1 12 + 70 59 1 1 18 + 71 59 1 1 12 + 85 58 1 1 14 + 86 58 1 1 19 + 87 58 1 1 12 + 87 59 1 1 12 + 88 58 1 1 7 + 88 59 1 1 9 + 89 59 1 1 7 + 60 60 1 1 8 + 60 61 1 1 7 + 64 61 1 1 11 + 65 60 1 1 7 + 65 61 1 1 10 + 70 60 1 1 20 + 70 61 1 1 17 + 89 60 1 1 7 + 90 60 1 1 7 + 58 62 1 1 16 + 59 62 1 1 10 + 59 63 1 1 14 + 50 64 1 1 83 + 50 65 1 1 60 + 51 64 1 1 80 + 52 64 1 1 29 + 55 64 1 1 54 + 56 64 1 1 47 + 57 64 1 1 41 + 57 65 1 1 50 + 70 65 1 1 10 + 52 67 1 1 51 + 53 67 1 1 10 + 57 67 1 1 66 + 70 66 1 1 14 + 70 67 1 1 21 + 70 68 1 1 13 + 70 69 1 1 19 + 70 70 1 1 24 + 70 71 1 1 24 + 72 72 1 1 7 + 72 73 1 1 17 + 74 74 1 1 7 + 74 75 1 1 9 + 76 75 1 1 7 + 72 76 1 1 22 + 72 77 1 1 31 + 73 77 1 1 45 + 80 78 1 1 7 + 80 79 1 1 7 + 81 79 1 1 7 + 82 80 1 1 7 + 82 81 1 1 22 + 83 81 1 1 11 + 88 81 1 1 7 + 90 83 1 1 13 + 91 83 1 1 8 + 92 83 1 1 22 + 95 83 1 1 8 + 96 83 1 1 7 + 97 83 1 1 8 + 98 83 1 1 10 + 99 82 1 1 7 + 99 83 1 1 17 + 100 83 1 1 11 + 0 0 2 2 146 + 2 0 2 2 146 + 4 0 2 2 146 + 6 0 2 2 147 + 8 0 2 2 145 + 10 0 2 2 144 + 12 0 2 2 146 + 14 0 2 2 145 + 16 0 2 2 142 + 18 0 2 2 138 + 20 0 2 2 137 + 22 0 2 2 135 + 24 0 2 2 136 + 26 0 2 2 137 + 28 0 2 2 137 + 30 0 2 2 136 + 32 0 2 2 135 + 34 0 2 2 133 + 36 0 2 2 133 + 38 0 2 2 132 + 40 0 2 2 131 + 42 0 2 2 131 + 44 0 2 2 129 + 46 0 2 2 128 + 48 0 2 2 128 + 50 0 2 2 129 + 52 0 2 2 128 + 54 0 2 2 128 + 56 0 2 2 125 + 58 0 2 2 125 + 60 0 2 2 123 + 62 0 2 2 119 + 64 0 2 2 118 + 66 0 2 2 117 + 68 0 2 2 115 + 70 0 2 2 115 + 72 0 2 2 114 + 74 0 2 2 113 + 76 0 2 2 112 + 78 0 2 2 112 + 80 0 2 2 111 + 82 0 2 2 109 + 84 0 2 2 107 + 86 0 2 2 106 + 88 0 2 2 104 + 90 0 2 2 104 + 92 0 2 2 102 + 94 0 2 2 99 + 96 0 2 2 98 + 98 0 2 2 96 + 100 0 2 2 94 + 102 0 2 2 93 + 0 2 2 2 153 + 2 2 2 2 146 + 4 2 2 2 144 + 6 2 2 2 144 + 8 2 2 2 146 + 10 2 2 2 144 + 12 2 2 2 144 + 14 2 2 2 142 + 16 2 2 2 141 + 18 2 2 2 139 + 20 2 2 2 137 + 22 2 2 2 136 + 24 2 2 2 136 + 26 2 2 2 137 + 28 2 2 2 136 + 30 2 2 2 135 + 32 2 2 2 134 + 34 2 2 2 132 + 36 2 2 2 132 + 38 2 2 2 132 + 40 2 2 2 131 + 42 2 2 2 130 + 44 2 2 2 129 + 46 2 2 2 129 + 48 2 2 2 128 + 50 2 2 2 129 + 52 2 2 2 128 + 54 2 2 2 126 + 56 2 2 2 125 + 58 2 2 2 124 + 60 2 2 2 122 + 62 2 2 2 120 + 64 2 2 2 118 + 66 2 2 2 118 + 68 2 2 2 117 + 70 2 2 2 116 + 72 2 2 2 115 + 74 2 2 2 113 + 76 2 2 2 112 + 78 2 2 2 111 + 80 2 2 2 110 + 82 2 2 2 108 + 84 2 2 2 106 + 86 2 2 2 105 + 88 2 2 2 103 + 90 2 2 2 102 + 92 2 2 2 100 + 94 2 2 2 97 + 96 2 2 2 96 + 98 2 2 2 93 + 100 2 2 2 90 + 102 2 2 2 90 + 0 4 2 2 153 + 2 4 2 2 148 + 4 4 2 2 141 + 6 4 2 2 142 + 8 4 2 2 141 + 10 4 2 2 143 + 12 4 2 2 144 + 14 4 2 2 142 + 16 4 2 2 140 + 18 4 2 2 138 + 20 4 2 2 137 + 22 4 2 2 135 + 24 4 2 2 136 + 26 4 2 2 135 + 28 4 2 2 134 + 30 4 2 2 134 + 32 4 2 2 134 + 34 4 2 2 132 + 36 4 2 2 132 + 38 4 2 2 132 + 40 4 2 2 132 + 42 4 2 2 130 + 44 4 2 2 130 + 46 4 2 2 129 + 48 4 2 2 128 + 50 4 2 2 126 + 52 4 2 2 126 + 54 4 2 2 126 + 56 4 2 2 125 + 58 4 2 2 123 + 60 4 2 2 122 + 62 4 2 2 120 + 64 4 2 2 118 + 66 4 2 2 118 + 68 4 2 2 116 + 70 4 2 2 113 + 72 4 2 2 112 + 74 4 2 2 110 + 76 4 2 2 109 + 78 4 2 2 107 + 80 4 2 2 101 + 82 4 2 2 103 + 84 4 2 2 101 + 86 4 2 2 100 + 88 4 2 2 97 + 90 4 2 2 96 + 92 4 2 2 95 + 94 4 2 2 93 + 96 4 2 2 92 + 98 4 2 2 88 + 100 4 2 2 84 + 102 4 2 2 83 + 0 6 2 2 153 + 2 6 2 2 149 + 4 6 2 2 145 + 6 6 2 2 143 + 8 6 2 2 137 + 10 6 2 2 141 + 12 6 2 2 142 + 14 6 2 2 140 + 16 6 2 2 139 + 18 6 2 2 136 + 20 6 2 2 135 + 22 6 2 2 135 + 24 6 2 2 135 + 26 6 2 2 134 + 28 6 2 2 134 + 30 6 2 2 134 + 32 6 2 2 133 + 34 6 2 2 133 + 36 6 2 2 132 + 38 6 2 2 132 + 40 6 2 2 131 + 42 6 2 2 129 + 44 6 2 2 129 + 46 6 2 2 128 + 48 6 2 2 127 + 50 6 2 2 125 + 52 6 2 2 125 + 54 6 2 2 124 + 56 6 2 2 123 + 58 6 2 2 122 + 60 6 2 2 121 + 62 6 2 2 119 + 64 6 2 2 117 + 66 6 2 2 115 + 68 6 2 2 111 + 70 6 2 2 106 + 72 6 2 2 105 + 74 6 2 2 105 + 76 6 2 2 103 + 78 6 2 2 94 + 80 6 2 2 94 + 82 6 2 2 94 + 84 6 2 2 93 + 86 6 2 2 89 + 88 6 2 2 84 + 90 6 2 2 81 + 92 6 2 2 86 + 94 6 2 2 86 + 96 6 2 2 77 + 98 6 2 2 65 + 100 6 2 2 68 + 102 6 2 2 67 + 0 8 2 2 152 + 2 8 2 2 150 + 4 8 2 2 145 + 6 8 2 2 139 + 8 8 2 2 134 + 10 8 2 2 142 + 12 8 2 2 141 + 14 8 2 2 138 + 16 8 2 2 137 + 18 8 2 2 136 + 20 8 2 2 135 + 22 8 2 2 134 + 24 8 2 2 133 + 26 8 2 2 133 + 28 8 2 2 133 + 30 8 2 2 132 + 32 8 2 2 132 + 34 8 2 2 132 + 36 8 2 2 131 + 38 8 2 2 131 + 40 8 2 2 129 + 42 8 2 2 128 + 44 8 2 2 127 + 46 8 2 2 127 + 48 8 2 2 126 + 50 8 2 2 125 + 52 8 2 2 124 + 54 8 2 2 123 + 56 8 2 2 122 + 58 8 2 2 120 + 60 8 2 2 118 + 62 8 2 2 116 + 64 8 2 2 113 + 66 8 2 2 109 + 68 8 2 2 103 + 70 8 2 2 99 + 72 8 2 2 98 + 74 8 2 2 99 + 76 8 2 2 98 + 78 8 2 2 94 + 80 8 2 2 93 + 82 8 2 2 87 + 84 8 2 2 87 + 86 8 2 2 85 + 88 8 2 2 84 + 90 8 2 2 82 + 92 8 2 2 79 + 94 8 2 2 61 + 96 8 2 2 47 + 98 8 2 2 40 + 100 8 2 2 38 + 102 8 2 2 39 + 0 10 2 2 151 + 2 10 2 2 148 + 4 10 2 2 144 + 6 10 2 2 139 + 8 10 2 2 132 + 10 10 2 2 140 + 12 10 2 2 138 + 14 10 2 2 137 + 16 10 2 2 138 + 18 10 2 2 136 + 20 10 2 2 135 + 22 10 2 2 133 + 24 10 2 2 133 + 26 10 2 2 133 + 28 10 2 2 132 + 30 10 2 2 132 + 32 10 2 2 131 + 34 10 2 2 132 + 36 10 2 2 130 + 38 10 2 2 129 + 40 10 2 2 129 + 42 10 2 2 128 + 44 10 2 2 126 + 46 10 2 2 126 + 48 10 2 2 125 + 50 10 2 2 123 + 52 10 2 2 120 + 54 10 2 2 117 + 56 10 2 2 117 + 58 10 2 2 115 + 60 10 2 2 111 + 62 10 2 2 108 + 64 10 2 2 106 + 66 10 2 2 103 + 68 10 2 2 99 + 70 10 2 2 92 + 72 10 2 2 89 + 74 10 2 2 90 + 76 10 2 2 83 + 78 10 2 2 82 + 80 10 2 2 81 + 82 10 2 2 83 + 84 10 2 2 82 + 86 10 2 2 81 + 88 10 2 2 79 + 90 10 2 2 69 + 92 10 2 2 49 + 94 10 2 2 21 + 96 10 2 2 16 + 98 10 2 2 14 + 100 10 2 2 23 + 102 10 2 2 22 + 0 12 2 2 149 + 2 12 2 2 148 + 4 12 2 2 144 + 6 12 2 2 138 + 8 12 2 2 134 + 10 12 2 2 138 + 12 12 2 2 137 + 14 12 2 2 137 + 16 12 2 2 137 + 18 12 2 2 135 + 20 12 2 2 133 + 22 12 2 2 132 + 24 12 2 2 133 + 26 12 2 2 132 + 28 12 2 2 132 + 30 12 2 2 131 + 32 12 2 2 131 + 34 12 2 2 130 + 36 12 2 2 129 + 38 12 2 2 129 + 40 12 2 2 127 + 42 12 2 2 126 + 44 12 2 2 126 + 46 12 2 2 124 + 48 12 2 2 122 + 50 12 2 2 120 + 52 12 2 2 116 + 54 12 2 2 110 + 56 12 2 2 108 + 58 12 2 2 107 + 60 12 2 2 102 + 62 12 2 2 98 + 64 12 2 2 97 + 66 12 2 2 95 + 68 12 2 2 94 + 70 12 2 2 93 + 72 12 2 2 91 + 74 12 2 2 89 + 76 12 2 2 87 + 78 12 2 2 82 + 80 12 2 2 79 + 82 12 2 2 76 + 84 12 2 2 74 + 86 12 2 2 73 + 88 12 2 2 67 + 90 12 2 2 37 + 0 14 2 2 148 + 2 14 2 2 146 + 4 14 2 2 143 + 6 14 2 2 137 + 8 14 2 2 136 + 10 14 2 2 138 + 12 14 2 2 137 + 14 14 2 2 137 + 16 14 2 2 136 + 18 14 2 2 134 + 20 14 2 2 133 + 22 14 2 2 133 + 24 14 2 2 133 + 26 14 2 2 132 + 28 14 2 2 131 + 30 14 2 2 131 + 32 14 2 2 130 + 34 14 2 2 129 + 36 14 2 2 128 + 38 14 2 2 127 + 40 14 2 2 127 + 42 14 2 2 126 + 44 14 2 2 123 + 46 14 2 2 116 + 48 14 2 2 114 + 50 14 2 2 112 + 52 14 2 2 107 + 54 14 2 2 102 + 56 14 2 2 98 + 58 14 2 2 97 + 60 14 2 2 96 + 62 14 2 2 93 + 64 14 2 2 88 + 66 14 2 2 85 + 68 14 2 2 83 + 70 14 2 2 86 + 72 14 2 2 85 + 74 14 2 2 83 + 76 14 2 2 81 + 78 14 2 2 81 + 80 14 2 2 79 + 82 14 2 2 77 + 84 14 2 2 73 + 86 14 2 2 67 + 88 14 2 2 57 + 90 14 2 2 32 + 0 16 2 2 146 + 2 16 2 2 144 + 4 16 2 2 141 + 6 16 2 2 138 + 8 16 2 2 137 + 10 16 2 2 137 + 12 16 2 2 136 + 14 16 2 2 135 + 16 16 2 2 134 + 18 16 2 2 133 + 20 16 2 2 133 + 22 16 2 2 132 + 24 16 2 2 132 + 26 16 2 2 131 + 28 16 2 2 131 + 30 16 2 2 130 + 32 16 2 2 129 + 34 16 2 2 128 + 36 16 2 2 127 + 38 16 2 2 126 + 40 16 2 2 126 + 42 16 2 2 125 + 44 16 2 2 120 + 46 16 2 2 110 + 48 16 2 2 101 + 50 16 2 2 95 + 52 16 2 2 78 + 54 16 2 2 87 + 56 16 2 2 85 + 58 16 2 2 87 + 60 16 2 2 86 + 62 16 2 2 84 + 64 16 2 2 77 + 66 16 2 2 70 + 68 16 2 2 67 + 70 16 2 2 71 + 72 16 2 2 74 + 74 16 2 2 75 + 76 16 2 2 76 + 78 16 2 2 77 + 80 16 2 2 77 + 82 16 2 2 76 + 84 16 2 2 71 + 86 16 2 2 62 + 88 16 2 2 51 + 90 16 2 2 31 + 0 18 2 2 144 + 2 18 2 2 143 + 4 18 2 2 141 + 6 18 2 2 139 + 8 18 2 2 137 + 10 18 2 2 137 + 12 18 2 2 134 + 14 18 2 2 134 + 16 18 2 2 133 + 18 18 2 2 132 + 20 18 2 2 132 + 22 18 2 2 132 + 24 18 2 2 132 + 26 18 2 2 131 + 28 18 2 2 130 + 30 18 2 2 129 + 32 18 2 2 128 + 34 18 2 2 127 + 36 18 2 2 128 + 38 18 2 2 125 + 40 18 2 2 124 + 42 18 2 2 122 + 44 18 2 2 107 + 46 18 2 2 78 + 48 18 2 2 78 + 50 18 2 2 73 + 52 18 2 2 67 + 54 18 2 2 72 + 56 18 2 2 75 + 58 18 2 2 74 + 60 18 2 2 77 + 62 18 2 2 72 + 64 18 2 2 66 + 66 18 2 2 62 + 68 18 2 2 58 + 70 18 2 2 62 + 72 18 2 2 62 + 74 18 2 2 64 + 76 18 2 2 69 + 78 18 2 2 72 + 80 18 2 2 73 + 82 18 2 2 71 + 84 18 2 2 54 + 86 18 2 2 56 + 88 18 2 2 46 + 90 18 2 2 27 + 0 20 2 2 143 + 2 20 2 2 142 + 4 20 2 2 140 + 6 20 2 2 138 + 8 20 2 2 137 + 10 20 2 2 136 + 12 20 2 2 134 + 14 20 2 2 133 + 16 20 2 2 130 + 18 20 2 2 132 + 20 20 2 2 133 + 22 20 2 2 132 + 24 20 2 2 131 + 26 20 2 2 131 + 28 20 2 2 130 + 30 20 2 2 128 + 32 20 2 2 127 + 34 20 2 2 127 + 36 20 2 2 126 + 38 20 2 2 124 + 40 20 2 2 115 + 42 20 2 2 112 + 44 20 2 2 103 + 46 20 2 2 73 + 48 20 2 2 73 + 50 20 2 2 71 + 52 20 2 2 68 + 54 20 2 2 64 + 56 20 2 2 67 + 58 20 2 2 67 + 60 20 2 2 64 + 62 20 2 2 60 + 64 20 2 2 57 + 66 20 2 2 53 + 68 20 2 2 50 + 70 20 2 2 48 + 72 20 2 2 48 + 74 20 2 2 52 + 76 20 2 2 56 + 78 20 2 2 63 + 80 20 2 2 64 + 82 20 2 2 57 + 84 20 2 2 43 + 86 20 2 2 48 + 88 20 2 2 39 + 90 20 2 2 18 + 0 22 2 2 143 + 2 22 2 2 141 + 4 22 2 2 139 + 6 22 2 2 136 + 8 22 2 2 136 + 10 22 2 2 135 + 12 22 2 2 133 + 14 22 2 2 131 + 16 22 2 2 131 + 18 22 2 2 133 + 20 22 2 2 133 + 22 22 2 2 132 + 24 22 2 2 131 + 26 22 2 2 130 + 28 22 2 2 129 + 30 22 2 2 128 + 32 22 2 2 125 + 34 22 2 2 125 + 36 22 2 2 124 + 38 22 2 2 120 + 40 22 2 2 115 + 42 22 2 2 107 + 44 22 2 2 95 + 46 22 2 2 81 + 48 22 2 2 77 + 50 22 2 2 77 + 52 22 2 2 75 + 54 22 2 2 69 + 56 22 2 2 63 + 58 22 2 2 63 + 60 22 2 2 59 + 62 22 2 2 54 + 64 22 2 2 52 + 66 22 2 2 50 + 68 22 2 2 44 + 70 22 2 2 38 + 72 22 2 2 35 + 74 22 2 2 41 + 76 22 2 2 48 + 78 22 2 2 51 + 80 22 2 2 48 + 82 22 2 2 38 + 84 22 2 2 39 + 86 22 2 2 41 + 88 22 2 2 29 + 0 24 2 2 142 + 2 24 2 2 141 + 4 24 2 2 140 + 6 24 2 2 137 + 8 24 2 2 134 + 10 24 2 2 134 + 12 24 2 2 132 + 14 24 2 2 130 + 16 24 2 2 132 + 18 24 2 2 135 + 20 24 2 2 132 + 22 24 2 2 131 + 24 24 2 2 130 + 26 24 2 2 129 + 28 24 2 2 127 + 30 24 2 2 122 + 32 24 2 2 122 + 34 24 2 2 123 + 36 24 2 2 119 + 38 24 2 2 115 + 40 24 2 2 111 + 42 24 2 2 107 + 44 24 2 2 103 + 46 24 2 2 89 + 48 24 2 2 87 + 50 24 2 2 83 + 52 24 2 2 79 + 54 24 2 2 76 + 56 24 2 2 68 + 58 24 2 2 59 + 60 24 2 2 52 + 62 24 2 2 47 + 64 24 2 2 46 + 66 24 2 2 44 + 68 24 2 2 42 + 70 24 2 2 37 + 72 24 2 2 34 + 74 24 2 2 36 + 76 24 2 2 42 + 78 24 2 2 42 + 80 24 2 2 44 + 82 24 2 2 38 + 84 24 2 2 37 + 86 24 2 2 34 + 88 24 2 2 15 + 0 26 2 2 141 + 2 26 2 2 140 + 4 26 2 2 139 + 6 26 2 2 137 + 8 26 2 2 133 + 10 26 2 2 132 + 12 26 2 2 131 + 14 26 2 2 131 + 16 26 2 2 133 + 18 26 2 2 133 + 20 26 2 2 132 + 22 26 2 2 129 + 24 26 2 2 128 + 26 26 2 2 128 + 28 26 2 2 126 + 30 26 2 2 124 + 32 26 2 2 123 + 34 26 2 2 120 + 36 26 2 2 114 + 38 26 2 2 108 + 40 26 2 2 102 + 42 26 2 2 102 + 44 26 2 2 101 + 46 26 2 2 95 + 48 26 2 2 91 + 50 26 2 2 83 + 52 26 2 2 76 + 54 26 2 2 73 + 56 26 2 2 66 + 58 26 2 2 52 + 60 26 2 2 52 + 62 26 2 2 48 + 64 26 2 2 46 + 66 26 2 2 42 + 68 26 2 2 36 + 70 26 2 2 30 + 72 26 2 2 30 + 74 26 2 2 31 + 76 26 2 2 35 + 78 26 2 2 38 + 80 26 2 2 37 + 82 26 2 2 34 + 84 26 2 2 30 + 86 26 2 2 21 + 0 28 2 2 140 + 2 28 2 2 140 + 4 28 2 2 138 + 6 28 2 2 135 + 8 28 2 2 133 + 10 28 2 2 131 + 12 28 2 2 130 + 14 28 2 2 131 + 16 28 2 2 134 + 18 28 2 2 133 + 20 28 2 2 130 + 22 28 2 2 129 + 24 28 2 2 127 + 26 28 2 2 127 + 28 28 2 2 124 + 30 28 2 2 124 + 32 28 2 2 123 + 34 28 2 2 122 + 36 28 2 2 118 + 38 28 2 2 110 + 40 28 2 2 98 + 42 28 2 2 97 + 44 28 2 2 92 + 46 28 2 2 90 + 48 28 2 2 85 + 50 28 2 2 82 + 52 28 2 2 64 + 54 28 2 2 63 + 56 28 2 2 57 + 58 28 2 2 51 + 60 28 2 2 52 + 62 28 2 2 52 + 64 28 2 2 47 + 66 28 2 2 40 + 68 28 2 2 33 + 70 28 2 2 29 + 72 28 2 2 27 + 74 28 2 2 28 + 76 28 2 2 27 + 78 28 2 2 25 + 80 28 2 2 22 + 82 28 2 2 16 + 84 28 2 2 13 + 0 30 2 2 140 + 2 30 2 2 140 + 4 30 2 2 137 + 6 30 2 2 135 + 8 30 2 2 132 + 10 30 2 2 130 + 12 30 2 2 130 + 14 30 2 2 131 + 16 30 2 2 134 + 18 30 2 2 132 + 20 30 2 2 131 + 22 30 2 2 128 + 24 30 2 2 126 + 26 30 2 2 125 + 28 30 2 2 124 + 30 30 2 2 125 + 32 30 2 2 124 + 34 30 2 2 123 + 36 30 2 2 121 + 38 30 2 2 107 + 40 30 2 2 98 + 42 30 2 2 88 + 44 30 2 2 81 + 46 30 2 2 72 + 48 30 2 2 80 + 50 30 2 2 78 + 52 30 2 2 69 + 54 30 2 2 56 + 56 30 2 2 58 + 58 30 2 2 57 + 60 30 2 2 51 + 62 30 2 2 46 + 64 30 2 2 36 + 66 30 2 2 30 + 68 30 2 2 23 + 70 30 2 2 30 + 72 30 2 2 27 + 0 32 2 2 140 + 2 32 2 2 139 + 4 32 2 2 136 + 6 32 2 2 134 + 8 32 2 2 131 + 10 32 2 2 129 + 12 32 2 2 129 + 14 32 2 2 131 + 16 32 2 2 133 + 18 32 2 2 132 + 20 32 2 2 131 + 22 32 2 2 128 + 24 32 2 2 126 + 26 32 2 2 125 + 28 32 2 2 125 + 30 32 2 2 124 + 32 32 2 2 124 + 34 32 2 2 122 + 36 32 2 2 121 + 38 32 2 2 118 + 40 32 2 2 114 + 42 32 2 2 110 + 44 32 2 2 104 + 46 32 2 2 91 + 48 32 2 2 88 + 50 32 2 2 82 + 52 32 2 2 68 + 54 32 2 2 58 + 56 32 2 2 49 + 58 32 2 2 36 + 60 32 2 2 27 + 70 32 2 2 38 + 0 34 2 2 140 + 2 34 2 2 139 + 4 34 2 2 136 + 6 34 2 2 132 + 8 34 2 2 131 + 10 34 2 2 129 + 12 34 2 2 130 + 14 34 2 2 132 + 16 34 2 2 133 + 18 34 2 2 131 + 20 34 2 2 128 + 22 34 2 2 128 + 24 34 2 2 126 + 26 34 2 2 125 + 28 34 2 2 124 + 30 34 2 2 123 + 32 34 2 2 124 + 34 34 2 2 123 + 36 34 2 2 122 + 38 34 2 2 119 + 40 34 2 2 115 + 42 34 2 2 114 + 44 34 2 2 111 + 46 34 2 2 106 + 48 34 2 2 100 + 50 34 2 2 95 + 52 34 2 2 90 + 54 34 2 2 84 + 56 34 2 2 79 + 58 34 2 2 68 + 60 34 2 2 63 + 62 34 2 2 60 + 64 34 2 2 65 + 66 34 2 2 56 + 68 34 2 2 42 + 70 34 2 2 32 + 72 34 2 2 36 + 0 36 2 2 139 + 2 36 2 2 138 + 4 36 2 2 136 + 6 36 2 2 132 + 8 36 2 2 131 + 10 36 2 2 130 + 12 36 2 2 129 + 14 36 2 2 132 + 16 36 2 2 132 + 18 36 2 2 130 + 20 36 2 2 128 + 22 36 2 2 127 + 24 36 2 2 126 + 26 36 2 2 126 + 28 36 2 2 124 + 30 36 2 2 123 + 32 36 2 2 123 + 34 36 2 2 122 + 36 36 2 2 122 + 38 36 2 2 119 + 40 36 2 2 118 + 42 36 2 2 116 + 44 36 2 2 112 + 46 36 2 2 108 + 48 36 2 2 104 + 50 36 2 2 100 + 52 36 2 2 96 + 54 36 2 2 88 + 56 36 2 2 86 + 58 36 2 2 82 + 60 36 2 2 79 + 62 36 2 2 80 + 64 36 2 2 76 + 66 36 2 2 65 + 68 36 2 2 56 + 70 36 2 2 54 + 72 36 2 2 48 + 74 36 2 2 47 + 76 36 2 2 42 + 78 36 2 2 37 + 80 36 2 2 34 + 82 36 2 2 27 + 0 38 2 2 138 + 2 38 2 2 136 + 4 38 2 2 135 + 6 38 2 2 132 + 8 38 2 2 131 + 10 38 2 2 129 + 12 38 2 2 129 + 14 38 2 2 131 + 16 38 2 2 131 + 18 38 2 2 129 + 20 38 2 2 127 + 22 38 2 2 126 + 24 38 2 2 126 + 26 38 2 2 125 + 28 38 2 2 124 + 30 38 2 2 122 + 32 38 2 2 122 + 34 38 2 2 122 + 36 38 2 2 122 + 38 38 2 2 121 + 40 38 2 2 119 + 42 38 2 2 117 + 44 38 2 2 113 + 46 38 2 2 110 + 48 38 2 2 106 + 50 38 2 2 103 + 52 38 2 2 99 + 54 38 2 2 87 + 56 38 2 2 74 + 58 38 2 2 84 + 60 38 2 2 83 + 62 38 2 2 81 + 64 38 2 2 73 + 66 38 2 2 66 + 68 38 2 2 64 + 70 38 2 2 59 + 72 38 2 2 54 + 74 38 2 2 48 + 76 38 2 2 41 + 78 38 2 2 41 + 80 38 2 2 41 + 82 38 2 2 39 + 84 38 2 2 36 + 86 38 2 2 34 + 88 38 2 2 30 + 90 38 2 2 22 + 92 38 2 2 20 + 94 38 2 2 17 + 0 40 2 2 137 + 2 40 2 2 137 + 4 40 2 2 134 + 6 40 2 2 133 + 8 40 2 2 131 + 10 40 2 2 129 + 12 40 2 2 130 + 14 40 2 2 131 + 16 40 2 2 129 + 18 40 2 2 127 + 20 40 2 2 126 + 22 40 2 2 125 + 24 40 2 2 126 + 26 40 2 2 125 + 28 40 2 2 124 + 30 40 2 2 122 + 32 40 2 2 121 + 34 40 2 2 120 + 36 40 2 2 121 + 38 40 2 2 121 + 40 40 2 2 120 + 42 40 2 2 118 + 44 40 2 2 115 + 46 40 2 2 113 + 48 40 2 2 108 + 50 40 2 2 102 + 52 40 2 2 99 + 54 40 2 2 96 + 56 40 2 2 80 + 58 40 2 2 87 + 60 40 2 2 84 + 62 40 2 2 76 + 64 40 2 2 70 + 66 40 2 2 63 + 68 40 2 2 56 + 70 40 2 2 57 + 72 40 2 2 52 + 74 40 2 2 49 + 76 40 2 2 42 + 78 40 2 2 36 + 80 40 2 2 31 + 82 40 2 2 32 + 84 40 2 2 36 + 86 40 2 2 35 + 88 40 2 2 32 + 90 40 2 2 29 + 92 40 2 2 25 + 94 40 2 2 19 + 0 42 2 2 136 + 2 42 2 2 137 + 4 42 2 2 135 + 6 42 2 2 132 + 8 42 2 2 130 + 10 42 2 2 129 + 12 42 2 2 130 + 14 42 2 2 129 + 16 42 2 2 128 + 18 42 2 2 126 + 20 42 2 2 126 + 22 42 2 2 125 + 24 42 2 2 124 + 26 42 2 2 125 + 28 42 2 2 123 + 30 42 2 2 122 + 32 42 2 2 121 + 34 42 2 2 120 + 36 42 2 2 119 + 38 42 2 2 119 + 40 42 2 2 120 + 42 42 2 2 117 + 44 42 2 2 117 + 46 42 2 2 114 + 48 42 2 2 109 + 50 42 2 2 100 + 52 42 2 2 96 + 54 42 2 2 94 + 56 42 2 2 92 + 58 42 2 2 86 + 60 42 2 2 84 + 62 42 2 2 79 + 64 42 2 2 68 + 66 42 2 2 65 + 68 42 2 2 54 + 70 42 2 2 49 + 72 42 2 2 48 + 74 42 2 2 44 + 76 42 2 2 38 + 78 42 2 2 37 + 80 42 2 2 27 + 84 42 2 2 23 + 86 42 2 2 31 + 88 42 2 2 29 + 90 42 2 2 27 + 92 42 2 2 22 + 94 42 2 2 16 + 0 44 2 2 136 + 2 44 2 2 135 + 4 44 2 2 134 + 6 44 2 2 132 + 8 44 2 2 129 + 10 44 2 2 130 + 12 44 2 2 130 + 14 44 2 2 128 + 16 44 2 2 127 + 18 44 2 2 125 + 20 44 2 2 124 + 22 44 2 2 125 + 24 44 2 2 124 + 26 44 2 2 124 + 28 44 2 2 123 + 30 44 2 2 121 + 32 44 2 2 121 + 34 44 2 2 119 + 36 44 2 2 117 + 38 44 2 2 116 + 40 44 2 2 118 + 42 44 2 2 117 + 44 44 2 2 115 + 46 44 2 2 112 + 48 44 2 2 109 + 50 44 2 2 101 + 52 44 2 2 96 + 54 44 2 2 91 + 56 44 2 2 85 + 58 44 2 2 80 + 60 44 2 2 79 + 62 44 2 2 79 + 64 44 2 2 73 + 66 44 2 2 61 + 68 44 2 2 51 + 70 44 2 2 47 + 72 44 2 2 45 + 74 44 2 2 43 + 76 44 2 2 37 + 78 44 2 2 29 + 80 44 2 2 27 + 86 44 2 2 24 + 88 44 2 2 25 + 90 44 2 2 22 + 92 44 2 2 16 + 0 46 2 2 136 + 2 46 2 2 135 + 4 46 2 2 134 + 6 46 2 2 131 + 8 46 2 2 130 + 10 46 2 2 130 + 12 46 2 2 129 + 14 46 2 2 127 + 16 46 2 2 125 + 18 46 2 2 123 + 20 46 2 2 124 + 22 46 2 2 125 + 24 46 2 2 123 + 26 46 2 2 122 + 28 46 2 2 122 + 30 46 2 2 121 + 32 46 2 2 121 + 34 46 2 2 119 + 36 46 2 2 117 + 38 46 2 2 116 + 40 46 2 2 115 + 42 46 2 2 116 + 44 46 2 2 114 + 46 46 2 2 112 + 48 46 2 2 108 + 50 46 2 2 103 + 52 46 2 2 97 + 54 46 2 2 89 + 56 46 2 2 75 + 58 46 2 2 69 + 60 46 2 2 71 + 62 46 2 2 77 + 64 46 2 2 75 + 66 46 2 2 62 + 68 46 2 2 53 + 70 46 2 2 49 + 72 46 2 2 43 + 74 46 2 2 39 + 76 46 2 2 36 + 78 46 2 2 30 + 80 46 2 2 24 + 86 46 2 2 15 + 88 46 2 2 13 + 0 48 2 2 135 + 2 48 2 2 133 + 4 48 2 2 132 + 6 48 2 2 130 + 8 48 2 2 131 + 10 48 2 2 128 + 12 48 2 2 127 + 14 48 2 2 126 + 16 48 2 2 124 + 18 48 2 2 123 + 20 48 2 2 123 + 22 48 2 2 124 + 24 48 2 2 121 + 26 48 2 2 121 + 28 48 2 2 121 + 30 48 2 2 120 + 32 48 2 2 120 + 34 48 2 2 119 + 36 48 2 2 117 + 38 48 2 2 117 + 40 48 2 2 114 + 42 48 2 2 112 + 44 48 2 2 114 + 46 48 2 2 112 + 48 48 2 2 107 + 50 48 2 2 103 + 52 48 2 2 98 + 54 48 2 2 86 + 56 48 2 2 75 + 58 48 2 2 69 + 60 48 2 2 68 + 62 48 2 2 71 + 64 48 2 2 70 + 66 48 2 2 61 + 68 48 2 2 49 + 70 48 2 2 45 + 72 48 2 2 42 + 74 48 2 2 38 + 76 48 2 2 32 + 78 48 2 2 26 + 0 50 2 2 134 + 2 50 2 2 133 + 4 50 2 2 132 + 6 50 2 2 131 + 8 50 2 2 130 + 10 50 2 2 127 + 12 50 2 2 126 + 14 50 2 2 125 + 16 50 2 2 124 + 18 50 2 2 122 + 20 50 2 2 122 + 22 50 2 2 122 + 24 50 2 2 121 + 26 50 2 2 118 + 28 50 2 2 120 + 30 50 2 2 119 + 32 50 2 2 118 + 34 50 2 2 118 + 36 50 2 2 116 + 38 50 2 2 114 + 40 50 2 2 114 + 42 50 2 2 112 + 44 50 2 2 113 + 46 50 2 2 111 + 48 50 2 2 107 + 50 50 2 2 102 + 52 50 2 2 95 + 54 50 2 2 74 + 56 50 2 2 70 + 58 50 2 2 69 + 60 50 2 2 67 + 62 50 2 2 66 + 64 50 2 2 63 + 66 50 2 2 52 + 68 50 2 2 44 + 70 50 2 2 39 + 72 50 2 2 35 + 74 50 2 2 30 + 76 50 2 2 24 + 78 50 2 2 18 + 0 52 2 2 133 + 2 52 2 2 133 + 4 52 2 2 132 + 6 52 2 2 131 + 8 52 2 2 130 + 10 52 2 2 127 + 12 52 2 2 125 + 14 52 2 2 124 + 16 52 2 2 122 + 18 52 2 2 121 + 20 52 2 2 122 + 22 52 2 2 122 + 24 52 2 2 122 + 26 52 2 2 118 + 28 52 2 2 119 + 30 52 2 2 117 + 32 52 2 2 117 + 34 52 2 2 117 + 36 52 2 2 115 + 38 52 2 2 113 + 40 52 2 2 113 + 42 52 2 2 112 + 44 52 2 2 111 + 46 52 2 2 108 + 48 52 2 2 106 + 50 52 2 2 99 + 52 52 2 2 91 + 54 52 2 2 79 + 56 52 2 2 77 + 58 52 2 2 68 + 60 52 2 2 66 + 62 52 2 2 56 + 64 52 2 2 48 + 66 52 2 2 37 + 68 52 2 2 35 + 70 52 2 2 34 + 72 52 2 2 30 + 74 52 2 2 31 + 76 52 2 2 32 + 78 52 2 2 25 + 80 52 2 2 18 + 90 52 2 2 14 + 0 54 2 2 132 + 2 54 2 2 132 + 4 54 2 2 132 + 6 54 2 2 130 + 8 54 2 2 129 + 10 54 2 2 126 + 12 54 2 2 124 + 14 54 2 2 122 + 16 54 2 2 121 + 18 54 2 2 121 + 20 54 2 2 121 + 22 54 2 2 121 + 24 54 2 2 121 + 26 54 2 2 118 + 28 54 2 2 117 + 30 54 2 2 117 + 32 54 2 2 117 + 34 54 2 2 116 + 36 54 2 2 114 + 38 54 2 2 113 + 40 54 2 2 113 + 42 54 2 2 111 + 44 54 2 2 108 + 46 54 2 2 106 + 48 54 2 2 101 + 50 54 2 2 95 + 52 54 2 2 84 + 54 54 2 2 80 + 56 54 2 2 64 + 58 54 2 2 57 + 60 54 2 2 50 + 62 54 2 2 22 + 64 54 2 2 13 + 66 54 2 2 9 + 68 54 2 2 18 + 74 54 2 2 20 + 76 54 2 2 23 + 78 54 2 2 35 + 86 54 2 2 24 + 92 54 2 2 7 + 0 56 2 2 131 + 2 56 2 2 131 + 4 56 2 2 130 + 6 56 2 2 129 + 8 56 2 2 128 + 10 56 2 2 126 + 12 56 2 2 124 + 14 56 2 2 122 + 16 56 2 2 122 + 18 56 2 2 120 + 20 56 2 2 120 + 22 56 2 2 120 + 24 56 2 2 119 + 26 56 2 2 117 + 28 56 2 2 115 + 30 56 2 2 115 + 32 56 2 2 115 + 34 56 2 2 115 + 36 56 2 2 116 + 38 56 2 2 112 + 40 56 2 2 113 + 42 56 2 2 109 + 44 56 2 2 103 + 46 56 2 2 98 + 48 56 2 2 101 + 50 56 2 2 99 + 52 56 2 2 85 + 54 56 2 2 75 + 56 56 2 2 61 + 58 56 2 2 51 + 60 56 2 2 24 + 62 56 2 2 17 + 64 56 2 2 13 + 68 56 2 2 12 + 84 56 2 2 31 + 86 56 2 2 20 + 0 58 2 2 130 + 2 58 2 2 131 + 4 58 2 2 130 + 6 58 2 2 128 + 8 58 2 2 128 + 10 58 2 2 124 + 12 58 2 2 123 + 14 58 2 2 121 + 16 58 2 2 121 + 18 58 2 2 120 + 20 58 2 2 119 + 22 58 2 2 118 + 24 58 2 2 118 + 26 58 2 2 117 + 28 58 2 2 116 + 30 58 2 2 114 + 32 58 2 2 115 + 34 58 2 2 116 + 36 58 2 2 115 + 38 58 2 2 106 + 40 58 2 2 113 + 42 58 2 2 111 + 44 58 2 2 107 + 46 58 2 2 100 + 48 58 2 2 104 + 50 58 2 2 93 + 52 58 2 2 87 + 54 58 2 2 69 + 56 58 2 2 45 + 58 58 2 2 30 + 60 58 2 2 10 + 68 58 2 2 16 + 0 60 2 2 129 + 2 60 2 2 129 + 4 60 2 2 128 + 6 60 2 2 127 + 8 60 2 2 125 + 10 60 2 2 124 + 12 60 2 2 123 + 14 60 2 2 122 + 16 60 2 2 122 + 18 60 2 2 120 + 20 60 2 2 119 + 22 60 2 2 118 + 24 60 2 2 116 + 26 60 2 2 115 + 28 60 2 2 114 + 30 60 2 2 114 + 32 60 2 2 114 + 34 60 2 2 115 + 36 60 2 2 115 + 38 60 2 2 115 + 40 60 2 2 114 + 42 60 2 2 114 + 44 60 2 2 111 + 46 60 2 2 108 + 48 60 2 2 101 + 50 60 2 2 79 + 52 60 2 2 86 + 54 60 2 2 64 + 56 60 2 2 29 + 58 60 2 2 16 + 62 60 2 2 9 + 66 60 2 2 21 + 68 60 2 2 24 + 0 62 2 2 128 + 2 62 2 2 128 + 4 62 2 2 126 + 6 62 2 2 126 + 8 62 2 2 126 + 10 62 2 2 125 + 12 62 2 2 124 + 14 62 2 2 122 + 16 62 2 2 122 + 18 62 2 2 122 + 20 62 2 2 120 + 22 62 2 2 118 + 24 62 2 2 118 + 26 62 2 2 116 + 28 62 2 2 116 + 30 62 2 2 115 + 32 62 2 2 111 + 34 62 2 2 115 + 36 62 2 2 115 + 38 62 2 2 115 + 40 62 2 2 115 + 42 62 2 2 115 + 44 62 2 2 114 + 46 62 2 2 112 + 48 62 2 2 99 + 50 62 2 2 83 + 52 62 2 2 63 + 54 62 2 2 64 + 56 62 2 2 53 + 60 62 2 2 15 + 62 62 2 2 23 + 64 62 2 2 17 + 66 62 2 2 36 + 68 62 2 2 20 + 0 64 2 2 127 + 2 64 2 2 126 + 4 64 2 2 126 + 6 64 2 2 125 + 8 64 2 2 124 + 10 64 2 2 123 + 12 64 2 2 123 + 14 64 2 2 121 + 16 64 2 2 120 + 18 64 2 2 121 + 20 64 2 2 119 + 22 64 2 2 118 + 24 64 2 2 117 + 26 64 2 2 116 + 28 64 2 2 115 + 30 64 2 2 113 + 32 64 2 2 113 + 34 64 2 2 115 + 36 64 2 2 115 + 38 64 2 2 113 + 40 64 2 2 116 + 42 64 2 2 115 + 44 64 2 2 118 + 46 64 2 2 114 + 48 64 2 2 97 + 58 64 2 2 39 + 60 64 2 2 58 + 62 64 2 2 55 + 64 64 2 2 45 + 66 64 2 2 28 + 68 64 2 2 26 + 0 66 2 2 126 + 2 66 2 2 124 + 4 66 2 2 124 + 6 66 2 2 124 + 8 66 2 2 123 + 10 66 2 2 122 + 12 66 2 2 122 + 14 66 2 2 120 + 16 66 2 2 119 + 18 66 2 2 120 + 20 66 2 2 120 + 22 66 2 2 118 + 24 66 2 2 116 + 26 66 2 2 116 + 28 66 2 2 115 + 30 66 2 2 112 + 32 66 2 2 111 + 34 66 2 2 115 + 36 66 2 2 114 + 38 66 2 2 115 + 40 66 2 2 116 + 42 66 2 2 116 + 44 66 2 2 130 + 46 66 2 2 124 + 48 66 2 2 104 + 50 66 2 2 73 + 58 66 2 2 59 + 60 66 2 2 78 + 62 66 2 2 81 + 64 66 2 2 57 + 66 66 2 2 55 + 68 66 2 2 44 + 0 68 2 2 124 + 2 68 2 2 124 + 4 68 2 2 123 + 6 68 2 2 123 + 8 68 2 2 122 + 10 68 2 2 121 + 12 68 2 2 121 + 14 68 2 2 119 + 16 68 2 2 119 + 18 68 2 2 119 + 20 68 2 2 119 + 22 68 2 2 118 + 24 68 2 2 117 + 26 68 2 2 116 + 28 68 2 2 116 + 30 68 2 2 114 + 32 68 2 2 112 + 34 68 2 2 114 + 36 68 2 2 114 + 38 68 2 2 113 + 40 68 2 2 115 + 42 68 2 2 117 + 44 68 2 2 118 + 46 68 2 2 151 + 48 68 2 2 118 + 50 68 2 2 100 + 52 68 2 2 78 + 54 68 2 2 77 + 56 68 2 2 81 + 58 68 2 2 78 + 60 68 2 2 86 + 62 68 2 2 73 + 64 68 2 2 71 + 66 68 2 2 61 + 68 68 2 2 41 + 0 70 2 2 124 + 2 70 2 2 122 + 4 70 2 2 121 + 6 70 2 2 122 + 8 70 2 2 121 + 10 70 2 2 121 + 12 70 2 2 120 + 14 70 2 2 119 + 16 70 2 2 119 + 18 70 2 2 118 + 20 70 2 2 119 + 22 70 2 2 117 + 24 70 2 2 116 + 26 70 2 2 116 + 28 70 2 2 116 + 30 70 2 2 115 + 32 70 2 2 113 + 34 70 2 2 113 + 36 70 2 2 115 + 38 70 2 2 114 + 40 70 2 2 113 + 42 70 2 2 114 + 44 70 2 2 116 + 46 70 2 2 125 + 48 70 2 2 174 + 50 70 2 2 121 + 52 70 2 2 104 + 54 70 2 2 99 + 56 70 2 2 94 + 58 70 2 2 95 + 60 70 2 2 95 + 62 70 2 2 84 + 64 70 2 2 66 + 66 70 2 2 75 + 68 70 2 2 47 + 0 72 2 2 124 + 2 72 2 2 122 + 4 72 2 2 121 + 6 72 2 2 122 + 8 72 2 2 122 + 10 72 2 2 121 + 12 72 2 2 121 + 14 72 2 2 119 + 16 72 2 2 119 + 18 72 2 2 118 + 20 72 2 2 117 + 22 72 2 2 117 + 24 72 2 2 115 + 26 72 2 2 116 + 28 72 2 2 116 + 30 72 2 2 115 + 32 72 2 2 113 + 34 72 2 2 113 + 36 72 2 2 114 + 38 72 2 2 114 + 40 72 2 2 114 + 42 72 2 2 113 + 44 72 2 2 114 + 46 72 2 2 114 + 48 72 2 2 123 + 50 72 2 2 135 + 52 72 2 2 112 + 54 72 2 2 105 + 56 72 2 2 102 + 58 72 2 2 98 + 60 72 2 2 95 + 62 72 2 2 79 + 64 72 2 2 78 + 66 72 2 2 70 + 68 72 2 2 68 + 70 72 2 2 32 + 0 74 2 2 123 + 2 74 2 2 122 + 4 74 2 2 122 + 6 74 2 2 122 + 8 74 2 2 122 + 10 74 2 2 121 + 12 74 2 2 121 + 14 74 2 2 120 + 16 74 2 2 119 + 18 74 2 2 117 + 20 74 2 2 117 + 22 74 2 2 116 + 24 74 2 2 115 + 26 74 2 2 115 + 28 74 2 2 115 + 30 74 2 2 115 + 32 74 2 2 113 + 34 74 2 2 114 + 36 74 2 2 115 + 38 74 2 2 114 + 40 74 2 2 113 + 42 74 2 2 112 + 44 74 2 2 111 + 46 74 2 2 114 + 48 74 2 2 114 + 50 74 2 2 119 + 52 74 2 2 113 + 54 74 2 2 108 + 56 74 2 2 101 + 58 74 2 2 94 + 60 74 2 2 81 + 62 74 2 2 88 + 64 74 2 2 95 + 66 74 2 2 81 + 68 74 2 2 76 + 70 74 2 2 52 + 72 74 2 2 17 + 0 76 2 2 123 + 2 76 2 2 122 + 4 76 2 2 120 + 6 76 2 2 121 + 8 76 2 2 121 + 10 76 2 2 121 + 12 76 2 2 120 + 14 76 2 2 120 + 16 76 2 2 119 + 18 76 2 2 118 + 20 76 2 2 116 + 22 76 2 2 117 + 24 76 2 2 115 + 26 76 2 2 114 + 28 76 2 2 115 + 30 76 2 2 115 + 32 76 2 2 114 + 34 76 2 2 113 + 36 76 2 2 114 + 38 76 2 2 113 + 40 76 2 2 113 + 42 76 2 2 113 + 44 76 2 2 110 + 46 76 2 2 111 + 48 76 2 2 112 + 50 76 2 2 110 + 52 76 2 2 109 + 54 76 2 2 108 + 56 76 2 2 105 + 58 76 2 2 101 + 60 76 2 2 95 + 62 76 2 2 98 + 64 76 2 2 97 + 66 76 2 2 96 + 68 76 2 2 90 + 70 76 2 2 50 + 74 76 2 2 22 + 76 76 2 2 15 + 78 76 2 2 9 + 0 78 2 2 123 + 2 78 2 2 122 + 4 78 2 2 121 + 6 78 2 2 119 + 8 78 2 2 120 + 10 78 2 2 120 + 12 78 2 2 119 + 14 78 2 2 119 + 16 78 2 2 119 + 18 78 2 2 118 + 20 78 2 2 116 + 22 78 2 2 116 + 24 78 2 2 114 + 26 78 2 2 114 + 28 78 2 2 115 + 30 78 2 2 114 + 32 78 2 2 113 + 34 78 2 2 111 + 36 78 2 2 113 + 38 78 2 2 114 + 40 78 2 2 113 + 42 78 2 2 113 + 44 78 2 2 111 + 46 78 2 2 110 + 48 78 2 2 111 + 50 78 2 2 108 + 52 78 2 2 107 + 54 78 2 2 107 + 56 78 2 2 107 + 58 78 2 2 105 + 60 78 2 2 102 + 62 78 2 2 101 + 64 78 2 2 98 + 66 78 2 2 99 + 68 78 2 2 96 + 70 78 2 2 85 + 72 78 2 2 63 + 74 78 2 2 59 + 76 78 2 2 42 + 78 78 2 2 14 + 0 80 2 2 122 + 2 80 2 2 121 + 4 80 2 2 120 + 6 80 2 2 119 + 8 80 2 2 119 + 10 80 2 2 119 + 12 80 2 2 118 + 14 80 2 2 117 + 16 80 2 2 117 + 18 80 2 2 118 + 20 80 2 2 117 + 22 80 2 2 114 + 24 80 2 2 115 + 26 80 2 2 115 + 28 80 2 2 113 + 30 80 2 2 113 + 32 80 2 2 112 + 34 80 2 2 111 + 36 80 2 2 112 + 38 80 2 2 114 + 40 80 2 2 113 + 42 80 2 2 113 + 44 80 2 2 112 + 46 80 2 2 112 + 48 80 2 2 110 + 50 80 2 2 109 + 52 80 2 2 108 + 54 80 2 2 108 + 56 80 2 2 109 + 58 80 2 2 106 + 60 80 2 2 106 + 62 80 2 2 104 + 64 80 2 2 103 + 66 80 2 2 99 + 68 80 2 2 99 + 70 80 2 2 98 + 72 80 2 2 89 + 74 80 2 2 84 + 76 80 2 2 66 + 78 80 2 2 51 + 80 80 2 2 42 + 84 80 2 2 14 + 86 80 2 2 8 + 0 82 2 2 123 + 2 82 2 2 122 + 4 82 2 2 120 + 6 82 2 2 118 + 8 82 2 2 117 + 10 82 2 2 118 + 12 82 2 2 118 + 14 82 2 2 117 + 16 82 2 2 117 + 18 82 2 2 117 + 20 82 2 2 116 + 22 82 2 2 115 + 24 82 2 2 114 + 26 82 2 2 115 + 28 82 2 2 114 + 30 82 2 2 113 + 32 82 2 2 112 + 34 82 2 2 111 + 36 82 2 2 109 + 38 82 2 2 113 + 40 82 2 2 113 + 42 82 2 2 113 + 44 82 2 2 112 + 46 82 2 2 111 + 48 82 2 2 109 + 50 82 2 2 109 + 52 82 2 2 108 + 54 82 2 2 109 + 56 82 2 2 109 + 58 82 2 2 108 + 60 82 2 2 106 + 62 82 2 2 106 + 64 82 2 2 105 + 66 82 2 2 103 + 68 82 2 2 100 + 70 82 2 2 100 + 72 82 2 2 95 + 74 82 2 2 94 + 76 82 2 2 86 + 78 82 2 2 70 + 80 82 2 2 65 + 82 82 2 2 44 + 84 82 2 2 26 + 86 82 2 2 16 + 88 82 2 2 12 + 0 84 2 2 122 + 2 84 2 2 121 + 4 84 2 2 120 + 6 84 2 2 118 + 8 84 2 2 117 + 10 84 2 2 117 + 12 84 2 2 118 + 14 84 2 2 118 + 16 84 2 2 117 + 18 84 2 2 117 + 20 84 2 2 117 + 22 84 2 2 116 + 24 84 2 2 114 + 26 84 2 2 115 + 28 84 2 2 114 + 30 84 2 2 113 + 32 84 2 2 111 + 34 84 2 2 109 + 36 84 2 2 110 + 38 84 2 2 111 + 40 84 2 2 112 + 42 84 2 2 112 + 44 84 2 2 111 + 46 84 2 2 111 + 48 84 2 2 110 + 50 84 2 2 109 + 52 84 2 2 108 + 54 84 2 2 109 + 56 84 2 2 108 + 58 84 2 2 107 + 60 84 2 2 108 + 62 84 2 2 107 + 64 84 2 2 106 + 66 84 2 2 104 + 68 84 2 2 102 + 70 84 2 2 101 + 72 84 2 2 98 + 74 84 2 2 97 + 76 84 2 2 97 + 78 84 2 2 90 + 80 84 2 2 81 + 82 84 2 2 76 + 84 84 2 2 63 + 86 84 2 2 53 + 88 84 2 2 46 + 90 84 2 2 45 + 92 84 2 2 30 + 94 84 2 2 25 + 96 84 2 2 27 + 98 84 2 2 24 + 100 84 2 2 21 + 102 84 2 2 17 + 0 86 2 2 122 + 2 86 2 2 121 + 4 86 2 2 119 + 6 86 2 2 117 + 8 86 2 2 116 + 10 86 2 2 117 + 12 86 2 2 117 + 14 86 2 2 118 + 16 86 2 2 118 + 18 86 2 2 117 + 20 86 2 2 117 + 22 86 2 2 116 + 24 86 2 2 115 + 26 86 2 2 115 + 28 86 2 2 115 + 30 86 2 2 112 + 32 86 2 2 111 + 34 86 2 2 107 + 36 86 2 2 108 + 38 86 2 2 109 + 40 86 2 2 110 + 42 86 2 2 111 + 44 86 2 2 112 + 46 86 2 2 111 + 48 86 2 2 110 + 50 86 2 2 108 + 52 86 2 2 108 + 54 86 2 2 108 + 56 86 2 2 108 + 58 86 2 2 108 + 60 86 2 2 108 + 62 86 2 2 107 + 64 86 2 2 106 + 66 86 2 2 105 + 68 86 2 2 104 + 70 86 2 2 103 + 72 86 2 2 102 + 74 86 2 2 100 + 76 86 2 2 99 + 78 86 2 2 96 + 80 86 2 2 92 + 82 86 2 2 88 + 84 86 2 2 77 + 86 86 2 2 76 + 88 86 2 2 77 + 90 86 2 2 73 + 92 86 2 2 61 + 94 86 2 2 57 + 96 86 2 2 54 + 98 86 2 2 46 + 100 86 2 2 47 + 102 86 2 2 44 + 0 88 2 2 125 + 2 88 2 2 122 + 4 88 2 2 119 + 6 88 2 2 117 + 8 88 2 2 116 + 10 88 2 2 117 + 12 88 2 2 118 + 14 88 2 2 118 + 16 88 2 2 117 + 18 88 2 2 114 + 20 88 2 2 116 + 22 88 2 2 115 + 24 88 2 2 115 + 26 88 2 2 113 + 28 88 2 2 114 + 30 88 2 2 113 + 32 88 2 2 112 + 34 88 2 2 107 + 36 88 2 2 108 + 38 88 2 2 111 + 40 88 2 2 109 + 42 88 2 2 111 + 44 88 2 2 111 + 46 88 2 2 110 + 48 88 2 2 109 + 50 88 2 2 109 + 52 88 2 2 108 + 54 88 2 2 109 + 56 88 2 2 109 + 58 88 2 2 109 + 60 88 2 2 110 + 62 88 2 2 107 + 64 88 2 2 106 + 66 88 2 2 106 + 68 88 2 2 105 + 70 88 2 2 104 + 72 88 2 2 102 + 74 88 2 2 101 + 76 88 2 2 100 + 78 88 2 2 99 + 80 88 2 2 97 + 82 88 2 2 95 + 84 88 2 2 93 + 86 88 2 2 92 + 88 88 2 2 89 + 90 88 2 2 88 + 92 88 2 2 85 + 94 88 2 2 82 + 96 88 2 2 76 + 98 88 2 2 69 + 100 88 2 2 68 + 102 88 2 2 66 + 0 90 2 2 126 + 2 90 2 2 128 + 4 90 2 2 123 + 6 90 2 2 119 + 8 90 2 2 118 + 10 90 2 2 116 + 12 90 2 2 116 + 14 90 2 2 117 + 16 90 2 2 118 + 18 90 2 2 116 + 20 90 2 2 116 + 22 90 2 2 114 + 24 90 2 2 114 + 26 90 2 2 113 + 28 90 2 2 114 + 30 90 2 2 113 + 32 90 2 2 112 + 34 90 2 2 109 + 36 90 2 2 107 + 38 90 2 2 109 + 40 90 2 2 110 + 42 90 2 2 110 + 44 90 2 2 110 + 46 90 2 2 109 + 48 90 2 2 109 + 50 90 2 2 108 + 52 90 2 2 106 + 54 90 2 2 107 + 56 90 2 2 109 + 58 90 2 2 109 + 60 90 2 2 108 + 62 90 2 2 107 + 64 90 2 2 107 + 66 90 2 2 106 + 68 90 2 2 106 + 70 90 2 2 104 + 72 90 2 2 103 + 74 90 2 2 103 + 76 90 2 2 102 + 78 90 2 2 100 + 80 90 2 2 100 + 82 90 2 2 99 + 84 90 2 2 97 + 86 90 2 2 95 + 88 90 2 2 92 + 90 90 2 2 92 + 92 90 2 2 90 + 94 90 2 2 89 + 96 90 2 2 87 + 98 90 2 2 85 + 100 90 2 2 83 + 102 90 2 2 83 + 0 92 2 2 121 + 2 92 2 2 124 + 4 92 2 2 126 + 6 92 2 2 121 + 8 92 2 2 118 + 10 92 2 2 117 + 12 92 2 2 116 + 14 92 2 2 116 + 16 92 2 2 117 + 18 92 2 2 117 + 20 92 2 2 115 + 22 92 2 2 115 + 24 92 2 2 114 + 26 92 2 2 113 + 28 92 2 2 111 + 30 92 2 2 113 + 32 92 2 2 112 + 34 92 2 2 111 + 36 92 2 2 109 + 38 92 2 2 110 + 40 92 2 2 109 + 42 92 2 2 108 + 44 92 2 2 109 + 46 92 2 2 109 + 48 92 2 2 108 + 50 92 2 2 107 + 52 92 2 2 106 + 54 92 2 2 105 + 56 92 2 2 106 + 58 92 2 2 108 + 60 92 2 2 108 + 62 92 2 2 107 + 64 92 2 2 107 + 66 92 2 2 107 + 68 92 2 2 105 + 70 92 2 2 105 + 72 92 2 2 105 + 74 92 2 2 104 + 76 92 2 2 103 + 78 92 2 2 101 + 80 92 2 2 99 + 82 92 2 2 99 + 84 92 2 2 98 + 86 92 2 2 97 + 88 92 2 2 95 + 90 92 2 2 93 + 92 92 2 2 93 + 94 92 2 2 92 + 96 92 2 2 90 + 98 92 2 2 88 + 100 92 2 2 87 + 102 92 2 2 87 + 0 94 2 2 121 + 2 94 2 2 120 + 4 94 2 2 122 + 6 94 2 2 123 + 8 94 2 2 119 + 10 94 2 2 117 + 12 94 2 2 117 + 14 94 2 2 117 + 16 94 2 2 117 + 18 94 2 2 116 + 20 94 2 2 117 + 22 94 2 2 116 + 24 94 2 2 114 + 26 94 2 2 114 + 28 94 2 2 113 + 30 94 2 2 112 + 32 94 2 2 112 + 34 94 2 2 112 + 36 94 2 2 110 + 38 94 2 2 110 + 40 94 2 2 109 + 42 94 2 2 109 + 44 94 2 2 108 + 46 94 2 2 108 + 48 94 2 2 107 + 50 94 2 2 106 + 52 94 2 2 106 + 54 94 2 2 105 + 56 94 2 2 105 + 58 94 2 2 105 + 60 94 2 2 107 + 62 94 2 2 106 + 64 94 2 2 104 + 66 94 2 2 104 + 68 94 2 2 105 + 70 94 2 2 106 + 72 94 2 2 104 + 74 94 2 2 103 + 76 94 2 2 102 + 78 94 2 2 101 + 80 94 2 2 101 + 82 94 2 2 100 + 84 94 2 2 99 + 86 94 2 2 97 + 88 94 2 2 96 + 90 94 2 2 95 + 92 94 2 2 94 + 94 94 2 2 93 + 96 94 2 2 92 + 98 94 2 2 91 + 100 94 2 2 89 + 102 94 2 2 89 + 0 96 2 2 123 + 2 96 2 2 120 + 4 96 2 2 121 + 6 96 2 2 120 + 8 96 2 2 120 + 10 96 2 2 116 + 12 96 2 2 118 + 14 96 2 2 118 + 16 96 2 2 117 + 18 96 2 2 117 + 20 96 2 2 116 + 22 96 2 2 115 + 24 96 2 2 113 + 26 96 2 2 114 + 28 96 2 2 114 + 30 96 2 2 114 + 32 96 2 2 113 + 34 96 2 2 112 + 36 96 2 2 111 + 38 96 2 2 110 + 40 96 2 2 110 + 42 96 2 2 109 + 44 96 2 2 108 + 46 96 2 2 107 + 48 96 2 2 107 + 50 96 2 2 107 + 52 96 2 2 109 + 54 96 2 2 107 + 56 96 2 2 107 + 58 96 2 2 105 + 60 96 2 2 105 + 62 96 2 2 105 + 64 96 2 2 104 + 66 96 2 2 105 + 68 96 2 2 104 + 70 96 2 2 104 + 72 96 2 2 105 + 74 96 2 2 105 + 76 96 2 2 103 + 78 96 2 2 102 + 80 96 2 2 102 + 82 96 2 2 101 + 84 96 2 2 101 + 86 96 2 2 99 + 88 96 2 2 97 + 90 96 2 2 96 + 92 96 2 2 96 + 94 96 2 2 94 + 96 96 2 2 93 + 98 96 2 2 92 + 100 96 2 2 90 + 102 96 2 2 90 + 0 98 2 2 128 + 2 98 2 2 122 + 4 98 2 2 119 + 6 98 2 2 120 + 8 98 2 2 120 + 10 98 2 2 119 + 12 98 2 2 118 + 14 98 2 2 117 + 16 98 2 2 117 + 18 98 2 2 115 + 20 98 2 2 114 + 22 98 2 2 115 + 24 98 2 2 114 + 26 98 2 2 114 + 28 98 2 2 113 + 30 98 2 2 113 + 32 98 2 2 113 + 34 98 2 2 112 + 36 98 2 2 110 + 38 98 2 2 112 + 40 98 2 2 111 + 42 98 2 2 110 + 44 98 2 2 109 + 46 98 2 2 108 + 48 98 2 2 107 + 50 98 2 2 110 + 52 98 2 2 109 + 54 98 2 2 109 + 56 98 2 2 107 + 58 98 2 2 105 + 60 98 2 2 104 + 62 98 2 2 104 + 64 98 2 2 105 + 66 98 2 2 104 + 68 98 2 2 104 + 70 98 2 2 104 + 72 98 2 2 103 + 74 98 2 2 104 + 76 98 2 2 103 + 78 98 2 2 103 + 80 98 2 2 103 + 82 98 2 2 102 + 84 98 2 2 101 + 86 98 2 2 100 + 88 98 2 2 99 + 90 98 2 2 98 + 92 98 2 2 97 + 94 98 2 2 95 + 96 98 2 2 94 + 98 98 2 2 92 + 100 98 2 2 91 + 102 98 2 2 91 + 0 100 2 2 129 + 2 100 2 2 126 + 4 100 2 2 123 + 6 100 2 2 121 + 8 100 2 2 120 + 10 100 2 2 119 + 12 100 2 2 119 + 14 100 2 2 118 + 16 100 2 2 116 + 18 100 2 2 115 + 20 100 2 2 115 + 22 100 2 2 114 + 24 100 2 2 115 + 26 100 2 2 114 + 28 100 2 2 113 + 30 100 2 2 114 + 32 100 2 2 113 + 34 100 2 2 112 + 36 100 2 2 111 + 38 100 2 2 112 + 40 100 2 2 110 + 42 100 2 2 110 + 44 100 2 2 110 + 46 100 2 2 109 + 48 100 2 2 109 + 50 100 2 2 108 + 52 100 2 2 108 + 54 100 2 2 108 + 56 100 2 2 106 + 58 100 2 2 105 + 60 100 2 2 104 + 62 100 2 2 105 + 64 100 2 2 105 + 66 100 2 2 105 + 68 100 2 2 103 + 70 100 2 2 103 + 72 100 2 2 102 + 74 100 2 2 103 + 76 100 2 2 102 + 78 100 2 2 102 + 80 100 2 2 102 + 82 100 2 2 102 + 84 100 2 2 101 + 86 100 2 2 100 + 88 100 2 2 99 + 90 100 2 2 98 + 92 100 2 2 97 + 94 100 2 2 97 + 96 100 2 2 96 + 98 100 2 2 95 + 100 100 2 2 94 + 102 100 2 2 93 + 0 102 2 2 125 + 2 102 2 2 125 + 4 102 2 2 124 + 6 102 2 2 121 + 8 102 2 2 120 + 10 102 2 2 118 + 12 102 2 2 118 + 14 102 2 2 117 + 16 102 2 2 117 + 18 102 2 2 115 + 20 102 2 2 115 + 22 102 2 2 115 + 24 102 2 2 114 + 26 102 2 2 114 + 28 102 2 2 114 + 30 102 2 2 113 + 32 102 2 2 112 + 34 102 2 2 113 + 36 102 2 2 111 + 38 102 2 2 111 + 40 102 2 2 110 + 42 102 2 2 110 + 44 102 2 2 110 + 46 102 2 2 111 + 48 102 2 2 109 + 50 102 2 2 108 + 52 102 2 2 108 + 54 102 2 2 108 + 56 102 2 2 107 + 58 102 2 2 105 + 60 102 2 2 105 + 62 102 2 2 103 + 64 102 2 2 105 + 66 102 2 2 104 + 68 102 2 2 105 + 70 102 2 2 103 + 72 102 2 2 103 + 74 102 2 2 102 + 76 102 2 2 101 + 78 102 2 2 101 + 80 102 2 2 101 + 82 102 2 2 100 + 84 102 2 2 100 + 86 102 2 2 99 + 88 102 2 2 99 + 90 102 2 2 98 + 92 102 2 2 98 + 94 102 2 2 95 + 96 102 2 2 95 + 98 102 2 2 95 + 100 102 2 2 94 + 102 102 2 2 93 + 0 104 2 2 124 + 2 104 2 2 123 + 4 104 2 2 121 + 6 104 2 2 121 + 8 104 2 2 121 + 10 104 2 2 119 + 12 104 2 2 117 + 14 104 2 2 116 + 16 104 2 2 116 + 18 104 2 2 115 + 20 104 2 2 115 + 22 104 2 2 114 + 24 104 2 2 114 + 26 104 2 2 114 + 28 104 2 2 113 + 30 104 2 2 113 + 32 104 2 2 112 + 34 104 2 2 112 + 36 104 2 2 110 + 38 104 2 2 109 + 40 104 2 2 110 + 42 104 2 2 110 + 44 104 2 2 111 + 46 104 2 2 110 + 48 104 2 2 109 + 50 104 2 2 108 + 52 104 2 2 108 + 54 104 2 2 108 + 56 104 2 2 107 + 58 104 2 2 106 + 60 104 2 2 105 + 62 104 2 2 103 + 64 104 2 2 104 + 66 104 2 2 105 + 68 104 2 2 104 + 70 104 2 2 104 + 72 104 2 2 104 + 74 104 2 2 102 + 76 104 2 2 102 + 78 104 2 2 101 + 80 104 2 2 101 + 82 104 2 2 100 + 84 104 2 2 99 + 86 104 2 2 99 + 88 104 2 2 98 + 90 104 2 2 97 + 92 104 2 2 97 + 94 104 2 2 96 + 96 104 2 2 96 + 98 104 2 2 96 + 100 104 2 2 94 + 102 104 2 2 94 + 0 106 2 2 122 + 2 106 2 2 122 + 4 106 2 2 122 + 6 106 2 2 120 + 8 106 2 2 120 + 10 106 2 2 119 + 12 106 2 2 115 + 14 106 2 2 115 + 16 106 2 2 116 + 18 106 2 2 117 + 20 106 2 2 115 + 22 106 2 2 114 + 24 106 2 2 114 + 26 106 2 2 113 + 28 106 2 2 113 + 30 106 2 2 112 + 32 106 2 2 112 + 34 106 2 2 111 + 36 106 2 2 110 + 38 106 2 2 110 + 40 106 2 2 110 + 42 106 2 2 111 + 44 106 2 2 110 + 46 106 2 2 109 + 48 106 2 2 109 + 50 106 2 2 108 + 52 106 2 2 107 + 54 106 2 2 107 + 56 106 2 2 106 + 58 106 2 2 106 + 60 106 2 2 105 + 62 106 2 2 104 + 64 106 2 2 102 + 66 106 2 2 103 + 68 106 2 2 105 + 70 106 2 2 104 + 72 106 2 2 103 + 74 106 2 2 103 + 76 106 2 2 102 + 78 106 2 2 101 + 80 106 2 2 102 + 82 106 2 2 101 + 84 106 2 2 99 + 86 106 2 2 99 + 88 106 2 2 98 + 90 106 2 2 97 + 92 106 2 2 97 + 94 106 2 2 96 + 96 106 2 2 96 + 98 106 2 2 95 + 100 106 2 2 95 + 102 106 2 2 96 + 0 108 2 2 122 + 2 108 2 2 121 + 4 108 2 2 119 + 6 108 2 2 118 + 8 108 2 2 119 + 10 108 2 2 118 + 12 108 2 2 117 + 14 108 2 2 116 + 16 108 2 2 116 + 18 108 2 2 116 + 20 108 2 2 115 + 22 108 2 2 114 + 24 108 2 2 113 + 26 108 2 2 113 + 28 108 2 2 113 + 30 108 2 2 112 + 32 108 2 2 111 + 34 108 2 2 110 + 36 108 2 2 111 + 38 108 2 2 110 + 40 108 2 2 111 + 42 108 2 2 110 + 44 108 2 2 110 + 46 108 2 2 110 + 48 108 2 2 107 + 50 108 2 2 108 + 52 108 2 2 107 + 54 108 2 2 106 + 56 108 2 2 107 + 58 108 2 2 106 + 60 108 2 2 106 + 62 108 2 2 104 + 64 108 2 2 104 + 66 108 2 2 102 + 68 108 2 2 102 + 70 108 2 2 106 + 72 108 2 2 103 + 74 108 2 2 101 + 76 108 2 2 102 + 78 108 2 2 102 + 80 108 2 2 102 + 82 108 2 2 100 + 84 108 2 2 100 + 86 108 2 2 99 + 88 108 2 2 98 + 90 108 2 2 98 + 92 108 2 2 97 + 94 108 2 2 97 + 96 108 2 2 97 + 98 108 2 2 96 + 100 108 2 2 95 + 102 108 2 2 95 + 0 110 2 2 120 + 2 110 2 2 119 + 4 110 2 2 118 + 6 110 2 2 117 + 8 110 2 2 118 + 10 110 2 2 117 + 12 110 2 2 118 + 14 110 2 2 115 + 16 110 2 2 115 + 18 110 2 2 116 + 20 110 2 2 114 + 22 110 2 2 113 + 24 110 2 2 113 + 26 110 2 2 113 + 28 110 2 2 112 + 30 110 2 2 111 + 32 110 2 2 111 + 34 110 2 2 111 + 36 110 2 2 111 + 38 110 2 2 110 + 40 110 2 2 109 + 42 110 2 2 109 + 44 110 2 2 109 + 46 110 2 2 109 + 48 110 2 2 108 + 50 110 2 2 107 + 52 110 2 2 107 + 54 110 2 2 107 + 56 110 2 2 106 + 58 110 2 2 107 + 60 110 2 2 105 + 62 110 2 2 104 + 64 110 2 2 104 + 66 110 2 2 102 + 68 110 2 2 102 + 70 110 2 2 102 + 72 110 2 2 108 + 74 110 2 2 111 + 76 110 2 2 102 + 78 110 2 2 101 + 80 110 2 2 101 + 82 110 2 2 101 + 84 110 2 2 99 + 86 110 2 2 97 + 88 110 2 2 100 + 90 110 2 2 98 + 92 110 2 2 96 + 94 110 2 2 96 + 96 110 2 2 97 + 98 110 2 2 97 + 100 110 2 2 98 + 102 110 2 2 98 + 0 112 2 2 119 + 2 112 2 2 118 + 4 112 2 2 117 + 6 112 2 2 117 + 8 112 2 2 117 + 10 112 2 2 117 + 12 112 2 2 116 + 14 112 2 2 115 + 16 112 2 2 113 + 18 112 2 2 114 + 20 112 2 2 114 + 22 112 2 2 113 + 24 112 2 2 113 + 26 112 2 2 112 + 28 112 2 2 112 + 30 112 2 2 111 + 32 112 2 2 111 + 34 112 2 2 111 + 36 112 2 2 110 + 38 112 2 2 110 + 40 112 2 2 109 + 42 112 2 2 109 + 44 112 2 2 108 + 46 112 2 2 108 + 48 112 2 2 106 + 50 112 2 2 106 + 52 112 2 2 106 + 54 112 2 2 106 + 56 112 2 2 106 + 58 112 2 2 106 + 60 112 2 2 104 + 62 112 2 2 104 + 64 112 2 2 103 + 66 112 2 2 103 + 68 112 2 2 101 + 70 112 2 2 102 + 72 112 2 2 99 + 74 112 2 2 99 + 76 112 2 2 110 + 78 112 2 2 106 + 80 112 2 2 102 + 82 112 2 2 98 + 84 112 2 2 98 + 86 112 2 2 98 + 88 112 2 2 98 + 90 112 2 2 97 + 92 112 2 2 96 + 94 112 2 2 97 + 96 112 2 2 98 + 98 112 2 2 99 + 100 112 2 2 98 + 102 112 2 2 98 + 0 114 2 2 119 + 2 114 2 2 118 + 4 114 2 2 117 + 6 114 2 2 117 + 8 114 2 2 116 + 10 114 2 2 117 + 12 114 2 2 115 + 14 114 2 2 115 + 16 114 2 2 113 + 18 114 2 2 112 + 20 114 2 2 113 + 22 114 2 2 113 + 24 114 2 2 113 + 26 114 2 2 112 + 28 114 2 2 112 + 30 114 2 2 111 + 32 114 2 2 112 + 34 114 2 2 111 + 36 114 2 2 111 + 38 114 2 2 110 + 40 114 2 2 108 + 42 114 2 2 109 + 44 114 2 2 107 + 46 114 2 2 107 + 48 114 2 2 107 + 50 114 2 2 107 + 52 114 2 2 105 + 54 114 2 2 105 + 56 114 2 2 105 + 58 114 2 2 105 + 60 114 2 2 104 + 62 114 2 2 104 + 64 114 2 2 103 + 66 114 2 2 103 + 68 114 2 2 101 + 70 114 2 2 101 + 72 114 2 2 99 + 74 114 2 2 99 + 76 114 2 2 97 + 78 114 2 2 97 + 80 114 2 2 97 + 82 114 2 2 97 + 84 114 2 2 97 + 86 114 2 2 97 + 88 114 2 2 98 + 90 114 2 2 97 + 92 114 2 2 97 + 94 114 2 2 96 + 96 114 2 2 98 + 98 114 2 2 99 + 100 114 2 2 97 + 102 114 2 2 97 + 0 116 2 2 118 + 2 116 2 2 117 + 4 116 2 2 117 + 6 116 2 2 117 + 8 116 2 2 117 + 10 116 2 2 115 + 12 116 2 2 114 + 14 116 2 2 113 + 16 116 2 2 113 + 18 116 2 2 112 + 20 116 2 2 111 + 22 116 2 2 112 + 24 116 2 2 112 + 26 116 2 2 112 + 28 116 2 2 111 + 30 116 2 2 111 + 32 116 2 2 111 + 34 116 2 2 111 + 36 116 2 2 111 + 38 116 2 2 109 + 40 116 2 2 108 + 42 116 2 2 109 + 44 116 2 2 108 + 46 116 2 2 107 + 48 116 2 2 106 + 50 116 2 2 107 + 52 116 2 2 106 + 54 116 2 2 105 + 56 116 2 2 105 + 58 116 2 2 105 + 60 116 2 2 105 + 62 116 2 2 104 + 64 116 2 2 104 + 66 116 2 2 103 + 68 116 2 2 103 + 70 116 2 2 101 + 72 116 2 2 99 + 74 116 2 2 98 + 76 116 2 2 98 + 78 116 2 2 98 + 80 116 2 2 97 + 82 116 2 2 96 + 84 116 2 2 96 + 86 116 2 2 96 + 88 116 2 2 96 + 90 116 2 2 97 + 92 116 2 2 97 + 94 116 2 2 97 + 96 116 2 2 97 + 98 116 2 2 97 + 100 116 2 2 95 + 102 116 2 2 95 + 0 118 2 2 118 + 2 118 2 2 118 + 4 118 2 2 117 + 6 118 2 2 117 + 8 118 2 2 117 + 10 118 2 2 115 + 12 118 2 2 114 + 14 118 2 2 112 + 16 118 2 2 113 + 18 118 2 2 112 + 20 118 2 2 110 + 22 118 2 2 112 + 24 118 2 2 112 + 26 118 2 2 112 + 28 118 2 2 111 + 30 118 2 2 111 + 32 118 2 2 110 + 34 118 2 2 112 + 36 118 2 2 110 + 38 118 2 2 110 + 40 118 2 2 109 + 42 118 2 2 109 + 44 118 2 2 108 + 46 118 2 2 108 + 48 118 2 2 106 + 50 118 2 2 106 + 52 118 2 2 106 + 54 118 2 2 105 + 56 118 2 2 106 + 58 118 2 2 105 + 60 118 2 2 105 + 62 118 2 2 104 + 64 118 2 2 105 + 66 118 2 2 103 + 68 118 2 2 102 + 70 118 2 2 102 + 72 118 2 2 99 + 74 118 2 2 99 + 76 118 2 2 98 + 78 118 2 2 98 + 80 118 2 2 97 + 82 118 2 2 96 + 84 118 2 2 96 + 86 118 2 2 96 + 88 118 2 2 96 + 90 118 2 2 96 + 92 118 2 2 97 + 94 118 2 2 98 + 96 118 2 2 97 + 98 118 2 2 97 + 100 118 2 2 95 + 102 118 2 2 95 diff --git a/regtests/ww3_tp2.14/input/TOYNAMELIST.nam.OASACM6 b/regtests/ww3_tp2.14/input/TOYNAMELIST.nam.OASACM6 new file mode 100755 index 000000000..14840249c --- /dev/null +++ b/regtests/ww3_tp2.14/input/TOYNAMELIST.nam.OASACM6 @@ -0,0 +1,14 @@ +&NAM_OASIS IL_NB_TIME_STEPS=20, + DELTA_T=180, + DATA_FILENAME='grid_toy_model.nc' / + +&NAM_FCT_SEND CTYPE_FCT='FILES', + CNAME_FILE='toy_coupled_field.nc', + VALUE=10 / + +&NAM_RECV_FIELDS NB_RECV_FIELDS=1, + CRCVFIELDS(1)='TOY__CHA' / + +&NAM_SEND_FIELDS NB_SEND_FIELDS=2, + CSNDFIELDS(1)='TOY_U10M', + CSNDFIELDS(2)='TOY_V10M' / diff --git a/regtests/ww3_tp2.14/input/namcouple.OASACM6 b/regtests/ww3_tp2.14/input/namcouple.OASACM6 new file mode 100755 index 000000000..390a7b3ff --- /dev/null +++ b/regtests/ww3_tp2.14/input/namcouple.OASACM6 @@ -0,0 +1,135 @@ +# This is a typical input file for OASIS3-MCT. +# Keywords used in previous versions of OASIS3 +# but now obsolete are marked "Not used" +# Don't hesitate to ask precisions or make suggestions (oasishelp@cerfacs.fr). +# +# Any line beginning with # is ignored. Blank lines are not allowed. +# +######################################################################### + $NFIELDS +# The number of fields described in the second part of the namcouple. +# + 3 + $END +######################################################################### + $NBMODEL +# The number of models in this experiment + their names (6 characters) +# + 2 toyexe wwatch + $END +########################################################################### + $RUNTIME +# The total simulated time for this run in seconds +# + 3600 + $END +########################################################################### + $NLOGPRT +# The first (0 to 30) and second (0 to 3) numbers refer to the ammount of +# debug and time statistic information written by OASIS3-MCT for each model +# and processor (see user manual for more details) +# + 1 + $END +########################################################################### + $STRINGS +# +# The above variables are the general parameters for the experiment. +# Everything below has to do with the fields being exchanged. +# +# line 1: field in ww3 model, field in target model, unused, coupling +# period, number of transformation, restart file, field status +# line 2: nb of pts for ww3 grid without halo first dim, and second dim, +# for target grid first dim, and second dim (optionals, default=0), +# ww3 grid name, target grid name, lag index +# line 3: ww3 grid periodical (P) or regional (R), and nb of overlapping +# points, target grid periodical (P) or regional (R), and number of +# overlapping points +# line 4: list of transformations performed +# line 5: parameters for each transformation +# +# See the correspondances between WW3 and OASIS fields below: +# +# |--------------------------------------------------------------| +# | received fields by ww3 from Ocean model : WW3 | OASIS | +# |--------------------------------------------------------------| +# | not defined | WW3_OWDH WW3_OWDU WW3_OWDV | +# | SSH | WW3__SSH | +# | CUR | WW3_OSSU WW3_OSSV | +# |--------------------------------------------------------------| +# | received fields by ww3 from Atmospheric model : WW3 | OASIS | +# --------------------------------------------------------------| +# | WND | WW3__U10 WW3__V10 | +# |--------------------------------------------------------------| +# | received fields by ww3 from Ice model : WW3 | OASIS | +# --------------------------------------------------------------| +# | ICE | WW3__ICE | +# | IC1 | WW3__IC1 | +# | IC5 | WW3__IC5 | +# |--------------------------------------------------------------| +# | sent fields by ww3 to Ocean model : WW3 | OASIS | +# |--------------------------------------------------------------| +# | not defined | WW3_ODRY | +# | T0M1 | WW3_T0M1 | +# | HS | WW3__OHS | +# | DIR | WW3_CDIR WW3_SDIR | +# | BHD | WW3__BHD | +# | TWO | WW3_TWOX WW3_TWOY | +# | UBR | WW3__UBR | +# | FOC | WW3__FOC | +# | TAW | WW3_TAWX WW3_TAWY | +# | LM | WW3___LM | +# | OCHA | WW3_OCHA | +# |--------------------------------------------------------------| +# | sent fields by ww3 to Atmospheric model : WW3 | OASIS | +# |--------------------------------------------------------------| +# | CUR | WW3_WSSU WW3_WSSV | +# | ACHA | WW3_ACHA | +# | HS | WW3__AHS | +# | FP | WW3___FP | +# | FWS | WW3__FWS | +# |--------------------------------------------------------------| +# | sent fields by ww3 to Ice model : WW3 | OASIS | +# |--------------------------------------------------------------| +# | TWI | WW3_TWIX WW3_TWIY | +# | IC5 | WW3_ICEF | +# |--------------------------------------------------------------| +# +# +# +# ------------------------------------------ +# TOY (toyexe) ==> WW3 (wwatch) +# ------------------------------------------ +# +#~~~~~~~~~~~ +# Field 1 : +#~~~~~~~~~~~ +TOY_U10M WW3__U10 1 180 1 r-toy.nc EXPOUT +80 80 2889 1 toyt ww3t +R 0 R 0 +MAPPING +../input/rmp_toyt_to_ww3t_NEARESTSTOD.nc +# +#~~~~~~~~~~~ +# Field 2 : +#~~~~~~~~~~~ +TOY_V10M WW3__V10 1 180 1 r-toy.nc EXPOUT +80 80 2889 1 toyt ww3t +R 0 R 0 +MAPPING +../input/rmp_toyt_to_ww3t_NEARESTSTOD.nc +# +# ----------------------------------------- +# WW3 (wwatch) ==> TOY (toyexe) +# ----------------------------------------- +# +#~~~~~~~~~~~ +# Field 3 : +#~~~~~~~~~~~ +WW3_ACHA TOY__CHA 1 180 1 r-ww3.nc EXPOUT +2889 1 80 80 ww3t toyt +R 0 R 0 +MAPPING +../input/rmp_ww3t_to_toyt_NEARESTSTOD.nc +# + $END diff --git a/regtests/ww3_tp2.14/input/namelists_BREST.nml b/regtests/ww3_tp2.14/input/namelists_BREST.nml new file mode 100644 index 000000000..9216a3692 --- /dev/null +++ b/regtests/ww3_tp2.14/input/namelists_BREST.nml @@ -0,0 +1,2 @@ +&PSMC DTIME=10800., RFMAXD=36., LvSMC=2, NBISMC=0, CFLTM=0.1 / +END OF NAMELISTS diff --git a/regtests/ww3_tp2.14/input/switch_OASACM6 b/regtests/ww3_tp2.14/input/switch_OASACM6 new file mode 100755 index 000000000..033675aaa --- /dev/null +++ b/regtests/ww3_tp2.14/input/switch_OASACM6 @@ -0,0 +1 @@ +F90 NOGRB NC4 TRKNC DIST MPI SMC FLX0 LN1 ST4 STAB0 NL1 BT4 DB1 MLIM TR0 BS0 IC2 IS0 REF1 XX0 WNT0 WNX1 RWND CRT1 CRX1 COU OASIS OASACM O0 O1 O2 O2a O2b O2c O3 O4 O5 O6 O7 diff --git a/regtests/ww3_tp2.14/input/ww3_grid_OASACM6.inp b/regtests/ww3_tp2.14/input/ww3_grid_OASACM6.inp new file mode 100755 index 000000000..038af0771 --- /dev/null +++ b/regtests/ww3_tp2.14/input/ww3_grid_OASACM6.inp @@ -0,0 +1,290 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Grid preprocessor input file $ +$ -------------------------------------------------------------------- $ +$ Grid name (C*30, in quotes) +$ + '***** WW3 Brest3km Grid ***** ' +$ +$ Frequency increment factor and first frequency (Hz) ---------------- $ +$ number of frequencies (wavenumbers) and directions +$ +1.1 0.0373 32 24 0. +$ +$ Set model flags ---------------------------------------------------- $ +$ - FLDRY Dry run (input/output only, no calculation). +$ - FLCX, FLCY Activate X and Y component of propagation. +$ - FLCTH, FLCK Activate direction and wavenumber shifts. +$ - FLSOU Activate source terms. +$ + F T T T T T +$ +$ Set time steps ----------------------------------------------------- $ +$ - Time step information (this information is always read) +$ maximum global time step, maximum CFL time step for x-y and +$ k-theta, minimum source term time step (all in seconds). +$ + 180. 45. 45. 10. +$ +$ Start of namelist input section ------------------------------------ $ +$ Starting with WAVEWATCH III version 2.00, the tunable parameters +$ for source terms, propagation schemes, and numerics are read using +$ namelists. Any namelist found in the folowing sections up to the +$ end-of-section identifier string (see below) is temporarily written +$ to ww3_grid.scratch, and read from there if necessary. Namelists +$ not needed for the given switch settings will be skipped +$ automatically, and the order of the namelists is immaterial. +$ As an example, namelist input to change SWELLF and ZWND in the +$ Tolman and Chalikov input would be +$ +$ &SIN2 SWELLF = 0.1, ZWND = 15. / +$ +$ Define constants in source terms ----------------------------------- $ +$ +$ Input - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +$ WAM-3 : Namelist SIN1 +$ CINP : Proportionality constant. +$ &SIN1 CINP= 0.25 / +$ Tolman and Chalikov : Namelist SIN2 +$ ZWND : Height of wind (m). +$ SWELLF : swell factor in (2.48). +$ STABSH, STABOF, CNEG, CPOS, FNEG : +$ c0, ST0, c1, c2 and f1 in . (2.63) +$ through (2.65) for definition of +$ effective wind speed (!/STAB2). +$ +$ Nonlinear interactions - - - - - - - - - - - - - - - - - - - - - - - +$ Discrete I.A. : Namelist SNL1 +$ LAMBDA : Lambda in source term. +$ NLPROP : C in sourc term. NOTE : default +$ value depends on other source +$ terms selected. +$ KDCONV : Factor before kd in Eq. (2.24). +$ KDMIN, SNLCS1, SNLCS2, SNLCS3 : +$ Minimum kd, and constants c1-3 +$ in depth scaling function. +$ Exact interactions : Namelist SNL2 +$ IQTYPE : Type of depth treatment +$ 1 : Deep water +$ 2 : Deep water / WAM scaling +$ 3 : Shallow water +$ TAILNL : Parametric tail power. +$ NDEPTH : Number of depths in for which +$ integration space is established. +$ Used for IQTYPE = 3 only +$ Namelist ANL2 +$ DEPTHS : Array with depths for NDEPTH = 3 +$ +$ Dissipation - - - - - - - - - - - - - - - - - - - - - - - - - - - - +$ WAM-3 : Namelist SDS1 +$ CDIS, APM : As in source term. +$ +$ Tolman and Chalikov : Namelist SDS2 +$ SDSA0, SDSA1, SDSA2, SDSB0, SDSB1, PHIMIN : +$ Constants a0, a1, a2, b0, b1 and +$ PHImin. +$ +$ Bottom friction - - - - - - - - - - - - - - - - - - - - - - - - - - +$ JONSWAP : Namelist SBT1 +$ GAMMA : As it says. +$ +$ Propagation schemes ------------------------------------------------ $ +$ First order : Namelist PRO1 +$ CFLTM : Maximum CFL number for refraction. +$ +$ UQ with diffusion : Namelist PRO2 +$ CFLTM : Maximum CFL number for refraction. +$ FLSOFT : Flag for 'soft' land boundaries. +$ DTIME : Swell age (s) in garden sprinkler +$ correction. If 0., all diffusion +$ switched off. If small non-zero +$ (DEFAULT !!!) only wave growth +$ diffusion. +$ LATMIN : Maximum latitude used in calc. of +$ strength of diffusion for prop. +$ +$ UQ with averaging : Namelist PRO3 +$ CFLTM : Maximum CFL number for refraction. +$ FLSOFT : Flag for 'soft' land boundaries. +$ WDTHCG : Tuning factor propag. direction. +$ WDTHTH : Tuning factor normal direction. +$ +$ UQ with divergence : Namelist PRO4 +$ CFLTM : Maximum CFL number for refraction. +$ FLSOFT : Flag for 'soft' land boundaries. +$ QTFAC : Tuning factor Eq. (3.41). +$ RSFAC : Tuning factor Eq. (3.42). +$ RNFAC : Tuning factor Eq. (3.43). +$ +$ Miscellaneous ------------------------------------------------------ $ +$ Misc. parameters : Namelist MISC +$ CICE0 : Ice concentration cut-off. +$ CICEN : Ice concentration cut-off. +$ XSEED : Xseed in seeding alg. (!/SEED). +$ FLAGTR : Indicating presence and type of +$ subgrid information : +$ 0 : No subgrid information. +$ 1 : Transparancies at cell boun- +$ daries between grid points. +$ 2 : Transp. at cell centers. +$ 3 : Like 1 with cont. ice. +$ 4 : Like 2 with cont. ice. +$ XP, XR, XFILT +$ Xp, Xr and Xf for the dynamic +$ integration scheme. +$ +$ In the 'Out of the box' test setup we run with sub-grid obstacles +$ and with continuous ice treatment. +$ +$ &MISC CICE0 = 0.25, CICEN = 0.75, FLAGTR = 4 / +$ +$ Mandatory string to identify end of namelist input section. +$ + &PSMC DTIME=10800.,RFMAXD=36.,LvSMC=2,NBISMC=0,CFLTM=0.1 / +END OF NAMELISTS +$ +$ Define grid -------------------------------------------------------- $ +$ Four records containing : +$ 1 NX, NY. As the outer grid lines are always defined as land +$ points, the minimum size is 3x3. +$ 2 Grid increments SX, SY (degr.or m) and scaling (division) factor. +$ If NX*SX = 360., latitudinal closure is applied. +$ 3 Coordinates of (1,1) (degr.) and scaling (division) factor. +$ 4 Limiting bottom depth (m) to discriminate between land and sea +$ points, minimum water depth (m) as allowed in model, unit number +$ of file with bottom depths, scale factor for bottom depths (mult.), +$ IDLA, IDFM, format for formatted read, FROM and filename. +$ IDLA : Layout indicator : +$ 1 : Read line-by-line bottom to top. +$ 2 : Like 1, single read statement. +$ 3 : Read line-by-line top to bottom. +$ 4 : Like 3, single read statement. +$ IDFM : format indicator : +$ 1 : Free format. +$ 2 : Fixed format with above format descriptor. +$ 3 : Unformatted. +$ FROM : file type parameter +$ 'UNIT' : open file by unit number only. +$ 'NAME' : open file by name and assign to unit. +$ +$ Example for longitude-latitude grid (switch !/LLG), for Cartesian +$ grid the unit is meters (NOT km). +$ + 'RECT' T 'NONE' + 52 60 + 0.0380 0.0250 1. + -6.1285 47.6313 1. + -0.1 10.0 30 -1. 1 1 '(....)' 'NAME' 'SMC_unused_file' +$ +$ If the above unit number equals 10, the bottom data is read from +$ this file and follows below (no intermediate comment lines allowed). +$ +$ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 +$ +$ If sub-grid information is avalaible as indicated by FLAGTR above, +$ additional input to define this is needed below. In such cases a +$ field of fractional obstructions at or between grid points needs to +$ be supplied. First the location and format of the data is defined +$ by (as above) : +$ - Unit number of file (can be 10, and/or identical to bottem depth +$ unit), scale factor for fractional obstruction, IDLA, IDFM, +$ format for formatted read, FROM and filename +$ +$ 10 0.2 3 1 '(....)' 'NAME' 'obstr.inp' +$ +$ *** NOTE if this unit number is the same as the previous bottom +$ depth unit number, it is assumed that this is the same file +$ without further checks. *** +$ +$ If the above unit number equals 10, the bottom data is read from +$ this file and follows below (no intermediate comment lines allowed, +$ except between the two fields). +$ +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 5 0 0 0 0 0 +$ 0 0 0 0 0 0 5 0 0 0 0 0 +$ 0 0 0 0 0 0 4 0 0 0 0 0 +$ 0 0 0 0 0 0 4 0 0 0 0 0 +$ 0 0 0 0 0 0 5 0 0 0 0 0 +$ 0 0 0 0 0 0 5 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 5 5 5 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ 0 0 0 0 0 0 0 0 0 0 0 0 +$ +$ *** NOTE size of fields is always NX * NY *** +$ +$ 10 3 1 '(....)' 'PART' 'mapsta.inp' +$ *** NOTE size of fields is always NX * NY *** +$ +$ ----------------------------------------------------------------------------- +$ SMC grid cell and face arrays from 3 spearate files. --------- $ +$ ----------------------------------------------------------------------------- +$ The first line of each file will have the array dimension parameters. +$ So the first line are read first to determine the array sizes for the +$ following array read calls. JGLi18Dec2012 +$ + 32 1 1 '(....)' '../input/BrestSMCels.dat' + 33 1 1 '(....)' '../input/BrestISides.dat' + 34 1 1 '(....)' '../input/BrestJSides.dat' + 31 1 1 '(....)' '../input/BrestObstrs.dat' +$ +$ Input boundary points ---------------------------------------------- $ +$ An unlimited number of lines identifying points at which input +$ boundary conditions are to be defined. If the actual input data is +$ not defined in the actual wave model run, the initial conditions +$ will be applied as constant boundary conditions. Each line contains: +$ Discrete grid counters (IX,IY) of the active point and a +$ connect flag. If this flag is true, and the present and previous +$ point are on a grid line or diagonal, all intermediate points +$ are also defined as boundary points. +$ +$ 103 86 F +$ 103 119 T +$ 1 119 T +$ 1 1 T +$ 103 1 T +$ 103 11 T + 39 1 1 '(....)' 'NAME' 'SMC_unused_file' +$ +$ Close list by defining point (0,0) (mandatory) +$ +$ 0 0 F +$ Excluded grid points from segment data ( FROM != PART ) +$ First defined as lines, identical to the definition of the input +$ boundary points, and closed the same way. +$ +$ 0 0 F +$ +$ Second, define a point in a closed body of sea points to remove +$ the entire body os sea points. Also close by point (0,0) +$ +$ 0 0 +$ +$ Output boundary points --------------------------------------------- $ +$ Output boundary points are defined as a number of straight lines, +$ defined by its starting point (X0,Y0), increments (DX,DY) and number +$ of points. A negative number of points starts a new output file. +$ Note that this data is only generated if requested by the actual +$ program. Example again for spherical grid in degrees. +$ +$ Close list by defining line with 0 points (mandatory) +$ + 0. 0. 0. 0. 0 +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_tp2.14/input/ww3_grid_OASACM6.nml b/regtests/ww3_tp2.14/input/ww3_grid_OASACM6.nml new file mode 100644 index 000000000..8fcd36021 --- /dev/null +++ b/regtests/ww3_tp2.14/input/ww3_grid_OASACM6.nml @@ -0,0 +1,319 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III - ww3_grid.nml - Grid pre-processing ! +! -------------------------------------------------------------------- ! + +! -------------------------------------------------------------------- ! +! Define the spectrum parameterization via SPECTRUM_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! SPECTRUM%XFR = 0. ! frequency increment +! SPECTRUM%FREQ1 = 0. ! first frequency (Hz) +! SPECTRUM%NK = 0 ! number of frequencies (wavenumbers) +! SPECTRUM%NTH = 0 ! number of direction bins +! SPECTRUM%THOFF = 0. ! relative offset of first direction [-0.5,0.5] +! -------------------------------------------------------------------- ! +&SPECTRUM_NML + SPECTRUM%XFR = 1.1 + SPECTRUM%FREQ1 = 0.0373 + SPECTRUM%NK = 32 + SPECTRUM%NTH = 24 +/ + +! -------------------------------------------------------------------- ! +! Define the run parameterization via RUN_NML namelist +! +! * namelist must be terminated with / +! * definitions & defaults: +! RUN%FLDRY = F ! dry run (I/O only, no calculation) +! RUN%FLCX = F ! x-component of propagation +! RUN%FLCY = F ! y-component of propagation +! RUN%FLCTH = F ! direction shift +! RUN%FLCK = F ! wavenumber shift +! RUN%FLSOU = F ! source terms +! -------------------------------------------------------------------- ! +&RUN_NML + RUN%FLCX = T + RUN%FLCY = T + RUN%FLCTH = T + RUN%FLCK = T + RUN%FLSOU = T +/ + +! -------------------------------------------------------------------- ! +! Define the timesteps parameterization via TIMESTEPS_NML namelist +! +! * It is highly recommended to set up time steps which are multiple +! between them. +! +! * The first time step to calculate is the maximum CFL time step +! which depend on the lowest frequency FREQ1 previously set up and the +! lowest spatial grid resolution in meters DXY. +! reminder : 1 degree=60minutes // 1minute=1mile // 1mile=1.852km +! The formula for the CFL time is : +! Tcfl = DXY / (G / (FREQ1*4*Pi) ) with the constants Pi=3,14 and G=9.8m/s²; +! DTXY ~= 90% Tcfl +! DTMAX ~= 3 * DTXY (maximum global time step limit) +! +! * The refraction time step depends on how strong can be the current velocities +! on your grid : +! DTKTH ~= DTMAX / 2 ! in case of no or light current velocities +! DTKTH ~= DTMAX / 10 ! in case of strong current velocities +! +! * The source terms time step is usually defined between 5s and 60s. +! A common value is 10s. +! DTMIN ~= 10 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TIMESTEPS%DTMAX = 0. ! maximum global time step (s) +! TIMESTEPS%DTXY = 0. ! maximum CFL time step for x-y (s) +! TIMESTEPS%DTKTH = 0. ! maximum CFL time step for k-th (s) +! TIMESTEPS%DTMIN = 0. ! minimum source term time step (s) +! -------------------------------------------------------------------- ! +&TIMESTEPS_NML + TIMESTEPS%DTMAX = 180. + TIMESTEPS%DTXY = 45. + TIMESTEPS%DTKTH = 45. + TIMESTEPS%DTMIN = 10. +/ + +! -------------------------------------------------------------------- ! +! Define the grid to preprocess via GRID_NML namelist +! +! * the tunable parameters for source terms, propagation schemes, and +! numerics are read using namelists. +! * Any namelist found in the folowing sections is temporarily written +! to param.scratch, and read from there if necessary. +! * The order of the namelists is immaterial. +! * Namelists not needed for the given switch settings will be skipped +! automatically +! +! * grid type can be : +! 'RECT' : rectilinear +! 'CURV' : curvilinear +! 'UNST' : unstructured (triangle-based) +! +! * coordinate system can be : +! 'SPHE' : Spherical (degrees) +! 'CART' : Cartesian (meters) +! +! * grid closure can only be applied in spherical coordinates +! +! * grid closure can be : +! 'NONE' : No closure is applied +! 'SMPL' : Simple grid closure. Grid is periodic in the +! : i-index and wraps at i=NX+1. In other words, +! : (NX+1,J) => (1,J). A grid with simple closure +! : may be rectilinear or curvilinear. +! 'TRPL' : Tripole grid closure : Grid is periodic in the +! : i-index and wraps at i=NX+1 and has closure at +! : j=NY+1. In other words, (NX+1,J<=NY) => (1,J) +! : and (I,NY+1) => (NX-I+1,NY). Tripole +! : grid closure requires that NX be even. A grid +! : with tripole closure must be curvilinear. +! +! * The coastline limit depth is the value which distinguish the sea +! points to the land points. All the points with depth values (ZBIN) +! greater than this limit (ZLIM) will be considered as excluded points +! and will never be wet points, even if the water level grows over. +! It can only overwrite the status of a sea point to a land point. +! The value must have a negative value under the mean sea level +! +! * The minimum water depth allowed to compute the model is the absolute +! depth value (DMIN) used in the model if the input depth is lower to +! avoid the model to blow up. +! +! * namelist must be terminated with / +! * definitions & defaults: +! GRID%NAME = 'unset' ! grid name (30 char) +! GRID%NML = 'namelists.nml' ! namelists filename +! GRID%TYPE = 'unset' ! grid type +! GRID%COORD = 'unset' ! coordinate system +! GRID%CLOS = 'unset' ! grid closure +! +! GRID%ZLIM = 0. ! coastline limit depth (m) +! GRID%DMIN = 0. ! abs. minimum water depth (m) +! -------------------------------------------------------------------- ! +&GRID_NML + GRID%NAME = '***** WW3 Brest3km Grid ***** ' + GRID%NML = '../input/namelists_BREST.nml' + GRID%TYPE = 'RECT' + GRID%COORD = 'SPHE' + GRID%CLOS = 'NONE' + GRID%ZLIM = -0.1 + GRID%DMIN = 10.0 +/ + +! -------------------------------------------------------------------- ! +! Define the rectilinear grid type via RECT_NML namelist +! - only for RECT grids - +! +! * The minimum grid size is 3x3. +! +! * If the grid increments SX and SY are given in minutes of arc, the scaling +! factor SF must be set to 60. to provide an increment factor in degree. +! +! * If CSTRG='SMPL', then SX is forced to 360/NX. +! +! * value <= value_read / scale_fac +! +! * namelist must be terminated with / +! * definitions & defaults: +! RECT%NX = 0 ! number of points along x-axis +! RECT%NY = 0 ! number of points along y-axis +! +! RECT%SX = 0. ! grid increment along x-axis +! RECT%SY = 0. ! grid increment along y-axis +! RECT%SF = 1. ! scaling division factor for x-y axis +! +! RECT%X0 = 0. ! x-coordinate of lower-left corner (deg) +! RECT%Y0 = 0. ! y-coordinate of lower-left corner (deg) +! RECT%SF0 = 1. ! scaling division factor for x0,y0 coord +! -------------------------------------------------------------------- ! +&RECT_NML + RECT%NX = 52 + RECT%NY = 60 + RECT%SX = 0.0380 + RECT%SY = 0.0250 + RECT%X0 = -6.1285 + RECT%Y0 = 47.6313 +/ + +! -------------------------------------------------------------------- ! +! Define the depth to preprocess via DEPTH_NML namelist +! - for RECT and CURV grids - +! +! * if no obstruction subgrid, need to set &MISC FLAGTR = 0 +! +! * The depth value must have negative values under the mean sea level +! +! * value <= value_read * scale_fac +! +! * IDLA : Layout indicator : +! 1 : Read line-by-line bottom to top. (default) +! 2 : Like 1, single read statement. +! 3 : Read line-by-line top to bottom. +! 4 : Like 3, single read statement. +! * IDFM : format indicator : +! 1 : Free format. (default) +! 2 : Fixed format. +! 3 : Unformatted. +! * FORMAT : element format to read : +! '(....)' : auto detected (default) +! '(f10.6)' : float type +! +! * Example : +! IDF SF IDLA IDFM FORMAT FILENAME +! 50 0.001 1 1 '(....)' 'GLOB-30M.bot' +! +! * namelist must be terminated with / +! * definitions & defaults: +! DEPTH%SF = 1. ! scale factor +! DEPTH%FILENAME = 'unset' ! filename +! DEPTH%IDF = 50 ! file unit number +! DEPTH%IDLA = 1 ! layout indicator +! DEPTH%IDFM = 1 ! format indicator +! DEPTH%FORMAT = '(....)' ! formatted read format +! -------------------------------------------------------------------- ! +&DEPTH_NML + DEPTH%SF = -1. + DEPTH%FROM = 'NAME' + DEPTH%FILENAME = 'SMC_unused_file' + DEPTH%IDF = 30 + DEPTH%FORMAT = '(....)' +/ + +! -------------------------------------------------------------------- ! +! Define the SMC grid +! -------------------------------------------------------------------- ! +&SMC_NML + SMC%MCELS%IDF = 32 + SMC%MCELS%IDLA = 1 + SMC%MCELS%IDFM = 1 + SMC%MCELS%FORMAT = '(....)' + SMC%MCELS%FILENAME = '../input/BrestSMCels.dat' + + SMC%ISIDE%IDF = 33 + SMC%ISIDE%IDLA = 1 + SMC%ISIDE%IDFM = 1 + SMC%ISIDE%FORMAT = '(....)' + SMC%ISIDE%FILENAME = '../input/BrestISides.dat' + + SMC%JSIDE%IDF = 34 + SMC%JSIDE%IDLA = 1 + SMC%JSIDE%IDFM = 1 + SMC%JSIDE%FORMAT = '(....)' + SMC%JSIDE%FILENAME = '../input/BrestJSides.dat' + + SMC%SUBTR%IDF = 31 + SMC%SUBTR%IDLA = 1 + SMC%SUBTR%IDFM = 1 + SMC%SUBTR%FORMAT = '(....)' + SMC%SUBTR%FILENAME = '../input/BrestObstrs.dat' +/ + +! -------------------------------------------------------------------- ! +! Define the mask +! -------------------------------------------------------------------- ! +&MASK_NML + MASK%IDF = 39 + MASK%IDLA = 1 + MASK%IDFM = 1 + MASK%FORMAT = '(....)' + MASK%FROM = 'NAME' + MASK%FILENAME = 'SMC_unused_file' +/ + +! -------------------------------------------------------------------- ! +! Define the input boundary points via INBND_COUNT_NML and +! INBND_POINT_NML namelist +! - for RECT, CURV and UNST grids - +! +! * If no mask defined, INBOUND can be used +! +! * If the actual input data is not defined in the actual wave model run +! the initial conditions will be applied as constant boundary conditions. +! +! * The number of points is defined by INBND_COUNT +! +! * The points must start from index 1 to N +! +! * Each line contains: +! Discrete grid counters (IX,IY) of the active point and a +! connect flag. If this flag is true, and the present and previous +! point are on a grid line or diagonal, all intermediate points +! are also defined as boundary points. +! +! * Included point : +! grid points from segment data +! Defines as lines identifying points at which +! input boundary conditions are to be defined. +! +! * namelist must be terminated with / +! * definitions & defaults: +! INBND_COUNT%N_POINT = 0 ! number of segments +! +! INBND_POINT(I)%X_INDEX = 0 ! x index included point +! INBND_POINT(I)%Y_INDEX = 0 ! y index included point +! INBND_POINT(I)%CONNECT = F ! connect flag +! +! OR +! INBND_POINT(I) = 0 0 F ! included point +! -------------------------------------------------------------------- ! +&INBND_COUNT_NML + INBND_COUNT%N_POINT = 6 +/ + +&INBND_POINT_NML + INBND_POINT(1) = 103 86 F + INBND_POINT(2) = 103 119 T + INBND_POINT(3) = 1 119 T + INBND_POINT(4) = 1 1 T + INBND_POINT(5) = 103 1 T + INBND_POINT(6) = 103 11 T +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- ! diff --git a/regtests/ww3_tp2.14/input/ww3_ounf.inp-OASACM6 b/regtests/ww3_tp2.14/input/ww3_ounf.inp-OASACM6 new file mode 100755 index 000000000..b192de6cd --- /dev/null +++ b/regtests/ww3_tp2.14/input/ww3_ounf.inp-OASACM6 @@ -0,0 +1,42 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III Grid output post-processing $ +$--------------------------------------------------------------------- $ +$ First output time (yyyymmdd hhmmss), increment of output (s), +$ and number of output times. +$ + 20080310 000000 180 100 +$ +$ Output request flags identifying fields as in ww3_shel.inp. See that +$ file for a full documentation of field output options. Namelist type +$ selection is used here (for alternative F/T flags, see ww3_shel.inp). +$ + N + HS FP DIR DP CHA UST DPT CUR WND ICE IC1 IC5 TWI +$ +$--------------------------------------------------------------------- $ +$ netCDF version [3,4] +$ and variable type 4 [2 = SHORT, 3 = it depends , 4 = REAL] +$ swell partitions [0 1 2 3 4 5] +$ variables in same file [T] or not [F] +$ + 3 4 + 0 + T +$ +$ -------------------------------------------------------------------- $ +$ File prefix +$ number of characters in date [0(nodate),4(yearly),6(monthly),8(daily),10(hourly)] +$ IX and IY ranges [regular:IX NX IY NY DX DY, unstructured:IP NP DP DP] +$ +ww3. +6 +2 +-999.9 -999.9 -999.9 -999.9 1 +$ +$ For each field and time a new file is generated with the file name +$ ww3.date_xxx.nc , where date is a conventional time indicator with S3 +$ characters, and xxx is a field identifier. +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.inp b/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.inp index c2410038f..83ff190ce 100755 --- a/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.inp +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.inp @@ -75,7 +75,7 @@ $---------------------------------------------------------------- $ $ Type 2 : Point output $ Standard line and a number of lines identifying the -$ longitude, latitude and name (C*10) of output points. +$ longitude, latitude and name (C*40) of output points. $ The list is closed by defining a point with the name $ 'STOPSTRING'. No point info read if no point output is $ requested (i.e., no 'STOPSTRING' needed). diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.nml b/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.nml index 257b3de32..fbd9fb30e 100644 --- a/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.nml +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM3.nml @@ -65,6 +65,7 @@ ! Define the output types point parameters via OUTPUT_TYPE_NML namelist ! ! * the point file is a space separated values per line : lon lat 'name' +! longitude latitude 'name' (C*40) ! ! * the full list of field names is : ! All parameters listed below are available in output file of the types diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.inp b/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.inp index 6221b7979..9d6dcd989 100755 --- a/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.inp +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.inp @@ -75,7 +75,7 @@ $---------------------------------------------------------------- $ $ Type 2 : Point output $ Standard line and a number of lines identifying the -$ longitude, latitude and name (C*10) of output points. +$ longitude, latitude and name (C*40) of output points. $ The list is closed by defining a point with the name $ 'STOPSTRING'. No point info read if no point output is $ requested (i.e., no 'STOPSTRING' needed). diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.nml b/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.nml index 01a8eece4..d6d9c83af 100644 --- a/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.nml +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM4.nml @@ -65,6 +65,7 @@ ! Define the output types point parameters via OUTPUT_TYPE_NML namelist ! ! * the point file is a space separated values per line : lon lat 'name' +! longitude latitude 'name' (C*40) ! ! * the full list of field names is : ! All parameters listed below are available in output file of the types diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.inp b/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.inp index cf66d2e74..b58a52a87 100755 --- a/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.inp +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.inp @@ -75,7 +75,7 @@ $---------------------------------------------------------------- $ $ Type 2 : Point output $ Standard line and a number of lines identifying the -$ longitude, latitude and name (C*10) of output points. +$ longitude, latitude and name (C*40) of output points. $ The list is closed by defining a point with the name $ 'STOPSTRING'. No point info read if no point output is $ requested (i.e., no 'STOPSTRING' needed). diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.nml b/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.nml index afede1f6e..ebf38d427 100644 --- a/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.nml +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM5.nml @@ -65,6 +65,7 @@ ! Define the output types point parameters via OUTPUT_TYPE_NML namelist ! ! * the point file is a space separated values per line : lon lat 'name' +! longitude latitude 'name' (C*40) ! ! * the full list of field names is : ! All parameters listed below are available in output file of the types diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM6.inp b/regtests/ww3_tp2.14/input/ww3_shel_OASACM6.inp new file mode 100755 index 000000000..23a141cf1 --- /dev/null +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM6.inp @@ -0,0 +1,152 @@ +$ -------------------------------------------------------------------- $ +$ WAVEWATCH III shell input file $ +$ -------------------------------------------------------------------- $ +$ Define input to be used with F/T/C flag for use or nor or coupling and +$ T/F flag for definition as a homogeneous field. +$ +$ Include ice and mud parameters only if IC1/2/3/4 used : + F F Ice parameter 1 + F F Ice parameter 2 + F F Ice parameter 3 + F F Ice parameter 4 + F F Ice parameter 5 + F F Mud parameter 1 + F F Mud parameter 2 + F F Mud parameter 3 + F F Water levels + F F Currents + C F Winds + F Ice concentrations + F Assimilation data : Mean parameters + F Assimilation data : 1-D spectra + F Assimilation data : 2-D spectra +$ +$ Time frame of calculations ----------------------------------------- $ +$ - Starting time in yyyymmdd hhmmss format. +$ - Ending time in yyyymmdd hhmmss format. +$ + 20110902 000000 + 20110902 010000 +$ +$ Define output data ------------------------------------------------- $ +$ +$ Define output server mode. This is used only in the parallel version +$ of the model. To keep the input file consistent, it is always needed. +$ IOSTYP = 1 is generally recommended. IOSTYP > 2 may be more efficient +$ for massively parallel computations. Only IOSTYP = 0 requires a true +$ parallel file system like GPFS. +$ +$ IOSTYP = 0 : No data server processes, direct access output from +$ each process (requires true parallel file system). +$ 1 : No data server process. All output for each type +$ performed by process that performs computations too. +$ 2 : Last process is reserved for all output, and does no +$ computing. +$ 3 : Multiple dedicated output processes. +$ + 1 +$ +$ Five output types are available (see below). All output types share +$ a similar format for the first input line: +$ - first time in yyyymmdd hhmmss format, output interval (s), and +$ last time in yyyymmdd hhmmss format (all integers). +$ Output is disabled by setting the output interval to 0. +$ +$ ------------------------------------------------------------------- $ +$ +$ Type 1 : Fields of mean wave parameters +$ Standard line and line with logical flags to activate output +$ fields as defined in section 2.4 of the manual. The logical +$ flags are not supplied if no output is requested. The logical +$ flags can be placed on multiple consecutive lines. However, +$ the total number and order of the logical flags is fixed. +$ The raw data file is out_grd.ww3, +$ see w3iogo.ftn for additional doc. +$ + 20110902 000000 180 20110902 010000 +$---------------------------------------------------------------- +$ Output request flags identifying fields. +$ +N +$ +HS FP DIR DP CHA UST DPT CUR WND +$ +$---------------------------------------------------------------- +$ +$ Type 2 : Point output +$ Standard line and a number of lines identifying the +$ longitude, latitude and name (C*40) of output points. +$ The list is closed by defining a point with the name +$ 'STOPSTRING'. No point info read if no point output is +$ requested (i.e., no 'STOPSTRING' needed). +$ The raw data file is out_pnt.ww3, +$ see w3iogo.ftn for additional doc. +$ + 20110902 000000 0 20110902 020000 +$ -4.97 48.29 '62069' +$ -6.00 48.29 'Boundary' +$ 0.0 0.0 'STOPSTRING' +$ +$ +$ Type 3 : Output along track. +$ Flag for formatted input file. +$ The data files are track_i.ww3 and +$ track_o.ww3, see w3iotr.ftn for ad. doc. +$ + 20110902 000000 0 20110902 020000 +$ T +$ +$ Type 4 : Restart files (no additional data required). +$ The data file is restartN.ww3, see +$ w3iors.ftn for additional doc. +$ + 20110902 000000 0 20110902 020000 +$ +$ Type 5 : Boundary data (no additional data required). +$ The data file is nestN.ww3, see +$ w3iobcmd.ftn for additional doc. +$ + 20110902 000000 0 20110902 020000 +$ +$ Type 6 : Separated wave field data (dummy for now). +$ First, last step IX and IY, flag for formatted file +$ + 20110902 000000 0 20110902 020000 +$ 0 999 1 0 999 1 T +$ +$ Type 7 : Coupling. (must be fully commented if not used with switch COU) +$ Namelist type selection is used here. +$ Diagnostic fields to exchange. (see namcouple for more information) +$ + 20110902 000000 180 20110902 010000 T + N +$ +$ - Sent fields by ww3: +$ - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +$ - Atmospheric model : ACHA AHS TP (or FP) FWS +$ - Ice model : IC5 TWI +$ + ACHA +$ +$ - Received fields by ww3: +$ - Ocean model : SSH CUR +$ - Atmospheric model : WND +$ - Ice model : ICE IC1 IC5 +$ + WND +$ +$ Homogeneous field data --------------------------------------------- $ +$ Homogeneous fields can be defined by a list of lines containing an ID +$ string 'LEV' 'CUR' 'WND', date and time information (yyyymmdd +$ hhmmss), value (S.I. units), direction (current and wind, oceanogr. +$ convention degrees)) and air-sea temperature difference (degrees C). +$ 'STP' is mandatory stop string. +$ Also defined here are the speed with which the grid is moved +$ continuously, ID string 'MOV', parameters as for 'CUR'. +$ +$ 'CUR' 20110902 000000 2.0 25. + 'STP' +$ +$ -------------------------------------------------------------------- $ +$ End of input file $ +$ -------------------------------------------------------------------- $ diff --git a/regtests/ww3_tp2.14/input/ww3_shel_OASACM6.nml b/regtests/ww3_tp2.14/input/ww3_shel_OASACM6.nml new file mode 100644 index 000000000..84d3e15c6 --- /dev/null +++ b/regtests/ww3_tp2.14/input/ww3_shel_OASACM6.nml @@ -0,0 +1,340 @@ +! -------------------------------------------------------------------- ! +! WAVEWATCH III ww3_shel.nml - single-grid model ! +! -------------------------------------------------------------------- ! + + +! -------------------------------------------------------------------- ! +! Define top-level model parameters via DOMAIN_NML namelist +! +! * IOSTYP defines the output server mode for parallel implementation. +! 0 : No data server processes, direct access output from +! each process (requires true parallel file system). +! 1 : No data server process. All output for each type +! performed by process that performs computations too. +! 2 : Last process is reserved for all output, and does no +! computing. +! 3 : Multiple dedicated output processes. +! +! * namelist must be terminated with / +! * definitions & defaults: +! DOMAIN%IOSTYP = 1 ! Output server type +! DOMAIN%START = '19680606 000000' ! Start date for the entire model +! DOMAIN%STOP = '19680607 000000' ! Stop date for the entire model +! -------------------------------------------------------------------- ! +&DOMAIN_NML + DOMAIN%START = '20110902 000000' + DOMAIN%STOP = '20110902 010000' +/ + +! -------------------------------------------------------------------- ! +! Define each forcing via the INPUT_NML namelist +! +! * The FORCING flag can be : 'F' for "no forcing" +! 'T' for "external forcing file" +! 'H' for "homogeneous forcing input" +! 'C' for "coupled forcing field" +! +! * homogeneous forcing is not available for ICE_CONC +! +! * The ASSIM flag can : 'F' for "no forcing" +! 'T' for "external forcing file" +! +! * namelist must be terminated with / +! * definitions & defaults: +! INPUT%FORCING%WATER_LEVELS = 'F' +! INPUT%FORCING%CURRENTS = 'F' +! INPUT%FORCING%WINDS = 'F' +! INPUT%FORCING%ICE_CONC = 'F' +! INPUT%FORCING%ICE_PARAM1 = 'F' +! INPUT%FORCING%ICE_PARAM2 = 'F' +! INPUT%FORCING%ICE_PARAM3 = 'F' +! INPUT%FORCING%ICE_PARAM4 = 'F' +! INPUT%FORCING%ICE_PARAM5 = 'F' +! INPUT%FORCING%MUD_DENSITY = 'F' +! INPUT%FORCING%MUD_THICKNESS = 'F' +! INPUT%FORCING%MUD_VISCOSITY = 'F' +! INPUT%ASSIM%MEAN = 'F' +! INPUT%ASSIM%SPEC1D = 'F' +! INPUT%ASSIM%SPEC2D = 'F' +! -------------------------------------------------------------------- ! +&INPUT_NML + INPUT%FORCING%WINDS = 'C' +/ + +! -------------------------------------------------------------------- ! +! Define the output types point parameters via OUTPUT_TYPE_NML namelist +! +! * the point file is a space separated values per line : lon lat 'name' +! longitude latitude 'name' (C*40) +! +! * the full list of field names is : +! All parameters listed below are available in output file of the types +! ASCII and NetCDF. If selected output file types are grads or grib, +! some parameters may not be available. The first two columns in the +! table below identify such cases by flags, cols 1 (GRB) and 2 (GXO) +! refer to grib (ww3_grib) and grads (gx_outf), respectively. +! +! Columns 3 and 4 provide group and parameter numbers per group. +! Columns 5, 6 and 7 provide: +! 5 - code name (internal) +! 6 - output tags (names used is ASCII file extensions, NetCDF +! variable names and namelist-based selection +! 7 - Long parameter name/definition +! +! G G +! R X Grp Param Code Output Parameter/Group +! B O Numb Numbr Name Tag Definition +! -------------------------------------------------- +! 1 Forcing Fields +! ------------------------------------------------- +! T T 1 1 DW DPT Water depth. +! T T 1 2 C[X,Y] CUR Current velocity. +! T T 1 3 UA WND Wind speed. +! T T 1 4 AS AST Air-sea temperature difference. +! T T 1 5 WLV WLV Water levels. +! T T 1 6 ICE ICE Ice concentration. +! T T 1 7 IBG IBG Iceberg-induced damping. +! T T 1 8 D50 D50 Median sediment grain size. +! T T 1 9 IC1 IC1 Ice thickness. +! T T 1 10 IC5 IC5 Ice flow diameter. +! ------------------------------------------------- +! 2 Standard mean wave Parameters +! ------------------------------------------------- +! T T 2 1 HS HS Wave height. +! T T 2 2 WLM LM Mean wave length. +! T T 2 3 T02 T02 Mean wave period (Tm0,2). +! T T 2 4 TM10 TM10 Mean wave period (Tm-1,0). +! T T 2 5 T01 T01 Mean wave period (Tm0,1). +! T T 2 6 FP0 FP Peak frequency. +! T T 2 7 THM DIR Mean wave direction. +! T T 2 8 THS SPR Mean directional spread. +! T T 2 9 THP0 DP Peak direction. +! T T 2 10 HIG HIG Infragravity height +! T T 2 11 STMAXE MXE Max surface elev (STE) +! T T 2 12 STMAXD MXES St Dev of max surface elev (STE) +! T T 2 13 HMAXE MXH Max wave height (STE) +! T T 2 14 HCMAXE MXHC Max wave height from crest (STE) +! T T 2 15 HMAXD SDMH St Dev of MXC (STE) +! T T 2 16 HCMAXD SDMHC St Dev of MXHC (STE) +! F T 2 17 WBT WBT Domiant wave breaking probability bT +! ------------------------------------------------- +! 3 Spectral Parameters (first 5) +! ------------------------------------------------- +! F F 3 1 EF EF Wave frequency spectrum +! F F 3 2 TH1M TH1M Mean wave direction from a1,b2 +! F F 3 3 STH1M STH1M Directional spreading from a1,b2 +! F F 3 4 TH2M TH2M Mean wave direction from a2,b2 +! F F 3 5 STH2M STH2M Directional spreading from a2,b2 +! F F 3 6 WN WN Wavenumber array +! ------------------------------------------------- +! 4 Spectral Partition Parameters +! ------------------------------------------------- +! T T 4 1 PHS PHS Partitioned wave heights. +! T T 4 2 PTP PTP Partitioned peak period. +! T T 4 3 PLP PLP Partitioned peak wave length. +! T T 4 4 PDIR PDIR Partitioned mean direction. +! T T 4 5 PSI PSPR Partitioned mean directional spread. +! T T 4 6 PWS PWS Partitioned wind sea fraction. +! T T 4 7 PTHP0 PDP Peak wave direction of partition. +! T T 4 8 PQP PQP Goda peakdedness parameter of partition. +! T T 4 9 PPE PPE JONSWAP peak enhancement factor of partition. +! T T 4 10 PGW PGW Gaussian frequency width of partition. +! T T 4 11 PSW PSW Spectral width of partition. +! T T 4 12 PTM1 PTM10 Mean wave period (Tm-1,0) of partition. +! T T 4 13 PT1 PT01 Mean wave period (Tm0,1) of partition. +! T T 4 14 PT2 PT02 Mean wave period (Tm0,2) of partition. +! T T 4 15 PEP PEP Peak spectral density of partition. +! T T 4 16 PWST TWS Total wind sea fraction. +! T T 4 17 PNR PNR Number of partitions. +! ------------------------------------------------- +! 5 Atmosphere-waves layer +! ------------------------------------------------- +! T T 5 1 UST UST Friction velocity. +! F T 5 2 CHARN CHA Charnock parameter +! F T 5 3 CGE CGE Energy flux +! F T 5 4 PHIAW FAW Air-sea energy flux +! F T 5 5 TAUWI[X,Y] TAW Net wave-supported stress +! F T 5 6 TAUWN[X,Y] TWA Negative part of the wave-supported stress +! F F 5 7 WHITECAP WCC Whitecap coverage +! F F 5 8 WHITECAP WCF Whitecap thickness +! F F 5 9 WHITECAP WCH Mean breaking height +! F F 5 10 WHITECAP WCM Whitecap moment +! F F 5 11 FWS FWS Wind sea mean period +! ------------------------------------------------- +! 6 Wave-ocean layer +! ------------------------------------------------- +! F F 6 1 S[XX,YY,XY] SXY Radiation stresses. +! F F 6 2 TAUO[X,Y] TWO Wave to ocean momentum flux +! F F 6 3 BHD BHD Bernoulli head (J term) +! F F 6 4 PHIOC FOC Wave to ocean energy flux +! F F 6 5 TUS[X,Y] TUS Stokes transport +! F F 6 6 USS[X,Y] USS Surface Stokes drift +! F F 6 7 [PR,TP]MS P2S Second-order sum pressure +! F F 6 8 US3D USF Spectrum of surface Stokes drift +! F F 6 9 P2SMS P2L Micro seism source term +! F F 6 10 TAUICE TWI Wave to sea ice stress +! F F 6 11 PHICE FIC Wave to sea ice energy flux +! ------------------------------------------------- +! 7 Wave-bottom layer +! ------------------------------------------------- +! F F 7 1 ABA ABR Near bottom rms amplitides. +! F F 7 2 UBA UBR Near bottom rms velocities. +! F F 7 3 BEDFORMS BED Bedforms +! F F 7 4 PHIBBL FBB Energy flux due to bottom friction +! F F 7 5 TAUBBL TBB Momentum flux due to bottom friction +! ------------------------------------------------- +! 8 Spectrum parameters +! ------------------------------------------------- +! F F 8 1 MSS[X,Y] MSS Mean square slopes +! F F 8 2 MSC[X,Y] MSC Spectral level at high frequency tail +! F F 8 3 WL02[X,Y] WL02 East/X North/Y mean wavelength compon +! F F 8 4 ALPXT AXT Correl sea surface gradients (x,t) +! F F 8 5 ALPYT AYT Correl sea surface gradients (y,t) +! F F 8 6 ALPXY AXY Correl sea surface gradients (x,y) +! ------------------------------------------------- +! 9 Numerical diagnostics +! ------------------------------------------------- +! T T 9 1 DTDYN DTD Average time step in integration. +! T T 9 2 FCUT FC Cut-off frequency. +! T T 9 3 CFLXYMAX CFX Max. CFL number for spatial advection. +! T T 9 4 CFLTHMAX CFD Max. CFL number for theta-advection. +! F F 9 5 CFLKMAX CFK Max. CFL number for k-advection. +! ------------------------------------------------- +! 10 User defined +! ------------------------------------------------- +! F F 10 1 U1 User defined #1. (requires coding ...) +! F F 10 2 U2 User defined #1. (requires coding ...) +! ------------------------------------------------- +! +! Section 4 consist of a set of fields, index 0 = wind sea, index +! 1:NOSWLL are first NOSWLL swell fields. +! +! +! * output track file formatted (T) or unformated (F) +! +! * coupling fields exchanged list is : +! - Sent fields by ww3: +! - Ocean model : T0M1 OCHA OHS DIR BHD TWO UBR FOC TAW TUS USS LM DRY +! - Atmospheric model : ACHA AHS TP (or FP) FWS +! - Ice model : IC5 TWI +! - Received fields by ww3: +! - Ocean model : SSH CUR +! - Atmospheric model : WND +! - Ice model : ICE IC1 IC5 +! +! * namelist must be terminated with / +! * definitions & defaults: +! TYPE%FIELD%LIST = 'unset' +! TYPE%POINT%FILE = 'points.list' +! TYPE%TRACK%FORMAT = T +! TYPE%PARTITION%X0 = 0 +! TYPE%PARTITION%XN = 0 +! TYPE%PARTITION%NX = 0 +! TYPE%PARTITION%Y0 = 0 +! TYPE%PARTITION%YN = 0 +! TYPE%PARTITION%NY = 0 +! TYPE%PARTITION%FORMAT = T +! TYPE%COUPLING%SENT = 'unset' +! TYPE%COUPLING%RECEIVED = 'unset' +! TYPE%COUPLING%COUPLET0 = .FALSE. +! +! -------------------------------------------------------------------- ! +&OUTPUT_TYPE_NML + TYPE%FIELD%LIST = 'HS FP DIR DP CHA UST DPT CUR WND' + TYPE%COUPLING%SENT = 'ACHA' + TYPE%COUPLING%RECEIVED = 'WND' + TYPE%COUPLING%COUPLET0 = .TRUE. +/ + +! -------------------------------------------------------------------- ! +! Define output dates via OUTPUT_DATE_NML namelist +! +! * start and stop times are with format 'yyyymmdd hhmmss' +! * if time stride is equal '0', then output is disabled +! * time stride is given in seconds +! +! * namelist must be terminated with / +! * definitions & defaults: +! DATE%FIELD%START = '19680606 000000' +! DATE%FIELD%STRIDE = '0' +! DATE%FIELD%STOP = '19680607 000000' +! DATE%POINT%START = '19680606 000000' +! DATE%POINT%STRIDE = '0' +! DATE%POINT%STOP = '19680607 000000' +! DATE%TRACK%START = '19680606 000000' +! DATE%TRACK%STRIDE = '0' +! DATE%TRACK%STOP = '19680607 000000' +! DATE%RESTART%START = '19680606 000000' +! DATE%RESTART%STRIDE = '0' +! DATE%RESTART%STOP = '19680607 000000' +! DATE%BOUNDARY%START = '19680606 000000' +! DATE%BOUNDARY%STRIDE = '0' +! DATE%BOUNDARY%STOP = '19680607 000000' +! DATE%PARTITION%START = '19680606 000000' +! DATE%PARTITION%STRIDE = '0' +! DATE%PARTITION%STOP = '19680607 000000' +! DATE%COUPLING%START = '19680606 000000' +! DATE%COUPLING%STRIDE = '0' +! DATE%COUPLING%STOP = '19680607 000000' +! +! DATE%RESTART = '19680606 000000' '0' '19680607 000000' +! -------------------------------------------------------------------- ! +&OUTPUT_DATE_NML + DATE%FIELD = '20110902 000000' '180' '20110902 010000' + DATE%COUPLING = '20110902 000000' '180' '20110902 010000' +/ + +! -------------------------------------------------------------------- ! +! Define homogeneous input via HOMOG_COUNT_NML and HOMOG_INPUT_NML namelist +! +! * the number of each homogeneous input is defined by HOMOG_COUNT +! * the total number of homogeneous input is automatically calculated +! * the homogeneous input must start from index 1 to N +! * if VALUE1 is equal 0, then the homogeneous input is desactivated +! * NAME can be IC1, IC2, IC3, IC4, IC5, MDN, MTH, MVS, LEV, CUR, WND, ICE, MOV +! * each homogeneous input is defined over a maximum of 3 values detailled below : +! - IC1 is defined by thickness +! - IC2 is defined by viscosity +! - IC3 is defined by density +! - IC4 is defined by modulus +! - IC5 is defined by floe diameter +! - MDN is defined by density +! - MTH is defined by thickness +! - MVS is defined by viscosity +! - LEV is defined by height +! - CUR is defined by speed and direction +! - WND is defined by speed, direction and airseatemp +! - ICE is defined by concentration +! - MOV is defined by speed and direction +! +! * namelist must be terminated with / +! * definitions & defaults: +! HOMOG_COUNT%N_IC1 = 0 +! HOMOG_COUNT%N_IC2 = 0 +! HOMOG_COUNT%N_IC3 = 0 +! HOMOG_COUNT%N_IC4 = 0 +! HOMOG_COUNT%N_IC5 = 0 +! HOMOG_COUNT%N_MDN = 0 +! HOMOG_COUNT%N_MTH = 0 +! HOMOG_COUNT%N_MVS = 0 +! HOMOG_COUNT%N_LEV = 0 +! HOMOG_COUNT%N_CUR = 0 +! HOMOG_COUNT%N_WND = 0 +! HOMOG_COUNT%N_ICE = 0 +! HOMOG_COUNT%N_MOV = 0 +! +! HOMOG_INPUT(I)%NAME = 'unset' +! HOMOG_INPUT(I)%DATE = '19680606 000000' +! HOMOG_INPUT(I)%VALUE1 = 0 +! HOMOG_INPUT(I)%VALUE2 = 0 +! HOMOG_INPUT(I)%VALUE3 = 0 +! -------------------------------------------------------------------- ! +&HOMOG_COUNT_NML +/ + +&HOMOG_INPUT_NML +/ + +! -------------------------------------------------------------------- ! +! WAVEWATCH III - end of namelist ! +! -------------------------------------------------------------------- !