Differences between revisions 3 and 4
Revision 3 as of 2014-07-01 07:58:57
Size: 4297
Editor: NicoleThomas
Comment:
Revision 4 as of 2015-12-14 10:33:50
Size: 4266
Editor: NicoleThomas
Comment:
Deletions are marked like this. Additions are marked like this.
Line 32: Line 32:
  * restart_cccc_CLAMS.nc
  * restart_cccc_clamstraj.nc
Line 40: Line 38:
  * restart_cccc_CLAMS.nc

MESSy/CLaMS: Restarts

  • Am Ende des Laufes werden Restart-Files geschrieben
  • Es können zusätzlich Restart-Files in einem vorgegebenen Zeittakt erstellt werden.

    Die entsprechenden Einstellungen werden in messy/nml/DEFAULTS/timer.nml vorgenommen:

        IO_RERUN_EV = 1,'month','first',0,
        NO_CYCLES   = 12           ! restart cycles without break

    => Restart-Files jeden Monat, nach 12 Zyklen (im Beispiel also nach einem Jahr) wird der Lauf unterbrochen und neu gestartet (s. TIMER-User-Manual)

  • Nach einer bestimmten Laufzeit (Anz. CPU-Stunden) kann ein automatischer Restart erfolgen.

    Die Anzahl Rechenstunden wird in qtimer.nml vorgegeben, z. B.:

    &CTRL
    QTIME  =  4,0,0,  ! Queue-Zeitlimit (hh,mm,se); 0,0,0: kein Limit
    QCLOCK = 'wall',  ! 'wall'|'cpu'|'user'|'sys'
    QFRAC  = 0.95     ! Anteil des Zeitlimits, nachdem der Lauf unterbrochen und Restart-Files geschrieben werden

    => Wenn 95% der 4 Stunden Rechenzeit erreicht werden, werden Restart-Files geschrieben und der Lauf an dieser Stelle neu gestartet
    (s. Development cycle 2 of the Modular Earth Submodel System)

  • Folgende Restart-Files werden bei einem CLaMS-Lauf erstellt:
    • restart_cccc_clams.nc:
      • dnparts
      • grid_switch
      • year_uvfirst, month_uvfirst, day_uvfirst, hour_uvfirst
      • chem. Spezies
      • JULSEC
      • LAT, LAT_OLD, LAT_OLD_MIX
      • LON, LON_OLD, LON_OLD_MIX
      • LEV, LEV_OLD
      • TEMP, TEMP_OLD
      • PRESS, PRESS_OLD
    • restart_cccc_CLAMS.nc
    • restart_cccc_winddata.nc
      • LAT, LON, LEV
      • UDT, VDT, WDT, LEVELDT
      • UFUT, VFUT, WFUT, LEVELFUT
      • PREDATA_TEMP, FUTDATA_TEMP
      • PREDATA_PRESS, FUTDATA_PRESS
  • Es werden Restart-Files für jeweils bis zu 5 Zyklen erstellt (da in jeder der entsprechenden SMIL-Routinen messy_write_output aufgerufen wird!) :

    • nach traj
    • nach dissoc
    • nach chem
    • nach mix
    • nach bmix

    => Für jedes dieser Submodule läßt sich der Output (und damit auch das Restartfile) ausschalten (in zugehöriger Namelist: loutput_paketname=.false.)

  • Die Nummer des letzten Laufes steht auf der Datei MSH_NO. Die ab der aktuellen Zeit zu nutzenden Restart-Files sind in das Ausgabeverzeichns gelinkt.

    • Bei einem Neustart wird dort aufgesetzt

    • Soll von Beginn neu gestartet werden, muss die Datei MSH_NO gelöscht werden

    • Soll an einer anderen Stelle wieder aufgesetzt werden, kann man die entsprechenden Einstellungen mit dem folgenden Skript vornehmen:
    •   init_restart -r nnnn -c mmmm [-d dir]

      nnnn: restart number
      mmmm: cycle number

  • Ausgabe auf Restart-Files in MESSy-CLaMS:
    • In einzelnen Submodules (aus SMIL-Routinen) wird messy_write_output (messy_main_control_clams.f90) aufgerufen

    • In messy_write_output wird messy_channel_write_output (messy_main_channel_bi.f90) mit IOMODE_OUT aufgerufen
      => schreibe Channels/Channelobjekte auf Output-File

    • In messy_write_output wird messy_channel_write_output mit IOMODE_RST aufgerufen, falls l_rerun=.true.
      => schreibe Channels/Channelobjekte auf Restart-File (falls Restart-Event gesetzt)

    • program clams (clams_main.f90), innerhalb der Zeitschleife:

      • -> sub. messy_global_start (messy_main_control_clams.f90)

        • -> sub. main_timer_global_start (messy_main_timer_bi.f90)

          • -> setze l_rerun: (true, wenn nächster Rerun-Ausgabezeitschritt oder maximale Rechenzeit erreicht)

  • Einlesen der Restart-Files in MESSy-CLaMS:
    • clams_main

      • -> messy_channel_read_restart (messy_main_channel_bi.f90)

        • -> channel_read_data (messy_main_channel_io.f90)

  • Restart-Files in ECHAM:
    • messy/echam5/bmil/messy_main_control_e5.f90:

      • sub. messy_write_output

        • -> messy_channel_write_output(IOMODE_OUT) (messy_main_channel_bi.f90)

        in echam5/src/stepon.f90

        • -> messy_channel_write_output(IOMODE_RST)

      Z.B. Restart-Files einmal pro Monat:

      • In messy/nml/DEFAULTS/timer.nml:

        • IO_RERUN_EV = 1,'months','first',0,

messy/Restart (last edited 2023-01-31 10:52:36 by NicoleThomas)