fortran66のブログ

fortran について書きます。

【メモ帳】Chapel 2.0 の裏切り 他

Chapel

Cray の chapel 言語ですが、2.0 に向けて index を 1 始まりから 0 始まりに変更しようとしているようです。

• One key Chapel 2.0 focus area related to changing from 1- to 0-based indexing

裏切りです!連盟よさらば!WHO脱退!

最近オンライン集会があったようですが、スライドを斜め見た感じでは色々とわりといい感じになっているようです。Julia 言語対策でしょうか Python との連携の容易化も図っているようです。

chapel-lang.org

1から始める Juliaプログラミング

1から始める Juliaプログラミング

漢詩の時間なぜか第九回へ飛ぶ

NHK 第二放送の漢詩を読むがコロナにちなんで三国志演義の所を途中でやめて第七、八回の代わりに、第一、二回を放送してたのですが、何故か今週は第九回に飛んでしまいました。意味不明です。

金星明け方の空へ向かう 

先々週くらいに金星が高度を落としておりましたが、最近は西空によく見えません。どうも内合が近いらしいので、明け方の方へ移るようです。

少し前に月の地球照が綺麗でした。太陽黒点も一か月連続で出なかったようで、氷河期に向かって頑張って欲しいところです。

WSL-2 へ 

いつの間にか windows が 2020-may 版に update されており、また VMware Workstation 15.5 が出て Hyper-V に対応したようなので、WSL-2 へ移行してみました。Hyper-V 有効化などののち VMware を更新、転換へ。転換はウイルスチェッカーが働いて死ぬほど時間がかかりましたが無事終了できました。

また新たに Ubuntu 20.04 も落としてきて WSL-2 変換しました。Ubuntu 20.04 だと apt install gfortran で gfortran-9 がインストールされ gfortran-10 も普通に apt install でインストールできました。

Fortran Block 内の変数アクセス・コントロール

block 構文でも import 命令が使えるようなので(今のところ Intel Fortran だけで gfortran-10 はまだだめ)、import 文を使って block 内の局所変数と外側の変数のアクセス・コントロールが制御できないか試してみましたが、本来の想定の外なのでイマイチな感じでした。

default では外側の変数はいわば global 変数として自由に読み書きアクセスできます。block 内で宣言した変数は、同名のばあい優先され外側を覆い隠し (shadowing) し、外側の同名の変数にアクセスする手段を失います。

import, none を付けると外側の変数すべてが読み書きアクセス不能になります。一部だけアクセスしたり、別名を付けたりすることも不可能になります。import,all は default 時と同じ読み書きアクセス可能になりますので意味がありません。import, none と import,only : の組み合わせも許されていません。

    program Console1

    implicit none
    real :: x = 1.0
    integer :: i = 2.0
    block 
!        import, none
!        import, only : i 
        real :: x = 3.0
        print *, x
        i = 3
        print *, i
    end block
    print *, x, i

    end program Console1
   3.000000
           3
   1.000000               3

なお ALGOL様のミニ言語における block 構造内での変数へのアクセスコントロールは、1970年代にダイクストラがプログラミング原論で論じています。