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

Conversation

edwardhartnett
Copy link
Contributor

@edwardhartnett edwardhartnett commented Oct 12, 2023

Draft PR to engage CI in testing development...

Part of #682

@JessicaMeixner-NOAA
Copy link
Collaborator

@edwardhartnett the PR that also updated w3iopo was just merged as an FYI

@edwardhartnett
Copy link
Contributor Author

@JessicaMeixner-NOAA what I need to do in test_io.F90 is set up all the module variables needed for a data write to take place.

In other words, I need everything to be ready so that w3iopo() can be called and successfully write data. Can you guys help me do that?

@JessicaMeixner-NOAA
Copy link
Collaborator

@edwardhartnett - @MatthewMasarik-NOAA and I can help. However, perhaps instead of setting up a completely separate testing system we can leverage an existing regression test instead?

@edwardhartnett
Copy link
Contributor Author

I'm not sure what you mean by regression test. Do you mean some manual testing?

I mean a test which runs in the CI system. Can any of your regression tests run with CI?

@JessicaMeixner-NOAA
Copy link
Collaborator

The CI system only runs builds. There are no plans to expand the CI testing at this time due to higher priority issues related to operational implementations.

@edwardhartnett
Copy link
Contributor Author

Can you tell me where the regressions tests are and how to build and run them?

@MatthewMasarik-NOAA
Copy link
Collaborator

@edwardhartnett, yes, sure thing. I'm tied up right now till ~11:15. I'll reach out after that.

@edwardhartnett edwardhartnett changed the title starting to add testing starting to add testing for I/O subroutine W3IOPO() so it can be converted to use netCDF Oct 31, 2023
@edwardhartnett
Copy link
Contributor Author

See the canned example on hera: /scratch1/NCEPDEV/climate/Matthew.Masarik/waves/share/point_output

@edwardhartnett
Copy link
Contributor Author

edwardhartnett commented Nov 3, 2023

OK, I got Matt's "canned case" to run on my linux machine with GNU compilers. Here's how it works:

# WW3 - canned case (ww3_tp1.4/PR1)

git clone https://github.com/NOAA-EMC/WW3   # get WW3 for source code
./build_ww3.sh                              # builds ww3_shel, puts in ./bin
./run_ww3.sh                                # creates ./work_$$, submits job to SLURM

Basically I just had to comment out all the module commands, and change Intel to GNU compilers in build_ww3, and have my spack env activated so all the dependencies can be found.

source  share/spack/setup-env.sh
spack env activate ww3-gnu

Then I ran run_ww3.sh and it failed do to lack of slurm, but it did succeed in copying all necessary files to directory /home/ed/ww3-test-case/work_909127, and when I cd to this directory and do:

./ww3_shel

I get the following output:

                     *** WAVEWATCH III Program shell ***      
               ===============================================

  Comment character is '$'


  Input fields : 
 --------------------------------------------------
       water levels   ---/NO                      
       currents       ---/NO                      
       winds          ---/NO                      
       ice fields     ---/NO                      
       momentum       ---/NO                      
       air density    ---/NO                      
       mean param.    ---/NO                      
       1D spectra     ---/NO                      
       2D spectra     ---/NO                      
 
            Fields   : Wave height         
                       Mean wave period(+1)
                       Mean wave dir. a1b1 
            Point  1 :      0.0E3     0.0E3  Point1                                  
                   2 :      5.0E3     0.0E3  Point2                                  
                   3 :     10.0E3     0.0E3  Point3                                  
                   4 :     15.0E3     0.0E3  Point4                                  
                   5 :     20.0E3     0.0E3  Point5                                  
                   6 :     25.0E3     0.0E3  Point6                                  
                   7 :     30.0E3     0.0E3  Point7                                  
                   8 :     35.0E3     0.0E3  Point8                                  
                   9 :     40.0E3     0.0E3  Point9                                  
                  10 :     45.0E3     0.0E3  Point10                                 
                  11 :     50.0E3     0.0E3  Point11                                 
            Fields   : no fields defined

  Initializations :
 --------------------------------------------------

  Time interval : 
 --------------------------------------------------
       Starting time : 1968/06/06 00:00:00 UTC
       Ending time   : 1968/06/06 12:00:00 UTC


  Output requests : 
 --------------------------------------------------
       No dedicated output process, any file system.

       Type 1 : Fields of mean wave parameters
      -----------------------------------------
            From     : 1968/06/06 00:00:00 UTC
            To       : 1968/06/06 12:00:00 UTC
            Interval :            00:15:00


       Type 2 : Point output                  
      -----------------------------------------
            From     : 1968/06/06 00:00:00 UTC
            To       : 1968/06/06 12:00:00 UTC
            Interval :            00:15:00

            output dates out of run dates : Restart files second request deactivated
       Wave model ...

 *** WAVEWATCH III WARNING IN W3IORS : 
     NO READABLE RESTART FILE, INITIALIZE WITH 'WIND' INSTEAD
     IOSTAT =    2


  Running model without input fields
 --------------------------------------------------

  WAVEWATCH III calculating for 1968/06/06 00:00:00 UTC at 09:21:25

 *** WAVEWATCH III WARNING IN W3IOBC : 
     INPUT FILE WITH BOUNDARY CONDITIONS NOT FOUND
     BOUNDARY CONDITIONS WILL NOT BE UPDATED     1

  WAVEWATCH III calculating for 1968/06/06 00:05:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 00:10:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 00:15:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 00:20:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 00:25:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 00:30:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 00:35:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 00:40:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 00:45:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 00:50:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 00:55:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 01:00:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 01:05:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 01:10:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 01:15:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 01:20:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 01:25:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 01:30:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 01:35:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 01:40:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 01:45:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 01:50:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 01:55:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 02:00:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 02:05:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 02:10:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 02:15:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 02:20:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 02:25:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 02:30:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 02:35:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 02:40:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 02:45:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 02:50:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 02:55:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 03:00:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 03:05:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 03:10:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 03:15:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 03:20:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 03:25:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 03:30:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 03:35:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 03:40:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 03:45:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 03:50:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 03:55:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 04:00:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 04:05:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 04:10:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 04:15:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 04:20:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 04:25:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 04:30:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 04:35:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 04:40:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 04:45:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 04:50:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 04:55:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 05:00:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 05:05:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 05:10:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 05:15:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 05:20:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 05:25:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 05:30:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 05:35:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 05:40:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 05:45:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 05:50:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 05:55:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 06:00:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 06:05:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 06:10:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 06:15:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 06:20:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 06:25:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 06:30:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 06:35:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 06:40:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 06:45:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 06:50:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 06:55:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 07:00:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 07:05:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 07:10:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 07:15:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 07:20:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 07:25:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 07:30:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 07:35:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 07:40:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 07:45:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 07:50:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 07:55:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 08:00:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 08:05:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 08:10:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 08:15:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 08:20:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 08:25:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 08:30:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 08:35:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 08:40:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 08:45:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 08:50:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 08:55:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 09:00:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 09:05:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 09:10:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 09:15:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 09:20:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 09:25:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 09:30:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 09:35:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 09:40:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 09:45:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 09:50:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 09:55:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 10:00:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 10:05:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 10:10:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 10:15:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 10:20:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 10:25:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 10:30:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 10:35:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 10:40:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 10:45:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 10:50:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 10:55:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 11:00:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 11:05:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 11:10:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 11:15:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 11:20:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 11:25:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 11:30:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 11:35:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 11:40:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 11:45:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 11:50:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 11:55:00 UTC at 09:21:25
  WAVEWATCH III calculating for 1968/06/06 12:00:00 UTC at 09:21:25
  WAVEWATCH III reached the end of a computation loop at 09:21:25

  Initialization time :      0.00 s
  Elapsed time        :      0.08 s

  End of program 
 ====================================
         WAVEWATCH III Program shell 

and the subdirectory contains a file out_pnt.ww3, which is the binary format point data.

The swich file is in the parent directory and contains:

NOGRB SHRD PR1 FLX2 LN0 ST0 NL0 BT0 DB0 TR0 BS0 IC0 IS0 REF0 WNT1 WNX1 CRT1 CRX1 O0 O1 O2 O3 O4 O5 O6 O7 O10 O11

@JessicaMeixner-NOAA
Copy link
Collaborator

@edwardhartnett I know this is a draft PR, but it also contains binaries that we want to make sure do not get into the WW3 repository so just a quick note here about that as well.

@edwardhartnett
Copy link
Contributor Author

@JessicaMeixner-NOAA yes, I will resolve the binary file issue in the other PR and then update this one with that fix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants