Ignore:
Timestamp:
Feb 10, 2025, 8:42:03 AM (11 months ago)
Author:
emillour
Message:

Venus PCM: Corrections to enable 1+1=2

  • store correctly the time_of_day in restart.nc to enable proper restart
  • enforce recomputation of CP in the physics at all time steps (otherwise when without thermosphere the value was only computed at first step and kept unchanged afterwards).

EM

Location:
trunk/LMDZ.COMMON/libf
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/dyn3d/conf_gcm.F90

    r2859 r3615  
    176176!Config  Help = Heure de depart de la simulation
    177177!Config         en jour
    178   starttime = 0
    179   CALL getin('starttime',starttime)
    180      
     178  if (raz_date/=0) then ! should only be used when manually reseting dates
     179    starttime = 0
     180    CALL getin('starttime',starttime)
     181  endif
     182 
    181183  ! Mars: time of start for run in "start.nc" (when there are multiple time
    182184  !       steps stored in the file)
  • trunk/LMDZ.COMMON/libf/dyn3d/gcm.F90

    r3574 r3615  
    315315  IF(dtvr.NE.zdtvr) THEN
    316316     WRITE(lunout,*) &
    317           'WARNING!!! changement de pas de temps',dtvr,'>',zdtvr
     317          'WARNING!!! time step change: ',dtvr,'>',zdtvr
    318318  ENDIF
    319319  dtvr=zdtvr
    320320
    321321  !
    322   ! on remet le calendrier a zero si demande
    323   !
    324   IF (start_time /= starttime) then
    325      WRITE(lunout,*)' GCM: Attention l''heure de depart lue dans le' &
    326      ,' fichier restart ne correspond pas a celle lue dans le run.def'
    327      IF (raz_date == 1) then
    328         WRITE(lunout,*)'Je prends l''heure lue dans run.def'
    329         start_time = starttime
    330      ELSE
    331         call abort_gcm("gcm", "'Je m''arrete'", 1)
    332      ENDIF
     322  ! reset calendar if requested
     323  !
     324  IF (raz_date == 1) then
     325    WRITE(lunout,*)'Reinitializing to start time from run.def'
     326    start_time = starttime
    333327  ENDIF
     328
    334329  IF (raz_date == 1) THEN
    335330     annee_ref = anneeref
  • trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F

    r2544 r3615  
    919919                endif
    920920              else
    921                 CALL dynredem1("restart.nc",start_time,
     921                CALL dynredem1("restart.nc",JH_cur,
    922922     &                         vcov,ucov,teta,q,masse,ps)
    923923              endif
     
    10721072                                  endif
    10731073                else
    1074                   CALL dynredem1("restart.nc",start_time,
     1074                  CALL dynredem1("restart.nc",JH_cur,
    10751075     &                         vcov,ucov,teta,q,masse,ps)
    10761076                endif
  • trunk/LMDZ.COMMON/libf/dyn3d_common/dynredem.F90

    r3510 r3615  
    410410  if (start_file_type=="earth") then
    411411    tab_cntrl(31) = REAL(itau_dyn + itaufin)
     412    tab_cntrl(32) = time
    412413  else
    413414    tab_cntrl(31) = 0
  • trunk/LMDZ.COMMON/libf/dyn3dpar/conf_gcm.F90

    r2135 r3615  
    198198!Config  Help = Heure de depart de la simulation
    199199!Config         en jour
    200   starttime = 0
    201   CALL getin('starttime',starttime)
     200  if (raz_date/=0) then ! should only be used when manually reseting dates
     201    starttime = 0
     202    CALL getin('starttime',starttime)
     203  endif
    202204
    203205  ! Mars: time of start for run in "start.nc" (when there are multiple time
  • trunk/LMDZ.COMMON/libf/dyn3dpar/dynredem_p.F90

    r3510 r3615  
    427427  if (start_file_type=="earth") then
    428428    tab_cntrl(31) = REAL(itau_dyn + itaufin)
     429    tab_cntrl(32) = time
    429430  else
    430431    tab_cntrl(31) = 0
  • trunk/LMDZ.COMMON/libf/dyn3dpar/gcm.F

    r3604 r3615  
    334334        IF(dtvr.NE.zdtvr) THEN
    335335         WRITE(lunout,*)
    336      .    'WARNING!!! changement de pas de temps',dtvr,'>',zdtvr
     336     .    'WARNING!!! time step change: ',dtvr,'>',zdtvr
    337337        ENDIF
    338338      dtvr=zdtvr
    339339
    340340C
    341 C on remet le calendrier a zero si demande
    342 c
    343       IF (start_time /= starttime) then
    344         WRITE(lunout,*)' GCM: Attention l''heure de depart lue dans le'
    345      &,' fichier restart ne correspond pas a celle lue dans le run.def'
    346         IF (raz_date == 1) then
    347           WRITE(lunout,*)'Je prends l''heure lue dans run.def'
    348           start_time = starttime
    349         ELSE
    350           call abort_gcm("gcm", "'Je m''arrete'", 1)
    351         ENDIF
     341C reset calendar if requested
     342c
     343      IF (raz_date == 1) then
     344        WRITE(lunout,*)'Reinitializing to start time from run.def'
     345        start_time = starttime
    352346      ENDIF
     347
    353348      IF (raz_date == 1) THEN
    354349        annee_ref = anneeref
  • trunk/LMDZ.COMMON/libf/dyn3dpar/leapfrog_p.F

    r2549 r3615  
    18311831                endif
    18321832              else
    1833                 CALL dynredem1_p("restart.nc",start_time,
     1833                CALL dynredem1_p("restart.nc",JH_cur,
    18341834     &                           vcov,ucov,teta,q,masse,ps)
    18351835              endif
     
    20542054                endif
    20552055                else
    2056                   CALL dynredem1_p("restart.nc",start_time,
     2056                  CALL dynredem1_p("restart.nc",JH_cur,
    20572057     &                               vcov,ucov,teta,q,masse,ps)
    20582058                endif
Note: See TracChangeset for help on using the changeset viewer.