diff --git a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 index 054a02f50ada8678657e4fe7dbc2d4d918357f31..b374ee4e62181a077a9a1feee7761c286bfb2dad 100644 --- a/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 +++ b/src/LIB/SURCOUCHE/src/fmwrit_ll.f90 @@ -256,19 +256,26 @@ CONTAINS END SUBROUTINE FM_WRIT_ERR - SUBROUTINE IO_WRITE_HEADER(TPFILE,HLUOUT) + SUBROUTINE IO_WRITE_HEADER(TPFILE,HLUOUT,HDAD_NAME) ! USE MODD_CONF USE MODD_CONF_n, ONLY : CSTORAGE_TYPE USE MODD_IO_ll, ONLY: TFILEDATA ! - TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File structure - CHARACTER(LEN=*),INTENT(IN) :: HLUOUT ! File for prints in FM + TYPE(TFILEDATA), INTENT(IN) :: TPFILE ! File structure + CHARACTER(LEN=*), INTENT(IN) :: HLUOUT ! File for prints in FM + CHARACTER(LEN=*),OPTIONAL,INTENT(IN) :: HDAD_NAME ! INTEGER :: IRESP ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_HEADER','called') ! + IF ( ASSOCIATED(TPFILE%TDADFILE) .AND. PRESENT(HDAD_NAME) ) THEN + IF ( TRIM(TPFILE%TDADFILE%CNAME) /= TRIM(HDAD_NAME) ) THEN + CALL PRINT_MSG(NVERB_ERROR,'IO','IO_WRITE_HEADER','TPFILE%TDADFILE%CNAME /= HDAD_NAME') + END IF + END IF + ! CALL IO_WRITE_HEADER_NC4(TPFILE,HLUOUT) ! CALL IO_WRITE_FIELD(TPFILE,'MASDEV', HLUOUT,IRESP,NMASDEV) @@ -279,8 +286,10 @@ CONTAINS CALL IO_WRITE_FIELD(TPFILE,'MY_NAME', HLUOUT,IRESP,TPFILE%CNAME) IF ( ASSOCIATED(TPFILE%TDADFILE) ) THEN CALL IO_WRITE_FIELD(TPFILE,'DAD_NAME',HLUOUT,IRESP,TPFILE%TDADFILE%CNAME) + ELSE IF (PRESENT(HDAD_NAME)) THEN + CALL IO_WRITE_FIELD(TPFILE,'DAD_NAME',HLUOUT,IRESP,HDAD_NAME) ELSE - CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_HEADER','TPFILE%TDADFILE not associated') + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_HEADER','TPFILE%TDADFILE not associated and HDAD_NAME not provided') CALL IO_WRITE_FIELD(TPFILE,'DAD_NAME',HLUOUT,IRESP,' ') ENDIF ! diff --git a/src/MNH/prep_real_case.f90 b/src/MNH/prep_real_case.f90 index 6a9256cdfcaadd3775180ea66ed7fea8aa6468ea..100ce5193f6512f14c64ffa6d1f0687a702e916a 100644 --- a/src/MNH/prep_real_case.f90 +++ b/src/MNH/prep_real_case.f90 @@ -391,6 +391,7 @@ USE MODE_GRIDPROJ ! executive modules USE MODE_GRIDCART USE MODE_POS USE MODE_FM +USE MODE_FMWRIT, ONLY : IO_WRITE_HEADER USE MODE_IO_ll USE MODE_ll USE MODE_MODELN_HANDLER @@ -1067,6 +1068,7 @@ END IF ! YDESFM=ADJUSTL(ADJUSTR(CINIFILE)//'.des') CALL WRITE_DESFM_n(1,YDESFM,CLUOUT0) +CALL IO_WRITE_HEADER(TZFILE,CLUOUT0,HDAD_NAME=YDAD_NAME) CALL WRITE_LFIFM_n(TZFILE,YDAD_NAME) ! CALL SECOND_MNH(ZTIME2) diff --git a/src/MNH/spawn_model2.f90 b/src/MNH/spawn_model2.f90 index e2dae103f27d366f1b652ebf8bb5d2d4c5fdd56f..80ddb4e8fa5803d7b8d36537aacb5046e867f7df 100644 --- a/src/MNH/spawn_model2.f90 +++ b/src/MNH/spawn_model2.f90 @@ -257,6 +257,7 @@ USE MODI_CH_INIT_SCHEME_n USE MODI_UPDATE_METRICS ! USE MODE_FM +USE MODE_FMWRIT, ONLY : IO_WRITE_HEADER USE MODE_IO_ll USE MODE_MODELN_HANDLER USE MODE_FMREAD @@ -1499,6 +1500,7 @@ ELSE CDAD_NAME(2)=CMY_NAME(1) ! model 1 becomes the DAD of model 2 (spawned one) ENDIF ! +CALL IO_WRITE_HEADER(TZFILE,CLUOUT,HDAD_NAME=CDAD_NAME(2)) CALL WRITE_LFIFM_n(TZFILE,CDAD_NAME(2)) ! CALL SECOND_MNH(ZTIME2)