diff --git a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 index ec999a10b96ea86a8a5daa4b24cd1419bdbd3ffd..41fa69660654f7913ef4ebdfc059ed2b928e5ed7 100644 --- a/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 +++ b/src/LIB/SURCOUCHE/src/mode_io_write_nc4.f90 @@ -1135,7 +1135,7 @@ TZFIELD%CUNITS = TRIM(YUNITS) call IO_Field_create_nc4( tpfile, tzfield, kvarid = ivarid, hcalendar = 'standard' ) ! ! Compute the temporal distance from reference -CALL DATETIME_DISTANCE(TZREF,TPDATA,ZDELTATIME) +ZDELTATIME = TPDATA - TZREF ! Write the data istatus = NF90_PUT_VAR(TPFILE%NNCID, IVARID, ZDELTATIME) @@ -1194,7 +1194,7 @@ call IO_Field_create_nc4( tpfile, tzfield, kshape = Shape( tpdata), kvarid = iva ALLOCATE( ZDELTATIME( SIZE( TPDATA ) ) ) DO JI = 1, SIZE( TPDATA ) - CALL DATETIME_DISTANCE( TZREF, TPDATA(JI ), ZDELTATIME(JI) ) + ZDELTATIME(JI) = TPDATA(JI) - TZREF END DO ! Write the data @@ -2541,7 +2541,7 @@ subroutine Write_time_coord( tdim, hlongname, tpdates, tpdates_bound ) use modd_time_n, only: tdtmod use modd_type_date, only: date_time - use mode_datetime, only: Datetime_distance + use mode_datetime use mode_field, only: Find_field_id_from_mnhname type(tdimnc), intent(in) :: tdim @@ -2611,7 +2611,7 @@ subroutine Write_time_coord( tdim, hlongname, tpdates, tpdates_bound ) ! Compute the temporal distance from reference Allocate( zdeltatimes_1d(Size( tpdates )) ) do jt = 1, Size( tpdates ) - call Datetime_distance( tzref, tpdates(jt), zdeltatimes_1d(jt) ) + zdeltatimes_1d(jt) = tpdates(jt) - tzref end do ! Write the data @@ -2636,10 +2636,7 @@ subroutine Write_time_coord( tdim, hlongname, tpdates, tpdates_bound ) ! Compute the temporal distance from reference Allocate( zdeltatimes_2d(2, Size( tpdates_bound, 2 )) ) - do jt = 1, Size( tpdates_bound, 2 ) - call Datetime_distance( tzref, tpdates_bound(1, jt), zdeltatimes_2d(1, jt) ) - call Datetime_distance( tzref, tpdates_bound(2, jt), zdeltatimes_2d(2, jt) ) - end do + zdeltatimes_2d(:,:) = tpdates_bound(:,:) - tzref ! Write the data istatus = NF90_PUT_VAR( incid, ivarid, zdeltatimes_2d(:,:) ) diff --git a/src/MNH/adv_forcingn.f90 b/src/MNH/adv_forcingn.f90 index 4f47a066c3a41574f3a78b5fee0d8693ae7a8326..9be79181bbd54031878ed5272d45de3bb8cfaeed 100644 --- a/src/MNH/adv_forcingn.f90 +++ b/src/MNH/adv_forcingn.f90 @@ -197,10 +197,10 @@ ELSE JXP= JSX_ADV +1 WRITE(UNIT=ILUOUT0,FMT='(" THE ADV FORCING FIELDS ARE INTERPOLATED NOW" ,& & " BETWEEN SOUNDING NUMBER ",I2," AND SOUNDING NUMBER ",I2)') JSX_ADV,JXP - CALL DATETIME_DISTANCE(TDTADVFRC(JSX_ADV),TDTADVFRC(JXP),ZSDTJX) + ZSDTJX = TDTADVFRC(JXP) - TDTADVFRC(JSX_ADV) END IF ! - CALL DATETIME_DISTANCE(TDTADVFRC(JSX_ADV),TPDTCUR,ZDT) + ZDT = TPDTCUR - TDTADVFRC(JSX_ADV) ! ZALPHA = ZDT / ZSDTJX ! diff --git a/src/MNH/forcing.f90 b/src/MNH/forcing.f90 index 786319656520529e294fae191e27f54da98ed0de..f3df15c99284e5cc9cb65fe07a1ece517a334a03 100644 --- a/src/MNH/forcing.f90 +++ b/src/MNH/forcing.f90 @@ -456,10 +456,10 @@ ELSE JXP= JSX +1 WRITE(UNIT=ILUOUT0,FMT='(" THE FORCING FIELDS ARE INTERPOLATED NOW" ,& & " BETWEEN SOUNDING NUMBER ",I2," AND SOUNDING NUMBER ",I2)') JSX,JXP - CALL DATETIME_DISTANCE(TDTFRC(JSX),TDTFRC(JXP),ZSDTJX) + ZSDTJX = TDTFRC(JXP) - TDTFRC(JSX) END IF ! - CALL DATETIME_DISTANCE(TDTFRC(JSX),TPDTCUR,ZDT) + ZDT = TPDTCUR - TDTFRC(JSX) ! ZALPHA = ZDT / ZSDTJX ! diff --git a/src/MNH/ground_paramn.f90 b/src/MNH/ground_paramn.f90 index a9f0a1b4cd0330376c1dc5ee7b00531aefeda52f..fd63b0efae399392d4867f25a39a282aa47b988e 100644 --- a/src/MNH/ground_paramn.f90 +++ b/src/MNH/ground_paramn.f90 @@ -764,7 +764,7 @@ CALL RESHAPE_SURF(IDIM1D) ! ! call to have the cumulated time since beginning of simulation ! -CALL DATETIME_DISTANCE(TDTSEG,TDTCUR,ZTIMEC) +ZTIMEC = TDTCUR - TDTSEG #ifdef CPLOASIS IF (LOASIS) THEN diff --git a/src/MNH/les_ini_timestepn.f90 b/src/MNH/les_ini_timestepn.f90 index 98c5cd306456bf19b2839c9ee608448392c07078..27528b73d6166b2e8672a5e273f2352c1fdc8a2e 100644 --- a/src/MNH/les_ini_timestepn.f90 +++ b/src/MNH/les_ini_timestepn.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2002-2021 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2002-2024 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -69,7 +69,7 @@ USE MODD_TIME USE MODD_CONF USE MODD_LES_BUDGET ! -use mode_datetime, only: Datetime_distance +use mode_datetime USE MODE_ll USE MODE_MODELN_HANDLER ! @@ -146,7 +146,7 @@ NLES_TCOUNT = NLES_TCOUNT + 1 NLES_CURRENT_TCOUNT = NLES_TCOUNT ! tles_dates(nles_tcount) = tdtcur -call Datetime_distance( tdtseg, tdtcur, xles_times(nles_tcount) ) +xles_times(nles_tcount) = tdtcur - tdtseg ! !* forward-in-time time-step ! diff --git a/src/MNH/mnh2lpdm_ini.f90 b/src/MNH/mnh2lpdm_ini.f90 index fa9b5f282212ea78f0fef1730930e40a07ec29c1..33c27c7cba718b4e54304d7f8d17cdf8f69064ac 100644 --- a/src/MNH/mnh2lpdm_ini.f90 +++ b/src/MNH/mnh2lpdm_ini.f90 @@ -114,8 +114,8 @@ CALL IO_Field_read(TPFILE1,'DTEXP',TZDTEXP1) CALL IO_Field_read(TPFILE1,'DTCUR',TZDTCUR1) CALL IO_Field_read(TPFILE2,'DTCUR',TZDTCUR2) ! -CALL DATETIME_DISTANCE(TZDTEXP1,TZDTCUR1,ZECHEANCE1) -CALL DATETIME_DISTANCE(TZDTEXP1,TZDTCUR2,ZECHEANCE2) +ZECHEANCE1 = TZDTCUR1 - TZDTEXP1 +ZECHEANCE2 = TZDTCUR2 - TZDTEXP1 ! IHHMDL=INT(TZDTEXP1%xtime/3600) IMNMDL=INT((TZDTEXP1%xtime-IHHMDL*3600)/60) diff --git a/src/MNH/paspol.f90 b/src/MNH/paspol.f90 index 05ad22fd5d959b712927d25a307d6666aac493f0..96896087acadbe5d18a5e6e51318606f1b4718f6 100644 --- a/src/MNH/paspol.f90 +++ b/src/MNH/paspol.f90 @@ -332,9 +332,9 @@ IF (GPPFIRSTCALL) THEN TZDATE2%nyear=I2YY;TZDATE2%nmonth=I2MM;TZDATE2%nday=I2DD;TZDATE2%xtime=Z2SEC TZDATE3%nyear=I3YY;TZDATE3%nmonth=I3MM;TZDATE3%nday=I3DD;TZDATE3%xtime=Z3SEC TZDATE4%nyear=I4YY;TZDATE4%nmonth=I4MM;TZDATE4%nday=I4DD;TZDATE4%xtime=Z4SEC - CALL DATETIME_DISTANCE(TZDATE1,TZDATE2,ZT2) - CALL DATETIME_DISTANCE(TZDATE1,TZDATE3,ZT3) - CALL DATETIME_DISTANCE(TZDATE1,TZDATE4,ZT4) + ZT2 = TZDATE2 - TZDATE1 + ZT3 = TZDATE3 - TZDATE1 + ZT4 = TZDATE4 - TZDATE1 ! ! On met de cote le debut du rejet sous forme pratique ainsi ! que la chronologie relative. @@ -474,7 +474,7 @@ DO JSV=1,NSV_PP !* 2.2 Distance temporelle DEPUIS le debut de rejet. ! TZDATE%nyear=IDEBYY(JSV);TZDATE%nmonth=IDEBMM(JSV);TZDATE%nday=IDEBDD(JSV);TZDATE%xtime=ZDEBSS(JSV) - CALL DATETIME_DISTANCE(TZDATE,TDTCUR,ZDEPUIS) + ZDEPUIS = TDTCUR - TZDATE ! ! !* 2.3 Si la source emet. diff --git a/src/MNH/phys_paramn.f90 b/src/MNH/phys_paramn.f90 index ec037233cbe8673a3ba5815ece7f3839400a3e0b..d5db913bbe85d0ce6a6614966280b963334c91f7 100644 --- a/src/MNH/phys_paramn.f90 +++ b/src/MNH/phys_paramn.f90 @@ -648,7 +648,7 @@ IF (CRAD /='NONE') THEN ! test to see if the partial radiations for cloudy must be called ! IF (CRAD =='ECMW' .OR. CRAD =='ECRA') THEN - CALL DATETIME_DISTANCE(TDTRAD_CLONLY,TDTCUR,ZTEMP_DIST) + ZTEMP_DIST = TDTCUR - TDTRAD_CLONLY IF( MOD(NINT(ZTEMP_DIST/XTSTEP),NINT(XDTRAD_CLONLY/XTSTEP))==0 ) THEN TDTRAD_CLONLY = TDTCUR GRAD = .TRUE. @@ -658,7 +658,7 @@ IF (CRAD /='NONE') THEN ! ! test to see if the full radiations must be called ! - CALL DATETIME_DISTANCE(TDTCUR,TDTRAD_FULL,ZTEMP_DIST) + ZTEMP_DIST = TDTRAD_FULL - TDTCUR IF( MOD(NINT(ZTEMP_DIST/XTSTEP),NINT(XDTRAD/XTSTEP))==0 ) THEN TDTRAD_FULL = TDTCUR GRAD = .TRUE. @@ -946,7 +946,7 @@ IF( CDCONV == 'KAFR' .OR. CSCONV == 'KAFR' ) THEN ! GDCONV = .FALSE. ! - CALL DATETIME_DISTANCE(TDTDCONV,TDTCUR,ZTEMP_DIST) + ZTEMP_DIST = TDTCUR - TDTCUR IF( MOD(NINT(ZTEMP_DIST/XTSTEP),NINT(XDTCONV/XTSTEP))==0 ) THEN TDTDCONV = TDTCUR GDCONV = .TRUE. diff --git a/src/MNH/rel_forcingn.f90 b/src/MNH/rel_forcingn.f90 index 88dcf383d5fe82cb419b2de7372bcc2b83a479f5..e901600ffd35e1d98ff81f137e6787d9de4b71b4 100644 --- a/src/MNH/rel_forcingn.f90 +++ b/src/MNH/rel_forcingn.f90 @@ -206,10 +206,10 @@ ELSE ILUOUT0 = TLUOUT0%NLU WRITE(UNIT=ILUOUT0,FMT='(" THE REL FORCING FIELDS ARE INTERPOLATED NOW" ,& & " BETWEEN SOUNDING NUMBER ",I2," AND SOUNDING NUMBER ",I2)') JSX_REL,JXP - CALL DATETIME_DISTANCE(TDTRELFRC(JSX_REL),TDTRELFRC(JXP),ZSDTJX) + ZSDTJX = TDTRELFRC(JXP) - TDTRELFRC(JSX_REL) END IF ! - CALL DATETIME_DISTANCE(TDTRELFRC(JSX_REL),TPDTCUR,ZDT) + ZDT = TPDTCUR - TDTRELFRC(JSX_REL) ! ZALPHA = ZDT / ZSDTJX ! diff --git a/src/MNH/setlb_lg.f90 b/src/MNH/setlb_lg.f90 index bbdf91a69606292a347431757efb7364bc078968..5a02e8bd39f133c336055df45ab94c00b718eda2 100644 --- a/src/MNH/setlb_lg.f90 +++ b/src/MNH/setlb_lg.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 2001-2022 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 2001-2024 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -77,7 +77,7 @@ REAL :: ZTEMP_DIST ! time from the begining of simulation CALL GET_DIM_EXT_ll('B',IIU,IJU) IKU=SIZE(XZZ,3) ! -CALL DATETIME_DISTANCE(TDTEXP,TDTCUR,ZTEMP_DIST) +ZTEMP_DIST = TDTCUR - TDTEXP ! IF ( CLBCX(1) /= "CYCL" .AND. LWEST_ll()) THEN XLBXSVM(1,1:IJU,1:IKU,NSV_LGBEG) = XXHATM(1) - ZTEMP_DIST * XLGSPEED diff --git a/src/MNH/write_budget.f90 b/src/MNH/write_budget.f90 index 01965dac9a64d8b875c7528347f723ccb1a7e6e9..d6d3247320da94b10b9e08f1899df68abd25f798 100644 --- a/src/MNH/write_budget.f90 +++ b/src/MNH/write_budget.f90 @@ -111,7 +111,7 @@ subroutine Write_budget( tpdiafile, tpdtcur, ptstep, ksv ) use modd_parameters, only: NCOMMENTLGTMAX, NMNHNAMELGTMAX use modd_type_date, only: date_time - use mode_datetime, only: datetime_distance + use mode_datetime use mode_io_field_write, only: IO_Field_create, IO_Field_write #ifdef MNH_IOLFI use mode_menu_diachro, only: Menu_diachro @@ -201,9 +201,7 @@ subroutine Write_budget( tpdiafile, tpdtcur, ptstep, ksv ) ! !Compute time at the middle of the temporally-averaged budget timestep !This time is computed from the beginning of the experiment - CALL DATETIME_DISTANCE(TDTEXP,TPDTCUR,ZWORKTEMP(1)) - ! - ZWORKTEMP(1)=ZWORKTEMP(1)+(1.-NBUSTEP*0.5)*PTSTEP + ZWORKTEMP(1) = TPDTCUR - TDTEXP + (1.-NBUSTEP*0.5) * PTSTEP ! tzdates(1)%nyear = tdtexp%nyear tzdates(1)%nmonth = tdtexp%nmonth @@ -222,9 +220,7 @@ subroutine Write_budget( tpdiafile, tpdtcur, ptstep, ksv ) !Note: tzdates are used only in LFI files; for netCDF files, dates are written in the coordinates allocate( tzdates(nbusubwrite) ) ! - CALL DATETIME_DISTANCE(TDTEXP,TPDTCUR,ZWORKTEMP(nbusubwrite)) - ! - ZWORKTEMP(nbusubwrite)=ZWORKTEMP(nbusubwrite)+(1.-NBUSTEP*0.5)*PTSTEP + ZWORKTEMP(nbusubwrite) = TPDTCUR - TDTEXP + (1.-NBUSTEP*0.5) * PTSTEP ! tzdates(nbusubwrite)%nyear = tdtexp%nyear tzdates(nbusubwrite)%nmonth = tdtexp%nmonth diff --git a/src/MNH/write_diachro.f90 b/src/MNH/write_diachro.f90 index 439247b61a45512b19b62e17e3d5b8916f7bd2b4..6f186a2463124ad35a3bb7be749a7f775d6ed90d 100644 --- a/src/MNH/write_diachro.f90 +++ b/src/MNH/write_diachro.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1996-2023 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1996-2024 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -173,7 +173,7 @@ use modd_time, only: tdtexp, tdtseg use modd_time_n, only: tdtmod use modd_type_date, only: date_time -use mode_datetime, only: Datetime_distance +use mode_datetime use mode_io_field_write, only: IO_Field_write, IO_Field_write_box use mode_menu_diachro, only: Menu_diachro use mode_tools_ll, only: Get_globaldims_ll @@ -644,9 +644,7 @@ end if !Reconstitute old diachro format allocate( ztimes( size( tpdates ), 1 ) ) -do ji=1,size(tpdates) - call Datetime_distance( tdtexp, tpdates(ji ), ztimes(ji, 1 ) ) -end do +ztimes(:, 1) = tpdates(:) - tdtexp call IO_Field_write( tzfile, tzfield, ztimes ) diff --git a/src/MNH/write_ts1d.f90 b/src/MNH/write_ts1d.f90 index f077da063ee88d5ac09c2cab1fbb89c8085b5113..7a62b3a9cb8713e249ea502ad4e248dcf39a3cc4 100644 --- a/src/MNH/write_ts1d.f90 +++ b/src/MNH/write_ts1d.f90 @@ -1,4 +1,4 @@ -!MNH_LIC Copyright 1995-2022 CNRS, Meteo-France and Universite Paul Sabatier +!MNH_LIC Copyright 1995-2024 CNRS, Meteo-France and Universite Paul Sabatier !MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt !MNH_LIC for details. version 1. @@ -160,8 +160,7 @@ CHARACTER(len=5) :: YCTIME ! current time TZFILE => NULL() NBPROF = 0 -CALL DATETIME_DISTANCE(TDTEXP,TDTCUR,ZTIME) -ZTIME = ZTIME + TDTEXP%xtime +ZTIME = TDTCUR - TDTEXP + TDTEXP%xtime CALL GET_DIM_EXT_ll ('B',IIU,IJU) IF ((CPROGRAM =='DIAG ').AND.(LCHEMDIAG)) THEN