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
- restart_cccc_CLAMS.nc
- restart_cccc_clamstraj.nc
- JULSEC
- LAT, LAT_OLD, LAT_OLD_MIX
- LON, LON_OLD, LON_OLD_MIX
- LEV, LEV_OLD
- TEMP, TEMP_OLD
- PRESS, PRESS_OLD
- restart_cccc_winddata.nc
- LAT, LON, LEV
- UDT, VDT, WDT, LEVELDT
- UFUT, VFUT, WFUT, LEVELFUT
- PREDATA_TEMP, FUTDATA_TEMP
- PREDATA_PRESS, FUTDATA_PRESS
- restart_cccc_clams.nc:
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-FileIn 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,