[Go to BBS]
All articles in a thread
Subjectamorita Branch snapshot 3128 or later
Article No827
Date: 2010/07/09(Fri) 22:07:37
ContributorM. Satoh. < >

皆様、

amorita Branch を愛用させて頂いておりますが、snapshot 3128/3129において、bench.sad/bench2.sadが下記の様に途中で止まってしまいます。3120までは問題なかったのですが。 自分のスクリプトに於いても、TrackParticlesの結果が、3120以前及び3128以降で大きく異なっています。make及び実行環境は、下記の通りですが、3128以降なにか大きな変更がありましたでしょうか?


---- machine info. ----
CentOS release 4.8
Intel(R) Xeon(TM) CPU 3.06GHz
MemTotal: 2595924 kB

--- sad.conf ---
-

COMPILER=GNU
USE_GCC=4.3.3
FC=gfortran
CC=gcc
CXX=g++

-
---



<10-07-09(Fri) 21:42:56><-tcsh-></usr/new/pkg/SAD/script/><masanori@pistachio>gs3 bench.sad
*** Welcome to SAD Revision 3129 built at 2010-07-09 17:51:05 +0900 ***
cpu time= 3.0995E-02(sec) dt= 30.995(msec) free area:: 1802
OFF LOG ECHO;READ 77 ; 23
cpu time= 3.0995E-02(sec) dt= 30.995(msec) free area:: 1802
cpu time= 3.1995E-02(sec) dt= 31.995(msec) free area:: 1801
*** SADScript Initialization: /usr/new/pkg/SAD/share/Packages/init.n ***
RFSW RADCOD RAD FLUC INTRA POL COD DAPER EMIOU CMPLO FOURI SMEAR
F F F T F F T F F F F T
NPARA=1;
EMFLG='M';
FLENG='ON';
FSUPP='OFF';
FINIT='OFF';
cell cal
Matched. ( 0.000 ) DP = 0.02000 DP0 = 0.00000 ExponentOfResidual = 2.0 OffMomentumWeight = 1.000
$$$ f AX ####### # -1.126E-9 $$$ f BX ####### # 6.975345 $$$ f NX ####### # 1.250000
$$$ f AY ####### # -3.66E-10 $$$ f BY ####### # 27.862494 $$$ f NY ####### # 1.250000
$$$ f LENG ####### # .000000
vquad=Element['VALUE','Q*'];nquad=Element['NAME','Q*'];
! setquad[name_,val_]:=Module[{},Element['VALUE',name]=val];
! MapThread[Element['VALUE',#1 ]=#2 &,{nquad,vquad}]
! Do[Element['VALUE',nquad[ii]]=vquad[ii],{ii,Length[nquad]}]
fit SD1.2 nx .25 ny .25
fit SF1.2 SF1.4 nx 0.5 ny 0.5
fit B.2 ex .183
fit ex -0.065
fit leng 76.1809 nx 1.25 ny 1.25
fit qf1.2 qf3.2 bx 10
???-FFS-Error-?Missing value for QF1.2
???-FFS-Error-?Missing value for QF3.2
fit qf1.2 qf2.2 bx 10
???-FFS-Error-?Missing value for QF1.2
???-FFS-Error-?Missing value for QF2.2
fit qd1 qd2.2 by 10
???-FFS-Error-?Missing value for QD1
???-FFS-Error-?Missing value for QD2.2
fit qd1 qd3.2 by 10
???-FFS-Error-?Missing value for QD1
???-FFS-Error-?Missing value for QD3.2
b 2*Pi/112 b l .86
l7 .52
free q* l0 l1 l2 l3 l4 l5 l6 fix qe2
???-FFS-Error-?Missing value for L0
???-FFS-Error-?Missing value for L1
???-FFS-Error-?Missing value for L2
???-FFS-Error-?Missing value for L3
???-FFS-Error-?Missing value for L4
???-FFS-Error-?Missing value for L5
???-FFS-Error-?Missing value for L6
???-FFS-Error-?Missing value for QE2
CONVERGENCE=1e-28;
IF EMFLG=='H'
fix * free qe2 qd2 qd3 qf2 qf3
fit rej leng nx ny;fit sd1.2 rej * ;fit qf1.2 qf2.2 rej bx;fit qf1.2 qf3.2 rej bx;
fit qd1 qd2.2 rej by fit qd1 qd3.2 rej by;fit qd1 qd2.2 by 10;
fit ex -.30 fit b.2 ex 0.35
ENDIF
IF EMFLG=='L'
fix * free qe2 qd2 qd3 qf2 qf3
fit rej leng nx ny;fit sd1.2 rej * ;fit qf1.2 qf2.2 rej bx;fit qf1.2 qf3.2 rej bx;
fit qd1 qd2.2 rej by fit qd1 qd3.2 rej by;fit qd2.2 qd3.2 by 10;
fit ex 0.11 fit b.2 ex 0.05
ENDIF
! go
org nmark 0 0 0 360/112*2 0 0 ;
Out[48]:= nmark
Out[49]:= 0
Out[50]:= 0
Out[51]:= 0
Out[52]:= 6.428571428571428
Out[53]:= 0
calc;
Residual = 1.0000+100 DP = 0.02000 DP0 = 0.00000 ExponentOfResidual = 2.0 OffMomentumWeight = 1.000
SD1.2 NX .25 1 .250000 SD1.2 NY .25 1 .250000 SF1.2/SF1.4 NX .5 1 .500000
SF1.2/SF1.4 NY .5 1 .500000 B.2 EX .183 1 .199321 $$$ f AX ####### # -1.126E-9
$$$ f BX 10 1 6.975345 $$$ f NX 1.25 1 1.250000 $$$ f AY ####### # -3.66E-10
$$$ f BY 10 1 27.862494 $$$ f NY 1.25 1 1.250000 $$$ f EX -.065 1 -.065000
$$$ f LENG 76.1809 1 .000000
xxx=LINE['GEO','***'][1,1]/2/Tan[Pi*2/112*2]-LINE['GEO','QF3.2'][1,2];
yyy=LINE['GEO','***'][1,1]/2/Sin[Pi*2/112*2];
delr=(xxx+yyy)/2-yyy
Out[55]:= 0
Clear[xxx];Clear[yyy];
stop
tfree: detect null pointer
FFS end: CPU time = 0.029 sec
RFSW RADCOD RAD FLUC INTRA POL COD DAPER EMIOU CMPLO FOURI SMEAR
F F F T F F T F F F F T
CONVERGENCE=1e-25;
fit rfmark2 bx @ by @ ax 0 ay 0
???-FFS-Error-?Missing value for RFMARK2
???General::incomplete: Incomplete expression @:
fit rfmark2 bx
^
In[59]:=

SubjectRe: amorita Branch snapshot 3128 or later
Article No828
Date: 2010/07/10(Sat) 01:25:54
ContributorAkio Morita
> amorita Branch を愛用させて頂いておりますが、snapshot 3128/3129において、bench.sad/bench2.sadが下記の様に途中で止まってしまいます。3120までは問題なかったのですが。 自分のスクリプトに於いても、TrackParticlesの結果が、3120以前及び3128以降で大きく異なっています。make及び実行環境は、下記の通りですが、3128以降なにか大きな変更がありましたでしょうか?
>
該当する変更は、Revision 3122/Refactoring flag system framework[Phase.7]のはずです。

発生条件や他のFortranコンパイラとの比較から、gfortranのバグと考えています
# 検証時の環境では、GCC 4.4.x, 4.5.x, 4.6.x共にNGです

gfortranでコンパイルする前に./contrib/tools/workaround-gfortran:module-equivalence.shで、
ソースを前処理すると回避できますが、gfortranの挙動(equivalence文の順序による動作変化)が
Fortranの言語仕様とは思えないので、ソース側を修正する予定は有りません
# Fortranの仕様だから直せという原典付きの指摘があれば、もちろん修正します

簡略化した検証コードに付いては下記を参照のこと
http://jyurai.ddo.jp/~amorita/diary/?date=20100706#p02

SubjectRe^2: amorita Branch snapshot 3128 or later
Article No829
Date: 2010/07/10(Sat) 10:35:22
ContributorM Satoh

 下記のご指摘ありがとうございました。
無事に動きました!
 

> 該当する変更は、Revision 3122/Refactoring flag system framework[Phase.7]のはずです。
>
> 発生条件や他のFortranコンパイラとの比較から、gfortranのバグと考えています
> # 検証時の環境では、GCC 4.4.x, 4.5.x, 4.6.x共にNGです
>
> gfortranでコンパイルする前に./contrib/tools/workaround-gfortran:module-equivalence.shで、
> ソースを前処理すると回避できますが、gfortranの挙動(equivalence文の順序による動作変化)が
> Fortranの言語仕様とは思えないので、ソース側を修正する予定は有りません
> # Fortranの仕様だから直せという原典付きの指摘があれば、もちろん修正します
>
> 簡略化した検証コードに付いては下記を参照のこと
> http://jyurai.ddo.jp/~amorita/diary/?date=20100706#p02