Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

starting to add testing for I/O subroutine W3IOPO() so it can be converted to use netCDF #1096

Closed
wants to merge 71 commits into from
Closed
Changes from 1 commit
Commits
Show all changes
71 commits
Select commit Hold shift + click to select a range
e133088
starting to add testing
edwardhartnett Oct 12, 2023
dbe2e43
adding first test
edwardhartnett Oct 14, 2023
e0dbce3
adding first test
edwardhartnett Oct 14, 2023
67b6b4c
adding first test
edwardhartnett Oct 14, 2023
b1fcbaf
adding first test
edwardhartnett Oct 14, 2023
877e8dd
adding first test
edwardhartnett Oct 14, 2023
0b56fb9
adding first test
edwardhartnett Oct 14, 2023
9b895f2
Merge branch 'develop' into ejh_t1
edwardhartnett Oct 14, 2023
854d0b6
trying to set up for write
edwardhartnett Oct 16, 2023
6877dbb
test update
edwardhartnett Oct 31, 2023
2e2ca18
test development
edwardhartnett Nov 1, 2023
ccab76c
started on netCDF-based subroutine
edwardhartnett Nov 1, 2023
0576e98
test development
edwardhartnett Nov 3, 2023
7fd2439
test development
edwardhartnett Nov 3, 2023
0159251
adding IO workflow
edwardhartnett Nov 4, 2023
60a2bb1
adding IO workflow
edwardhartnett Nov 4, 2023
3aa2b05
adding IO workflow
edwardhartnett Nov 4, 2023
a32e69e
adding IO workflow
edwardhartnett Nov 4, 2023
4d657cf
further test development
edwardhartnett Nov 4, 2023
f4fde1b
further test development
edwardhartnett Nov 4, 2023
2c6c301
further test development
edwardhartnett Nov 4, 2023
8fe1e60
started documenting what is in the points file
edwardhartnett Nov 4, 2023
188b21e
clean up test
edwardhartnett Nov 4, 2023
979c46d
more test development
edwardhartnett Nov 5, 2023
0d28e39
more documentation, starting to work on netcdf version of subroutine
edwardhartnett Nov 6, 2023
7b9ef23
working on netCDF code
edwardhartnett Nov 6, 2023
52e4864
working on netCDF code
edwardhartnett Nov 6, 2023
6aaefe7
more netcdf write development
edwardhartnett Nov 6, 2023
4a7a57d
further netcdf write development
edwardhartnett Nov 6, 2023
ef13e37
further netcdf write development
edwardhartnett Nov 6, 2023
0e619c9
further netcdf write development
edwardhartnett Nov 6, 2023
0bd3b24
further netcdf write development
edwardhartnett Nov 6, 2023
9c170e4
further netcdf write development
edwardhartnett Nov 6, 2023
24679ed
adding code coverage
edwardhartnett Nov 6, 2023
4c99eed
working on CI workflow
edwardhartnett Nov 6, 2023
1b7be0d
working on CI workflow
edwardhartnett Nov 6, 2023
5715451
working on CI workflow
edwardhartnett Nov 6, 2023
4455938
working on CI workflow
edwardhartnett Nov 6, 2023
4f7cd93
working on netcdf write code
edwardhartnett Nov 6, 2023
cc13238
start adding doxygen variable descriptions
MatthewMasarik-NOAA Nov 6, 2023
c8b3516
working on netcdf write code
edwardhartnett Nov 6, 2023
d727e36
working on netcdf write code
edwardhartnett Nov 6, 2023
96baefb
working on netcdf write code
edwardhartnett Nov 6, 2023
ed03448
w3iopomd.F90: documentation update
MatthewMasarik-NOAA Nov 6, 2023
12d44c6
w3iopomd.F90: updates to w3iopomd.F90 for documentation.
MatthewMasarik-NOAA Nov 6, 2023
8359f15
w3iopomd.F90: a couple more definitions
MatthewMasarik-NOAA Nov 6, 2023
00c434c
dealing with filename passing to netcdf
edwardhartnett Nov 7, 2023
882bd6a
more work on netcdf out
edwardhartnett Nov 8, 2023
4c6ab0b
more work on netcdf out
edwardhartnett Nov 8, 2023
44a347b
more work on netcdf out
edwardhartnett Nov 8, 2023
fb90776
more work on netcdf out
edwardhartnett Nov 8, 2023
060519e
more work on netcdf out
edwardhartnett Nov 8, 2023
a59f6f3
more work on netcdf out
edwardhartnett Nov 8, 2023
7a5ff03
more work on netcdf out
edwardhartnett Nov 8, 2023
a9aeed2
Merge branch 'ejh_t1' into ejh_t1
edwardhartnett Nov 16, 2023
427a686
Merge pull request #1 from MatthewMasarik-NOAA/ejh_t1
edwardhartnett Nov 16, 2023
d91d533
working on filename
edwardhartnett Nov 16, 2023
9a98dad
working on filename
edwardhartnett Nov 16, 2023
53e799c
working on filename
edwardhartnett Nov 16, 2023
2063833
working on filename
edwardhartnett Nov 16, 2023
265b5c3
working on filename
edwardhartnett Nov 16, 2023
6c94493
working on filename
edwardhartnett Nov 16, 2023
6b515e9
changing cache key
edwardhartnett Nov 16, 2023
1f039f2
trying again
edwardhartnett Nov 17, 2023
544d88c
fixing intel compiler
edwardhartnett Nov 17, 2023
0a82641
added more documentation
edwardhartnett Nov 25, 2023
0411e78
updated docs
edwardhartnett Nov 25, 2023
cdc48a3
further development
edwardhartnett Nov 25, 2023
5bec17f
more changes
edwardhartnett Nov 30, 2023
41d64e8
fixed conflicts
edwardhartnett Dec 4, 2023
66cc6b7
fixed conflicts
edwardhartnett Dec 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
more work on netcdf out
edwardhartnett committed Nov 8, 2023
commit 882bd6aacadac1794405956d3ae5488c35709ece
84 changes: 78 additions & 6 deletions model/src/w3iopomd.F90
Original file line number Diff line number Diff line change
@@ -1062,19 +1062,28 @@ SUBROUTINE W3IOPON_WRITE (NDSOP, IMOD, filename, ncerr)
IL, IW, II, PTLOC, PTIFAC, DPO, WAO, WDO, &
ASO, CAO, CDO, SPCO, PTNME, O2INIT, FNMPRE, &
GRDID, ICEO, ICEHO, ICEFO
#ifdef W3_FLX5
USE W3ODATMD, ONLY: TAUAO, TAUDO, DAIRO
#endif
#ifdef W3_SETUP
USE W3ODATMD, ONLY: ZET_SETO
#endif

IMPLICIT NONE

INTEGER, INTENT(IN) :: NDSOP
INTEGER, INTENT(IN) :: IMOD
character(*), intent(in) :: filename
integer, intent(inout) :: ncerr
integer :: fh, ndim, nvar, fmt
integer :: d_nopts, d_nspec, d_vsize, d_namelen
integer :: d_nopts, d_nspec, d_vsize, d_namelen, d_grdidlen
integer :: v_idtst, v_vertst, v_nk, v_mth, v_ptloc, v_ptnme
integer :: v_iw, v_ii, v_il, v_dpo, v_wao, v_wdo, v_tauao
integer :: v_taido, v_dairo, v_zet_seto, v_aso, v_cao, v_cdo, v_iceo
integer :: v_iceho, v_icefo, v_grdid, v_spco
character (len = *), parameter :: FILE_NAME = "f90tst_nc4.nc"
CHARACTER(LEN=31), PARAMETER :: IDSTR = 'WAVEWATCH III POINT OUTPUT FILE'
CHARACTER(LEN=10), PARAMETER :: VEROPT = '2021-04-06'

! ! Create the netCDF file.
ncerr = nf90_create(filename, NF90_NETCDF4, fh)
@@ -1087,14 +1096,18 @@ SUBROUTINE W3IOPON_WRITE (NDSOP, IMOD, filename, ncerr)
if (ncerr .ne. 0) return
ncerr = nf90_def_dim(fh, 'VSIZE', 2, d_vsize)
if (ncerr .ne. 0) return
ncerr = nf90_def_dim(fh, 'NAMELEN', 7, d_namelen)
ncerr = nf90_def_dim(fh, 'NAMELEN', 40, d_namelen)
if (ncerr .ne. 0) return
ncerr = nf90_def_dim(fh, 'GRDIDLEN', 13, d_grdidlen)
if (ncerr .ne. 0) return

! Define variables.
ncerr = nf90_def_var(fh, 'IDTST', NF90_INT, v_idtst)
! Define global attributes.
ncerr = nf90_put_att(fh, NF90_GLOBAL, 'title', IDSTR)
if (ncerr .ne. 0) return
ncerr = nf90_def_var(fh, 'VERTST', NF90_INT, v_vertst)
ncerr = nf90_put_att(fh, NF90_GLOBAL, 'version', VEROPT)
if (ncerr .ne. 0) return

! Define scalar variables.
ncerr = nf90_def_var(fh, 'NK', NF90_INT, v_nk)
if (ncerr .ne. 0) return
ncerr = nf90_def_var(fh, 'MTH', NF90_INT, v_mth)
@@ -1117,14 +1130,18 @@ SUBROUTINE W3IOPON_WRITE (NDSOP, IMOD, filename, ncerr)
if (ncerr .ne. 0) return
ncerr = nf90_def_var(fh, 'WDO', NF90_INT, (/d_nopts/), v_wdo)
if (ncerr .ne. 0) return
#ifdef W3_FLX5
ncerr = nf90_def_var(fh, 'TAUAO', NF90_INT, (/d_nopts/), v_tauao)
if (ncerr .ne. 0) return
ncerr = nf90_def_var(fh, 'TAIDO', NF90_INT, (/d_nopts/), v_taido)
if (ncerr .ne. 0) return
ncerr = nf90_def_var(fh, 'DAIRO', NF90_INT, (/d_nopts/), v_dairo)
if (ncerr .ne. 0) return
#endif
#ifdef W3_SETUP
ncerr = nf90_def_var(fh, 'ZET_SETO', NF90_INT, (/d_nopts/), v_zet_seto)
if (ncerr .ne. 0) return
#endif
ncerr = nf90_def_var(fh, 'ASO', NF90_INT, (/d_nopts/), v_aso)
if (ncerr .ne. 0) return
ncerr = nf90_def_var(fh, 'CAO', NF90_INT, (/d_nopts/), v_cao)
@@ -1137,10 +1154,60 @@ SUBROUTINE W3IOPON_WRITE (NDSOP, IMOD, filename, ncerr)
if (ncerr .ne. 0) return
ncerr = nf90_def_var(fh, 'ICEFO', NF90_INT, (/d_nopts/), v_icefo)
if (ncerr .ne. 0) return
ncerr = nf90_def_var(fh, 'GRDID', NF90_INT, (/d_nopts/), v_grdid)
ncerr = nf90_def_var(fh, 'GRDID', NF90_CHAR, (/d_grdidlen, d_nopts/), v_grdid)
if (ncerr .ne. 0) return
ncerr = nf90_def_var(fh, 'SPCO', NF90_INT, (/d_nspec, d_nopts/), v_spco)
if (ncerr .ne. 0) return

! Write the scalar data.
ncerr = nf90_put_var(fh, v_nk, NK)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_mth, NTH)
if (ncerr .ne. 0) return

! Write the data with NOPTS as a dimension.
ncerr = nf90_put_var(fh, v_ptloc, PTLOC)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_ptnme, PTNME)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_iw, IW)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_ii, II)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_il, IL)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_dpo, DPO)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_wao, WAO)
if (ncerr .ne. 0) return
#ifdef W3_FLX5
ncerr = nf90_put_var(fh, v_tauao, TAUAO)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_taido, TAIDO)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_dairo, DAIRO)
if (ncerr .ne. 0) return
#endif
#ifdef W3_SETUP
ncerr = nf90_put_var(fh, v_zet_seto, ZET_SETO)
if (ncerr .ne. 0) return
#endif
ncerr = nf90_put_var(fh, v_aso, ASO)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_cao, CAO)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_iceo, ICEO)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_iceho, ICEHO)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_icefo, ICEFO)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_grdid, GRDID)
if (ncerr .ne. 0) return
ncerr = nf90_put_var(fh, v_spco, SPCO)
if (ncerr .ne. 0) return

! Close the file.
ncerr = nf90_close(fh)
if (ncerr .ne. 0) return

@@ -1185,6 +1252,7 @@ SUBROUTINE W3IOPON ( INXOUT, NDSOP, IOTST, IMOD &
#ifdef W3_S
USE W3SERVMD, ONLY: STRACE
#endif
use netcdf
IMPLICIT NONE

CHARACTER, INTENT(IN) :: INXOUT*(*)
@@ -1224,6 +1292,10 @@ SUBROUTINE W3IOPON ( INXOUT, NDSOP, IOTST, IMOD &
ELSE
CALL W3IOPON_WRITE(NDSOP, IMOD, 'ww3_out_pnt.nc', ncerr)
ENDIF
if (ncerr .ne. 0) then
print *, nf90_strerror(ncerr)
CALL EXTCDE(21)
endif

!/
!/ End of W3IOPON ----------------------------------------------------- /