diff --git a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 index 1387fef42fba629b1b789ccc6e4aebad9aa2806e..e706563ddc318c15661fcea64d12fd796b1dd3b9 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_field_write.f90 @@ -4373,7 +4373,7 @@ TYPE(TFILEDATA) :: TZOUTPUT IF ( LOUT_BIGBOX_WRITE ) THEN DO JI = 1, SIZE( NOUT_FIELDLIST ) - CALL IO_Fieldlist_1field_write( TPOUTPUT, TFIELDLIST(NOUT_FIELDLIST(JI)), 0, TOUT_BOXES(0) ) + CALL IO_Fieldlist_1field_write( TPOUTPUT, TFIELDLIST(NOUT_FIELDLIST(JI)), TOUT_BOXES(0) ) END DO END IF @@ -4399,12 +4399,12 @@ IF ( NOUT_NBOXES > 0 ) THEN ! Write fields common to all boxes DO JI = 1, SIZE( NOUT_FIELDLIST ) - CALL IO_Fieldlist_1field_write( TZOUTPUT, TFIELDLIST(NOUT_FIELDLIST(JI)), JBOX, TOUT_BOXES(JBOX) ) + CALL IO_Fieldlist_1field_write( TZOUTPUT, TFIELDLIST(NOUT_FIELDLIST(JI)), TOUT_BOXES(JBOX) ) END DO ! Write box-specific fields DO JI = 1, SIZE( TOUT_BOXES(JBOX)%NFIELDLIST_SUPP ) - CALL IO_Fieldlist_1field_write( TZOUTPUT, TFIELDLIST(TOUT_BOXES(JBOX)%NFIELDLIST_SUPP(JI)), JBOX, TOUT_BOXES(JBOX) ) + CALL IO_Fieldlist_1field_write( TZOUTPUT, TFIELDLIST(TOUT_BOXES(JBOX)%NFIELDLIST_SUPP(JI)), TOUT_BOXES(JBOX) ) END DO ! Restore the root group (not really necessary but cleaner) @@ -4415,7 +4415,7 @@ END IF END SUBROUTINE IO_Fieldlist_write -SUBROUTINE IO_Fieldlist_1field_write( TPOUTPUT, TPFIELD, KBOXID, TPBOX ) +SUBROUTINE IO_Fieldlist_1field_write( TPOUTPUT, TPFIELD, TPBOX ) USE MODD_FIELD, ONLY: TFIELDDATA, TFIELDMETADATA USE MODD_OUT_n, ONLY: CMAINDOMAINNAME, TOUTBOXMETADATA @@ -4424,7 +4424,6 @@ USE MODE_MODELN_HANDLER, ONLY: GET_CURRENT_MODEL_INDEX TYPE(TFILEDATA), INTENT(IN) :: TPOUTPUT !Output file TYPE(TFIELDDATA), INTENT(IN) :: TPFIELD -INTEGER, INTENT(IN) :: KBOXID TYPE(TOUTBOXMETADATA), INTENT(INOUT) :: TPBOX INTEGER :: IIINF, IJINF, IKINF @@ -4591,7 +4590,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS) CALL IO_Field_write(TPOUTPUT,TPFIELD,TPFIELD%TFIELD_X1D(IMI)%DATA) ELSE CALL IO_Field_write_BOX( TPOUTPUT, TZFIELDMD, 'OTHER', TPFIELD%TFIELD_X1D(IMI)%DATA, & - KXOBOX = IIINF, KXEBOX = IISUP, KBOXID = KBOXID ) + KXOBOX = IIINF, KXEBOX = IISUP, KBOXID = TPBOX%NID ) END IF ELSE call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// & @@ -4614,7 +4613,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS) CALL IO_Field_write(TPOUTPUT,TPFIELD,TPFIELD%TFIELD_N1D(IMI)%DATA) ELSE CALL IO_Field_write_BOX( TPOUTPUT, TZFIELDMD, 'OTHER', TPFIELD%TFIELD_N1D(IMI)%DATA, & - KXOBOX = IIINF, KXEBOX = IISUP, KBOXID = KBOXID ) + KXOBOX = IIINF, KXEBOX = IISUP, KBOXID = TPBOX%NID ) END IF ELSE call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// & @@ -4718,7 +4717,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS) CALL IO_Field_write_BOX( TPOUTPUT, TZFIELDMD, 'OTHER', TPFIELD%TFIELD_X2D(IMI)%DATA, & KXOBOX = IIINF, KXEBOX = IISUP, & KYOBOX = IJINF, KYEBOX = IJSUP, & - KBOXID = KBOXID ) + KBOXID = TPBOX%NID ) END IF ELSE call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// & @@ -4743,7 +4742,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS) CALL IO_Field_write_BOX( TPOUTPUT, TZFIELDMD, 'OTHER', TPFIELD%TFIELD_N2D(IMI)%DATA, & KXOBOX = IIINF, KXEBOX = IISUP, & KYOBOX = IJINF, KYEBOX = IJSUP, & - KBOXID = KBOXID ) + KBOXID = TPBOX%NID ) END IF ELSE call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// & @@ -4790,7 +4789,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS) KXOBOX = IIINF, KXEBOX = IISUP, & KYOBOX = IJINF, KYEBOX = IJSUP, & KZOBOX = IKINF, KZEBOX = IKSUP, & - KBOXID = KBOXID ) + KBOXID = TPBOX%NID ) END IF ELSE call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// & @@ -4817,7 +4816,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS) KXOBOX = IIINF, KXEBOX = IISUP, & KYOBOX = IJINF, KYEBOX = IJSUP, & KZOBOX = IKINF, KZEBOX = IKSUP, & - KBOXID = KBOXID ) + KBOXID = TPBOX%NID ) END IF ELSE call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// & @@ -4865,7 +4864,7 @@ NDIMS: SELECT CASE (TPFIELD%NDIMS) KXOBOX = IIINF, KXEBOX = IISUP, & KYOBOX = IJINF, KYEBOX = IJSUP, & KZOBOX = IKINF, KZEBOX = IKSUP, & - KBOXID = KBOXID ) + KBOXID = TPBOX%NID ) END IF ELSE call Print_msg( NVERB_ERROR, 'IO', 'IO_Fieldlist_1field_write', trim(tpfield%cmnhname)// & @@ -5278,7 +5277,7 @@ SUBROUTINE IO_Field_box_user_intern_write( tpoutput, tpfield, obox_write ) integer :: jbox type(tfiledata) :: tzoutput - if ( obox_write(0) ) call IO_Fieldlist_1field_write( tpoutput, tpfield, 0, tout_boxes(0) ) + if ( obox_write(0) ) call IO_Fieldlist_1field_write( tpoutput, tpfield, tout_boxes(0) ) if ( nout_nboxes > 0 ) then tzoutput = tpoutput @@ -5302,7 +5301,7 @@ SUBROUTINE IO_Field_box_user_intern_write( tpoutput, tpfield, obox_write ) if ( isp == tzoutput%nmaster_rank ) tzoutput%nncid = tzoutput%nboxncid(jbox) ! Write data - call IO_Fieldlist_1field_write( tzoutput, tpfield, jbox, tout_boxes(jbox) ) + call IO_Fieldlist_1field_write( tzoutput, tpfield, tout_boxes(jbox) ) end do end if diff --git a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 index 020cb37a866a538838bedbd8532cae6b9f8eb1f5..32f51fe5fe4878a9d0803f535d2b591c0d559ec2 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_manage_struct.f90 @@ -839,6 +839,7 @@ SUBROUTINE IO_BOX_PREPARE( KMI ) ! Treat special box for main domain TOUT_BOXES(0)%CNAME = CMAINDOMAINNAME + TOUT_BOXES(0)%NID = 0 ALLOCATE( TOUT_BOXES(0)%NFIELDLIST_SUPP(0) ) @@ -879,6 +880,9 @@ SUBROUTINE IO_BOX_PREPARE( KMI ) ELSE WRITE( TOUT_BOXES(JI)%CNAME, '( "Box_", I4.4 )' ) JI END IF + + TOUT_BOXES(JI)%NID = JI + TOUT_BOXES(JI)%NIINF = NOUT_BOX_IINF(IMI,JI) TOUT_BOXES(JI)%NISUP = NOUT_BOX_ISUP(IMI,JI) TOUT_BOXES(JI)%NJINF = NOUT_BOX_JINF(IMI,JI) diff --git a/src/MNH/modd_outn.f90 b/src/MNH/modd_outn.f90 index 0125394fe5fd54b82b963ad7e430da0b631b8b90..fbdf63e62c8970f71ce3056f1cd530804d58b949 100644 --- a/src/MNH/modd_outn.f90 +++ b/src/MNH/modd_outn.f90 @@ -50,6 +50,7 @@ CHARACTER(LEN=NMNHNAMELGTMAX), PARAMETER :: CMAINDOMAINNAME = 'MAINDOMAIN' TYPE TOUTBOXMETADATA CHARACTER(LEN=NMNHNAMELGTMAX):: CNAME = '' ! Name of the box + INTEGER :: NID = NNEGUNDEF ! Id of the box INTEGER, DIMENSION(:), ALLOCATABLE :: NFIELDLIST_SUPP ! Lists of fields to write (added to the NOUT_FIELDLIST) INTEGER :: NIINF = NNEGUNDEF ! Box coordinates in physical domain INTEGER :: NISUP = NNEGUNDEF