From b594f9cd94860167b51a181409078dd35790c3f8 Mon Sep 17 00:00:00 2001
From: Philippe WAUTELET <philippe.wautelet@aero.obs-mip.fr>
Date: Fri, 9 Feb 2018 11:36:50 +0100
Subject: [PATCH] Philippe 09/03/2018: IO/LFI: problem correction: COMMENT
 should not be truncated in LFI files If truncated with TRIM/LEN_TRIM =>
 problems with conv2dia

---
 src/LIB/SURCOUCHE/src/fmreadwrit.f90 | 36 ++++++++++++++--------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/LIB/SURCOUCHE/src/fmreadwrit.f90 b/src/LIB/SURCOUCHE/src/fmreadwrit.f90
index b39e2eeee..9a208a115 100644
--- a/src/LIB/SURCOUCHE/src/fmreadwrit.f90
+++ b/src/LIB/SURCOUCHE/src/fmreadwrit.f90
@@ -749,7 +749,7 @@ ILENG = 1
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3) = TRANSFER(PFIELD,IWORK(1))
+  IWORK(LEN(TPFIELD%CCOMMENT)+3) = TRANSFER(PFIELD,IWORK(1))
   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 '&
@@ -788,7 +788,7 @@ ILENG = SIZE(PFIELD)
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3:) = TRANSFER(PFIELD,IWORK(1),SIZE(PFIELD))
+  IWORK(LEN(TPFIELD%CCOMMENT)+3:) = TRANSFER(PFIELD,IWORK(1),SIZE(PFIELD))
   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 '&
@@ -847,7 +847,7 @@ CALL PRINT_MSG(NVERB_DEBUG,'IO','IO_WRITE_FIELD_LFI_X2','writing '//TRIM(YVARNAM
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3:) = TRANSFER(PFIELD,IWORK(1),SIZE(PFIELD))
+  IWORK(LEN(TPFIELD%CCOMMENT)+3:) = TRANSFER(PFIELD,IWORK(1),SIZE(PFIELD))
   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 '&
@@ -886,7 +886,7 @@ ILENG = SIZE(PFIELD)
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3:) = TRANSFER(PFIELD,IWORK(1),SIZE(PFIELD))
+  IWORK(LEN(TPFIELD%CCOMMENT)+3:) = TRANSFER(PFIELD,IWORK(1),SIZE(PFIELD))
   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 '&
@@ -925,7 +925,7 @@ ILENG = SIZE(PFIELD)
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3:) = TRANSFER(PFIELD,IWORK(1),SIZE(PFIELD))
+  IWORK(LEN(TPFIELD%CCOMMENT)+3:) = TRANSFER(PFIELD,IWORK(1),SIZE(PFIELD))
   YRECFM=TRIM(TPFIELD%CMNHNAME)
   IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) &
     CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X4','field name was truncated to '&
@@ -964,7 +964,7 @@ ILENG = SIZE(PFIELD)
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3:) = TRANSFER(PFIELD,IWORK(1),SIZE(PFIELD))
+  IWORK(LEN(TPFIELD%CCOMMENT)+3:) = TRANSFER(PFIELD,IWORK(1),SIZE(PFIELD))
   YRECFM=TRIM(TPFIELD%CMNHNAME)
   IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) &
     CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X5','field name was truncated to '&
@@ -1003,7 +1003,7 @@ ILENG = SIZE(PFIELD)
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3:) = TRANSFER(PFIELD,IWORK(1),SIZE(PFIELD))
+  IWORK(LEN(TPFIELD%CCOMMENT)+3:) = TRANSFER(PFIELD,IWORK(1),SIZE(PFIELD))
   YRECFM=TRIM(TPFIELD%CMNHNAME)
   IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) &
     CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_X6','field name was truncated to '&
@@ -1042,7 +1042,7 @@ ILENG = 1
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3)=KFIELD
+  IWORK(LEN(TPFIELD%CCOMMENT)+3)=KFIELD
   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 '&
@@ -1081,7 +1081,7 @@ ILENG = SIZE(KFIELD)
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3:) = KFIELD(:)
+  IWORK(LEN(TPFIELD%CCOMMENT)+3:) = KFIELD(:)
   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 '&
@@ -1120,7 +1120,7 @@ ILENG = SIZE(KFIELD)
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3:) = RESHAPE( KFIELD(:,:) , (/ SIZE(KFIELD) /) )
+  IWORK(LEN(TPFIELD%CCOMMENT)+3:) = RESHAPE( KFIELD(:,:) , (/ SIZE(KFIELD) /) )
   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 '&
@@ -1159,7 +1159,7 @@ ILENG = SIZE(KFIELD)
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3:) = RESHAPE( KFIELD(:,:,:) , (/ SIZE(KFIELD) /) )
+  IWORK(LEN(TPFIELD%CCOMMENT)+3:) = RESHAPE( KFIELD(:,:,:) , (/ SIZE(KFIELD) /) )
   YRECFM=TRIM(TPFIELD%CMNHNAME)
   IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) &
     CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_N3','field name was truncated to '&
@@ -1206,7 +1206,7 @@ END IF
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3)=IFIELD
+  IWORK(LEN(TPFIELD%CCOMMENT)+3)=IFIELD
   YRECFM=TRIM(TPFIELD%CMNHNAME)
   IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) &
     CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_L0','field name was truncated to '&
@@ -1253,7 +1253,7 @@ END WHERE
 CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3:) = IFIELD(:)
+  IWORK(LEN(TPFIELD%CCOMMENT)+3:) = IFIELD(:)
   YRECFM=TRIM(TPFIELD%CMNHNAME)
   IF( LEN_TRIM(TPFIELD%CMNHNAME) > LEN(YRECFM) ) &
     CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_L1','field name was truncated to '&
@@ -1294,10 +1294,10 @@ CALL WRITE_PREPARE(TPFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
   IF (ILENG==0) THEN
-    IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+3)=IACHAR(' ')
+    IWORK(LEN(TPFIELD%CCOMMENT)+3)=IACHAR(' ')
   ELSE
     DO JLOOP=1,ILENG
-      IWORK(LEN_TRIM(TPFIELD%CCOMMENT)+2+JLOOP)=IACHAR(HFIELD(JLOOP:JLOOP))
+      IWORK(LEN(TPFIELD%CCOMMENT)+2+JLOOP)=IACHAR(HFIELD(JLOOP:JLOOP))
     END DO
   END IF
   YRECFM=TRIM(TPFIELD%CMNHNAME)
@@ -1351,7 +1351,7 @@ ILENG=SIZE(ITDATE)
 CALL WRITE_PREPARE(TZFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TZFIELD%CCOMMENT)+3:)=ITDATE(:)
+  IWORK(LEN(TZFIELD%CCOMMENT)+3:)=ITDATE(:)
   YRECFM=TRIM(TZFIELD%CMNHNAME)
   IF( LEN_TRIM(TZFIELD%CMNHNAME) > LEN(YRECFM) ) &
     CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_T0','field name was truncated to '&
@@ -1375,7 +1375,7 @@ ILENG=1
 CALL WRITE_PREPARE(TZFIELD,ILENG,IWORK,ITOTAL,IRESP)
 !
 IF (IRESP==0) THEN
-  IWORK(LEN_TRIM(TZFIELD%CCOMMENT)+3) = TRANSFER(TPDATA%TIME,IWORK(1))
+  IWORK(LEN(TZFIELD%CCOMMENT)+3) = TRANSFER(TPDATA%TIME,IWORK(1))
   YRECFM=TRIM(TZFIELD%CMNHNAME)
   IF( LEN_TRIM(TZFIELD%CMNHNAME) > LEN(YRECFM) ) &
     CALL PRINT_MSG(NVERB_WARNING,'IO','IO_WRITE_FIELD_LFI_T0','field name was truncated to '&
@@ -1401,7 +1401,7 @@ INTEGER                   :: ICOMLEN
 INTEGER                   :: J
 INTEGER,DIMENSION(JPXKRK) :: ICOMMENT
 !
-ICOMLEN = LEN_TRIM(TPFIELD%CCOMMENT)
+ICOMLEN = LEN(TPFIELD%CCOMMENT)
 KRESP = 0
 !
 IF (KLENG.LE.0) THEN
-- 
GitLab