From 846f5b4517e47d4bbc599ff7031fcb8872647d51 Mon Sep 17 00:00:00 2001 From: "ukmo-chris.bunney" Date: Wed, 5 Jan 2022 14:26:46 +0000 Subject: [PATCH 1/4] Added S3=0 (no date string) support for ww3_ounp, as per ww3_ounf --- model/src/ww3_ounp.F90 | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/model/src/ww3_ounp.F90 b/model/src/ww3_ounp.F90 index 1fef286c14..1fdc1cae15 100644 --- a/model/src/ww3_ounp.F90 +++ b/model/src/ww3_ounp.F90 @@ -55,6 +55,7 @@ PROGRAM W3OUNP !/ 18-Jun-2020 : Support for 360-day calendar. ( version 7.08 ) !/ 19-Jul-2021 : Momentum and air density support ( version 7.14 ) !/ 06-Sep-2021 : scale factor on spectra output ( version 7.12 ) +!/ 05-Jan-2022 : Added S3=0 support ( version 7.13 ) !/ !/ Copyright 2009 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights @@ -249,6 +250,7 @@ PROGRAM W3OUNP CHARACTER(LEN=8) :: EXT CHARACTER(LEN=128) :: NCNAME CHARACTER(LEN=25) :: IDSRCE(7) + CHARACTER :: SEP ! CHARACTER(LEN=100),ALLOCATABLE :: POINTLIST(:) CHARACTER(LEN=128),ALLOCATABLE :: NCFILE(:) @@ -600,16 +602,18 @@ PROGRAM W3OUNP ! 4.3 Output type ! ! S3 defines the number of characters in the date for the filename - ! S3=4-> YYYY, S3=6 -> YYYYMM, S3=10 -> YYYYMMDDHH + ! S3=0 -> empty, S3=4 -> YYYY, S3=6 -> YYYYMM, S3=10 -> YYYYMMDDHH ! ! Setups min and max date format - IF (S3.LT.4) S3=4 + IF (S3.GT.0 .AND. S3.LT.4) S3=4 IF (S3.GT.10) S3=10 ! ! Defines the format of FILETIME as ISO8601 convention S5=S3-8 ! if S3=>YYYYMMDDHH then filetime='YYYYMMDDTHHMMSSZ' - IF (S3.EQ.10) THEN + IF (S3.EQ.0) THEN + FILETIME = '' + ELSE IF (S3.EQ.10) THEN WRITE(FORMAT1,'(A,I1,A,I1,A)') '(I8.8,A1,I',S5,'.',S5,',A1)' WRITE (FILETIME,FORMAT1) TIME(1), 'T', & FLOOR(REAL(TIME(2))/NINT(10.**(6-S5))), 'Z' @@ -662,13 +666,18 @@ PROGRAM W3OUNP ! 5.2 Creates filename listing WRITE(EXT,'(A)') '' - IF ((ITYPE .EQ. 1) .AND. (OTYPE.EQ.2)) WRITE(EXT,'(A)') '_tab.nc' - IF ((ITYPE .EQ. 1) .AND. (OTYPE.EQ.3)) WRITE(EXT,'(A)') '_spec.nc' - IF ((ITYPE .EQ. 1) .AND. (OTYPE.EQ.4)) WRITE(EXT,'(A)') '_tab.nc' - IF (ITYPE .EQ. 2) WRITE(EXT,'(A)') '_tab.nc' - IF ((ITYPE .EQ. 3) .AND. (OTYPE.EQ.2)) WRITE(EXT,'(A)') '_tab.nc' - IF ((ITYPE .EQ. 3) .AND. (OTYPE.EQ.3)) WRITE(EXT,'(A)') '_tab.nc' - IF ((ITYPE .EQ. 3) .AND. (OTYPE.EQ.4)) WRITE(EXT,'(A)') '_src.nc' + SEP = '_' + IF(S3 .EQ. 0) THEN + ! Don't add "_" separator if there is no datetime string. + SEP = '' + ENDIF + IF ((ITYPE .EQ. 1) .AND. (OTYPE.EQ.2)) WRITE(EXT,'(A,A)') TRIM(SEP), 'tab.nc' + IF ((ITYPE .EQ. 1) .AND. (OTYPE.EQ.3)) WRITE(EXT,'(A,A)') TRIM(SEP), 'spec.nc' + IF ((ITYPE .EQ. 1) .AND. (OTYPE.EQ.4)) WRITE(EXT,'(A,A)') TRIM(SEP), 'tab.nc' + IF (ITYPE .EQ. 2) WRITE(EXT,'(A,A)') TRIM(SEP), 'tab.nc' + IF ((ITYPE .EQ. 3) .AND. (OTYPE.EQ.2)) WRITE(EXT,'(A,A)') TRIM(SEP), 'tab.nc' + IF ((ITYPE .EQ. 3) .AND. (OTYPE.EQ.3)) WRITE(EXT,'(A,A)') TRIM(SEP), 'tab.nc' + IF ((ITYPE .EQ. 3) .AND. (OTYPE.EQ.4)) WRITE(EXT,'(A,A)') TRIM(SEP), 'src.nc' ! checks if extension exists IF (LEN_TRIM(EXT).EQ.0) THEN WRITE (NDSE,1006) @@ -720,7 +729,9 @@ PROGRAM W3OUNP ! 5.6.1 Redefines the filetime when it's a new date defined by the date division S3 ! if S3=>YYYYMMDDHH then filetime='YYYYMMDDTHHMMSSZ' - IF (S3.EQ.10) THEN + IF (S3.EQ.0) THEN + FILETIME = '' + ELSE IF (S3.EQ.10) THEN WRITE(FORMAT1,'(A,I1,A,I1,A)') '(I8.8,A1,I',S5,'.',S5,',A1)' WRITE (FILETIME,FORMAT1) TIME(1), 'T', & NINT(REAL(TIME(2))/NINT(10.**(6-S5))), 'Z' From 8a6c2bcb6450d167a0610c8bcff52bb077a6ff69 Mon Sep 17 00:00:00 2001 From: "ukmo-chris.bunney" Date: Thu, 6 Jan 2022 09:42:45 +0000 Subject: [PATCH 2/4] Updated documentation comments in inp and nml files. --- model/inp/ww3_ounp.inp | 2 +- model/nml/ww3_ounp.nml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/model/inp/ww3_ounp.inp b/model/inp/ww3_ounp.inp index 12e007ffa8..c25027145f 100644 --- a/model/inp/ww3_ounp.inp +++ b/model/inp/ww3_ounp.inp @@ -18,7 +18,7 @@ $ mandatory end of list $ $--------------------------------------------------------------------- $ $ file prefix -$ number of characters in date [4(yearly),6(monthly),8(daily),10(hourly)] +$ number of characters in date [0(nodate),4(yearly),6(monthly),8(daily),10(hourly)] $ netCDF version [3,4] $ points in same file [T] or not [F] $ and max number of points to be processed in one pass diff --git a/model/nml/ww3_ounp.nml b/model/nml/ww3_ounp.nml index c69717f884..b76d1050a3 100644 --- a/model/nml/ww3_ounp.nml +++ b/model/nml/ww3_ounp.nml @@ -12,7 +12,7 @@ ! POINT%TIMESTART = '19000101 000000' ! Stop date for the output field ! POINT%TIMESTRIDE = '0' ! Time stride for the output field ! POINT%TIMECOUNT = '1000000000' ! Number of time steps -! POINT%TIMESPLIT = 6 ! [4(yearly),6(monthly),8(daily),10(hourly)] +! POINT%TIMESPLIT = 6 ! [0(nodate),4(yearly),6(monthly),8(daily),10(hourly)] ! POINT%LIST = 'all' ! List of points index ['all'|'1 2 3'] ! POINT%SAMEFILE = T ! All the points in the same file ! POINT%BUFFER = 150 ! Number of points to process per pass From ed4563108a739268c6018fe678125ba72c07fd54 Mon Sep 17 00:00:00 2001 From: "ukmo-chris.bunney" Date: Thu, 6 Jan 2022 09:46:54 +0000 Subject: [PATCH 3/4] Corrected comment and version number --- model/src/ww3_ounp.F90 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/src/ww3_ounp.F90 b/model/src/ww3_ounp.F90 index 1fdc1cae15..f1271b9ba4 100644 --- a/model/src/ww3_ounp.F90 +++ b/model/src/ww3_ounp.F90 @@ -55,7 +55,7 @@ PROGRAM W3OUNP !/ 18-Jun-2020 : Support for 360-day calendar. ( version 7.08 ) !/ 19-Jul-2021 : Momentum and air density support ( version 7.14 ) !/ 06-Sep-2021 : scale factor on spectra output ( version 7.12 ) -!/ 05-Jan-2022 : Added S3=0 support ( version 7.13 ) +!/ 05-Jan-2022 : Added TIMESPLIT=0 (nodate) support ( version 7.14 ) !/ !/ Copyright 2009 National Weather Service (NWS), !/ National Oceanic and Atmospheric Administration. All rights From b9d9d0961067dbcee205a367171a64041a2c8785 Mon Sep 17 00:00:00 2001 From: "ukmo-chris.bunney" Date: Thu, 6 Jan 2022 09:50:48 +0000 Subject: [PATCH 4/4] Tidied up code. --- model/src/ww3_ounp.F90 | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/model/src/ww3_ounp.F90 b/model/src/ww3_ounp.F90 index f1271b9ba4..a53fcabed7 100644 --- a/model/src/ww3_ounp.F90 +++ b/model/src/ww3_ounp.F90 @@ -665,12 +665,9 @@ PROGRAM W3OUNP ! 5.2 Creates filename listing - WRITE(EXT,'(A)') '' SEP = '_' - IF(S3 .EQ. 0) THEN - ! Don't add "_" separator if there is no datetime string. - SEP = '' - ENDIF + IF(S3 .EQ. 0) SEP = '' ! No "_" separator if no datetime string. + WRITE(EXT,'(A)') '' IF ((ITYPE .EQ. 1) .AND. (OTYPE.EQ.2)) WRITE(EXT,'(A,A)') TRIM(SEP), 'tab.nc' IF ((ITYPE .EQ. 1) .AND. (OTYPE.EQ.3)) WRITE(EXT,'(A,A)') TRIM(SEP), 'spec.nc' IF ((ITYPE .EQ. 1) .AND. (OTYPE.EQ.4)) WRITE(EXT,'(A,A)') TRIM(SEP), 'tab.nc'