From 8d7ab0dab08babc8440e6afe7e8597d5b6ae0ab4 Mon Sep 17 00:00:00 2001
From: Quentin Rodier <quentin.rodier@meteo.fr>
Date: Thu, 18 Jul 2024 15:07:43 +0200
Subject: [PATCH] Jean W. 18/07/2024: SURFEX: init of TEB with old SURFEX files

---
 src/SURFEX/prep_teb_extern.F90 | 78 +++++++++++++++++++++++-----------
 1 file changed, 54 insertions(+), 24 deletions(-)

diff --git a/src/SURFEX/prep_teb_extern.F90 b/src/SURFEX/prep_teb_extern.F90
index 201550544..25482e528 100644
--- a/src/SURFEX/prep_teb_extern.F90
+++ b/src/SURFEX/prep_teb_extern.F90
@@ -189,7 +189,7 @@ ELSE
 !             ------------------------------------------------
 !
     CASE('T_ROAD','T_BLD ','T_ROOF','T_WALLA','T_WALLB','T_FLOOR','T_MASS')
-            
+
       GINTERP = .TRUE.
       
       YSURF=HSURF(1:6)
@@ -259,16 +259,17 @@ ELSE
       !* reading of the profile
       ALLOCATE(ZFIELD(INI,ILAYER))
       DO JLAYER=1,ILAYER
-        !
-        IF (GOLD_NAME) THEN
-          WRITE(YRECFM,'(A6,I1.1)') HSURF(1:6),JLAYER
-        ELSE
+          !
           !
           !---------------------------------------------
           ! Wall temperature profiles, for two different facing walls case
           !---------------------------------------------
           IF (YSURF =='T_WALL' .AND. YWALL_OPT/='UNIF') THEN
-            WRITE(YRECFM,'(A1,A5,I1.1)') HSURF(1:1),HSURF(3:7),JLAYER
+            IF (GOLD_NAME) THEN
+                WRITE(YRECFM,'(A6,I1.1)') HSURF(1:6),JLAYER   !Keeping "_" in variable name
+            ELSE
+          	WRITE(YRECFM,'(A1,A5,I1.1)') HSURF(1:1),HSURF(3:7),JLAYER
+            END IF
           !
           !---------------------------------------------
           ! Floor or Mass temperature profiles, if no BEM present in input data
@@ -285,9 +286,16 @@ ELSE
           ELSE IF ((YSURF=='T_FLOO' .OR. YSURF=='T_MASS') .AND. YBEM=='BEM') THEN
             !
             ! Only the value for one compartment is read and then
-            ! applied to all compartemts
+            ! applied to all compartiments
             !
-            IF (GOLD_NAME2) THEN
+	    IF (GOLD_NAME) THEN 
+              IF (YSURF=='T_FLOO') THEN 
+                WRITE(YRECFM,'(A7,I1.1,A1,I1.1)') 'T_FLOO',JLAYER !A verifier eventuellement
+              ELSE IF (YSURF=='T_MASS') THEN 
+                WRITE(YRECFM,'(A6,I1.1,A1,I1.1)') 'T_MASS',JLAYER
+              ENDIF
+              
+	    ELSE IF (GOLD_NAME2) THEN
               IF (YSURF=='T_FLOO') THEN 
                 WRITE(YRECFM,'(A6,I1.1,A1,I1.1)') 'TFLOO',JLAYER
               ELSE IF (YSURF=='T_MASS') THEN 
@@ -307,41 +315,63 @@ ELSE
           ELSEIF (YSURF=='T_BLD') THEN
             IF (GOLD_NAME2) THEN   ! old TEB version without soil below buildings: set a mixing between road and building temp.
               IF (JLAYER.LT.2) THEN   ! layers near the building set to building internal temperature, to avoid too cold or warm top road layers
-                IF (GOLD_NAME2) THEN
-                  WRITE(YRECFM,'(A6)') 'TI_BLD'
-                ELSE
-                  WRITE(YRECFM,'(A6)') 'TIBLD1'
-                ENDIF
+              	  IF (GOLD_NAME2) THEN
+                    	WRITE(YRECFM,'(A6)') 'TI_BLD'
+                  ELSE
+                       	WRITE(YRECFM,'(A6)') 'TIBLD1'
+                  END IF
+                    	
               ELSE IF (JLAYER.LT.10) THEN
-                 WRITE(YRECFM,'(A5,I1.1)') 'TROAD',JLAYER 
+              	 
+              	 IF (GOLD_NAME) THEN
+              	   WRITE(YRECFM,'(A6,I1.1)') 'T_ROAD',JLAYER 
+		 ELSE
+                   WRITE(YRECFM,'(A5,I1.1)') 'TROAD',JLAYER 
+               	 END IF
               ELSE  
-                 WRITE(YRECFM,'(A5,I2.1)') 'TROAD',JLAYER  
+            	 IF (GOLD_NAME) THEN
+              	   WRITE(YRECFM,'(A6,I2.1)') 'T_ROAD',JLAYER 
+		 ELSE
+                   WRITE(YRECFM,'(A5,I2.1)') 'TROAD',JLAYER 
+               	 END IF
               END IF
-            ELSE               ! TEB version with soil temperature profile below buildings
+           ELSE               ! TEB version with soil temperature profile below buildings
               IF (JLAYER.LT.10) THEN
                 WRITE(YRECFM,'(A5,I1.1)') 'TBLD',JLAYER 
               ELSE  
                 WRITE(YRECFM,'(A5,I2.1)') 'TBLD',JLAYER  
               END IF
-            END IF
+           END IF
           !---------------------------------------------
           ! Road temperature profiles
           !---------------------------------------------
           ELSE IF (YSURF =='T_ROAD') THEN
              IF (JLAYER.LT.10) THEN
-                WRITE(YRECFM,'(A5,I1.1)') 'TROAD',JLAYER 
-             ELSE  
-                WRITE(YRECFM,'(A5,I2.1)') 'TROAD',JLAYER  
+           	 IF (GOLD_NAME) THEN
+              	   WRITE(YRECFM,'(A6,I1.1)') 'T_ROAD',JLAYER 
+		 ELSE
+                   WRITE(YRECFM,'(A5,I1.1)') 'TROAD',JLAYER 
+               	 END IF
+              ELSE
+            	 IF (GOLD_NAME) THEN
+              	   WRITE(YRECFM,'(A6,I2.1)') 'T_ROAD',JLAYER 
+		 ELSE
+                   WRITE(YRECFM,'(A5,I2.1)') 'TROAD',JLAYER 
+               	 END IF
              END IF
           ELSE
           !---------------------------------------------
           ! Others: Roof or uniform Wall temperature profiles
           !---------------------------------------------
-            WRITE(YRECFM,'(A1,A4,I1.1)') YSURF(1:1),YSURF(3:6),JLAYER            
-          END IF
+		  IF (GOLD_NAME) THEN
+		    WRITE(YRECFM,'(A6,I1.1)') YSURF(1:6),JLAYER            
+		  ELSE
+		    WRITE(YRECFM,'(A1,A4,I1.1)') YSURF(1:1),YSURF(3:6),JLAYER            
+		  END IF
+          
           !
-        END IF
-        !
+          END IF
+         !
         YRECFM=YPATCH//YRECFM
         YRECFM=ADJUSTL(YRECFM)
         CALL READ_SURF(HFILETYPE,YRECFM,ZFIELD(:,JLAYER),IRESP,HDIR='E')
-- 
GitLab