WAVEWATCH III  beta 0.0.1
w3nmlmultimd Module Reference

Data Types

type  nml_coupling_t
 
type  nml_domain_t
 
type  nml_field_t
 
type  nml_homog_count_t
 
type  nml_homog_input_t
 
type  nml_input_assim_t
 
type  nml_input_forcing_t
 
type  nml_input_grid_t
 
type  nml_model_assim_t
 
type  nml_model_forcing_t
 
type  nml_model_grid_t
 
type  nml_model_resource_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 w3nmlmultidef (MPI_COMM, NDSI, INFILE, NML_DOMAIN, IERR)
 
subroutine w3nmlmulticonf (MPI_COMM, NDSI, INFILE, NML_DOMAIN, NML_INPUT_GRID, NML_MODEL_GRID, NML_OUTPUT_TYPE, NML_OUTPUT_DATE, NML_HOMOG_COUNT, NML_HOMOG_INPUT, IERR)
 
subroutine read_domain_nml (NDSI, NML_DOMAIN)
 
subroutine read_input_grid_nml (NDSI, NRINP, NML_INPUT_GRID)
 
subroutine read_model_grid_nml (NDSI, NRGRD, NML_MODEL_GRID)
 
subroutine read_output_type_nml (NDSI, NRGRD, NML_OUTPUT_TYPE)
 
subroutine read_output_date_nml (NDSI, NRGRD, NML_OUTPUT_DATE)
 
subroutine read_homogeneous_nml (NDSI, NML_HOMOG_COUNT, NML_HOMOG_INPUT)
 
subroutine report_domain_nml (NML_DOMAIN)
 
subroutine report_input_grid_nml (NRINP, NML_INPUT_GRID)
 
subroutine report_model_grid_nml (NRGRD, NML_MODEL_GRID)
 
subroutine report_output_type_nml (NRGRD, NML_OUTPUT_TYPE)
 
subroutine report_output_date_nml (NRGRD, 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 w3nmlmultimd::read_domain_nml ( integer, intent(in)  NDSI,
type(nml_domain_t), intent(out)  NML_DOMAIN 
)

Definition at line 522 of file w3nmlmultimd.F90.

522  !/
523  !/ +-----------------------------------+
524  !/ | WAVEWATCH III NOAA/NCEP |
525  !/ | M. Accensi |
526  !/ | F. Ardhuin |
527  !/ | FORTRAN 90 |
528  !/ | Last update : 15-May-2018 |
529  !/ +-----------------------------------+
530  !/
531  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
532  !/ 15-May-2018 : Update namelist ( version 6.05 )
533 
534  ! 1. Purpose :
535  !
536  !
537  ! 2. Method :
538  !
539  ! See source term routines.
540  !
541  ! 3. Parameters :
542  !
543  ! Parameter list
544  ! ----------------------------------------------------------------
545  ! NDSI Int.
546  ! NML_DOMAIN Type.
547  ! ----------------------------------------------------------------
548  !
549  ! 4. Subroutines used :
550  !
551  ! Name Type Module Description
552  ! ----------------------------------------------------------------
553  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
554  ! ----------------------------------------------------------------
555  !
556  ! 5. Called by :
557  !
558  ! Name Type Module Description
559  ! ----------------------------------------------------------------
560  ! W3NMLMULTIDEF Subr. N/A Namelist configuration routine.
561  ! ----------------------------------------------------------------
562  !
563  ! 6. Error messages :
564  !
565  ! None.
566  !
567  ! 7. Remarks :
568  !
569  ! 8. Structure :
570  !
571  ! See source code.
572  !
573  ! 9. Switches :
574  !
575  ! !/MPI Uses MPI communications
576  !
577  ! 10. Source code :
578  !
579  !/ ------------------------------------------------------------------- /
580 
581  USE wmmdatmd, ONLY: mdse
582  USE w3servmd, ONLY: extcde
583 #ifdef W3_S
584  USE w3servmd, ONLY: strace
585 #endif
586 
587  IMPLICIT NONE
588 
589  INTEGER, INTENT(IN) :: NDSI
590  TYPE(NML_DOMAIN_T), INTENT(OUT) :: NML_DOMAIN
591 
592  ! locals
593  INTEGER :: IERR
594  TYPE(NML_DOMAIN_T) :: DOMAIN
595  namelist /domain_nml/ domain
596 #ifdef W3_S
597  INTEGER, SAVE :: IENT = 0
598 #endif
599 
600  ierr = 0
601 #ifdef W3_S
602  CALL strace (ient, 'READ_DOMAIN_NML')
603 #endif
604 
605  ! set default values for model definition data
606  domain%NRINP = 0
607  domain%NRGRD = 1
608  domain%UNIPTS = .false.
609  domain%IOSTYP = 1
610  domain%UPPROC = .false.
611  domain%PSHARE = .false.
612  domain%FLGHG1 = .false.
613  domain%FLGHG2 = .false.
614  domain%START = '19680606 000000'
615  domain%STOP = '19680607 000000'
616 
617  ! read model def namelist
618  rewind(ndsi)
619  READ (ndsi, nml=domain_nml, iostat=ierr, iomsg=msg)
620  IF (ierr.GT.0) THEN
621  WRITE (mdse,'(A,/A)') &
622  'ERROR: READ_DOMAIN_NML: namelist read error', &
623  'ERROR: '//trim(msg)
624  CALL extcde (1)
625  END IF
626 
627  ! set/check return values
628  IF (domain%NRINP.LT.0) THEN
629  WRITE (mdse,'(A,I3)') 'ERROR: BAD NRINP INPUT: ',domain%NRINP
630  CALL extcde (2)
631  END IF
632  IF (domain%NRGRD.LE.0) THEN
633  WRITE (mdse,'(A,I3)') 'ERROR: BAD NRGRD INPUT: ',domain%NRGRD
634  CALL extcde (3)
635  END IF
636  IF (domain%IOSTYP.LT.0.or.domain%IOSTYP.GT.3) THEN
637  WRITE (mdse,'(A,I3)') 'ERROR: BAD IOSTYP INPUT: ',domain%IOSTYP
638  CALL extcde (4)
639  END IF
640 
641  ! save namelist
642  nml_domain = domain
643 

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

Referenced by w3nmlmultidef().

◆ read_homogeneous_nml()

subroutine w3nmlmultimd::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 1327 of file w3nmlmultimd.F90.

1327  !/
1328  !/ +-----------------------------------+
1329  !/ | WAVEWATCH III NOAA/NCEP |
1330  !/ | M. Accensi |
1331  !/ | FORTRAN 90 |
1332  !/ | Last update : 15-May-2018 |
1333  !/ +-----------------------------------+
1334  !/
1335  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
1336  !/ 15-May-2018 : Update namelist ( version 6.05 )
1337  !/
1338  ! 1. Purpose :
1339  !
1340  !
1341  ! 2. Method :
1342  !
1343  ! See source term routines.
1344  !
1345  ! 3. Parameters :
1346  !
1347  ! Parameter list
1348  ! ----------------------------------------------------------------
1349  ! NDSI Int.
1350  ! NML_HOMOG_COUNT Type.
1351  ! NML_HOMOG_INPUT Type.
1352  ! ----------------------------------------------------------------
1353  !
1354  ! 4. Subroutines used :
1355  !
1356  ! Name Type Module Description
1357  ! ----------------------------------------------------------------
1358  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1359  ! ----------------------------------------------------------------
1360  !
1361  ! 5. Called by :
1362  !
1363  ! Name Type Module Description
1364  ! ----------------------------------------------------------------
1365  ! W3NMLMULTICONF Subr. N/A Namelist configuration routine.
1366  ! ----------------------------------------------------------------
1367  !
1368  ! 6. Error messages :
1369  !
1370  ! None.
1371  !
1372  ! 7. Remarks :
1373  !
1374  ! 8. Structure :
1375  !
1376  ! See source code.
1377  !
1378  ! 9. Switches :
1379  !
1380  ! !/MPI Uses MPI communications
1381  !
1382  ! 10. Source code :
1383  !
1384  !/ ------------------------------------------------------------------- /
1385 
1386  USE wmmdatmd, ONLY: mdse
1387  USE w3servmd, ONLY: extcde
1388 #ifdef W3_S
1389  USE w3servmd, ONLY: strace
1390 #endif
1391 
1392  IMPLICIT NONE
1393 
1394  INTEGER, INTENT(IN) :: NDSI
1395  TYPE(NML_HOMOG_COUNT_T), INTENT(OUT) :: NML_HOMOG_COUNT
1396  TYPE(NML_HOMOG_INPUT_T), ALLOCATABLE, INTENT(OUT) :: NML_HOMOG_INPUT(:)
1397 
1398  ! locals
1399  INTEGER :: IERR, I
1400  TYPE(NML_HOMOG_COUNT_T) :: HOMOG_COUNT
1401  namelist /homog_count_nml/ homog_count
1402  TYPE(NML_HOMOG_INPUT_T), ALLOCATABLE :: HOMOG_INPUT(:)
1403  namelist /homog_input_nml/ homog_input
1404 #ifdef W3_S
1405  INTEGER, SAVE :: IENT = 0
1406 #endif
1407 
1408  ierr = 0
1409 #ifdef W3_S
1410  CALL strace (ient, 'READ_HOMOGENEOUS_NML')
1411 #endif
1412 
1413 
1414  ! set default values for homogeneous number structure
1415  homog_count%N_MOV = 0
1416  homog_count%N_TOT = 0
1417 
1418 
1419  ! read homogeneous count namelist
1420  rewind(ndsi)
1421  READ (ndsi, nml=homog_count_nml, iostat=ierr, iomsg=msg)
1422  IF (ierr.GT.0) THEN
1423  WRITE (mdse,'(A,/A)') &
1424  'ERROR: READ_HOMOGENEOUS_NML: namelist HOMOG_COUNT read error', &
1425  'ERROR: '//trim(msg)
1426  CALL extcde (16)
1427  END IF
1428 
1429  ! allocate the total count of homogeneous input
1430  homog_count%N_TOT = homog_count%N_MOV
1431  ALLOCATE(homog_input(homog_count%N_TOT))
1432  ALLOCATE(nml_homog_input(homog_count%N_TOT))
1433 
1434  ! set default values for homogeneous structure
1435  IF (homog_count%N_TOT .NE. 0 ) THEN
1436  DO i=1,homog_count%N_TOT
1437  homog_input(i)%NAME = 'unset'
1438  homog_input(i)%DATE = '19680606 000000'
1439  homog_input(i)%VALUE1 = 0.
1440  homog_input(i)%VALUE2 = 0.
1441  homog_input(i)%VALUE3 = 0.
1442  END DO
1443  END IF
1444 
1445  ! read homogeneous input namelist
1446  rewind(ndsi)
1447  READ (ndsi, nml=homog_input_nml, iostat=ierr, iomsg=msg)
1448  IF (ierr.GT.0) THEN
1449  WRITE (mdse,'(A,/A)') &
1450  'ERROR: READ_HOMOGENEOUS_NML: namelist HOMOG_INPUT_NML read error', &
1451  'ERROR: '//trim(msg)
1452  CALL extcde (17)
1453  END IF
1454 
1455  ! save namelist
1456  nml_homog_count = homog_count
1457  nml_homog_input = homog_input
1458 
1459 

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

Referenced by w3nmlmulticonf().

◆ read_input_grid_nml()

subroutine w3nmlmultimd::read_input_grid_nml ( integer, intent(in)  NDSI,
integer, intent(in)  NRINP,
type(nml_input_grid_t), dimension(nrinp), intent(inout)  NML_INPUT_GRID 
)

Definition at line 656 of file w3nmlmultimd.F90.

656  !/
657  !/ +-----------------------------------+
658  !/ | WAVEWATCH III NOAA/NCEP |
659  !/ | M. Accensi |
660  !/ | FORTRAN 90 |
661  !/ | Last update : 22-Mar-2021 |
662  !/ +-----------------------------------+
663  !/
664  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
665  !/ 15-May-2018 : Update namelist ( version 6.05 )
666  !/ 22-Mar-2021 : Update namelist, new input fields ( version 7.13 )
667  !/
668  ! 1. Purpose :
669  !
670  !
671  ! 2. Method :
672  !
673  ! See source term routines.
674  !
675  ! 3. Parameters :
676  !
677  ! Parameter list
678  ! ----------------------------------------------------------------
679  ! NDSI Int.
680  ! NRINP Int.
681  ! NML_INPUT_GRID Type.
682  ! ----------------------------------------------------------------
683  !
684  ! 4. Subroutines used :
685  !
686  ! Name Type Module Description
687  ! ----------------------------------------------------------------
688  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
689  ! ----------------------------------------------------------------
690  !
691  ! 5. Called by :
692  !
693  ! Name Type Module Description
694  ! ----------------------------------------------------------------
695  ! W3NMLMULTICONF Subr. N/A Namelist configuration routine.
696  ! ----------------------------------------------------------------
697  !
698  ! 6. Error messages :
699  !
700  ! None.
701  !
702  ! 7. Remarks :
703  !
704  ! 8. Structure :
705  !
706  ! See source code.
707  !
708  ! 9. Switches :
709  !
710  ! !/MPI Uses MPI communications
711  !
712  ! 10. Source code :
713  !
714  !/ ------------------------------------------------------------------- /
715 
716  USE wmmdatmd, ONLY: mdse
717  USE w3servmd, ONLY: extcde
718 #ifdef W3_S
719  USE w3servmd, ONLY: strace
720 #endif
721 
722  IMPLICIT NONE
723 
724  INTEGER, INTENT(IN) :: NDSI, NRINP
725  TYPE(NML_INPUT_GRID_T), INTENT(INOUT) :: NML_INPUT_GRID(NRINP)
726 
727  ! locals
728  INTEGER :: IERR, I
729  INTEGER, PARAMETER :: MAX_NRINP = 99
730  TYPE(NML_INPUT_GRID_T) :: INPUT(MAX_NRINP)
731  namelist /input_grid_nml/ input
732 #ifdef W3_S
733  INTEGER, SAVE :: IENT = 0
734 #endif
735 
736  ierr = 0
737 #ifdef W3_S
738  CALL strace (ient, 'READ_INPUT_GRID_NML')
739 #endif
740 
741  ! test NRINP
742  IF (nrinp.GT.max_nrinp) THEN
743  WRITE (mdse,'(A,/A,I6,/A,I6)') &
744  'ERROR: READ_INPUT_GRID_NML: NRINP > MAX_NRINP', &
745  'ERROR: READ_INPUT_GRID_NML: NRINP = ', nrinp, &
746  'ERROR: READ_INPUT_GRID_NML: MAX_NRINP = ',max_nrinp
747  CALL extcde (6)
748  END IF
749 
750  ! if no input grids, then exit
751  IF (nrinp.EQ.0) RETURN
752 
753  ! set default values for grid INPUT data
754  DO i = 1,nrinp
755  input(i)%NAME = 'unset'
756  input(i)%FORCING%WATER_LEVELS = .false.
757  input(i)%FORCING%CURRENTS = .false.
758  input(i)%FORCING%WINDS = .false.
759  input(i)%FORCING%ATM_MOMENTUM = .false.
760  input(i)%FORCING%AIR_DENSITY = .false.
761  input(i)%FORCING%ICE_CONC = .false.
762  input(i)%FORCING%ICE_PARAM1 = .false.
763  input(i)%FORCING%ICE_PARAM2 = .false.
764  input(i)%FORCING%ICE_PARAM3 = .false.
765  input(i)%FORCING%ICE_PARAM4 = .false.
766  input(i)%FORCING%ICE_PARAM5 = .false.
767  input(i)%FORCING%MUD_DENSITY = .false.
768  input(i)%FORCING%MUD_THICKNESS = .false.
769  input(i)%FORCING%MUD_VISCOSITY = .false.
770  input(i)%ASSIM%MEAN = .false.
771  input(i)%ASSIM%SPEC1D = .false.
772  input(i)%ASSIM%SPEC2D = .false.
773  END DO
774 
775  ! read input grid namelist
776  rewind(ndsi)
777  READ (ndsi, nml=input_grid_nml, iostat=ierr, iomsg=msg)
778  IF (ierr.GT.0) THEN
779  WRITE (mdse,'(A,/A)') &
780  'ERROR: READ_INPUT_GRID_NML: namelist read error', &
781  'ERROR: '//trim(msg)
782  CALL extcde (7)
783  END IF
784 
785  ! set/check RETURN values
786  DO i = 1,nrinp
787  IF (trim(input(i)%NAME).EQ.'unset') THEN
788  WRITE (mdse,10) 'ERROR: READ_INPUT_GRID_NML: REQUIRED INPUT(',i,')%NAME NOT SET'
789  CALL extcde (8)
790  END IF
791  END DO
792 
793  ! save namelist
794  nml_input_grid = input(1:nrinp)
795 
796 10 FORMAT (a,i0,a)
797 

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

Referenced by w3nmlmulticonf().

◆ read_model_grid_nml()

subroutine w3nmlmultimd::read_model_grid_nml ( integer, intent(in)  NDSI,
integer, intent(in)  NRGRD,
type(nml_model_grid_t), dimension(nrgrd), intent(inout)  NML_MODEL_GRID 
)

Definition at line 810 of file w3nmlmultimd.F90.

810  !/
811  !/ +-----------------------------------+
812  !/ | WAVEWATCH III NOAA/NCEP |
813  !/ | M. Accensi |
814  !/ | FORTRAN 90 |
815  !/ | Last update : 22-Mar-2021 |
816  !/ +-----------------------------------+
817  !/
818  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
819  !/ 15-May-2018 : Update namelist ( version 6.05 )
820  !/ 22-Mar-2021 : Update namelist, new input fields ( version 7.13 )
821  !/
822  ! 1. Purpose :
823  !
824  !
825  ! 2. Method :
826  !
827  ! See source term routines.
828  !
829  ! 3. Parameters :
830  !
831  ! Parameter list
832  ! ----------------------------------------------------------------
833  ! NDSI Int.
834  ! NRGRD Int.
835  ! NML_MODEL_GRID Type.
836  ! ----------------------------------------------------------------
837  !
838  ! 4. Subroutines used :
839  !
840  ! Name Type Module Description
841  ! ----------------------------------------------------------------
842  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
843  ! ----------------------------------------------------------------
844  !
845  ! 5. Called by :
846  !
847  ! Name Type Module Description
848  ! ----------------------------------------------------------------
849  ! W3NMLMULTICONF Subr. N/A Namelist configuration routine.
850  ! ----------------------------------------------------------------
851  !
852  ! 6. Error messages :
853  !
854  ! None.
855  !
856  ! 7. Remarks :
857  !
858  ! 8. Structure :
859  !
860  ! See source code.
861  !
862  ! 9. Switches :
863  !
864  ! !/MPI Uses MPI communications
865  !
866  ! 10. Source code :
867  !
868  !/ ------------------------------------------------------------------- /
869 
870  USE wmmdatmd, ONLY: mdse
871  USE w3servmd, ONLY: extcde
872 #ifdef W3_S
873  USE w3servmd, ONLY: strace
874 #endif
875 
876  IMPLICIT NONE
877 
878  INTEGER, INTENT(IN) :: NDSI, NRGRD
879  TYPE(NML_MODEL_GRID_T), INTENT(INOUT) :: NML_MODEL_GRID(NRGRD)
880 
881  ! locals
882  INTEGER :: IERR, I
883  INTEGER, PARAMETER :: MAX_NRGRD = 99
884  TYPE(NML_MODEL_GRID_T) :: MODEL(MAX_NRGRD)
885  namelist /model_grid_nml/ model
886 #ifdef W3_S
887  INTEGER, SAVE :: IENT = 0
888 #endif
889 
890  ierr = 0
891 #ifdef W3_S
892  CALL strace (ient, 'READ_MODEL_GRID_NML')
893 #endif
894 
895  ! test NRGRD
896  IF (nrgrd.GT.max_nrgrd) THEN
897  WRITE (mdse,'(A,/A,I6,/A,I6)') &
898  'ERROR: READ_MODEL_GRID_NML: NRGRD > MAX_NRGRD', &
899  'ERROR: READ_MODEL_GRID_NML: NRGRD = ', nrgrd, &
900  'ERROR: READ_MODEL_GRID_NML: MAX_NRGRD = ',max_nrgrd
901  CALL extcde (9)
902  END IF
903 
904  ! if no model grids, then exit
905  IF (nrgrd.EQ.0) RETURN
906 
907  ! set default values for model input data
908  DO i = 1,nrgrd
909  model(i)%NAME = 'unset'
910  model(i)%FORCING%WATER_LEVELS = 'no'
911  model(i)%FORCING%CURRENTS = 'no'
912  model(i)%FORCING%WINDS = 'no'
913  model(i)%FORCING%ATM_MOMENTUM = 'no'
914  model(i)%FORCING%AIR_DENSITY = 'no'
915  model(i)%FORCING%ICE_CONC = 'no'
916  model(i)%FORCING%ICE_PARAM1 = 'no'
917  model(i)%FORCING%ICE_PARAM2 = 'no'
918  model(i)%FORCING%ICE_PARAM3 = 'no'
919  model(i)%FORCING%ICE_PARAM4 = 'no'
920  model(i)%FORCING%ICE_PARAM5 = 'no'
921  model(i)%FORCING%MUD_DENSITY = 'no'
922  model(i)%FORCING%MUD_THICKNESS = 'no'
923  model(i)%FORCING%MUD_VISCOSITY = 'no'
924  model(i)%ASSIM%MEAN = 'no'
925  model(i)%ASSIM%SPEC1D = 'no'
926  model(i)%ASSIM%SPEC2D = 'no'
927  model(i)%RESOURCE%RANK_ID = i
928  model(i)%RESOURCE%GROUP_ID = 1
929  model(i)%RESOURCE%COMM_FRAC = (/0.00,1.00/)
930  model(i)%RESOURCE%BOUND_FLAG = .false.
931  END DO
932 
933  ! read model namelist
934  rewind(ndsi)
935  READ (ndsi, nml=model_grid_nml, iostat=ierr, iomsg=msg)
936  IF (ierr.NE.0) THEN
937  WRITE (mdse,'(A,/A)') &
938  'ERROR: READ_MODEL_GRID_NML: namelist read error', &
939  'ERROR: '//trim(msg)
940  CALL extcde (10)
941  END IF
942 
943  ! set/check return values
944  DO i = 1,nrgrd
945  IF (trim(model(i)%NAME).EQ.'unset') THEN
946  WRITE (mdse,10) 'ERROR: READ_MODEL_GRID_NML: required MODEL(',i,')%NAME not set'
947  CALL extcde (11)
948  END IF
949  END DO
950 
951  ! save namelist
952  nml_model_grid = model(1:nrgrd)
953 
954 10 FORMAT (a,i0,a)
955 

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

Referenced by w3nmlmulticonf().

◆ read_output_date_nml()

subroutine w3nmlmultimd::read_output_date_nml ( integer, intent(in)  NDSI,
integer, intent(in)  NRGRD,
type(nml_output_date_t), dimension(nrgrd), intent(inout)  NML_OUTPUT_DATE 
)

Definition at line 1137 of file w3nmlmultimd.F90.

1137  !/
1138  !/ +-----------------------------------+
1139  !/ | WAVEWATCH III NOAA/NCEP |
1140  !/ | M. Accensi |
1141  !/ | FORTRAN 90 |
1142  !/ | Last update : 15-May-2018 |
1143  !/ +-----------------------------------+
1144  !/
1145  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
1146  !/ 15-May-2018 : Update namelist ( version 6.05 )
1147  !/
1148  ! 1. Purpose :
1149  !
1150  !
1151  ! 2. Method :
1152  !
1153  ! See source term routines.
1154  !
1155  ! 3. Parameters :
1156  !
1157  ! Parameter list
1158  ! ----------------------------------------------------------------
1159  ! NDSI Int.
1160  ! NRGRD Int.
1161  ! NML_OUTPUT_DATE Type.
1162  ! ----------------------------------------------------------------
1163  !
1164  ! 4. Subroutines used :
1165  !
1166  ! Name Type Module Description
1167  ! ----------------------------------------------------------------
1168  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1169  ! ----------------------------------------------------------------
1170  !
1171  ! 5. Called by :
1172  !
1173  ! Name Type Module Description
1174  ! ----------------------------------------------------------------
1175  ! W3NMLMULTICONF Subr. N/A Namelist configuration routine.
1176  ! ----------------------------------------------------------------
1177  !
1178  ! 6. Error messages :
1179  !
1180  ! None.
1181  !
1182  ! 7. Remarks :
1183  !
1184  ! 8. Structure :
1185  !
1186  ! See source code.
1187  !
1188  ! 9. Switches :
1189  !
1190  ! !/MPI Uses MPI communications
1191  !
1192  ! 10. Source code :
1193  !
1194  !/ ------------------------------------------------------------------- /
1195 
1196  USE wmmdatmd, ONLY: mdse
1197  USE w3servmd, ONLY: extcde
1198 #ifdef W3_S
1199  USE w3servmd, ONLY: strace
1200 #endif
1201 
1202  IMPLICIT NONE
1203 
1204  INTEGER, INTENT(IN) :: NDSI, NRGRD
1205  TYPE(NML_OUTPUT_DATE_T), INTENT(INOUT) :: NML_OUTPUT_DATE(NRGRD)
1206 
1207  ! locals
1208  INTEGER :: IERR, I
1209  INTEGER, PARAMETER :: MAX_NRGRD = 99
1210  TYPE(NML_OUTPUT_DATE_T) :: ALLDATE
1211  TYPE(NML_OUTPUT_DATE_T) :: IDATE(MAX_NRGRD)
1212  namelist /output_date_nml/ alldate, idate
1213 #ifdef W3_S
1214  INTEGER, SAVE :: IENT = 0
1215 #endif
1216 
1217  ierr = 0
1218 #ifdef W3_S
1219  CALL strace (ient, 'READ_OUTPUT_DATE_NML')
1220 #endif
1221 
1222  ! if no model grids, then exit
1223  IF (nrgrd.EQ.0) RETURN
1224 
1225  ! set default values for OUTPUT_DATE input data
1226  DO i=1,nrgrd
1227  idate(i)%FIELD%START = '19680606 000000'
1228  idate(i)%FIELD%STRIDE = '0'
1229  idate(i)%FIELD%STOP = '19680607 000000'
1230  idate(i)%FIELD%OUTFFILE = '0'
1231  idate(i)%POINT%OUTFFILE = '0'
1232  idate(i)%POINT%START = '19680606 000000'
1233  idate(i)%POINT%STRIDE = '0'
1234  idate(i)%POINT%STOP = '19680607 000000'
1235  idate(i)%TRACK%START = '19680606 000000'
1236  idate(i)%TRACK%STRIDE = '0'
1237  idate(i)%TRACK%STOP = '19680607 000000'
1238  idate(i)%RESTART%START = '19680606 000000'
1239  idate(i)%RESTART%STRIDE = '0'
1240  idate(i)%RESTART%STOP = '19680607 000000'
1241  idate(i)%RESTART2%START = '19680606 000000'
1242  idate(i)%RESTART2%STRIDE = '0'
1243  idate(i)%RESTART2%STOP = '19680607 000000'
1244  idate(i)%BOUNDARY%START = '19680606 000000'
1245  idate(i)%BOUNDARY%STRIDE = '0'
1246  idate(i)%BOUNDARY%STOP = '19680607 000000'
1247  idate(i)%PARTITION%START = '19680606 000000'
1248  idate(i)%PARTITION%STRIDE = '0'
1249  idate(i)%PARTITION%STOP = '19680607 000000'
1250 #ifdef W3_COU
1251  idate(i)%COUPLING%START = '19680606 000000'
1252  idate(i)%COUPLING%STRIDE = '0'
1253  idate(i)%COUPLING%STOP = '19680607 000000'
1254 #endif
1255  END DO
1256  alldate%FIELD%START = '19680606 000000'
1257  alldate%FIELD%STRIDE = '0'
1258  alldate%FIELD%STOP = '19680607 000000'
1259  alldate%FIELD%OUTFFILE = '0'
1260  alldate%POINT%START = '19680606 000000'
1261  alldate%POINT%STRIDE = '0'
1262  alldate%POINT%STOP = '19680607 000000'
1263  alldate%POINT%OUTFFILE = '0'
1264  alldate%TRACK%START = '19680606 000000'
1265  alldate%TRACK%STRIDE = '0'
1266  alldate%TRACK%STOP = '19680607 000000'
1267  alldate%RESTART%START = '19680606 000000'
1268  alldate%RESTART%STRIDE = '0'
1269  alldate%RESTART%STOP = '19680607 000000'
1270  alldate%RESTART2%START = '19680606 000000'
1271  alldate%RESTART2%STRIDE = '0'
1272  alldate%RESTART2%STOP = '19680607 000000'
1273  alldate%BOUNDARY%START = '19680606 000000'
1274  alldate%BOUNDARY%STRIDE = '0'
1275  alldate%BOUNDARY%STOP = '19680607 000000'
1276  alldate%PARTITION%START = '19680606 000000'
1277  alldate%PARTITION%STRIDE = '0'
1278  alldate%PARTITION%STOP = '19680607 000000'
1279 #ifdef W3_COU
1280  alldate%COUPLING%START = '19680606 000000'
1281  alldate%COUPLING%STRIDE = '0'
1282  alldate%COUPLING%STOP = '19680607 000000'
1283 #endif
1284 
1285 
1286  ! read OUTPUT_DATE namelist
1287  rewind(ndsi)
1288  READ (ndsi, nml=output_date_nml, iostat=ierr, iomsg=msg)
1289  IF (ierr.GT.0) THEN
1290  WRITE (mdse,'(A,/A)') &
1291  'ERROR: READ_OUTPUT_DATE_NML: namelist read error', &
1292  'ERROR: '//trim(msg)
1293  CALL extcde (14)
1294  END IF
1295 
1296  ! propagate general date to all grids
1297  DO i=1,nrgrd
1298  idate(i) = alldate
1299  END DO
1300 
1301  ! read OUTPUT_DATE namelist
1302  rewind(ndsi)
1303  READ (ndsi, nml=output_date_nml, iostat=ierr, iomsg=msg)
1304  IF (ierr.GT.0) THEN
1305  WRITE (mdse,'(A,/A)') &
1306  'ERROR: READ_OUTPUT_DATE_NML: namelist read error', &
1307  'ERROR: '//trim(msg)
1308  CALL extcde (15)
1309  END IF
1310 
1311  ! save namelist
1312  nml_output_date = idate(1:nrgrd)
1313 
1314 

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

Referenced by w3nmlmulticonf().

◆ read_output_type_nml()

subroutine w3nmlmultimd::read_output_type_nml ( integer, intent(in)  NDSI,
integer, intent(in)  NRGRD,
type(nml_output_type_t), dimension(nrgrd), intent(inout)  NML_OUTPUT_TYPE 
)

Definition at line 968 of file w3nmlmultimd.F90.

968  !/
969  !/ +-----------------------------------+
970  !/ | WAVEWATCH III NOAA/NCEP |
971  !/ | M. Accensi |
972  !/ | FORTRAN 90 |
973  !/ | Last update : 25-Sep-2020 |
974  !/ +-----------------------------------+
975  !/
976  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
977  !/ 15-May-2018 : Update namelist ( version 6.05 )
978  !/ 25-Sep-2020 : Update namelist ( version 7.10 )
979  !/
980  ! 1. Purpose :
981  !
982  !
983  ! 2. Method :
984  !
985  ! See source term routines.
986  !
987  ! 3. Parameters :
988  !
989  ! Parameter list
990  ! ----------------------------------------------------------------
991  ! NDSI Int.
992  ! NRGRD Int.
993  ! NML_OUTPUT_TYPE Type.
994  ! ----------------------------------------------------------------
995  !
996  ! 4. Subroutines used :
997  !
998  ! Name Type Module Description
999  ! ----------------------------------------------------------------
1000  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1001  ! ----------------------------------------------------------------
1002  !
1003  ! 5. Called by :
1004  !
1005  ! Name Type Module Description
1006  ! ----------------------------------------------------------------
1007  ! W3NMLMULTICONF Subr. N/A Namelist configuration routine.
1008  ! ----------------------------------------------------------------
1009  !
1010  ! 6. Error messages :
1011  !
1012  ! None.
1013  !
1014  ! 7. Remarks :
1015  !
1016  ! 8. Structure :
1017  !
1018  ! See source code.
1019  !
1020  ! 9. Switches :
1021  !
1022  ! !/MPI Uses MPI communications
1023  !
1024  ! 10. Source code :
1025  !
1026  !/ ------------------------------------------------------------------- /
1027 
1028  USE wmmdatmd, ONLY: mdse
1029  USE w3servmd, ONLY: extcde
1030 #ifdef W3_S
1031  USE w3servmd, ONLY: strace
1032 #endif
1033 
1034  IMPLICIT NONE
1035 
1036  INTEGER, INTENT(IN) :: NDSI, NRGRD
1037  TYPE(NML_OUTPUT_TYPE_T), INTENT(INOUT) :: NML_OUTPUT_TYPE(NRGRD)
1038 
1039  ! locals
1040  INTEGER :: IERR, I
1041  INTEGER, PARAMETER :: MAX_NRGRD = 99
1042  TYPE(NML_OUTPUT_TYPE_T) :: ALLTYPE
1043  TYPE(NML_OUTPUT_TYPE_T) :: ITYPE(MAX_NRGRD)
1044  namelist /output_type_nml/ alltype, itype
1045 #ifdef W3_S
1046  INTEGER, SAVE :: IENT = 0
1047 #endif
1048 
1049  ierr = 0
1050 #ifdef W3_S
1051  CALL strace (ient, 'READ_OUTPUT_TYPE_NML')
1052 #endif
1053 
1054  ! if no model grids, then exit
1055  IF (nrgrd.EQ.0) RETURN
1056 
1057  ! set default values for output type data
1058  DO i=1,nrgrd
1059  itype(i)%FIELD%LIST = 'unset'
1060  itype(i)%POINT%NAME = 'unset'
1061  itype(i)%POINT%FILE = 'points.list'
1062  itype(i)%TRACK%FORMAT = .true.
1063  itype(i)%PARTITION%X0 = 0
1064  itype(i)%PARTITION%XN = 0
1065  itype(i)%PARTITION%NX = 0
1066  itype(i)%PARTITION%Y0 = 0
1067  itype(i)%PARTITION%YN = 0
1068  itype(i)%PARTITION%NY = 0
1069  itype(i)%PARTITION%FORMAT = .true.
1070 #ifdef W3_COU
1071  itype(i)%COUPLING%SENT = 'unset'
1072  itype(i)%COUPLING%RECEIVED = 'unset'
1073  itype(i)%COUPLING%COUPLET0 = .false.
1074 #endif
1075  itype(i)%RESTART%EXTRA = 'unset'
1076  END DO
1077  alltype%FIELD%LIST = 'unset'
1078  alltype%POINT%NAME = 'unset'
1079  alltype%POINT%FILE = 'points.list'
1080  alltype%TRACK%FORMAT = .true.
1081  alltype%PARTITION%X0 = 0
1082  alltype%PARTITION%XN = 0
1083  alltype%PARTITION%NX = 0
1084  alltype%PARTITION%Y0 = 0
1085  alltype%PARTITION%YN = 0
1086  alltype%PARTITION%NY = 0
1087  alltype%PARTITION%FORMAT = .true.
1088 #ifdef W3_COU
1089  alltype%COUPLING%SENT = 'unset'
1090  alltype%COUPLING%RECEIVED = 'unset'
1091  alltype%COUPLING%COUPLET0 = .false.
1092 #endif
1093  alltype%RESTART%EXTRA = 'unset'
1094 
1095 
1096  ! read OUTPUT_TYPE namelist
1097  rewind(ndsi)
1098  READ (ndsi, nml=output_type_nml, iostat=ierr, iomsg=msg)
1099  IF (ierr.GT.0) THEN
1100  WRITE (mdse,'(A,/A)') &
1101  'ERROR: READ_OUTPUT_TYPE_NML: namelist read error', &
1102  'ERROR: '//trim(msg)
1103  CALL extcde (12)
1104  END IF
1105 
1106  ! propagate general type on all grids
1107  DO i=1,nrgrd
1108  itype(i) = alltype
1109  END DO
1110 
1111  ! read OUTPUT_TYPE namelist
1112  rewind(ndsi)
1113  READ (ndsi, nml=output_type_nml, iostat=ierr, iomsg=msg)
1114  IF (ierr.GT.0) THEN
1115  WRITE (mdse,'(A,/A)') &
1116  'ERROR: READ_OUTPUT_TYPE_NML: namelist read error', &
1117  'ERROR: '//trim(msg)
1118  CALL extcde (13)
1119  END IF
1120 
1121  ! save namelist
1122  nml_output_type = itype(1:nrgrd)
1123 
1124 

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

Referenced by w3nmlmulticonf().

◆ report_domain_nml()

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

Definition at line 1475 of file w3nmlmultimd.F90.

1475  !/
1476  !/ +-----------------------------------+
1477  !/ | WAVEWATCH III NOAA/NCEP |
1478  !/ | M. Accensi |
1479  !/ | FORTRAN 90 |
1480  !/ | Last update : 15-May-2018 |
1481  !/ +-----------------------------------+
1482  !/
1483  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
1484  !/ 15-May-2018 : Update namelist ( version 6.05 )
1485  !/
1486  ! 1. Purpose :
1487  !
1488  !
1489  ! 2. Method :
1490  !
1491  ! See source term routines.
1492  !
1493  ! 3. Parameters :
1494  !
1495  ! Parameter list
1496  ! ----------------------------------------------------------------
1497  ! NML_DOMAIN Type.
1498  ! ----------------------------------------------------------------
1499  !
1500  ! 4. Subroutines used :
1501  !
1502  ! Name Type Module Description
1503  ! ----------------------------------------------------------------
1504  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1505  ! ----------------------------------------------------------------
1506  !
1507  ! 5. Called by :
1508  !
1509  ! Name Type Module Description
1510  ! ----------------------------------------------------------------
1511  ! W3NMLMULTICONF Subr. N/A Namelist configuration routine.
1512  ! ----------------------------------------------------------------
1513  !
1514  ! 6. Error messages :
1515  !
1516  ! None.
1517  !
1518  ! 7. Remarks :
1519  !
1520  ! 8. Structure :
1521  !
1522  ! See source code.
1523  !
1524  ! 9. Switches :
1525  !
1526  ! !/MPI Uses MPI communications
1527  !
1528  ! 10. Source code :
1529  !
1530  !/ ------------------------------------------------------------------- /
1531 
1532 #ifdef W3_S
1533  USE w3servmd, ONLY: strace
1534 #endif
1535 
1536  IMPLICIT NONE
1537 
1538  TYPE(NML_DOMAIN_T), INTENT(IN) :: NML_DOMAIN
1539 #ifdef W3_S
1540  INTEGER, SAVE :: IENT = 0
1541 #endif
1542 
1543 #ifdef W3_S
1544  CALL strace (ient, 'REPORT_DOMAIN_NML')
1545 #endif
1546 
1547  WRITE (msg,'(A)') 'DOMAIN % '
1548  WRITE (ndsn,'(A)')
1549  WRITE (ndsn,11) trim(msg),'NRINP = ', nml_domain%NRINP
1550  WRITE (ndsn,11) trim(msg),'NRGRD = ', nml_domain%NRGRD
1551  WRITE (ndsn,13) trim(msg),'UNIPTS = ', nml_domain%UNIPTS
1552  WRITE (ndsn,11) trim(msg),'IOSTYP = ', nml_domain%IOSTYP
1553  WRITE (ndsn,13) trim(msg),'UPPROC = ', nml_domain%UPPROC
1554  WRITE (ndsn,13) trim(msg),'PSHARE = ', nml_domain%PSHARE
1555  WRITE (ndsn,13) trim(msg),'FLGHG1 = ', nml_domain%FLGHG1
1556  WRITE (ndsn,13) trim(msg),'FLGHG2 = ', nml_domain%FLGHG2
1557  WRITE (ndsn,10) trim(msg),'START = ', trim(nml_domain%START)
1558  WRITE (ndsn,10) trim(msg),'STOP = ', trim(nml_domain%STOP)
1559 
1560 10 FORMAT (a,2x,a,a)
1561 11 FORMAT (a,2x,a,i8)
1562 13 FORMAT (a,2x,a,l1)
1563 

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

Referenced by w3nmlmultidef().

◆ report_homogeneous_nml()

subroutine w3nmlmultimd::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 2057 of file w3nmlmultimd.F90.

2057  !/
2058  !/ +-----------------------------------+
2059  !/ | WAVEWATCH III NOAA/NCEP |
2060  !/ | M. Accensi |
2061  !/ | FORTRAN 90 |
2062  !/ | Last update : 15-May-2018 |
2063  !/ +-----------------------------------+
2064  !/
2065  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
2066  !/ 15-May-2018 : Update namelist ( version 6.05 )
2067  !/
2068  ! 1. Purpose :
2069  !
2070  !
2071  ! 2. Method :
2072  !
2073  ! See source term routines.
2074  !
2075  ! 3. Parameters :
2076  !
2077  ! Parameter list
2078  ! ----------------------------------------------------------------
2079  ! NML_HOMOG_COUNT Type.
2080  ! NML_HOMOG_INPUT Type.
2081  ! ----------------------------------------------------------------
2082  !
2083  ! 4. Subroutines used :
2084  !
2085  ! Name Type Module Description
2086  ! ----------------------------------------------------------------
2087  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
2088  ! ----------------------------------------------------------------
2089  !
2090  ! 5. Called by :
2091  !
2092  ! Name Type Module Description
2093  ! ----------------------------------------------------------------
2094  ! W3NMLMULTICONF Subr. N/A Namelist configuration routine.
2095  ! ----------------------------------------------------------------
2096  !
2097  ! 6. Error messages :
2098  !
2099  ! None.
2100  !
2101  ! 7. Remarks :
2102  !
2103  ! 8. Structure :
2104  !
2105  ! See source code.
2106  !
2107  ! 9. Switches :
2108  !
2109  ! !/MPI Uses MPI communications
2110  !
2111  ! 10. Source code :
2112  !
2113  !/ ------------------------------------------------------------------- /
2114 
2115 #ifdef W3_S
2116  USE w3servmd, ONLY: strace
2117 #endif
2118 
2119  IMPLICIT NONE
2120 
2121  TYPE(NML_HOMOG_COUNT_T), INTENT(IN) :: NML_HOMOG_COUNT
2122  TYPE(NML_HOMOG_INPUT_T), INTENT(IN) :: NML_HOMOG_INPUT(NML_HOMOG_COUNT%N_TOT)
2123 
2124  ! locals
2125  INTEGER :: I
2126 #ifdef W3_S
2127  INTEGER, SAVE :: IENT = 0
2128 #endif
2129 
2130 #ifdef W3_S
2131  CALL strace (ient, 'REPORT_HOMOGENEOUS_NML')
2132 #endif
2133 
2134  WRITE (msg,'(A)') 'HOMOG_COUNT % '
2135  WRITE (ndsn,'(A)')
2136  WRITE (ndsn,11) trim(msg),'N_MOV = ', nml_homog_count%N_MOV
2137 
2138  IF (nml_homog_count%N_TOT .NE. 0) THEN
2139  DO i=1,nml_homog_count%N_TOT
2140  WRITE (msg,'(A,I5,A)') 'HOMOG_INPUT(',i,') % '
2141  WRITE (ndsn,'(A)')
2142  WRITE (ndsn,10) trim(msg),'NAME = ', trim(nml_homog_input(i)%NAME)
2143  WRITE (ndsn,10) trim(msg),'DATE = ', trim(nml_homog_input(i)%DATE)
2144  WRITE (ndsn,14) trim(msg),'VALUE1 = ', nml_homog_input(i)%VALUE1
2145  WRITE (ndsn,14) trim(msg),'VALUE2 = ', nml_homog_input(i)%VALUE2
2146  WRITE (ndsn,14) trim(msg),'VALUE3 = ', nml_homog_input(i)%VALUE3
2147  WRITE (ndsn,'(A)')
2148  END DO
2149  END IF
2150 
2151 
2152 10 FORMAT (a,2x,a,a)
2153 11 FORMAT (a,2x,a,i8)
2154 14 FORMAT (a,2x,a,f8.2)
2155 
2156 

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

Referenced by w3nmlmulticonf().

◆ report_input_grid_nml()

subroutine w3nmlmultimd::report_input_grid_nml ( integer, intent(in)  NRINP,
type(nml_input_grid_t), dimension(nrinp), intent(in)  NML_INPUT_GRID 
)

Definition at line 1576 of file w3nmlmultimd.F90.

1576  !/
1577  !/ +-----------------------------------+
1578  !/ | WAVEWATCH III NOAA/NCEP |
1579  !/ | M. Accensi |
1580  !/ | FORTRAN 90 |
1581  !/ | Last update : 22-Mar-2021 |
1582  !/ +-----------------------------------+
1583  !/
1584  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
1585  !/ 15-May-2018 : Update namelist ( version 6.05 )
1586  !/ 22-Mar-2021 : Update namelist, new input fields ( version 7.13 )
1587  !/
1588  ! 1. Purpose :
1589  !
1590  !
1591  ! 2. Method :
1592  !
1593  ! See source term routines.
1594  !
1595  ! 3. Parameters :
1596  !
1597  ! Parameter list
1598  ! ----------------------------------------------------------------
1599  ! NRINP Int.
1600  ! NML_INPUT_GRID Type.
1601  ! ----------------------------------------------------------------
1602  !
1603  ! 4. Subroutines used :
1604  !
1605  ! Name Type Module Description
1606  ! ----------------------------------------------------------------
1607  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1608  ! ----------------------------------------------------------------
1609  !
1610  ! 5. Called by :
1611  !
1612  ! Name Type Module Description
1613  ! ----------------------------------------------------------------
1614  ! W3NMLMULTICONF Subr. N/A Namelist configuration routine.
1615  ! ----------------------------------------------------------------
1616  !
1617  ! 6. Error messages :
1618  !
1619  ! None.
1620  !
1621  ! 7. Remarks :
1622  !
1623  ! 8. Structure :
1624  !
1625  ! See source code.
1626  !
1627  ! 9. Switches :
1628  !
1629  ! !/MPI Uses MPI communications
1630  !
1631  ! 10. Source code :
1632  !
1633  !/ ------------------------------------------------------------------- /
1634 
1635 #ifdef W3_S
1636  USE w3servmd, ONLY: strace
1637 #endif
1638 
1639  IMPLICIT NONE
1640 
1641  INTEGER, INTENT(IN) :: NRINP
1642  TYPE(NML_INPUT_GRID_T), INTENT(IN) :: NML_INPUT_GRID(NRINP)
1643 
1644  ! locals
1645  INTEGER :: I
1646 #ifdef W3_S
1647  INTEGER, SAVE :: IENT = 0
1648 #endif
1649 
1650 #ifdef W3_S
1651  CALL strace (ient, 'REPORT_INPUT_GRID_NML')
1652 #endif
1653 
1654  DO i = 1,nrinp
1655  WRITE (msg,'(A,I0.2,A)') 'INPUT GRID ',i,' % '
1656  WRITE (ndsn,'(A)')
1657  WRITE (ndsn,10) trim(msg),'NAME = ', trim(nml_input_grid(i)%NAME)
1658  WRITE (ndsn,13) trim(msg),'FORCING % WATER_LEVELS = ', nml_input_grid(i)%FORCING%WATER_LEVELS
1659  WRITE (ndsn,13) trim(msg),'FORCING % CURRENTS = ', nml_input_grid(i)%FORCING%CURRENTS
1660  WRITE (ndsn,13) trim(msg),'FORCING % WINDS = ', nml_input_grid(i)%FORCING%WINDS
1661  WRITE (ndsn,13) trim(msg),'FORCING % ATM_MOMENTUM = ', nml_input_grid(i)%FORCING%ATM_MOMENTUM
1662  WRITE (ndsn,13) trim(msg),'FORCING % AIR_DENSITY = ', nml_input_grid(i)%FORCING%AIR_DENSITY
1663  WRITE (ndsn,13) trim(msg),'FORCING % ICE_CONC = ', nml_input_grid(i)%FORCING%ICE_CONC
1664  WRITE (ndsn,13) trim(msg),'FORCING % ICE_PARAM1 = ', nml_input_grid(i)%FORCING%ICE_PARAM1
1665  WRITE (ndsn,13) trim(msg),'FORCING % ICE_PARAM2 = ', nml_input_grid(i)%FORCING%ICE_PARAM2
1666  WRITE (ndsn,13) trim(msg),'FORCING % ICE_PARAM3 = ', nml_input_grid(i)%FORCING%ICE_PARAM3
1667  WRITE (ndsn,13) trim(msg),'FORCING % ICE_PARAM4 = ', nml_input_grid(i)%FORCING%ICE_PARAM4
1668  WRITE (ndsn,13) trim(msg),'FORCING % ICE_PARAM5 = ', nml_input_grid(i)%FORCING%ICE_PARAM5
1669  WRITE (ndsn,13) trim(msg),'FORCING % MUD_DENSITY = ', nml_input_grid(i)%FORCING%MUD_DENSITY
1670  WRITE (ndsn,13) trim(msg),'FORCING % MUD_THICKNESS = ', nml_input_grid(i)%FORCING%MUD_THICKNESS
1671  WRITE (ndsn,13) trim(msg),'FORCING % MUD_VISCOSITY = ', nml_input_grid(i)%FORCING%MUD_VISCOSITY
1672  WRITE (ndsn,13) trim(msg),'ASSIM % MEAN = ', nml_input_grid(i)%ASSIM%MEAN
1673  WRITE (ndsn,13) trim(msg),'ASSIM % SPEC1D = ', nml_input_grid(i)%ASSIM%SPEC1D
1674  WRITE (ndsn,13) trim(msg),'ASSIM % SPEC2D = ', nml_input_grid(i)%ASSIM%SPEC2D
1675  END DO
1676  WRITE (*,*)
1677 
1678 10 FORMAT (a,2x,a,a)
1679 13 FORMAT (a,2x,a,l1)
1680 

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

Referenced by w3nmlmulticonf().

◆ report_model_grid_nml()

subroutine w3nmlmultimd::report_model_grid_nml ( integer, intent(in)  NRGRD,
type(nml_model_grid_t), dimension(nrgrd), intent(in)  NML_MODEL_GRID 
)

Definition at line 1693 of file w3nmlmultimd.F90.

1693  !/
1694  !/ +-----------------------------------+
1695  !/ | WAVEWATCH III NOAA/NCEP |
1696  !/ | M. Accensi |
1697  !/ | FORTRAN 90 |
1698  !/ | Last update : 22-Mar-2021 |
1699  !/ +-----------------------------------+
1700  !/
1701  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
1702  !/ 15-May-2018 : Update namelist ( version 6.05 )
1703  !/ 22-Mar-2021 : Update namelist, new input fields ( version 7.13 )
1704  !/
1705  ! 1. Purpose :
1706  !
1707  !
1708  ! 2. Method :
1709  !
1710  ! See source term routines.
1711  !
1712  ! 3. Parameters :
1713  !
1714  ! Parameter list
1715  ! ----------------------------------------------------------------
1716  ! NRGRD Int.
1717  ! NML_MODEL_GRID Type.
1718  ! ----------------------------------------------------------------
1719  !
1720  ! 4. Subroutines used :
1721  !
1722  ! Name Type Module Description
1723  ! ----------------------------------------------------------------
1724  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1725  ! ----------------------------------------------------------------
1726  !
1727  ! 5. Called by :
1728  !
1729  ! Name Type Module Description
1730  ! ----------------------------------------------------------------
1731  ! W3NMLMULTICONF Subr. N/A Namelist configuration routine.
1732  ! ----------------------------------------------------------------
1733  !
1734  ! 6. Error messages :
1735  !
1736  ! None.
1737  !
1738  ! 7. Remarks :
1739  !
1740  ! 8. Structure :
1741  !
1742  ! See source code.
1743  !
1744  ! 9. Switches :
1745  !
1746  ! !/MPI Uses MPI communications
1747  !
1748  ! 10. Source code :
1749  !
1750  !/ ------------------------------------------------------------------- /
1751 
1752 #ifdef W3_S
1753  USE w3servmd, ONLY: strace
1754 #endif
1755 
1756  IMPLICIT NONE
1757 
1758  INTEGER, INTENT(IN) :: NRGRD
1759  TYPE(NML_MODEL_GRID_T), INTENT(IN) :: NML_MODEL_GRID(NRGRD)
1760 
1761  ! locals
1762  INTEGER :: I
1763 #ifdef W3_S
1764  INTEGER, SAVE :: IENT = 0
1765 #endif
1766 
1767 #ifdef W3_S
1768  CALL strace (ient, 'REPORT_MODEL_GRID_NML')
1769 #endif
1770 
1771  DO i = 1,nrgrd
1772  WRITE (msg,'(A,I0.4,A)') 'MODEL GRID ',i,' % '
1773  WRITE (ndsn,'(A)')
1774  WRITE (ndsn,10) trim(msg),'NAME = ', trim(nml_model_grid(i)%NAME)
1775  WRITE (ndsn,10) trim(msg),'FORCING % WATER_LEVELS = ', trim(nml_model_grid(i)%FORCING%WATER_LEVELS)
1776  WRITE (ndsn,10) trim(msg),'FORCING % CURRENTS = ', trim(nml_model_grid(i)%FORCING%CURRENTS)
1777  WRITE (ndsn,10) trim(msg),'FORCING % WINDS = ', trim(nml_model_grid(i)%FORCING%WINDS)
1778  WRITE (ndsn,10) trim(msg),'FORCING % ATM_MOMENTUM = ', trim(nml_model_grid(i)%FORCING%ATM_MOMENTUM)
1779  WRITE (ndsn,10) trim(msg),'FORCING % AIR_DENSITY = ', trim(nml_model_grid(i)%FORCING%AIR_DENSITY)
1780  WRITE (ndsn,10) trim(msg),'FORCING % ICE_CONC = ', trim(nml_model_grid(i)%FORCING%ICE_CONC)
1781  WRITE (ndsn,10) trim(msg),'FORCING % ICE_PARAM1 = ', trim(nml_model_grid(i)%FORCING%ICE_PARAM1)
1782  WRITE (ndsn,10) trim(msg),'FORCING % ICE_PARAM2 = ', trim(nml_model_grid(i)%FORCING%ICE_PARAM2)
1783  WRITE (ndsn,10) trim(msg),'FORCING % ICE_PARAM3 = ', trim(nml_model_grid(i)%FORCING%ICE_PARAM3)
1784  WRITE (ndsn,10) trim(msg),'FORCING % ICE_PARAM4 = ', trim(nml_model_grid(i)%FORCING%ICE_PARAM4)
1785  WRITE (ndsn,10) trim(msg),'FORCING % ICE_PARAM5 = ', trim(nml_model_grid(i)%FORCING%ICE_PARAM5)
1786  WRITE (ndsn,10) trim(msg),'FORCING % MUD_DENSITY = ', trim(nml_model_grid(i)%FORCING%MUD_DENSITY)
1787  WRITE (ndsn,10) trim(msg),'FORCING % MUD_THICKNESS = ', trim(nml_model_grid(i)%FORCING%MUD_THICKNESS)
1788  WRITE (ndsn,10) trim(msg),'FORCING % MUD_VISCOSITY = ', trim(nml_model_grid(i)%FORCING%MUD_VISCOSITY)
1789  WRITE (ndsn,10) trim(msg),'ASSIM % MEAN = ', trim(nml_model_grid(i)%ASSIM%MEAN)
1790  WRITE (ndsn,10) trim(msg),'ASSIM % SPEC1D = ', trim(nml_model_grid(i)%ASSIM%SPEC1D)
1791  WRITE (ndsn,10) trim(msg),'ASSIM % SPEC2D = ', trim(nml_model_grid(i)%ASSIM%SPEC2D)
1792  WRITE (ndsn,11) trim(msg),'RESOURCE % RANK_ID = ', nml_model_grid(i)%RESOURCE%RANK_ID
1793  WRITE (ndsn,11) trim(msg),'RESOURCE % GROUP_ID = ', nml_model_grid(i)%RESOURCE%GROUP_ID
1794  WRITE (ndsn,12) trim(msg),'RESOURCE % COMM_FRAC = ', nml_model_grid(i)%RESOURCE%COMM_FRAC(1), &
1795  nml_model_grid(i)%RESOURCE%COMM_FRAC(2)
1796  WRITE (ndsn,13) trim(msg),'RESOURCE % BOUND_FLAG = ', nml_model_grid(i)%RESOURCE%BOUND_FLAG
1797  END DO
1798  WRITE (ndsn,'(A)')
1799 
1800 10 FORMAT (a,2x,a,a)
1801 11 FORMAT (a,2x,a,i8)
1802 12 FORMAT (a,2x,a,'(',f5.2,',',f5.2,' )')
1803 13 FORMAT (a,2x,a,l1)
1804 

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

Referenced by w3nmlmulticonf().

◆ report_output_date_nml()

subroutine w3nmlmultimd::report_output_date_nml ( integer, intent(in)  NRGRD,
type(nml_output_date_t), dimension(nrgrd), intent(in)  NML_OUTPUT_DATE 
)

Definition at line 1934 of file w3nmlmultimd.F90.

1934  !/
1935  !/ +-----------------------------------+
1936  !/ | WAVEWATCH III NOAA/NCEP |
1937  !/ | M. Accensi |
1938  !/ | FORTRAN 90 |
1939  !/ | Last update : 15-May-2018 |
1940  !/ +-----------------------------------+
1941  !/
1942  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
1943  !/ 15-May-2018 : Update namelist ( version 6.05 )
1944  !/
1945  ! 1. Purpose :
1946  !
1947  !
1948  ! 2. Method :
1949  !
1950  ! See source term routines.
1951  !
1952  ! 3. Parameters :
1953  !
1954  ! Parameter list
1955  ! ----------------------------------------------------------------
1956  ! NRGRD Int.
1957  ! NML_OUTPUT_DATE Type.
1958  ! ----------------------------------------------------------------
1959  !
1960  ! 4. Subroutines used :
1961  !
1962  ! Name Type Module Description
1963  ! ----------------------------------------------------------------
1964  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1965  ! ----------------------------------------------------------------
1966  !
1967  ! 5. Called by :
1968  !
1969  ! Name Type Module Description
1970  ! ----------------------------------------------------------------
1971  ! W3NMLMULTICONF Subr. N/A Namelist configuration routine.
1972  ! ----------------------------------------------------------------
1973  !
1974  ! 6. Error messages :
1975  !
1976  ! None.
1977  !
1978  ! 7. Remarks :
1979  !
1980  ! 8. Structure :
1981  !
1982  ! See source code.
1983  !
1984  ! 9. Switches :
1985  !
1986  ! !/MPI Uses MPI communications
1987  !
1988  ! 10. Source code :
1989  !
1990  !/ ------------------------------------------------------------------- /
1991 
1992 #ifdef W3_S
1993  USE w3servmd, ONLY: strace
1994 #endif
1995 
1996  IMPLICIT NONE
1997 
1998  INTEGER, INTENT(IN) :: NRGRD
1999  TYPE(NML_OUTPUT_DATE_T), INTENT(IN) :: NML_OUTPUT_DATE(NRGRD)
2000 
2001  ! locals
2002  INTEGER :: I
2003 #ifdef W3_S
2004  INTEGER, SAVE :: IENT = 0
2005 #endif
2006 
2007 #ifdef W3_S
2008  CALL strace (ient, 'REPORT_OUTPUT_DATE_NML')
2009 #endif
2010 
2011  DO i=1,nrgrd
2012  WRITE (msg,'(A,I1,A)') 'OUTPUT DATE MODEL GRID',i, ' % '
2013  WRITE (ndsn,'(A)')
2014  WRITE (ndsn,10) trim(msg),'FIELD % START = ', trim(nml_output_date(i)%FIELD%START)
2015  WRITE (ndsn,10) trim(msg),'FIELD % STRIDE = ', trim(nml_output_date(i)%FIELD%STRIDE)
2016  WRITE (ndsn,10) trim(msg),'FIELD % STOP = ', trim(nml_output_date(i)%FIELD%STOP)
2017  WRITE (ndsn,10) trim(msg),'POINT % START = ', trim(nml_output_date(i)%POINT%START)
2018  WRITE (ndsn,10) trim(msg),'POINT % STRIDE = ', trim(nml_output_date(i)%POINT%STRIDE)
2019  WRITE (ndsn,10) trim(msg),'POINT % STOP = ', trim(nml_output_date(i)%POINT%STOP)
2020  WRITE (ndsn,10) trim(msg),'TRACK % START = ', trim(nml_output_date(i)%TRACK%START)
2021  WRITE (ndsn,10) trim(msg),'TRACK % STRIDE = ', trim(nml_output_date(i)%TRACK%STRIDE)
2022  WRITE (ndsn,10) trim(msg),'TRACK % STOP = ', trim(nml_output_date(i)%TRACK%STOP)
2023  WRITE (ndsn,10) trim(msg),'RESTART % START = ', trim(nml_output_date(i)%RESTART%START)
2024  WRITE (ndsn,10) trim(msg),'RESTART % STRIDE = ', trim(nml_output_date(i)%RESTART%STRIDE)
2025  WRITE (ndsn,10) trim(msg),'RESTART % STOP = ', trim(nml_output_date(i)%RESTART%STOP)
2026  WRITE (ndsn,10) trim(msg),'RESTART2 % START = ', trim(nml_output_date(i)%RESTART2%START)
2027  WRITE (ndsn,10) trim(msg),'RESTART2 % STRIDE = ', trim(nml_output_date(i)%RESTART2%STRIDE)
2028  WRITE (ndsn,10) trim(msg),'RESTART2 % STOP = ', trim(nml_output_date(i)%RESTART2%STOP)
2029  WRITE (ndsn,10) trim(msg),'BOUNDARY % START = ', trim(nml_output_date(i)%BOUNDARY%START)
2030  WRITE (ndsn,10) trim(msg),'BOUNDARY % STRIDE = ', trim(nml_output_date(i)%BOUNDARY%STRIDE)
2031  WRITE (ndsn,10) trim(msg),'BOUNDARY % STOP = ', trim(nml_output_date(i)%BOUNDARY%STOP)
2032  WRITE (ndsn,10) trim(msg),'PARTITION % START = ', trim(nml_output_date(i)%PARTITION%START)
2033  WRITE (ndsn,10) trim(msg),'PARTITION % STRIDE = ', trim(nml_output_date(i)%PARTITION%STRIDE)
2034  WRITE (ndsn,10) trim(msg),'PARTITION % STOP = ', trim(nml_output_date(i)%PARTITION%STOP)
2035 #ifdef W3_COU
2036  WRITE (ndsn,10) trim(msg),'COUPLING % START = ', trim(nml_output_date(i)%COUPLING%START)
2037  WRITE (ndsn,10) trim(msg),'COUPLING % STRIDE = ', trim(nml_output_date(i)%COUPLING%STRIDE)
2038  WRITE (ndsn,10) trim(msg),'COUPLING % STOP = ', trim(nml_output_date(i)%COUPLING%STOP)
2039 #endif
2040  END DO
2041  WRITE (ndsn,'(A)')
2042 
2043 10 FORMAT (a,2x,a,a)
2044 

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

Referenced by w3nmlmulticonf().

◆ report_output_type_nml()

subroutine w3nmlmultimd::report_output_type_nml ( integer, intent(in)  NRGRD,
type(nml_output_type_t), dimension(nrgrd), intent(in)  NML_OUTPUT_TYPE 
)

Definition at line 1817 of file w3nmlmultimd.F90.

1817  !/
1818  !/ +-----------------------------------+
1819  !/ | WAVEWATCH III NOAA/NCEP |
1820  !/ | M. Accensi |
1821  !/ | FORTRAN 90 |
1822  !/ | Last update : 25-Sep-2020 |
1823  !/ +-----------------------------------+
1824  !/
1825  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
1826  !/ 15-May-2018 : Update namelist ( version 6.05 )
1827  !/ 25-Sep-2020 : Update namelist ( version 7.10 )
1828  !/
1829  ! 1. Purpose :
1830  !
1831  !
1832  ! 2. Method :
1833  !
1834  ! See source term routines.
1835  !
1836  ! 3. Parameters :
1837  !
1838  ! Parameter list
1839  ! ----------------------------------------------------------------
1840  ! NRGRD Int.
1841  ! NML_OUTPUT_TYPE Type.
1842  ! ----------------------------------------------------------------
1843  !
1844  ! 4. Subroutines used :
1845  !
1846  ! Name Type Module Description
1847  ! ----------------------------------------------------------------
1848  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
1849  ! ----------------------------------------------------------------
1850  !
1851  ! 5. Called by :
1852  !
1853  ! Name Type Module Description
1854  ! ----------------------------------------------------------------
1855  ! W3NMLMULTICONF Subr. N/A Namelist configuration routine.
1856  ! ----------------------------------------------------------------
1857  !
1858  ! 6. Error messages :
1859  !
1860  ! None.
1861  !
1862  ! 7. Remarks :
1863  !
1864  ! 8. Structure :
1865  !
1866  ! See source code.
1867  !
1868  ! 9. Switches :
1869  !
1870  ! !/MPI Uses MPI communications
1871  !
1872  ! 10. Source code :
1873  !
1874  !/ ------------------------------------------------------------------- /
1875 
1876 #ifdef W3_S
1877  USE w3servmd, ONLY: strace
1878 #endif
1879 
1880  IMPLICIT NONE
1881 
1882  INTEGER, INTENT(IN) :: NRGRD
1883  TYPE(NML_OUTPUT_TYPE_T), INTENT(IN) :: NML_OUTPUT_TYPE(NRGRD)
1884 
1885  ! locals
1886  INTEGER :: I
1887 #ifdef W3_S
1888  INTEGER, SAVE :: IENT = 0
1889 #endif
1890 
1891 #ifdef W3_S
1892  CALL strace (ient, 'REPORT_OUTPUT_TYPE_NML')
1893 #endif
1894 
1895  DO i=1,nrgrd
1896  WRITE (msg,'(A,I1,A)') 'OUTPUT TYPE MODEL GRID',i, ' % '
1897  WRITE (ndsn,'(A)')
1898  WRITE (ndsn,10) trim(msg),'FIELD % LIST = ', trim(nml_output_type(i)%FIELD%LIST)
1899  WRITE (ndsn,10) trim(msg),'POINT % NAME = ', trim(nml_output_type(i)%POINT%NAME)
1900  WRITE (ndsn,10) trim(msg),'POINT % FILE = ', trim(nml_output_type(i)%POINT%FILE)
1901  WRITE (ndsn,13) trim(msg),'TRACK % FORMAT = ', nml_output_type(i)%TRACK%FORMAT
1902  WRITE (ndsn,11) trim(msg),'PARTITION % X0 = ', nml_output_type(i)%PARTITION%X0
1903  WRITE (ndsn,11) trim(msg),'PARTITION % XN = ', nml_output_type(i)%PARTITION%XN
1904  WRITE (ndsn,11) trim(msg),'PARTITION % NX = ', nml_output_type(i)%PARTITION%NX
1905  WRITE (ndsn,11) trim(msg),'PARTITION % Y0 = ', nml_output_type(i)%PARTITION%Y0
1906  WRITE (ndsn,11) trim(msg),'PARTITION % YN = ', nml_output_type(i)%PARTITION%YN
1907  WRITE (ndsn,11) trim(msg),'PARTITION % NY = ', nml_output_type(i)%PARTITION%NY
1908  WRITE (ndsn,13) trim(msg),'PARTITION % FORMAT = ', nml_output_type(i)%PARTITION%FORMAT
1909 #ifdef W3_COU
1910  WRITE (ndsn,10) trim(msg),'COUPLING % SENT = ', trim(nml_output_type(i)%COUPLING%SENT)
1911  WRITE (ndsn,10) trim(msg),'COUPLING % RECEIVED = ', trim(nml_output_type(i)%COUPLING%RECEIVED)
1912  WRITE (ndsn,13) trim(msg),'COUPLING % COUPLET0 = ', nml_output_type(i)%COUPLING%COUPLET0
1913 #endif
1914  WRITE (ndsn,10) trim(msg),'RESTART % EXTRA = ', trim(nml_output_type(i)%RESTART%EXTRA)
1915  END DO
1916  WRITE (ndsn,'(A)')
1917 
1918 10 FORMAT (a,2x,a,a)
1919 11 FORMAT (a,2x,a,i8)
1920 13 FORMAT (a,2x,a,l1)
1921 

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

Referenced by w3nmlmulticonf().

◆ w3nmlmulticonf()

subroutine w3nmlmultimd::w3nmlmulticonf ( integer, intent(in)  MPI_COMM,
integer, intent(in)  NDSI,
character*(*), intent(in)  INFILE,
type(nml_domain_t), intent(inout)  NML_DOMAIN,
type(nml_input_grid_t), dimension(:), intent(inout)  NML_INPUT_GRID,
type(nml_model_grid_t), dimension(:), intent(inout)  NML_MODEL_GRID,
type(nml_output_type_t), dimension(:), intent(inout)  NML_OUTPUT_TYPE,
type(nml_output_date_t), dimension(:), 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 349 of file w3nmlmultimd.F90.

349  !/
350  !/ +-----------------------------------+
351  !/ | WAVEWATCH III NOAA/NCEP |
352  !/ | M. Accensi |
353  !/ | F. Ardhuin |
354  !/ | FORTRAN 90 |
355  !/ | Last update : 15-May-2018 |
356  !/ +-----------------------------------+
357  !/
358  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
359  !/ 15-May-2018 : Update namelist ( version 6.05 )
360 
361  ! 1. Purpose :
362  !
363  ! Reads all the namelist to define the multi grid
364  !
365  ! 2. Method :
366  !
367  ! See source term routines.
368  !
369  ! 3. Parameters :
370  !
371  ! Parameter list
372  ! ----------------------------------------------------------------
373  ! MPI_COMM Int. Public Communicator used in the wave MODEL.
374  ! NDSI
375  ! INFILE
376  ! NML_DOMAIN
377  ! NML_INPUT_GRID
378  ! NML_MODEL_GRID
379  ! NML_OUTPUT_TYPE
380  ! NML_OUTPUT_DATE
381  ! NML_HOMOG_COUNT
382  ! NML_HOMOG_INPUT
383  ! IERR
384  ! ----------------------------------------------------------------
385  !
386  ! 4. Subroutines used :
387  !
388  ! Name Type Module Description
389  ! ----------------------------------------------------------------
390  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
391  ! READ_INPUT_GRID_NML
392  ! REPORT_INPUT_GRID_NML
393  ! READ_MODEL_GRID_NML
394  ! REPORT_MODEL_GRID_NML
395  ! READ_OUTPUT_TYPE_NML
396  ! REPORT_OUTPUT_TYPE_NML
397  ! READ_OUTPUT_DATE_NML
398  ! REPORT_OUTPUT_DATE_NML
399  ! READ_HOMOGENEOUS_NML
400  ! REPORT_HOMOGENEOUS_NML
401  ! ----------------------------------------------------------------
402  !
403  ! 5. Called by :
404  !
405  ! Name Type Module Description
406  ! ----------------------------------------------------------------
407  ! WMINITNML Subr. N/A Model configuration routine.
408  ! ----------------------------------------------------------------
409  !
410  ! 6. Error messages :
411  !
412  ! None.
413  !
414  ! 7. Remarks :
415  !
416  ! 8. Structure :
417  !
418  ! See source code.
419  !
420  ! 9. Switches :
421  !
422  ! !/MPI Uses MPI communications
423  !
424  ! 10. Source code :
425  !
426  !/ ------------------------------------------------------------------- /
427 
428  USE wmmdatmd, ONLY: mdse, improc, nmplog
429 #ifdef W3_MPI
430  USE wmmdatmd, ONLY: mpi_comm_mwave
431 #endif
432 #ifdef W3_S
433  USE w3servmd, ONLY: strace
434 #endif
435 
436  IMPLICIT NONE
437 
438  INTEGER, INTENT(IN) :: MPI_COMM, NDSI
439  CHARACTER*(*), INTENT(IN) :: INFILE
440  TYPE(NML_DOMAIN_T), INTENT(INOUT) :: NML_DOMAIN
441  TYPE(NML_INPUT_GRID_T), INTENT(INOUT) :: NML_INPUT_GRID(:)
442  TYPE(NML_MODEL_GRID_T), INTENT(INOUT) :: NML_MODEL_GRID(:)
443  TYPE(NML_OUTPUT_TYPE_T), INTENT(INOUT) :: NML_OUTPUT_TYPE(:)
444  TYPE(NML_OUTPUT_DATE_T), INTENT(INOUT) :: NML_OUTPUT_DATE(:)
445  TYPE(NML_HOMOG_COUNT_T), INTENT(INOUT) :: NML_HOMOG_COUNT
446  TYPE(NML_HOMOG_INPUT_T), ALLOCATABLE, INTENT(INOUT) :: NML_HOMOG_INPUT(:)
447  INTEGER, INTENT(OUT) :: IERR
448 
449  ! locals
450 #ifdef W3_MPI
451  INTEGER :: IERR_MPI
452 #endif
453 #ifdef W3_S
454  INTEGER, SAVE :: IENT = 0
455 #endif
456 
457  ierr = 0
458 #ifdef W3_S
459  CALL strace (ient, 'W3NMLMULTICONF')
460 #endif
461 
462 #ifdef W3_MPI
463  mpi_comm_mwave = mpi_comm
464  CALL mpi_comm_rank ( mpi_comm_mwave, improc, ierr_mpi )
465  improc = improc + 1
466 #endif
467 
468  ! open namelist log file
469  IF ( nmplog .EQ. improc ) THEN
470  ndsn = 3
471  OPEN (ndsn, file=trim(infile)//'.log', form='formatted', status='old', iostat=ierr)
472  IF (ierr.NE.0) THEN
473  WRITE (mdse,'(A)') 'ERROR: open full nml file '//trim(infile)//'.log failed'
474  RETURN
475  END IF
476  END IF
477 
478  ! open input file
479  OPEN (ndsi, file=trim(infile), form='formatted', status='old', iostat=ierr)
480  IF (ierr.NE.0) THEN
481  WRITE (mdse,'(A)') 'ERROR: open INPUT file '//trim(infile)//' failed'
482  RETURN
483  END IF
484 
485  ! read input grid namelist
486  CALL read_input_grid_nml (ndsi, nml_domain%NRINP, nml_input_grid)
487  IF ( nmplog .EQ. improc ) CALL report_input_grid_nml (nml_domain%NRINP, nml_input_grid)
488 
489  ! read model grid namelist
490  CALL read_model_grid_nml (ndsi, nml_domain%NRGRD, nml_model_grid)
491  IF ( nmplog .EQ. improc ) CALL report_model_grid_nml (nml_domain%NRGRD, nml_model_grid)
492 
493  ! read output type namelist
494  CALL read_output_type_nml (ndsi, nml_domain%NRGRD, nml_output_type)
495  IF ( nmplog .EQ. improc ) CALL report_output_type_nml (nml_domain%NRGRD, nml_output_type)
496 
497  ! read output date namelist
498  CALL read_output_date_nml (ndsi, nml_domain%NRGRD, nml_output_date)
499  IF ( nmplog .EQ. improc ) CALL report_output_date_nml (nml_domain%NRGRD,nml_output_date)
500 
501  ! read homogeneous namelist
502  CALL read_homogeneous_nml (ndsi, nml_homog_count, nml_homog_input)
503  IF ( nmplog .EQ. improc ) CALL report_homogeneous_nml (nml_homog_count, nml_homog_input)
504 
505 
506  ! close namelist files
507  CLOSE (ndsi)
508  IF ( nmplog .EQ. improc ) CLOSE (ndsn)
509 

References file(), wmmdatmd::improc, wmmdatmd::mdse, wmmdatmd::mpi_comm_mwave, ndsn, wmmdatmd::nmplog, read_homogeneous_nml(), read_input_grid_nml(), read_model_grid_nml(), read_output_date_nml(), read_output_type_nml(), report_homogeneous_nml(), report_input_grid_nml(), report_model_grid_nml(), report_output_date_nml(), report_output_type_nml(), and w3servmd::strace().

Referenced by wminitmd::wminitnml().

◆ w3nmlmultidef()

subroutine w3nmlmultimd::w3nmlmultidef ( integer, intent(in)  MPI_COMM,
integer, intent(in)  NDSI,
character*(*), intent(in)  INFILE,
type(nml_domain_t), intent(out)  NML_DOMAIN,
integer, intent(out)  IERR 
)

Definition at line 211 of file w3nmlmultimd.F90.

211  !/
212  !/ +-----------------------------------+
213  !/ | WAVEWATCH III NOAA/NCEP |
214  !/ | M. Accensi |
215  !/ | F. Ardhuin |
216  !/ | FORTRAN 90 |
217  !/ | Last update : 15-May-2018 |
218  !/ +-----------------------------------+
219  !/
220  !/ 09-Aug-2016 : Adding comments ( version 5.12 )
221  !/ 15-May-2018 : Update namelist ( version 6.05 )
222  !
223  ! 1. Purpose :
224  !
225  ! Reads the domain definition namelist to define the number of
226  ! model and forcing grids
227  !
228  ! 2. Method :
229  !
230  ! See source term routines.
231  !
232  ! 3. Parameters :
233  !
234  ! Parameter list
235  ! ----------------------------------------------------------------
236  ! MPI_COMM Int. Public Communicator used in the wave MODEL.
237  ! NDSI Int.
238  ! INFILE Char.
239  ! NML_DOMAIN type.
240  ! IERR Int.
241  ! ----------------------------------------------------------------
242  !
243  ! 4. Subroutines used :
244  !
245  ! Name Type Module Description
246  ! ----------------------------------------------------------------
247  ! STRACE Subr. W3SERVMD SUBROUTINE tracing.
248  ! READ_DOMAIN_NML
249  ! ----------------------------------------------------------------
250  !
251  ! 5. Called by :
252  !
253  ! Name Type Module Description
254  ! ----------------------------------------------------------------
255  ! WMINITNML Subr. N/A Model configuration routine.
256  ! ----------------------------------------------------------------
257  !
258  ! 6. Error messages :
259  !
260  ! None.
261  !
262  ! 7. Remarks :
263  !
264  ! 8. Structure :
265  !
266  ! See source code.
267  !
268  ! 9. Switches :
269  !
270  ! !/MPI Uses MPI communications
271  !
272  ! 10. Source code :
273  !
274  !/ ------------------------------------------------------------------- /
275  USE wmmdatmd, ONLY: mdse, improc, nmplog
276 #ifdef W3_MPI
277  USE wmmdatmd, ONLY: mpi_comm_mwave
278 #endif
279 #ifdef W3_S
280  USE w3servmd, ONLY: strace
281 #endif
282 
283  IMPLICIT NONE
284 
285  INTEGER, INTENT(IN) :: MPI_COMM, NDSI
286  CHARACTER*(*), INTENT(IN) :: INFILE
287  TYPE(NML_DOMAIN_T), INTENT(OUT) :: NML_DOMAIN
288  INTEGER, INTENT(OUT) :: IERR
289 
290  ! locals
291 #ifdef W3_MPI
292  INTEGER :: IERR_MPI
293 #endif
294 #ifdef W3_S
295  INTEGER, SAVE :: IENT = 0
296 #endif
297 
298  ierr = 0
299 #ifdef W3_S
300  CALL strace (ient, 'W3NMLMULTIDEF')
301 #endif
302 
303 #ifdef W3_MPI
304  mpi_comm_mwave = mpi_comm
305  CALL mpi_comm_rank ( mpi_comm_mwave, improc, ierr_mpi )
306  improc = improc + 1
307 #endif
308 
309  ! open namelist log file
310  IF ( nmplog .EQ. improc ) THEN
311  ndsn = 3
312  OPEN (ndsn, file=trim(infile)//'.log', form='formatted', iostat=ierr)
313  IF (ierr.NE.0) THEN
314  WRITE (mdse,'(A)') 'ERROR: open full nml file '//trim(infile)//'.log failed'
315  RETURN
316  END IF
317  END IF
318 
319  ! open input file
320  OPEN (ndsi, file=trim(infile), form='formatted', status='old', iostat=ierr)
321  IF (ierr.NE.0) THEN
322  WRITE (mdse,'(A)') 'ERROR: open input file '//trim(infile)//' failed'
323  RETURN
324  END IF
325 
326  ! read domain def namelist
327  CALL read_domain_nml (ndsi, nml_domain)
328  IF ( nmplog .EQ. improc ) CALL report_domain_nml (nml_domain)
329 
330  ! close namelist files
331  CLOSE (ndsi)
332  IF ( nmplog .EQ. improc ) CLOSE (ndsn)
333 

References file(), wmmdatmd::improc, wmmdatmd::mdse, wmmdatmd::mpi_comm_mwave, ndsn, wmmdatmd::nmplog, read_domain_nml(), report_domain_nml(), and w3servmd::strace().

Referenced by wminitmd::wminitnml().

Variable Documentation

◆ msg

◆ 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