mg.F subroutine mg_total(total,a,imax,jmax,kmax,lmax)l = 2l = 1
(1) Solve Sn via Poisson eq. (2) U = U + Δt Sn (3) U = U - Δt ∇・Fn+1/2 (4) update of finer levels with a boundary condition of 1st order in time (5) Solve Sn+1 via Poisson eq. (6) U = U + Δt/2 (Sn+1 - Sn)とすれば良いのかもね。 問題の根元は、流体が双曲型で、自己重力が楕円型の方程式なのが悪い。
渋滞の進行方向がいつも負なのは、ガリレイ変換に対して非対称なので、 へんだなー、と思っていたのだが、Optimal Velocity 自体が 絶対速度として、運動方程式に陽に現れているが原因だということがわかった。 Optimal Velocity のカーブも、観測値に基づいているので、 いかんともし難いのだな。
仮に、車間距離が詰まっても、前方車両を「信用して」止ってしまうまで には車速を落さない と仮定すると、渋滞パターンが正の速度をもつことがわかった 。 現実には、あり得ないけど。他人は信用するに値しないからね。
% grep guide httpd-access.log | sed | awk '{ print $1 }' | sort -u | wc -l 26
module hoge private integer :: Num contains subroutine sub_A integer :: n, m do m = 1, 10 do n = 1, 10 Num = n call sub_B enddo enddo end subroutine sub_A subroutine sub_B n = Num print *, n ! 正しい値が表示されない end subroutine sub_B end module hoge結局、コンパイラがへぼいせいで、苦労しただけだった。 自分のコーディングには一片の曇りもない。サスガだな!>オレ
Bool_fixed_current(Lmin:Lmax) = .FALSE. Bool_fixed_1order(Lmin:Lmax) = .FALSE. Bool_fixed_2order(Lmin:Lmax) = .FALSE. Bool_fixed_all(Lmin:Lmax) = Bool_fixed_current .and. Bool_fixed_1order .and. Bool_fixed_2order
This school will be held at the ski resort of Villard-de-Lans ....キラリーン。
| sed -e 's/TOP/トップ/; s/」/!」/'
call mpi_isend( a, size(a), ...) call mpi_irecv( a, size(a), ...)ではなく、
call mpi_isend( a(lbound(a,1), lbound(a,2), ...), size(a), ...) call mpi_irecv( a(lbound(a,1), lbound(a,2), ...), size(a), ...)と書かねばならないようだ。つまり、Fortran77 風に。 仕様なんだろうか?このへん、曖昧だなぁ。
Cells(i,j).interior.color = RGB(r, g, b)なのだが、2563色がでない。 同時16色の index color しか選択できない感じがする。
/multi:ssh:matsmttm@gw.cc.nao.ac.jp:ssh:matsmttm@r01:仕様がコロコロ変りすぎ。
N{I,J,K}=8, NG{I,J,K}_BASE=8, a=0.01 sixth = 1.d0/6.d0 errormax_fmg = 1.d-5 errormax_vmg = 1.d-1 errormax_mg = 1.d-2 fmg error 0.579806337625857 * fmg error 1.724981196772789E-003 * fmg error 4.725105764014251E-006 * N{I,J,K}=4 fmg error 2.375418823179954E-002 * fmg error 1.782812425000185E-005 * fmg error 5.458736695377713E-008 *
N{I,J,K}=4, NG{I,J,K}_BASE=8, a=0.01 sixth = 1.d0/5.d0 fmg error 0.361815811286382 * fmg error 4.379284874477826E-003 * fmg error 5.096384567843522E-005 * N{I,J,K}=8 fmg error 3.57397254472199 * fmg error 0.160445612382996 * fmg error 7.023155029396022E-003 * fmg error 3.043774266867373E-004 * fmg error 1.314914082453845E-005 *
program main type t integer :: a = 1, b = 2 end type t type(t),dimension(:),allocatable :: list allocate( list(5) ) list(:)%a = 10 list(:)%b = 20 print *, list(:) deallocate( list ) allocate( list(3) ) print *, list(:) end program main
subroutine hoge() type type_buflist integer,dimension(:),pointer :: pkg => null() ! buffer of array integer :: position = 1 ! position in pkg end type type_buflist type(type_buflist),dimension(0:NPE-1) :: bufs ! list of send buffer上記のコードにおいて、call hoge() するたびに bufs()%position = 1 に初期化されていることを期待するが、実際にはそうなっていない。固定配列の構造体メンバーは手動で初期化する必要がある。 type(type_buflist),dimension(:),pointer :: bufs の場合は大丈夫のような気がする。つまり、「一から作る(allocate)する場合には、初期化される」ということ? まったく、Fortran90は落とし穴が多すぎ。なんて仕様だ。
program main use mpi integer :: ierr,myrank,npe integer :: status(MPI_STATUS_SIZE) character,dimension(:),pointer :: buf => null() ! pointerだと動かない !!$ character,dimension(:),allocatable :: buf ! allocatableだと問題ない !!$ character,dimension(10) :: buf ! これも問題ない integer :: ranks=0, rankd=1, tag=1, req call mpi_init(ierr) call mpi_comm_size(MPI_COMM_WORLD, npe, ierr) call mpi_comm_rank(MPI_COMM_WORLD, myrank, ierr) allocate( buf(10) ) buf(:) = 'A' if (myrank == ranks) then call mpi_isend(buf, size(buf), MPI_CHARACTER, & rankd, tag, MPI_COMM_WORLD, req, ierr ) endif if (myrank == rankd) then call mpi_irecv(buf, size(buf), MPI_CHARACTER, & ranks, tag, MPI_COMM_WORLD, req, ierr ) endif call mpi_wait(req,status,ierr) call mpi_finalize(ierr) end program main
大気の簡単なモデルとして、1層モデルというものを、しばしば 演習問題等で見かけることがある。 それは、太陽光に対しては、大気は透明と仮定し、 地表の輻射に対しては、大気を1層の黒体として扱い、 両者の輻射のバランスで地表温度が求まるというものである。
大気を1層にすると、たまたま丁度良い地表温度が求まる。 しかし、大気の層の数を2層、3層と増やしてゆくと、 輻射平衡になる地表温度は増加し、現実と合わなくなる。 大気を1層と仮定したことが本質であるが、アドホックであることがわかる。
層の数は光学的厚み対応するわけだが、上記の1層モデルは、 大気の光学的厚みが赤外線に対して τ〜O(1) であることを示している。 現実の大気を詳細に見ると、例えばあるCO2の吸収帯域では、τ 〜102を 示すものもあれば、大気の窓のようにτ 〜0を示すものもある。 つまり、これらのτをならすと、「だいたい」τ=1ということな のだろうか。
話をIPCCの報告書に戻すと、彼等の見積で、 大気の吸収・再放射と、大気の窓をどうやって分離しているのか、 興味あるところ。でっかい窓だけを、窓として表示しているのかもしれ ない。もちろん、彼等は真面目に輻射輸送を解いているわけだが。
[matsu@redmagic RAID]$ pwd /RAID2/RAID_BAK/RAID [matsu@redmagic RAID]$ chmod 777 /RAID [matsu@redmagic RAID]$ tar cf - . | ( cd /RAID; tar xvf - ) > /RAID2/RAID_BAK/rlog.txt [matsu@redmagic RAID]$ find . -type f -print |wc 60408 60408 1981399 [matsu@redmagic RAID]$ cd /RAID [matsu@redmagic RAID]$ find . -type f -print |wc find: ./lost+found: 許可がありません 60408 60408 1981399 [matsu@redmagic RAID]$ df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hdb2 114215396 16797628 91615896 16% / /dev/hdb1 101089 33130 62740 35% /boot none 773800 0 773800 0% /dev/shm /dev/sdb1 1440619612 1208152888 159287440 89% /RAID2 /dev/sda1 1730716888 616836028 1025965552 38% /RAID
[root@redmagic root]# fdisk /dev/sda デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも 含んでいません 新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。 このディスクのシリンダ数は 218899 に設定されています。 間違いではないのですが、1024 を超えているため、以下の場合 に問題を生じうる事を確認しましょう: 1) ブート時に実行するソフトウェア (例. バージョンが古い LILO) 2) 別の OS のブートやパーティション作成ソフト (例. DOS FDISK, OS/2 FDISK) コマンド (m でヘルプ): m コマンドの動作 a ブート可能フラグをつける b bsd ディスクラベルを編集する c dos 互換フラグをつける d 領域を削除する l 既知の領域タイプをリスト表示する m このメニューを表示する n 新たに領域を作成する o 新たに空の DOS 領域テーブルを作成する p 領域テーブルを表示する q 変更を保存せずに終了する s 空の Sun ディスクラベルを作成する t 領域のシステム ID を変更する u 表示/項目ユニットを変更する v 領域テーブルを照合する w テーブルをディスクに書き込み、終了する x 特別な機能 (エキスパート専用) コマンド (m でヘルプ): p ディスク /dev/sda: ヘッド 255, セクタ 63, シリンダ 218899 ユニット = シリンダ数 of 16065 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム コマンド (m でヘルプ): n コマンドアクション e 拡張 p 基本領域 (1-4) p 領域番号 (1-4): 1 最初 シリンダ (1-218899, 初期値 1): 初期値 1 を使います 終点 シリンダ または +サイズ または +サイズM または +サイズK (1-218899, 初期値 218899): 初期値 218899 を使います コマンド (m でヘルプ): p ディスク /dev/sda: ヘッド 255, セクタ 63, シリンダ 218899 ユニット = シリンダ数 of 16065 * 512 バイト デバイス ブート 始点 終点 ブロック ID システム /dev/sda1 1 218899 1758306186 83 Linux コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 ディスクを同期させます。
[root@redmagic root]# mkfs -t ext3 /dev/sda1寝て待つ。容量が大きくなると、全てが遅い。(計算もデータ解析も)
[root@redmagic root]# vi /etc/fstab [root@redmagic root]# mount /RAID [root@redmagic root]# df Filesystem 1K-ブロック 使用 使用可 使用% マウント位置 /dev/hdb2 114215396 16729532 91683992 16% / /dev/hdb1 101089 33130 62740 35% /boot none 773800 0 773800 0% /dev/shm /dev/sdb1 1440619612 1208150944 159289384 89% /RAID2 /dev/sda1 1730716888 32828 1642768752 1% /RAID