Return-Path: Delivered-To: momoko@dennou-h.gfd-dennou.org Received: (qmail 12626 invoked from network); 8 Dec 2016 13:45:25 +0900 Received: from unknown (HELO mailgate2.sys.hokudai.ac.jp) (133.87.1.145) by dennou-h.ep.sci.hokudai.ac.jp with SMTP; Thu, 08 Dec 2016 13:45:25 +0900 Received: from mailgate2.sys.hokudai.ac.jp (localhost [127.0.0.1]) by localhost.sys.hokudai.ac.jp (Postfix) with ESMTP id 34D292808A7 for ; Thu, 8 Dec 2016 13:45:25 +0900 (JST) Received: from dennou-k.gfd-dennou.org (studenno.kugi.kyoto-u.ac.jp [130.54.59.159]) by mailgate2.sys.hokudai.ac.jp (Postfix) with ESMTP id 08E61280AAF for ; Thu, 8 Dec 2016 13:45:25 +0900 (JST) Received: (qmail 32465 invoked by uid 0); 8 Dec 2016 13:45:24 +0900 Delivered-To: momoko@gfd-dennou.org Received: (qmail 32461 invoked by uid 0); 8 Dec 2016 13:45:24 +0900 Received: from unknown (HELO mailsv.nies.go.jp) (158.210.250.14) by studenno.kugi.kyoto-u.ac.jp with SMTP; Thu, 08 Dec 2016 13:45:24 +0900 Received: from dns2.nies.go.jp (dns2.nies.go.jp [158.210.30.4]) by mailsv.nies.go.jp (Postfix) with ESMTP id 507FB80AA3 for ; Thu, 8 Dec 2016 13:45:24 +0900 (JST) Received: from dns2.nies.go.jp (localhost [127.0.0.1]) by dns2.nies.go.jp (8.14.4/8.12.11-delivery) with ESMTP id uB84jOs4021350 for ; Thu, 8 Dec 2016 13:45:24 +0900 Received: from [158.210.249.105] ([158.210.249.105]) (authenticated bits=0) by dns2.nies.go.jp (8.14.4/8.12.11) with ESMTP id uB84jNxQ021345 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Thu, 8 Dec 2016 13:45:24 +0900 Subject: =?UTF-8?B?UmU6IFtuaWVzLXNjc3VwcG9ydDoxNDkzXSDjg5fjg63jgrDjg6njg6A=?= =?UTF-8?B?44Gr6Zai44GZ44KL44GU55u46KuHKOODl+ODreOCsOODqeODoOWQjTogZGNwYW01?= =?UTF-8?Q?-20161021=29?= To: Masaki Ishiwatari References: <87bmwyn57s.wl%momoko@gfd-dennou.org> Cc: nies-scsupport@nies.go.jp From: =?UTF-8?B?TkVD5L+d5a6I5ZOh5a6k?= Message-ID: <1ef1bf5f-145c-4f79-3bca-1e305cabaae7@nies.go.jp> Date: Thu, 8 Dec 2016 13:45:19 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <87bmwyn57s.wl%momoko@gfd-dennou.org> Content-Type: text/plain; charset=iso-2022-jp; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-TM-AS-MML: disable X-TM-AS-Product-Ver: IMSS-7.1.0.1774-8.1.0.1057-22748.005 X-TM-AS-Result: No--17.260-5.0-31-10 X-imss-scan-details: No--17.260-5.0-31-10 X-TMASE-MatchedRID: tRcutRVVeFnddQgxC+gkxY++syMsUPp4qksBGT7OkFlhrCG+S4uCPmZv zZ3803emAPZV0QewZsVrXZtPQj1/fhLmAssA1X4MKZRr5JwdMIo+U3MyOEoRQguhdZb+n6ThEYt w2rrtfxTGBNf/Fstm+YV5TB5vIjeYABE8oidqrHyEvZVOn5eFYBqtRVHwrWqjjMEa/h/dgMjzjx /XeqGTpAQNtE0r20dmowfnGB5CvCoGvfhOIGzyToU2UUbID1NeZYuKAVTCcS7uephIckpE6PyMd /F08jvyj5TMuo/FClFwRuIrdMbtcUqjOnr9fPjasZN/YB0cOJLuZdrymoDgj2M7OZuwRJ7nSOze 5xC7dAWjMr6tT/zwhw3ZQMuJJ/oeXZZXNV16gdsmKNGfNn/M9ET0uRMre+9hCB9KNAyZoaPOCM3 enVakelnruOKMV8F5MyGUfnyOo9Qx0DhlHuCasFKxTQHloo5KN9qeO537cN1O71J/B1rryHuycn ZVBIQkO0oexYFqqdU30kO9nHCbshqbmMZbvKyIDhlEUQKxYbO4p2Sca+892NA5lNEAjJ2kgFzYm vsBoUXkZpr3L8DkclSUwq2d7vWcjdtMYuHiW9bEex4ijhjebKwLV3+lx7lKG32jJr71KEn4w06j qeu5cu2TVRcOmYhWGBNKvidtOSdF0FZiSkDcX6w9Rq4e19zl5pBIryrnKY9EpBAMX5YxDP25Yiw uWiXqCtyV8dJf5+LeefjExESZzPkw9Skp7NetT9giPNdKW0M05OiRm60IblPgO2JKQydYsGR2lA iz0usi6Rccrvi4JgfgPQtXQxQx50xGJPlxEG/cFOQoK25dTp4CIKY/Hg3AtOt1ofVlaoIHA64fR bkFm3nhQEB6FTWSbxc8rwAf4o5eu6llOoM7BjojLkiQ3iw5WFT1aIEoxGU= TO:石渡様 NEC保守員室です.お世話になっております. ご依頼頂いた,プログラムで発生したエラーについて調査致しました. 原因及び対策につきまして,「発生状況」,「原因」,「対策」の順に ご説明します. ■発生状況  計算が途中で終了した直前に行われていた処理は、以下のソースファイルの  中にありました。具体的に計算を途中で終了させた箇所は、以下の★印の  箇所です。これらの箇所で、変数代入時にメモリ不正アクセスを起こし計算が  途中で終わってました。  ○ ソースファイル    phy_implicit/phy_implicit_sdh_V5.f90  ○ ソースファイル内の発生箇所   以下箇所の(★)配列xyz_DSOSeaIceTempDt,xyz_DSOSeaIceTempDtへの   アクセス時にメモリ不正アクセスが発生していました.   1136 k = 0   1137 xy_SurfSOSIHeatFluxTentative(i,j) = xyr_SOSIHeatFlux(i,j,k) &   1138 & - xyr_SOSIHeatTransCoef(i,j,k) &   1139 ★ & * ( xyz_DSOSeaIceTempDt(i,j,k+1)) * ( 2.0_DP * DelTime )      中略   3495 k = 1   3496 ★ SOSeaIceTempA1Tentative = xyz_SOSeaIceTemp(i,j,k) &   3497 ★ & + xyz_DSOSeaIceTempDt(i,j,k) * ( 2.0_DP * DelTime ) ■原因  不正なサイズで変数をアロケーションしている為、上記メモリ 不正アクセスを引き起こし計算が途中で終了していました。  ●不正なサイズで変数をアロケーションしている箇所   ・main/dcpam_main.f90    変数のサイズを決めている変数 ksimax を 0(変数サイズ 0)に 設定した場合,配列xyz_SOSeaIceTemp,xyz_DSOSeaIceTempDtの 3次元目の変数のサイズアロケーション時に 0 が設定され、 その結果、3次元目の変数のサイズが0になっていました。    2947 subroutine MainInit    2948 !    2949 ! 主プログラムの初期化手続き.      中略    4001 allocate( xyz_SOSeaIceTemp(0:imax-1, 1:jmax, 1:ksimax) )      中略    4329 allocate( xyz_DSOSeaIceTempDt (0:imax-1, 1:jmax, ksimax) )    xyz_SOSeaIceTempでは、3次元目のサイズ設定が「1:0」となり、文法上、    右側の "0" の値が、左の"1"を書き換え、3次元目のサイズが0と なっています。    xyz_DSOSeaIceTempDtでは、3次元目のサイズ設定が「0」となり、 3次元目のサイズが0となっています。    配列の中でサイズが無い 3次元目に、今回、値を設定しようとした為、、    メモリ不正アクセスを引き起こし、計算が途中で終了していました。  ●アロケーションサイズのデフォルト設定    ksimaxのデフォルト値は以下のファイルで宣言されていました。  ○ ソースファイル    ・setup/gridset.F90  ○ ソースファイルの説明    namelist gridset_nmlのデフォルトの値が設定されています。    ここでksimaxのデフォルトの値は0で設定されています。(★)    実行時に使用している設定ファイルdcpam_LP_T42L26_53.confにおいて    個別にksimaxの値が指定がなされていないため,実行時のksimaxの値は、    ここで設定されている 0となります。.   36 ! kslmax :: 地下鉛直層数   37 ! ksimax :: 海氷鉛直層数最大値     中略   177 namelist /gridset_nml/ nmax, imax, jmax, kmax, kslmax, ksimax   178 !   179 ! デフォルト値については初期化手続 "gridset#GridsetInit"   180 ! のソースコードを参照のこと.   181 !   182 ! Refer to source codes in the initialization procedure   183 ! "gridset#GridsetInit" for the default values.   184 !     中略   192 ! デフォルト値の設定   193 ! Default values settings   194 !   195 #ifdef AXISYMMETRY   196 imax = 1   197 #elif AXISYMMETRY_SJPACK   198 imax = 1   199 #else   200 imax = 32   201 #endif   202 jmax = imax / 2   203 kmax = 5   204 nmax = ( imax - 1 ) / 3   205   206 kslmax = 0   207   208 ksimax = 0 ★ ■対策  配列サイズを規定しているkslmax,ksimaxは,実行時に指定されない場合は  初期値設定箇所のsetup/gridset.F90の処理により0となってしまいます.  kslmax, ksimaxが 0だった場合に変数サイズが0になる配列宣言やアロケー  ションの設定箇所は以下になります。   「1:ksimax」,「1:kslmax」,「ksimax」,「1:jmax*ksimax」  これらの記述は全て不正な配列サイズ指定となってしまいます.  3次元目の値を使用される場合は、これらの箇所のksimax, kslmaxの値を  適切なものに設定頂く必要があります。  3次元目の値を使用しない場合は,以下のようにサイズ0の配列指定を無くす  ことで対策できます.  変更前:「1:ksimax」,「1:kslmax」,「ksimax」,「1:jmax*ksimax」  変更後:「0:ksimax」,「0:kslmax」,「0:ksimax」,「0:jmax*ksimax」  同時に,変更対象となってしまう箇所に対して使用するインデックス値が  適正であることを確認して頂く必要があります.  なお、上記の対象となるファイル数は15個あることを確認しました。  この内、今回の計算に関わるファイルは8個あることを確認しています。 以上,宜しくお願い致します. On 2016/11/29 15:57, Masaki Ishiwatari wrote: > NEC保守員室の皆さま : 北大の石渡です > > 大気大循環モデルの更新をしたらまた動かなくなってしまいしたので > 今回も調査をお願いしたく思います. > > 大気大循環モデル(モデル名: dcpam5-20161021) を実行したところ > 瞬時に止まってしまい, stderr.0:0 に以下のメッセージが出力 > されました. > > **** 90 Fatal exception PROG=phy_implicit_sdh_v5.phyimplsdhv5tendency ELN=1142(4001b21cc) > SIGILL: Illegal instruction > Called from dcpam_main ELN=1803(4000178e8) > ./dcpam_main.20161021.Mnoinv(lang:f90): signal trap(SIGTERM: Software termination) > **** 90 Fatal exception PROG=phy_implicit_sdh_v5.phyimplsdhv5tendency ELN=1142(4001b217c) > SIGILL: Illegal instruction > Called from dcpam_main ELN=1803(4000178e8) > > > モデル開発者にも聞いたところ, 思いあたることがないそうでして > 今回もソースの書き方が良くないという問題かと思いまして, また > 調べて頂けるとありがたく存じます. > > > 計算に用いたディレクトリは > > /home/cger/ggec103/calculate/momoko/LP_32p_Mnoinv_53 > > です. ここに実行用スクリプト run_LP.sh も入っています. > > > 今回使用した大気大循環モデルのソースコードは > /home/cger/ggec103/momoko/src_mpi/dcpam5-20161021 > にあります. > > > 以上, よろしくお願いします. > > >