From 15ef504edd0f2715d9c869cf2529aaa2a9dc6e63 Mon Sep 17 00:00:00 2001
From: Gaelle Tanguy <gaelle.tanguy@meteo.fr>
Date: Fri, 11 Jul 2014 09:44:13 +0000
Subject: [PATCH] Gaelle 11/7/2014 : bug pour champ LES de type SSOL

---
 tools/diachro/src/EXTRACTDIA/extractdia.f90 | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/tools/diachro/src/EXTRACTDIA/extractdia.f90 b/tools/diachro/src/EXTRACTDIA/extractdia.f90
index d504b4625..b06819b4d 100644
--- a/tools/diachro/src/EXTRACTDIA/extractdia.f90
+++ b/tools/diachro/src/EXTRACTDIA/extractdia.f90
@@ -84,6 +84,9 @@
 !        add ALT 3Dfield if KCDL, add the LAT and LON 3Dfields if CONF and *CDL
 !       04/11/2009 (G. Tanguy) : add case IJHV,IJZV, IJPV , JIHV, JIZV, JIPV
 !       29/03/2011 (G. TANGUY) : add case ZGRB PGRB
+!       11/07/2014 (G. TANGUY) : correction pour les donnees LES de type SSOl
+!                                (vlev et field ne correspondaient pas suite à
+!                                mauvais zoom)
 !-------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -208,6 +211,7 @@ INTEGER :: ILEVEL2D ! en option : altitude du champ 2D 
 LOGICAL :: LLEVEL2D 
 REAL,DIMENSION(4) :: ZLATLON
 INTEGER :: INX,INY
+REAL,DIMENSION(:,:,:),ALLOCATABLE :: ZALT
 !-------------------------------------------------------------------------------
 !
 !*       1.     INIT
@@ -898,7 +902,7 @@ DO JGR=1,10000
     ENDIF
     IF (ikdeb == 0 .AND. ikfin == 0 ) THEN
       ivarkdeb=NREADKL ; ivarkfin=NREADKH
-      IF (ivarkdeb/=ivarkfin) THEN  ! domK/=1
+      IF (ivarkdeb/=ivarkfin .AND. CTYPE/='SSOL') THEN  ! domK/=1
         ivarkdeb=MAX(1+JPVEXT,NREADKL)
         ivarkfin=min(ivarzmax,SIZE(XVAR,3)-JPVEXT)
       ENDIF
@@ -993,11 +997,21 @@ DO JGR=1,10000
         CLOSE(7)
       !
       CASE('LLHV','llhv','IJHV','jihv')
-        CALL WRITELLHV(ivarideb,ivarifin,ivarjdeb,ivarjfin, &
+        IF (CTYPE == 'SSOL') THEN
+          ALLOCATE(ZALT(1,1,SIZE(XTRAJZ,1)))
+          ZALT(1,1,:)=XTRAJZ(:,1,1)
+          CALL WRITELLHV(ivarideb,ivarifin,ivarjdeb,ivarjfin, &
                        ivarkdeb,ivarkfin,ivartinf,ivartsup, &
                        ivartrajinf,ivartrajsup,ivarprocinf,ivarprocsup,&
                        CGROUP,YFILEIN,YFLAGWRITE,YTYPEOUT,&
-                       ilocverbia,iret)       
+                       ilocverbia,iret,PALT=ZALT)
+        ELSE
+          CALL WRITELLHV(ivarideb,ivarifin,ivarjdeb,ivarjfin, &
+                       ivarkdeb,ivarkfin,ivartinf,ivartsup, &
+                       ivartrajinf,ivartrajsup,ivarprocinf,ivarprocsup,&
+                       CGROUP,YFILEIN,YFLAGWRITE,YTYPEOUT,&
+                       ilocverbia,iret)     
+        ENDIF  
         if (ilocverbia > 0 ) then
           print*,' WRITELLHV return= ',iret
         end if
-- 
GitLab