fortran66のブログ

fortran について書きます。

【メモ帳】ZMQ helper

stopwatch

github.com

program test
    use m_zmq
    implicit none
    type(c_ptr), pointer :: watch
    integer :: itime

    allocate(watch)
    print *, 'start watch'
    watch = zmq_stopwatch_start()
    call zmq_sleep(1)
    itime = zmq_stopwatch_intermediate(watch)
    print *, 'time=', itime
    call zmq_sleep(2)
    itime = zmq_stopwatch_stop(watch)
    print *, 'time=', itime
    print *, 'stop  watch'
    deallocate(watch)
end program test
 start watch
 time=     1000202
 time=     3001664
 stop  watch

thread

module m_sub
    use, intrinsic :: iso_c_binding
    implicit none
contains
    subroutine test(arg) bind(c, name = 'test')
        implicit none
        type(c_ptr), value :: arg
        integer, pointer :: n
        integer :: i
        call c_f_pointer(arg, n)
        do i = 1, n
            print *, 'thread', i
        end do
    end subroutine test

end module m_sub

program thread
    use :: m_zmq
    use :: m_sub
    implicit none
    type(c_ptr), pointer :: th
    integer, target :: n = 10
    integer:: i
    allocate(th)
    th = zmq_threadstart(c_funloc(test), c_loc(n))
!    call sleep(1)
    do i = 1, n
        print *, 'main  ', i
    end do
    call zmq_threadclose(th)
    deallocate(th)
end program thread
 main             1
 thread           1
 main             2
 thread           2
 main             3
 thread           3
 main             4
 thread           4
 main             5
 thread           5
 main             6
 thread           6
 main             7
 thread           7
 main             8
 thread           8
 main             9
 thread           9
 main            10
 thread          10

Modern Fortran Explained: Incorporating Fortran 2018 (Numerical Mathematics and Scientific Computation)

Modern Fortran Explained: Incorporating Fortran 2018 (Numerical Mathematics and Scientific Computation)

【寝言】特攻野郎 A チーム (A=Abe)

  • B チーム

「B Team」という言葉は、ザリフ氏がジョン・ボルトン(John Bolton)米大統領補佐官(国家安全保障問題担当)やイスラエルベンヤミン・ネタニヤフ(Benjamin Netanyahu)首相、サウジアラビアアラブ首長国連邦といったイラン政府に強硬的な対応をとる人物や国家を指してよく使用する表現だ。

サウジアラビアムハンマド・ビン・サルマン皇太子、アラブ首長国連邦を構成するアブダビ首長国ムハンマド・ビン・ザイド皇太子) www.afpbb.com

ザリフ外務大臣は二月に辞意を表明していました。トランプ大統領による核合意の破棄によって国内保守層からの批判を受けていて、それをかわすためだったようです。ロウハニ大統領から慰留されて、すぐ辞意撤回しました。 fortran66.hatenablog.com

ザリフ氏は、もともとパーレビ国王時代の裕福な家の出で、丁度イラン革命の前後にアメリカの高校・大学・大学院に通っていた国際派で、一般人からの支持は高いようですが、イラン国内の宗教保守層の受けが悪いようです。(頑迷固陋で保守的な団塊サヨクにいじめられる安倍ちゃん麻生ちゃんのようなものでしょうか)

アメリカのイランとの戦争を辞さずとの声明を受けて、先月のトランプ大統領の訪日に先立って、トルクメニスタン・インド・日本・中国を緊急訪問して紛争回避を模索してしていました。 www.afpbb.com

インドは選挙前でそれどころではなく、 中国も対米交渉でそれどころではなく、対応も形式上の外務大臣王毅しか出してよこしませんでしたが、日本はカウンターパートの河野外務大臣の面会の他に、安倍首相も直々に面談していました。

「窮鳥懐に入れば猟師も殺さず」安倍首相の男気外交で、結果を顧みずに調停に踏み出したものと思われます。

ザリフ外相・ロウハニ大統領の世俗派の足を引っ張るために、イランの日本民主党みたいな奴らがタンカー攻撃をしたのでしょう。ザリフ外相派を応援したいものです。

イラン外相、「歴史に刻まれる安倍首相のイラン訪問」 http://parstoday.com/ja/news/iran-i53767

A チーム


「特攻野郎Aチーム」The A team(1983年1月~1987年3月 米TVドラマ) - OP

「 道理の通らぬ世の中に 敢えて挑戦する 頼りになる神出鬼没の特攻野郎Aチーム

助けを借りたいときは、いつでも言ってくれ!」

チームではないが、飛行機だけは勘弁なのデブが北に、 クレイジー・モンキーは南にいるが・・・w 

【メモ帳】ZMQ Fortran OO HTTP server

ZMQ HTTP

実行結果

f:id:fortran66:20190615003803p:plain
http server
  chrome だと3回何かを返してくる。Edge は一回だけ。謎

hp8@HP8:~/f08_zmq$ ./a.out
 ZMQ http server:: http://localhost:8080
 Received:: kEg
 Received:: kEh
 Received:: kEi
 Received:: kEj
 Received:: kEk
 Received:: kEl
 Received:: kEm
module m_test
    implicit none
    character(len = *), parameter :: CRLF = achar(13) // achar(10)
    character(len = *), parameter :: http_response =          &
          'HTTP/1.0 200 OK'                        // CRLF // &
          'Content-Type: text/html'                // CRLF // &
                                                      CRLF // &
          '<!DOCTYPE html>'                        // CRLF // &
          '<html>'                                 // CRLF // &
          '<head>'                                 // CRLF // &
          '<title>Fortran ZMQ http server</title>' // CRLF // &
          '</head>'                                // CRLF // &
          '<body> '                                // CRLF // &
          '<center>'                               // CRLF // &
          '<h1>Fortran ZMQ http server </h1>'      // CRLF // &
          '<p>Reiwa 1-6-14 (2019.6.14) </p>'       // CRLF // &
          '</center>'                              // CRLF // &
          '</body>'                                // CRLF // &
          '</html>'                                // achar(0)
end module m_test


program test
    use, intrinsic :: iso_c_binding
    use f08_zmq
    use m_test
    implicit none
    integer :: id_size, iraw_size, ilen
    character(255), target :: id, raw
    type(context_t), allocatable :: ctx
    type(socket_t) , allocatable :: socket

    allocate(ctx, socket)
    call ctx%new()
    call socket%new(ctx, ZMQ_STREAM)
    call socket%bind('tcp://*:8080')
    print *, 'ZMQ http server:: http://localhost:8080'
    do
        call socket%recv(id, len(id), 0, id_size)
        print *, 'Received::', id(:id_size)
        do
            call socket%recv(raw, len(raw),  0, iraw_size)
            if (iraw_size <= 255) exit
        end do
        call socket%send(id, id_size, ZMQ_SNDMORE, ilen)
        call socket%send(http_response, len(http_response), 0, ilen)
        call socket%send(id, id_size, ZMQ_SNDMORE, ilen)
        call socket%send('', 0, 0, ilen)
    end do
    deallocate(socket)
    deallocate(ctx)
end program test

【メモ帳】ZMQ fortran binding OO化

ZMQ fortran OO 化

Fortran 2008 で行くつもりでしたが、TYPE(*) を使ったので Fortran 2018 かもしれません。

ZMQ ガイドブックのイントロ紹介の通信パターン例が何通りか出来るようになりました。

例:REP-REQ パターン

REQuest - REPly と名称上の類似を取っていて、意味的には対称性が悪いように思います。

他にも PUBlisher - SUBscriber パターンとか。

github.com

function は純粋、そうでないものは subroutine という伝統に従って、subroutine 主体にしてみました。

他の言語の書き換えを考えると、どうかとも思い、迷いましたが・・・

gfortran の final 処理中の print 文は、プログラム終了時は標準出力されないようです。しかし、ストールしないので、解放処理はちゃんとされているのではないかと思います。 finalize されていないようです。

block ... end block でくくって、ブロック内部で context や socket を宣言することで、ブロック脱出時に finalizer を呼び出すことにしました。

[追記] intel fortran だと allocatable にして、順序通りに deallocate しないとストールしていまうぅっ!!allocate - deallocate 方式にしました。

allocatable にして、deallocate してもいいのですが、使う前に allocate する必要も出てくるし~

コンストラクタを書いての代入は、また別の問題があるし~

Modern Fortran Explained: Incorporating Fortran 2018 (Numerical Mathematics and Scientific Computation)

Modern Fortran Explained: Incorporating Fortran 2018 (Numerical Mathematics and Scientific Computation)

oo_req.f90

program req
    use, intrinsic :: iso_c_binding
    use f08_zmq
    implicit none
    integer(c_int) :: ilen
    character(10), target :: buffer, word

    type(context_t), allocatable :: context
    type(socket_t) , allocatable :: requester

    allocate(context, requester)
    call context%new()
    call requester%new(context, ZMQ_REQ)
    call requester%connect('tcp://localhost:5555')
    call requester%send('Hello',  5, 0, ilen)
    call requester%recv(buffer, 10, 0, ilen)
    print *, trim(buffer(:ilen))

    deallocate(requester)
    deallocate(context)
end program req
hp8@HP8:~/f08_zmq/guidebook$ ./oo_req
 World
 zmq_close                 0 Resource temporarily unavailable
 zmq_ctx_destroy           0 Resource temporarily unavailable
hp8@HP8:~/f08_zmq/guidebook$

oo-rep.f90

program rep
    use, intrinsic :: iso_c_binding
    use f08_zmq
    implicit none
    integer :: ilen
    character(10), target :: buffer
    type(context_t), allocatable :: context
    type(socket_t) , allocatable :: responder

    allocate(context, responder)
    call context%new()
    call responder%new(context, ZMQ_REP)
    call responder%bind('tcp://*:5555')
    do
        call responder%recv(buffer, 10, 0, ilen)
        print *, 'Received Hello'
        call sleep(1) ! non-standard POSIX
        call responder%send('World', 5, 0, ilen)
    end do

    deallocate(responder)
    deallocate(context)
end program rep
hp8@HP8:~/f08_zmq/guidebook$ ./oo_rep
 Received Hello
 Received Hello
^C
hp8@HP8:~/f08_zmq/guidebook$

【ニュース】タンカー攻撃

オマーン海でタンカー攻撃

安倍首相の訪問が相当効果があったようで、平和になると困る連中が邪魔をしてきた。

今は只管打坐して中共征伐に世界が専念すべき時!

イランメディア評論記事

視点: 安倍首相のテヘランでの協議、関係拡大を重視 http://parstoday.com/ja/news/iran-i53764

【寝言】アグネス猿芝居 (笑

香港問題

胡散臭い姑娘が出てきましたw 周庭(アグネス・チョウ)さん  ♪丘の上~ ひなげしの花で~ www.huffingtonpost.jp

異人種の若い女出せば、白人中年男性はイチコロですが、日本で今時こんな猿芝居にのせられるのは阿呆だけ。どうせなら美少年とか出してよ。

でも中共を叩くためなら何でもいい。山川草木、牛馬犬猫の類も総動員の総力戦で!ぜひ大阪G20会議では緊急議題として、何か対中共21ヵ条の要求のようないい声明を出して欲しい。

また、台湾・朝鮮交換条約を結び、中共は台湾の国家独立を認める代わり、我が方は中共南北朝鮮を属国として楽浪郡を復活させることを認める。殷の遺民を称して、衛氏朝鮮でもいいが。とりあえずメンツを立ててやるような飲めない提案で馬鹿にする。

現代では島嶼部への万遍なき対艦ミサイル配備での中共封じ込めの方が合理的。朝鮮はむしろ足手まとい。朝鮮安定のためには満州が必要になり、満州は平野続きで厄介。ロシアも絡んでくる。朝鮮放棄の方が合理的。小島か飛び地を確保してレーダーサイトを置ければ十分。

それにつけても、朝日新聞系のハフィントンポストで中共批判を載せて、どうなるかが見もの。それとも、これも弾圧の口実を作る仕込みなのか。記事はすぐ消えるか、検索しても出てこなくなるだろうw 仲間割れしてサヨクの背後関係が露呈すれば有益。

中共政府は、香港騒乱がアメリカの仕込みだと言っているが、それは間違いないw 女・子供・動物をダシにして自分らの欲望を達成しようとするリベラルさん。さすがです!

この手の猿芝居ではミャンマーのアウンサン・スーチー女史の時が一番傑作で面白かった。父親のアウンサン将軍は、わが国と協力して英帝国主義と戦ったが、再度戻ってきた英人は、古代ローマ帝国よろしくアウンサン将軍の娘を英本土に連れてゆき洗脳してMI6のエージェントの噂の絶えない人物と結婚させ、自分らの傀儡に仕立てたはずが米人が絡んで、トチ狂ったw

こんな胡散臭い人物を悲劇のヒロインに仕立てた猿芝居を鵜呑みにする連中の滑稽ぶりがドリフのコントより面白かった。軟禁先に泳いで訪ねていったアメリカ白人中年男性とか。ストーカーもびっくり。なお今はロヒンギャ族を虐殺し、思い通りにならない議会を弾圧する悪魔の独裁者に進化w

英人はイスラム教徒と再婚しそうなダイアナ妃をさっさと葬ったが(噂ではw)、ミャンマーの軍人さんは殺生を好まず英雄アウンサン将軍の愚かな娘を生かしておいて偉いです。さすがは日本の軍歌が替え歌で軍歌になっているだけのことはある。経済封鎖でみすみす中共側に追いやったのが残念。

ノーベル平和賞パキスタン少女とかは、利用するだけ利用して放置しそう。またぞろ英本土に連れてきて、手籠めにしたうえで、手駒にするつもりのようだがw

故ダイアナ妃も、1980年代の常識では、あまりに勉強が出来なさ過ぎてスイスの花嫁学校に送り込まれたおバカ娘で、脳味噌空っぽだから既婚者を愛人としているチャールズ皇太子とくっ付けられた人だったのに、後から異様な持ち上げがあって呆れたw

www.bloomberg.co.jp

ペロシ下院議長(民主)は12日の声明で、「一国二制度」の枠組み内で香港に「十分な自治権」があるかどうか「再評価」する法制を米議会に呼び掛けた。「香港人権・民主主義法」と称したこの法案が数日以内に提出されることを心待ちにしていると述べた。

ミエミエの宣伝戦が始まって、うれしいです。

fortran66.hatenablog.com

宣伝戦

巷の噂では、米政府が反中宣伝のために政治広告代理店を雇ったとのことなので、この先どんどん反中報道が増えてゆくと思いますが、どの位のタイムラグで、どの辺から反中宣伝が萌え出ずるか、そのあたりの観察も楽しみです。

  若い女・子供・動物を利用した、みえみえのニュースが出てくるんじゃないと思います。白人中年男性の庇護的優越感を感じさせるような安っぽい正義が得意技です。(例:湾岸戦争の時の水鳥、トルコ海岸での子供の水死体、米不法移民収容所での母子引きはがし。)

【朗報】ジュエルペット アニメ全話無料

シーズン1(全52話)が配信スタート!

モナーは理解できない最低な趣味の連中だと思いますが、ジュエルペットはとても高尚で高邁な趣味だと思います。

mantan-web.jp

www.youtube.com

www.sanrio.co.jp