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