Differences between revisions 1 and 4 (spanning 3 versions)
Revision 1 as of 2014-06-13 08:22:05
Size: 3805
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 1: Line 1:
= MESSy/CLaMS =

==
Restarts ==
= MESSy/CLaMS: Restarts =
Line 7: Line 5:
 * Es können zusaetzlich Restart-Files in einem vorgegebenen Zeittakt erstellt werden.  * Es können zusätzlich Restart-Files in einem vorgegebenen Zeittakt erstellt werden.
Line 13: Line 11:
  => Restart-Files jeden Monat, nach 12 Zyklen wird der Lauf unterbrochen und neu gestartet (s. TIMER-User-Manual)  => Restart-Files jeden Monat, nach 12 Zyklen (im Beispiel also nach einem Jahr) wird der Lauf unterbrochen und neu gestartet (s. TIMER-User-Manual)
Line 20: Line 18:
QCLOCK = 'wall', ! 'wall'|'cpu'|'user'|#sys' QCLOCK = 'wall', ! 'wall'|'cpu'|'user'|'sys'
Line 23: Line 21:
   (s. Development cycle 2 of the Modular Earth Submodel System)  => Wenn 95% der 4 Stunden Rechenzeit erreicht werden, werden Restart-Files geschrieben und der Lauf an dieser Stelle neu gestartet <<BR>>
 (s. Development cycle 2 of the Modular Earth Submodel System) <<BR>>
Line 33: Line 32:
  * restart_cccc_CLAMS.nc
  * restart_cccc_clamstraj.nc
Line 41: Line 38:
  * restart_cccc_CLAMS.nc
Line 54: Line 52:
   => FÜr jedes dieser Submodule läßt sich der Output (und damit auch das Restartfile) ausschalten (in Namelist: ''loutput_paketname=.false.'')  => Für jedes dieser Submodule läßt sich der Output (und damit auch das Restartfile) ausschalten (in zugehöriger Namelist: ''loutput_paketname=.false.'')
Line 67: Line 65:
 * Ausgabe auf Restart-Files:  * Ausgabe auf Restart-Files in MESSy-CLaMS:
Line 69: Line 67:
  * In einzelnen Submodules (aus SMIL-Routinen) wird ''messy_write_output'' aufgerufen (''messy_main_control_clams.f90'') <<BR>>
  In ''messy_write_output'' wird ''messy_channel_write_output'' aufgerufen (''messy_main_channel_bi.f90'') mit IOMODE_OUT und mit IOMODE_RST <<BR>>
  => schreibe Channels/Channelobjekte für IOMODE_OUT auf Output-File, für IOMODE_RST auf Restart-File
  * In einzelnen Submodules (aus SMIL-Routinen) wird ''messy_write_output'' (''messy_main_control_clams.f90'') aufgerufen <<BR>>
  * In ''messy_write_output'' wird ''messy_channel_write_output'' (''messy_main_channel_bi.f90'') mit ''IOMODE_OUT'' aufgerufen <<BR>>
  => schreibe Channels/Channelobjekte auf Output-File
  *In ''messy_write_output'' wird ''messy_channel_write_output'' mit ''IOMODE_RST'' aufgerufen, falls ''l_rerun=.true.'' <<BR>>
  => schreibe Channels/Channelobjekte auf Restart-File (falls Restart-Event gesetzt)
  * program clams (clams_main.f90), innerhalb der Zeitschleife: <<BR>>
    -> sub. messy_global_start (messy_main_control_clams.f90) <<BR>>
       -> sub. main_timer_global_start (messy_main_timer_bi.f90) <<BR>>
          -> setze l_rerun: (true, wenn nächster Rerun-Ausgabezeitschritt oder maximale Rechenzeit erreicht)
Line 73: Line 77:
  * 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 event auftritt oder Ende des Laufes)
 * Einlesen der Restart-Files in MESSy-CLaMS:
Line 79: Line 79:
 * Restart-Files einlesen:

clams_main
    -> messy_channel_read_restart (messy_main_channel_bi.f90)
      -> channel_read_data (messy_main_channel_io.f90)
  clams_main <<BR>>
    -> messy_channel_read_restart (messy_main_channel_bi.f90) <<BR>>
      -> channel_read_data (messy_main_channel_io.f90) <<BR>>
Line 87: Line 85:
  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)
  messy/echam5/bmil/messy_main_control_e5.f90: <<BR>>
    sub. messy_write_output <<BR>>
      -> messy_channel_write_output(IOMODE_OUT) (messy_main_channel_bi.f90) <<BR>>
    in echam5/src/stepon.f90 <<BR>>
      -> messy_channel_write_output(IOMODE_RST)  <<BR>>
Line 93: Line 91:
  Z.B. restart-Files einmal pro Monat:
    messy/nml/DEFAULTS/timer.nml:
  Z.B. Restart-Files einmal pro Monat: <<BR>>
    In ''messy/nml/DEFAULTS/timer.nml'': <<BR>>

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)