WAVEWATCH III  beta 0.0.1
w3nmlounpmd.F90
Go to the documentation of this file.
1 #include "w3macros.h"
2 !/ ------------------------------------------------------------------- /
3 MODULE w3nmlounpmd
4  !/
5  !/ +-----------------------------------+
6  !/ | WAVEWATCH III NOAA/NCEP |
7  !/ | M. Accensi |
8  !/ | |
9  !/ | FORTRAN 90 |
10  !/ | Last update : 15-May-2018 |
11  !/ +-----------------------------------+
12  !/
13  !/ For updates see subroutines.
14  !/
15  ! 1. Purpose :
16  !
17  ! Manages namelists from configuration file ww3_ounp.nml for ww3_ounp program
18  !
19  !/ ------------------------------------------------------------------- /
20 
21  ! module defaults
22  IMPLICIT NONE
23 
24  PUBLIC
25 
26  ! point structure
28  CHARACTER(15) :: timestart
29  CHARACTER(15) :: timestride
30  CHARACTER(15) :: timecount
31  INTEGER :: timesplit
32  CHARACTER(1024) :: list
33  LOGICAL :: samefile
34  INTEGER :: buffer
35  INTEGER :: type
36  LOGICAL :: dimorder
37  END TYPE nml_point_t
38 
39  ! file structure
41  CHARACTER(30) :: prefix
42  INTEGER :: netcdf
43  END TYPE nml_file_t
44 
45  ! spectra structure
47  INTEGER :: output
48  REAL :: scale_fac
49  REAL :: output_fac
50  INTEGER :: type
51  END TYPE nml_spectra_t
52 
53  ! param structure
55  INTEGER :: output
56  END TYPE nml_param_t
57 
58  ! source structure
60  INTEGER :: output
61  REAL :: scale_fac
62  REAL :: output_fac
63  INTEGER :: table_fac
64  LOGICAL :: spectrum
65  LOGICAL :: input
66  LOGICAL :: interactions
67  LOGICAL :: dissipation
68  LOGICAL :: bottom
69  LOGICAL :: ice
70  LOGICAL :: total
71  END TYPE nml_source_t
72 
73 
74  ! miscellaneous
75  CHARACTER(256) :: msg
76  INTEGER :: ndsn
77 
78 
79 
80 
81 CONTAINS
82  !/ ------------------------------------------------------------------- /
83  SUBROUTINE w3nmlounp (NDSI, INFILE, NML_POINT, NML_FILE, &
84  NML_SPECTRA, NML_PARAM, NML_SOURCE, IERR)
85  !/
86  !/ +-----------------------------------+
87  !/ | WAVEWATCH III NOAA/NCEP |
88  !/ | M. Accensi |
89  !/ | |
90  !/ | FORTRAN 90 |
91  !/ | Last update : 15-May-2018 |
92  !/ +-----------------------------------+
93  !/
94  !
95  ! 1. Purpose :
96  !
97  ! Reads all the namelist to define the output point
98  !
99  ! 2. Method :
100  !
101  ! See source term routines.
102  !
103  ! 3. Parameters :
104  !
105  ! Parameter list
106  ! ----------------------------------------------------------------
107  ! NDSI Int.
108  ! INFILE Char.
109  ! NML_POINT type.
110  ! NML_FILE type.
111  ! NML_SPECTRA type.
112  ! NML_PARAM type.
113  ! NML_SOURCE type.
114  ! IERR Int.
115  ! ----------------------------------------------------------------
116  !
117  ! 4. Subroutines used :
118  !
119  ! Name TYPE Module Description
120  ! ----------------------------------------------------------------
121  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
122  ! READ_POINT_NML
123  ! ----------------------------------------------------------------
124  !
125  ! 5. Called by :
126  !
127  ! Name TYPE Module Description
128  ! ----------------------------------------------------------------
129  ! WW3_OUNP Prog. N/A Postprocess output points.
130  ! ----------------------------------------------------------------
131  !
132  ! 6. Error messages :
133  !
134  ! None.
135  !
136  ! 7. Remarks :
137  !
138  ! 8. Structure :
139  !
140  ! See source code.
141  !
142  ! 9. Switches :
143  !
144  ! 10. Source code :
145  !
146  !/ ------------------------------------------------------------------- /
147 
148  USE w3odatmd, ONLY: ndse
149 #ifdef W3_S
150  USE w3servmd, ONLY: strace
151 #endif
152 
153  IMPLICIT NONE
154 
155  INTEGER, INTENT(IN) :: NDSI
156  CHARACTER*(*), INTENT(IN) :: INFILE
157  TYPE(nml_point_t), INTENT(INOUT) :: NML_POINT
158  TYPE(nml_file_t), INTENT(INOUT) :: NML_FILE
159  TYPE(nml_spectra_t), INTENT(INOUT) :: NML_SPECTRA
160  TYPE(nml_param_t), INTENT(INOUT) :: NML_PARAM
161  TYPE(nml_source_t), INTENT(INOUT) :: NML_SOURCE
162  INTEGER, INTENT(OUT) :: IERR
163 #ifdef W3_S
164  INTEGER, SAVE :: IENT = 0
165 #endif
166 
167  ierr = 0
168 #ifdef W3_S
169  CALL strace (ient, 'W3NMLOUNP')
170 #endif
171 
172  ! open namelist log file
173  ndsn = 3
174  OPEN (ndsn, file=trim(infile)//'.log', form='formatted', iostat=ierr)
175  IF (ierr.NE.0) THEN
176  WRITE (ndse,'(A)') 'ERROR: open full nml file '//trim(infile)//'.log failed'
177  RETURN
178  END IF
179 
180  ! open input file
181  OPEN (ndsi, file=trim(infile), form='formatted', status='old', iostat=ierr)
182  IF (ierr.NE.0) THEN
183  WRITE (ndse,'(A)') 'ERROR: open input file '//trim(infile)//' failed'
184  RETURN
185  END IF
186 
187  ! read point namelist
188  CALL read_point_nml (ndsi, nml_point)
189  CALL report_point_nml (nml_point)
190 
191  ! read file namelist
192  CALL read_file_nml (ndsi, nml_file)
193  CALL report_file_nml (nml_file)
194 
195  ! read spectra namelist
196  CALL read_spectra_nml (ndsi, nml_spectra)
197  CALL report_spectra_nml (nml_spectra)
198 
199  ! read param namelist
200  CALL read_param_nml (ndsi, nml_param)
201  CALL report_param_nml (nml_param)
202 
203  ! read source namelist
204  CALL read_source_nml (ndsi, nml_source)
205  CALL report_source_nml (nml_source)
206 
207  ! close namelist files
208  CLOSE (ndsi)
209  CLOSE (ndsn)
210 
211  END SUBROUTINE w3nmlounp
212 
213 
214  !/ ------------------------------------------------------------------- /
215 
216 
217 
218 
219 
220 
221  !/ ------------------------------------------------------------------- /
222 
223  SUBROUTINE read_point_nml (NDSI, NML_POINT)
224  !/
225  !/ +-----------------------------------+
226  !/ | WAVEWATCH III NOAA/NCEP |
227  !/ | M. Accensi |
228  !/ | |
229  !/ | FORTRAN 90 |
230  !/ | Last update : 15-May-2018 |
231  !/ +-----------------------------------+
232  !/
233  ! 1. Purpose :
234  !
235  !
236  ! 2. Method :
237  !
238  ! See source term routines.
239  !
240  ! 3. Parameters :
241  !
242  ! Parameter list
243  ! ----------------------------------------------------------------
244  ! NDSI Int.
245  ! NML_POINT Type.
246  ! ----------------------------------------------------------------
247  !
248  ! 4. Subroutines used :
249  !
250  ! Name TYPE Module Description
251  ! ----------------------------------------------------------------
252  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
253  ! ----------------------------------------------------------------
254  !
255  ! 5. Called by :
256  !
257  ! Name TYPE Module Description
258  ! ----------------------------------------------------------------
259  ! W3NMLOUNP Subr. N/A Namelist configuration routine.
260  ! ----------------------------------------------------------------
261  !
262  ! 6. Error messages :
263  !
264  ! None.
265  !
266  ! 7. Remarks :
267  !
268  ! 8. Structure :
269  !
270  ! See source code.
271  !
272  ! 9. Switches :
273  !
274  ! 10. Source code :
275  !
276  !/ ------------------------------------------------------------------- /
277 
278  USE w3odatmd, ONLY: ndse
279  USE w3servmd, ONLY: extcde
280 #ifdef W3_S
281  USE w3servmd, ONLY: strace
282 #endif
283 
284  IMPLICIT NONE
285 
286  INTEGER, INTENT(IN) :: NDSI
287  TYPE(nml_point_t), INTENT(INOUT) :: NML_POINT
288 
289  ! locals
290  INTEGER :: IERR
291  TYPE(nml_point_t) :: POINT
292  namelist /point_nml/ point
293 #ifdef W3_S
294  INTEGER, SAVE :: IENT = 0
295 #endif
296 
297  ierr = 0
298 #ifdef W3_S
299  CALL strace (ient, 'READ_POINT_NML')
300 #endif
301 
302  ! set default values for point structure
303  point%TIMESTART = '19000101 000000'
304  point%TIMESTRIDE = '0'
305  point%TIMECOUNT = '1000000000'
306  point%TIMESPLIT = 6
307  point%LIST = 'all'
308  point%SAMEFILE = .true.
309  point%BUFFER = 150
310  point%TYPE = 1
311  point%DIMORDER = .true.
312 
313  ! read point namelist
314  rewind(ndsi)
315  READ (ndsi, nml=point_nml, iostat=ierr, iomsg=msg)
316  IF (ierr.NE.0) THEN
317  WRITE (ndse,'(A,/A)') &
318  'ERROR: READ_POINT_NML: namelist read error', &
319  'ERROR: '//trim(msg)
320  CALL extcde (1)
321  END IF
322 
323  ! save namelist
324  nml_point = point
325 
326  END SUBROUTINE read_point_nml
327 
328  !/ ------------------------------------------------------------------- /
329 
330 
331 
332  !/ ------------------------------------------------------------------- /
333 
334  SUBROUTINE read_file_nml (NDSI, NML_FILE)
335  !/
336  !/ +-----------------------------------+
337  !/ | WAVEWATCH III NOAA/NCEP |
338  !/ | M. Accensi |
339  !/ | |
340  !/ | FORTRAN 90 |
341  !/ | Last update : 15-May-2018 |
342  !/ +-----------------------------------+
343  !/
344  ! 1. Purpose :
345  !
346  !
347  ! 2. Method :
348  !
349  ! See source term routines.
350  !
351  ! 3. Parameters :
352  !
353  ! Parameter list
354  ! ----------------------------------------------------------------
355  ! NDSI Int.
356  ! NML_FILE Type.
357  ! ----------------------------------------------------------------
358  !
359  ! 4. Subroutines used :
360  !
361  ! Name TYPE Module Description
362  ! ----------------------------------------------------------------
363  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
364  ! ----------------------------------------------------------------
365  !
366  ! 5. Called by :
367  !
368  ! Name TYPE Module Description
369  ! ----------------------------------------------------------------
370  ! W3NMLOUNP Subr. N/A Namelist configuration routine.
371  ! ----------------------------------------------------------------
372  !
373  ! 6. Error messages :
374  !
375  ! None.
376  !
377  ! 7. Remarks :
378  !
379  ! 8. Structure :
380  !
381  ! See source code.
382  !
383  ! 9. Switches :
384  !
385  ! 10. Source code :
386  !
387  !/ ------------------------------------------------------------------- /
388 
389  USE w3odatmd, ONLY: ndse
390  USE w3servmd, ONLY: extcde
391 #ifdef W3_S
392  USE w3servmd, ONLY: strace
393 #endif
394 
395  IMPLICIT NONE
396 
397  INTEGER, INTENT(IN) :: NDSI
398  TYPE(nml_file_t), INTENT(INOUT) :: NML_FILE
399 
400  ! locals
401  INTEGER :: IERR
402  TYPE(nml_file_t) :: FILE
403  namelist /file_nml/ file
404 #ifdef W3_S
405  INTEGER, SAVE :: IENT = 0
406 #endif
407 
408  ierr = 0
409 #ifdef W3_S
410  CALL strace (ient, 'READ_FILE_NML')
411 #endif
412 
413  ! set default values for file structure
414  file%PREFIX = 'ww3.'
415  file%NETCDF = 3
416 
417 
418  ! read file namelist
419  rewind(ndsi)
420  READ (ndsi, nml=file_nml, iostat=ierr, iomsg=msg)
421  IF (ierr.GT.0) THEN
422  WRITE (ndse,'(A,/A)') &
423  'ERROR: READ_FILE_NML: namelist read error', &
424  'ERROR: '//trim(msg)
425  CALL extcde (2)
426  END IF
427 
428  ! save namelist
429  nml_file = file
430 
431  END SUBROUTINE read_file_nml
432 
433  !/ ------------------------------------------------------------------- /
434 
435 
436 
437  !/ ------------------------------------------------------------------- /
438 
439  SUBROUTINE read_spectra_nml (NDSI, NML_SPECTRA)
440  !/
441  !/ +-----------------------------------+
442  !/ | WAVEWATCH III NOAA/NCEP |
443  !/ | M. Accensi |
444  !/ | |
445  !/ | FORTRAN 90 |
446  !/ | Last update : 15-May-2018 |
447  !/ +-----------------------------------+
448  !/
449  ! 1. Purpose :
450  !
451  !
452  ! 2. Method :
453  !
454  ! See source term routines.
455  !
456  ! 3. Parameters :
457  !
458  ! Parameter list
459  ! ----------------------------------------------------------------
460  ! NDSI Int.
461  ! NML_SPECTRA Type.
462  ! ----------------------------------------------------------------
463  !
464  ! 4. Subroutines used :
465  !
466  ! Name TYPE Module Description
467  ! ----------------------------------------------------------------
468  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
469  ! ----------------------------------------------------------------
470  !
471  ! 5. Called by :
472  !
473  ! Name TYPE Module Description
474  ! ----------------------------------------------------------------
475  ! W3NMLOUNP Subr. N/A Namelist configuration routine.
476  ! ----------------------------------------------------------------
477  !
478  ! 6. Error messages :
479  !
480  ! None.
481  !
482  ! 7. Remarks :
483  !
484  ! 8. Structure :
485  !
486  ! See source code.
487  !
488  ! 9. Switches :
489  !
490  ! 10. Source code :
491  !
492  !/ ------------------------------------------------------------------- /
493 
494  USE w3odatmd, ONLY: ndse
495  USE w3servmd, ONLY: extcde
496 #ifdef W3_S
497  USE w3servmd, ONLY: strace
498 #endif
499 
500  IMPLICIT NONE
501 
502  INTEGER, INTENT(IN) :: NDSI
503  TYPE(nml_spectra_t), INTENT(INOUT) :: NML_SPECTRA
504 
505  ! locals
506  INTEGER :: IERR
507  TYPE(nml_spectra_t) :: SPECTRA
508  namelist /spectra_nml/ spectra
509 #ifdef W3_S
510  INTEGER, SAVE :: IENT = 0
511 #endif
512 
513  ierr = 0
514 #ifdef W3_S
515  CALL strace (ient, 'READ_SPECTRA_NML')
516 #endif
517 
518  ! set default values for spectra structure
519  spectra%OUTPUT = 3
520  spectra%SCALE_FAC = 1
521  spectra%OUTPUT_FAC = 0
522  spectra%TYPE = 4
523 
524 
525  ! read spectra namelist
526  rewind(ndsi)
527  READ (ndsi, nml=spectra_nml, iostat=ierr, iomsg=msg)
528  IF (ierr.GT.0) THEN
529  WRITE (ndse,'(A,/A)') &
530  'ERROR: READ_SPECTRA_NML: namelist read error', &
531  'ERROR: '//trim(msg)
532  CALL extcde (3)
533  END IF
534 
535  ! save namelist
536  nml_spectra = spectra
537 
538  END SUBROUTINE read_spectra_nml
539 
540  !/ ------------------------------------------------------------------- /
541 
542 
543  !/ ------------------------------------------------------------------- /
544 
545  SUBROUTINE read_param_nml (NDSI, NML_PARAM)
546  !/
547  !/ +-----------------------------------+
548  !/ | WAVEWATCH III NOAA/NCEP |
549  !/ | M. Accensi |
550  !/ | |
551  !/ | FORTRAN 90 |
552  !/ | Last update : 15-May-2018 |
553  !/ +-----------------------------------+
554  !/
555  ! 1. Purpose :
556  !
557  !
558  ! 2. Method :
559  !
560  ! See source term routines.
561  !
562  ! 3. Parameters :
563  !
564  ! Parameter list
565  ! ----------------------------------------------------------------
566  ! NDSI Int.
567  ! NML_PARAM Type.
568  ! ----------------------------------------------------------------
569  !
570  ! 4. Subroutines used :
571  !
572  ! Name TYPE Module Description
573  ! ----------------------------------------------------------------
574  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
575  ! ----------------------------------------------------------------
576  !
577  ! 5. Called by :
578  !
579  ! Name TYPE Module Description
580  ! ----------------------------------------------------------------
581  ! W3NMLOUNP Subr. N/A Namelist configuration routine.
582  ! ----------------------------------------------------------------
583  !
584  ! 6. Error messages :
585  !
586  ! None.
587  !
588  ! 7. Remarks :
589  !
590  ! 8. Structure :
591  !
592  ! See source code.
593  !
594  ! 9. Switches :
595  !
596  ! 10. Source code :
597  !
598  !/ ------------------------------------------------------------------- /
599 
600  USE w3odatmd, ONLY: ndse
601  USE w3servmd, ONLY: extcde
602 #ifdef W3_S
603  USE w3servmd, ONLY: strace
604 #endif
605 
606  IMPLICIT NONE
607 
608  INTEGER, INTENT(IN) :: NDSI
609  TYPE(nml_param_t), INTENT(INOUT) :: NML_PARAM
610 
611  ! locals
612  INTEGER :: IERR
613  TYPE(nml_param_t) :: PARAM
614  namelist /param_nml/ param
615 #ifdef W3_S
616  INTEGER, SAVE :: IENT = 0
617 #endif
618 
619  ierr = 0
620 #ifdef W3_S
621  CALL strace (ient, 'READ_PARAM_NML')
622 #endif
623 
624  ! set default values for param structure
625  param%OUTPUT = 3
626 
627  ! read param namelist
628  rewind(ndsi)
629  READ (ndsi, nml=param_nml, iostat=ierr, iomsg=msg)
630  IF (ierr.GT.0) THEN
631  WRITE (ndse,'(A,/A)') &
632  'ERROR: READ_PARAM_NML: namelist read error', &
633  'ERROR: '//trim(msg)
634  CALL extcde (4)
635  END IF
636 
637  ! save namelist
638  nml_param = param
639 
640  END SUBROUTINE read_param_nml
641 
642  !/ ------------------------------------------------------------------- /
643 
644 
645 
646  SUBROUTINE read_source_nml (NDSI, NML_SOURCE)
647  !/
648  !/ +-----------------------------------+
649  !/ | WAVEWATCH III NOAA/NCEP |
650  !/ | M. Accensi |
651  !/ | |
652  !/ | FORTRAN 90 |
653  !/ | Last update : 15-May-2018 |
654  !/ +-----------------------------------+
655  !/
656  ! 1. Purpose :
657  !
658  !
659  ! 2. Method :
660  !
661  ! See source term routines.
662  !
663  ! 3. Parameters :
664  !
665  ! Parameter list
666  ! ----------------------------------------------------------------
667  ! NDSI Int.
668  ! NML_SOURCE Type.
669  ! ----------------------------------------------------------------
670  !
671  ! 4. Subroutines used :
672  !
673  ! Name TYPE Module Description
674  ! ----------------------------------------------------------------
675  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
676  ! ----------------------------------------------------------------
677  !
678  ! 5. Called by :
679  !
680  ! Name TYPE Module Description
681  ! ----------------------------------------------------------------
682  ! W3NMLOUNP Subr. N/A Namelist configuration routine.
683  ! ----------------------------------------------------------------
684  !
685  ! 6. Error messages :
686  !
687  ! None.
688  !
689  ! 7. Remarks :
690  !
691  ! 8. Structure :
692  !
693  ! See source code.
694  !
695  ! 9. Switches :
696  !
697  ! 10. Source code :
698  !
699  !/ ------------------------------------------------------------------- /
700 
701  USE w3odatmd, ONLY: ndse
702  USE w3servmd, ONLY: extcde
703 #ifdef W3_S
704  USE w3servmd, ONLY: strace
705 #endif
706 
707  IMPLICIT NONE
708 
709  INTEGER, INTENT(IN) :: NDSI
710  TYPE(nml_source_t), INTENT(INOUT) :: NML_SOURCE
711 
712  ! locals
713  INTEGER :: IERR
714  TYPE(nml_source_t) :: SOURCE
715  namelist /source_nml/ source
716 #ifdef W3_S
717  INTEGER, SAVE :: IENT = 0
718 #endif
719 
720  ierr = 0
721 #ifdef W3_S
722  CALL strace (ient, 'READ_SOURCE_NML')
723 #endif
724 
725  ! set default values for source structure
726  source%OUTPUT = 4
727  source%SCALE_FAC = 0
728  source%OUTPUT_FAC = 0
729  source%TABLE_FAC = 0
730  source%SPECTRUM = .true.
731  source%INPUT = .true.
732  source%INTERACTIONS= .true.
733  source%DISSIPATION = .true.
734  source%BOTTOM = .true.
735  source%ICE = .true.
736  source%TOTAL = .true.
737 
738  ! read source namelist
739  rewind(ndsi)
740  READ (ndsi, nml=source_nml, iostat=ierr, iomsg=msg)
741  IF (ierr.GT.0) THEN
742  WRITE (ndse,'(A,/A)') &
743  'ERROR: READ_SOURCE_NML: namelist read error', &
744  'ERROR: '//trim(msg)
745  CALL extcde (5)
746  END IF
747 
748  ! save namelist
749  nml_source = source
750 
751  END SUBROUTINE read_source_nml
752 
753  !/ ------------------------------------------------------------------- /
754 
755 
756 
757 
758 
759 
760 
761  !/ ------------------------------------------------------------------- /
762 
763  SUBROUTINE report_point_nml (NML_POINT)
764  !/
765  !/ +-----------------------------------+
766  !/ | WAVEWATCH III NOAA/NCEP |
767  !/ | M. Accensi |
768  !/ | FORTRAN 90 |
769  !/ | Last update : 15-May-2018 |
770  !/ +-----------------------------------+
771  !/
772  !/
773  ! 1. Purpose :
774  !
775  !
776  ! 2. Method :
777  !
778  ! See source term routines.
779  !
780  ! 3. Parameters :
781  !
782  ! Parameter list
783  ! ----------------------------------------------------------------
784  ! NML_POINT Type.
785  ! ----------------------------------------------------------------
786  !
787  ! 4. Subroutines used :
788  !
789  ! Name TYPE Module Description
790  ! ----------------------------------------------------------------
791  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
792  ! ----------------------------------------------------------------
793  !
794  ! 5. Called by :
795  !
796  ! Name TYPE Module Description
797  ! ----------------------------------------------------------------
798  ! W3NMLOUNP Subr. N/A Namelist configuration routine.
799  ! ----------------------------------------------------------------
800  !
801  ! 6. Error messages :
802  !
803  ! None.
804  !
805  ! 7. Remarks :
806  !
807  ! 8. Structure :
808  !
809  ! See source code.
810  !
811  ! 9. Switches :
812  !
813  ! 10. Source code :
814  !
815  !/ ------------------------------------------------------------------- /
816 
817 #ifdef W3_S
818  USE w3servmd, ONLY: strace
819 #endif
820 
821  IMPLICIT NONE
822 
823  TYPE(nml_point_t), INTENT(IN) :: NML_POINT
824 #ifdef W3_S
825  INTEGER, SAVE :: IENT = 0
826 #endif
827 
828 #ifdef W3_S
829  CALL strace (ient, 'REPORT_POINT_NML')
830 #endif
831 
832  WRITE (msg,'(A)') 'POINT % '
833  WRITE (ndsn,'(A)')
834  WRITE (ndsn,10) trim(msg),'TIMESTART = ', trim(nml_point%TIMESTART)
835  WRITE (ndsn,10) trim(msg),'TIMESTRIDE = ', trim(nml_point%TIMESTRIDE)
836  WRITE (ndsn,10) trim(msg),'TIMECOUNT = ', trim(nml_point%TIMECOUNT)
837 
838  WRITE (ndsn,11) trim(msg),'TIMESPLIT = ', nml_point%TIMESPLIT
839  WRITE (ndsn,10) trim(msg),'LIST = ', trim(nml_point%LIST)
840  WRITE (ndsn,13) trim(msg),'SAMEFILE = ', nml_point%SAMEFILE
841  WRITE (ndsn,11) trim(msg),'BUFFER = ', nml_point%BUFFER
842  WRITE (ndsn,11) trim(msg),'TYPE = ', nml_point%TYPE
843  WRITE (ndsn,13) trim(msg),'DIMORDER = ', nml_point%DIMORDER
844 
845 10 FORMAT (a,2x,a,a)
846 11 FORMAT (a,2x,a,i8)
847 13 FORMAT (a,2x,a,l1)
848 
849  END SUBROUTINE report_point_nml
850 
851  !/ ------------------------------------------------------------------- /
852 
853 
854 
855 
856 
857 
858  !/ ------------------------------------------------------------------- /
859 
860  SUBROUTINE report_file_nml (NML_FILE)
861  !/
862  !/ +-----------------------------------+
863  !/ | WAVEWATCH III NOAA/NCEP |
864  !/ | M. Accensi |
865  !/ | FORTRAN 90 |
866  !/ | Last update : 15-May-2018 |
867  !/ +-----------------------------------+
868  !/
869  !/
870  ! 1. Purpose :
871  !
872  !
873  ! 2. Method :
874  !
875  ! See source term routines.
876  !
877  ! 3. Parameters :
878  !
879  ! Parameter list
880  ! ----------------------------------------------------------------
881  ! NML_FILE Type.
882  ! ----------------------------------------------------------------
883  !
884  ! 4. Subroutines used :
885  !
886  ! Name TYPE Module Description
887  ! ----------------------------------------------------------------
888  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
889  ! ----------------------------------------------------------------
890  !
891  ! 5. Called by :
892  !
893  ! Name TYPE Module Description
894  ! ----------------------------------------------------------------
895  ! W3NMLOUNP Subr. N/A Namelist configuration routine.
896  ! ----------------------------------------------------------------
897  !
898  ! 6. Error messages :
899  !
900  ! None.
901  !
902  ! 7. Remarks :
903  !
904  ! 8. Structure :
905  !
906  ! See source code.
907  !
908  ! 9. Switches :
909  !
910  ! 10. Source code :
911  !
912  !/ ------------------------------------------------------------------- /
913 
914 #ifdef W3_S
915  USE w3servmd, ONLY: strace
916 #endif
917 
918  IMPLICIT NONE
919 
920  TYPE(nml_file_t), INTENT(IN) :: NML_FILE
921 #ifdef W3_S
922  INTEGER, SAVE :: IENT = 0
923 #endif
924 
925 #ifdef W3_S
926  CALL strace (ient, 'REPORT_FILE_NML')
927 #endif
928 
929  WRITE (msg,'(A)') 'FILE % '
930  WRITE (ndsn,'(A)')
931  WRITE (ndsn,10) trim(msg),'PREFIX = ', trim(nml_file%PREFIX)
932  WRITE (ndsn,11) trim(msg),'NETCDF = ', nml_file%NETCDF
933 
934 
935 10 FORMAT (a,2x,a,a)
936 11 FORMAT (a,2x,a,i8)
937 
938  END SUBROUTINE report_file_nml
939 
940  !/ ------------------------------------------------------------------- /
941 
942 
943  !/ ------------------------------------------------------------------- /
944 
945  SUBROUTINE report_spectra_nml (NML_SPECTRA)
946  !/
947  !/ +-----------------------------------+
948  !/ | WAVEWATCH III NOAA/NCEP |
949  !/ | M. Accensi |
950  !/ | FORTRAN 90 |
951  !/ | Last update : 15-May-2018 |
952  !/ +-----------------------------------+
953  !/
954  !/
955  ! 1. Purpose :
956  !
957  !
958  ! 2. Method :
959  !
960  ! See source term routines.
961  !
962  ! 3. Parameters :
963  !
964  ! Parameter list
965  ! ----------------------------------------------------------------
966  ! NML_SPECTRA Type.
967  ! ----------------------------------------------------------------
968  !
969  ! 4. Subroutines used :
970  !
971  ! Name TYPE Module Description
972  ! ----------------------------------------------------------------
973  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
974  ! ----------------------------------------------------------------
975  !
976  ! 5. Called by :
977  !
978  ! Name TYPE Module Description
979  ! ----------------------------------------------------------------
980  ! W3NMLOUNP Subr. N/A Namelist configuration routine.
981  ! ----------------------------------------------------------------
982  !
983  ! 6. Error messages :
984  !
985  ! None.
986  !
987  ! 7. Remarks :
988  !
989  ! 8. Structure :
990  !
991  ! See source code.
992  !
993  ! 9. Switches :
994  !
995  ! 10. Source code :
996  !
997  !/ ------------------------------------------------------------------- /
998 
999 #ifdef W3_S
1000  USE w3servmd, ONLY: strace
1001 #endif
1002 
1003  IMPLICIT NONE
1004 
1005  TYPE(nml_spectra_t), INTENT(IN) :: NML_SPECTRA
1006 #ifdef W3_S
1007  INTEGER, SAVE :: IENT = 0
1008 #endif
1009 
1010 #ifdef W3_S
1011  CALL strace (ient, 'REPORT_SPECTRA_NML')
1012 #endif
1013 
1014  WRITE (msg,'(A)') 'SPECTRA % '
1015  WRITE (ndsn,'(A)')
1016  WRITE (ndsn,11) trim(msg),'OUTPUT = ', nml_spectra%OUTPUT
1017  WRITE (ndsn,14) trim(msg),'SCALE_FAC = ', nml_spectra%SCALE_FAC
1018  WRITE (ndsn,14) trim(msg),'OUTPUT_FAC = ', nml_spectra%OUTPUT_FAC
1019  WRITE (ndsn,11) trim(msg),'TYPE = ', nml_spectra%TYPE
1020 
1021 
1022 11 FORMAT (a,2x,a,i8)
1023 14 FORMAT (a,2x,a,f8.2)
1024 
1025  END SUBROUTINE report_spectra_nml
1026 
1027  !/ ------------------------------------------------------------------- /
1028 
1029 
1030  !/ ------------------------------------------------------------------- /
1031 
1032  SUBROUTINE report_param_nml (NML_PARAM)
1033  !/
1034  !/ +-----------------------------------+
1035  !/ | WAVEWATCH III NOAA/NCEP |
1036  !/ | M. Accensi |
1037  !/ | FORTRAN 90 |
1038  !/ | Last update : 15-May-2018 |
1039  !/ +-----------------------------------+
1040  !/
1041  !/
1042  ! 1. Purpose :
1043  !
1044  !
1045  ! 2. Method :
1046  !
1047  ! See source term routines.
1048  !
1049  ! 3. Parameters :
1050  !
1051  ! Parameter list
1052  ! ----------------------------------------------------------------
1053  ! NML_PARAM Type.
1054  ! ----------------------------------------------------------------
1055  !
1056  ! 4. Subroutines used :
1057  !
1058  ! Name TYPE Module Description
1059  ! ----------------------------------------------------------------
1060  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1061  ! ----------------------------------------------------------------
1062  !
1063  ! 5. Called by :
1064  !
1065  ! Name TYPE Module Description
1066  ! ----------------------------------------------------------------
1067  ! W3NMLOUNP Subr. N/A Namelist configuration routine.
1068  ! ----------------------------------------------------------------
1069  !
1070  ! 6. Error messages :
1071  !
1072  ! None.
1073  !
1074  ! 7. Remarks :
1075  !
1076  ! 8. Structure :
1077  !
1078  ! See source code.
1079  !
1080  ! 9. Switches :
1081  !
1082  ! 10. Source code :
1083  !
1084  !/ ------------------------------------------------------------------- /
1085 
1086 #ifdef W3_S
1087  USE w3servmd, ONLY: strace
1088 #endif
1089 
1090  IMPLICIT NONE
1091 
1092  TYPE(nml_param_t), INTENT(IN) :: NML_PARAM
1093 #ifdef W3_S
1094  INTEGER, SAVE :: IENT = 0
1095 #endif
1096 
1097 #ifdef W3_S
1098  CALL strace (ient, 'REPORT_PARAM_NML')
1099 #endif
1100 
1101  WRITE (msg,'(A)') 'PARAM % '
1102  WRITE (ndsn,'(A)')
1103  WRITE (ndsn,11) trim(msg),'OUTPUT = ', nml_param%OUTPUT
1104 
1105 11 FORMAT (a,2x,a,i8)
1106 
1107  END SUBROUTINE report_param_nml
1108 
1109  !/ ------------------------------------------------------------------- /
1110 
1111  !/ ------------------------------------------------------------------- /
1112 
1113  SUBROUTINE report_source_nml (NML_SOURCE)
1114  !/
1115  !/ +-----------------------------------+
1116  !/ | WAVEWATCH III NOAA/NCEP |
1117  !/ | M. Accensi |
1118  !/ | FORTRAN 90 |
1119  !/ | Last update : 15-May-2018 |
1120  !/ +-----------------------------------+
1121  !/
1122  !/
1123  ! 1. Purpose :
1124  !
1125  !
1126  ! 2. Method :
1127  !
1128  ! See source term routines.
1129  !
1130  ! 3. Parameters :
1131  !
1132  ! Parameter list
1133  ! ----------------------------------------------------------------
1134  ! NML_SOURCE Type.
1135  ! ----------------------------------------------------------------
1136  !
1137  ! 4. Subroutines used :
1138  !
1139  ! Name TYPE Module Description
1140  ! ----------------------------------------------------------------
1141  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1142  ! ----------------------------------------------------------------
1143  !
1144  ! 5. Called by :
1145  !
1146  ! Name TYPE Module Description
1147  ! ----------------------------------------------------------------
1148  ! W3NMLOUNP Subr. N/A Namelist configuration routine.
1149  ! ----------------------------------------------------------------
1150  !
1151  ! 6. Error messages :
1152  !
1153  ! None.
1154  !
1155  ! 7. Remarks :
1156  !
1157  ! 8. Structure :
1158  !
1159  ! See source code.
1160  !
1161  ! 9. Switches :
1162  !
1163  ! 10. Source code :
1164  !
1165  !/ ------------------------------------------------------------------- /
1166 
1167 #ifdef W3_S
1168  USE w3servmd, ONLY: strace
1169 #endif
1170 
1171  IMPLICIT NONE
1172 
1173  TYPE(nml_source_t), INTENT(IN) :: NML_SOURCE
1174 #ifdef W3_S
1175  INTEGER, SAVE :: IENT = 0
1176 #endif
1177 
1178 #ifdef W3_S
1179  CALL strace (ient, 'REPORT_SOURCE_NML')
1180 #endif
1181 
1182  WRITE (msg,'(A)') 'SOURCE % '
1183  WRITE (ndsn,'(A)')
1184  WRITE (ndsn,11) trim(msg),'OUTPUT = ', nml_source%OUTPUT
1185  WRITE (ndsn,14) trim(msg),'SCALE_FAC = ', nml_source%SCALE_FAC
1186  WRITE (ndsn,14) trim(msg),'OUTPUT_FAC = ', nml_source%OUTPUT_FAC
1187  WRITE (ndsn,11) trim(msg),'TABLE_FAC = ', nml_source%TABLE_FAC
1188  WRITE (ndsn,13) trim(msg),'SPECTRUM = ', nml_source%SPECTRUM
1189  WRITE (ndsn,13) trim(msg),'INPUT = ', nml_source%INPUT
1190  WRITE (ndsn,13) trim(msg),'INTERACTIONS = ', nml_source%INTERACTIONS
1191  WRITE (ndsn,13) trim(msg),'DISSIPATION = ', nml_source%DISSIPATION
1192  WRITE (ndsn,13) trim(msg),'ICE = ', nml_source%ICE
1193  WRITE (ndsn,13) trim(msg),'TOTAL = ', nml_source%TOTAL
1194 
1195 
1196 
1197 11 FORMAT (a,2x,a,i8)
1198 13 FORMAT (a,2x,a,l1)
1199 14 FORMAT (a,2x,a,f8.2)
1200 
1201  END SUBROUTINE report_source_nml
1202 
1203  !/ ------------------------------------------------------------------- /
1204 
1205 
1206 
1207 END MODULE w3nmlounpmd
1208 
1209 !/ ------------------------------------------------------------------- /
w3nmlounpmd::read_file_nml
subroutine read_file_nml(NDSI, NML_FILE)
Definition: w3nmlounpmd.F90:335
w3nmlounpmd::report_file_nml
subroutine report_file_nml(NML_FILE)
Definition: w3nmlounpmd.F90:861
w3nmlounpmd::msg
character(256) msg
Definition: w3nmlounpmd.F90:75
w3nmlounpmd::read_source_nml
subroutine read_source_nml(NDSI, NML_SOURCE)
Definition: w3nmlounpmd.F90:647
w3nmlounpmd::w3nmlounp
subroutine w3nmlounp(NDSI, INFILE, NML_POINT, NML_FILE, NML_SPECTRA, NML_PARAM, NML_SOURCE, IERR)
Definition: w3nmlounpmd.F90:85
w3nmlounpmd::report_point_nml
subroutine report_point_nml(NML_POINT)
Definition: w3nmlounpmd.F90:764
w3nmlounpmd::nml_file_t
Definition: w3nmlounpmd.F90:40
w3nmlounpmd::nml_point_t
Definition: w3nmlounpmd.F90:27
w3nmlounpmd::read_spectra_nml
subroutine read_spectra_nml(NDSI, NML_SPECTRA)
Definition: w3nmlounpmd.F90:440
w3nmlounpmd::ndsn
integer ndsn
Definition: w3nmlounpmd.F90:76
w3nmlounpmd::report_spectra_nml
subroutine report_spectra_nml(NML_SPECTRA)
Definition: w3nmlounpmd.F90:946
w3nmlounpmd::nml_source_t
Definition: w3nmlounpmd.F90:59
w3nmlounpmd
Definition: w3nmlounpmd.F90:3
w3nmlounpmd::report_source_nml
subroutine report_source_nml(NML_SOURCE)
Definition: w3nmlounpmd.F90:1114
w3odatmd::ndse
integer, pointer ndse
Definition: w3odatmd.F90:456
w3nmlounpmd::nml_param_t
Definition: w3nmlounpmd.F90:54
w3servmd
Definition: w3servmd.F90:3
w3odatmd
Definition: w3odatmd.F90:3
file
file(STRINGS ${CMAKE_BINARY_DIR}/switch switch_strings) separate_arguments(switches UNIX_COMMAND $
Definition: CMakeLists.txt:3
w3servmd::strace
subroutine strace(IENT, SNAME)
Definition: w3servmd.F90:148
w3servmd::extcde
subroutine extcde(IEXIT, UNIT, MSG, FILE, LINE, COMM)
Definition: w3servmd.F90:736
w3nmlounpmd::read_param_nml
subroutine read_param_nml(NDSI, NML_PARAM)
Definition: w3nmlounpmd.F90:546
w3nmlounpmd::report_param_nml
subroutine report_param_nml(NML_PARAM)
Definition: w3nmlounpmd.F90:1033
w3nmlounpmd::nml_spectra_t
Definition: w3nmlounpmd.F90:46
w3nmlounpmd::read_point_nml
subroutine read_point_nml(NDSI, NML_POINT)
Definition: w3nmlounpmd.F90:224