From 4b96b3b6479aabaacedc2ee4130e764d1da69cca Mon Sep 17 00:00:00 2001 From: Quentin Rodier <quentin.rodier@meteo.fr> Date: Wed, 27 Mar 2019 13:46:20 +0100 Subject: [PATCH] Juan 27/03/2019: correction for only 1 file for SST --- src/SURFEX/prep_sst_init.F90 | 54 ++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 24 deletions(-) diff --git a/src/SURFEX/prep_sst_init.F90 b/src/SURFEX/prep_sst_init.F90 index 3e4b1bfdf..d2dd441b4 100644 --- a/src/SURFEX/prep_sst_init.F90 +++ b/src/SURFEX/prep_sst_init.F90 @@ -36,6 +36,7 @@ !! MODIFICATIONS !! ------------- !! Original 09/2007 +!! J.Escobar 03/2019 correction for only 1 file of SST !! !------------------------------------------------------------------------------- ! @@ -80,33 +81,38 @@ REAL(KIND=JPRB) :: ZHOOK_HANDLE ! ! IF (LHOOK) CALL DR_HOOK('PREP_SST_INIT',0,ZHOOK_HANDLE) -LOOP: DO JI = DTS%NTIME-1,1,-1 - KSX = JI - IF (.NOT.TEMPORAL_LTS(TPTIME,DTS%TDATA_SST(KSX))) EXIT LOOP - ENDDO LOOP - -IF ( TEMPORAL_LTS ( TPTIME, DTS%TDATA_SST(KSX) ) ) THEN - ZSST(:) = DTS%XDATA_SST(:,KSX) -ELSE IF ( .NOT. TEMPORAL_LTS ( TPTIME, DTS%TDATA_SST(DTS%NTIME) ) ) THEN - ZSST(:) = DTS%XDATA_SST(:,DTS%NTIME) + IF ( DTS%NTIME ==1 ) THEN + ! only one value, take this + KSX = 1 + ZSST(:) = DTS%XDATA_SST(:,DTS%NTIME) ELSE + LOOP: DO JI = DTS%NTIME-1,1,-1 + KSX = JI + IF (.NOT.TEMPORAL_LTS(TPTIME,DTS%TDATA_SST(KSX))) EXIT LOOP + ENDDO LOOP + + IF ( TEMPORAL_LTS ( TPTIME, DTS%TDATA_SST(KSX) ) ) THEN + ZSST(:) = DTS%XDATA_SST(:,KSX) + ELSE IF ( .NOT. TEMPORAL_LTS ( TPTIME, DTS%TDATA_SST(DTS%NTIME) ) ) THEN + ZSST(:) = DTS%XDATA_SST(:,DTS%NTIME) + ELSE - CALL TEMPORAL_DISTS ( DTS%TDATA_SST(KSX+1)%TDATE%YEAR,DTS%TDATA_SST(KSX+1)%TDATE%MONTH, & - DTS%TDATA_SST(KSX+1)%TDATE%DAY ,DTS%TDATA_SST(KSX+1)%TIME, & - DTS%TDATA_SST(KSX)%TDATE%YEAR,DTS%TDATA_SST(KSX)%TDATE%MONTH, & - DTS%TDATA_SST(KSX)%TDATE%DAY ,DTS%TDATA_SST(KSX)%TIME, & - ZSDTJX ) + CALL TEMPORAL_DISTS ( DTS%TDATA_SST(KSX+1)%TDATE%YEAR,DTS%TDATA_SST(KSX+1)%TDATE%MONTH, & + DTS%TDATA_SST(KSX+1)%TDATE%DAY ,DTS%TDATA_SST(KSX+1)%TIME, & + DTS%TDATA_SST(KSX)%TDATE%YEAR,DTS%TDATA_SST(KSX)%TDATE%MONTH, & + DTS%TDATA_SST(KSX)%TDATE%DAY ,DTS%TDATA_SST(KSX)%TIME, & + ZSDTJX ) - CALL TEMPORAL_DISTS ( TPTIME%TDATE%YEAR ,TPTIME%TDATE%MONTH, & - TPTIME%TDATE%DAY ,TPTIME%TIME, & - DTS%TDATA_SST(KSX)%TDATE%YEAR,DTS%TDATA_SST(KSX)%TDATE%MONTH, & - DTS%TDATA_SST(KSX)%TDATE%DAY ,DTS%TDATA_SST(KSX)%TIME, & - ZDT ) -! - ZALPHA = ZDT / ZSDTJX -! - ZSST(:)= DTS%XDATA_SST(:,KSX)+(DTS%XDATA_SST(:,KSX+1)-DTS%XDATA_SST(:,KSX))*ZALPHA - + CALL TEMPORAL_DISTS ( TPTIME%TDATE%YEAR ,TPTIME%TDATE%MONTH, & + TPTIME%TDATE%DAY ,TPTIME%TIME, & + DTS%TDATA_SST(KSX)%TDATE%YEAR,DTS%TDATA_SST(KSX)%TDATE%MONTH, & + DTS%TDATA_SST(KSX)%TDATE%DAY ,DTS%TDATA_SST(KSX)%TIME, & + ZDT ) + ! + ZALPHA = ZDT / ZSDTJX + ! + ZSST(:)= DTS%XDATA_SST(:,KSX)+(DTS%XDATA_SST(:,KSX+1)-DTS%XDATA_SST(:,KSX))*ZALPHA + END IF END IF PSST(:) = ZSST(:) -- GitLab