diff --git a/src/SURFEX/prep_teb_extern.F90 b/src/SURFEX/prep_teb_extern.F90 index 201550544f4c38987030a4ade10c1610c67b6bda..25482e528787d504c60cda762bb5fcd6f074697c 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')