diff --git a/src/LIB/SURCOUCHE/src/fmreadwrit.f90 b/src/LIB/SURCOUCHE/src/fmreadwrit.f90 index e167b5bae554870973d24860a4d2571a4da1f414..62de923142add5e6ecb27d179f8a4da06428f366 100644 --- a/src/LIB/SURCOUCHE/src/fmreadwrit.f90 +++ b/src/LIB/SURCOUCHE/src/fmreadwrit.f90 @@ -300,6 +300,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised INTEGER :: ILENG INTEGER(KIND=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK +CHARACTER(LEN=16) :: YRECFM ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X0','writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -309,6 +310,10 @@ CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) ! IF (IRESP==0) THEN CALL TRANSFW(IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3),PFIELD,ILENG) + YRECFM=TRIM(TPFIELD%CMNHNAME) + IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X0','field name was truncated to '& + //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) CALL LFIECR(IRESP,KFLU,TRIM(TPFIELD%CMNHNAME),IWORK,ITOTAL) ENDIF ! @@ -334,6 +339,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised INTEGER :: ILENG INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK +CHARACTER(LEN=16) :: YRECFM ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X1','writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -343,7 +349,11 @@ CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) ! IF (IRESP==0) THEN CALL TRANSFW(IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3),PFIELD,ILENG) - CALL LFIECR(IRESP,KFLU,TRIM(TPFIELD%CMNHNAME),IWORK,ITOTAL) + YRECFM=TRIM(TPFIELD%CMNHNAME) + IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X1','field name was truncated to '& + //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) + CALL LFIECR(IRESP,KFLU,YRECFM,IWORK,ITOTAL) ENDIF ! KRESP=IRESP @@ -371,6 +381,7 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK CHARACTER(LEN=4) :: YSUFFIX CHARACTER(LEN=LEN(TPFIELD%CMNHNAME)+4) :: YVARNAME +CHARACTER(LEN=16) :: YRECFM ! ILENG = SIZE(PFIELD) IF (PRESENT(KVERTLEVEL)) THEN @@ -386,7 +397,11 @@ CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) ! IF (IRESP==0) THEN CALL TRANSFW(IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3),PFIELD,ILENG) - CALL LFIECR(IRESP,KFLU,YVARNAME,IWORK,ITOTAL) + YRECFM=TRIM(YVARNAME) + IF( LEN_TRIM(YVARNAME) > LEN(YRECFM) ) & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X2','field name was truncated to '& + //YRECFM//' for '//TRIM(YVARNAME)) + CALL LFIECR(IRESP,KFLU,YRECFM,IWORK,ITOTAL) ENDIF ! KRESP=IRESP @@ -411,6 +426,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised INTEGER :: ILENG INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK +CHARACTER(LEN=16) :: YRECFM ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X3','writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -420,7 +436,11 @@ CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) ! IF (IRESP==0) THEN CALL TRANSFW(IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3),PFIELD,ILENG) - CALL LFIECR(IRESP,KFLU,TPFIELD%CMNHNAME,IWORK,ITOTAL) + YRECFM=TRIM(TPFIELD%CMNHNAME) + IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X3','field name was truncated to '& + //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) + CALL LFIECR(IRESP,KFLU,YRECFM,IWORK,ITOTAL) ENDIF ! KRESP=IRESP @@ -445,6 +465,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised INTEGER :: ILENG INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK +CHARACTER(LEN=16) :: YRECFM ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N0','writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -454,7 +475,11 @@ CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) ! IF (IRESP==0) THEN IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3)=KFIELD - CALL LFIECR(IRESP,KFLU,TPFIELD%CMNHNAME,IWORK,ITOTAL) + YRECFM=TRIM(TPFIELD%CMNHNAME) + IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N0','field name was truncated to '& + //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) + CALL LFIECR(IRESP,KFLU,YRECFM,IWORK,ITOTAL) ENDIF ! KRESP=IRESP @@ -479,6 +504,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised INTEGER :: ILENG INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK +CHARACTER(LEN=16) :: YRECFM ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N1','writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -488,7 +514,11 @@ CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) ! IF (IRESP==0) THEN IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3:) = KFIELD(:) - CALL LFIECR(IRESP,KFLU,TPFIELD%CMNHNAME,IWORK,ITOTAL) + YRECFM=TRIM(TPFIELD%CMNHNAME) + IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N1','field name was truncated to '& + //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) + CALL LFIECR(IRESP,KFLU,YRECFM,IWORK,ITOTAL) ENDIF ! KRESP=IRESP @@ -513,6 +543,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised INTEGER :: ILENG INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK +CHARACTER(LEN=16) :: YRECFM ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_N2','writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -522,7 +553,11 @@ CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP) ! IF (IRESP==0) THEN IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3:) = RESHAPE( KFIELD(:,:) , (/ SIZE(KFIELD) /) ) - CALL LFIECR(IRESP,KFLU,TPFIELD%CMNHNAME,IWORK,ITOTAL) + YRECFM=TRIM(TPFIELD%CMNHNAME) + IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N2','field name was truncated to '& + //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) + CALL LFIECR(IRESP,KFLU,YRECFM,IWORK,ITOTAL) ENDIF ! KRESP=IRESP @@ -547,6 +582,7 @@ INTEGER, INTENT(OUT):: KRESP ! return-code if problems araised INTEGER :: ILENG, JLOOP INTEGER(kind=LFI_INT) :: IRESP, ITOTAL INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK +CHARACTER(LEN=16) :: YRECFM ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_C0','writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -563,7 +599,11 @@ IF (IRESP==0) THEN IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+2+JLOOP)=IACHAR(HFIELD(JLOOP:JLOOP)) END DO END IF - CALL LFIECR(IRESP,KFLU,TPFIELD%CMNHNAME,IWORK,ITOTAL) + YRECFM=TRIM(TPFIELD%CMNHNAME) + IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_C0','field name was truncated to '& + //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) + CALL LFIECR(IRESP,KFLU,YRECFM,IWORK,ITOTAL) ENDIF ! KRESP=IRESP @@ -592,6 +632,7 @@ INTEGER(kind=LFI_INT) :: IRESP, ITOTAL TYPE(TFIELDDATA) :: TZFIELD INTEGER, DIMENSION(3) :: ITDATE ! date array INTEGER(KIND=8),DIMENSION(:),ALLOCATABLE :: IWORK +CHARACTER(LEN=16) :: YRECFM ! CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_T0','writing '//TRIM(TPFIELD%CMNHNAME)) ! @@ -610,7 +651,11 @@ CALL WRITE_PREPARE(TZFIELD,ILENG,IWORK,ITOTAL,IRESP) ! IF (IRESP==0) THEN IWORK(LEN_TRIM(TZFIELD%CCOMMENT)+3:)=ITDATE(:) - CALL LFIECR(IRESP,KFLU,TRIM(TZFIELD%CMNHNAME),IWORK,ITOTAL) + YRECFM=TRIM(TPFIELD%CMNHNAME) + IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_T0','field name was truncated to '& + //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) + CALL LFIECR(IRESP,KFLU,YRECFM,IWORK,ITOTAL) ENDIF ! IF (ALLOCATED(IWORK)) DEALLOCATE(IWORK) @@ -630,7 +675,11 @@ CALL WRITE_PREPARE(TZFIELD,ILENG,IWORK,ITOTAL,IRESP) ! IF (IRESP==0) THEN CALL TRANSFW(IWORK(LEN_TRIM(TZFIELD%CCOMMENT)+3),TPDATA%TIME,ILENG) - CALL LFIECR(IRESP,KFLU,TRIM(TZFIELD%CMNHNAME),IWORK,ITOTAL) + YRECFM=TRIM(TPFIELD%CMNHNAME) + IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) & + CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_T0','field name was truncated to '& + //YRECFM//' for '//TRIM(TPFIELD%CMNHNAME)) + CALL LFIECR(IRESP,KFLU,YRECFM,IWORK,ITOTAL) ENDIF ! KRESP=IRESP