Add support for changing the year when starting a branch run

オープン
#243 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
25/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
停滞
領域
backend

調査の方向性

まず、CESM branch-run の設定と restart files がカレンダーをどのように保持するかを追跡し、issue に記載された hybrid-run の経路と比較してください。branch が restart の月日を保持したまま、年を 0001 にリセットするか任意の年を選択でき、9999 から 10000 への移行時の失敗が発生しなければ完了です。まず、カレンダーと 5 桁または 6 桁の年のトレードオフを解決してください。

索引モデルが issue の本文から書いたものです。

説明

A user ran 9982 years of a 3 degree ocean-ice run (the CORE forcing dataset covers 62 years, so this represents 161 cycles). They then tried to branch off the run for a couple of experiments, and ran into an illegal linear times issue when 9999-12-31 tried to roll over to 10000-01-01. (I believe he's using CESM 2.1, which is MCT-based rather than NUOPC-based, so the error message out of a recent beta tag might be different.)

Anyway, setting up a branch run instead of a hybrid is preferable because a hybrid run doesn't start the ocean component until the second coupling interval... so a branch would be a bit-for-bit continuation while a hybrid would change answers. However, he currently has to use a hybrid because the branch forces the user to keep the calendar from the run being continued.

While I could see an issue with creating a branch run B from the January 1st restart files from run A and trying to claim B starts in the middle of the year, a way to either reset the year to 0001 or set it to an arbitrary YYYY value while keeping the month and day constant would be helpful.

At a recent CSEG meeting, we discussed another option for supporting this use case: using 5 or 6 digits for the year instead of the current 4 digits. That seems more complicated than letting users branch from 9999 and reset the calendar back to 0001, and also has the potential for creating other issues (such as https://github.com/ESMCI/cime/issues/2903).

主要言語
Python
スター
495
フォーク
253
平均マージ
34分
マージ済み PR(30日)
4

環境構築

  • Dockerfile・Docker Compose ファイルなし
  • プルリクエストのテンプレートあり
  • コントリビューションガイドなし

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

ESCOMP/CESM のほかの issue

ESCOMP/CESM の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。