Ignore:
Timestamp:
Oct 18, 2015, 8:38:58 AM (9 years ago)
Author:
Ehouarn Millour
Message:

Fix in the computation of the date; the convention is that it corresponds to the time at the end of the current dynamics or physics step (except when in backward Matsuno step where it remains unchanged as it was correctly updated during the forward part of the step).
Note that the relationship between itau and date is a bit tricky as itau is incremented between Matsuno forward and backward steps (and from a leapfrog step to the next) but unchanged from Matsuno bacward step to leapfrog step.
Because of change in date when calling physics, bench results will change with this revision.
EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dyn3dpar/leapfrog_p.F

    r2302 r2375  
    258258   1  CONTINUE ! Matsuno Forward step begins here
    259259
     260c   date: (NB: date remains unchanged for Backward step)
     261c   -----
     262
    260263      jD_cur = jD_ref + day_ini - day_ref +                             &
    261      &          itau/day_step
     264     &          (itau+1)/day_step
    262265      jH_cur = jH_ref + start_time +                                    &
    263      &         mod(itau,day_step)/float(day_step)
     266     &         mod(itau+1,day_step)/float(day_step)
    264267      if (jH_cur > 1.0 ) then
    265268        jD_cur = jD_cur +1.
     
    356359c-----------------------------------------------------------------------
    357360
    358 c   date:
     361c   date: (NB: only leapfrog step requires recomputing date)
    359362c   -----
    360363
     364      IF (leapf) THEN
     365        jD_cur = jD_ref + day_ini - day_ref +
     366     &            (itau+1)/day_step
     367        jH_cur = jH_ref + start_time +
     368     &           mod(itau+1,day_step)/float(day_step)
     369        if (jH_cur > 1.0 ) then
     370          jD_cur = jD_cur +1.
     371          jH_cur = jH_cur -1.
     372        endif
     373      ENDIF
    361374
    362375c   gestion des appels de la physique et des dissipations:
     
    720733
    721734           jD_cur = jD_ref + day_ini - day_ref
    722      $        + itau/day_step
     735     $        + (itau+1)/day_step
    723736
    724737           IF (planet_type .eq."generic") THEN
     
    728741
    729742           jH_cur = jH_ref + start_time +                                &
    730      &              mod(itau,day_step)/float(day_step)
     743     &              mod(itau+1,day_step)/float(day_step)
    731744!         call ju2ymds(jD_cur+jH_cur, an, mois, jour, secondes)
    732745           if (jH_cur > 1.0 ) then
Note: See TracChangeset for help on using the changeset viewer.