fortran66のブログ

fortran について書きます。

【メモ帳】intel oneAPI Fortran windows visual studio 20xx F1 help

Intel fortran Version: 2022.3 出る!

LLVM 上のコンパイラ ifx の方で f08 が coarray を含め完全サポートされたようです。f18 にも対応が進み coarray の team, event がサポートされたようです。

ようやく Aurora への GPU 加速装置納品が始まったようで、コンパイラの方も間に合わせなければならんでしょう。

www.intel.com

ifort version 2021.7.0
Fortran language fixes and security updates
ifx version 2022.2.0
The following ifort and Fortran 2018 features are now available for ifx

DLLIMPORT/DLLEXPORT support
Allows creating and using dynamic libraries in the Windows environment (ifort compatibility)
Fortran 2018 coarray features and coarrays with allocatable fields
Coarrays, including Fortran 2018 teams and events, are now fully supported. (F2008 and F2018 support)
Fortran 2018 C interoperability support
All C interoperability features, including assumed rank arrays and C array descriptors, are now supported. (F2018 support)

F1 help 導入法

旧来の Visual Studio 20xx の方では F1 を押すことにより、カーソルのあるキーワードの reference manual 項目を開けますが、手動で install する必要があります。

以下のページを参照し、ダウンロードして解凍したフォルダを所定のディレクトリにコピーします。日本語版もあるので好みに合わせて選べます。外国語訳があるのは日本語だけです。

www.intel.com

visual studio code でも使えるとうれしいのですが。中身は html ファイルなので、できるのかな?

【メモ帳】Backus 記憶違い2

BNF 記法はエミール・ポストにインスピレーションを得たことに関する記憶違い 

以前紹介した Backus の講演で Backus-Naur Form は、その頃聞いた Martin Davis の計算可能性の講義中の Emil Post に関する紹介から得たと言っているのですが記憶違いのようです。

fortran66.hatenablog.com

この講演を論文にしたもので、それ以前の記憶違いを訂正していますが、新しい記憶違いを生み出していたようです。

In a recent course on computability given by Martin Davis, I had been exposed to the work of the logician Emil Post and his notion of a "production."

このように述べていますが、M. J. Lorenzo 著 Abstracting Away the Machine: The History of the FORTRAN Programming Language 23章 p.230 によると Martin Davis は当時まだ計算可能性に関する講義をしていないそうです。Martin Davis の推測では、Emil Post と Noam Chomsky の仕事について Fortran 開発初期メンバーだった Richard Goldberg との議論の中で知ったのではないかということです。

この本は、出版されている資料を元にもっぱら時系列的に Fortran の歴史を追ったもので巻末の resources も充実しています。若干冗漫な気がしましたが、面白いエピソードなどが網羅してあるように思います。話は初期の部分が大部分で、Fortran 95 以降の話は基本的にはありません。

fortran66.hatenablog.com

以前書きましたが C. P. Lecht 著 THE PROGRAMMER'S FORTRAN II AND IV: A Complete Reference に Robert Bemer による序文があって興味深いエピソードを書いているのですが、それは参照していないようでした。

Robert Bemer による序文に、最初期の思い出話が載っている。FORTRAN 以前の言語、FORTRAN 開発グループ初期主要メンバ、IBM 650 用 FORTRANSIT 命名の由来、XTRAN、 他社製 FORTRAN その他。

www.amazon.com

When FORTRAN Was Queen

Jane Pejsa 著の昔の思い出を書いた薄い本で、実の所あまり FORTRAN の話はありません。全体にややまとまりに欠けていますが冷戦期の 1950 年代の米社会の一端が垣間見れます。ベル研でトランジスタが発明された時の騒ぎや、電話交換手などの労働争議に出なくていいように自動交換機などを見せられつつ管理職に昇進させられる話など鮮やかに書かれています。Sperry Rand に買収された頃の Univac 1103A 計算機にまつわる話もあって興味深いのですが、結婚生活の話などが出て来て脱線してゆきます。

When Fortran Was Queen

When Fortran Was Queen

  • 作者:Pejsa, Jane
  • Createspace Independent Publishing Platform
Amazon


www.youtube.com

【悲報】アリョンカビスケット異物混入

業務スーパー「アリョンカビスケット(ココア、オリジナル)」異物混入

しばらくぶりに業務スーパーへ行ったら、安くてうまかったロシア産クッキーの回収のお知らせが出ていました。

2022年7月27日お詫び商品回収に関するお詫びとお知らせ ご迷惑をお掛け致しますが、「アリョンカビスケット(ココア)」「アリョンカビスケット(オリジナル)」の回収にご協力をお願い致します。

もうとうの昔に食っちまったよw 

www.gyomusuper.jp

www.recall.caa.go.jp

なお同じ絵柄のミルクチョコレートの方はイマイチの味だった気が。包装がガバガバで本当に包んでいるだけの糊付けもされていない所がスリリング。

【追悼】安倍晋三元首相国葬儀

国葬

安倍総理国葬儀がしめやかに行われました。菅前首相の弔辞は心を打つものでした。安倍総理の死という世界的な損失に残念な気持ちしか起こりません。

菅前首相が、頭のおかしい朝鮮人による理不尽なテロに倒れた初代朝鮮総督伊藤博文に対する山県有朋の追悼の句を詠んだのは、このテロの本質を突いていると思いました。

韓国の金の亡者の詐欺師と北朝鮮の手先の左翼の醜い争いは、日本の外でやって欲しいものです。

それにつけてもテロを賛美し、自由な言論を否定する左翼集団やマスコミにはつくづくあきれ果てました。

ソ連プラウダ中共の人民日報レベルの嘘報道を垂れ流す新聞テレビや、それを真に受けて信じ切っている貧乏人上がりの学生運動世代の老人たちは、いかにも『戦後』的な怠惰な存在で哀れさみじめさを漂わせています。

安倍晋三元首相の国葬で追悼の辞を述べる菅義偉前首相=27日午後2時50分、東京都千代田区(松本健吾撮影)

www.sankei.com


www.youtube.com

27日に営まれた安倍晋三元首相の国葬国葬儀)で、自民党菅義偉前首相は友人代表として追悼の辞を述べた。菅氏は安倍氏との出会いや第2次安倍政権時代の日々を振り返り、「あらゆる苦楽を共にした(第2次安倍政権での)7年8カ月。私は本当に幸せでした」と述べた。菅氏の追悼の辞の全文は次の通り。   ◇

  7月の8日でした。

  信じられない一報を耳にし、とにかく一命をとりとめてほしい。あなたにお目にかかりたい。同じ空間で同じ空気を共にしたい。その一心で現地に向かい、そしてあなたならではの温かなほほ笑みに、最後の一瞬、接することができました。

  あの運命の日から、80日がたってしまいました。

  あれからも朝は来て、日は暮れていきます。やかましかったセミはいつのまにか鳴りをひそめ、高い空には秋の雲がたなびくようになりました。

  季節は歩みを進めます。あなたという人がいないのに、時は過ぎる。無情でも過ぎていくことに、私はいまだに許せないものを覚えます。

  天はなぜ、よりにもよってこのような悲劇を現実にし、生命(いのち)を失ってはならない人から生命を召し上げてしまったのか。

  口惜しくてなりません。悲しみと怒りを交互に感じながら、今日のこの日を迎えました。

    しかし、安倍総理とお呼びしますが、ご覧になれますか。ここ武道館の周りには花をささげよう、国葬儀に立ちあおうと、たくさんの人が集まってくれています。

  20代、30代の人たちが少なくないようです。明日を担う若者たちが大勢、あなたを慕い、あなたを見送りに来ています。

  総理、あなたは今日よりも明日の方がよくなる日本を創りたい。若い人たちに希望を持たせたいという強い信念を持ち、毎日、毎日、国民に語りかけておられた。そして、日本よ、日本人よ、世界の真ん中で咲き誇れ。これがあなたの口癖でした。

  次の時代を担う人々が未来を明るく思い描いて初めて経済も成長するのだと。いま、あなたを惜しむ若い人たちが、こんなにもたくさんいるということは、歩みをともにした者として、これ以上にうれしいことはありません。報われた思いであります。

  平成12年、日本政府は北朝鮮にコメを送ろうとしておりました。私は当選まだ2回の議員でしたが、「草の根の国民に届くのならよいが、その保証がない限り、軍部を肥やすようなことはすべきでない」と言って、自民党総務会で大反対の意見をぶちましたところ、これが新聞に載りました。

   すると、記事を見たあなたは「会いたい」と電話をかけてくれました。

  「菅さんの言っていることは正しい。北朝鮮が拉致した日本人を取り戻すため、一緒に行動してくれればうれしい」と、そういうお話でした。

  信念と迫力に満ちたあの時のあなたの言葉は、その後の私自身の政治活動の糧となりました。

  そのまっすぐな目、信念を貫こうとする姿勢に打たれ、私は直感いたしました。この人こそはいつか総理になる人、ならねばならない人なのだと、確信をしたのであります。

  私が生涯誇りとするのは、この確信において、一度として揺らがなかったことであります。総理、あなたは一度、持病が悪くなって、総理の座をしりぞきました。そのことを負い目に思って、二度目の自民党総裁選出馬をずいぶんと迷っておられました。

  最後には2人で銀座の焼鳥屋に行き、私は一生懸命、あなたを口説きました。それが使命だと思ったからです。3時間後にはようやく、首をタテに振ってくれた。私はこのことを「菅義偉、生涯最大の達成」として、いつまでも誇らしく思うであろうと思います。 

  総理が官邸にいるときは欠かさず、一日に一度、気兼ねのない話をしました。今でも、ふと一人になると、そうした日々の様子がまざまざとと蘇ってまいります。

  TPP(環太平洋戦略的経済連携協定)交渉に入るのを、私はできれば時間をかけたほうがいいという立場でした。総理は「タイミングを失してはならない。やるなら早いほうがいい」という意見で、どちらが正しかったかは、もはや歴史が証明済みです。 

  一歩後退すると勢いを失う。前進してこそ活路が開けると思っていたのでしょう。総理、あなたの判断はいつも正しかった。 

  安倍総理。日本国はあなたという歴史上かけがえのないリーダーをいただいたからこそ、特定秘密保護法、一連の平和安全法制、改正組織犯罪処罰法など難しかった法案を、すべて成立をさせることができました。どの一つを欠いても、わが国の安全は確固たるものにはならない。あなたの信念、そして決意に、私たちはとこしえの感謝をささげるものであります。 

  国難を突破し、強い日本を創る。そして真の平和国家日本を希求し、日本をあらゆる分野で世界に貢献できる国にする。そんな覚悟と決断の毎日が続く中にあっても、総理、あなたは常に笑顔を絶やさなかった。いつもまわりの人たちに心を配り、優しさを降り注いだ。 

  総理大臣官邸で共に過ごし、あらゆる苦楽を共にした7年8カ月。私は本当に幸せでした。私だけではなく、すべてのスタッフたちがあの厳しい日々の中で、明るく生き生きと働いていたことを思い起こします。何度でも申し上げます。安倍総理、あなたはわが国、日本にとっての真のリーダーでした。 

  衆議院第1会館1212号室の、あなたの机には読みかけの本が1冊、ありました。岡義武著『山県有朋』です。 

  ここまで読んだという最後のページは、端を折ってありました。そしてそのページにはマーカーペンで、線を引いたところがありました。しるしをつけた箇所にあったのは、いみじくも山県有朋が長年の盟友、伊藤博文に先立たれ、故人をしのんで詠んだ歌でありました。 

  総理、今、この歌くらい、私自身の思いをよく詠んだ一首はありません。 

  「かたりあひて 尽しゝ人は 先立ちぬ 今より後の世をいかにせむ」 

  「かたりあひて 尽しゝ人は 先立ちぬ 今より後の世をいかにせむ」 

  深い悲しみと寂しさを覚えます。総理、本当にありがとうございました。どうか安らかに、お休みください。 

 
  令和4年9月27日 前内閣総理大臣 菅義偉

【ネタ】憂国政治家メローニちゃん

ジョルジア #メロニチャン 知らぬ間にサフィアの恋の王者に

2018 年の記事ですが、先日の選挙で勝利をおさめイタリア首相に最有力視されているジョルジア・メローニ女史のイメージ戦略にオタ活が効いているようです。記事後半は似顔絵に使ったラブライブのキャラがガチゆりキャラなので、主張している伝統的な家族の価値に矛盾すると難癖付けられています。

ジョルジア・メローニは、愛国者や主権主義者の心に届く正しい戦略は、日本のマンガやアニメだと、以前から決めていた。以前、フラテッリ・デ・イタリアのリーダーを「メローニちゃん」と名付けた日本風の風刺画を作った人がいて、それがすぐにメローニちゃんのプロパガンダ有機的に作用したことが、この選択を決定づけた。




「メロニチャン」の誕生と活躍

このアイデアは、政治家がメローニの一人であっても共感を呼ぶという古典的なもので、かなり成功した。n メローニのコミュニケーション・スタッフは、ページのエンゲージメントを高めるために、メローニの「マンガ」風刺画を使い続けることが正しいことだと考えた人がいたにちがいない。それは一方で、政治的なコミュニケーションの絶望的なレベルについて多くを語っています。




そのため、移民排斥とソロス排斥の投稿の間に、時々、メロニチャンがFacebookに現れ、怒りを和らげているのである。いつも同じではなく、必ず新しい引き出しがある。ジョルジアはメマー党を設立する計画を温めているのではないか、と考える人は少なからずいる。しかし、その問いに答えるには、あまりにも多くの皮肉が重なっている。

『それは一方で、政治的なコミュニケーションの絶望的なレベルについて多くを語っています。』

本ブログもソロスの悪口を言い、移民は移民を送り出している国に対する搾取であると否定しているので、思わず苦笑い。

メマー党とはミームの誤訳のようです。

www.nextquotidiano.it

ネタ元 mobile.twitter.com

別記事

www.drcommodore.it

【メモ帳】intel DevCloud での Fortran kernel 利用

秋分 23 日

Equinox を迎える喜び。国民の休日になっているのももっとも。χ を崇める。

DevCloud

intel の 無料試用 cloud server で fortran が利用できますが、python 用の kernel しか用意されていません。

昔、MS Azure 用に試みた手法で fortran 用の kernel が動いたのでメモっておきます。

縦軸は絶対値を取った |zeta| の誤りですw なお Pillow や sympy 等はインストールされていないので、コンソールから pip install *** する必要があります。

    program main
        use, intrinsic :: iso_fortran_env
        implicit none
        integer, parameter :: kd = real128
        integer :: i
        do i = 0, 1000
            write(10, *) i / 100.0, abs(zeta(cmplx(0.5_kd, i / 10.0_kd, kd)))
        end do

    contains

        complex(kd) function zeta(s) result(res)
            import, only : kd
            complex(kd), intent(in) :: s
            integer, parameter :: mmax = 100
            integer :: m, j
            complex(kd) :: c, d, e, w(mmax)
            real(kd), allocatable :: bino(:)
            bino = [1.0_kd]
            c = 1.0_kd / (1 - 2.0_kd**(1-s))
            d = (0.0_kd, 0.0_kd)
            do m = 1, mmax
                e = (0.0_kd, 0.0_kd)
                do j = 1, m
                    e = e - (-1)**j * bino(j) * j**(-s)
                end do
                d = d + e / 2.0_kd**m
                bino = [bino, 0.0_kd] + [0.0_kd, bino] ! binomial coefficients by Pascal's triangle
            end do
            res = c * d
        end function zeta

    end program main
%fig:
x, y1 = np.loadtxt('fort.10', unpack = True)
plt.grid(which='both')
plt.plot(x, y1)
plt.title('zeta function on 0.5 + x i', fontsize = 25)
plt.ylabel('|zeta|', fontsize = 20)

fortran66.hatenablog.com

coarray が簡単に試せるのがいいかと思います。gfortran しかない場合 OpenCoarray の準備が少しめんどくさい。

%fcflags: -coarray
    program Console3
        implicit none
        integer, parameter :: n = 10**6
        real :: x(n), y(n)
        
        integer :: me, np, ipi
        me = this_image()
        np = num_images()
        
        call random_init(.false., .true.) 
        call random_number(x)
        call random_number(y)
        ipi = count(x**2 + y**2 < 1.0)
        
        call co_sum(ipi, 1)
        if (me == 1) then 
            print *, 'number of images =', np, ' number of trials for Monte Carlo', n * np 
            print *, 4.0 * ipi / real(n * np) , 'error estimaton', 1.0 / (n * np)**0.5
        end if    
    end program Console3

fortran66.hatenablog.com

gfortran 用 kernel

github.com

from Terminal

git clone https://github.com/f66blog/azure

jupyter kernelspec install ~/azure/jupyter-gfort-kernel/gfort_spec --user

from Python3 cell

import sys

!{sys.executable} -m pip install -e ~/azure/jupyter-gfort-kernel --user

from terminal : edit kernel.json

which python

/blob/development-tools/versions/oneapi/2022.2/oneapi/intelpython/latest/bin/python

vi .local/share/jupyter/kernels/gfort_spec/kernel.json

"argv": [

" /blob/development-tools/versions/oneapi/2022.2/oneapi/intelpython/latest/bin/python",

intel fortran 用 kernel

github.com

from Terminal

git clone https://github.com/f66blog/jupyter-ifort-kernel.git

jupyter kernelspec install ~/jupyter-ifort-kernel/ifort_spec --user

from Python3 cell

import sys

!{sys.executable} -m pip install -e ../azure/jupyter-ifort-kernel --user

from terminal : edit kernel.json

which python

/blob/development-tools/versions/oneapi/2022.2/oneapi/intelpython/latest/bin/python

vi .local/share/jupyter/kernels/gfort_spec/kernel.json

"argv": [

" /blob/development-tools/versions/oneapi/2022.2/oneapi/intelpython/latest/bin/python",