WAVEWATCH III  beta 0.0.1
w3nmlshelmd Module Reference

Data Types

type  nml_assim_t
 
type  nml_coupling_t
 
type  nml_domain_t
 
type  nml_field_t
 
type  nml_forcing_t
 
type  nml_homog_count_t
 
type  nml_homog_input_t
 
type  nml_input_t
 
type  nml_output_date_t
 
type  nml_output_time_t
 
type  nml_output_type_t
 
type  nml_partition_t
 
type  nml_point_t
 
type  nml_restart_t
 
type  nml_track_t
 

Functions/Subroutines

subroutine w3nmlshel (MPI_COMM, NDSI, INFILE, NML_DOMAIN, NML_INPUT, NML_OUTPUT_TYPE, NML_OUTPUT_DATE, NML_HOMOG_COUNT, NML_HOMOG_INPUT, IERR)
 
subroutine read_domain_nml (NDSI, NML_DOMAIN)
 
subroutine read_input_nml (NDSI, NML_INPUT)
 
subroutine read_output_type_nml (NDSI, NML_OUTPUT_TYPE)
 
subroutine read_output_date_nml (NDSI, NML_OUTPUT_DATE)
 
subroutine read_homogeneous_nml (NDSI, NML_HOMOG_COUNT, NML_HOMOG_INPUT)
 
subroutine report_domain_nml (NML_DOMAIN)
 
subroutine report_input_nml (NML_INPUT)
 
subroutine report_output_type_nml (NML_OUTPUT_TYPE)
 
subroutine report_output_date_nml (NML_OUTPUT_DATE)
 
subroutine report_homogeneous_nml (NML_HOMOG_COUNT, NML_HOMOG_INPUT)
 

Variables

character(256) msg
 
integer ndsn
 

Function/Subroutine Documentation

◆ read_domain_nml()

subroutine w3nmlshelmd::read_domain_nml ( integer, intent(in)  NDSI,
type(nml_domain_t), intent(out)  NML_DOMAIN 
)

Definition at line 340 of file w3nmlshelmd.F90.

340  !/
341  !/ +-----------------------------------+
342  !/ | WAVEWATCH III NOAA/NCEP |
343  !/ | M. Accensi |
344  !/ | |
345  !/ | FORTRAN 90 |
346  !/ | Last update : 18-Apr-2018 |
347  !/ +-----------------------------------+
348  !/
349 
350  ! 1. Purpose :
351  !
352  !
353  ! 2. Method :
354  !
355  ! See source term routines.
356  !
357  ! 3. Parameters :
358  !
359  ! Parameter list
360  ! ----------------------------------------------------------------
361  ! NDSI Int.
362  ! NML_DOMAIN Type.
363  ! ----------------------------------------------------------------
364  !
365  ! 4. Subroutines used :
366  !
367  ! Name Type Module Description
368  ! ----------------------------------------------------------------
369  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
370  ! ----------------------------------------------------------------
371  !
372  ! 5. Called by :
373  !
374  ! Name Type Module Description
375  ! ----------------------------------------------------------------
376  ! W3NMLSHEL Subr. N/A Namelist configuration routine.
377  ! ----------------------------------------------------------------
378  !
379  ! 6. Error messages :
380  !
381  ! None.
382  !
383  ! 7. Remarks :
384  !
385  ! 8. Structure :
386  !
387  ! See source code.
388  !
389  ! 9. Switches :
390  !
391  ! !/MPI Uses MPI communications
392  !
393  ! 10. Source code :
394  !
395  !/ ------------------------------------------------------------------- /
396 
397  USE wmmdatmd, ONLY: mdse
398  USE w3servmd, ONLY: extcde
399 #ifdef W3_S
400  USE w3servmd, ONLY: strace
401 #endif
402 
403  IMPLICIT NONE
404 
405  INTEGER, INTENT(IN) :: NDSI
406  TYPE(NML_DOMAIN_T), INTENT(OUT) :: NML_DOMAIN
407 
408  ! locals
409  INTEGER :: IERR
410  TYPE(NML_DOMAIN_T) :: DOMAIN
411  namelist /domain_nml/ domain
412 #ifdef W3_S
413  INTEGER, SAVE :: IENT = 0
414 #endif
415 
416  ierr = 0
417 #ifdef W3_S
418  CALL strace (ient, 'READ_DOMAIN_NML')
419 #endif
420 
421  ! set default values for domain structure
422  domain%IOSTYP = 1
423  domain%START = '19680606 000000'
424  domain%STOP = '19680607 000000'
425 
426  ! read domain namelist
427  rewind(ndsi)
428  READ (ndsi, nml=domain_nml, iostat=ierr, iomsg=msg)
429  IF (ierr.GT.0) THEN
430  WRITE (mdse,'(A,/A)') &
431  'ERROR: READ_DOMAIN_NML: namelist read error', &
432  'ERROR: '//trim(msg)
433  CALL extcde (1)
434  END IF
435 
436  ! set/check return values
437  IF (domain%IOSTYP.LT.0.OR.domain%IOSTYP.GT.3) THEN
438  WRITE (mdse,'(A,I3)') 'ERROR: BAD IOSTYP INPUT: ',domain%IOSTYP
439  CALL extcde (2)
440  END IF
441 
442  ! save namelist
443  nml_domain = domain
444 

References w3servmd::extcde(), wmmdatmd::mdse, msg, and w3servmd::strace().

Referenced by w3nmlshel().

◆ read_homogeneous_nml()

subroutine w3nmlshelmd::read_homogeneous_nml ( integer, intent(in)  NDSI,
type(nml_homog_count_t), intent(out)  NML_HOMOG_COUNT,
type(nml_homog_input_t), dimension(:), intent(out), allocatable  NML_HOMOG_INPUT 
)

Definition at line 844 of file w3nmlshelmd.F90.

844  !/
845  !/ +-----------------------------------+
846  !/ | WAVEWATCH III NOAA/NCEP |
847  !/ | M. Accensi |
848  !/ | |
849  !/ | FORTRAN 90 |
850  !/ | Last update : 22-Mar-2021 |
851  !/ +-----------------------------------+
852  !/
853  !/
854  ! 1. Purpose :
855  !
856  !
857  ! 2. Method :
858  !
859  ! See source term routines.
860  !
861  ! 3. Parameters :
862  !
863  ! Parameter list
864  ! ----------------------------------------------------------------
865  ! NDSI Int.
866  ! NML_HOMOG_COUNT Type.
867  ! NML_HOMOG_INPUT Type.
868  ! ----------------------------------------------------------------
869  !
870  ! 4. Subroutines used :
871  !
872  ! Name Type Module Description
873  ! ----------------------------------------------------------------
874  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
875  ! ----------------------------------------------------------------
876  !
877  ! 5. Called by :
878  !
879  ! Name Type Module Description
880  ! ----------------------------------------------------------------
881  ! W3NMLSHEL Subr. N/A Namelist configuration routine.
882  ! ----------------------------------------------------------------
883  !
884  ! 6. Error messages :
885  !
886  ! None.
887  !
888  ! 7. Remarks :
889  !
890  ! 8. Structure :
891  !
892  ! See source code.
893  !
894  ! 9. Switches :
895  !
896  ! !/MPI Uses MPI communications
897  !
898  ! 10. Source code :
899  !
900  !/ ------------------------------------------------------------------- /
901 
902  USE wmmdatmd, ONLY: mdse
903  USE w3servmd, ONLY: extcde
904 #ifdef W3_S
905  USE w3servmd, ONLY: strace
906 #endif
907 
908  IMPLICIT NONE
909 
910  INTEGER, INTENT(IN) :: NDSI
911  TYPE(NML_HOMOG_COUNT_T), INTENT(OUT) :: NML_HOMOG_COUNT
912  TYPE(NML_HOMOG_INPUT_T), ALLOCATABLE, INTENT(OUT) :: NML_HOMOG_INPUT(:)
913 
914  ! locals
915  INTEGER :: IERR, I
916  TYPE(NML_HOMOG_COUNT_T) :: HOMOG_COUNT
917  namelist /homog_count_nml/ homog_count
918  TYPE(NML_HOMOG_INPUT_T), ALLOCATABLE :: HOMOG_INPUT(:)
919  namelist /homog_input_nml/ homog_input
920 #ifdef W3_S
921  INTEGER, SAVE :: IENT = 0
922 #endif
923 
924  ierr = 0
925 #ifdef W3_S
926  CALL strace (ient, 'READ_HOMOGENEOUS_NML')
927 #endif
928 
929  ! set default values for homogeneous number structure
930  homog_count%N_IC1 = 0
931  homog_count%N_IC2 = 0
932  homog_count%N_IC3 = 0
933  homog_count%N_IC4 = 0
934  homog_count%N_IC5 = 0
935  homog_count%N_MDN = 0
936  homog_count%N_MTH = 0
937  homog_count%N_MVS = 0
938  homog_count%N_LEV = 0
939  homog_count%N_CUR = 0
940  homog_count%N_WND = 0
941  homog_count%N_ICE = 0
942  homog_count%N_TAU = 0
943  homog_count%N_RHO = 0
944  homog_count%N_MOV = 0
945  homog_count%N_TOT = 0
946 
947 
948  ! read homogeneous count namelist
949  rewind(ndsi)
950  READ (ndsi, nml=homog_count_nml, iostat=ierr, iomsg=msg)
951  IF (ierr.GT.0) THEN
952  WRITE (mdse,'(A,/A)') &
953  'ERROR: READ_HOMOGENEOUS_NML: namelist HOMOG_COUNT read error', &
954  'ERROR: '//trim(msg)
955  CALL extcde (6)
956  END IF
957 
958  ! allocate the total count of homogeneous input
959  homog_count%N_TOT = homog_count%N_IC1 + homog_count%N_IC2 + homog_count%N_IC3 + homog_count%N_IC4 + homog_count%N_IC5 + &
960  homog_count%N_MDN + homog_count%N_MTH + homog_count%N_MVS + homog_count%N_LEV + homog_count%N_CUR + &
961  homog_count%N_WND + homog_count%N_ICE + homog_count%N_TAU + homog_count%N_RHO + homog_count%N_MOV
962  ALLOCATE(homog_input(homog_count%N_TOT))
963  ALLOCATE(nml_homog_input(homog_count%N_TOT))
964 
965  ! set default values for homogeneous structure
966  IF (homog_count%N_TOT .NE. 0 ) THEN
967  DO i=1,homog_count%N_TOT
968  homog_input(i)%NAME = 'unset'
969  homog_input(i)%DATE = '19680606 000000'
970  homog_input(i)%VALUE1 = 0.
971  homog_input(i)%VALUE2 = 0.
972  homog_input(i)%VALUE3 = 0.
973  END DO
974  END IF
975 
976  ! read homogeneous input namelist
977  rewind(ndsi)
978  READ (ndsi, nml=homog_input_nml, iostat=ierr, iomsg=msg)
979  IF (ierr.GT.0) THEN
980  WRITE (mdse,'(A,/A)') &
981  'ERROR: READ_HOMOGENEOUS_NML: namelist HOMOG_INPUT_NML read error', &
982  'ERROR: '//trim(msg)
983  CALL extcde (7)
984  END IF
985 
986  ! save namelist
987  nml_homog_count = homog_count
988  nml_homog_input = homog_input
989 
990 

References w3servmd::extcde(), wmmdatmd::mdse, msg, and w3servmd::strace().

Referenced by w3nmlshel().

◆ read_input_nml()

subroutine w3nmlshelmd::read_input_nml ( integer, intent(in)  NDSI,
type(nml_input_t), intent(inout)  NML_INPUT 
)

Definition at line 458 of file w3nmlshelmd.F90.

458  !/
459  !/ +-----------------------------------+
460  !/ | WAVEWATCH III NOAA/NCEP |
461  !/ | M. Accensi |
462  !/ | |
463  !/ | FORTRAN 90 |
464  !/ | Last update : 22-Mar-2021 |
465  !/ +-----------------------------------+
466  !/
467  !/
468  ! 1. Purpose :
469  !
470  !
471  ! 2. Method :
472  !
473  ! See source term routines.
474  !
475  ! 3. Parameters :
476  !
477  ! Parameter list
478  ! ----------------------------------------------------------------
479  ! NDSI Int.
480  ! NML_INPUT Type.
481  ! ----------------------------------------------------------------
482  !
483  ! 4. Subroutines used :
484  !
485  ! Name Type Module Description
486  ! ----------------------------------------------------------------
487  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
488  ! ----------------------------------------------------------------
489  !
490  ! 5. Called by :
491  !
492  ! Name Type Module Description
493  ! ----------------------------------------------------------------
494  ! W3NMLSHEL Subr. N/A Namelist configuration routine.
495  ! ----------------------------------------------------------------
496  !
497  ! 6. Error messages :
498  !
499  ! None.
500  !
501  ! 7. Remarks :
502  !
503  ! 8. Structure :
504  !
505  ! See source code.
506  !
507  ! 9. Switches :
508  !
509  ! !/MPI Uses MPI communications
510  !
511  ! 10. Source code :
512  !
513  !/ ------------------------------------------------------------------- /
514 
515  USE wmmdatmd, ONLY: mdse
516  USE w3servmd, ONLY: extcde
517 #ifdef W3_S
518  USE w3servmd, ONLY: strace
519 #endif
520 
521  IMPLICIT NONE
522 
523  INTEGER, INTENT(IN) :: NDSI
524  TYPE(NML_INPUT_T), INTENT(INOUT) :: NML_INPUT
525 
526  ! locals
527  INTEGER :: IERR
528  TYPE(NML_INPUT_T) :: INPUT
529  namelist /input_nml/ input
530 #ifdef W3_S
531  INTEGER, SAVE :: IENT = 0
532 #endif
533 
534  ierr = 0
535 #ifdef W3_S
536  CALL strace (ient, 'READ_INPUT_NML')
537 #endif
538 
539 
540  ! set default values for input structure
541  input%FORCING%WATER_LEVELS = 'F'
542  input%FORCING%CURRENTS = 'F'
543  input%FORCING%WINDS = 'F'
544  input%FORCING%ATM_MOMENTUM = 'F'
545  input%FORCING%AIR_DENSITY = 'F'
546  input%FORCING%ICE_CONC = 'F'
547  input%FORCING%ICE_PARAM1 = 'F'
548  input%FORCING%ICE_PARAM2 = 'F'
549  input%FORCING%ICE_PARAM3 = 'F'
550  input%FORCING%ICE_PARAM4 = 'F'
551  input%FORCING%ICE_PARAM5 = 'F'
552  input%FORCING%MUD_DENSITY = 'F'
553  input%FORCING%MUD_THICKNESS = 'F'
554  input%FORCING%MUD_VISCOSITY = 'F'
555  input%ASSIM%MEAN = 'F'
556  input%ASSIM%SPEC1D = 'F'
557  input%ASSIM%SPEC2D = 'F'
558 
559  ! read input namelist
560  rewind(ndsi)
561  READ (ndsi, nml=input_nml, iostat=ierr, iomsg=msg)
562  IF (ierr.GT.0) THEN
563  WRITE (mdse,'(A,/A)') &
564  'ERROR: READ_INPUT_NML: namelist read error', &
565  'ERROR: '//trim(msg)
566  CALL extcde (3)
567  END IF
568 
569  ! save namelist
570  nml_input = input
571 

References w3servmd::extcde(), wmmdatmd::mdse, msg, and w3servmd::strace().

Referenced by w3nmlshel().

◆ read_output_date_nml()

subroutine w3nmlshelmd::read_output_date_nml ( integer, intent(in)  NDSI,
type(nml_output_date_t), intent(inout)  NML_OUTPUT_DATE 
)

Definition at line 709 of file w3nmlshelmd.F90.

709  !/
710  !/ +-----------------------------------+
711  !/ | WAVEWATCH III NOAA/NCEP |
712  !/ | M. Accensi |
713  !/ | |
714  !/ | FORTRAN 90 |
715  !/ | Last update : 18-Apr-2018 |
716  !/ +-----------------------------------+
717  !/
718  !/
719  ! 1. Purpose :
720  !
721  !
722  ! 2. Method :
723  !
724  ! See source term routines.
725  !
726  ! 3. Parameters :
727  !
728  ! Parameter list
729  ! ----------------------------------------------------------------
730  ! NDSI Int.
731  ! NML_OUTPUT_DATE Type.
732  ! ----------------------------------------------------------------
733  !
734  ! 4. Subroutines used :
735  !
736  ! Name Type Module Description
737  ! ----------------------------------------------------------------
738  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
739  ! ----------------------------------------------------------------
740  !
741  ! 5. Called by :
742  !
743  ! Name Type Module Description
744  ! ----------------------------------------------------------------
745  ! W3NMLSHEL Subr. N/A Namelist configuration routine.
746  ! ----------------------------------------------------------------
747  !
748  ! 6. Error messages :
749  !
750  ! None.
751  !
752  ! 7. Remarks :
753  !
754  ! 8. Structure :
755  !
756  ! See source code.
757  !
758  ! 9. Switches :
759  !
760  ! !/MPI Uses MPI communications
761  !
762  ! 10. Source code :
763  !
764  !/ ------------------------------------------------------------------- /
765 
766  USE wmmdatmd, ONLY: mdse
767  USE w3servmd, ONLY: extcde
768 #ifdef W3_S
769  USE w3servmd, ONLY: strace
770 #endif
771 
772  IMPLICIT NONE
773 
774  INTEGER, INTENT(IN) :: NDSI
775  TYPE(NML_OUTPUT_DATE_T), INTENT(INOUT) :: NML_OUTPUT_DATE
776 
777  ! locals
778  INTEGER :: IERR
779  TYPE(NML_OUTPUT_DATE_T) :: DATE
780  namelist /output_date_nml/ date
781 #ifdef W3_S
782  INTEGER, SAVE :: IENT = 0
783 #endif
784 
785  ierr = 0
786 #ifdef W3_S
787  CALL strace (ient, 'READ_OUTPUT_DATE_NML')
788 #endif
789 
790  ! set default values for output_date structure
791  date%FIELD%START = '19680606 000000'
792  date%FIELD%STRIDE = '0'
793  date%FIELD%STOP = '19680607 000000'
794  date%FIELD%OUTFFILE = '0'
795  date%POINT%OUTFFILE = '0'
796  date%POINT%START = '19680606 000000'
797  date%POINT%STRIDE = '0'
798  date%POINT%STOP = '19680607 000000'
799  date%TRACK%START = '19680606 000000'
800  date%TRACK%STRIDE = '0'
801  date%TRACK%STOP = '19680607 000000'
802  date%RESTART%START = '19680606 000000'
803  date%RESTART%STRIDE = '0'
804  date%RESTART%STOP = '19680607 000000'
805  date%RESTART2%START = '19680606 000000'
806  date%RESTART2%STRIDE = '0'
807  date%RESTART2%STOP = '19680607 000000'
808  date%BOUNDARY%START = '19680606 000000'
809  date%BOUNDARY%STRIDE = '0'
810  date%BOUNDARY%STOP = '19680607 000000'
811  date%PARTITION%START = '19680606 000000'
812  date%PARTITION%STRIDE = '0'
813  date%PARTITION%STOP = '19680607 000000'
814  date%COUPLING%START = '19680606 000000'
815  date%COUPLING%STRIDE = '0'
816  date%COUPLING%STOP = '19680607 000000'
817 
818 
819  ! read output date namelist
820  rewind(ndsi)
821  READ (ndsi, nml=output_date_nml, iostat=ierr, iomsg=msg)
822  IF (ierr.GT.0) THEN
823  WRITE (mdse,'(A,/A)') &
824  'ERROR: READ_OUTPUT_DATE_NML: namelist read error', &
825  'ERROR: '//trim(msg)
826  CALL extcde (5)
827  END IF
828 
829  ! save namelist
830  nml_output_date = date
831 

References w3servmd::extcde(), wmmdatmd::mdse, msg, and w3servmd::strace().

Referenced by w3nmlshel().

◆ read_output_type_nml()

subroutine w3nmlshelmd::read_output_type_nml ( integer, intent(in)  NDSI,
type(nml_output_type_t), intent(inout)  NML_OUTPUT_TYPE 
)

Definition at line 584 of file w3nmlshelmd.F90.

584  !/
585  !/ +-----------------------------------+
586  !/ | WAVEWATCH III NOAA/NCEP |
587  !/ | M. Accensi |
588  !/ | |
589  !/ | FORTRAN 90 |
590  !/ | Last update : 25-Sep-2020 |
591  !/ +-----------------------------------+
592  !/
593  !/
594  ! 1. Purpose :
595  !
596  !
597  ! 2. Method :
598  !
599  ! See source term routines.
600  !
601  ! 3. Parameters :
602  !
603  ! Parameter list
604  ! ----------------------------------------------------------------
605  ! NDSI Int.
606  ! NML_OUTPUT_TYPE Type.
607  ! ----------------------------------------------------------------
608  !
609  ! 4. Subroutines used :
610  !
611  ! Name Type Module Description
612  ! ----------------------------------------------------------------
613  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
614  ! ----------------------------------------------------------------
615  !
616  ! 5. Called by :
617  !
618  ! Name Type Module Description
619  ! ----------------------------------------------------------------
620  ! W3NMLSHEL Subr. N/A Namelist configuration routine.
621  ! ----------------------------------------------------------------
622  !
623  ! 6. Error messages :
624  !
625  ! None.
626  !
627  ! 7. Remarks :
628  !
629  ! 8. Structure :
630  !
631  ! See source code.
632  !
633  ! 9. Switches :
634  !
635  ! !/MPI Uses MPI communications
636  !
637  ! 10. Source code :
638  !
639  !/ ------------------------------------------------------------------- /
640 
641  USE wmmdatmd, ONLY: mdse
642  USE w3servmd, ONLY: extcde
643 #ifdef W3_S
644  USE w3servmd, ONLY: strace
645 #endif
646 
647  IMPLICIT NONE
648 
649  INTEGER, INTENT(IN) :: NDSI
650  TYPE(NML_OUTPUT_TYPE_T), INTENT(INOUT) :: NML_OUTPUT_TYPE
651 
652  ! locals
653  INTEGER :: IERR
654  TYPE(NML_OUTPUT_TYPE_T) :: TYPE
655  namelist /output_type_nml/ TYPE
656 #ifdef W3_S
657  INTEGER, SAVE :: IENT = 0
658 #endif
659 
660  ierr = 0
661 #ifdef W3_S
662  CALL strace (ient, 'READ_OUTPUT_TYPE_NML')
663 #endif
664 
665  ! set default values for output type structure
666  type%FIELD%LIST = 'unset'
667  type%POINT%FILE = 'points.list'
668  type%TRACK%FORMAT = .true.
669  type%PARTITION%X0 = 0
670  type%PARTITION%XN = 0
671  type%PARTITION%NX = 0
672  type%PARTITION%Y0 = 0
673  type%PARTITION%YN = 0
674  type%PARTITION%NY = 0
675  type%PARTITION%FORMAT = .true.
676 #ifdef W3_COU
677  type%COUPLING%SENT = 'unset'
678  type%COUPLING%RECEIVED = 'unset'
679  type%COUPLING%COUPLET0 = .false.
680 #endif
681  type%RESTART%EXTRA = 'unset'
682 
683 
684  ! read output type namelist
685  rewind(ndsi)
686  READ (ndsi, nml=output_type_nml, iostat=ierr, iomsg=msg)
687  IF (ierr.GT.0) THEN
688  WRITE (mdse,'(A,/A)') &
689  'ERROR: READ_OUTPUT_TYPE_NML: namelist read error', &
690  'ERROR: '//trim(msg)
691  CALL extcde (4)
692  END IF
693 
694  ! save namelist
695  nml_output_type = TYPE
696 

References w3servmd::extcde(), wmmdatmd::mdse, msg, and w3servmd::strace().

Referenced by w3nmlshel().

◆ report_domain_nml()

subroutine w3nmlshelmd::report_domain_nml ( type(nml_domain_t), intent(in)  NML_DOMAIN)

Definition at line 1005 of file w3nmlshelmd.F90.

1005  !/
1006  !/ +-----------------------------------+
1007  !/ | WAVEWATCH III NOAA/NCEP |
1008  !/ | M. Accensi |
1009  !/ | |
1010  !/ | FORTRAN 90 |
1011  !/ | Last update : 18-Apr-2018 |
1012  !/ +-----------------------------------+
1013  !/
1014  !/
1015  ! 1. Purpose :
1016  !
1017  !
1018  ! 2. Method :
1019  !
1020  ! See source term routines.
1021  !
1022  ! 3. Parameters :
1023  !
1024  ! Parameter list
1025  ! ----------------------------------------------------------------
1026  ! NML_DOMAIN Type.
1027  ! ----------------------------------------------------------------
1028  !
1029  ! 4. Subroutines used :
1030  !
1031  ! Name Type Module Description
1032  ! ----------------------------------------------------------------
1033  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1034  ! ----------------------------------------------------------------
1035  !
1036  ! 5. Called by :
1037  !
1038  ! Name Type Module Description
1039  ! ----------------------------------------------------------------
1040  ! W3NMLSHEL Subr. N/A Namelist configuration routine.
1041  ! ----------------------------------------------------------------
1042  !
1043  ! 6. Error messages :
1044  !
1045  ! None.
1046  !
1047  ! 7. Remarks :
1048  !
1049  ! 8. Structure :
1050  !
1051  ! See source code.
1052  !
1053  ! 9. Switches :
1054  !
1055  ! !/MPI Uses MPI communications
1056  !
1057  ! 10. Source code :
1058  !
1059  !/ ------------------------------------------------------------------- /
1060 
1061 #ifdef W3_S
1062  USE w3servmd, ONLY: strace
1063 #endif
1064 
1065  IMPLICIT NONE
1066 
1067  TYPE(NML_DOMAIN_T), INTENT(IN) :: NML_DOMAIN
1068 #ifdef W3_S
1069  INTEGER, SAVE :: IENT = 0
1070 #endif
1071 
1072 #ifdef W3_S
1073  CALL strace (ient, 'REPORT_DOMAIN_NML')
1074 #endif
1075 
1076  WRITE (msg,'(A)') 'DOMAIN % '
1077  WRITE (ndsn,'(A)')
1078  WRITE (ndsn,11) trim(msg),'IOSTYP = ', nml_domain%IOSTYP
1079  WRITE (ndsn,10) trim(msg),'START = ', trim(nml_domain%START)
1080  WRITE (ndsn,10) trim(msg),'STOP = ', trim(nml_domain%STOP)
1081 
1082 10 FORMAT (a,2x,a,a)
1083 11 FORMAT (a,2x,a,i8)
1084 13 FORMAT (a,2x,a,l1)
1085 

References msg, ndsn, and w3servmd::strace().

Referenced by w3nmlshel().

◆ report_homogeneous_nml()

subroutine w3nmlshelmd::report_homogeneous_nml ( type(nml_homog_count_t), intent(in)  NML_HOMOG_COUNT,
type(nml_homog_input_t), dimension(nml_homog_count%n_tot), intent(in)  NML_HOMOG_INPUT 
)

Definition at line 1432 of file w3nmlshelmd.F90.

1432  !/
1433  !/ +-----------------------------------+
1434  !/ | WAVEWATCH III NOAA/NCEP |
1435  !/ | M. Accensi |
1436  !/ | |
1437  !/ | FORTRAN 90 |
1438  !/ | Last update : 22-Mar-2021 |
1439  !/ +-----------------------------------+
1440  !/
1441  !/
1442  ! 1. Purpose :
1443  !
1444  !
1445  ! 2. Method :
1446  !
1447  ! See source term routines.
1448  !
1449  ! 3. Parameters :
1450  !
1451  ! Parameter list
1452  ! ----------------------------------------------------------------
1453  ! NML_HOMOG_COUNT Type.
1454  ! NML_HOMOG_INPUT Type.
1455  ! ----------------------------------------------------------------
1456  !
1457  ! 4. Subroutines used :
1458  !
1459  ! Name Type Module Description
1460  ! ----------------------------------------------------------------
1461  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1462  ! ----------------------------------------------------------------
1463  !
1464  ! 5. Called by :
1465  !
1466  ! Name Type Module Description
1467  ! ----------------------------------------------------------------
1468  ! W3NMLSHEL Subr. N/A Namelist configuration routine.
1469  ! ----------------------------------------------------------------
1470  !
1471  ! 6. Error messages :
1472  !
1473  ! None.
1474  !
1475  ! 7. Remarks :
1476  !
1477  ! 8. Structure :
1478  !
1479  ! See source code.
1480  !
1481  ! 9. Switches :
1482  !
1483  ! !/MPI Uses MPI communications
1484  !
1485  ! 10. Source code :
1486  !
1487  !/ ------------------------------------------------------------------- /
1488 
1489 #ifdef W3_S
1490  USE w3servmd, ONLY: strace
1491 #endif
1492 
1493  IMPLICIT NONE
1494 
1495  TYPE(NML_HOMOG_COUNT_T), INTENT(IN) :: NML_HOMOG_COUNT
1496  TYPE(NML_HOMOG_INPUT_T), INTENT(IN) :: NML_HOMOG_INPUT(NML_HOMOG_COUNT%N_TOT)
1497 
1498  ! locals
1499  INTEGER :: I
1500 #ifdef W3_S
1501  INTEGER, SAVE :: IENT = 0
1502 #endif
1503 
1504 #ifdef W3_S
1505  CALL strace (ient, 'REPORT_HOMOGENEOUS_NML')
1506 #endif
1507 
1508  WRITE (msg,'(A)') 'HOMOG_COUNT % '
1509  WRITE (ndsn,'(A)')
1510  WRITE (ndsn,11) trim(msg),'N_IC1 = ', nml_homog_count%N_IC1
1511  WRITE (ndsn,11) trim(msg),'N_IC2 = ', nml_homog_count%N_IC2
1512  WRITE (ndsn,11) trim(msg),'N_IC3 = ', nml_homog_count%N_IC3
1513  WRITE (ndsn,11) trim(msg),'N_IC4 = ', nml_homog_count%N_IC4
1514  WRITE (ndsn,11) trim(msg),'N_IC5 = ', nml_homog_count%N_IC5
1515  WRITE (ndsn,11) trim(msg),'N_MDN = ', nml_homog_count%N_MDN
1516  WRITE (ndsn,11) trim(msg),'N_MTH = ', nml_homog_count%N_MTH
1517  WRITE (ndsn,11) trim(msg),'N_MVS = ', nml_homog_count%N_MVS
1518  WRITE (ndsn,11) trim(msg),'N_LEV = ', nml_homog_count%N_LEV
1519  WRITE (ndsn,11) trim(msg),'N_CUR = ', nml_homog_count%N_CUR
1520  WRITE (ndsn,11) trim(msg),'N_WND = ', nml_homog_count%N_WND
1521  WRITE (ndsn,11) trim(msg),'N_ICE = ', nml_homog_count%N_ICE
1522  WRITE (ndsn,11) trim(msg),'N_TAU = ', nml_homog_count%N_TAU
1523  WRITE (ndsn,11) trim(msg),'N_RHO = ', nml_homog_count%N_RHO
1524  WRITE (ndsn,11) trim(msg),'N_MOV = ', nml_homog_count%N_MOV
1525 
1526  IF (nml_homog_count%N_TOT .NE. 0) THEN
1527  DO i=1,nml_homog_count%N_TOT
1528  WRITE (msg,'(A,I5,A)') 'HOMOG_INPUT(',i,') % '
1529  WRITE (ndsn,'(A)')
1530  WRITE (ndsn,10) trim(msg),'NAME = ', trim(nml_homog_input(i)%NAME)
1531  WRITE (ndsn,10) trim(msg),'DATE = ', trim(nml_homog_input(i)%DATE)
1532  WRITE (ndsn,14) trim(msg),'VALUE1 = ', nml_homog_input(i)%VALUE1
1533  WRITE (ndsn,14) trim(msg),'VALUE2 = ', nml_homog_input(i)%VALUE2
1534  WRITE (ndsn,14) trim(msg),'VALUE3 = ', nml_homog_input(i)%VALUE3
1535  WRITE (ndsn,'(A)')
1536  END DO
1537  END IF
1538 
1539 
1540 10 FORMAT (a,2x,a,a)
1541 11 FORMAT (a,2x,a,i8)
1542 14 FORMAT (a,2x,a,f8.2)
1543 

References msg, ndsn, and w3servmd::strace().

Referenced by w3nmlshel().

◆ report_input_nml()

subroutine w3nmlshelmd::report_input_nml ( type(nml_input_t), intent(in)  NML_INPUT)

Definition at line 1098 of file w3nmlshelmd.F90.

1098  !/
1099  !/ +-----------------------------------+
1100  !/ | WAVEWATCH III NOAA/NCEP |
1101  !/ | M. Accensi |
1102  !/ | |
1103  !/ | FORTRAN 90 |
1104  !/ | Last update : 22-Mar-2021 |
1105  !/ +-----------------------------------+
1106  !/
1107  !/
1108  ! 1. Purpose :
1109  !
1110  !
1111  ! 2. Method :
1112  !
1113  ! See source term routines.
1114  !
1115  ! 3. Parameters :
1116  !
1117  ! Parameter list
1118  ! ----------------------------------------------------------------
1119  ! NML_INPUT Type.
1120  ! ----------------------------------------------------------------
1121  !
1122  ! 4. Subroutines used :
1123  !
1124  ! Name Type Module Description
1125  ! ----------------------------------------------------------------
1126  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1127  ! ----------------------------------------------------------------
1128  !
1129  ! 5. Called by :
1130  !
1131  ! Name Type Module Description
1132  ! ----------------------------------------------------------------
1133  ! W3NMLSHEL Subr. N/A Namelist configuration routine.
1134  ! ----------------------------------------------------------------
1135  !
1136  ! 6. Error messages :
1137  !
1138  ! None.
1139  !
1140  ! 7. Remarks :
1141  !
1142  ! 8. Structure :
1143  !
1144  ! See source code.
1145  !
1146  ! 9. Switches :
1147  !
1148  ! !/MPI Uses MPI communications
1149  !
1150  ! 10. Source code :
1151  !
1152  !/ ------------------------------------------------------------------- /
1153 
1154 #ifdef W3_S
1155  USE w3servmd, ONLY: strace
1156 #endif
1157 
1158  IMPLICIT NONE
1159 
1160  TYPE(NML_INPUT_T), INTENT(IN) :: NML_INPUT
1161 
1162  ! locals
1163 #ifdef W3_S
1164  INTEGER, SAVE :: IENT = 0
1165 #endif
1166 
1167 #ifdef W3_S
1168  CALL strace (ient, 'REPORT_INPUT_NML')
1169 #endif
1170 
1171  WRITE (msg,'(A)') 'INPUT GRID % :'
1172  WRITE (ndsn,'(A)')
1173  WRITE (ndsn,10) trim(msg),'FORCING % WATER_LEVELS = ', nml_input%FORCING%WATER_LEVELS
1174  WRITE (ndsn,10) trim(msg),'FORCING % CURRENTS = ', nml_input%FORCING%CURRENTS
1175  WRITE (ndsn,10) trim(msg),'FORCING % WINDS = ', nml_input%FORCING%WINDS
1176  WRITE (ndsn,10) trim(msg),'FORCING % ATM_MOMENTUM = ', nml_input%FORCING%ATM_MOMENTUM
1177  WRITE (ndsn,10) trim(msg),'FORCING % AIR_DENSITY = ', nml_input%FORCING%AIR_DENSITY
1178  WRITE (ndsn,10) trim(msg),'FORCING % ICE_CONC = ', nml_input%FORCING%ICE_CONC
1179  WRITE (ndsn,10) trim(msg),'FORCING % ICE_PARAM1 = ', nml_input%FORCING%ICE_PARAM1
1180  WRITE (ndsn,10) trim(msg),'FORCING % ICE_PARAM2 = ', nml_input%FORCING%ICE_PARAM2
1181  WRITE (ndsn,10) trim(msg),'FORCING % ICE_PARAM3 = ', nml_input%FORCING%ICE_PARAM3
1182  WRITE (ndsn,10) trim(msg),'FORCING % ICE_PARAM4 = ', nml_input%FORCING%ICE_PARAM4
1183  WRITE (ndsn,10) trim(msg),'FORCING % ICE_PARAM5 = ', nml_input%FORCING%ICE_PARAM5
1184  WRITE (ndsn,10) trim(msg),'FORCING % MUD_DENSITY = ', nml_input%FORCING%MUD_DENSITY
1185  WRITE (ndsn,10) trim(msg),'FORCING % MUD_THICKNESS = ', nml_input%FORCING%MUD_THICKNESS
1186  WRITE (ndsn,10) trim(msg),'FORCING % MUD_VISCOSITY = ', nml_input%FORCING%MUD_VISCOSITY
1187  WRITE (ndsn,10) trim(msg),'ASSIM % MEAN = ', nml_input%ASSIM%MEAN
1188  WRITE (ndsn,10) trim(msg),'ASSIM % SPEC1D = ', nml_input%ASSIM%SPEC1D
1189  WRITE (ndsn,10) trim(msg),'ASSIM % SPEC2D = ', nml_input%ASSIM%SPEC2D
1190 
1191 
1192 10 FORMAT (a,2x,a,a)
1193 13 FORMAT (a,2x,a,l1)
1194 

References msg, ndsn, and w3servmd::strace().

Referenced by w3nmlshel().

◆ report_output_date_nml()

subroutine w3nmlshelmd::report_output_date_nml ( type(nml_output_date_t), intent(in)  NML_OUTPUT_DATE)

Definition at line 1315 of file w3nmlshelmd.F90.

1315  !/
1316  !/ +-----------------------------------+
1317  !/ | WAVEWATCH III NOAA/NCEP |
1318  !/ | M. Accensi |
1319  !/ | |
1320  !/ | FORTRAN 90 |
1321  !/ | Last update : 18-Apr-2018 |
1322  !/ +-----------------------------------+
1323  !/
1324  !/
1325  ! 1. Purpose :
1326  !
1327  !
1328  ! 2. Method :
1329  !
1330  ! See source term routines.
1331  !
1332  ! 3. Parameters :
1333  !
1334  ! Parameter list
1335  ! ----------------------------------------------------------------
1336  ! NML_OUTPUT_DATE Type.
1337  ! ----------------------------------------------------------------
1338  !
1339  ! 4. Subroutines used :
1340  !
1341  ! Name Type Module Description
1342  ! ----------------------------------------------------------------
1343  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1344  ! ----------------------------------------------------------------
1345  !
1346  ! 5. Called by :
1347  !
1348  ! Name Type Module Description
1349  ! ----------------------------------------------------------------
1350  ! W3NMLSHEL Subr. N/A Namelist configuration routine.
1351  ! ----------------------------------------------------------------
1352  !
1353  ! 6. Error messages :
1354  !
1355  ! None.
1356  !
1357  ! 7. Remarks :
1358  !
1359  ! 8. Structure :
1360  !
1361  ! See source code.
1362  !
1363  ! 9. Switches :
1364  !
1365  ! !/MPI Uses MPI communications
1366  !
1367  ! 10. Source code :
1368  !
1369  !/ ------------------------------------------------------------------- /
1370 
1371 #ifdef W3_S
1372  USE w3servmd, ONLY: strace
1373 #endif
1374 
1375  IMPLICIT NONE
1376 
1377  TYPE(NML_OUTPUT_DATE_T), INTENT(IN) :: NML_OUTPUT_DATE
1378 
1379  ! locals
1380 #ifdef W3_S
1381  INTEGER, SAVE :: IENT = 0
1382 #endif
1383 
1384 #ifdef W3_S
1385  CALL strace (ient, 'REPORT_OUTPUT_DATE_NML')
1386 #endif
1387 
1388  WRITE (msg,'(A)') 'OUTPUT DATE MODEL GRID % '
1389  WRITE (ndsn,'(A)')
1390  WRITE (ndsn,10) trim(msg),'FIELD % START = ', trim(nml_output_date%FIELD%START)
1391  WRITE (ndsn,10) trim(msg),'FIELD % STRIDE = ', trim(nml_output_date%FIELD%STRIDE)
1392  WRITE (ndsn,10) trim(msg),'FIELD % STOP = ', trim(nml_output_date%FIELD%STOP)
1393  WRITE (ndsn,10) trim(msg),'POINT % START = ', trim(nml_output_date%POINT%START)
1394  WRITE (ndsn,10) trim(msg),'POINT % STRIDE = ', trim(nml_output_date%POINT%STRIDE)
1395  WRITE (ndsn,10) trim(msg),'POINT % STOP = ', trim(nml_output_date%POINT%STOP)
1396  WRITE (ndsn,10) trim(msg),'TRACK % START = ', trim(nml_output_date%TRACK%START)
1397  WRITE (ndsn,10) trim(msg),'TRACK % STRIDE = ', trim(nml_output_date%TRACK%STRIDE)
1398  WRITE (ndsn,10) trim(msg),'TRACK % STOP = ', trim(nml_output_date%TRACK%STOP)
1399  WRITE (ndsn,10) trim(msg),'RESTART % START = ', trim(nml_output_date%RESTART%START)
1400  WRITE (ndsn,10) trim(msg),'RESTART % STRIDE = ', trim(nml_output_date%RESTART%STRIDE)
1401  WRITE (ndsn,10) trim(msg),'RESTART % STOP = ', trim(nml_output_date%RESTART%STOP)
1402  WRITE (ndsn,10) trim(msg),'RESTART2 % START = ', trim(nml_output_date%RESTART2%START)
1403  WRITE (ndsn,10) trim(msg),'RESTART2 % STRIDE = ', trim(nml_output_date%RESTART2%STRIDE)
1404  WRITE (ndsn,10) trim(msg),'RESTART2 % STOP = ', trim(nml_output_date%RESTART2%STOP)
1405  WRITE (ndsn,10) trim(msg),'BOUNDARY % START = ', trim(nml_output_date%BOUNDARY%START)
1406  WRITE (ndsn,10) trim(msg),'BOUNDARY % STRIDE = ', trim(nml_output_date%BOUNDARY%STRIDE)
1407  WRITE (ndsn,10) trim(msg),'BOUNDARY % STOP = ', trim(nml_output_date%BOUNDARY%STOP)
1408  WRITE (ndsn,10) trim(msg),'PARTITION % START = ', trim(nml_output_date%PARTITION%START)
1409  WRITE (ndsn,10) trim(msg),'PARTITION % STRIDE = ', trim(nml_output_date%PARTITION%STRIDE)
1410  WRITE (ndsn,10) trim(msg),'PARTITION % STOP = ', trim(nml_output_date%PARTITION%STOP)
1411 #ifdef W3_COU
1412  WRITE (ndsn,10) trim(msg),'COUPLING % START = ', trim(nml_output_date%COUPLING%START)
1413  WRITE (ndsn,10) trim(msg),'COUPLING % STRIDE = ', trim(nml_output_date%COUPLING%STRIDE)
1414  WRITE (ndsn,10) trim(msg),'COUPLING % STOP = ', trim(nml_output_date%COUPLING%STOP)
1415 #endif
1416 
1417 
1418 10 FORMAT (a,2x,a,a)
1419 

References msg, ndsn, and w3servmd::strace().

Referenced by w3nmlshel().

◆ report_output_type_nml()

subroutine w3nmlshelmd::report_output_type_nml ( type(nml_output_type_t), intent(in)  NML_OUTPUT_TYPE)

Definition at line 1207 of file w3nmlshelmd.F90.

1207  !/
1208  !/ +-----------------------------------+
1209  !/ | WAVEWATCH III NOAA/NCEP |
1210  !/ | M. Accensi |
1211  !/ | |
1212  !/ | FORTRAN 90 |
1213  !/ | Last update : 25-Sep-2020 |
1214  !/ +-----------------------------------+
1215  !/
1216  !/
1217  ! 1. Purpose :
1218  !
1219  !
1220  ! 2. Method :
1221  !
1222  ! See source term routines.
1223  !
1224  ! 3. Parameters :
1225  !
1226  ! Parameter list
1227  ! ----------------------------------------------------------------
1228  ! NML_OUTPUT_TYPE Type.
1229  ! ----------------------------------------------------------------
1230  !
1231  ! 4. Subroutines used :
1232  !
1233  ! Name Type Module Description
1234  ! ----------------------------------------------------------------
1235  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1236  ! ----------------------------------------------------------------
1237  !
1238  ! 5. Called by :
1239  !
1240  ! Name Type Module Description
1241  ! ----------------------------------------------------------------
1242  ! W3NMLSHEL Subr. N/A Namelist configuration routine.
1243  ! ----------------------------------------------------------------
1244  !
1245  ! 6. Error messages :
1246  !
1247  ! None.
1248  !
1249  ! 7. Remarks :
1250  !
1251  ! 8. Structure :
1252  !
1253  ! See source code.
1254  !
1255  ! 9. Switches :
1256  !
1257  ! !/MPI Uses MPI communications
1258  !
1259  ! 10. Source code :
1260  !
1261  !/ ------------------------------------------------------------------- /
1262 
1263 #ifdef W3_S
1264  USE w3servmd, ONLY: strace
1265 #endif
1266 
1267  IMPLICIT NONE
1268 
1269  TYPE(NML_OUTPUT_TYPE_T), INTENT(IN) :: NML_OUTPUT_TYPE
1270 
1271  ! locals
1272 #ifdef W3_S
1273  INTEGER, SAVE :: IENT = 0
1274 #endif
1275 
1276 #ifdef W3_S
1277  CALL strace (ient, 'REPORT_OUTPUT_TYPE_NML')
1278 #endif
1279 
1280  WRITE (msg,'(A)') 'OUTPUT TYPE % '
1281  WRITE (ndsn,'(A)')
1282  WRITE (ndsn,10) trim(msg),'FIELD % LIST = ', trim(nml_output_type%FIELD%LIST)
1283  WRITE (ndsn,10) trim(msg),'POINT % FILE = ', trim(nml_output_type%POINT%FILE)
1284  WRITE (ndsn,13) trim(msg),'TRACK % FORMAT = ', nml_output_type%TRACK%FORMAT
1285  WRITE (ndsn,11) trim(msg),'PARTITION % X0 = ', nml_output_type%PARTITION%X0
1286  WRITE (ndsn,11) trim(msg),'PARTITION % XN = ', nml_output_type%PARTITION%XN
1287  WRITE (ndsn,11) trim(msg),'PARTITION % NX = ', nml_output_type%PARTITION%NX
1288  WRITE (ndsn,11) trim(msg),'PARTITION % Y0 = ', nml_output_type%PARTITION%Y0
1289  WRITE (ndsn,11) trim(msg),'PARTITION % YN = ', nml_output_type%PARTITION%YN
1290  WRITE (ndsn,11) trim(msg),'PARTITION % NY = ', nml_output_type%PARTITION%NY
1291  WRITE (ndsn,13) trim(msg),'PARTITION % FORMAT = ', nml_output_type%PARTITION%FORMAT
1292 #ifdef W3_COU
1293  WRITE (ndsn,10) trim(msg),'COUPLING % SENT = ', trim(nml_output_type%COUPLING%SENT)
1294  WRITE (ndsn,10) trim(msg),'COUPLING % RECEIVED = ', trim(nml_output_type%COUPLING%RECEIVED)
1295  WRITE (ndsn,13) trim(msg),'COUPLING % COUPLET0 = ', nml_output_type%COUPLING%COUPLET0
1296 #endif
1297  WRITE (ndsn,10) trim(msg),'RESTART % EXTRA = ', trim(nml_output_type%RESTART%EXTRA)
1298 
1299 10 FORMAT (a,2x,a,a)
1300 11 FORMAT (a,2x,a,i8)
1301 13 FORMAT (a,2x,a,l1)
1302 

References msg, ndsn, and w3servmd::strace().

Referenced by w3nmlshel().

◆ w3nmlshel()

subroutine w3nmlshelmd::w3nmlshel ( integer, intent(in)  MPI_COMM,
integer, intent(in)  NDSI,
character*(*), intent(in)  INFILE,
type(nml_domain_t), intent(inout)  NML_DOMAIN,
type(nml_input_t), intent(inout)  NML_INPUT,
type(nml_output_type_t), intent(inout)  NML_OUTPUT_TYPE,
type(nml_output_date_t), intent(inout)  NML_OUTPUT_DATE,
type(nml_homog_count_t), intent(inout)  NML_HOMOG_COUNT,
type(nml_homog_input_t), dimension(:), intent(inout), allocatable  NML_HOMOG_INPUT,
integer, intent(out)  IERR 
)

Definition at line 174 of file w3nmlshelmd.F90.

174  !/
175  !/ +-----------------------------------+
176  !/ | WAVEWATCH III NOAA/NCEP |
177  !/ | M. Accensi |
178  !/ | |
179  !/ | FORTRAN 90 |
180  !/ | Last update : 18-Apr-2018 |
181  !/ +-----------------------------------+
182  !/
183 
184  ! 1. Purpose :
185  !
186  ! Reads all the namelist to define the single grid
187  !
188  ! 2. Method :
189  !
190  ! See source term routines.
191  !
192  ! 3. Parameters :
193  !
194  ! Parameter list
195  ! ----------------------------------------------------------------
196  ! MPI_COMM Int. Public Communicator used in the wave MODEL.
197  ! NDSI
198  ! INFILE
199  ! NML_DOMAIN
200  ! NML_INPUT
201  ! NML_OUTPUT_TYPE
202  ! NML_OUTPUT_DATE
203  ! NML_HOMOG_COUNT
204  ! NML_HOMOG_INPUT
205  ! IERR
206  ! ----------------------------------------------------------------
207  !
208  ! 4. Subroutines used :
209  !
210  ! Name Type Module Description
211  ! ----------------------------------------------------------------
212  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
213  ! READ_DOMAIN_NML
214  ! REPORT_DOMAIN_NML
215  ! READ_INPUT_NML
216  ! REPORT_INPUT_NML
217  ! READ_OUTPUT_TYPE_NML
218  ! REPORT_OUTPUT_TYPE_NML
219  ! READ_OUTPUT_DATE_NML
220  ! REPORT_OUTPUT_DATE_NML
221  ! READ_HOMOGENEOUS_NML
222  ! REPORT_HOMOGENEOUS_NML
223  ! ----------------------------------------------------------------
224  !
225  ! 5. Called by :
226  !
227  ! Name Type Module Description
228  ! ----------------------------------------------------------------
229  ! WW3_SHEL Prog. N/A Single grid main program.
230  ! ----------------------------------------------------------------
231  !
232  ! 6. Error messages :
233  !
234  ! None.
235  !
236  ! 7. Remarks :
237  !
238  ! 8. Structure :
239  !
240  ! See source code.
241  !
242  ! 9. Switches :
243  !
244  ! !/MPI Uses MPI communications
245  !
246  ! 10. Source code :
247  !
248  !/ ------------------------------------------------------------------- /
249 
250  USE wmmdatmd, ONLY: mdse, improc, nmplog
251 #ifdef W3_MPI
252  USE wmmdatmd, ONLY: mpi_comm_mwave
253 #endif
254 #ifdef W3_S
255  USE w3servmd, ONLY: strace
256 #endif
257 
258  IMPLICIT NONE
259 
260  INTEGER, INTENT(IN) :: MPI_COMM, NDSI
261  CHARACTER*(*), INTENT(IN) :: INFILE
262  TYPE(NML_DOMAIN_T), INTENT(INOUT) :: NML_DOMAIN
263  TYPE(NML_INPUT_T), INTENT(INOUT) :: NML_INPUT
264  TYPE(NML_OUTPUT_TYPE_T), INTENT(INOUT) :: NML_OUTPUT_TYPE
265  TYPE(NML_OUTPUT_DATE_T), INTENT(INOUT) :: NML_OUTPUT_DATE
266  TYPE(NML_HOMOG_COUNT_T), INTENT(INOUT) :: NML_HOMOG_COUNT
267  TYPE(NML_HOMOG_INPUT_T), ALLOCATABLE, INTENT(INOUT) :: NML_HOMOG_INPUT(:)
268  INTEGER, INTENT(OUT) :: IERR
269 
270  ! locals
271 #ifdef W3_MPI
272  INTEGER :: IERR_MPI
273 #endif
274 #ifdef W3_S
275  INTEGER, SAVE :: IENT = 0
276 #endif
277 
278  ierr = 0
279 #ifdef W3_S
280  CALL strace (ient, 'W3NMLSHEL')
281 #endif
282 
283 #ifdef W3_MPI
284  mpi_comm_mwave = mpi_comm
285  CALL mpi_comm_rank ( mpi_comm_mwave, improc, ierr_mpi )
286  improc = improc + 1
287 #endif
288 
289  ! open namelist log file
290  IF ( nmplog .EQ. improc ) THEN
291  ndsn = 3
292  OPEN (ndsn, file=trim(infile)//'.log', form='formatted', iostat=ierr)
293  IF (ierr.NE.0) THEN
294  WRITE (mdse,'(A)') 'ERROR: open full nml file '//trim(infile)//'.log failed'
295  RETURN
296  END IF
297  END IF
298 
299  ! open input file
300  open (ndsi, file=trim(infile), form='formatted', status='old', iostat=ierr)
301  IF (ierr.NE.0) THEN
302  WRITE (mdse,'(A)') 'ERROR: open input file '//trim(infile)//' failed'
303  RETURN
304  END IF
305 
306  ! read domain namelist
307  CALL read_domain_nml (ndsi, nml_domain)
308  IF ( improc .EQ. nmplog ) CALL report_domain_nml (nml_domain)
309 
310  ! read input namelist
311  CALL read_input_nml (ndsi, nml_input)
312  IF ( improc .EQ. nmplog ) CALL report_input_nml (nml_input)
313 
314  ! read output type namelist
315  CALL read_output_type_nml (ndsi, nml_output_type)
316  IF ( improc .EQ. nmplog ) CALL report_output_type_nml (nml_output_type)
317 
318  ! read output date namelist
319  CALL read_output_date_nml (ndsi, nml_output_date)
320  IF ( improc .EQ. nmplog ) CALL report_output_date_nml (nml_output_date)
321 
322  ! read homogeneous namelist
323  CALL read_homogeneous_nml (ndsi, nml_homog_count, nml_homog_input)
324  IF ( improc .EQ. nmplog ) CALL report_homogeneous_nml (nml_homog_count, nml_homog_input)
325 
326  ! close namelist files
327  CLOSE (ndsi)
328  IF ( nmplog .EQ. improc ) CLOSE (ndsn)
329 

References file(), wmmdatmd::improc, wmmdatmd::mdse, wmmdatmd::mpi_comm_mwave, ndsn, wmmdatmd::nmplog, read_domain_nml(), read_homogeneous_nml(), read_input_nml(), read_output_date_nml(), read_output_type_nml(), report_domain_nml(), report_homogeneous_nml(), report_input_nml(), report_output_date_nml(), report_output_type_nml(), and w3servmd::strace().

Referenced by w3shel().

Variable Documentation

◆ msg

◆ ndsn

integer w3nmlshelmd::ndsn
wmmdatmd::mdse
integer mdse
MDSE.
Definition: wmmdatmd.F90:316
w3idatmd::input
Definition: w3idatmd.F90:171
wmmdatmd::nmplog
integer nmplog
NMPLOG.
Definition: wmmdatmd.F90:323
wmmdatmd::improc
integer improc
IMPROC.
Definition: wmmdatmd.F90:322
scrip_timers::status
character(len=8), dimension(max_timers), save status
Definition: scrip_timers.f:63
w3servmd
Definition: w3servmd.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
wmmdatmd
Define data structures to set up wave model dynamic data for several models simultaneously.
Definition: wmmdatmd.F90:16
wmmdatmd::mpi_comm_mwave
integer mpi_comm_mwave
MPI_COMM_MWAVE.
Definition: wmmdatmd.F90:344