Page MenuHomec4science

No OneTemporary

File Metadata

Created
Tue, Jul 16, 11:30
This file is larger than 256 KB, so syntax highlighting was skipped.
This document is not UTF8. It was detected as ISO-8859-1 (Latin 1) and converted to UTF8 for display.
diff --git a/Readme.md b/Readme.md
new file mode 100644
index 0000000..5c58ff5
--- /dev/null
+++ b/Readme.md
@@ -0,0 +1,26 @@
+SCITAS Application Benchmark suite
+==================================
+
+This directory contains the benchmarks that SCITAS uses to evaluate new architectures. It includes
+
+* users applications benchmarks
+
+
+How to use
+----------
+
+### Files to modify for the whole setup
+
+* `clusters/cores.txt` contains the number of cores on which the tests must run.
+* `clusters/cluster.job` is a link to an appropriate file in `local-configs`. We suggest you create your own and link it. It contains specific configurations to the setup that is used by all the runs, when submitted to a SLURM scheduler. For example, modules to be loaded, varables to be set, or specific partition/QOS setting.
+
+### For more information
+
+More configuration has to be done at the application level. Please read the `clusters/user/Readme.md` file for more information.
+
+### License
+
+Unless otherwise stated:
+
+* source code (including bash and R scripts) is licensed under the GPLv2
+* the documentation is licensed under the GFDL 1.3
diff --git a/clusters/Readme.md b/clusters/Readme.md
new file mode 100644
index 0000000..337e7ae
--- /dev/null
+++ b/clusters/Readme.md
@@ -0,0 +1,5 @@
+SCITAS Application Benchmark suite
+==================================
+
+Please read `../Readme.md` and `user/Readme.md` for more information.
+
diff --git a/clusters/cluster.job b/clusters/cluster.job
new file mode 120000
index 0000000..2e43562
--- /dev/null
+++ b/clusters/cluster.job
@@ -0,0 +1 @@
+../local-configs/eltanin.job
\ No newline at end of file
diff --git a/clusters/cores.txt b/clusters/cores.txt
new file mode 120000
index 0000000..acabcb8
--- /dev/null
+++ b/clusters/cores.txt
@@ -0,0 +1 @@
+user/cores.txt
\ No newline at end of file
diff --git a/clusters/cores_per_node.txt b/clusters/cores_per_node.txt
new file mode 100644
index 0000000..a45fd52
--- /dev/null
+++ b/clusters/cores_per_node.txt
@@ -0,0 +1 @@
+24
diff --git a/clusters/user/CPMD/GEOM/GEOMETRY b/clusters/user/CPMD/GEOM/GEOMETRY
new file mode 100644
index 0000000..a2a6b86
--- /dev/null
+++ b/clusters/user/CPMD/GEOM/GEOMETRY
@@ -0,0 +1,318 @@
+ 18.00832250163346 22.52312271613786 11.93779347051850 -.00032588959476 .00043296940602 .00047218682606
+ 13.48776030165373 22.97014564459454 10.54554758962692 .00010212704966 -.00103645876976 .00086418901499
+ 10.96119257134615 19.02113268793790 9.71833611641161 -.00032519004210 -.00075862346199 -.00081588470840
+ 10.73304015375411 14.29784910667580 9.78303806581705 .00015104885047 -.00043678755625 -.00025892141509
+ 12.77346281605160 10.24410041918062 10.75643494694712 -.00019919981721 .00001532750596 .00087541083033
+ 19.07481294921066 9.65110489416385 12.90965024000602 .00036888360435 .00002087983304 -.00036598523037
+ 19.70350385586820 13.99376156620993 12.58106993568776 .00008384851898 .00024001419192 -.00009695886753
+ 1.96549908687130 9.10049467731545 4.23656241045834 -.00024804468361 .00041390438172 .00039151107217
+ 4.13002108955256 6.98486845434539 4.36429582319205 -.00060536744332 -.00073762575800 -.00047885137970
+ 6.63179334091307 4.52964530019996 6.07346128085797 .00017565604880 .00016330927874 -.00017336309557
+ 7.92886716738251 5.58985324146623 3.35607587943792 .00041901505676 -.00008142925630 .00008781392302
+ 18.42598378524881 2.95201005471433 4.90388131468866 -.00046834627488 .00049509219865 .00050487814618
+ 17.97432418443102 5.52588474559202 3.42508731549466 -.00078680157002 .00013623483373 -.00015243130900
+ 23.47157747644821 .91897358042742 2.94989483651850 .00003950522699 .00009764485818 -.00051257062972
+ 22.00585513817379 3.44044579233887 3.42671467248659 -.00057744264082 -.00059021874515 -.00042715367445
+ 26.73671498012365 3.08219231467157 3.95777659540295 -.00043332860530 -.00036261314069 .00013930644796
+ 29.51619618397158 4.55326755233199 4.06581518745511 .00035689780718 .00000038174888 .00017606202378
+ -.28288922335415 13.05378641082862 4.18026340594201 -.00009788689082 .00022715669096 .00039291846409
+ 2.54410839849084 13.76149341071739 4.75263233465280 -.00113630331427 .00056796479592 -.00001270663520
+ 10.40922562628764 11.11279537632370 -.69968589806329 .00060550606937 .00097824130089 -.00044573204440
+ 7.32753665097921 11.25750729826989 -1.22721512960957 .00135458733869 -.00009962581310 .00012648971097
+ 15.58524688198042 11.51734737876791 4.36014717985375 .00104104041339 .00015792013026 -.00082646704615
+ 12.94639461553596 13.07031513851832 4.09106075023729 -.00014567668668 -.00012973858118 .00009082642011
+ 20.46990797258556 10.09470432730951 .98998773650634 .00063797402329 .00041630087754 -.00031077023151
+ 20.64638102142150 7.10509641545897 .17732170220096 .00020592812212 -.00004593725360 .00017815886669
+ 24.12508843239960 8.71121119011216 22.26480562320431 .00018455262220 -.00011950066254 -.00028880847250
+ 27.08862088502952 8.70525903853673 22.23560290196258 -.00064438544424 -.00069546416615 -.00095453634187
+ 4.02017260513858 17.91928021816425 4.71090979959389 -.00000091195115 .00057056033448 -.00068408701512
+ 5.50778523406674 16.22098200937116 2.84771513093984 .00004752788671 -.00029473527149 .00054485957459
+ 9.16094018212568 17.21383535607453 23.16257573078227 .00017141622063 .00025922889948 -.00071537134368
+ 6.87661662246415 17.46676032505361 21.31013294443229 -.00048625127033 -.00062458615996 -.00031441625585
+ 13.17314945453551 14.42446723331483 20.65532576927711 -.00047381963545 .00011083917011 -.00111342742229
+ 14.09465216884209 12.77002598515887 23.07251748920057 .00028898737029 .00052783863990 -.00030681984346
+ 21.19351410722755 16.23357678765208 1.39877486062323 -.00008403622606 .00051559979707 -.00014179939584
+ 19.22691427604166 17.94642481208473 2.63639210623894 -.00058274165238 .00016404316552 -.00025927155432
+ 24.25883765358422 14.07036113330240 3.62902398115680 .00113431239338 .00035444855998 .00024867915172
+ 25.48918376377923 12.53309422324114 1.29920481524173 -.00036172871176 -.00014288946602 -.00006323950485
+ 3.50618377705885 22.60221377006198 6.07733253245785 .00105017222689 -.00033894854871 .00064620847158
+ 3.07281487329923 21.68275453062032 3.15488528170105 .00058511452333 .00005413589315 .00028229768198
+ 6.83741516601930 21.70465112726306 4.14559805409951 .00057816716333 -.00056250521334 .00041104297964
+ 9.62134636500248 20.44572178472128 3.47910768765471 -.00042462016792 .00005645284764 -.00007752443134
+ 14.69450665370104 24.69185376894815 1.05053119508789 .00005688700066 -.00019241903605 .00128551294618
+ 12.68489883045742 26.32113545649824 2.63117453930005 -.00017227167303 .00047079181283 -.00018966939973
+ 17.88246176792077 22.86956961663115 -.40653488640074 .00014944896103 -.00010529730349 .00019113601078
+ 17.49440965263685 22.32436453416738 2.48887928880430 .00086329271904 -.00038251210135 -.00032931936544
+ 22.96386734673093 19.73753640324564 4.01895374016068 -.00031556747979 .00020739464088 .00050922032482
+ 24.80299403953261 20.36306703682634 6.36592855722960 .00008393811261 .00018385210323 .00022657991709
+ 3.31539201935336 28.49736829593408 1.66298331840423 .00009126173576 .00022953854305 -.00066804851227
+ 2.09978404359055 30.42013425982971 3.75873414378497 -.00030574484419 -.00000937710596 -.00019749374435
+ 10.25395804303742 24.37611177166934 5.00945433877517 .00048833806724 .00085122500394 .00082960409500
+ 9.79155554660858 27.35189386924160 5.24114089531633 .00000525560353 .00122423131535 .00047071378050
+ 17.55898301725658 31.54390741589285 1.29663909595545 .00097707474867 .00048967930169 -.00051845868106
+ 15.99061259368770 28.94942444844671 .66602969650034 .00021150736886 -.00063734272389 .00029675601144
+ 21.88197042733203 27.73684435995150 4.66942623400267 .00052737963829 -.00018628357553 -.00031978050045
+ 20.29948230460260 28.67790333270168 2.07404334719110 -.00008333122630 -.00028873271023 .00046748261178
+ 24.14300840094755 26.12906331685125 1.88632390737726 -.00038151842382 .00004133785701 -.00001941186104
+ 24.86001738993863 23.36216629010466 2.66773723241605 .00059250489336 .00064077808190 .00015655461308
+ 6.43152575811209 3.51403438576789 9.88609092338373 .00001368492570 .00048821153935 .00026418996396
+ 4.28268043855297 1.98417840321971 8.94606777525313 -.00018961214776 .00099505789344 .00007185276292
+ 12.81616912799334 3.70238957933766 5.59939615257576 .00004725961443 -.00032008784014 -.00076194339419
+ 12.23638460729401 4.55643282328305 8.53391769360040 .00040208784222 .00019125787130 .00022192913206
+ 21.44585846151645 .95541004427253 11.71328906869017 -.00045830265614 .00075410575612 .00005619807555
+ 20.17047070201571 1.45792265208473 9.15462151042856 .00019702382605 -.00019464441482 .00016880394570
+ 22.70478219307298 28.80138053260204 8.26754509240539 .00014419526737 .00036174649290 -.00051011148234
+ 22.71003662167542 25.92587569006937 8.83916323792438 .00044589110974 .00076515284875 .00064426930249
+ .50184374426376 2.22260708309477 7.56493755646721 -.00054495556199 -.00059878376917 -.00051946166915
+ .16160064242793 .35287823297481 9.87159248797036 .00034076414182 -.00023292071114 -.00073088699323
+ 8.05608902823274 10.47973642128107 9.14119459767990 .00046046891062 .00031668254811 .00065163404700
+ 8.17629572934372 8.33286007378194 6.95104592926705 .00000312426371 .00004108390288 .00019237619520
+ 9.68398262860222 11.86067805376043 5.89192740994258 .00004123888004 -.00070704814650 -.00038653705611
+ 9.32931966402082 12.57592154675953 2.98483707586968 -.00027944336403 -.00087279929397 .00020814925046
+ 18.11678455239739 8.40069459024047 6.03004522751028 -.00031335039805 .00088139655605 .00004643442107
+ 15.20076261914064 7.53534920684329 6.19445748545174 .00020084837816 .00014130003007 -.00095124806985
+ 21.85767014654758 8.22955272231863 4.83052062300526 -.00036816000098 -.00010371228328 -.00006580965900
+ 21.82201890542650 7.95688936705484 7.90364228550828 -.00027931810632 -.00097370672167 -.00009235466161
+ .96989008678819 11.89275407029316 7.97157293898410 .00004645605559 -.00006361692532 .00047359047566
+ .49500517639461 9.79613526573793 10.07732046341317 .00013822785923 .00032384777660 -.00021387955015
+ 6.39424345619058 14.68638587951428 10.33334507888589 -.00039674551509 -.00005456150842 .00051106411028
+ 6.31210644003619 16.23327061301485 7.74419381164453 .00067485520281 .00085846069656 -.00036082074065
+ 13.20477066640196 18.39542499925037 3.82839815769432 -.00050914775920 .00050347986292 .00028328539920
+ 11.02725865539541 16.30617800199730 4.15007870331245 -.00015864703201 .00057942194020 .00026518808533
+ 16.52112737481610 15.55556195895510 4.89016892100144 -.00020075033408 -.00071403310855 -.00051618679652
+ 19.20712233587933 16.22231504513376 5.88198256827443 .00014655488050 .00018215709518 .00016511258980
+ 23.15542782715765 13.86806759476882 7.56337333758783 -.00007200185554 -.00050398824227 -.00019151906759
+ 21.44145182375993 12.17420024811836 5.98748103798067 .00055988451415 .00027863391709 -.00036619151429
+ 24.56397407688685 14.11060536448677 11.81316996612435 -.00087519965186 -.00012067573492 -.00058606975643
+ 26.92030000164630 13.26407754799297 10.08361555202364 .00085253240401 -.00003728289244 .00010866831208
+ 2.02318603318813 18.26513924059809 12.61524032033097 -.00038045858683 -.00028004076446 .00016665994899
+ 4.12479186039608 18.07248598939423 10.54684230445220 .00026745839780 -.00008330162830 .00021176231391
+ 9.26326046353636 25.73541941919673 8.82848518454614 .00029910916706 -.00016311520091 .00016480650099
+ 6.49023876932533 26.47533301648059 9.57742316073433 -.00031143460587 .00010191633219 .00061976665786
+ 18.03840421181426 20.73331293509957 6.41392296767887 -.00070576894277 .00059026954227 .00027166982323
+ 20.46705311361206 22.11041934403863 5.80608866516993 .00021994693266 .00042094174002 -.00011644424350
+ 21.06145345309066 19.21007620939687 13.20596872645243 .00020273197958 .00065198705178 -.00040776942007
+ 23.91001226890661 19.50846782002798 12.12934279826869 -.00041016600991 -.00025671977910 -.00010451639701
+ 25.65824661782061 17.15954556169018 9.32292403937616 -.00066886830819 .00014900822312 .00100854307802
+ 27.64704140696907 19.25925185748327 9.89392988379095 -.00025740101149 -.00092284644290 .00046388065606
+ 1.74133678053298 26.08267592386379 8.47656221819613 .00006311799558 -.00043572733999 -.00032543435584
+ 3.19396471939966 26.76187720103415 5.98726278457967 -.00048712849420 .00039939623838 .00050546625747
+ 4.87898607214744 25.13070474910668 15.21880980366905 .00029749921717 -.00040270723828 -.00006044877366
+ 7.29390718431633 25.77650139009997 13.79938706623131 .00016772092710 .00007653737571 -.00094465039106
+ 16.88277766689051 24.96939590307337 6.80107406792795 -.00026941318468 -.00027332025135 .00050884722292
+ 14.20046466341866 26.31165453580902 6.71893620183147 -.00054438181809 -.00000984688647 .00066223238741
+ 22.16009454309905 26.43128781932434 13.36076026067840 -.00047932245260 .00043782149973 .00013946613759
+ 22.90946625357876 23.55935837512684 12.66160286648540 -.00073675050260 .00010737564389 -.00002641896527
+ 25.80136558856509 26.77327807147428 11.60000241756353 .00028447746889 .00035471117776 .00006018327579
+ 28.60068902401582 26.09939552444142 12.07605873909684 -.00026384559979 .00061143224458 -.00033031996951
+ 2.74315864533553 .14765710147099 15.79641782763872 -.00023867811799 -.00035747257396 -.00014144876088
+ 5.35847169501874 -1.25219054483384 15.66375705223804 .00080391678873 -.00030933428943 -.00044340227473
+ 11.22065305878080 31.39243637054068 12.49692871730586 -.00078723364306 -.00035181884183 .00005151677312
+ 10.17028010978128 28.73274118486680 12.04577397883442 -.00019514929042 -.00033831591223 .00000949361897
+ 13.27962500765978 2.37089530601761 18.15508695748068 .00025354342857 -.00067139477316 -.00084643251553
+ 14.90226883218434 3.25269650892750 15.79642494146534 .00022575798206 -.00032149674971 -.00015255664623
+ 22.82244164523031 4.62112569829987 10.00252720397896 -.00028705766618 .00022277557280 .00035575599892
+ 22.23595420852245 6.82779557314624 11.91846622470353 -.00055437004692 .00030680432055 -.00004242678390
+ 26.22198577003348 6.75536270602569 10.70782671560875 .00013266469393 .00036218097151 -.00054557207388
+ 28.77292933258368 5.33475363467052 10.65798988477488 .00015831440589 -.00101961822444 .00016661377531
+ 5.33099935074685 6.12847953192348 13.53275590973490 .00016214754284 -.00027894662311 -.00003994739689
+ 5.54466668450864 2.95093387441572 13.72857427403275 -.00022581679708 -.00110619689244 .00014123071142
+ 9.34090391285289 4.64403301866848 12.41545422948930 -.00027729442635 -.00075673448911 .00092401614655
+ 12.01860006066696 5.80864693368253 12.79083664072235 -.00002808995598 -.00010359950876 .00113426722214
+ 14.07707001073929 8.95124073248814 15.86736870630387 -.00025708358684 .00000600612327 .00012407243019
+ 12.36060426872165 6.61031374916198 16.61715043687939 .00026347330400 .00068692353061 -.00042775532696
+ 20.27076017035748 7.02425663937214 15.92352421357261 -.00015487104663 .00012836025366 .00105449006822
+ 22.93557325996379 8.36653779868842 15.43406962127887 .00033450750304 .00045144274972 -.00077852034695
+ 3.50807042432484 9.09599717492669 16.37169076139612 .00018399643876 -.00001191464414 -.00006554312933
+ 1.79836018952344 7.97696881263686 14.13519948093915 -.00013987831500 .00010821787038 -.00002652491865
+ 4.21437869503873 11.44788150061604 11.36534167651241 .00008565345782 -.00008260465351 -.00083075864693
+ 6.59504679544282 11.70041807494611 13.07595221630835 -.00034330539997 -.00072716849516 .00021293506450
+ 7.36327195458404 11.50149420335702 16.97403613445032 .00034987441926 .00029427112243 -.00050734357898
+ 9.74103429165177 10.42113135942098 15.65319350198689 -.00040044663311 -.00032068550310 .00043877812096
+ 19.30859437137666 15.14985836361230 18.11828692305448 -.00036271796587 .00007035315362 .00014637622420
+ 19.11828159288300 12.27514138785319 17.68704475237324 -.00009751862961 -.00002717144202 .00014544808325
+ 23.06244158886426 13.72200735201361 16.33232354463780 .00010249747482 .00036990608647 -.00081542165877
+ 25.34289101448294 12.06146497726948 15.56619487574314 .00043456837559 .00085269500490 -.00100516498195
+ -1.27072805958424 15.68674013276486 15.02298249169547 -.00041040363876 -.00039019378978 .00026759934087
+ 1.12914583626350 16.28755724005941 16.56966822404356 -.00020071643719 .00081342687990 .00032327354660
+ .94753067417832 23.21632630290628 14.51680012389331 .00072367840965 -.00018313824466 .00017037908710
+ 2.54594836016529 22.61600373569972 12.16637601355528 -.00048894166666 .00023210248794 -.00039556906261
+ 5.64208291803735 20.69794239593400 13.19954986119482 .00009867869532 -.00071067172282 .00030628450042
+ 7.51354169517452 18.55462414820900 12.95248731881685 -.00021649686864 .00065513021248 .00015526834071
+ 17.31787304434642 19.58946033100052 16.27959347345331 .00070400376092 -.00002629473289 -.00036635772588
+ 15.85310544262105 17.69608696623488 17.89156642716700 .00057407250493 -.00001903461819 -.00062226556855
+ 21.04746915726153 19.40115502529092 18.63054313802104 -.00023168837172 .00011148731612 -.00020174358239
+ 21.81214145297440 19.26762589864845 21.46354226130426 .00020902766372 -.00064746484980 -.00017184423883
+ 27.80608440530712 19.97931579917632 16.32692199398704 -.00042202460543 .00007244394962 -.00017875095388
+ 25.40263821501616 21.44289969096386 15.77861622625634 .00036265690574 .00010771833556 .00005182997035
+ 2.37765844873111 27.52508678873582 20.50089344063730 .00017408963799 .00028338509808 .00023066348559
+ 4.95442060686460 26.49857577043953 21.38791445295694 -.00003100997636 .00080918297818 .00119036317764
+ 8.53248697785426 24.47785272491225 20.86651235200827 -.00000458077387 -.00045543144284 -.00024396821828
+ 7.53247032453401 23.49909060504717 23.47434524991507 .00020287658670 -.00036509649380 -.00049174810435
+ 14.31375437512121 28.64897425388780 12.76529703510753 -.00019747621097 -.00039791073301 -.00027283486528
+ 15.88954162626455 27.12104422735615 10.47824823116907 .00029587698328 .00031814204501 .00057218434233
+ 20.27948416026951 29.49792664720061 16.05037686949673 .00007548700005 -.00031776100916 -.00018831589493
+ 18.42345090664944 28.81468439315281 13.70232841054014 .00051222436079 -.00005011213006 .00063825457659
+ 27.40748494778438 -1.69956885336970 17.30786538458683 -.00007880937972 -.00032093253979 .00000454257574
+ 27.57963899852961 -1.21569735828565 14.33034777827364 -.00008069497080 -.00006247137465 .00061636301626
+ 1.25908589104703 5.70132064188581 20.47523596809583 .00010276716320 -.00000930188975 -.00042734341583
+ 2.39513958684623 7.00215435862961 23.14160647255108 -.00057113204671 -.00028153150174 -.00014619020586
+ 16.03559732938434 2.33313979020900 7.66606735075310 .00025089409842 .00005440814799 .00077287784399
+ 17.14533802949336 -.44809567611337 7.15100668873007 .00080588805206 -.00031731509749 -.00011603728187
+ 11.10305923238026 1.41227538560429 2.98273130916379 .00031490215125 -.00024003080171 .00063638915016
+ 11.17533588692242 4.09897028053121 1.65058561100814 .00036402279039 .00017015760208 -.00073473269954
+ 23.40470037498714 3.47304181466096 22.51870637071208 -.00070947171701 -.00084203854416 -.00072200209445
+ 22.36098688689235 1.77862382411035 20.31502367928783 .00064869084025 .00015511553948 -.00014113594964
+ 25.77628619218300 3.96729839928166 19.00381112037658 .00002043277670 .00003139010650 -.00028545194919
+ 27.41809484259674 2.49506316349284 16.94643664000650 .00014150208884 -.00017808300334 -.00043109820727
+ 3.62746787742126 12.81216216966916 19.25855182815078 .00088970917656 -.00056654413282 .00067035253306
+ 3.39309775166648 9.83363089607338 19.95956188763930 .00061134355871 .00020654970726 -.00053525868205
+ 7.97782830121633 4.81075314585720 -.77926706297436 .00040568993187 .00001060266258 -.00035683990789
+ 8.66172499360981 7.61159690454628 .07591555266018 -.00009028611998 -.00053676534736 -.00024233311551
+ 17.21315202355944 8.72329258444887 18.53884731948943 .00089783559632 .00008809275902 .00003928647827
+ 15.40582477184704 10.99312824004762 19.36118030551036 .00009404697051 .00008926854393 -.00105045003851
+ 17.29866965774658 4.62844968792195 18.80778913542324 .00028691420127 -.00029059593821 .00012960117888
+ 20.19628599835785 4.82691014350471 19.67643123184496 -.00025252847759 .00055339440742 .00016775517967
+ 25.70309948621437 9.50234991976407 18.45785307964580 -.00051982571575 -.00011558664382 -.00066802080111
+ 26.67844249181619 7.30700812799494 16.64081791913271 .00052672424422 .00066666956029 -.00020806342358
+ .88222334130837 16.34502470601684 20.48295675158872 .00055597759272 -.00021511738601 .00063537960433
+ 3.54997847008557 17.27481076055535 19.56069086760584 .00017422396668 -.00006655334112 .00004738166748
+ 10.99228226481864 22.44950287648646 17.93878914136340 -.00039300053846 -.00021360679279 .00019045367843
+ 9.73223145297701 21.00463963383055 15.73909979190009 .00022856332955 .00031117780742 .00031302086888
+ 12.11255762195759 18.35843954146998 17.98911991982504 .00010126136783 .00054719679963 -.00011808880733
+ 12.33965310673329 15.55021957615087 17.07056195792389 .00047394557007 -.00030320265837 -.00008712178819
+ 19.59557691988047 13.17807859372834 21.49428235195584 -.00006028892492 -.00013441931253 .00021640390936
+ 17.62786999673249 13.33851119296155 23.84863552572050 -.00033017961632 -.00028990202980 -.00007939445851
+ 26.18422090110241 16.77602189316775 23.24581966042457 .00031739954629 -.00021152436306 .00015591620269
+ 25.37000867140701 18.26775357128745 20.76551117886440 -.00037985645073 .00022501334191 .00008399763790
+ 5.66068218257860 21.51635430039283 20.25986516799380 .00004770743701 .00037618836077 -.00034226172817
+ 5.71892543166468 19.87884366138277 17.67727713118703 .00006782402072 -.00146307236397 .00022867838508
+ 12.15304248402983 25.56064076665909 21.27998111088880 -.00032781194731 -.00052839122526 -.00052293180749
+ 11.03919031559454 27.13295419378607 18.98033077496008 .00024365056275 -.00083146630319 -.00033654898652
+ 16.15415551130043 25.69804405593311 15.28317771442588 -.00104629772236 -.00077359446992 -.00032582409093
+ 14.26245578369289 24.58566732615513 17.31388522518259 .00026192258432 .00068381192924 .00035895295470
+ 18.80585498620038 24.37935700577584 18.76771922187637 -.00005518883739 .00001371380195 .00049025612056
+ 21.23659067064079 22.90233176191429 19.81512338104643 -.00068531073992 .00042693104936 -.00037910230505
+ -.12223649050040 23.39486007294941 .83264070656548 .00071213584203 .00041050921984 .00024337092039
+ .31084023576899 20.66160569143297 .08456906267456 -.00024290722311 -.00124930062879 .00061289123538
+ 5.59237759175538 1.92014110401846 18.25250125586291 -.00024468574173 -.00000776136867 -.00027840973593
+ 5.51393480755033 1.00908147954037 20.83055394991451 .00058166652111 -.00040356457449 .00033013327490
+ 6.57492416342031 -.77254274626424 3.91729961786982 -.00011952468583 -.00047293091164 -.00006526939528
+ 7.64335006631419 .56391884494636 6.29577078134731 -.00042148108153 -.00112614890939 -.00013035442199
+ 9.26196652838743 30.78582626095033 18.98377048425282 -.00040212697224 -.00075109491935 .00001968259522
+ 10.69257722614206 29.90707706419477 16.43213167136071 -.00038041737931 .00056462989086 -.00025119123384
+ 19.29193169965132 29.73988630048987 20.53335022723612 -.00067133905241 .00023054795104 -.00029392264634
+ 21.23016837324058 27.57344155096231 19.57280482998602 -.00027422854631 -.00053912054076 -.00099811466952
+ 26.45425016662860 25.58723921113660 21.03305882663064 -.00034724765748 .00033240669067 -.00033629751454
+ 27.25223607686635 24.50307013512893 18.47429703859462 -.00012201550571 -.00016078906383 .00048769200516
+ 17.96167178480539 18.64909140305411 12.04204492735010 .00000722085560 .00012748521847 .00004797303833
+ 16.83604500898820 20.83724405687243 11.59797752365634 -.00001086326806 -.00003855650155 -.00010467093200
+ 14.31245071120203 21.13968021802858 10.70611486929141 .00022103053896 .00012574070812 .00018057228965
+ 12.92386690564302 18.96737679357965 10.40356787451614 .00001877889756 .00009058550089 .00014487457362
+ 14.02449836953692 16.58728705351498 10.82822697535353 -.00012815484616 .00005498024145 .00006802229705
+ 12.70064077395452 14.28315497893746 10.42512924500962 -.00014059970052 -.00006405763194 .00002210469558
+ 13.87008734927666 11.99427005468097 10.81811102038863 -.00017655381897 .00016314289112 .00011324049897
+ 16.40338152651513 11.93157439048399 11.59035702620583 .00000381812450 .00000739435966 -.00002108194702
+ 17.76320334210676 14.12678455457280 11.98111526703838 -.00013789561824 .00009367625351 .00014644185150
+ 16.60171710710284 16.51588964938043 11.71337612548934 -.00016412975963 .00002134693093 -.00000486360178
+ 17.44255687914112 9.58424590379262 11.93446661248260 .00029326823596 .00003666352937 .00014650077902
+ 2.42288102944213 7.36134410913495 3.69631021429691 -.00010427741129 .00031421126528 -.00008092065203
+ 6.93067495127867 6.01110106558205 4.92073886672406 .00024002751381 .00026192946972 -.00011434955597
+ 18.89445115188897 3.87886595568631 3.28228661515318 -.00014806409146 -.00008173028902 .00018927465848
+ 23.76188772843398 2.79545860290602 3.00244102883236 -.00009278827078 .00007523581216 -.00002693858700
+ 28.58649530842843 2.92846133566254 4.38337590739053 .00015368751940 .00026092616769 -.00014954909629
+ 1.25542307706113 12.45645893879509 5.08475928393221 -.00000386896107 .00002929555492 -.00003919123600
+ 8.69632131798667 10.62179379056663 -.09183653529204 -.00008441283113 .00009604558603 -.00019294889092
+ 14.87040184672687 13.11852846837361 3.65316563073049 -.00001256853069 .00009114745826 .00004150507296
+ 21.35207654709198 8.39043999724627 1.23008593278645 -.00018805267436 -.00020915286830 -.00019851653121
+ 25.63739041758254 9.71500314109145 21.68196286408611 .00017461893710 -.00005540323380 .00018289546167
+ 4.59354525975767 16.16349821333084 4.50359046440688 .00009747421818 .00000720303199 .00019226216576
+ 7.46762349967635 16.58840753997215 22.80831603540981 -.00008013051956 .00009521545084 -.00008200089852
+ 13.33915084449034 12.64372302185099 21.33405119360823 .00000170707370 .00028939253064 -.00004113731177
+ 20.94746004219291 18.05578367744528 1.74284153460710 -.00010237810994 -.00029349908591 -.00026101035434
+ 25.69910136097131 14.08320823460403 2.37714329956138 .00013703348591 .00018348769523 -.00015108680963
+ 3.99155526984007 21.30984954175700 4.80786502343236 .00012525137424 .00015719326097 .00011080811141
+ 8.60620815590976 22.08537176243128 3.51661493711851 -.00000783970295 .00011270590450 .00009154660886
+ 13.69360517279582 26.31624426842736 1.04336561705372 .00007129049566 -.00003120965828 .00000147375011
+ 16.66121065828420 22.13653617447212 .83165312535930 -.00012127077567 .00013638148732 .00002732295781
+ 23.69140143599396 21.11922192556131 5.01931508450768 -.00002098932667 .00012358239583 -.00007824106342
+ 3.15995270591625 28.88120085039299 3.48013083270708 -.00010006821875 -.00006507856575 .00000170229293
+ 11.02277423536807 25.93372130796242 5.64382339095611 -.00020209369399 .00004611640346 .00015427923617
+ 17.63909557943809 29.84333191958520 .51666595076353 .00013466235070 -.00012405411959 .00011618099270
+ 21.95991950613609 28.39604397387679 2.88486736937913 .00014815044289 .00000527922035 .00001693451817
+ 25.25750506270146 24.69114704651664 1.43706452293925 .00017119999143 .00009221392296 -.00017381199182
+ 6.01521050156646 2.41921851262301 8.42573266774331 -.00002497429980 .00015148360821 -.00010573154527
+ 13.57393283698736 4.31477393580152 7.24778990300942 .00018925120999 -.00020267149670 .00016060916551
+ 21.93320532253391 1.45320137783799 9.95873133347370 -.00000836760646 .00003795494676 .00031823600097
+ 22.76745919314927 27.13300487385446 7.44594208689251 -.00017172679647 .00004911299873 -.00020326312439
+ .92649486729726 1.97804920506352 9.37493502548483 .00001564573970 -.00011785912794 -.00006315662802
+ 9.12177238750379 9.76118849136441 7.77531259289321 .00008345360548 -.00018531455190 .00003597548239
+ 10.12356954316826 13.19855567173936 4.59548012987763 .00007251795036 .00017729794409 .00007437912596
+ 16.44096018033524 8.49594223674805 5.18770790783406 -.00002916600609 -.00020487934290 .00012560979307
+ 21.32259990813506 9.05430034531028 6.40977099370374 -.00006444425443 -.00008701692223 -.00001211268957
+ .91805647161017 11.55011964585150 9.88515796883886 -.00014546291956 .00005168308412 .00007430125808
+ 6.64290264973309 16.38962012168860 9.57536388242208 -.00003423216276 .00000059393460 -.00017163038754
+ 11.50470049275351 17.88969513225325 3.32751946540094 -.00007365531593 -.00006684503538 -.00012141568337
+ 17.61011639847869 17.04110871136681 5.30730827627531 -.00022547363204 -.00000543862201 -.00004990695892
+ 22.05656291772701 13.94675691076984 6.06168272933358 .00013210429640 .00010746196841 .00014654259271
+ 25.30714462141156 14.28347171204090 10.09070923698116 .00015300947654 -.00026374949985 .00003245517618
+ 2.75794310036827 19.25658925158208 11.19344095389074 -.00004108799811 .00002906333080 -.00023596706319
+ 8.18313692376944 26.29845728938838 10.30407452804663 .00012110499228 .00013167467320 .00010281689818
+ 18.60978124496339 22.29959259537078 5.60829612416409 .00019121671363 .00014144680322 -.00010475959815
+ 22.84829329813321 19.84773677205877 13.61998548524031 -.00002222521759 -.00032964360777 .00018581461830
+ 25.94057999541263 19.03523015907450 9.26189445568765 -.00010575486129 -.00017459388852 .00012358497782
+ 3.29728561696062 25.70683560677654 7.53438227517307 -.00002195883804 -.00015689640889 -.00004916068256
+ 6.56949693909231 25.94995971154797 15.50180447400022 -.00002442806890 .00013696857639 -.00010863015782
+ 15.96660277436585 26.52918527483502 7.31944973128455 -.00000472475035 -.00023869723303 .00002382823738
+ 23.03045062576480 25.29091677450053 12.09650280935409 -.00017303639788 -.00015665291082 -.00022517230134
+ 27.53935925760213 27.50338515652493 11.38766794897142 -.00007477199143 -.00003893640842 -.00000848988389
+ 4.55370392250731 .48523696641376 15.64629842900407 -.00009268707669 -.00005666278879 .00007566882249
+ 11.29850530696345 29.65138194733760 13.19481235623465 -.00010227753878 .00032802542572 -.00004801615971
+ 14.49669878671784 3.65300303392336 17.55261246560237 .00005638110509 -.00003000684834 -.00014735286200
+ 23.06126257535742 6.44167115300170 10.24442335453472 -.00019354865030 -.00015169906795 .00003694315772
+ 28.03452061963686 6.92662355929576 11.15226822904877 .00001463556677 .00004391462051 -.00000809003531
+ 6.20541097580495 4.53856757992347 12.89096915532097 .00016771128664 .00000916065835 .00008988222095
+ 11.13675945382781 4.42045625273340 11.83924210271118 -.00003211486832 .00017486667551 .00013986231829
+ 12.39428549416568 8.08533725069055 15.55530738686867 -.00020130345859 .00032616070434 .00009527251033
+ 21.26629032764945 7.90525175126895 14.64513395131776 .00002996782704 -.00003680526606 .00003569663251
+ 3.54172261258318 8.34933088514437 14.65876259542950 -.00000001911889 .00001234558256 .00014032651851
+ 6.02204838339775 11.92217074261791 11.27777094853912 -.00007495856241 .00008714977766 -.00002886049541
+ 8.47622405285306 11.85942791320680 15.55851761017808 -.00014471041137 -.00001637915037 .00015896027564
+ 20.25177799295767 13.58398029166053 18.37351446994315 -.00010844135498 -.00023172277460 -.00021229800639
+ 24.56503451976360 13.71812592623619 15.22502550787159 .00009856614859 .00001198076042 .00000381489609
+ .15966293526908 16.86551935668065 14.99267783360479 -.00006974248795 .00011312749621 -.00006740994484
+ 2.20459936334623 23.99692547756194 13.36652564397511 .00015920338553 -.00003415094030 .00007378180871
+ 7.11918063597546 19.89645483080226 14.09248936928452 .00006427246442 -.00001011356089 -.00010506749724
+ 17.61033987375861 18.25041912449580 17.50035664127510 -.00014683384906 -.00010633410298 -.00002056266913
+ 22.34386685937723 19.93635510620007 19.80211954196183 -.00028403669534 -.00010495180571 -.00027726574880
+ 27.14709851227217 21.72538090322028 16.34903859795155 -.00001884328300 -.00021618012185 .00006978265369
+ 4.01292692936124 28.08090707971520 21.17502242871657 .00000135660810 -.00002091496170 -.00009835315396
+ 6.89396760869328 24.12413800180283 21.80941721153071 .00007038536454 -.00018538505504 .00001653535078
+ 15.86378990416529 27.66051771971961 12.25912545247058 .00009400857654 -.00002741552552 .00026183404091
+ 20.19079344960407 29.31533850112708 14.12834996947561 -.00010489988958 .00010936564948 .00001034929481
+ 27.79720270889732 -.36738888597573 15.98179687146469 .00008730991281 .00003004490976 .00013495163168
+ 1.88491073099730 7.21819276203233 21.37159652735480 .00008928114270 .00021732017714 -.00040468949944
+ 17.63472695185559 1.32626590901319 7.51592374500493 .00024695724056 .00013912087188 -.00009168269551
+ 12.26641965219150 2.76007308957172 2.46675814675976 .00000613869653 -.00008480797776 .00004174300830
+ 22.90329522795335 3.52958659766534 20.72771676825076 .00010510701437 -.00018521933893 .00005769798366
+ 27.31407070207506 4.15324570710709 17.91848167534677 .00004572698490 -.00040606892878 -.00000084967210
+ 4.53325971094188 11.19797646859270 19.32716602223580 .00000771570709 -.00001321816678 .00008795238643
+ 8.88912868391582 5.81086933997418 .54733194963010 -.00007278775372 -.00007605244015 .00008252462332
+ 16.26132074554882 10.14223592643900 17.87287407324286 -.00005578865351 .00001135975417 -.00001774631982
+ 18.75247254990190 5.80884252956883 19.00487786395593 .00002742473404 .00008071722573 -.00004041991190
+ 25.87545485457667 9.06474994757150 16.67633827139910 -.00003818259215 -.00003235926400 -.00009398238577
+ 2.35887262325338 15.78724151722808 19.33417332220527 .00018324369310 .00000652993707 .00011924378713
+ 11.29695133331481 21.06035686794299 16.74832509663924 .00009122705562 -.00011279469755 .00002581102775
+ 12.69885330016767 16.63965010862582 18.50461024685942 .00017278847995 -.00015886775691 .00018674856079
+ 19.42276232874373 13.08707702893892 23.35999716119978 .00007459764324 -.00006542389595 -.00000493535168
+ 26.78007255469138 17.93332262560759 21.90920008574875 .00013731274709 .00012997150704 .00008215584300
+ 5.27189551656028 19.80768032557529 19.48998549262521 .00001745268412 .00020054969835 -.00010337606293
+ 11.21332623547118 25.42477129415413 19.63756472080370 -.00005359036370 -.00006563426363 -.00000673263668
+ 16.00374005870775 24.54002785893471 16.74102455088456 -.00002240665714 -.00006253361448 -.00006845780815
+ 20.21125765623007 24.49534371327057 19.97694154304212 -.00016382628532 -.00003675609062 .00011914800309
+ 1.29083518249911 22.17521808604715 .56898825091701 -.00000074212942 .00005118687361 .00005687895842
+ 6.51533419949453 2.25052938785638 19.88031234015601 -.00003670824264 -.00003081830420 -.00008023881626
+ 8.15744191793696 -.33432862833657 4.73971808185387 -.00014283469817 -.00011370869316 .00011783435527
+ 10.87828123525220 30.18441150124437 18.24924796059495 .00003744066258 .00013010095944 -.00000463132728
+ 20.79751578327079 29.44218701168228 19.36163938886716 .00013705637605 -.00004320073408 -.00016805753469
+ 27.20879354754849 26.09900765424461 19.43287652678911 -.00003615061254 .00001147896049 -.00000003739115
diff --git a/clusters/user/CPMD/INPF/BO.inp b/clusters/user/CPMD/INPF/BO.inp
new file mode 100644
index 0000000..51df34f
--- /dev/null
+++ b/clusters/user/CPMD/INPF/BO.inp
@@ -0,0 +1,368 @@
+&CPMD
+ RESTART WAVEFUNCTION COORDINATES VELOCITIES GEOFILE LATEST
+ MOLECULAR DYNAMICS BO
+ TEMPCONTROL IONS
+ 100 50
+ TIMESTEP ION
+ 10
+ MAXSTEP
+ 20
+ EXTRAPOLATE WFN
+ 4
+ CONVERGENCE ORBITAL
+ 1.0D-5
+ SUBTRACT COMVEL
+ 5
+ MIRROR
+&END
+
+&DFT
+ NEWCODE
+ FUNCTIONAL PBE
+&END
+
+&SYSTEM
+ POISSON SOLVER TUCKERMAN
+ ANGSTROM
+ CHARGE
+ 0.0
+ SYMMETRY
+ 8
+ CELL ABSOLUTE
+ 15.0 16.0 12.0 0.0 0.0 0.0
+ CUTOFF
+ 75.0
+&END
+
+&ATOMS
+*H_MT_PBE KLEINMAN-BYLANDER
+ LMAX=S
+ 207
+ 9.5312760 11.9163837 6.3146721
+ 7.1368019 12.1609694 5.5758348
+ 5.8021639 10.0695551 5.1470954
+ 5.6789186 7.5685047 5.1783698
+ 6.7605569 5.4208917 5.6873325
+ 10.0918864 5.1069838 6.8333187
+ 10.4263264 7.4039306 6.6581611
+ 1.0414208 4.8135550 2.2397956
+ 2.1889417 3.7001132 2.3120283
+ 3.5084981 2.3961675 3.2147518
+ 4.1934122 2.9584712 1.7754955
+ 9.7531071 1.5595383 2.5922277
+ 9.5158240 2.9233339 1.8132788
+ 12.4203721 0.4857847 1.5637188
+ 11.6482496 1.8237036 1.8155542
+ 14.1508876 1.6329881 2.0936369
+ 15.6171848 2.4094499 2.1506293
+ -0.1491751 6.9066098 2.2100029
+ 1.3524183 7.2794152 2.5150207
+ 5.5050309 5.8755608 -0.3679899
+ 3.8705082 5.9577421 -0.6500413
+ 8.2417769 6.0937935 2.3116579
+ 6.8518399 6.9171933 2.1644408
+ 10.8288716 5.3394514 0.5255259
+ 10.9242822 3.7599631 0.0927119
+ 12.7655544 4.6106155 11.7836131
+ 14.3382692 4.6102980 11.7715479
+ 2.1273455 9.4795225 2.4966053
+ 2.9143908 8.5853188 1.5041334
+ 4.8468932 9.1078284 12.2608781
+ 3.6414803 9.2464728 11.2784076
+ 6.9733920 7.6323764 10.9362945
+ 7.4569541 6.7548417 12.2109767
+ 11.2155414 8.5878059 0.7410069
+ 10.1777719 9.4960328 1.3963929
+ 12.8312253 7.4438305 1.9190613
+ 13.4902098 6.6331310 0.6878775
+ 1.8497920 11.9624221 3.2125292
+ 1.6228808 11.4737799 1.6681254
+ 3.6151802 11.4885439 2.1915876
+ 5.0934898 10.8192934 1.8414839
+ 7.7757834 13.0673972 0.5491801
+ 6.7135659 13.9260402 1.3933237
+ 9.4621655 12.1025483 -0.2160102
+ 9.2531405 11.8155225 1.3188685
+ 12.1536139 10.4434718 2.1239587
+ 13.1246012 10.7747367 3.3674723
+ 1.7538522 15.0789586 0.8834085
+ 1.1127539 16.0976778 1.9899710
+ 5.4233789 12.8945149 2.6463625
+ 5.1814920 14.4675472 2.7710367
+ 9.2865845 16.6897213 0.6888829
+ 8.4608034 15.3228035 0.3508974
+ 11.5765990 14.6786890 2.4726336
+ 10.7424040 15.1771739 1.0951323
+ 12.7778843 13.8267136 0.9982929
+ 13.1521713 12.3592522 1.4109453
+ 3.4034035 1.8569888 5.2301763
+ 2.2671012 1.0446488 4.7335963
+ 6.7818298 1.9610250 2.9671498
+ 6.4731607 2.4100849 4.5147815
+ 11.3511695 0.5015542 6.1980944
+ 10.6729230 0.7725988 4.8435594
+ 12.0140698 15.2391935 4.3777775
+ 12.0152340 13.7153218 4.6741168
+ 0.2683987 1.1793773 4.0058189
+ 0.0837158 0.1880167 5.2277420
+ 4.2605648 5.5439254 4.8338754
+ 4.3267649 4.4094753 3.6773585
+ 5.1242879 6.2800110 3.1200291
+ 4.9383879 6.6595898 1.5785357
+ 9.5886388 4.4409084 3.1907801
+ 8.0428592 3.9867685 3.2830157
+ 11.5685026 4.3554463 2.5565611
+ 11.5492935 4.2158493 4.1828816
+ 0.5130903 6.2936638 4.2160081
+ 0.2610961 5.1817036 5.3338950
+ 3.3857290 7.7718146 5.4654485
+ 3.3366213 8.5856892 4.0999595
+ 6.9903256 9.7316754 2.0244205
+ 5.8361900 8.6256421 2.1948685
+ 8.7436486 8.2354268 2.5904814
+ 10.1631137 8.5835196 3.1117210
+ 12.2537871 7.3413818 4.0034905
+ 11.3433906 6.4407751 3.1704067
+ 13.0034196 7.4676435 6.2542930
+ 14.2411123 7.0191658 5.3355354
+ 1.0725364 9.6669571 6.6748301
+ 2.1812686 9.5640850 5.5799624
+ 4.9001813 13.6195936 4.6712063
+ 3.4360537 14.0095972 5.0648084
+ 9.5491622 10.9684156 3.3926083
+ 10.8296124 11.6982039 3.0729852
+ 11.1443670 10.1621611 6.9904315
+ 12.6547977 10.3247773 6.4190259
+ 13.5813341 9.0796232 4.9282277
+ 14.6317509 10.1964518 5.2331926
+ 0.9211918 13.8046998 4.4872643
+ 1.6927322 14.1597248 3.1655912
+ 2.5804270 13.3008172 8.0537602
+ 3.8589722 13.6399669 7.3073028
+ 8.9354754 13.2147201 3.5962886
+ 7.5174920 13.9236059 3.5519964
+ 11.7291608 13.9844084 7.0692789
+ 12.1270492 12.4661989 6.7004952
+ 13.6520322 14.1659691 6.1380327
+ 15.1363214 13.8080336 6.3920907
+ 1.4526445 0.0800116 8.3598363
+ 2.8313100 -0.6608895 8.2912021
+ 5.9419726 16.6141547 6.6128635
+ 5.3828439 15.2063316 6.3742575
+ 7.0258863 1.2580660 9.6117110
+ 7.8846881 1.7228953 8.3599951
+ 12.0785765 2.4439522 5.2912433
+ 11.7697487 3.6114760 6.3071049
+ 13.8752921 3.5728460 5.6692346
+ 15.2252232 2.8281349 5.6390186
+ 2.8201972 3.2443328 7.1614615
+ 2.9352933 1.5676347 7.2641219
+ 4.9444205 2.4615209 6.5650259
+ 6.3600226 3.0742552 6.7625677
+ 7.4503923 4.7366126 8.3960850
+ 6.5396783 3.4942632 8.7958784
+ 10.7275870 3.7163060 8.4209034
+ 12.1351456 4.4249802 8.1715022
+ 1.8554542 4.8134492 8.6637428
+ 0.9524132 4.2206648 7.4801321
+ 2.2296883 6.0584445 6.0184916
+ 3.4919348 6.1954485 6.9183046
+ 3.8944800 6.0847975 8.9850593
+ 5.1567265 5.5165141 8.2809360
+ 10.2195240 8.0167707 9.5868925
+ 10.1173927 6.4958095 9.3588172
+ 12.2035682 7.2595181 8.6470208
+ 13.4086106 6.3780675 8.2425707
+ -0.6704676 8.3031085 7.9483481
+ 0.5985524 8.6147939 8.7664032
+ 0.4974795 12.2864374 7.6811665
+ 1.3498782 11.9665497 6.4401930
+ 2.9853535 10.9565091 6.9834463
+ 3.9772433 9.8149150 6.8531100
+ 9.1605344 10.3664765 8.6166461
+ 8.3861365 9.3644794 9.4711615
+ 11.1389165 10.2659328 9.8598422
+ 11.5412500 10.1994152 11.3590542
+ 14.7165780 10.5721148 8.6407236
+ 13.4405200 11.3465127 8.3493586
+ 1.2572193 14.5641750 10.8473928
+ 2.6221791 14.0179582 11.3117458
+ 4.5150990 12.9555820 11.0434000
+ 3.9849164 12.4370412 12.4247114
+ 7.5755957 15.1623040 6.7563234
+ 8.4067214 14.3501757 5.5417029
+ 10.7310267 15.6113109 8.4942474
+ 9.7465982 15.2483483 7.2475058
+ 14.5038488 -0.8975375 9.1587882
+ 14.5949202 -0.6429504 7.5799349
+ 0.6658108 3.0170512 10.8373913
+ 1.2704487 3.7067279 12.2469607
+ 8.4842988 1.2343589 4.0526510
+ 9.0686693 -0.2354310 3.7847815
+ 5.8737616 0.7486271 1.5749902
+ 5.9119153 2.1680392 0.8773759
+ 12.3889919 1.8422777 11.9204055
+ 11.8294928 0.9402421 10.7509237
+ 13.6401786 2.0992461 10.0578074
+ 14.5082939 1.3214614 8.9700835
+ 1.9147220 6.7830469 10.1877204
+ 1.7923233 5.2026590 10.5650767
+ 4.2196065 2.5457130 -0.4103770
+ 4.5841038 4.0309548 0.0414875
+ 9.1041771 4.6154840 9.8102053
+ 8.1518697 5.8167692 10.2509042
+ 9.1525439 2.4508844 9.9519719
+ 10.6888513 2.5513752 10.4114565
+ 13.6042475 5.0290360 9.7713108
+ 14.1146918 3.8633643 8.8070970
+ 0.4640884 8.6504605 10.8355392
+ 1.8775209 9.1416957 10.3507599
+ 5.8189918 11.8809818 9.4918523
+ 5.1488417 11.1134631 8.3270803
+ 6.4090244 9.7121488 9.5200045
+ 6.5272955 8.2303996 9.0337436
+ 10.3698103 6.9742916 11.3730774
+ 9.3301887 7.0599653 12.6205599
+ 13.8543896 8.8785359 12.3003547
+ 13.4271848 9.6657400 10.9881539
+ 2.9952491 11.3838727 10.7228773
+ 3.0259943 10.5271876 9.3533137
+ 6.4328903 13.5290514 11.2636436
+ 5.8403705 14.3628760 10.0456892
+ 8.5538327 13.6028187 8.0892680
+ 7.5458559 13.0065947 9.1602699
+ 9.9518132 12.9009180 9.9287411
+ 11.2415240 12.1172065 10.4877639
+ -0.0683168 12.3778263 0.4393759
+ 0.1658441 10.9402104 0.0414875
+ 2.9607467 1.0162320 9.6601836
+ 2.9148141 0.5360566 11.0214392
+ 3.4796579 -0.4063023 2.0732635
+ 4.0468830 0.3043828 3.3323350
+ 4.9032506 16.2952196 10.0456363
+ 5.6601857 15.8231935 8.6966577
+ 10.2125917 15.7363026 10.8672369
+ 11.2358089 14.5943381 10.3627722
+ 14.0007071 13.5384178 11.1321960
+ 14.4219322 12.9672768 9.7735863
+*N_MT_PBE KLEINMAN-BYLANDER
+ LMAX=P
+ 1
+ 9.5048701 9.8679915 6.3721408
+*C_MT_PBE KLEINMAN-BYLANDER
+ LMAX=P
+ 9
+ 8.9092811 11.0268368 6.1379269
+ 7.5726852 11.1859604 5.6644720
+ 6.8389280 10.0366403 5.5045547
+ 7.4221343 8.7773043 5.7297196
+ 6.7216094 7.5586620 5.5166199
+ 7.3406410 6.3462111 5.7241103
+ 8.6803061 6.3138783 6.1334818
+ 9.4006222 7.4751049 6.3393847
+ 8.7860886 8.7396798 6.1984648
+*O_MT_PBE KLEINMAN-BYLANDER
+ LMAX=P
+ 101
+ 9.2286396 5.0715818 6.3146721
+ 1.2826727 3.8937920 1.9564212
+ 3.6662987 3.1795615 2.6045575
+ 9.9992804 2.0530490 1.7359130
+ 12.5747331 1.4788917 1.5889605
+ 15.1265317 1.5482668 2.3203893
+ 0.6643820 6.5914847 2.6909721
+ 4.6023604 5.6202857 -0.0475730
+ 7.8691303 6.9415355 1.9329257
+ 11.3000510 4.4411730 0.6519993
+ 13.5657763 5.1412745 11.4726157
+ 2.4302994 8.5533035 2.3821972
+ 3.9521074 8.7776747 12.0701097
+ 7.0588012 6.6892238 11.2897320
+ 11.0854696 9.5562532 0.9236789
+ 13.5986382 7.4515565 1.2587539
+ 2.1115760 11.2758676 2.5435963
+ 4.5542582 11.6864562 1.8604285
+ 7.2459712 13.9261460 0.5521435
+ 8.8173630 11.7134442 0.4399580
+ 12.5370557 11.1751651 2.6565227
+ 1.6727293 15.2836444 1.8415897
+ 5.8340733 13.7233124 2.9857768
+ 9.3334696 15.7930833 0.2727909
+ 11.6199386 15.0265172 1.5265176
+ 13.3647948 13.0654921 0.7613802
+ 3.1832657 1.2793918 4.4592708
+ 7.1819936 2.2843523 3.8345242
+ 11.6066034 0.7687887 5.2682241
+ 12.0489426 14.3579017 3.9413122
+ 0.4901769 1.0473476 4.9613542
+ 4.8265728 5.1663575 4.1143531
+ 5.3567555 6.9834463 2.4314107
+ 8.7003090 4.4969483 2.7445249
+ 11.2837523 4.7918058 3.3919732
+ 0.4865785 6.1118385 5.2305996
+ 3.5154303 8.6730564 5.0679834
+ 6.0883959 9.4671927 1.7614723
+ 9.3200814 9.0178153 2.8087670
+ 11.6711101 7.3797472 3.2069200
+ 13.3911478 7.5598791 5.3396101
+ 1.4596825 10.1899959 5.9245626
+ 4.3297283 13.9158270 5.4521132
+ 9.8468773 11.7997001 2.9683669
+ 12.0909064 10.5046976 7.2063887
+ 13.7277045 10.0739473 4.9004988
+ 1.7449620 13.6043004 3.9872977
+ 3.4765358 13.7314088 8.2037820
+ 8.4491615 14.0399191 3.8731541
+ 12.1881162 13.3842156 6.4024097
+ 14.5735944 14.5543852 6.0261647
+ 2.4102436 0.2570743 8.2792426
+ 5.9794383 15.6891000 6.9826526
+ 7.6710063 1.9332432 9.2892303
+ 12.2045207 3.4095949 5.4209447
+ 14.8351667 3.6651875 5.9015964
+ 3.2828569 2.4016709 6.8211477
+ 5.8934999 2.3382755 6.2643474
+ 6.5598399 4.2768634 8.2309817
+ 11.2534834 4.1834637 7.7496950
+ 1.8741871 4.4182067 7.7563626
+ 3.1871287 6.3084807 5.9681139
+ 4.4862060 6.2758305 8.2323575
+ 10.7173739 7.1895609 9.7239495
+ 12.9987099 7.2592535 8.0567236
+ 0.0848800 8.9242568 7.9341662
+ 1.1657775 12.6988252 7.0728773
+ 3.7669482 10.5288281 7.4580125
+ 9.3197639 9.6582786 9.2609194
+ 11.8253652 10.5504185 10.4803025
+ 14.3657335 11.4977516 8.6511484
+ 2.1235354 14.8598792 11.2058574
+ 3.6477775 12.7669303 11.5409325
+ 8.3942329 14.6374660 6.4859139
+ 10.6850941 15.5124077 7.4763749
+ 14.7091696 -0.1945785 8.4565170
+ 0.9969699 3.8185430 11.3114812
+ 9.3306120 0.7011069 3.9777195
+ 6.4910998 1.4610055 1.3051628
+ 12.1193232 1.8687895 10.9683098
+ 14.4537357 2.1999486 9.4820625
+ 2.3988663 5.9257798 10.2270383
+ 4.7042799 3.0753665 0.2891954
+ 8.6054275 5.3670215 9.4580379
+ 9.9232376 3.0734615 10.0571724
+ 13.6928847 4.7969918 8.8251948
+ 1.2472708 8.3542271 10.2305838
+ 5.9775862 11.1452666 8.8627135
+ 6.7190164 8.8061444 9.7912079
+ 10.2776805 6.9257131 12.3616335
+ 14.1706788 9.4892064 11.5934268
+ 2.7896637 10.4807258 10.3141938
+ 5.9341408 13.4545432 10.3917711
+ 8.4689527 12.9863801 8.8593267
+ 10.6962068 12.9625671 10.5707389
+ 0.6830620 11.7343467 0.3007843
+ 3.4479602 1.1910722 10.5206258
+ 4.3175043 -0.1763219 2.5075064
+ 5.7563372 15.9722098 9.6571144
+ 11.0048230 15.5803541 10.2466178
+ 14.3984896 13.8109441 10.2834486
+&END
diff --git a/clusters/user/CPMD/INPF/WO.inp b/clusters/user/CPMD/INPF/WO.inp
new file mode 100644
index 0000000..00e8459
--- /dev/null
+++ b/clusters/user/CPMD/INPF/WO.inp
@@ -0,0 +1,357 @@
+&CPMD
+ OPTIMIZE WAVEFUNCTION
+ CONVERGENCE ORBITAL
+ 1.0D-5
+ MIRROR
+&END
+
+&DFT
+ NEWCODE
+ FUNCTIONAL PBE
+&END
+
+&SYSTEM
+ POISSON SOLVER TUCKERMAN
+ ANGSTROM
+ CHARGE
+ 0.0
+ SYMMETRY
+ 8
+ CELL ABSOLUTE
+ 15.0 16.0 12.0 0.0 0.0 0.0
+ CUTOFF
+ 75.0
+&END
+
+&ATOMS
+*H_MT_PBE KLEINMAN-BYLANDER
+ LMAX=S
+ 207
+ 9.5312760 11.9163837 6.3146721
+ 7.1368019 12.1609694 5.5758348
+ 5.8021639 10.0695551 5.1470954
+ 5.6789186 7.5685047 5.1783698
+ 6.7605569 5.4208917 5.6873325
+ 10.0918864 5.1069838 6.8333187
+ 10.4263264 7.4039306 6.6581611
+ 1.0414208 4.8135550 2.2397956
+ 2.1889417 3.7001132 2.3120283
+ 3.5084981 2.3961675 3.2147518
+ 4.1934122 2.9584712 1.7754955
+ 9.7531071 1.5595383 2.5922277
+ 9.5158240 2.9233339 1.8132788
+ 12.4203721 0.4857847 1.5637188
+ 11.6482496 1.8237036 1.8155542
+ 14.1508876 1.6329881 2.0936369
+ 15.6171848 2.4094499 2.1506293
+ -0.1491751 6.9066098 2.2100029
+ 1.3524183 7.2794152 2.5150207
+ 5.5050309 5.8755608 -0.3679899
+ 3.8705082 5.9577421 -0.6500413
+ 8.2417769 6.0937935 2.3116579
+ 6.8518399 6.9171933 2.1644408
+ 10.8288716 5.3394514 0.5255259
+ 10.9242822 3.7599631 0.0927119
+ 12.7655544 4.6106155 11.7836131
+ 14.3382692 4.6102980 11.7715479
+ 2.1273455 9.4795225 2.4966053
+ 2.9143908 8.5853188 1.5041334
+ 4.8468932 9.1078284 12.2608781
+ 3.6414803 9.2464728 11.2784076
+ 6.9733920 7.6323764 10.9362945
+ 7.4569541 6.7548417 12.2109767
+ 11.2155414 8.5878059 0.7410069
+ 10.1777719 9.4960328 1.3963929
+ 12.8312253 7.4438305 1.9190613
+ 13.4902098 6.6331310 0.6878775
+ 1.8497920 11.9624221 3.2125292
+ 1.6228808 11.4737799 1.6681254
+ 3.6151802 11.4885439 2.1915876
+ 5.0934898 10.8192934 1.8414839
+ 7.7757834 13.0673972 0.5491801
+ 6.7135659 13.9260402 1.3933237
+ 9.4621655 12.1025483 -0.2160102
+ 9.2531405 11.8155225 1.3188685
+ 12.1536139 10.4434718 2.1239587
+ 13.1246012 10.7747367 3.3674723
+ 1.7538522 15.0789586 0.8834085
+ 1.1127539 16.0976778 1.9899710
+ 5.4233789 12.8945149 2.6463625
+ 5.1814920 14.4675472 2.7710367
+ 9.2865845 16.6897213 0.6888829
+ 8.4608034 15.3228035 0.3508974
+ 11.5765990 14.6786890 2.4726336
+ 10.7424040 15.1771739 1.0951323
+ 12.7778843 13.8267136 0.9982929
+ 13.1521713 12.3592522 1.4109453
+ 3.4034035 1.8569888 5.2301763
+ 2.2671012 1.0446488 4.7335963
+ 6.7818298 1.9610250 2.9671498
+ 6.4731607 2.4100849 4.5147815
+ 11.3511695 0.5015542 6.1980944
+ 10.6729230 0.7725988 4.8435594
+ 12.0140698 15.2391935 4.3777775
+ 12.0152340 13.7153218 4.6741168
+ 0.2683987 1.1793773 4.0058189
+ 0.0837158 0.1880167 5.2277420
+ 4.2605648 5.5439254 4.8338754
+ 4.3267649 4.4094753 3.6773585
+ 5.1242879 6.2800110 3.1200291
+ 4.9383879 6.6595898 1.5785357
+ 9.5886388 4.4409084 3.1907801
+ 8.0428592 3.9867685 3.2830157
+ 11.5685026 4.3554463 2.5565611
+ 11.5492935 4.2158493 4.1828816
+ 0.5130903 6.2936638 4.2160081
+ 0.2610961 5.1817036 5.3338950
+ 3.3857290 7.7718146 5.4654485
+ 3.3366213 8.5856892 4.0999595
+ 6.9903256 9.7316754 2.0244205
+ 5.8361900 8.6256421 2.1948685
+ 8.7436486 8.2354268 2.5904814
+ 10.1631137 8.5835196 3.1117210
+ 12.2537871 7.3413818 4.0034905
+ 11.3433906 6.4407751 3.1704067
+ 13.0034196 7.4676435 6.2542930
+ 14.2411123 7.0191658 5.3355354
+ 1.0725364 9.6669571 6.6748301
+ 2.1812686 9.5640850 5.5799624
+ 4.9001813 13.6195936 4.6712063
+ 3.4360537 14.0095972 5.0648084
+ 9.5491622 10.9684156 3.3926083
+ 10.8296124 11.6982039 3.0729852
+ 11.1443670 10.1621611 6.9904315
+ 12.6547977 10.3247773 6.4190259
+ 13.5813341 9.0796232 4.9282277
+ 14.6317509 10.1964518 5.2331926
+ 0.9211918 13.8046998 4.4872643
+ 1.6927322 14.1597248 3.1655912
+ 2.5804270 13.3008172 8.0537602
+ 3.8589722 13.6399669 7.3073028
+ 8.9354754 13.2147201 3.5962886
+ 7.5174920 13.9236059 3.5519964
+ 11.7291608 13.9844084 7.0692789
+ 12.1270492 12.4661989 6.7004952
+ 13.6520322 14.1659691 6.1380327
+ 15.1363214 13.8080336 6.3920907
+ 1.4526445 0.0800116 8.3598363
+ 2.8313100 -0.6608895 8.2912021
+ 5.9419726 16.6141547 6.6128635
+ 5.3828439 15.2063316 6.3742575
+ 7.0258863 1.2580660 9.6117110
+ 7.8846881 1.7228953 8.3599951
+ 12.0785765 2.4439522 5.2912433
+ 11.7697487 3.6114760 6.3071049
+ 13.8752921 3.5728460 5.6692346
+ 15.2252232 2.8281349 5.6390186
+ 2.8201972 3.2443328 7.1614615
+ 2.9352933 1.5676347 7.2641219
+ 4.9444205 2.4615209 6.5650259
+ 6.3600226 3.0742552 6.7625677
+ 7.4503923 4.7366126 8.3960850
+ 6.5396783 3.4942632 8.7958784
+ 10.7275870 3.7163060 8.4209034
+ 12.1351456 4.4249802 8.1715022
+ 1.8554542 4.8134492 8.6637428
+ 0.9524132 4.2206648 7.4801321
+ 2.2296883 6.0584445 6.0184916
+ 3.4919348 6.1954485 6.9183046
+ 3.8944800 6.0847975 8.9850593
+ 5.1567265 5.5165141 8.2809360
+ 10.2195240 8.0167707 9.5868925
+ 10.1173927 6.4958095 9.3588172
+ 12.2035682 7.2595181 8.6470208
+ 13.4086106 6.3780675 8.2425707
+ -0.6704676 8.3031085 7.9483481
+ 0.5985524 8.6147939 8.7664032
+ 0.4974795 12.2864374 7.6811665
+ 1.3498782 11.9665497 6.4401930
+ 2.9853535 10.9565091 6.9834463
+ 3.9772433 9.8149150 6.8531100
+ 9.1605344 10.3664765 8.6166461
+ 8.3861365 9.3644794 9.4711615
+ 11.1389165 10.2659328 9.8598422
+ 11.5412500 10.1994152 11.3590542
+ 14.7165780 10.5721148 8.6407236
+ 13.4405200 11.3465127 8.3493586
+ 1.2572193 14.5641750 10.8473928
+ 2.6221791 14.0179582 11.3117458
+ 4.5150990 12.9555820 11.0434000
+ 3.9849164 12.4370412 12.4247114
+ 7.5755957 15.1623040 6.7563234
+ 8.4067214 14.3501757 5.5417029
+ 10.7310267 15.6113109 8.4942474
+ 9.7465982 15.2483483 7.2475058
+ 14.5038488 -0.8975375 9.1587882
+ 14.5949202 -0.6429504 7.5799349
+ 0.6658108 3.0170512 10.8373913
+ 1.2704487 3.7067279 12.2469607
+ 8.4842988 1.2343589 4.0526510
+ 9.0686693 -0.2354310 3.7847815
+ 5.8737616 0.7486271 1.5749902
+ 5.9119153 2.1680392 0.8773759
+ 12.3889919 1.8422777 11.9204055
+ 11.8294928 0.9402421 10.7509237
+ 13.6401786 2.0992461 10.0578074
+ 14.5082939 1.3214614 8.9700835
+ 1.9147220 6.7830469 10.1877204
+ 1.7923233 5.2026590 10.5650767
+ 4.2196065 2.5457130 -0.4103770
+ 4.5841038 4.0309548 0.0414875
+ 9.1041771 4.6154840 9.8102053
+ 8.1518697 5.8167692 10.2509042
+ 9.1525439 2.4508844 9.9519719
+ 10.6888513 2.5513752 10.4114565
+ 13.6042475 5.0290360 9.7713108
+ 14.1146918 3.8633643 8.8070970
+ 0.4640884 8.6504605 10.8355392
+ 1.8775209 9.1416957 10.3507599
+ 5.8189918 11.8809818 9.4918523
+ 5.1488417 11.1134631 8.3270803
+ 6.4090244 9.7121488 9.5200045
+ 6.5272955 8.2303996 9.0337436
+ 10.3698103 6.9742916 11.3730774
+ 9.3301887 7.0599653 12.6205599
+ 13.8543896 8.8785359 12.3003547
+ 13.4271848 9.6657400 10.9881539
+ 2.9952491 11.3838727 10.7228773
+ 3.0259943 10.5271876 9.3533137
+ 6.4328903 13.5290514 11.2636436
+ 5.8403705 14.3628760 10.0456892
+ 8.5538327 13.6028187 8.0892680
+ 7.5458559 13.0065947 9.1602699
+ 9.9518132 12.9009180 9.9287411
+ 11.2415240 12.1172065 10.4877639
+ -0.0683168 12.3778263 0.4393759
+ 0.1658441 10.9402104 0.0414875
+ 2.9607467 1.0162320 9.6601836
+ 2.9148141 0.5360566 11.0214392
+ 3.4796579 -0.4063023 2.0732635
+ 4.0468830 0.3043828 3.3323350
+ 4.9032506 16.2952196 10.0456363
+ 5.6601857 15.8231935 8.6966577
+ 10.2125917 15.7363026 10.8672369
+ 11.2358089 14.5943381 10.3627722
+ 14.0007071 13.5384178 11.1321960
+ 14.4219322 12.9672768 9.7735863
+*N_MT_PBE KLEINMAN-BYLANDER
+ LMAX=P
+ 1
+ 9.5048701 9.8679915 6.3721408
+*C_MT_PBE KLEINMAN-BYLANDER
+ LMAX=P
+ 9
+ 8.9092811 11.0268368 6.1379269
+ 7.5726852 11.1859604 5.6644720
+ 6.8389280 10.0366403 5.5045547
+ 7.4221343 8.7773043 5.7297196
+ 6.7216094 7.5586620 5.5166199
+ 7.3406410 6.3462111 5.7241103
+ 8.6803061 6.3138783 6.1334818
+ 9.4006222 7.4751049 6.3393847
+ 8.7860886 8.7396798 6.1984648
+*O_MT_PBE KLEINMAN-BYLANDER
+ LMAX=P
+ 101
+ 9.2286396 5.0715818 6.3146721
+ 1.2826727 3.8937920 1.9564212
+ 3.6662987 3.1795615 2.6045575
+ 9.9992804 2.0530490 1.7359130
+ 12.5747331 1.4788917 1.5889605
+ 15.1265317 1.5482668 2.3203893
+ 0.6643820 6.5914847 2.6909721
+ 4.6023604 5.6202857 -0.0475730
+ 7.8691303 6.9415355 1.9329257
+ 11.3000510 4.4411730 0.6519993
+ 13.5657763 5.1412745 11.4726157
+ 2.4302994 8.5533035 2.3821972
+ 3.9521074 8.7776747 12.0701097
+ 7.0588012 6.6892238 11.2897320
+ 11.0854696 9.5562532 0.9236789
+ 13.5986382 7.4515565 1.2587539
+ 2.1115760 11.2758676 2.5435963
+ 4.5542582 11.6864562 1.8604285
+ 7.2459712 13.9261460 0.5521435
+ 8.8173630 11.7134442 0.4399580
+ 12.5370557 11.1751651 2.6565227
+ 1.6727293 15.2836444 1.8415897
+ 5.8340733 13.7233124 2.9857768
+ 9.3334696 15.7930833 0.2727909
+ 11.6199386 15.0265172 1.5265176
+ 13.3647948 13.0654921 0.7613802
+ 3.1832657 1.2793918 4.4592708
+ 7.1819936 2.2843523 3.8345242
+ 11.6066034 0.7687887 5.2682241
+ 12.0489426 14.3579017 3.9413122
+ 0.4901769 1.0473476 4.9613542
+ 4.8265728 5.1663575 4.1143531
+ 5.3567555 6.9834463 2.4314107
+ 8.7003090 4.4969483 2.7445249
+ 11.2837523 4.7918058 3.3919732
+ 0.4865785 6.1118385 5.2305996
+ 3.5154303 8.6730564 5.0679834
+ 6.0883959 9.4671927 1.7614723
+ 9.3200814 9.0178153 2.8087670
+ 11.6711101 7.3797472 3.2069200
+ 13.3911478 7.5598791 5.3396101
+ 1.4596825 10.1899959 5.9245626
+ 4.3297283 13.9158270 5.4521132
+ 9.8468773 11.7997001 2.9683669
+ 12.0909064 10.5046976 7.2063887
+ 13.7277045 10.0739473 4.9004988
+ 1.7449620 13.6043004 3.9872977
+ 3.4765358 13.7314088 8.2037820
+ 8.4491615 14.0399191 3.8731541
+ 12.1881162 13.3842156 6.4024097
+ 14.5735944 14.5543852 6.0261647
+ 2.4102436 0.2570743 8.2792426
+ 5.9794383 15.6891000 6.9826526
+ 7.6710063 1.9332432 9.2892303
+ 12.2045207 3.4095949 5.4209447
+ 14.8351667 3.6651875 5.9015964
+ 3.2828569 2.4016709 6.8211477
+ 5.8934999 2.3382755 6.2643474
+ 6.5598399 4.2768634 8.2309817
+ 11.2534834 4.1834637 7.7496950
+ 1.8741871 4.4182067 7.7563626
+ 3.1871287 6.3084807 5.9681139
+ 4.4862060 6.2758305 8.2323575
+ 10.7173739 7.1895609 9.7239495
+ 12.9987099 7.2592535 8.0567236
+ 0.0848800 8.9242568 7.9341662
+ 1.1657775 12.6988252 7.0728773
+ 3.7669482 10.5288281 7.4580125
+ 9.3197639 9.6582786 9.2609194
+ 11.8253652 10.5504185 10.4803025
+ 14.3657335 11.4977516 8.6511484
+ 2.1235354 14.8598792 11.2058574
+ 3.6477775 12.7669303 11.5409325
+ 8.3942329 14.6374660 6.4859139
+ 10.6850941 15.5124077 7.4763749
+ 14.7091696 -0.1945785 8.4565170
+ 0.9969699 3.8185430 11.3114812
+ 9.3306120 0.7011069 3.9777195
+ 6.4910998 1.4610055 1.3051628
+ 12.1193232 1.8687895 10.9683098
+ 14.4537357 2.1999486 9.4820625
+ 2.3988663 5.9257798 10.2270383
+ 4.7042799 3.0753665 0.2891954
+ 8.6054275 5.3670215 9.4580379
+ 9.9232376 3.0734615 10.0571724
+ 13.6928847 4.7969918 8.8251948
+ 1.2472708 8.3542271 10.2305838
+ 5.9775862 11.1452666 8.8627135
+ 6.7190164 8.8061444 9.7912079
+ 10.2776805 6.9257131 12.3616335
+ 14.1706788 9.4892064 11.5934268
+ 2.7896637 10.4807258 10.3141938
+ 5.9341408 13.4545432 10.3917711
+ 8.4689527 12.9863801 8.8593267
+ 10.6962068 12.9625671 10.5707389
+ 0.6830620 11.7343467 0.3007843
+ 3.4479602 1.1910722 10.5206258
+ 4.3175043 -0.1763219 2.5075064
+ 5.7563372 15.9722098 9.6571144
+ 11.0048230 15.5803541 10.2466178
+ 14.3984896 13.8109441 10.2834486
+&END
diff --git a/clusters/user/CPMD/PPs/C_MT_PBE b/clusters/user/CPMD/PPs/C_MT_PBE
new file mode 100644
index 0000000..0473c17
--- /dev/null
+++ b/clusters/user/CPMD/PPs/C_MT_PBE
@@ -0,0 +1,1887 @@
+&ATOM
+ Z = 6
+ ZV = 4
+ XC = 1134 0.666667
+ TYPE = NORMCONSERVING NUMERIC
+&END
+&INFO
+ ============================================================
+ | Pseudopotential Report Mon Sep 17 12:03:11 2001 |
+ ------------------------------------------------------------
+ | Atomic Symbol : C |
+ | Atomic Number : 6 |
+ | Number of core states : 1 |
+ | Number of valence states : 2 |
+ | Exchange-Correlation Functional : |
+ | Slater exchange : 0.6667 |
+ | LDA correlation : Ceperley-Alder |
+ | Exchange GC : Perdew-Burke-Ernzerhof |
+ | Correlation GC : Perdew-Burke-Ernzerhof |
+ | Electron Configuration : N L Occupation |
+ | 1 S 2.0000 |
+ | 2 S 2.0000 |
+ | 2 P 2.0000 |
+ | Full Potential Total Energy -37.748221 |
+ | Trouiller-Martins normconserving PP |
+ | n l rc energy |
+ | 2 S 1.2300 -0.50506 |
+ | 2 P 1.2300 -0.19451 |
+ | 3 D 1.2300 -0.19451 |
+ | Number of Mesh Points : 615 |
+ | Pseudoatom Total Energy -5.361882 |
+ ============================================================
+&END
+&POTENTIAL
+ 615
+ 0.10416667E-02 -0.47763802E+00 -0.11590978E+02 -0.88426676E+01
+ 0.10598958E-02 -0.47763802E+00 -0.11590978E+02 -0.88426676E+01
+ 0.10784440E-02 -0.47766856E+00 -0.11591008E+02 -0.88426981E+01
+ 0.10973168E-02 -0.47805511E+00 -0.11591395E+02 -0.88430847E+01
+ 0.11165198E-02 -0.47848861E+00 -0.11591828E+02 -0.88435182E+01
+ 0.11360589E-02 -0.47855907E+00 -0.11591899E+02 -0.88435887E+01
+ 0.11559400E-02 -0.47873555E+00 -0.11592075E+02 -0.88437651E+01
+ 0.11761689E-02 -0.47888930E+00 -0.11592229E+02 -0.88439189E+01
+ 0.11967519E-02 -0.47905597E+00 -0.11592396E+02 -0.88440855E+01
+ 0.12176950E-02 -0.47922598E+00 -0.11592566E+02 -0.88442556E+01
+ 0.12390047E-02 -0.47940222E+00 -0.11592742E+02 -0.88444318E+01
+ 0.12606873E-02 -0.47958417E+00 -0.11592924E+02 -0.88446138E+01
+ 0.12827493E-02 -0.47977223E+00 -0.11593112E+02 -0.88448018E+01
+ 0.13051974E-02 -0.47996657E+00 -0.11593306E+02 -0.88449962E+01
+ 0.13280384E-02 -0.48016743E+00 -0.11593507E+02 -0.88451970E+01
+ 0.13512790E-02 -0.48037505E+00 -0.11593715E+02 -0.88454046E+01
+ 0.13749264E-02 -0.48058966E+00 -0.11593929E+02 -0.88456192E+01
+ 0.13989876E-02 -0.48081153E+00 -0.11594151E+02 -0.88458411E+01
+ 0.14234699E-02 -0.48104090E+00 -0.11594381E+02 -0.88460705E+01
+ 0.14483806E-02 -0.48127804E+00 -0.11594618E+02 -0.88463076E+01
+ 0.14737273E-02 -0.48152324E+00 -0.11594863E+02 -0.88465528E+01
+ 0.14995175E-02 -0.48177678E+00 -0.11595116E+02 -0.88468064E+01
+ 0.15257591E-02 -0.48203896E+00 -0.11595379E+02 -0.88470685E+01
+ 0.15524599E-02 -0.48231008E+00 -0.11595650E+02 -0.88473397E+01
+ 0.15796279E-02 -0.48259046E+00 -0.11595930E+02 -0.88476200E+01
+ 0.16072714E-02 -0.48288043E+00 -0.11596220E+02 -0.88479100E+01
+ 0.16353986E-02 -0.48318033E+00 -0.11596520E+02 -0.88482099E+01
+ 0.16640181E-02 -0.48349051E+00 -0.11596830E+02 -0.88485201E+01
+ 0.16931384E-02 -0.48381132E+00 -0.11597151E+02 -0.88488409E+01
+ 0.17227684E-02 -0.48414315E+00 -0.11597483E+02 -0.88491727E+01
+ 0.17529168E-02 -0.48448639E+00 -0.11597826E+02 -0.88495160E+01
+ 0.17835928E-02 -0.48484142E+00 -0.11598181E+02 -0.88498710E+01
+ 0.18148057E-02 -0.48520867E+00 -0.11598548E+02 -0.88502383E+01
+ 0.18465648E-02 -0.48558857E+00 -0.11598928E+02 -0.88506181E+01
+ 0.18788797E-02 -0.48598155E+00 -0.11599321E+02 -0.88510111E+01
+ 0.19117601E-02 -0.48638807E+00 -0.11599728E+02 -0.88514177E+01
+ 0.19452159E-02 -0.48680861E+00 -0.11600148E+02 -0.88518382E+01
+ 0.19792572E-02 -0.48724365E+00 -0.11600583E+02 -0.88522732E+01
+ 0.20138942E-02 -0.48769371E+00 -0.11601033E+02 -0.88527233E+01
+ 0.20491373E-02 -0.48815929E+00 -0.11601499E+02 -0.88531889E+01
+ 0.20849972E-02 -0.48864095E+00 -0.11601981E+02 -0.88536705E+01
+ 0.21214847E-02 -0.48913923E+00 -0.11602479E+02 -0.88541688E+01
+ 0.21586107E-02 -0.48965472E+00 -0.11602994E+02 -0.88546843E+01
+ 0.21963864E-02 -0.49018801E+00 -0.11603528E+02 -0.88552176E+01
+ 0.22348231E-02 -0.49073971E+00 -0.11604079E+02 -0.88557693E+01
+ 0.22739325E-02 -0.49131047E+00 -0.11604650E+02 -0.88563400E+01
+ 0.23137263E-02 -0.49190093E+00 -0.11605241E+02 -0.88569305E+01
+ 0.23542165E-02 -0.49251178E+00 -0.11605851E+02 -0.88575414E+01
+ 0.23954153E-02 -0.49314371E+00 -0.11606483E+02 -0.88581733E+01
+ 0.24373351E-02 -0.49379746E+00 -0.11607137E+02 -0.88588270E+01
+ 0.24799885E-02 -0.49447377E+00 -0.11607813E+02 -0.88595033E+01
+ 0.25233883E-02 -0.49517341E+00 -0.11608513E+02 -0.88602030E+01
+ 0.25675476E-02 -0.49589718E+00 -0.11609237E+02 -0.88609268E+01
+ 0.26124796E-02 -0.49664591E+00 -0.11609986E+02 -0.88616755E+01
+ 0.26581980E-02 -0.49742044E+00 -0.11610760E+02 -0.88624500E+01
+ 0.27047165E-02 -0.49822166E+00 -0.11611561E+02 -0.88632512E+01
+ 0.27520490E-02 -0.49905047E+00 -0.11612390E+02 -0.88640801E+01
+ 0.28002099E-02 -0.49990781E+00 -0.11613247E+02 -0.88649374E+01
+ 0.28492136E-02 -0.50079465E+00 -0.11614134E+02 -0.88658242E+01
+ 0.28990748E-02 -0.50171198E+00 -0.11615052E+02 -0.88667416E+01
+ 0.29498086E-02 -0.50266084E+00 -0.11616000E+02 -0.88676904E+01
+ 0.30014303E-02 -0.50364228E+00 -0.11616982E+02 -0.88686719E+01
+ 0.30539553E-02 -0.50465741E+00 -0.11617997E+02 -0.88696870E+01
+ 0.31073995E-02 -0.50570735E+00 -0.11619047E+02 -0.88707369E+01
+ 0.31617790E-02 -0.50679328E+00 -0.11620133E+02 -0.88718229E+01
+ 0.32171101E-02 -0.50791639E+00 -0.11621256E+02 -0.88729460E+01
+ 0.32734096E-02 -0.50907793E+00 -0.11622418E+02 -0.88741075E+01
+ 0.33306942E-02 -0.51027918E+00 -0.11623619E+02 -0.88753088E+01
+ 0.33889814E-02 -0.51152145E+00 -0.11624861E+02 -0.88765510E+01
+ 0.34482886E-02 -0.51280611E+00 -0.11626146E+02 -0.88778357E+01
+ 0.35086336E-02 -0.51413457E+00 -0.11627474E+02 -0.88791641E+01
+ 0.35700347E-02 -0.51550825E+00 -0.11628848E+02 -0.88805378E+01
+ 0.36325103E-02 -0.51692867E+00 -0.11630268E+02 -0.88819582E+01
+ 0.36960792E-02 -0.51839734E+00 -0.11631737E+02 -0.88834269E+01
+ 0.37607606E-02 -0.51991584E+00 -0.11633255E+02 -0.88849454E+01
+ 0.38265739E-02 -0.52148581E+00 -0.11634825E+02 -0.88865154E+01
+ 0.38935390E-02 -0.52310891E+00 -0.11636449E+02 -0.88881385E+01
+ 0.39616759E-02 -0.52478688E+00 -0.11638126E+02 -0.88898164E+01
+ 0.40310052E-02 -0.52652148E+00 -0.11639861E+02 -0.88915511E+01
+ 0.41015478E-02 -0.52831454E+00 -0.11641654E+02 -0.88933441E+01
+ 0.41733249E-02 -0.53016794E+00 -0.11643508E+02 -0.88951975E+01
+ 0.42463581E-02 -0.53208361E+00 -0.11645423E+02 -0.88971132E+01
+ 0.43206694E-02 -0.53406352E+00 -0.11647403E+02 -0.88990931E+01
+ 0.43962811E-02 -0.53610973E+00 -0.11649449E+02 -0.89011393E+01
+ 0.44732160E-02 -0.53822433E+00 -0.11651564E+02 -0.89032539E+01
+ 0.45514973E-02 -0.54040947E+00 -0.11653749E+02 -0.89054390E+01
+ 0.46311485E-02 -0.54266736E+00 -0.11656007E+02 -0.89076969E+01
+ 0.47121936E-02 -0.54500027E+00 -0.11658340E+02 -0.89100298E+01
+ 0.47946570E-02 -0.54741053E+00 -0.11660750E+02 -0.89124401E+01
+ 0.48785635E-02 -0.54990054E+00 -0.11663240E+02 -0.89149301E+01
+ 0.49639383E-02 -0.55247274E+00 -0.11665812E+02 -0.89175023E+01
+ 0.50508073E-02 -0.55512965E+00 -0.11668469E+02 -0.89201592E+01
+ 0.51391964E-02 -0.55787385E+00 -0.11671213E+02 -0.89229034E+01
+ 0.52291323E-02 -0.56070796E+00 -0.11674048E+02 -0.89257375E+01
+ 0.53206421E-02 -0.56363470E+00 -0.11676974E+02 -0.89286642E+01
+ 0.54137534E-02 -0.56665683E+00 -0.11679996E+02 -0.89316864E+01
+ 0.55084941E-02 -0.56977717E+00 -0.11683117E+02 -0.89348067E+01
+ 0.56048927E-02 -0.57299863E+00 -0.11686338E+02 -0.89380282E+01
+ 0.57029783E-02 -0.57632416E+00 -0.11689664E+02 -0.89413537E+01
+ 0.58027804E-02 -0.57975677E+00 -0.11693096E+02 -0.89447863E+01
+ 0.59043291E-02 -0.58329955E+00 -0.11696639E+02 -0.89483291E+01
+ 0.60076549E-02 -0.58695566E+00 -0.11700295E+02 -0.89519852E+01
+ 0.61127888E-02 -0.59072828E+00 -0.11704068E+02 -0.89557578E+01
+ 0.62197626E-02 -0.59462071E+00 -0.11707960E+02 -0.89596502E+01
+ 0.63286085E-02 -0.59863625E+00 -0.11711976E+02 -0.89636657E+01
+ 0.64393591E-02 -0.60277831E+00 -0.11716118E+02 -0.89678078E+01
+ 0.65520479E-02 -0.60705033E+00 -0.11720390E+02 -0.89720798E+01
+ 0.66667087E-02 -0.61145580E+00 -0.11724795E+02 -0.89764853E+01
+ 0.67833761E-02 -0.61599829E+00 -0.11729338E+02 -0.89810278E+01
+ 0.69020852E-02 -0.62068140E+00 -0.11734021E+02 -0.89857109E+01
+ 0.70228717E-02 -0.62550877E+00 -0.11738848E+02 -0.89905382E+01
+ 0.71457720E-02 -0.63048412E+00 -0.11743823E+02 -0.89955136E+01
+ 0.72708230E-02 -0.63561118E+00 -0.11748951E+02 -0.90006406E+01
+ 0.73980624E-02 -0.64089373E+00 -0.11754233E+02 -0.90059231E+01
+ 0.75275285E-02 -0.64633559E+00 -0.11759675E+02 -0.90113650E+01
+ 0.76592602E-02 -0.65194059E+00 -0.11765280E+02 -0.90169700E+01
+ 0.77932973E-02 -0.65771261E+00 -0.11771052E+02 -0.90227420E+01
+ 0.79296800E-02 -0.66365554E+00 -0.11776995E+02 -0.90286849E+01
+ 0.80684494E-02 -0.66977328E+00 -0.11783113E+02 -0.90348026E+01
+ 0.82096472E-02 -0.67606973E+00 -0.11789409E+02 -0.90410991E+01
+ 0.83533161E-02 -0.68254880E+00 -0.11795888E+02 -0.90475781E+01
+ 0.84994991E-02 -0.68921440E+00 -0.11802554E+02 -0.90542437E+01
+ 0.86482403E-02 -0.69607041E+00 -0.11809410E+02 -0.90610997E+01
+ 0.87995845E-02 -0.70312071E+00 -0.11816460E+02 -0.90681500E+01
+ 0.89535773E-02 -0.71036910E+00 -0.11823708E+02 -0.90753983E+01
+ 0.91102649E-02 -0.71781939E+00 -0.11831158E+02 -0.90828486E+01
+ 0.92696945E-02 -0.72547531E+00 -0.11838814E+02 -0.90905045E+01
+ 0.94319142E-02 -0.73334052E+00 -0.11846679E+02 -0.90983697E+01
+ 0.95969727E-02 -0.74141863E+00 -0.11854757E+02 -0.91064477E+01
+ 0.97649197E-02 -0.74971312E+00 -0.11863052E+02 -0.91147422E+01
+ 0.99358058E-02 -0.75822739E+00 -0.11871566E+02 -0.91232564E+01
+ 0.10109682E-01 -0.76696475E+00 -0.11880303E+02 -0.91319938E+01
+ 0.10286602E-01 -0.77592832E+00 -0.11889267E+02 -0.91409573E+01
+ 0.10466617E-01 -0.78512111E+00 -0.11898460E+02 -0.91501500E+01
+ 0.10649783E-01 -0.79454597E+00 -0.11907884E+02 -0.91595749E+01
+ 0.10836154E-01 -0.80420555E+00 -0.11917544E+02 -0.91692344E+01
+ 0.11025787E-01 -0.81410229E+00 -0.11927441E+02 -0.91791311E+01
+ 0.11218738E-01 -0.82423845E+00 -0.11937577E+02 -0.91892672E+01
+ 0.11415066E-01 -0.83461601E+00 -0.11947954E+02 -0.91996447E+01
+ 0.11614830E-01 -0.84523672E+00 -0.11958575E+02 -0.92102653E+01
+ 0.11818089E-01 -0.85610203E+00 -0.11969440E+02 -0.92211306E+01
+ 0.12024906E-01 -0.86721310E+00 -0.11980551E+02 -0.92322415E+01
+ 0.12235342E-01 -0.87857075E+00 -0.11991908E+02 -0.92435991E+01
+ 0.12449460E-01 -0.89017547E+00 -0.12003513E+02 -0.92552037E+01
+ 0.12667326E-01 -0.90202737E+00 -0.12015365E+02 -0.92670555E+01
+ 0.12889004E-01 -0.91412614E+00 -0.12027463E+02 -0.92791542E+01
+ 0.13114562E-01 -0.92647108E+00 -0.12039808E+02 -0.92914991E+01
+ 0.13344067E-01 -0.93906103E+00 -0.12052398E+02 -0.93040889E+01
+ 0.13577588E-01 -0.95189435E+00 -0.12065231E+02 -0.93169221E+01
+ 0.13815195E-01 -0.96496890E+00 -0.12078305E+02 -0.93299965E+01
+ 0.14056961E-01 -0.97828200E+00 -0.12091618E+02 -0.93433095E+01
+ 0.14302958E-01 -0.99183046E+00 -0.12105166E+02 -0.93568578E+01
+ 0.14553260E-01 -0.10056104E+01 -0.12118946E+02 -0.93706376E+01
+ 0.14807942E-01 -0.10196176E+01 -0.12132953E+02 -0.93846445E+01
+ 0.15067081E-01 -0.10338468E+01 -0.12147182E+02 -0.93988736E+01
+ 0.15330755E-01 -0.10482924E+01 -0.12161627E+02 -0.94133190E+01
+ 0.15599043E-01 -0.10629480E+01 -0.12176282E+02 -0.94279744E+01
+ 0.15872026E-01 -0.10778065E+01 -0.12191141E+02 -0.94428326E+01
+ 0.16149787E-01 -0.10928600E+01 -0.12206194E+02 -0.94578859E+01
+ 0.16432408E-01 -0.11081001E+01 -0.12221433E+02 -0.94731257E+01
+ 0.16719975E-01 -0.11235173E+01 -0.12236850E+02 -0.94885426E+01
+ 0.17012575E-01 -0.11391014E+01 -0.12252434E+02 -0.95041265E+01
+ 0.17310295E-01 -0.11548415E+01 -0.12268173E+02 -0.95198663E+01
+ 0.17613225E-01 -0.11707258E+01 -0.12284057E+02 -0.95357502E+01
+ 0.17921456E-01 -0.11867416E+01 -0.12300072E+02 -0.95517656E+01
+ 0.18235082E-01 -0.12028755E+01 -0.12316205E+02 -0.95678991E+01
+ 0.18554196E-01 -0.12191129E+01 -0.12332442E+02 -0.95841361E+01
+ 0.18878894E-01 -0.12354387E+01 -0.12348767E+02 -0.96004614E+01
+ 0.19209275E-01 -0.12518368E+01 -0.12365164E+02 -0.96168590E+01
+ 0.19545437E-01 -0.12682901E+01 -0.12381617E+02 -0.96333118E+01
+ 0.19887482E-01 -0.12847807E+01 -0.12398107E+02 -0.96498019E+01
+ 0.20235513E-01 -0.13012900E+01 -0.12414615E+02 -0.96663105E+01
+ 0.20589635E-01 -0.13177982E+01 -0.12431122E+02 -0.96828181E+01
+ 0.20949953E-01 -0.13342849E+01 -0.12447608E+02 -0.96993041E+01
+ 0.21316578E-01 -0.13507289E+01 -0.12464050E+02 -0.97157473E+01
+ 0.21689618E-01 -0.13671080E+01 -0.12480428E+02 -0.97321256E+01
+ 0.22069186E-01 -0.13833994E+01 -0.12496718E+02 -0.97484162E+01
+ 0.22455397E-01 -0.13995795E+01 -0.12512897E+02 -0.97645953E+01
+ 0.22848366E-01 -0.14156239E+01 -0.12528940E+02 -0.97806388E+01
+ 0.23248213E-01 -0.14315078E+01 -0.12544822E+02 -0.97965216E+01
+ 0.23655056E-01 -0.14472055E+01 -0.12560518E+02 -0.98122181E+01
+ 0.24069020E-01 -0.14626908E+01 -0.12576001E+02 -0.98277023E+01
+ 0.24490228E-01 -0.14779372E+01 -0.12591245E+02 -0.98429473E+01
+ 0.24918807E-01 -0.14929174E+01 -0.12606223E+02 -0.98579262E+01
+ 0.25354886E-01 -0.15076041E+01 -0.12620908E+02 -0.98726114E+01
+ 0.25798596E-01 -0.15219694E+01 -0.12635270E+02 -0.98869751E+01
+ 0.26250072E-01 -0.15359853E+01 -0.12649284E+02 -0.99009893E+01
+ 0.26709448E-01 -0.15496237E+01 -0.12662919E+02 -0.99146259E+01
+ 0.27176863E-01 -0.15628564E+01 -0.12676149E+02 -0.99278566E+01
+ 0.27652459E-01 -0.15756551E+01 -0.12688944E+02 -0.99406532E+01
+ 0.28136377E-01 -0.15879918E+01 -0.12701277E+02 -0.99529876E+01
+ 0.28628763E-01 -0.15998387E+01 -0.12713120E+02 -0.99648321E+01
+ 0.29129766E-01 -0.16111683E+01 -0.12724445E+02 -0.99761591E+01
+ 0.29639537E-01 -0.16219535E+01 -0.12735226E+02 -0.99869415E+01
+ 0.30158229E-01 -0.16321678E+01 -0.12745435E+02 -0.99971528E+01
+ 0.30685998E-01 -0.16417853E+01 -0.12755048E+02 -0.10006767E+02
+ 0.31223003E-01 -0.16507810E+01 -0.12764038E+02 -0.10015759E+02
+ 0.31769406E-01 -0.16591306E+01 -0.12772382E+02 -0.10024105E+02
+ 0.32325370E-01 -0.16668109E+01 -0.12780056E+02 -0.10031782E+02
+ 0.32891064E-01 -0.16737998E+01 -0.12787038E+02 -0.10038766E+02
+ 0.33466658E-01 -0.16800765E+01 -0.12793307E+02 -0.10045039E+02
+ 0.34052325E-01 -0.16856215E+01 -0.12798844E+02 -0.10050579E+02
+ 0.34648240E-01 -0.16904167E+01 -0.12803631E+02 -0.10055369E+02
+ 0.35254584E-01 -0.16944456E+01 -0.12807651E+02 -0.10059392E+02
+ 0.35871540E-01 -0.16976935E+01 -0.12810889E+02 -0.10062634E+02
+ 0.36499292E-01 -0.17001474E+01 -0.12813333E+02 -0.10065081E+02
+ 0.37138029E-01 -0.17017961E+01 -0.12814971E+02 -0.10066723E+02
+ 0.37787945E-01 -0.17026306E+01 -0.12815793E+02 -0.10067550E+02
+ 0.38449234E-01 -0.17026438E+01 -0.12815794E+02 -0.10067556E+02
+ 0.39122095E-01 -0.17018307E+01 -0.12814967E+02 -0.10066734E+02
+ 0.39806732E-01 -0.17001886E+01 -0.12813311E+02 -0.10065083E+02
+ 0.40503350E-01 -0.16977173E+01 -0.12810824E+02 -0.10062602E+02
+ 0.41212158E-01 -0.16944186E+01 -0.12807508E+02 -0.10059293E+02
+ 0.41933371E-01 -0.16902969E+01 -0.12803368E+02 -0.10055160E+02
+ 0.42667205E-01 -0.16853589E+01 -0.12798411E+02 -0.10050210E+02
+ 0.43413881E-01 -0.16796137E+01 -0.12792645E+02 -0.10044452E+02
+ 0.44173624E-01 -0.16730730E+01 -0.12786083E+02 -0.10037898E+02
+ 0.44946663E-01 -0.16657508E+01 -0.12778737E+02 -0.10030561E+02
+ 0.45733229E-01 -0.16576636E+01 -0.12770624E+02 -0.10022458E+02
+ 0.46533561E-01 -0.16488302E+01 -0.12761764E+02 -0.10013608E+02
+ 0.47347898E-01 -0.16392717E+01 -0.12752176E+02 -0.10004031E+02
+ 0.48176486E-01 -0.16290114E+01 -0.12741885E+02 -0.99937515E+01
+ 0.49019575E-01 -0.16180749E+01 -0.12730915E+02 -0.99827943E+01
+ 0.49877417E-01 -0.16064897E+01 -0.12719294E+02 -0.99711869E+01
+ 0.50750272E-01 -0.15942855E+01 -0.12707051E+02 -0.99589588E+01
+ 0.51638402E-01 -0.15814935E+01 -0.12694218E+02 -0.99461412E+01
+ 0.52542074E-01 -0.15681467E+01 -0.12680827E+02 -0.99327671E+01
+ 0.53461560E-01 -0.15542798E+01 -0.12666913E+02 -0.99188709E+01
+ 0.54397138E-01 -0.15399286E+01 -0.12652511E+02 -0.99044882E+01
+ 0.55349088E-01 -0.15251302E+01 -0.12637659E+02 -0.98896561E+01
+ 0.56317697E-01 -0.15099225E+01 -0.12622393E+02 -0.98744124E+01
+ 0.57303256E-01 -0.14943446E+01 -0.12606753E+02 -0.98587957E+01
+ 0.58306063E-01 -0.14784357E+01 -0.12590777E+02 -0.98428454E+01
+ 0.59326419E-01 -0.14622358E+01 -0.12574506E+02 -0.98266011E+01
+ 0.60364632E-01 -0.14457849E+01 -0.12557978E+02 -0.98101025E+01
+ 0.61421013E-01 -0.14291229E+01 -0.12541234E+02 -0.97933895E+01
+ 0.62495880E-01 -0.14122896E+01 -0.12524313E+02 -0.97765016E+01
+ 0.63589558E-01 -0.13953243E+01 -0.12507254E+02 -0.97594778E+01
+ 0.64702376E-01 -0.13782659E+01 -0.12490094E+02 -0.97423565E+01
+ 0.65834667E-01 -0.13611520E+01 -0.12472872E+02 -0.97251754E+01
+ 0.66986774E-01 -0.13440198E+01 -0.12455624E+02 -0.97079712E+01
+ 0.68159042E-01 -0.13269049E+01 -0.12438385E+02 -0.96907791E+01
+ 0.69351826E-01 -0.13098419E+01 -0.12421189E+02 -0.96736333E+01
+ 0.70565483E-01 -0.12928637E+01 -0.12404068E+02 -0.96565664E+01
+ 0.71800379E-01 -0.12760017E+01 -0.12387054E+02 -0.96396095E+01
+ 0.73056885E-01 -0.12592858E+01 -0.12370174E+02 -0.96227918E+01
+ 0.74335381E-01 -0.12427439E+01 -0.12353457E+02 -0.96061409E+01
+ 0.75636250E-01 -0.12264022E+01 -0.12336928E+02 -0.95896823E+01
+ 0.76959884E-01 -0.12102848E+01 -0.12320609E+02 -0.95734398E+01
+ 0.78306682E-01 -0.11944140E+01 -0.12304523E+02 -0.95574349E+01
+ 0.79677049E-01 -0.11788101E+01 -0.12288688E+02 -0.95416873E+01
+ 0.81071397E-01 -0.11634913E+01 -0.12273122E+02 -0.95262146E+01
+ 0.82490147E-01 -0.11484739E+01 -0.12257840E+02 -0.95110322E+01
+ 0.83933724E-01 -0.11337721E+01 -0.12242854E+02 -0.94961538E+01
+ 0.85402565E-01 -0.11193982E+01 -0.12228176E+02 -0.94815906E+01
+ 0.86897110E-01 -0.11053627E+01 -0.12213815E+02 -0.94673523E+01
+ 0.88417809E-01 -0.10916740E+01 -0.12199778E+02 -0.94534464E+01
+ 0.89965121E-01 -0.10783388E+01 -0.12186069E+02 -0.94398786E+01
+ 0.91539510E-01 -0.10653622E+01 -0.12172692E+02 -0.94266527E+01
+ 0.93141452E-01 -0.10527475E+01 -0.12159649E+02 -0.94137709E+01
+ 0.94771427E-01 -0.10404963E+01 -0.12146939E+02 -0.94012337E+01
+ 0.96429927E-01 -0.10286089E+01 -0.12134560E+02 -0.93890399E+01
+ 0.98117451E-01 -0.10170841E+01 -0.12122509E+02 -0.93771870E+01
+ 0.99834506E-01 -0.10059194E+01 -0.12110780E+02 -0.93656709E+01
+ 0.10158161E+00 -0.99511118E+00 -0.12099368E+02 -0.93544861E+01
+ 0.10335929E+00 -0.98465445E+00 -0.12088265E+02 -0.93436262E+01
+ 0.10516808E+00 -0.97454332E+00 -0.12077461E+02 -0.93330832E+01
+ 0.10700852E+00 -0.96477091E+00 -0.12066947E+02 -0.93228483E+01
+ 0.10888117E+00 -0.95532944E+00 -0.12056712E+02 -0.93129115E+01
+ 0.11078659E+00 -0.94621032E+00 -0.12046743E+02 -0.93032619E+01
+ 0.11272535E+00 -0.93740425E+00 -0.12037027E+02 -0.92938877E+01
+ 0.11469805E+00 -0.92890126E+00 -0.12027549E+02 -0.92847764E+01
+ 0.11670526E+00 -0.92069078E+00 -0.12018295E+02 -0.92759145E+01
+ 0.11874760E+00 -0.91276172E+00 -0.12009249E+02 -0.92672879E+01
+ 0.12082569E+00 -0.90510248E+00 -0.12000394E+02 -0.92588818E+01
+ 0.12294014E+00 -0.89770107E+00 -0.11991713E+02 -0.92506807E+01
+ 0.12509159E+00 -0.89054510E+00 -0.11983187E+02 -0.92426686E+01
+ 0.12728069E+00 -0.88362183E+00 -0.11974797E+02 -0.92348287E+01
+ 0.12950810E+00 -0.87691824E+00 -0.11966523E+02 -0.92271437E+01
+ 0.13177449E+00 -0.87042099E+00 -0.11958346E+02 -0.92195959E+01
+ 0.13408055E+00 -0.86411654E+00 -0.11950244E+02 -0.92121668E+01
+ 0.13642696E+00 -0.85799111E+00 -0.11942194E+02 -0.92048375E+01
+ 0.13881443E+00 -0.85203072E+00 -0.11934175E+02 -0.91975885E+01
+ 0.14124368E+00 -0.84622121E+00 -0.11926162E+02 -0.91903998E+01
+ 0.14371545E+00 -0.84054829E+00 -0.11918132E+02 -0.91832507E+01
+ 0.14623047E+00 -0.83499749E+00 -0.11910059E+02 -0.91761201E+01
+ 0.14878950E+00 -0.82955427E+00 -0.11901917E+02 -0.91689862E+01
+ 0.15139332E+00 -0.82420397E+00 -0.11893681E+02 -0.91618267E+01
+ 0.15404270E+00 -0.81893187E+00 -0.11885321E+02 -0.91546187E+01
+ 0.15673845E+00 -0.81372324E+00 -0.11876810E+02 -0.91473387E+01
+ 0.15948137E+00 -0.80856330E+00 -0.11868118E+02 -0.91399626E+01
+ 0.16227229E+00 -0.80343737E+00 -0.11859215E+02 -0.91324658E+01
+ 0.16511206E+00 -0.79833082E+00 -0.11850069E+02 -0.91248229E+01
+ 0.16800152E+00 -0.79322919E+00 -0.11840649E+02 -0.91170082E+01
+ 0.17094155E+00 -0.78811826E+00 -0.11830920E+02 -0.91089953E+01
+ 0.17393302E+00 -0.78298409E+00 -0.11820850E+02 -0.91007575E+01
+ 0.17697685E+00 -0.77781318E+00 -0.11810402E+02 -0.90922674E+01
+ 0.18007395E+00 -0.77259250E+00 -0.11799541E+02 -0.90834973E+01
+ 0.18322524E+00 -0.76730971E+00 -0.11788231E+02 -0.90744193E+01
+ 0.18643168E+00 -0.76195325E+00 -0.11776433E+02 -0.90650052E+01
+ 0.18969424E+00 -0.75651250E+00 -0.11764110E+02 -0.90552265E+01
+ 0.19301389E+00 -0.75097800E+00 -0.11751222E+02 -0.90450549E+01
+ 0.19639163E+00 -0.74534164E+00 -0.11737730E+02 -0.90344621E+01
+ 0.19982848E+00 -0.73959689E+00 -0.11723595E+02 -0.90234202E+01
+ 0.20332548E+00 -0.73373901E+00 -0.11708776E+02 -0.90119017E+01
+ 0.20688368E+00 -0.72776539E+00 -0.11693234E+02 -0.89998795E+01
+ 0.21050414E+00 -0.72167576E+00 -0.11676928E+02 -0.89873278E+01
+ 0.21418796E+00 -0.71547256E+00 -0.11659818E+02 -0.89742213E+01
+ 0.21793625E+00 -0.70916120E+00 -0.11641866E+02 -0.89605364E+01
+ 0.22175014E+00 -0.70275044E+00 -0.11623031E+02 -0.89462508E+01
+ 0.22563076E+00 -0.69625267E+00 -0.11603277E+02 -0.89313439E+01
+ 0.22957930E+00 -0.68968434E+00 -0.11582565E+02 -0.89157972E+01
+ 0.23359694E+00 -0.68306620E+00 -0.11560861E+02 -0.88995943E+01
+ 0.23768489E+00 -0.67642371E+00 -0.11538130E+02 -0.88827213E+01
+ 0.24184437E+00 -0.66978733E+00 -0.11514338E+02 -0.88651669E+01
+ 0.24607665E+00 -0.66319282E+00 -0.11489455E+02 -0.88469225E+01
+ 0.25038299E+00 -0.65668151E+00 -0.11463451E+02 -0.88279825E+01
+ 0.25476469E+00 -0.65030054E+00 -0.11436298E+02 -0.88083444E+01
+ 0.25922308E+00 -0.64410304E+00 -0.11407970E+02 -0.87880086E+01
+ 0.26375948E+00 -0.63814831E+00 -0.11378444E+02 -0.87669789E+01
+ 0.26837527E+00 -0.63250184E+00 -0.11347696E+02 -0.87452618E+01
+ 0.27307184E+00 -0.62723539E+00 -0.11315706E+02 -0.87228671E+01
+ 0.27785059E+00 -0.62242695E+00 -0.11282455E+02 -0.86998070E+01
+ 0.28271298E+00 -0.61816060E+00 -0.11247923E+02 -0.86760963E+01
+ 0.28766046E+00 -0.61452637E+00 -0.11212095E+02 -0.86517520E+01
+ 0.29269451E+00 -0.61162002E+00 -0.11174951E+02 -0.86267931E+01
+ 0.29781667E+00 -0.60954270E+00 -0.11136476E+02 -0.86012395E+01
+ 0.30302846E+00 -0.60840060E+00 -0.11096651E+02 -0.85751123E+01
+ 0.30833146E+00 -0.60830458E+00 -0.11055456E+02 -0.85484329E+01
+ 0.31372726E+00 -0.60936968E+00 -0.11012872E+02 -0.85212223E+01
+ 0.31921749E+00 -0.61171461E+00 -0.10968876E+02 -0.84935007E+01
+ 0.32480379E+00 -0.61546126E+00 -0.10923442E+02 -0.84652866E+01
+ 0.33048786E+00 -0.62073408E+00 -0.10876541E+02 -0.84365966E+01
+ 0.33627140E+00 -0.62765947E+00 -0.10828139E+02 -0.84074442E+01
+ 0.34215615E+00 -0.63636519E+00 -0.10778199E+02 -0.83778394E+01
+ 0.34814388E+00 -0.64697961E+00 -0.10726678E+02 -0.83477879E+01
+ 0.35423640E+00 -0.65963105E+00 -0.10673528E+02 -0.83172903E+01
+ 0.36043553E+00 -0.67444694E+00 -0.10618693E+02 -0.82863416E+01
+ 0.36674315E+00 -0.69155303E+00 -0.10562111E+02 -0.82549301E+01
+ 0.37316116E+00 -0.71107245E+00 -0.10503713E+02 -0.82230369E+01
+ 0.37969148E+00 -0.73312473E+00 -0.10443422E+02 -0.81906349E+01
+ 0.38633608E+00 -0.75782478E+00 -0.10381152E+02 -0.81576879E+01
+ 0.39309696E+00 -0.78528172E+00 -0.10316806E+02 -0.81241501E+01
+ 0.39997616E+00 -0.81559777E+00 -0.10250282E+02 -0.80899649E+01
+ 0.40697574E+00 -0.84886700E+00 -0.10181464E+02 -0.80550644E+01
+ 0.41409782E+00 -0.88517419E+00 -0.10110228E+02 -0.80193686E+01
+ 0.42134453E+00 -0.92459371E+00 -0.10036440E+02 -0.79827852E+01
+ 0.42871806E+00 -0.96718854E+00 -0.99599559E+01 -0.79452088E+01
+ 0.43622062E+00 -0.10130095E+01 -0.98806223E+01 -0.79065218E+01
+ 0.44385449E+00 -0.10620947E+01 -0.97982787E+01 -0.78665940E+01
+ 0.45162194E+00 -0.11144695E+01 -0.97127581E+01 -0.78252843E+01
+ 0.45952532E+00 -0.11701463E+01 -0.96238894E+01 -0.77824416E+01
+ 0.46756702E+00 -0.12291258E+01 -0.95315007E+01 -0.77379076E+01
+ 0.47574944E+00 -0.12913972E+01 -0.94354225E+01 -0.76915185E+01
+ 0.48407505E+00 -0.13569400E+01 -0.93354915E+01 -0.76431088E+01
+ 0.49254637E+00 -0.14257252E+01 -0.92315555E+01 -0.75925148E+01
+ 0.50116593E+00 -0.14977168E+01 -0.91234775E+01 -0.75395778E+01
+ 0.50993633E+00 -0.15728731E+01 -0.90111413E+01 -0.74841488E+01
+ 0.51886022E+00 -0.16511479E+01 -0.88944557E+01 -0.74260913E+01
+ 0.52794027E+00 -0.17324903E+01 -0.87733587E+01 -0.73652857E+01
+ 0.53717923E+00 -0.18168449E+01 -0.86478221E+01 -0.73016310E+01
+ 0.54657986E+00 -0.19041500E+01 -0.85178537E+01 -0.72350481E+01
+ 0.55614501E+00 -0.19943357E+01 -0.83835006E+01 -0.71654804E+01
+ 0.56587755E+00 -0.20873201E+01 -0.82448502E+01 -0.70928952E+01
+ 0.57578041E+00 -0.21830060E+01 -0.81020311E+01 -0.70172832E+01
+ 0.58585656E+00 -0.22812750E+01 -0.79552136E+01 -0.69386585E+01
+ 0.59610905E+00 -0.23819831E+01 -0.78046092E+01 -0.68570572E+01
+ 0.60654096E+00 -0.24849542E+01 -0.76504697E+01 -0.67725366E+01
+ 0.61715543E+00 -0.25899751E+01 -0.74930867E+01 -0.66851742E+01
+ 0.62795565E+00 -0.26967891E+01 -0.73327902E+01 -0.65950661E+01
+ 0.63894487E+00 -0.28050915E+01 -0.71699478E+01 -0.65023269E+01
+ 0.65012641E+00 -0.29145249E+01 -0.70049633E+01 -0.64070883E+01
+ 0.66150362E+00 -0.30246751E+01 -0.68382763E+01 -0.63094999E+01
+ 0.67307993E+00 -0.31350684E+01 -0.66703608E+01 -0.62097283E+01
+ 0.68485883E+00 -0.32451699E+01 -0.65017239E+01 -0.61079583E+01
+ 0.69684386E+00 -0.33543824E+01 -0.63329048E+01 -0.60043930E+01
+ 0.70903863E+00 -0.34620476E+01 -0.61644730E+01 -0.58992547E+01
+ 0.72144680E+00 -0.35674481E+01 -0.59970260E+01 -0.57927851E+01
+ 0.73407212E+00 -0.36698112E+01 -0.58311865E+01 -0.56852466E+01
+ 0.74691839E+00 -0.37683147E+01 -0.56675992E+01 -0.55769219E+01
+ 0.75998946E+00 -0.38620947E+01 -0.55069261E+01 -0.54681146E+01
+ 0.77328927E+00 -0.39502560E+01 -0.53498411E+01 -0.53591481E+01
+ 0.78682184E+00 -0.40318839E+01 -0.51970231E+01 -0.52503654E+01
+ 0.80059122E+00 -0.41060602E+01 -0.50491486E+01 -0.51421266E+01
+ 0.81460156E+00 -0.41718800E+01 -0.49068814E+01 -0.50348067E+01
+ 0.82885709E+00 -0.42284730E+01 -0.47708619E+01 -0.49287921E+01
+ 0.84336209E+00 -0.42750259E+01 -0.46416933E+01 -0.48244754E+01
+ 0.85812093E+00 -0.43108080E+01 -0.45199267E+01 -0.47222493E+01
+ 0.87313804E+00 -0.43351986E+01 -0.44060429E+01 -0.46224991E+01
+ 0.88841796E+00 -0.43477160E+01 -0.43004331E+01 -0.45255926E+01
+ 0.90396527E+00 -0.43480473E+01 -0.42033761E+01 -0.44318697E+01
+ 0.91978467E+00 -0.43360784E+01 -0.41150147E+01 -0.43416289E+01
+ 0.93588090E+00 -0.43119228E+01 -0.40353304E+01 -0.42551136E+01
+ 0.95225881E+00 -0.42759484E+01 -0.39641178E+01 -0.41724969E+01
+ 0.96892334E+00 -0.42288002E+01 -0.39009604E+01 -0.40938661E+01
+ 0.98587950E+00 -0.41714164E+01 -0.38452098E+01 -0.40192079E+01
+ 0.10031324E+01 -0.41050367E+01 -0.37959712E+01 -0.39483953E+01
+ 0.10206872E+01 -0.40311975E+01 -0.37520987E+01 -0.38811785E+01
+ 0.10385492E+01 -0.39517113E+01 -0.37122055E+01 -0.38171798E+01
+ 0.10567238E+01 -0.38686229E+01 -0.36746955E+01 -0.37558983E+01
+ 0.10752165E+01 -0.37841377E+01 -0.36378237E+01 -0.36967244E+01
+ 0.10940328E+01 -0.37005100E+01 -0.35997952E+01 -0.36389704E+01
+ 0.11131784E+01 -0.36198828E+01 -0.35589153E+01 -0.35819224E+01
+ 0.11326590E+01 -0.35440620E+01 -0.35138063E+01 -0.35249199E+01
+ 0.11524805E+01 -0.34742081E+01 -0.34637083E+01 -0.34674728E+01
+ 0.11726489E+01 -0.34104212E+01 -0.34088897E+01 -0.34094268E+01
+ 0.11931703E+01 -0.33511930E+01 -0.33511930E+01 -0.33511930E+01
+ 0.12140508E+01 -0.32936966E+01 -0.32936966E+01 -0.32936966E+01
+ 0.12352967E+01 -0.32371763E+01 -0.32371763E+01 -0.32371763E+01
+ 0.12569144E+01 -0.31816143E+01 -0.31816143E+01 -0.31816143E+01
+ 0.12789104E+01 -0.31269950E+01 -0.31269950E+01 -0.31269950E+01
+ 0.13012913E+01 -0.30733030E+01 -0.30733030E+01 -0.30733030E+01
+ 0.13240639E+01 -0.30205232E+01 -0.30205232E+01 -0.30205232E+01
+ 0.13472350E+01 -0.29686409E+01 -0.29686409E+01 -0.29686409E+01
+ 0.13708116E+01 -0.29176416E+01 -0.29176416E+01 -0.29176416E+01
+ 0.13948008E+01 -0.28675112E+01 -0.28675112E+01 -0.28675112E+01
+ 0.14192098E+01 -0.28182357E+01 -0.28182357E+01 -0.28182357E+01
+ 0.14440460E+01 -0.27698012E+01 -0.27698012E+01 -0.27698012E+01
+ 0.14693168E+01 -0.27221942E+01 -0.27221942E+01 -0.27221942E+01
+ 0.14950299E+01 -0.26754010E+01 -0.26754010E+01 -0.26754010E+01
+ 0.15211929E+01 -0.26294085E+01 -0.26294085E+01 -0.26294085E+01
+ 0.15478138E+01 -0.25842033E+01 -0.25842033E+01 -0.25842033E+01
+ 0.15749005E+01 -0.25397726E+01 -0.25397726E+01 -0.25397726E+01
+ 0.16024613E+01 -0.24961034E+01 -0.24961034E+01 -0.24961034E+01
+ 0.16305043E+01 -0.24531832E+01 -0.24531832E+01 -0.24531832E+01
+ 0.16590382E+01 -0.24109992E+01 -0.24109992E+01 -0.24109992E+01
+ 0.16880713E+01 -0.23695392E+01 -0.23695392E+01 -0.23695392E+01
+ 0.17176126E+01 -0.23287910E+01 -0.23287910E+01 -0.23287910E+01
+ 0.17476708E+01 -0.22887426E+01 -0.22887426E+01 -0.22887426E+01
+ 0.17782550E+01 -0.22493821E+01 -0.22493821E+01 -0.22493821E+01
+ 0.18093745E+01 -0.22106978E+01 -0.22106978E+01 -0.22106978E+01
+ 0.18410385E+01 -0.21726782E+01 -0.21726782E+01 -0.21726782E+01
+ 0.18732567E+01 -0.21353121E+01 -0.21353121E+01 -0.21353121E+01
+ 0.19060387E+01 -0.20985883E+01 -0.20985883E+01 -0.20985883E+01
+ 0.19393944E+01 -0.20624957E+01 -0.20624957E+01 -0.20624957E+01
+ 0.19733338E+01 -0.20270237E+01 -0.20270237E+01 -0.20270237E+01
+ 0.20078671E+01 -0.19921616E+01 -0.19921616E+01 -0.19921616E+01
+ 0.20430048E+01 -0.19578988E+01 -0.19578988E+01 -0.19578988E+01
+ 0.20787574E+01 -0.19242253E+01 -0.19242253E+01 -0.19242253E+01
+ 0.21151356E+01 -0.18911308E+01 -0.18911308E+01 -0.18911308E+01
+ 0.21521505E+01 -0.18586054E+01 -0.18586054E+01 -0.18586054E+01
+ 0.21898132E+01 -0.18266394E+01 -0.18266394E+01 -0.18266394E+01
+ 0.22281349E+01 -0.17952231E+01 -0.17952231E+01 -0.17952231E+01
+ 0.22671272E+01 -0.17643471E+01 -0.17643471E+01 -0.17643471E+01
+ 0.23068020E+01 -0.17340022E+01 -0.17340022E+01 -0.17340022E+01
+ 0.23471710E+01 -0.17041791E+01 -0.17041791E+01 -0.17041791E+01
+ 0.23882465E+01 -0.16748689E+01 -0.16748689E+01 -0.16748689E+01
+ 0.24300408E+01 -0.16460628E+01 -0.16460628E+01 -0.16460628E+01
+ 0.24725665E+01 -0.16177522E+01 -0.16177522E+01 -0.16177522E+01
+ 0.25158364E+01 -0.15899284E+01 -0.15899284E+01 -0.15899284E+01
+ 0.25598636E+01 -0.15625832E+01 -0.15625832E+01 -0.15625832E+01
+ 0.26046612E+01 -0.15357084E+01 -0.15357084E+01 -0.15357084E+01
+ 0.26502428E+01 -0.15092957E+01 -0.15092957E+01 -0.15092957E+01
+ 0.26966220E+01 -0.14833373E+01 -0.14833373E+01 -0.14833373E+01
+ 0.27438129E+01 -0.14578253E+01 -0.14578253E+01 -0.14578253E+01
+ 0.27918296E+01 -0.14327522E+01 -0.14327522E+01 -0.14327522E+01
+ 0.28406866E+01 -0.14081102E+01 -0.14081102E+01 -0.14081102E+01
+ 0.28903987E+01 -0.13838921E+01 -0.13838921E+01 -0.13838921E+01
+ 0.29409806E+01 -0.13600905E+01 -0.13600905E+01 -0.13600905E+01
+ 0.29924478E+01 -0.13366983E+01 -0.13366983E+01 -0.13366983E+01
+ 0.30448156E+01 -0.13137084E+01 -0.13137084E+01 -0.13137084E+01
+ 0.30980999E+01 -0.12911139E+01 -0.12911139E+01 -0.12911139E+01
+ 0.31523166E+01 -0.12689080E+01 -0.12689080E+01 -0.12689080E+01
+ 0.32074822E+01 -0.12470841E+01 -0.12470841E+01 -0.12470841E+01
+ 0.32636131E+01 -0.12256355E+01 -0.12256355E+01 -0.12256355E+01
+ 0.33207264E+01 -0.12045557E+01 -0.12045557E+01 -0.12045557E+01
+ 0.33788391E+01 -0.11838386E+01 -0.11838386E+01 -0.11838386E+01
+ 0.34379688E+01 -0.11634777E+01 -0.11634777E+01 -0.11634777E+01
+ 0.34981332E+01 -0.11434670E+01 -0.11434670E+01 -0.11434670E+01
+ 0.35593505E+01 -0.11238005E+01 -0.11238005E+01 -0.11238005E+01
+ 0.36216392E+01 -0.11044723E+01 -0.11044723E+01 -0.11044723E+01
+ 0.36850179E+01 -0.10854764E+01 -0.10854764E+01 -0.10854764E+01
+ 0.37495057E+01 -0.10668073E+01 -0.10668073E+01 -0.10668073E+01
+ 0.38151220E+01 -0.10484593E+01 -0.10484593E+01 -0.10484593E+01
+ 0.38818867E+01 -0.10304268E+01 -0.10304268E+01 -0.10304268E+01
+ 0.39498197E+01 -0.10127045E+01 -0.10127045E+01 -0.10127045E+01
+ 0.40189415E+01 -0.99528693E+00 -0.99528693E+00 -0.99528693E+00
+ 0.40892730E+01 -0.97816898E+00 -0.97816898E+00 -0.97816898E+00
+ 0.41608353E+01 -0.96134543E+00 -0.96134543E+00 -0.96134543E+00
+ 0.42336499E+01 -0.94481123E+00 -0.94481123E+00 -0.94481123E+00
+ 0.43077388E+01 -0.92856141E+00 -0.92856141E+00 -0.92856141E+00
+ 0.43831242E+01 -0.91259107E+00 -0.91259107E+00 -0.91259107E+00
+ 0.44598289E+01 -0.89689540E+00 -0.89689540E+00 -0.89689540E+00
+ 0.45378759E+01 -0.88146968E+00 -0.88146968E+00 -0.88146968E+00
+ 0.46172887E+01 -0.86630926E+00 -0.86630926E+00 -0.86630926E+00
+ 0.46980912E+01 -0.85140959E+00 -0.85140959E+00 -0.85140959E+00
+ 0.47803078E+01 -0.83676619E+00 -0.83676619E+00 -0.83676619E+00
+ 0.48639632E+01 -0.82237463E+00 -0.82237463E+00 -0.82237463E+00
+ 0.49490826E+01 -0.80823059E+00 -0.80823059E+00 -0.80823059E+00
+ 0.50356915E+01 -0.79432982E+00 -0.79432982E+00 -0.79432982E+00
+ 0.51238161E+01 -0.78066813E+00 -0.78066813E+00 -0.78066813E+00
+ 0.52134829E+01 -0.76724140E+00 -0.76724140E+00 -0.76724140E+00
+ 0.53047189E+01 -0.75404560E+00 -0.75404560E+00 -0.75404560E+00
+ 0.53975514E+01 -0.74107676E+00 -0.74107676E+00 -0.74107676E+00
+ 0.54920086E+01 -0.72833097E+00 -0.72833097E+00 -0.72833097E+00
+ 0.55881187E+01 -0.71580439E+00 -0.71580439E+00 -0.71580439E+00
+ 0.56859108E+01 -0.70349326E+00 -0.70349326E+00 -0.70349326E+00
+ 0.57854143E+01 -0.69139387E+00 -0.69139387E+00 -0.69139387E+00
+ 0.58866590E+01 -0.67950257E+00 -0.67950257E+00 -0.67950257E+00
+ 0.59896755E+01 -0.66781579E+00 -0.66781579E+00 -0.66781579E+00
+ 0.60944949E+01 -0.65633002E+00 -0.65633002E+00 -0.65633002E+00
+ 0.62011485E+01 -0.64504179E+00 -0.64504179E+00 -0.64504179E+00
+ 0.63096686E+01 -0.63394770E+00 -0.63394770E+00 -0.63394770E+00
+ 0.64200878E+01 -0.62304442E+00 -0.62304442E+00 -0.62304442E+00
+ 0.65324394E+01 -0.61232867E+00 -0.61232867E+00 -0.61232867E+00
+ 0.66467571E+01 -0.60179722E+00 -0.60179722E+00 -0.60179722E+00
+ 0.67630753E+01 -0.59144690E+00 -0.59144690E+00 -0.59144690E+00
+ 0.68814291E+01 -0.58127459E+00 -0.58127459E+00 -0.58127459E+00
+ 0.70018541E+01 -0.57127724E+00 -0.57127724E+00 -0.57127724E+00
+ 0.71243866E+01 -0.56145184E+00 -0.56145184E+00 -0.56145184E+00
+ 0.72490633E+01 -0.55179542E+00 -0.55179542E+00 -0.55179542E+00
+ 0.73759219E+01 -0.54230508E+00 -0.54230508E+00 -0.54230508E+00
+ 0.75050006E+01 -0.53297796E+00 -0.53297796E+00 -0.53297796E+00
+ 0.76363381E+01 -0.52381127E+00 -0.52381127E+00 -0.52381127E+00
+ 0.77699740E+01 -0.51480223E+00 -0.51480223E+00 -0.51480223E+00
+ 0.79059486E+01 -0.50594813E+00 -0.50594813E+00 -0.50594813E+00
+ 0.80443027E+01 -0.49724632E+00 -0.49724632E+00 -0.49724632E+00
+ 0.81850780E+01 -0.48869418E+00 -0.48869418E+00 -0.48869418E+00
+ 0.83283168E+01 -0.48028912E+00 -0.48028912E+00 -0.48028912E+00
+ 0.84740624E+01 -0.47202862E+00 -0.47202862E+00 -0.47202862E+00
+ 0.86223585E+01 -0.46391019E+00 -0.46391019E+00 -0.46391019E+00
+ 0.87732497E+01 -0.45593139E+00 -0.45593139E+00 -0.45593139E+00
+ 0.89267816E+01 -0.44808982E+00 -0.44808982E+00 -0.44808982E+00
+ 0.90830003E+01 -0.44038311E+00 -0.44038311E+00 -0.44038311E+00
+ 0.92419528E+01 -0.43280896E+00 -0.43280896E+00 -0.43280896E+00
+ 0.94036870E+01 -0.42536507E+00 -0.42536507E+00 -0.42536507E+00
+ 0.95682515E+01 -0.41804921E+00 -0.41804921E+00 -0.41804921E+00
+ 0.97356959E+01 -0.41085917E+00 -0.41085917E+00 -0.41085917E+00
+ 0.99060706E+01 -0.40379280E+00 -0.40379280E+00 -0.40379280E+00
+ 0.10079427E+02 -0.39684796E+00 -0.39684796E+00 -0.39684796E+00
+ 0.10255817E+02 -0.39002256E+00 -0.39002256E+00 -0.39002256E+00
+ 0.10435294E+02 -0.38331456E+00 -0.38331456E+00 -0.38331456E+00
+ 0.10617911E+02 -0.37672193E+00 -0.37672193E+00 -0.37672193E+00
+ 0.10803725E+02 -0.37024268E+00 -0.37024268E+00 -0.37024268E+00
+ 0.10992790E+02 -0.36387487E+00 -0.36387487E+00 -0.36387487E+00
+ 0.11185164E+02 -0.35761658E+00 -0.35761658E+00 -0.35761658E+00
+ 0.11380904E+02 -0.35146593E+00 -0.35146593E+00 -0.35146593E+00
+ 0.11580070E+02 -0.34542106E+00 -0.34542106E+00 -0.34542106E+00
+ 0.11782721E+02 -0.33948016E+00 -0.33948016E+00 -0.33948016E+00
+ 0.11988919E+02 -0.33364143E+00 -0.33364143E+00 -0.33364143E+00
+ 0.12198725E+02 -0.32790313E+00 -0.32790313E+00 -0.32790313E+00
+ 0.12412202E+02 -0.32226351E+00 -0.32226351E+00 -0.32226351E+00
+ 0.12629416E+02 -0.31672090E+00 -0.31672090E+00 -0.31672090E+00
+ 0.12850431E+02 -0.31127361E+00 -0.31127361E+00 -0.31127361E+00
+ 0.13075313E+02 -0.30592001E+00 -0.30592001E+00 -0.30592001E+00
+ 0.13304131E+02 -0.30065849E+00 -0.30065849E+00 -0.30065849E+00
+ 0.13536954E+02 -0.29548746E+00 -0.29548746E+00 -0.29548746E+00
+ 0.13773850E+02 -0.29040536E+00 -0.29040536E+00 -0.29040536E+00
+ 0.14014893E+02 -0.28541068E+00 -0.28541068E+00 -0.28541068E+00
+ 0.14260153E+02 -0.28050189E+00 -0.28050189E+00 -0.28050189E+00
+ 0.14509706E+02 -0.27567754E+00 -0.27567754E+00 -0.27567754E+00
+ 0.14763626E+02 -0.27093615E+00 -0.27093615E+00 -0.27093615E+00
+ 0.15021989E+02 -0.26627632E+00 -0.26627632E+00 -0.26627632E+00
+ 0.15284874E+02 -0.26169663E+00 -0.26169663E+00 -0.26169663E+00
+ 0.15552359E+02 -0.25719570E+00 -0.25719570E+00 -0.25719570E+00
+ 0.15824526E+02 -0.25277219E+00 -0.25277219E+00 -0.25277219E+00
+ 0.16101455E+02 -0.24842476E+00 -0.24842476E+00 -0.24842476E+00
+ 0.16383230E+02 -0.24415210E+00 -0.24415210E+00 -0.24415210E+00
+ 0.16669937E+02 -0.23995292E+00 -0.23995292E+00 -0.23995292E+00
+ 0.16961661E+02 -0.23582596E+00 -0.23582596E+00 -0.23582596E+00
+ 0.17258490E+02 -0.23176999E+00 -0.23176999E+00 -0.23176999E+00
+ 0.17560513E+02 -0.22778377E+00 -0.22778377E+00 -0.22778377E+00
+ 0.17867822E+02 -0.22386612E+00 -0.22386612E+00 -0.22386612E+00
+ 0.18180509E+02 -0.22001584E+00 -0.22001584E+00 -0.22001584E+00
+ 0.18498668E+02 -0.21623178E+00 -0.21623178E+00 -0.21623178E+00
+ 0.18822395E+02 -0.21251281E+00 -0.21251281E+00 -0.21251281E+00
+ 0.19151787E+02 -0.20885780E+00 -0.20885780E+00 -0.20885780E+00
+ 0.19486943E+02 -0.20526565E+00 -0.20526565E+00 -0.20526565E+00
+ 0.19827964E+02 -0.20173528E+00 -0.20173528E+00 -0.20173528E+00
+ 0.20174954E+02 -0.19826563E+00 -0.19826563E+00 -0.19826563E+00
+ 0.20528016E+02 -0.19485566E+00 -0.19485566E+00 -0.19485566E+00
+ 0.20887256E+02 -0.19150433E+00 -0.19150433E+00 -0.19150433E+00
+ 0.21252783E+02 -0.18821065E+00 -0.18821065E+00 -0.18821065E+00
+ 0.21624707E+02 -0.18497361E+00 -0.18497361E+00 -0.18497361E+00
+ 0.22003139E+02 -0.18179224E+00 -0.18179224E+00 -0.18179224E+00
+ 0.22388194E+02 -0.17866560E+00 -0.17866560E+00 -0.17866560E+00
+ 0.22779987E+02 -0.17559272E+00 -0.17559272E+00 -0.17559272E+00
+ 0.23178637E+02 -0.17257270E+00 -0.17257270E+00 -0.17257270E+00
+ 0.23584263E+02 -0.16960462E+00 -0.16960462E+00 -0.16960462E+00
+ 0.23996988E+02 -0.16668759E+00 -0.16668759E+00 -0.16668759E+00
+ 0.24416935E+02 -0.16382073E+00 -0.16382073E+00 -0.16382073E+00
+ 0.24844231E+02 -0.16100317E+00 -0.16100317E+00 -0.16100317E+00
+ 0.25279005E+02 -0.15823407E+00 -0.15823407E+00 -0.15823407E+00
+ 0.25721388E+02 -0.15551260E+00 -0.15551260E+00 -0.15551260E+00
+ 0.26171512E+02 -0.15283794E+00 -0.15283794E+00 -0.15283794E+00
+ 0.26629514E+02 -0.15020928E+00 -0.15020928E+00 -0.15020928E+00
+ 0.27095530E+02 -0.14762582E+00 -0.14762582E+00 -0.14762582E+00
+ 0.27569702E+02 -0.14508681E+00 -0.14508681E+00 -0.14508681E+00
+ 0.28052172E+02 -0.14259146E+00 -0.14259146E+00 -0.14259146E+00
+ 0.28543085E+02 -0.14013902E+00 -0.14013902E+00 -0.14013902E+00
+ 0.29042589E+02 -0.13772877E+00 -0.13772877E+00 -0.13772877E+00
+ 0.29550834E+02 -0.13535997E+00 -0.13535997E+00 -0.13535997E+00
+ 0.30067974E+02 -0.13303191E+00 -0.13303191E+00 -0.13303191E+00
+ 0.30594163E+02 -0.13074389E+00 -0.13074389E+00 -0.13074389E+00
+ 0.31129561E+02 -0.12849523E+00 -0.12849523E+00 -0.12849523E+00
+ 0.31674328E+02 -0.12628523E+00 -0.12628523E+00 -0.12628523E+00
+ 0.32228629E+02 -0.12411325E+00 -0.12411325E+00 -0.12411325E+00
+ 0.32792630E+02 -0.12197863E+00 -0.12197863E+00 -0.12197863E+00
+ 0.33366501E+02 -0.11988071E+00 -0.11988071E+00 -0.11988071E+00
+ 0.33950415E+02 -0.11781888E+00 -0.11781888E+00 -0.11781888E+00
+ 0.34544547E+02 -0.11579251E+00 -0.11579251E+00 -0.11579251E+00
+ 0.35149077E+02 -0.11380100E+00 -0.11380100E+00 -0.11380100E+00
+ 0.35764186E+02 -0.11184373E+00 -0.11184373E+00 -0.11184373E+00
+ 0.36390059E+02 -0.10992013E+00 -0.10992013E+00 -0.10992013E+00
+ 0.37026885E+02 -0.10802961E+00 -0.10802961E+00 -0.10802961E+00
+ 0.37674855E+02 -0.10617161E+00 -0.10617161E+00 -0.10617161E+00
+ 0.38334165E+02 -0.10434556E+00 -0.10434556E+00 -0.10434556E+00
+ 0.39005013E+02 -0.10255092E+00 -0.10255092E+00 -0.10255092E+00
+ 0.39687601E+02 -0.10078714E+00 -0.10078714E+00 -0.10078714E+00
+ 0.40382134E+02 -0.99053705E-01 -0.99053705E-01 -0.99053705E-01
+ 0.41088821E+02 -0.97350079E-01 -0.97350079E-01 -0.97350079E-01
+ 0.41807876E+02 -0.95675753E-01 -0.95675753E-01 -0.95675753E-01
+ 0.42539514E+02 -0.94030224E-01 -0.94030224E-01 -0.94030224E-01
+ 0.43283955E+02 -0.92412997E-01 -0.92412997E-01 -0.92412997E-01
+ 0.44041424E+02 -0.90823584E-01 -0.90823584E-01 -0.90823584E-01
+&END
+&WAVEFUNCTION
+ 615 CHANNELS=1
+ 0.10416667E-02 0.17265852E-03 0.85085274E-06 0.67387713E-10
+ 0.10598958E-02 0.17568005E-03 0.88089316E-06 0.70987842E-10
+ 0.10784440E-02 0.17875445E-03 0.91199420E-06 0.74780304E-10
+ 0.10973168E-02 0.18188265E-03 0.94419329E-06 0.78775375E-10
+ 0.11165198E-02 0.18506560E-03 0.97752922E-06 0.82983880E-10
+ 0.11360589E-02 0.18830424E-03 0.10120421E-05 0.87417220E-10
+ 0.11559400E-02 0.19159957E-03 0.10477735E-05 0.92087407E-10
+ 0.11761689E-02 0.19495256E-03 0.10847664E-05 0.97007095E-10
+ 0.11967519E-02 0.19836423E-03 0.11230654E-05 0.10218961E-09
+ 0.12176950E-02 0.20183561E-03 0.11627166E-05 0.10764900E-09
+ 0.12390047E-02 0.20536774E-03 0.12037677E-05 0.11340005E-09
+ 0.12606873E-02 0.20896168E-03 0.12462682E-05 0.11945834E-09
+ 0.12827493E-02 0.21261851E-03 0.12902692E-05 0.12584030E-09
+ 0.13051974E-02 0.21633934E-03 0.13358237E-05 0.13256320E-09
+ 0.13280384E-02 0.22012528E-03 0.13829865E-05 0.13964527E-09
+ 0.13512790E-02 0.22397748E-03 0.14318145E-05 0.14710569E-09
+ 0.13749264E-02 0.22789709E-03 0.14823664E-05 0.15496467E-09
+ 0.13989876E-02 0.23188530E-03 0.15347031E-05 0.16324351E-09
+ 0.14234699E-02 0.23594330E-03 0.15888876E-05 0.17196465E-09
+ 0.14483806E-02 0.24007231E-03 0.16449851E-05 0.18115170E-09
+ 0.14737273E-02 0.24427359E-03 0.17030632E-05 0.19082956E-09
+ 0.14995175E-02 0.24854839E-03 0.17631917E-05 0.20102445E-09
+ 0.15257591E-02 0.25289799E-03 0.18254432E-05 0.21176399E-09
+ 0.15524599E-02 0.25732372E-03 0.18898926E-05 0.22307728E-09
+ 0.15796279E-02 0.26182690E-03 0.19566173E-05 0.23499497E-09
+ 0.16072714E-02 0.26640888E-03 0.20256979E-05 0.24754935E-09
+ 0.16353986E-02 0.27107106E-03 0.20972174E-05 0.26077444E-09
+ 0.16640181E-02 0.27581482E-03 0.21712620E-05 0.27470606E-09
+ 0.16931384E-02 0.28064159E-03 0.22479208E-05 0.28938197E-09
+ 0.17227684E-02 0.28555284E-03 0.23272861E-05 0.30484192E-09
+ 0.17529168E-02 0.29055003E-03 0.24094534E-05 0.32112780E-09
+ 0.17835928E-02 0.29563468E-03 0.24945218E-05 0.33828374E-09
+ 0.18148057E-02 0.30080831E-03 0.25825935E-05 0.35635622E-09
+ 0.18465648E-02 0.30607248E-03 0.26737747E-05 0.37539420E-09
+ 0.18788797E-02 0.31142878E-03 0.27681751E-05 0.39544927E-09
+ 0.19117601E-02 0.31687881E-03 0.28659084E-05 0.41657575E-09
+ 0.19452159E-02 0.32242422E-03 0.29670923E-05 0.43883090E-09
+ 0.19792572E-02 0.32806668E-03 0.30718485E-05 0.46227500E-09
+ 0.20138942E-02 0.33380788E-03 0.31803032E-05 0.48697158E-09
+ 0.20491373E-02 0.33964955E-03 0.32925870E-05 0.51298755E-09
+ 0.20849972E-02 0.34559346E-03 0.34088351E-05 0.54039339E-09
+ 0.21214847E-02 0.35164138E-03 0.35291874E-05 0.56926335E-09
+ 0.21586107E-02 0.35779515E-03 0.36537888E-05 0.59967567E-09
+ 0.21963864E-02 0.36405661E-03 0.37827893E-05 0.63171272E-09
+ 0.22348231E-02 0.37042765E-03 0.39163443E-05 0.66546132E-09
+ 0.22739325E-02 0.37691019E-03 0.40546145E-05 0.70101290E-09
+ 0.23137263E-02 0.38350618E-03 0.41977664E-05 0.73846378E-09
+ 0.23542165E-02 0.39021759E-03 0.43459724E-05 0.77791544E-09
+ 0.23954153E-02 0.39704646E-03 0.44994109E-05 0.81947475E-09
+ 0.24373351E-02 0.40399484E-03 0.46582666E-05 0.86325431E-09
+ 0.24799885E-02 0.41106482E-03 0.48227308E-05 0.90937275E-09
+ 0.25233883E-02 0.41825853E-03 0.49930015E-05 0.95795502E-09
+ 0.25675476E-02 0.42557814E-03 0.51692837E-05 0.10091327E-08
+ 0.26124796E-02 0.43302584E-03 0.53517895E-05 0.10630445E-08
+ 0.26581980E-02 0.44060388E-03 0.55407389E-05 0.11198365E-08
+ 0.27047165E-02 0.44831454E-03 0.57363591E-05 0.11796626E-08
+ 0.27520490E-02 0.45616014E-03 0.59388858E-05 0.12426847E-08
+ 0.28002099E-02 0.46414305E-03 0.61485627E-05 0.13090738E-08
+ 0.28492136E-02 0.47226566E-03 0.63656424E-05 0.13790095E-08
+ 0.28990748E-02 0.48053043E-03 0.65903861E-05 0.14526816E-08
+ 0.29498086E-02 0.48893983E-03 0.68230644E-05 0.15302894E-08
+ 0.30014303E-02 0.49749641E-03 0.70639575E-05 0.16120433E-08
+ 0.30539553E-02 0.50620273E-03 0.73133553E-05 0.16981649E-08
+ 0.31073995E-02 0.51506143E-03 0.75715581E-05 0.17888873E-08
+ 0.31617790E-02 0.52407515E-03 0.78388768E-05 0.18844565E-08
+ 0.32171101E-02 0.53324663E-03 0.81156332E-05 0.19851313E-08
+ 0.32734096E-02 0.54257862E-03 0.84021604E-05 0.20911846E-08
+ 0.33306942E-02 0.55207392E-03 0.86988035E-05 0.22029036E-08
+ 0.33889814E-02 0.56173541E-03 0.90059195E-05 0.23205910E-08
+ 0.34482886E-02 0.57156598E-03 0.93238781E-05 0.24445657E-08
+ 0.35086336E-02 0.58156859E-03 0.96530623E-05 0.25751635E-08
+ 0.35700347E-02 0.59174627E-03 0.99938681E-05 0.27127383E-08
+ 0.36325103E-02 0.60210206E-03 0.10346706E-04 0.28576629E-08
+ 0.36960792E-02 0.61263910E-03 0.10712001E-04 0.30103298E-08
+ 0.37607606E-02 0.62336054E-03 0.11090192E-04 0.31711527E-08
+ 0.38265739E-02 0.63426963E-03 0.11481735E-04 0.33405673E-08
+ 0.38935390E-02 0.64536964E-03 0.11887101E-04 0.35190327E-08
+ 0.39616759E-02 0.65666392E-03 0.12306779E-04 0.37070322E-08
+ 0.40310052E-02 0.66815586E-03 0.12741273E-04 0.39050753E-08
+ 0.41015478E-02 0.67984893E-03 0.13191106E-04 0.41136984E-08
+ 0.41733249E-02 0.69174665E-03 0.13656821E-04 0.43334670E-08
+ 0.42463581E-02 0.70385259E-03 0.14138977E-04 0.45649762E-08
+ 0.43206694E-02 0.71617041E-03 0.14638154E-04 0.48088534E-08
+ 0.43962811E-02 0.72870382E-03 0.15154955E-04 0.50657593E-08
+ 0.44732160E-02 0.74145658E-03 0.15690001E-04 0.53363900E-08
+ 0.45514973E-02 0.75443254E-03 0.16243936E-04 0.56214785E-08
+ 0.46311485E-02 0.76763561E-03 0.16817427E-04 0.59217973E-08
+ 0.47121936E-02 0.78106975E-03 0.17411165E-04 0.62381601E-08
+ 0.47946570E-02 0.79473903E-03 0.18025863E-04 0.65714239E-08
+ 0.48785635E-02 0.80864754E-03 0.18662262E-04 0.69224916E-08
+ 0.49639383E-02 0.82279948E-03 0.19321128E-04 0.72923144E-08
+ 0.50508073E-02 0.83719912E-03 0.20003255E-04 0.76818941E-08
+ 0.51391964E-02 0.85185078E-03 0.20709462E-04 0.80922863E-08
+ 0.52291323E-02 0.86675889E-03 0.21440601E-04 0.85246028E-08
+ 0.53206421E-02 0.88192792E-03 0.22197550E-04 0.89800148E-08
+ 0.54137534E-02 0.89736246E-03 0.22981222E-04 0.94597561E-08
+ 0.55084941E-02 0.91306714E-03 0.23792560E-04 0.99651264E-08
+ 0.56048927E-02 0.92904670E-03 0.24632540E-04 0.10497495E-07
+ 0.57029783E-02 0.94530595E-03 0.25502174E-04 0.11058304E-07
+ 0.58027804E-02 0.96184978E-03 0.26402507E-04 0.11649073E-07
+ 0.59043291E-02 0.97868319E-03 0.27334623E-04 0.12271401E-07
+ 0.60076549E-02 0.99581124E-03 0.28299646E-04 0.12926977E-07
+ 0.61127888E-02 0.10132391E-02 0.29298735E-04 0.13617574E-07
+ 0.62197626E-02 0.10309720E-02 0.30333093E-04 0.14345065E-07
+ 0.63286085E-02 0.10490153E-02 0.31403966E-04 0.15111420E-07
+ 0.64393591E-02 0.10673744E-02 0.32512642E-04 0.15918715E-07
+ 0.65520479E-02 0.10860548E-02 0.33660456E-04 0.16769137E-07
+ 0.66667087E-02 0.11050623E-02 0.34848788E-04 0.17664990E-07
+ 0.67833761E-02 0.11244025E-02 0.36079069E-04 0.18608702E-07
+ 0.69020852E-02 0.11440812E-02 0.37352780E-04 0.19602828E-07
+ 0.70228717E-02 0.11641043E-02 0.38671453E-04 0.20650062E-07
+ 0.71457720E-02 0.11844780E-02 0.40036675E-04 0.21753241E-07
+ 0.72708230E-02 0.12052083E-02 0.41450089E-04 0.22915354E-07
+ 0.73980624E-02 0.12263015E-02 0.42913396E-04 0.24139548E-07
+ 0.75275285E-02 0.12477639E-02 0.44428357E-04 0.25429140E-07
+ 0.76592602E-02 0.12696020E-02 0.45996795E-04 0.26787623E-07
+ 0.77932973E-02 0.12918225E-02 0.47620597E-04 0.28218679E-07
+ 0.79296800E-02 0.13144319E-02 0.49301717E-04 0.29726182E-07
+ 0.80684494E-02 0.13374371E-02 0.51042178E-04 0.31314218E-07
+ 0.82096472E-02 0.13608450E-02 0.52844074E-04 0.32987087E-07
+ 0.83533161E-02 0.13846627E-02 0.54709572E-04 0.34749323E-07
+ 0.84994991E-02 0.14088974E-02 0.56640919E-04 0.36605698E-07
+ 0.86482403E-02 0.14335564E-02 0.58640436E-04 0.38561241E-07
+ 0.87995845E-02 0.14586471E-02 0.60710529E-04 0.40621249E-07
+ 0.89535773E-02 0.14841770E-02 0.62853690E-04 0.42791303E-07
+ 0.91102649E-02 0.15101540E-02 0.65072497E-04 0.45077282E-07
+ 0.92696945E-02 0.15365857E-02 0.67369617E-04 0.47485377E-07
+ 0.94319142E-02 0.15634802E-02 0.69747816E-04 0.50022111E-07
+ 0.95969727E-02 0.15908455E-02 0.72209954E-04 0.52694357E-07
+ 0.97649197E-02 0.16186900E-02 0.74758992E-04 0.55509352E-07
+ 0.99358058E-02 0.16470221E-02 0.77397996E-04 0.58474722E-07
+ 0.10109682E-01 0.16758502E-02 0.80130141E-04 0.61598499E-07
+ 0.10286602E-01 0.17051831E-02 0.82958713E-04 0.64889144E-07
+ 0.10466617E-01 0.17350296E-02 0.85887113E-04 0.68355571E-07
+ 0.10649783E-01 0.17653987E-02 0.88918864E-04 0.72007169E-07
+ 0.10836154E-01 0.17962996E-02 0.92057611E-04 0.75853828E-07
+ 0.11025787E-01 0.18277416E-02 0.95307130E-04 0.79905969E-07
+ 0.11218738E-01 0.18597342E-02 0.98671327E-04 0.84174566E-07
+ 0.11415066E-01 0.18922871E-02 0.10215425E-03 0.88671181E-07
+ 0.11614830E-01 0.19254100E-02 0.10576008E-03 0.93407993E-07
+ 0.11818089E-01 0.19591130E-02 0.10949316E-03 0.98397831E-07
+ 0.12024906E-01 0.19934063E-02 0.11335798E-03 0.10365421E-06
+ 0.12235342E-01 0.20283002E-02 0.11735918E-03 0.10919137E-06
+ 0.12449460E-01 0.20638052E-02 0.12150157E-03 0.11502430E-06
+ 0.12667326E-01 0.20999321E-02 0.12579013E-03 0.12116881E-06
+ 0.12889004E-01 0.21366917E-02 0.13023002E-03 0.12764152E-06
+ 0.13114562E-01 0.21740952E-02 0.13482657E-03 0.13445999E-06
+ 0.13344067E-01 0.22121539E-02 0.13958531E-03 0.14164266E-06
+ 0.13577588E-01 0.22508792E-02 0.14451195E-03 0.14920899E-06
+ 0.13815195E-01 0.22902830E-02 0.14961243E-03 0.15717947E-06
+ 0.14056961E-01 0.23303770E-02 0.15489286E-03 0.16557569E-06
+ 0.14302958E-01 0.23711734E-02 0.16035959E-03 0.17442038E-06
+ 0.14553260E-01 0.24126845E-02 0.16601919E-03 0.18373750E-06
+ 0.14807942E-01 0.24549229E-02 0.17187845E-03 0.19355228E-06
+ 0.15067081E-01 0.24979013E-02 0.17794443E-03 0.20389129E-06
+ 0.15330755E-01 0.25416328E-02 0.18422440E-03 0.21478253E-06
+ 0.15599043E-01 0.25861306E-02 0.19072591E-03 0.22625549E-06
+ 0.15872026E-01 0.26314081E-02 0.19745676E-03 0.23834124E-06
+ 0.16149787E-01 0.26774791E-02 0.20442504E-03 0.25107250E-06
+ 0.16432408E-01 0.27243574E-02 0.21163911E-03 0.26448374E-06
+ 0.16719975E-01 0.27720573E-02 0.21910764E-03 0.27861128E-06
+ 0.17012575E-01 0.28205932E-02 0.22683960E-03 0.29349336E-06
+ 0.17310295E-01 0.28699798E-02 0.23484426E-03 0.30917028E-06
+ 0.17613225E-01 0.29202321E-02 0.24313124E-03 0.32568448E-06
+ 0.17921456E-01 0.29713653E-02 0.25171047E-03 0.34308067E-06
+ 0.18235082E-01 0.30233949E-02 0.26059226E-03 0.36140595E-06
+ 0.18554196E-01 0.30763366E-02 0.26978726E-03 0.38070992E-06
+ 0.18878894E-01 0.31302065E-02 0.27930650E-03 0.40104484E-06
+ 0.19209275E-01 0.31850210E-02 0.28916140E-03 0.42246575E-06
+ 0.19545437E-01 0.32407966E-02 0.29936379E-03 0.44503065E-06
+ 0.19887482E-01 0.32975504E-02 0.30992590E-03 0.46880061E-06
+ 0.20235513E-01 0.33552994E-02 0.32086038E-03 0.49383997E-06
+ 0.20589635E-01 0.34140613E-02 0.33218037E-03 0.52021650E-06
+ 0.20949953E-01 0.34738539E-02 0.34389941E-03 0.54800159E-06
+ 0.21316578E-01 0.35346954E-02 0.35603157E-03 0.57727043E-06
+ 0.21689618E-01 0.35966042E-02 0.36859137E-03 0.60810225E-06
+ 0.22069186E-01 0.36595991E-02 0.38159387E-03 0.64058047E-06
+ 0.22455397E-01 0.37236994E-02 0.39505464E-03 0.67479299E-06
+ 0.22848366E-01 0.37889245E-02 0.40898981E-03 0.71083238E-06
+ 0.23248213E-01 0.38552943E-02 0.42341606E-03 0.74879616E-06
+ 0.23655056E-01 0.39228289E-02 0.43835067E-03 0.78878705E-06
+ 0.24069020E-01 0.39915490E-02 0.45381152E-03 0.83091325E-06
+ 0.24490228E-01 0.40614754E-02 0.46981710E-03 0.87528874E-06
+ 0.24918807E-01 0.41326295E-02 0.48638658E-03 0.92203356E-06
+ 0.25354886E-01 0.42050330E-02 0.50353976E-03 0.97127416E-06
+ 0.25798596E-01 0.42787080E-02 0.52129718E-03 0.10231438E-05
+ 0.26250072E-01 0.43536769E-02 0.53968005E-03 0.10777826E-05
+ 0.26709448E-01 0.44299627E-02 0.55871037E-03 0.11353386E-05
+ 0.27176863E-01 0.45075886E-02 0.57841086E-03 0.11959673E-05
+ 0.27652459E-01 0.45865784E-02 0.59880508E-03 0.12598326E-05
+ 0.28136377E-01 0.46669563E-02 0.61991738E-03 0.13271074E-05
+ 0.28628763E-01 0.47487468E-02 0.64177298E-03 0.13979735E-05
+ 0.29129766E-01 0.48319749E-02 0.66439796E-03 0.14726226E-05
+ 0.29639537E-01 0.49166663E-02 0.68781933E-03 0.15512563E-05
+ 0.30158229E-01 0.50028468E-02 0.71206503E-03 0.16340875E-05
+ 0.30685998E-01 0.50905428E-02 0.73716398E-03 0.17213398E-05
+ 0.31223003E-01 0.51797814E-02 0.76314612E-03 0.18132493E-05
+ 0.31769406E-01 0.52705899E-02 0.79004239E-03 0.19100643E-05
+ 0.32325370E-01 0.53629962E-02 0.81788486E-03 0.20120464E-05
+ 0.32891064E-01 0.54570287E-02 0.84670669E-03 0.21194713E-05
+ 0.33466658E-01 0.55527165E-02 0.87654218E-03 0.22326292E-05
+ 0.34052325E-01 0.56500889E-02 0.90742684E-03 0.23518258E-05
+ 0.34648240E-01 0.57491760E-02 0.93939742E-03 0.24773832E-05
+ 0.35254584E-01 0.58500084E-02 0.97249194E-03 0.26096406E-05
+ 0.35871540E-01 0.59526172E-02 0.10067497E-02 0.27489550E-05
+ 0.36499292E-01 0.60570342E-02 0.10422115E-02 0.28957029E-05
+ 0.37138029E-01 0.61632916E-02 0.10789193E-02 0.30502805E-05
+ 0.37787945E-01 0.62714224E-02 0.11169168E-02 0.32131051E-05
+ 0.38449234E-01 0.63814600E-02 0.11562489E-02 0.33846164E-05
+ 0.39122095E-01 0.64934388E-02 0.11969625E-02 0.35652772E-05
+ 0.39806732E-01 0.66073933E-02 0.12391056E-02 0.37555753E-05
+ 0.40503350E-01 0.67233591E-02 0.12827283E-02 0.39560241E-05
+ 0.41212158E-01 0.68413724E-02 0.13278820E-02 0.41671646E-05
+ 0.41933371E-01 0.69614697E-02 0.13746204E-02 0.43895663E-05
+ 0.42667205E-01 0.70836888E-02 0.14229985E-02 0.46238293E-05
+ 0.43413881E-01 0.72080677E-02 0.14730736E-02 0.48705853E-05
+ 0.44173624E-01 0.73346454E-02 0.15249048E-02 0.51304998E-05
+ 0.44946663E-01 0.74634616E-02 0.15785532E-02 0.54042734E-05
+ 0.45733229E-01 0.75945566E-02 0.16340821E-02 0.56926444E-05
+ 0.46533561E-01 0.77279717E-02 0.16915568E-02 0.59963898E-05
+ 0.47347898E-01 0.78637488E-02 0.17510451E-02 0.63163282E-05
+ 0.48176486E-01 0.80019308E-02 0.18126169E-02 0.66533216E-05
+ 0.49019575E-01 0.81425612E-02 0.18763446E-02 0.70082777E-05
+ 0.49877417E-01 0.82856846E-02 0.19423029E-02 0.73821526E-05
+ 0.50750272E-01 0.84313462E-02 0.20105693E-02 0.77759528E-05
+ 0.51638402E-01 0.85795924E-02 0.20812237E-02 0.81907385E-05
+ 0.52542074E-01 0.87304701E-02 0.21543489E-02 0.86276260E-05
+ 0.53461560E-01 0.88840275E-02 0.22300305E-02 0.90877908E-05
+ 0.54397138E-01 0.90403136E-02 0.23083567E-02 0.95724709E-05
+ 0.55349088E-01 0.91993783E-02 0.23894192E-02 0.10082970E-04
+ 0.56317697E-01 0.93612725E-02 0.24733123E-02 0.10620660E-04
+ 0.57303256E-01 0.95260483E-02 0.25601338E-02 0.11186987E-04
+ 0.58306063E-01 0.96937587E-02 0.26499847E-02 0.11783472E-04
+ 0.59326419E-01 0.98644578E-02 0.27429692E-02 0.12411717E-04
+ 0.60364632E-01 0.10038201E-01 0.28391954E-02 0.13073411E-04
+ 0.61421013E-01 0.10215044E-01 0.29387747E-02 0.13770329E-04
+ 0.62495880E-01 0.10395044E-01 0.30418223E-02 0.14504343E-04
+ 0.63589558E-01 0.10578261E-01 0.31484573E-02 0.15277420E-04
+ 0.64702376E-01 0.10764754E-01 0.32588026E-02 0.16091635E-04
+ 0.65834667E-01 0.10954584E-01 0.33729855E-02 0.16949171E-04
+ 0.66986774E-01 0.11147813E-01 0.34911371E-02 0.17852326E-04
+ 0.68159042E-01 0.11344506E-01 0.36133932E-02 0.18803519E-04
+ 0.69351826E-01 0.11544726E-01 0.37398938E-02 0.19805298E-04
+ 0.70565483E-01 0.11748541E-01 0.38707838E-02 0.20860344E-04
+ 0.71800379E-01 0.11956018E-01 0.40062125E-02 0.21971481E-04
+ 0.73056885E-01 0.12167227E-01 0.41463342E-02 0.23141679E-04
+ 0.74335381E-01 0.12382237E-01 0.42913085E-02 0.24374068E-04
+ 0.75636250E-01 0.12601121E-01 0.44412998E-02 0.25671941E-04
+ 0.76959884E-01 0.12823954E-01 0.45964779E-02 0.27038763E-04
+ 0.78306682E-01 0.13050810E-01 0.47570184E-02 0.28478182E-04
+ 0.79677049E-01 0.13281766E-01 0.49231021E-02 0.29994041E-04
+ 0.81071397E-01 0.13516902E-01 0.50949160E-02 0.31590379E-04
+ 0.82490147E-01 0.13756297E-01 0.52726526E-02 0.33271451E-04
+ 0.83933724E-01 0.14000034E-01 0.54565110E-02 0.35041735E-04
+ 0.85402565E-01 0.14248197E-01 0.56466963E-02 0.36905943E-04
+ 0.86897110E-01 0.14500873E-01 0.58434202E-02 0.38869033E-04
+ 0.88417809E-01 0.14758148E-01 0.60469010E-02 0.40936224E-04
+ 0.89965121E-01 0.15020115E-01 0.62573637E-02 0.43113007E-04
+ 0.91539510E-01 0.15286863E-01 0.64750404E-02 0.45405160E-04
+ 0.93141452E-01 0.15558489E-01 0.67001705E-02 0.47818765E-04
+ 0.94771427E-01 0.15835087E-01 0.69330005E-02 0.50360219E-04
+ 0.96429927E-01 0.16116758E-01 0.71737847E-02 0.53036252E-04
+ 0.98117451E-01 0.16403603E-01 0.74227848E-02 0.55853948E-04
+ 0.99834506E-01 0.16695724E-01 0.76802707E-02 0.58820756E-04
+ 0.10158161E+00 0.16993229E-01 0.79465203E-02 0.61944514E-04
+ 0.10335929E+00 0.17296225E-01 0.82218197E-02 0.65233469E-04
+ 0.10516808E+00 0.17604825E-01 0.85064634E-02 0.68696292E-04
+ 0.10700852E+00 0.17919142E-01 0.88007548E-02 0.72342107E-04
+ 0.10888117E+00 0.18239294E-01 0.91050060E-02 0.76180509E-04
+ 0.11078659E+00 0.18565401E-01 0.94195380E-02 0.80221590E-04
+ 0.11272535E+00 0.18897586E-01 0.97446810E-02 0.84475962E-04
+ 0.11469805E+00 0.19235974E-01 0.10080775E-01 0.88954786E-04
+ 0.11670526E+00 0.19580697E-01 0.10428168E-01 0.93669798E-04
+ 0.11874760E+00 0.19931886E-01 0.10787221E-01 0.98633338E-04
+ 0.12082569E+00 0.20289678E-01 0.11158300E-01 0.10385838E-03
+ 0.12294014E+00 0.20654213E-01 0.11541786E-01 0.10935856E-03
+ 0.12509159E+00 0.21025636E-01 0.11938067E-01 0.11514823E-03
+ 0.12728069E+00 0.21404093E-01 0.12347541E-01 0.12124245E-03
+ 0.12950810E+00 0.21789738E-01 0.12770620E-01 0.12765706E-03
+ 0.13177449E+00 0.22182725E-01 0.13207722E-01 0.13440872E-03
+ 0.13408055E+00 0.22583215E-01 0.13659278E-01 0.14151493E-03
+ 0.13642696E+00 0.22991374E-01 0.14125730E-01 0.14899407E-03
+ 0.13881443E+00 0.23407371E-01 0.14607531E-01 0.15686547E-03
+ 0.14124368E+00 0.23831380E-01 0.15105142E-01 0.16514941E-03
+ 0.14371545E+00 0.24263581E-01 0.15619038E-01 0.17386724E-03
+ 0.14623047E+00 0.24704159E-01 0.16149704E-01 0.18304135E-03
+ 0.14878950E+00 0.25153305E-01 0.16697636E-01 0.19269526E-03
+ 0.15139332E+00 0.25611213E-01 0.17263339E-01 0.20285368E-03
+ 0.15404270E+00 0.26078087E-01 0.17847332E-01 0.21354257E-03
+ 0.15673845E+00 0.26554134E-01 0.18450142E-01 0.22478915E-03
+ 0.15948137E+00 0.27039568E-01 0.19072308E-01 0.23662204E-03
+ 0.16227229E+00 0.27534612E-01 0.19714379E-01 0.24907125E-03
+ 0.16511206E+00 0.28039492E-01 0.20376913E-01 0.26216829E-03
+ 0.16800152E+00 0.28554443E-01 0.21060481E-01 0.27594622E-03
+ 0.17094155E+00 0.29079710E-01 0.21765659E-01 0.29043975E-03
+ 0.17393302E+00 0.29615541E-01 0.22493037E-01 0.30568528E-03
+ 0.17697685E+00 0.30162196E-01 0.23243211E-01 0.32172098E-03
+ 0.18007395E+00 0.30719942E-01 0.24016785E-01 0.33858690E-03
+ 0.18322524E+00 0.31289054E-01 0.24814374E-01 0.35632504E-03
+ 0.18643168E+00 0.31869818E-01 0.25636598E-01 0.37497942E-03
+ 0.18969424E+00 0.32462528E-01 0.26484083E-01 0.39459620E-03
+ 0.19301389E+00 0.33067489E-01 0.27357462E-01 0.41522376E-03
+ 0.19639163E+00 0.33685016E-01 0.28257373E-01 0.43691277E-03
+ 0.19982848E+00 0.34315434E-01 0.29184459E-01 0.45971635E-03
+ 0.20332548E+00 0.34959082E-01 0.30139364E-01 0.48369013E-03
+ 0.20688368E+00 0.35616307E-01 0.31122735E-01 0.50889235E-03
+ 0.21050414E+00 0.36287471E-01 0.32135221E-01 0.53538402E-03
+ 0.21418796E+00 0.36972948E-01 0.33177470E-01 0.56322898E-03
+ 0.21793625E+00 0.37673125E-01 0.34250126E-01 0.59249405E-03
+ 0.22175014E+00 0.38388404E-01 0.35353833E-01 0.62324914E-03
+ 0.22563076E+00 0.39119199E-01 0.36489227E-01 0.65556737E-03
+ 0.22957930E+00 0.39865943E-01 0.37656938E-01 0.68952522E-03
+ 0.23359694E+00 0.40629081E-01 0.38857588E-01 0.72520263E-03
+ 0.23768489E+00 0.41409077E-01 0.40091786E-01 0.76268316E-03
+ 0.24184437E+00 0.42206411E-01 0.41360129E-01 0.80205411E-03
+ 0.24607665E+00 0.43021580E-01 0.42663197E-01 0.84340667E-03
+ 0.25038299E+00 0.43855101E-01 0.44001555E-01 0.88683607E-03
+ 0.25476469E+00 0.44707510E-01 0.45375742E-01 0.93244170E-03
+ 0.25922308E+00 0.45579361E-01 0.46786276E-01 0.98032727E-03
+ 0.26375948E+00 0.46471233E-01 0.48233647E-01 0.10306010E-02
+ 0.26837527E+00 0.47383722E-01 0.49718314E-01 0.10833756E-02
+ 0.27307184E+00 0.48317450E-01 0.51240704E-01 0.11387689E-02
+ 0.27785059E+00 0.49273060E-01 0.52801204E-01 0.11969031E-02
+ 0.28271298E+00 0.50251221E-01 0.54400160E-01 0.12579061E-02
+ 0.28766046E+00 0.51252625E-01 0.56037872E-01 0.13219106E-02
+ 0.29269451E+00 0.52277993E-01 0.57714592E-01 0.13890550E-02
+ 0.29781667E+00 0.53328068E-01 0.59430516E-01 0.14594829E-02
+ 0.30302846E+00 0.54403626E-01 0.61185780E-01 0.15333439E-02
+ 0.30833146E+00 0.55505468E-01 0.62980460E-01 0.16107934E-02
+ 0.31372726E+00 0.56634425E-01 0.64814560E-01 0.16919927E-02
+ 0.31921749E+00 0.57791359E-01 0.66688011E-01 0.17771094E-02
+ 0.32480379E+00 0.58977161E-01 0.68600667E-01 0.18663173E-02
+ 0.33048786E+00 0.60192756E-01 0.70552295E-01 0.19597967E-02
+ 0.33627140E+00 0.61439099E-01 0.72542576E-01 0.20577342E-02
+ 0.34215615E+00 0.62717179E-01 0.74571093E-01 0.21603236E-02
+ 0.34814388E+00 0.64028017E-01 0.76637330E-01 0.22677650E-02
+ 0.35423640E+00 0.65372668E-01 0.78740666E-01 0.23802657E-02
+ 0.36043553E+00 0.66752221E-01 0.80880369E-01 0.24980401E-02
+ 0.36674315E+00 0.68167799E-01 0.83055590E-01 0.26213096E-02
+ 0.37316116E+00 0.69620556E-01 0.85265359E-01 0.27503028E-02
+ 0.37969148E+00 0.71111681E-01 0.87508581E-01 0.28852557E-02
+ 0.38633608E+00 0.72642394E-01 0.89784030E-01 0.30264116E-02
+ 0.39309696E+00 0.74213945E-01 0.92090346E-01 0.31740214E-02
+ 0.39997616E+00 0.75827616E-01 0.94426029E-01 0.33283432E-02
+ 0.40697574E+00 0.77484714E-01 0.96789440E-01 0.34896430E-02
+ 0.41409782E+00 0.79186572E-01 0.99178797E-01 0.36581941E-02
+ 0.42134453E+00 0.80934545E-01 0.10159217E+00 0.38342776E-02
+ 0.42871806E+00 0.82730005E-01 0.10402748E+00 0.40181820E-02
+ 0.43622062E+00 0.84574341E-01 0.10648252E+00 0.42102035E-02
+ 0.44385449E+00 0.86468947E-01 0.10895490E+00 0.44106462E-02
+ 0.45162194E+00 0.88415222E-01 0.11144213E+00 0.46198216E-02
+ 0.45952532E+00 0.90414562E-01 0.11394155E+00 0.48380489E-02
+ 0.46756702E+00 0.92468346E-01 0.11645038E+00 0.50656550E-02
+ 0.47574944E+00 0.94577934E-01 0.11896569E+00 0.53029746E-02
+ 0.48407505E+00 0.96744655E-01 0.12148447E+00 0.55503501E-02
+ 0.49254637E+00 0.98969788E-01 0.12400356E+00 0.58081317E-02
+ 0.50116593E+00 0.10125456E+00 0.12651970E+00 0.60766777E-02
+ 0.50993633E+00 0.10360011E+00 0.12902958E+00 0.63563542E-02
+ 0.51886022E+00 0.10600750E+00 0.13152977E+00 0.66475356E-02
+ 0.52794027E+00 0.10847767E+00 0.13401681E+00 0.69506048E-02
+ 0.53717923E+00 0.11101144E+00 0.13648721E+00 0.72659536E-02
+ 0.54657986E+00 0.11360946E+00 0.13893742E+00 0.75939824E-02
+ 0.55614501E+00 0.11627219E+00 0.14136394E+00 0.79351017E-02
+ 0.56587755E+00 0.11899991E+00 0.14376328E+00 0.82897317E-02
+ 0.57578041E+00 0.12179261E+00 0.14613198E+00 0.86583035E-02
+ 0.58585656E+00 0.12465005E+00 0.14846670E+00 0.90412597E-02
+ 0.59610905E+00 0.12757166E+00 0.15076417E+00 0.94390553E-02
+ 0.60654096E+00 0.13055651E+00 0.15302126E+00 0.98521588E-02
+ 0.61715543E+00 0.13360330E+00 0.15523501E+00 0.10281054E-01
+ 0.62795565E+00 0.13671029E+00 0.15740264E+00 0.10726239E-01
+ 0.63894487E+00 0.13987527E+00 0.15952158E+00 0.11188232E-01
+ 0.65012641E+00 0.14309553E+00 0.16158953E+00 0.11667570E-01
+ 0.66150362E+00 0.14636778E+00 0.16360443E+00 0.12164810E-01
+ 0.67307993E+00 0.14968816E+00 0.16556450E+00 0.12680535E-01
+ 0.68485883E+00 0.15305216E+00 0.16746830E+00 0.13215353E-01
+ 0.69684386E+00 0.15645460E+00 0.16931469E+00 0.13769901E-01
+ 0.70903863E+00 0.15988959E+00 0.17110288E+00 0.14344847E-01
+ 0.72144680E+00 0.16335055E+00 0.17283240E+00 0.14940894E-01
+ 0.73407212E+00 0.16683012E+00 0.17450314E+00 0.15558782E-01
+ 0.74691839E+00 0.17032021E+00 0.17611532E+00 0.16199292E-01
+ 0.75998946E+00 0.17381202E+00 0.17766948E+00 0.16863249E-01
+ 0.77328927E+00 0.17729598E+00 0.17916645E+00 0.17551525E-01
+ 0.78682184E+00 0.18076188E+00 0.18060733E+00 0.18265041E-01
+ 0.80059122E+00 0.18419890E+00 0.18199345E+00 0.19004772E-01
+ 0.81460156E+00 0.18759562E+00 0.18332632E+00 0.19771748E-01
+ 0.82885709E+00 0.19094023E+00 0.18460756E+00 0.20567058E-01
+ 0.84336209E+00 0.19422056E+00 0.18583887E+00 0.21391850E-01
+ 0.85812093E+00 0.19742423E+00 0.18702191E+00 0.22247331E-01
+ 0.87313804E+00 0.20053886E+00 0.18815822E+00 0.23134772E-01
+ 0.88841796E+00 0.20355220E+00 0.18924917E+00 0.24055504E-01
+ 0.90396527E+00 0.20645231E+00 0.19029585E+00 0.25010918E-01
+ 0.91978467E+00 0.20922780E+00 0.19129896E+00 0.26002462E-01
+ 0.93588090E+00 0.21186800E+00 0.19225875E+00 0.27031640E-01
+ 0.95225881E+00 0.21436316E+00 0.19317490E+00 0.28100008E-01
+ 0.96892334E+00 0.21670464E+00 0.19404650E+00 0.29209168E-01
+ 0.98587950E+00 0.21888501E+00 0.19487199E+00 0.30360767E-01
+ 0.10031324E+01 0.22089822E+00 0.19564908E+00 0.31556489E-01
+ 0.10206872E+01 0.22273962E+00 0.19637487E+00 0.32798056E-01
+ 0.10385492E+01 0.22440594E+00 0.19704581E+00 0.34087225E-01
+ 0.10567238E+01 0.22589527E+00 0.19765784E+00 0.35425788E-01
+ 0.10752165E+01 0.22720683E+00 0.19820656E+00 0.36815580E-01
+ 0.10940328E+01 0.22834078E+00 0.19868740E+00 0.38258486E-01
+ 0.11131784E+01 0.22929792E+00 0.19909591E+00 0.39756462E-01
+ 0.11326590E+01 0.23007930E+00 0.19942800E+00 0.41311549E-01
+ 0.11524805E+01 0.23068592E+00 0.19968022E+00 0.42925904E-01
+ 0.11726489E+01 0.23111841E+00 0.19984998E+00 0.44601825E-01
+ 0.11931703E+01 0.23137692E+00 0.19993557E+00 0.46341769E-01
+ 0.12140508E+01 0.23146132E+00 0.19993600E+00 0.48148356E-01
+ 0.12352967E+01 0.23137155E+00 0.19985059E+00 0.50024356E-01
+ 0.12569144E+01 0.23110796E+00 0.19967874E+00 0.51972674E-01
+ 0.12789104E+01 0.23067118E+00 0.19941997E+00 0.53996370E-01
+ 0.13012913E+01 0.23006216E+00 0.19907397E+00 0.56098661E-01
+ 0.13240639E+01 0.22928218E+00 0.19864050E+00 0.58282933E-01
+ 0.13472350E+01 0.22833284E+00 0.19811948E+00 0.60552753E-01
+ 0.13708116E+01 0.22721607E+00 0.19751097E+00 0.62911879E-01
+ 0.13948008E+01 0.22593408E+00 0.19681512E+00 0.65364270E-01
+ 0.14192098E+01 0.22448941E+00 0.19603222E+00 0.67914099E-01
+ 0.14440460E+01 0.22288492E+00 0.19516270E+00 0.70565770E-01
+ 0.14693168E+01 0.22112372E+00 0.19420711E+00 0.73323927E-01
+ 0.14950299E+01 0.21920926E+00 0.19316610E+00 0.76193473E-01
+ 0.15211929E+01 0.21714523E+00 0.19204049E+00 0.79179585E-01
+ 0.15478138E+01 0.21493561E+00 0.19083117E+00 0.82287732E-01
+ 0.15749005E+01 0.21258464E+00 0.18953918E+00 0.85523693E-01
+ 0.16024613E+01 0.21009680E+00 0.18816568E+00 0.88893578E-01
+ 0.16305043E+01 0.20747683E+00 0.18671193E+00 0.92403849E-01
+ 0.16590382E+01 0.20472967E+00 0.18517932E+00 0.96061343E-01
+ 0.16880713E+01 0.20186050E+00 0.18356935E+00 0.99873297E-01
+ 0.17176126E+01 0.19887468E+00 0.18188362E+00 0.10384737E+00
+ 0.17476708E+01 0.19577777E+00 0.18012384E+00 0.10799170E+00
+ 0.17782550E+01 0.19257550E+00 0.17829182E+00 0.11231487E+00
+ 0.18093745E+01 0.18927377E+00 0.17638949E+00 0.11682602E+00
+ 0.18410385E+01 0.18587859E+00 0.17441887E+00 0.12153482E+00
+ 0.18732567E+01 0.18239614E+00 0.17238205E+00 0.12645156E+00
+ 0.19060387E+01 0.17883269E+00 0.17028125E+00 0.13158715E+00
+ 0.19393944E+01 0.17519461E+00 0.16811875E+00 0.13695318E+00
+ 0.19733338E+01 0.17148834E+00 0.16589693E+00 0.14256197E+00
+ 0.20078671E+01 0.16772041E+00 0.16361825E+00 0.14842663E+00
+ 0.20430048E+01 0.16389738E+00 0.16128524E+00 0.15456111E+00
+ 0.20787574E+01 0.16002582E+00 0.15890050E+00 0.16098024E+00
+ 0.21151356E+01 0.15611237E+00 0.15646672E+00 0.16769985E+00
+ 0.21521505E+01 0.15216360E+00 0.15398662E+00 0.17473677E+00
+ 0.21898132E+01 0.14818610E+00 0.15146301E+00 0.18210897E+00
+ 0.22281349E+01 0.14418642E+00 0.14889873E+00 0.18983560E+00
+ 0.22671272E+01 0.14017103E+00 0.14629668E+00 0.19793712E+00
+ 0.23068020E+01 0.13614635E+00 0.14365980E+00 0.20643535E+00
+ 0.23471710E+01 0.13211870E+00 0.14099105E+00 0.21535360E+00
+ 0.23882465E+01 0.12809429E+00 0.13829345E+00 0.22471680E+00
+ 0.24300408E+01 0.12407922E+00 0.13557000E+00 0.23455157E+00
+ 0.24725665E+01 0.12007944E+00 0.13282376E+00 0.24488641E+00
+ 0.25158364E+01 0.11610074E+00 0.13005775E+00 0.25575179E+00
+ 0.25598636E+01 0.11214875E+00 0.12727502E+00 0.26718035E+00
+ 0.26046612E+01 0.10822892E+00 0.12447861E+00 0.27920701E+00
+ 0.26502428E+01 0.10434647E+00 0.12167153E+00 0.29186920E+00
+ 0.26966220E+01 0.10050644E+00 0.11885677E+00 0.30520700E+00
+ 0.27438129E+01 0.96713645E-01 0.11603728E+00 0.31926340E+00
+ 0.27918296E+01 0.92972642E-01 0.11321599E+00 0.33408448E+00
+ 0.28406866E+01 0.89287762E-01 0.11039576E+00 0.34971969E+00
+ 0.28903987E+01 0.85663076E-01 0.10757941E+00 0.36622208E+00
+ 0.29409806E+01 0.82102398E-01 0.10476968E+00 0.38364859E+00
+ 0.29924478E+01 0.78609275E-01 0.10196927E+00 0.40206041E+00
+ 0.30448156E+01 0.75186981E-01 0.99180788E-01 0.00000000E+00
+ 0.30980999E+01 0.71838520E-01 0.96406762E-01 0.00000000E+00
+ 0.31523166E+01 0.68566620E-01 0.93649647E-01 0.00000000E+00
+ 0.32074822E+01 0.65373732E-01 0.90911810E-01 0.00000000E+00
+ 0.32636131E+01 0.62262035E-01 0.88195530E-01 0.00000000E+00
+ 0.33207264E+01 0.59233435E-01 0.85502997E-01 0.00000000E+00
+ 0.33788391E+01 0.56289569E-01 0.82836310E-01 0.00000000E+00
+ 0.34379688E+01 0.53431809E-01 0.80197477E-01 0.00000000E+00
+ 0.34981332E+01 0.50661273E-01 0.77588414E-01 0.00000000E+00
+ 0.35593505E+01 0.47978821E-01 0.75010947E-01 0.00000000E+00
+ 0.36216392E+01 0.45385073E-01 0.72466813E-01 0.00000000E+00
+ 0.36850179E+01 0.42880410E-01 0.69957661E-01 0.00000000E+00
+ 0.37495057E+01 0.40464984E-01 0.67485055E-01 0.00000000E+00
+ 0.38151220E+01 0.38138728E-01 0.65050473E-01 0.00000000E+00
+ 0.38818867E+01 0.35901366E-01 0.62655313E-01 0.00000000E+00
+ 0.39498197E+01 0.33752420E-01 0.60300892E-01 0.00000000E+00
+ 0.40189415E+01 0.31691222E-01 0.57988450E-01 0.00000000E+00
+ 0.40892730E+01 0.29716923E-01 0.55719153E-01 0.00000000E+00
+ 0.41608353E+01 0.27828502E-01 0.53494090E-01 0.00000000E+00
+ 0.42336499E+01 0.26024781E-01 0.51314281E-01 0.00000000E+00
+ 0.43077388E+01 0.24304429E-01 0.49180673E-01 0.00000000E+00
+ 0.43831242E+01 0.22665975E-01 0.47094144E-01 0.00000000E+00
+ 0.44598289E+01 0.21107820E-01 0.45055502E-01 0.00000000E+00
+ 0.45378759E+01 0.19628243E-01 0.43065486E-01 0.00000000E+00
+ 0.46172887E+01 0.18225415E-01 0.41124764E-01 0.00000000E+00
+ 0.46980912E+01 0.16897405E-01 0.39233936E-01 0.00000000E+00
+ 0.47803078E+01 0.15642194E-01 0.37393530E-01 0.00000000E+00
+ 0.48639632E+01 0.14457682E-01 0.35604002E-01 0.00000000E+00
+ 0.49490826E+01 0.13341698E-01 0.33865735E-01 0.00000000E+00
+ 0.50356915E+01 0.12292011E-01 0.32179037E-01 0.00000000E+00
+ 0.51238161E+01 0.11306337E-01 0.30544139E-01 0.00000000E+00
+ 0.52134829E+01 0.10382351E-01 0.28961195E-01 0.00000000E+00
+ 0.53047189E+01 0.95176950E-02 0.27430280E-01 0.00000000E+00
+ 0.53975514E+01 0.87099879E-02 0.25951387E-01 0.00000000E+00
+ 0.54920086E+01 0.79568330E-02 0.24524427E-01 0.00000000E+00
+ 0.55881187E+01 0.72558282E-02 0.23149230E-01 0.00000000E+00
+ 0.56859108E+01 0.66045738E-02 0.21825542E-01 0.00000000E+00
+ 0.57854143E+01 0.60006812E-02 0.20553023E-01 0.00000000E+00
+ 0.58866590E+01 0.54417806E-02 0.19331254E-01 0.00000000E+00
+ 0.59896755E+01 0.49255288E-02 0.18159732E-01 0.00000000E+00
+ 0.60944949E+01 0.44496164E-02 0.17037872E-01 0.00000000E+00
+ 0.62011485E+01 0.40117749E-02 0.15965012E-01 0.00000000E+00
+ 0.63096686E+01 0.36097827E-02 0.14940411E-01 0.00000000E+00
+ 0.64200878E+01 0.32414713E-02 0.13963254E-01 0.00000000E+00
+ 0.65324394E+01 0.29047308E-02 0.13032658E-01 0.00000000E+00
+ 0.66467571E+01 0.25975144E-02 0.12147669E-01 0.00000000E+00
+ 0.67630753E+01 0.23178431E-02 0.11307273E-01 0.00000000E+00
+ 0.68814291E+01 0.20638093E-02 0.10510395E-01 0.00000000E+00
+ 0.70018541E+01 0.18335797E-02 0.97559068E-02 0.00000000E+00
+ 0.71243866E+01 0.16253982E-02 0.90426330E-02 0.00000000E+00
+ 0.72490633E+01 0.14375877E-02 0.83693530E-02 0.00000000E+00
+ 0.73759219E+01 0.12685516E-02 0.77348088E-02 0.00000000E+00
+ 0.75050006E+01 0.11167747E-02 0.71377098E-02 0.00000000E+00
+ 0.76363381E+01 0.98082324E-03 0.65767385E-02 0.00000000E+00
+ 0.77699740E+01 0.85934508E-03 0.60505562E-02 0.00000000E+00
+ 0.79059486E+01 0.75106880E-03 0.55578086E-02 0.00000000E+00
+ 0.80443027E+01 0.65480275E-03 0.50971311E-02 0.00000000E+00
+ 0.81850780E+01 0.56943345E-03 0.46671544E-02 0.00000000E+00
+ 0.83283168E+01 0.49392377E-03 0.42665097E-02 0.00000000E+00
+ 0.84740624E+01 0.42731076E-03 0.38938337E-02 0.00000000E+00
+ 0.86223585E+01 0.36870311E-03 0.35477730E-02 0.00000000E+00
+ 0.87732497E+01 0.31727853E-03 0.32269892E-02 0.00000000E+00
+ 0.89267816E+01 0.27228075E-03 0.29301629E-02 0.00000000E+00
+ 0.90830003E+01 0.23301651E-03 0.26559974E-02 0.00000000E+00
+ 0.92419528E+01 0.19885236E-03 0.24032227E-02 0.00000000E+00
+ 0.94036870E+01 0.16921135E-03 0.21705986E-02 0.00000000E+00
+ 0.95682515E+01 0.14356975E-03 0.19569174E-02 0.00000000E+00
+ 0.97356959E+01 0.12145370E-03 0.17610071E-02 0.00000000E+00
+ 0.99060706E+01 0.10243589E-03 0.15817333E-02 0.00000000E+00
+ 0.10079427E+02 0.86132298E-04 0.14180009E-02 0.00000000E+00
+ 0.10255817E+02 0.72198935E-04 0.12687563E-02 0.00000000E+00
+ 0.10435294E+02 0.60328765E-04 0.11329884E-02 0.00000000E+00
+ 0.10617911E+02 0.50248668E-04 0.10097295E-02 0.00000000E+00
+ 0.10803725E+02 0.41716539E-04 0.89805585E-03 0.00000000E+00
+ 0.10992790E+02 0.34518528E-04 0.79708860E-03 0.00000000E+00
+ 0.11185164E+02 0.28466415E-04 0.70599336E-03 0.00000000E+00
+ 0.11380904E+02 0.23395135E-04 0.62398036E-03 0.00000000E+00
+ 0.11580070E+02 0.19160457E-04 0.55030400E-03 0.00000000E+00
+ 0.11782721E+02 0.15636821E-04 0.48426231E-03 0.00000000E+00
+ 0.11988919E+02 0.12715331E-04 0.42519617E-03 0.00000000E+00
+ 0.12198725E+02 0.10301897E-04 0.37248836E-03 0.00000000E+00
+ 0.12412202E+02 0.83155353E-05 0.32556246E-03 0.00000000E+00
+ 0.12629416E+02 0.66868155E-05 0.28388161E-03 0.00000000E+00
+ 0.12850431E+02 0.53564435E-05 0.24694717E-03 0.00000000E+00
+ 0.13075313E+02 0.42739850E-05 0.21429724E-03 0.00000000E+00
+ 0.13304131E+02 0.33967149E-05 0.18550515E-03 0.00000000E+00
+ 0.13536954E+02 0.26885873E-05 0.16017785E-03 0.00000000E+00
+ 0.13773850E+02 0.21193150E-05 0.13795410E-03 0.00000000E+00
+ 0.14014893E+02 0.16635718E-05 0.11850403E-03 0.00000000E+00
+ 0.14260153E+02 0.13002183E-05 0.10152284E-03 0.00000000E+00
+ 0.14509706E+02 0.10117951E-05 0.86739400E-04 0.00000000E+00
+ 0.14763626E+02 0.78389171E-06 0.73908027E-04 0.00000000E+00
+ 0.15021989E+02 0.60461593E-06 0.62802172E-04 0.00000000E+00
+ 0.15284874E+02 0.46422564E-06 0.53216262E-04 0.00000000E+00
+ 0.15552359E+02 0.35478896E-06 0.44965466E-04 0.00000000E+00
+ 0.15824526E+02 0.26987789E-06 0.37884094E-04 0.00000000E+00
+ 0.16101455E+02 0.20430780E-06 0.31824049E-04 0.00000000E+00
+ 0.16383230E+02 0.15391700E-06 0.26653358E-04 0.00000000E+00
+ 0.16669937E+02 0.11538122E-06 0.22254779E-04 0.00000000E+00
+ 0.16961661E+02 0.86058309E-07 0.18524476E-04 0.00000000E+00
+ 0.17258490E+02 0.63858870E-07 0.15370782E-04 0.00000000E+00
+ 0.17560513E+02 0.47139100E-07 0.12713027E-04 0.00000000E+00
+ 0.17867822E+02 0.34612517E-07 0.10480455E-04 0.00000000E+00
+ 0.18180509E+02 0.25277633E-07 0.86112120E-05 0.00000000E+00
+ 0.18498668E+02 0.18359026E-07 0.70514047E-05 0.00000000E+00
+ 0.18822395E+02 0.13259611E-07 0.57542410E-05 0.00000000E+00
+ 0.19151787E+02 0.95221872E-08 0.46792345E-05 0.00000000E+00
+ 0.19486943E+02 0.67986701E-08 0.37914792E-05 0.00000000E+00
+ 0.19827964E+02 0.00000000E+00 0.30609892E-05 0.00000000E+00
+ 0.20174954E+02 0.00000000E+00 0.24620995E-05 0.00000000E+00
+ 0.20528016E+02 0.00000000E+00 0.19729253E-05 0.00000000E+00
+ 0.20887256E+02 0.00000000E+00 0.15748760E-05 0.00000000E+00
+ 0.21252783E+02 0.00000000E+00 0.12522205E-05 0.00000000E+00
+ 0.21624707E+02 0.00000000E+00 0.99169727E-06 0.00000000E+00
+ 0.22003139E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.22388194E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.22779987E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.23178637E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.23584263E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.23996988E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.24416935E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.24844231E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.25279005E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.25721388E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.26171512E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.26629514E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.27095530E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.27569702E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.28052172E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.28543085E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.29042589E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.29550834E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.30067974E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.30594163E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.31129561E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.31674328E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.32228629E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.32792630E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.33366501E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.33950415E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.34544547E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.35149077E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.35764186E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.36390059E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.37026885E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.37674855E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.38334165E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.39005013E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.39687601E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.40382134E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.41088821E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.41807876E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.42539514E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.43283955E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.44041424E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+&END
+&ATDENS
+ 615
+ 0.10416667E-02 0.50640911E+05
+ 0.10598958E-02 0.48913985E+05
+ 0.10784440E-02 0.47245951E+05
+ 0.10973168E-02 0.45634801E+05
+ 0.11165198E-02 0.44078594E+05
+ 0.11360589E-02 0.42575458E+05
+ 0.11559400E-02 0.41123583E+05
+ 0.11761689E-02 0.39721219E+05
+ 0.11967519E-02 0.38366680E+05
+ 0.12176950E-02 0.37058333E+05
+ 0.12390047E-02 0.35794605E+05
+ 0.12606873E-02 0.34573972E+05
+ 0.12827493E-02 0.33394965E+05
+ 0.13051974E-02 0.32256166E+05
+ 0.13280384E-02 0.31156202E+05
+ 0.13512790E-02 0.30093750E+05
+ 0.13749264E-02 0.29067529E+05
+ 0.13989876E-02 0.28076305E+05
+ 0.14234699E-02 0.27118885E+05
+ 0.14483806E-02 0.26194114E+05
+ 0.14737273E-02 0.25300880E+05
+ 0.14995175E-02 0.24438108E+05
+ 0.15257591E-02 0.23604758E+05
+ 0.15524599E-02 0.22799827E+05
+ 0.15796279E-02 0.22022346E+05
+ 0.16072714E-02 0.21271379E+05
+ 0.16353986E-02 0.20546022E+05
+ 0.16640181E-02 0.19845401E+05
+ 0.16931384E-02 0.19168673E+05
+ 0.17227684E-02 0.18515023E+05
+ 0.17529168E-02 0.17883664E+05
+ 0.17835928E-02 0.17273836E+05
+ 0.18148057E-02 0.16684804E+05
+ 0.18465648E-02 0.16115860E+05
+ 0.18788797E-02 0.15566318E+05
+ 0.19117601E-02 0.15035516E+05
+ 0.19452159E-02 0.14522816E+05
+ 0.19792572E-02 0.14027601E+05
+ 0.20138942E-02 0.13549273E+05
+ 0.20491373E-02 0.13087257E+05
+ 0.20849972E-02 0.12640997E+05
+ 0.21214847E-02 0.12209956E+05
+ 0.21586107E-02 0.11793614E+05
+ 0.21963864E-02 0.11391470E+05
+ 0.22348231E-02 0.11003041E+05
+ 0.22739325E-02 0.10627858E+05
+ 0.23137263E-02 0.10265469E+05
+ 0.23542165E-02 0.99154384E+04
+ 0.23954153E-02 0.95773448E+04
+ 0.24373351E-02 0.92507810E+04
+ 0.24799885E-02 0.89353537E+04
+ 0.25233883E-02 0.86306833E+04
+ 0.25675476E-02 0.83364028E+04
+ 0.26124796E-02 0.80521579E+04
+ 0.26581980E-02 0.77776064E+04
+ 0.27047165E-02 0.75124178E+04
+ 0.27520490E-02 0.72562727E+04
+ 0.28002099E-02 0.70088627E+04
+ 0.28492136E-02 0.67698899E+04
+ 0.28990748E-02 0.65390667E+04
+ 0.29498086E-02 0.63161151E+04
+ 0.30014303E-02 0.61007666E+04
+ 0.30539553E-02 0.58927620E+04
+ 0.31073995E-02 0.56918508E+04
+ 0.31617790E-02 0.54977912E+04
+ 0.32171101E-02 0.53103494E+04
+ 0.32734096E-02 0.51292998E+04
+ 0.33306942E-02 0.49544244E+04
+ 0.33889814E-02 0.47855127E+04
+ 0.34482886E-02 0.46223612E+04
+ 0.35086336E-02 0.44647736E+04
+ 0.35700347E-02 0.43125600E+04
+ 0.36325103E-02 0.41655373E+04
+ 0.36960792E-02 0.40235284E+04
+ 0.37607606E-02 0.38863623E+04
+ 0.38265739E-02 0.37538739E+04
+ 0.38935390E-02 0.36259037E+04
+ 0.39616759E-02 0.35022975E+04
+ 0.40310052E-02 0.33829066E+04
+ 0.41015478E-02 0.32675871E+04
+ 0.41733249E-02 0.31562004E+04
+ 0.42463581E-02 0.30486121E+04
+ 0.43206694E-02 0.29446929E+04
+ 0.43962811E-02 0.28443175E+04
+ 0.44732160E-02 0.27473652E+04
+ 0.45514973E-02 0.26537192E+04
+ 0.46311485E-02 0.25632667E+04
+ 0.47121936E-02 0.24758988E+04
+ 0.47946570E-02 0.23915104E+04
+ 0.48785635E-02 0.23099998E+04
+ 0.49639383E-02 0.22312689E+04
+ 0.50508073E-02 0.21552229E+04
+ 0.51391964E-02 0.20817703E+04
+ 0.52291323E-02 0.20108225E+04
+ 0.53206421E-02 0.19422942E+04
+ 0.54137534E-02 0.18761029E+04
+ 0.55084941E-02 0.18121689E+04
+ 0.56048927E-02 0.17504152E+04
+ 0.57029783E-02 0.16907674E+04
+ 0.58027804E-02 0.16331537E+04
+ 0.59043291E-02 0.15775048E+04
+ 0.60076549E-02 0.15237536E+04
+ 0.61127888E-02 0.14718355E+04
+ 0.62197626E-02 0.14216879E+04
+ 0.63286085E-02 0.13732504E+04
+ 0.64393591E-02 0.13264648E+04
+ 0.65520479E-02 0.12812746E+04
+ 0.66667087E-02 0.12376256E+04
+ 0.67833761E-02 0.11954651E+04
+ 0.69020852E-02 0.11547423E+04
+ 0.70228717E-02 0.11154083E+04
+ 0.71457720E-02 0.10774156E+04
+ 0.72708230E-02 0.10407186E+04
+ 0.73980624E-02 0.10052731E+04
+ 0.75275285E-02 0.97103628E+03
+ 0.76592602E-02 0.93796705E+03
+ 0.77932973E-02 0.90602555E+03
+ 0.79296800E-02 0.87517332E+03
+ 0.80684494E-02 0.84537323E+03
+ 0.82096472E-02 0.81658938E+03
+ 0.83533161E-02 0.78878713E+03
+ 0.84994991E-02 0.76193299E+03
+ 0.86482403E-02 0.73599465E+03
+ 0.87995845E-02 0.71094085E+03
+ 0.89535773E-02 0.68674145E+03
+ 0.91102649E-02 0.66336730E+03
+ 0.92696945E-02 0.64079026E+03
+ 0.94319142E-02 0.61898314E+03
+ 0.95969727E-02 0.59791970E+03
+ 0.97649197E-02 0.57757457E+03
+ 0.99358058E-02 0.55792325E+03
+ 0.10109682E-01 0.53894208E+03
+ 0.10286602E-01 0.52060821E+03
+ 0.10466617E-01 0.50289957E+03
+ 0.10649783E-01 0.48579483E+03
+ 0.10836154E-01 0.46927340E+03
+ 0.11025787E-01 0.45331539E+03
+ 0.11218738E-01 0.43790158E+03
+ 0.11415066E-01 0.42301341E+03
+ 0.11614830E-01 0.40863296E+03
+ 0.11818089E-01 0.39474292E+03
+ 0.12024906E-01 0.38132655E+03
+ 0.12235342E-01 0.36836771E+03
+ 0.12449460E-01 0.35585080E+03
+ 0.12667326E-01 0.34376074E+03
+ 0.12889004E-01 0.33208298E+03
+ 0.13114562E-01 0.32080345E+03
+ 0.13344067E-01 0.30990858E+03
+ 0.13577588E-01 0.29938524E+03
+ 0.13815195E-01 0.28922077E+03
+ 0.14056961E-01 0.27940294E+03
+ 0.14302958E-01 0.26991991E+03
+ 0.14553260E-01 0.26076027E+03
+ 0.14807942E-01 0.25191299E+03
+ 0.15067081E-01 0.24336742E+03
+ 0.15330755E-01 0.23511328E+03
+ 0.15599043E-01 0.22714061E+03
+ 0.15872026E-01 0.21943983E+03
+ 0.16149787E-01 0.21200166E+03
+ 0.16432408E-01 0.20481715E+03
+ 0.16719975E-01 0.19787764E+03
+ 0.17012575E-01 0.19117478E+03
+ 0.17310295E-01 0.18470050E+03
+ 0.17613225E-01 0.17844701E+03
+ 0.17921456E-01 0.17240677E+03
+ 0.18235082E-01 0.16657251E+03
+ 0.18554196E-01 0.16093721E+03
+ 0.18878894E-01 0.15549408E+03
+ 0.19209275E-01 0.15023657E+03
+ 0.19545437E-01 0.14515836E+03
+ 0.19887482E-01 0.14025331E+03
+ 0.20235513E-01 0.13551554E+03
+ 0.20589635E-01 0.13093933E+03
+ 0.20949953E-01 0.12651917E+03
+ 0.21316578E-01 0.12224975E+03
+ 0.21689618E-01 0.11812592E+03
+ 0.22069186E-01 0.11414272E+03
+ 0.22455397E-01 0.11029535E+03
+ 0.22848366E-01 0.10657917E+03
+ 0.23248213E-01 0.10298973E+03
+ 0.23655056E-01 0.99522680E+02
+ 0.24069020E-01 0.96173863E+02
+ 0.24490228E-01 0.92939242E+02
+ 0.24918807E-01 0.89814923E+02
+ 0.25354886E-01 0.86797144E+02
+ 0.25798596E-01 0.83882272E+02
+ 0.26250072E-01 0.81066797E+02
+ 0.26709448E-01 0.78347329E+02
+ 0.27176863E-01 0.75720594E+02
+ 0.27652459E-01 0.73183428E+02
+ 0.28136377E-01 0.70732779E+02
+ 0.28628763E-01 0.68365694E+02
+ 0.29129766E-01 0.66079323E+02
+ 0.29639537E-01 0.63870915E+02
+ 0.30158229E-01 0.61737809E+02
+ 0.30685998E-01 0.59677438E+02
+ 0.31223003E-01 0.57687321E+02
+ 0.31769406E-01 0.55765062E+02
+ 0.32325370E-01 0.53908346E+02
+ 0.32891064E-01 0.52114938E+02
+ 0.33466658E-01 0.50382678E+02
+ 0.34052325E-01 0.48709481E+02
+ 0.34648240E-01 0.47093332E+02
+ 0.35254584E-01 0.45532285E+02
+ 0.35871540E-01 0.44024462E+02
+ 0.36499292E-01 0.42568045E+02
+ 0.37138029E-01 0.41161283E+02
+ 0.37787945E-01 0.39802480E+02
+ 0.38449234E-01 0.38490001E+02
+ 0.39122095E-01 0.37222267E+02
+ 0.39806732E-01 0.35997749E+02
+ 0.40503350E-01 0.34814975E+02
+ 0.41212158E-01 0.33672519E+02
+ 0.41933371E-01 0.32569007E+02
+ 0.42667205E-01 0.31503110E+02
+ 0.43413881E-01 0.30473544E+02
+ 0.44173624E-01 0.29479070E+02
+ 0.44946663E-01 0.28518490E+02
+ 0.45733229E-01 0.27590648E+02
+ 0.46533561E-01 0.26694427E+02
+ 0.47347898E-01 0.25828748E+02
+ 0.48176486E-01 0.24992568E+02
+ 0.49019575E-01 0.24184881E+02
+ 0.49877417E-01 0.23404713E+02
+ 0.50750272E-01 0.22651127E+02
+ 0.51638402E-01 0.21923214E+02
+ 0.52542074E-01 0.21220098E+02
+ 0.53461560E-01 0.20540933E+02
+ 0.54397138E-01 0.19884900E+02
+ 0.55349088E-01 0.19251211E+02
+ 0.56317697E-01 0.18639101E+02
+ 0.57303256E-01 0.18047835E+02
+ 0.58306063E-01 0.17476699E+02
+ 0.59326419E-01 0.16925007E+02
+ 0.60364632E-01 0.16392095E+02
+ 0.61421013E-01 0.15877320E+02
+ 0.62495880E-01 0.15380062E+02
+ 0.63589558E-01 0.14899724E+02
+ 0.64702376E-01 0.14435727E+02
+ 0.65834667E-01 0.13987512E+02
+ 0.66986774E-01 0.13554540E+02
+ 0.68159042E-01 0.13136289E+02
+ 0.69351826E-01 0.12732256E+02
+ 0.70565483E-01 0.12341954E+02
+ 0.71800379E-01 0.11964913E+02
+ 0.73056885E-01 0.11600680E+02
+ 0.74335381E-01 0.11248816E+02
+ 0.75636250E-01 0.10908898E+02
+ 0.76959884E-01 0.10580516E+02
+ 0.78306682E-01 0.10263274E+02
+ 0.79677049E-01 0.99567915E+01
+ 0.81071397E-01 0.96606990E+01
+ 0.82490147E-01 0.93746400E+01
+ 0.83933724E-01 0.90982703E+01
+ 0.85402565E-01 0.88312571E+01
+ 0.86897110E-01 0.85732790E+01
+ 0.88417809E-01 0.83240256E+01
+ 0.89965121E-01 0.80831967E+01
+ 0.91539510E-01 0.78505025E+01
+ 0.93141452E-01 0.76256630E+01
+ 0.94771427E-01 0.74084076E+01
+ 0.96429927E-01 0.71984748E+01
+ 0.98117451E-01 0.69956120E+01
+ 0.99834506E-01 0.67995751E+01
+ 0.10158161E+00 0.66101281E+01
+ 0.10335929E+00 0.64270432E+01
+ 0.10516808E+00 0.62501001E+01
+ 0.10700852E+00 0.60790859E+01
+ 0.10888117E+00 0.59137949E+01
+ 0.11078659E+00 0.57540283E+01
+ 0.11272535E+00 0.55995940E+01
+ 0.11469805E+00 0.54503064E+01
+ 0.11670526E+00 0.53059858E+01
+ 0.11874760E+00 0.51664588E+01
+ 0.12082569E+00 0.50315578E+01
+ 0.12294014E+00 0.49011206E+01
+ 0.12509159E+00 0.47749906E+01
+ 0.12728069E+00 0.46530161E+01
+ 0.12950810E+00 0.45350508E+01
+ 0.13177449E+00 0.44209531E+01
+ 0.13408055E+00 0.43105861E+01
+ 0.13642696E+00 0.42038172E+01
+ 0.13881443E+00 0.41005186E+01
+ 0.14124368E+00 0.40005664E+01
+ 0.14371545E+00 0.39038408E+01
+ 0.14623047E+00 0.38102260E+01
+ 0.14878950E+00 0.37196101E+01
+ 0.15139332E+00 0.36318846E+01
+ 0.15404270E+00 0.35469447E+01
+ 0.15673845E+00 0.34646889E+01
+ 0.15948137E+00 0.33850192E+01
+ 0.16227229E+00 0.33078405E+01
+ 0.16511206E+00 0.32330610E+01
+ 0.16800152E+00 0.31605918E+01
+ 0.17094155E+00 0.30903468E+01
+ 0.17393302E+00 0.30222426E+01
+ 0.17697685E+00 0.29561986E+01
+ 0.18007395E+00 0.28921368E+01
+ 0.18322524E+00 0.28299816E+01
+ 0.18643168E+00 0.27696597E+01
+ 0.18969424E+00 0.27111004E+01
+ 0.19301389E+00 0.26542350E+01
+ 0.19639163E+00 0.25989970E+01
+ 0.19982848E+00 0.25453222E+01
+ 0.20332548E+00 0.24931482E+01
+ 0.20688368E+00 0.24424147E+01
+ 0.21050414E+00 0.23930633E+01
+ 0.21418796E+00 0.23450372E+01
+ 0.21793625E+00 0.22982818E+01
+ 0.22175014E+00 0.22527440E+01
+ 0.22563076E+00 0.22083723E+01
+ 0.22957930E+00 0.21651170E+01
+ 0.23359694E+00 0.21229299E+01
+ 0.23768489E+00 0.20817644E+01
+ 0.24184437E+00 0.20415754E+01
+ 0.24607665E+00 0.20023193E+01
+ 0.25038299E+00 0.19639537E+01
+ 0.25476469E+00 0.19264380E+01
+ 0.25922308E+00 0.18897327E+01
+ 0.26375948E+00 0.18537996E+01
+ 0.26837527E+00 0.18186020E+01
+ 0.27307184E+00 0.17841045E+01
+ 0.27785059E+00 0.17502728E+01
+ 0.28271298E+00 0.17170740E+01
+ 0.28766046E+00 0.16844763E+01
+ 0.29269451E+00 0.16524494E+01
+ 0.29781667E+00 0.16209640E+01
+ 0.30302846E+00 0.15899921E+01
+ 0.30833146E+00 0.15595068E+01
+ 0.31372726E+00 0.15294826E+01
+ 0.31921749E+00 0.14998949E+01
+ 0.32480379E+00 0.14707207E+01
+ 0.33048786E+00 0.14419378E+01
+ 0.33627140E+00 0.14135254E+01
+ 0.34215615E+00 0.13854639E+01
+ 0.34814388E+00 0.13577349E+01
+ 0.35423640E+00 0.13303212E+01
+ 0.36043553E+00 0.13032067E+01
+ 0.36674315E+00 0.12763767E+01
+ 0.37316116E+00 0.12498177E+01
+ 0.37969148E+00 0.12235172E+01
+ 0.38633608E+00 0.11974642E+01
+ 0.39309696E+00 0.11716488E+01
+ 0.39997616E+00 0.11460624E+01
+ 0.40697574E+00 0.11206976E+01
+ 0.41409782E+00 0.10955481E+01
+ 0.42134453E+00 0.10706090E+01
+ 0.42871806E+00 0.10458765E+01
+ 0.43622062E+00 0.10213480E+01
+ 0.44385449E+00 0.99702198E+00
+ 0.45162194E+00 0.97289823E+00
+ 0.45952532E+00 0.94897752E+00
+ 0.46756702E+00 0.92526169E+00
+ 0.47574944E+00 0.90175361E+00
+ 0.48407505E+00 0.87845710E+00
+ 0.49254637E+00 0.85537691E+00
+ 0.50116593E+00 0.83251860E+00
+ 0.50993633E+00 0.80988848E+00
+ 0.51886022E+00 0.78749357E+00
+ 0.52794027E+00 0.76534145E+00
+ 0.53717923E+00 0.74344021E+00
+ 0.54657986E+00 0.72179832E+00
+ 0.55614501E+00 0.70042453E+00
+ 0.56587755E+00 0.67932778E+00
+ 0.57578041E+00 0.65851705E+00
+ 0.58585656E+00 0.63800127E+00
+ 0.59610905E+00 0.61778920E+00
+ 0.60654096E+00 0.59788930E+00
+ 0.61715543E+00 0.57830965E+00
+ 0.62795565E+00 0.55905781E+00
+ 0.63894487E+00 0.54014075E+00
+ 0.65012641E+00 0.52156476E+00
+ 0.66150362E+00 0.50333537E+00
+ 0.67307993E+00 0.48545728E+00
+ 0.68485883E+00 0.46793437E+00
+ 0.69684386E+00 0.45076961E+00
+ 0.70903863E+00 0.43396510E+00
+ 0.72144680E+00 0.41752208E+00
+ 0.73407212E+00 0.40144098E+00
+ 0.74691839E+00 0.38572144E+00
+ 0.75998946E+00 0.37036247E+00
+ 0.77328927E+00 0.35536244E+00
+ 0.78682184E+00 0.34071932E+00
+ 0.80059122E+00 0.32643069E+00
+ 0.81460156E+00 0.31249395E+00
+ 0.82885709E+00 0.29890645E+00
+ 0.84336209E+00 0.28566557E+00
+ 0.85812093E+00 0.27276892E+00
+ 0.87313804E+00 0.26021438E+00
+ 0.88841796E+00 0.24800025E+00
+ 0.90396527E+00 0.23612526E+00
+ 0.91978467E+00 0.22458862E+00
+ 0.93588090E+00 0.21339005E+00
+ 0.95225881E+00 0.20252969E+00
+ 0.96892334E+00 0.19200804E+00
+ 0.98587950E+00 0.18182588E+00
+ 0.10031324E+01 0.17198414E+00
+ 0.10206872E+01 0.16248371E+00
+ 0.10385492E+01 0.15332530E+00
+ 0.10567238E+01 0.14450927E+00
+ 0.10752165E+01 0.13603546E+00
+ 0.10940328E+01 0.12790305E+00
+ 0.11131784E+01 0.12011040E+00
+ 0.11326590E+01 0.11265502E+00
+ 0.11524805E+01 0.10553346E+00
+ 0.11726489E+01 0.98741318E-01
+ 0.11931703E+01 0.92273300E-01
+ 0.12140508E+01 0.86123280E-01
+ 0.12352967E+01 0.80284435E-01
+ 0.12569144E+01 0.74749341E-01
+ 0.12789104E+01 0.69510038E-01
+ 0.13012913E+01 0.64558101E-01
+ 0.13240639E+01 0.59884709E-01
+ 0.13472350E+01 0.55480711E-01
+ 0.13708116E+01 0.51336692E-01
+ 0.13948008E+01 0.47443030E-01
+ 0.14192098E+01 0.43789955E-01
+ 0.14440460E+01 0.40367607E-01
+ 0.14693168E+01 0.37166082E-01
+ 0.14950299E+01 0.34175483E-01
+ 0.15211929E+01 0.31385965E-01
+ 0.15478138E+01 0.28787772E-01
+ 0.15749005E+01 0.26371276E-01
+ 0.16024613E+01 0.24127014E-01
+ 0.16305043E+01 0.22045711E-01
+ 0.16590382E+01 0.20118310E-01
+ 0.16880713E+01 0.18335996E-01
+ 0.17176126E+01 0.16690213E-01
+ 0.17476708E+01 0.15172682E-01
+ 0.17782550E+01 0.13775415E-01
+ 0.18093745E+01 0.12490725E-01
+ 0.18410385E+01 0.11311234E-01
+ 0.18732567E+01 0.10229879E-01
+ 0.19060387E+01 0.92399155E-02
+ 0.19393944E+01 0.83349174E-02
+ 0.19733338E+01 0.75087785E-02
+ 0.20078671E+01 0.67557085E-02
+ 0.20430048E+01 0.60702293E-02
+ 0.20787574E+01 0.54471700E-02
+ 0.21151356E+01 0.48816596E-02
+ 0.21521505E+01 0.43691202E-02
+ 0.21898132E+01 0.39052576E-02
+ 0.22281349E+01 0.34860529E-02
+ 0.22671272E+01 0.31077517E-02
+ 0.23068020E+01 0.27668542E-02
+ 0.23471710E+01 0.24601047E-02
+ 0.23882465E+01 0.21844797E-02
+ 0.24300408E+01 0.19371780E-02
+ 0.24725665E+01 0.17156082E-02
+ 0.25158364E+01 0.15173786E-02
+ 0.25598636E+01 0.13402854E-02
+ 0.26046612E+01 0.11823020E-02
+ 0.26502428E+01 0.10415683E-02
+ 0.26966220E+01 0.91638044E-03
+ 0.27438129E+01 0.80518010E-03
+ 0.27918296E+01 0.70654519E-03
+ 0.28406866E+01 0.61918019E-03
+ 0.28903987E+01 0.54190705E-03
+ 0.29409806E+01 0.47365655E-03
+ 0.29924478E+01 0.41346005E-03
+ 0.30448156E+01 0.36044161E-03
+ 0.30980999E+01 0.31381054E-03
+ 0.31523166E+01 0.27285445E-03
+ 0.32074822E+01 0.23693263E-03
+ 0.32636131E+01 0.20546983E-03
+ 0.33207264E+01 0.17795054E-03
+ 0.33788391E+01 0.15391357E-03
+ 0.34379688E+01 0.13294706E-03
+ 0.34981332E+01 0.11468382E-03
+ 0.35593505E+01 0.98797050E-04
+ 0.36216392E+01 0.84996404E-04
+ 0.36850179E+01 0.73024329E-04
+ 0.37495057E+01 0.62652754E-04
+ 0.38151220E+01 0.53680035E-04
+ 0.38818867E+01 0.45928185E-04
+ 0.39498197E+01 0.39240344E-04
+ 0.40189415E+01 0.33478488E-04
+ 0.40892730E+01 0.28521357E-04
+ 0.41608353E+01 0.24262578E-04
+ 0.42336499E+01 0.20608984E-04
+ 0.43077388E+01 0.17479090E-04
+ 0.43831242E+01 0.14801740E-04
+ 0.44598289E+01 0.12514886E-04
+ 0.45378759E+01 0.10564500E-04
+ 0.46172887E+01 0.89036114E-05
+ 0.46980912E+01 0.74914382E-05
+ 0.47803078E+01 0.62926276E-05
+ 0.48639632E+01 0.52765758E-05
+ 0.49490826E+01 0.44168298E-05
+ 0.50356915E+01 0.36905576E-05
+ 0.51238161E+01 0.30780822E-05
+ 0.52134829E+01 0.25624712E-05
+ 0.53047189E+01 0.21291761E-05
+ 0.53975514E+01 0.17657158E-05
+ 0.54920086E+01 0.14614004E-05
+ 0.55881187E+01 0.12070881E-05
+ 0.56859108E+01 0.99497461E-06
+ 0.57854143E+01 0.81840797E-06
+ 0.58866590E+01 0.67172863E-06
+ 0.59896755E+01 0.55012969E-06
+ 0.60944949E+01 0.44953586E-06
+ 0.62011485E+01 0.36649849E-06
+ 0.63096686E+01 0.29810481E-06
+ 0.64200878E+01 0.24189943E-06
+ 0.65324394E+01 0.19581667E-06
+ 0.66467571E+01 0.15812231E-06
+ 0.67630753E+01 0.12736343E-06
+ 0.68814291E+01 0.10232546E-06
+ 0.70018541E+01 0.81995333E-07
+ 0.71243866E+01 0.65529945E-07
+ 0.72490633E+01 0.52229317E-07
+ 0.73759219E+01 0.41513672E-07
+ 0.75050006E+01 0.32903976E-07
+ 0.76363381E+01 0.26005426E-07
+ 0.77699740E+01 0.20493477E-07
+ 0.79059486E+01 0.16102038E-07
+ 0.80443027E+01 0.12613533E-07
+ 0.81850780E+01 0.98505475E-08
+ 0.83283168E+01 0.76688165E-08
+ 0.84740624E+01 0.59513721E-08
+ 0.86223585E+01 0.46036550E-08
+ 0.87732497E+01 0.35494508E-08
+ 0.89267816E+01 0.27275192E-08
+ 0.90830003E+01 0.20888051E-08
+ 0.92419528E+01 0.15941396E-08
+ 0.94036870E+01 0.12123490E-08
+ 0.95682515E+01 0.91870476E-09
+ 0.97356959E+01 0.69365754E-09
+ 0.99060706E+01 0.52180529E-09
+ 0.10079427E+02 0.39105612E-09
+ 0.10255817E+02 0.29195069E-09
+ 0.10435294E+02 0.21711603E-09
+ 0.10617911E+02 0.16082661E-09
+ 0.10803725E+02 0.11865301E-09
+ 0.10992790E+02 0.87181673E-10
+ 0.11185164E+02 0.63792167E-10
+ 0.11380904E+02 0.46480937E-10
+ 0.11580070E+02 0.33722270E-10
+ 0.11782721E+02 0.24359117E-10
+ 0.11988919E+02 0.17517690E-10
+ 0.12198725E+02 0.12540930E-10
+ 0.12412202E+02 0.89368913E-11
+ 0.12629416E+02 0.63388772E-11
+ 0.12850431E+02 0.44747795E-11
+ 0.13075313E+02 0.31436013E-11
+ 0.13304131E+02 0.21975636E-11
+ 0.13536954E+02 0.15285284E-11
+ 0.13773850E+02 0.10577433E-11
+ 0.14014893E+02 0.72815315E-12
+ 0.14260153E+02 0.49857672E-12
+ 0.14509706E+02 0.33953728E-12
+ 0.14763626E+02 0.22997994E-12
+ 0.15021989E+02 0.15492082E-12
+ 0.15284874E+02 0.10377776E-12
+ 0.15552359E+02 0.69124197E-13
+ 0.15824526E+02 0.45776548E-13
+ 0.16101455E+02 0.30136879E-13
+ 0.16383230E+02 0.19721966E-13
+ 0.16669937E+02 0.12827807E-13
+ 0.16961661E+02 0.82919709E-14
+ 0.17258490E+02 0.53262096E-14
+ 0.17560513E+02 0.33992653E-14
+ 0.17867822E+02 0.21553040E-14
+ 0.18180509E+02 0.13574946E-14
+ 0.18498668E+02 0.84922423E-15
+ 0.18822395E+02 0.52760497E-15
+ 0.19151787E+02 0.32549493E-15
+ 0.19486943E+02 0.19937646E-15
+ 0.19827964E+02 0.12123864E-15
+ 0.20174954E+02 0.73179761E-16
+ 0.20528016E+02 0.43839280E-16
+ 0.20887256E+02 0.26061367E-16
+ 0.21252783E+02 0.15371929E-16
+ 0.21624707E+02 0.89947136E-17
+ 0.22003139E+02 0.00000000E+00
+ 0.22388194E+02 0.00000000E+00
+ 0.22779987E+02 0.00000000E+00
+ 0.23178637E+02 0.00000000E+00
+ 0.23584263E+02 0.00000000E+00
+ 0.23996988E+02 0.00000000E+00
+ 0.24416935E+02 0.00000000E+00
+ 0.24844231E+02 0.00000000E+00
+ 0.25279005E+02 0.00000000E+00
+ 0.25721388E+02 0.00000000E+00
+ 0.26171512E+02 0.00000000E+00
+ 0.26629514E+02 0.00000000E+00
+ 0.27095530E+02 0.00000000E+00
+ 0.27569702E+02 0.00000000E+00
+ 0.28052172E+02 0.00000000E+00
+ 0.28543085E+02 0.00000000E+00
+ 0.29042589E+02 0.00000000E+00
+ 0.29550834E+02 0.00000000E+00
+ 0.30067974E+02 0.00000000E+00
+ 0.30594163E+02 0.00000000E+00
+ 0.31129561E+02 0.00000000E+00
+ 0.31674328E+02 0.00000000E+00
+ 0.32228629E+02 0.00000000E+00
+ 0.32792630E+02 0.00000000E+00
+ 0.33366501E+02 0.00000000E+00
+ 0.33950415E+02 0.00000000E+00
+ 0.34544547E+02 0.00000000E+00
+ 0.35149077E+02 0.00000000E+00
+ 0.35764186E+02 0.00000000E+00
+ 0.36390059E+02 0.00000000E+00
+ 0.37026885E+02 0.00000000E+00
+ 0.37674855E+02 0.00000000E+00
+ 0.38334165E+02 0.00000000E+00
+ 0.39005013E+02 0.00000000E+00
+ 0.39687601E+02 0.00000000E+00
+ 0.40382134E+02 0.00000000E+00
+ 0.41088821E+02 0.00000000E+00
+ 0.41807876E+02 0.00000000E+00
+ 0.42539514E+02 0.00000000E+00
+ 0.43283955E+02 0.00000000E+00
+ 0.44041424E+02 0.00000000E+00
+&END
diff --git a/clusters/user/CPMD/PPs/H_MT_PBE b/clusters/user/CPMD/PPs/H_MT_PBE
new file mode 100644
index 0000000..509052a
--- /dev/null
+++ b/clusters/user/CPMD/PPs/H_MT_PBE
@@ -0,0 +1,787 @@
+&ATOM
+ Z = 1
+ ZV = 1
+ XC = 1134 .666667
+ TYPE = NORMCONSERVING LOGARITHMIC
+&END
+&INFO
+ ============================================================
+ | Pseudopotential Report Mon Jun 3 16:31:29 2002 |
+ | Martins-Trouiller Type |
+ ------------------------------------------------------------
+ | Atomic Symbol : H |
+ | Atomic Number : 1 |
+ | Valence Charge : 1 |
+ | Number of valence states : 1 |
+ | Exchange-Correlation Functional : |
+ | Slater exchange : .6667 |
+ | LDA correlation : Ceperley-Alder |
+ | Exchange GC : Perdew-Burke-Ernzerhof |
+ | Correlation GC : Perdew-Burke-Ernzerhof |
+ | n l Rc occ energy |
+ | 1 S .500 1.0000 -.23879 |
+ | Radial Functions Stored on Logarithmic Grids |
+ ============================================================
+&END
+&POTENTIALS
+ 251 LOGARITHMIC GRID
+ .1000000000E-04 -7.737194044 -2.410782359 -5.062795924
+ .1064025027E-04 -7.737194044 -2.410883636 -5.062798772
+ .1132149259E-04 -7.737194044 -2.410998297 -5.062801996
+ .1204635146E-04 -7.737194043 -2.411128110 -5.062805647
+ .1281761945E-04 -7.737194043 -2.411275078 -5.062809779
+ .1363826788E-04 -7.737194043 -2.411441467 -5.062814458
+ .1451145836E-04 -7.737194043 -2.411629845 -5.062819755
+ .1544055488E-04 -7.737194042 -2.411843117 -5.062825752
+ .1642913683E-04 -7.737194042 -2.412084573 -5.062832541
+ .1748101276E-04 -7.737194041 -2.412357937 -5.062840228
+ .1860023508E-04 -7.737194041 -2.412667425 -5.062848931
+ .1979111565E-04 -7.737194040 -2.413017813 -5.062858783
+ .2105824237E-04 -7.737194040 -2.413414503 -5.062869938
+ .2240649691E-04 -7.737194039 -2.413863617 -5.062882567
+ .2384107349E-04 -7.737194038 -2.414372080 -5.062896864
+ .2536749888E-04 -7.737194037 -2.414947736 -5.062913051
+ .2699165369E-04 -7.737194036 -2.415599465 -5.062931377
+ .2871979506E-04 -7.737194035 -2.416337319 -5.062952125
+ .3055858072E-04 -7.737194033 -2.417172680 -5.062975615
+ .3251509469E-04 -7.737194032 -2.418118433 -5.063002208
+ .3459687452E-04 -7.737194030 -2.419189167 -5.063032317
+ .3681194036E-04 -7.737194028 -2.420401398 -5.063066404
+ .3916882585E-04 -7.737194026 -2.421773824 -5.063104995
+ .4167661100E-04 -7.737194023 -2.423327615 -5.063148686
+ .4434495716E-04 -7.737194020 -2.425086739 -5.063198151
+ .4718414426E-04 -7.737194017 -2.427078329 -5.063254153
+ .5020511039E-04 -7.737194013 -2.429333107 -5.063317556
+ .5341949396E-04 -7.737194009 -2.431885852 -5.063389337
+ .5683967853E-04 -7.737194004 -2.434775940 -5.063470603
+ .6047884051E-04 -7.737193999 -2.438047951 -5.063562610
+ .6435099993E-04 -7.737193992 -2.441752356 -5.063666774
+ .6847107446E-04 -7.737193985 -2.445946296 -5.063784704
+ .7285493688E-04 -7.737193977 -2.450694461 -5.063918219
+ .7751947622E-04 -7.737193969 -2.456070093 -5.064069377
+ .8248266281E-04 -7.737193958 -2.462156111 -5.064240511
+ .8776361756E-04 -7.737193947 -2.469046391 -5.064434259
+ .9338268558E-04 -7.737193934 -2.476847217 -5.064653612
+ .9936151458E-04 -7.737193919 -2.485678917 -5.064901952
+ .1057231383E-03 -7.737193903 -2.495677719 -5.065183110
+ .1124920651E-03 -7.737193884 -2.506997855 -5.065501422
+ .1196943727E-03 -7.737193862 -2.519813938 -5.065861800
+ .1273578082E-03 -7.737193838 -2.534323658 -5.066269801
+ .1355118953E-03 -7.737193811 -2.550750826 -5.066731719
+ .1441880481E-03 -7.737193780 -2.569348833 -5.067254679
+ .1534196919E-03 -7.737193745 -2.590404552 -5.067846748
+ .1632423918E-03 -7.737193705 -2.614242769 -5.068517058
+ .1736939905E-03 -7.737193660 -2.641231189 -5.069275950
+ .1848147530E-03 -7.737193609 -2.671786108 -5.070135128
+ .1966475226E-03 -7.737193552 -2.706378837 -5.071107846
+ .2092378856E-03 -7.737193487 -2.745542970 -5.072209108
+ .2226343470E-03 -7.737193413 -2.789882614 -5.073455902
+ .2368885172E-03 -7.737193329 -2.840081709 -5.074867458
+ .2520553110E-03 -7.737193235 -2.896914577 -5.076465550
+ .2681931592E-03 -7.737193128 -2.961257867 -5.078274828
+ .2853642335E-03 -7.737193006 -3.034104074 -5.080323202
+ .3036346864E-03 -7.737192869 -3.116576855 -5.082642266
+ .3230749055E-03 -7.737192714 -3.209948351 -5.085267794
+ .3437597852E-03 -7.737192538 -3.315658822 -5.088240282
+ .3657690149E-03 -7.737192338 -3.435338854 -5.091605583
+ .3891873861E-03 -7.737192113 -3.570834526 -5.095415606
+ .4141051192E-03 -7.737191858 -3.724236102 -5.099729125
+ .4406182108E-03 -7.737191568 -3.897914415 -5.104612753
+ .4688288038E-03 -7.737191241 -4.094633357 -5.110143232
+ .4988455808E-03 -7.737190869 -4.319077132 -5.116433302
+ .5307841828E-03 -7.737190456 -4.563592118 -5.123402384
+ .5647676547E-03 -7.737190041 -4.772160316 -5.130380740
+ .6009269193E-03 -7.737189601 -4.948200592 -5.137724632
+ .6394012818E-03 -7.737189119 -5.095048239 -5.145705131
+ .6803389664E-03 -7.737188582 -5.216345582 -5.154553522
+ .7238976874E-03 -7.737187975 -5.315729383 -5.164481051
+ .7702452567E-03 -7.737187285 -5.396610952 -5.175691885
+ .8195602303E-03 -7.737186499 -5.462062222 -5.188392422
+ .8720325966E-03 -7.737185602 -5.514772290 -5.202798094
+ .9278645075E-03 -7.737184580 -5.557046818 -5.219138875
+ .9872710580E-03 -7.737183413 -5.590831728 -5.237663622
+ .1050481115E-02 -7.737182084 -5.617749095 -5.258643776
+ .1117738197E-02 -7.737180571 -5.639137652 -5.282376648
+ .1189301415E-02 -7.737178849 -5.656093346 -5.309188109
+ .1265446471E-02 -7.737176891 -5.669507341 -5.339434871
+ .1346466716E-02 -7.737174667 -5.680100215 -5.373506474
+ .1432674285E-02 -7.737172140 -5.688451836 -5.411826278
+ .1524401295E-02 -7.737169272 -5.695026950 -5.454851794
+ .1622001130E-02 -7.737166018 -5.700196740 -5.503073706
+ .1725849797E-02 -7.737162327 -5.704256772 -5.557013367
+ .1836347377E-02 -7.737158141 -5.707441787 -5.617217988
+ .1953919568E-02 -7.737153396 -5.709937793 -5.684253214
+ .2079019322E-02 -7.737148017 -5.711891893 -5.758691805
+ .2212128591E-02 -7.737141921 -5.713420211 -5.841097847
+ .2353760185E-02 -7.737135014 -5.714614278 -5.932004947
+ .2504459746E-02 -7.737127188 -5.715546138 -6.031887119
+ .2664807849E-02 -7.737118322 -5.716272418 -6.141120705
+ .2835422245E-02 -7.737108278 -5.716837582 -6.259935616
+ .3016960232E-02 -7.737096899 -5.717276496 -6.388353676
+ .3210121194E-02 -7.737084010 -5.717616472 -6.526112760
+ .3415649291E-02 -7.737069410 -5.717878877 -6.672574678
+ .3634336331E-02 -7.737052872 -5.718080404 -6.826616367
+ .3867024814E-02 -7.737034137 -5.718234075 -6.986504594
+ .4114611184E-02 -7.737012915 -5.718350025 -7.149756955
+ .4378049278E-02 -7.736988874 -5.718436126 -7.312994731
+ .4658354003E-02 -7.736961638 -5.718498467 -7.471798072
+ .4956605246E-02 -7.736930781 -5.718541735 -7.620580026
+ .5273952032E-02 -7.736895820 -5.718569513 -7.752504050
+ .5611616956E-02 -7.736856204 -5.718584512 -7.859478717
+ .5970900885E-02 -7.736811310 -5.718588750 -7.932273471
+ .6353187978E-02 -7.736760430 -5.718583689 -7.960807097
+ .6759951013E-02 -7.736702757 -5.718570349 -7.934663585
+ .7192757062E-02 -7.736637375 -5.718549384 -7.843882315
+ .7653273530E-02 -7.736563241 -5.718521151 -7.680044585
+ .8143274578E-02 -7.736479168 -5.718485750 -7.437629341
+ .8664647956E-02 -7.736383803 -5.718443064 -7.115534327
+ .9219402279E-02 -7.736275604 -5.718392779 -6.718558808
+ .9809674763E-02 -7.736152808 -5.718334404 -6.258539405
+ .1043773946E-01 -7.736013403 -5.718267277 -5.754757570
+ .1110601601E-01 -7.735855089 -5.718190566 -5.233246495
+ .1181707899E-01 -7.735675229 -5.718103276 -4.724764842
+ .1257366780E-01 -7.735470802 -5.718004233 -4.261490672
+ .1337869723E-01 -7.735238336 -5.717892081 -3.872873295
+ .1423526868E-01 -7.734973839 -5.717765262 -3.581440918
+ .1514668215E-01 -7.734672711 -5.717622002 -3.399535099
+ .1611644889E-01 -7.734329642 -5.717460284 -3.327805143
+ .1714830497E-01 -7.733938486 -5.717277818 -3.355847216
+ .1824622567E-01 -7.733492120 -5.717072006 -3.464767406
+ .1941444077E-01 -7.732982263 -5.716839895 -3.630926354
+ .2065745087E-01 -7.732399267 -5.716578121 -3.829887542
+ .2198004473E-01 -7.731731857 -5.716282832 -4.039700082
+ .2338731770E-01 -7.730966823 -5.715949602 -4.243000436
+ .2488469135E-01 -7.730088639 -5.715573313 -4.427835796
+ .2647793440E-01 -7.729079002 -5.715147999 -4.587436360
+ .2817318488E-01 -7.727916267 -5.714666662 -4.719321072
+ .2997697381E-01 -7.726574750 -5.714121013 -4.824124036
+ .3189625038E-01 -7.725023882 -5.713501159 -4.904436852
+ .3393840869E-01 -7.723227155 -5.712795185 -4.963840426
+ .3611131623E-01 -7.721140833 -5.711988621 -5.006193013
+ .3842334424E-01 -7.718712356 -5.711063768 -5.035168537
+ .4088339991E-01 -7.715878366 -5.709998817 -5.054001153
+ .4350096071E-01 -7.712562279 -5.708766748 -5.065379933
+ .4628611092E-01 -7.708671276 -5.707333920 -5.071441056
+ .4924958044E-01 -7.704092590 -5.705658286 -5.073815424
+ .5240278618E-01 -7.698688934 -5.703687148 -5.073701623
+ .5575787600E-01 -7.692292868 -5.701354340 -5.071944851
+ .5932777554E-01 -7.684699876 -5.698576690 -5.069110578
+ .6312623800E-01 -7.675659897 -5.695249627 -5.065547460
+ .6716789711E-01 -7.664866984 -5.691241727 -5.061437589
+ .7146832357E-01 -7.651946752 -5.686387982 -5.056834249
+ .7604408495E-01 -7.636441220 -5.680481561 -5.051688360
+ .8091280957E-01 -7.617790641 -5.673263780 -5.045865142
+ .8609325442E-01 -7.595311927 -5.664412006 -5.039152521
+ .9160537740E-01 -7.568173309 -5.653525246 -5.031262632
+ .9747041420E-01 -7.535365041 -5.640107180 -5.021827513
+ .1037109601 -7.495666184 -5.623546554 -5.010389885
+ .1103510572 -7.447607993 -5.603095030 -4.996389805
+ .1174162867 -7.389435180 -5.577842915 -4.979147946
+ .1249338676 -7.319067477 -5.546693745 -4.957846438
+ .1329327620 -7.234065744 -5.508339472 -4.931508593
+ .1414437857 -7.131609388 -5.461239134 -4.898979439
+ .1504997279 -7.008495455 -5.403605484 -4.858910004
+ .1601354771 -6.861174451 -5.333406116 -4.809749638
+ .1703881555 -6.685843796 -5.248388307 -4.749752484
+ .1812972618 -6.478626384 -5.146139915 -4.677006460
+ .1929048240 -6.235867980 -5.024202032 -4.589495700
+ .2052555606 -5.954590998 -4.880251997 -4.485209894
+ .2183970535 -5.633139658 -4.712376526 -4.362315720
+ .2323799308 -5.272036439 -4.519451800 -4.219405067
+ .2472580623 -4.875032859 -4.301636625 -4.055829642
+ .2630887665 -4.450266382 -4.060960438 -3.872118071
+ .2799330320 -4.011314945 -3.801942042 -3.670444220
+ .2978557520 -3.577757647 -3.532098021 -3.455067373
+ .3169259747 -3.174601639 -3.262084167 -3.232589645
+ .3372171690 -2.829652170 -3.005063704 -3.011773749
+ .3588075074 -2.567710098 -2.774756433 -2.802557522
+ .3817801680 -2.400756372 -2.581640649 -2.613873130
+ .4062236537 -2.315041351 -2.427348625 -2.450155170
+ .4322321342 -2.261688695 -2.299359090 -2.307550553
+ .4599058085 -2.172313318 -2.173748162 -2.174041967
+ .4893512905 -2.043542775 -2.043519302 -2.043519605
+ .5206820203 -1.920563130 -1.920559835 -1.920560993
+ .5540187009 -1.805002677 -1.804995473 -1.805068658
+ .5894897634 -1.696392229 -1.696384675 -1.696392983
+ .6272318617 -1.594316567 -1.594309122 -1.594315331
+ .6673903989 -1.498382965 -1.498375532 -1.498303275
+ .7101200875 -1.408221884 -1.408214286 -1.408202818
+ .7555855455 -1.323485980 -1.323478029 -1.323475506
+ .8039619308 -1.243848809 -1.243840339 -1.243839677
+ .8554356155 -1.169003569 -1.168994488 -1.168994898
+ .9102049042 -1.098661921 -1.098652256 -1.098653609
+ .9684807982 -1.032552876 -1.032542823 -1.032544912
+ 1.030487808 -.9704217501 -.9704117040 -.9704141356
+ 1.096464818 -.9120291868 -.9120197413 -.9120219192
+ 1.166666008 -.8571502312 -.8571420276 -.8571433057
+ 1.241361831 -.8055734644 -.8055667405 -.8055668731
+ 1.320840057 -.7571001889 -.7570944680 -.7570939212
+ 1.405406877 -.7115436623 -.7115382862 -.7115377060
+ 1.495388091 -.6687283774 -.6687230603 -.6687227202
+ 1.591130355 -.6284893859 -.6284841429 -.6284840172
+ 1.693002519 -.5906716620 -.5906665904 -.5906665758
+ 1.801397052 -.5551295053 -.5551246831 -.5551247025
+ 1.916731548 -.5217259799 -.5217214521 -.5217214707
+ 2.039450338 -.4903323887 -.4903281831 -.4903281935
+ 2.170026202 -.4608277793 -.4608239217 -.4608239271
+ 2.308962189 -.4330984816 -.4330950005 -.4330950054
+ 2.456793556 -.4070376728 -.4070345953 -.4070346018
+ 2.614089831 -.3825449682 -.3825423096 -.3825423175
+ 2.781457004 -.3595260339 -.3595237872 -.3595237949
+ 2.959539865 -.3378922203 -.3378903489 -.3378903538
+ 3.149024486 -.3175602143 -.3175586511 -.3175586504
+ 3.350640865 -.2984517103 -.2984503650 -.2984503561
+ 3.565165738 -.2804931017 -.2804918746 -.2804918604
+ 3.793425573 -.2636151937 -.2636139928 -.2636140035
+ 4.036299749 -.2477529380 -.2477516948 -.2477516877
+ 4.294723951 -.2328451893 -.2328438675 -.2328437885
+ 4.569693770 -.2188344790 -.2188330756 -.2188330282
+ 4.862268539 -.2056668024 -.2056653443 -.2056653057
+ 5.173575415 -.1932914150 -.1932899482 -.1932899143
+ 5.504813723 -.1816606372 -.1816592107 -.1816591810
+ 5.857259573 -.1707296672 -.1707283225 -.1707282977
+ 6.232270777 -.1604564042 -.1604551722 -.1604551528
+ 6.631292085 -.1508012830 -.1508001832 -.1508001687
+ 7.055860743 -.1417271182 -.1417261600 -.1417261490
+ 7.507612420 -.1331989609 -.1331981450 -.1331981352
+ 7.988287511 -.1251839628 -.1251832832 -.1251832723
+ 8.499737838 -.1176512504 -.1176506961 -.1176506823
+ 9.043933786 -.1105718065 -.1105713633 -.1105713539
+ 9.622971895 -.1039183584 -.1039180108 -.1039179874
+ 10.23908293 -.9766525805E-01 -.9766500635E-01 -.9766501189E-01
+ 10.89464050 -.9178845347E-01 -.9178825996E-01 -.9178826411E-01
+ 11.59217016 -.8626527714E-01 -.8626513152E-01 -.8626512873E-01
+ 12.33435917 -.8107445033E-01 -.8107434318E-01 -.8107433986E-01
+ 13.12406685 -.7619597438E-01 -.7619589737E-01 -.7619589466E-01
+ 13.96433559 -.7161105379E-01 -.7161099976E-01 -.7161099786E-01
+ 14.85840256 -.6730202389E-01 -.6730198692E-01 -.6730198583E-01
+ 15.80971219 -.6325228288E-01 -.6325225820E-01 -.6325225805E-01
+ 16.82192945 -.5944622796E-01 -.5944621163E-01 -.5944621272E-01
+ 17.89895395 -.5586919523E-01 -.5586918480E-01 -.5586918662E-01
+ 19.04493496 -.5250740327E-01 -.5250739662E-01 -.5250739886E-01
+ 20.26428745 -.4934790017E-01 -.4934789570E-01 -.4934789799E-01
+ 21.56170901 -.4637851029E-01 -.4637850991E-01 -.4637851196E-01
+ 22.94219802 -.4358780040E-01 -.4358779954E-01 -.4358780121E-01
+ 24.41107287 -.4096501422E-01 -.4096501324E-01 -.4096501451E-01
+ 25.97399248 -.3850004763E-01 -.3850004659E-01 -.3850004741E-01
+ 27.63697807 -.3618340423E-01 -.3618340318E-01 -.3618340374E-01
+ 29.40643634 -.3400615905E-01 -.3400615801E-01 -.3400615837E-01
+ 31.28918424 -.3195992415E-01 -.3195992313E-01 -.3195992334E-01
+ 33.29247512 -.3003681630E-01 -.3003681532E-01 -.3003681543E-01
+ 35.42402675 -.2822942663E-01 -.2822942570E-01 -.2822942576E-01
+ 37.69205103 -.2653079210E-01 -.2653079122E-01 -.2653079124E-01
+ 40.10528564 -.2493436862E-01 -.2493436779E-01 -.2493436779E-01
+ 42.67302765 -.2343400590E-01 -.2343400511E-01 -.2343400511E-01
+ 45.40516941 -.2202392371E-01 -.2202392297E-01 -.2202392297E-01
+ 48.31223663 -.2069868963E-01 -.2069868894E-01 -.2069868893E-01
+ 51.40542891 -.1945319792E-01 -.1945319727E-01 -.1945319727E-01
+ 54.69666290 -.1828264878E-01 -.1828264817E-01 -.1828264817E-01
+&END
+&ATDENS
+ 251 LOGARITHMIC GRID
+ .1000000000E-04 2.979300340
+ .1064025027E-04 2.979290494
+ .1132149259E-04 2.979280717
+ .1204635146E-04 2.979271492
+ .1281761945E-04 2.979262817
+ .1363826788E-04 2.979254664
+ .1451145836E-04 2.979247001
+ .1544055488E-04 2.979239801
+ .1642913683E-04 2.979233034
+ .1748101276E-04 2.979226675
+ .1860023508E-04 2.979220699
+ .1979111565E-04 2.979215082
+ .2105824237E-04 2.979209804
+ .2240649691E-04 2.979204845
+ .2384107349E-04 2.979200183
+ .2536749888E-04 2.979195803
+ .2699165369E-04 2.979191687
+ .2871979506E-04 2.979187818
+ .3055858072E-04 2.979184183
+ .3251509469E-04 2.979180766
+ .3459687452E-04 2.979177556
+ .3681194036E-04 2.979174538
+ .3916882585E-04 2.979171702
+ .4167661100E-04 2.979169037
+ .4434495716E-04 2.979166533
+ .4718414426E-04 2.979164178
+ .5020511039E-04 2.979161966
+ .5341949396E-04 2.979159886
+ .5683967853E-04 2.979157931
+ .6047884051E-04 2.979156093
+ .6435099993E-04 2.979154365
+ .6847107446E-04 2.979152740
+ .7285493688E-04 2.979151212
+ .7751947622E-04 2.979149774
+ .8248266281E-04 2.979148422
+ .8776361756E-04 2.979147149
+ .9338268558E-04 2.979145951
+ .9936151458E-04 2.979144823
+ .1057231383E-03 2.979143760
+ .1124920651E-03 2.979142758
+ .1196943727E-03 2.979141812
+ .1273578082E-03 2.979140920
+ .1355118953E-03 2.979140076
+ .1441880481E-03 2.979139277
+ .1534196919E-03 2.979138521
+ .1632423918E-03 2.979137803
+ .1736939905E-03 2.979137120
+ .1848147530E-03 2.979136469
+ .1966475226E-03 2.979135846
+ .2092378856E-03 2.979135249
+ .2226343470E-03 2.979134674
+ .2368885172E-03 2.979134119
+ .2520553110E-03 2.979133579
+ .2681931592E-03 2.979133052
+ .2853642335E-03 2.979132533
+ .3036346864E-03 2.979132020
+ .3230749055E-03 2.979131509
+ .3437597852E-03 2.979130996
+ .3657690149E-03 2.979130475
+ .3891873861E-03 2.979129943
+ .4141051192E-03 2.979129395
+ .4406182108E-03 2.979128825
+ .4688288038E-03 2.979128228
+ .4988455808E-03 2.979127596
+ .5307841828E-03 2.979126922
+ .5647676547E-03 2.979126198
+ .6009269193E-03 2.979125416
+ .6394012818E-03 2.979124564
+ .6803389664E-03 2.979123633
+ .7238976874E-03 2.979122609
+ .7702452567E-03 2.979121477
+ .8195602303E-03 2.979120224
+ .8720325966E-03 2.979118829
+ .9278645075E-03 2.979117274
+ .9872710580E-03 2.979115535
+ .1050481115E-02 2.979113587
+ .1117738197E-02 2.979111400
+ .1189301415E-02 2.979108943
+ .1265446471E-02 2.979106178
+ .1346466716E-02 2.979103064
+ .1432674285E-02 2.979099553
+ .1524401295E-02 2.979095591
+ .1622001130E-02 2.979091120
+ .1725849797E-02 2.979086069
+ .1836347377E-02 2.979080362
+ .1953919568E-02 2.979073912
+ .2079019322E-02 2.979066619
+ .2212128591E-02 2.979058371
+ .2353760185E-02 2.979049042
+ .2504459746E-02 2.979038489
+ .2664807849E-02 2.979026548
+ .2835422245E-02 2.979013037
+ .3016960232E-02 2.978997746
+ .3210121194E-02 2.978980441
+ .3415649291E-02 2.978960855
+ .3634336331E-02 2.978938685
+ .3867024814E-02 2.978913591
+ .4114611184E-02 2.978885185
+ .4378049278E-02 2.978853031
+ .4658354003E-02 2.978816630
+ .4956605246E-02 2.978775424
+ .5273952032E-02 2.978728776
+ .5611616956E-02 2.978675967
+ .5970900885E-02 2.978616183
+ .6353187978E-02 2.978548503
+ .6759951013E-02 2.978471882
+ .7192757062E-02 2.978385140
+ .7653273530E-02 2.978286939
+ .8143274578E-02 2.978175766
+ .8664647956E-02 2.978049908
+ .9219402279E-02 2.977907423
+ .9809674763E-02 2.977746117
+ .1043773946E-01 2.977563505
+ .1110601601E-01 2.977356772
+ .1181707899E-01 2.977122734
+ .1257366780E-01 2.976857787
+ .1337869723E-01 2.976557851
+ .1423526868E-01 2.976218309
+ .1514668215E-01 2.975833934
+ .1611644889E-01 2.975398814
+ .1714830497E-01 2.974906255
+ .1824622567E-01 2.974348684
+ .1941444077E-01 2.973717534
+ .2065745087E-01 2.973003109
+ .2198004473E-01 2.972194443
+ .2338731770E-01 2.971279129
+ .2488469135E-01 2.970243136
+ .2647793440E-01 2.969070596
+ .2817318488E-01 2.967743567
+ .2997697381E-01 2.966241765
+ .3189625038E-01 2.964542266
+ .3393840869E-01 2.962619163
+ .3611131623E-01 2.960443192
+ .3842334424E-01 2.957981304
+ .4088339991E-01 2.955196189
+ .4350096071E-01 2.952045750
+ .4628611092E-01 2.948482506
+ .4924958044E-01 2.944452940
+ .5240278618E-01 2.939896772
+ .5575787600E-01 2.934746163
+ .5932777554E-01 2.928924835
+ .6312623800E-01 2.922347129
+ .6716789711E-01 2.914916973
+ .7146832357E-01 2.906526801
+ .7604408495E-01 2.897056407
+ .8091280957E-01 2.886371780
+ .8609325442E-01 2.874323940
+ .9160537740E-01 2.860747834
+ .9747041420E-01 2.845461374
+ .1037109601 2.828264701
+ .1103510572 2.808939840
+ .1174162867 2.787250915
+ .1249338676 2.762945179
+ .1329327620 2.735755152
+ .1414437857 2.705402254
+ .1504997279 2.671602354
+ .1601354771 2.634073720
+ .1703881555 2.592547851
+ .1812972618 2.546783581
+ .1929048240 2.496584668
+ .2052555606 2.441820661
+ .2183970535 2.382450218
+ .2323799308 2.318545102
+ .2472580623 2.250311811
+ .2630887665 2.178106328
+ .2799330320 2.102435978
+ .2978557520 2.023941384
+ .3169259747 1.943351880
+ .3372171690 1.861410697
+ .3588075074 1.778773826
+ .3817801680 1.695900858
+ .4062236537 1.612978338
+ .4322321342 1.529940138
+ .4599058085 1.446644938
+ .4893512905 1.363148243
+ .5206820203 1.279734252
+ .5540187009 1.196733016
+ .5894897634 1.114489669
+ .6272318617 1.033359545
+ .6673903989 .9537035747
+ .7101200875 .8758830642
+ .7555855455 .8002539642
+ .8039619308 .7271607489
+ .8554356155 .6569300531
+ .9102049042 .5898642517
+ .9684807982 .5262351886
+ 1.030487808 .4662782796
+ 1.096464818 .4101872205
+ 1.166666008 .3581095272
+ 1.241361831 .3101431157
+ 1.320840057 .2663340980
+ 1.405406877 .2266759294
+ 1.495388091 .1911099839
+ 1.591130355 .1595275816
+ 1.693002519 .1317734258
+ 1.801397052 .1076503556
+ 1.916731548 .8692526690E-01
+ 2.039450338 .6933601888E-01
+ 2.170026202 .5459910166E-01
+ 2.308962189 .4241780815E-01
+ 2.456793556 .3249059709E-01
+ 2.614089831 .2451928379E-01
+ 2.781457004 .1821664450E-01
+ 2.959539865 .1331300940E-01
+ 3.149024486 .9561472797E-02
+ 3.350640865 .6741471257E-02
+ 3.565165738 .4660653251E-02
+ 3.793425573 .3155147790E-02
+ 4.036299749 .2088492266E-02
+ 4.294723951 .1349569354E-02
+ 4.569693770 .8499189776E-03
+ 4.862268539 .5207458115E-03
+ 5.173575415 .3098646594E-03
+ 5.504813723 .1787478656E-03
+ 5.857259573 .9978155410E-04
+ 6.232270777 .5380316535E-04
+ 6.631292085 .2797068869E-04
+ 7.055860743 .1399259250E-04
+ 7.507612420 .6722278163E-05
+ 7.988287511 .3094798940E-05
+ 8.499737838 .1362262342E-05
+ 9.043933786 .5719343717E-06
+ 9.622971895 .2284304075E-06
+ 10.23908293 .8654793877E-07
+ 10.89464050 .3101441313E-07
+ 11.59217016 .1047753324E-07
+ 12.33435917 .3325124384E-08
+ 13.12406685 .9875556736E-09
+ 13.96433559 .2733699881E-09
+ 14.85840256 .7022279873E-10
+ 15.80971219 .1666135408E-10
+ 16.82192945 .3633044372E-11
+ 17.89895395 .7241555882E-12
+ 19.04493496 .1312157131E-12
+ 20.26428745 .2189622955E-13
+ 21.56170901 -.1033732155E-14
+ 22.94219802 -.7961087035E-16
+ 24.41107287 -.6057537654E-17
+ 25.97399248 -.4554068241E-18
+ 27.63697807 -.3381854914E-19
+ 29.40643634 -.2479013308E-20
+ 31.28918424 -.1791871073E-21
+ 33.29247512 -.1275104686E-22
+ 35.42402675 -.8912350562E-24
+ 37.69205103 -.6098008424E-25
+ 40.10528564 -.4064090310E-26
+ 42.67302765 -.2617823927E-27
+ 45.40516941 -.1608707442E-28
+ 48.31223663 -.9205902845E-30
+ 51.40542891 -.4648315702E-31
+ 54.69666290 -.1737972220E-32
+&END
+&WAVEFUNCTION
+ 251 CHANNELS=1
+ .1000000000E-04 .4869139431E-05 .8827085895E-11 .2720055536E-17
+ .1064025027E-04 .5180877656E-05 .9788957101E-11 .3196331011E-17
+ .1132149259E-04 .5512574445E-05 .1085893178E-10 .3758860552E-17
+ .1204635146E-04 .5865508094E-05 .1207511661E-10 .4446288095E-17
+ .1281761945E-04 .6241038324E-05 .1345681078E-10 .5284884585E-17
+ .1363826788E-04 .6640611888E-05 .1502401452E-10 .6304980014E-17
+ .1451145836E-04 .7065768160E-05 .1679882198E-10 .7543017040E-17
+ .1544055488E-04 .7518145075E-05 .1880596692E-10 .9043083936E-17
+ .1642913683E-04 .7999485435E-05 .2107312110E-10 .1085849060E-16
+ .1748101276E-04 .8511643625E-05 .2363121776E-10 .1305366744E-16
+ .1860023508E-04 .9056592758E-05 .2651480811E-10 .1570645881E-16
+ .1979111565E-04 .9636432274E-05 .2976245504E-10 .1891089319E-16
+ .2105824237E-04 .1025339603E-04 .3341716841E-10 .2278052873E-16
+ .2240649691E-04 .1090986091E-04 .3752688718E-10 .2745249299E-16
+ .2384107349E-04 .1160835598E-04 .4214501463E-10 .3309236035E-16
+ .2536749888E-04 .1235157221E-04 .4733101468E-10 .3990003974E-16
+ .2699165369E-04 .1314237288E-04 .5315107950E-10 .4811688086E-16
+ .2871979506E-04 .1398380458E-04 .5967888124E-10 .5803424942E-16
+ .3055858072E-04 .1487910897E-04 .6699642499E-10 .7000387294E-16
+ .3251509469E-04 .1583173526E-04 .7519502514E-10 .8445031953E-16
+ .3459687452E-04 .1684535346E-04 .8437643422E-10 .1018860453E-15
+ .3681194036E-04 .1792386860E-04 .9465416261E-10 .1229295333E-15
+ .3916882585E-04 .1907143571E-04 .1061550393E-09 .1483271517E-15
+ .4167661100E-04 .2029247582E-04 .1190210789E-09 .1789794830E-15
+ .4434495716E-04 .2159169307E-04 .1334117386E-09 .2159730244E-15
+ .4718414426E-04 .2297409273E-04 .1495066710E-09 .2606183375E-15
+ .5020511039E-04 .2444500057E-04 .1675091039E-09 .3144959347E-15
+ .5341949396E-04 .2601008332E-04 .1876500036E-09 .3795114388E-15
+ .5683967853E-04 .2767537054E-04 .2101932007E-09 .4579618524E-15
+ .6047884051E-04 .2944727782E-04 .2354416684E-09 .5526151226E-15
+ .6435099993E-04 .3133263150E-04 .2637451297E-09 .6668056106E-15
+ .6847107446E-04 .3333869500E-04 .2955091112E-09 .8045485737E-15
+ .7285493688E-04 .3547319676E-04 .3312054248E-09 .9706773701E-15
+ .7751947622E-04 .3774436005E-04 .3713838089E-09 .1171007817E-14
+ .8248266281E-04 .4016093462E-04 .4166840304E-09 .1412535014E-14
+ .8776361756E-04 .4273223044E-04 .4678470716E-09 .1703669029E-14
+ .9338268558E-04 .4546815352E-04 .5257230049E-09 .2054517179E-14
+ .9936151458E-04 .4837924414E-04 .5912716456E-09 .2477222377E-14
+ .1057231383E-03 .5147671738E-04 .6655499938E-09 .2986369201E-14
+ .1124920651E-03 .5477250641E-04 .7497140341E-09 .3599472874E-14
+ .1196943727E-03 .5827930839E-04 .8451304998E-09 .4337707638E-14
+ .1273578082E-03 .6201063342E-04 .9533714965E-09 .5226689619E-14
+ .1355118953E-03 .6598085658E-04 .1076186423E-08 .6297291762E-14
+ .1441880481E-03 .7020527332E-04 .1215413250E-08 .7586717939E-14
+ .1534196919E-03 .7470015839E-04 .1372811260E-08 .9139789915E-14
+ .1632423918E-03 .7948282850E-04 .1551099142E-08 .1101050021E-13
+ .1736939905E-03 .8457170908E-04 .1754368251E-08 .1326388595E-13
+ .1848147530E-03 .8998640524E-04 .1984293422E-08 .1597828785E-13
+ .1966475226E-03 .9574777730E-04 .2245176978E-08 .1924807251E-13
+ .2092378856E-03 .1018780212E-03 .2540029252E-08 .2318691227E-13
+ .2226343470E-03 .1084007538E-03 .2873341531E-08 .2793173643E-13
+ .2368885172E-03 .1153411043E-03 .3251184257E-08 .3364749119E-13
+ .2520553110E-03 .1227258105E-03 .3679445106E-08 .4053287355E-13
+ .2681931592E-03 .1305833224E-03 .4164580197E-08 .4882723849E-13
+ .2853642335E-03 .1389439111E-03 .4713972991E-08 .5881891956E-13
+ .3036346864E-03 .1478397861E-03 .5336051428E-08 .7085525209E-13
+ .3230749055E-03 .1573052189E-03 .6040392382E-08 .8535464735E-13
+ .3437597852E-03 .1673766754E-03 .6837854078E-08 .1028211375E-12
+ .3657690149E-03 .1780929561E-03 .7740736504E-08 .1238618969E-12
+ .3891873861E-03 .1894953456E-03 .8762968101E-08 .1492083489E-12
+ .4141051192E-03 .2016277718E-03 .9920319308E-08 .1797415914E-12
+ .4406182108E-03 .2145369749E-03 .1123064529E-07 .2165230263E-12
+ .4688288038E-03 .2282726877E-03 .1271416116E-07 .2608312555E-12
+ .4988455808E-03 .2428878270E-03 .1439375373E-07 .3142065282E-12
+ .5307841828E-03 .2584386975E-03 .1629533463E-07 .3785042832E-12
+ .5647676547E-03 .2749852088E-03 .1844823867E-07 .4559596469E-12
+ .6009269193E-03 .2925911060E-03 .2088567659E-07 .5492651313E-12
+ .6394012818E-03 .3113242150E-03 .2364524791E-07 .6616642317E-12
+ .6803389664E-03 .3312567047E-03 .2676952086E-07 .7970641775E-12
+ .7238976874E-03 .3524653637E-03 .3030668902E-07 .9601717551E-12
+ .7702452567E-03 .3750318971E-03 .3431131473E-07 .1156656926E-11
+ .8195602303E-03 .3990432406E-03 .3884517071E-07 .1393349925E-11
+ .8720325966E-03 .4245918956E-03 .4397819290E-07 .1678478695E-11
+ .9278645075E-03 .4517762855E-03 .4978955923E-07 .2021954904E-11
+ .9872710580E-03 .4807011342E-03 .5636891092E-07 .2435718498E-11
+ .1050481115E-02 .5114778703E-03 .6381773516E-07 .2934152752E-11
+ .1117738197E-02 .5442250553E-03 .7225093055E-07 .3534584266E-11
+ .1189301415E-02 .5790688406E-03 .8179857934E-07 .4257885267E-11
+ .1265446471E-02 .6161434531E-03 .9260795395E-07 .5129199169E-11
+ .1346466716E-02 .6555917119E-03 .1048457885E-06 .6178814603E-11
+ .1432674285E-02 .6975655781E-03 .1187008507E-06 .7443218307E-11
+ .1524401295E-02 .7422267399E-03 .1343868532E-06 .8966363471E-11
+ .1622001130E-02 .7897472345E-03 .1521457504E-06 .1080119762E-10
+ .1725849797E-02 .8403101106E-03 .1722514701E-06 .1301150317E-10
+ .1836347377E-02 .8941101320E-03 .1950141384E-06 .1567411458E-10
+ .1953919568E-02 .9513545278E-03 .2207848634E-06 .1888158930E-10
+ .2079019322E-02 .1012263789E-02 .2499611505E-06 .2274542513E-10
+ .2212128591E-02 .1077072514E-02 .2829930333E-06 .2739993608E-10
+ .2353760185E-02 .1146030317E-02 .3203900145E-06 .3300692129E-10
+ .2504459746E-02 .1219402780E-02 .3627289244E-06 .3976128937E-10
+ .2664807849E-02 .1297472476E-02 .4106628168E-06 .4789783362E-10
+ .2835422245E-02 .1380540056E-02 .4649310413E-06 .5769939364E-10
+ .3016960232E-02 .1468925401E-02 .5263706454E-06 .6950668710E-10
+ .3210121194E-02 .1562968851E-02 .5959292836E-06 .8373015324E-10
+ .3415649291E-02 .1663032507E-02 .6746798315E-06 .1008642199E-09
+ .3634336331E-02 .1769501625E-02 .7638369310E-06 .1215044899E-09
+ .3867024814E-02 .1882786084E-02 .8647757201E-06 .1463684441E-09
+ .4114611184E-02 .2003321964E-02 .9790530382E-06 .1763203808E-09
+ .4378049278E-02 .2131573203E-02 .1108431431E-05 .2124014580E-09
+ .4658354003E-02 .2268033378E-02 .1254906326E-05 .2558658830E-09
+ .4956605246E-02 .2413227586E-02 .1420736798E-05 .3082245063E-09
+ .5273952032E-02 .2567714443E-02 .1608480396E-05 .3712973362E-09
+ .5611616956E-02 .2732088212E-02 .1821032569E-05 .4472767970E-09
+ .5970900885E-02 .2906981062E-02 .2061671298E-05 .5388039309E-09
+ .6353187978E-02 .3093065463E-02 .2334107619E-05 .6490601900E-09
+ .6759951013E-02 .3291056734E-02 .2642542814E-05 .7818780082E-09
+ .7192757062E-02 .3501715740E-02 .2991733151E-05 .9418739953E-09
+ .7653273530E-02 .3725851762E-02 .3387063166E-05 .1134609379E-08
+ .8143274578E-02 .3964325531E-02 .3834628611E-05 .1366783269E-08
+ .8664647956E-02 .4218052451E-02 .4341330345E-05 .1646465458E-08
+ .9219402279E-02 .4488006007E-02 .4914980602E-05 .1983376838E-08
+ .9809674763E-02 .4775221379E-02 .5564423269E-05 .2389227182E-08
+ .1043773946E-01 .5080799259E-02 .6299670012E-05 .2878122005E-08
+ .1110601601E-01 .5405909895E-02 .7132054336E-05 .3467052639E-08
+ .1181707899E-01 .5751797348E-02 .8074405927E-05 .4176486532E-08
+ .1257366780E-01 .6119784000E-02 .9141247938E-05 .5031078248E-08
+ .1337869723E-01 .6511275289E-02 .1034902023E-04 .6060525849E-08
+ .1423526868E-01 .6927764701E-02 .1171633194E-04 .7300602349E-08
+ .1514668215E-01 .7370839013E-02 .1326424727E-04 .8794398024E-08
+ .1611644889E-01 .7842183786E-02 .1501660872E-04 .1059381663E-07
+ .1714830497E-01 .8343589117E-02 .1700040277E-04 .1276137738E-07
+ .1824622567E-01 .8876955643E-02 .1924617341E-04 .1537238511E-07
+ .1941444077E-01 .9444300782E-02 .2178848986E-04 .1851754372E-07
+ .2065745087E-01 .1004776521E-01 .2466647530E-04 .2230610343E-07
+ .2198004473E-01 .1068961955E-01 .2792440468E-04 .2686965053E-07
+ .2338731770E-01 .1137227124E-01 .3161238032E-04 .3236667073E-07
+ .2488469135E-01 .1209827152E-01 .3578709544E-04 .3898804368E-07
+ .2647793440E-01 .1287032257E-01 .4051269657E-04 .4696365804E-07
+ .2817318488E-01 .1369128463E-01 .4586175772E-04 .5657037540E-07
+ .2997697381E-01 .1456418307E-01 .5191638009E-04 .6814161692E-07
+ .3189625038E-01 .1549221527E-01 .5876943326E-04 .8207890251E-07
+ .3393840869E-01 .1647875728E-01 .6652595535E-04 .9886573858E-07
+ .3611131623E-01 .1752736991E-01 .7530473188E-04 .1190843304E-06
+ .3842334424E-01 .1864180420E-01 .8524007491E-04 .1434356911E-06
+ .4088339991E-01 .1982600595E-01 .9648382691E-04 .1727638326E-06
+ .4350096071E-01 .2108411898E-01 .1092076159E-03 .2080848646E-06
+ .4628611092E-01 .2242048677E-01 .1236053916E-03 .2506219870E-06
+ .4924958044E-01 .2383965202E-01 .1398962740E-03 .3018475626E-06
+ .5240278618E-01 .2534635347E-01 .1583277516E-03 .3635336885E-06
+ .5575787600E-01 .2694551952E-01 .1791792650E-03 .4378129654E-06
+ .5932777554E-01 .2864225760E-01 .2027662190E-03 .5272514971E-06
+ .6312623800E-01 .3044183848E-01 .2294444662E-03 .6349365504E-06
+ .6716789711E-01 .3234967442E-01 .2596153090E-03 .7645817729E-06
+ .7146832357E-01 .3437128975E-01 .2937310678E-03 .9206534285E-06
+ .7604408495E-01 .3651228241E-01 .3323012653E-03 .1108521766E-05
+ .8091280957E-01 .3877827485E-01 .3758994762E-03 .1334642419E-05
+ .8609325442E-01 .4117485220E-01 .4251708897E-03 .1606773641E-05
+ .9160537740E-01 .4370748580E-01 .4808406321E-03 .1934236272E-05
+ .9747041420E-01 .4638143988E-01 .5437228854E-03 .2328224569E-05
+ .1037109601 .4920165931E-01 .6147308372E-03 .2802177514E-05
+ .1103510572 .5217263663E-01 .6948874800E-03 .3372221915E-05
+ .1174162867 .5529825703E-01 .7853372710E-03 .4057700597E-05
+ .1249338676 .5858162126E-01 .8873586441E-03 .4881801266E-05
+ .1329327620 .6202484804E-01 .1002377357E-02 .5872304328E-05
+ .1414437857 .6562886039E-01 .1131980645E-02 .7062470992E-05
+ .1504997279 .6939316424E-01 .1277932158E-02 .8492096692E-05
+ .1601354771 .7331563298E-01 .1442187679E-02 .1020875910E-04
+ .1703881555 .7739231887E-01 .1626911687E-02 .1226929525E-04
+ .1812972618 .8161732051E-01 .1834494929E-02 .1474154871E-04
+ .1929048240 .8598274482E-01 .2067573373E-02 .1770643560E-04
+ .2052555606 .9047881014E-01 .2329049174E-02 .2126038886E-04
+ .2183970535 .9509414089E-01 .2622114661E-02 .2551825318E-04
+ .2323799308 .9981629819E-01 .2950280811E-02 .3061672041E-04
+ .2472580623 .1046325666 .3317412014E-02 .3671841678E-04
+ .2630887665 .1095309642 .3727769089E-02 .4401677875E-04
+ .2799330320 .1145013496 .4186061851E-02 .5274188133E-04
+ .2978557520 .1195363593 .4697510594E-02 .6316740363E-04
+ .3169259747 .1246317305 .5267911826E-02 .7561892020E-04
+ .3372171690 .1297854026 .5903697022E-02 .9048367333E-04
+ .3588075074 .1349947735 .6611965307E-02 .1082218997E-03
+ .3817801680 .1402518708 .7400466669E-02 .1293796707E-03
+ .4062236537 .1455373773 .8277523553E-02 .1546031770E-03
+ .4322321342 .1508166672 .9251924218E-02 .1846547233E-03
+ .4599058085 .1560432325 .1033290454E-01 .2204317225E-03
+ .4893512905 .1611711671 .1153034174E-01 .2629907683E-03
+ .5206820203 .1661604069 .1285491225E-01 .3135748311E-03
+ .5540187009 .1709692986 .1431799211E-01 .3736341268E-03
+ .5894897634 .1755534469 .1593163889E-01 .4448060152E-03
+ .6272318617 .1798659306 .1770859715E-01 .5293982926E-03
+ .6673903989 .1838576609 .1966230140E-01 .6296195172E-03
+ .7101200875 .1874778369 .2180686318E-01 .7480519337E-03
+ .7555855455 .1906745064 .2415701267E-01 .8879738032E-03
+ .8039619308 .1933952362 .2672793879E-01 .1053104495E-02
+ .8554356155 .1955878928 .2953493823E-01 .1247735975E-02
+ .9102049042 .1972015324 .3259274770E-01 .1476823255E-02
+ .9684807982 .1981873973 .3591440734E-01 .1746070037E-02
+ 1.030487808 .1985000080 .3950952264E-01 .2062019982E-02
+ 1.096464818 .1980983431 .4338198098E-01 .2432152879E-02
+ 1.166666008 .1969470870 .4752785037E-01 .2864984043E-02
+ 1.241361831 .1950179291 .5193551579E-01 .3370164532E-02
+ 1.320840057 .1922908840 .5659001554E-01 .3958578873E-02
+ 1.405406877 .1887556042 .6147814562E-01 .4642436015E-02
+ 1.495388091 .1844126384 .6658754527E-01 .5435348213E-02
+ 1.591130355 .1792745846 .7190118505E-01 .6352391788E-02
+ 1.693002519 .1733670634 .7739294948E-01 .7410143532E-02
+ 1.801397052 .1667294242 .8302569463E-01 .8626687582E-02
+ 1.916731548 .1594150708 .8875083767E-01 .1002159085E-01
+ 2.039450338 .1514912886 .9450857140E-01 .1161585169E-01
+ 2.170026202 .1430384557 .1002281195 .1343183660E-01
+ 2.308962189 .1341485677 .1058277681 .1549323138E-01
+ 2.456793556 .1249230705 .1112147224 .1782503521E-01
+ 2.614089831 .1154701112 .1162850237 .2045359540E-01
+ 2.781457004 .1059014224 .1209237990 .2340657451E-01
+ 2.959539865 .9632913264E-01 .1250060657 .2671251773E-01
+ 3.149024486 .8686281123E-01 .1283983091 .3039932101E-01
+ 3.350640865 .7760698455E-01 .1309611455 .3449036511E-01
+ 3.565165738 .6865922165E-01 .1325536691 .3899621839E-01
+ 3.793425573 .6010870661E-01 .1330405729 .4389850298E-01
+ 4.036299749 .5203505972E-01 .1323035283 .4912558076E-01
+ 4.294723951 .4450710683E-01 .1302575046 .5455940102E-01
+ 4.569693770 .3758137905E-01 .1268693054 .6013239546E-01
+ 4.862268539 .3130034197E-01 .1221710756 .6583313016E-01
+ 5.173575415 .2569061498E-01 .1162617187 .7161330813E-01
+ 5.504813723 .2076161965E-01 .1092959373 .7736832813E-01
+ 5.857259573 .1650510388E-01 .1014667819 .8294417583E-01
+ 6.232270777 .1289583147E-01 .9298795779E-01 .8815861688E-01
+ 6.631292085 .9893483714E-02 .8407941738E-01 .9282847509E-01
+ 7.055860743 .7445585272E-02 .7495740853E-01 .9678048550E-01
+ 7.507612420 .5491106348E-02 .6582874928E-01 .9984181622E-01
+ 7.988287511 .3964326397E-02 .5688803073E-01 .1018240844
+ 8.499737838 .2798560936E-02 .4831569473E-01 .1025040307
+ 9.043933786 .1929426852E-02 .4027472357E-01 .1015992575
+ 9.622971895 .1297426329E-02 .3290465322E-01 .9879484907E-01
+ 10.23908293 .8497371768E-03 .2631356273E-01 .9398430153E-01
+ 10.89464050 .5412390088E-03 .2057044554E-01 .8747829984E-01
+ 11.59217016 .3347256102E-03 .1570076246E-01 .7976459895E-01
+ 12.33435917 .2006398012E-03 .1168691404E-01 .7130200222E-01
+ 13.12406685 .1163456050E-03 .8473705368E-02 .6248100433E-01
+ 13.96433559 .6513342157E-04 .5977518354E-02 .5362851121E-01
+ 14.85840256 .3512620540E-04 .4097264841E-02 .4502181847E-01
+ 15.80971219 .1820609835E-04 .2725224496E-02 .3690059570E-01
+ 16.82192945 .9046376380E-05 .1756307398E-02 .2946961838E-01
+ 17.89895395 .4297878150E-05 .1095015890E-02 .2288994601E-01
+ 19.04493496 .1948699284E-05 .6593114395E-03 .1726441175E-01
+ 20.26428745 .8730779654E-06 .3826131743E-03 .1262749007E-01
+ 21.56170901 -.6495118256E-07 .2135515531E-03 .8946312548E-02
+ 22.94219802 -.5002088936E-08 .1143705231E-03 .6132990697E-02
+ 24.41107287 -.3806055874E-09 .5862806087E-04 .4063788152E-02
+ 25.97399248 -.2861399990E-10 .2868805981E-04 .2599636768E-02
+ 27.63697807 -.2124878044E-11 .1336085873E-04 .1603680403E-02
+ 29.40643634 -.1557607019E-12 .5903967686E-05 .9525141415E-03
+ 31.28918424 -.1125863645E-13 .2467007156E-05 .5437446489E-03
+ 33.29247512 -.8011703694E-15 .9712949292E-06 .2977226637E-03
+ 35.42402675 -.5599784294E-16 .3589344772E-06 .1560058657E-03
+ 37.69205103 -.3831484361E-17 .1239872235E-06 .7803549572E-04
+ 40.10528564 -.2553538365E-18 .3985920620E-07 .3715907235E-04
+ 42.67302765 -.1644824136E-19 .1186948679E-07 .1679371606E-04
+ 45.40516941 -.1010778762E-20 .3257700268E-08 .7180052447E-05
+ 48.31223663 -.5784228280E-22 .8199683699E-09 .2896249131E-05
+ 51.40542891 -.2920617303E-23 .1915359995E-09 .1122844736E-05
+ 54.69666290 -.1091998062E-24 -.9965892286E-12 -.6458628461E-08
+&END
diff --git a/clusters/user/CPMD/PPs/N_MT_PBE b/clusters/user/CPMD/PPs/N_MT_PBE
new file mode 100644
index 0000000..63afbe8
--- /dev/null
+++ b/clusters/user/CPMD/PPs/N_MT_PBE
@@ -0,0 +1,1914 @@
+&ATOM
+ Z = 7
+ ZV = 5
+ XC = 1134 0.666667
+ TYPE = NORMCONSERVING NUMERIC
+&END
+&INFO
+ ============================================================
+ | Pseudopotential Report Mon Sep 17 12:02:26 2001 |
+ ------------------------------------------------------------
+ | Atomic Symbol : N |
+ | Atomic Number : 7 |
+ | Number of core states : 1 |
+ | Number of valence states : 2 |
+ | Exchange-Correlation Functional : |
+ | Slater exchange : 0.6667 |
+ | LDA correlation : Ceperley-Alder |
+ | Exchange GC : Perdew-Burke-Ernzerhof |
+ | Correlation GC : Perdew-Burke-Ernzerhof |
+ | Electron Configuration : N L Occupation |
+ | 1 S 2.0000 |
+ | 2 S 2.0000 |
+ | 2 P 3.0000 |
+ | Full Potential Total Energy -54.420394 |
+ | Trouiller-Martins normconserving PP |
+ | n l rc energy |
+ | 2 S 1.1200 -0.68204 |
+ | 2 P 1.1200 -0.26082 |
+ | 3 D 1.1200 -0.26082 |
+ | Number of Mesh Points : 624 |
+ | Pseudoatom Total Energy -9.647042 |
+ ============================================================
+&END
+&POTENTIAL
+ 624
+ 0.89285714E-03 -0.22704820E+01 -0.15660568E+02 -0.12002058E+02
+ 0.90848214E-03 -0.22704820E+01 -0.15660568E+02 -0.12002058E+02
+ 0.92438058E-03 -0.22706354E+01 -0.15660721E+02 -0.12002211E+02
+ 0.94055724E-03 -0.22712713E+01 -0.15661357E+02 -0.12002847E+02
+ 0.95701699E-03 -0.22719729E+01 -0.15662059E+02 -0.12003549E+02
+ 0.97376479E-03 -0.22721898E+01 -0.15662276E+02 -0.12003766E+02
+ 0.99080567E-03 -0.22725537E+01 -0.15662640E+02 -0.12004130E+02
+ 0.10081448E-02 -0.22728916E+01 -0.15662978E+02 -0.12004468E+02
+ 0.10257873E-02 -0.22732514E+01 -0.15663337E+02 -0.12004827E+02
+ 0.10437386E-02 -0.22736206E+01 -0.15663707E+02 -0.12005197E+02
+ 0.10620040E-02 -0.22740031E+01 -0.15664089E+02 -0.12005579E+02
+ 0.10805891E-02 -0.22743984E+01 -0.15664484E+02 -0.12005974E+02
+ 0.10994994E-02 -0.22748073E+01 -0.15664893E+02 -0.12006383E+02
+ 0.11187406E-02 -0.22752300E+01 -0.15665316E+02 -0.12006806E+02
+ 0.11383186E-02 -0.22756673E+01 -0.15665753E+02 -0.12007243E+02
+ 0.11582392E-02 -0.22761195E+01 -0.15666205E+02 -0.12007695E+02
+ 0.11785083E-02 -0.22765871E+01 -0.15666673E+02 -0.12008163E+02
+ 0.11991322E-02 -0.22770708E+01 -0.15667157E+02 -0.12008647E+02
+ 0.12201171E-02 -0.22775711E+01 -0.15667657E+02 -0.12009147E+02
+ 0.12414691E-02 -0.22780886E+01 -0.15668175E+02 -0.12009665E+02
+ 0.12631948E-02 -0.22786238E+01 -0.15668710E+02 -0.12010200E+02
+ 0.12853007E-02 -0.22791775E+01 -0.15669263E+02 -0.12010753E+02
+ 0.13077935E-02 -0.22797502E+01 -0.15669836E+02 -0.12011326E+02
+ 0.13306799E-02 -0.22803426E+01 -0.15670429E+02 -0.12011919E+02
+ 0.13539668E-02 -0.22809554E+01 -0.15671041E+02 -0.12012531E+02
+ 0.13776612E-02 -0.22815893E+01 -0.15671675E+02 -0.12013165E+02
+ 0.14017703E-02 -0.22822450E+01 -0.15672331E+02 -0.12013821E+02
+ 0.14263012E-02 -0.22829234E+01 -0.15673009E+02 -0.12014499E+02
+ 0.14512615E-02 -0.22836251E+01 -0.15673711E+02 -0.12015201E+02
+ 0.14766586E-02 -0.22843510E+01 -0.15674437E+02 -0.12015927E+02
+ 0.15025001E-02 -0.22851020E+01 -0.15675188E+02 -0.12016678E+02
+ 0.15287939E-02 -0.22858788E+01 -0.15675965E+02 -0.12017455E+02
+ 0.15555478E-02 -0.22866825E+01 -0.15676769E+02 -0.12018258E+02
+ 0.15827698E-02 -0.22875139E+01 -0.15677600E+02 -0.12019090E+02
+ 0.16104683E-02 -0.22883739E+01 -0.15678460E+02 -0.12019950E+02
+ 0.16386515E-02 -0.22892637E+01 -0.15679350E+02 -0.12020840E+02
+ 0.16673279E-02 -0.22901841E+01 -0.15680270E+02 -0.12021760E+02
+ 0.16965062E-02 -0.22911362E+01 -0.15681222E+02 -0.12022712E+02
+ 0.17261950E-02 -0.22921211E+01 -0.15682207E+02 -0.12023697E+02
+ 0.17564034E-02 -0.22931400E+01 -0.15683226E+02 -0.12024716E+02
+ 0.17871405E-02 -0.22941940E+01 -0.15684280E+02 -0.12025770E+02
+ 0.18184154E-02 -0.22952843E+01 -0.15685370E+02 -0.12026860E+02
+ 0.18502377E-02 -0.22964121E+01 -0.15686498E+02 -0.12027988E+02
+ 0.18826169E-02 -0.22975788E+01 -0.15687665E+02 -0.12029155E+02
+ 0.19155627E-02 -0.22987856E+01 -0.15688872E+02 -0.12030362E+02
+ 0.19490850E-02 -0.23000338E+01 -0.15690120E+02 -0.12031610E+02
+ 0.19831940E-02 -0.23013250E+01 -0.15691411E+02 -0.12032901E+02
+ 0.20178999E-02 -0.23026605E+01 -0.15692747E+02 -0.12034236E+02
+ 0.20532131E-02 -0.23040418E+01 -0.15694128E+02 -0.12035618E+02
+ 0.20891444E-02 -0.23054706E+01 -0.15695557E+02 -0.12037047E+02
+ 0.21257044E-02 -0.23069483E+01 -0.15697034E+02 -0.12038524E+02
+ 0.21629042E-02 -0.23084766E+01 -0.15698563E+02 -0.12040053E+02
+ 0.22007551E-02 -0.23100572E+01 -0.15700143E+02 -0.12041633E+02
+ 0.22392683E-02 -0.23116919E+01 -0.15701778E+02 -0.12043268E+02
+ 0.22784555E-02 -0.23133824E+01 -0.15703468E+02 -0.12044958E+02
+ 0.23183284E-02 -0.23151306E+01 -0.15705217E+02 -0.12046707E+02
+ 0.23588992E-02 -0.23169385E+01 -0.15707025E+02 -0.12048514E+02
+ 0.24001799E-02 -0.23188080E+01 -0.15708894E+02 -0.12050384E+02
+ 0.24421831E-02 -0.23207410E+01 -0.15710827E+02 -0.12052317E+02
+ 0.24849213E-02 -0.23227399E+01 -0.15712826E+02 -0.12054316E+02
+ 0.25284074E-02 -0.23248065E+01 -0.15714893E+02 -0.12056383E+02
+ 0.25726545E-02 -0.23269433E+01 -0.15717029E+02 -0.12058519E+02
+ 0.26176760E-02 -0.23291525E+01 -0.15719239E+02 -0.12060728E+02
+ 0.26634853E-02 -0.23314364E+01 -0.15721522E+02 -0.12063012E+02
+ 0.27100963E-02 -0.23337975E+01 -0.15723883E+02 -0.12065373E+02
+ 0.27575230E-02 -0.23362382E+01 -0.15726324E+02 -0.12067814E+02
+ 0.28057796E-02 -0.23387612E+01 -0.15728847E+02 -0.12070337E+02
+ 0.28548808E-02 -0.23413690E+01 -0.15731455E+02 -0.12072945E+02
+ 0.29048412E-02 -0.23440644E+01 -0.15734150E+02 -0.12075640E+02
+ 0.29556759E-02 -0.23468501E+01 -0.15736936E+02 -0.12078426E+02
+ 0.30074002E-02 -0.23497291E+01 -0.15739815E+02 -0.12081305E+02
+ 0.30600297E-02 -0.23527043E+01 -0.15742790E+02 -0.12084280E+02
+ 0.31135803E-02 -0.23557787E+01 -0.15745865E+02 -0.12087355E+02
+ 0.31680679E-02 -0.23589554E+01 -0.15749041E+02 -0.12090531E+02
+ 0.32235091E-02 -0.23622376E+01 -0.15752324E+02 -0.12093814E+02
+ 0.32799205E-02 -0.23656286E+01 -0.15755715E+02 -0.12097205E+02
+ 0.33373191E-02 -0.23691317E+01 -0.15759218E+02 -0.12100708E+02
+ 0.33957222E-02 -0.23727505E+01 -0.15762836E+02 -0.12104326E+02
+ 0.34551474E-02 -0.23764883E+01 -0.15766574E+02 -0.12108064E+02
+ 0.35156124E-02 -0.23803489E+01 -0.15770435E+02 -0.12111925E+02
+ 0.35771356E-02 -0.23843360E+01 -0.15774422E+02 -0.12115912E+02
+ 0.36397355E-02 -0.23884533E+01 -0.15778539E+02 -0.12120029E+02
+ 0.37034309E-02 -0.23927047E+01 -0.15782791E+02 -0.12124281E+02
+ 0.37682409E-02 -0.23970943E+01 -0.15787180E+02 -0.12128670E+02
+ 0.38341851E-02 -0.24016260E+01 -0.15791712E+02 -0.12133202E+02
+ 0.39012834E-02 -0.24063041E+01 -0.15796390E+02 -0.12137880E+02
+ 0.39695558E-02 -0.24111328E+01 -0.15801219E+02 -0.12142709E+02
+ 0.40390231E-02 -0.24161163E+01 -0.15806202E+02 -0.12147692E+02
+ 0.41097060E-02 -0.24212592E+01 -0.15811345E+02 -0.12152835E+02
+ 0.41816258E-02 -0.24265660E+01 -0.15816652E+02 -0.12158142E+02
+ 0.42548043E-02 -0.24320412E+01 -0.15822127E+02 -0.12163617E+02
+ 0.43292634E-02 -0.24376895E+01 -0.15827775E+02 -0.12169265E+02
+ 0.44050255E-02 -0.24435157E+01 -0.15833602E+02 -0.12175092E+02
+ 0.44821134E-02 -0.24495246E+01 -0.15839611E+02 -0.12181101E+02
+ 0.45605504E-02 -0.24557212E+01 -0.15845807E+02 -0.12187297E+02
+ 0.46403600E-02 -0.24621104E+01 -0.15852196E+02 -0.12193686E+02
+ 0.47215663E-02 -0.24686973E+01 -0.15858783E+02 -0.12200273E+02
+ 0.48041937E-02 -0.24754871E+01 -0.15865573E+02 -0.12207063E+02
+ 0.48882671E-02 -0.24824849E+01 -0.15872571E+02 -0.12214061E+02
+ 0.49738118E-02 -0.24896961E+01 -0.15879782E+02 -0.12221272E+02
+ 0.50608535E-02 -0.24971258E+01 -0.15887212E+02 -0.12228702E+02
+ 0.51494185E-02 -0.25047796E+01 -0.15894866E+02 -0.12236356E+02
+ 0.52395333E-02 -0.25126628E+01 -0.15902749E+02 -0.12244239E+02
+ 0.53312251E-02 -0.25207808E+01 -0.15910867E+02 -0.12252357E+02
+ 0.54245215E-02 -0.25291391E+01 -0.15919225E+02 -0.12260715E+02
+ 0.55194507E-02 -0.25377433E+01 -0.15927829E+02 -0.12269319E+02
+ 0.56160411E-02 -0.25465988E+01 -0.15936685E+02 -0.12278175E+02
+ 0.57143218E-02 -0.25557111E+01 -0.15945797E+02 -0.12287287E+02
+ 0.58143224E-02 -0.25650857E+01 -0.15955172E+02 -0.12296662E+02
+ 0.59160731E-02 -0.25747282E+01 -0.15964814E+02 -0.12306304E+02
+ 0.60196043E-02 -0.25846439E+01 -0.15974730E+02 -0.12316220E+02
+ 0.61249474E-02 -0.25948382E+01 -0.15984924E+02 -0.12326414E+02
+ 0.62321340E-02 -0.26053166E+01 -0.15995402E+02 -0.12336892E+02
+ 0.63411963E-02 -0.26160843E+01 -0.16006170E+02 -0.12347660E+02
+ 0.64521673E-02 -0.26271465E+01 -0.16017232E+02 -0.12358722E+02
+ 0.65650802E-02 -0.26385082E+01 -0.16028594E+02 -0.12370084E+02
+ 0.66799691E-02 -0.26501745E+01 -0.16040260E+02 -0.12381750E+02
+ 0.67968686E-02 -0.26621502E+01 -0.16052236E+02 -0.12393726E+02
+ 0.69158138E-02 -0.26744399E+01 -0.16064526E+02 -0.12406016E+02
+ 0.70368405E-02 -0.26870482E+01 -0.16077134E+02 -0.12418624E+02
+ 0.71599852E-02 -0.26999793E+01 -0.16090065E+02 -0.12431555E+02
+ 0.72852849E-02 -0.27132374E+01 -0.16103323E+02 -0.12444813E+02
+ 0.74127774E-02 -0.27268262E+01 -0.16116912E+02 -0.12458402E+02
+ 0.75425010E-02 -0.27407493E+01 -0.16130835E+02 -0.12472325E+02
+ 0.76744948E-02 -0.27550101E+01 -0.16145095E+02 -0.12486586E+02
+ 0.78087985E-02 -0.27696113E+01 -0.16159697E+02 -0.12501187E+02
+ 0.79454524E-02 -0.27845556E+01 -0.16174641E+02 -0.12516131E+02
+ 0.80844979E-02 -0.27998453E+01 -0.16189931E+02 -0.12531421E+02
+ 0.82259766E-02 -0.28154821E+01 -0.16205567E+02 -0.12547058E+02
+ 0.83699312E-02 -0.28314675E+01 -0.16221553E+02 -0.12563043E+02
+ 0.85164050E-02 -0.28478022E+01 -0.16237887E+02 -0.12579378E+02
+ 0.86654420E-02 -0.28644868E+01 -0.16254572E+02 -0.12596062E+02
+ 0.88170873E-02 -0.28815210E+01 -0.16271606E+02 -0.12613096E+02
+ 0.89713863E-02 -0.28989042E+01 -0.16288989E+02 -0.12630480E+02
+ 0.91283856E-02 -0.29166351E+01 -0.16306720E+02 -0.12648210E+02
+ 0.92881323E-02 -0.29347118E+01 -0.16324797E+02 -0.12666287E+02
+ 0.94506746E-02 -0.29531316E+01 -0.16343216E+02 -0.12684707E+02
+ 0.96160614E-02 -0.29718912E+01 -0.16361976E+02 -0.12703466E+02
+ 0.97843425E-02 -0.29909866E+01 -0.16381071E+02 -0.12722562E+02
+ 0.99555685E-02 -0.30104130E+01 -0.16400497E+02 -0.12741988E+02
+ 0.10129791E-01 -0.30301647E+01 -0.16420249E+02 -0.12761740E+02
+ 0.10307062E-01 -0.30502352E+01 -0.16440319E+02 -0.12781810E+02
+ 0.10487436E-01 -0.30706173E+01 -0.16460701E+02 -0.12802192E+02
+ 0.10670966E-01 -0.30913026E+01 -0.16481386E+02 -0.12822877E+02
+ 0.10857708E-01 -0.31122820E+01 -0.16502366E+02 -0.12843857E+02
+ 0.11047718E-01 -0.31335452E+01 -0.16523629E+02 -0.12865120E+02
+ 0.11241053E-01 -0.31550812E+01 -0.16545165E+02 -0.12886656E+02
+ 0.11437771E-01 -0.31768778E+01 -0.16566961E+02 -0.12908452E+02
+ 0.11637932E-01 -0.31989216E+01 -0.16589005E+02 -0.12930496E+02
+ 0.11841596E-01 -0.32211985E+01 -0.16611281E+02 -0.12952773E+02
+ 0.12048824E-01 -0.32436929E+01 -0.16633776E+02 -0.12975267E+02
+ 0.12259678E-01 -0.32663885E+01 -0.16656471E+02 -0.12997962E+02
+ 0.12474223E-01 -0.32892675E+01 -0.16679350E+02 -0.13020841E+02
+ 0.12692522E-01 -0.33123113E+01 -0.16702393E+02 -0.13043885E+02
+ 0.12914641E-01 -0.33354998E+01 -0.16725581E+02 -0.13067073E+02
+ 0.13140647E-01 -0.33588121E+01 -0.16748893E+02 -0.13090385E+02
+ 0.13370608E-01 -0.33822259E+01 -0.16772307E+02 -0.13113799E+02
+ 0.13604594E-01 -0.34057180E+01 -0.16795798E+02 -0.13137291E+02
+ 0.13842674E-01 -0.34292638E+01 -0.16819344E+02 -0.13160836E+02
+ 0.14084921E-01 -0.34528378E+01 -0.16842917E+02 -0.13184410E+02
+ 0.14331407E-01 -0.34764134E+01 -0.16866493E+02 -0.13207985E+02
+ 0.14582207E-01 -0.34999627E+01 -0.16890041E+02 -0.13231534E+02
+ 0.14837396E-01 -0.35234570E+01 -0.16913535E+02 -0.13255028E+02
+ 0.15097050E-01 -0.35468665E+01 -0.16936944E+02 -0.13278437E+02
+ 0.15361248E-01 -0.35701605E+01 -0.16960237E+02 -0.13301731E+02
+ 0.15630070E-01 -0.35933072E+01 -0.16983384E+02 -0.13324877E+02
+ 0.15903596E-01 -0.36162742E+01 -0.17006350E+02 -0.13347844E+02
+ 0.16181909E-01 -0.36390280E+01 -0.17029103E+02 -0.13370597E+02
+ 0.16465093E-01 -0.36615347E+01 -0.17051609E+02 -0.13393104E+02
+ 0.16753232E-01 -0.36837593E+01 -0.17073833E+02 -0.13415328E+02
+ 0.17046414E-01 -0.37056666E+01 -0.17095739E+02 -0.13437234E+02
+ 0.17344726E-01 -0.37272205E+01 -0.17117292E+02 -0.13458788E+02
+ 0.17648258E-01 -0.37483848E+01 -0.17138455E+02 -0.13479951E+02
+ 0.17957103E-01 -0.37691228E+01 -0.17159192E+02 -0.13500689E+02
+ 0.18271352E-01 -0.37893976E+01 -0.17179466E+02 -0.13520963E+02
+ 0.18591101E-01 -0.38091719E+01 -0.17199239E+02 -0.13540736E+02
+ 0.18916445E-01 -0.38284087E+01 -0.17218474E+02 -0.13559972E+02
+ 0.19247483E-01 -0.38470709E+01 -0.17237135E+02 -0.13578634E+02
+ 0.19584314E-01 -0.38651215E+01 -0.17255184E+02 -0.13596683E+02
+ 0.19927039E-01 -0.38825239E+01 -0.17272585E+02 -0.13614085E+02
+ 0.20275763E-01 -0.38992418E+01 -0.17289301E+02 -0.13630802E+02
+ 0.20630589E-01 -0.39152396E+01 -0.17305297E+02 -0.13646798E+02
+ 0.20991624E-01 -0.39304821E+01 -0.17320537E+02 -0.13662039E+02
+ 0.21358977E-01 -0.39449351E+01 -0.17334988E+02 -0.13676491E+02
+ 0.21732759E-01 -0.39585652E+01 -0.17348615E+02 -0.13690120E+02
+ 0.22113083E-01 -0.39713399E+01 -0.17361388E+02 -0.13702893E+02
+ 0.22500062E-01 -0.39832280E+01 -0.17373273E+02 -0.13714779E+02
+ 0.22893813E-01 -0.39941997E+01 -0.17384242E+02 -0.13725749E+02
+ 0.23294454E-01 -0.40042262E+01 -0.17394265E+02 -0.13735774E+02
+ 0.23702107E-01 -0.40132807E+01 -0.17403316E+02 -0.13744826E+02
+ 0.24116894E-01 -0.40213377E+01 -0.17411370E+02 -0.13752881E+02
+ 0.24538940E-01 -0.40283738E+01 -0.17418402E+02 -0.13759915E+02
+ 0.24968371E-01 -0.40343670E+01 -0.17424391E+02 -0.13765906E+02
+ 0.25405318E-01 -0.40392979E+01 -0.17429317E+02 -0.13770834E+02
+ 0.25849911E-01 -0.40431489E+01 -0.17433163E+02 -0.13774682E+02
+ 0.26302284E-01 -0.40459046E+01 -0.17435914E+02 -0.13777434E+02
+ 0.26762574E-01 -0.40475520E+01 -0.17437556E+02 -0.13779079E+02
+ 0.27230919E-01 -0.40480807E+01 -0.17438079E+02 -0.13779604E+02
+ 0.27707460E-01 -0.40474825E+01 -0.17437474E+02 -0.13779002E+02
+ 0.28192341E-01 -0.40457521E+01 -0.17435737E+02 -0.13777267E+02
+ 0.28685707E-01 -0.40428867E+01 -0.17432864E+02 -0.13774397E+02
+ 0.29187707E-01 -0.40388863E+01 -0.17428856E+02 -0.13770392E+02
+ 0.29698492E-01 -0.40337538E+01 -0.17423715E+02 -0.13765255E+02
+ 0.30218215E-01 -0.40274949E+01 -0.17417448E+02 -0.13758991E+02
+ 0.30747034E-01 -0.40201180E+01 -0.17410061E+02 -0.13751608E+02
+ 0.31285107E-01 -0.40116348E+01 -0.17401568E+02 -0.13743119E+02
+ 0.31832596E-01 -0.40020596E+01 -0.17391981E+02 -0.13733537E+02
+ 0.32389667E-01 -0.39914098E+01 -0.17381320E+02 -0.13722880E+02
+ 0.32956486E-01 -0.39797058E+01 -0.17369603E+02 -0.13711168E+02
+ 0.33533225E-01 -0.39669706E+01 -0.17356855E+02 -0.13698425E+02
+ 0.34120056E-01 -0.39532303E+01 -0.17343100E+02 -0.13684676E+02
+ 0.34717157E-01 -0.39385138E+01 -0.17328368E+02 -0.13669950E+02
+ 0.35324707E-01 -0.39228525E+01 -0.17312690E+02 -0.13654279E+02
+ 0.35942890E-01 -0.39062807E+01 -0.17296100E+02 -0.13637696E+02
+ 0.36571890E-01 -0.38888351E+01 -0.17278636E+02 -0.13620239E+02
+ 0.37211898E-01 -0.38705547E+01 -0.17260335E+02 -0.13601946E+02
+ 0.37863107E-01 -0.38514809E+01 -0.17241239E+02 -0.13582859E+02
+ 0.38525711E-01 -0.38316571E+01 -0.17221392E+02 -0.13563021E+02
+ 0.39199911E-01 -0.38111288E+01 -0.17200838E+02 -0.13542478E+02
+ 0.39885909E-01 -0.37899429E+01 -0.17179625E+02 -0.13521275E+02
+ 0.40583913E-01 -0.37681483E+01 -0.17157802E+02 -0.13499463E+02
+ 0.41294131E-01 -0.37457949E+01 -0.17135417E+02 -0.13477091E+02
+ 0.42016778E-01 -0.37229338E+01 -0.17112523E+02 -0.13454210E+02
+ 0.42752072E-01 -0.36996171E+01 -0.17089171E+02 -0.13430872E+02
+ 0.43500233E-01 -0.36758974E+01 -0.17065413E+02 -0.13407129E+02
+ 0.44261487E-01 -0.36518278E+01 -0.17041302E+02 -0.13383035E+02
+ 0.45036063E-01 -0.36274614E+01 -0.17016892E+02 -0.13358642E+02
+ 0.45824195E-01 -0.36028515E+01 -0.16992235E+02 -0.13334004E+02
+ 0.46626118E-01 -0.35780507E+01 -0.16967384E+02 -0.13309172E+02
+ 0.47442075E-01 -0.35531114E+01 -0.16942391E+02 -0.13284200E+02
+ 0.48272311E-01 -0.35280848E+01 -0.16917306E+02 -0.13259139E+02
+ 0.49117077E-01 -0.35030214E+01 -0.16892181E+02 -0.13234038E+02
+ 0.49976626E-01 -0.34779701E+01 -0.16867064E+02 -0.13208947E+02
+ 0.50851217E-01 -0.34529786E+01 -0.16842001E+02 -0.13183912E+02
+ 0.51741113E-01 -0.34280928E+01 -0.16817039E+02 -0.13158980E+02
+ 0.52646582E-01 -0.34033566E+01 -0.16792221E+02 -0.13134195E+02
+ 0.53567898E-01 -0.33788122E+01 -0.16767589E+02 -0.13109598E+02
+ 0.54505336E-01 -0.33544993E+01 -0.16743183E+02 -0.13085228E+02
+ 0.55459179E-01 -0.33304556E+01 -0.16719038E+02 -0.13061124E+02
+ 0.56429715E-01 -0.33067163E+01 -0.16695192E+02 -0.13037319E+02
+ 0.57417235E-01 -0.32833139E+01 -0.16671674E+02 -0.13013847E+02
+ 0.58422036E-01 -0.32602787E+01 -0.16648515E+02 -0.12990737E+02
+ 0.59444422E-01 -0.32376381E+01 -0.16625742E+02 -0.12968017E+02
+ 0.60484699E-01 -0.32154172E+01 -0.16603379E+02 -0.12945710E+02
+ 0.61543182E-01 -0.31936382E+01 -0.16581449E+02 -0.12923839E+02
+ 0.62620187E-01 -0.31723208E+01 -0.16559968E+02 -0.12902423E+02
+ 0.63716041E-01 -0.31514821E+01 -0.16538955E+02 -0.12881479E+02
+ 0.64831071E-01 -0.31311365E+01 -0.16518423E+02 -0.12861020E+02
+ 0.65965615E-01 -0.31112963E+01 -0.16498382E+02 -0.12841059E+02
+ 0.67120013E-01 -0.30919710E+01 -0.16478843E+02 -0.12821604E+02
+ 0.68294614E-01 -0.30731680E+01 -0.16459810E+02 -0.12802662E+02
+ 0.69489769E-01 -0.30548923E+01 -0.16441288E+02 -0.12784237E+02
+ 0.70705840E-01 -0.30371469E+01 -0.16423279E+02 -0.12766332E+02
+ 0.71943192E-01 -0.30199328E+01 -0.16405782E+02 -0.12748947E+02
+ 0.73202198E-01 -0.30032488E+01 -0.16388796E+02 -0.12732080E+02
+ 0.74483237E-01 -0.29870924E+01 -0.16372315E+02 -0.12715727E+02
+ 0.75786693E-01 -0.29714589E+01 -0.16356334E+02 -0.12699883E+02
+ 0.77112961E-01 -0.29563425E+01 -0.16340846E+02 -0.12684541E+02
+ 0.78462437E-01 -0.29417357E+01 -0.16325840E+02 -0.12669693E+02
+ 0.79835530E-01 -0.29276296E+01 -0.16311307E+02 -0.12655329E+02
+ 0.81232652E-01 -0.29140145E+01 -0.16297235E+02 -0.12641436E+02
+ 0.82654223E-01 -0.29008792E+01 -0.16283610E+02 -0.12628004E+02
+ 0.84100672E-01 -0.28882116E+01 -0.16270418E+02 -0.12615019E+02
+ 0.85572434E-01 -0.28759989E+01 -0.16257644E+02 -0.12602466E+02
+ 0.87069951E-01 -0.28642274E+01 -0.16245270E+02 -0.12590330E+02
+ 0.88593676E-01 -0.28528826E+01 -0.16233281E+02 -0.12578594E+02
+ 0.90144065E-01 -0.28419494E+01 -0.16221658E+02 -0.12567243E+02
+ 0.91721586E-01 -0.28314122E+01 -0.16210382E+02 -0.12556257E+02
+ 0.93326714E-01 -0.28212549E+01 -0.16199433E+02 -0.12545620E+02
+ 0.94959931E-01 -0.28114611E+01 -0.16188792E+02 -0.12535312E+02
+ 0.96621730E-01 -0.28020136E+01 -0.16178437E+02 -0.12525315E+02
+ 0.98312610E-01 -0.27928953E+01 -0.16168347E+02 -0.12515607E+02
+ 0.10003308E+00 -0.27840887E+01 -0.16158500E+02 -0.12506169E+02
+ 0.10178366E+00 -0.27755757E+01 -0.16148873E+02 -0.12496980E+02
+ 0.10356487E+00 -0.27673384E+01 -0.16139443E+02 -0.12488018E+02
+ 0.10537726E+00 -0.27593584E+01 -0.16130186E+02 -0.12479263E+02
+ 0.10722136E+00 -0.27516171E+01 -0.16121078E+02 -0.12470692E+02
+ 0.10909774E+00 -0.27440958E+01 -0.16112093E+02 -0.12462282E+02
+ 0.11100695E+00 -0.27367754E+01 -0.16103207E+02 -0.12454010E+02
+ 0.11294957E+00 -0.27296369E+01 -0.16094391E+02 -0.12445852E+02
+ 0.11492618E+00 -0.27226608E+01 -0.16085620E+02 -0.12437786E+02
+ 0.11693739E+00 -0.27158277E+01 -0.16076866E+02 -0.12429785E+02
+ 0.11898380E+00 -0.27091176E+01 -0.16068100E+02 -0.12421825E+02
+ 0.12106601E+00 -0.27025107E+01 -0.16059293E+02 -0.12413880E+02
+ 0.12318467E+00 -0.26959869E+01 -0.16050415E+02 -0.12405923E+02
+ 0.12534040E+00 -0.26895257E+01 -0.16041434E+02 -0.12397929E+02
+ 0.12753386E+00 -0.26831068E+01 -0.16032319E+02 -0.12389869E+02
+ 0.12976570E+00 -0.26767096E+01 -0.16023037E+02 -0.12381716E+02
+ 0.13203660E+00 -0.26703133E+01 -0.16013554E+02 -0.12373440E+02
+ 0.13434724E+00 -0.26638971E+01 -0.16003836E+02 -0.12365013E+02
+ 0.13669832E+00 -0.26574402E+01 -0.15993847E+02 -0.12356404E+02
+ 0.13909054E+00 -0.26509218E+01 -0.15983551E+02 -0.12347583E+02
+ 0.14152462E+00 -0.26443213E+01 -0.15972909E+02 -0.12338519E+02
+ 0.14400130E+00 -0.26376183E+01 -0.15961885E+02 -0.12329180E+02
+ 0.14652133E+00 -0.26307925E+01 -0.15950437E+02 -0.12319534E+02
+ 0.14908545E+00 -0.26238243E+01 -0.15938526E+02 -0.12309550E+02
+ 0.15169444E+00 -0.26166947E+01 -0.15926112E+02 -0.12299194E+02
+ 0.15434910E+00 -0.26093851E+01 -0.15913153E+02 -0.12288433E+02
+ 0.15705021E+00 -0.26018782E+01 -0.15899606E+02 -0.12277236E+02
+ 0.15979858E+00 -0.25941583E+01 -0.15885430E+02 -0.12265569E+02
+ 0.16259506E+00 -0.25862078E+01 -0.15870579E+02 -0.12253399E+02
+ 0.16544047E+00 -0.25780238E+01 -0.15855020E+02 -0.12240702E+02
+ 0.16833568E+00 -0.25695557E+01 -0.15838671E+02 -0.12227410E+02
+ 0.17128156E+00 -0.25609445E+01 -0.15821639E+02 -0.12213642E+02
+ 0.17427898E+00 -0.25516085E+01 -0.15803307E+02 -0.12198794E+02
+ 0.17732887E+00 -0.25437469E+01 -0.15785835E+02 -0.12185041E+02
+ 0.18043212E+00 -0.25343949E+01 -0.15766218E+02 -0.12169393E+02
+ 0.18358968E+00 -0.25231148E+01 -0.15743976E+02 -0.12151386E+02
+ 0.18680250E+00 -0.25134438E+01 -0.15722599E+02 -0.12134527E+02
+ 0.19007155E+00 -0.25030042E+01 -0.15699661E+02 -0.12116408E+02
+ 0.19339780E+00 -0.24924687E+01 -0.15675784E+02 -0.12097670E+02
+ 0.19678226E+00 -0.24816775E+01 -0.15650752E+02 -0.12078118E+02
+ 0.20022595E+00 -0.24707063E+01 -0.15624584E+02 -0.12057792E+02
+ 0.20372990E+00 -0.24595732E+01 -0.15597235E+02 -0.12036669E+02
+ 0.20729518E+00 -0.24483195E+01 -0.15568682E+02 -0.12014751E+02
+ 0.21092284E+00 -0.24369876E+01 -0.15538897E+02 -0.11992035E+02
+ 0.21461399E+00 -0.24256277E+01 -0.15507859E+02 -0.11968525E+02
+ 0.21836974E+00 -0.24142958E+01 -0.15475545E+02 -0.11944228E+02
+ 0.22219121E+00 -0.24030547E+01 -0.15441935E+02 -0.11919153E+02
+ 0.22607955E+00 -0.23919733E+01 -0.15407014E+02 -0.11893316E+02
+ 0.23003595E+00 -0.23811271E+01 -0.15370764E+02 -0.11866731E+02
+ 0.23406157E+00 -0.23705977E+01 -0.15333170E+02 -0.11839419E+02
+ 0.23815765E+00 -0.23604729E+01 -0.15294219E+02 -0.11811401E+02
+ 0.24232541E+00 -0.23508463E+01 -0.15253896E+02 -0.11782702E+02
+ 0.24656611E+00 -0.23418172E+01 -0.15212189E+02 -0.11753347E+02
+ 0.25088101E+00 -0.23334903E+01 -0.15169082E+02 -0.11723364E+02
+ 0.25527143E+00 -0.23259752E+01 -0.15124560E+02 -0.11692781E+02
+ 0.25973868E+00 -0.23193861E+01 -0.15078607E+02 -0.11661624E+02
+ 0.26428411E+00 -0.23138416E+01 -0.15031202E+02 -0.11629923E+02
+ 0.26890908E+00 -0.23094642E+01 -0.14982324E+02 -0.11597704E+02
+ 0.27361499E+00 -0.23063801E+01 -0.14931947E+02 -0.11564993E+02
+ 0.27840325E+00 -0.23047188E+01 -0.14880042E+02 -0.11531813E+02
+ 0.28327531E+00 -0.23046124E+01 -0.14826577E+02 -0.11498186E+02
+ 0.28823263E+00 -0.23061958E+01 -0.14771512E+02 -0.11464130E+02
+ 0.29327670E+00 -0.23096061E+01 -0.14714806E+02 -0.11429662E+02
+ 0.29840904E+00 -0.23149820E+01 -0.14656409E+02 -0.11394792E+02
+ 0.30363120E+00 -0.23224634E+01 -0.14596268E+02 -0.11359528E+02
+ 0.30894474E+00 -0.23321911E+01 -0.14534320E+02 -0.11323872E+02
+ 0.31435128E+00 -0.23443055E+01 -0.14470498E+02 -0.11287819E+02
+ 0.31985242E+00 -0.23589466E+01 -0.14404726E+02 -0.11251359E+02
+ 0.32544984E+00 -0.23762518E+01 -0.14336918E+02 -0.11214475E+02
+ 0.33114521E+00 -0.23963558E+01 -0.14266981E+02 -0.11177138E+02
+ 0.33694025E+00 -0.24193882E+01 -0.14194810E+02 -0.11139312E+02
+ 0.34283671E+00 -0.24454719E+01 -0.14120287E+02 -0.11100948E+02
+ 0.34883635E+00 -0.24747213E+01 -0.14043283E+02 -0.11061981E+02
+ 0.35494099E+00 -0.25072396E+01 -0.13963651E+02 -0.11022335E+02
+ 0.36115245E+00 -0.25431170E+01 -0.13881231E+02 -0.10981911E+02
+ 0.36747262E+00 -0.25824275E+01 -0.13795842E+02 -0.10940594E+02
+ 0.37390339E+00 -0.26252271E+01 -0.13707287E+02 -0.10898247E+02
+ 0.38044670E+00 -0.26715517E+01 -0.13615346E+02 -0.10854710E+02
+ 0.38710452E+00 -0.27214156E+01 -0.13519783E+02 -0.10809800E+02
+ 0.39387885E+00 -0.27748106E+01 -0.13420340E+02 -0.10763312E+02
+ 0.40077173E+00 -0.28317068E+01 -0.13316748E+02 -0.10715017E+02
+ 0.40778523E+00 -0.28920537E+01 -0.13208720E+02 -0.10664672E+02
+ 0.41492147E+00 -0.29557835E+01 -0.13095967E+02 -0.10612016E+02
+ 0.42218260E+00 -0.30228145E+01 -0.12978197E+02 -0.10556781E+02
+ 0.42957080E+00 -0.30930567E+01 -0.12855127E+02 -0.10498698E+02
+ 0.43708829E+00 -0.31664175E+01 -0.12726491E+02 -0.10437506E+02
+ 0.44473733E+00 -0.32428071E+01 -0.12592050E+02 -0.10372956E+02
+ 0.45252023E+00 -0.33221447E+01 -0.12451600E+02 -0.10304825E+02
+ 0.46043934E+00 -0.34043616E+01 -0.12304983E+02 -0.10232917E+02
+ 0.46849703E+00 -0.34894046E+01 -0.12152090E+02 -0.10157075E+02
+ 0.47669572E+00 -0.35772353E+01 -0.11992870E+02 -0.10077178E+02
+ 0.48503790E+00 -0.36678283E+01 -0.11827330E+02 -0.99931488E+01
+ 0.49352606E+00 -0.37611659E+01 -0.11655537E+02 -0.99049485E+01
+ 0.50216277E+00 -0.38572313E+01 -0.11477616E+02 -0.98125759E+01
+ 0.51095062E+00 -0.39559999E+01 -0.11293747E+02 -0.97160631E+01
+ 0.51989225E+00 -0.40574293E+01 -0.11104163E+02 -0.96154706E+01
+ 0.52899037E+00 -0.41614492E+01 -0.10909141E+02 -0.95108821E+01
+ 0.53824770E+00 -0.42679513E+01 -0.10709005E+02 -0.94023998E+01
+ 0.54766703E+00 -0.43767803E+01 -0.10504117E+02 -0.92901405E+01
+ 0.55725121E+00 -0.44877251E+01 -0.10294877E+02 -0.91742324E+01
+ 0.56700310E+00 -0.46005119E+01 -0.10081723E+02 -0.90548140E+01
+ 0.57692566E+00 -0.47147992E+01 -0.98651256E+01 -0.89320332E+01
+ 0.58702186E+00 -0.48301729E+01 -0.96455931E+01 -0.88060485E+01
+ 0.59729474E+00 -0.49461438E+01 -0.94236701E+01 -0.86770298E+01
+ 0.60774740E+00 -0.50621464E+01 -0.91999383E+01 -0.85451614E+01
+ 0.61838298E+00 -0.51775379E+01 -0.89750177E+01 -0.84106442E+01
+ 0.62920468E+00 -0.52916000E+01 -0.87495672E+01 -0.82736988E+01
+ 0.64021576E+00 -0.54035412E+01 -0.85242840E+01 -0.81345678E+01
+ 0.65141954E+00 -0.55125004E+01 -0.82999031E+01 -0.79935187E+01
+ 0.66281938E+00 -0.56175524E+01 -0.80771952E+01 -0.78508463E+01
+ 0.67441872E+00 -0.57177156E+01 -0.78569634E+01 -0.77068735E+01
+ 0.68622104E+00 -0.58119610E+01 -0.76400391E+01 -0.75619531E+01
+ 0.69822991E+00 -0.58992237E+01 -0.74272751E+01 -0.74164672E+01
+ 0.71044894E+00 -0.59784176E+01 -0.72195389E+01 -0.72708271E+01
+ 0.72288179E+00 -0.60484517E+01 -0.70177024E+01 -0.71254709E+01
+ 0.73553222E+00 -0.61082502E+01 -0.68226309E+01 -0.69808613E+01
+ 0.74840404E+00 -0.61567751E+01 -0.66351694E+01 -0.68374803E+01
+ 0.76150111E+00 -0.61930526E+01 -0.64561265E+01 -0.66958247E+01
+ 0.77482738E+00 -0.62162014E+01 -0.62862567E+01 -0.65563981E+01
+ 0.78838686E+00 -0.62254642E+01 -0.61262395E+01 -0.64197025E+01
+ 0.80218363E+00 -0.62202420E+01 -0.59766560E+01 -0.62862274E+01
+ 0.81622184E+00 -0.62001293E+01 -0.58379639E+01 -0.61564379E+01
+ 0.83050572E+00 -0.61649507E+01 -0.57104689E+01 -0.60307602E+01
+ 0.84503957E+00 -0.61147968E+01 -0.55942960E+01 -0.59095662E+01
+ 0.85982776E+00 -0.60500590E+01 -0.54893584E+01 -0.57931566E+01
+ 0.87487475E+00 -0.59714598E+01 -0.53953278E+01 -0.56817433E+01
+ 0.89018506E+00 -0.58800778E+01 -0.53116057E+01 -0.55754307E+01
+ 0.90576330E+00 -0.57773638E+01 -0.52373004E+01 -0.54741993E+01
+ 0.92161415E+00 -0.56651439E+01 -0.51712107E+01 -0.53778899E+01
+ 0.93774240E+00 -0.55456058E+01 -0.51118230E+01 -0.52861923E+01
+ 0.95415289E+00 -0.54212615E+01 -0.50573272E+01 -0.51986404E+01
+ 0.97085057E+00 -0.52948799E+01 -0.50056579E+01 -0.51146155E+01
+ 0.98784045E+00 -0.51693809E+01 -0.49545739E+01 -0.50333650E+01
+ 0.10051277E+01 -0.50476727E+01 -0.49017824E+01 -0.49540351E+01
+ 0.10227174E+01 -0.49324393E+01 -0.48451431E+01 -0.48757457E+01
+ 0.10406150E+01 -0.48257797E+01 -0.47828942E+01 -0.47976378E+01
+ 0.10588257E+01 -0.47289758E+01 -0.47142252E+01 -0.47192064E+01
+ 0.10773552E+01 -0.46414479E+01 -0.46393133E+01 -0.46400224E+01
+ 0.10962089E+01 -0.45606109E+01 -0.45606109E+01 -0.45606109E+01
+ 0.11153925E+01 -0.44822517E+01 -0.44822517E+01 -0.44822517E+01
+ 0.11349119E+01 -0.44052288E+01 -0.44052288E+01 -0.44052288E+01
+ 0.11547729E+01 -0.43295216E+01 -0.43295216E+01 -0.43295216E+01
+ 0.11749814E+01 -0.42551079E+01 -0.42551079E+01 -0.42551079E+01
+ 0.11955436E+01 -0.41819667E+01 -0.41819667E+01 -0.41819667E+01
+ 0.12164656E+01 -0.41100770E+01 -0.41100770E+01 -0.41100770E+01
+ 0.12377537E+01 -0.40394182E+01 -0.40394182E+01 -0.40394182E+01
+ 0.12594144E+01 -0.39699697E+01 -0.39699697E+01 -0.39699697E+01
+ 0.12814542E+01 -0.39017115E+01 -0.39017115E+01 -0.39017115E+01
+ 0.13038796E+01 -0.38346238E+01 -0.38346238E+01 -0.38346238E+01
+ 0.13266975E+01 -0.37686868E+01 -0.37686868E+01 -0.37686868E+01
+ 0.13499147E+01 -0.37038814E+01 -0.37038814E+01 -0.37038814E+01
+ 0.13735382E+01 -0.36401883E+01 -0.36401883E+01 -0.36401883E+01
+ 0.13975751E+01 -0.35775889E+01 -0.35775889E+01 -0.35775889E+01
+ 0.14220327E+01 -0.35160646E+01 -0.35160646E+01 -0.35160646E+01
+ 0.14469183E+01 -0.34555973E+01 -0.34555973E+01 -0.34555973E+01
+ 0.14722393E+01 -0.33961688E+01 -0.33961688E+01 -0.33961688E+01
+ 0.14980035E+01 -0.33377616E+01 -0.33377616E+01 -0.33377616E+01
+ 0.15242186E+01 -0.32803582E+01 -0.32803582E+01 -0.32803582E+01
+ 0.15508924E+01 -0.32239416E+01 -0.32239416E+01 -0.32239416E+01
+ 0.15780330E+01 -0.31684948E+01 -0.31684948E+01 -0.31684948E+01
+ 0.16056486E+01 -0.31140012E+01 -0.31140012E+01 -0.31140012E+01
+ 0.16337475E+01 -0.30604446E+01 -0.30604446E+01 -0.30604446E+01
+ 0.16623380E+01 -0.30078088E+01 -0.30078088E+01 -0.30078088E+01
+ 0.16914290E+01 -0.29560781E+01 -0.29560781E+01 -0.29560781E+01
+ 0.17210290E+01 -0.29052370E+01 -0.29052370E+01 -0.29052370E+01
+ 0.17511470E+01 -0.28552702E+01 -0.28552702E+01 -0.28552702E+01
+ 0.17817920E+01 -0.28061626E+01 -0.28061626E+01 -0.28061626E+01
+ 0.18129734E+01 -0.27578996E+01 -0.27578996E+01 -0.27578996E+01
+ 0.18447004E+01 -0.27104666E+01 -0.27104666E+01 -0.27104666E+01
+ 0.18769827E+01 -0.26638494E+01 -0.26638494E+01 -0.26638494E+01
+ 0.19098299E+01 -0.26180339E+01 -0.26180339E+01 -0.26180339E+01
+ 0.19432519E+01 -0.25730063E+01 -0.25730063E+01 -0.25730063E+01
+ 0.19772588E+01 -0.25287532E+01 -0.25287532E+01 -0.25287532E+01
+ 0.20118609E+01 -0.24852612E+01 -0.24852612E+01 -0.24852612E+01
+ 0.20470684E+01 -0.24425171E+01 -0.24425171E+01 -0.24425171E+01
+ 0.20828921E+01 -0.24005083E+01 -0.24005083E+01 -0.24005083E+01
+ 0.21193427E+01 -0.23592219E+01 -0.23592219E+01 -0.23592219E+01
+ 0.21564312E+01 -0.23186456E+01 -0.23186456E+01 -0.23186456E+01
+ 0.21941688E+01 -0.22787672E+01 -0.22787672E+01 -0.22787672E+01
+ 0.22325667E+01 -0.22395746E+01 -0.22395746E+01 -0.22395746E+01
+ 0.22716367E+01 -0.22010562E+01 -0.22010562E+01 -0.22010562E+01
+ 0.23113903E+01 -0.21632002E+01 -0.21632002E+01 -0.21632002E+01
+ 0.23518396E+01 -0.21259952E+01 -0.21259952E+01 -0.21259952E+01
+ 0.23929968E+01 -0.20894302E+01 -0.20894302E+01 -0.20894302E+01
+ 0.24348743E+01 -0.20534941E+01 -0.20534941E+01 -0.20534941E+01
+ 0.24774846E+01 -0.20181760E+01 -0.20181760E+01 -0.20181760E+01
+ 0.25208405E+01 -0.19834653E+01 -0.19834653E+01 -0.19834653E+01
+ 0.25649552E+01 -0.19493517E+01 -0.19493517E+01 -0.19493517E+01
+ 0.26098420E+01 -0.19158248E+01 -0.19158248E+01 -0.19158248E+01
+ 0.26555142E+01 -0.18828745E+01 -0.18828745E+01 -0.18828745E+01
+ 0.27019857E+01 -0.18504909E+01 -0.18504909E+01 -0.18504909E+01
+ 0.27492704E+01 -0.18186642E+01 -0.18186642E+01 -0.18186642E+01
+ 0.27973827E+01 -0.17873850E+01 -0.17873850E+01 -0.17873850E+01
+ 0.28463369E+01 -0.17566437E+01 -0.17566437E+01 -0.17566437E+01
+ 0.28961478E+01 -0.17264312E+01 -0.17264312E+01 -0.17264312E+01
+ 0.29468304E+01 -0.16967383E+01 -0.16967383E+01 -0.16967383E+01
+ 0.29983999E+01 -0.16675561E+01 -0.16675561E+01 -0.16675561E+01
+ 0.30508719E+01 -0.16388757E+01 -0.16388757E+01 -0.16388757E+01
+ 0.31042621E+01 -0.16106887E+01 -0.16106887E+01 -0.16106887E+01
+ 0.31585867E+01 -0.15829864E+01 -0.15829864E+01 -0.15829864E+01
+ 0.32138620E+01 -0.15557606E+01 -0.15557606E+01 -0.15557606E+01
+ 0.32701046E+01 -0.15290031E+01 -0.15290031E+01 -0.15290031E+01
+ 0.33273314E+01 -0.15027057E+01 -0.15027057E+01 -0.15027057E+01
+ 0.33855597E+01 -0.14768606E+01 -0.14768606E+01 -0.14768606E+01
+ 0.34448070E+01 -0.14514601E+01 -0.14514601E+01 -0.14514601E+01
+ 0.35050911E+01 -0.14264964E+01 -0.14264964E+01 -0.14264964E+01
+ 0.35664302E+01 -0.14019621E+01 -0.14019621E+01 -0.14019621E+01
+ 0.36288428E+01 -0.13778497E+01 -0.13778497E+01 -0.13778497E+01
+ 0.36923475E+01 -0.13541520E+01 -0.13541520E+01 -0.13541520E+01
+ 0.37569636E+01 -0.13308620E+01 -0.13308620E+01 -0.13308620E+01
+ 0.38227105E+01 -0.13079724E+01 -0.13079724E+01 -0.13079724E+01
+ 0.38896079E+01 -0.12854766E+01 -0.12854766E+01 -0.12854766E+01
+ 0.39576760E+01 -0.12633677E+01 -0.12633677E+01 -0.12633677E+01
+ 0.40269354E+01 -0.12416390E+01 -0.12416390E+01 -0.12416390E+01
+ 0.40974067E+01 -0.12202840E+01 -0.12202840E+01 -0.12202840E+01
+ 0.41691113E+01 -0.11992963E+01 -0.11992963E+01 -0.11992963E+01
+ 0.42420708E+01 -0.11786696E+01 -0.11786696E+01 -0.11786696E+01
+ 0.43163070E+01 -0.11583976E+01 -0.11583976E+01 -0.11583976E+01
+ 0.43918424E+01 -0.11384743E+01 -0.11384743E+01 -0.11384743E+01
+ 0.44686996E+01 -0.11188937E+01 -0.11188937E+01 -0.11188937E+01
+ 0.45469019E+01 -0.10996498E+01 -0.10996498E+01 -0.10996498E+01
+ 0.46264727E+01 -0.10807369E+01 -0.10807369E+01 -0.10807369E+01
+ 0.47074359E+01 -0.10621493E+01 -0.10621493E+01 -0.10621493E+01
+ 0.47898161E+01 -0.10438814E+01 -0.10438814E+01 -0.10438814E+01
+ 0.48736378E+01 -0.10259277E+01 -0.10259277E+01 -0.10259277E+01
+ 0.49589265E+01 -0.10082827E+01 -0.10082827E+01 -0.10082827E+01
+ 0.50457077E+01 -0.99094124E+00 -0.99094124E+00 -0.99094124E+00
+ 0.51340076E+01 -0.97389802E+00 -0.97389802E+00 -0.97389802E+00
+ 0.52238527E+01 -0.95714793E+00 -0.95714793E+00 -0.95714793E+00
+ 0.53152702E+01 -0.94068593E+00 -0.94068593E+00 -0.94068593E+00
+ 0.54082874E+01 -0.92450706E+00 -0.92450706E+00 -0.92450706E+00
+ 0.55029324E+01 -0.90860644E+00 -0.90860644E+00 -0.90860644E+00
+ 0.55992337E+01 -0.89297931E+00 -0.89297931E+00 -0.89297931E+00
+ 0.56972203E+01 -0.87762094E+00 -0.87762094E+00 -0.87762094E+00
+ 0.57969217E+01 -0.86252672E+00 -0.86252672E+00 -0.86252672E+00
+ 0.58983678E+01 -0.84769211E+00 -0.84769211E+00 -0.84769211E+00
+ 0.60015893E+01 -0.83311264E+00 -0.83311264E+00 -0.83311264E+00
+ 0.61066171E+01 -0.81878392E+00 -0.81878392E+00 -0.81878392E+00
+ 0.62134829E+01 -0.80470164E+00 -0.80470164E+00 -0.80470164E+00
+ 0.63222188E+01 -0.79086156E+00 -0.79086156E+00 -0.79086156E+00
+ 0.64328576E+01 -0.77725952E+00 -0.77725952E+00 -0.77725952E+00
+ 0.65454327E+01 -0.76389142E+00 -0.76389142E+00 -0.76389142E+00
+ 0.66599777E+01 -0.75075324E+00 -0.75075324E+00 -0.75075324E+00
+ 0.67765273E+01 -0.73784102E+00 -0.73784102E+00 -0.73784102E+00
+ 0.68951166E+01 -0.72515088E+00 -0.72515088E+00 -0.72515088E+00
+ 0.70157811E+01 -0.71267900E+00 -0.71267900E+00 -0.71267900E+00
+ 0.71385573E+01 -0.70042162E+00 -0.70042162E+00 -0.70042162E+00
+ 0.72634820E+01 -0.68837506E+00 -0.68837506E+00 -0.68837506E+00
+ 0.73905930E+01 -0.67653569E+00 -0.67653569E+00 -0.67653569E+00
+ 0.75199283E+01 -0.66489994E+00 -0.66489994E+00 -0.66489994E+00
+ 0.76515271E+01 -0.65346431E+00 -0.65346431E+00 -0.65346431E+00
+ 0.77854288E+01 -0.64222537E+00 -0.64222537E+00 -0.64222537E+00
+ 0.79216738E+01 -0.63117973E+00 -0.63117973E+00 -0.63117973E+00
+ 0.80603031E+01 -0.62032405E+00 -0.62032405E+00 -0.62032405E+00
+ 0.82013584E+01 -0.60965509E+00 -0.60965509E+00 -0.60965509E+00
+ 0.83448822E+01 -0.59916962E+00 -0.59916962E+00 -0.59916962E+00
+ 0.84909176E+01 -0.58886450E+00 -0.58886450E+00 -0.58886450E+00
+ 0.86395087E+01 -0.57873660E+00 -0.57873660E+00 -0.57873660E+00
+ 0.87907001E+01 -0.56878290E+00 -0.56878290E+00 -0.56878290E+00
+ 0.89445373E+01 -0.55900040E+00 -0.55900040E+00 -0.55900040E+00
+ 0.91010667E+01 -0.54938614E+00 -0.54938614E+00 -0.54938614E+00
+ 0.92603354E+01 -0.53993724E+00 -0.53993724E+00 -0.53993724E+00
+ 0.94223913E+01 -0.53065085E+00 -0.53065085E+00 -0.53065085E+00
+ 0.95872831E+01 -0.52152418E+00 -0.52152418E+00 -0.52152418E+00
+ 0.97550606E+01 -0.51255447E+00 -0.51255447E+00 -0.51255447E+00
+ 0.99257741E+01 -0.50373904E+00 -0.50373904E+00 -0.50373904E+00
+ 0.10099475E+02 -0.49507522E+00 -0.49507522E+00 -0.49507522E+00
+ 0.10276216E+02 -0.48656042E+00 -0.48656042E+00 -0.48656042E+00
+ 0.10456050E+02 -0.47819206E+00 -0.47819206E+00 -0.47819206E+00
+ 0.10639031E+02 -0.46996762E+00 -0.46996762E+00 -0.46996762E+00
+ 0.10825214E+02 -0.46188464E+00 -0.46188464E+00 -0.46188464E+00
+ 0.11014655E+02 -0.45394068E+00 -0.45394068E+00 -0.45394068E+00
+ 0.11207411E+02 -0.44613335E+00 -0.44613335E+00 -0.44613335E+00
+ 0.11403541E+02 -0.43846029E+00 -0.43846029E+00 -0.43846029E+00
+ 0.11603103E+02 -0.43091921E+00 -0.43091921E+00 -0.43091921E+00
+ 0.11806157E+02 -0.42350782E+00 -0.42350782E+00 -0.42350782E+00
+ 0.12012765E+02 -0.41622390E+00 -0.41622390E+00 -0.41622390E+00
+ 0.12222988E+02 -0.40906526E+00 -0.40906526E+00 -0.40906526E+00
+ 0.12436891E+02 -0.40202974E+00 -0.40202974E+00 -0.40202974E+00
+ 0.12654536E+02 -0.39511522E+00 -0.39511522E+00 -0.39511522E+00
+ 0.12875991E+02 -0.38831963E+00 -0.38831963E+00 -0.38831963E+00
+ 0.13101321E+02 -0.38164092E+00 -0.38164092E+00 -0.38164092E+00
+ 0.13330594E+02 -0.37507707E+00 -0.37507707E+00 -0.37507707E+00
+ 0.13563879E+02 -0.36862611E+00 -0.36862611E+00 -0.36862611E+00
+ 0.13801247E+02 -0.36228610E+00 -0.36228610E+00 -0.36228610E+00
+ 0.14042769E+02 -0.35605514E+00 -0.35605514E+00 -0.35605514E+00
+ 0.14288517E+02 -0.34993134E+00 -0.34993134E+00 -0.34993134E+00
+ 0.14538566E+02 -0.34391286E+00 -0.34391286E+00 -0.34391286E+00
+ 0.14792991E+02 -0.33799790E+00 -0.33799790E+00 -0.33799790E+00
+ 0.15051869E+02 -0.33218467E+00 -0.33218467E+00 -0.33218467E+00
+ 0.15315276E+02 -0.32647142E+00 -0.32647142E+00 -0.32647142E+00
+ 0.15583294E+02 -0.32085643E+00 -0.32085643E+00 -0.32085643E+00
+ 0.15856001E+02 -0.31533802E+00 -0.31533802E+00 -0.31533802E+00
+ 0.16133481E+02 -0.30991451E+00 -0.30991451E+00 -0.30991451E+00
+ 0.16415817E+02 -0.30458429E+00 -0.30458429E+00 -0.30458429E+00
+ 0.16703094E+02 -0.29934574E+00 -0.29934574E+00 -0.29934574E+00
+ 0.16995398E+02 -0.29419729E+00 -0.29419729E+00 -0.29419729E+00
+ 0.17292818E+02 -0.28913738E+00 -0.28913738E+00 -0.28913738E+00
+ 0.17595442E+02 -0.28416450E+00 -0.28416450E+00 -0.28416450E+00
+ 0.17903362E+02 -0.27927715E+00 -0.27927715E+00 -0.27927715E+00
+ 0.18216671E+02 -0.27447386E+00 -0.27447386E+00 -0.27447386E+00
+ 0.18535463E+02 -0.26975318E+00 -0.26975318E+00 -0.26975318E+00
+ 0.18859833E+02 -0.26511369E+00 -0.26511369E+00 -0.26511369E+00
+ 0.19189880E+02 -0.26055399E+00 -0.26055399E+00 -0.26055399E+00
+ 0.19525703E+02 -0.25607272E+00 -0.25607272E+00 -0.25607272E+00
+ 0.19867403E+02 -0.25166852E+00 -0.25166852E+00 -0.25166852E+00
+ 0.20215083E+02 -0.24734007E+00 -0.24734007E+00 -0.24734007E+00
+ 0.20568847E+02 -0.24308607E+00 -0.24308607E+00 -0.24308607E+00
+ 0.20928801E+02 -0.23890522E+00 -0.23890522E+00 -0.23890522E+00
+ 0.21295055E+02 -0.23479629E+00 -0.23479629E+00 -0.23479629E+00
+ 0.21667719E+02 -0.23075802E+00 -0.23075802E+00 -0.23075802E+00
+ 0.22046904E+02 -0.22678921E+00 -0.22678921E+00 -0.22678921E+00
+ 0.22432725E+02 -0.22288866E+00 -0.22288866E+00 -0.22288866E+00
+ 0.22825298E+02 -0.21905519E+00 -0.21905519E+00 -0.21905519E+00
+ 0.23224740E+02 -0.21528766E+00 -0.21528766E+00 -0.21528766E+00
+ 0.23631173E+02 -0.21158492E+00 -0.21158492E+00 -0.21158492E+00
+ 0.24044719E+02 -0.20794587E+00 -0.20794587E+00 -0.20794587E+00
+ 0.24465501E+02 -0.20436941E+00 -0.20436941E+00 -0.20436941E+00
+ 0.24893648E+02 -0.20085445E+00 -0.20085445E+00 -0.20085445E+00
+ 0.25329286E+02 -0.19739995E+00 -0.19739995E+00 -0.19739995E+00
+ 0.25772549E+02 -0.19400487E+00 -0.19400487E+00 -0.19400487E+00
+ 0.26223569E+02 -0.19066818E+00 -0.19066818E+00 -0.19066818E+00
+ 0.26682481E+02 -0.18738887E+00 -0.18738887E+00 -0.18738887E+00
+ 0.27149424E+02 -0.18416597E+00 -0.18416597E+00 -0.18416597E+00
+ 0.27624539E+02 -0.18099849E+00 -0.18099849E+00 -0.18099849E+00
+ 0.28107969E+02 -0.17788550E+00 -0.17788550E+00 -0.17788550E+00
+ 0.28599858E+02 -0.17482604E+00 -0.17482604E+00 -0.17482604E+00
+ 0.29100356E+02 -0.17181921E+00 -0.17181921E+00 -0.17181921E+00
+ 0.29609612E+02 -0.16886408E+00 -0.16886408E+00 -0.16886408E+00
+ 0.30127780E+02 -0.16595979E+00 -0.16595979E+00 -0.16595979E+00
+ 0.30655016E+02 -0.16310544E+00 -0.16310544E+00 -0.16310544E+00
+ 0.31191479E+02 -0.16030019E+00 -0.16030019E+00 -0.16030019E+00
+ 0.31737330E+02 -0.15754318E+00 -0.15754318E+00 -0.15754318E+00
+ 0.32292733E+02 -0.15483360E+00 -0.15483360E+00 -0.15483360E+00
+ 0.32857856E+02 -0.15217061E+00 -0.15217061E+00 -0.15217061E+00
+ 0.33432869E+02 -0.14955342E+00 -0.14955342E+00 -0.14955342E+00
+ 0.34017944E+02 -0.14698125E+00 -0.14698125E+00 -0.14698125E+00
+ 0.34613258E+02 -0.14445332E+00 -0.14445332E+00 -0.14445332E+00
+ 0.35218990E+02 -0.14196886E+00 -0.14196886E+00 -0.14196886E+00
+ 0.35835322E+02 -0.13952714E+00 -0.13952714E+00 -0.13952714E+00
+ 0.36462440E+02 -0.13712741E+00 -0.13712741E+00 -0.13712741E+00
+ 0.37100533E+02 -0.13476895E+00 -0.13476895E+00 -0.13476895E+00
+ 0.37749792E+02 -0.13245106E+00 -0.13245106E+00 -0.13245106E+00
+ 0.38410414E+02 -0.13017303E+00 -0.13017303E+00 -0.13017303E+00
+ 0.39082596E+02 -0.12793418E+00 -0.12793418E+00 -0.12793418E+00
+ 0.39766541E+02 -0.12573384E+00 -0.12573384E+00 -0.12573384E+00
+ 0.40462456E+02 -0.12357134E+00 -0.12357134E+00 -0.12357134E+00
+ 0.41170549E+02 -0.12144604E+00 -0.12144604E+00 -0.12144604E+00
+ 0.41891033E+02 -0.11935728E+00 -0.11935728E+00 -0.11935728E+00
+ 0.42624126E+02 -0.11730446E+00 -0.11730446E+00 -0.11730446E+00
+ 0.43370049E+02 -0.11528694E+00 -0.11528694E+00 -0.11528694E+00
+ 0.44129025E+02 -0.11330411E+00 -0.11330411E+00 -0.11330411E+00
+&END
+&WAVEFUNCTION
+ 624 CHANNELS=1
+ 0.89285714E-03 0.21195359E-03 0.95490746E-06 0.56551446E-10
+ 0.90848214E-03 0.21566277E-03 0.98862166E-06 0.59572657E-10
+ 0.92438058E-03 0.21943687E-03 0.10235262E-05 0.62755273E-10
+ 0.94055724E-03 0.22327702E-03 0.10596631E-05 0.66107918E-10
+ 0.95701699E-03 0.22718436E-03 0.10970758E-05 0.69639675E-10
+ 0.97376479E-03 0.23116009E-03 0.11358094E-05 0.73360113E-10
+ 0.99080567E-03 0.23520539E-03 0.11759106E-05 0.77279311E-10
+ 0.10081448E-02 0.23932149E-03 0.12174275E-05 0.81407890E-10
+ 0.10257873E-02 0.24350962E-03 0.12604103E-05 0.85757033E-10
+ 0.10437386E-02 0.24777104E-03 0.13049106E-05 0.90338525E-10
+ 0.10620040E-02 0.25210703E-03 0.13509821E-05 0.95164779E-10
+ 0.10805891E-02 0.25651891E-03 0.13986801E-05 0.10024887E-09
+ 0.10994994E-02 0.26100799E-03 0.14480622E-05 0.10560458E-09
+ 0.11187406E-02 0.26557564E-03 0.14991878E-05 0.11124640E-09
+ 0.11383186E-02 0.27022321E-03 0.15521184E-05 0.11718964E-09
+ 0.11582392E-02 0.27495213E-03 0.16069178E-05 0.12345039E-09
+ 0.11785083E-02 0.27976379E-03 0.16636519E-05 0.13004561E-09
+ 0.11991322E-02 0.28465967E-03 0.17223891E-05 0.13699318E-09
+ 0.12201171E-02 0.28964122E-03 0.17832000E-05 0.14431191E-09
+ 0.12414691E-02 0.29470994E-03 0.18461580E-05 0.15202164E-09
+ 0.12631948E-02 0.29986738E-03 0.19113387E-05 0.16014326E-09
+ 0.12853007E-02 0.30511506E-03 0.19788207E-05 0.16869876E-09
+ 0.13077935E-02 0.31045459E-03 0.20486852E-05 0.17771133E-09
+ 0.13306799E-02 0.31588755E-03 0.21210164E-05 0.18720539E-09
+ 0.13539668E-02 0.32141560E-03 0.21959013E-05 0.19720666E-09
+ 0.13776612E-02 0.32704038E-03 0.22734300E-05 0.20774224E-09
+ 0.14017703E-02 0.33276360E-03 0.23536960E-05 0.21884067E-09
+ 0.14263012E-02 0.33858698E-03 0.24367959E-05 0.23053203E-09
+ 0.14512615E-02 0.34451226E-03 0.25228296E-05 0.24284798E-09
+ 0.14766586E-02 0.35054125E-03 0.26119009E-05 0.25582190E-09
+ 0.15025001E-02 0.35667573E-03 0.27041169E-05 0.26948894E-09
+ 0.15287939E-02 0.36291758E-03 0.27995887E-05 0.28388612E-09
+ 0.15555478E-02 0.36926866E-03 0.28984312E-05 0.29905246E-09
+ 0.15827698E-02 0.37573088E-03 0.30007634E-05 0.31502905E-09
+ 0.16104683E-02 0.38230619E-03 0.31067085E-05 0.33185917E-09
+ 0.16386515E-02 0.38899657E-03 0.32163941E-05 0.34958842E-09
+ 0.16673279E-02 0.39580404E-03 0.33299523E-05 0.36826483E-09
+ 0.16965062E-02 0.40273064E-03 0.34475197E-05 0.38793902E-09
+ 0.17261950E-02 0.40977845E-03 0.35692379E-05 0.40866427E-09
+ 0.17564034E-02 0.41694961E-03 0.36952535E-05 0.43049675E-09
+ 0.17871405E-02 0.42424626E-03 0.38257181E-05 0.45349561E-09
+ 0.18184154E-02 0.43167060E-03 0.39607889E-05 0.47772316E-09
+ 0.18502377E-02 0.43922488E-03 0.41006285E-05 0.50324503E-09
+ 0.18826169E-02 0.44691135E-03 0.42454052E-05 0.53013038E-09
+ 0.19155627E-02 0.45473234E-03 0.43952933E-05 0.55845206E-09
+ 0.19490850E-02 0.46269020E-03 0.45504734E-05 0.58828678E-09
+ 0.19831940E-02 0.47078733E-03 0.47111321E-05 0.61971540E-09
+ 0.20178999E-02 0.47902616E-03 0.48774630E-05 0.65282305E-09
+ 0.20532131E-02 0.48740917E-03 0.50496664E-05 0.68769944E-09
+ 0.20891444E-02 0.49593888E-03 0.52279494E-05 0.72443906E-09
+ 0.21257044E-02 0.50461787E-03 0.54125269E-05 0.76314145E-09
+ 0.21629042E-02 0.51344875E-03 0.56036209E-05 0.80391147E-09
+ 0.22007551E-02 0.52243417E-03 0.58014617E-05 0.84685958E-09
+ 0.22392683E-02 0.53157684E-03 0.60062872E-05 0.89210214E-09
+ 0.22784555E-02 0.54087951E-03 0.62183443E-05 0.93976173E-09
+ 0.23183284E-02 0.55034498E-03 0.64378881E-05 0.98996748E-09
+ 0.23588992E-02 0.55997610E-03 0.66651829E-05 0.10428554E-08
+ 0.24001799E-02 0.56977577E-03 0.69005025E-05 0.10985688E-08
+ 0.24421831E-02 0.57974694E-03 0.71441302E-05 0.11572586E-08
+ 0.24849213E-02 0.58989261E-03 0.73963591E-05 0.12190839E-08
+ 0.25284074E-02 0.60021583E-03 0.76574931E-05 0.12842120E-08
+ 0.25726545E-02 0.61071972E-03 0.79278465E-05 0.13528196E-08
+ 0.26176760E-02 0.62140743E-03 0.82077447E-05 0.14250924E-08
+ 0.26634853E-02 0.63228219E-03 0.84975248E-05 0.15012263E-08
+ 0.27100963E-02 0.64334726E-03 0.87975356E-05 0.15814276E-08
+ 0.27575230E-02 0.65460597E-03 0.91081383E-05 0.16659135E-08
+ 0.28057796E-02 0.66606172E-03 0.94297068E-05 0.17549130E-08
+ 0.28548808E-02 0.67771795E-03 0.97626283E-05 0.18486671E-08
+ 0.29048412E-02 0.68957818E-03 0.10107304E-04 0.19474299E-08
+ 0.29556759E-02 0.70164596E-03 0.10464148E-04 0.20514690E-08
+ 0.30074002E-02 0.71392495E-03 0.10833590E-04 0.21610662E-08
+ 0.30600297E-02 0.72641882E-03 0.11216075E-04 0.22765184E-08
+ 0.31135803E-02 0.73913135E-03 0.11612064E-04 0.23981385E-08
+ 0.31680679E-02 0.75206636E-03 0.12022033E-04 0.25262560E-08
+ 0.32235091E-02 0.76522775E-03 0.12446476E-04 0.26612180E-08
+ 0.32799205E-02 0.77861947E-03 0.12885904E-04 0.28033901E-08
+ 0.33373191E-02 0.79224556E-03 0.13340846E-04 0.29531576E-08
+ 0.33957222E-02 0.80611011E-03 0.13811849E-04 0.31109261E-08
+ 0.34551474E-02 0.82021732E-03 0.14299480E-04 0.32771231E-08
+ 0.35156124E-02 0.83457141E-03 0.14804327E-04 0.34521989E-08
+ 0.35771356E-02 0.84917671E-03 0.15326997E-04 0.36366279E-08
+ 0.36397355E-02 0.86403763E-03 0.15868120E-04 0.38309096E-08
+ 0.37034309E-02 0.87915863E-03 0.16428347E-04 0.40355706E-08
+ 0.37682409E-02 0.89454426E-03 0.17008351E-04 0.42511651E-08
+ 0.38341851E-02 0.91019917E-03 0.17608833E-04 0.44782774E-08
+ 0.39012834E-02 0.92612805E-03 0.18230513E-04 0.47175228E-08
+ 0.39695558E-02 0.94233571E-03 0.18874141E-04 0.49695494E-08
+ 0.40390231E-02 0.95882703E-03 0.19540492E-04 0.52350400E-08
+ 0.41097060E-02 0.97560697E-03 0.20230367E-04 0.55147140E-08
+ 0.41816258E-02 0.99268058E-03 0.20944597E-04 0.58093289E-08
+ 0.42548043E-02 0.10100530E-02 0.21684042E-04 0.61196831E-08
+ 0.43292634E-02 0.10277295E-02 0.22449592E-04 0.64466173E-08
+ 0.44050255E-02 0.10457153E-02 0.23242169E-04 0.67910172E-08
+ 0.44821134E-02 0.10640160E-02 0.24062725E-04 0.71538160E-08
+ 0.45605504E-02 0.10826369E-02 0.24912250E-04 0.75359965E-08
+ 0.46403600E-02 0.11015837E-02 0.25791765E-04 0.79385941E-08
+ 0.47215663E-02 0.11208621E-02 0.26702330E-04 0.83626996E-08
+ 0.48041937E-02 0.11404780E-02 0.27645040E-04 0.88094619E-08
+ 0.48882671E-02 0.11604371E-02 0.28621030E-04 0.92800914E-08
+ 0.49738118E-02 0.11807456E-02 0.29631475E-04 0.97758631E-08
+ 0.50608535E-02 0.12014095E-02 0.30677591E-04 0.10298120E-07
+ 0.51494185E-02 0.12224351E-02 0.31760637E-04 0.10848278E-07
+ 0.52395333E-02 0.12438287E-02 0.32881916E-04 0.11427826E-07
+ 0.53312251E-02 0.12655967E-02 0.34042779E-04 0.12038334E-07
+ 0.54245215E-02 0.12877458E-02 0.35244622E-04 0.12681458E-07
+ 0.55194507E-02 0.13102824E-02 0.36488892E-04 0.13358938E-07
+ 0.56160411E-02 0.13332136E-02 0.37777086E-04 0.14072612E-07
+ 0.57143218E-02 0.13565461E-02 0.39110755E-04 0.14824410E-07
+ 0.58143224E-02 0.13802870E-02 0.40491504E-04 0.15616372E-07
+ 0.59160731E-02 0.14044434E-02 0.41920995E-04 0.16450641E-07
+ 0.60196043E-02 0.14290227E-02 0.43400947E-04 0.17329479E-07
+ 0.61249474E-02 0.14540321E-02 0.44933142E-04 0.18255266E-07
+ 0.62321340E-02 0.14794793E-02 0.46519423E-04 0.19230510E-07
+ 0.63411963E-02 0.15053719E-02 0.48161701E-04 0.20257852E-07
+ 0.64521673E-02 0.15317178E-02 0.49861950E-04 0.21340077E-07
+ 0.65650802E-02 0.15585247E-02 0.51622217E-04 0.22480116E-07
+ 0.66799691E-02 0.15858010E-02 0.53444621E-04 0.23681057E-07
+ 0.67968686E-02 0.16135546E-02 0.55331353E-04 0.24946154E-07
+ 0.69158138E-02 0.16417941E-02 0.57284685E-04 0.26278834E-07
+ 0.70368405E-02 0.16705278E-02 0.59306966E-04 0.27682706E-07
+ 0.71599852E-02 0.16997646E-02 0.61400631E-04 0.29161575E-07
+ 0.72852849E-02 0.17295131E-02 0.63568197E-04 0.30719446E-07
+ 0.74127774E-02 0.17597823E-02 0.65812273E-04 0.32360539E-07
+ 0.75425010E-02 0.17905814E-02 0.68135560E-04 0.34089300E-07
+ 0.76744948E-02 0.18219197E-02 0.70540851E-04 0.35910412E-07
+ 0.78087985E-02 0.18538065E-02 0.73031041E-04 0.37828809E-07
+ 0.79454524E-02 0.18862515E-02 0.75609126E-04 0.39849686E-07
+ 0.80844979E-02 0.19192645E-02 0.78278207E-04 0.41978519E-07
+ 0.82259766E-02 0.19528554E-02 0.81041495E-04 0.44221073E-07
+ 0.83699312E-02 0.19870344E-02 0.83902314E-04 0.46583423E-07
+ 0.85164050E-02 0.20218117E-02 0.86864105E-04 0.49071970E-07
+ 0.86654420E-02 0.20571978E-02 0.89930431E-04 0.51693452E-07
+ 0.88170873E-02 0.20932035E-02 0.93104980E-04 0.54454972E-07
+ 0.89713863E-02 0.21298394E-02 0.96391571E-04 0.57364009E-07
+ 0.91283856E-02 0.21671168E-02 0.99794156E-04 0.60428444E-07
+ 0.92881323E-02 0.22050468E-02 0.10331683E-03 0.63656576E-07
+ 0.94506746E-02 0.22436409E-02 0.10696382E-03 0.67057150E-07
+ 0.96160614E-02 0.22829106E-02 0.11073952E-03 0.70639377E-07
+ 0.97843425E-02 0.23228679E-02 0.11464848E-03 0.74412958E-07
+ 0.99555685E-02 0.23635249E-02 0.11869538E-03 0.78388116E-07
+ 0.10129791E-01 0.24048936E-02 0.12288510E-03 0.82575618E-07
+ 0.10307062E-01 0.24469867E-02 0.12722267E-03 0.86986804E-07
+ 0.10487436E-01 0.24898168E-02 0.13171331E-03 0.91633623E-07
+ 0.10670966E-01 0.25333969E-02 0.13636242E-03 0.96528660E-07
+ 0.10857708E-01 0.25777401E-02 0.14117558E-03 0.10168517E-06
+ 0.11047718E-01 0.26228597E-02 0.14615859E-03 0.10711713E-06
+ 0.11241053E-01 0.26687694E-02 0.15131743E-03 0.11283924E-06
+ 0.11437771E-01 0.27154831E-02 0.15665830E-03 0.11886700E-06
+ 0.11637932E-01 0.27630147E-02 0.16218763E-03 0.12521673E-06
+ 0.11841596E-01 0.28113788E-02 0.16791205E-03 0.13190564E-06
+ 0.12048824E-01 0.28605899E-02 0.17383846E-03 0.13895183E-06
+ 0.12259678E-01 0.29106627E-02 0.17997396E-03 0.14637439E-06
+ 0.12474223E-01 0.29616125E-02 0.18632593E-03 0.15419342E-06
+ 0.12692522E-01 0.30134547E-02 0.19290201E-03 0.16243010E-06
+ 0.12914641E-01 0.30662048E-02 0.19971009E-03 0.17110672E-06
+ 0.13140647E-01 0.31198789E-02 0.20675836E-03 0.18024679E-06
+ 0.13370608E-01 0.31744930E-02 0.21405527E-03 0.18987505E-06
+ 0.13604594E-01 0.32300638E-02 0.22160961E-03 0.20001759E-06
+ 0.13842674E-01 0.32866080E-02 0.22943043E-03 0.21070185E-06
+ 0.14084921E-01 0.33441427E-02 0.23752713E-03 0.22195677E-06
+ 0.14331407E-01 0.34026852E-02 0.24590943E-03 0.23381283E-06
+ 0.14582207E-01 0.34622533E-02 0.25458740E-03 0.24630213E-06
+ 0.14837396E-01 0.35228650E-02 0.26357146E-03 0.25945848E-06
+ 0.15097050E-01 0.35845386E-02 0.27287239E-03 0.27331751E-06
+ 0.15361248E-01 0.36472927E-02 0.28250136E-03 0.28791673E-06
+ 0.15630070E-01 0.37111463E-02 0.29246992E-03 0.30329568E-06
+ 0.15903596E-01 0.37761188E-02 0.30279005E-03 0.31949598E-06
+ 0.16181909E-01 0.38422297E-02 0.31347411E-03 0.33656149E-06
+ 0.16465093E-01 0.39094992E-02 0.32453493E-03 0.35453842E-06
+ 0.16753232E-01 0.39779474E-02 0.33598578E-03 0.37347543E-06
+ 0.17046414E-01 0.40475953E-02 0.34784040E-03 0.39342378E-06
+ 0.17344726E-01 0.41184637E-02 0.36011299E-03 0.41443746E-06
+ 0.17648258E-01 0.41905743E-02 0.37281829E-03 0.43657337E-06
+ 0.17957103E-01 0.42639488E-02 0.38597153E-03 0.45989140E-06
+ 0.18271352E-01 0.43386095E-02 0.39958846E-03 0.48445469E-06
+ 0.18591101E-01 0.44145789E-02 0.41368543E-03 0.51032970E-06
+ 0.18916445E-01 0.44918802E-02 0.42827931E-03 0.53758646E-06
+ 0.19247483E-01 0.45705366E-02 0.44338760E-03 0.56629875E-06
+ 0.19584314E-01 0.46505722E-02 0.45902839E-03 0.59654425E-06
+ 0.19927039E-01 0.47320111E-02 0.47522044E-03 0.62840483E-06
+ 0.20275763E-01 0.48148781E-02 0.49198311E-03 0.66196669E-06
+ 0.20630589E-01 0.48991983E-02 0.50933650E-03 0.69732065E-06
+ 0.20991624E-01 0.49849973E-02 0.52730137E-03 0.73456236E-06
+ 0.21358977E-01 0.50723012E-02 0.54589923E-03 0.77379259E-06
+ 0.21732759E-01 0.51611364E-02 0.56515233E-03 0.81511747E-06
+ 0.22113083E-01 0.52515300E-02 0.58508371E-03 0.85864880E-06
+ 0.22500062E-01 0.53435094E-02 0.60571721E-03 0.90450433E-06
+ 0.22893813E-01 0.54371025E-02 0.62707750E-03 0.95280812E-06
+ 0.23294454E-01 0.55323380E-02 0.64919013E-03 0.10036908E-05
+ 0.23702107E-01 0.56292446E-02 0.67208152E-03 0.10572900E-05
+ 0.24116894E-01 0.57278520E-02 0.69577904E-03 0.11137507E-05
+ 0.24538940E-01 0.58281901E-02 0.72031099E-03 0.11732256E-05
+ 0.24968371E-01 0.59302895E-02 0.74570667E-03 0.12358756E-05
+ 0.25405318E-01 0.60341813E-02 0.77199640E-03 0.13018699E-05
+ 0.25849911E-01 0.61398972E-02 0.79921157E-03 0.13713871E-05
+ 0.26302284E-01 0.62474694E-02 0.82738465E-03 0.14446151E-05
+ 0.26762574E-01 0.63569308E-02 0.85654925E-03 0.15217519E-05
+ 0.27230919E-01 0.64683147E-02 0.88674015E-03 0.16030059E-05
+ 0.27707460E-01 0.65816551E-02 0.91799335E-03 0.16885969E-05
+ 0.28192341E-01 0.66969868E-02 0.95034607E-03 0.17787562E-05
+ 0.28685707E-01 0.68143450E-02 0.98383688E-03 0.18737273E-05
+ 0.29187707E-01 0.69337655E-02 0.10185056E-02 0.19737671E-05
+ 0.29698492E-01 0.70552849E-02 0.10543936E-02 0.20791457E-05
+ 0.30218215E-01 0.71789405E-02 0.10915435E-02 0.21901479E-05
+ 0.30747034E-01 0.73047701E-02 0.11299996E-02 0.23070735E-05
+ 0.31285107E-01 0.74328122E-02 0.11698074E-02 0.24302385E-05
+ 0.31832596E-01 0.75631063E-02 0.12110144E-02 0.25599754E-05
+ 0.32389667E-01 0.76956923E-02 0.12536695E-02 0.26966347E-05
+ 0.32956486E-01 0.78306109E-02 0.12978232E-02 0.28405853E-05
+ 0.33533225E-01 0.79679036E-02 0.13435281E-02 0.29922160E-05
+ 0.34120056E-01 0.81076127E-02 0.13908383E-02 0.31519361E-05
+ 0.34717157E-01 0.82497812E-02 0.14398099E-02 0.33201768E-05
+ 0.35324707E-01 0.83944529E-02 0.14905009E-02 0.34973921E-05
+ 0.35942890E-01 0.85416723E-02 0.15429713E-02 0.36840602E-05
+ 0.36571890E-01 0.86914851E-02 0.15972833E-02 0.38806850E-05
+ 0.37211898E-01 0.88439374E-02 0.16535009E-02 0.40877967E-05
+ 0.37863107E-01 0.89990763E-02 0.17116908E-02 0.43059542E-05
+ 0.38525711E-01 0.91569500E-02 0.17719215E-02 0.45357457E-05
+ 0.39199911E-01 0.93176073E-02 0.18342642E-02 0.47777910E-05
+ 0.39885909E-01 0.94810981E-02 0.18987924E-02 0.50327426E-05
+ 0.40583913E-01 0.96474731E-02 0.19655822E-02 0.53012878E-05
+ 0.41294131E-01 0.98167840E-02 0.20347121E-02 0.55841505E-05
+ 0.42016778E-01 0.99890835E-02 0.21062636E-02 0.58820927E-05
+ 0.42752072E-01 0.10164425E-01 0.21803207E-02 0.61959173E-05
+ 0.43500233E-01 0.10342864E-01 0.22569705E-02 0.65264696E-05
+ 0.44261487E-01 0.10524456E-01 0.23363029E-02 0.68746397E-05
+ 0.45036063E-01 0.10709256E-01 0.24184109E-02 0.72413652E-05
+ 0.45824195E-01 0.10897325E-01 0.25033907E-02 0.76276332E-05
+ 0.46626118E-01 0.11088719E-01 0.25913417E-02 0.80344833E-05
+ 0.47442075E-01 0.11283500E-01 0.26823669E-02 0.84630103E-05
+ 0.48272311E-01 0.11481728E-01 0.27765723E-02 0.89143668E-05
+ 0.49117077E-01 0.11683467E-01 0.28740681E-02 0.93897666E-05
+ 0.49976626E-01 0.11888779E-01 0.29749677E-02 0.98904881E-05
+ 0.50851217E-01 0.12097730E-01 0.30793887E-02 0.10417877E-04
+ 0.51741113E-01 0.12310385E-01 0.31874523E-02 0.10973350E-04
+ 0.52646582E-01 0.12526812E-01 0.32992841E-02 0.11558401E-04
+ 0.53567898E-01 0.12747080E-01 0.34150136E-02 0.12174599E-04
+ 0.54505336E-01 0.12971259E-01 0.35347750E-02 0.12823599E-04
+ 0.55459179E-01 0.13199419E-01 0.36587066E-02 0.13507144E-04
+ 0.56429715E-01 0.13431635E-01 0.37869516E-02 0.14227066E-04
+ 0.57417235E-01 0.13667981E-01 0.39196578E-02 0.14985297E-04
+ 0.58422036E-01 0.13908531E-01 0.40569779E-02 0.15783870E-04
+ 0.59444422E-01 0.14153364E-01 0.41990697E-02 0.16624924E-04
+ 0.60484699E-01 0.14402558E-01 0.43460962E-02 0.17510713E-04
+ 0.61543182E-01 0.14656193E-01 0.44982258E-02 0.18443609E-04
+ 0.62620187E-01 0.14914353E-01 0.46556324E-02 0.19426109E-04
+ 0.63716041E-01 0.15177119E-01 0.48184954E-02 0.20460842E-04
+ 0.64831071E-01 0.15444579E-01 0.49870005E-02 0.21550575E-04
+ 0.65965615E-01 0.15716819E-01 0.51613389E-02 0.22698221E-04
+ 0.67120013E-01 0.15993928E-01 0.53417085E-02 0.23906847E-04
+ 0.68294614E-01 0.16275996E-01 0.55283133E-02 0.25179680E-04
+ 0.69489769E-01 0.16563117E-01 0.57213639E-02 0.26520118E-04
+ 0.70705840E-01 0.16855386E-01 0.59210777E-02 0.27931736E-04
+ 0.71943192E-01 0.17152898E-01 0.61276791E-02 0.29418299E-04
+ 0.73202198E-01 0.17455752E-01 0.63413995E-02 0.30983768E-04
+ 0.74483237E-01 0.17764050E-01 0.65624779E-02 0.32632312E-04
+ 0.75786693E-01 0.18077894E-01 0.67911606E-02 0.34368319E-04
+ 0.77112961E-01 0.18397390E-01 0.70277017E-02 0.36196406E-04
+ 0.78462437E-01 0.18722644E-01 0.72723634E-02 0.38121433E-04
+ 0.79835530E-01 0.19053767E-01 0.75254158E-02 0.40148514E-04
+ 0.81232652E-01 0.19390871E-01 0.77871376E-02 0.42283028E-04
+ 0.82654223E-01 0.19734069E-01 0.80578160E-02 0.44530638E-04
+ 0.84100672E-01 0.20083481E-01 0.83377471E-02 0.46897301E-04
+ 0.85572434E-01 0.20439225E-01 0.86272358E-02 0.49389285E-04
+ 0.87069951E-01 0.20801423E-01 0.89265964E-02 0.52013185E-04
+ 0.88593676E-01 0.21170201E-01 0.92361526E-02 0.54775938E-04
+ 0.90144065E-01 0.21545688E-01 0.95562379E-02 0.57684842E-04
+ 0.91721586E-01 0.21928013E-01 0.98871955E-02 0.60747576E-04
+ 0.93326714E-01 0.22317312E-01 0.10229379E-01 0.63972214E-04
+ 0.94959931E-01 0.22713721E-01 0.10583152E-01 0.67367253E-04
+ 0.96621730E-01 0.23117381E-01 0.10948888E-01 0.70941625E-04
+ 0.98312610E-01 0.23528435E-01 0.11326973E-01 0.74704728E-04
+ 0.10003308E+00 0.23947030E-01 0.11717803E-01 0.78666444E-04
+ 0.10178366E+00 0.24373318E-01 0.12121785E-01 0.82837165E-04
+ 0.10356487E+00 0.24807452E-01 0.12539337E-01 0.87227817E-04
+ 0.10537726E+00 0.25249590E-01 0.12970890E-01 0.91849892E-04
+ 0.10722136E+00 0.25699895E-01 0.13416885E-01 0.96715468E-04
+ 0.10909774E+00 0.26158532E-01 0.13877775E-01 0.10183725E-03
+ 0.11100695E+00 0.26625670E-01 0.14354028E-01 0.10722858E-03
+ 0.11294957E+00 0.27101486E-01 0.14846120E-01 0.11290350E-03
+ 0.11492618E+00 0.27586156E-01 0.15354542E-01 0.11887676E-03
+ 0.11693739E+00 0.28079865E-01 0.15879798E-01 0.12516386E-03
+ 0.11898380E+00 0.28582800E-01 0.16422402E-01 0.13178109E-03
+ 0.12106601E+00 0.29095155E-01 0.16982883E-01 0.13874558E-03
+ 0.12318467E+00 0.29617127E-01 0.17561782E-01 0.14607531E-03
+ 0.12534040E+00 0.30148919E-01 0.18159653E-01 0.15378918E-03
+ 0.12753386E+00 0.30690740E-01 0.18777062E-01 0.16190705E-03
+ 0.12976570E+00 0.31242805E-01 0.19414589E-01 0.17044977E-03
+ 0.13203660E+00 0.31805332E-01 0.20072827E-01 0.17943924E-03
+ 0.13434724E+00 0.32378549E-01 0.20752380E-01 0.18889848E-03
+ 0.13669832E+00 0.32962687E-01 0.21453867E-01 0.19885163E-03
+ 0.13909054E+00 0.33557986E-01 0.22177918E-01 0.20932405E-03
+ 0.14152462E+00 0.34164690E-01 0.22925176E-01 0.22034238E-03
+ 0.14400130E+00 0.34783052E-01 0.23696295E-01 0.23193455E-03
+ 0.14652133E+00 0.35413332E-01 0.24491943E-01 0.24412991E-03
+ 0.14908545E+00 0.36055797E-01 0.25312797E-01 0.25695924E-03
+ 0.15169444E+00 0.36710721E-01 0.26159547E-01 0.27045483E-03
+ 0.15434910E+00 0.37378389E-01 0.27032893E-01 0.28465057E-03
+ 0.15705021E+00 0.38059090E-01 0.27933546E-01 0.29958200E-03
+ 0.15979858E+00 0.38753126E-01 0.28862224E-01 0.31528641E-03
+ 0.16259506E+00 0.39460805E-01 0.29819658E-01 0.33180288E-03
+ 0.16544047E+00 0.40182445E-01 0.30806584E-01 0.34917239E-03
+ 0.16833568E+00 0.40918376E-01 0.31823746E-01 0.36743791E-03
+ 0.17128156E+00 0.41668935E-01 0.32871895E-01 0.38664446E-03
+ 0.17427898E+00 0.42434471E-01 0.33951787E-01 0.40683922E-03
+ 0.17732887E+00 0.43215345E-01 0.35064183E-01 0.42807162E-03
+ 0.18043212E+00 0.44011927E-01 0.36209844E-01 0.45039344E-03
+ 0.18358968E+00 0.44824600E-01 0.37389537E-01 0.47385888E-03
+ 0.18680250E+00 0.45653760E-01 0.38604027E-01 0.49852472E-03
+ 0.19007155E+00 0.46499814E-01 0.39854075E-01 0.52445037E-03
+ 0.19339780E+00 0.47363185E-01 0.41140442E-01 0.55169801E-03
+ 0.19678226E+00 0.48244307E-01 0.42463883E-01 0.58033270E-03
+ 0.20022595E+00 0.49143629E-01 0.43825145E-01 0.61042249E-03
+ 0.20372990E+00 0.50061616E-01 0.45224964E-01 0.64203852E-03
+ 0.20729518E+00 0.50998747E-01 0.46664066E-01 0.67525518E-03
+ 0.21092284E+00 0.51955519E-01 0.48143161E-01 0.71015022E-03
+ 0.21461399E+00 0.52932443E-01 0.49662941E-01 0.74680484E-03
+ 0.21836974E+00 0.53930048E-01 0.51224079E-01 0.78530389E-03
+ 0.22219121E+00 0.54948883E-01 0.52827221E-01 0.82573593E-03
+ 0.22607955E+00 0.55989513E-01 0.54472988E-01 0.86819342E-03
+ 0.23003595E+00 0.57052524E-01 0.56161970E-01 0.91277282E-03
+ 0.23406157E+00 0.58138520E-01 0.57894719E-01 0.95957474E-03
+ 0.23815765E+00 0.59248127E-01 0.59671753E-01 0.10087041E-02
+ 0.24232541E+00 0.60381991E-01 0.61493540E-01 0.10602702E-02
+ 0.24656611E+00 0.61540782E-01 0.63360506E-01 0.11143871E-02
+ 0.25088101E+00 0.62725191E-01 0.65273019E-01 0.11711732E-02
+ 0.25527143E+00 0.63935932E-01 0.67231392E-01 0.12307522E-02
+ 0.25973868E+00 0.65173744E-01 0.69235873E-01 0.12932524E-02
+ 0.26428411E+00 0.66439390E-01 0.71286641E-01 0.13588075E-02
+ 0.26890908E+00 0.67733659E-01 0.73383801E-01 0.14275565E-02
+ 0.27361499E+00 0.69057366E-01 0.75527376E-01 0.14996435E-02
+ 0.27840325E+00 0.70411351E-01 0.77717303E-01 0.15752186E-02
+ 0.28327531E+00 0.71796482E-01 0.79953425E-01 0.16544371E-02
+ 0.28823263E+00 0.73213655E-01 0.82235484E-01 0.17374606E-02
+ 0.29327670E+00 0.74663792E-01 0.84563117E-01 0.18244561E-02
+ 0.29840904E+00 0.76147845E-01 0.86935846E-01 0.19155972E-02
+ 0.30363120E+00 0.77666792E-01 0.89353072E-01 0.20110631E-02
+ 0.30894474E+00 0.79221642E-01 0.91814071E-01 0.21110398E-02
+ 0.31435128E+00 0.80813429E-01 0.94317983E-01 0.22157192E-02
+ 0.31985242E+00 0.82443217E-01 0.96863806E-01 0.23252998E-02
+ 0.32544984E+00 0.84112097E-01 0.99450390E-01 0.24399868E-02
+ 0.33114521E+00 0.85821184E-01 0.10207643E+00 0.25599916E-02
+ 0.33694025E+00 0.87571621E-01 0.10474047E+00 0.26855327E-02
+ 0.34283671E+00 0.89364574E-01 0.10744086E+00 0.28168349E-02
+ 0.34883635E+00 0.91201230E-01 0.11017581E+00 0.29541300E-02
+ 0.35494099E+00 0.93082797E-01 0.11294334E+00 0.30976563E-02
+ 0.36115245E+00 0.95010500E-01 0.11574128E+00 0.32476591E-02
+ 0.36747262E+00 0.96985578E-01 0.11856727E+00 0.34043903E-02
+ 0.37390339E+00 0.99009280E-01 0.12141879E+00 0.35681087E-02
+ 0.38044670E+00 0.10108286E+00 0.12429311E+00 0.37390796E-02
+ 0.38710452E+00 0.10320757E+00 0.12718729E+00 0.39175753E-02
+ 0.39387885E+00 0.10538466E+00 0.13009824E+00 0.41038746E-02
+ 0.40077173E+00 0.10761537E+00 0.13302265E+00 0.42982629E-02
+ 0.40778523E+00 0.10990090E+00 0.13595705E+00 0.45010324E-02
+ 0.41492147E+00 0.11224245E+00 0.13889775E+00 0.47124815E-02
+ 0.42218260E+00 0.11464115E+00 0.14184093E+00 0.49329154E-02
+ 0.42957080E+00 0.11709809E+00 0.14478258E+00 0.51626456E-02
+ 0.43708829E+00 0.11961429E+00 0.14771854E+00 0.54019902E-02
+ 0.44473733E+00 0.12219069E+00 0.15064452E+00 0.56512736E-02
+ 0.45252023E+00 0.12482813E+00 0.15355609E+00 0.59108267E-02
+ 0.46043934E+00 0.12752733E+00 0.15644871E+00 0.61809871E-02
+ 0.46849703E+00 0.13028887E+00 0.15931777E+00 0.64620987E-02
+ 0.47669572E+00 0.13311317E+00 0.16215858E+00 0.67545126E-02
+ 0.48503790E+00 0.13600047E+00 0.16496640E+00 0.70585865E-02
+ 0.49352606E+00 0.13895078E+00 0.16773650E+00 0.73746858E-02
+ 0.50216277E+00 0.14196388E+00 0.17046414E+00 0.77031833E-02
+ 0.51095062E+00 0.14503925E+00 0.17314465E+00 0.80444600E-02
+ 0.51989225E+00 0.14817609E+00 0.17577341E+00 0.83989058E-02
+ 0.52899037E+00 0.15137323E+00 0.17834594E+00 0.87669200E-02
+ 0.53824770E+00 0.15462912E+00 0.18085790E+00 0.91489121E-02
+ 0.54766703E+00 0.15794178E+00 0.18330514E+00 0.95453033E-02
+ 0.55725121E+00 0.16130877E+00 0.18568372E+00 0.99565271E-02
+ 0.56700310E+00 0.16472711E+00 0.18798998E+00 0.10383031E-01
+ 0.57692566E+00 0.16819330E+00 0.19022056E+00 0.10825279E-01
+ 0.58702186E+00 0.17170322E+00 0.19237241E+00 0.11283750E-01
+ 0.59729474E+00 0.17525211E+00 0.19444287E+00 0.11758946E-01
+ 0.60774740E+00 0.17883452E+00 0.19642967E+00 0.12251388E-01
+ 0.61838298E+00 0.18244431E+00 0.19833096E+00 0.12761621E-01
+ 0.62920468E+00 0.18607458E+00 0.20014534E+00 0.13290220E-01
+ 0.64021576E+00 0.18971763E+00 0.20187188E+00 0.13837786E-01
+ 0.65141954E+00 0.19336502E+00 0.20351011E+00 0.14404956E-01
+ 0.66281938E+00 0.19700749E+00 0.20506005E+00 0.14992402E-01
+ 0.67441872E+00 0.20063499E+00 0.20652217E+00 0.15600837E-01
+ 0.68622104E+00 0.20423671E+00 0.20789741E+00 0.16231016E-01
+ 0.69822991E+00 0.20780112E+00 0.20918717E+00 0.16883744E-01
+ 0.71044894E+00 0.21131601E+00 0.21039320E+00 0.17559874E-01
+ 0.72288179E+00 0.21476861E+00 0.21151764E+00 0.18260316E-01
+ 0.73553222E+00 0.21814561E+00 0.21256292E+00 0.18986036E-01
+ 0.74840404E+00 0.22143337E+00 0.21353171E+00 0.19738062E-01
+ 0.76150111E+00 0.22461802E+00 0.21442683E+00 0.20517487E-01
+ 0.77482738E+00 0.22768564E+00 0.21525116E+00 0.21325468E-01
+ 0.78838686E+00 0.23062244E+00 0.21600756E+00 0.22163233E-01
+ 0.80218363E+00 0.23341500E+00 0.21669876E+00 0.23032076E-01
+ 0.81622184E+00 0.23605044E+00 0.21732723E+00 0.23933363E-01
+ 0.83050572E+00 0.23851672E+00 0.21789510E+00 0.24868526E-01
+ 0.84503957E+00 0.24080279E+00 0.21840402E+00 0.25839065E-01
+ 0.85982776E+00 0.24289886E+00 0.21885507E+00 0.26846543E-01
+ 0.87487475E+00 0.24479662E+00 0.21924866E+00 0.27892585E-01
+ 0.89018506E+00 0.24648933E+00 0.21958447E+00 0.28978874E-01
+ 0.90576330E+00 0.24797202E+00 0.21986135E+00 0.30107143E-01
+ 0.92161415E+00 0.24924152E+00 0.22007737E+00 0.31279176E-01
+ 0.93774240E+00 0.25029644E+00 0.22022979E+00 0.32496802E-01
+ 0.95415289E+00 0.25113710E+00 0.22031519E+00 0.33761897E-01
+ 0.97085057E+00 0.25176537E+00 0.22032954E+00 0.35076380E-01
+ 0.98784045E+00 0.25218433E+00 0.22026845E+00 0.36442226E-01
+ 0.10051277E+01 0.25239799E+00 0.22012739E+00 0.37861473E-01
+ 0.10227174E+01 0.25241083E+00 0.21990200E+00 0.39336237E-01
+ 0.10406150E+01 0.25222734E+00 0.21958842E+00 0.40868740E-01
+ 0.10588257E+01 0.25185158E+00 0.21918364E+00 0.42461332E-01
+ 0.10773552E+01 0.25128688E+00 0.21868565E+00 0.44116524E-01
+ 0.10962089E+01 0.25053573E+00 0.21809357E+00 0.45837011E-01
+ 0.11153925E+01 0.24960012E+00 0.21740738E+00 0.47625672E-01
+ 0.11349119E+01 0.24848207E+00 0.21662741E+00 0.49485560E-01
+ 0.11547729E+01 0.24718403E+00 0.21575411E+00 0.51419893E-01
+ 0.11749814E+01 0.24570873E+00 0.21478804E+00 0.53432061E-01
+ 0.11955436E+01 0.24405923E+00 0.21372993E+00 0.55525645E-01
+ 0.12164656E+01 0.24223890E+00 0.21258062E+00 0.57704422E-01
+ 0.12377537E+01 0.24025141E+00 0.21134107E+00 0.59972379E-01
+ 0.12594144E+01 0.23810075E+00 0.21001240E+00 0.62333728E-01
+ 0.12814542E+01 0.23579116E+00 0.20859583E+00 0.64792917E-01
+ 0.13038796E+01 0.23332719E+00 0.20709268E+00 0.67354648E-01
+ 0.13266975E+01 0.23071363E+00 0.20550443E+00 0.70023892E-01
+ 0.13499147E+01 0.22795552E+00 0.20383264E+00 0.72805903E-01
+ 0.13735382E+01 0.22505816E+00 0.20207900E+00 0.75706243E-01
+ 0.13975751E+01 0.22202705E+00 0.20024531E+00 0.78730794E-01
+ 0.14220327E+01 0.21886790E+00 0.19833344E+00 0.81885785E-01
+ 0.14469183E+01 0.21558664E+00 0.19634541E+00 0.85177814E-01
+ 0.14722393E+01 0.21218934E+00 0.19428330E+00 0.88613868E-01
+ 0.14980035E+01 0.20868227E+00 0.19214929E+00 0.92201353E-01
+ 0.15242186E+01 0.20507182E+00 0.18994566E+00 0.95948121E-01
+ 0.15508924E+01 0.20136452E+00 0.18767477E+00 0.99862501E-01
+ 0.15780330E+01 0.19756703E+00 0.18533904E+00 0.10395333E+00
+ 0.16056486E+01 0.19368607E+00 0.18294098E+00 0.10822999E+00
+ 0.16337475E+01 0.18972848E+00 0.18048319E+00 0.11270244E+00
+ 0.16623380E+01 0.18570114E+00 0.17796832E+00 0.11738126E+00
+ 0.16914290E+01 0.18161098E+00 0.17539906E+00 0.12227771E+00
+ 0.17210290E+01 0.17746496E+00 0.17277820E+00 0.12740375E+00
+ 0.17511470E+01 0.17327007E+00 0.17010856E+00 0.13277211E+00
+ 0.17817920E+01 0.16903326E+00 0.16739300E+00 0.13839633E+00
+ 0.18129734E+01 0.16476149E+00 0.16463446E+00 0.14429083E+00
+ 0.18447004E+01 0.16046166E+00 0.16183588E+00 0.15047099E+00
+ 0.18769827E+01 0.15614062E+00 0.15900026E+00 0.15695319E+00
+ 0.19098299E+01 0.15180515E+00 0.15613062E+00 0.16375489E+00
+ 0.19432519E+01 0.14746194E+00 0.15323001E+00 0.17089474E+00
+ 0.19772588E+01 0.14311759E+00 0.15030148E+00 0.17839262E+00
+ 0.20118609E+01 0.13877855E+00 0.14734813E+00 0.18626980E+00
+ 0.20470684E+01 0.13445116E+00 0.14437302E+00 0.19454897E+00
+ 0.20828921E+01 0.13014159E+00 0.14137927E+00 0.20325439E+00
+ 0.21193427E+01 0.12585587E+00 0.13836994E+00 0.21241203E+00
+ 0.21564312E+01 0.12159983E+00 0.13534812E+00 0.22204966E+00
+ 0.21941688E+01 0.11737911E+00 0.13231687E+00 0.23219701E+00
+ 0.22325667E+01 0.11319916E+00 0.12927922E+00 0.24288591E+00
+ 0.22716367E+01 0.10906519E+00 0.12623818E+00 0.25415047E+00
+ 0.23113903E+01 0.10498221E+00 0.12319673E+00 0.26602727E+00
+ 0.23518396E+01 0.10095496E+00 0.12015780E+00 0.27855552E+00
+ 0.23929968E+01 0.96987952E-01 0.11712427E+00 0.29177728E+00
+ 0.24348743E+01 0.93085441E-01 0.11409897E+00 0.30573772E+00
+ 0.24774846E+01 0.89251413E-01 0.11108468E+00 0.32048531E+00
+ 0.25208405E+01 0.85489584E-01 0.10808409E+00 0.33607213E+00
+ 0.25649552E+01 0.81803396E-01 0.10509984E+00 0.35255418E+00
+ 0.26098420E+01 0.78196013E-01 0.10213448E+00 0.36999163E+00
+ 0.26555142E+01 0.74670315E-01 0.99190480E-01 0.38844923E+00
+ 0.27019857E+01 0.71228901E-01 0.96270235E-01 0.40799669E+00
+ 0.27492704E+01 0.67874086E-01 0.93376040E-01 0.42870902E+00
+ 0.27973827E+01 0.64607903E-01 0.90510101E-01 0.00000000E+00
+ 0.28463369E+01 0.61432106E-01 0.87674531E-01 0.00000000E+00
+ 0.28961478E+01 0.58348172E-01 0.84871342E-01 0.00000000E+00
+ 0.29468304E+01 0.55357307E-01 0.82102454E-01 0.00000000E+00
+ 0.29983999E+01 0.52460452E-01 0.79369684E-01 0.00000000E+00
+ 0.30508719E+01 0.49658287E-01 0.76674754E-01 0.00000000E+00
+ 0.31042621E+01 0.46951240E-01 0.74019285E-01 0.00000000E+00
+ 0.31585867E+01 0.44339499E-01 0.71404805E-01 0.00000000E+00
+ 0.32138620E+01 0.41823013E-01 0.68832742E-01 0.00000000E+00
+ 0.32701046E+01 0.39401509E-01 0.66304434E-01 0.00000000E+00
+ 0.33273314E+01 0.37074498E-01 0.63821125E-01 0.00000000E+00
+ 0.33855597E+01 0.34841286E-01 0.61383970E-01 0.00000000E+00
+ 0.34448070E+01 0.32700985E-01 0.58994038E-01 0.00000000E+00
+ 0.35050911E+01 0.30652525E-01 0.56652311E-01 0.00000000E+00
+ 0.35664302E+01 0.28694665E-01 0.54359692E-01 0.00000000E+00
+ 0.36288428E+01 0.26826001E-01 0.52117001E-01 0.00000000E+00
+ 0.36923475E+01 0.25044983E-01 0.49924982E-01 0.00000000E+00
+ 0.37569636E+01 0.23349920E-01 0.47784304E-01 0.00000000E+00
+ 0.38227105E+01 0.21738998E-01 0.45695560E-01 0.00000000E+00
+ 0.38896079E+01 0.20210282E-01 0.43659272E-01 0.00000000E+00
+ 0.39576760E+01 0.18761737E-01 0.41675892E-01 0.00000000E+00
+ 0.40269354E+01 0.17391232E-01 0.39745799E-01 0.00000000E+00
+ 0.40974067E+01 0.16096552E-01 0.37869306E-01 0.00000000E+00
+ 0.41691113E+01 0.14875410E-01 0.36046654E-01 0.00000000E+00
+ 0.42420708E+01 0.13725455E-01 0.34278015E-01 0.00000000E+00
+ 0.43163070E+01 0.12644285E-01 0.32563492E-01 0.00000000E+00
+ 0.43918424E+01 0.11629453E-01 0.30903119E-01 0.00000000E+00
+ 0.44686996E+01 0.10678478E-01 0.29296857E-01 0.00000000E+00
+ 0.45469019E+01 0.97888565E-02 0.27744598E-01 0.00000000E+00
+ 0.46264727E+01 0.89580687E-02 0.26246162E-01 0.00000000E+00
+ 0.47074359E+01 0.81835884E-02 0.24801295E-01 0.00000000E+00
+ 0.47898161E+01 0.74628918E-02 0.23409672E-01 0.00000000E+00
+ 0.48736378E+01 0.67934652E-02 0.22070895E-01 0.00000000E+00
+ 0.49589265E+01 0.61728135E-02 0.20784490E-01 0.00000000E+00
+ 0.50457077E+01 0.55984675E-02 0.19549914E-01 0.00000000E+00
+ 0.51340076E+01 0.50679913E-02 0.18366549E-01 0.00000000E+00
+ 0.52238527E+01 0.45789890E-02 0.17233709E-01 0.00000000E+00
+ 0.53152702E+01 0.41291115E-02 0.16150635E-01 0.00000000E+00
+ 0.54082874E+01 0.37160621E-02 0.15116502E-01 0.00000000E+00
+ 0.55029324E+01 0.33376026E-02 0.14130420E-01 0.00000000E+00
+ 0.55992337E+01 0.29915577E-02 0.13191437E-01 0.00000000E+00
+ 0.56972203E+01 0.26758199E-02 0.12298539E-01 0.00000000E+00
+ 0.57969217E+01 0.23883533E-02 0.11450659E-01 0.00000000E+00
+ 0.58983678E+01 0.21271973E-02 0.10646677E-01 0.00000000E+00
+ 0.60015893E+01 0.18904693E-02 0.98854242E-02 0.00000000E+00
+ 0.61066171E+01 0.16763667E-02 0.91656906E-02 0.00000000E+00
+ 0.62134829E+01 0.14831692E-02 0.84862267E-02 0.00000000E+00
+ 0.63222188E+01 0.13092397E-02 0.78457495E-02 0.00000000E+00
+ 0.64328576E+01 0.11530250E-02 0.72429480E-02 0.00000000E+00
+ 0.65454327E+01 0.10130559E-02 0.66764875E-02 0.00000000E+00
+ 0.66599777E+01 0.88794689E-03 0.61450155E-02 0.00000000E+00
+ 0.67765273E+01 0.77639559E-03 0.56471663E-02 0.00000000E+00
+ 0.68951166E+01 0.67718116E-03 0.51815667E-02 0.00000000E+00
+ 0.70157811E+01 0.58916294E-03 0.47468405E-02 0.00000000E+00
+ 0.71385573E+01 0.51127836E-03 0.43416136E-02 0.00000000E+00
+ 0.72634820E+01 0.44254074E-03 0.39645185E-02 0.00000000E+00
+ 0.73905930E+01 0.38203666E-03 0.36141994E-02 0.00000000E+00
+ 0.75199283E+01 0.32892322E-03 0.32893158E-02 0.00000000E+00
+ 0.76515271E+01 0.28242502E-03 0.29885466E-02 0.00000000E+00
+ 0.77854288E+01 0.24183105E-03 0.27105944E-02 0.00000000E+00
+ 0.79216738E+01 0.20649139E-03 0.24541883E-02 0.00000000E+00
+ 0.80603031E+01 0.17581389E-03 0.22180873E-02 0.00000000E+00
+ 0.82013584E+01 0.14926082E-03 0.20010832E-02 0.00000000E+00
+ 0.83448822E+01 0.12634541E-03 0.18020031E-02 0.00000000E+00
+ 0.84909176E+01 0.10662851E-03 0.16197114E-02 0.00000000E+00
+ 0.86395087E+01 0.89715267E-04 0.14531120E-02 0.00000000E+00
+ 0.87907001E+01 0.75251798E-04 0.13011494E-02 0.00000000E+00
+ 0.89445373E+01 0.62922062E-04 0.11628107E-02 0.00000000E+00
+ 0.91010667E+01 0.52444766E-04 0.10371256E-02 0.00000000E+00
+ 0.92603354E+01 0.43570410E-04 0.92316789E-03 0.00000000E+00
+ 0.94223913E+01 0.36078472E-04 0.82005549E-03 0.00000000E+00
+ 0.95872831E+01 0.29774733E-04 0.72695061E-03 0.00000000E+00
+ 0.97550606E+01 0.24488753E-04 0.64305965E-03 0.00000000E+00
+ 0.99257741E+01 0.20071500E-04 0.56763291E-03 0.00000000E+00
+ 0.10099475E+02 0.16393142E-04 0.49996403E-03 0.00000000E+00
+ 0.10276216E+02 0.13340992E-04 0.43938925E-03 0.00000000E+00
+ 0.10456050E+02 0.10817614E-04 0.38528650E-03 0.00000000E+00
+ 0.10639031E+02 0.87390761E-05 0.33707435E-03 0.00000000E+00
+ 0.10825214E+02 0.70333640E-05 0.29421081E-03 0.00000000E+00
+ 0.11014655E+02 0.56389265E-05 0.25619201E-03 0.00000000E+00
+ 0.11207411E+02 0.45033654E-05 0.22255078E-03 0.00000000E+00
+ 0.11403541E+02 0.35822540E-05 0.19285518E-03 0.00000000E+00
+ 0.11603103E+02 0.28380780E-05 0.16670690E-03 0.00000000E+00
+ 0.11806157E+02 0.22392911E-05 0.14373970E-03 0.00000000E+00
+ 0.12012765E+02 0.17594771E-05 0.12361771E-03 0.00000000E+00
+ 0.12222988E+02 0.13766084E-05 0.10603372E-03 0.00000000E+00
+ 0.12436891E+02 0.10724040E-05 0.90708266E-04 0.00000000E+00
+ 0.12654536E+02 0.83173204E-06 0.77385073E-04 0.00000000E+00
+ 0.12875991E+02 0.64217912E-06 0.65835831E-04 0.00000000E+00
+ 0.13101321E+02 0.49358014E-06 0.55854510E-04 0.00000000E+00
+ 0.13330594E+02 0.37762308E-06 0.47252909E-04 0.00000000E+00
+ 0.13563879E+02 0.28755683E-06 0.39861296E-04 0.00000000E+00
+ 0.13801247E+02 0.21793023E-06 0.33527768E-04 0.00000000E+00
+ 0.14042769E+02 0.16436282E-06 0.28116784E-04 0.00000000E+00
+ 0.14288517E+02 0.12335169E-06 0.23507770E-04 0.00000000E+00
+ 0.14538566E+02 0.92109489E-07 0.19593795E-04 0.00000000E+00
+ 0.14792991E+02 0.68429471E-07 0.16280331E-04 0.00000000E+00
+ 0.15051869E+02 0.50573447E-07 0.13484073E-04 0.00000000E+00
+ 0.15315276E+02 0.37179439E-07 0.11131851E-04 0.00000000E+00
+ 0.15583294E+02 0.27185894E-07 0.91596053E-05 0.00000000E+00
+ 0.15856001E+02 0.19769865E-07 0.75114420E-05 0.00000000E+00
+ 0.16133481E+02 0.14296869E-07 0.61387568E-05 0.00000000E+00
+ 0.16415817E+02 0.10280464E-07 0.49994312E-05 0.00000000E+00
+ 0.16703094E+02 0.00000000E+00 0.40570952E-05 0.00000000E+00
+ 0.16995398E+02 0.00000000E+00 0.32804560E-05 0.00000000E+00
+ 0.17292818E+02 0.00000000E+00 0.26426816E-05 0.00000000E+00
+ 0.17595442E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.17903362E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.18216671E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.18535463E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.18859833E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.19189880E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.19525703E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.19867403E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.20215083E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.20568847E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.20928801E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.21295055E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.21667719E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.22046904E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.22432725E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.22825298E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.23224740E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.23631173E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.24044719E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.24465501E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.24893648E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.25329286E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.25772549E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.26223569E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.26682481E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.27149424E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.27624539E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.28107969E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.28599858E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.29100356E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.29609612E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.30127780E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.30655016E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.31191479E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.31737330E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.32292733E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.32857856E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.33432869E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.34017944E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.34613258E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.35218990E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.35835322E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.36462440E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.37100533E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.37749792E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.38410414E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.39082596E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.39766541E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.40462456E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.41170549E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.41891033E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.42624126E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.43370049E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+ 0.44129025E+02 0.00000000E+00 0.00000000E+00 0.00000000E+00
+&END
+&ATDENS
+ 624
+ 0.89285714E-03 0.14138289E+06
+ 0.90848214E-03 0.13656156E+06
+ 0.92438058E-03 0.13190465E+06
+ 0.94055724E-03 0.12740656E+06
+ 0.95701699E-03 0.12306186E+06
+ 0.97376479E-03 0.11886532E+06
+ 0.99080567E-03 0.11481190E+06
+ 0.10081448E-02 0.11089670E+06
+ 0.10257873E-02 0.10711503E+06
+ 0.10437386E-02 0.10346231E+06
+ 0.10620040E-02 0.99934168E+05
+ 0.10805891E-02 0.96526339E+05
+ 0.10994994E-02 0.93234724E+05
+ 0.11187406E-02 0.90055362E+05
+ 0.11383186E-02 0.86984423E+05
+ 0.11582392E-02 0.84018210E+05
+ 0.11785083E-02 0.81153152E+05
+ 0.11991322E-02 0.78385799E+05
+ 0.12201171E-02 0.75712818E+05
+ 0.12414691E-02 0.73130993E+05
+ 0.12631948E-02 0.70637214E+05
+ 0.12853007E-02 0.68228478E+05
+ 0.13077935E-02 0.65901886E+05
+ 0.13306799E-02 0.63654635E+05
+ 0.13539668E-02 0.61484022E+05
+ 0.13776612E-02 0.59387431E+05
+ 0.14017703E-02 0.57362338E+05
+ 0.14263012E-02 0.55406306E+05
+ 0.14512615E-02 0.53516979E+05
+ 0.14766586E-02 0.51692082E+05
+ 0.15025001E-02 0.49929419E+05
+ 0.15287939E-02 0.48226866E+05
+ 0.15555478E-02 0.46582374E+05
+ 0.15827698E-02 0.44993963E+05
+ 0.16104683E-02 0.43459721E+05
+ 0.16386515E-02 0.41977799E+05
+ 0.16673279E-02 0.40546415E+05
+ 0.16965062E-02 0.39163844E+05
+ 0.17261950E-02 0.37828422E+05
+ 0.17564034E-02 0.36538541E+05
+ 0.17871405E-02 0.35292647E+05
+ 0.18184154E-02 0.34089242E+05
+ 0.18502377E-02 0.32926875E+05
+ 0.18826169E-02 0.31804148E+05
+ 0.19155627E-02 0.30719708E+05
+ 0.19490850E-02 0.29672250E+05
+ 0.19831940E-02 0.28660513E+05
+ 0.20178999E-02 0.27683278E+05
+ 0.20532131E-02 0.26739369E+05
+ 0.20891444E-02 0.25827650E+05
+ 0.21257044E-02 0.24947022E+05
+ 0.21629042E-02 0.24096426E+05
+ 0.22007551E-02 0.23274836E+05
+ 0.22392683E-02 0.22481265E+05
+ 0.22784555E-02 0.21714757E+05
+ 0.23183284E-02 0.20974388E+05
+ 0.23588992E-02 0.20259268E+05
+ 0.24001799E-02 0.19568534E+05
+ 0.24421831E-02 0.18901357E+05
+ 0.24849213E-02 0.18256931E+05
+ 0.25284074E-02 0.17634482E+05
+ 0.25726545E-02 0.17033260E+05
+ 0.26176760E-02 0.16452541E+05
+ 0.26634853E-02 0.15891625E+05
+ 0.27100963E-02 0.15349838E+05
+ 0.27575230E-02 0.14826528E+05
+ 0.28057796E-02 0.14321063E+05
+ 0.28548808E-02 0.13832836E+05
+ 0.29048412E-02 0.13361258E+05
+ 0.29556759E-02 0.12905763E+05
+ 0.30074002E-02 0.12465801E+05
+ 0.30600297E-02 0.12040842E+05
+ 0.31135803E-02 0.11630376E+05
+ 0.31680679E-02 0.11233907E+05
+ 0.32235091E-02 0.10850959E+05
+ 0.32799205E-02 0.10481070E+05
+ 0.33373191E-02 0.10123795E+05
+ 0.33957222E-02 0.97787044E+04
+ 0.34551474E-02 0.94453819E+04
+ 0.35156124E-02 0.91234264E+04
+ 0.35771356E-02 0.88124504E+04
+ 0.36397355E-02 0.85120793E+04
+ 0.37034309E-02 0.82219516E+04
+ 0.37682409E-02 0.79417179E+04
+ 0.38341851E-02 0.76710407E+04
+ 0.39012834E-02 0.74095943E+04
+ 0.39695558E-02 0.71570638E+04
+ 0.40390231E-02 0.69131451E+04
+ 0.41097060E-02 0.66775446E+04
+ 0.41816258E-02 0.64499786E+04
+ 0.42548043E-02 0.62301731E+04
+ 0.43292634E-02 0.60178635E+04
+ 0.44050255E-02 0.58127941E+04
+ 0.44821134E-02 0.56147181E+04
+ 0.45605504E-02 0.54233969E+04
+ 0.46403600E-02 0.52386001E+04
+ 0.47215663E-02 0.50601054E+04
+ 0.48041937E-02 0.48876977E+04
+ 0.48882671E-02 0.47211695E+04
+ 0.49738118E-02 0.45603203E+04
+ 0.50608535E-02 0.44049564E+04
+ 0.51494185E-02 0.42548907E+04
+ 0.52395333E-02 0.41099427E+04
+ 0.53312251E-02 0.39699377E+04
+ 0.54245215E-02 0.38347071E+04
+ 0.55194507E-02 0.37040883E+04
+ 0.56160411E-02 0.35779238E+04
+ 0.57143218E-02 0.34560618E+04
+ 0.58143224E-02 0.33383556E+04
+ 0.59160731E-02 0.32246634E+04
+ 0.60196043E-02 0.31148484E+04
+ 0.61249474E-02 0.30087783E+04
+ 0.62321340E-02 0.29063254E+04
+ 0.63411963E-02 0.28073665E+04
+ 0.64521673E-02 0.27117822E+04
+ 0.65650802E-02 0.26194576E+04
+ 0.66799691E-02 0.25302814E+04
+ 0.67968686E-02 0.24441464E+04
+ 0.69158138E-02 0.23609487E+04
+ 0.70368405E-02 0.22805883E+04
+ 0.71599852E-02 0.22029683E+04
+ 0.72852849E-02 0.21279954E+04
+ 0.74127774E-02 0.20555792E+04
+ 0.75425010E-02 0.19856325E+04
+ 0.76744948E-02 0.19180712E+04
+ 0.78087985E-02 0.18528139E+04
+ 0.79454524E-02 0.17897819E+04
+ 0.80844979E-02 0.17288996E+04
+ 0.82259766E-02 0.16700934E+04
+ 0.83699312E-02 0.16132926E+04
+ 0.85164050E-02 0.15584289E+04
+ 0.86654420E-02 0.15054362E+04
+ 0.88170873E-02 0.14542506E+04
+ 0.89713863E-02 0.14048106E+04
+ 0.91283856E-02 0.13570566E+04
+ 0.92881323E-02 0.13109310E+04
+ 0.94506746E-02 0.12663785E+04
+ 0.96160614E-02 0.12233453E+04
+ 0.97843425E-02 0.11817796E+04
+ 0.99555685E-02 0.11416315E+04
+ 0.10129791E-01 0.11028524E+04
+ 0.10307062E-01 0.10653958E+04
+ 0.10487436E-01 0.10292165E+04
+ 0.10670966E-01 0.99427107E+03
+ 0.10857708E-01 0.96051732E+03
+ 0.11047718E-01 0.92791464E+03
+ 0.11241053E-01 0.89642377E+03
+ 0.11437771E-01 0.86600681E+03
+ 0.11637932E-01 0.83662713E+03
+ 0.11841596E-01 0.80824936E+03
+ 0.12048824E-01 0.78083933E+03
+ 0.12259678E-01 0.75436403E+03
+ 0.12474223E-01 0.72879159E+03
+ 0.12692522E-01 0.70409123E+03
+ 0.12914641E-01 0.68023319E+03
+ 0.13140647E-01 0.65718876E+03
+ 0.13370608E-01 0.63493018E+03
+ 0.13604594E-01 0.61343067E+03
+ 0.13842674E-01 0.59266433E+03
+ 0.14084921E-01 0.57260616E+03
+ 0.14331407E-01 0.55323200E+03
+ 0.14582207E-01 0.53451854E+03
+ 0.14837396E-01 0.51644324E+03
+ 0.15097050E-01 0.49898434E+03
+ 0.15361248E-01 0.48212082E+03
+ 0.15630070E-01 0.46583237E+03
+ 0.15903596E-01 0.45009938E+03
+ 0.16181909E-01 0.43490291E+03
+ 0.16465093E-01 0.42022466E+03
+ 0.16753232E-01 0.40604696E+03
+ 0.17046414E-01 0.39235274E+03
+ 0.17344726E-01 0.37912551E+03
+ 0.17648258E-01 0.36634934E+03
+ 0.17957103E-01 0.35400885E+03
+ 0.18271352E-01 0.34208919E+03
+ 0.18591101E-01 0.33057600E+03
+ 0.18916445E-01 0.31945542E+03
+ 0.19247483E-01 0.30871406E+03
+ 0.19584314E-01 0.29833899E+03
+ 0.19927039E-01 0.28831771E+03
+ 0.20275763E-01 0.27863816E+03
+ 0.20630589E-01 0.26928869E+03
+ 0.20991624E-01 0.26025804E+03
+ 0.21358977E-01 0.25153533E+03
+ 0.21732759E-01 0.24311007E+03
+ 0.22113083E-01 0.23497210E+03
+ 0.22500062E-01 0.22711163E+03
+ 0.22893813E-01 0.21951920E+03
+ 0.23294454E-01 0.21218567E+03
+ 0.23702107E-01 0.20510220E+03
+ 0.24116894E-01 0.19826027E+03
+ 0.24538940E-01 0.19165163E+03
+ 0.24968371E-01 0.18526834E+03
+ 0.25405318E-01 0.17910270E+03
+ 0.25849911E-01 0.17314730E+03
+ 0.26302284E-01 0.16739496E+03
+ 0.26762574E-01 0.16183875E+03
+ 0.27230919E-01 0.15647199E+03
+ 0.27707460E-01 0.15128822E+03
+ 0.28192341E-01 0.14628119E+03
+ 0.28685707E-01 0.14144487E+03
+ 0.29187707E-01 0.13677345E+03
+ 0.29698492E-01 0.13226129E+03
+ 0.30218215E-01 0.12790297E+03
+ 0.30747034E-01 0.12369323E+03
+ 0.31285107E-01 0.11962702E+03
+ 0.31832596E-01 0.11569942E+03
+ 0.32389667E-01 0.11190572E+03
+ 0.32956486E-01 0.10824135E+03
+ 0.33533225E-01 0.10470189E+03
+ 0.34120056E-01 0.10128308E+03
+ 0.34717157E-01 0.97980805E+02
+ 0.35324707E-01 0.94791093E+02
+ 0.35942890E-01 0.91710101E+02
+ 0.36571890E-01 0.88734118E+02
+ 0.37211898E-01 0.85859563E+02
+ 0.37863107E-01 0.83082974E+02
+ 0.38525711E-01 0.80401007E+02
+ 0.39199911E-01 0.77810435E+02
+ 0.39885909E-01 0.75308137E+02
+ 0.40583913E-01 0.72891101E+02
+ 0.41294131E-01 0.70556417E+02
+ 0.42016778E-01 0.68301273E+02
+ 0.42752072E-01 0.66122955E+02
+ 0.43500233E-01 0.64018840E+02
+ 0.44261487E-01 0.61986395E+02
+ 0.45036063E-01 0.60023172E+02
+ 0.45824195E-01 0.58126807E+02
+ 0.46626118E-01 0.56295018E+02
+ 0.47442075E-01 0.54525599E+02
+ 0.48272311E-01 0.52816420E+02
+ 0.49117077E-01 0.51165423E+02
+ 0.49976626E-01 0.49570619E+02
+ 0.50851217E-01 0.48030089E+02
+ 0.51741113E-01 0.46541979E+02
+ 0.52646582E-01 0.45104495E+02
+ 0.53567898E-01 0.43715909E+02
+ 0.54505336E-01 0.42374548E+02
+ 0.55459179E-01 0.41078796E+02
+ 0.56429715E-01 0.39827094E+02
+ 0.57417235E-01 0.38617936E+02
+ 0.58422036E-01 0.37449865E+02
+ 0.59444422E-01 0.36321474E+02
+ 0.60484699E-01 0.35231406E+02
+ 0.61543182E-01 0.34178348E+02
+ 0.62620187E-01 0.33161033E+02
+ 0.63716041E-01 0.32178235E+02
+ 0.64831071E-01 0.31228771E+02
+ 0.65965615E-01 0.30311499E+02
+ 0.67120013E-01 0.29425314E+02
+ 0.68294614E-01 0.28569150E+02
+ 0.69489769E-01 0.27741975E+02
+ 0.70705840E-01 0.26942794E+02
+ 0.71943192E-01 0.26170645E+02
+ 0.73202198E-01 0.25424598E+02
+ 0.74483237E-01 0.24703756E+02
+ 0.75786693E-01 0.24007251E+02
+ 0.77112961E-01 0.23334245E+02
+ 0.78462437E-01 0.22683927E+02
+ 0.79835530E-01 0.22055515E+02
+ 0.81232652E-01 0.21448253E+02
+ 0.82654223E-01 0.20861410E+02
+ 0.84100672E-01 0.20294279E+02
+ 0.85572434E-01 0.19746179E+02
+ 0.87069951E-01 0.19216450E+02
+ 0.88593676E-01 0.18704454E+02
+ 0.90144065E-01 0.18209576E+02
+ 0.91721586E-01 0.17731220E+02
+ 0.93326714E-01 0.17268812E+02
+ 0.94959931E-01 0.16821794E+02
+ 0.96621730E-01 0.16389630E+02
+ 0.98312610E-01 0.15971801E+02
+ 0.10003308E+00 0.15567802E+02
+ 0.10178366E+00 0.15177151E+02
+ 0.10356487E+00 0.14799375E+02
+ 0.10537726E+00 0.14434023E+02
+ 0.10722136E+00 0.14080655E+02
+ 0.10909774E+00 0.13738847E+02
+ 0.11100695E+00 0.13408189E+02
+ 0.11294957E+00 0.13088283E+02
+ 0.11492618E+00 0.12778747E+02
+ 0.11693739E+00 0.12479208E+02
+ 0.11898380E+00 0.12189309E+02
+ 0.12106601E+00 0.11908701E+02
+ 0.12318467E+00 0.11637048E+02
+ 0.12534040E+00 0.11374027E+02
+ 0.12753386E+00 0.11119321E+02
+ 0.12976570E+00 0.10872627E+02
+ 0.13203660E+00 0.10633651E+02
+ 0.13434724E+00 0.10402106E+02
+ 0.13669832E+00 0.10177718E+02
+ 0.13909054E+00 0.99602193E+01
+ 0.14152462E+00 0.97493508E+01
+ 0.14400130E+00 0.95448624E+01
+ 0.14652133E+00 0.93465116E+01
+ 0.14908545E+00 0.91540636E+01
+ 0.15169444E+00 0.89672910E+01
+ 0.15434910E+00 0.87859735E+01
+ 0.15705021E+00 0.86098976E+01
+ 0.15979858E+00 0.84388566E+01
+ 0.16259506E+00 0.82726503E+01
+ 0.16544047E+00 0.81110843E+01
+ 0.16833568E+00 0.79539707E+01
+ 0.17128156E+00 0.78011272E+01
+ 0.17427898E+00 0.76523769E+01
+ 0.17732887E+00 0.75075486E+01
+ 0.18043212E+00 0.73664763E+01
+ 0.18358968E+00 0.72289991E+01
+ 0.18680250E+00 0.70949611E+01
+ 0.19007155E+00 0.69642109E+01
+ 0.19339780E+00 0.68366021E+01
+ 0.19678226E+00 0.67119926E+01
+ 0.20022595E+00 0.65902448E+01
+ 0.20372990E+00 0.64712254E+01
+ 0.20729518E+00 0.63548051E+01
+ 0.21092284E+00 0.62408588E+01
+ 0.21461399E+00 0.61292654E+01
+ 0.21836974E+00 0.60199076E+01
+ 0.22219121E+00 0.59126720E+01
+ 0.22607955E+00 0.58074488E+01
+ 0.23003595E+00 0.57041321E+01
+ 0.23406157E+00 0.56026194E+01
+ 0.23815765E+00 0.55028119E+01
+ 0.24232541E+00 0.54046143E+01
+ 0.24656611E+00 0.53079349E+01
+ 0.25088101E+00 0.52126852E+01
+ 0.25527143E+00 0.51187807E+01
+ 0.25973868E+00 0.50261397E+01
+ 0.26428411E+00 0.49346844E+01
+ 0.26890908E+00 0.48443404E+01
+ 0.27361499E+00 0.47550366E+01
+ 0.27840325E+00 0.46667055E+01
+ 0.28327531E+00 0.45792830E+01
+ 0.28823263E+00 0.44927086E+01
+ 0.29327670E+00 0.44069254E+01
+ 0.29840904E+00 0.43218800E+01
+ 0.30363120E+00 0.42375227E+01
+ 0.30894474E+00 0.41538073E+01
+ 0.31435128E+00 0.40706917E+01
+ 0.31985242E+00 0.39881371E+01
+ 0.32544984E+00 0.39061089E+01
+ 0.33114521E+00 0.38245761E+01
+ 0.33694025E+00 0.37435116E+01
+ 0.34283671E+00 0.36628925E+01
+ 0.34883635E+00 0.35826996E+01
+ 0.35494099E+00 0.35029178E+01
+ 0.36115245E+00 0.34235360E+01
+ 0.36747262E+00 0.33445472E+01
+ 0.37390339E+00 0.32659483E+01
+ 0.38044670E+00 0.31877404E+01
+ 0.38710452E+00 0.31099284E+01
+ 0.39387885E+00 0.30325214E+01
+ 0.40077173E+00 0.29555321E+01
+ 0.40778523E+00 0.28789771E+01
+ 0.41492147E+00 0.28028770E+01
+ 0.42218260E+00 0.27272554E+01
+ 0.42957080E+00 0.26521398E+01
+ 0.43708829E+00 0.25775608E+01
+ 0.44473733E+00 0.25035519E+01
+ 0.45252023E+00 0.24301496E+01
+ 0.46043934E+00 0.23573927E+01
+ 0.46849703E+00 0.22853225E+01
+ 0.47669572E+00 0.22139820E+01
+ 0.48503790E+00 0.21434160E+01
+ 0.49352606E+00 0.20736704E+01
+ 0.50216277E+00 0.20047920E+01
+ 0.51095062E+00 0.19368279E+01
+ 0.51989225E+00 0.18698255E+01
+ 0.52899037E+00 0.18038315E+01
+ 0.53824770E+00 0.17388920E+01
+ 0.54766703E+00 0.16750517E+01
+ 0.55725121E+00 0.16123537E+01
+ 0.56700310E+00 0.15508390E+01
+ 0.57692566E+00 0.14905460E+01
+ 0.58702186E+00 0.14315107E+01
+ 0.59729474E+00 0.13737654E+01
+ 0.60774740E+00 0.13173396E+01
+ 0.61838298E+00 0.12622586E+01
+ 0.62920468E+00 0.12085443E+01
+ 0.64021576E+00 0.11562146E+01
+ 0.65141954E+00 0.11052833E+01
+ 0.66281938E+00 0.10557604E+01
+ 0.67441872E+00 0.10076519E+01
+ 0.68622104E+00 0.96096032E+00
+ 0.69822991E+00 0.91568428E+00
+ 0.71044894E+00 0.87181932E+00
+ 0.72288179E+00 0.82935793E+00
+ 0.73553222E+00 0.78828989E+00
+ 0.74840404E+00 0.74860263E+00
+ 0.76150111E+00 0.71028157E+00
+ 0.77482738E+00 0.67331048E+00
+ 0.78838686E+00 0.63767180E+00
+ 0.80218363E+00 0.60334692E+00
+ 0.81622184E+00 0.57031647E+00
+ 0.83050572E+00 0.53856050E+00
+ 0.84503957E+00 0.50805861E+00
+ 0.85982776E+00 0.47879009E+00
+ 0.87487475E+00 0.45073391E+00
+ 0.89018506E+00 0.42386871E+00
+ 0.90576330E+00 0.39817273E+00
+ 0.92161415E+00 0.37362371E+00
+ 0.93774240E+00 0.35019876E+00
+ 0.95415289E+00 0.32787425E+00
+ 0.97085057E+00 0.30662572E+00
+ 0.98784045E+00 0.28642772E+00
+ 0.10051277E+01 0.26725384E+00
+ 0.10227174E+01 0.24907662E+00
+ 0.10406150E+01 0.23186765E+00
+ 0.10588257E+01 0.21559757E+00
+ 0.10773552E+01 0.20023623E+00
+ 0.10962089E+01 0.18575276E+00
+ 0.11153925E+01 0.17211574E+00
+ 0.11349119E+01 0.15929334E+00
+ 0.11547729E+01 0.14725339E+00
+ 0.11749814E+01 0.13596361E+00
+ 0.11955436E+01 0.12539170E+00
+ 0.12164656E+01 0.11550549E+00
+ 0.12377537E+01 0.10627308E+00
+ 0.12594144E+01 0.97662929E-01
+ 0.12814542E+01 0.89643977E-01
+ 0.13038796E+01 0.82185735E-01
+ 0.13266975E+01 0.75258366E-01
+ 0.13499147E+01 0.68832761E-01
+ 0.13735382E+01 0.62880608E-01
+ 0.13975751E+01 0.57374438E-01
+ 0.14220327E+01 0.52287683E-01
+ 0.14469183E+01 0.47594703E-01
+ 0.14722393E+01 0.43270823E-01
+ 0.14980035E+01 0.39292354E-01
+ 0.15242186E+01 0.35636605E-01
+ 0.15508924E+01 0.32281895E-01
+ 0.15780330E+01 0.29207553E-01
+ 0.16056486E+01 0.26393914E-01
+ 0.16337475E+01 0.23822314E-01
+ 0.16623380E+01 0.21475073E-01
+ 0.16914290E+01 0.19335481E-01
+ 0.17210290E+01 0.17387773E-01
+ 0.17511470E+01 0.15617111E-01
+ 0.17817920E+01 0.14009553E-01
+ 0.18129734E+01 0.12552027E-01
+ 0.18447004E+01 0.11232296E-01
+ 0.18769827E+01 0.10038933E-01
+ 0.19098299E+01 0.89612806E-02
+ 0.19432519E+01 0.79894228E-02
+ 0.19772588E+01 0.71141469E-02
+ 0.20118609E+01 0.63269107E-02
+ 0.20470684E+01 0.56198074E-02
+ 0.20828921E+01 0.49855313E-02
+ 0.21193427E+01 0.44173442E-02
+ 0.21564312E+01 0.39090422E-02
+ 0.21941688E+01 0.34549229E-02
+ 0.22325667E+01 0.30497544E-02
+ 0.22716367E+01 0.26887441E-02
+ 0.23113903E+01 0.23675100E-02
+ 0.23518396E+01 0.20820519E-02
+ 0.23929968E+01 0.18287244E-02
+ 0.24348743E+01 0.16042110E-02
+ 0.24774846E+01 0.14054996E-02
+ 0.25208405E+01 0.12298592E-02
+ 0.25649552E+01 0.10748175E-02
+ 0.26098420E+01 0.93814041E-03
+ 0.26555142E+01 0.81781236E-03
+ 0.27019857E+01 0.71201787E-03
+ 0.27492704E+01 0.61912444E-03
+ 0.27973827E+01 0.53766647E-03
+ 0.28463369E+01 0.46633036E-03
+ 0.28961478E+01 0.40394065E-03
+ 0.29468304E+01 0.34944717E-03
+ 0.29983999E+01 0.30191322E-03
+ 0.30508719E+01 0.26050458E-03
+ 0.31042621E+01 0.22447951E-03
+ 0.31585867E+01 0.19317953E-03
+ 0.32138620E+01 0.16602092E-03
+ 0.32701046E+01 0.14248711E-03
+ 0.33273314E+01 0.12212159E-03
+ 0.33855597E+01 0.10452152E-03
+ 0.34448070E+01 0.89332026E-04
+ 0.35050911E+01 0.76240861E-04
+ 0.35664302E+01 0.64973739E-04
+ 0.36288428E+01 0.55290053E-04
+ 0.36923475E+01 0.46979041E-04
+ 0.37569636E+01 0.39856351E-04
+ 0.38227105E+01 0.33760957E-04
+ 0.38896079E+01 0.28552406E-04
+ 0.39576760E+01 0.24108365E-04
+ 0.40269354E+01 0.20322428E-04
+ 0.40974067E+01 0.17102176E-04
+ 0.41691113E+01 0.14367451E-04
+ 0.42420708E+01 0.12048828E-04
+ 0.43163070E+01 0.10086262E-04
+ 0.43918424E+01 0.84278993E-05
+ 0.44686996E+01 0.70290222E-05
+ 0.45469019E+01 0.58511264E-05
+ 0.46264727E+01 0.48611076E-05
+ 0.47074359E+01 0.40305478E-05
+ 0.47898161E+01 0.33350905E-05
+ 0.48736378E+01 0.27538945E-05
+ 0.49589265E+01 0.22691557E-05
+ 0.50457077E+01 0.18656905E-05
+ 0.51340076E+01 0.15305731E-05
+ 0.52238527E+01 0.12528190E-05
+ 0.53152702E+01 0.10231115E-05
+ 0.54082874E+01 0.83356267E-06
+ 0.55029324E+01 0.67750812E-06
+ 0.55992337E+01 0.54932807E-06
+ 0.56972203E+01 0.44429363E-06
+ 0.57969217E+01 0.35843400E-06
+ 0.58983678E+01 0.28842228E-06
+ 0.60015893E+01 0.23147733E-06
+ 0.61066171E+01 0.18527956E-06
+ 0.62134829E+01 0.14789898E-06
+ 0.63222188E+01 0.11773362E-06
+ 0.64328576E+01 0.93457097E-07
+ 0.65454327E+01 0.73974022E-07
+ 0.66599777E+01 0.58382107E-07
+ 0.67765273E+01 0.45940117E-07
+ 0.68951166E+01 0.36040783E-07
+ 0.70157811E+01 0.28187975E-07
+ 0.71385573E+01 0.21977512E-07
+ 0.72634820E+01 0.17081083E-07
+ 0.73905930E+01 0.13232789E-07
+ 0.75199283E+01 0.10217935E-07
+ 0.76515271E+01 0.78636992E-08
+ 0.77854288E+01 0.60314073E-08
+ 0.79216738E+01 0.46101391E-08
+ 0.80603031E+01 0.35114644E-08
+ 0.82013584E+01 0.26651169E-08
+ 0.83448822E+01 0.20154521E-08
+ 0.84909176E+01 0.15185567E-08
+ 0.86395087E+01 0.11398967E-08
+ 0.87907001E+01 0.85241116E-09
+ 0.89445373E+01 0.63497217E-09
+ 0.91010667E+01 0.47114486E-09
+ 0.92603354E+01 0.34819315E-09
+ 0.94223913E+01 0.25628504E-09
+ 0.95872831E+01 0.18785999E-09
+ 0.97550606E+01 0.13712719E-09
+ 0.99257741E+01 0.99669136E-10
+ 0.10099475E+02 0.72129798E-10
+ 0.10276216E+02 0.51970159E-10
+ 0.10456050E+02 0.37277472E-10
+ 0.10639031E+02 0.26616994E-10
+ 0.10825214E+02 0.18917251E-10
+ 0.11014655E+02 0.13381632E-10
+ 0.11207411E+02 0.94205615E-11
+ 0.11403541E+02 0.65997096E-11
+ 0.11603103E+02 0.46006133E-11
+ 0.11806157E+02 0.31908817E-11
+ 0.12012765E+02 0.22017569E-11
+ 0.12222988E+02 0.15112923E-11
+ 0.12436891E+02 0.10318301E-11
+ 0.12654536E+02 0.70062259E-12
+ 0.12875991E+02 0.47309768E-12
+ 0.13101321E+02 0.31768744E-12
+ 0.13330594E+02 0.21212843E-12
+ 0.13563879E+02 0.14083270E-12
+ 0.13801247E+02 0.92954297E-13
+ 0.14042769E+02 0.60988993E-13
+ 0.14288517E+02 0.39774381E-13
+ 0.14538566E+02 0.25779736E-13
+ 0.14792991E+02 0.16604615E-13
+ 0.15051869E+02 0.10626881E-13
+ 0.15315276E+02 0.67570929E-14
+ 0.15583294E+02 0.42681563E-14
+ 0.15856001E+02 0.26779053E-14
+ 0.16133481E+02 0.16686733E-14
+ 0.16415817E+02 0.10325561E-14
+ 0.16703094E+02 0.63440112E-15
+ 0.16995398E+02 0.38695843E-15
+ 0.17292818E+02 0.23428684E-15
+ 0.17595442E+02 0.00000000E+00
+ 0.17903362E+02 0.00000000E+00
+ 0.18216671E+02 0.00000000E+00
+ 0.18535463E+02 0.00000000E+00
+ 0.18859833E+02 0.00000000E+00
+ 0.19189880E+02 0.00000000E+00
+ 0.19525703E+02 0.00000000E+00
+ 0.19867403E+02 0.00000000E+00
+ 0.20215083E+02 0.00000000E+00
+ 0.20568847E+02 0.00000000E+00
+ 0.20928801E+02 0.00000000E+00
+ 0.21295055E+02 0.00000000E+00
+ 0.21667719E+02 0.00000000E+00
+ 0.22046904E+02 0.00000000E+00
+ 0.22432725E+02 0.00000000E+00
+ 0.22825298E+02 0.00000000E+00
+ 0.23224740E+02 0.00000000E+00
+ 0.23631173E+02 0.00000000E+00
+ 0.24044719E+02 0.00000000E+00
+ 0.24465501E+02 0.00000000E+00
+ 0.24893648E+02 0.00000000E+00
+ 0.25329286E+02 0.00000000E+00
+ 0.25772549E+02 0.00000000E+00
+ 0.26223569E+02 0.00000000E+00
+ 0.26682481E+02 0.00000000E+00
+ 0.27149424E+02 0.00000000E+00
+ 0.27624539E+02 0.00000000E+00
+ 0.28107969E+02 0.00000000E+00
+ 0.28599858E+02 0.00000000E+00
+ 0.29100356E+02 0.00000000E+00
+ 0.29609612E+02 0.00000000E+00
+ 0.30127780E+02 0.00000000E+00
+ 0.30655016E+02 0.00000000E+00
+ 0.31191479E+02 0.00000000E+00
+ 0.31737330E+02 0.00000000E+00
+ 0.32292733E+02 0.00000000E+00
+ 0.32857856E+02 0.00000000E+00
+ 0.33432869E+02 0.00000000E+00
+ 0.34017944E+02 0.00000000E+00
+ 0.34613258E+02 0.00000000E+00
+ 0.35218990E+02 0.00000000E+00
+ 0.35835322E+02 0.00000000E+00
+ 0.36462440E+02 0.00000000E+00
+ 0.37100533E+02 0.00000000E+00
+ 0.37749792E+02 0.00000000E+00
+ 0.38410414E+02 0.00000000E+00
+ 0.39082596E+02 0.00000000E+00
+ 0.39766541E+02 0.00000000E+00
+ 0.40462456E+02 0.00000000E+00
+ 0.41170549E+02 0.00000000E+00
+ 0.41891033E+02 0.00000000E+00
+ 0.42624126E+02 0.00000000E+00
+ 0.43370049E+02 0.00000000E+00
+ 0.44129025E+02 0.00000000E+00
+&END
diff --git a/clusters/user/CPMD/PPs/O_MT_PBE b/clusters/user/CPMD/PPs/O_MT_PBE
new file mode 100644
index 0000000..b19d358
--- /dev/null
+++ b/clusters/user/CPMD/PPs/O_MT_PBE
@@ -0,0 +1,1935 @@
+&ATOM
+ Z = 8
+ ZV = 6
+ XC = 1134 .666667
+ TYPE = NORMCONSERVING NUMERIC
+&END
+&INFO
+ ============================================================
+ | Pseudopotential Report Tue Nov 12 09:58:06 1996 |
+ ------------------------------------------------------------
+ | Atomic Symbol : O |
+ | Atomic Number : 8 |
+ | Number of core states : 1 |
+ | Number of valence states : 2 |
+ | Exchange-Correlation Functional : |
+ | Slater exchange : .6667 |
+ | LDA correlation : Ceperley-Alder |
+ | Exchange GC : Perdew-Burke-Ernzerhof |
+ | Correlation GC : Perdew-Burke-Ernzerhof |
+ | Electron Configuration : N L Occupation |
+ | 1 S 2.0000 |
+ | 2 S 2.0000 |
+ | 2 P 4.0000 |
+ | Full Potential Total Energy -74.943856 |
+ | Trouiller-Martins normconserving PP |
+ | n l rc energy |
+ | 2 S 1.0500 -.87882 |
+ | 2 P 1.0500 -.33215 |
+ | 3 D 1.0500 -.33215 |
+ | Number of Mesh Points : 631 |
+ | Pseudoatom Total Energy -15.773631 |
+ ============================================================
+&END
+&POTENTIAL
+ 631
+ .78125000E-03 -.47973952E+01 -.20111779E+02 -.15419786E+02
+ .79492188E-03 -.47973952E+01 -.20111779E+02 -.15419786E+02
+ .80883301E-03 -.47976861E+01 -.20112070E+02 -.15420077E+02
+ .82298759E-03 -.47983733E+01 -.20112757E+02 -.15420764E+02
+ .83738987E-03 -.47991191E+01 -.20113503E+02 -.15421510E+02
+ .85204419E-03 -.47994784E+01 -.20113862E+02 -.15421869E+02
+ .86695496E-03 -.47999633E+01 -.20114347E+02 -.15422354E+02
+ .88212668E-03 -.48004337E+01 -.20114817E+02 -.15422824E+02
+ .89756389E-03 -.48009289E+01 -.20115312E+02 -.15423319E+02
+ .91327126E-03 -.48014387E+01 -.20115822E+02 -.15423829E+02
+ .92925351E-03 -.48019668E+01 -.20116350E+02 -.15424357E+02
+ .94551544E-03 -.48025129E+01 -.20116896E+02 -.15424903E+02
+ .96206196E-03 -.48030778E+01 -.20117461E+02 -.15425468E+02
+ .97889805E-03 -.48036623E+01 -.20118046E+02 -.15426053E+02
+ .99602877E-03 -.48042669E+01 -.20118650E+02 -.15426657E+02
+ .10134593E-02 -.48048924E+01 -.20119276E+02 -.15427283E+02
+ .10311948E-02 -.48055395E+01 -.20119923E+02 -.15427930E+02
+ .10492407E-02 -.48062090E+01 -.20120593E+02 -.15428600E+02
+ .10676024E-02 -.48069017E+01 -.20121285E+02 -.15429292E+02
+ .10862855E-02 -.48076182E+01 -.20122002E+02 -.15430009E+02
+ .11052955E-02 -.48083596E+01 -.20122743E+02 -.15430750E+02
+ .11246381E-02 -.48091266E+01 -.20123510E+02 -.15431517E+02
+ .11443193E-02 -.48099201E+01 -.20124304E+02 -.15432311E+02
+ .11643449E-02 -.48107411E+01 -.20125125E+02 -.15433132E+02
+ .11847209E-02 -.48115905E+01 -.20125974E+02 -.15433981E+02
+ .12054535E-02 -.48124693E+01 -.20126853E+02 -.15434860E+02
+ .12265490E-02 -.48133785E+01 -.20127762E+02 -.15435769E+02
+ .12480136E-02 -.48143191E+01 -.20128703E+02 -.15436710E+02
+ .12698538E-02 -.48152922E+01 -.20129676E+02 -.15437683E+02
+ .12920763E-02 -.48162990E+01 -.20130683E+02 -.15438689E+02
+ .13146876E-02 -.48173406E+01 -.20131724E+02 -.15439731E+02
+ .13376946E-02 -.48184182E+01 -.20132802E+02 -.15440809E+02
+ .13611043E-02 -.48195330E+01 -.20133917E+02 -.15441924E+02
+ .13849236E-02 -.48206863E+01 -.20135070E+02 -.15443077E+02
+ .14091598E-02 -.48218795E+01 -.20136263E+02 -.15444270E+02
+ .14338201E-02 -.48231138E+01 -.20137497E+02 -.15445504E+02
+ .14589119E-02 -.48243908E+01 -.20138774E+02 -.15446781E+02
+ .14844429E-02 -.48257117E+01 -.20140095E+02 -.15448102E+02
+ .15104206E-02 -.48270782E+01 -.20141462E+02 -.15449469E+02
+ .15368530E-02 -.48284918E+01 -.20142875E+02 -.15450882E+02
+ .15637479E-02 -.48299540E+01 -.20144338E+02 -.15452345E+02
+ .15911135E-02 -.48314666E+01 -.20145850E+02 -.15453857E+02
+ .16189580E-02 -.48330312E+01 -.20147415E+02 -.15455422E+02
+ .16472898E-02 -.48346496E+01 -.20149033E+02 -.15457040E+02
+ .16761173E-02 -.48363235E+01 -.20150707E+02 -.15458714E+02
+ .17054494E-02 -.48380549E+01 -.20152438E+02 -.15460445E+02
+ .17352948E-02 -.48398456E+01 -.20154229E+02 -.15462236E+02
+ .17656624E-02 -.48416978E+01 -.20156081E+02 -.15464088E+02
+ .17965615E-02 -.48436133E+01 -.20157997E+02 -.15466004E+02
+ .18280013E-02 -.48455943E+01 -.20159978E+02 -.15467985E+02
+ .18599914E-02 -.48476431E+01 -.20162027E+02 -.15470034E+02
+ .18925412E-02 -.48497617E+01 -.20164145E+02 -.15472152E+02
+ .19256607E-02 -.48519527E+01 -.20166336E+02 -.15474343E+02
+ .19593597E-02 -.48542182E+01 -.20168602E+02 -.15476609E+02
+ .19936485E-02 -.48565609E+01 -.20170944E+02 -.15478951E+02
+ .20285374E-02 -.48589832E+01 -.20173367E+02 -.15481374E+02
+ .20640368E-02 -.48614877E+01 -.20175871E+02 -.15483878E+02
+ .21001574E-02 -.48640771E+01 -.20178461E+02 -.15486468E+02
+ .21369102E-02 -.48667542E+01 -.20181138E+02 -.15489145E+02
+ .21743061E-02 -.48695218E+01 -.20183905E+02 -.15491912E+02
+ .22123565E-02 -.48723829E+01 -.20186766E+02 -.15494773E+02
+ .22510727E-02 -.48753404E+01 -.20189724E+02 -.15497731E+02
+ .22904665E-02 -.48783975E+01 -.20192781E+02 -.15500788E+02
+ .23305496E-02 -.48815573E+01 -.20195941E+02 -.15503948E+02
+ .23713343E-02 -.48848232E+01 -.20199207E+02 -.15507214E+02
+ .24128326E-02 -.48881984E+01 -.20202582E+02 -.15510589E+02
+ .24550572E-02 -.48916865E+01 -.20206070E+02 -.15514077E+02
+ .24980207E-02 -.48952909E+01 -.20209674E+02 -.15517681E+02
+ .25417360E-02 -.48990154E+01 -.20213399E+02 -.15521406E+02
+ .25862164E-02 -.49028637E+01 -.20217247E+02 -.15525254E+02
+ .26314752E-02 -.49068397E+01 -.20221223E+02 -.15529230E+02
+ .26775260E-02 -.49109472E+01 -.20225331E+02 -.15533338E+02
+ .27243827E-02 -.49151904E+01 -.20229574E+02 -.15537581E+02
+ .27720594E-02 -.49195733E+01 -.20233957E+02 -.15541964E+02
+ .28205705E-02 -.49241003E+01 -.20238484E+02 -.15546491E+02
+ .28699305E-02 -.49287757E+01 -.20243159E+02 -.15551166E+02
+ .29201542E-02 -.49336039E+01 -.20247987E+02 -.15555994E+02
+ .29712569E-02 -.49385896E+01 -.20252973E+02 -.15560980E+02
+ .30232539E-02 -.49437374E+01 -.20258121E+02 -.15566128E+02
+ .30761609E-02 -.49490520E+01 -.20263436E+02 -.15571442E+02
+ .31299937E-02 -.49545384E+01 -.20268922E+02 -.15576929E+02
+ .31847686E-02 -.49602016E+01 -.20274585E+02 -.15582592E+02
+ .32405020E-02 -.49660466E+01 -.20280430E+02 -.15588437E+02
+ .32972108E-02 -.49720787E+01 -.20286462E+02 -.15594469E+02
+ .33549120E-02 -.49783032E+01 -.20292687E+02 -.15600694E+02
+ .34136230E-02 -.49847254E+01 -.20299109E+02 -.15607116E+02
+ .34733614E-02 -.49913509E+01 -.20305734E+02 -.15613741E+02
+ .35341452E-02 -.49981852E+01 -.20312569E+02 -.15620576E+02
+ .35959927E-02 -.50052342E+01 -.20319618E+02 -.15627625E+02
+ .36589226E-02 -.50125035E+01 -.20326887E+02 -.15634894E+02
+ .37229538E-02 -.50199991E+01 -.20334383E+02 -.15642390E+02
+ .37881054E-02 -.50277270E+01 -.20342111E+02 -.15650117E+02
+ .38543973E-02 -.50356931E+01 -.20350077E+02 -.15658084E+02
+ .39218492E-02 -.50439037E+01 -.20358287E+02 -.15666294E+02
+ .39904816E-02 -.50523649E+01 -.20366748E+02 -.15674755E+02
+ .40603150E-02 -.50610831E+01 -.20375467E+02 -.15683474E+02
+ .41313705E-02 -.50700645E+01 -.20384448E+02 -.15692455E+02
+ .42036695E-02 -.50793155E+01 -.20393699E+02 -.15701706E+02
+ .42772337E-02 -.50888426E+01 -.20403226E+02 -.15711233E+02
+ .43520853E-02 -.50986522E+01 -.20413036E+02 -.15721043E+02
+ .44282468E-02 -.51087509E+01 -.20423134E+02 -.15731141E+02
+ .45057411E-02 -.51191451E+01 -.20433529E+02 -.15741536E+02
+ .45845916E-02 -.51298414E+01 -.20444225E+02 -.15752232E+02
+ .46648220E-02 -.51408463E+01 -.20455230E+02 -.15763237E+02
+ .47464564E-02 -.51521663E+01 -.20466550E+02 -.15774557E+02
+ .48295193E-02 -.51638079E+01 -.20478191E+02 -.15786198E+02
+ .49140359E-02 -.51757775E+01 -.20490161E+02 -.15798168E+02
+ .50000316E-02 -.51880815E+01 -.20502465E+02 -.15810472E+02
+ .50875321E-02 -.52007262E+01 -.20515110E+02 -.15823117E+02
+ .51765639E-02 -.52137177E+01 -.20528101E+02 -.15836108E+02
+ .52671538E-02 -.52270622E+01 -.20541446E+02 -.15849453E+02
+ .53593290E-02 -.52407656E+01 -.20555149E+02 -.15863156E+02
+ .54531172E-02 -.52548338E+01 -.20569217E+02 -.15877224E+02
+ .55485468E-02 -.52692723E+01 -.20583656E+02 -.15891663E+02
+ .56456464E-02 -.52840865E+01 -.20598470E+02 -.15906477E+02
+ .57444452E-02 -.52992818E+01 -.20613665E+02 -.15921672E+02
+ .58449730E-02 -.53148630E+01 -.20629246E+02 -.15937253E+02
+ .59472600E-02 -.53308348E+01 -.20645218E+02 -.15953225E+02
+ .60513370E-02 -.53472016E+01 -.20661585E+02 -.15969592E+02
+ .61572354E-02 -.53639675E+01 -.20678351E+02 -.15986358E+02
+ .62649871E-02 -.53811362E+01 -.20695519E+02 -.16003526E+02
+ .63746243E-02 -.53987108E+01 -.20713094E+02 -.16021101E+02
+ .64861803E-02 -.54166944E+01 -.20731078E+02 -.16039085E+02
+ .65996884E-02 -.54350894E+01 -.20749472E+02 -.16057480E+02
+ .67151830E-02 -.54538975E+01 -.20768281E+02 -.16076288E+02
+ .68326987E-02 -.54731203E+01 -.20787503E+02 -.16095511E+02
+ .69522709E-02 -.54927586E+01 -.20807142E+02 -.16115149E+02
+ .70739356E-02 -.55128126E+01 -.20827195E+02 -.16135203E+02
+ .71977295E-02 -.55332818E+01 -.20847665E+02 -.16155672E+02
+ .73236898E-02 -.55541652E+01 -.20868548E+02 -.16176555E+02
+ .74518543E-02 -.55754609E+01 -.20889844E+02 -.16197851E+02
+ .75822618E-02 -.55971664E+01 -.20911549E+02 -.16219556E+02
+ .77149514E-02 -.56192784E+01 -.20933661E+02 -.16241668E+02
+ .78499630E-02 -.56417926E+01 -.20956175E+02 -.16264183E+02
+ .79873374E-02 -.56647039E+01 -.20979086E+02 -.16287094E+02
+ .81271158E-02 -.56880065E+01 -.21002389E+02 -.16310396E+02
+ .82693403E-02 -.57116933E+01 -.21026076E+02 -.16334083E+02
+ .84140538E-02 -.57357564E+01 -.21050139E+02 -.16358146E+02
+ .85612997E-02 -.57601870E+01 -.21074569E+02 -.16382577E+02
+ .87111224E-02 -.57849750E+01 -.21099357E+02 -.16407365E+02
+ .88635671E-02 -.58101092E+01 -.21124491E+02 -.16432499E+02
+ .90186795E-02 -.58355776E+01 -.21149960E+02 -.16457967E+02
+ .91765064E-02 -.58613668E+01 -.21175749E+02 -.16483756E+02
+ .93370953E-02 -.58874622E+01 -.21201844E+02 -.16509852E+02
+ .95004944E-02 -.59138480E+01 -.21228229E+02 -.16536237E+02
+ .96667531E-02 -.59405073E+01 -.21254889E+02 -.16562897E+02
+ .98359213E-02 -.59674220E+01 -.21281803E+02 -.16589811E+02
+ .10008050E-01 -.59945724E+01 -.21308953E+02 -.16616961E+02
+ .10183191E-01 -.60219379E+01 -.21336319E+02 -.16644327E+02
+ .10361397E-01 -.60494964E+01 -.21363877E+02 -.16671885E+02
+ .10542721E-01 -.60772247E+01 -.21391605E+02 -.16699613E+02
+ .10727219E-01 -.61050981E+01 -.21419478E+02 -.16727487E+02
+ .10914945E-01 -.61330908E+01 -.21447471E+02 -.16755479E+02
+ .11105957E-01 -.61611757E+01 -.21475555E+02 -.16783564E+02
+ .11300311E-01 -.61893244E+01 -.21503704E+02 -.16811712E+02
+ .11498066E-01 -.62175073E+01 -.21531886E+02 -.16839895E+02
+ .11699282E-01 -.62456936E+01 -.21560072E+02 -.16868081E+02
+ .11904020E-01 -.62738515E+01 -.21588230E+02 -.16896239E+02
+ .12112340E-01 -.63019477E+01 -.21616326E+02 -.16924335E+02
+ .12324306E-01 -.63299481E+01 -.21644326E+02 -.16952335E+02
+ .12539981E-01 -.63578177E+01 -.21672195E+02 -.16980205E+02
+ .12759431E-01 -.63855202E+01 -.21699897E+02 -.17007907E+02
+ .12982721E-01 -.64130185E+01 -.21727395E+02 -.17035405E+02
+ .13209919E-01 -.64402749E+01 -.21754651E+02 -.17062661E+02
+ .13441092E-01 -.64672505E+01 -.21781626E+02 -.17089636E+02
+ .13676311E-01 -.64939062E+01 -.21808281E+02 -.17116292E+02
+ .13915647E-01 -.65202019E+01 -.21834576E+02 -.17142587E+02
+ .14159171E-01 -.65460971E+01 -.21860470E+02 -.17168482E+02
+ .14406956E-01 -.65715512E+01 -.21885924E+02 -.17193935E+02
+ .14659078E-01 -.65965228E+01 -.21910894E+02 -.17218906E+02
+ .14915612E-01 -.66209706E+01 -.21935341E+02 -.17243354E+02
+ .15176635E-01 -.66448531E+01 -.21959223E+02 -.17267236E+02
+ .15442226E-01 -.66681289E+01 -.21982498E+02 -.17290511E+02
+ .15712465E-01 -.66907567E+01 -.22005125E+02 -.17313138E+02
+ .15987433E-01 -.67126954E+01 -.22027062E+02 -.17335076E+02
+ .16267213E-01 -.67339042E+01 -.22048270E+02 -.17356284E+02
+ .16551890E-01 -.67543430E+01 -.22068707E+02 -.17376722E+02
+ .16841548E-01 -.67739723E+01 -.22088335E+02 -.17396351E+02
+ .17136275E-01 -.67927530E+01 -.22107115E+02 -.17415131E+02
+ .17436160E-01 -.68106474E+01 -.22125007E+02 -.17433024E+02
+ .17741292E-01 -.68276183E+01 -.22141976E+02 -.17449994E+02
+ .18051765E-01 -.68436299E+01 -.22157986E+02 -.17466005E+02
+ .18367671E-01 -.68586476E+01 -.22173002E+02 -.17481021E+02
+ .18689105E-01 -.68726382E+01 -.22186991E+02 -.17495011E+02
+ .19016164E-01 -.68855698E+01 -.22199920E+02 -.17507941E+02
+ .19348947E-01 -.68974124E+01 -.22211760E+02 -.17519782E+02
+ .19687554E-01 -.69081374E+01 -.22222482E+02 -.17530506E+02
+ .20032086E-01 -.69177182E+01 -.22232061E+02 -.17540085E+02
+ .20382648E-01 -.69261303E+01 -.22240470E+02 -.17548495E+02
+ .20739344E-01 -.69333511E+01 -.22247687E+02 -.17555714E+02
+ .21102282E-01 -.69393600E+01 -.22253693E+02 -.17561721E+02
+ .21471572E-01 -.69441389E+01 -.22258468E+02 -.17566498E+02
+ .21847325E-01 -.69476719E+01 -.22261997E+02 -.17570029E+02
+ .22229653E-01 -.69499457E+01 -.22264267E+02 -.17572300E+02
+ .22618672E-01 -.69509495E+01 -.22265266E+02 -.17573301E+02
+ .23014499E-01 -.69506748E+01 -.22264987E+02 -.17573024E+02
+ .23417252E-01 -.69491161E+01 -.22263423E+02 -.17571462E+02
+ .23827054E-01 -.69462706E+01 -.22260572E+02 -.17568614E+02
+ .24244028E-01 -.69421381E+01 -.22256433E+02 -.17564478E+02
+ .24668298E-01 -.69367214E+01 -.22251010E+02 -.17559057E+02
+ .25099994E-01 -.69300262E+01 -.22244308E+02 -.17552358E+02
+ .25539243E-01 -.69220609E+01 -.22236336E+02 -.17544389E+02
+ .25986180E-01 -.69128372E+01 -.22227104E+02 -.17535160E+02
+ .26440938E-01 -.69023693E+01 -.22216628E+02 -.17524688E+02
+ .26903655E-01 -.68906749E+01 -.22204925E+02 -.17512988E+02
+ .27374469E-01 -.68777741E+01 -.22192014E+02 -.17500082E+02
+ .27853522E-01 -.68636903E+01 -.22177920E+02 -.17485992E+02
+ .28340959E-01 -.68484497E+01 -.22162668E+02 -.17470745E+02
+ .28836925E-01 -.68320812E+01 -.22146288E+02 -.17454370E+02
+ .29341572E-01 -.68146168E+01 -.22128811E+02 -.17436898E+02
+ .29855049E-01 -.67960911E+01 -.22110272E+02 -.17418364E+02
+ .30377512E-01 -.67765411E+01 -.22090707E+02 -.17398806E+02
+ .30909119E-01 -.67560068E+01 -.22070157E+02 -.17378263E+02
+ .31450028E-01 -.67345302E+01 -.22048664E+02 -.17356776E+02
+ .32000404E-01 -.67121560E+01 -.22026272E+02 -.17334392E+02
+ .32560411E-01 -.66889307E+01 -.22003027E+02 -.17311155E+02
+ .33130218E-01 -.66649030E+01 -.21978979E+02 -.17287116E+02
+ .33709997E-01 -.66401235E+01 -.21954178E+02 -.17262324E+02
+ .34299922E-01 -.66146442E+01 -.21928675E+02 -.17236831E+02
+ .34900171E-01 -.65885189E+01 -.21902524E+02 -.17210691E+02
+ .35510924E-01 -.65618024E+01 -.21875780E+02 -.17183959E+02
+ .36132365E-01 -.65345505E+01 -.21848499E+02 -.17156690E+02
+ .36764681E-01 -.65068200E+01 -.21820738E+02 -.17128941E+02
+ .37408063E-01 -.64786682E+01 -.21792552E+02 -.17100770E+02
+ .38062704E-01 -.64501526E+01 -.21764001E+02 -.17072234E+02
+ .38728801E-01 -.64213309E+01 -.21735141E+02 -.17043390E+02
+ .39406555E-01 -.63922606E+01 -.21706030E+02 -.17014296E+02
+ .40096170E-01 -.63629988E+01 -.21676724E+02 -.16985009E+02
+ .40797853E-01 -.63336021E+01 -.21647280E+02 -.16955585E+02
+ .41511816E-01 -.63041259E+01 -.21617753E+02 -.16926079E+02
+ .42238272E-01 -.62746248E+01 -.21588198E+02 -.16896547E+02
+ .42977442E-01 -.62451512E+01 -.21558666E+02 -.16867040E+02
+ .43729547E-01 -.62157593E+01 -.21529212E+02 -.16837612E+02
+ .44494814E-01 -.61864887E+01 -.21499875E+02 -.16808302E+02
+ .45273474E-01 -.61574263E+01 -.21470741E+02 -.16779199E+02
+ .46065760E-01 -.61284681E+01 -.21441706E+02 -.16750196E+02
+ .46871910E-01 -.61002308E+01 -.21413386E+02 -.16721911E+02
+ .47692169E-01 -.60705592E+01 -.21383627E+02 -.16692189E+02
+ .48526782E-01 -.60479047E+01 -.21360878E+02 -.16669480E+02
+ .49376000E-01 -.60208181E+01 -.21333690E+02 -.16642335E+02
+ .50240080E-01 -.59880092E+01 -.21300773E+02 -.16609463E+02
+ .51119282E-01 -.59628454E+01 -.21275493E+02 -.16584232E+02
+ .52013869E-01 -.59361746E+01 -.21248698E+02 -.16557490E+02
+ .52924112E-01 -.59105460E+01 -.21222937E+02 -.16531784E+02
+ .53850284E-01 -.58852874E+01 -.21197535E+02 -.16506443E+02
+ .54792664E-01 -.58606088E+01 -.21172704E+02 -.16481676E+02
+ .55751535E-01 -.58364741E+01 -.21148405E+02 -.16457446E+02
+ .56727187E-01 -.58129115E+01 -.21124667E+02 -.16433782E+02
+ .57719913E-01 -.57899280E+01 -.21101496E+02 -.16410690E+02
+ .58730012E-01 -.57675331E+01 -.21078899E+02 -.16388179E+02
+ .59757787E-01 -.57457327E+01 -.21056883E+02 -.16366253E+02
+ .60803548E-01 -.57245303E+01 -.21035449E+02 -.16344917E+02
+ .61867610E-01 -.57039273E+01 -.21014599E+02 -.16324171E+02
+ .62950293E-01 -.56839228E+01 -.20994329E+02 -.16304012E+02
+ .64051923E-01 -.56645141E+01 -.20974636E+02 -.16284439E+02
+ .65172832E-01 -.56456963E+01 -.20955513E+02 -.16265445E+02
+ .66313357E-01 -.56274629E+01 -.20936954E+02 -.16247023E+02
+ .67473840E-01 -.56098056E+01 -.20918947E+02 -.16229163E+02
+ .68654633E-01 -.55927145E+01 -.20901481E+02 -.16211855E+02
+ .69856089E-01 -.55761786E+01 -.20884544E+02 -.16195087E+02
+ .71078570E-01 -.55601852E+01 -.20868121E+02 -.16178844E+02
+ .72322445E-01 -.55447206E+01 -.20852196E+02 -.16163113E+02
+ .73588088E-01 -.55297699E+01 -.20836752E+02 -.16147877E+02
+ .74875880E-01 -.55153173E+01 -.20821772E+02 -.16133118E+02
+ .76186208E-01 -.55013460E+01 -.20807235E+02 -.16118820E+02
+ .77519466E-01 -.54878386E+01 -.20793122E+02 -.16104961E+02
+ .78876057E-01 -.54747767E+01 -.20779411E+02 -.16091523E+02
+ .80256388E-01 -.54621414E+01 -.20766081E+02 -.16078485E+02
+ .81660875E-01 -.54499131E+01 -.20753108E+02 -.16065825E+02
+ .83089940E-01 -.54380718E+01 -.20740470E+02 -.16053522E+02
+ .84544014E-01 -.54265970E+01 -.20728141E+02 -.16041552E+02
+ .86023534E-01 -.54154675E+01 -.20716098E+02 -.16029893E+02
+ .87528946E-01 -.54046621E+01 -.20704314E+02 -.16018520E+02
+ .89060702E-01 -.53941590E+01 -.20692763E+02 -.16007409E+02
+ .90619265E-01 -.53839361E+01 -.20681417E+02 -.15996535E+02
+ .92205102E-01 -.53739709E+01 -.20670251E+02 -.15985873E+02
+ .93818691E-01 -.53642407E+01 -.20659234E+02 -.15975396E+02
+ .95460518E-01 -.53547225E+01 -.20648338E+02 -.15965078E+02
+ .97131077E-01 -.53453931E+01 -.20637534E+02 -.15954893E+02
+ .98830871E-01 -.53362287E+01 -.20626791E+02 -.15944812E+02
+ .10056041E+00 -.53272057E+01 -.20616078E+02 -.15934808E+02
+ .10232022E+00 -.53182999E+01 -.20605363E+02 -.15924852E+02
+ .10411082E+00 -.53094871E+01 -.20594613E+02 -.15914914E+02
+ .10593276E+00 -.53007428E+01 -.20583796E+02 -.15904966E+02
+ .10778659E+00 -.52920421E+01 -.20572877E+02 -.15894976E+02
+ .10967285E+00 -.52833603E+01 -.20561821E+02 -.15884914E+02
+ .11159213E+00 -.52746724E+01 -.20550592E+02 -.15874749E+02
+ .11354499E+00 -.52659532E+01 -.20539153E+02 -.15864449E+02
+ .11553202E+00 -.52571776E+01 -.20527468E+02 -.15853981E+02
+ .11755384E+00 -.52483204E+01 -.20515497E+02 -.15843313E+02
+ .11961103E+00 -.52393567E+01 -.20503202E+02 -.15832412E+02
+ .12170422E+00 -.52302617E+01 -.20490543E+02 -.15821242E+02
+ .12383404E+00 -.52210108E+01 -.20477479E+02 -.15809772E+02
+ .12600114E+00 -.52115798E+01 -.20463970E+02 -.15797966E+02
+ .12820616E+00 -.52019454E+01 -.20449973E+02 -.15785791E+02
+ .13044977E+00 -.51920846E+01 -.20435446E+02 -.15773212E+02
+ .13273264E+00 -.51819757E+01 -.20420346E+02 -.15760195E+02
+ .13505546E+00 -.51715976E+01 -.20404631E+02 -.15746706E+02
+ .13741893E+00 -.51609310E+01 -.20388258E+02 -.15732712E+02
+ .13982376E+00 -.51499580E+01 -.20371184E+02 -.15718180E+02
+ .14227068E+00 -.51386624E+01 -.20353365E+02 -.15703077E+02
+ .14476041E+00 -.51270300E+01 -.20334759E+02 -.15687375E+02
+ .14729372E+00 -.51150494E+01 -.20315324E+02 -.15671041E+02
+ .14987136E+00 -.51027113E+01 -.20295019E+02 -.15654049E+02
+ .15249411E+00 -.50900099E+01 -.20273804E+02 -.15636372E+02
+ .15516276E+00 -.50769421E+01 -.20251638E+02 -.15617985E+02
+ .15787811E+00 -.50635090E+01 -.20228484E+02 -.15598866E+02
+ .16064097E+00 -.50497152E+01 -.20204305E+02 -.15578995E+02
+ .16345219E+00 -.50355697E+01 -.20179066E+02 -.15558354E+02
+ .16631260E+00 -.50210858E+01 -.20152733E+02 -.15536930E+02
+ .16922307E+00 -.50062819E+01 -.20125276E+02 -.15514711E+02
+ .17218448E+00 -.49911811E+01 -.20096664E+02 -.15491688E+02
+ .17519771E+00 -.49758119E+01 -.20066870E+02 -.15467856E+02
+ .17826367E+00 -.49602083E+01 -.20035868E+02 -.15443214E+02
+ .18138328E+00 -.49444098E+01 -.20003635E+02 -.15417763E+02
+ .18455749E+00 -.49284613E+01 -.19970148E+02 -.15391507E+02
+ .18778724E+00 -.49124139E+01 -.19935388E+02 -.15364455E+02
+ .19107352E+00 -.48963240E+01 -.19899335E+02 -.15336617E+02
+ .19441731E+00 -.48802537E+01 -.19861973E+02 -.15308008E+02
+ .19781961E+00 -.48642710E+01 -.19823284E+02 -.15278645E+02
+ .20128145E+00 -.48484489E+01 -.19783253E+02 -.15248546E+02
+ .20480388E+00 -.48328659E+01 -.19741863E+02 -.15217732E+02
+ .20838795E+00 -.48176055E+01 -.19699099E+02 -.15186227E+02
+ .21203473E+00 -.48027560E+01 -.19654944E+02 -.15154053E+02
+ .21574534E+00 -.47884102E+01 -.19609379E+02 -.15121235E+02
+ .21952089E+00 -.47746654E+01 -.19562384E+02 -.15087799E+02
+ .22336250E+00 -.47616227E+01 -.19513936E+02 -.15053770E+02
+ .22727135E+00 -.47493873E+01 -.19464012E+02 -.15019173E+02
+ .23124859E+00 -.47380678E+01 -.19412583E+02 -.14984030E+02
+ .23529544E+00 -.47277763E+01 -.19359617E+02 -.14948366E+02
+ .23941311E+00 -.47186284E+01 -.19305078E+02 -.14912200E+02
+ .24360284E+00 -.47107424E+01 -.19248927E+02 -.14875553E+02
+ .24786589E+00 -.47042400E+01 -.19191119E+02 -.14838442E+02
+ .25220355E+00 -.46992457E+01 -.19131604E+02 -.14800880E+02
+ .25661711E+00 -.46958867E+01 -.19070327E+02 -.14762880E+02
+ .26110791E+00 -.46942931E+01 -.19007230E+02 -.14724452E+02
+ .26567730E+00 -.46945974E+01 -.18942244E+02 -.14685600E+02
+ .27032665E+00 -.46969343E+01 -.18875300E+02 -.14646327E+02
+ .27505737E+00 -.47014405E+01 -.18806318E+02 -.14606631E+02
+ .27987087E+00 -.47082540E+01 -.18735214E+02 -.14566504E+02
+ .28476861E+00 -.47175130E+01 -.18661893E+02 -.14525934E+02
+ .28975206E+00 -.47293553E+01 -.18586255E+02 -.14484902E+02
+ .29482272E+00 -.47439166E+01 -.18508187E+02 -.14443378E+02
+ .29998212E+00 -.47613287E+01 -.18427568E+02 -.14401326E+02
+ .30523181E+00 -.47817174E+01 -.18344259E+02 -.14358696E+02
+ .31057336E+00 -.48051996E+01 -.18258110E+02 -.14315422E+02
+ .31600840E+00 -.48318802E+01 -.18168951E+02 -.14271421E+02
+ .32153854E+00 -.48618486E+01 -.18076590E+02 -.14226591E+02
+ .32716547E+00 -.48951753E+01 -.17980815E+02 -.14180804E+02
+ .33289086E+00 -.49319076E+01 -.17881383E+02 -.14133903E+02
+ .33871645E+00 -.49720666E+01 -.17778027E+02 -.14085705E+02
+ .34464399E+00 -.50156442E+01 -.17670446E+02 -.14035990E+02
+ .35067526E+00 -.50626012E+01 -.17558313E+02 -.13984507E+02
+ .35681208E+00 -.51128671E+01 -.17441267E+02 -.13930971E+02
+ .36305629E+00 -.51663422E+01 -.17318927E+02 -.13875066E+02
+ .36940978E+00 -.52229013E+01 -.17190890E+02 -.13816455E+02
+ .37587445E+00 -.52824002E+01 -.17056747E+02 -.13754779E+02
+ .38245225E+00 -.53446842E+01 -.16916087E+02 -.13689676E+02
+ .38914516E+00 -.54095990E+01 -.16768517E+02 -.13620789E+02
+ .39595520E+00 -.54770009E+01 -.16613673E+02 -.13547778E+02
+ .40288442E+00 -.55467684E+01 -.16451235E+02 -.13470337E+02
+ .40993490E+00 -.56188106E+01 -.16280942E+02 -.13388201E+02
+ .41710876E+00 -.56930739E+01 -.16102600E+02 -.13301160E+02
+ .42440816E+00 -.57695440E+01 -.15916089E+02 -.13209060E+02
+ .43183530E+00 -.58482440E+01 -.15721371E+02 -.13111806E+02
+ .43939242E+00 -.59292281E+01 -.15518481E+02 -.13009361E+02
+ .44708179E+00 -.60125712E+01 -.15307531E+02 -.12901738E+02
+ .45490572E+00 -.60983565E+01 -.15088698E+02 -.12788991E+02
+ .46286657E+00 -.61866603E+01 -.14862214E+02 -.12671208E+02
+ .47096674E+00 -.62775378E+01 -.14628366E+02 -.12548498E+02
+ .47920865E+00 -.63710085E+01 -.14387478E+02 -.12420982E+02
+ .48759481E+00 -.64670442E+01 -.14139915E+02 -.12288790E+02
+ .49612771E+00 -.65655580E+01 -.13886072E+02 -.12152051E+02
+ .50480995E+00 -.66663967E+01 -.13626376E+02 -.12010894E+02
+ .51364412E+00 -.67693342E+01 -.13361286E+02 -.11865447E+02
+ .52263290E+00 -.68740677E+01 -.13091297E+02 -.11715838E+02
+ .53177897E+00 -.69802150E+01 -.12816936E+02 -.11562197E+02
+ .54108510E+00 -.70873129E+01 -.12538776E+02 -.11404664E+02
+ .55055409E+00 -.71948175E+01 -.12257430E+02 -.11243390E+02
+ .56018879E+00 -.73021043E+01 -.11973561E+02 -.11078542E+02
+ .56999209E+00 -.74084697E+01 -.11687881E+02 -.10910310E+02
+ .57996695E+00 -.75131329E+01 -.11401155E+02 -.10738909E+02
+ .59011638E+00 -.76152392E+01 -.11114201E+02 -.10564587E+02
+ .60044341E+00 -.77138638E+01 -.10827888E+02 -.10387623E+02
+ .61095117E+00 -.78080173E+01 -.10543135E+02 -.10208334E+02
+ .62164282E+00 -.78966526E+01 -.10260909E+02 -.10027074E+02
+ .63252157E+00 -.79786738E+01 -.99822158E+01 -.98442382E+01
+ .64359070E+00 -.80529471E+01 -.97080975E+01 -.96602623E+01
+ .65485353E+00 -.81183147E+01 -.94396193E+01 -.94756200E+01
+ .66631347E+00 -.81736106E+01 -.91778610E+01 -.92908232E+01
+ .67797395E+00 -.82176805E+01 -.89239031E+01 -.91064182E+01
+ .68983850E+00 -.82494039E+01 -.86788118E+01 -.89229814E+01
+ .70191067E+00 -.82677201E+01 -.84436208E+01 -.87411132E+01
+ .71419411E+00 -.82716572E+01 -.82193116E+01 -.85614311E+01
+ .72669251E+00 -.82603645E+01 -.80067900E+01 -.83845599E+01
+ .73940963E+00 -.82331472E+01 -.78068608E+01 -.82111207E+01
+ .75234929E+00 -.81895041E+01 -.76201991E+01 -.80417178E+01
+ .76551541E+00 -.81291662E+01 -.74473193E+01 -.78769237E+01
+ .77891193E+00 -.80521362E+01 -.72885416E+01 -.77172618E+01
+ .79254288E+00 -.79587272E+01 -.71439566E+01 -.75631874E+01
+ .80641239E+00 -.78495990E+01 -.70133891E+01 -.74150676E+01
+ .82052460E+00 -.77257891E+01 -.68963626E+01 -.72731594E+01
+ .83488378E+00 -.75887365E+01 -.67920658E+01 -.71375879E+01
+ .84949425E+00 -.74402954E+01 -.66993258E+01 -.70083254E+01
+ .86436040E+00 -.72827322E+01 -.66165901E+01 -.68851728E+01
+ .87948671E+00 -.71187035E+01 -.65419255E+01 -.67677454E+01
+ .89487772E+00 -.69512065E+01 -.64730392E+01 -.66554663E+01
+ .91053808E+00 -.67834937E+01 -.64073334E+01 -.65475713E+01
+ .92647250E+00 -.66189422E+01 -.63420055E+01 -.64431302E+01
+ .94268577E+00 -.64608625E+01 -.62742082E+01 -.63410923E+01
+ .95918277E+00 -.63122316E+01 -.62012919E+01 -.62403631E+01
+ .97596847E+00 -.61753261E+01 -.61211492E+01 -.61399263E+01
+ .99304792E+00 -.60512300E+01 -.60326945E+01 -.60390234E+01
+ .10104263E+01 -.59391819E+01 -.59365124E+01 -.59374111E+01
+ .10281087E+01 -.58357200E+01 -.58357200E+01 -.58357200E+01
+ .10461006E+01 -.57353896E+01 -.57353896E+01 -.57353896E+01
+ .10644074E+01 -.56367768E+01 -.56367768E+01 -.56367768E+01
+ .10830345E+01 -.55398558E+01 -.55398558E+01 -.55398558E+01
+ .11019876E+01 -.54445976E+01 -.54445976E+01 -.54445976E+01
+ .11212724E+01 -.53509742E+01 -.53509742E+01 -.53509742E+01
+ .11408947E+01 -.52589579E+01 -.52589579E+01 -.52589579E+01
+ .11608603E+01 -.51685215E+01 -.51685215E+01 -.51685215E+01
+ .11811754E+01 -.50796386E+01 -.50796386E+01 -.50796386E+01
+ .12018459E+01 -.49922823E+01 -.49922823E+01 -.49922823E+01
+ .12228782E+01 -.49064270E+01 -.49064270E+01 -.49064270E+01
+ .12442786E+01 -.48220469E+01 -.48220469E+01 -.48220469E+01
+ .12660535E+01 -.47391171E+01 -.47391171E+01 -.47391171E+01
+ .12882094E+01 -.46576127E+01 -.46576127E+01 -.46576127E+01
+ .13107531E+01 -.45775093E+01 -.45775093E+01 -.45775093E+01
+ .13336913E+01 -.44987831E+01 -.44987831E+01 -.44987831E+01
+ .13570309E+01 -.44214103E+01 -.44214103E+01 -.44214103E+01
+ .13807789E+01 -.43453679E+01 -.43453679E+01 -.43453679E+01
+ .14049425E+01 -.42706330E+01 -.42706330E+01 -.42706330E+01
+ .14295290E+01 -.41971833E+01 -.41971833E+01 -.41971833E+01
+ .14545458E+01 -.41249966E+01 -.41249966E+01 -.41249966E+01
+ .14800003E+01 -.40540512E+01 -.40540512E+01 -.40540512E+01
+ .15059003E+01 -.39843260E+01 -.39843260E+01 -.39843260E+01
+ .15322536E+01 -.39157998E+01 -.39157998E+01 -.39157998E+01
+ .15590680E+01 -.38484522E+01 -.38484522E+01 -.38484522E+01
+ .15863517E+01 -.37822628E+01 -.37822628E+01 -.37822628E+01
+ .16141129E+01 -.37172117E+01 -.37172117E+01 -.37172117E+01
+ .16423599E+01 -.36532794E+01 -.36532794E+01 -.36532794E+01
+ .16711012E+01 -.35904467E+01 -.35904467E+01 -.35904467E+01
+ .17003454E+01 -.35286946E+01 -.35286946E+01 -.35286946E+01
+ .17301015E+01 -.34680045E+01 -.34680045E+01 -.34680045E+01
+ .17603783E+01 -.34083583E+01 -.34083583E+01 -.34083583E+01
+ .17911849E+01 -.33497379E+01 -.33497379E+01 -.33497379E+01
+ .18225306E+01 -.32921257E+01 -.32921257E+01 -.32921257E+01
+ .18544249E+01 -.32355044E+01 -.32355044E+01 -.32355044E+01
+ .18868773E+01 -.31798569E+01 -.31798569E+01 -.31798569E+01
+ .19198977E+01 -.31251665E+01 -.31251665E+01 -.31251665E+01
+ .19534959E+01 -.30714167E+01 -.30714167E+01 -.30714167E+01
+ .19876821E+01 -.30185914E+01 -.30185914E+01 -.30185914E+01
+ .20224665E+01 -.29666746E+01 -.29666746E+01 -.29666746E+01
+ .20578597E+01 -.29156507E+01 -.29156507E+01 -.29156507E+01
+ .20938722E+01 -.28655044E+01 -.28655044E+01 -.28655044E+01
+ .21305150E+01 -.28162205E+01 -.28162205E+01 -.28162205E+01
+ .21677990E+01 -.27677843E+01 -.27677843E+01 -.27677843E+01
+ .22057355E+01 -.27201811E+01 -.27201811E+01 -.27201811E+01
+ .22443358E+01 -.26733967E+01 -.26733967E+01 -.26733967E+01
+ .22836117E+01 -.26274169E+01 -.26274169E+01 -.26274169E+01
+ .23235749E+01 -.25822279E+01 -.25822279E+01 -.25822279E+01
+ .23642375E+01 -.25378161E+01 -.25378161E+01 -.25378161E+01
+ .24056116E+01 -.24941682E+01 -.24941682E+01 -.24941682E+01
+ .24477098E+01 -.24512709E+01 -.24512709E+01 -.24512709E+01
+ .24905448E+01 -.24091115E+01 -.24091115E+01 -.24091115E+01
+ .25341293E+01 -.23676771E+01 -.23676771E+01 -.23676771E+01
+ .25784766E+01 -.23269554E+01 -.23269554E+01 -.23269554E+01
+ .26235999E+01 -.22869341E+01 -.22869341E+01 -.22869341E+01
+ .26695129E+01 -.22476010E+01 -.22476010E+01 -.22476010E+01
+ .27162294E+01 -.22089445E+01 -.22089445E+01 -.22089445E+01
+ .27637634E+01 -.21709528E+01 -.21709528E+01 -.21709528E+01
+ .28121293E+01 -.21336146E+01 -.21336146E+01 -.21336146E+01
+ .28613415E+01 -.20969185E+01 -.20969185E+01 -.20969185E+01
+ .29114150E+01 -.20608536E+01 -.20608536E+01 -.20608536E+01
+ .29623648E+01 -.20254089E+01 -.20254089E+01 -.20254089E+01
+ .30142061E+01 -.19905739E+01 -.19905739E+01 -.19905739E+01
+ .30669547E+01 -.19563380E+01 -.19563380E+01 -.19563380E+01
+ .31206265E+01 -.19226909E+01 -.19226909E+01 -.19226909E+01
+ .31752374E+01 -.18896225E+01 -.18896225E+01 -.18896225E+01
+ .32308041E+01 -.18571228E+01 -.18571228E+01 -.18571228E+01
+ .32873431E+01 -.18251821E+01 -.18251821E+01 -.18251821E+01
+ .33448716E+01 -.17937908E+01 -.17937908E+01 -.17937908E+01
+ .34034069E+01 -.17629394E+01 -.17629394E+01 -.17629394E+01
+ .34629665E+01 -.17326185E+01 -.17326185E+01 -.17326185E+01
+ .35235684E+01 -.17028192E+01 -.17028192E+01 -.17028192E+01
+ .35852309E+01 -.16735324E+01 -.16735324E+01 -.16735324E+01
+ .36479724E+01 -.16447493E+01 -.16447493E+01 -.16447493E+01
+ .37118119E+01 -.16164612E+01 -.16164612E+01 -.16164612E+01
+ .37767686E+01 -.15886597E+01 -.15886597E+01 -.15886597E+01
+ .38428621E+01 -.15613363E+01 -.15613363E+01 -.15613363E+01
+ .39101122E+01 -.15344828E+01 -.15344828E+01 -.15344828E+01
+ .39785391E+01 -.15080912E+01 -.15080912E+01 -.15080912E+01
+ .40481636E+01 -.14821535E+01 -.14821535E+01 -.14821535E+01
+ .41190064E+01 -.14566619E+01 -.14566619E+01 -.14566619E+01
+ .41910891E+01 -.14316088E+01 -.14316088E+01 -.14316088E+01
+ .42644331E+01 -.14069865E+01 -.14069865E+01 -.14069865E+01
+ .43390607E+01 -.13827877E+01 -.13827877E+01 -.13827877E+01
+ .44149943E+01 -.13590052E+01 -.13590052E+01 -.13590052E+01
+ .44922567E+01 -.13356316E+01 -.13356316E+01 -.13356316E+01
+ .45708712E+01 -.13126600E+01 -.13126600E+01 -.13126600E+01
+ .46508614E+01 -.12900836E+01 -.12900836E+01 -.12900836E+01
+ .47322515E+01 -.12678954E+01 -.12678954E+01 -.12678954E+01
+ .48150659E+01 -.12460889E+01 -.12460889E+01 -.12460889E+01
+ .48993295E+01 -.12246574E+01 -.12246574E+01 -.12246574E+01
+ .49850678E+01 -.12035944E+01 -.12035944E+01 -.12035944E+01
+ .50723065E+01 -.11828938E+01 -.11828938E+01 -.11828938E+01
+ .51610718E+01 -.11625492E+01 -.11625492E+01 -.11625492E+01
+ .52513906E+01 -.11425545E+01 -.11425545E+01 -.11425545E+01
+ .53432899E+01 -.11229037E+01 -.11229037E+01 -.11229037E+01
+ .54367975E+01 -.11035908E+01 -.11035908E+01 -.11035908E+01
+ .55319415E+01 -.10846102E+01 -.10846102E+01 -.10846102E+01
+ .56287504E+01 -.10659559E+01 -.10659559E+01 -.10659559E+01
+ .57272536E+01 -.10476225E+01 -.10476225E+01 -.10476225E+01
+ .58274805E+01 -.10296045E+01 -.10296045E+01 -.10296045E+01
+ .59294614E+01 -.10118963E+01 -.10118963E+01 -.10118963E+01
+ .60332270E+01 -.99449265E+00 -.99449265E+00 -.99449265E+00
+ .61388085E+01 -.97738836E+00 -.97738836E+00 -.97738836E+00
+ .62462376E+01 -.96057824E+00 -.96057824E+00 -.96057824E+00
+ .63555468E+01 -.94405724E+00 -.94405724E+00 -.94405724E+00
+ .64667688E+01 -.92782038E+00 -.92782038E+00 -.92782038E+00
+ .65799373E+01 -.91186278E+00 -.91186278E+00 -.91186278E+00
+ .66950862E+01 -.89617964E+00 -.89617964E+00 -.89617964E+00
+ .68122502E+01 -.88076623E+00 -.88076623E+00 -.88076623E+00
+ .69314646E+01 -.86561792E+00 -.86561792E+00 -.86561792E+00
+ .70527652E+01 -.85073014E+00 -.85073014E+00 -.85073014E+00
+ .71761886E+01 -.83609842E+00 -.83609842E+00 -.83609842E+00
+ .73017719E+01 -.82171835E+00 -.82171835E+00 -.82171835E+00
+ .74295529E+01 -.80758560E+00 -.80758560E+00 -.80758560E+00
+ .75595701E+01 -.79369592E+00 -.79369592E+00 -.79369592E+00
+ .76918626E+01 -.78004513E+00 -.78004513E+00 -.78004513E+00
+ .78264702E+01 -.76662912E+00 -.76662912E+00 -.76662912E+00
+ .79634334E+01 -.75344386E+00 -.75344386E+00 -.75344386E+00
+ .81027935E+01 -.74048536E+00 -.74048536E+00 -.74048536E+00
+ .82445924E+01 -.72774974E+00 -.72774974E+00 -.72774974E+00
+ .83888727E+01 -.71523316E+00 -.71523316E+00 -.71523316E+00
+ .85356780E+01 -.70293186E+00 -.70293186E+00 -.70293186E+00
+ .86850524E+01 -.69084212E+00 -.69084212E+00 -.69084212E+00
+ .88370408E+01 -.67896031E+00 -.67896031E+00 -.67896031E+00
+ .89916890E+01 -.66728286E+00 -.66728286E+00 -.66728286E+00
+ .91490436E+01 -.65580625E+00 -.65580625E+00 -.65580625E+00
+ .93091518E+01 -.64452703E+00 -.64452703E+00 -.64452703E+00
+ .94720620E+01 -.63344180E+00 -.63344180E+00 -.63344180E+00
+ .96378231E+01 -.62254722E+00 -.62254722E+00 -.62254722E+00
+ .98064850E+01 -.61184002E+00 -.61184002E+00 -.61184002E+00
+ .99780984E+01 -.60131698E+00 -.60131698E+00 -.60131698E+00
+ .10152715E+02 -.59097492E+00 -.59097492E+00 -.59097492E+00
+ .10330388E+02 -.58081073E+00 -.58081073E+00 -.58081073E+00
+ .10511169E+02 -.57082135E+00 -.57082135E+00 -.57082135E+00
+ .10695115E+02 -.56100379E+00 -.56100379E+00 -.56100379E+00
+ .10882279E+02 -.55135507E+00 -.55135507E+00 -.55135507E+00
+ .11072719E+02 -.54187231E+00 -.54187231E+00 -.54187231E+00
+ .11266492E+02 -.53255264E+00 -.53255264E+00 -.53255264E+00
+ .11463656E+02 -.52339326E+00 -.52339326E+00 -.52339326E+00
+ .11664270E+02 -.51439141E+00 -.51439141E+00 -.51439141E+00
+ .11868394E+02 -.50554438E+00 -.50554438E+00 -.50554438E+00
+ .12076091E+02 -.49684951E+00 -.49684951E+00 -.49684951E+00
+ .12287423E+02 -.48830419E+00 -.48830419E+00 -.48830419E+00
+ .12502453E+02 -.47990584E+00 -.47990584E+00 -.47990584E+00
+ .12721246E+02 -.47165193E+00 -.47165193E+00 -.47165193E+00
+ .12943867E+02 -.46353998E+00 -.46353998E+00 -.46353998E+00
+ .13170385E+02 -.45556755E+00 -.45556755E+00 -.45556755E+00
+ .13400867E+02 -.44773223E+00 -.44773223E+00 -.44773223E+00
+ .13635382E+02 -.44003168E+00 -.44003168E+00 -.44003168E+00
+ .13874001E+02 -.43246357E+00 -.43246357E+00 -.43246357E+00
+ .14116796E+02 -.42502562E+00 -.42502562E+00 -.42502562E+00
+ .14363840E+02 -.41771560E+00 -.41771560E+00 -.41771560E+00
+ .14615207E+02 -.41053130E+00 -.41053130E+00 -.41053130E+00
+ .14870973E+02 -.40347056E+00 -.40347056E+00 -.40347056E+00
+ .15131215E+02 -.39653127E+00 -.39653127E+00 -.39653127E+00
+ .15396012E+02 -.38971132E+00 -.38971132E+00 -.38971132E+00
+ .15665442E+02 -.38300867E+00 -.38300867E+00 -.38300867E+00
+ .15939587E+02 -.37642129E+00 -.37642129E+00 -.37642129E+00
+ .16218530E+02 -.36994722E+00 -.36994722E+00 -.36994722E+00
+ .16502354E+02 -.36358449E+00 -.36358449E+00 -.36358449E+00
+ .16791145E+02 -.35733119E+00 -.35733119E+00 -.35733119E+00
+ .17084990E+02 -.35118545E+00 -.35118545E+00 -.35118545E+00
+ .17383978E+02 -.34514540E+00 -.34514540E+00 -.34514540E+00
+ .17688197E+02 -.33920924E+00 -.33920924E+00 -.33920924E+00
+ .17997741E+02 -.33337518E+00 -.33337518E+00 -.33337518E+00
+ .18312701E+02 -.32764145E+00 -.32764145E+00 -.32764145E+00
+ .18633174E+02 -.32200634E+00 -.32200634E+00 -.32200634E+00
+ .18959254E+02 -.31646815E+00 -.31646815E+00 -.31646815E+00
+ .19291041E+02 -.31102521E+00 -.31102521E+00 -.31102521E+00
+ .19628634E+02 -.30567588E+00 -.30567588E+00 -.30567588E+00
+ .19972135E+02 -.30041855E+00 -.30041855E+00 -.30041855E+00
+ .20321648E+02 -.29525165E+00 -.29525165E+00 -.29525165E+00
+ .20677277E+02 -.29017361E+00 -.29017361E+00 -.29017361E+00
+ .21039129E+02 -.28518291E+00 -.28518291E+00 -.28518291E+00
+ .21407314E+02 -.28027804E+00 -.28027804E+00 -.28027804E+00
+ .21781942E+02 -.27545754E+00 -.27545754E+00 -.27545754E+00
+ .22163126E+02 -.27071994E+00 -.27071994E+00 -.27071994E+00
+ .22550980E+02 -.26606382E+00 -.26606382E+00 -.26606382E+00
+ .22945622E+02 -.26148779E+00 -.26148779E+00 -.26148779E+00
+ .23347171E+02 -.25699045E+00 -.25699045E+00 -.25699045E+00
+ .23755746E+02 -.25257047E+00 -.25257047E+00 -.25257047E+00
+ .24171472E+02 -.24822651E+00 -.24822651E+00 -.24822651E+00
+ .24594473E+02 -.24395725E+00 -.24395725E+00 -.24395725E+00
+ .25024876E+02 -.23976143E+00 -.23976143E+00 -.23976143E+00
+ .25462811E+02 -.23563777E+00 -.23563777E+00 -.23563777E+00
+ .25908410E+02 -.23158503E+00 -.23158503E+00 -.23158503E+00
+ .26361808E+02 -.22760199E+00 -.22760199E+00 -.22760199E+00
+ .26823139E+02 -.22368746E+00 -.22368746E+00 -.22368746E+00
+ .27292544E+02 -.21984026E+00 -.21984026E+00 -.21984026E+00
+ .27770164E+02 -.21605922E+00 -.21605922E+00 -.21605922E+00
+ .28256142E+02 -.21234322E+00 -.21234322E+00 -.21234322E+00
+ .28750624E+02 -.20869112E+00 -.20869112E+00 -.20869112E+00
+ .29253760E+02 -.20510184E+00 -.20510184E+00 -.20510184E+00
+ .29765701E+02 -.20157429E+00 -.20157429E+00 -.20157429E+00
+ .30286601E+02 -.19810741E+00 -.19810741E+00 -.19810741E+00
+ .30816616E+02 -.19470016E+00 -.19470016E+00 -.19470016E+00
+ .31355907E+02 -.19135151E+00 -.19135151E+00 -.19135151E+00
+ .31904635E+02 -.18806045E+00 -.18806045E+00 -.18806045E+00
+ .32462966E+02 -.18482599E+00 -.18482599E+00 -.18482599E+00
+ .33031068E+02 -.18164717E+00 -.18164717E+00 -.18164717E+00
+ .33609112E+02 -.17852302E+00 -.17852302E+00 -.17852302E+00
+ .34197271E+02 -.17545259E+00 -.17545259E+00 -.17545259E+00
+ .34795724E+02 -.17243498E+00 -.17243498E+00 -.17243498E+00
+ .35404649E+02 -.16946927E+00 -.16946927E+00 -.16946927E+00
+ .36024230E+02 -.16655457E+00 -.16655457E+00 -.16655457E+00
+ .36654654E+02 -.16368999E+00 -.16368999E+00 -.16368999E+00
+ .37296111E+02 -.16087468E+00 -.16087468E+00 -.16087468E+00
+ .37948793E+02 -.15810780E+00 -.15810780E+00 -.15810780E+00
+ .38612896E+02 -.15538850E+00 -.15538850E+00 -.15538850E+00
+ .39288622E+02 -.15271597E+00 -.15271597E+00 -.15271597E+00
+ .39976173E+02 -.15008940E+00 -.15008940E+00 -.15008940E+00
+ .40675756E+02 -.14750801E+00 -.14750801E+00 -.14750801E+00
+ .41387582E+02 -.14497102E+00 -.14497102E+00 -.14497102E+00
+ .42111864E+02 -.14247766E+00 -.14247766E+00 -.14247766E+00
+ .42848822E+02 -.14002719E+00 -.14002719E+00 -.14002719E+00
+ .43598676E+02 -.13761886E+00 -.13761886E+00 -.13761886E+00
+&END
+&WAVEFUNCTION
+ 631 CHANNELS=1
+ .78125000E-03 .25413011E-03 .10293989E-05 .46196422E-10
+ .79492188E-03 .25857739E-03 .10657431E-05 .48664424E-10
+ .80883301E-03 .26310249E-03 .11033705E-05 .51264278E-10
+ .82298759E-03 .26770679E-03 .11423263E-05 .54003026E-10
+ .83738987E-03 .27239166E-03 .11826576E-05 .56888090E-10
+ .85204419E-03 .27715851E-03 .12244128E-05 .59927286E-10
+ .86695496E-03 .28200879E-03 .12676422E-05 .63128848E-10
+ .88212668E-03 .28694394E-03 .13123979E-05 .66501450E-10
+ .89756389E-03 .29196546E-03 .13587337E-05 .70054231E-10
+ .91327126E-03 .29707486E-03 .14067054E-05 .73796815E-10
+ .92925351E-03 .30227367E-03 .14563709E-05 .77739343E-10
+ .94551544E-03 .30756346E-03 .15077898E-05 .81892497E-10
+ .96206196E-03 .31294582E-03 .15610242E-05 .86267530E-10
+ .97889805E-03 .31842238E-03 .16161380E-05 .90876294E-10
+ .99602877E-03 .32399477E-03 .16731977E-05 .95731277E-10
+ .10134593E-02 .32966468E-03 .17322719E-05 .10084563E-09
+ .10311948E-02 .33543382E-03 .17934318E-05 .10623322E-09
+ .10492407E-02 .34130392E-03 .18567510E-05 .11190863E-09
+ .10676024E-02 .34727674E-03 .19223058E-05 .11788724E-09
+ .10862855E-02 .35335409E-03 .19901750E-05 .12418526E-09
+ .11052955E-02 .35953779E-03 .20604405E-05 .13081974E-09
+ .11246381E-02 .36582971E-03 .21331867E-05 .13780867E-09
+ .11443193E-02 .37223173E-03 .22085013E-05 .14517096E-09
+ .11643449E-02 .37874580E-03 .22864750E-05 .15292659E-09
+ .11847209E-02 .38537386E-03 .23672016E-05 .16109655E-09
+ .12054535E-02 .39211791E-03 .24507783E-05 .16970298E-09
+ .12265490E-02 .39897998E-03 .25373058E-05 .17876920E-09
+ .12480136E-02 .40596214E-03 .26268882E-05 .18831977E-09
+ .12698538E-02 .41306649E-03 .27196334E-05 .19838058E-09
+ .12920763E-02 .42029516E-03 .28156531E-05 .20897887E-09
+ .13146876E-02 .42765034E-03 .29150628E-05 .22014336E-09
+ .13376946E-02 .43513423E-03 .30179823E-05 .23190431E-09
+ .13611043E-02 .44274910E-03 .31245354E-05 .24429358E-09
+ .13849236E-02 .45049722E-03 .32348505E-05 .25734472E-09
+ .14091598E-02 .45838094E-03 .33490604E-05 .27109312E-09
+ .14338201E-02 .46640262E-03 .34673025E-05 .28557600E-09
+ .14589119E-02 .47456469E-03 .35897193E-05 .30083262E-09
+ .14844429E-02 .48286959E-03 .37164581E-05 .31690431E-09
+ .15104206E-02 .49131983E-03 .38476715E-05 .33383461E-09
+ .15368530E-02 .49991794E-03 .39835175E-05 .35166939E-09
+ .15637479E-02 .50866653E-03 .41241596E-05 .37045698E-09
+ .15911135E-02 .51756822E-03 .42697673E-05 .39024827E-09
+ .16189580E-02 .52662569E-03 .44205157E-05 .41109689E-09
+ .16472898E-02 .53584167E-03 .45765864E-05 .43305933E-09
+ .16761173E-02 .54521893E-03 .47381673E-05 .45619509E-09
+ .17054494E-02 .55476029E-03 .49054529E-05 .48056684E-09
+ .17352948E-02 .56446863E-03 .50786446E-05 .50624064E-09
+ .17656624E-02 .57434687E-03 .52579510E-05 .53328602E-09
+ .17965615E-02 .58439797E-03 .54435879E-05 .56177628E-09
+ .18280013E-02 .59462498E-03 .56357788E-05 .59178859E-09
+ .18599914E-02 .60503096E-03 .58347552E-05 .62340428E-09
+ .18925412E-02 .61561904E-03 .60407565E-05 .65670900E-09
+ .19256607E-02 .62639243E-03 .62540308E-05 .69179299E-09
+ .19593597E-02 .63735434E-03 .64748348E-05 .72875129E-09
+ .19936485E-02 .64850810E-03 .67034345E-05 .76768405E-09
+ .20285374E-02 .65985705E-03 .69401050E-05 .80869675E-09
+ .20640368E-02 .67140460E-03 .71851312E-05 .85190049E-09
+ .21001574E-02 .68315425E-03 .74388081E-05 .89741235E-09
+ .21369102E-02 .69510951E-03 .77014413E-05 .94535562E-09
+ .21743061E-02 .70727400E-03 .79733467E-05 .99586020E-09
+ .22123565E-02 .71965137E-03 .82548519E-05 .10490629E-08
+ .22510727E-02 .73224534E-03 .85462957E-05 .11051079E-08
+ .22904665E-02 .74505972E-03 .88480290E-05 .11641471E-08
+ .23305496E-02 .75809835E-03 .91604150E-05 .12263403E-08
+ .23713343E-02 .77136517E-03 .94838299E-05 .12918561E-08
+ .24128326E-02 .78486415E-03 .98186630E-05 .13608721E-08
+ .24550572E-02 .79859938E-03 .10165317E-04 .14335751E-08
+ .24980207E-02 .81257498E-03 .10524210E-04 .15101621E-08
+ .25417360E-02 .82679515E-03 .10895774E-04 .15908408E-08
+ .25862164E-02 .84126419E-03 .11280456E-04 .16758295E-08
+ .26314752E-02 .85598644E-03 .11678719E-04 .17653587E-08
+ .26775260E-02 .87096634E-03 .12091043E-04 .18596708E-08
+ .27243827E-02 .88620839E-03 .12517923E-04 .19590214E-08
+ .27720594E-02 .90171718E-03 .12959875E-04 .20636797E-08
+ .28205705E-02 .91749739E-03 .13417429E-04 .21739292E-08
+ .28699305E-02 .93355376E-03 .13891137E-04 .22900686E-08
+ .29201542E-02 .94989113E-03 .14381570E-04 .24124126E-08
+ .29712569E-02 .96651441E-03 .14889317E-04 .25412926E-08
+ .30232539E-02 .98342861E-03 .15414989E-04 .26770578E-08
+ .30761609E-02 .10006388E-02 .15959221E-04 .28200761E-08
+ .31299937E-02 .10181502E-02 .16522665E-04 .29707349E-08
+ .31847686E-02 .10359681E-02 .17106002E-04 .31294423E-08
+ .32405020E-02 .10540978E-02 .17709934E-04 .32966285E-08
+ .32972108E-02 .10725447E-02 .18335186E-04 .34727463E-08
+ .33549120E-02 .10913145E-02 .18982512E-04 .36582728E-08
+ .34136230E-02 .11104128E-02 .19652692E-04 .38537108E-08
+ .34733614E-02 .11298453E-02 .20346532E-04 .40595897E-08
+ .35341452E-02 .11496179E-02 .21064867E-04 .42764673E-08
+ .35959927E-02 .11697366E-02 .21808561E-04 .45049312E-08
+ .36589226E-02 .11902073E-02 .22578511E-04 .47456004E-08
+ .37229538E-02 .12110363E-02 .23375643E-04 .49991268E-08
+ .37881054E-02 .12322298E-02 .24200916E-04 .52661973E-08
+ .38543973E-02 .12537943E-02 .25055325E-04 .55475356E-08
+ .39218492E-02 .12757361E-02 .25939897E-04 .58439037E-08
+ .39904816E-02 .12980619E-02 .26855696E-04 .61561047E-08
+ .40603150E-02 .13207785E-02 .27803827E-04 .64849844E-08
+ .41313705E-02 .13438926E-02 .28785429E-04 .68314338E-08
+ .42036695E-02 .13674113E-02 .29801685E-04 .71963914E-08
+ .42772337E-02 .13913415E-02 .30853817E-04 .75808460E-08
+ .43520853E-02 .14156906E-02 .31943092E-04 .79858393E-08
+ .44282468E-02 .14404658E-02 .33070822E-04 .84124683E-08
+ .45057411E-02 .14656746E-02 .34238363E-04 .88618889E-08
+ .45845916E-02 .14913246E-02 .35447120E-04 .93353187E-08
+ .46648220E-02 .15174235E-02 .36698549E-04 .98340403E-08
+ .47464564E-02 .15439792E-02 .37994156E-04 .10359405E-07
+ .48295193E-02 .15709996E-02 .39335500E-04 .10912835E-07
+ .49140359E-02 .15984930E-02 .40724196E-04 .11495832E-07
+ .50000316E-02 .16264675E-02 .42161915E-04 .12109973E-07
+ .50875321E-02 .16549316E-02 .43650387E-04 .12756922E-07
+ .51765639E-02 .16838939E-02 .45191404E-04 .13438434E-07
+ .52671538E-02 .17133631E-02 .46786820E-04 .14156352E-07
+ .53593290E-02 .17433481E-02 .48438555E-04 .14912624E-07
+ .54531172E-02 .17738579E-02 .50148597E-04 .15709297E-07
+ .55485468E-02 .18049016E-02 .51919004E-04 .16548529E-07
+ .56456464E-02 .18364887E-02 .53751907E-04 .17432595E-07
+ .57444452E-02 .18686286E-02 .55649511E-04 .18363889E-07
+ .58449730E-02 .19013310E-02 .57614100E-04 .19344934E-07
+ .59472600E-02 .19346058E-02 .59648038E-04 .20378387E-07
+ .60513370E-02 .19684630E-02 .61753772E-04 .21467049E-07
+ .61572354E-02 .20029128E-02 .63933836E-04 .22613869E-07
+ .62649871E-02 .20379655E-02 .66190854E-04 .23821953E-07
+ .63746243E-02 .20736318E-02 .68527541E-04 .25094574E-07
+ .64861803E-02 .21099223E-02 .70946708E-04 .26435180E-07
+ .65996884E-02 .21468480E-02 .73451267E-04 .27847401E-07
+ .67151830E-02 .21844201E-02 .76044230E-04 .29335065E-07
+ .68326987E-02 .22226497E-02 .78728718E-04 .30902200E-07
+ .69522709E-02 .22615485E-02 .81507960E-04 .32553052E-07
+ .70739356E-02 .23011281E-02 .84385300E-04 .34292093E-07
+ .71977295E-02 .23414006E-02 .87364200E-04 .36124034E-07
+ .73236898E-02 .23823779E-02 .90448242E-04 .38053837E-07
+ .74518543E-02 .24240725E-02 .93641137E-04 .40086730E-07
+ .75822618E-02 .24664969E-02 .96946725E-04 .42228219E-07
+ .77149514E-02 .25096639E-02 .10036898E-03 .44484106E-07
+ .78499630E-02 .25535865E-02 .10391203E-03 .46860500E-07
+ .79873374E-02 .25982780E-02 .10758012E-03 .49363840E-07
+ .81271158E-02 .26437517E-02 .11137767E-03 .52000905E-07
+ .82693403E-02 .26900214E-02 .11530925E-03 .54778840E-07
+ .84140538E-02 .27371011E-02 .11937959E-03 .57705167E-07
+ .85612997E-02 .27850049E-02 .12359358E-03 .60787815E-07
+ .87111224E-02 .28337472E-02 .12795628E-03 .64035132E-07
+ .88635671E-02 .28833428E-02 .13247295E-03 .67455915E-07
+ .90186795E-02 .29338066E-02 .13714902E-03 .71059428E-07
+ .91765064E-02 .29851538E-02 .14199010E-03 .74855432E-07
+ .93370953E-02 .30373998E-02 .14700202E-03 .78854209E-07
+ .95004944E-02 .30905605E-02 .15219081E-03 .83066589E-07
+ .96667531E-02 .31446518E-02 .15756270E-03 .87503981E-07
+ .98359213E-02 .31996901E-02 .16312415E-03 .92178404E-07
+ .10008050E-01 .32556919E-02 .16888185E-03 .97102517E-07
+ .10183191E-01 .33126741E-02 .17484271E-03 .10228966E-06
+ .10361397E-01 .33706540E-02 .18101391E-03 .10775387E-06
+ .10542721E-01 .34296488E-02 .18740285E-03 .11350996E-06
+ .10727219E-01 .34896766E-02 .19401723E-03 .11957351E-06
+ .10914945E-01 .35507553E-02 .20086498E-03 .12596095E-06
+ .11105957E-01 .36129034E-02 .20795433E-03 .13268957E-06
+ .11300311E-01 .36761396E-02 .21529381E-03 .13977759E-06
+ .11498066E-01 .37404830E-02 .22289223E-03 .14724421E-06
+ .11699282E-01 .38059530E-02 .23075873E-03 .15510965E-06
+ .11904020E-01 .38725694E-02 .23890274E-03 .16339520E-06
+ .12112340E-01 .39403521E-02 .24733406E-03 .17212331E-06
+ .12324306E-01 .40093218E-02 .25606280E-03 .18131761E-06
+ .12539981E-01 .40794991E-02 .26509947E-03 .19100300E-06
+ .12759431E-01 .41509054E-02 .27445489E-03 .20120570E-06
+ .12982721E-01 .42235620E-02 .28414032E-03 .21195333E-06
+ .13209919E-01 .42974909E-02 .29416738E-03 .22327500E-06
+ .13441092E-01 .43727145E-02 .30454811E-03 .23520136E-06
+ .13676311E-01 .44492555E-02 .31529496E-03 .24776470E-06
+ .13915647E-01 .45271369E-02 .32642085E-03 .26099904E-06
+ .14159171E-01 .46063823E-02 .33793912E-03 .27494021E-06
+ .14406956E-01 .46870155E-02 .34986359E-03 .28962595E-06
+ .14659078E-01 .47690610E-02 .36220857E-03 .30509602E-06
+ .14915612E-01 .48525435E-02 .37498889E-03 .32139229E-06
+ .15176635E-01 .49374882E-02 .38821985E-03 .33855889E-06
+ .15442226E-01 .50239208E-02 .40191734E-03 .35664228E-06
+ .15712465E-01 .51118674E-02 .41609779E-03 .37569142E-06
+ .15987433E-01 .52013546E-02 .43077820E-03 .39575786E-06
+ .16267213E-01 .52924093E-02 .44597616E-03 .41689592E-06
+ .16551890E-01 .53850592E-02 .46170990E-03 .43916281E-06
+ .16841548E-01 .54793322E-02 .47799828E-03 .46261880E-06
+ .17136275E-01 .55752568E-02 .49486082E-03 .48732738E-06
+ .17436160E-01 .56728620E-02 .51231772E-03 .51335540E-06
+ .17741292E-01 .57721773E-02 .53038989E-03 .54077332E-06
+ .18051765E-01 .58732329E-02 .54909899E-03 .56965532E-06
+ .18367671E-01 .59760591E-02 .56846742E-03 .60007956E-06
+ .18689105E-01 .60806873E-02 .58851836E-03 .63212837E-06
+ .19016164E-01 .61871489E-02 .60927583E-03 .66588845E-06
+ .19348947E-01 .62954762E-02 .63076466E-03 .70145116E-06
+ .19687554E-01 .64057021E-02 .65301058E-03 .73891271E-06
+ .20032086E-01 .65178599E-02 .67604018E-03 .77837444E-06
+ .20382648E-01 .66319835E-02 .69988103E-03 .81994311E-06
+ .20739344E-01 .67481076E-02 .72456163E-03 .86373116E-06
+ .21102282E-01 .68662672E-02 .75011148E-03 .90985703E-06
+ .21471572E-01 .69864983E-02 .77656112E-03 .95844550E-06
+ .21847325E-01 .71088372E-02 .80394217E-03 .10096280E-05
+ .22229653E-01 .72333211E-02 .83228731E-03 .10635428E-05
+ .22618672E-01 .73599877E-02 .86163042E-03 .11203359E-05
+ .23014499E-01 .74888754E-02 .89200651E-03 .11801608E-05
+ .23417252E-01 .76200234E-02 .92345185E-03 .12431792E-05
+ .23827054E-01 .77534713E-02 .95600396E-03 .13095616E-05
+ .24244028E-01 .78892599E-02 .98970165E-03 .13794874E-05
+ .24668298E-01 .80274302E-02 .10245851E-02 .14531455E-05
+ .25099994E-01 .81680243E-02 .10606960E-02 .15307352E-05
+ .25539243E-01 .83110849E-02 .10980772E-02 .16124662E-05
+ .25986180E-01 .84566555E-02 .11367733E-02 .16985592E-05
+ .26440938E-01 .86047803E-02 .11768304E-02 .17892471E-05
+ .26903655E-01 .87555044E-02 .12182961E-02 .18847747E-05
+ .27374469E-01 .89088737E-02 .12612199E-02 .19854003E-05
+ .27853522E-01 .90649349E-02 .13056527E-02 .20913957E-05
+ .28340959E-01 .92237355E-02 .13516473E-02 .22030472E-05
+ .28836925E-01 .93853239E-02 .13992584E-02 .23206564E-05
+ .29341572E-01 .95497493E-02 .14485426E-02 .24445409E-05
+ .29855049E-01 .97170618E-02 .14995583E-02 .25750352E-05
+ .30377512E-01 .98873127E-02 .15523660E-02 .27124917E-05
+ .30909119E-01 .10060554E-01 .16070285E-02 .28572816E-05
+ .31450028E-01 .10236838E-01 .16636104E-02 .30097956E-05
+ .32000404E-01 .10416219E-01 .17221788E-02 .31704454E-05
+ .32560411E-01 .10598752E-01 .17828030E-02 .33396646E-05
+ .33130218E-01 .10784492E-01 .18455547E-02 .35179098E-05
+ .33709997E-01 .10973497E-01 .19105081E-02 .37056618E-05
+ .34299922E-01 .11165825E-01 .19777401E-02 .39034272E-05
+ .34900171E-01 .11361533E-01 .20473298E-02 .41117394E-05
+ .35510924E-01 .11560683E-01 .21193595E-02 .43311600E-05
+ .36132365E-01 .11763336E-01 .21939141E-02 .45622808E-05
+ .36764681E-01 .11969552E-01 .22710814E-02 .48057248E-05
+ .37408063E-01 .12179397E-01 .23509523E-02 .50621482E-05
+ .38062704E-01 .12392935E-01 .24336207E-02 .53322419E-05
+ .38728801E-01 .12610230E-01 .25191838E-02 .56167337E-05
+ .39406555E-01 .12831351E-01 .26077421E-02 .59163899E-05
+ .40096170E-01 .13056365E-01 .26993994E-02 .62320177E-05
+ .40797853E-01 .13285341E-01 .27942632E-02 .65644668E-05
+ .41511816E-01 .13518351E-01 .28924446E-02 .69146322E-05
+ .42238272E-01 .13755466E-01 .29940584E-02 .72834564E-05
+ .42977442E-01 .13996759E-01 .30992234E-02 .76719319E-05
+ .43729547E-01 .14242306E-01 .32080624E-02 .80811037E-05
+ .44494814E-01 .14492182E-01 .33207023E-02 .85120723E-05
+ .45273474E-01 .14746465E-01 .34372743E-02 .89659964E-05
+ .46065760E-01 .15005234E-01 .35579140E-02 .94440962E-05
+ .46871910E-01 .15268569E-01 .36827616E-02 .99476566E-05
+ .47692169E-01 .15536551E-01 .38119620E-02 .10478030E-04
+ .48526782E-01 .15809266E-01 .39456648E-02 .11036642E-04
+ .49376000E-01 .16086797E-01 .40840249E-02 .11624991E-04
+ .50240080E-01 .16369231E-01 .42272022E-02 .12244657E-04
+ .51119282E-01 .16656657E-01 .43753617E-02 .12897302E-04
+ .52013869E-01 .16949164E-01 .45286744E-02 .13584677E-04
+ .52924112E-01 .17246845E-01 .46873164E-02 .14308625E-04
+ .53850284E-01 .17549792E-01 .48514701E-02 .15071086E-04
+ .54792664E-01 .17858101E-01 .50213235E-02 .15874103E-04
+ .55751535E-01 .18171869E-01 .51970711E-02 .16719827E-04
+ .56727187E-01 .18491194E-01 .53789137E-02 .17610522E-04
+ .57719913E-01 .18816179E-01 .55670586E-02 .18548570E-04
+ .58730012E-01 .19146924E-01 .57617197E-02 .19536482E-04
+ .59757787E-01 .19483536E-01 .59631183E-02 .20576898E-04
+ .60803548E-01 .19826121E-01 .61714825E-02 .21672598E-04
+ .61867610E-01 .20174789E-01 .63870478E-02 .22826509E-04
+ .62950293E-01 .20529649E-01 .66100573E-02 .24041712E-04
+ .64051923E-01 .20890815E-01 .68407622E-02 .25321448E-04
+ .65172832E-01 .21258404E-01 .70794212E-02 .26669130E-04
+ .66313357E-01 .21632532E-01 .73263015E-02 .28088351E-04
+ .67473840E-01 .22013320E-01 .75816789E-02 .29582889E-04
+ .68654633E-01 .22400890E-01 .78458377E-02 .31156725E-04
+ .69856089E-01 .22795368E-01 .81190711E-02 .32814044E-04
+ .71078570E-01 .23196880E-01 .84016816E-02 .34559252E-04
+ .72322445E-01 .23605558E-01 .86939811E-02 .36396987E-04
+ .73588088E-01 .24021534E-01 .89962909E-02 .38332127E-04
+ .74875880E-01 .24444944E-01 .93089426E-02 .40369807E-04
+ .76186208E-01 .24875925E-01 .96322775E-02 .42515427E-04
+ .77519466E-01 .25314619E-01 .99666476E-02 .44774672E-04
+ .78876057E-01 .25761170E-01 .10312416E-01 .47153521E-04
+ .80256388E-01 .26215726E-01 .10669955E-01 .49658266E-04
+ .81660875E-01 .26678435E-01 .11039649E-01 .52295524E-04
+ .83089940E-01 .27149453E-01 .11421896E-01 .55072257E-04
+ .84544014E-01 .27628935E-01 .11817101E-01 .57995790E-04
+ .86023534E-01 .28117042E-01 .12225685E-01 .61073825E-04
+ .87528946E-01 .28613936E-01 .12648079E-01 .64314465E-04
+ .89060702E-01 .29119785E-01 .13084728E-01 .67726231E-04
+ .90619265E-01 .29634759E-01 .13536087E-01 .71318084E-04
+ .92205102E-01 .30159033E-01 .14002626E-01 .75099449E-04
+ .93818691E-01 .30692785E-01 .14484827E-01 .79080236E-04
+ .95460518E-01 .31236196E-01 .14983186E-01 .83270865E-04
+ .97131077E-01 .31789453E-01 .15498212E-01 .87682293E-04
+ .98830871E-01 .32352746E-01 .16030428E-01 .92326037E-04
+ .10056041E+00 .32926270E-01 .16580371E-01 .97214206E-04
+ .10232022E+00 .33510223E-01 .17148591E-01 .10235953E-03
+ .10411082E+00 .34104809E-01 .17735654E-01 .10777538E-03
+ .10593276E+00 .34710237E-01 .18342137E-01 .11347583E-03
+ .10778659E+00 .35326718E-01 .18968636E-01 .11947566E-03
+ .10967285E+00 .35954472E-01 .19615758E-01 .12579038E-03
+ .11159213E+00 .36593721E-01 .20284126E-01 .13243632E-03
+ .11354499E+00 .37244693E-01 .20974377E-01 .13943062E-03
+ .11553202E+00 .37907623E-01 .21687165E-01 .14679129E-03
+ .11755384E+00 .38582749E-01 .22423154E-01 .15453725E-03
+ .11961103E+00 .39270317E-01 .23183028E-01 .16268837E-03
+ .12170422E+00 .39970578E-01 .23967482E-01 .17126551E-03
+ .12383404E+00 .40683789E-01 .24777226E-01 .18029060E-03
+ .12600114E+00 .41410213E-01 .25612985E-01 .18978664E-03
+ .12820616E+00 .42150122E-01 .26475498E-01 .19977778E-03
+ .13044977E+00 .42903791E-01 .27365518E-01 .21028938E-03
+ .13273264E+00 .43671505E-01 .28283809E-01 .22134806E-03
+ .13505546E+00 .44453555E-01 .29231151E-01 .23298174E-03
+ .13741893E+00 .45250239E-01 .30208336E-01 .24521974E-03
+ .13982376E+00 .46061864E-01 .31216166E-01 .25809279E-03
+ .14227068E+00 .46888744E-01 .32255456E-01 .27163316E-03
+ .14476041E+00 .47731201E-01 .33327032E-01 .28587466E-03
+ .14729372E+00 .48589568E-01 .34431728E-01 .30085278E-03
+ .14987136E+00 .49464182E-01 .35570390E-01 .31660471E-03
+ .15249411E+00 .50355394E-01 .36743869E-01 .33316942E-03
+ .15516276E+00 .51263562E-01 .37953024E-01 .35058780E-03
+ .15787811E+00 .52189053E-01 .39198720E-01 .36890266E-03
+ .16064097E+00 .53132247E-01 .40481825E-01 .38815886E-03
+ .16345219E+00 .54093531E-01 .41803211E-01 .40840339E-03
+ .16631260E+00 .55073304E-01 .43163751E-01 .42968548E-03
+ .16922307E+00 .56071978E-01 .44564317E-01 .45205665E-03
+ .17218448E+00 .57089974E-01 .46005777E-01 .47557084E-03
+ .17519771E+00 .58127726E-01 .47488997E-01 .50028451E-03
+ .17826367E+00 .59185680E-01 .49014833E-01 .52625671E-03
+ .18138328E+00 .60264295E-01 .50584133E-01 .55354922E-03
+ .18455749E+00 .61364042E-01 .52197733E-01 .58222667E-03
+ .18778724E+00 .62485408E-01 .53856451E-01 .61235658E-03
+ .19107352E+00 .63628892E-01 .55561090E-01 .64400955E-03
+ .19441731E+00 .64795007E-01 .57312430E-01 .67725935E-03
+ .19781961E+00 .65984283E-01 .59111224E-01 .71218300E-03
+ .20128145E+00 .67197263E-01 .60958198E-01 .74886096E-03
+ .20480388E+00 .68434508E-01 .62854043E-01 .78737721E-03
+ .20838795E+00 .69696593E-01 .64799413E-01 .82781935E-03
+ .21203473E+00 .70984111E-01 .66794919E-01 .87027879E-03
+ .21574534E+00 .72297674E-01 .68841125E-01 .91485082E-03
+ .21952089E+00 .73637908E-01 .70938544E-01 .96163479E-03
+ .22336250E+00 .75005459E-01 .73087627E-01 .10107342E-02
+ .22727135E+00 .76400991E-01 .75288764E-01 .10622568E-02
+ .23124859E+00 .77825188E-01 .77542275E-01 .11163147E-02
+ .23529544E+00 .79278753E-01 .79848403E-01 .11730249E-02
+ .23941311E+00 .80762407E-01 .82207308E-01 .12325086E-02
+ .24360284E+00 .82276892E-01 .84619059E-01 .12948921E-02
+ .24786589E+00 .83822972E-01 .87083630E-01 .13603065E-02
+ .25220355E+00 .85401427E-01 .89600888E-01 .14288880E-02
+ .25661711E+00 .87013062E-01 .92170590E-01 .15007780E-02
+ .26110791E+00 .88658700E-01 .94792370E-01 .15761231E-02
+ .26567730E+00 .90339185E-01 .97465737E-01 .16550754E-02
+ .27032665E+00 .92055382E-01 .10019006E+00 .17377923E-02
+ .27505737E+00 .93808174E-01 .10296457E+00 .18244369E-02
+ .27987087E+00 .95598466E-01 .10578832E+00 .19151781E-02
+ .28476861E+00 .97427181E-01 .10866025E+00 .20101903E-02
+ .28975206E+00 .99295258E-01 .11157908E+00 .21096541E-02
+ .29482272E+00 .10120366E+00 .11454337E+00 .22137556E-02
+ .29998212E+00 .10315335E+00 .11755150E+00 .23226871E-02
+ .30523181E+00 .10514532E+00 .12060165E+00 .24366470E-02
+ .31057336E+00 .10718057E+00 .12369179E+00 .25558394E-02
+ .31600840E+00 .10926011E+00 .12681970E+00 .26804749E-02
+ .32153854E+00 .11138496E+00 .12998292E+00 .28107699E-02
+ .32716547E+00 .11355612E+00 .13317879E+00 .29469468E-02
+ .33289086E+00 .11577463E+00 .13640440E+00 .30892344E-02
+ .33871645E+00 .11804148E+00 .13965664E+00 .32378673E-02
+ .34464399E+00 .12035770E+00 .14293213E+00 .33930861E-02
+ .35067526E+00 .12272426E+00 .14622730E+00 .35551374E-02
+ .35681208E+00 .12514212E+00 .14953829E+00 .37242739E-02
+ .36305629E+00 .12761223E+00 .15286106E+00 .39007537E-02
+ .36940978E+00 .13013548E+00 .15619130E+00 .40848411E-02
+ .37587445E+00 .13271271E+00 .15952449E+00 .42768059E-02
+ .38245225E+00 .13534472E+00 .16285589E+00 .44769234E-02
+ .38914516E+00 .13803221E+00 .16618055E+00 .46854747E-02
+ .39595520E+00 .14077583E+00 .16949333E+00 .49027461E-02
+ .40288442E+00 .14357609E+00 .17278890E+00 .51290297E-02
+ .40993490E+00 .14643342E+00 .17606175E+00 .53646224E-02
+ .41710876E+00 .14934808E+00 .17930627E+00 .56098271E-02
+ .42440816E+00 .15232020E+00 .18251667E+00 .58649518E-02
+ .43183530E+00 .15534973E+00 .18568711E+00 .61303098E-02
+ .43939242E+00 .15843639E+00 .18881165E+00 .64062202E-02
+ .44708179E+00 .16157970E+00 .19188434E+00 .66930080E-02
+ .45490572E+00 .16477891E+00 .19489922E+00 .69910039E-02
+ .46286657E+00 .16803298E+00 .19785037E+00 .73005451E-02
+ .47096674E+00 .17134055E+00 .20073192E+00 .76219756E-02
+ .47920865E+00 .17469991E+00 .20353817E+00 .79556467E-02
+ .48759481E+00 .17810896E+00 .20626353E+00 .83019179E-02
+ .49612771E+00 .18156515E+00 .20890266E+00 .86611576E-02
+ .50480995E+00 .18506547E+00 .21145046E+00 .90337438E-02
+ .51364412E+00 .18860642E+00 .21390213E+00 .94200658E-02
+ .52263290E+00 .19218392E+00 .21625323E+00 .98205256E-02
+ .53177897E+00 .19579330E+00 .21849971E+00 .10235539E-01
+ .54108510E+00 .19942929E+00 .22063796E+00 .10665537E-01
+ .55055409E+00 .20308592E+00 .22266487E+00 .11110970E-01
+ .56018879E+00 .20675653E+00 .22457785E+00 .11572308E-01
+ .56999209E+00 .21043372E+00 .22637484E+00 .12050043E-01
+ .57996695E+00 .21410934E+00 .22805439E+00 .12544694E-01
+ .59011638E+00 .21777447E+00 .22961565E+00 .13056808E-01
+ .60044341E+00 .22141941E+00 .23105840E+00 .13586964E-01
+ .61095117E+00 .22503367E+00 .23238304E+00 .14135776E-01
+ .62164282E+00 .22860602E+00 .23359059E+00 .14703898E-01
+ .63252157E+00 .23212448E+00 .23468268E+00 .15292028E-01
+ .64359070E+00 .23557642E+00 .23566153E+00 .15900909E-01
+ .65485353E+00 .23894858E+00 .23652990E+00 .16531338E-01
+ .66631347E+00 .24222719E+00 .23729103E+00 .17184164E-01
+ .67797395E+00 .24539808E+00 .23794862E+00 .17860299E-01
+ .68983850E+00 .24844679E+00 .23850670E+00 .18560717E-01
+ .70191067E+00 .25135877E+00 .23896958E+00 .19286456E-01
+ .71419411E+00 .25411953E+00 .23934171E+00 .20038629E-01
+ .72669251E+00 .25671484E+00 .23962762E+00 .20818416E-01
+ .73940963E+00 .25913096E+00 .23983173E+00 .21627076E-01
+ .75234929E+00 .26135490E+00 .23995830E+00 .22465941E-01
+ .76551541E+00 .26337459E+00 .24001123E+00 .23336420E-01
+ .77891193E+00 .26517918E+00 .23999395E+00 .24239997E-01
+ .79254288E+00 .26675926E+00 .23990929E+00 .25178229E-01
+ .80641239E+00 .26810705E+00 .23975934E+00 .26152745E-01
+ .82052460E+00 .26921661E+00 .23954540E+00 .27165243E-01
+ .83488378E+00 .27008394E+00 .23926782E+00 .28217481E-01
+ .84949425E+00 .27070710E+00 .23892599E+00 .29311280E-01
+ .86436040E+00 .27108618E+00 .23851834E+00 .30448516E-01
+ .87948671E+00 .27122326E+00 .23804237E+00 .31631118E-01
+ .89487772E+00 .27112223E+00 .23749476E+00 .32861065E-01
+ .91053808E+00 .27078854E+00 .23687151E+00 .34140393E-01
+ .92647250E+00 .27022884E+00 .23616824E+00 .35471198E-01
+ .94268577E+00 .26945057E+00 .23538044E+00 .36855649E-01
+ .95918277E+00 .26846144E+00 .23450386E+00 .38296007E-01
+ .97596847E+00 .26726892E+00 .23353487E+00 .39794649E-01
+ .99304792E+00 .26587982E+00 .23247085E+00 .41354101E-01
+ .10104263E+01 .26429988E+00 .23131044E+00 .42977065E-01
+ .10281087E+01 .26253381E+00 .23005358E+00 .44666446E-01
+ .10461006E+01 .26058560E+00 .22870116E+00 .46425360E-01
+ .10644074E+01 .25845924E+00 .22725449E+00 .48257109E-01
+ .10830345E+01 .25615910E+00 .22571497E+00 .50165181E-01
+ .11019876E+01 .25368984E+00 .22408411E+00 .52153262E-01
+ .11212724E+01 .25105636E+00 .22236357E+00 .54225246E-01
+ .11408947E+01 .24826386E+00 .22055510E+00 .56385255E-01
+ .11608603E+01 .24531780E+00 .21866062E+00 .58637646E-01
+ .11811754E+01 .24222388E+00 .21668209E+00 .60987031E-01
+ .12018459E+01 .23898798E+00 .21462160E+00 .63438278E-01
+ .12228782E+01 .23561622E+00 .21248130E+00 .65996547E-01
+ .12442786E+01 .23211492E+00 .21026350E+00 .68667304E-01
+ .12660535E+01 .22849058E+00 .20797055E+00 .71456338E-01
+ .12882094E+01 .22474985E+00 .20560490E+00 .74369782E-01
+ .13107531E+01 .22089953E+00 .20316908E+00 .77414139E-01
+ .13336913E+01 .21694657E+00 .20066570E+00 .80596303E-01
+ .13570309E+01 .21289800E+00 .19809744E+00 .83923588E-01
+ .13807789E+01 .20876095E+00 .19546704E+00 .87403755E-01
+ .14049425E+01 .20454263E+00 .19277730E+00 .91045043E-01
+ .14295290E+01 .20025032E+00 .19003108E+00 .94856202E-01
+ .14545458E+01 .19589131E+00 .18723128E+00 .98846527E-01
+ .14800003E+01 .19147294E+00 .18438088E+00 .10302590E+00
+ .15059003E+01 .18700254E+00 .18148285E+00 .10740482E+00
+ .15322536E+01 .18248742E+00 .17854024E+00 .11199448E+00
+ .15590680E+01 .17793487E+00 .17555610E+00 .11680675E+00
+ .15863517E+01 .17335214E+00 .17253354E+00 .12185431E+00
+ .16141129E+01 .16874641E+00 .16947566E+00 .12715065E+00
+ .16423599E+01 .16412476E+00 .16638560E+00 .13271013E+00
+ .16711012E+01 .15949420E+00 .16326649E+00 .13854809E+00
+ .17003454E+01 .15486161E+00 .16012150E+00 .14468088E+00
+ .17301015E+01 .15023377E+00 .15695376E+00 .15112594E+00
+ .17603783E+01 .14561728E+00 .15376644E+00 .15790191E+00
+ .17911849E+01 .14101860E+00 .15056269E+00 .16502869E+00
+ .18225306E+01 .13644403E+00 .14734562E+00 .17252754E+00
+ .18544249E+01 .13189967E+00 .14411837E+00 .18042123E+00
+ .18868773E+01 .12739143E+00 .14088402E+00 .18873407E+00
+ .19198977E+01 .12292501E+00 .13764564E+00 .19749211E+00
+ .19534959E+01 .11850589E+00 .13440627E+00 .20672326E+00
+ .19876821E+01 .11413932E+00 .13116890E+00 .21645738E+00
+ .20224665E+01 .10983030E+00 .12793648E+00 .22672652E+00
+ .20578597E+01 .10558360E+00 .12471191E+00 .23756502E+00
+ .20938722E+01 .10140370E+00 .12149806E+00 .24900974E+00
+ .21305150E+01 .97294836E-01 .11829769E+00 .26110024E+00
+ .21677990E+01 .93260971E-01 .11511355E+00 .27387901E+00
+ .22057355E+01 .89305781E-01 .11194829E+00 .28739169E+00
+ .22443358E+01 .85432662E-01 .10880449E+00 .30168736E+00
+ .22836117E+01 .81644723E-01 .10568464E+00 .31681880E+00
+ .23235749E+01 .77944788E-01 .10259117E+00 .33284278E+00
+ .23642375E+01 .74335387E-01 .99526413E-01 .34982044E+00
+ .24056116E+01 .70818764E-01 .96492601E-01 .36781763E+00
+ .24477098E+01 .67396874E-01 .93491882E-01 .38690531E+00
+ .24905448E+01 .64071386E-01 .90526305E-01 .40716000E+00
+ .25341293E+01 .60843689E-01 .87597820E-01 .42866424E+00
+ .25784766E+01 .57714891E-01 .84708277E-01 .45150716E+00
+ .26235999E+01 .54685831E-01 .81859425E-01 .00000000E+00
+ .26695129E+01 .51757082E-01 .79052910E-01 .00000000E+00
+ .27162294E+01 .48928960E-01 .76290277E-01 .00000000E+00
+ .27637634E+01 .46201531E-01 .73572970E-01 .00000000E+00
+ .28121293E+01 .43574621E-01 .70902331E-01 .00000000E+00
+ .28613415E+01 .41047828E-01 .68279606E-01 .00000000E+00
+ .29114150E+01 .38620527E-01 .65705941E-01 .00000000E+00
+ .29623648E+01 .36291885E-01 .63182390E-01 .00000000E+00
+ .30142061E+01 .34060872E-01 .60709913E-01 .00000000E+00
+ .30669547E+01 .31926270E-01 .58289380E-01 .00000000E+00
+ .31206265E+01 .29886690E-01 .55921573E-01 .00000000E+00
+ .31752374E+01 .27940576E-01 .53607191E-01 .00000000E+00
+ .32308041E+01 .26086223E-01 .51346850E-01 .00000000E+00
+ .32873431E+01 .24321789E-01 .49141087E-01 .00000000E+00
+ .33448716E+01 .22645303E-01 .46990362E-01 .00000000E+00
+ .34034069E+01 .21054678E-01 .44895061E-01 .00000000E+00
+ .34629665E+01 .19547725E-01 .42855496E-01 .00000000E+00
+ .35235684E+01 .18122164E-01 .40871910E-01 .00000000E+00
+ .35852309E+01 .16775631E-01 .38944476E-01 .00000000E+00
+ .36479724E+01 .15505693E-01 .37073299E-01 .00000000E+00
+ .37118119E+01 .14309858E-01 .35258416E-01 .00000000E+00
+ .37767686E+01 .13185584E-01 .33499799E-01 .00000000E+00
+ .38428621E+01 .12130292E-01 .31797353E-01 .00000000E+00
+ .39101122E+01 .11141370E-01 .30150917E-01 .00000000E+00
+ .39785391E+01 .10216190E-01 .28560265E-01 .00000000E+00
+ .40481636E+01 .93521114E-02 .27025103E-01 .00000000E+00
+ .41190064E+01 .85464917E-02 .25545073E-01 .00000000E+00
+ .41910891E+01 .77966960E-02 .24119749E-01 .00000000E+00
+ .42644331E+01 .71001039E-02 .22748640E-01 .00000000E+00
+ .43390607E+01 .64541181E-02 .21431189E-01 .00000000E+00
+ .44149943E+01 .58561715E-02 .20166771E-01 .00000000E+00
+ .44922567E+01 .53037346E-02 .18954699E-01 .00000000E+00
+ .45708712E+01 .47943221E-02 .17794219E-01 .00000000E+00
+ .46508614E+01 .43254990E-02 .16684515E-01 .00000000E+00
+ .47322515E+01 .38948868E-02 .15624711E-01 .00000000E+00
+ .48150659E+01 .35001686E-02 .14613868E-01 .00000000E+00
+ .48993295E+01 .31390939E-02 .13650994E-01 .00000000E+00
+ .49850678E+01 .28094832E-02 .12735039E-01 .00000000E+00
+ .50723065E+01 .25092319E-02 .11864904E-01 .00000000E+00
+ .51610718E+01 .22363131E-02 .11039442E-01 .00000000E+00
+ .52513906E+01 .19887809E-02 .10257461E-01 .00000000E+00
+ .53432899E+01 .17647722E-02 .95177305E-02 .00000000E+00
+ .54367975E+01 .15625087E-02 .88189832E-02 .00000000E+00
+ .55319415E+01 .13802977E-02 .81599212E-02 .00000000E+00
+ .56287504E+01 .12165329E-02 .75392198E-02 .00000000E+00
+ .57272536E+01 .10696945E-02 .69555330E-02 .00000000E+00
+ .58274805E+01 .93834867E-03 .64074975E-02 .00000000E+00
+ .59294614E+01 .82114682E-03 .58937382E-02 .00000000E+00
+ .60332270E+01 .71682436E-03 .54128729E-02 .00000000E+00
+ .61388085E+01 .62419895E-03 .49635165E-02 .00000000E+00
+ .62462376E+01 .54216861E-03 .45442864E-02 .00000000E+00
+ .63555468E+01 .46970931E-03 .41538066E-02 .00000000E+00
+ .64667688E+01 .40587241E-03 .37907121E-02 .00000000E+00
+ .65799373E+01 .34978182E-03 .34536531E-02 .00000000E+00
+ .66950862E+01 .30063100E-03 .31412985E-02 .00000000E+00
+ .68122502E+01 .25767971E-03 .28523403E-02 .00000000E+00
+ .69314646E+01 .22025076E-03 .25854963E-02 .00000000E+00
+ .70527652E+01 .18772657E-03 .23395136E-02 .00000000E+00
+ .71761886E+01 .15954577E-03 .21131711E-02 .00000000E+00
+ .73017719E+01 .13519970E-03 .19052824E-02 .00000000E+00
+ .74295529E+01 .11422899E-03 .17146977E-02 .00000000E+00
+ .75595701E+01 .96220159E-04 .15403058E-02 .00000000E+00
+ .76918626E+01 .80802241E-04 .13810358E-02 .00000000E+00
+ .78264702E+01 .67643558E-04 .12358582E-02 .00000000E+00
+ .79634334E+01 .56448559E-04 .11037862E-02 .00000000E+00
+ .81027935E+01 .46954791E-04 .98387622E-03 .00000000E+00
+ .82445924E+01 .38929998E-04 .87522857E-03 .00000000E+00
+ .83888727E+01 .32169377E-04 .77698752E-03 .00000000E+00
+ .85356780E+01 .26492969E-04 .68834133E-03 .00000000E+00
+ .86850524E+01 .21743214E-04 .60852203E-03 .00000000E+00
+ .88370408E+01 .17782670E-04 .53680497E-03 .00000000E+00
+ .89916890E+01 .14491882E-04 .47250813E-03 .00000000E+00
+ .91490436E+01 .11767418E-04 .41499131E-03 .00000000E+00
+ .93091518E+01 .95200597E-05 .36365519E-03 .00000000E+00
+ .94720620E+01 .76731416E-05 .31794015E-03 .00000000E+00
+ .96378231E+01 .61610433E-05 .27732508E-03 .00000000E+00
+ .98064850E+01 .49278188E-05 .24132597E-03 .00000000E+00
+ .99780984E+01 .39259609E-05 .20949453E-03 .00000000E+00
+ .10152715E+02 .31152920E-05 .18141665E-03 .00000000E+00
+ .10330388E+02 .24619727E-05 .15671085E-03 .00000000E+00
+ .10511169E+02 .19376212E-05 .13502666E-03 .00000000E+00
+ .10695115E+02 .15185335E-05 .11604300E-03 .00000000E+00
+ .10882279E+02 .11849978E-05 .99466550E-04 .00000000E+00
+ .11072719E+02 .92069269E-06 .85030020E-04 .00000000E+00
+ .11266492E+02 .71216806E-06 .72491041E-04 .00000000E+00
+ .11463656E+02 .54837528E-06 .61628665E-04 .00000000E+00
+ .11664270E+02 .42031004E-06 .52245984E-04 .00000000E+00
+ .11868394E+02 .32065318E-06 .44165926E-04 .00000000E+00
+ .12076091E+02 .24346918E-06 .37227875E-04 .00000000E+00
+ .12287423E+02 .18397509E-06 .31287674E-04 .00000000E+00
+ .12502453E+02 .13833879E-06 .26216799E-04 .00000000E+00
+ .12721246E+02 .10350504E-06 .21901012E-04 .00000000E+00
+ .12943867E+02 .77050162E-07 .18239088E-04 .00000000E+00
+ .13170385E+02 .57061273E-07 .15141618E-04 .00000000E+00
+ .13400867E+02 .42036425E-07 .12529878E-04 .00000000E+00
+ .13635382E+02 .30802524E-07 .10334781E-04 .00000000E+00
+ .13874001E+02 .22448223E-07 .84958972E-05 .00000000E+00
+ .14116796E+02 .16269388E-07 .69605442E-05 .00000000E+00
+ .14363840E+02 .00000000E+00 .56829555E-05 .00000000E+00
+ .14615207E+02 .00000000E+00 .46234989E-05 .00000000E+00
+ .14870973E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .15131215E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .15396012E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .15665442E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .15939587E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .16218530E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .16502354E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .16791145E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .17084990E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .17383978E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .17688197E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .17997741E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .18312701E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .18633174E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .18959254E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .19291041E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .19628634E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .19972135E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .20321648E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .20677277E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .21039129E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .21407314E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .21781942E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .22163126E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .22550980E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .22945622E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .23347171E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .23755746E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .24171472E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .24594473E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .25024876E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .25462811E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .25908410E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .26361808E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .26823139E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .27292544E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .27770164E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .28256142E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .28750624E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .29253760E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .29765701E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .30286601E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .30816616E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .31355907E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .31904635E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .32462966E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .33031068E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .33609112E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .34197271E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .34795724E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .35404649E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .36024230E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .36654654E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .37296111E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .37948793E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .38612896E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .39288622E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .39976173E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .40675756E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .41387582E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .42111864E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .42848822E+02 .00000000E+00 .00000000E+00 .00000000E+00
+ .43598676E+02 .00000000E+00 .00000000E+00 .00000000E+00
+&END
+&ATDENS
+ 631
+ .78125000E-03 .34673396E+06
+ .79492188E-03 .33490995E+06
+ .80883301E-03 .32348916E+06
+ .82298759E-03 .31245785E+06
+ .83738987E-03 .30180273E+06
+ .85204419E-03 .29151097E+06
+ .86695496E-03 .28157019E+06
+ .88212668E-03 .27196841E+06
+ .89756389E-03 .26269407E+06
+ .91327126E-03 .25373601E+06
+ .92925351E-03 .24508343E+06
+ .94551544E-03 .23672593E+06
+ .96206196E-03 .22865344E+06
+ .97889805E-03 .22085624E+06
+ .99602877E-03 .21332494E+06
+ .10134593E-02 .20605048E+06
+ .10311948E-02 .19902409E+06
+ .10492407E-02 .19223732E+06
+ .10676024E-02 .18568199E+06
+ .10862855E-02 .17935022E+06
+ .11052955E-02 .17323437E+06
+ .11246381E-02 .16732708E+06
+ .11443193E-02 .16162125E+06
+ .11643449E-02 .15611000E+06
+ .11847209E-02 .15078670E+06
+ .12054535E-02 .14564493E+06
+ .12265490E-02 .14067851E+06
+ .12480136E-02 .13588145E+06
+ .12698538E-02 .13124798E+06
+ .12920763E-02 .12677253E+06
+ .13146876E-02 .12244970E+06
+ .13376946E-02 .11827429E+06
+ .13611043E-02 .11424127E+06
+ .13849236E-02 .11034578E+06
+ .14091598E-02 .10658314E+06
+ .14338201E-02 .10294881E+06
+ .14589119E-02 .99438423E+05
+ .14844429E-02 .96047747E+05
+ .15104206E-02 .92772700E+05
+ .15368530E-02 .89609341E+05
+ .15637479E-02 .86553858E+05
+ .15911135E-02 .83602575E+05
+ .16189580E-02 .80751937E+05
+ .16472898E-02 .77998512E+05
+ .16761173E-02 .75338985E+05
+ .17054494E-02 .72770154E+05
+ .17352948E-02 .70288926E+05
+ .17656624E-02 .67892314E+05
+ .17965615E-02 .65577431E+05
+ .18280013E-02 .63341491E+05
+ .18599914E-02 .61181802E+05
+ .18925412E-02 .59095763E+05
+ .19256607E-02 .57080862E+05
+ .19593597E-02 .55134674E+05
+ .19936485E-02 .53254856E+05
+ .20285374E-02 .51439143E+05
+ .20640368E-02 .49685350E+05
+ .21001574E-02 .47991366E+05
+ .21369102E-02 .46355150E+05
+ .21743061E-02 .44774733E+05
+ .22123565E-02 .43248212E+05
+ .22510727E-02 .41773749E+05
+ .22904665E-02 .40349568E+05
+ .23305496E-02 .38973954E+05
+ .23713343E-02 .37645253E+05
+ .24128326E-02 .36361863E+05
+ .24550572E-02 .35122239E+05
+ .24980207E-02 .33924890E+05
+ .25417360E-02 .32768372E+05
+ .25862164E-02 .31651295E+05
+ .26314752E-02 .30572312E+05
+ .26775260E-02 .29530125E+05
+ .27243827E-02 .28523479E+05
+ .27720594E-02 .27551162E+05
+ .28205705E-02 .26612003E+05
+ .28699305E-02 .25704872E+05
+ .29201542E-02 .24828676E+05
+ .29712569E-02 .23982360E+05
+ .30232539E-02 .23164905E+05
+ .30761609E-02 .22375327E+05
+ .31299937E-02 .21612676E+05
+ .31847686E-02 .20876033E+05
+ .32405020E-02 .20164511E+05
+ .32972108E-02 .19477253E+05
+ .33549120E-02 .18813433E+05
+ .34136230E-02 .18172250E+05
+ .34733614E-02 .17552933E+05
+ .35341452E-02 .16954736E+05
+ .35959927E-02 .16376939E+05
+ .36589226E-02 .15818846E+05
+ .37229538E-02 .15279785E+05
+ .37881054E-02 .14759108E+05
+ .38543973E-02 .14256187E+05
+ .39218492E-02 .13770416E+05
+ .39904816E-02 .13301212E+05
+ .40603150E-02 .12848008E+05
+ .41313705E-02 .12410259E+05
+ .42036695E-02 .11987439E+05
+ .42772337E-02 .11579038E+05
+ .43520853E-02 .11184564E+05
+ .44282468E-02 .10803543E+05
+ .45057411E-02 .10435515E+05
+ .45845916E-02 .10080038E+05
+ .46648220E-02 .97366839E+04
+ .47464564E-02 .94050385E+04
+ .48295193E-02 .90847030E+04
+ .49140359E-02 .87752916E+04
+ .50000316E-02 .84764319E+04
+ .50875321E-02 .81877639E+04
+ .51765639E-02 .79089402E+04
+ .52671538E-02 .76396250E+04
+ .53593290E-02 .73794940E+04
+ .54531172E-02 .71282340E+04
+ .55485468E-02 .68855426E+04
+ .56456464E-02 .66511275E+04
+ .57444452E-02 .64247065E+04
+ .58449730E-02 .62060069E+04
+ .59472600E-02 .59947655E+04
+ .60513370E-02 .57907278E+04
+ .61572354E-02 .55936483E+04
+ .62649871E-02 .54032897E+04
+ .63746243E-02 .52194227E+04
+ .64861803E-02 .50418259E+04
+ .65996884E-02 .48702856E+04
+ .67151830E-02 .47045952E+04
+ .68326987E-02 .45445552E+04
+ .69522709E-02 .43899730E+04
+ .70739356E-02 .42406623E+04
+ .71977295E-02 .40964434E+04
+ .73236898E-02 .39571427E+04
+ .74518543E-02 .38225925E+04
+ .75822618E-02 .36926307E+04
+ .77149514E-02 .35671009E+04
+ .78499630E-02 .34458520E+04
+ .79873374E-02 .33287379E+04
+ .81271158E-02 .32156176E+04
+ .82693403E-02 .31063550E+04
+ .84140538E-02 .30008184E+04
+ .85612997E-02 .28988809E+04
+ .87111224E-02 .28004197E+04
+ .88635671E-02 .27053162E+04
+ .90186795E-02 .26134560E+04
+ .91765064E-02 .25247283E+04
+ .93370953E-02 .24390265E+04
+ .95004944E-02 .23562473E+04
+ .96667531E-02 .22762910E+04
+ .98359213E-02 .21990614E+04
+ .10008050E-01 .21244655E+04
+ .10183191E-01 .20524134E+04
+ .10361397E-01 .19828185E+04
+ .10542721E-01 .19155969E+04
+ .10727219E-01 .18506677E+04
+ .10914945E-01 .17879527E+04
+ .11105957E-01 .17273764E+04
+ .11300311E-01 .16688659E+04
+ .11498066E-01 .16123507E+04
+ .11699282E-01 .15577627E+04
+ .11904020E-01 .15050363E+04
+ .12112340E-01 .14541080E+04
+ .12324306E-01 .14049165E+04
+ .12539981E-01 .13574024E+04
+ .12759431E-01 .13115087E+04
+ .12982721E-01 .12671800E+04
+ .13209919E-01 .12243630E+04
+ .13441092E-01 .11830061E+04
+ .13676311E-01 .11430596E+04
+ .13915647E-01 .11044753E+04
+ .14159171E-01 .10672068E+04
+ .14406956E-01 .10312092E+04
+ .14659078E-01 .99643914E+03
+ .14915612E-01 .96285480E+03
+ .15176635E-01 .93041573E+03
+ .15442226E-01 .89908288E+03
+ .15712465E-01 .86881850E+03
+ .15987433E-01 .83958618E+03
+ .16267213E-01 .81135070E+03
+ .16551890E-01 .78407808E+03
+ .16841548E-01 .75773547E+03
+ .17136275E-01 .73229116E+03
+ .17436160E-01 .70771452E+03
+ .17741292E-01 .68397594E+03
+ .18051765E-01 .66104686E+03
+ .18367671E-01 .63889967E+03
+ .18689105E-01 .61750769E+03
+ .19016164E-01 .59684517E+03
+ .19348947E-01 .57688724E+03
+ .19687554E-01 .55760987E+03
+ .20032086E-01 .53898983E+03
+ .20382648E-01 .52100472E+03
+ .20739344E-01 .50363288E+03
+ .21102282E-01 .48685340E+03
+ .21471572E-01 .47064607E+03
+ .21847325E-01 .45499137E+03
+ .22229653E-01 .43987047E+03
+ .22618672E-01 .42526514E+03
+ .23014499E-01 .41115782E+03
+ .23417252E-01 .39753150E+03
+ .23827054E-01 .38436980E+03
+ .24244028E-01 .37165685E+03
+ .24668298E-01 .35937735E+03
+ .25099994E-01 .34751653E+03
+ .25539243E-01 .33606008E+03
+ .25986180E-01 .32499424E+03
+ .26440938E-01 .31430566E+03
+ .26903655E-01 .30398148E+03
+ .27374469E-01 .29400927E+03
+ .27853522E-01 .28437703E+03
+ .28340959E-01 .27507315E+03
+ .28836925E-01 .26608643E+03
+ .29341572E-01 .25740606E+03
+ .29855049E-01 .24902158E+03
+ .30377512E-01 .24092290E+03
+ .30909119E-01 .23310026E+03
+ .31450028E-01 .22554425E+03
+ .32000404E-01 .21824577E+03
+ .32560411E-01 .21119603E+03
+ .33130218E-01 .20438655E+03
+ .33709997E-01 .19780912E+03
+ .34299922E-01 .19145583E+03
+ .34900171E-01 .18531903E+03
+ .35510924E-01 .17939132E+03
+ .36132365E-01 .17366558E+03
+ .36764681E-01 .16813490E+03
+ .37408063E-01 .16279263E+03
+ .38062704E-01 .15763234E+03
+ .38728801E-01 .15264781E+03
+ .39406555E-01 .14783304E+03
+ .40096170E-01 .14318224E+03
+ .40797853E-01 .13868980E+03
+ .41511816E-01 .13435032E+03
+ .42238272E-01 .13015856E+03
+ .42977442E-01 .12610950E+03
+ .43729547E-01 .12219824E+03
+ .44494814E-01 .11842009E+03
+ .45273474E-01 .11477048E+03
+ .46065760E-01 .11124504E+03
+ .46871910E-01 .10783950E+03
+ .47692169E-01 .10454978E+03
+ .48526782E-01 .10137191E+03
+ .49376000E-01 .98302073E+02
+ .50240080E-01 .95336561E+02
+ .51119282E-01 .92471809E+02
+ .52013869E-01 .89704368E+02
+ .52924112E-01 .87030906E+02
+ .53850284E-01 .84448205E+02
+ .54792664E-01 .81953155E+02
+ .55751535E-01 .79542752E+02
+ .56727187E-01 .77214095E+02
+ .57719913E-01 .74964380E+02
+ .58730012E-01 .72790900E+02
+ .59757787E-01 .70691036E+02
+ .60803548E-01 .68662262E+02
+ .61867610E-01 .66702136E+02
+ .62950293E-01 .64808297E+02
+ .64051923E-01 .62978467E+02
+ .65172832E-01 .61210443E+02
+ .66313357E-01 .59502096E+02
+ .67473840E-01 .57851370E+02
+ .68654633E-01 .56256279E+02
+ .69856089E-01 .54714903E+02
+ .71078570E-01 .53225387E+02
+ .72322445E-01 .51785938E+02
+ .73588088E-01 .50394825E+02
+ .74875880E-01 .49050373E+02
+ .76186208E-01 .47750965E+02
+ .77519466E-01 .46495037E+02
+ .78876057E-01 .45281079E+02
+ .80256388E-01 .44107630E+02
+ .81660875E-01 .42973280E+02
+ .83089940E-01 .41876663E+02
+ .84544014E-01 .40816461E+02
+ .86023534E-01 .39791400E+02
+ .87528946E-01 .38800247E+02
+ .89060702E-01 .37841811E+02
+ .90619265E-01 .36914940E+02
+ .92205102E-01 .36018520E+02
+ .93818691E-01 .35151476E+02
+ .95460518E-01 .34312766E+02
+ .97131077E-01 .33501382E+02
+ .98830871E-01 .32716351E+02
+ .10056041E+00 .31956732E+02
+ .10232022E+00 .31221613E+02
+ .10411082E+00 .30510114E+02
+ .10593276E+00 .29821380E+02
+ .10778659E+00 .29154589E+02
+ .10967285E+00 .28508942E+02
+ .11159213E+00 .27883666E+02
+ .11354499E+00 .27278014E+02
+ .11553202E+00 .26691263E+02
+ .11755384E+00 .26122713E+02
+ .11961103E+00 .25571685E+02
+ .12170422E+00 .25037524E+02
+ .12383404E+00 .24519595E+02
+ .12600114E+00 .24017280E+02
+ .12820616E+00 .23529986E+02
+ .13044977E+00 .23057134E+02
+ .13273264E+00 .22598165E+02
+ .13505546E+00 .22152538E+02
+ .13741893E+00 .21719727E+02
+ .13982376E+00 .21299224E+02
+ .14227068E+00 .20890535E+02
+ .14476041E+00 .20493183E+02
+ .14729372E+00 .20106705E+02
+ .14987136E+00 .19730650E+02
+ .15249411E+00 .19364585E+02
+ .15516276E+00 .19008085E+02
+ .15787811E+00 .18660743E+02
+ .16064097E+00 .18322160E+02
+ .16345219E+00 .17991952E+02
+ .16631260E+00 .17669745E+02
+ .16922307E+00 .17355177E+02
+ .17218448E+00 .17047897E+02
+ .17519771E+00 .16747563E+02
+ .17826367E+00 .16453846E+02
+ .18138328E+00 .16166426E+02
+ .18455749E+00 .15884992E+02
+ .18778724E+00 .15609242E+02
+ .19107352E+00 .15338886E+02
+ .19441731E+00 .15073642E+02
+ .19781961E+00 .14813235E+02
+ .20128145E+00 .14557401E+02
+ .20480388E+00 .14305886E+02
+ .20838795E+00 .14058440E+02
+ .21203473E+00 .13814826E+02
+ .21574534E+00 .13574814E+02
+ .21952089E+00 .13338180E+02
+ .22336250E+00 .13104712E+02
+ .22727135E+00 .12874204E+02
+ .23124859E+00 .12646458E+02
+ .23529544E+00 .12421286E+02
+ .23941311E+00 .12198507E+02
+ .24360284E+00 .11977949E+02
+ .24786589E+00 .11759447E+02
+ .25220355E+00 .11542846E+02
+ .25661711E+00 .11327999E+02
+ .26110791E+00 .11114768E+02
+ .26567730E+00 .10903023E+02
+ .27032665E+00 .10692643E+02
+ .27505737E+00 .10483517E+02
+ .27987087E+00 .10275543E+02
+ .28476861E+00 .10068627E+02
+ .28975206E+00 .98626868E+01
+ .29482272E+00 .96576471E+01
+ .29998212E+00 .94534443E+01
+ .30523181E+00 .92500244E+01
+ .31057336E+00 .90473434E+01
+ .31600840E+00 .88453675E+01
+ .32153854E+00 .86440732E+01
+ .32716547E+00 .84434477E+01
+ .33289086E+00 .82434885E+01
+ .33871645E+00 .80442038E+01
+ .34464399E+00 .78456122E+01
+ .35067526E+00 .76477430E+01
+ .35681208E+00 .74506360E+01
+ .36305629E+00 .72543412E+01
+ .36940978E+00 .70589189E+01
+ .37587445E+00 .68644394E+01
+ .38245225E+00 .66709824E+01
+ .38914516E+00 .64786372E+01
+ .39595520E+00 .62875016E+01
+ .40288442E+00 .60976821E+01
+ .40993490E+00 .59092927E+01
+ .41710876E+00 .57224546E+01
+ .42440816E+00 .55372954E+01
+ .43183530E+00 .53539481E+01
+ .43939242E+00 .51725505E+01
+ .44708179E+00 .49932441E+01
+ .45490572E+00 .48161728E+01
+ .46286657E+00 .46414824E+01
+ .47096674E+00 .44693191E+01
+ .47920865E+00 .42998281E+01
+ .48759481E+00 .41331532E+01
+ .49612771E+00 .39694346E+01
+ .50480995E+00 .38088084E+01
+ .51364412E+00 .36514052E+01
+ .52263290E+00 .34973489E+01
+ .53177897E+00 .33467555E+01
+ .54108510E+00 .31997324E+01
+ .55055409E+00 .30563773E+01
+ .56018879E+00 .29167773E+01
+ .56999209E+00 .27810082E+01
+ .57996695E+00 .26491340E+01
+ .59011638E+00 .25212067E+01
+ .60044341E+00 .23972656E+01
+ .61095117E+00 .22773375E+01
+ .62164282E+00 .21614366E+01
+ .63252157E+00 .20495651E+01
+ .64359070E+00 .19417131E+01
+ .65485353E+00 .18378593E+01
+ .66631347E+00 .17379720E+01
+ .67797395E+00 .16420091E+01
+ .68983850E+00 .15499199E+01
+ .70191067E+00 .14616450E+01
+ .71419411E+00 .13771181E+01
+ .72669251E+00 .12962664E+01
+ .73940963E+00 .12190117E+01
+ .75234929E+00 .11452713E+01
+ .76551541E+00 .10749586E+01
+ .77891193E+00 .10079842E+01
+ .79254288E+00 .94425616E+00
+ .80641239E+00 .88368086E+00
+ .82052460E+00 .82616324E+00
+ .83488378E+00 .77160726E+00
+ .84949425E+00 .71991625E+00
+ .86436040E+00 .67099316E+00
+ .87948671E+00 .62474080E+00
+ .89487772E+00 .58106206E+00
+ .91053808E+00 .53986021E+00
+ .92647250E+00 .50103906E+00
+ .94268577E+00 .46450329E+00
+ .95918277E+00 .43015870E+00
+ .97596847E+00 .39791243E+00
+ .99304792E+00 .36767319E+00
+ .10104263E+01 .33935141E+00
+ .10281087E+01 .31285919E+00
+ .10461006E+01 .28811026E+00
+ .10644074E+01 .26501977E+00
+ .10830345E+01 .24350434E+00
+ .11019876E+01 .22348235E+00
+ .11212724E+01 .20487410E+00
+ .11408947E+01 .18760199E+00
+ .11608603E+01 .17159065E+00
+ .11811754E+01 .15676709E+00
+ .12018459E+01 .14306071E+00
+ .12228782E+01 .13040350E+00
+ .12442786E+01 .11873007E+00
+ .12660535E+01 .10797770E+00
+ .12882094E+01 .98086313E-01
+ .13107531E+01 .88998558E-01
+ .13336913E+01 .80659760E-01
+ .13570309E+01 .73017917E-01
+ .13807789E+01 .66023672E-01
+ .14049425E+01 .59630271E-01
+ .14295290E+01 .53793512E-01
+ .14545458E+01 .48471688E-01
+ .14800003E+01 .43625523E-01
+ .15059003E+01 .39218096E-01
+ .15322536E+01 .35214766E-01
+ .15590680E+01 .31583094E-01
+ .15863517E+01 .28292750E-01
+ .16141129E+01 .25315433E-01
+ .16423599E+01 .22624779E-01
+ .16711012E+01 .20196272E-01
+ .17003454E+01 .18007152E-01
+ .17301015E+01 .16036326E-01
+ .17603783E+01 .14264280E-01
+ .17911849E+01 .12672989E-01
+ .18225306E+01 .11245830E-01
+ .18544249E+01 .99675040E-02
+ .18868773E+01 .88239452E-02
+ .19198977E+01 .78022485E-02
+ .19534959E+01 .68905903E-02
+ .19876821E+01 .60781557E-02
+ .20224665E+01 .53550682E-02
+ .20578597E+01 .47123223E-02
+ .20938722E+01 .41417199E-02
+ .21305150E+01 .36358096E-02
+ .21677990E+01 .31878290E-02
+ .22057355E+01 .27916508E-02
+ .22443358E+01 .24417318E-02
+ .22836117E+01 .21330648E-02
+ .23235749E+01 .18611339E-02
+ .23642375E+01 .16218726E-02
+ .24056116E+01 .14116246E-02
+ .24477098E+01 .12271074E-02
+ .24905448E+01 .10653788E-02
+ .25341293E+01 .92380540E-03
+ .25784766E+01 .80003403E-03
+ .26235999E+01 .69196479E-03
+ .26695129E+01 .59772681E-03
+ .27162294E+01 .51565568E-03
+ .27637634E+01 .44427290E-03
+ .28121293E+01 .38226703E-03
+ .28613415E+01 .32847653E-03
+ .29114150E+01 .28187410E-03
+ .29623648E+01 .24155252E-03
+ .30142061E+01 .20671173E-03
+ .30669547E+01 .17664719E-03
+ .31206265E+01 .15073936E-03
+ .31752374E+01 .12844420E-03
+ .32308041E+01 .10928463E-03
+ .32873431E+01 .92842892E-04
+ .33448716E+01 .78753672E-04
+ .34034069E+01 .66697945E-04
+ .34629665E+01 .56397504E-04
+ .35235684E+01 .47610069E-04
+ .35852309E+01 .40124939E-04
+ .36479724E+01 .33759126E-04
+ .37118119E+01 .28353937E-04
+ .37767686E+01 .23771934E-04
+ .38428621E+01 .19894264E-04
+ .39101122E+01 .16618287E-04
+ .39785391E+01 .13855498E-04
+ .40481636E+01 .11529691E-04
+ .41190064E+01 .95753513E-05
+ .41910891E+01 .79362424E-05
+ .42644331E+01 .65641679E-05
+ .43390607E+01 .54178903E-05
+ .44149943E+01 .44621847E-05
+ .44922567E+01 .36670140E-05
+ .45708712E+01 .30068103E-05
+ .46508614E+01 .24598497E-05
+ .47322515E+01 .20077087E-05
+ .48150659E+01 .16347931E-05
+ .48993295E+01 .13279300E-05
+ .49850678E+01 .10760143E-05
+ .50723065E+01 .86970399E-06
+ .51610718E+01 .70115718E-06
+ .52513906E+01 .56380596E-06
+ .53432899E+01 .45216194E-06
+ .54367975E+01 .36164958E-06
+ .55319415E+01 .28846357E-06
+ .56287504E+01 .22944693E-06
+ .57272536E+01 .18198722E-06
+ .58274805E+01 .14392816E-06
+ .59294614E+01 .11349469E-06
+ .60332270E+01 .89229533E-07
+ .61388085E+01 .69939618E-07
+ .62462376E+01 .54650907E-07
+ .63555468E+01 .42570492E-07
+ .64667688E+01 .33054800E-07
+ .65799373E+01 .25583035E-07
+ .66950862E+01 .19735041E-07
+ .68122502E+01 .15172910E-07
+ .69314646E+01 .11625744E-07
+ .70527652E+01 .88770636E-08
+ .71761886E+01 .67544501E-08
+ .73017719E+01 .51210347E-08
+ .74295529E+01 .38685395E-08
+ .75595701E+01 .29116024E-08
+ .76918626E+01 .21831648E-08
+ .78264702E+01 .16307358E-08
+ .79634334E+01 .12133778E-08
+ .81027935E+01 .89928249E-09
+ .82445924E+01 .66382808E-09
+ .83888727E+01 .48802910E-09
+ .85356780E+01 .35730339E-09
+ .86850524E+01 .26049536E-09
+ .88370408E+01 .18910536E-09
+ .89916890E+01 .13668399E-09
+ .91490436E+01 .98358021E-10
+ .93091518E+01 .70460855E-10
+ .94720620E+01 .50245721E-10
+ .96378231E+01 .35663966E-10
+ .98064850E+01 .25194467E-10
+ .99780984E+01 .17712933E-10
+ .10152715E+02 .12392231E-10
+ .10330388E+02 .86267108E-11
+ .10511169E+02 .59750232E-11
+ .10695115E+02 .41171173E-11
+ .10882279E+02 .28220547E-11
+ .11072719E+02 .19240345E-11
+ .11266492E+02 .13046523E-11
+ .11463656E+02 .87973159E-12
+ .11664270E+02 .58986102E-12
+ .11868394E+02 .39325864E-12
+ .12076091E+02 .26067552E-12
+ .12287423E+02 .17177931E-12
+ .12502453E+02 .11252383E-12
+ .12721246E+02 .73261305E-13
+ .12943867E+02 .47403881E-13
+ .13170385E+02 .30479916E-13
+ .13400867E+02 .19472628E-13
+ .13635382E+02 .12359340E-13
+ .13874001E+02 .77924335E-14
+ .14116796E+02 .48798110E-14
+ .14363840E+02 .30347734E-14
+ .14615207E+02 .18740518E-14
+ .14870973E+02 .00000000E+00
+ .15131215E+02 .00000000E+00
+ .15396012E+02 .00000000E+00
+ .15665442E+02 .00000000E+00
+ .15939587E+02 .00000000E+00
+ .16218530E+02 .00000000E+00
+ .16502354E+02 .00000000E+00
+ .16791145E+02 .00000000E+00
+ .17084990E+02 .00000000E+00
+ .17383978E+02 .00000000E+00
+ .17688197E+02 .00000000E+00
+ .17997741E+02 .00000000E+00
+ .18312701E+02 .00000000E+00
+ .18633174E+02 .00000000E+00
+ .18959254E+02 .00000000E+00
+ .19291041E+02 .00000000E+00
+ .19628634E+02 .00000000E+00
+ .19972135E+02 .00000000E+00
+ .20321648E+02 .00000000E+00
+ .20677277E+02 .00000000E+00
+ .21039129E+02 .00000000E+00
+ .21407314E+02 .00000000E+00
+ .21781942E+02 .00000000E+00
+ .22163126E+02 .00000000E+00
+ .22550980E+02 .00000000E+00
+ .22945622E+02 .00000000E+00
+ .23347171E+02 .00000000E+00
+ .23755746E+02 .00000000E+00
+ .24171472E+02 .00000000E+00
+ .24594473E+02 .00000000E+00
+ .25024876E+02 .00000000E+00
+ .25462811E+02 .00000000E+00
+ .25908410E+02 .00000000E+00
+ .26361808E+02 .00000000E+00
+ .26823139E+02 .00000000E+00
+ .27292544E+02 .00000000E+00
+ .27770164E+02 .00000000E+00
+ .28256142E+02 .00000000E+00
+ .28750624E+02 .00000000E+00
+ .29253760E+02 .00000000E+00
+ .29765701E+02 .00000000E+00
+ .30286601E+02 .00000000E+00
+ .30816616E+02 .00000000E+00
+ .31355907E+02 .00000000E+00
+ .31904635E+02 .00000000E+00
+ .32462966E+02 .00000000E+00
+ .33031068E+02 .00000000E+00
+ .33609112E+02 .00000000E+00
+ .34197271E+02 .00000000E+00
+ .34795724E+02 .00000000E+00
+ .35404649E+02 .00000000E+00
+ .36024230E+02 .00000000E+00
+ .36654654E+02 .00000000E+00
+ .37296111E+02 .00000000E+00
+ .37948793E+02 .00000000E+00
+ .38612896E+02 .00000000E+00
+ .39288622E+02 .00000000E+00
+ .39976173E+02 .00000000E+00
+ .40675756E+02 .00000000E+00
+ .41387582E+02 .00000000E+00
+ .42111864E+02 .00000000E+00
+ .42848822E+02 .00000000E+00
+ .43598676E+02 .00000000E+00
+&END
diff --git a/clusters/user/CPMD/post.sh b/clusters/user/CPMD/post.sh
new file mode 120000
index 0000000..4166c81
--- /dev/null
+++ b/clusters/user/CPMD/post.sh
@@ -0,0 +1 @@
+../Results/CPMD/post.sh
\ No newline at end of file
diff --git a/clusters/user/CPMD/preprocessing.job b/clusters/user/CPMD/preprocessing.job
new file mode 100644
index 0000000..f16e591
--- /dev/null
+++ b/clusters/user/CPMD/preprocessing.job
@@ -0,0 +1,11 @@
+#!/bin/bash -l
+
+#SBATCH --nodes 1
+#SBATCH --ntasks 2
+#SBATCH --cpus-per-task 1
+#SBATCH --time 00:55:00
+#SBATCH --job-name CPMD_PRE
+#SBATCH --exclusive
+
+# follow cluster-specific content and run command
+
diff --git a/clusters/user/CPMD/runme.sh b/clusters/user/CPMD/runme.sh
new file mode 100644
index 0000000..7e5a77e
--- /dev/null
+++ b/clusters/user/CPMD/runme.sh
@@ -0,0 +1,36 @@
+#!/bin/bash -l
+
+CPMD=`pwd`/CPMD/BIN/cpmd.x
+
+# Preprocessing
+
+[ -d WO ] || mkdir WO
+
+export OMP_NUM_THREADS=1
+export I_MPI_DEBUG=4
+export I_MPI_STATS=ipm
+cd WO
+mpirun -np 2 $CPMD ../INPF/WO.inp ../PPs >& WO.log
+cd ..
+
+# the actual runs
+
+for i in `cat ../cores.txt`; do
+
+ if [ "$i" -lt 4 ]
+ then
+ continue
+ fi
+
+ CPU=`cat /proc/cpuinfo | grep "model name" | awk '{print $7}' | tail -1`
+
+ mkdir BO${i}
+
+ cd BO${i}
+
+ cp ../GEOM/GEOMETRY ./
+
+ cp ../WO/RESTART.1 ../WO/LATEST ./
+ mpirun -np $i $CPMD ../INPF/BO.inp ../PPs >& ${CPU}-BO${i}.log
+ cd ..
+done
diff --git a/clusters/user/CPMD/runme_slurm.sh b/clusters/user/CPMD/runme_slurm.sh
new file mode 100644
index 0000000..19ef692
--- /dev/null
+++ b/clusters/user/CPMD/runme_slurm.sh
@@ -0,0 +1,51 @@
+#!/bin/bash -l
+
+corespnode=`cat ../../cores_per_node.txt`
+cp1=`echo "$corespnode-1" | bc`
+
+
+CPMD=`pwd`/CPMD/BIN/cpmd.x
+
+# Preprocessing
+
+cat preprocessing.job > sub_pre.job
+cat ../../cluster.job >> sub_pre.job
+
+[ -d WO ] || mkdir WO
+
+echo "export OMP_NUM_THREADS=1" >> sub_pre.job
+echo "export I_MPI_DEBUG=4" >> sub_pre.job
+echo "export I_MPI_STATS=ipm" >> sub_pre.job
+echo "cd WO" >> sub_pre.job
+echo "srun $CPMD ../INPF/WO.inp ../PPs >& WO.log" >> sub_pre.job
+echo "cd .." >> sub_pre.job
+
+jid=`sbatch sub_pre.job | cut -d' ' -f4`
+
+# the actual runs
+
+for i in `cat ../cores.txt`; do
+
+ if [ "$i" -lt 4 ]
+ then
+ continue
+ fi
+
+ nodes=`echo "($i+$cp1)/$corespnode" | bc`
+ CPU=`cat /proc/cpuinfo | grep "model name" | awk '{print $7}' | tail -1`
+
+ mkdir BO${i}
+
+ cd BO${i}
+
+ cp ../GEOM/GEOMETRY ./
+
+ sed "s/--NODES--/$nodes/;s/--NP--/$i/" ../template.job > sub-$i.job
+ cat ../../../cluster.job >> sub-$i.job
+
+ echo "cp ../WO/RESTART.1 ../WO/LATEST ./" >> sub-$i.job
+ echo "srun $CPMD ../INPF/BO.inp ../PPs >& ${CPU}-BO${i}.log" >> sub-$i.job
+
+ sbatch --dependency=afterok:$jid sub-$i.job
+ cd ..
+done
diff --git a/clusters/user/CPMD/template.job b/clusters/user/CPMD/template.job
new file mode 100644
index 0000000..557bfe6
--- /dev/null
+++ b/clusters/user/CPMD/template.job
@@ -0,0 +1,11 @@
+#!/bin/bash -l
+
+#SBATCH --nodes --NODES--
+#SBATCH --ntasks --NP--
+#SBATCH --cpus-per-task 1
+#SBATCH --time 04:55:00
+#SBATCH --job-name CPMD_--NP--
+#SBATCH --exclusive
+
+# follow cluster-specific content and run command
+
diff --git a/clusters/user/GEAR/bin/extract.py b/clusters/user/GEAR/bin/extract.py
new file mode 100755
index 0000000..45d43e2
--- /dev/null
+++ b/clusters/user/GEAR/bin/extract.py
@@ -0,0 +1,171 @@
+#!/usr/bin/env python
+
+import sys
+import string
+import types
+from numpy import *
+
+
+#####################################################
+def read_ascii(file,columns=None,lines=None,dtype=float,skipheader=False,cchar='#'):
+#####################################################
+ """[X,Y,Z] = READ('FILE',[1,4,13],lines=[10,1000])
+ Read columns 1,4 and 13 from 'FILE' from line 10 to 1000
+ into array X,Y and Z
+
+ file is either fd or name file
+
+ """
+
+
+ def RemoveComments(l):
+ if l[0]==cchar:
+ return None
+ else:
+ return l
+
+ def toNumList(l):
+ return map(dtype,l)
+
+ if type(file) != types.FileType:
+ f = open(file,'r')
+ else:
+ f = file
+
+
+ # read header while there is one
+ while 1:
+ fpos = f.tell()
+ header = f.readline()
+ if header[0] != cchar:
+ f.seek(fpos)
+ header = None
+ break
+ else:
+ if skipheader:
+ header = None
+ else:
+ # create dict from header
+ header = string.strip(header[2:])
+ elts = string.split(header)
+ break
+
+ '''
+ # read header if there is one
+ header = f.readline()
+ if header[0] != cchar:
+ f.seek(0)
+ header = None
+ else:
+ if skipheader:
+ header = None
+ else:
+ # create dict from header
+ header = string.strip(header[2:])
+ elts = string.split(header)
+ '''
+
+ # now, read the file content
+ lines = f.readlines()
+
+ # remove trailing
+ lines = map(string.strip, lines)
+
+
+ # remove comments
+ #lines = map(RemoveComments, lines)
+
+ # split
+ lines = map(string.split, lines)
+
+ # convert into float
+ lines = map(toNumList, lines)
+
+ # convert into array
+ lines = array(map(array, lines))
+
+ # transpose
+ lines = transpose(lines)
+
+ if header != None:
+ iobs = {}
+ i = 0
+ for elt in elts:
+ iobs[elt]=i
+ i = i + 1
+
+ vals = {}
+ for key in iobs.keys():
+ vals[key] = lines[iobs[key]]
+
+ return vals
+
+
+ # return
+ if columns == None:
+ return lines
+ else:
+ return lines.take(axis=0,indices=columns)
+
+
+
+
+
+#################################################
+#
+#################################################
+nsteps = 146
+files = sys.argv[1:]
+
+n = len(files)
+ns = zeros(n)
+ss = zeros(n)
+tt = zeros(n)
+
+print
+print "%5s %15s %15s %15s"%("Ncpu","PhysTime","TimeForNsteps","#StepsPerTime")
+print 56*"-"
+for i,file in enumerate(files):
+
+ vals = read_ascii(file)
+
+ # Step Time nCPUs CPU_Total
+ Ncpus = vals['nCPUs'][0]
+ Time = vals['Time'][nsteps]
+ TimeForNsteps = vals['CPU_Total'][nsteps]
+ StepsPerTime = float(nsteps)/TimeForNsteps
+
+
+ print "%5d %15g %15g %15g"%(Ncpus,Time,TimeForNsteps/3600.,StepsPerTime)
+
+ ns[i]=Ncpus
+ ss[i]=StepsPerTime
+ tt[i]=TimeForNsteps
+
+print
+print "Total hours %6.3f"%(sum(tt)/3600.)
+
+
+
+'''
+import Ptools as pt
+
+pt.plot(ns,ss)
+pt.scatter(ns,ss)
+pt.xlabel('Number of cores')
+pt.ylabel('Steps per unit of CPU time')
+pt.show()
+'''
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/dIrr/chimie.yr.dat b/clusters/user/GEAR/dIrr/chimie.yr.dat
new file mode 100644
index 0000000..8ebe92a
--- /dev/null
+++ b/clusters/user/GEAR/dIrr/chimie.yr.dat
@@ -0,0 +1,2941 @@
+#### Livetime ####
+
+-40.1107251082866 5.50992173040633 0.782431795366473
+ 141.929566656232 -15.88948185575660 -3.255779246324010
+-261.365531429482 17.07350618651300 9.866058678313810
+
+#### IMF Parameters ####
+
+0.05 50
+3
+0.08 0.5 1
+0.7 -0.8 -1.7 -1.3
+
+#### SNIa Parameters ####
+
+8
+
+#### SNIa Parameters ####
+
+3 8
+-0.35
+0.9 1.5 0.02
+1.8 2.6 0.05
+
+#### Metal Parameters ####
+
+# Number of points / Number of elements
+200 5
+
+# Ej
+
+0.05 0.0155624
+4.843730e-02
+4.935623e-02
+5.030868e-02
+5.129588e-02
+5.231913e-02
+5.337968e-02
+5.447892e-02
+5.561825e-02
+5.679915e-02
+5.802314e-02
+5.929179e-02
+6.060675e-02
+6.196962e-02
+6.338228e-02
+6.484646e-02
+6.636404e-02
+6.793699e-02
+6.956732e-02
+7.125717e-02
+7.300862e-02
+7.482401e-02
+7.670562e-02
+7.865587e-02
+8.067726e-02
+8.277240e-02
+8.494399e-02
+8.719482e-02
+8.952773e-02
+9.194581e-02
+9.445206e-02
+9.704976e-02
+9.974223e-02
+1.025330e-01
+1.054255e-01
+1.084235e-01
+1.115309e-01
+1.147517e-01
+1.180900e-01
+1.215501e-01
+1.251365e-01
+1.288536e-01
+1.327064e-01
+1.366998e-01
+1.408388e-01
+1.451289e-01
+1.495755e-01
+1.541843e-01
+1.589612e-01
+1.639124e-01
+1.690443e-01
+1.743633e-01
+1.798765e-01
+1.855907e-01
+1.915134e-01
+1.976523e-01
+2.040152e-01
+2.106101e-01
+2.174456e-01
+2.245306e-01
+2.318740e-01
+2.394853e-01
+2.473743e-01
+2.555511e-01
+2.640263e-01
+2.728106e-01
+2.819155e-01
+2.913525e-01
+3.011338e-01
+3.112719e-01
+3.217799e-01
+3.326714e-01
+3.439602e-01
+3.556607e-01
+3.677883e-01
+3.803582e-01
+3.933867e-01
+4.068906e-01
+4.208871e-01
+4.353943e-01
+4.504307e-01
+4.660157e-01
+4.821694e-01
+4.989123e-01
+5.162661e-01
+5.314058e-01
+5.427305e-01
+5.544683e-01
+5.666343e-01
+5.792443e-01
+5.923142e-01
+6.058611e-01
+6.199021e-01
+6.344554e-01
+6.495397e-01
+6.651744e-01
+6.807522e-01
+6.899109e-01
+6.994038e-01
+7.092429e-01
+7.194411e-01
+7.368875e-01
+7.569233e-01
+7.776899e-01
+7.980127e-01
+7.982467e-01
+7.984892e-01
+7.987405e-01
+7.990010e-01
+7.992710e-01
+7.995510e-01
+8.042794e-01
+8.101172e-01
+8.161680e-01
+8.224396e-01
+8.289399e-01
+8.342458e-01
+8.392339e-01
+8.444039e-01
+8.497626e-01
+8.539259e-01
+8.564276e-01
+8.590205e-01
+8.617080e-01
+8.601962e-01
+8.568598e-01
+8.548928e-01
+8.535241e-01
+8.496331e-01
+8.360225e-01
+8.264965e-01
+8.275483e-01
+8.286386e-01
+8.297685e-01
+8.309396e-01
+8.328840e-01
+8.360294e-01
+8.392897e-01
+8.426689e-01
+8.461714e-01
+8.498016e-01
+8.535643e-01
+8.574644e-01
+8.613294e-01
+8.650263e-01
+8.688580e-01
+8.728295e-01
+8.769459e-01
+8.812124e-01
+8.849934e-01
+8.849465e-01
+8.848978e-01
+8.848472e-01
+8.847950e-01
+8.847407e-01
+8.846844e-01
+8.846261e-01
+8.875960e-01
+8.913530e-01
+8.952472e-01
+8.992833e-01
+9.025038e-01
+9.056354e-01
+9.088813e-01
+9.122456e-01
+9.157327e-01
+9.174708e-01
+9.185946e-01
+9.197595e-01
+9.200000e-01
+9.200000e-01
+9.200000e-01
+9.200000e-01
+9.200000e-01
+9.200000e-01
+9.207747e-01
+9.221712e-01
+9.236184e-01
+9.251186e-01
+9.266735e-01
+9.282851e-01
+9.299554e-01
+9.316868e-01
+9.334813e-01
+9.353413e-01
+9.372691e-01
+9.392673e-01
+9.413384e-01
+9.429768e-01
+9.440540e-01
+9.451705e-01
+9.463276e-01
+9.475270e-01
+9.487702e-01
+9.500588e-01
+9.513942e-01
+9.527785e-01
+9.542133e-01
+9.557003e-01
+9.572417e-01
+9.588393e-01
+
+# Ejnp
+
+0.05 0.0155624
+4.843730e-02
+4.935623e-02
+5.030868e-02
+5.129588e-02
+5.231913e-02
+5.337968e-02
+5.447892e-02
+5.561825e-02
+5.679915e-02
+5.802314e-02
+5.929179e-02
+6.060675e-02
+6.196962e-02
+6.338228e-02
+6.484646e-02
+6.636404e-02
+6.793699e-02
+6.956732e-02
+7.125717e-02
+7.300862e-02
+7.482401e-02
+7.670562e-02
+7.865587e-02
+8.067726e-02
+8.277240e-02
+8.494399e-02
+8.719482e-02
+8.952773e-02
+9.194581e-02
+9.445206e-02
+9.704976e-02
+9.974223e-02
+1.025330e-01
+1.054255e-01
+1.084235e-01
+1.115309e-01
+1.147517e-01
+1.180900e-01
+1.215501e-01
+1.251365e-01
+1.288536e-01
+1.327064e-01
+1.366998e-01
+1.408388e-01
+1.451289e-01
+1.495755e-01
+1.541843e-01
+1.589612e-01
+1.639124e-01
+1.690443e-01
+1.743633e-01
+1.798765e-01
+1.855907e-01
+1.915134e-01
+1.976523e-01
+2.040152e-01
+2.106101e-01
+2.174456e-01
+2.245306e-01
+2.318740e-01
+2.394853e-01
+2.473743e-01
+2.555511e-01
+2.640263e-01
+2.728106e-01
+2.819155e-01
+2.913525e-01
+3.011338e-01
+3.112719e-01
+3.217799e-01
+3.326714e-01
+3.439602e-01
+3.556607e-01
+3.677883e-01
+3.803582e-01
+3.933867e-01
+4.068906e-01
+4.208871e-01
+4.353943e-01
+4.504307e-01
+4.660157e-01
+4.821694e-01
+4.989123e-01
+5.162661e-01
+5.314058e-01
+5.427305e-01
+5.544683e-01
+5.666343e-01
+5.792443e-01
+5.923142e-01
+6.058611e-01
+6.199021e-01
+6.344554e-01
+6.495397e-01
+6.651744e-01
+6.807522e-01
+6.899109e-01
+6.994038e-01
+7.092429e-01
+7.194411e-01
+7.368875e-01
+7.569233e-01
+7.776899e-01
+7.980127e-01
+7.982467e-01
+7.984892e-01
+7.987405e-01
+7.990010e-01
+7.992710e-01
+7.995510e-01
+8.042794e-01
+8.101172e-01
+8.161680e-01
+8.224396e-01
+8.289399e-01
+8.342458e-01
+8.392339e-01
+8.444039e-01
+8.497626e-01
+8.539259e-01
+8.564276e-01
+8.590205e-01
+8.617080e-01
+8.601962e-01
+8.568598e-01
+8.548928e-01
+8.535241e-01
+8.496331e-01
+8.360225e-01
+8.264965e-01
+8.275483e-01
+8.286386e-01
+8.297685e-01
+8.309396e-01
+8.328840e-01
+8.360294e-01
+8.392897e-01
+8.426689e-01
+8.461714e-01
+8.498016e-01
+8.535643e-01
+8.574644e-01
+8.613294e-01
+8.650263e-01
+8.688580e-01
+8.728295e-01
+8.769459e-01
+8.812124e-01
+8.826500e-01
+8.656790e-01
+8.480889e-01
+8.298569e-01
+8.109598e-01
+7.913733e-01
+7.710722e-01
+7.500303e-01
+7.436701e-01
+7.405392e-01
+7.372940e-01
+7.339306e-01
+7.316641e-01
+7.295763e-01
+7.274125e-01
+7.251695e-01
+7.228449e-01
+7.168616e-01
+7.093693e-01
+7.016037e-01
+6.976798e-01
+6.946764e-01
+6.915635e-01
+6.883371e-01
+6.849929e-01
+6.815267e-01
+6.772454e-01
+6.722804e-01
+6.671343e-01
+6.618005e-01
+6.562721e-01
+6.505419e-01
+6.446027e-01
+6.384468e-01
+6.320664e-01
+6.254531e-01
+6.185986e-01
+6.114941e-01
+6.041303e-01
+5.987492e-01
+5.959238e-01
+5.929955e-01
+5.899602e-01
+5.868143e-01
+5.835535e-01
+5.801739e-01
+5.766708e-01
+5.730400e-01
+5.692767e-01
+5.653761e-01
+5.613332e-01
+5.571429e-01
+
+# Fe
+
+10 0.0039994
+0.000000e+00
+3.723316e-04
+7.481165e-04
+1.127377e-03
+1.510143e-03
+1.896445e-03
+2.286330e-03
+2.679817e-03
+3.076952e-03
+3.477752e-03
+3.882263e-03
+4.290514e-03
+4.702549e-03
+5.118392e-03
+5.538080e-03
+5.961653e-03
+6.389137e-03
+6.820589e-03
+7.256027e-03
+7.695485e-03
+8.139022e-03
+8.586653e-03
+9.038430e-03
+9.494383e-03
+9.954557e-03
+1.041899e-02
+1.088772e-02
+1.136078e-02
+1.183822e-02
+1.201732e-02
+1.190568e-02
+1.179300e-02
+1.167928e-02
+1.156451e-02
+1.144868e-02
+1.133178e-02
+1.121379e-02
+1.109472e-02
+1.097454e-02
+1.085325e-02
+1.073084e-02
+1.060729e-02
+1.048261e-02
+1.035677e-02
+1.022976e-02
+9.976223e-03
+9.716522e-03
+9.454418e-03
+9.189887e-03
+8.922912e-03
+8.653464e-03
+8.381523e-03
+8.107068e-03
+7.830072e-03
+7.550513e-03
+7.268367e-03
+6.983614e-03
+6.696224e-03
+6.406181e-03
+6.113447e-03
+5.818013e-03
+5.519841e-03
+5.218904e-03
+4.915189e-03
+4.651350e-03
+4.591124e-03
+4.530341e-03
+4.468996e-03
+4.407083e-03
+4.344599e-03
+4.281535e-03
+4.217888e-03
+4.153652e-03
+4.088821e-03
+4.023393e-03
+3.957357e-03
+3.896135e-03
+3.836351e-03
+3.776013e-03
+3.715118e-03
+3.653659e-03
+3.591630e-03
+3.529028e-03
+3.465848e-03
+3.402082e-03
+3.337726e-03
+3.272776e-03
+3.207224e-03
+3.141066e-03
+3.074296e-03
+3.006908e-03
+2.938897e-03
+2.870257e-03
+2.800980e-03
+2.731066e-03
+2.660501e-03
+2.589286e-03
+2.517410e-03
+2.444871e-03
+2.371659e-03
+2.333467e-03
+2.330783e-03
+2.328073e-03
+2.325339e-03
+2.322579e-03
+2.319794e-03
+2.316983e-03
+2.314146e-03
+2.311283e-03
+2.308393e-03
+2.305477e-03
+2.302533e-03
+2.299563e-03
+2.296565e-03
+2.293539e-03
+2.290485e-03
+2.287403e-03
+2.284292e-03
+2.281153e-03
+2.277985e-03
+2.274787e-03
+2.271559e-03
+2.268302e-03
+2.265015e-03
+2.261697e-03
+2.258349e-03
+2.254969e-03
+2.251558e-03
+2.248116e-03
+2.244642e-03
+2.241136e-03
+2.237597e-03
+2.234026e-03
+2.230421e-03
+2.226783e-03
+2.223112e-03
+2.219406e-03
+2.215667e-03
+2.211893e-03
+2.208083e-03
+2.204239e-03
+2.200359e-03
+2.196443e-03
+2.192491e-03
+2.188502e-03
+2.184476e-03
+2.180413e-03
+2.176313e-03
+2.172175e-03
+2.167998e-03
+2.163783e-03
+2.156083e-03
+2.144285e-03
+2.132378e-03
+2.120361e-03
+2.108233e-03
+2.095992e-03
+2.083639e-03
+2.071171e-03
+2.058588e-03
+2.045888e-03
+2.033071e-03
+2.020135e-03
+2.007079e-03
+1.993903e-03
+1.980605e-03
+1.967184e-03
+1.953639e-03
+1.939968e-03
+1.926170e-03
+1.912246e-03
+1.898192e-03
+1.884009e-03
+1.869694e-03
+1.855246e-03
+1.840665e-03
+1.825950e-03
+1.811098e-03
+1.796109e-03
+1.780980e-03
+1.765713e-03
+1.750303e-03
+1.734751e-03
+1.719056e-03
+1.703215e-03
+1.687227e-03
+1.671092e-03
+1.654807e-03
+1.638372e-03
+1.621785e-03
+1.605044e-03
+1.588148e-03
+1.571096e-03
+1.553887e-03
+1.536518e-03
+1.518988e-03
+1.501296e-03
+1.483441e-03
+1.465420e-03
+1.447232e-03
+
+# Mg
+
+10 0.0039994
+0.000000e+00
+2.729427e-05
+5.484093e-05
+8.264254e-05
+1.107017e-04
+1.390197e-04
+1.676001e-04
+1.964450e-04
+2.255568e-04
+2.549377e-04
+2.845905e-04
+3.145176e-04
+3.447214e-04
+3.752052e-04
+4.059703e-04
+4.370208e-04
+4.683577e-04
+4.999852e-04
+5.319051e-04
+5.641200e-04
+5.966332e-04
+6.294474e-04
+6.625648e-04
+6.959888e-04
+7.297220e-04
+7.637676e-04
+7.981276e-04
+8.328056e-04
+8.678043e-04
+9.317882e-04
+1.024040e-03
+1.117147e-03
+1.211116e-03
+1.305954e-03
+1.401668e-03
+1.498269e-03
+1.595763e-03
+1.694159e-03
+1.793465e-03
+1.893690e-03
+1.994842e-03
+2.096931e-03
+2.199961e-03
+2.303947e-03
+2.408895e-03
+2.427621e-03
+2.443863e-03
+2.460256e-03
+2.476800e-03
+2.493497e-03
+2.510348e-03
+2.527356e-03
+2.544520e-03
+2.561844e-03
+2.579328e-03
+2.596974e-03
+2.614783e-03
+2.632756e-03
+2.650896e-03
+2.669204e-03
+2.687681e-03
+2.706329e-03
+2.725150e-03
+2.744144e-03
+2.851233e-03
+3.383711e-03
+3.921118e-03
+4.463498e-03
+5.010888e-03
+5.563356e-03
+6.120924e-03
+6.683651e-03
+7.251590e-03
+7.824786e-03
+8.403283e-03
+8.987114e-03
+9.146377e-03
+9.148277e-03
+9.150195e-03
+9.152131e-03
+9.154084e-03
+9.156055e-03
+9.158044e-03
+9.160053e-03
+9.162080e-03
+9.164126e-03
+9.166189e-03
+9.168272e-03
+9.170374e-03
+9.172498e-03
+9.174638e-03
+9.176800e-03
+9.178982e-03
+9.181184e-03
+9.183406e-03
+9.185649e-03
+9.187912e-03
+9.190196e-03
+9.192501e-03
+9.194829e-03
+9.223163e-03
+9.277867e-03
+9.333077e-03
+9.388799e-03
+9.445035e-03
+9.501792e-03
+9.559073e-03
+9.616885e-03
+9.675231e-03
+9.734117e-03
+9.793549e-03
+9.853529e-03
+9.914066e-03
+9.975161e-03
+1.003682e-02
+1.009905e-02
+1.016186e-02
+1.022525e-02
+1.028922e-02
+1.035379e-02
+1.041896e-02
+1.048472e-02
+1.055110e-02
+1.061809e-02
+1.068570e-02
+1.075393e-02
+1.082280e-02
+1.089230e-02
+1.096245e-02
+1.103324e-02
+1.110469e-02
+1.117680e-02
+1.124958e-02
+1.132303e-02
+1.139716e-02
+1.147198e-02
+1.154749e-02
+1.162369e-02
+1.170061e-02
+1.177823e-02
+1.185657e-02
+1.193564e-02
+1.201544e-02
+1.209598e-02
+1.217726e-02
+1.225929e-02
+1.234208e-02
+1.242564e-02
+1.250997e-02
+1.259509e-02
+1.268099e-02
+1.275091e-02
+1.280189e-02
+1.285334e-02
+1.290527e-02
+1.295768e-02
+1.301058e-02
+1.306396e-02
+1.311783e-02
+1.317221e-02
+1.322709e-02
+1.328248e-02
+1.333837e-02
+1.339479e-02
+1.345173e-02
+1.350919e-02
+1.356719e-02
+1.362572e-02
+1.368479e-02
+1.374442e-02
+1.380459e-02
+1.386532e-02
+1.392661e-02
+1.398846e-02
+1.405089e-02
+1.411390e-02
+1.417749e-02
+1.424167e-02
+1.430644e-02
+1.437181e-02
+1.443779e-02
+1.450438e-02
+1.457158e-02
+1.463941e-02
+1.470786e-02
+1.477695e-02
+1.484667e-02
+1.491704e-02
+1.498806e-02
+1.505974e-02
+1.513208e-02
+1.520509e-02
+1.527877e-02
+1.535314e-02
+1.542820e-02
+1.550395e-02
+1.558040e-02
+1.565756e-02
+1.573543e-02
+1.581402e-02
+
+# O
+
+10 0.0039994
+0.000000e+00
+3.581978e-04
+7.197112e-04
+1.084566e-03
+1.452804e-03
+1.824435e-03
+2.199516e-03
+2.578061e-03
+2.960116e-03
+3.345698e-03
+3.734849e-03
+4.127599e-03
+4.523989e-03
+4.924040e-03
+5.327791e-03
+5.735282e-03
+6.146539e-03
+6.561607e-03
+6.980509e-03
+7.403284e-03
+7.829975e-03
+8.260611e-03
+8.695234e-03
+9.133875e-03
+9.576574e-03
+1.002337e-02
+1.047430e-02
+1.092941e-02
+1.138872e-02
+1.201160e-02
+1.279408e-02
+1.358380e-02
+1.438084e-02
+1.518524e-02
+1.599708e-02
+1.681644e-02
+1.764338e-02
+1.847796e-02
+1.932028e-02
+2.017038e-02
+2.102835e-02
+2.189425e-02
+2.276816e-02
+2.365016e-02
+2.454032e-02
+2.546063e-02
+2.639012e-02
+2.732821e-02
+2.827498e-02
+2.923050e-02
+3.019486e-02
+3.116815e-02
+3.215043e-02
+3.314182e-02
+3.414236e-02
+3.515217e-02
+3.617133e-02
+3.719991e-02
+3.823800e-02
+3.928570e-02
+4.034308e-02
+4.141025e-02
+4.248730e-02
+4.357432e-02
+4.490967e-02
+4.740754e-02
+4.992853e-02
+5.247284e-02
+5.504072e-02
+5.763231e-02
+6.024793e-02
+6.288771e-02
+6.555194e-02
+6.824079e-02
+7.095453e-02
+7.369339e-02
+7.566179e-02
+7.735445e-02
+7.906280e-02
+8.078691e-02
+8.252700e-02
+8.428320e-02
+8.605565e-02
+8.784446e-02
+8.964983e-02
+9.147193e-02
+9.331087e-02
+9.516682e-02
+9.703992e-02
+9.893038e-02
+1.008383e-01
+1.027639e-01
+1.047073e-01
+1.066687e-01
+1.086482e-01
+1.106461e-01
+1.126624e-01
+1.146974e-01
+1.167512e-01
+1.188240e-01
+1.206974e-01
+1.223686e-01
+1.240551e-01
+1.257574e-01
+1.274753e-01
+1.292091e-01
+1.309590e-01
+1.327251e-01
+1.345075e-01
+1.363064e-01
+1.381219e-01
+1.399542e-01
+1.418035e-01
+1.436699e-01
+1.455536e-01
+1.474547e-01
+1.493733e-01
+1.513098e-01
+1.532641e-01
+1.552365e-01
+1.572272e-01
+1.592363e-01
+1.612640e-01
+1.633104e-01
+1.653758e-01
+1.674602e-01
+1.695640e-01
+1.716872e-01
+1.738301e-01
+1.759928e-01
+1.781755e-01
+1.803783e-01
+1.826016e-01
+1.848455e-01
+1.871101e-01
+1.893956e-01
+1.917023e-01
+1.940303e-01
+1.963799e-01
+1.987512e-01
+2.011445e-01
+2.035598e-01
+2.059976e-01
+2.084579e-01
+2.109409e-01
+2.134469e-01
+2.159761e-01
+2.185287e-01
+2.211050e-01
+2.237050e-01
+2.263291e-01
+2.281939e-01
+2.291604e-01
+2.301358e-01
+2.311203e-01
+2.321138e-01
+2.331166e-01
+2.341286e-01
+2.351500e-01
+2.361808e-01
+2.372212e-01
+2.382712e-01
+2.393309e-01
+2.404005e-01
+2.414799e-01
+2.425693e-01
+2.436688e-01
+2.447784e-01
+2.458983e-01
+2.470286e-01
+2.481694e-01
+2.493207e-01
+2.504826e-01
+2.516553e-01
+2.528389e-01
+2.540333e-01
+2.552389e-01
+2.564555e-01
+2.576835e-01
+2.589228e-01
+2.601736e-01
+2.614359e-01
+2.627100e-01
+2.639958e-01
+2.652935e-01
+2.666032e-01
+2.679251e-01
+2.692591e-01
+2.706055e-01
+2.719644e-01
+2.733358e-01
+2.747199e-01
+2.761168e-01
+2.775267e-01
+2.789496e-01
+2.803856e-01
+2.818350e-01
+2.832977e-01
+2.847740e-01
+2.862639e-01
+
+# Ba
+
+10 0.0039994
+0.000000e+00
+1.097078e-08
+2.204297e-08
+3.321747e-08
+4.449566e-08
+5.587788e-08
+6.736559e-08
+7.895960e-08
+9.066082e-08
+1.024703e-07
+1.143891e-07
+1.264181e-07
+1.385582e-07
+1.508109e-07
+1.631769e-07
+1.756572e-07
+1.882529e-07
+2.009654e-07
+2.137953e-07
+2.267439e-07
+2.354499e-07
+2.268915e-07
+2.182539e-07
+2.095364e-07
+2.007382e-07
+1.918587e-07
+1.828970e-07
+1.738524e-07
+1.647242e-07
+1.555114e-07
+1.462134e-07
+1.368295e-07
+1.273587e-07
+1.178003e-07
+1.081535e-07
+9.841733e-08
+8.859115e-08
+7.867402e-08
+6.866526e-08
+5.856373e-08
+4.836897e-08
+3.807986e-08
+2.769548e-08
+1.721503e-08
+6.637606e-09
+6.268832e-09
+6.210778e-09
+6.152187e-09
+6.093053e-09
+6.033373e-09
+5.973141e-09
+5.912351e-09
+5.850999e-09
+5.789079e-09
+5.726587e-09
+5.663516e-09
+5.599862e-09
+5.535619e-09
+5.470782e-09
+5.405346e-09
+5.339303e-09
+5.272649e-09
+5.205378e-09
+5.137486e-09
+5.068965e-09
+4.999811e-09
+4.930016e-09
+4.859577e-09
+4.788485e-09
+4.716735e-09
+4.644322e-09
+4.571239e-09
+4.497480e-09
+4.423038e-09
+4.347908e-09
+4.272082e-09
+4.195556e-09
+4.118321e-09
+4.040371e-09
+3.961701e-09
+3.882302e-09
+3.802169e-09
+3.721294e-09
+3.639673e-09
+3.557296e-09
+3.474155e-09
+3.390246e-09
+3.305561e-09
+3.220093e-09
+3.133834e-09
+3.046775e-09
+2.958912e-09
+2.870237e-09
+2.780741e-09
+2.690417e-09
+2.599257e-09
+2.507254e-09
+2.414400e-09
+2.320687e-09
+2.226107e-09
+2.130652e-09
+2.034313e-09
+1.937084e-09
+1.838955e-09
+1.739918e-09
+1.639965e-09
+1.539087e-09
+1.437275e-09
+1.334523e-09
+1.230818e-09
+1.126155e-09
+1.020525e-09
+9.139161e-10
+8.063212e-10
+6.977308e-10
+5.881349e-10
+4.775265e-10
+3.658940e-10
+2.532285e-10
+1.395213e-10
+2.476330e-11
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+0.000000e+00
+
+# Metals
+
+10 0.0039994
+0.000000e+00
+1.070708e-03
+2.151318e-03
+3.241926e-03
+4.342638e-03
+5.453505e-03
+6.574661e-03
+7.706203e-03
+8.848213e-03
+1.000077e-02
+1.116401e-02
+1.233798e-02
+1.352285e-02
+1.471866e-02
+1.592553e-02
+1.714358e-02
+1.837287e-02
+1.961356e-02
+2.086573e-02
+2.212947e-02
+2.340491e-02
+2.469213e-02
+2.599125e-02
+2.730238e-02
+2.862566e-02
+2.996118e-02
+3.130905e-02
+3.266938e-02
+3.404230e-02
+3.533176e-02
+3.654025e-02
+3.775990e-02
+3.899088e-02
+4.023322e-02
+4.148704e-02
+4.275249e-02
+4.402962e-02
+4.531859e-02
+4.661947e-02
+4.793239e-02
+4.925746e-02
+5.059478e-02
+5.194445e-02
+5.330665e-02
+5.468144e-02
+5.589831e-02
+5.712123e-02
+5.835548e-02
+5.960116e-02
+6.085835e-02
+6.212717e-02
+6.340776e-02
+6.470016e-02
+6.600451e-02
+6.732095e-02
+6.864958e-02
+6.999048e-02
+7.134379e-02
+7.270962e-02
+7.408809e-02
+7.547931e-02
+7.688339e-02
+7.830047e-02
+7.973066e-02
+8.140108e-02
+8.418250e-02
+8.698966e-02
+8.982284e-02
+9.268221e-02
+9.556805e-02
+9.848054e-02
+1.014200e-01
+1.043867e-01
+1.073808e-01
+1.104026e-01
+1.134524e-01
+1.158151e-01
+1.179355e-01
+1.200755e-01
+1.222353e-01
+1.244151e-01
+1.266151e-01
+1.288354e-01
+1.310762e-01
+1.333378e-01
+1.356203e-01
+1.379240e-01
+1.402489e-01
+1.425953e-01
+1.449635e-01
+1.473536e-01
+1.497657e-01
+1.522002e-01
+1.546572e-01
+1.571369e-01
+1.596397e-01
+1.621655e-01
+1.647147e-01
+1.672875e-01
+1.698841e-01
+1.720806e-01
+1.738713e-01
+1.756786e-01
+1.775027e-01
+1.793436e-01
+1.812016e-01
+1.830767e-01
+1.849692e-01
+1.868792e-01
+1.888068e-01
+1.907524e-01
+1.927158e-01
+1.946975e-01
+1.966975e-01
+1.987160e-01
+2.007532e-01
+2.028092e-01
+2.048842e-01
+2.069785e-01
+2.090921e-01
+2.112253e-01
+2.133782e-01
+2.155510e-01
+2.177439e-01
+2.199571e-01
+2.221908e-01
+2.244451e-01
+2.267203e-01
+2.290166e-01
+2.313341e-01
+2.336730e-01
+2.360336e-01
+2.384160e-01
+2.408205e-01
+2.432472e-01
+2.456963e-01
+2.481682e-01
+2.506628e-01
+2.531806e-01
+2.557216e-01
+2.582862e-01
+2.608745e-01
+2.634867e-01
+2.661231e-01
+2.687839e-01
+2.714693e-01
+2.741796e-01
+2.769148e-01
+2.796755e-01
+2.824617e-01
+2.852736e-01
+2.873352e-01
+2.885089e-01
+2.896935e-01
+2.908890e-01
+2.920955e-01
+2.933132e-01
+2.945421e-01
+2.957825e-01
+2.970343e-01
+2.982977e-01
+2.995728e-01
+3.008597e-01
+3.021585e-01
+3.034693e-01
+3.047922e-01
+3.061274e-01
+3.074749e-01
+3.088349e-01
+3.102075e-01
+3.115928e-01
+3.129908e-01
+3.144018e-01
+3.158259e-01
+3.172632e-01
+3.187137e-01
+3.201777e-01
+3.216552e-01
+3.231463e-01
+3.246513e-01
+3.261702e-01
+3.277032e-01
+3.292503e-01
+3.308118e-01
+3.323877e-01
+3.339781e-01
+3.355833e-01
+3.372034e-01
+3.388384e-01
+3.404885e-01
+3.421539e-01
+3.438348e-01
+3.455311e-01
+3.472432e-01
+3.489711e-01
+3.507150e-01
+3.524750e-01
+3.542513e-01
+3.560441e-01
+3.578534e-01
+
+#### Metal Ejecta Parameters ####
+
+# Number of points / Number of elements
+200 5
+
+# IEj
+
+0.05 0.0155624
+8.206815e-05
+2.370714e-04
+4.047551e-04
+5.862745e-04
+7.828567e-04
+9.958115e-04
+1.226530e-03
+1.477058e-03
+1.748617e-03
+2.042938e-03
+2.362879e-03
+2.709811e-03
+3.086701e-03
+3.495351e-03
+3.923152e-03
+4.364125e-03
+4.818805e-03
+5.287757e-03
+5.771519e-03
+6.270749e-03
+6.786058e-03
+7.318125e-03
+7.867619e-03
+8.435268e-03
+9.021813e-03
+9.628053e-03
+1.025482e-02
+1.090293e-02
+1.157330e-02
+1.226686e-02
+1.298458e-02
+1.372747e-02
+1.449659e-02
+1.529304e-02
+1.611798e-02
+1.697260e-02
+1.785816e-02
+1.877598e-02
+1.972741e-02
+2.071389e-02
+2.173691e-02
+2.279802e-02
+2.389884e-02
+2.504107e-02
+2.622646e-02
+2.745688e-02
+2.873424e-02
+3.006056e-02
+3.143792e-02
+3.286853e-02
+3.435466e-02
+3.589871e-02
+3.750316e-02
+3.917060e-02
+4.090377e-02
+4.270547e-02
+4.457868e-02
+4.652649e-02
+4.855209e-02
+5.065887e-02
+5.285032e-02
+5.513012e-02
+5.750208e-02
+5.997020e-02
+6.253864e-02
+6.518428e-02
+6.785256e-02
+7.054213e-02
+7.325339e-02
+7.598678e-02
+7.874273e-02
+8.152161e-02
+8.432387e-02
+8.714992e-02
+9.000015e-02
+9.287501e-02
+9.577491e-02
+9.870028e-02
+1.016515e-01
+1.046291e-01
+1.076333e-01
+1.106647e-01
+1.137237e-01
+1.168107e-01
+1.199263e-01
+1.230735e-01
+1.262540e-01
+1.294692e-01
+1.327203e-01
+1.360089e-01
+1.393363e-01
+1.427040e-01
+1.461135e-01
+1.495662e-01
+1.530639e-01
+1.566079e-01
+1.601764e-01
+1.637549e-01
+1.673445e-01
+1.709463e-01
+1.745754e-01
+1.782619e-01
+1.820087e-01
+1.858174e-01
+1.896309e-01
+1.934048e-01
+1.971397e-01
+2.008358e-01
+2.044937e-01
+2.081138e-01
+2.117050e-01
+2.152829e-01
+2.188487e-01
+2.224031e-01
+2.259470e-01
+2.294789e-01
+2.329939e-01
+2.364924e-01
+2.399752e-01
+2.434418e-01
+2.468832e-01
+2.502979e-01
+2.536866e-01
+2.570437e-01
+2.603533e-01
+2.636164e-01
+2.668394e-01
+2.700189e-01
+2.731374e-01
+2.761648e-01
+2.791540e-01
+2.821150e-01
+2.850484e-01
+2.879544e-01
+2.908340e-01
+2.936923e-01
+2.965309e-01
+2.993504e-01
+3.021510e-01
+3.049335e-01
+3.076982e-01
+3.104457e-01
+3.131764e-01
+3.158896e-01
+3.185854e-01
+3.212645e-01
+3.239272e-01
+3.265741e-01
+3.292055e-01
+3.318135e-01
+3.343935e-01
+3.369458e-01
+3.394706e-01
+3.419683e-01
+3.444391e-01
+3.468834e-01
+3.493048e-01
+3.517101e-01
+3.541000e-01
+3.564748e-01
+3.588339e-01
+3.611758e-01
+3.635008e-01
+3.658094e-01
+3.681019e-01
+3.703770e-01
+3.726307e-01
+3.748631e-01
+3.770735e-01
+3.792603e-01
+3.814238e-01
+3.835641e-01
+3.856816e-01
+3.877764e-01
+3.898494e-01
+3.919030e-01
+3.939377e-01
+3.959539e-01
+3.979518e-01
+3.999317e-01
+4.018940e-01
+4.038388e-01
+4.057665e-01
+4.076773e-01
+4.095715e-01
+4.114494e-01
+4.133112e-01
+4.151571e-01
+4.169855e-01
+4.187966e-01
+4.205903e-01
+4.223672e-01
+4.241273e-01
+4.258709e-01
+4.275983e-01
+4.293097e-01
+4.310052e-01
+4.326852e-01
+4.343499e-01
+4.359994e-01
+
+# IEjnp
+
+0.05 0.0155624
+8.206815e-05
+2.370714e-04
+4.047551e-04
+5.862745e-04
+7.828567e-04
+9.958115e-04
+1.226530e-03
+1.477058e-03
+1.748617e-03
+2.042938e-03
+2.362879e-03
+2.709811e-03
+3.086701e-03
+3.495351e-03
+3.923152e-03
+4.364125e-03
+4.818805e-03
+5.287757e-03
+5.771519e-03
+6.270749e-03
+6.786058e-03
+7.318125e-03
+7.867619e-03
+8.435268e-03
+9.021813e-03
+9.628053e-03
+1.025482e-02
+1.090293e-02
+1.157330e-02
+1.226686e-02
+1.298458e-02
+1.372747e-02
+1.449659e-02
+1.529304e-02
+1.611798e-02
+1.697260e-02
+1.785816e-02
+1.877598e-02
+1.972741e-02
+2.071389e-02
+2.173691e-02
+2.279802e-02
+2.389884e-02
+2.504107e-02
+2.622646e-02
+2.745688e-02
+2.873424e-02
+3.006056e-02
+3.143792e-02
+3.286853e-02
+3.435466e-02
+3.589871e-02
+3.750316e-02
+3.917060e-02
+4.090377e-02
+4.270547e-02
+4.457868e-02
+4.652649e-02
+4.855209e-02
+5.065887e-02
+5.285032e-02
+5.513012e-02
+5.750208e-02
+5.997020e-02
+6.253864e-02
+6.518428e-02
+6.785256e-02
+7.054213e-02
+7.325339e-02
+7.598678e-02
+7.874273e-02
+8.152161e-02
+8.432387e-02
+8.714992e-02
+9.000015e-02
+9.287501e-02
+9.577491e-02
+9.870028e-02
+1.016515e-01
+1.046291e-01
+1.076333e-01
+1.106647e-01
+1.137237e-01
+1.168107e-01
+1.199263e-01
+1.230735e-01
+1.262540e-01
+1.294692e-01
+1.327203e-01
+1.360089e-01
+1.393363e-01
+1.427040e-01
+1.461135e-01
+1.495662e-01
+1.530639e-01
+1.566079e-01
+1.601764e-01
+1.637549e-01
+1.673445e-01
+1.709463e-01
+1.745754e-01
+1.782619e-01
+1.820087e-01
+1.858174e-01
+1.896309e-01
+1.934048e-01
+1.971397e-01
+2.008358e-01
+2.044937e-01
+2.081138e-01
+2.117050e-01
+2.152829e-01
+2.188487e-01
+2.224031e-01
+2.259470e-01
+2.294789e-01
+2.329939e-01
+2.364924e-01
+2.399752e-01
+2.434418e-01
+2.468832e-01
+2.502979e-01
+2.536866e-01
+2.570437e-01
+2.603533e-01
+2.636164e-01
+2.668394e-01
+2.700189e-01
+2.731374e-01
+2.761648e-01
+2.791540e-01
+2.821150e-01
+2.850484e-01
+2.879544e-01
+2.908340e-01
+2.936923e-01
+2.965309e-01
+2.993504e-01
+3.021510e-01
+3.049335e-01
+3.076982e-01
+3.104457e-01
+3.131764e-01
+3.158896e-01
+3.185854e-01
+3.212645e-01
+3.239272e-01
+3.265741e-01
+3.292050e-01
+3.317812e-01
+3.342795e-01
+3.366995e-01
+3.390406e-01
+3.413024e-01
+3.434843e-01
+3.455858e-01
+3.476235e-01
+3.496303e-01
+3.516071e-01
+3.535541e-01
+3.554726e-01
+3.573653e-01
+3.592322e-01
+3.610736e-01
+3.628896e-01
+3.646771e-01
+3.664278e-01
+3.681412e-01
+3.698213e-01
+3.714761e-01
+3.731061e-01
+3.747112e-01
+3.762917e-01
+3.778475e-01
+3.793783e-01
+3.808821e-01
+3.823586e-01
+3.838080e-01
+3.852301e-01
+3.866250e-01
+3.879927e-01
+3.893331e-01
+3.906463e-01
+3.919321e-01
+3.931905e-01
+3.944216e-01
+3.956251e-01
+3.968021e-01
+3.979597e-01
+3.990995e-01
+4.002213e-01
+4.013254e-01
+4.024118e-01
+4.034804e-01
+4.045314e-01
+4.055647e-01
+4.065804e-01
+4.075785e-01
+4.085590e-01
+4.095219e-01
+
+# IFe
+
+10 0.0039994
+1.665512e-11
+1.445769e-07
+5.727998e-07
+1.285749e-06
+2.284491e-06
+3.570094e-06
+5.143651e-06
+7.006223e-06
+9.158961e-06
+1.160294e-05
+1.433928e-05
+1.736911e-05
+2.069361e-05
+2.431386e-05
+2.823104e-05
+3.244632e-05
+3.696085e-05
+4.177593e-05
+4.689256e-05
+5.231221e-05
+5.803577e-05
+6.406469e-05
+7.040019e-05
+7.704343e-05
+8.399581e-05
+9.125844e-05
+9.883253e-05
+1.067197e-04
+1.149208e-04
+1.233814e-04
+1.317888e-04
+1.400945e-04
+1.482981e-04
+1.563993e-04
+1.643982e-04
+1.722943e-04
+1.800873e-04
+1.877772e-04
+1.953637e-04
+2.028464e-04
+2.102251e-04
+2.174998e-04
+2.246698e-04
+2.317352e-04
+2.386956e-04
+2.455092e-04
+2.521302e-04
+2.585579e-04
+2.647918e-04
+2.708312e-04
+2.766756e-04
+2.823243e-04
+2.877767e-04
+2.930322e-04
+2.980902e-04
+3.029499e-04
+3.076109e-04
+3.120723e-04
+3.163335e-04
+3.203940e-04
+3.242529e-04
+3.279097e-04
+3.313638e-04
+3.346142e-04
+3.376630e-04
+3.406118e-04
+3.435141e-04
+3.463696e-04
+3.491782e-04
+3.519398e-04
+3.546542e-04
+3.573214e-04
+3.599413e-04
+3.625136e-04
+3.650383e-04
+3.675152e-04
+3.699454e-04
+3.723321e-04
+3.746752e-04
+3.769746e-04
+3.792302e-04
+3.814419e-04
+3.836096e-04
+3.857331e-04
+3.878123e-04
+3.898471e-04
+3.918373e-04
+3.937829e-04
+3.956836e-04
+3.975395e-04
+3.993502e-04
+4.011158e-04
+4.028360e-04
+4.045107e-04
+4.061398e-04
+4.077232e-04
+4.092607e-04
+4.107521e-04
+4.121974e-04
+4.135963e-04
+4.149541e-04
+4.163015e-04
+4.176435e-04
+4.189804e-04
+4.203120e-04
+4.216383e-04
+4.229594e-04
+4.242752e-04
+4.255858e-04
+4.268911e-04
+4.281912e-04
+4.294861e-04
+4.307757e-04
+4.320602e-04
+4.333393e-04
+4.346133e-04
+4.358821e-04
+4.371456e-04
+4.384039e-04
+4.396571e-04
+4.409050e-04
+4.421478e-04
+4.433853e-04
+4.446176e-04
+4.458448e-04
+4.470668e-04
+4.482836e-04
+4.494952e-04
+4.507016e-04
+4.519029e-04
+4.530989e-04
+4.542898e-04
+4.554755e-04
+4.566561e-04
+4.578315e-04
+4.590017e-04
+4.601668e-04
+4.613267e-04
+4.624814e-04
+4.636311e-04
+4.647755e-04
+4.659148e-04
+4.670489e-04
+4.681778e-04
+4.693017e-04
+4.704203e-04
+4.715339e-04
+4.726422e-04
+4.737455e-04
+4.748435e-04
+4.759365e-04
+4.770238e-04
+4.781028e-04
+4.791730e-04
+4.802342e-04
+4.812864e-04
+4.823297e-04
+4.833640e-04
+4.843894e-04
+4.854057e-04
+4.864131e-04
+4.874115e-04
+4.884008e-04
+4.893810e-04
+4.903522e-04
+4.913143e-04
+4.922673e-04
+4.932111e-04
+4.941458e-04
+4.950714e-04
+4.959877e-04
+4.968950e-04
+4.977930e-04
+4.986817e-04
+4.995613e-04
+5.004315e-04
+5.012925e-04
+5.021442e-04
+5.029865e-04
+5.038196e-04
+5.046433e-04
+5.054576e-04
+5.062625e-04
+5.070579e-04
+5.078440e-04
+5.086206e-04
+5.093876e-04
+5.101453e-04
+5.108934e-04
+5.116319e-04
+5.123609e-04
+5.130803e-04
+5.137900e-04
+5.144902e-04
+5.151806e-04
+5.158615e-04
+5.165326e-04
+5.171939e-04
+5.178455e-04
+5.184874e-04
+
+# IMg
+
+10 0.0039994
+1.222134e-12
+1.059811e-08
+4.198955e-08
+9.425230e-08
+1.674662e-07
+2.617071e-07
+3.770574e-07
+5.135953e-07
+6.714017e-07
+8.505576e-07
+1.051147e-06
+1.273247e-06
+1.516952e-06
+1.782333e-06
+2.069482e-06
+2.378485e-06
+2.709428e-06
+3.062396e-06
+3.437479e-06
+3.834757e-06
+4.254329e-06
+4.696285e-06
+5.160709e-06
+5.647693e-06
+6.157337e-06
+6.689726e-06
+7.244951e-06
+7.823113e-06
+8.424300e-06
+9.053940e-06
+9.741809e-06
+1.049274e-05
+1.130700e-05
+1.218483e-05
+1.312645e-05
+1.413215e-05
+1.520217e-05
+1.633676e-05
+1.753621e-05
+1.880074e-05
+2.013062e-05
+2.152614e-05
+2.298754e-05
+2.451512e-05
+2.610912e-05
+2.774093e-05
+2.937911e-05
+3.102372e-05
+3.267483e-05
+3.433245e-05
+3.599667e-05
+3.766750e-05
+3.934506e-05
+4.102936e-05
+4.272044e-05
+4.441841e-05
+4.612330e-05
+4.783513e-05
+4.955399e-05
+5.127995e-05
+5.301302e-05
+5.475331e-05
+5.650085e-05
+5.825570e-05
+6.002313e-05
+6.201422e-05
+6.434027e-05
+6.700259e-05
+7.000237e-05
+7.334095e-05
+7.701968e-05
+8.103979e-05
+8.540275e-05
+9.010971e-05
+9.516228e-05
+1.005615e-04
+1.062105e-04
+1.118576e-04
+1.174903e-04
+1.231087e-04
+1.287127e-04
+1.343025e-04
+1.398780e-04
+1.454394e-04
+1.509867e-04
+1.565199e-04
+1.620391e-04
+1.675443e-04
+1.730355e-04
+1.785129e-04
+1.839765e-04
+1.894262e-04
+1.948623e-04
+2.002845e-04
+2.056932e-04
+2.110882e-04
+2.164697e-04
+2.218377e-04
+2.271922e-04
+2.325333e-04
+2.378648e-04
+2.432094e-04
+2.485709e-04
+2.539495e-04
+2.593453e-04
+2.647585e-04
+2.701894e-04
+2.756378e-04
+2.811043e-04
+2.865887e-04
+2.920914e-04
+2.976124e-04
+3.031519e-04
+3.087103e-04
+3.142874e-04
+3.198836e-04
+3.254990e-04
+3.311338e-04
+3.367882e-04
+3.424623e-04
+3.481563e-04
+3.538704e-04
+3.596047e-04
+3.653596e-04
+3.711350e-04
+3.769311e-04
+3.827483e-04
+3.885867e-04
+3.944463e-04
+4.003275e-04
+4.062304e-04
+4.121552e-04
+4.181020e-04
+4.240711e-04
+4.300626e-04
+4.360769e-04
+4.421140e-04
+4.481740e-04
+4.542573e-04
+4.603641e-04
+4.664944e-04
+4.726484e-04
+4.788265e-04
+4.850289e-04
+4.912555e-04
+4.975068e-04
+5.037830e-04
+5.100841e-04
+5.164105e-04
+5.227622e-04
+5.291396e-04
+5.355407e-04
+5.419524e-04
+5.483720e-04
+5.547997e-04
+5.612356e-04
+5.676799e-04
+5.741327e-04
+5.805942e-04
+5.870645e-04
+5.935438e-04
+6.000321e-04
+6.065298e-04
+6.130368e-04
+6.195535e-04
+6.260797e-04
+6.326160e-04
+6.391622e-04
+6.457185e-04
+6.522854e-04
+6.588625e-04
+6.654504e-04
+6.720489e-04
+6.786586e-04
+6.852793e-04
+6.919113e-04
+6.985547e-04
+7.052098e-04
+7.118766e-04
+7.185552e-04
+7.252460e-04
+7.319490e-04
+7.386644e-04
+7.453924e-04
+7.521331e-04
+7.588868e-04
+7.656534e-04
+7.724335e-04
+7.792268e-04
+7.860338e-04
+7.928545e-04
+7.996891e-04
+8.065379e-04
+8.134010e-04
+8.202784e-04
+8.271705e-04
+8.340774e-04
+8.409993e-04
+8.479364e-04
+8.548888e-04
+
+# IO
+
+10 0.0039994
+1.602984e-11
+1.390854e-07
+5.510519e-07
+1.236935e-06
+2.197761e-06
+3.434528e-06
+4.948335e-06
+6.740200e-06
+8.811214e-06
+1.116237e-05
+1.379481e-05
+1.670959e-05
+1.990786e-05
+2.339063e-05
+2.715908e-05
+3.121432e-05
+3.555743e-05
+4.018971e-05
+4.511198e-05
+5.032576e-05
+5.583209e-05
+6.163213e-05
+6.772706e-05
+7.411803e-05
+8.080638e-05
+8.779328e-05
+9.507983e-05
+1.026674e-04
+1.105572e-04
+1.187800e-04
+1.275023e-04
+1.367513e-04
+1.465298e-04
+1.568394e-04
+1.676822e-04
+1.790606e-04
+1.909768e-04
+2.034329e-04
+2.164311e-04
+2.299735e-04
+2.440626e-04
+2.587007e-04
+2.738899e-04
+2.896325e-04
+3.059310e-04
+3.227949e-04
+3.402344e-04
+3.582522e-04
+3.768507e-04
+3.960319e-04
+4.157992e-04
+4.361542e-04
+4.571000e-04
+4.786393e-04
+5.007740e-04
+5.235074e-04
+5.468414e-04
+5.707794e-04
+5.953233e-04
+6.204762e-04
+6.462405e-04
+6.726196e-04
+6.996158e-04
+7.272316e-04
+7.554844e-04
+7.849485e-04
+8.159284e-04
+8.484302e-04
+8.824600e-04
+9.180242e-04
+9.551295e-04
+9.937806e-04
+1.033986e-03
+1.075751e-03
+1.119082e-03
+1.163986e-03
+1.210287e-03
+1.257524e-03
+1.305677e-03
+1.354751e-03
+1.404750e-03
+1.455679e-03
+1.507542e-03
+1.560342e-03
+1.614086e-03
+1.668775e-03
+1.724418e-03
+1.781015e-03
+1.838573e-03
+1.897097e-03
+1.956590e-03
+2.017057e-03
+2.078502e-03
+2.140932e-03
+2.204351e-03
+2.268762e-03
+2.334171e-03
+2.400584e-03
+2.468004e-03
+2.536437e-03
+2.605856e-03
+2.676075e-03
+2.747067e-03
+2.818837e-03
+2.891390e-03
+2.964728e-03
+3.038856e-03
+3.113779e-03
+3.189500e-03
+3.266025e-03
+3.343358e-03
+3.421501e-03
+3.500462e-03
+3.580242e-03
+3.660847e-03
+3.742283e-03
+3.824551e-03
+3.907659e-03
+3.991610e-03
+4.076408e-03
+4.162059e-03
+4.248566e-03
+4.335936e-03
+4.424172e-03
+4.513280e-03
+4.603264e-03
+4.694128e-03
+4.785877e-03
+4.878519e-03
+4.972055e-03
+5.066493e-03
+5.161836e-03
+5.258088e-03
+5.355258e-03
+5.453348e-03
+5.552363e-03
+5.652311e-03
+5.753195e-03
+5.855021e-03
+5.957792e-03
+6.061518e-03
+6.166199e-03
+6.271843e-03
+6.378458e-03
+6.486046e-03
+6.594612e-03
+6.704165e-03
+6.814708e-03
+6.926246e-03
+7.038787e-03
+7.152337e-03
+7.266805e-03
+7.381564e-03
+7.496492e-03
+7.611591e-03
+7.726864e-03
+7.842317e-03
+7.957948e-03
+8.073763e-03
+8.189764e-03
+8.305952e-03
+8.422331e-03
+8.538906e-03
+8.655676e-03
+8.772646e-03
+8.889817e-03
+9.007196e-03
+9.124780e-03
+9.242576e-03
+9.360587e-03
+9.478813e-03
+9.597259e-03
+9.715927e-03
+9.834821e-03
+9.953943e-03
+1.007330e-02
+1.019288e-02
+1.031271e-02
+1.043278e-02
+1.055308e-02
+1.067364e-02
+1.079444e-02
+1.091550e-02
+1.103682e-02
+1.115839e-02
+1.128022e-02
+1.140232e-02
+1.152469e-02
+1.164732e-02
+1.177024e-02
+1.189343e-02
+1.201690e-02
+1.214065e-02
+1.226470e-02
+1.238903e-02
+1.251366e-02
+1.263858e-02
+1.276381e-02
+1.288934e-02
+1.301518e-02
+
+# IBa
+
+10 0.0039994
+4.909267e-16
+4.259815e-12
+1.687728e-11
+3.788392e-11
+6.731171e-11
+1.051919e-10
+1.515552e-10
+2.064358e-10
+2.698650e-10
+3.418750e-10
+4.225011e-10
+5.117728e-10
+6.097274e-10
+7.163958e-10
+8.318137e-10
+9.560166e-10
+1.089035e-09
+1.230908e-09
+1.381670e-09
+1.541354e-09
+1.709648e-09
+1.876185e-09
+2.036083e-09
+2.189320e-09
+2.335875e-09
+2.475729e-09
+2.608854e-09
+2.735235e-09
+2.854841e-09
+2.967655e-09
+3.073652e-09
+3.172809e-09
+3.265103e-09
+3.350508e-09
+3.429002e-09
+3.500561e-09
+3.565161e-09
+3.622777e-09
+3.673383e-09
+3.716955e-09
+3.753469e-09
+3.782898e-09
+3.805216e-09
+3.820398e-09
+3.828419e-09
+3.832668e-09
+3.836864e-09
+3.841009e-09
+3.845104e-09
+3.849148e-09
+3.853141e-09
+3.857083e-09
+3.860973e-09
+3.864812e-09
+3.868599e-09
+3.872335e-09
+3.876020e-09
+3.879652e-09
+3.883232e-09
+3.886760e-09
+3.890236e-09
+3.893659e-09
+3.897030e-09
+3.900348e-09
+3.903613e-09
+3.906826e-09
+3.909985e-09
+3.913092e-09
+3.916144e-09
+3.919144e-09
+3.922090e-09
+3.924982e-09
+3.927819e-09
+3.930603e-09
+3.933333e-09
+3.936008e-09
+3.938629e-09
+3.941195e-09
+3.943707e-09
+3.946163e-09
+3.948564e-09
+3.950909e-09
+3.953200e-09
+3.955435e-09
+3.957613e-09
+3.959736e-09
+3.961803e-09
+3.963813e-09
+3.965766e-09
+3.967664e-09
+3.969504e-09
+3.971287e-09
+3.973013e-09
+3.974682e-09
+3.976294e-09
+3.977847e-09
+3.979342e-09
+3.980780e-09
+3.982159e-09
+3.983479e-09
+3.984741e-09
+3.985944e-09
+3.987088e-09
+3.988172e-09
+3.989197e-09
+3.990163e-09
+3.991069e-09
+3.991914e-09
+3.992700e-09
+3.993424e-09
+3.994088e-09
+3.994692e-09
+3.995233e-09
+3.995714e-09
+3.996133e-09
+3.996490e-09
+3.996785e-09
+3.997018e-09
+3.997189e-09
+3.997296e-09
+3.997341e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+3.997342e-09
+
+# IMetals
+
+10 0.0039994
+4.797585e-11
+4.157482e-07
+1.647160e-06
+3.697380e-06
+6.569404e-06
+1.026635e-05
+1.479127e-05
+2.014742e-05
+2.633792e-05
+3.336585e-05
+4.123471e-05
+4.994741e-05
+5.950744e-05
+6.991788e-05
+8.118246e-05
+9.330397e-05
+1.062863e-04
+1.201327e-04
+1.348464e-04
+1.504312e-04
+1.668901e-04
+1.842272e-04
+2.024459e-04
+2.215493e-04
+2.415415e-04
+2.624267e-04
+2.842068e-04
+3.068871e-04
+3.304707e-04
+3.549438e-04
+3.802101e-04
+4.062578e-04
+4.330901e-04
+4.607108e-04
+4.891227e-04
+5.183297e-04
+5.483353e-04
+5.791422e-04
+6.107548e-04
+6.431760e-04
+6.764098e-04
+7.104601e-04
+7.453295e-04
+7.810220e-04
+8.175424e-04
+8.548363e-04
+8.928461e-04
+9.315752e-04
+9.710272e-04
+1.011204e-03
+1.052111e-03
+1.093750e-03
+1.136126e-03
+1.179241e-03
+1.223099e-03
+1.267705e-03
+1.313060e-03
+1.359168e-03
+1.406034e-03
+1.453662e-03
+1.502053e-03
+1.551213e-03
+1.601146e-03
+1.651853e-03
+1.703355e-03
+1.756198e-03
+1.810673e-03
+1.866788e-03
+1.924549e-03
+1.983964e-03
+2.045040e-03
+2.107784e-03
+2.172203e-03
+2.238305e-03
+2.306097e-03
+2.375586e-03
+2.446617e-03
+2.518776e-03
+2.592046e-03
+2.666435e-03
+2.741947e-03
+2.818587e-03
+2.896364e-03
+2.975278e-03
+3.055338e-03
+3.136550e-03
+3.218919e-03
+3.302449e-03
+3.387149e-03
+3.473023e-03
+3.560076e-03
+3.648316e-03
+3.737747e-03
+3.828377e-03
+3.920210e-03
+4.013254e-03
+4.107512e-03
+4.202995e-03
+4.299705e-03
+4.397650e-03
+4.496774e-03
+4.596715e-03
+4.697416e-03
+4.798883e-03
+4.901120e-03
+5.004131e-03
+5.107922e-03
+5.212497e-03
+5.317862e-03
+5.424019e-03
+5.530976e-03
+5.638734e-03
+5.747303e-03
+5.856685e-03
+5.966884e-03
+6.077906e-03
+6.189757e-03
+6.302441e-03
+6.415963e-03
+6.530329e-03
+6.645543e-03
+6.761612e-03
+6.878538e-03
+6.996329e-03
+7.114991e-03
+7.234525e-03
+7.354941e-03
+7.476243e-03
+7.598436e-03
+7.721525e-03
+7.845516e-03
+7.970415e-03
+8.096226e-03
+8.222957e-03
+8.350613e-03
+8.479197e-03
+8.608719e-03
+8.739181e-03
+8.870591e-03
+9.002954e-03
+9.136276e-03
+9.270562e-03
+9.405822e-03
+9.542057e-03
+9.679276e-03
+9.817482e-03
+9.956686e-03
+1.009689e-02
+1.023810e-02
+1.038033e-02
+1.052357e-02
+1.066775e-02
+1.081224e-02
+1.095692e-02
+1.110180e-02
+1.124687e-02
+1.139215e-02
+1.153763e-02
+1.168331e-02
+1.182921e-02
+1.197533e-02
+1.212166e-02
+1.226822e-02
+1.241499e-02
+1.256200e-02
+1.270924e-02
+1.285672e-02
+1.300443e-02
+1.315239e-02
+1.330059e-02
+1.344904e-02
+1.359775e-02
+1.374671e-02
+1.389593e-02
+1.404542e-02
+1.419517e-02
+1.434520e-02
+1.449550e-02
+1.464608e-02
+1.479694e-02
+1.494808e-02
+1.509952e-02
+1.525125e-02
+1.540328e-02
+1.555561e-02
+1.570825e-02
+1.586119e-02
+1.601445e-02
+1.616802e-02
+1.632191e-02
+1.647613e-02
+1.663067e-02
+1.678555e-02
+1.694077e-02
+1.709632e-02
+1.725222e-02
+1.740847e-02
+1.756507e-02
+1.772203e-02
+1.787935e-02
+
+# Mean WD Mass
+
+1.380000
+
+# SNIa Metal Ejection
+
+# Number of elements
+5
+
+# Ej
+0.0
+
+# Ejnp
+0.0
+
+# Fe
+7.434630e-01
+
+# Mg
+8.572300e-03
+
+# O
+1.430000e-01
+
+# Ba
+0.000000e+00
+
+# Metals
+1.370000e+00
+
+
+# Element Solar Abundances
+
+# Number of elements
+5
+
+# Fe
+0.00176604
+
+# Mg
+0.000924316
+
+# O
+0.0108169
+
+# Ba
+1.85267e-08
+
+# Metals
+0.02
+
diff --git a/clusters/user/GEAR/dIrr/cooling.dat b/clusters/user/GEAR/dIrr/cooling.dat
new file mode 100644
index 0000000..61b33d2
--- /dev/null
+++ b/clusters/user/GEAR/dIrr/cooling.dat
@@ -0,0 +1,1543 @@
+-3.0 0.5 0.5
+ 0.0 8.5 0.05
+ 0.00181
+ 9 171
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -39.999
+ -39.996
+ -39.987
+ -39.963
+ -39.906
+ -39.799
+ -39.640
+ -39.442
+ -39.229
+ -39.016
+ -38.804
+ -38.565
+ -38.223
+ -37.723
+ -37.131
+ -36.533
+ -35.968
+ -35.443
+ -34.960
+ -34.516
+ -34.108
+ -33.733
+ -33.388
+ -33.071
+ -32.779
+ -32.508
+ -32.257
+ -32.024
+ -31.805
+ -31.599
+ -31.404
+ -31.219
+ -31.041
+ -30.869
+ -30.701
+ -30.537
+ -30.375
+ -30.215
+ -30.055
+ -29.894
+ -29.733
+ -29.570
+ -29.405
+ -29.239
+ -29.071
+ -28.901
+ -28.730
+ -28.557
+ -28.384
+ -28.210
+ -28.038
+ -27.867
+ -27.698
+ -27.534
+ -27.375
+ -27.222
+ -27.078
+ -26.943
+ -26.821
+ -26.712
+ -26.619
+ -26.544
+ -26.490
+ -25.900
+ -24.683
+ -23.530
+ -22.630
+ -22.120
+ -21.980
+ -22.030
+ -22.130
+ -22.240
+ -22.330
+ -22.400
+ -22.490
+ -22.570
+ -22.630
+ -22.630
+ -22.550
+ -22.390
+ -22.230
+ -22.150
+ -22.160
+ -22.240
+ -22.330
+ -22.430
+ -22.520
+ -22.600
+ -22.660
+ -22.720
+ -22.770
+ -22.820
+ -22.900
+ -22.980
+ -23.040
+ -23.080
+ -23.120
+ -23.140
+ -23.160
+ -23.180
+ -23.200
+ -23.220
+ -23.230
+ -23.230
+ -23.240
+ -23.240
+ -23.230
+ -23.230
+ -23.230
+ -23.220
+ -23.230
+ -23.220
+ -23.210
+ -23.200
+ -23.190
+ -23.170
+ -23.160
+ -23.140
+ -23.130
+ -23.110
+ -23.090
+ -23.080
+ -23.060
+ -23.040
+ -23.030
+ -23.010
+ -22.990
+ -22.970
+ -22.950
+ -22.930
+ -22.910
+ -22.890
+ -22.860
+ -22.840
+ -22.820
+ -22.800
+ -22.780
+ -22.760
+ -22.730
+ -22.710
+ -22.690
+ -22.670
+ -22.650
+ -22.620
+ -22.600
+ -22.580
+ -22.560
+ -22.530
+ -22.510
+ -22.490
+ -22.460
+ -22.440
+ -22.420
+ -22.390
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -39.999
+ -39.976
+ -39.713
+ -38.912
+ -37.981
+ -37.127
+ -36.362
+ -35.680
+ -35.072
+ -34.530
+ -34.046
+ -33.615
+ -33.231
+ -32.888
+ -32.583
+ -32.310
+ -32.066
+ -31.849
+ -31.655
+ -31.482
+ -31.327
+ -31.187
+ -31.061
+ -30.945
+ -30.838
+ -30.735
+ -30.636
+ -30.538
+ -30.440
+ -30.341
+ -30.242
+ -30.144
+ -30.048
+ -29.956
+ -29.867
+ -29.782
+ -29.703
+ -29.629
+ -29.559
+ -29.494
+ -29.434
+ -29.377
+ -29.323
+ -29.271
+ -29.220
+ -29.170
+ -29.118
+ -29.063
+ -29.003
+ -28.936
+ -28.860
+ -28.772
+ -28.671
+ -28.556
+ -28.430
+ -28.292
+ -28.145
+ -27.991
+ -27.834
+ -27.676
+ -27.518
+ -27.363
+ -27.214
+ -27.072
+ -26.939
+ -26.817
+ -26.709
+ -26.617
+ -26.542
+ -26.488
+ -25.899
+ -24.683
+ -23.530
+ -22.630
+ -22.120
+ -21.980
+ -22.030
+ -22.130
+ -22.240
+ -22.330
+ -22.400
+ -22.490
+ -22.570
+ -22.630
+ -22.630
+ -22.550
+ -22.390
+ -22.230
+ -22.150
+ -22.160
+ -22.240
+ -22.330
+ -22.430
+ -22.520
+ -22.600
+ -22.660
+ -22.720
+ -22.770
+ -22.820
+ -22.900
+ -22.980
+ -23.040
+ -23.080
+ -23.120
+ -23.140
+ -23.160
+ -23.180
+ -23.200
+ -23.220
+ -23.230
+ -23.230
+ -23.240
+ -23.240
+ -23.230
+ -23.230
+ -23.230
+ -23.220
+ -23.230
+ -23.220
+ -23.210
+ -23.200
+ -23.190
+ -23.170
+ -23.160
+ -23.140
+ -23.130
+ -23.110
+ -23.090
+ -23.080
+ -23.060
+ -23.040
+ -23.030
+ -23.010
+ -22.990
+ -22.970
+ -22.950
+ -22.930
+ -22.910
+ -22.890
+ -22.860
+ -22.840
+ -22.820
+ -22.800
+ -22.780
+ -22.760
+ -22.730
+ -22.710
+ -22.690
+ -22.670
+ -22.650
+ -22.620
+ -22.600
+ -22.580
+ -22.560
+ -22.530
+ -22.510
+ -22.490
+ -22.460
+ -22.440
+ -22.420
+ -22.390
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -39.997
+ -39.928
+ -39.402
+ -38.437
+ -37.484
+ -36.627
+ -35.862
+ -35.180
+ -34.572
+ -34.030
+ -33.546
+ -33.115
+ -32.731
+ -32.388
+ -32.083
+ -31.810
+ -31.566
+ -31.349
+ -31.155
+ -30.982
+ -30.827
+ -30.687
+ -30.561
+ -30.445
+ -30.338
+ -30.235
+ -30.136
+ -30.038
+ -29.940
+ -29.841
+ -29.743
+ -29.645
+ -29.549
+ -29.457
+ -29.369
+ -29.285
+ -29.207
+ -29.134
+ -29.066
+ -29.003
+ -28.945
+ -28.891
+ -28.841
+ -28.795
+ -28.752
+ -28.711
+ -28.671
+ -28.632
+ -28.593
+ -28.551
+ -28.506
+ -28.454
+ -28.394
+ -28.323
+ -28.239
+ -28.142
+ -28.030
+ -27.906
+ -27.771
+ -27.630
+ -27.485
+ -27.340
+ -27.197
+ -27.059
+ -26.929
+ -26.810
+ -26.703
+ -26.612
+ -26.538
+ -26.485
+ -25.895
+ -24.678
+ -23.530
+ -22.630
+ -22.120
+ -21.980
+ -22.025
+ -22.125
+ -22.235
+ -22.320
+ -22.385
+ -22.465
+ -22.530
+ -22.570
+ -22.560
+ -22.475
+ -22.330
+ -22.180
+ -22.100
+ -22.105
+ -22.170
+ -22.245
+ -22.320
+ -22.375
+ -22.425
+ -22.460
+ -22.490
+ -22.515
+ -22.560
+ -22.660
+ -22.785
+ -22.890
+ -22.950
+ -22.990
+ -23.005
+ -23.025
+ -23.055
+ -23.100
+ -23.140
+ -23.160
+ -23.165
+ -23.180
+ -23.180
+ -23.175
+ -23.175
+ -23.175
+ -23.175
+ -23.190
+ -23.190
+ -23.185
+ -23.180
+ -23.170
+ -23.155
+ -23.145
+ -23.130
+ -23.120
+ -23.100
+ -23.085
+ -23.070
+ -23.055
+ -23.035
+ -23.020
+ -23.005
+ -22.985
+ -22.965
+ -22.945
+ -22.925
+ -22.905
+ -22.885
+ -22.860
+ -22.840
+ -22.820
+ -22.800
+ -22.780
+ -22.755
+ -22.730
+ -22.710
+ -22.690
+ -22.670
+ -22.645
+ -22.620
+ -22.600
+ -22.580
+ -22.555
+ -22.530
+ -22.510
+ -22.490
+ -22.460
+ -22.440
+ -22.420
+ -22.390
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -39.989
+ -39.803
+ -38.985
+ -37.945
+ -36.985
+ -36.127
+ -35.362
+ -34.680
+ -34.072
+ -33.530
+ -33.046
+ -32.615
+ -32.231
+ -31.888
+ -31.583
+ -31.310
+ -31.066
+ -30.849
+ -30.655
+ -30.482
+ -30.327
+ -30.187
+ -30.061
+ -29.945
+ -29.838
+ -29.735
+ -29.636
+ -29.538
+ -29.440
+ -29.341
+ -29.243
+ -29.145
+ -29.050
+ -28.957
+ -28.869
+ -28.786
+ -28.708
+ -28.635
+ -28.568
+ -28.506
+ -28.448
+ -28.396
+ -28.347
+ -28.303
+ -28.262
+ -28.224
+ -28.189
+ -28.156
+ -28.125
+ -28.095
+ -28.064
+ -28.032
+ -27.998
+ -27.959
+ -27.913
+ -27.857
+ -27.791
+ -27.711
+ -27.617
+ -27.511
+ -27.395
+ -27.272
+ -27.146
+ -27.021
+ -26.900
+ -26.787
+ -26.685
+ -26.597
+ -26.525
+ -26.473
+ -25.888
+ -24.672
+ -23.529
+ -22.630
+ -22.120
+ -21.980
+ -22.020
+ -22.120
+ -22.230
+ -22.310
+ -22.370
+ -22.440
+ -22.490
+ -22.510
+ -22.490
+ -22.400
+ -22.270
+ -22.130
+ -22.050
+ -22.050
+ -22.100
+ -22.160
+ -22.210
+ -22.230
+ -22.250
+ -22.260
+ -22.260
+ -22.260
+ -22.300
+ -22.420
+ -22.590
+ -22.740
+ -22.820
+ -22.860
+ -22.870
+ -22.890
+ -22.930
+ -23.000
+ -23.060
+ -23.090
+ -23.100
+ -23.120
+ -23.120
+ -23.120
+ -23.120
+ -23.120
+ -23.130
+ -23.150
+ -23.160
+ -23.160
+ -23.160
+ -23.150
+ -23.140
+ -23.130
+ -23.120
+ -23.110
+ -23.090
+ -23.080
+ -23.060
+ -23.050
+ -23.030
+ -23.010
+ -23.000
+ -22.980
+ -22.960
+ -22.940
+ -22.920
+ -22.900
+ -22.880
+ -22.860
+ -22.840
+ -22.820
+ -22.800
+ -22.780
+ -22.750
+ -22.730
+ -22.710
+ -22.690
+ -22.669
+ -22.639
+ -22.619
+ -22.599
+ -22.579
+ -22.549
+ -22.529
+ -22.509
+ -22.489
+ -22.459
+ -22.439
+ -22.419
+ -22.389
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -39.999
+ -39.967
+ -39.550
+ -38.515
+ -37.447
+ -36.485
+ -35.627
+ -34.862
+ -34.180
+ -33.572
+ -33.030
+ -32.546
+ -32.115
+ -31.731
+ -31.388
+ -31.083
+ -30.810
+ -30.566
+ -30.349
+ -30.155
+ -29.982
+ -29.827
+ -29.687
+ -29.561
+ -29.445
+ -29.338
+ -29.235
+ -29.136
+ -29.038
+ -28.940
+ -28.841
+ -28.743
+ -28.645
+ -28.550
+ -28.458
+ -28.370
+ -28.286
+ -28.208
+ -28.136
+ -28.068
+ -28.006
+ -27.949
+ -27.897
+ -27.849
+ -27.805
+ -27.765
+ -27.729
+ -27.695
+ -27.664
+ -27.636
+ -27.609
+ -27.585
+ -27.561
+ -27.537
+ -27.512
+ -27.486
+ -27.456
+ -27.421
+ -27.379
+ -27.328
+ -27.267
+ -27.193
+ -27.110
+ -27.017
+ -26.919
+ -26.820
+ -26.723
+ -26.633
+ -26.553
+ -26.487
+ -26.438
+ -25.846
+ -24.637
+ -23.509
+ -22.615
+ -22.110
+ -21.965
+ -22.005
+ -22.095
+ -22.180
+ -22.230
+ -22.260
+ -22.275
+ -22.275
+ -22.245
+ -22.195
+ -22.105
+ -21.995
+ -21.880
+ -21.810
+ -21.795
+ -21.815
+ -21.840
+ -21.855
+ -21.850
+ -21.845
+ -21.835
+ -21.820
+ -21.810
+ -21.850
+ -21.975
+ -22.170
+ -22.345
+ -22.445
+ -22.485
+ -22.495
+ -22.515
+ -22.565
+ -22.665
+ -22.755
+ -22.800
+ -22.825
+ -22.850
+ -22.860
+ -22.855
+ -22.855
+ -22.865
+ -22.900
+ -22.945
+ -22.980
+ -23.000
+ -23.015
+ -23.020
+ -23.024
+ -23.024
+ -23.024
+ -23.024
+ -23.014
+ -23.009
+ -22.994
+ -22.984
+ -22.969
+ -22.954
+ -22.949
+ -22.939
+ -22.924
+ -22.909
+ -22.894
+ -22.874
+ -22.859
+ -22.839
+ -22.824
+ -22.804
+ -22.784
+ -22.764
+ -22.739
+ -22.719
+ -22.699
+ -22.678
+ -22.658
+ -22.628
+ -22.608
+ -22.588
+ -22.568
+ -22.543
+ -22.518
+ -22.498
+ -22.478
+ -22.453
+ -22.428
+ -22.408
+ -22.383
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -39.997
+ -39.903
+ -39.171
+ -38.024
+ -36.948
+ -35.986
+ -35.127
+ -34.362
+ -33.680
+ -33.072
+ -32.530
+ -32.046
+ -31.615
+ -31.231
+ -30.888
+ -30.583
+ -30.310
+ -30.066
+ -29.849
+ -29.655
+ -29.482
+ -29.327
+ -29.187
+ -29.061
+ -28.945
+ -28.838
+ -28.735
+ -28.636
+ -28.538
+ -28.440
+ -28.341
+ -28.243
+ -28.145
+ -28.050
+ -27.958
+ -27.870
+ -27.786
+ -27.708
+ -27.636
+ -27.569
+ -27.507
+ -27.450
+ -27.398
+ -27.350
+ -27.306
+ -27.266
+ -27.230
+ -27.197
+ -27.167
+ -27.139
+ -27.114
+ -27.091
+ -27.070
+ -27.050
+ -27.031
+ -27.012
+ -26.993
+ -26.973
+ -26.950
+ -26.924
+ -26.893
+ -26.856
+ -26.811
+ -26.759
+ -26.699
+ -26.634
+ -26.566
+ -26.499
+ -26.436
+ -26.383
+ -26.342
+ -25.788
+ -24.601
+ -23.489
+ -22.600
+ -22.100
+ -21.950
+ -21.990
+ -22.070
+ -22.130
+ -22.150
+ -22.150
+ -22.110
+ -22.060
+ -21.980
+ -21.900
+ -21.810
+ -21.720
+ -21.630
+ -21.570
+ -21.540
+ -21.530
+ -21.520
+ -21.500
+ -21.470
+ -21.440
+ -21.410
+ -21.380
+ -21.360
+ -21.400
+ -21.530
+ -21.750
+ -21.950
+ -22.070
+ -22.110
+ -22.120
+ -22.140
+ -22.200
+ -22.330
+ -22.450
+ -22.510
+ -22.550
+ -22.580
+ -22.600
+ -22.590
+ -22.590
+ -22.610
+ -22.670
+ -22.739
+ -22.799
+ -22.839
+ -22.869
+ -22.889
+ -22.909
+ -22.919
+ -22.928
+ -22.938
+ -22.938
+ -22.938
+ -22.928
+ -22.918
+ -22.908
+ -22.898
+ -22.897
+ -22.897
+ -22.887
+ -22.877
+ -22.867
+ -22.847
+ -22.836
+ -22.816
+ -22.806
+ -22.786
+ -22.766
+ -22.746
+ -22.726
+ -22.706
+ -22.685
+ -22.665
+ -22.645
+ -22.615
+ -22.595
+ -22.575
+ -22.555
+ -22.535
+ -22.505
+ -22.485
+ -22.464
+ -22.444
+ -22.414
+ -22.394
+ -22.374
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -39.990
+ -39.747
+ -38.718
+ -37.527
+ -36.448
+ -35.486
+ -34.627
+ -33.862
+ -33.180
+ -32.572
+ -32.030
+ -31.546
+ -31.115
+ -30.731
+ -30.388
+ -30.083
+ -29.810
+ -29.566
+ -29.349
+ -29.155
+ -28.982
+ -28.827
+ -28.687
+ -28.561
+ -28.445
+ -28.338
+ -28.235
+ -28.136
+ -28.038
+ -27.940
+ -27.841
+ -27.743
+ -27.645
+ -27.550
+ -27.458
+ -27.370
+ -27.286
+ -27.208
+ -27.136
+ -27.069
+ -27.007
+ -26.950
+ -26.898
+ -26.850
+ -26.806
+ -26.767
+ -26.731
+ -26.698
+ -26.668
+ -26.640
+ -26.616
+ -26.593
+ -26.573
+ -26.554
+ -26.537
+ -26.520
+ -26.505
+ -26.490
+ -26.475
+ -26.459
+ -26.442
+ -26.423
+ -26.401
+ -26.375
+ -26.345
+ -26.311
+ -26.274
+ -26.234
+ -26.195
+ -26.160
+ -26.132
+ -25.648
+ -24.480
+ -23.419
+ -22.560
+ -22.070
+ -21.920
+ -21.940
+ -22.000
+ -22.020
+ -22.000
+ -21.940
+ -21.870
+ -21.780
+ -21.690
+ -21.590
+ -21.500
+ -21.410
+ -21.330
+ -21.270
+ -21.230
+ -21.220
+ -21.230
+ -21.220
+ -21.190
+ -21.160
+ -21.140
+ -21.120
+ -21.100
+ -21.140
+ -21.270
+ -21.500
+ -21.700
+ -21.810
+ -21.850
+ -21.860
+ -21.870
+ -21.930
+ -22.050
+ -22.150
+ -22.190
+ -22.220
+ -22.240
+ -22.240
+ -22.240
+ -22.230
+ -22.259
+ -22.339
+ -22.439
+ -22.529
+ -22.588
+ -22.638
+ -22.658
+ -22.688
+ -22.707
+ -22.727
+ -22.747
+ -22.756
+ -22.746
+ -22.736
+ -22.735
+ -22.725
+ -22.725
+ -22.744
+ -22.754
+ -22.763
+ -22.762
+ -22.762
+ -22.751
+ -22.741
+ -22.730
+ -22.720
+ -22.709
+ -22.689
+ -22.669
+ -22.648
+ -22.638
+ -22.618
+ -22.597
+ -22.577
+ -22.556
+ -22.536
+ -22.516
+ -22.486
+ -22.465
+ -22.445
+ -22.425
+ -22.404
+ -22.384
+ -22.364
+ -22.334
+ -22.313
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -39.999
+ -39.969
+ -39.455
+ -38.234
+ -37.028
+ -35.949
+ -34.986
+ -34.127
+ -33.362
+ -32.680
+ -32.072
+ -31.530
+ -31.046
+ -30.615
+ -30.231
+ -29.888
+ -29.583
+ -29.310
+ -29.066
+ -28.849
+ -28.655
+ -28.482
+ -28.327
+ -28.187
+ -28.061
+ -27.945
+ -27.838
+ -27.735
+ -27.636
+ -27.538
+ -27.440
+ -27.341
+ -27.243
+ -27.145
+ -27.050
+ -26.958
+ -26.870
+ -26.786
+ -26.708
+ -26.636
+ -26.569
+ -26.507
+ -26.450
+ -26.398
+ -26.350
+ -26.307
+ -26.267
+ -26.231
+ -26.198
+ -26.168
+ -26.141
+ -26.116
+ -26.094
+ -26.074
+ -26.055
+ -26.039
+ -26.023
+ -26.009
+ -25.996
+ -25.983
+ -25.971
+ -25.959
+ -25.947
+ -25.934
+ -25.919
+ -25.904
+ -25.886
+ -25.867
+ -25.846
+ -25.825
+ -25.805
+ -25.787
+ -25.406
+ -24.256
+ -23.279
+ -22.470
+ -21.990
+ -21.840
+ -21.850
+ -21.870
+ -21.840
+ -21.770
+ -21.660
+ -21.560
+ -21.450
+ -21.340
+ -21.240
+ -21.140
+ -21.050
+ -20.970
+ -20.910
+ -20.870
+ -20.870
+ -20.900
+ -20.910
+ -20.890
+ -20.860
+ -20.850
+ -20.840
+ -20.840
+ -20.870
+ -21.010
+ -21.230
+ -21.430
+ -21.540
+ -21.580
+ -21.590
+ -21.590
+ -21.640
+ -21.740
+ -21.810
+ -21.830
+ -21.840
+ -21.840
+ -21.830
+ -21.819
+ -21.819
+ -21.849
+ -21.949
+ -22.079
+ -22.188
+ -22.268
+ -22.317
+ -22.347
+ -22.376
+ -22.406
+ -22.435
+ -22.454
+ -22.474
+ -22.473
+ -22.453
+ -22.443
+ -22.442
+ -22.451
+ -22.480
+ -22.518
+ -22.546
+ -22.565
+ -22.583
+ -22.591
+ -22.589
+ -22.588
+ -22.577
+ -22.575
+ -22.564
+ -22.543
+ -22.532
+ -22.511
+ -22.499
+ -22.478
+ -22.458
+ -22.446
+ -22.425
+ -22.404
+ -22.383
+ -22.363
+ -22.342
+ -22.321
+ -22.300
+ -22.279
+ -22.258
+ -22.237
+ -22.216
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -40.000
+ -39.998
+ -39.908
+ -39.049
+ -37.739
+ -36.529
+ -35.449
+ -34.486
+ -33.627
+ -32.862
+ -32.180
+ -31.572
+ -31.030
+ -30.546
+ -30.115
+ -29.731
+ -29.388
+ -29.083
+ -28.810
+ -28.566
+ -28.349
+ -28.155
+ -27.982
+ -27.827
+ -27.687
+ -27.561
+ -27.445
+ -27.338
+ -27.235
+ -27.136
+ -27.038
+ -26.940
+ -26.841
+ -26.743
+ -26.645
+ -26.550
+ -26.458
+ -26.370
+ -26.286
+ -26.208
+ -26.136
+ -26.069
+ -26.007
+ -25.950
+ -25.898
+ -25.850
+ -25.807
+ -25.767
+ -25.731
+ -25.698
+ -25.668
+ -25.641
+ -25.616
+ -25.594
+ -25.574
+ -25.556
+ -25.539
+ -25.524
+ -25.510
+ -25.498
+ -25.486
+ -25.475
+ -25.465
+ -25.455
+ -25.445
+ -25.434
+ -25.424
+ -25.413
+ -25.402
+ -25.389
+ -25.375
+ -25.362
+ -25.350
+ -25.166
+ -24.234
+ -22.978
+ -22.260
+ -21.800
+ -21.640
+ -21.610
+ -21.570
+ -21.480
+ -21.360
+ -21.220
+ -21.090
+ -20.970
+ -20.860
+ -20.750
+ -20.650
+ -20.570
+ -20.500
+ -20.430
+ -20.390
+ -20.390
+ -20.420
+ -20.420
+ -20.400
+ -20.370
+ -20.350
+ -20.340
+ -20.340
+ -20.370
+ -20.510
+ -20.730
+ -20.930
+ -21.050
+ -21.090
+ -21.090
+ -21.090
+ -21.140
+ -21.240
+ -21.320
+ -21.340
+ -21.350
+ -21.350
+ -21.339
+ -21.329
+ -21.319
+ -21.349
+ -21.459
+ -21.589
+ -21.708
+ -21.798
+ -21.857
+ -21.896
+ -21.926
+ -21.955
+ -21.994
+ -22.033
+ -22.052
+ -22.052
+ -22.041
+ -22.031
+ -22.030
+ -22.049
+ -22.097
+ -22.144
+ -22.191
+ -22.237
+ -22.273
+ -22.289
+ -22.315
+ -22.321
+ -22.327
+ -22.324
+ -22.321
+ -22.317
+ -22.314
+ -22.301
+ -22.288
+ -22.275
+ -22.262
+ -22.240
+ -22.227
+ -22.214
+ -22.192
+ -22.179
+ -22.165
+ -22.143
+ -22.121
+ -22.108
+ -22.086
+ -22.064
+ -22.042
diff --git a/clusters/user/GEAR/dIrr/params b/clusters/user/GEAR/dIrr/params
new file mode 100644
index 0000000..0c6ddeb
--- /dev/null
+++ b/clusters/user/GEAR/dIrr/params
@@ -0,0 +1,227 @@
+% Relevant files
+
+InitCondFile snap.dat
+OutputDir snap
+
+EnergyFile energy.txt
+SystemFile system.txt
+InfoFile info.txt
+TimingsFile timings.txt
+CpuFile cpu.txt
+LogFile log.txt
+
+RestartFile restart
+SnapshotFileBase snapshot
+
+OutputListFilename snaplist.txt
+
+% CPU-time limit
+
+TimeLimitCPU 25560000
+ResubmitOn 0
+ResubmitCommand xyz
+
+
+% Code options
+
+ICFormat 1
+SnapFormat 1
+ComovingIntegrationOn 0
+
+TypeOfTimestepCriterion 0
+OutputListOn 0
+PeriodicBoundariesOn 0
+
+
+% Caracteristics of run
+
+TimeBegin 0.0
+TimeMax 1.21
+
+RandomSeed 77
+
+Omega0 0
+OmegaLambda 0
+OmegaBaryon 0
+HubbleParam 0.7
+BoxSize 0
+
+
+% Output frequency
+
+TimeBetSnapshot 3000.0
+TimeOfFirstSnapshot 0
+
+CpuTimeBetRestartFile 43200000000.0 ; here in seconds
+TimeBetStatistics 3000.
+
+NumFilesPerSnapshot 1
+NumFilesWrittenInParallel 1
+
+
+% Accuracy of time integration
+
+ErrTolIntAccuracy 0.05 % used for TypeOfTimestepCriterion==0
+
+CourantFac 0.1 % for SPH
+MaxSizeTimestep 1.0
+MinSizeTimestep 0.0
+
+
+
+
+% Tree algorithm, force accuracy, domain update frequency
+
+ErrTolTheta 0.7
+TypeOfOpeningCriterion 0
+ErrTolForceAcc 0.05
+
+
+
+TreeDomainUpdateFrequency 0.1 # 0.1
+MaxRMSDisplacementFac 0.25
+
+
+% Further parameters of SPH
+
+DesNumNgb 50
+MaxNumNgbDeviation 0.1
+ArtBulkViscConst 0.8
+InitGasTemp 0 % always ignored if set to 0
+MinGasTemp 10
+
+
+% cooling parameters
+CoolingType 2 % 0=Sutherland 1=with heating 2=with metals
+CoolingFile cooling.dat % cooling file
+CutofCoolingTemperature 1e1 % below this value, the cooling is zero
+InitGasMetallicity -10 % gas metallicity
+
+
+
+
+
+% multiphase parameters
+
+%PhaseFile phase.txt
+%CriticalTemperature 1e4
+%CriticalEgyFactor 1.00
+%StickyLambda 1e-4 % sticky parameter
+%StickyDensity 1e-24 % sticky density parameter
+%StickyRsphFact 1.0 % 1 or less
+
+
+% star formation parameters
+SfrFile sfr.txt
+StarFormationType 2 % 0=Rasera 1=Springel 2=use cstar
+StarFormationCstar 0.05
+StarFormationTime 190.0 % in Gyr (3:rasera,2.1:springel) not used if 2
+StarFormationDensity 1.67e-22 % !!!!! remettre à -25 (treeasph)!!! in g/cm3 (5.7e-27:rasera)
+StarFormationTemperature 3e4 % in Kelvin (not used when sticky)
+StarFormationNStarsFromGas 4
+StarFormationMgMsFraction 0.5 % min Gas-Star ratio allowed Mgas >= 0.5 Mstar
+StarFormationStarMass 0.0 % mass of a star particle (usefull for restart=2)
+ % if set to 0, it is taken as the
+ % mean mass of gas particles divided by NStarsFromGas
+
+
+% chimie parameters
+ChimieFile chimie.txt
+ChimieNumberOfParameterFiles 1
+ChimieParameterFile chimie.yr.dat
+ChimieMaxSizeTimestep 0.2 % Myr
+ChimieKineticFeedbackFraction 0 % fraction of energy released in kinetic form
+ChimieWindSpeed 1 % km/s
+ChimieWindTime 15 % Myr
+ChimieSupernovaEnergy 3e49 % supernova energy in erg
+ChimieSNIIThermalTime 5 % Myr
+ChimieSNIaThermalTime 5 % Myr
+
+% feedback parameters
+
+%SupernovaEgySpecPerMassUnit 5e14 % in cgs : (erg/g) (5e14=1e48erg/Msol)
+%SupernovaFractionInEgyKin 0.9
+%SupernovaTime 5 % in code unit
+
+
+
+
+
+
+
+
+% bubbles
+%BubbleFile bubble.txt
+%BubblesInitFile bubbles.dat
+%BubblesDelta 0.5
+%BubblesAlpha 1.0
+%BubblesRadiusFactor 0.25
+
+
+% agn_feedback
+%AccretionFile accretion.txt
+%TimeBetAccretion 2
+%AccretionRadius 10 % in code unit
+%AGNFactor 0.00015
+%MinMTotInRa 0.08 % in code unit
+
+
+% outer potential
+
+% NFW
+%HaloMass 1e15 % M200 (gas+dm) in Msolar
+%HaloConcentration 5.
+%GasMassFraction 0.15
+
+% Pseudo-isothermal potential
+%Rho0 6.2e-05 % in user unit (with gas)
+%Rc 40 % in user unit
+%GasMassFraction 0.15
+
+
+% Memory allocation
+
+PartAllocFactor 4
+TreeAllocFactor 2.
+StarsAllocFactor 0.05
+BufferSize 50 % in MByte
+
+% System of units
+
+UnitLength_in_cm 3.085e+21
+UnitMass_in_g 1.989e+43
+UnitVelocity_in_cm_per_s 20725573.785998672
+
+GravityConstantInternal 0.0 % if set to zero, the physical value 6.672e-8
+ % is taken
+
+% Softening lengths
+
+MinGasHsmlFractional 0.1 % minimum softening in terms of the gravitational
+ % softening length
+
+SofteningGas 0.0025
+SofteningHalo 0.0025
+SofteningDisk 0.025
+SofteningBulge 0.025
+SofteningStars 0.025
+SofteningBndry 0.025
+
+SofteningGasMaxPhys 0.0025
+SofteningHaloMaxPhys 0.0025
+SofteningDiskMaxPhys 0.025
+SofteningBulgeMaxPhys 0.025
+SofteningStarsMaxPhys 0.025
+SofteningBndryMaxPhys 0.025
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/dIrr/params-usedvalues b/clusters/user/GEAR/dIrr/params-usedvalues
new file mode 100644
index 0000000..eed52ce
--- /dev/null
+++ b/clusters/user/GEAR/dIrr/params-usedvalues
@@ -0,0 +1,92 @@
+InitCondFile snap.dat
+OutputDir snap
+EnergyFile energy.txt
+SystemFile system.txt
+InfoFile info.txt
+TimingsFile timings.txt
+CpuFile cpu.txt
+LogFile log.txt
+RestartFile restart
+SnapshotFileBase snapshot
+OutputListFilename snaplist.txt
+TimeLimitCPU 2.556e+07
+ResubmitOn 0
+ResubmitCommand xyz
+ICFormat 1
+SnapFormat 1
+ComovingIntegrationOn 0
+TypeOfTimestepCriterion 0
+OutputListOn 0
+PeriodicBoundariesOn 0
+TimeBegin 0
+TimeMax 1.21
+RandomSeed 77
+Omega0 0
+OmegaLambda 0
+OmegaBaryon 0
+HubbleParam 0.7
+BoxSize 0
+TimeBetSnapshot 3000
+TimeOfFirstSnapshot 0
+CpuTimeBetRestartFile 4.32e+10
+TimeBetStatistics 3000
+NumFilesPerSnapshot 1
+NumFilesWrittenInParallel 1
+ErrTolIntAccuracy 0.05
+CourantFac 0.1
+MaxSizeTimestep 1
+MinSizeTimestep 0
+ErrTolTheta 0.7
+TypeOfOpeningCriterion 0
+ErrTolForceAcc 0.05
+TreeDomainUpdateFrequency 0.1
+MaxRMSDisplacementFac 0.25
+DesNumNgb 50
+MaxNumNgbDeviation 0.1
+ArtBulkViscConst 0.8
+InitGasTemp 0
+MinGasTemp 10
+CoolingType 2
+CoolingFile cooling.dat
+CutofCoolingTemperature 10
+InitGasMetallicity -10
+SfrFile sfr.txt
+StarFormationType 2
+StarFormationCstar 0.05
+StarFormationTime 190
+StarFormationDensity 1.67e-22
+StarFormationTemperature 30000
+StarFormationNStarsFromGas 4
+StarFormationMgMsFraction 0.5
+StarFormationStarMass 0
+ChimieFile chimie.txt
+ChimieNumberOfParameterFiles 1
+ChimieParameterFile chimie.yr.dat
+ChimieMaxSizeTimestep 0.2
+ChimieKineticFeedbackFraction 0
+ChimieWindSpeed 1
+ChimieWindTime 15
+ChimieSupernovaEnergy 3e+49
+ChimieSNIIThermalTime 5
+ChimieSNIaThermalTime 5
+PartAllocFactor 4
+TreeAllocFactor 2
+StarsAllocFactor 0.05
+BufferSize 50
+UnitLength_in_cm 3.085e+21
+UnitMass_in_g 1.989e+43
+UnitVelocity_in_cm_per_s 2.07256e+07
+GravityConstantInternal 0
+MinGasHsmlFractional 0.1
+SofteningGas 0.0025
+SofteningHalo 0.0025
+SofteningDisk 0.025
+SofteningBulge 0.025
+SofteningStars 0.025
+SofteningBndry 0.025
+SofteningGasMaxPhys 0.0025
+SofteningHaloMaxPhys 0.0025
+SofteningDiskMaxPhys 0.025
+SofteningBulgeMaxPhys 0.025
+SofteningStarsMaxPhys 0.025
+SofteningBndryMaxPhys 0.025
diff --git a/clusters/user/GEAR/dIrr/snap.dat b/clusters/user/GEAR/dIrr/snap.dat
new file mode 120000
index 0000000..9284cd1
--- /dev/null
+++ b/clusters/user/GEAR/dIrr/snap.dat
@@ -0,0 +1 @@
+../snap.dat
\ No newline at end of file
diff --git a/clusters/user/GEAR/dIrr/snap/.keep b/clusters/user/GEAR/dIrr/snap/.keep
new file mode 100644
index 0000000..1156ada
--- /dev/null
+++ b/clusters/user/GEAR/dIrr/snap/.keep
@@ -0,0 +1 @@
+Dummy file to avoid the removal by git of this (otherwise empty) directory
diff --git a/clusters/user/GEAR/dIrr/src b/clusters/user/GEAR/dIrr/src
new file mode 120000
index 0000000..5cd551c
--- /dev/null
+++ b/clusters/user/GEAR/dIrr/src
@@ -0,0 +1 @@
+../src
\ No newline at end of file
diff --git a/clusters/user/GEAR/post.sh b/clusters/user/GEAR/post.sh
new file mode 120000
index 0000000..7a4bfb1
--- /dev/null
+++ b/clusters/user/GEAR/post.sh
@@ -0,0 +1 @@
+../Results/GEAR/post.sh
\ No newline at end of file
diff --git a/clusters/user/GEAR/runme.sh b/clusters/user/GEAR/runme.sh
new file mode 100644
index 0000000..aa65a01
--- /dev/null
+++ b/clusters/user/GEAR/runme.sh
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+export OMP_NUM_THREADS=1
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/scratch/rezzonic/gsl-1.15/lib:/scratch/rezzonic/fftw-2.1.5/lib
+for i in `cat ../cores.txt`; do
+ cp -a dIrr dIrr-$i
+ cd dIrr-$i
+ mpirun -np $i ../src/Gadget2 params
+ cd ..
+done
+
diff --git a/clusters/user/GEAR/runme_slurm.sh b/clusters/user/GEAR/runme_slurm.sh
new file mode 100644
index 0000000..2de3e69
--- /dev/null
+++ b/clusters/user/GEAR/runme_slurm.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+corespnode=`cat ../../cores_per_node.txt`
+cp1=`echo "$corespnode-1" | bc`
+for i in `cat ../cores.txt`; do
+ [ -d dIrr-$i ] || cp -a dIrr dIrr-$i
+ cd dIrr-$i
+ nodes=`echo "($i+$cp1)/$corespnode" | bc`
+ sed "s/--NODES--/$nodes/;s/--NP--/$i/" ../template.job > sub-$i.job
+ cat ../../../cluster.job >> sub-$i.job
+ echo "export OMP_NUM_THREADS=1" >> sub-$i.job
+ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/scratch/rezzonic/v3/gsl-1.15/lib:/scratch/rezzonic/v3/fftw-2.1.5/lib' >> sub-$i.job
+ echo "srun ../src/Gadget2 params" >> sub-$i.job
+ sbatch sub-$i.job
+ cd ..
+done
diff --git a/clusters/user/GEAR/src/Debug b/clusters/user/GEAR/src/Debug
new file mode 100644
index 0000000..8a31329
--- /dev/null
+++ b/clusters/user/GEAR/src/Debug
@@ -0,0 +1,229 @@
+#define REDUC_FAC 0.98
+#define TOPNODEFACTOR 20.0
+
+
+All.MaxPart = All.PartAllocFactor * (All.TotNumPart / NTask);
+All.MaxPartSph = All.PartAllocFactor * (All.TotN_gas / NTask);
+
+maxload = All.MaxPart * REDUC_FAC;
+maxloadsph = All.MaxPartSph * REDUC_FAC;
+
+
+
+domain_Decomposition
+
+ domain_decompose();
+ peano_hilbert_order();
+
+
+
+#####################################################################################################
+#####################################################################################################
+
+
+
+domain_decompose();
+
+ domain_findExtent (find the global domain extent)
+ DomainCenter
+ DomainLen
+ DomainFac
+
+
+ domain_determineTopTree (constructs the global top-level tree node)
+
+ Key[i] = peano_hilbert_key(..)
+ KeySorted[i] : sorted
+
+ domain_topsplit_local(0, 0); (construct the local top-level segments)
+
+ '''
+ create a local top-level segments
+ each segement contains at most
+ All.TotNumPart / (TOPNODEFACTOR * NTask))
+ particles
+
+ --> each Task has its own TopNodes structure
+ '''
+
+
+ * toplist_local : liste des cellules aux extrémité
+ '''
+ create the list of segements, for each segments, we
+ keep : .Startkey and .Count
+ '''
+
+ * toplist : global list of segments
+ : sorted using .Startkey (domains may overlap)
+
+
+ TopNodes[0].Blocks = ntop; /* total segements */
+
+
+ domain_topsplit(0, 0);
+ '''
+ constructing the global top-level tree segments
+ instead of inserting particles, we insert segements
+
+ -> each segement contains at most
+ All.TotNumPart / (TOPNODEFACTOR * NTask)
+ particles
+
+ the segements are now global
+ '''
+
+
+
+
+
+ domain_sumCost() (contribution for the domain splitting)
+
+ domain_walktoptree
+ calcul NTopleaves
+ flag .Leaf
+
+ -> chaque particule trouve sa feuille (base sur peano hilbert)
+
+ local_DomainWork : gravity
+ local_DomainCount : nbre de part
+ local_DomainCountSph : nbre de sph
+
+ DomainWork : idem mais global
+ DomainCount : idem mais global
+ DomainCountSph : idem mais global
+
+
+
+
+ domain_findSplit
+ '''
+ recursively split the peano curve
+ '''
+
+ domain_shiftSplit
+ '''
+ improve load balance
+ '''
+
+
+ domain_countToGo
+ '''
+ determines the particules that has to move
+ '''
+
+
+ -> echange..
+
+
+#####################################################################################################
+#####################################################################################################
+
+CPU_Domain_findExtend
+ domain_findExtent();
+
+CPU_Domain_determineTopTree
+ domain_determineTopTree
+
+CPU_Domain_sumCost
+ domain_sumCost
+
+CPU_Domain_findSplit
+ domain_findSplit
+
+CPU_Domain_shiftSplit
+ domain_shiftSplit
+
+CPU_Domain_countToGo
+ domain_countToGo
+
+CPU_Domain_exchange
+
+
+
+#####################################################################################################
+
+TOPNODEFACTOR=20. TOPNODEFACTOR -> 1/N
+NTask =2048
+TotNumPart = 2**26
+
+TotNumPart / (TOPNODEFACTOR * NTask)
+
+
+
+domain_findSplit
+
+
+first
+last
+
+ncpu
+
+
+maxload
+maxloadsph
+
+
+PartAllocFactor (role ?)
+
+
+#####################################################################################################
+Keller :
+ NTASK = 1024 TOPNODEFACTOR=20
+ NTASK = 2048 TOPNODEFACTOR=10
+ NTASK = 16384 TOPNODEFACTOR=1
+
+ imprimer : first split last, ncpu, ncpu_leftOfSplit
+
+
+ exemple 512
+ ------------
+
+ REDUC_FAC = 0.98
+ TOPNODEFACTOR= 20.
+ PartAllocFactor=1.5
+ NTask = 512
+ TotNumPart = 67104925
+
+ TotNumPart / (TOPNODEFACTOR * NTask)
+ NTopleaves= 8688
+
+
+ MaxPart = PartAllocFactor * (TotNumPart / NTask);
+ MaxPartSph = PartAllocFactor * (TotN_gas / NTask);
+
+
+ maxload = MaxPart * REDUC_FAC;
+ maxloadsph = MaxPartSph * REDUC_FAC;
+
+
+ solution :
+ 1) increase maxload, i.e., increase PartAllocFactor ---> regarder le max
+
+
+ 2) a quel niveau de split le problème arrive :
+
+
+ if(load_leftOfSplit > maxload * ncpu_leftOfSplit || (load - load_leftOfSplit) > maxload * (ncpu - ncpu_leftOfSplit))
+ {
+ /* we did not find a viable split */
+ printf("(%d) error -1 ",ThisTask);
+
+ printf("(%d first=%d split=%d last=%d ncpu=%d ) error -1 ",ThisTask,first,split,last,ncpu);
+
+ return -1;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/Debug~ b/clusters/user/GEAR/src/Debug~
new file mode 100644
index 0000000..f0e8c1e
--- /dev/null
+++ b/clusters/user/GEAR/src/Debug~
@@ -0,0 +1,230 @@
+#define REDUC_FAC 0.98
+#define TOPNODEFACTOR 20.0
+
+
+All.MaxPart = All.PartAllocFactor * (All.TotNumPart / NTask);
+All.MaxPartSph = All.PartAllocFactor * (All.TotN_gas / NTask);
+
+maxload = All.MaxPart * REDUC_FAC;
+maxloadsph = All.MaxPartSph * REDUC_FAC;
+
+
+
+domain_Decomposition
+
+ domain_decompose();
+ peano_hilbert_order();
+
+
+
+#####################################################################################################
+#####################################################################################################
+
+
+
+domain_decompose();
+
+ domain_findExtent (find the global domain extent)
+ DomainCenter
+ DomainLen
+ DomainFac
+
+
+ domain_determineTopTree (constructs the global top-level tree node)
+
+ Key[i] = peano_hilbert_key(..)
+ KeySorted[i] : sorted
+
+ domain_topsplit_local(0, 0); (construct the local top-level segments)
+
+ '''
+ create a local top-level segments
+ each segement contains at most
+ All.TotNumPart / (TOPNODEFACTOR * NTask))
+ particles
+
+ --> each Task has its own TopNodes structure
+ '''
+
+
+ * toplist_local : liste des cellules aux extrémité
+ '''
+ create the list of segements, for each segments, we
+ keep : .Startkey and .Count
+ '''
+
+ * toplist : global list of segments
+ : sorted using .Startkey (domains may overlap)
+
+
+ TopNodes[0].Blocks = ntop; /* total segements */
+
+
+ domain_topsplit(0, 0);
+ '''
+ constructing the global top-level tree segments
+ instead of inserting particles, we insert segements
+
+ -> each segement contains at most
+ All.TotNumPart / (TOPNODEFACTOR * NTask)
+ particles
+
+ the segements are now global
+ '''
+
+
+
+
+
+ domain_sumCost() (contribution for the domain splitting)
+
+ domain_walktoptree
+ calcul NTopleaves
+ flag .Leaf
+
+ -> chaque particule trouve sa feuille (base sur peano hilbert)
+
+ local_DomainWork : gravity
+ local_DomainCount : nbre de part
+ local_DomainCountSph : nbre de sph
+
+ DomainWork : idem mais global
+ DomainCount : idem mais global
+ DomainCountSph : idem mais global
+
+
+
+
+ domain_findSplit
+ '''
+ recursively split the peano curve
+ '''
+
+ domain_shiftSplit
+ '''
+ improve load balance
+ '''
+
+
+ domain_countToGo
+ '''
+ determines the particules that has to move
+ '''
+
+
+ -> echange..
+
+
+#####################################################################################################
+#####################################################################################################
+
+CPU_Domain_findExtend
+ domain_findExtent();
+
+CPU_Domain_determineTopTree
+ domain_determineTopTree
+
+CPU_Domain_sumCost
+ domain_sumCost
+
+CPU_Domain_findSplit
+ domain_findSplit
+
+CPU_Domain_shiftSplit
+ domain_shiftSplit
+
+
+CPU_Domain_countToGo
+ domain_countToGo
+
+CPU_Domain_exchange
+
+
+
+#####################################################################################################
+
+TOPNODEFACTOR=20. TOPNODEFACTOR -> 1/N
+NTask =2048
+TotNumPart = 2**26
+
+TotNumPart / (TOPNODEFACTOR * NTask)
+
+
+
+domain_findSplit
+
+
+first
+last
+
+ncpu
+
+
+maxload
+maxloadsph
+
+
+PartAllocFactor (role ?)
+
+
+#####################################################################################################
+Keller :
+ NTASK = 1024 TOPNODEFACTOR=20
+ NTASK = 2048 TOPNODEFACTOR=10
+ NTASK = 16384 TOPNODEFACTOR=1
+
+ imprimer : first split last, ncpu, ncpu_leftOfSplit
+
+
+ exemple 512
+ ------------
+
+ REDUC_FAC = 0.98
+ TOPNODEFACTOR= 20.
+ PartAllocFactor=1.5
+ NTask = 512
+ TotNumPart = 67104925
+
+ TotNumPart / (TOPNODEFACTOR * NTask)
+ NTopleaves= 8688
+
+
+ MaxPart = PartAllocFactor * (TotNumPart / NTask);
+ MaxPartSph = PartAllocFactor * (TotN_gas / NTask);
+
+
+ maxload = MaxPart * REDUC_FAC;
+ maxloadsph = MaxPartSph * REDUC_FAC;
+
+
+ solution :
+ 1) increase maxload, i.e., increase PartAllocFactor ---> regarder le max
+
+
+ 2) a quel niveau de split le problème arrive :
+
+
+ if(load_leftOfSplit > maxload * ncpu_leftOfSplit || (load - load_leftOfSplit) > maxload * (ncpu - ncpu_leftOfSplit))
+ {
+ /* we did not find a viable split */
+ printf("(%d) error -1 ",ThisTask);
+
+ printf("(%d first=%d split=%d last=%d ncpu=%d ) error -1 ",ThisTask,first,split,last,ncpu);
+
+ return -1;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/Makefile b/clusters/user/GEAR/src/Makefile
new file mode 100644
index 0000000..7fb7bdb
--- /dev/null
+++ b/clusters/user/GEAR/src/Makefile
@@ -0,0 +1,518 @@
+
+#----------------------------------------------------------------------
+# From the list below, please activate/deactivate the options that
+# apply to your run. If you modify any of these options, make sure
+# that you recompile the whole code by typing "make clean; make".
+#
+# Look at end of file for a brief guide to the compile-time options.
+#----------------------------------------------------------------------
+
+
+#--------------------------------------- Basic operation mode of code
+#OPT += -DPERIODIC
+OPT += -DUNEQUALSOFTENINGS
+
+
+#--------------------------------------- Things that are always recommended
+OPT += -DPEANOHILBERT
+OPT += -DWALLCLOCK
+
+
+#--------------------------------------- TreePM Options
+#OPT += -DPMGRID=128
+#OPT += -DPLACEHIGHRESREGION=3
+#OPT += -DENLARGEREGION=1.2
+#OPT += -DASMTH=1.25
+#OPT += -DRCUT=4.5
+
+
+#--------------------------------------- Single/Double Precision
+#OPT += -DDOUBLEPRECISION
+#OPT += -DDOUBLEPRECISION_FFTW
+
+
+#--------------------------------------- Time integration options
+OPT += -DSYNCHRONIZATION
+#OPT += -DFLEXSTEPS
+#OPT += -DPSEUDOSYMMETRIC
+OPT += -DNOSTOP_WHEN_BELOW_MINTIMESTEP
+#OPT += -DNOPMSTEPADJUSTMENT
+
+
+#--------------------------------------- Output
+OPT += -DADVANCEDSTATISTICS
+OPT += -DADVANCEDCPUSTATISTICS
+OPT += -DSYSTEMSTATISTICS
+OPT += -DBLOCK_SKIPPING
+#OPT += -DHAVE_HDF5
+#OPT += -DOUTPUTPOTENTIAL
+#OPT += -DOUTPUTACCELERATION
+#OPT += -DOUTPUTCHANGEOFENTROPY
+#OPT += -DOUTPUTTIMESTEP
+#OPT += -DOUTPUTERADSTICKY
+#OPT += -DOUTPUTERADFEEDBACK
+#OPT += -DOUTPUTENERGYFLUX
+#OPT += -DOUTPUTOPTVAR1
+#OPT += -DOUTPUTOPTVAR2
+OPT += -DOUTPUTSTELLAR_PROP
+
+#--------------------------------------- Things for special behaviour
+#OPT += -DNOGRAVITY
+#OPT += -DNOTREERND
+#OPT += -DNOTYPEPREFIX_FFTW
+#OPT += -DLONG_X=60
+#OPT += -DLONG_Y=5
+#OPT += -DLONG_Z=0.2
+#OPT += -DTWODIMS
+#OPT += -DSPH_BND_PARTICLES
+#OPT += -DNOVISCOSITYLIMITER
+OPT += -DCOMPUTE_POTENTIAL_ENERGY
+#OPT += -DLONGIDS
+#OPT += -DISOTHERM_EQS
+#OPT += -DADAPTIVE_GRAVSOFT_FORGAS
+#OPT += -DSELECTIVE_NO_GRAVITY=2+4+8+16
+#OPT += -DAVOIDNUMNGBPROBLEM
+#OPT += -DLIMIT_DVEL=1.0
+#OPT += -DOTHERINFO
+#OPT += -DDOMAIN_AT_ORIGIN
+OPT += -DNO_NEGATIVE_PRESSURE
+#OPT += -DCOMPUTE_VELOCITY_DISPERSION
+#OPT += -DCYLINDRICAL_SYMMETRY
+
+OPT += -DWRITE_ALL_MASSES
+OPT += -DENTROPYPRED
+OPT += -DCOUNT_ACTIVE_PARTICLES
+OPT += -DRANDOMSEED_AS_PARAMETER
+OPT += -DDETAILED_CPU
+OPT += -DDETAILED_CPU_GRAVITY
+OPT += -DDETAILED_CPU_DOMAIN
+OPT += -DDETAILED_CPU_OUTPUT_IN_GRAVTREE
+OPT += -DDETAILED_CPU_OUTPUT_IN_HYDRA
+OPT += -DDETAILED_CPU_OUTPUT_IN_DENSITY
+OPT += -DDETAILED_CPU_OUTPUT_IN_STARS_DENSITY
+OPT += -DDETAILED_CPU_OUTPUT_IN_CHIMIE
+#OPT += -DSPLIT_DOMAIN_USING_TIME
+
+
+OPT += -DCOSMICTIME
+
+OPT += -DONLY_MASTER_READ_EWALD
+
+#OPT += -DPNBODY
+#OPT += -DPNBODY_OUTPUT_POS
+#OPT += -DPNBODY_OUTPUT_VEL
+#OPT += -DPNBODY_OUTPUT_NUM
+#OPT += -DPNBODY_OUTPUT_MASS
+#OPT += -DPNBODY_OUTPUT_TYPE
+#OPT += -DPNBODY_OUTPUT_ENERGY
+#OPT += -DPNBODY_OUTPUT_DENSITY
+#OPT += -DPNBODY_OUTPUT_HSML
+#OPT += -DPNBODY_OUTPUT_METALS
+
+#--------------------------------------- Physical processes
+OPT += -DCOOLING
+#OPT += -DIMPLICIT_COOLING_INTEGRATION
+#OPT += -DDO_NO_USE_HYDROGEN_MASSFRAC_IN_COOLING
+
+#OPT += -DHEATING
+#OPT += -DHEATING_PE # photo-electric heating
+
+OPT += -DSFR
+OPT += -DCOMPUTE_SFR_ENERGY
+OPT += -DSFR_NEG_DIV_ONLY
+
+OPT += -DSTELLAR_PROP
+
+OPT += -DCHIMIE # need stellar prop
+OPT += -DCHIMIE_THERMAL_FEEDBACK
+OPT += -DCHIMIE_COMPUTE_THERMAL_FEEDBACK_ENERGY
+#OPT += -DCHIMIE_KINETIC_FEEDBACK
+#OPT += -DCHIMIE_COMPUTE_KINETIC_FEEDBACK_ENERGY
+OPT += -DCHIMIE_EXTRAHEADER
+OPT += -DCHIMIE_INPUT_ALL
+OPT += -DCHIMIE_MC_SUPERNOVAE
+
+#OPT += -DFEEDBACK
+#OPT += -DFEEDBACK_WIND
+
+#--------------------------------------- multiphase
+#OPT += -DMULTIPHASE
+#OPT += -DNO_HYDRO_FOR_GAS # do not use hydro routine (at all)
+#OPT += -DNO_DENSITY_FOR_STICKY # do not compute density in sticky (need to be done in sfr)
+
+#OPT += -DPHASE_MIXING # need MULTIPHASE : enable phase mixing
+#OPT += -DCOLDGAS_CYCLE # need MULTIPHASE and PHASE_MIXING
+#OPT += -DEXTERNAL_FLUX
+#OPT += -DSTELLAR_FLUX
+#OPT += -DCOUNT_COLLISIONS # count sticky collisions
+
+
+#--------------------------------------- Outer potential
+#OPT += -DOUTERPOTENTIAL
+#OPT += -DNFW
+#OPT += -DPISOTHERM
+#OPT += -DPLUMMER
+OPT += -DMIYAMOTONAGAI
+#OPT += -DCORIOLIS
+
+#--------------------------------------- Testing and Debugging options
+#OPT += -DFORCETEST=0.1
+#OPT += -DWITH_ID_IN_HYDRA
+#OPT += -DPARTICLE_FLAG
+#OPT += -DOUTPUT_EVERY_TIMESTEP
+#OPT += -DOUTPUT_COOLING_FUNCTION
+
+OPT += -DCHECK_BLOCK_ORDER
+OPT += -DCHECK_ENTROPY_SIGN
+OPT += -DCHECK_TYPE_DURING_IO
+OPT += -DCHECK_ID_CORRESPONDENCE
+
+
+#--------------------------------------- Glass making
+#OPT += -DMAKEGLASS=262144
+
+
+#--------------------------------------- Artificial Conductivity
+#OPT += -DART_CONDUCTIVITY
+#OPT += -DOUTPUT_CONDUCTIVITY
+#OPT += -DOUTPUTOPTVAR1
+#OPT += -DOUTPUTOPTVAR2
+
+#--------------------------------------- Agn
+#OPT += -DBUBBLES
+#OPT += -DAGN_ACCRETION
+#OPT += -DAGN_FEEDBACK
+#OPT += -DAGN_USE_ANGULAR_MOMENTUM
+#OPT += -DAGN_HEATING
+#OPT += -DBONDI_ACCRETION
+#OPT += -DUSE_BONDI_POWER
+
+#----------------------------------------------------------------------
+# Here, select compile environment for the target machine. This may need
+# adjustment, depending on your local system. Follow the examples to add
+# additional target platforms, and to get things properly compiled.
+#----------------------------------------------------------------------
+
+#--------------------------------------- Select some defaults
+
+CC = mpiicc # sets the C-compiler
+OPTIMIZE = -O3 -xHost -Wall # sets optimization and warning flags
+MPICHLIB = -lmpi
+
+
+#--------------------------------------- modify to suit your machine
+
+# GSL_INCL = -I/opt/gsl-1.15/include
+# GSL_LIBS = -L/opt/gsl-1.15/lib
+# FFTW_INCL= -I/opt/fftw-2.1.5/include
+# FFTW_LIBS= -L/opt/fftw-2.1.5/lib
+GSL_INCL = -I/scratch/rezzonic/gsl-1.15/include
+GSL_LIBS = -L/scratch/rezzonic/gsl-1.15/lib
+FFTW_INCL= -I/scratch/rezzonic/fftw-2.1.5/include
+FFTW_LIBS= -L/scratch/rezzonic/fftw-2.1.5/lib
+HDF5INCL =
+HDF5LIB =
+
+#-------------------------------------- end modify
+
+ifneq (HAVE_HDF5,$(findstring HAVE_HDF5,$(OPT)))
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+OPTIONS = $(OPTIMIZE) $(OPT)
+
+EXEC = Gadget2
+
+OBJS = main.o run.o predict.o begrun.o endrun.o global.o \
+ timestep.o init.o restart.o io.o \
+ accel.o read_ic.o ngb.o \
+ system.o allocate.o density.o \
+ gravtree.o hydra.o driftfac.o \
+ domain.o allvars.o potential.o \
+ forcetree.o peano.o gravtree_forcetest.o \
+ pm_periodic.o pm_nonperiodic.o longrange.o \
+ cooling.o agn_heating.o phase.o sticky.o outerpotential.o starformation.o \
+ agn_feedback.o bubbles.o bondi_accretion.o chimie.o stars_density.o cosmictime.o pnbody.o
+
+INCL = allvars.h proto.h tags.h Makefile
+
+
+CFLAGS = $(OPTIONS) $(GSL_INCL) $(FFTW_INCL) $(HDF5INCL) $(PY_INCL)
+
+
+ifeq (NOTYPEPREFIX_FFTW,$(findstring NOTYPEPREFIX_FFTW,$(OPT))) # fftw installed with type prefix?
+ FFTW_LIB = $(FFTW_LIBS) -lrfftw_mpi -lfftw_mpi -lrfftw -lfftw
+else
+ifeq (DOUBLEPRECISION_FFTW,$(findstring DOUBLEPRECISION_FFTW,$(OPT)))
+ FFTW_LIB = $(FFTW_LIBS) -ldrfftw_mpi -ldfftw_mpi -ldrfftw -ldfftw
+else
+ FFTW_LIB = $(FFTW_LIBS) -lsrfftw_mpi -lsfftw_mpi -lsrfftw -lsfftw
+endif
+endif
+
+ifeq ($(NO_FFTW_LIB),"yes")
+ FFTW_LIB =
+endif
+
+LIBS = $(HDF5LIB) -g $(MPICHLIB) $(GSL_LIBS) -lgsl -lgslcblas -lm $(FFTW_LIB) $(PY_LIB)
+
+$(EXEC): $(OBJS)
+ $(CC) $(OBJS) $(LIBS) -o $(EXEC)
+
+$(OBJS): $(INCL)
+
+
+clean:
+ rm -f $(OBJS) $(EXEC)
+
+
+#-----------------------------------------------------------------------
+#
+# Brief guide to compile-time options of the code. More information
+# can be found in the code documentation.
+#
+# - PERIODIC:
+# Set this if you want to have periodic boundary conditions.
+#
+# - UNEQUALSOFTENINGS:
+# Set this if you use particles with different gravitational
+# softening lengths.
+#
+# - PEANOHILBERT:
+# This is a tuning option. When set, the code will bring the
+# particles after each domain decomposition into Peano-Hilbert
+# order. This improves cache utilization and performance.
+#
+# - WALLCLOCK:
+# If set, a wallclock timer is used by the code to measure internal
+# time consumption (see cpu-log file). Otherwise, a timer that
+# measures consumed processor ticks is used.
+#
+# - PMGRID:
+# This enables the TreePM method, i.e. the long-range force is
+# computed with a PM-algorithm, and the short range force with the
+# tree. The parameter has to be set to the size of the mesh that
+# should be used, (e.g. 64, 96, 128, etc). The mesh dimensions need
+# not necessarily be a power of two. Note: If the simulation is
+# not in a periodic box, then a FFT method for vacuum boundaries is
+# employed, using an actual mesh with dimension twice(!) that
+# specified by PMGRID.
+#
+# - PLACEHIGHRESREGION:
+# If this option is set (will only work together with PMGRID), then
+# the long range force is computed in two stages: One Fourier-grid
+# is used to cover the whole simulation volume, allowing the
+# computation of the longe-range force. A second Fourier mesh is
+# placed on the region occupied by "high-resolution" particles,
+# allowing the computation of an intermediate scale force. Finally,
+# the force on short scales is computed with the tree. This
+# procedure can be useful for "zoom-simulations", provided the
+# majority of particles (the high-res particles) are occupying only
+# a small fraction of the volume. To activate this option, the
+# parameter needs to be set to an integer bit mask that encodes the
+# particle types that make up the high-res particles.
+# For example, if types 0, 1, and 4 form the high-res
+# particles, set the parameter to PLACEHIGHRESREGION=19, because
+# 2^0 + 2^1 + 2^4 = 19. The spatial region covered by the high-res
+# grid is determined automatically from the initial conditions.
+# Note: If a periodic box is used, the high-res zone may not intersect
+# the box boundaries.
+#
+# - ENLARGEREGION:
+# The spatial region covered by the high-res zone has a fixed size
+# during the simulation, which initially is set to the smallest
+# region that encompasses all high-res particles. Normally, the
+# simulation will be interrupted if high-res particles leave this
+# region in the course of the run. However, by setting this
+# parameter to a value larger than one, the size of the high-res
+# region can be expanded, providing a buffer region. For example,
+# setting it to 1.4 will enlarge its side-length by 40% (it remains
+# centered on the high-res particles). Hence, with this setting, the
+# high-res region may expand or move by a limited amount.
+# Note: If SYNCHRONIZATION is activated, the code will be able to
+# continue even if high-res particles leave the initial high-res
+# grid. In this case, the code will update the size and position of
+# the grid that is placed onto the high-resolution region
+# automatically. To prevent that this potentially happens every
+# single PM step, one should nevertheless assign a value slightly
+# larger than 1 to ENLARGEREGION.
+#
+# - ASMTH:
+# This can be used to override the value assumed for the scale that
+# defines the long-range/short-range force-split in the TreePM
+# algorithm. The default value is 1.25, in mesh-cells.
+#
+# - RCUT:
+# This can be used to override the maximum radius in which the
+# short-range tree-force is evaluated (in case the TreePM algorithm
+# is used). The default value is 4.5, given in mesh-cells.
+#
+# - DOUBLEPRECISION:
+# This makes the code store and compute internal particle data in
+# double precision. Note that output files are nevertheless written
+# by converting the particle data to single precision.
+#
+# - DDOUBLEPRECISION_FFTW:
+# If this is set, the code will use the double-precision version of
+# FTTW, provided the latter has been explicitly installed with a
+# "d" prefix, and NOTYPEPREFIX_FFTW is not set. Otherwise the
+# single precision version ("s" prefix) is used.
+#
+# - SYNCHRONIZATION:
+# When this is set, particles are kept in a binary hierarchy of
+# timesteps and may only increase their timestep if the new
+# timestep will put them into synchronization with the higher time
+# level.
+#
+# - FLEXSTEPS:
+# This is an alternative to SYNCHRONIZATION. Particle timesteps are
+# here allowed to be integer multiples of the minimum timestep that
+# occurs among the particles, which in turn is rounded down to the
+# nearest power-of-two devision of the total simulated
+# timespan. This option distributes particles more evenly over
+# individual system timesteps, particularly once a simulation has
+# run for a while, and may then result in a reduction of work-load
+# imbalance losses.
+#
+# - PSEUDOSYMMETRIC:
+# When this option is set, the code will try to "anticipate"
+# timestep changes by extrapolating the change of the acceleration
+# into the future. This can in certain idealized cases improve the
+# long-term integration behaviour of periodic orbits, but should
+# make little or no difference in most real-world applications. May
+# only be used together with SYNCHRONIZATION.
+#
+# - NOSTOP_WHEN_BELOW_MINTIMESTEP:
+# If this is activated, the code will not terminate when the
+# timestep falls below the value of MinSizeTimestep specified in
+# the parameterfile. This is useful for runs where one wants to
+# enforce a constant timestep for all particles. This can be done
+# by activating this option, and by setting MinSizeTimestep and
+# MaxSizeTimestep to an equal value.
+#
+# - NOPMSTEPADJUSTMENT:
+# When this is set, the long-range timestep for the PM-force
+# computation (when the TreePM algorithm is used) is always
+# determined by MaxSizeTimeStep. Otherwise, it is determined by
+# the MaxRMSDisplacement parameter, or MaxSizeTimeStep, whichever
+# gives the smaller step.
+#
+# - HAVE_HDF5:
+# If this is set, the code will be compiled with support for input
+# and output in the HDF5 format. You need to have the HDF5
+# libraries and headers installed on your computer for this option
+# to work. The HDF5 format can then be selected as format "3" in
+# Gadget's parameterfile.
+#
+# - OUTPUTPOTENTIAL:
+# This will make the code compute gravitational potentials for
+# all particles each time a snapshot file is generated. The values
+# are then included in the snapshot file. Note that the computation
+# of the values of the gravitational potential costs additional CPU.
+#
+# - OUTPUTACCELERATION:
+# This will include the physical acceleration of each particle in
+# snapshot files.
+#
+# - OUTPUTCHANGEOFENTROPY:
+# This will include the rate of change of entropy of gas particles
+# in snapshot files.
+#
+# - OUTPUTTIMESTEP:
+# This will include the current timesteps of all particles in the
+# snapshot files.
+#
+# - NOGRAVITY
+# This switches off gravity. Useful only for pure SPH simulations
+# in non-expanding space.
+#
+# - NOTREERND:
+# If this is not set, the tree construction will succeed even when
+# there are a few particles at identical locations. This is done by
+# `rerouting' particles once the node-size has fallen below 1.0e-3
+# of the softening length. When this option is activated, this will
+# be surpressed and the tree construction will always fail if there
+# are particles at extremely close coordinates.
+#
+# - NOTYPEPREFIX_FFTW:
+# This is an option that signals that FFTW has been compiled
+# without the type-prefix option, i.e. no leading "d" or "s"
+# characters are used to access the library.
+#
+# - LONG_X/Y/Z:
+# These options can be used together with PERIODIC and NOGRAVITY only.
+# When set, the options define numerical factors that can be used to
+# distorts the periodic simulation cube into a parallelepiped of
+# arbitrary aspect ratio. This can be useful for idealized SPH tests.
+#
+# - TWODIMS:
+# This effectively switches of one dimension in SPH, i.e. the code
+# follows only 2d hydrodynamics in the xy-, yz-, or xz-plane. This
+# only works with NOGRAVITY, and if all coordinates of the third
+# axis are exactly equal. Can be useful for idealized SPH tests.
+#
+# - SPH_BND_PARTICLES:
+# If this is set, particles with a particle-ID equal to zero do not
+# receive any SPH acceleration. This can be useful for idealized
+# SPH tests, where these particles represent fixed "walls".
+#
+# - NOVISCOSITYLIMITER:
+# If this is set, the code will not try to put an upper limit on
+# the viscous force in case an implausibly high pair-wise viscous
+# force (which may lead to a particle 'reflection' in case of poor
+# timestepping) should arise. Note: For proper settings of the
+# timestep parameters, this situation should not arise.
+#
+# - COMPUTE_POTENTIAL_ENERGY:
+# When this option is set, the code will compute the gravitational
+# potential energy each time a global statistics is computed. This
+# can be useful for testing global energy conservation.
+#
+# - LONGIDS:
+# If this is set, the code assumes that particle-IDs are stored as
+# 64-bit long integers. This is only really needed if you want to
+# go beyond ~2 billion particles.
+#
+# - ISOTHERM_EQS:
+# This special option makes the gas behave like an isothermal gas
+# with equation of state P = cs^2 * rho. The sound-speed cs is set by
+# the thermal energy per unit mass in the intial conditions,
+# i.e. cs^2=u. If the value for u is zero, then the initial gas
+# temperature in the parameter file is used to define the sound speed
+# according to cs^2 = 3/2 kT/mp, where mp is the proton mass.
+#
+# - ADAPTIVE_GRAVSOFT_FORGAS:
+# When this option is set, the gravitational softening lengths used for
+# gas particles is tied to their SPH smoothing length. This can be useful
+# for dissipative collapse simulations. The option requires the setting
+# of UNEQUALSOFTENINGS.
+#
+# - SELECTIVE_NO_GRAVITY:
+# This can be used for special computations where one wants to
+# exclude certain particle types from receiving gravitational
+# forces. The particle types that are excluded in this fashion are
+# specified by a bit mask, in the same as for the PLACEHIGHRESREGION
+# option.
+#
+# - FORCETEST:
+# This can be set to check the force accuracy of the code. The
+# option needs to be set to a number between 0 and 1 (e.g. 0.01),
+# which is taken to specify a random fraction of particles for
+# which at each timestep forces by direct summation are
+# computed. The normal tree-forces and the correct direct
+# summation forces are collected in a file. Note that the
+# simulation itself is unaffected by this option, but it will of
+# course run much(!) slower, especially if
+# FORCETEST*NumPart*NumPart >> NumPart. Note: Particle IDs must
+# be set to numbers >=1 for this to work.
+#
+# - MAKEGLASS
+# This option can be used to generate a glass-like particle
+# configuration. The value assigned gives the particle load,
+# which is initially generated as a Poisson sample and then
+# evolved towards a glass with the sign of gravity reversed.
+#
+#-----------------------------------------------------------------------
+
diff --git a/clusters/user/GEAR/src/Makefile.chemistry b/clusters/user/GEAR/src/Makefile.chemistry
new file mode 100644
index 0000000..932bd77
--- /dev/null
+++ b/clusters/user/GEAR/src/Makefile.chemistry
@@ -0,0 +1,850 @@
+
+#----------------------------------------------------------------------
+# From the list below, please activate/deactivate the options that
+# apply to your run. If you modify any of these options, make sure
+# that you recompile the whole code by typing "make clean; make".
+#
+# Look at end of file for a brief guide to the compile-time options.
+#----------------------------------------------------------------------
+
+
+#--------------------------------------- Basic operation mode of code
+#OPT += -DPERIODIC
+OPT += -DUNEQUALSOFTENINGS
+
+
+#--------------------------------------- Things that are always recommended
+OPT += -DPEANOHILBERT
+OPT += -DWALLCLOCK
+
+
+#--------------------------------------- TreePM Options
+#OPT += -DPMGRID=128
+#OPT += -DPLACEHIGHRESREGION=3
+#OPT += -DENLARGEREGION=1.2
+#OPT += -DASMTH=1.25
+#OPT += -DRCUT=4.5
+
+
+#--------------------------------------- Single/Double Precision
+#OPT += -DDOUBLEPRECISION
+#OPT += -DDOUBLEPRECISION_FFTW
+
+
+#--------------------------------------- Time integration options
+OPT += -DSYNCHRONIZATION
+#OPT += -DFLEXSTEPS
+#OPT += -DPSEUDOSYMMETRIC
+OPT += -DNOSTOP_WHEN_BELOW_MINTIMESTEP
+#OPT += -DNOPMSTEPADJUSTMENT
+
+
+#--------------------------------------- Output
+OPT += -DADVANCEDSTATISTICS
+OPT += -DADVANCEDCPUSTATISTICS
+OPT += -DSYSTEMSTATISTICS
+OPT += -DBLOCK_SKIPPING
+#OPT += -DHAVE_HDF5
+#OPT += -DOUTPUTPOTENTIAL
+#OPT += -DOUTPUTACCELERATION
+#OPT += -DOUTPUTCHANGEOFENTROPY
+#OPT += -DOUTPUTTIMESTEP
+#OPT += -DOUTPUTERADSTICKY
+#OPT += -DOUTPUTERADFEEDBACK
+#OPT += -DOUTPUTENERGYFLUX
+#OPT += -DOUTPUTOPTVAR
+OPT += -DOUTPUTSTELLAR_PROP
+
+#--------------------------------------- Things for special behaviour
+#OPT += -DNOGRAVITY
+#OPT += -DNOTREERND
+#OPT += -DNOTYPEPREFIX_FFTW
+#OPT += -DLONG_X=60
+#OPT += -DLONG_Y=5
+#OPT += -DLONG_Z=0.2
+#OPT += -DTWODIMS
+#OPT += -DSPH_BND_PARTICLES
+#OPT += -DNOVISCOSITYLIMITER
+OPT += -DCOMPUTE_POTENTIAL_ENERGY
+#OPT += -DLONGIDS
+#OPT += -DISOTHERM_EQS
+#OPT += -DADAPTIVE_GRAVSOFT_FORGAS
+#OPT += -DSELECTIVE_NO_GRAVITY=2+4+8+16
+#OPT += -DAVOIDNUMNGBPROBLEM
+#OPT += -DLIMIT_DVEL=1.0
+#OPT += -DOTHERINFO
+#OPT += -DDOMAIN_AT_ORIGIN
+OPT += -DNO_NEGATIVE_PRESSURE
+#OPT += -DCOMPUTE_VELOCITY_DISPERSION
+#OPT += -DCYLINDRICAL_SYMMETRY
+
+OPT += -DWRITE_ALL_MASSES
+OPT += -DENTROPYPRED
+OPT += -DCOUNT_ACTIVE_PARTICLES
+OPT += -DRANDOMSEED_AS_PARAMETER
+OPT += -DDETAILED_CPU
+OPT += -DDETAILED_CPU_GRAVITY
+OPT += -DDETAILED_CPU_DOMAIN
+OPT += -DDETAILED_OUTPUT_IN_GRAVTREE
+#OPT += -DSPLIT_DOMAIN_USING_TIME
+
+OPT += -DCOSMICTIME
+
+#--------------------------------------- Physical processes
+OPT += -DCOOLING
+#OPT += -DIMPLICIT_COOLING_INTEGRATION
+#OPT += -DDO_NO_USE_HYDROGEN_MASSFRAC_IN_COOLING
+
+#OPT += -DHEATING
+#OPT += -DHEATING_PE # photo-electric heating
+
+OPT += -DSFR
+OPT += -DCOMPUTE_SFR_ENERGY
+OPT += -DSFR_NEG_DIV_ONLY
+
+OPT += -DSTELLAR_PROP
+
+OPT += -DCHIMIE # need stellar prop
+OPT += -DCHIMIE_THERMAL_FEEDBACK
+OPT += -DCHIMIE_COMPUTE_THERMAL_FEEDBACK_ENERGY
+#OPT += -DCHIMIE_KINETIC_FEEDBACK
+#OPT += -DCHIMIE_COMPUTE_KINETIC_FEEDBACK_ENERGY
+OPT += -DCHIMIE_EXTRAHEADER
+
+#OPT += -DFEEDBACK
+#OPT += -DFEEDBACK_WIND
+
+#--------------------------------------- multiphase
+#OPT += -DMULTIPHASE
+#OPT += -DNO_HYDRO_FOR_GAS # do not use hydro routine (at all)
+#OPT += -DNO_DENSITY_FOR_STICKY # do not compute density in sticky (need to be done in sfr)
+
+#OPT += -DPHASE_MIXING # need MULTIPHASE : enable phase mixing
+#OPT += -DCOLDGAS_CYCLE # need MULTIPHASE and PHASE_MIXING
+#OPT += -DEXTERNAL_FLUX
+#OPT += -DSTELLAR_FLUX
+#OPT += -DCOUNT_COLLISIONS # count sticky collisions
+
+
+#--------------------------------------- Outer potential
+#OPT += -DOUTERPOTENTIAL
+#OPT += -DNFW
+#OPT += -DPISOTHERM
+#OPT += -DPLUMMER
+OPT += -DMIYAMOTONAGAI
+#OPT += -DCORIOLIS
+
+#--------------------------------------- Testing and Debugging options
+#OPT += -DFORCETEST=0.1
+#OPT += -DWITH_ID_IN_HYDRA
+#OPT += -DPARTICLE_FLAG
+#OPT += -DOUTPUT_EVERY_TIMESTEP
+#OPT += -DOUTPUT_COOLING_FUNCTION
+
+OPT += -DCHECK_BLOCK_ORDER
+OPT += -DCHECK_ENTROPY_SIGN
+OPT += -DCHECK_TYPE_DURING_IO
+OPT += -DCHECK_ID_CORRESPONDENCE
+
+
+#--------------------------------------- Glass making
+#OPT += -DMAKEGLASS=262144
+
+#--------------------------------------- Agn
+#OPT += -DBUBBLES
+#OPT += -DAGN_ACCRETION
+#OPT += -DAGN_FEEDBACK
+#OPT += -DAGN_USE_ANGULAR_MOMENTUM
+#OPT += -DAGN_HEATING
+#OPT += -DBONDI_ACCRETION
+#OPT += -DUSE_BONDI_POWER
+
+#----------------------------------------------------------------------
+# Here, select compile environment for the target machine. This may need
+# adjustment, depending on your local system. Follow the examples to add
+# additional target platforms, and to get things properly compiled.
+#----------------------------------------------------------------------
+
+#--------------------------------------- Select some defaults
+
+CC = mpicc # sets the C-compiler
+OPTIMIZE = -O2 -Wall -g # sets optimization and warning flags
+MPICHLIB = -lmpich
+
+
+#--------------------------------------- Select target computer
+
+SYSTYPE="obscalc"
+#SYSTYPE="callisto-intel"
+#SYSTYPE="bg1"
+#SYSTYPE="obsds"
+#SYSTYPE="leo_openmpi"
+#SYSTYPE="leo_mpich2shm"
+#SYSTYPE="graphor0"
+#SYSTYPE="obsrevaz"
+#SYSTYPE="regor_openmpigcc"
+#SYSTYPE="regor_mvapich2gcc"
+#SYSTYPE="meso_mpich2"
+#SYSTYPE="meso"
+#SYSTYPE="revaz/local"
+#SYSTYPE="revaz/local_mpich2"
+#SYSTYPE="horizon3_mpich1"
+#SYSTYPE="horizon3_mpich2"
+#SYSTYPE="horizon3"
+#SYSTYPE="LUXOR"
+#SYSTYPE="MPA"
+#SYSTYPE="Mako"
+#SYSTYPE="Regatta"
+#SYSTYPE="RZG_LinuxCluster"
+#SYSTYPE="RZG_LinuxCluster-gcc"
+#SYSTYPE="OpteronMPA"
+#SYSTYPE="OPA-Cluster32"
+#SYSTYPE="OPA-Cluster64"
+
+
+#--------------------------------------- Adjust settings for target computer
+
+# module add openmpi-x86_64
+ifeq ($(SYSTYPE),"obscalc")
+CC = mpicc
+OPTIMIZE =
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+NO_FFTW_LIB = "yes"
+endif
+
+ifeq ($(SYSTYPE),"callisto-intel")
+CC = mpicc
+OPTIMIZE =
+GSL_INCL = -I/u1/yrevaz/local/gsl-intel/include
+GSL_LIBS = -L/u1/yrevaz/local/gsl-intel/lib
+FFTW_INCL= -I/u1/yrevaz/local/fftw-2.1.5-intel/include
+FFTW_LIBS= -L/u1/yrevaz/local/fftw-2.1.5-intel/lib
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"bg1")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL = -I/home/yrevaz/local/include
+GSL_LIBS = -L/home/yrevaz/local/lib
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+NO_FFTW_LIB = "yes"
+endif
+
+ifeq ($(SYSTYPE),"obsds")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+NO_FFTW_LIB = "yes"
+endif
+
+ifeq ($(SYSTYPE),"graphor0")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL = -I/home/epfl/revaz/local/include
+GSL_LIBS = -L/home/epfl/revaz/local/lib
+FFTW_INCL= -I/home/epfl/revaz/local/include
+FFTW_LIBS= -L/home/epfl/revaz/local/lib
+MPICHLIB = -L/home/epfl/revaz/local/openmpi/lib -lmpi
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"obsrevaz")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL= -I/home/revaz/local/include/
+FFTW_LIBS= -L/home/revaz/local/lib/
+MPICHLIB = -lmpi
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+ifeq ($(SYSTYPE),"regor_openmpigcc")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL = -I/usr/include
+GSL_LIBS = -L/usr/lib64/
+FFTW_INCL= -I/home/revaz/local_mvapich2gcc/include/
+FFTW_LIBS= -L/home/revaz/local_mvapich2gcc/lib/
+MPICHLIB = -lmpi
+HDF5INCL =
+HDF5LIB =
+OPT += -DMESOMACHINE
+endif
+
+ifeq ($(SYSTYPE),"regor_mpich2")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL = -I/usr/include
+GSL_LIBS = -L/usr/lib64/
+FFTW_INCL= -I/home/revaz/local_mvapich2gcc/include/
+FFTW_LIBS= -L/home/revaz/local_mvapich2gcc/lib/
+MPICHLIB = -L/home/revaz/local/mpich2-1.0.6nemesis/lib/ -lmpich
+HDF5INCL =
+HDF5LIB =
+OPT += -DMESOMACHINE
+endif
+
+
+ifeq ($(SYSTYPE),"regor_mvapich2gcc")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL = -I/usr/include
+GSL_LIBS = -L/usr/lib64/
+FFTW_INCL= -I/home/revaz/local_mvapich2gcc/include/
+FFTW_LIBS= -L/home/revaz/local_mvapich2gcc/lib/
+MPICHLIB = -L/cvos/shared/apps/ofed/1.2.5.3/mpi/gcc/mvapich2-0.9.8-15/lib/ -lmpich
+HDF5INCL =
+HDF5LIB =
+OPT += -DMESOMACHINE
+endif
+
+ifeq ($(SYSTYPE),"leo_openmpi")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL = -I/export/revaz/local/include
+GSL_LIBS = -L/export/revaz/local/lib
+FFTW_INCL= -I/export/revaz/local/include
+FFTW_LIBS= -L/export/revaz/local/lib
+MPICHLIB = -L/usr/local/mpich2-pgi/lib -lmpi
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"leo_mpich2shm")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/export/revaz/local/include
+GSL_LIBS = -L/export/revaz/local/lib
+FFTW_INCL= -I/export/revaz/local/include
+FFTW_LIBS= -L/export/revaz/local/lib
+MPICHLIB = -L/usr/local/mpich2-pgi/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"meso_mpich2")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/horizon1/x86_64_sl4/fftw/2.1.5/include/
+FFTW_LIBS= -L/horizon1/x86_64_sl4/fftw/2.1.5/lib/
+MPICHLIB = -L/home/revaz/local/mpich2-1.0.3/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"meso")
+CC = mpicc
+OPTIMIZE = -O3 -g
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL= -I/horizon1/x86_64_sl4/fftw/2.1.5/include/
+FFTW_LIBS= -L/horizon1/x86_64_sl4/fftw/2.1.5/lib/
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+OPT += -DMESOMACHINE
+endif
+
+ifeq ($(SYSTYPE),"revaz/local")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/home/revaz/local/mpich-1.2.5/ch_p4/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"revaz/local_mpich2")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/home/revaz/local/mpich2-1.0.3/lib/ -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"LUXOR")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+#GSL_INCL = -I/home/revaz/local/include
+#GSL_LIBS = -L/home/revaz/local/lib
+#FFTW_INCL= -I/home/revaz/local/include
+#FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/home/revaz/local/mpich-1.2.7/ch_p4/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+
+ifeq ($(SYSTYPE),"horizon3")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -llam
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"horizon3_mpich1")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/home/revaz/local/mpich-1.2.7/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+ifeq ($(SYSTYPE),"horizon3_mpich2")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/usr/local/mpich2-pgi/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"MPA")
+CC = mpicc
+OPTIMIZE = -O3 -Wall
+GSL_INCL = -I/usr/common/pdsoft/include
+GSL_LIBS = -L/usr/common/pdsoft/lib -Wl,"-R /usr/common/pdsoft/lib"
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB = -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"OpteronMPA")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -m64
+GSL_INCL = -L/usr/local/include
+GSL_LIBS = -L/usr/local/lib
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL = -I/opt/hdf5/include
+HDF5LIB = -L/opt/hdf5/lib -lhdf5 -lz -Wl,"-R /opt/hdf5/lib"
+endif
+
+
+ifeq ($(SYSTYPE),"OPA-Cluster32")
+CC = mpicc
+OPTIMIZE = -O3 -Wall
+GSL_INCL = -I/afs/rzg/bc-b/vrs/opteron32/include
+GSL_LIBS = -L/afs/rzg/bc-b/vrs/opteron32/lib -Wl,"-R /afs/rzg/bc-b/vrs/opteron32/lib"
+FFTW_INCL= -I/afs/rzg/bc-b/vrs/opteron32/include
+FFTW_LIBS= -L/afs/rzg/bc-b/vrs/opteron32/lib
+MPICHLIB =
+HDF5INCL =
+HDF5LIB = -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"OPA-Cluster64")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -m64
+GSL_INCL = -I/afs/rzg/bc-b/vrs/opteron64/include
+GSL_LIBS = -L/afs/rzg/bc-b/vrs/opteron64/lib -Wl,"-R /afs/rzg/bc-b/vrs/opteron64/lib"
+FFTW_INCL= -I/afs/rzg/bc-b/vrs/opteron64/include
+FFTW_LIBS= -L/afs/rzg/bc-b/vrs/opteron64/lib
+MPICHLIB =
+HDF5INCL =
+HDF5LIB = -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"Mako")
+CC = mpicc # sets the C-compiler
+OPTIMIZE = -O3 -march=athlon-mp -mfpmath=sse
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB = -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"Regatta")
+CC = mpcc_r
+OPTIMIZE = -O5 -qstrict -qipa -q64
+GSL_INCL = -I/afs/rzg/u/vrs/gsl_psi64/include
+GSL_LIBS = -L/afs/rzg/u/vrs/gsl_psi64/lib
+FFTW_INCL= -I/afs/rzg/u/vrs/fftw_psi64/include
+FFTW_LIBS= -L/afs/rzg/u/vrs/fftw_psi64/lib -q64 -qipa
+MPICHLIB =
+HDF5INCL = -I/afs/rzg/u/vrs/hdf5_psi64/include
+HDF5LIB = -L/afs/rzg/u/vrs/hdf5_psi64/lib -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"RZG_LinuxCluster")
+CC = mpicci
+OPTIMIZE = -O3 -ip # Note: Don't use the "-rcd" optimization of Intel's compiler! (causes code crashes)
+GSL_INCL = -I/afs/rzg/u/vrs/gsl_linux/include
+GSL_LIBS = -L/afs/rzg/u/vrs/gsl_linux/lib -Wl,"-R /afs/rzg/u/vrs/gsl_linux/lib"
+FFTW_INCL= -I/afs/rzg/u/vrs/fftw_linux/include
+FFTW_LIBS= -L/afs/rzg/u/vrs/fftw_linux/lib
+HDF5INCL = -I/afs/rzg/u/vrs/hdf5_linux/include
+HDF5LIB = -L/afs/rzg/u/vrs/hdf5_linux/lib -lhdf5 -lz -Wl,"-R /afs/rzg/u/vrs/hdf5_linux/lib"
+endif
+
+
+ifeq ($(SYSTYPE),"RZG_LinuxCluster-gcc")
+CC = mpiccg
+OPTIMIZE = -Wall -g -O3 -march=pentium4
+GSL_INCL = -I/afs/rzg/u/vrs/gsl_linux_gcc3.2/include
+GSL_LIBS = -L/afs/rzg/u/vrs/gsl_linux_gcc3.2/lib -Wl,"-R /afs/rzg/u/vrs/gsl_linux_gcc3.2/lib"
+FFTW_INCL= -I/afs/rzg/u/vrs/fftw_linux_gcc3.2/include
+FFTW_LIBS= -L/afs/rzg/u/vrs/fftw_linux_gcc3.2/lib
+HDF5INCL = -I/afs/rzg/u/vrs/hdf5_linux/include
+HDF5LIB = -L/afs/rzg/u/vrs/hdf5_linux/lib -lhdf5 -lz -Wl,"-R /afs/rzg/u/vrs/hdf5_linux/lib"
+endif
+
+
+ifneq (HAVE_HDF5,$(findstring HAVE_HDF5,$(OPT)))
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+OPTIONS = $(OPTIMIZE) $(OPT)
+
+EXEC = Gadget2
+
+OBJS = main.o run.o predict.o begrun.o endrun.o global.o \
+ timestep.o init.o restart.o io.o \
+ accel.o read_ic.o ngb.o \
+ system.o allocate.o density.o \
+ gravtree.o hydra.o driftfac.o \
+ domain.o allvars.o potential.o \
+ forcetree.o peano.o gravtree_forcetest.o \
+ pm_periodic.o pm_nonperiodic.o longrange.o \
+ cooling.o agn_heating.o phase.o sticky.o outerpotential.o starformation.o \
+ agn_feedback.o bubbles.o bondi_accretion.o chimie.o stars_density.o
+
+INCL = allvars.h proto.h tags.h Makefile
+
+
+CFLAGS = $(OPTIONS) $(GSL_INCL) $(FFTW_INCL) $(HDF5INCL)
+
+
+ifeq (NOTYPEPREFIX_FFTW,$(findstring NOTYPEPREFIX_FFTW,$(OPT))) # fftw installed with type prefix?
+ FFTW_LIB = $(FFTW_LIBS) -lrfftw_mpi -lfftw_mpi -lrfftw -lfftw
+else
+ifeq (DOUBLEPRECISION_FFTW,$(findstring DOUBLEPRECISION_FFTW,$(OPT)))
+ FFTW_LIB = $(FFTW_LIBS) -ldrfftw_mpi -ldfftw_mpi -ldrfftw -ldfftw
+else
+ FFTW_LIB = $(FFTW_LIBS) -lsrfftw_mpi -lsfftw_mpi -lsrfftw -lsfftw
+endif
+endif
+
+ifeq ($(NO_FFTW_LIB),"yes")
+ FFTW_LIB =
+endif
+
+LIBS = $(HDF5LIB) -g $(MPICHLIB) $(GSL_LIBS) -lgsl -lgslcblas -lm $(FFTW_LIB)
+
+$(EXEC): $(OBJS)
+ $(CC) $(OBJS) $(LIBS) -o $(EXEC)
+
+$(OBJS): $(INCL)
+
+
+clean:
+ rm -f $(OBJS) $(EXEC)
+
+
+#-----------------------------------------------------------------------
+#
+# Brief guide to compile-time options of the code. More information
+# can be found in the code documentation.
+#
+# - PERIODIC:
+# Set this if you want to have periodic boundary conditions.
+#
+# - UNEQUALSOFTENINGS:
+# Set this if you use particles with different gravitational
+# softening lengths.
+#
+# - PEANOHILBERT:
+# This is a tuning option. When set, the code will bring the
+# particles after each domain decomposition into Peano-Hilbert
+# order. This improves cache utilization and performance.
+#
+# - WALLCLOCK:
+# If set, a wallclock timer is used by the code to measure internal
+# time consumption (see cpu-log file). Otherwise, a timer that
+# measures consumed processor ticks is used.
+#
+# - PMGRID:
+# This enables the TreePM method, i.e. the long-range force is
+# computed with a PM-algorithm, and the short range force with the
+# tree. The parameter has to be set to the size of the mesh that
+# should be used, (e.g. 64, 96, 128, etc). The mesh dimensions need
+# not necessarily be a power of two. Note: If the simulation is
+# not in a periodic box, then a FFT method for vacuum boundaries is
+# employed, using an actual mesh with dimension twice(!) that
+# specified by PMGRID.
+#
+# - PLACEHIGHRESREGION:
+# If this option is set (will only work together with PMGRID), then
+# the long range force is computed in two stages: One Fourier-grid
+# is used to cover the whole simulation volume, allowing the
+# computation of the longe-range force. A second Fourier mesh is
+# placed on the region occupied by "high-resolution" particles,
+# allowing the computation of an intermediate scale force. Finally,
+# the force on short scales is computed with the tree. This
+# procedure can be useful for "zoom-simulations", provided the
+# majority of particles (the high-res particles) are occupying only
+# a small fraction of the volume. To activate this option, the
+# parameter needs to be set to an integer bit mask that encodes the
+# particle types that make up the high-res particles.
+# For example, if types 0, 1, and 4 form the high-res
+# particles, set the parameter to PLACEHIGHRESREGION=19, because
+# 2^0 + 2^1 + 2^4 = 19. The spatial region covered by the high-res
+# grid is determined automatically from the initial conditions.
+# Note: If a periodic box is used, the high-res zone may not intersect
+# the box boundaries.
+#
+# - ENLARGEREGION:
+# The spatial region covered by the high-res zone has a fixed size
+# during the simulation, which initially is set to the smallest
+# region that encompasses all high-res particles. Normally, the
+# simulation will be interrupted if high-res particles leave this
+# region in the course of the run. However, by setting this
+# parameter to a value larger than one, the size of the high-res
+# region can be expanded, providing a buffer region. For example,
+# setting it to 1.4 will enlarge its side-length by 40% (it remains
+# centered on the high-res particles). Hence, with this setting, the
+# high-res region may expand or move by a limited amount.
+# Note: If SYNCHRONIZATION is activated, the code will be able to
+# continue even if high-res particles leave the initial high-res
+# grid. In this case, the code will update the size and position of
+# the grid that is placed onto the high-resolution region
+# automatically. To prevent that this potentially happens every
+# single PM step, one should nevertheless assign a value slightly
+# larger than 1 to ENLARGEREGION.
+#
+# - ASMTH:
+# This can be used to override the value assumed for the scale that
+# defines the long-range/short-range force-split in the TreePM
+# algorithm. The default value is 1.25, in mesh-cells.
+#
+# - RCUT:
+# This can be used to override the maximum radius in which the
+# short-range tree-force is evaluated (in case the TreePM algorithm
+# is used). The default value is 4.5, given in mesh-cells.
+#
+# - DOUBLEPRECISION:
+# This makes the code store and compute internal particle data in
+# double precision. Note that output files are nevertheless written
+# by converting the particle data to single precision.
+#
+# - DDOUBLEPRECISION_FFTW:
+# If this is set, the code will use the double-precision version of
+# FTTW, provided the latter has been explicitly installed with a
+# "d" prefix, and NOTYPEPREFIX_FFTW is not set. Otherwise the
+# single precision version ("s" prefix) is used.
+#
+# - SYNCHRONIZATION:
+# When this is set, particles are kept in a binary hierarchy of
+# timesteps and may only increase their timestep if the new
+# timestep will put them into synchronization with the higher time
+# level.
+#
+# - FLEXSTEPS:
+# This is an alternative to SYNCHRONIZATION. Particle timesteps are
+# here allowed to be integer multiples of the minimum timestep that
+# occurs among the particles, which in turn is rounded down to the
+# nearest power-of-two devision of the total simulated
+# timespan. This option distributes particles more evenly over
+# individual system timesteps, particularly once a simulation has
+# run for a while, and may then result in a reduction of work-load
+# imbalance losses.
+#
+# - PSEUDOSYMMETRIC:
+# When this option is set, the code will try to "anticipate"
+# timestep changes by extrapolating the change of the acceleration
+# into the future. This can in certain idealized cases improve the
+# long-term integration behaviour of periodic orbits, but should
+# make little or no difference in most real-world applications. May
+# only be used together with SYNCHRONIZATION.
+#
+# - NOSTOP_WHEN_BELOW_MINTIMESTEP:
+# If this is activated, the code will not terminate when the
+# timestep falls below the value of MinSizeTimestep specified in
+# the parameterfile. This is useful for runs where one wants to
+# enforce a constant timestep for all particles. This can be done
+# by activating this option, and by setting MinSizeTimestep and
+# MaxSizeTimestep to an equal value.
+#
+# - NOPMSTEPADJUSTMENT:
+# When this is set, the long-range timestep for the PM-force
+# computation (when the TreePM algorithm is used) is always
+# determined by MaxSizeTimeStep. Otherwise, it is determined by
+# the MaxRMSDisplacement parameter, or MaxSizeTimeStep, whichever
+# gives the smaller step.
+#
+# - HAVE_HDF5:
+# If this is set, the code will be compiled with support for input
+# and output in the HDF5 format. You need to have the HDF5
+# libraries and headers installed on your computer for this option
+# to work. The HDF5 format can then be selected as format "3" in
+# Gadget's parameterfile.
+#
+# - OUTPUTPOTENTIAL:
+# This will make the code compute gravitational potentials for
+# all particles each time a snapshot file is generated. The values
+# are then included in the snapshot file. Note that the computation
+# of the values of the gravitational potential costs additional CPU.
+#
+# - OUTPUTACCELERATION:
+# This will include the physical acceleration of each particle in
+# snapshot files.
+#
+# - OUTPUTCHANGEOFENTROPY:
+# This will include the rate of change of entropy of gas particles
+# in snapshot files.
+#
+# - OUTPUTTIMESTEP:
+# This will include the current timesteps of all particles in the
+# snapshot files.
+#
+# - NOGRAVITY
+# This switches off gravity. Useful only for pure SPH simulations
+# in non-expanding space.
+#
+# - NOTREERND:
+# If this is not set, the tree construction will succeed even when
+# there are a few particles at identical locations. This is done by
+# `rerouting' particles once the node-size has fallen below 1.0e-3
+# of the softening length. When this option is activated, this will
+# be surpressed and the tree construction will always fail if there
+# are particles at extremely close coordinates.
+#
+# - NOTYPEPREFIX_FFTW:
+# This is an option that signals that FFTW has been compiled
+# without the type-prefix option, i.e. no leading "d" or "s"
+# characters are used to access the library.
+#
+# - LONG_X/Y/Z:
+# These options can be used together with PERIODIC and NOGRAVITY only.
+# When set, the options define numerical factors that can be used to
+# distorts the periodic simulation cube into a parallelepiped of
+# arbitrary aspect ratio. This can be useful for idealized SPH tests.
+#
+# - TWODIMS:
+# This effectively switches of one dimension in SPH, i.e. the code
+# follows only 2d hydrodynamics in the xy-, yz-, or xz-plane. This
+# only works with NOGRAVITY, and if all coordinates of the third
+# axis are exactly equal. Can be useful for idealized SPH tests.
+#
+# - SPH_BND_PARTICLES:
+# If this is set, particles with a particle-ID equal to zero do not
+# receive any SPH acceleration. This can be useful for idealized
+# SPH tests, where these particles represent fixed "walls".
+#
+# - NOVISCOSITYLIMITER:
+# If this is set, the code will not try to put an upper limit on
+# the viscous force in case an implausibly high pair-wise viscous
+# force (which may lead to a particle 'reflection' in case of poor
+# timestepping) should arise. Note: For proper settings of the
+# timestep parameters, this situation should not arise.
+#
+# - COMPUTE_POTENTIAL_ENERGY:
+# When this option is set, the code will compute the gravitational
+# potential energy each time a global statistics is computed. This
+# can be useful for testing global energy conservation.
+#
+# - LONGIDS:
+# If this is set, the code assumes that particle-IDs are stored as
+# 64-bit long integers. This is only really needed if you want to
+# go beyond ~2 billion particles.
+#
+# - ISOTHERM_EQS:
+# This special option makes the gas behave like an isothermal gas
+# with equation of state P = cs^2 * rho. The sound-speed cs is set by
+# the thermal energy per unit mass in the intial conditions,
+# i.e. cs^2=u. If the value for u is zero, then the initial gas
+# temperature in the parameter file is used to define the sound speed
+# according to cs^2 = 3/2 kT/mp, where mp is the proton mass.
+#
+# - ADAPTIVE_GRAVSOFT_FORGAS:
+# When this option is set, the gravitational softening lengths used for
+# gas particles is tied to their SPH smoothing length. This can be useful
+# for dissipative collapse simulations. The option requires the setting
+# of UNEQUALSOFTENINGS.
+#
+# - SELECTIVE_NO_GRAVITY:
+# This can be used for special computations where one wants to
+# exclude certain particle types from receiving gravitational
+# forces. The particle types that are excluded in this fashion are
+# specified by a bit mask, in the same as for the PLACEHIGHRESREGION
+# option.
+#
+# - FORCETEST:
+# This can be set to check the force accuracy of the code. The
+# option needs to be set to a number between 0 and 1 (e.g. 0.01),
+# which is taken to specify a random fraction of particles for
+# which at each timestep forces by direct summation are
+# computed. The normal tree-forces and the correct direct
+# summation forces are collected in a file. Note that the
+# simulation itself is unaffected by this option, but it will of
+# course run much(!) slower, especially if
+# FORCETEST*NumPart*NumPart >> NumPart. Note: Particle IDs must
+# be set to numbers >=1 for this to work.
+#
+# - MAKEGLASS
+# This option can be used to generate a glass-like particle
+# configuration. The value assigned gives the particle load,
+# which is initially generated as a Poisson sample and then
+# evolved towards a glass with the sign of gravity reversed.
+#
+#-----------------------------------------------------------------------
+
diff --git a/clusters/user/GEAR/src/Makefile.nophysics b/clusters/user/GEAR/src/Makefile.nophysics
new file mode 100644
index 0000000..5ca9743
--- /dev/null
+++ b/clusters/user/GEAR/src/Makefile.nophysics
@@ -0,0 +1,848 @@
+
+#----------------------------------------------------------------------
+# From the list below, please activate/deactivate the options that
+# apply to your run. If you modify any of these options, make sure
+# that you recompile the whole code by typing "make clean; make".
+#
+# Look at end of file for a brief guide to the compile-time options.
+#----------------------------------------------------------------------
+
+
+#--------------------------------------- Basic operation mode of code
+#OPT += -DPERIODIC
+OPT += -DUNEQUALSOFTENINGS
+
+
+#--------------------------------------- Things that are always recommended
+OPT += -DPEANOHILBERT
+OPT += -DWALLCLOCK
+
+
+#--------------------------------------- TreePM Options
+#OPT += -DPMGRID=128
+#OPT += -DPLACEHIGHRESREGION=3
+#OPT += -DENLARGEREGION=1.2
+#OPT += -DASMTH=1.25
+#OPT += -DRCUT=4.5
+
+
+#--------------------------------------- Single/Double Precision
+#OPT += -DDOUBLEPRECISION
+#OPT += -DDOUBLEPRECISION_FFTW
+
+
+#--------------------------------------- Time integration options
+OPT += -DSYNCHRONIZATION
+#OPT += -DFLEXSTEPS
+#OPT += -DPSEUDOSYMMETRIC
+OPT += -DNOSTOP_WHEN_BELOW_MINTIMESTEP
+#OPT += -DNOPMSTEPADJUSTMENT
+
+
+#--------------------------------------- Output
+OPT += -DADVANCEDSTATISTICS
+OPT += -DADVANCEDCPUSTATISTICS
+OPT += -DSYSTEMSTATISTICS
+OPT += -DBLOCK_SKIPPING
+#OPT += -DHAVE_HDF5
+#OPT += -DOUTPUTPOTENTIAL
+#OPT += -DOUTPUTACCELERATION
+#OPT += -DOUTPUTCHANGEOFENTROPY
+#OPT += -DOUTPUTTIMESTEP
+#OPT += -DOUTPUTERADSTICKY
+#OPT += -DOUTPUTERADFEEDBACK
+#OPT += -DOUTPUTENERGYFLUX
+#OPT += -DOUTPUTOPTVAR
+#OPT += -DOUTPUTSTELLAR_PROP
+
+#--------------------------------------- Things for special behaviour
+#OPT += -DNOGRAVITY
+#OPT += -DNOTREERND
+#OPT += -DNOTYPEPREFIX_FFTW
+#OPT += -DLONG_X=60
+#OPT += -DLONG_Y=5
+#OPT += -DLONG_Z=0.2
+#OPT += -DTWODIMS
+#OPT += -DSPH_BND_PARTICLES
+#OPT += -DNOVISCOSITYLIMITER
+OPT += -DCOMPUTE_POTENTIAL_ENERGY
+#OPT += -DLONGIDS
+#OPT += -DISOTHERM_EQS
+#OPT += -DADAPTIVE_GRAVSOFT_FORGAS
+#OPT += -DSELECTIVE_NO_GRAVITY=2+4+8+16
+#OPT += -DAVOIDNUMNGBPROBLEM
+#OPT += -DLIMIT_DVEL=1.0
+#OPT += -DOTHERINFO
+#OPT += -DDOMAIN_AT_ORIGIN
+OPT += -DNO_NEGATIVE_PRESSURE
+#OPT += -DCOMPUTE_VELOCITY_DISPERSION
+#OPT += -DCYLINDRICAL_SYMMETRY
+
+OPT += -DWRITE_ALL_MASSES
+OPT += -DENTROPYPRED
+OPT += -DCOUNT_ACTIVE_PARTICLES
+OPT += -DRANDOMSEED_AS_PARAMETER
+#OPT += -DDETAILED_CPU
+#OPT += -DDETAILED_CPU_GRAVITY
+#OPT += -DDETAILED_CPU_DOMAIN
+#OPT += -DDETAILED_OUTPUT_IN_GRAVTREE
+#OPT += -DSPLIT_DOMAIN_USING_TIME
+
+#--------------------------------------- Physical processes
+#OPT += -DCOOLING
+#OPT += -DIMPLICIT_COOLING_INTEGRATION
+#OPT += -DDO_NO_USE_HYDROGEN_MASSFRAC_IN_COOLING
+
+#OPT += -DHEATING
+#OPT += -DHEATING_PE # photo-electric heating
+
+#OPT += -DSFR
+#OPT += -DCOMPUTE_SFR_ENERGY
+#OPT += -DSFR_NEG_DIV_ONLY
+
+#OPT += -DSTELLAR_PROP
+
+#OPT += -DCHIMIE # need stellar prop
+#OPT += -DCHIMIE_THERMAL_FEEDBACK
+#OPT += -DCHIMIE_COMPUTE_THERMAL_FEEDBACK_ENERGY
+#OPT += -DCHIMIE_KINETIC_FEEDBACK
+#OPT += -DCHIMIE_COMPUTE_KINETIC_FEEDBACK_ENERGY
+#OPT += -DCHIMIE_EXTRAHEADER
+
+#OPT += -DFEEDBACK
+#OPT += -DFEEDBACK_WIND
+
+#--------------------------------------- multiphase
+#OPT += -DMULTIPHASE
+#OPT += -DNO_HYDRO_FOR_GAS # do not use hydro routine (at all)
+#OPT += -DNO_DENSITY_FOR_STICKY # do not compute density in sticky (need to be done in sfr)
+
+#OPT += -DPHASE_MIXING # need MULTIPHASE : enable phase mixing
+#OPT += -DCOLDGAS_CYCLE # need MULTIPHASE and PHASE_MIXING
+#OPT += -DEXTERNAL_FLUX
+#OPT += -DSTELLAR_FLUX
+#OPT += -DCOUNT_COLLISIONS # count sticky collisions
+
+
+#--------------------------------------- Outer potential
+#OPT += -DOUTERPOTENTIAL
+#OPT += -DNFW
+#OPT += -DPISOTHERM
+#OPT += -DPLUMMER
+#OPT += -DMIYAMOTONAGAI
+#OPT += -DCORIOLIS
+
+#--------------------------------------- Testing and Debugging options
+#OPT += -DFORCETEST=0.1
+#OPT += -DWITH_ID_IN_HYDRA
+#OPT += -DPARTICLE_FLAG
+#OPT += -DOUTPUT_EVERY_TIMESTEP
+#OPT += -DOUTPUT_COOLING_FUNCTION
+
+#OPT += -DCHECK_BLOCK_ORDER
+OPT += -DCHECK_ENTROPY_SIGN
+#OPT += -DCHECK_TYPE_DURING_IO
+#OPT += -DCHECK_ID_CORRESPONDENCE
+
+
+#--------------------------------------- Glass making
+#OPT += -DMAKEGLASS=262144
+
+#--------------------------------------- Agn
+#OPT += -DBUBBLES
+#OPT += -DAGN_ACCRETION
+#OPT += -DAGN_FEEDBACK
+#OPT += -DAGN_USE_ANGULAR_MOMENTUM
+#OPT += -DAGN_HEATING
+#OPT += -DBONDI_ACCRETION
+#OPT += -DUSE_BONDI_POWER
+
+#----------------------------------------------------------------------
+# Here, select compile environment for the target machine. This may need
+# adjustment, depending on your local system. Follow the examples to add
+# additional target platforms, and to get things properly compiled.
+#----------------------------------------------------------------------
+
+#--------------------------------------- Select some defaults
+
+CC = mpicc # sets the C-compiler
+OPTIMIZE = -O2 -Wall -g # sets optimization and warning flags
+MPICHLIB = -lmpich
+
+
+#--------------------------------------- Select target computer
+
+SYSTYPE="obscalc"
+#SYSTYPE="callisto-intel"
+#SYSTYPE="bg1"
+#SYSTYPE="obsds"
+#SYSTYPE="leo_openmpi"
+#SYSTYPE="leo_mpich2shm"
+#SYSTYPE="graphor0"
+#SYSTYPE="obsrevaz"
+#SYSTYPE="regor_openmpigcc"
+#SYSTYPE="regor_mvapich2gcc"
+#SYSTYPE="meso_mpich2"
+#SYSTYPE="meso"
+#SYSTYPE="revaz/local"
+#SYSTYPE="revaz/local_mpich2"
+#SYSTYPE="horizon3_mpich1"
+#SYSTYPE="horizon3_mpich2"
+#SYSTYPE="horizon3"
+#SYSTYPE="LUXOR"
+#SYSTYPE="MPA"
+#SYSTYPE="Mako"
+#SYSTYPE="Regatta"
+#SYSTYPE="RZG_LinuxCluster"
+#SYSTYPE="RZG_LinuxCluster-gcc"
+#SYSTYPE="OpteronMPA"
+#SYSTYPE="OPA-Cluster32"
+#SYSTYPE="OPA-Cluster64"
+
+
+#--------------------------------------- Adjust settings for target computer
+
+# module add openmpi-x86_64
+ifeq ($(SYSTYPE),"obscalc")
+CC = mpicc
+OPTIMIZE =
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+NO_FFTW_LIB = "yes"
+endif
+
+ifeq ($(SYSTYPE),"callisto-intel")
+CC = mpicc
+OPTIMIZE =
+GSL_INCL = -I/u1/yrevaz/local/gsl-intel/include
+GSL_LIBS = -L/u1/yrevaz/local/gsl-intel/lib
+FFTW_INCL= -I/u1/yrevaz/local/fftw-2.1.5-intel/include
+FFTW_LIBS= -L/u1/yrevaz/local/fftw-2.1.5-intel/lib
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"bg1")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL = -I/home/yrevaz/local/include
+GSL_LIBS = -L/home/yrevaz/local/lib
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+NO_FFTW_LIB = "yes"
+endif
+
+ifeq ($(SYSTYPE),"obsds")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+NO_FFTW_LIB = "yes"
+endif
+
+ifeq ($(SYSTYPE),"graphor0")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL = -I/home/epfl/revaz/local/include
+GSL_LIBS = -L/home/epfl/revaz/local/lib
+FFTW_INCL= -I/home/epfl/revaz/local/include
+FFTW_LIBS= -L/home/epfl/revaz/local/lib
+MPICHLIB = -L/home/epfl/revaz/local/openmpi/lib -lmpi
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"obsrevaz")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL= -I/home/revaz/local/include/
+FFTW_LIBS= -L/home/revaz/local/lib/
+MPICHLIB = -lmpi
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+ifeq ($(SYSTYPE),"regor_openmpigcc")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL = -I/usr/include
+GSL_LIBS = -L/usr/lib64/
+FFTW_INCL= -I/home/revaz/local_mvapich2gcc/include/
+FFTW_LIBS= -L/home/revaz/local_mvapich2gcc/lib/
+MPICHLIB = -lmpi
+HDF5INCL =
+HDF5LIB =
+OPT += -DMESOMACHINE
+endif
+
+ifeq ($(SYSTYPE),"regor_mpich2")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL = -I/usr/include
+GSL_LIBS = -L/usr/lib64/
+FFTW_INCL= -I/home/revaz/local_mvapich2gcc/include/
+FFTW_LIBS= -L/home/revaz/local_mvapich2gcc/lib/
+MPICHLIB = -L/home/revaz/local/mpich2-1.0.6nemesis/lib/ -lmpich
+HDF5INCL =
+HDF5LIB =
+OPT += -DMESOMACHINE
+endif
+
+
+ifeq ($(SYSTYPE),"regor_mvapich2gcc")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL = -I/usr/include
+GSL_LIBS = -L/usr/lib64/
+FFTW_INCL= -I/home/revaz/local_mvapich2gcc/include/
+FFTW_LIBS= -L/home/revaz/local_mvapich2gcc/lib/
+MPICHLIB = -L/cvos/shared/apps/ofed/1.2.5.3/mpi/gcc/mvapich2-0.9.8-15/lib/ -lmpich
+HDF5INCL =
+HDF5LIB =
+OPT += -DMESOMACHINE
+endif
+
+ifeq ($(SYSTYPE),"leo_openmpi")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL = -I/export/revaz/local/include
+GSL_LIBS = -L/export/revaz/local/lib
+FFTW_INCL= -I/export/revaz/local/include
+FFTW_LIBS= -L/export/revaz/local/lib
+MPICHLIB = -L/usr/local/mpich2-pgi/lib -lmpi
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"leo_mpich2shm")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/export/revaz/local/include
+GSL_LIBS = -L/export/revaz/local/lib
+FFTW_INCL= -I/export/revaz/local/include
+FFTW_LIBS= -L/export/revaz/local/lib
+MPICHLIB = -L/usr/local/mpich2-pgi/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"meso_mpich2")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/horizon1/x86_64_sl4/fftw/2.1.5/include/
+FFTW_LIBS= -L/horizon1/x86_64_sl4/fftw/2.1.5/lib/
+MPICHLIB = -L/home/revaz/local/mpich2-1.0.3/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"meso")
+CC = mpicc
+OPTIMIZE = -O3 -g
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL= -I/horizon1/x86_64_sl4/fftw/2.1.5/include/
+FFTW_LIBS= -L/horizon1/x86_64_sl4/fftw/2.1.5/lib/
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+OPT += -DMESOMACHINE
+endif
+
+ifeq ($(SYSTYPE),"revaz/local")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/home/revaz/local/mpich-1.2.5/ch_p4/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"revaz/local_mpich2")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/home/revaz/local/mpich2-1.0.3/lib/ -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"LUXOR")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+#GSL_INCL = -I/home/revaz/local/include
+#GSL_LIBS = -L/home/revaz/local/lib
+#FFTW_INCL= -I/home/revaz/local/include
+#FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/home/revaz/local/mpich-1.2.7/ch_p4/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+
+ifeq ($(SYSTYPE),"horizon3")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -llam
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"horizon3_mpich1")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/home/revaz/local/mpich-1.2.7/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+ifeq ($(SYSTYPE),"horizon3_mpich2")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/usr/local/mpich2-pgi/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"MPA")
+CC = mpicc
+OPTIMIZE = -O3 -Wall
+GSL_INCL = -I/usr/common/pdsoft/include
+GSL_LIBS = -L/usr/common/pdsoft/lib -Wl,"-R /usr/common/pdsoft/lib"
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB = -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"OpteronMPA")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -m64
+GSL_INCL = -L/usr/local/include
+GSL_LIBS = -L/usr/local/lib
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL = -I/opt/hdf5/include
+HDF5LIB = -L/opt/hdf5/lib -lhdf5 -lz -Wl,"-R /opt/hdf5/lib"
+endif
+
+
+ifeq ($(SYSTYPE),"OPA-Cluster32")
+CC = mpicc
+OPTIMIZE = -O3 -Wall
+GSL_INCL = -I/afs/rzg/bc-b/vrs/opteron32/include
+GSL_LIBS = -L/afs/rzg/bc-b/vrs/opteron32/lib -Wl,"-R /afs/rzg/bc-b/vrs/opteron32/lib"
+FFTW_INCL= -I/afs/rzg/bc-b/vrs/opteron32/include
+FFTW_LIBS= -L/afs/rzg/bc-b/vrs/opteron32/lib
+MPICHLIB =
+HDF5INCL =
+HDF5LIB = -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"OPA-Cluster64")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -m64
+GSL_INCL = -I/afs/rzg/bc-b/vrs/opteron64/include
+GSL_LIBS = -L/afs/rzg/bc-b/vrs/opteron64/lib -Wl,"-R /afs/rzg/bc-b/vrs/opteron64/lib"
+FFTW_INCL= -I/afs/rzg/bc-b/vrs/opteron64/include
+FFTW_LIBS= -L/afs/rzg/bc-b/vrs/opteron64/lib
+MPICHLIB =
+HDF5INCL =
+HDF5LIB = -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"Mako")
+CC = mpicc # sets the C-compiler
+OPTIMIZE = -O3 -march=athlon-mp -mfpmath=sse
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB = -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"Regatta")
+CC = mpcc_r
+OPTIMIZE = -O5 -qstrict -qipa -q64
+GSL_INCL = -I/afs/rzg/u/vrs/gsl_psi64/include
+GSL_LIBS = -L/afs/rzg/u/vrs/gsl_psi64/lib
+FFTW_INCL= -I/afs/rzg/u/vrs/fftw_psi64/include
+FFTW_LIBS= -L/afs/rzg/u/vrs/fftw_psi64/lib -q64 -qipa
+MPICHLIB =
+HDF5INCL = -I/afs/rzg/u/vrs/hdf5_psi64/include
+HDF5LIB = -L/afs/rzg/u/vrs/hdf5_psi64/lib -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"RZG_LinuxCluster")
+CC = mpicci
+OPTIMIZE = -O3 -ip # Note: Don't use the "-rcd" optimization of Intel's compiler! (causes code crashes)
+GSL_INCL = -I/afs/rzg/u/vrs/gsl_linux/include
+GSL_LIBS = -L/afs/rzg/u/vrs/gsl_linux/lib -Wl,"-R /afs/rzg/u/vrs/gsl_linux/lib"
+FFTW_INCL= -I/afs/rzg/u/vrs/fftw_linux/include
+FFTW_LIBS= -L/afs/rzg/u/vrs/fftw_linux/lib
+HDF5INCL = -I/afs/rzg/u/vrs/hdf5_linux/include
+HDF5LIB = -L/afs/rzg/u/vrs/hdf5_linux/lib -lhdf5 -lz -Wl,"-R /afs/rzg/u/vrs/hdf5_linux/lib"
+endif
+
+
+ifeq ($(SYSTYPE),"RZG_LinuxCluster-gcc")
+CC = mpiccg
+OPTIMIZE = -Wall -g -O3 -march=pentium4
+GSL_INCL = -I/afs/rzg/u/vrs/gsl_linux_gcc3.2/include
+GSL_LIBS = -L/afs/rzg/u/vrs/gsl_linux_gcc3.2/lib -Wl,"-R /afs/rzg/u/vrs/gsl_linux_gcc3.2/lib"
+FFTW_INCL= -I/afs/rzg/u/vrs/fftw_linux_gcc3.2/include
+FFTW_LIBS= -L/afs/rzg/u/vrs/fftw_linux_gcc3.2/lib
+HDF5INCL = -I/afs/rzg/u/vrs/hdf5_linux/include
+HDF5LIB = -L/afs/rzg/u/vrs/hdf5_linux/lib -lhdf5 -lz -Wl,"-R /afs/rzg/u/vrs/hdf5_linux/lib"
+endif
+
+
+ifneq (HAVE_HDF5,$(findstring HAVE_HDF5,$(OPT)))
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+OPTIONS = $(OPTIMIZE) $(OPT)
+
+EXEC = Gadget2
+
+OBJS = main.o run.o predict.o begrun.o endrun.o global.o \
+ timestep.o init.o restart.o io.o \
+ accel.o read_ic.o ngb.o \
+ system.o allocate.o density.o \
+ gravtree.o hydra.o driftfac.o \
+ domain.o allvars.o potential.o \
+ forcetree.o peano.o gravtree_forcetest.o \
+ pm_periodic.o pm_nonperiodic.o longrange.o \
+ cooling.o agn_heating.o phase.o sticky.o outerpotential.o starformation.o \
+ agn_feedback.o bubbles.o bondi_accretion.o chimie.o stars_density.o
+
+INCL = allvars.h proto.h tags.h Makefile
+
+
+CFLAGS = $(OPTIONS) $(GSL_INCL) $(FFTW_INCL) $(HDF5INCL)
+
+
+ifeq (NOTYPEPREFIX_FFTW,$(findstring NOTYPEPREFIX_FFTW,$(OPT))) # fftw installed with type prefix?
+ FFTW_LIB = $(FFTW_LIBS) -lrfftw_mpi -lfftw_mpi -lrfftw -lfftw
+else
+ifeq (DOUBLEPRECISION_FFTW,$(findstring DOUBLEPRECISION_FFTW,$(OPT)))
+ FFTW_LIB = $(FFTW_LIBS) -ldrfftw_mpi -ldfftw_mpi -ldrfftw -ldfftw
+else
+ FFTW_LIB = $(FFTW_LIBS) -lsrfftw_mpi -lsfftw_mpi -lsrfftw -lsfftw
+endif
+endif
+
+ifeq ($(NO_FFTW_LIB),"yes")
+ FFTW_LIB =
+endif
+
+LIBS = $(HDF5LIB) -g $(MPICHLIB) $(GSL_LIBS) -lgsl -lgslcblas -lm $(FFTW_LIB)
+
+$(EXEC): $(OBJS)
+ $(CC) $(OBJS) $(LIBS) -o $(EXEC)
+
+$(OBJS): $(INCL)
+
+
+clean:
+ rm -f $(OBJS) $(EXEC)
+
+
+#-----------------------------------------------------------------------
+#
+# Brief guide to compile-time options of the code. More information
+# can be found in the code documentation.
+#
+# - PERIODIC:
+# Set this if you want to have periodic boundary conditions.
+#
+# - UNEQUALSOFTENINGS:
+# Set this if you use particles with different gravitational
+# softening lengths.
+#
+# - PEANOHILBERT:
+# This is a tuning option. When set, the code will bring the
+# particles after each domain decomposition into Peano-Hilbert
+# order. This improves cache utilization and performance.
+#
+# - WALLCLOCK:
+# If set, a wallclock timer is used by the code to measure internal
+# time consumption (see cpu-log file). Otherwise, a timer that
+# measures consumed processor ticks is used.
+#
+# - PMGRID:
+# This enables the TreePM method, i.e. the long-range force is
+# computed with a PM-algorithm, and the short range force with the
+# tree. The parameter has to be set to the size of the mesh that
+# should be used, (e.g. 64, 96, 128, etc). The mesh dimensions need
+# not necessarily be a power of two. Note: If the simulation is
+# not in a periodic box, then a FFT method for vacuum boundaries is
+# employed, using an actual mesh with dimension twice(!) that
+# specified by PMGRID.
+#
+# - PLACEHIGHRESREGION:
+# If this option is set (will only work together with PMGRID), then
+# the long range force is computed in two stages: One Fourier-grid
+# is used to cover the whole simulation volume, allowing the
+# computation of the longe-range force. A second Fourier mesh is
+# placed on the region occupied by "high-resolution" particles,
+# allowing the computation of an intermediate scale force. Finally,
+# the force on short scales is computed with the tree. This
+# procedure can be useful for "zoom-simulations", provided the
+# majority of particles (the high-res particles) are occupying only
+# a small fraction of the volume. To activate this option, the
+# parameter needs to be set to an integer bit mask that encodes the
+# particle types that make up the high-res particles.
+# For example, if types 0, 1, and 4 form the high-res
+# particles, set the parameter to PLACEHIGHRESREGION=19, because
+# 2^0 + 2^1 + 2^4 = 19. The spatial region covered by the high-res
+# grid is determined automatically from the initial conditions.
+# Note: If a periodic box is used, the high-res zone may not intersect
+# the box boundaries.
+#
+# - ENLARGEREGION:
+# The spatial region covered by the high-res zone has a fixed size
+# during the simulation, which initially is set to the smallest
+# region that encompasses all high-res particles. Normally, the
+# simulation will be interrupted if high-res particles leave this
+# region in the course of the run. However, by setting this
+# parameter to a value larger than one, the size of the high-res
+# region can be expanded, providing a buffer region. For example,
+# setting it to 1.4 will enlarge its side-length by 40% (it remains
+# centered on the high-res particles). Hence, with this setting, the
+# high-res region may expand or move by a limited amount.
+# Note: If SYNCHRONIZATION is activated, the code will be able to
+# continue even if high-res particles leave the initial high-res
+# grid. In this case, the code will update the size and position of
+# the grid that is placed onto the high-resolution region
+# automatically. To prevent that this potentially happens every
+# single PM step, one should nevertheless assign a value slightly
+# larger than 1 to ENLARGEREGION.
+#
+# - ASMTH:
+# This can be used to override the value assumed for the scale that
+# defines the long-range/short-range force-split in the TreePM
+# algorithm. The default value is 1.25, in mesh-cells.
+#
+# - RCUT:
+# This can be used to override the maximum radius in which the
+# short-range tree-force is evaluated (in case the TreePM algorithm
+# is used). The default value is 4.5, given in mesh-cells.
+#
+# - DOUBLEPRECISION:
+# This makes the code store and compute internal particle data in
+# double precision. Note that output files are nevertheless written
+# by converting the particle data to single precision.
+#
+# - DDOUBLEPRECISION_FFTW:
+# If this is set, the code will use the double-precision version of
+# FTTW, provided the latter has been explicitly installed with a
+# "d" prefix, and NOTYPEPREFIX_FFTW is not set. Otherwise the
+# single precision version ("s" prefix) is used.
+#
+# - SYNCHRONIZATION:
+# When this is set, particles are kept in a binary hierarchy of
+# timesteps and may only increase their timestep if the new
+# timestep will put them into synchronization with the higher time
+# level.
+#
+# - FLEXSTEPS:
+# This is an alternative to SYNCHRONIZATION. Particle timesteps are
+# here allowed to be integer multiples of the minimum timestep that
+# occurs among the particles, which in turn is rounded down to the
+# nearest power-of-two devision of the total simulated
+# timespan. This option distributes particles more evenly over
+# individual system timesteps, particularly once a simulation has
+# run for a while, and may then result in a reduction of work-load
+# imbalance losses.
+#
+# - PSEUDOSYMMETRIC:
+# When this option is set, the code will try to "anticipate"
+# timestep changes by extrapolating the change of the acceleration
+# into the future. This can in certain idealized cases improve the
+# long-term integration behaviour of periodic orbits, but should
+# make little or no difference in most real-world applications. May
+# only be used together with SYNCHRONIZATION.
+#
+# - NOSTOP_WHEN_BELOW_MINTIMESTEP:
+# If this is activated, the code will not terminate when the
+# timestep falls below the value of MinSizeTimestep specified in
+# the parameterfile. This is useful for runs where one wants to
+# enforce a constant timestep for all particles. This can be done
+# by activating this option, and by setting MinSizeTimestep and
+# MaxSizeTimestep to an equal value.
+#
+# - NOPMSTEPADJUSTMENT:
+# When this is set, the long-range timestep for the PM-force
+# computation (when the TreePM algorithm is used) is always
+# determined by MaxSizeTimeStep. Otherwise, it is determined by
+# the MaxRMSDisplacement parameter, or MaxSizeTimeStep, whichever
+# gives the smaller step.
+#
+# - HAVE_HDF5:
+# If this is set, the code will be compiled with support for input
+# and output in the HDF5 format. You need to have the HDF5
+# libraries and headers installed on your computer for this option
+# to work. The HDF5 format can then be selected as format "3" in
+# Gadget's parameterfile.
+#
+# - OUTPUTPOTENTIAL:
+# This will make the code compute gravitational potentials for
+# all particles each time a snapshot file is generated. The values
+# are then included in the snapshot file. Note that the computation
+# of the values of the gravitational potential costs additional CPU.
+#
+# - OUTPUTACCELERATION:
+# This will include the physical acceleration of each particle in
+# snapshot files.
+#
+# - OUTPUTCHANGEOFENTROPY:
+# This will include the rate of change of entropy of gas particles
+# in snapshot files.
+#
+# - OUTPUTTIMESTEP:
+# This will include the current timesteps of all particles in the
+# snapshot files.
+#
+# - NOGRAVITY
+# This switches off gravity. Useful only for pure SPH simulations
+# in non-expanding space.
+#
+# - NOTREERND:
+# If this is not set, the tree construction will succeed even when
+# there are a few particles at identical locations. This is done by
+# `rerouting' particles once the node-size has fallen below 1.0e-3
+# of the softening length. When this option is activated, this will
+# be surpressed and the tree construction will always fail if there
+# are particles at extremely close coordinates.
+#
+# - NOTYPEPREFIX_FFTW:
+# This is an option that signals that FFTW has been compiled
+# without the type-prefix option, i.e. no leading "d" or "s"
+# characters are used to access the library.
+#
+# - LONG_X/Y/Z:
+# These options can be used together with PERIODIC and NOGRAVITY only.
+# When set, the options define numerical factors that can be used to
+# distorts the periodic simulation cube into a parallelepiped of
+# arbitrary aspect ratio. This can be useful for idealized SPH tests.
+#
+# - TWODIMS:
+# This effectively switches of one dimension in SPH, i.e. the code
+# follows only 2d hydrodynamics in the xy-, yz-, or xz-plane. This
+# only works with NOGRAVITY, and if all coordinates of the third
+# axis are exactly equal. Can be useful for idealized SPH tests.
+#
+# - SPH_BND_PARTICLES:
+# If this is set, particles with a particle-ID equal to zero do not
+# receive any SPH acceleration. This can be useful for idealized
+# SPH tests, where these particles represent fixed "walls".
+#
+# - NOVISCOSITYLIMITER:
+# If this is set, the code will not try to put an upper limit on
+# the viscous force in case an implausibly high pair-wise viscous
+# force (which may lead to a particle 'reflection' in case of poor
+# timestepping) should arise. Note: For proper settings of the
+# timestep parameters, this situation should not arise.
+#
+# - COMPUTE_POTENTIAL_ENERGY:
+# When this option is set, the code will compute the gravitational
+# potential energy each time a global statistics is computed. This
+# can be useful for testing global energy conservation.
+#
+# - LONGIDS:
+# If this is set, the code assumes that particle-IDs are stored as
+# 64-bit long integers. This is only really needed if you want to
+# go beyond ~2 billion particles.
+#
+# - ISOTHERM_EQS:
+# This special option makes the gas behave like an isothermal gas
+# with equation of state P = cs^2 * rho. The sound-speed cs is set by
+# the thermal energy per unit mass in the intial conditions,
+# i.e. cs^2=u. If the value for u is zero, then the initial gas
+# temperature in the parameter file is used to define the sound speed
+# according to cs^2 = 3/2 kT/mp, where mp is the proton mass.
+#
+# - ADAPTIVE_GRAVSOFT_FORGAS:
+# When this option is set, the gravitational softening lengths used for
+# gas particles is tied to their SPH smoothing length. This can be useful
+# for dissipative collapse simulations. The option requires the setting
+# of UNEQUALSOFTENINGS.
+#
+# - SELECTIVE_NO_GRAVITY:
+# This can be used for special computations where one wants to
+# exclude certain particle types from receiving gravitational
+# forces. The particle types that are excluded in this fashion are
+# specified by a bit mask, in the same as for the PLACEHIGHRESREGION
+# option.
+#
+# - FORCETEST:
+# This can be set to check the force accuracy of the code. The
+# option needs to be set to a number between 0 and 1 (e.g. 0.01),
+# which is taken to specify a random fraction of particles for
+# which at each timestep forces by direct summation are
+# computed. The normal tree-forces and the correct direct
+# summation forces are collected in a file. Note that the
+# simulation itself is unaffected by this option, but it will of
+# course run much(!) slower, especially if
+# FORCETEST*NumPart*NumPart >> NumPart. Note: Particle IDs must
+# be set to numbers >=1 for this to work.
+#
+# - MAKEGLASS
+# This option can be used to generate a glass-like particle
+# configuration. The value assigned gives the particle load,
+# which is initially generated as a Poisson sample and then
+# evolved towards a glass with the sign of gravity reversed.
+#
+#-----------------------------------------------------------------------
+
diff --git a/clusters/user/GEAR/src/Makefile.outerpotential b/clusters/user/GEAR/src/Makefile.outerpotential
new file mode 100644
index 0000000..5c6c457
--- /dev/null
+++ b/clusters/user/GEAR/src/Makefile.outerpotential
@@ -0,0 +1,850 @@
+
+#----------------------------------------------------------------------
+# From the list below, please activate/deactivate the options that
+# apply to your run. If you modify any of these options, make sure
+# that you recompile the whole code by typing "make clean; make".
+#
+# Look at end of file for a brief guide to the compile-time options.
+#----------------------------------------------------------------------
+
+
+#--------------------------------------- Basic operation mode of code
+#OPT += -DPERIODIC
+OPT += -DUNEQUALSOFTENINGS
+
+
+#--------------------------------------- Things that are always recommended
+OPT += -DPEANOHILBERT
+OPT += -DWALLCLOCK
+
+
+#--------------------------------------- TreePM Options
+#OPT += -DPMGRID=128
+#OPT += -DPLACEHIGHRESREGION=3
+#OPT += -DENLARGEREGION=1.2
+#OPT += -DASMTH=1.25
+#OPT += -DRCUT=4.5
+
+
+#--------------------------------------- Single/Double Precision
+#OPT += -DDOUBLEPRECISION
+#OPT += -DDOUBLEPRECISION_FFTW
+
+
+#--------------------------------------- Time integration options
+OPT += -DSYNCHRONIZATION
+#OPT += -DFLEXSTEPS
+#OPT += -DPSEUDOSYMMETRIC
+OPT += -DNOSTOP_WHEN_BELOW_MINTIMESTEP
+#OPT += -DNOPMSTEPADJUSTMENT
+
+
+#--------------------------------------- Output
+OPT += -DADVANCEDSTATISTICS
+OPT += -DADVANCEDCPUSTATISTICS
+OPT += -DSYSTEMSTATISTICS
+OPT += -DBLOCK_SKIPPING
+#OPT += -DHAVE_HDF5
+#OPT += -DOUTPUTPOTENTIAL
+#OPT += -DOUTPUTACCELERATION
+#OPT += -DOUTPUTCHANGEOFENTROPY
+#OPT += -DOUTPUTTIMESTEP
+#OPT += -DOUTPUTERADSTICKY
+#OPT += -DOUTPUTERADFEEDBACK
+#OPT += -DOUTPUTENERGYFLUX
+#OPT += -DOUTPUTOPTVAR
+#OPT += -DOUTPUTSTELLAR_PROP
+
+#--------------------------------------- Things for special behaviour
+#OPT += -DNOGRAVITY
+#OPT += -DNOTREERND
+#OPT += -DNOTYPEPREFIX_FFTW
+#OPT += -DLONG_X=60
+#OPT += -DLONG_Y=5
+#OPT += -DLONG_Z=0.2
+#OPT += -DTWODIMS
+#OPT += -DSPH_BND_PARTICLES
+#OPT += -DNOVISCOSITYLIMITER
+OPT += -DCOMPUTE_POTENTIAL_ENERGY
+#OPT += -DLONGIDS
+#OPT += -DISOTHERM_EQS
+#OPT += -DADAPTIVE_GRAVSOFT_FORGAS
+#OPT += -DSELECTIVE_NO_GRAVITY=2+4+8+16
+#OPT += -DAVOIDNUMNGBPROBLEM
+#OPT += -DLIMIT_DVEL=1.0
+#OPT += -DOTHERINFO
+#OPT += -DDOMAIN_AT_ORIGIN
+OPT += -DNO_NEGATIVE_PRESSURE
+#OPT += -DCOMPUTE_VELOCITY_DISPERSION
+#OPT += -DCYLINDRICAL_SYMMETRY
+
+OPT += -DWRITE_ALL_MASSES
+OPT += -DENTROPYPRED
+OPT += -DCOUNT_ACTIVE_PARTICLES
+OPT += -DRANDOMSEED_AS_PARAMETER
+#OPT += -DDETAILED_CPU
+#OPT += -DDETAILED_CPU_GRAVITY
+#OPT += -DDETAILED_CPU_DOMAIN
+#OPT += -DDETAILED_OUTPUT_IN_GRAVTREE
+#OPT += -DSPLIT_DOMAIN_USING_TIME
+
+OPT += -DCOSMICTIME
+
+#--------------------------------------- Physical processes
+#OPT += -DCOOLING
+#OPT += -DIMPLICIT_COOLING_INTEGRATION
+#OPT += -DDO_NO_USE_HYDROGEN_MASSFRAC_IN_COOLING
+
+#OPT += -DHEATING
+#OPT += -DHEATING_PE # photo-electric heating
+
+#OPT += -DSFR
+#OPT += -DCOMPUTE_SFR_ENERGY
+#OPT += -DSFR_NEG_DIV_ONLY
+
+#OPT += -DSTELLAR_PROP
+
+#OPT += -DCHIMIE # need stellar prop
+#OPT += -DCHIMIE_THERMAL_FEEDBACK
+#OPT += -DCHIMIE_COMPUTE_THERMAL_FEEDBACK_ENERGY
+#OPT += -DCHIMIE_KINETIC_FEEDBACK
+#OPT += -DCHIMIE_COMPUTE_KINETIC_FEEDBACK_ENERGY
+#OPT += -DCHIMIE_EXTRAHEADER
+
+#OPT += -DFEEDBACK
+#OPT += -DFEEDBACK_WIND
+
+#--------------------------------------- multiphase
+#OPT += -DMULTIPHASE
+#OPT += -DNO_HYDRO_FOR_GAS # do not use hydro routine (at all)
+#OPT += -DNO_DENSITY_FOR_STICKY # do not compute density in sticky (need to be done in sfr)
+
+#OPT += -DPHASE_MIXING # need MULTIPHASE : enable phase mixing
+#OPT += -DCOLDGAS_CYCLE # need MULTIPHASE and PHASE_MIXING
+#OPT += -DEXTERNAL_FLUX
+#OPT += -DSTELLAR_FLUX
+#OPT += -DCOUNT_COLLISIONS # count sticky collisions
+
+
+#--------------------------------------- Outer potential
+OPT += -DOUTERPOTENTIAL
+OPT += -DNFW
+#OPT += -DPISOTHERM
+OPT += -DPLUMMER
+OPT += -DMIYAMOTONAGAI
+#OPT += -DCORIOLIS
+
+#--------------------------------------- Testing and Debugging options
+#OPT += -DFORCETEST=0.1
+#OPT += -DWITH_ID_IN_HYDRA
+#OPT += -DPARTICLE_FLAG
+#OPT += -DOUTPUT_EVERY_TIMESTEP
+#OPT += -DOUTPUT_COOLING_FUNCTION
+
+#OPT += -DCHECK_BLOCK_ORDER
+OPT += -DCHECK_ENTROPY_SIGN
+#OPT += -DCHECK_TYPE_DURING_IO
+#OPT += -DCHECK_ID_CORRESPONDENCE
+
+
+#--------------------------------------- Glass making
+#OPT += -DMAKEGLASS=262144
+
+#--------------------------------------- Agn
+#OPT += -DBUBBLES
+#OPT += -DAGN_ACCRETION
+#OPT += -DAGN_FEEDBACK
+#OPT += -DAGN_USE_ANGULAR_MOMENTUM
+#OPT += -DAGN_HEATING
+#OPT += -DBONDI_ACCRETION
+#OPT += -DUSE_BONDI_POWER
+
+#----------------------------------------------------------------------
+# Here, select compile environment for the target machine. This may need
+# adjustment, depending on your local system. Follow the examples to add
+# additional target platforms, and to get things properly compiled.
+#----------------------------------------------------------------------
+
+#--------------------------------------- Select some defaults
+
+CC = mpicc # sets the C-compiler
+OPTIMIZE = -O2 -Wall -g # sets optimization and warning flags
+MPICHLIB = -lmpich
+
+
+#--------------------------------------- Select target computer
+
+SYSTYPE="obscalc"
+#SYSTYPE="callisto-intel"
+#SYSTYPE="bg1"
+#SYSTYPE="obsds"
+#SYSTYPE="leo_openmpi"
+#SYSTYPE="leo_mpich2shm"
+#SYSTYPE="graphor0"
+#SYSTYPE="obsrevaz"
+#SYSTYPE="regor_openmpigcc"
+#SYSTYPE="regor_mvapich2gcc"
+#SYSTYPE="meso_mpich2"
+#SYSTYPE="meso"
+#SYSTYPE="revaz/local"
+#SYSTYPE="revaz/local_mpich2"
+#SYSTYPE="horizon3_mpich1"
+#SYSTYPE="horizon3_mpich2"
+#SYSTYPE="horizon3"
+#SYSTYPE="LUXOR"
+#SYSTYPE="MPA"
+#SYSTYPE="Mako"
+#SYSTYPE="Regatta"
+#SYSTYPE="RZG_LinuxCluster"
+#SYSTYPE="RZG_LinuxCluster-gcc"
+#SYSTYPE="OpteronMPA"
+#SYSTYPE="OPA-Cluster32"
+#SYSTYPE="OPA-Cluster64"
+
+
+#--------------------------------------- Adjust settings for target computer
+
+# module add openmpi-x86_64
+ifeq ($(SYSTYPE),"obscalc")
+CC = mpicc
+OPTIMIZE =
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+NO_FFTW_LIB = "yes"
+endif
+
+ifeq ($(SYSTYPE),"callisto-intel")
+CC = mpicc
+OPTIMIZE =
+GSL_INCL = -I/u1/yrevaz/local/gsl-intel/include
+GSL_LIBS = -L/u1/yrevaz/local/gsl-intel/lib
+FFTW_INCL= -I/u1/yrevaz/local/fftw-2.1.5-intel/include
+FFTW_LIBS= -L/u1/yrevaz/local/fftw-2.1.5-intel/lib
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"bg1")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL = -I/home/yrevaz/local/include
+GSL_LIBS = -L/home/yrevaz/local/lib
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+NO_FFTW_LIB = "yes"
+endif
+
+ifeq ($(SYSTYPE),"obsds")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+NO_FFTW_LIB = "yes"
+endif
+
+ifeq ($(SYSTYPE),"graphor0")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL = -I/home/epfl/revaz/local/include
+GSL_LIBS = -L/home/epfl/revaz/local/lib
+FFTW_INCL= -I/home/epfl/revaz/local/include
+FFTW_LIBS= -L/home/epfl/revaz/local/lib
+MPICHLIB = -L/home/epfl/revaz/local/openmpi/lib -lmpi
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"obsrevaz")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL= -I/home/revaz/local/include/
+FFTW_LIBS= -L/home/revaz/local/lib/
+MPICHLIB = -lmpi
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+ifeq ($(SYSTYPE),"regor_openmpigcc")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL = -I/usr/include
+GSL_LIBS = -L/usr/lib64/
+FFTW_INCL= -I/home/revaz/local_mvapich2gcc/include/
+FFTW_LIBS= -L/home/revaz/local_mvapich2gcc/lib/
+MPICHLIB = -lmpi
+HDF5INCL =
+HDF5LIB =
+OPT += -DMESOMACHINE
+endif
+
+ifeq ($(SYSTYPE),"regor_mpich2")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL = -I/usr/include
+GSL_LIBS = -L/usr/lib64/
+FFTW_INCL= -I/home/revaz/local_mvapich2gcc/include/
+FFTW_LIBS= -L/home/revaz/local_mvapich2gcc/lib/
+MPICHLIB = -L/home/revaz/local/mpich2-1.0.6nemesis/lib/ -lmpich
+HDF5INCL =
+HDF5LIB =
+OPT += -DMESOMACHINE
+endif
+
+
+ifeq ($(SYSTYPE),"regor_mvapich2gcc")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL = -I/usr/include
+GSL_LIBS = -L/usr/lib64/
+FFTW_INCL= -I/home/revaz/local_mvapich2gcc/include/
+FFTW_LIBS= -L/home/revaz/local_mvapich2gcc/lib/
+MPICHLIB = -L/cvos/shared/apps/ofed/1.2.5.3/mpi/gcc/mvapich2-0.9.8-15/lib/ -lmpich
+HDF5INCL =
+HDF5LIB =
+OPT += -DMESOMACHINE
+endif
+
+ifeq ($(SYSTYPE),"leo_openmpi")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -fpack-struct
+GSL_INCL = -I/export/revaz/local/include
+GSL_LIBS = -L/export/revaz/local/lib
+FFTW_INCL= -I/export/revaz/local/include
+FFTW_LIBS= -L/export/revaz/local/lib
+MPICHLIB = -L/usr/local/mpich2-pgi/lib -lmpi
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"leo_mpich2shm")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/export/revaz/local/include
+GSL_LIBS = -L/export/revaz/local/lib
+FFTW_INCL= -I/export/revaz/local/include
+FFTW_LIBS= -L/export/revaz/local/lib
+MPICHLIB = -L/usr/local/mpich2-pgi/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"meso_mpich2")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/horizon1/x86_64_sl4/fftw/2.1.5/include/
+FFTW_LIBS= -L/horizon1/x86_64_sl4/fftw/2.1.5/lib/
+MPICHLIB = -L/home/revaz/local/mpich2-1.0.3/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"meso")
+CC = mpicc
+OPTIMIZE = -O3 -g
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL= -I/horizon1/x86_64_sl4/fftw/2.1.5/include/
+FFTW_LIBS= -L/horizon1/x86_64_sl4/fftw/2.1.5/lib/
+MPICHLIB =
+HDF5INCL =
+HDF5LIB =
+OPT += -DMESOMACHINE
+endif
+
+ifeq ($(SYSTYPE),"revaz/local")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/home/revaz/local/mpich-1.2.5/ch_p4/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"revaz/local_mpich2")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/home/revaz/local/mpich2-1.0.3/lib/ -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"LUXOR")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g
+#GSL_INCL = -I/home/revaz/local/include
+#GSL_LIBS = -L/home/revaz/local/lib
+#FFTW_INCL= -I/home/revaz/local/include
+#FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/home/revaz/local/mpich-1.2.7/ch_p4/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+
+ifeq ($(SYSTYPE),"horizon3")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -llam
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"horizon3_mpich1")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/home/revaz/local/mpich-1.2.7/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+ifeq ($(SYSTYPE),"horizon3_mpich2")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -g -fpack-struct
+GSL_INCL = -I/home/revaz/local/include
+GSL_LIBS = -L/home/revaz/local/lib
+FFTW_INCL= -I/home/revaz/local/include
+FFTW_LIBS= -L/home/revaz/local/lib
+MPICHLIB = -L/usr/local/mpich2-pgi/lib -lmpich
+HDF5INCL =
+HDF5LIB =
+endif
+
+ifeq ($(SYSTYPE),"MPA")
+CC = mpicc
+OPTIMIZE = -O3 -Wall
+GSL_INCL = -I/usr/common/pdsoft/include
+GSL_LIBS = -L/usr/common/pdsoft/lib -Wl,"-R /usr/common/pdsoft/lib"
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB = -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"OpteronMPA")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -m64
+GSL_INCL = -L/usr/local/include
+GSL_LIBS = -L/usr/local/lib
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL = -I/opt/hdf5/include
+HDF5LIB = -L/opt/hdf5/lib -lhdf5 -lz -Wl,"-R /opt/hdf5/lib"
+endif
+
+
+ifeq ($(SYSTYPE),"OPA-Cluster32")
+CC = mpicc
+OPTIMIZE = -O3 -Wall
+GSL_INCL = -I/afs/rzg/bc-b/vrs/opteron32/include
+GSL_LIBS = -L/afs/rzg/bc-b/vrs/opteron32/lib -Wl,"-R /afs/rzg/bc-b/vrs/opteron32/lib"
+FFTW_INCL= -I/afs/rzg/bc-b/vrs/opteron32/include
+FFTW_LIBS= -L/afs/rzg/bc-b/vrs/opteron32/lib
+MPICHLIB =
+HDF5INCL =
+HDF5LIB = -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"OPA-Cluster64")
+CC = mpicc
+OPTIMIZE = -O3 -Wall -m64
+GSL_INCL = -I/afs/rzg/bc-b/vrs/opteron64/include
+GSL_LIBS = -L/afs/rzg/bc-b/vrs/opteron64/lib -Wl,"-R /afs/rzg/bc-b/vrs/opteron64/lib"
+FFTW_INCL= -I/afs/rzg/bc-b/vrs/opteron64/include
+FFTW_LIBS= -L/afs/rzg/bc-b/vrs/opteron64/lib
+MPICHLIB =
+HDF5INCL =
+HDF5LIB = -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"Mako")
+CC = mpicc # sets the C-compiler
+OPTIMIZE = -O3 -march=athlon-mp -mfpmath=sse
+GSL_INCL =
+GSL_LIBS =
+FFTW_INCL=
+FFTW_LIBS=
+MPICHLIB =
+HDF5INCL =
+HDF5LIB = -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"Regatta")
+CC = mpcc_r
+OPTIMIZE = -O5 -qstrict -qipa -q64
+GSL_INCL = -I/afs/rzg/u/vrs/gsl_psi64/include
+GSL_LIBS = -L/afs/rzg/u/vrs/gsl_psi64/lib
+FFTW_INCL= -I/afs/rzg/u/vrs/fftw_psi64/include
+FFTW_LIBS= -L/afs/rzg/u/vrs/fftw_psi64/lib -q64 -qipa
+MPICHLIB =
+HDF5INCL = -I/afs/rzg/u/vrs/hdf5_psi64/include
+HDF5LIB = -L/afs/rzg/u/vrs/hdf5_psi64/lib -lhdf5 -lz
+endif
+
+
+ifeq ($(SYSTYPE),"RZG_LinuxCluster")
+CC = mpicci
+OPTIMIZE = -O3 -ip # Note: Don't use the "-rcd" optimization of Intel's compiler! (causes code crashes)
+GSL_INCL = -I/afs/rzg/u/vrs/gsl_linux/include
+GSL_LIBS = -L/afs/rzg/u/vrs/gsl_linux/lib -Wl,"-R /afs/rzg/u/vrs/gsl_linux/lib"
+FFTW_INCL= -I/afs/rzg/u/vrs/fftw_linux/include
+FFTW_LIBS= -L/afs/rzg/u/vrs/fftw_linux/lib
+HDF5INCL = -I/afs/rzg/u/vrs/hdf5_linux/include
+HDF5LIB = -L/afs/rzg/u/vrs/hdf5_linux/lib -lhdf5 -lz -Wl,"-R /afs/rzg/u/vrs/hdf5_linux/lib"
+endif
+
+
+ifeq ($(SYSTYPE),"RZG_LinuxCluster-gcc")
+CC = mpiccg
+OPTIMIZE = -Wall -g -O3 -march=pentium4
+GSL_INCL = -I/afs/rzg/u/vrs/gsl_linux_gcc3.2/include
+GSL_LIBS = -L/afs/rzg/u/vrs/gsl_linux_gcc3.2/lib -Wl,"-R /afs/rzg/u/vrs/gsl_linux_gcc3.2/lib"
+FFTW_INCL= -I/afs/rzg/u/vrs/fftw_linux_gcc3.2/include
+FFTW_LIBS= -L/afs/rzg/u/vrs/fftw_linux_gcc3.2/lib
+HDF5INCL = -I/afs/rzg/u/vrs/hdf5_linux/include
+HDF5LIB = -L/afs/rzg/u/vrs/hdf5_linux/lib -lhdf5 -lz -Wl,"-R /afs/rzg/u/vrs/hdf5_linux/lib"
+endif
+
+
+ifneq (HAVE_HDF5,$(findstring HAVE_HDF5,$(OPT)))
+HDF5INCL =
+HDF5LIB =
+endif
+
+
+OPTIONS = $(OPTIMIZE) $(OPT)
+
+EXEC = Gadget2
+
+OBJS = main.o run.o predict.o begrun.o endrun.o global.o \
+ timestep.o init.o restart.o io.o \
+ accel.o read_ic.o ngb.o \
+ system.o allocate.o density.o \
+ gravtree.o hydra.o driftfac.o \
+ domain.o allvars.o potential.o \
+ forcetree.o peano.o gravtree_forcetest.o \
+ pm_periodic.o pm_nonperiodic.o longrange.o \
+ cooling.o agn_heating.o phase.o sticky.o outerpotential.o starformation.o \
+ agn_feedback.o bubbles.o bondi_accretion.o chimie.o stars_density.o
+
+INCL = allvars.h proto.h tags.h Makefile
+
+
+CFLAGS = $(OPTIONS) $(GSL_INCL) $(FFTW_INCL) $(HDF5INCL)
+
+
+ifeq (NOTYPEPREFIX_FFTW,$(findstring NOTYPEPREFIX_FFTW,$(OPT))) # fftw installed with type prefix?
+ FFTW_LIB = $(FFTW_LIBS) -lrfftw_mpi -lfftw_mpi -lrfftw -lfftw
+else
+ifeq (DOUBLEPRECISION_FFTW,$(findstring DOUBLEPRECISION_FFTW,$(OPT)))
+ FFTW_LIB = $(FFTW_LIBS) -ldrfftw_mpi -ldfftw_mpi -ldrfftw -ldfftw
+else
+ FFTW_LIB = $(FFTW_LIBS) -lsrfftw_mpi -lsfftw_mpi -lsrfftw -lsfftw
+endif
+endif
+
+ifeq ($(NO_FFTW_LIB),"yes")
+ FFTW_LIB =
+endif
+
+LIBS = $(HDF5LIB) -g $(MPICHLIB) $(GSL_LIBS) -lgsl -lgslcblas -lm $(FFTW_LIB)
+
+$(EXEC): $(OBJS)
+ $(CC) $(OBJS) $(LIBS) -o $(EXEC)
+
+$(OBJS): $(INCL)
+
+
+clean:
+ rm -f $(OBJS) $(EXEC)
+
+
+#-----------------------------------------------------------------------
+#
+# Brief guide to compile-time options of the code. More information
+# can be found in the code documentation.
+#
+# - PERIODIC:
+# Set this if you want to have periodic boundary conditions.
+#
+# - UNEQUALSOFTENINGS:
+# Set this if you use particles with different gravitational
+# softening lengths.
+#
+# - PEANOHILBERT:
+# This is a tuning option. When set, the code will bring the
+# particles after each domain decomposition into Peano-Hilbert
+# order. This improves cache utilization and performance.
+#
+# - WALLCLOCK:
+# If set, a wallclock timer is used by the code to measure internal
+# time consumption (see cpu-log file). Otherwise, a timer that
+# measures consumed processor ticks is used.
+#
+# - PMGRID:
+# This enables the TreePM method, i.e. the long-range force is
+# computed with a PM-algorithm, and the short range force with the
+# tree. The parameter has to be set to the size of the mesh that
+# should be used, (e.g. 64, 96, 128, etc). The mesh dimensions need
+# not necessarily be a power of two. Note: If the simulation is
+# not in a periodic box, then a FFT method for vacuum boundaries is
+# employed, using an actual mesh with dimension twice(!) that
+# specified by PMGRID.
+#
+# - PLACEHIGHRESREGION:
+# If this option is set (will only work together with PMGRID), then
+# the long range force is computed in two stages: One Fourier-grid
+# is used to cover the whole simulation volume, allowing the
+# computation of the longe-range force. A second Fourier mesh is
+# placed on the region occupied by "high-resolution" particles,
+# allowing the computation of an intermediate scale force. Finally,
+# the force on short scales is computed with the tree. This
+# procedure can be useful for "zoom-simulations", provided the
+# majority of particles (the high-res particles) are occupying only
+# a small fraction of the volume. To activate this option, the
+# parameter needs to be set to an integer bit mask that encodes the
+# particle types that make up the high-res particles.
+# For example, if types 0, 1, and 4 form the high-res
+# particles, set the parameter to PLACEHIGHRESREGION=19, because
+# 2^0 + 2^1 + 2^4 = 19. The spatial region covered by the high-res
+# grid is determined automatically from the initial conditions.
+# Note: If a periodic box is used, the high-res zone may not intersect
+# the box boundaries.
+#
+# - ENLARGEREGION:
+# The spatial region covered by the high-res zone has a fixed size
+# during the simulation, which initially is set to the smallest
+# region that encompasses all high-res particles. Normally, the
+# simulation will be interrupted if high-res particles leave this
+# region in the course of the run. However, by setting this
+# parameter to a value larger than one, the size of the high-res
+# region can be expanded, providing a buffer region. For example,
+# setting it to 1.4 will enlarge its side-length by 40% (it remains
+# centered on the high-res particles). Hence, with this setting, the
+# high-res region may expand or move by a limited amount.
+# Note: If SYNCHRONIZATION is activated, the code will be able to
+# continue even if high-res particles leave the initial high-res
+# grid. In this case, the code will update the size and position of
+# the grid that is placed onto the high-resolution region
+# automatically. To prevent that this potentially happens every
+# single PM step, one should nevertheless assign a value slightly
+# larger than 1 to ENLARGEREGION.
+#
+# - ASMTH:
+# This can be used to override the value assumed for the scale that
+# defines the long-range/short-range force-split in the TreePM
+# algorithm. The default value is 1.25, in mesh-cells.
+#
+# - RCUT:
+# This can be used to override the maximum radius in which the
+# short-range tree-force is evaluated (in case the TreePM algorithm
+# is used). The default value is 4.5, given in mesh-cells.
+#
+# - DOUBLEPRECISION:
+# This makes the code store and compute internal particle data in
+# double precision. Note that output files are nevertheless written
+# by converting the particle data to single precision.
+#
+# - DDOUBLEPRECISION_FFTW:
+# If this is set, the code will use the double-precision version of
+# FTTW, provided the latter has been explicitly installed with a
+# "d" prefix, and NOTYPEPREFIX_FFTW is not set. Otherwise the
+# single precision version ("s" prefix) is used.
+#
+# - SYNCHRONIZATION:
+# When this is set, particles are kept in a binary hierarchy of
+# timesteps and may only increase their timestep if the new
+# timestep will put them into synchronization with the higher time
+# level.
+#
+# - FLEXSTEPS:
+# This is an alternative to SYNCHRONIZATION. Particle timesteps are
+# here allowed to be integer multiples of the minimum timestep that
+# occurs among the particles, which in turn is rounded down to the
+# nearest power-of-two devision of the total simulated
+# timespan. This option distributes particles more evenly over
+# individual system timesteps, particularly once a simulation has
+# run for a while, and may then result in a reduction of work-load
+# imbalance losses.
+#
+# - PSEUDOSYMMETRIC:
+# When this option is set, the code will try to "anticipate"
+# timestep changes by extrapolating the change of the acceleration
+# into the future. This can in certain idealized cases improve the
+# long-term integration behaviour of periodic orbits, but should
+# make little or no difference in most real-world applications. May
+# only be used together with SYNCHRONIZATION.
+#
+# - NOSTOP_WHEN_BELOW_MINTIMESTEP:
+# If this is activated, the code will not terminate when the
+# timestep falls below the value of MinSizeTimestep specified in
+# the parameterfile. This is useful for runs where one wants to
+# enforce a constant timestep for all particles. This can be done
+# by activating this option, and by setting MinSizeTimestep and
+# MaxSizeTimestep to an equal value.
+#
+# - NOPMSTEPADJUSTMENT:
+# When this is set, the long-range timestep for the PM-force
+# computation (when the TreePM algorithm is used) is always
+# determined by MaxSizeTimeStep. Otherwise, it is determined by
+# the MaxRMSDisplacement parameter, or MaxSizeTimeStep, whichever
+# gives the smaller step.
+#
+# - HAVE_HDF5:
+# If this is set, the code will be compiled with support for input
+# and output in the HDF5 format. You need to have the HDF5
+# libraries and headers installed on your computer for this option
+# to work. The HDF5 format can then be selected as format "3" in
+# Gadget's parameterfile.
+#
+# - OUTPUTPOTENTIAL:
+# This will make the code compute gravitational potentials for
+# all particles each time a snapshot file is generated. The values
+# are then included in the snapshot file. Note that the computation
+# of the values of the gravitational potential costs additional CPU.
+#
+# - OUTPUTACCELERATION:
+# This will include the physical acceleration of each particle in
+# snapshot files.
+#
+# - OUTPUTCHANGEOFENTROPY:
+# This will include the rate of change of entropy of gas particles
+# in snapshot files.
+#
+# - OUTPUTTIMESTEP:
+# This will include the current timesteps of all particles in the
+# snapshot files.
+#
+# - NOGRAVITY
+# This switches off gravity. Useful only for pure SPH simulations
+# in non-expanding space.
+#
+# - NOTREERND:
+# If this is not set, the tree construction will succeed even when
+# there are a few particles at identical locations. This is done by
+# `rerouting' particles once the node-size has fallen below 1.0e-3
+# of the softening length. When this option is activated, this will
+# be surpressed and the tree construction will always fail if there
+# are particles at extremely close coordinates.
+#
+# - NOTYPEPREFIX_FFTW:
+# This is an option that signals that FFTW has been compiled
+# without the type-prefix option, i.e. no leading "d" or "s"
+# characters are used to access the library.
+#
+# - LONG_X/Y/Z:
+# These options can be used together with PERIODIC and NOGRAVITY only.
+# When set, the options define numerical factors that can be used to
+# distorts the periodic simulation cube into a parallelepiped of
+# arbitrary aspect ratio. This can be useful for idealized SPH tests.
+#
+# - TWODIMS:
+# This effectively switches of one dimension in SPH, i.e. the code
+# follows only 2d hydrodynamics in the xy-, yz-, or xz-plane. This
+# only works with NOGRAVITY, and if all coordinates of the third
+# axis are exactly equal. Can be useful for idealized SPH tests.
+#
+# - SPH_BND_PARTICLES:
+# If this is set, particles with a particle-ID equal to zero do not
+# receive any SPH acceleration. This can be useful for idealized
+# SPH tests, where these particles represent fixed "walls".
+#
+# - NOVISCOSITYLIMITER:
+# If this is set, the code will not try to put an upper limit on
+# the viscous force in case an implausibly high pair-wise viscous
+# force (which may lead to a particle 'reflection' in case of poor
+# timestepping) should arise. Note: For proper settings of the
+# timestep parameters, this situation should not arise.
+#
+# - COMPUTE_POTENTIAL_ENERGY:
+# When this option is set, the code will compute the gravitational
+# potential energy each time a global statistics is computed. This
+# can be useful for testing global energy conservation.
+#
+# - LONGIDS:
+# If this is set, the code assumes that particle-IDs are stored as
+# 64-bit long integers. This is only really needed if you want to
+# go beyond ~2 billion particles.
+#
+# - ISOTHERM_EQS:
+# This special option makes the gas behave like an isothermal gas
+# with equation of state P = cs^2 * rho. The sound-speed cs is set by
+# the thermal energy per unit mass in the intial conditions,
+# i.e. cs^2=u. If the value for u is zero, then the initial gas
+# temperature in the parameter file is used to define the sound speed
+# according to cs^2 = 3/2 kT/mp, where mp is the proton mass.
+#
+# - ADAPTIVE_GRAVSOFT_FORGAS:
+# When this option is set, the gravitational softening lengths used for
+# gas particles is tied to their SPH smoothing length. This can be useful
+# for dissipative collapse simulations. The option requires the setting
+# of UNEQUALSOFTENINGS.
+#
+# - SELECTIVE_NO_GRAVITY:
+# This can be used for special computations where one wants to
+# exclude certain particle types from receiving gravitational
+# forces. The particle types that are excluded in this fashion are
+# specified by a bit mask, in the same as for the PLACEHIGHRESREGION
+# option.
+#
+# - FORCETEST:
+# This can be set to check the force accuracy of the code. The
+# option needs to be set to a number between 0 and 1 (e.g. 0.01),
+# which is taken to specify a random fraction of particles for
+# which at each timestep forces by direct summation are
+# computed. The normal tree-forces and the correct direct
+# summation forces are collected in a file. Note that the
+# simulation itself is unaffected by this option, but it will of
+# course run much(!) slower, especially if
+# FORCETEST*NumPart*NumPart >> NumPart. Note: Particle IDs must
+# be set to numbers >=1 for this to work.
+#
+# - MAKEGLASS
+# This option can be used to generate a glass-like particle
+# configuration. The value assigned gives the particle load,
+# which is initially generated as a Poisson sample and then
+# evolved towards a glass with the sign of gravity reversed.
+#
+#-----------------------------------------------------------------------
+
diff --git a/clusters/user/GEAR/src/Readme b/clusters/user/GEAR/src/Readme
new file mode 100644
index 0000000..d80d5a2
--- /dev/null
+++ b/clusters/user/GEAR/src/Readme
@@ -0,0 +1,561 @@
+ven oct 20 09:42:19 CEST 2006
+
+ correction dans cooling.c, multiplication de ne par h.
+
+Sun Oct 22 16:06:46 CEST 2006
+
+ *
+ dans timestep.c, on ajoute la variable :
+ adotinv = 1./(hubble_a*All.Time);
+
+ dtEntropyRad -> dtEntropyRad*adotinv
+
+
+ *
+ dans starformation.c,, on ajoute la variable :
+ adotinv = 1./(hubble_a*All.Time);
+
+ *
+ dans cooling.c
+ on corrige de h
+ l = l * All.HubbleParam;
+
+
+Wed Nov 1 17:26:54 CET 2006
+ * Makefile -> option OUTPUT_EVERY_TIMESTEP
+ * run.c
+ #ifdef OUTPUT_EVERY_TIMESTEP
+ savepositions(All.SnapshotFileCount++); /* write snapshot file */
+ #endif
+ * !!! correction importante !!!
+ if((SphP[i].DtEntropy + dtEntropyRad) * dt_entr > 0.5 * SphP[i].Entropy)
+ dtEntropyRad = +0.5*SphP[i].Entropy/dt_entr - SphP[i].DtEntropy;
+
+ * !!! correction mega importante !!!
+
+ /* finally compute the entropy */
+ SphP[i].Entropy += (SphP[i].DtEntropy+dtEntropyRad) * dt_entr;
+ /* merge DtEntropy with dtEntropyRad (important for predicted temperature) */
+ SphP[i].DtEntropy = SphP[i].DtEntropy+dtEntropyRad;
+
+Wed Jan 24 15:23:24 CET 2007
+
+ * forcetree.c updated with version 2.0.3
+ * timestep.c updated with version 2.0.3
+ * longrange.c updated with version 2.0.3
+ * init.c updated with version 2.0.3
+ * run.c updated with version 2.0.3
+ * potential.c updated with version 2.0.3
+ * pm_nonperiodic.c updated with version 2.0.3
+ * read_ic.c updated with version 2.0.3
+ * proto.h updated with version 2.0.3
+ * allvars.h updated with version 2.0.3
+
+ * predict.c
+ dt_entr = (All.Ti_Current - (P[i].Ti_begstep + P[i].Ti_endstep) / 2) * All.Timebase_interval;
+ -->
+ dt_entr = (time1 - (P[i].Ti_begstep + P[i].Ti_endstep) / 2) * All.Timebase_interval;
+
+Thu Jan 25 17:51:35 CET 2007
+
+ * cooling.c + some related modif in timestep.c
+ * agn_heating.c + some related modif in timestep.c
+
+Wed Jan 31 12:39:55 CET 2007
+ * hydra.c
+
+ hfc_feedback = sqrt(0.5*(ekinspec/dt)*wk *0.5*(mass + P[j].Mass) /rho_ij/dt)/r;
+ hfc_feedback = dmin(hfc_feedback, 0.25*(sqrt(dvx*dvx+dvy*dvy+dvz*dvz)/dt));
+
+
+Thu Feb 15 14:11:47 CET 2007
+ * hydra.c
+
+ correction of feedback in comoving integration
+
+ dt = imax(timestep, (P[j].Ti_endstep - P[j].Ti_begstep)) * All.Timebase_interval/ hubble_a;
+ hfc_feedback = sqrt(0.5*(ekinspec/dt)*wk *0.5*(mass + P[j].Mass) /rho_ij/dt)/r * atime*fac_egy;
+ hfc_feedback = dmin(hfc_feedback, 0.25*fac_egy*(sqrt(dvx*dvx+dvy*dvy+dvz*dvz)/dt/r));
+ uintspec = 2*(uintspec/dt) *wk *0.5*(mass + P[j].Mass) /rho_ij *fac_pow ;
+
+Tue Mar 27 11:15:35 CEST 2007
+ * cooling.c
+
+ add the resolution of ionisation equilibrium equations
+ -> cooling + heating
+
+ * new parameter :
+ CoolingType : 0=Sutherland 1=+heating
+
+ * begrun.c
+ All.SupernovaTime *= 3.1536e+13*All.HubbleParam/All.UnitTime_in_s;
+
+ SupernovaTime is now given in Myr
+
+Tue Apr 3 09:06:10 CEST 2007
+
+ * accel.c
+ Cooling after heating
+ heating();
+ agn_heating();
+ cooling();
+
+ * cooling.c
+ Add isochoric cooling :
+ double DoCooling(...)
+
+ * starformation.c
+
+ tstar = 1./ All.StarFormationParameter / pow(SphP[i].Density,0.5);
+ >
+ tstar = 1./ All.StarFormationParameter / pow(SphP[i].Density*a3inv,0.5);
+
+
+ WARNING : THE COOLING_RAD IS PROBABLY NOT TAKEN INTO ACCOUNT
+ THE VOLKER IMPLEMENTATION IS USED IN timestep.c
+
+Thu Apr 5 09:06:10 CEST 2007
+
+ add the possibility to choose the starformation type
+ Rasera - Springel
+
+ * starformation.c
+
+ switch (All.StarFormationType)
+ {
+ case 0:
+ ThresholdDensity = All.StarFormationDensity;
+ break;
+
+ case 1:
+ MeanDensity = All.Omega0 * (3 * All.Hubble * All.Hubble / (8 * M_PI * All.G));
+ ThresholdDensity = dmin(All.StarFormationDensity/a3inv,200*MeanDensity);
+ break;
+ }
+
+
+ if (SphP[i].Density > ThresholdDensity)
+
+ tstar = All.StarFormationTime / pow(SphP[i].Density*a3inv/All.StarFormationDensity,0.5);
+
+ if (T < All.StarFormationTemperature)
+
+
+ * begrun.c
+
+ All.StarFormationType = all.StarFormationType;
+ All.StarFormationDensity = all.StarFormationDensity;
+ All.StarFormationTemperature = all.StarFormationTemperature;
+
+ All.StarFormationTime = All.StarFormationTime/All.UnitTime_in_s * 3.1536e16;
+ All.StarFormationDensity = All.StarFormationDensity/All.UnitDensity_in_cgs;
+
+Wed Apr 25 08:11:42 CEST 2007
+
+ * hydra.c
+
+ fac_pow = 1.0;
+
+ * starformation.c
+
+ - some corrections of the starformation threashold
+ - merge the code (one phase/multiphase)
+
+Wed Apr 25 08:45:17 CEST 2007
+
+ change
+ #ifdef STICKY
+ in
+ #ifdef MULTIPHASE
+
+
+Fri May 25 10:52:08 CEST 2007
+
+ * a huge number of changes
+
+ * modification of the feedback, feedback_wind
+ * modification of the sticky
+ * add the cold cycle
+ * other small
+
+
+!!! faire un flag pour
+meanweight = 4.0 / (1 + 3 * HYDROGEN_MASSFRAC); /* note: we assume neutral gas here */
+/*meanweight = 4 / (8 - 5 * (1 - HYDROGEN_MASSFRAC));*/ /* note: we assume FULL ionized gas here */
+
+Wed Jul 4 13:28:45 CEST 2007
+
+ * outer plummer potential (PLUMMER)
+ * possibility to compute velocity dispersion (COMPUTE_VELOCITY_DISPERSION)
+
+
+Wed Oct 31 09:53:39 CET 2007
+
+ This code has been used to compute the multiphase simulations
+
+ * new implementation of sticky
+
+ * ngb.c
+ /* GAS_SPH sees only GAS_SPH */
+ /* GAS_STICKY sees GAS_SPH, GAS_STICKY but not GAS_DARK */
+ /* GAS_DARK sees everybody */
+
+ * cooling.c
+
+ heating_compton : z dependency
+
+ compute_cooling_from_Egyspec_and_Density :
+ take the dmax(0,val)
+
+ * hydra.c : add sticky_evaluate
+
+ * phase.c : add cold gas
+ add possibility of collision
+
+ * timestep.c : modification of sticky energy computation
+
+
+Tue Apr 15 15:31:23 CEST 2008
+
+ Merging of different diverging versions
+
+ * updated with respect to the "multiphase" version used for the paper
+
+
+ * add regor and leo in the Makefile
+
+ * definitively disable compton heating (heating_compton())
+
+ * update outerpotential : potential can now be summed
+ add plummer potential
+
+ + proto.h
+ + outerpotential.c
+ + begrun.c
+
+Tue May 27 14:21:50 CEST 2008
+
+ * lot's of cleaning
+ * sph as been rewriten, but not finnished (do not use it)
+
+Wed May 28 19:48:32 CEST 2008
+
+ * sticky.c replace sticky_evaluate in hydra
+ -> new implementation of sticky
+ -> when need to collide, each particle try to find a particle in the same proc
+ -> ngb_treefind_sticky_collision
+
+ * in hydra, we have removed sticky_evaluate and multi_hydro_evaluate
+
+
+Tue Jun 3 13:59:59 CEST 2008
+
+ * coriolis added in outerpotential.c
+ * in phase.c
+
+ for(i = 0; i < N_gas; i++)
+ instead of
+ for(i = 0; i < NumPart; i++)
+
+
+Mon Jun 16 21:08:09 CEST 2008
+
+ * modifications in sticky.c
+ sticky collisions are computed using a grid (Bournaud) or neighbors.
+
+Fri Jun 20 15:52:43 CEST 2008
+
+ * add a velocity condition (StickyMinVelocity) for sticky collisions
+
+Sun Sep 14 12:08:41 CEST 2008
+
+ * new cooling function based on "treeasph" format file
+ the cooling function may now depends on metallicity
+
+ * for the old cooling function, we no longer use the MetallicityIndex,
+ but give the Metallicity using the InitGasMetallicity parameter
+
+Tue Sep 16 17:25:24 CEST 2008
+
+ * bug correction in cooling.c
+ add case in function of the cooling type
+
+
+Tue Nov 11 13:57:34 CET 2008
+
+ * in restart.c use again system function
+ system(buf_mv); /* move old restart files to .bak files */
+
+
+ * move all initializations at the end of begrun() in begrun.c
+ this is important to restart the simulation properly
+
+ /* other initialization for special behavior */
+ init_cooling();
+ init_outer_potential();
+ init_bubble();
+ init_sticky();
+
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !!! we should also check that : star formation, feedback, bondi_accretion, agn_feedback, agn_heating, phase
+ !!! are correctly initialized in restart mode
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+
+Wed Jan 28 13:04:25 CET 2009
+
+ * The cooling is now computed in timestep.c and not in accel.c
+ This has the advantage to use the real timestep used to advance
+ the velocities. The energy lost is better taken into account.
+
+ The entropy variation due to cooling is computed with an adaptative
+ timestep integration. However, it appears not to be so usefull.
+
+ It is now possible to use the option IMPLICIT_COOLING_INTEGRATION
+ if one need to integrated implicitely the cooling. Usefull in
+ the case of UV heating.
+
+
+ A new cooling function has been introduced : CoolingForOne
+
+
+Wed Jan 28 13:39:46 CET 2009
+
+ * use StarFormationNStarsFromGas instead of NStarsFromGas
+
+ !!! this was done before, but not mentionned !!!
+ now, we can use StarFormationType=2 and specify StarFormationCstar
+ then, StarFormationTime
+
+ All.ThresholdDensity = All.StarFormationDensity;
+ All.StarFormationTime = 1./All.StarFormationCstar / pow(4*PI*All.G*All.StarFormationDensity,0.5);
+
+
+
+Tue Feb 3 17:38:55 CET 2009
+
+ * introduce StP
+
+ - allvars.h
+ - allvars.c
+ - allocate.c
+ - domain.c
+ - peano.c
+ reorder_gas
+ reorder_particles
+ - starformation.c
+ - restart.c
+ - io.c # OUTPUTSTELLAR_PROP
+
+
+
+ * introduction of : do_chimie()
+
+ - chimie.c
+ - run.c
+
+ but the chimie is not implemented
+
+
+ * tests of the new star formation routine
+
+ the energy is correctly conserved if TreeDomainUpdateFrequency=0
+ when StarFormationNStarsFromGas > 1.
+
+
+Wed Jul 29 19:03:55 CEST 2009
+
+ * work of several weeks.
+
+ - modification of sfr (energy is now conserved)
+ - implementation of chimie (seems to work)
+ - implementation of chimie_thermalfeedback
+
+ - energy is more or less well conserved when chimie is
+ switched on with thermal feedback
+
+ - However, we observe a slight derive of the energy if sfr is strong,
+ even, with a small CourantFac=0.01
+ The increase in energy is due to feedback. The increased specific
+ energy is badly converted in kinetic energy... This has to be fixed.
+
+ - Without kinetic feedback, the energy is well conserved.
+
+
+Fri Jul 31 11:43:11 CEST 2009
+
+ * little change in cooling.c to be compatible with treeasph.
+ The new option DO_NO_USE_HYDROGEN_MASSFRAC_IN_COOLING
+ allow to run the cooling without using HYDROGEN_MASSFRAC (assumed to be 1).
+ This is wrong, but compatible with treeasph.
+ The temperature is still computed correctly (as in treeasph).
+
+Thu Aug 13 19:22:37 CEST 2009
+
+ * the conservation in energy is now fixed for CHIMIE_KINETIC_FEEDBACK.
+ This is solved by anticipating the wind injection and setting the timesteps
+ of all actives particles to the minimal value (ti_step=1);
+
+ Some changes is also done in timestep.c in order to allow the timesteps to
+ quickly increase.
+
+
+ while(((TIMEBASE - P[i].Ti_endstep) % ti_step) > 0)
+ ti_step = ti_step/2;
+
+ instead of
+
+ //if(((TIMEBASE - P[i].Ti_endstep) % ti_step) > 0)
+ // ti_step = P[i].Ti_endstep - P[i].Ti_begstep; /* leave at old step */
+
+
+ * fix some problems during restar
+
+
+Wed Aug 19 12:43:10 CEST 2009
+
+ * remove some printf in domain.c and starformation.c
+
+ * !!! add force_update_hmax(); after density() in run.c
+ hmax is needed for ngb search, in :
+ ngb_treefind_pairs : hydra.c, chimie.c
+ ngb_treefind_phase_pairs : bondi_accretion.c:
+
+
+ * remove : ngb_treefind_pairs_for_chimie
+ in chimie.c, we use ngb_treefind_pairs
+
+ NOTE : in stars_density.c we use ngb_treefind_variable_for_chimie
+ but it is similar to ngb_treefind_variable
+
+
+Mon Aug 31 18:18:27 CEST 2009
+
+
+ * some modification of sticky
+ - add CPU_Sticky
+ - check energy conservation
+ - check restart
+
+Thu Sep 3 11:20:17 CEST 2009
+
+ * some minor modification of sticky
+
+
+ Thu Sep 10 11:17:16 CEST 2009
+
+ * work on the work-load balance problem
+ In some cases, where the number of procs is too high comparing
+ to the number of particles, the load balance is bad. It means that
+ some procs needs much less time to computre gravity forces comparing
+ to others and they have to wait after.
+ I have tried to improve the load balance by spliting the domains not
+ base on gravcost but on the time spend to computre the gravity forces.
+
+ Unfortunately, as the forces are computed in two parts (local particles
+ and exported particles) it is difficult to reduce the imbalance for the
+ two parts. The gain of the new method is thus limited.
+
+
+ If the option SPLIT_DOMAIN_USING_TIME is enabled,
+ domain_findSplityr
+ and
+ domain_shiftSplityr
+ are used instead of
+ domain_findSplit
+ and
+ domain_shiftSplit
+
+ WARNING
+
+ - In domain_findSplityr we do not check the memory constaints.
+ - Not tested with adaptative timesteps
+
+
+Fri Sep 11 11:50:42 CEST 2009
+
+ * io.c
+
+ /* set fill to " " : yr Thu Aug 13 17:34:07 CEST 2009*/
+ for (i=0;i<sizeof(header.fill);i++)
+ strcpy(&header.fill[i]," ");
+
+ causes memory overflow. We have replaced it by :
+
+ memset(header.fill,' ',sizeof(header.fill));
+
+Thu Sep 17 14:58:00 CEST 2009
+
+ Enhancement of the CPU count (DETAILED_CPU)
+
+
+Tue Jan 5 16:56:12 CET 2010
+
+ * sticky.c
+
+ new version of sticky (double loop) now independents of the
+ number of procs
+
+ * sfr.c chimie.c
+
+ small corrections, implementation of delay of cooling after feedback
+
+Tue Mar 9 15:13:06 CET 201
+
+ * CHIMIE_EXTRAHEADER, io.c, allvars.h,read_ic.c
+ in the case of chemical evolution, we add an extraheader of 256 octets after the normal header
+ to store information on the chimie parameters.
+
+ * begrun.c
+ the cooling and chimie is now initialized before reading the first snapshot
+
+ * chimie.c
+ it is now possible to add several elements, all defined in the chimie file.
+
+ * cooling.c
+ the SolarAbundance of the cooling is now the one of the chimie.
+
+ * init.c, io.c
+ it is now possible to start a simulation with gas particles having metallicities different from 0.
+
+ * read_ic.c
+ a bug has been corrected when reading IO_STAR_IDPROJ, IO_STAR_RHO and IO_STAR_HSML
+
+ * peano.c : now we can order the particles following the peano keys, when STELLAR_PROP is on.
+ In a simulation including the chemical evolution, the improvement is not so strong (10% ?)
+
+ First, gas particles are sorted, then the stars and finally the other particles.
+ StP is also stored based on P.
+
+
+Thu Mar 18 14:33:25 CET 2010
+
+ * domain.c
+
+ if(TopNodes[sub].Count > All.TotNumPart / (TOPNODEFACTOR * NTask))
+
+ instead of
+
+ if(TopNodes[sub].Count > All.TotNumPart / (TOPNODEFACTOR * NTask * NTask))
+
+ This should improve the time needed for domain decomposition.
+ http://www.mpa-garching.mpg.de/gadget/gadget-list/0197.html
+
+
+Thu May 20 16:16:11 CEST 2010
+
+ * merge correction performed on the sticky part
+ * a lot of changes conserning the feedback and feedback_wind (tested with sticky)
+
+
+
+------------------------------------------------------------------------------------
+
+
+
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/TIME b/clusters/user/GEAR/src/TIME
new file mode 100644
index 0000000..3285072
--- /dev/null
+++ b/clusters/user/GEAR/src/TIME
@@ -0,0 +1,122 @@
+
+
+
+
+#ifdef DETAILED_CPU
+ double tstart,tend;
+#endif
+
+#ifdef DETAILED_CPU
+ tstart = second();
+#endif
+
+#ifdef DETAILED_CPU
+ tend = second();
+ All.CPU_Leapfrog += timediff(tstart, tend);
+#endif
+
+
+
+
+
+All.CPU_Total
+
+ ################################ CPU_Leapfrog/CPU_Predict ok
+
+ find_next_sync_point_and_drift();
+
+ ################################ CPU_Residual ok
+
+ every_timestep_stuff();
+
+ ################################ CPU_Snapshot ok
+
+ savepositions(All.SnapshotFileCount++);
+
+ ################################ CPU_Physics ok
+
+ compute_agn_accretion();
+
+ make_bubble();
+
+ update_phase();
+
+ set_outer_potential_coriolis();
+
+ chimie();
+
+ density();
+ sfr_compute_energy_int(1);
+ star_formation();
+
+ sticky();
+
+ ################################ CPU_Domain+CPU_Peano ok
+
+ domain_Decomposition(); /* do domain decomposition if needed */
+
+ ################################ CPU_Accel ok
+
+ compute_accelerations(0); /* compute accelerations for
+
+
+ ################################ CPU_Physics ok
+
+ sfr_compute_energy_int(2);
+
+
+ ################################ CPU_Potential ok
+
+ compute_potential();
+
+ ################################ CPU_Residual ok
+
+ energy_statistics();
+ advanced_energy_statistics();
+
+ ################################ CPU_Leapfrog/CPU_TimeLine
+
+ advance_and_find_timesteps();
+
+ ################################ CPU_Residual
+
+ autres...
+
+ ################################
+
+
+
+
+
+CPU_Accel
+ CPU_Gravity, CPU_Hydro,CPU_PM ok
+CPU_Physics
+ CPU_StarFormation x
+ CPU_Chimie
+ CPU_Sticky
+CPU_Leapfrog +-ok
+ CPU_Predict
+ CPU_TimeLine
+CPU_Potential ok
+ CPU_Potential
+CPU_Snapshot ok
+ CPU_Snapshot
+CPU_Domain ok
+ CPU_Domain
+CPU_Peano ok
+ CPU_Peano
+CPU_Residual neg
+
+CPU_Begrun neg
+
+
+
+
+CPU_Gravity
+CPU_Hydro
+CPU_Domain
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/TODO b/clusters/user/GEAR/src/TODO
new file mode 100644
index 0000000..b6e328c
--- /dev/null
+++ b/clusters/user/GEAR/src/TODO
@@ -0,0 +1,1202 @@
+
+multiple IMF :
+----------
+
+
+- add parameters
+- add code
+
+- add maxlivetime
+
+
+---> !!! si toutes les étoiles explosent,
+ la masse de certaines étoiles devient très petite,
+ voir négative.
+
+--> il faut voir les tables, regarder la perte de masse pour une masse donnée.
+
+
+
+
+
+new cooling :
+----------
+
+--- tester le cooling avec M=4, on devrait avoir Tcool << Tdyn à faire
+
+
+- ajouter implicit cooling integration ok
+
+ + tester ok, semble bien
+
+
+- verifier ComovingIntegrationOn à tester
+
+- tester sur cluster à faire
+
+- tester sur boite cosmo à faire
+
+
+
+on peut enlever :
+
+DtEgySpecRadSph
+DtEntropyRadSph
+
+
+
+new sfr :
+----------
+
+
+- crée des étoiles de plus petite masse, et donc, garder la part. de gaz. ok
+
+- utiliser tous les critères, jeans aussi... à faire
+
+- tester un model statique --> loi exp décroissante ok
+
+- transformer toute la particule lorsque elle est trops petite ok
+
+- ecrire les output de StP ok
+
+- prendre en compte l'énergie des étoiles... ok
+
+- conservation de l'énergie ok
+
+ 1 proc, StarFormationNStarsFromGas = 1 snap00
+ 4 proc, StarFormationNStarsFromGas = 1 snap01 mini diff.
+
+ 1 proc, StarFormationNStarsFromGas = 4 snap02 sfr correcte, mais
+ !!! il y a des oscillations...
+
+ 1 proc, StarFormationNStarsFromGas = 4 snap03 ok, on corrige avec TreeDomainUpdateFrequency = 0
+ 4 proc, StarFormationNStarsFromGas = 4
+
+
+- permettre : TreeDomainUpdateFrequency > 0 à faire
+
+
+
+domain :
+----------
+
+ - forcer les particules stellaire a etre arrangées dans le block 1 ok
+
+
+
+ domain.c à faire (difficile)
+ maxloadsph -> maxloadstars
+
+ pour PEANOHILBERT : trier les particules star à faire
+ peano.c à faire
+
+ domain_sumCost -> add local_DomainCountSt à faire (difficile ?)
+
+
+
+
+ - modifier StP ok
+
+
+ All.TotN_stars ok
+
+ All.MaxPartStars = All.StarFormationNStarsFromGas*All.MaxPartSph ok
+ + All.PartAllocFactor * (All.TotN_stars / NTask)
+
+
+ allocate.c ok
+ All.MaxPartStars
+ restart.c ok
+
+
+ init.c ok
+
+ domain.c ok
+ starformation.c ok
+
+ rearrange_particle_sequence ok
+
+ io.c
+ read_ic.c ok
+ ok
+
+
+
+ - vérifier les output ok
+
+ int flag_sfr
+ int flag_feedback
+ int flag_cooling
+ int flag_stellarage
+ int flag_metals
+
+ typelist[6] ok
+ --> 0 si aucune particule de ce type est présente dans le block
+
+ get_particles_in_block ok
+
+
+
+ - vérifier les input ok
+
+ - partir avec un fichier qui contiend déjà des étoiles
+ --> conditions initiales (lit qu'une partie...) ok
+ --> redémarrage
+
+ - partir avec un fichier qui contiend déjà la métalicité du gaz
+
+ --> conditions initiales
+ --> redémarrage
+
+
+ - tester All.TotN_stars ok
+ - N_stars ok
+
+
+
+
+
+
+
+
+
+
+
+chimie :
+----------
+
+
+- pour une part. d'étoile, trouver les plus proches particules de gaz ok
+
+
+ - il faut calculer hsml/density (gaz) pour les étoiles... ok
+
+ - dans do_chimie, commencer la boucle par la première étoile ok
+ et non particule
+
+ - verifier le bon nombre de voisins pour les étoiles ok
+
+
+
+
+ stars_density.c ok
+ chimie.c ok
+
+
+ tests :
+
+ - vérifier la densité (écrire) ok
+ - vérifier hsml (écrire) ok
+
+ -> on écrit dans le fichier de sortie Density,Hsml ok
+
+
+
+ - vérifier les plus proches voisins ok
+ --> dans chimie,
+ -> vérifier : Sum m/rho wij = 1, par example... ok
+
+
+
+- initialisation
+
+ utiliser get_nelts pour avoir NELEMENTS, ou alors, check.... à faire
+
+
+
+
+
+- pour une particule stellaire, calculer à faire
+
+ - la masse totale ejectée ok
+ - les métaux éjectés ok
+ - l'énergie éjectée ok
+
+
+- injecter la masse au plus proches voisins ok
+- enlever mass et elt ejecté par une étoile ok
+
+ !!! conservation de l'énergie kin,pot, int
+ !!! conservation de l'impulsion...
+ !!! conservation de la masse ok
+ ok, a 1%pres... a vérifier par la suite...
+ dans des conditions moins difficiles...
+
+ <-------- Wed Jul 22 15:09:25 CEST 2009
+
+- mieux conserver l'énergie lors de feedback thermqie (rendre part. active ?) à faire !!! (ou feedback cinétique...)
+
+- faire un fichier statistique qui comptes ce qui est crée... à faire
+
+- injecter l'énergie thermique ok
+
+- injecter l'énergie cinetique à faire
+
+- utiliser la metallicité pour le cooling ok
+
+
+
+
+
+
+
+
+
+- utiliser TreeDomainUpdateFrequency != 0.0 à faire
+
+
+- vérifier dans chimie.c -> utilisation de vel ou velpred...
+
+
+- unifier à faire
+
+
+SolarAbun_Fe = 0.001771 pNbody
+SolarAbun_Mg = 0.00091245 pNbody
+
+#define FEH_SOLAR 0.001771 Gadget /* 0.00181 */
+#define MGH_SOLAR 0.00091245 Gadget
+
+FeHSolar = 0.00181 Gadget cooling !!!
+
+
+
+
+
+- vérifier restart -> particulièrement les parametres à faire
+ ??? All.ChimieSupernovaEnergy = all.ChimieSupernovaEnergy
+
+
+
+- revoir sticky (faire attention au leap frog, par ex.) à faire
+- cooling : on peut completement sortie docooling de timestep, non ?
+
+
+
+!! initialisation correcte de : StarEnergyInt,StarEnergyRadSph, à faire
+ StarEnergyRadSticky...
+ --> aussi lors d'un restart !!!
+
+ --> should be in All.
+
+
+
+
+
+
+
+
+
+
+
+
+--------------------------------------------------------------------------------
+CPU
+--------------------------------------------------------------------------------
+
+timediff(t0, t1) = t1-t0
+
+All.CPU_Total,
+ run.c : on somme les diff de la boucle principale
+
+All.CPU_Gravity,
+ accel.c :
+ gravity_tree()
+
+All.CPU_Hydro,
+ accel.c :
+ density()
+ hydro_force();
+
+
+All.CPU_Domain,
+ domain.c :
+ domain_Decomposition() sans peano_hilbert_order
+
+
+All.CPU_Potential, potential.c :
+ compute_potential()
+
+All.CPU_Predict, accel.c :
+ force_update_hmax(); ???
+ predic.c :
+ move_particles()
+ run.c :
+ find_next_sync_point_and_drift()
+
+All.CPU_TimeLine, timestep.c :
+ advance_and_find_timesteps()
+
+All.CPU_Snapshot, io.c
+ savepositions()
+
+
+All.CPU_TreeConstruction potential.c
+ force_treebuild()
+ gravtree.c
+ force_treebuild()
+
+All.CPU_TreeWalk, gravtree.c !!!
+All.CPU_CommSum, gravtree.c
+All.CPU_Imbalance, gravtree.c
+ All.CPU_TreeWalk += sumt / NTask;
+ All.CPU_Imbalance += sumimbalance / NTask;
+ All.CPU_CommSum += sumcomm / NTask;
+
+
+All.CPU_HydCompWalk, chimie.c density.c hydra.c stars_density.c !!!
+All.CPU_HydCommSumm, chimie.c density.c hydra.c stars_density.c
+All.CPU_HydImbalance, chimie.c density.c hydra.c stars_density.c
+ All.CPU_HydImbalance += sumimbalance / NTask;
+ All.CPU_HydCommSumm += sumcomm / NTask;
+ All.CPU_HydCompWalk += sumt / NTask;
+
+All.CPU_EnsureNgb, density.c !!!
+ All.CPU_EnsureNgb += sumtimengb / NTask;
+
+ stars_density.c
+ All.CPU_EnsureNgb += sumtimengb / NTask;
+
+
+All.CPU_PM, accel.c
+ long_range_force()
+
+All.CPU_Peano
+ domain.c : peano_hilbert_order()
+
+
+on pourait rajouter :
+-------------------
+
+All.CPU_Accel
+
+if faut rajouter :
+
+All.CPU_Chimie
+All.CPU_StarFormation
+
+
+
+
+
+
+
+
+
+
+--------------------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+
+- sticky bournaud
+
+ - faire des tests
+ - choix du sticky --> pour cluster, mieux dans rayon sph...
+
+- éviter que la densité soit calculée ??? vraiment utiles ?
+
+
+- conservation de l'énergie pour sticky
+
+
+
+
+----------------------------------------
+
+- improve multiphase computation : only with MULTIPHASE switched on
+
+
+ - test sticky only
+
+ * for each particle, find one particle to collide with
+ * try to do that in the same function than the main hydra (???)
+
+
+
+
+
+
+
+
+
+
+ - test sph only
+
+ - test dark gas
+
+ - test combination of all
+
+
+
+ check
+
+
+ * indep. of number of proc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+##########################################3
+MULTIPHASE
+##########################################
+
+ - part of particles behave differently (sticky)
+
+
+GAS_SPH -> normal sph
+GAS_STICKY -> sticky
+GAS_DARK -> no (weak) interaction
+
+
+
+
+
+functions
+
+multi_hydro_evaluate
+sticky_evaluate
+ngb_treefind_phase_pairs
+
+
+io.c ok
+init.c ok
+read_ic.c ok
+
+run.c ok
+
+
+density.c ok (rien de particulier)
+ngb.c
+ ngb_treefind_pairs hydra.c
+ every body sees every body
+
+
+ ngb_treefind_variable density.c
+ find density and hsml !!!! hsml is then needed to find colliding particules
+ !!!! but may be problematic if only sph part. are present in hsml !!!
+
+
+ ngb_treefind_phase_pairs bondi_accretion.c
+
+
+hydra.c !!!!!!!!!!!!
+ multi_hydro_evaluate(i, 0);
+ hydro_evaluate(i, 0);
+ sticky_evaluate(i, 0);
+
+
+
+
+
+
+timestep.c
+global.c
+
+cooling.c
+starformation.c
+bubbles.c
+
+
+
+
+
+
+
+##########################################
+PHASE_MIXING
+##########################################
+
+proto.h
+ phase_mixing
+
+run.c
+phase.c
+
+
+
+
+
+
+
+##########################################
+COLDGAS_CYCLE (need MULTIPHASE)
+##########################################
+
+ - compute cycling or not
+
+
+ ---------------------------------------
+
+ COLDGAS_CYCLE :parameters
+ -------------------------
+
+ ColdGasCycleTransitionTime;
+ ColdGasCycleTransitionParameter;
+
+ allvars.h ok
+ begrun.c ok
+ phase.c ok
+
+
+##########################################
+EXTERNAL_FLUX : really only external flux
+##########################################
+
+ begrun.c
+ cooling.c
+ phase.c
+ allvars.h
+
+
+ HeatingPeSolarEnergyDensity
+ HeatingExternalFLuxEnergyDensity
+
+##########################################
+STELLAR_FLUX : only stellar flux
+##########################################
+
+ allvars.h
+ init.c
+ gravtree.c
+ forcetree.c
+ begrun.c
+
+ HeatingPeSolarEnergyDensity;
+ HeatingPeLMRatioGas;
+ HeatingPeLMRatioHalo;
+ HeatingPeLMRatioDisk;
+ HeatingPeLMRatioBulge;
+ HeatingPeLMRatioStars;
+ HeatingPeLMRatioBndry;
+ HeatingPeLMRatio[6];
+
+
+
+
+
+####################################################
+# sticky_evaluate(i, 0)
+####################################################
+
+
+
+1) check who can inteact with who ?
+
+
+ - loop over active particles
+ - ngb_treefind_pairs ! find all particles in h_i ... check !!!
+ here we could use different fct, depending on the type
+
+ - if(P[j].Ti_endstep == All.Ti_Current) only active particles ! ensure symetry,
+ really necessary ???
+
+ - if(SphP[j].Phase == GAS_STICKY) ok, but may be done with "ngb_treefind_pairs"
+
+
+ - if(SphP[j].StickyFlag) SphP[i].StickyFlag = 1; in init.c
+ SphP[i].StickyFlag is determined in phase.c
+
+
+
+
+
+2) what is modified by sticky_evaluate
+
+
+ P[target].Vel[k] <------ here, we change the velocity !!!!!!!
+ P[j].Vel[k]
+
+
+
+ SphP[target].EgySpecRadSticky <------ here, we count the energy !!!!!!!
+ SphP[j].EgySpecRadSticky
+
+
+ SphP[target].StickyCollisionNumber++;
+ SphP[j].StickyCollisionNumber++;
+
+ SphP[target].HydroAccel[k] = 0;
+
+ SphP[target].StickyFlag = 0;
+ SphP[target].DtEntropy = 0; /* force dt entropy to zero */
+
+
+ SphP[j].DtEgySpecFeedback = 0; /* should not be there */
+
+
+
+ !!!! we change the velocity and count energy further
+
+
+
+
+
+
+
+
+
+tests:
+
+ - only sticky : be sure that particles interact symetrically...
+
+
+
+
+
+
+
+
+####################################################
+# problemes
+####################################################
+
+
+(!!) si Entropy < 0, le gaz est considéré GAS_DARK (output)
+ -> bien vérifier...
+
+
+(!!) si une particule oscille frequemment entre dark et visible, elle risque
+ de colisonner trops souvent... StickyFlag=1 automatique lors du retour au sticky
+
+
+
+
+
+
+####################################################
+#
+# comoving integration
+#
+####################################################
+
+velocity
+-------
+gadget-1 : w=sqrt(a)*xp
+gadget-2 : u=a*a*xp
+
+
+
+################################################
+# conversion (comobile -> physical')
+################################################
+
+
+r_p = x_c*a = Pos*a
+
+v_p = x_c*H(a)*a + v_c * a = Pos*H(a)*a + Vel/a (in the code)
+v_p = x_c*H(a)*a + v_c * a = Pos*H(a)*a + Vel*sqrt(a) (in the snapshot)
+
+m_p = m_c = Mass
+
+u_p = u_c (need to compute from entropy)
+
+rho_p = rho_c / a^3 = Density/a^3
+
+A = Ap
+
+Pp = Pc * a^(-3 * gamma)
+
+c_c = c_p a^(3(gamma-1))/2
+
+
+
+################################################
+# conversion (physical' -> physical)
+################################################
+
+
+pos_p = pos_p'/h
+mass_p= mass_p'/h
+t_p = t_p'/h
+
+
+vel_p = vel_p'
+u_p = u_p'
+rho_p = rho_p'*h^2
+
+
+
+
+* where :
+
+ starformation.c
+ ---------------
+
+ 1) .Density
+
+ if (SphP[i].Density*a3inv > All.ThresholdDensity)
+ -> All.ThresholdDensity en terme physical
+
+ 2) .Vel
+
+ !!! FEEDBACK_WIND use Vel ---> bad !
+
+
+ chimie.c
+ ---------------
+
+ 1) .Density
+
+ LocalSysState.EnergyInt1 += P[i].Mass * SphP[i].EntropyPred / (GAMMA_MINUS1) * pow(SphP[i].Density*a3inv, GAMMA_MINUS1);
+ LocalSysState.EnergyInt2 += P[i].Mass * SphP[i].EntropyPred / (GAMMA_MINUS1) * pow(SphP[i].Density*a3inv, GAMMA_MINUS1);
+
+
+ EgySpec = SphP[i].EntropyPred / GAMMA_MINUS1 * pow(SphP[i].Density*a3inv, GAMMA_MINUS1);
+ DeltaEntropy = GAMMA_MINUS1*NewEgySpec/pow(SphP[i].Density*a3inv, GAMMA_MINUS1) - SphP[i].EntropyPred;
+
+
+ EgySpec = SphP[j].EntropyPred / GAMMA_MINUS1 * pow(SphP[j].Density*a3inv, GAMMA_MINUS1);
+
+
+ DeltaEntropy = GAMMA_MINUS1*NewEgySpec/pow(SphP[j].Density*a3inv, GAMMA_MINUS1) - SphP[j].EntropyPred;
+
+
+ 2) .Vel
+
+ !!! chimie_compute_energy_kin
+ !!! chimie_apply_wind
+
+ !!! vj2 += SphP[j].VelPred[k]*SphP[j].VelPred[k];
+ !!! vi2 += vel[k]*vel[k];
+
+
+
+ timestep.c
+ ---------------
+
+ a bien refaire
+
+ cooling.c
+ ---------------
+
+ 1) Density
+
+ CoolingForOne
+ DoCooling
+ lambda
+
+ 2) Vel
+
+ no
+
+
+#################################################
+# steps for the entropy
+
+predict.c
+
+dt_drift = get_drift_factor(time0, time1);
+dt_gravkick = get_gravkick_factor(time0, time1); -> pour v = a_grav * dt
+dt_hydrokick = get_hydrokick_factor(time0, time1); -> pour v = a_hydro * dt
+dt_entr = (time1 - (P[i].Ti_begstep + P[i].Ti_endstep) / 2) * All.Timebase_interval;
+
+SphP[i].EntropyPred = (SphP[i].Entropy + SphP[i].DtEntropy * dt_entr);
+
+timestep.c
+
+dt_gravkick = get_gravkick_factor(tstart, tend);
+dt_hydrokick = get_hydrokick_factor(tstart, tend);
+dt_entr = (tend - tstart) * All.Timebase_interval;
+
+SphP[i].Entropy += SphP[i].DtEntropy * dt_entr;
+
+
+- que vaut DtEntropy
+
+hydra.c
+
+dtEntropy += 0.5 * hfc_visc * vdotr2;
+SphP[i].DtEntropy *= GAMMA_MINUS1 / (hubble_a2 * pow(SphP[i].Density, GAMMA_MINUS1));
+
+et c'est tout !
+
+
+
+-------------------------------------------------------
+Tue Dec 21 22:37:07 CET 2010
+-------------------------------------------------------
+
+
+dA/dt = SphP[i].DtEntropy * hubble_a
+
+==>
+
+dA/dt * ds/hubble_a
+
+dans le code est ecrit par
+
+
+SphP[i].DtEntropy * (tend - tstart) * All.Timebase_interval
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+j'ai suivit l'evolution de
+
+SphP[i].DtEntropy * hubble_a
+
+dans le cas d'un système isolé
+ou du meme système en comobile,
+
+le resultat est identique !!!
+
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+
+ /* Conversion into program time unit */
+ Cp->coeff_z[2][2] = Cp->coeff_z[2][2] + u_lt;
+
+
+ double u_lt;
+ double UnitLength_in_kpc; ok
+ double UnitMass_in_Msol; ok
+
+
+
+ u_lt = -log10( 4.7287e11*sqrt(pow(UnitLength_in_kpc,3)/UnitMass_in_Msol));
+
+
+
+
+
+treeasph
+
+unit_mass 1.e10 Msol
+unit_length 1. kpc
+
+
+
+ u_lt = -log10( 4.7287d11*SQRT(unit_length**3/unit_mass))
+ u_lt : unit_local_time ? calculé a partir de G=1 ???
+ u_lt = 4728700.0 unit time in yr
+
+
+ d'ou vient :
+ 4.7287d11 =
+
+
+
+ time unit = 4.72e6 ans
+
+ All.G = GRAVITY / pow(All.UnitLength_in_cm, 3) * All.UnitMass_in_g * pow(All.UnitTime_in_s, 2);
+ GRAVITY 6.672e-8
+
+ UnitTime_in_s = sqrt ( pow(UnitLength_in_cm, 3)/GRAVITY /UnitMass_in_g )
+
+
+ SEC_PER_MEGAYEAR=3.155e13
+ UnitLength_in_cm =3.085678e+21
+ UnitVelocity_in_cm_per_s =100000.0
+ UnitTime_in_s = UnitLength_in_cm / UnitVelocity_in_cm_per_s;
+ UnitTime_in_Megayears = UnitTime_in_s / SEC_PER_MEGAYEAR;
+ u_lt = -log10(UnitTime_in_Megayears/1e6)
+ 5.3262507580106977
+
+
+
+
+
+
+c Conversion into program time unit
+ coeff_z(3,3) = coeff_z(3,3) + u_lt
+
+
+
+
+
+
+
+
+ minlivetime maxlivetime
+
+unite treeasph : 0.828579 5.64403e+08
+4.72
+==> Myr : 3.9108 2.6639e+09
+
+
+première étoile : 16.8457 = 79.511 Myr
+première sn : 17.6926 = 83.50 Myr
+
+_________________________________________________________________
+
+ minlivetime maxlivetime
+
+unite gadget : 0.00400612 2.72885e+06
+978.027
+==> Myr 3.918 2.668e+08
+
+ 6.96579
+première étoile : 7.04278 = 75.28
+première sn : 7.06
+
+
+
+
+
+isolated
+--------
+
+StP[m].FormationTime : myr formation de la ssp
+minlivetime : myr temps de vie minimum
+maxlivetime : myr temps de vie maximum
+
+tmin : myr temps minimum d'exection
+tmax : myr temps maximum d'exection
+
+t1 : myr debut du pas de temps
+t2 : myr find du pas de temps
+
+
+il y a chimie, lorsque
+
+1) tmin < t1 && tmax >=t1 debut du pas de temps dans l'interval [tmin,tmax]
+ tmin <=t2 && tmax > t2 find du pas de temps dans l'interval [tmin,tmax]
+ tmin >=t1 && tmax <=t2 t1,t2 hord de [tmin,tmax]
+
+
+starf of sfr
+0.708
+
+
+
+################################################################################
+# passage unite en h -> unités physiques
+################################################################################
+
+
+
+pos_p = pos_p'/h
+mass_p= mass_p'/h
+t_p = t_p'/h
+rho_p = rho_p'*h^2
+e_p = e_p'/h
+
+vel_p = vel_p'
+u_p = u_p'
+
+
+# parties a modifier :
+
+
+* starformation.c
+#################
+
+All.ThresholdDensity -> unite de h
+All.StarFormationDensity -> unite de h
+
+ --> rien a faire
+
+
+* cooling.c
+#################
+
+ --> lambda
+
+ nHcgs -> nHcgs*h^2 ok
+
+ All.mumh/All.Boltzmann ok indep de h
+
+ T= All.mumh/All.Boltzmann * GAMMA_MINUS1 * Entropy ok indep de h
+
+ l = cooling_function_with_metals ok ne dép que de T et Fe
+
+ !! l doit etre converti en unité h
+
+ l = l * h**3
+ l = l * nH2 si nH2 est en unité h oui
+
+ l = l * h**3
+ l = l * nH2h**2 si nH2 a été exprimé en unité normales ok ICI
+
+
+
+* chimie.c
+#################
+
+* !!! toutes les grandeurs liées au temps
+
+
+ minlivetime = star_lifetime(StP[m].Metal[NELEMENTS-1],Cp->Mmax*SOLAR_MASS/All.UnitMass_in_g);
+ maxlivetime = star_lifetime(StP[m].Metal[NELEMENTS-1],Cp->Mmin*SOLAR_MASS/All.UnitMass_in_g);
+
+ -> doit etre converti en h
+
+ minlivetime = minlivetime*h
+ maxlivetime = maxlivetime*h
+
+ suite :
+
+ comparaison t01 t02 -> ok
+
+ # star_mass_from_age prend des valeur non h
+ m2 = star_mass_from_age(StP[m].Metal[NELEMENTS-1],t01/h); !!!
+ m1 = star_mass_from_age(StP[m].Metal[NELEMENTS-1],t02/h); !!!
+
+ m1, n2 seront en non h
+
+ Total_mass_ejection -> M0/h
+
+ EjectedMass = EjectedMass*h
+
+
+ le reste devrait etre bon...
+
+
+
+ __________> a vérifier... et à réfléchir...
+
+
+
+
+# tests
+- prendre une simulation avec unités sans h,
+
+ -> transformer en unité avec h
+ pos = pos*h
+ vel = vel
+ mass = mass*h
+ u = u
+ rho = rho/h**2
+
+ -> transformer les parametes (qui doivent etre en unité de h dans le code)
+ pos = pos*h
+ rho = rho/h**2
+ t = t/h
+ e = e*h
+
+
+ HubbleParam ok
+ BoxSize ok
+ TimeBetSnapshot ok
+ TimeOfFirstSnapshot ok
+ TimeBetStatistics ok
+ MaxSizeTimestep ok
+ MinSizeTimestep ok
+ All.HubbleParam
+
+ StickyDensity non -> convertir dans le code ok
+ StarFormationTime non -> convertir dans le code ok
+ StarFormationDensity non -> convertir dans le code ok
+ ChimieMaxSizeTimestep non -> convertir dans le code ok
+ ChimieWindTime non -> convertir dans le code ok
+ ChimieThermalTime non -> convertir dans le code ok
+ ChimieSupernovaEnergy non -> convertir dans le code ok
+
+
+ SofteningGas ok
+ SofteningHalo
+ SofteningDisk
+ SofteningBulge
+ SofteningStars
+ SofteningBndry
+
+ SofteningGasMaxPhys ok
+ SofteningHaloMaxPhys
+ SofteningDiskMaxPhys
+ SofteningBulgeMaxPhys
+ SofteningStarsMaxPhys
+ SofteningBndryMaxPhys
+
+
+
+################################################################################
+# only the master read chimie
+################################################################################
+
+
+
+pour chaque fichier chimie à lire:
+---------------------------------
+
+ read_chimie(filename,nf)
+
+ -> Cps[it]
+ -> Elts[it]
+
+ allocation de
+
+ MassFracSNIIs[it]
+ EjectedMasss[it]
+ SingleMassFracSNIIs[it]
+ SingleEjectedMasss[it]
+
+
+
+Cps
+
+alloué par la suite
+Elts
+
+MassFracSNIIs[it] ->
+EjectedMasss[it]
+SingleMassFracSNIIs[it]
+SingleEjectedMasss[it]
+
+variables initializée durant read_chime
+
+Cps
+
+
+
+!!!
+
+
+* allocate memory for elts */
+
+
+Elts
+
+
+!!!
+
+ /* allocate memory */
+ MassFracSNIIs[it] = malloc((Cps[it].nelts+2) * sizeof(double));
+ EjectedMasss[it] = malloc((Cps[it].nelts+2) * sizeof(double));
+ SingleMassFracSNIIs[it] = malloc((Cps[it].nelts+2) * sizeof(double));
+ SingleEjectedMasss[it] = malloc((Cps[it].nelts+2) * sizeof(double));
+
+
+
+/* injected metals */
+
+
+-- elts
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/ab_turb.c b/clusters/user/GEAR/src/ab_turb.c
new file mode 100644
index 0000000..542520b
--- /dev/null
+++ b/clusters/user/GEAR/src/ab_turb.c
@@ -0,0 +1,504 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+#ifdef AB_TURB
+
+
+
+double st_grn(void);
+void st_init_ouseq(void);
+void st_calc_phases(void);
+void st_compute_injection(void);
+
+
+
+//Ornstein-Uhlenbeck variables
+double StOUVar;
+double* StOUPhases;
+gsl_rng* StRng;
+
+
+//forcing field in fourie space
+double* StAmpl;
+double* StAka; //phases (real part)
+double* StAkb; //phases (imag part)
+double* StMode;
+int StNModes;
+
+
+//integertime StTPrev; (yr : ask ?)
+int StTPrev;
+double StSolWeightNorm;
+
+/*double StEnergyAcc;
+double StEnergyDeacc;
+
+double StLastStatTime;
+
+FILE *FdTurb;*/
+
+void
+init_turb()
+{
+ int ikx, iky, ikz;
+ double kx,ky,kz,k;
+ double ampl;
+
+ int ikxmax = All.BoxSize*All.StKmax/2./M_PI;
+#ifndef ONEDIMS
+
+ int ikymax = All.BoxSize*All.StKmax/2./M_PI;
+#ifndef TWODIMS
+ int ikzmax = All.BoxSize*All.StKmax/2./M_PI;
+#else
+ int ikzmax = 0;
+#endif
+
+#else
+ int ikymax = 0;
+ int ikzmax = 0;
+#endif
+
+ StNModes = 0;
+ for(ikx = 0;ikx <= ikxmax; ikx++)
+ {
+ kx = 2.*M_PI*ikx/All.BoxSize;
+ for(iky = 0;iky <= ikymax; iky++)
+ {
+ ky = 2.*M_PI*iky/All.BoxSize;
+ for(ikz = 0;ikz <= ikzmax; ikz++)
+ {
+ kz = 2.*M_PI*ikz/All.BoxSize;
+ k = sqrt(kx*kx+ky*ky+kz*kz);
+ if(k>=All.StKmin && k<=All.StKmax)
+ {
+#if NUMDIMS ==1
+ StNModes+=1;
+#endif
+#if NUMDIMS == 2
+
+ StNModes+=2;
+#endif
+#if NUMDIMS == 3
+
+ StNModes+=4;
+
+#endif
+ }
+ }
+ }
+ }
+
+ if(ThisTask == 0)
+ {
+ printf("Using %d modes, %d %d %d\n",StNModes,ikxmax,ikymax,ikzmax);
+ }
+
+// StMode = (double*) mymalloc_movable(&StMode,"StModes", StNModes * 3 * sizeof(double));
+// StAka = (double*) mymalloc_movable(&StAka,"StAka", StNModes * 3 * sizeof(double));
+// StAkb = (double*) mymalloc_movable(&StAkb,"StAkb", StNModes * 3 * sizeof(double));
+// StAmpl = (double*) mymalloc_movable(&StAmpl,"StAmpl", StNModes * sizeof(double));
+// StOUPhases = (double*) mymalloc_movable(StOUPhases,"StOUPhases", StNModes * 6 * sizeof(double));
+
+ StMode = (double*) malloc(StNModes * 3 * sizeof(double));
+ StAka = (double*) malloc(StNModes * 3 * sizeof(double));
+ StAkb = (double*) malloc(StNModes * 3 * sizeof(double));
+ StAmpl = (double*) malloc(StNModes * sizeof(double));
+ StOUPhases = (double*) malloc(StNModes * 6 * sizeof(double));
+
+
+
+
+
+ StOUVar = sqrt(All.StEnergy/All.StDecay);
+ double kc = 0.5*(All.StKmin+All.StKmax);
+ double amin = 0.;
+
+#if NUMDIMS == 3
+ StSolWeightNorm = sqrt(3.0/3.0)*sqrt(3.0)*1.0/sqrt(1.0-2.0*All.StSolWeight+3.0*All.StSolWeight*All.StSolWeight);
+#endif
+#if NUMDIMS == 2
+ StSolWeightNorm = sqrt(3.0/2.0)*sqrt(3.0)*1.0/sqrt(1.0-2.0*All.StSolWeight+2.0*All.StSolWeight*All.StSolWeight);
+#endif
+#if NUMDIMS == 1
+ StSolWeightNorm = sqrt(3.0/1.0)*sqrt(3.0)*1.0/sqrt(1.0-2.0*All.StSolWeight+1.0*All.StSolWeight*All.StSolWeight);
+#endif
+
+ StNModes = 0;
+
+ for(ikx = 0;ikx <= ikxmax; ikx++)
+ {
+ kx = 2.*M_PI*ikx/All.BoxSize;
+
+ for(iky = 0;iky <= ikymax; iky++)
+ {
+ ky = 2.*M_PI*iky/All.BoxSize;
+
+ for(ikz = 0;ikz <= ikzmax; ikz++)
+ {
+ kz = 2.*M_PI*ikz/All.BoxSize;
+
+ k = sqrt(kx*kx+ky*ky+kz*kz);
+ if(k>=All.StKmin && k<=All.StKmax)
+ {
+ if(All.StSpectForm == 0)
+ {
+ ampl = 1.;
+ }
+ else if(All.StSpectForm == 1)
+ {
+ ampl = 4.0*(amin-1.0)/((All.StKmax-All.StKmin)*(All.StKmax-All.StKmin))*((k-kc)*(k-kc))+1.0;
+ }
+ else if(All.StSpectForm == 2)
+ {
+ ampl = pow(All.StKmin,5./3)/pow(k,5./3);
+ }
+ else if(All.StSpectForm == 3)
+ {
+ ampl = pow(All.StKmin,2.)/pow(k,2.);
+ }
+ else
+ {
+ //terminate("unkown spectral form");
+ endrun(564321);
+ }
+
+
+ StAmpl[StNModes+0] = ampl;
+ StMode[3*StNModes+0] = kx;
+ StMode[3*StNModes+1] = ky;
+ StMode[3*StNModes+2] = kz;
+ if(ThisTask==0)
+ {
+ printf("Mode: %d, ikx=%d, iky=%d, ikz=%d, kx=%f, ky=%f, kz=%f, ampl=%f\n",StNModes,ikx,iky,ikz,kx,ky,kz,ampl);
+
+ }
+ StNModes++;
+
+
+#if NUMDIMS > 1
+ StAmpl[StNModes+0] = ampl;
+ StMode[3*StNModes+0] = kx;
+ StMode[3*StNModes+1] = -ky;
+ StMode[3*StNModes+2] = kz;
+ if(ThisTask==0)
+ {
+ printf("Mode: %d, ikx=%d, iky=%d, ikz=%d, kx=%f, ky=%f, kz=%f, ampl=%f\n",StNModes,ikx,-iky,ikz,kx,-ky,kz,ampl);
+
+ }
+ StNModes++;
+
+#if NUMDIMS > 2
+ StAmpl[StNModes+0] = ampl;
+ StMode[3*StNModes+0] = kx;
+ StMode[3*StNModes+1] = ky;
+ StMode[3*StNModes+2] = -kz;
+ if(ThisTask==0)
+ {
+ printf("Mode: %d, ikx=%d, iky=%d, ikz=%d, kx=%f, ky=%f, kz=%f, ampl=%f\n",StNModes,ikx,iky,-ikz,kx,ky,-kz,ampl);
+
+ }
+ StNModes++;
+
+ StAmpl[StNModes+0] = ampl;
+ StMode[3*StNModes+0] = kx;
+ StMode[3*StNModes+1] = -ky;
+ StMode[3*StNModes+2] = -kz;
+ if(ThisTask==0)
+ {
+ printf("Mode: %d, ikx=%d, iky=%d, ikz=%d, kx=%f, ky=%f, kz=%f, ampl=%f\n",StNModes,ikx,-iky,-ikz,kx,-ky,-kz,ampl);
+
+ }
+ StNModes++;
+#endif
+#endif
+ }
+ }
+ }
+ }
+
+ StTPrev = -1;
+
+ /* StEnergyDeacc = 0;
+ StEnergyAcc = 0;
+ StLastStatTime = All.TimeBegin - All.TimeBetStatistics;*/
+
+ StRng = gsl_rng_alloc(gsl_rng_ranlxd1);
+ gsl_rng_set(StRng, All.StSeed);
+
+ st_init_ouseq();
+ st_calc_phases();
+
+ if (ThisTask==0)
+ printf("calling set_turb_ampl in init_turb\n");
+ set_turb_ampl();
+
+ StTPrev = All.Ti_Current;
+
+
+}
+
+void
+st_init_ouseq(void)
+{
+ int i;
+
+ for(i = 0;i<6*StNModes;i++)
+ {
+ StOUPhases[i] = st_grn()*StOUVar;
+ }
+}
+
+void
+st_update_ouseq(void)
+{
+ int i;
+ double damping = exp( -All.StDtFreq/All.StDecay);
+
+ for(i = 0;i<6*StNModes;i++)
+ {
+ StOUPhases[i] = StOUPhases[i] * damping + StOUVar * sqrt(1.-damping*damping)*st_grn();
+ }
+}
+
+double
+st_grn(void)
+{
+ double r0 = gsl_rng_uniform(StRng);
+ double r1 = gsl_rng_uniform(StRng);
+
+ return sqrt(2. * log(1. / r0) ) * cos(2. * M_PI * r1);
+}
+
+
+
+void
+st_calc_phases(void)
+{
+ int i,j;
+ for(i = 0; i < StNModes;i++)
+ {
+ double ka = 0.;
+ double kb = 0.;
+ double kk = 0.;
+
+ int dim = NUMDIMS;
+
+ for(j = 0; j<dim;j++)
+ {
+ kk += StMode[3*i+j]*StMode[3*i+j];
+ ka += StMode[3*i+j]*StOUPhases[6*i+2*j+1];
+ kb += StMode[3*i+j]*StOUPhases[6*i+2*j+0];
+ }
+ for(j = 0; j<dim;j++)
+ {
+ double diva = StMode[3*i+j]*ka/kk;
+ double divb = StMode[3*i+j]*kb/kk;
+ double curla = StOUPhases[6*i+2*j+0] - divb;
+ double curlb = StOUPhases[6*i+2*j+1] - diva;
+
+ StAka[3*i+j] = All.StSolWeight*curla+(1.-All.StSolWeight)*divb;
+ StAkb[3*i+j] = All.StSolWeight*curlb+(1.-All.StSolWeight)*diva;
+ }
+ }
+}
+void set_turb_ampl(void)
+{
+ int i;
+
+ double delta = (All.Ti_Current - StTPrev) * All.Timebase_interval;
+ if(delta >= All.StDtFreq)
+ {
+
+ st_update_ouseq();
+ st_calc_phases();
+
+ StTPrev = StTPrev + All.StDtFreq/All.Timebase_interval;
+
+
+
+ if(ThisTask == 0)
+ {
+ printf("Updated turbulent stirring field at time %f.\n", StTPrev * All.Timebase_interval);
+ }
+ }
+
+
+}
+
+void add_turb_accel()
+{
+ int i, j, m;
+ double acc[3];// dt_kick;
+
+
+ set_turb_ampl();
+
+ double volume = 0;
+
+
+
+ //for(i = FirstActiveParticle; i >= 0; i = NextActiveParticle[i])
+
+
+ for(i = 0; i < N_gas; i++)
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+ if(P[i].Type == 0)
+ {
+ double fx = 0;
+ double fy = 0;
+ double fz = 0;
+
+ for(m = 0;m<StNModes;m++) //calc force
+ {
+ double kxx = StMode[3*m+0]*P[i].Pos[0];
+ double kyy = StMode[3*m+1]*P[i].Pos[1];
+ double kzz = StMode[3*m+2]*P[i].Pos[2];
+ double kdotx = kxx+kyy+kzz;
+ double ampl = StAmpl[m];
+
+ double realt = cos(kdotx);
+ double imagt = sin(kdotx);
+
+ fx += ampl*(StAka[3*m+0]*realt - StAkb[3*m+0]*imagt);
+ fy += ampl*(StAka[3*m+1]*realt - StAkb[3*m+1]*imagt);
+ fz += ampl*(StAka[3*m+2]*realt - StAkb[3*m+2]*imagt);
+ }
+
+
+ fx *= 2.*All.StAmplFac*StSolWeightNorm;//*volume;
+ fy *= 2.*All.StAmplFac*StSolWeightNorm;//*volume;
+ fz *= 2.*All.StAmplFac*StSolWeightNorm;//*volume;
+
+ if(P[i].Mass > 0.)
+ {
+ //FIXME correct for mean force
+ acc[0] = fx;///P[i].Mass;
+ acc[1] = fy;///P[i].Mass;
+#ifndef TWODIMS
+ acc[2] = fz;///P[i].Mass;
+#else
+ acc[2] = 0;
+#endif
+
+ for(j = 0; j < 3; j++)
+ {
+ SphP[i].TurbAccel[j] = acc[j];
+ }
+ }
+ }
+ }
+
+ if(ThisTask == 0)
+ {
+ printf("Finished turbulent accel computation.\n");
+ }
+
+}
+
+
+
+// void do_turb_driving_step_first_half(void)
+// {
+// CPU_Step[CPU_MISC] += measure_time();
+// int i, j;
+// integertime ti_step, tstart, tend;
+// double dvel[3], dt_gravkick, atime;
+//
+//
+// add_turb_accel();
+//
+//
+// if(All.ComovingIntegrationOn)
+// atime = All.Time;
+// else
+// atime = 1.0;
+//
+//
+// for(i = FirstActiveParticle; i >= 0; i = NextActiveParticle[i])
+// {
+// ti_step = P[i].TimeBin ? (((integertime) 1) << P[i].TimeBin) : 0;
+//
+// tstart = P[i].Ti_begstep; /* beginning of step */
+// tend = P[i].Ti_begstep + ti_step / 2; /* midpoint of step */
+//
+// if(All.ComovingIntegrationOn)
+// dt_gravkick = get_gravkick_factor(tstart, tend);
+// else
+// dt_gravkick = (tend - tstart) * All.Timebase_interval;
+//
+// if(P[i].Type == 0)
+// {
+//
+//
+// for(j = 0; j < 3; j++)
+// {
+// dvel[j] = SphP[i].TurbAccel[j] * dt_gravkick;
+// P[i].Vel[j] += dvel[j];
+// P[i].dp[j] += P[i].Mass * dvel[j];
+// }
+//
+//
+// }
+// }
+//
+//
+// CPU_Step[CPU_DRIFT] += measure_time();
+// }
+//
+//
+// void do_turb_driving_step_second_half(void)
+// {
+// CPU_Step[CPU_MISC] += measure_time();
+// int i, j;
+// integertime ti_step, tstart, tend;
+// double dvel[3], dt_gravkick, atime;
+//
+// if(All.ComovingIntegrationOn)
+// atime = All.Time;
+// else
+// atime = 1.0;
+//
+//
+// for(i = FirstActiveParticle; i >= 0; i = NextActiveParticle[i])
+// {
+// ti_step = P[i].TimeBin ? (((integertime) 1) << P[i].TimeBin) : 0;
+//
+// tstart = P[i].Ti_begstep + ti_step / 2; /* midpoint of step */
+// tend = P[i].Ti_begstep + ti_step; /* end of step */
+//
+// if(All.ComovingIntegrationOn)
+// dt_gravkick = get_gravkick_factor(tstart, tend);
+// else
+// dt_gravkick = (tend - tstart) * All.Timebase_interval;
+//
+// if(P[i].Type == 0)
+// {
+//
+// for(j = 0; j < 3; j++)
+// {
+// dvel[j] = SphP[i].TurbAccel[j] * dt_gravkick;
+// P[i].Vel[j] += dvel[j];
+// P[i].dp[j] += P[i].Mass * dvel[j];
+//
+// SphP[i].VelPred[j] = P[i].Vel[j];
+// }
+//
+//
+// }
+// }
+//
+//
+// CPU_Step[CPU_DRIFT] += measure_time();
+// }
+
+
+
+#endif
diff --git a/clusters/user/GEAR/src/accel.c b/clusters/user/GEAR/src/accel.c
new file mode 100644
index 0000000..5d93e67
--- /dev/null
+++ b/clusters/user/GEAR/src/accel.c
@@ -0,0 +1,126 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+/*! \file accel.c
+ * \brief driver routine to carry out force computation
+ */
+
+
+/*! This routine computes the accelerations for all active particles.
+ * First, the long-range PM force is computed if the TreePM algorithm is
+ * used and a "big" PM step is done. Next, the gravitational tree forces
+ * are computed. This also constructs the tree, if needed.
+ *
+ * If gas particles are present, the density-loop for active SPH particles
+ * is carried out. This includes an iteration on the correct number of
+ * neighbours. Finally, the hydrodynamical forces are added.
+ */
+void compute_accelerations(int mode)
+{
+ double tstart, tend;
+
+#ifdef DETAILED_CPU
+ double t0,t1;
+ t0 = second();
+#endif
+
+
+
+
+ if(ThisTask == 0)
+ {
+ printf("Start force computation...\n");
+ fflush(stdout);
+ }
+
+#ifdef PMGRID
+ if(All.PM_Ti_endstep == All.Ti_Current)
+ {
+ tstart = second();
+ long_range_force();
+ tend = second();
+ All.CPU_PM += timediff(tstart, tend);
+ }
+#endif
+
+ tstart = second(); /* measure the time for the full force computation */
+
+ gravity_tree(); /* computes gravity accel. */
+
+ if(All.TypeOfOpeningCriterion == 1 && All.Ti_Current == 0)
+ gravity_tree(); /* For the first timestep, we redo it
+ * to allow usage of relative opening
+ * criterion for consistent accuracy.
+ */
+ tend = second();
+ All.CPU_Gravity += timediff(tstart, tend);
+
+#ifdef FORCETEST
+ gravity_forcetest();
+#endif
+
+
+
+ if(All.TotN_gas > 0)
+ {
+
+ if(ThisTask == 0)
+ {
+ printf("Start density computation...\n");
+ fflush(stdout);
+ }
+
+#ifndef NO_DENSITY_FOR_GAS
+ tstart = second();
+ density(0); /* computes density, and pressure */
+ tend = second();
+ All.CPU_Hydro += timediff(tstart, tend);
+
+
+ tstart = second();
+ force_update_hmax(); /* tell the tree nodes the new SPH smoothing length such that they are guaranteed to hold the correct max(Hsml) */
+ tend = second();
+ All.CPU_Predict += timediff(tstart, tend);
+#endif
+
+
+#ifndef NO_HYDRO_FOR_GAS
+
+ if(ThisTask == 0)
+ {
+ printf("Start hydro-force computation...\n");
+ fflush(stdout);
+ }
+
+ tstart = second();
+ hydro_force(); /* adds hydrodynamical accelerations and computes viscous entropy injection */
+ tend = second();
+ All.CPU_Hydro += timediff(tstart, tend);
+
+#endif
+ }
+
+#ifdef AB_TURB
+ add_turb_accel();
+#endif
+
+
+ if(ThisTask == 0)
+ {
+ printf("force computation done.\n");
+ fflush(stdout);
+ }
+
+#ifdef DETAILED_CPU
+ t1 = second();
+ All.CPU_Accel += timediff(t0, t1);
+#endif
+
+
+}
diff --git a/clusters/user/GEAR/src/agn_feedback.c b/clusters/user/GEAR/src/agn_feedback.c
new file mode 100644
index 0000000..4031926
--- /dev/null
+++ b/clusters/user/GEAR/src/agn_feedback.c
@@ -0,0 +1,214 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_spline.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+#ifdef AGN_ACCRETION
+
+
+/*! \file bubble.c
+ * \brief Init bubble
+ *
+*/
+
+
+/*! compute bubble
+ *
+ */
+void compute_agn_accretion()
+{
+ int i,k;
+ double AccretionRadius2;
+ double Ma[7],Ma_sum[7];
+ double r2,r;
+#ifdef AGN_USE_ANGULAR_MOMENTUM
+ double Lvec[3],Lvec_sum[3];
+ double theta,phi;
+#endif
+
+ /*double a3inv=1.;*/ /* !!!!!!!!!!!! */
+
+
+
+ if((All.Time - All.TimeLastAccretion) >= All.TimeBetAccretion || All.NumCurrentTiStep==0)
+ {
+
+ All.TimeLastAccretion += All.TimeBetAccretion;
+
+ if(ThisTask == 0)
+ printf("computing accretion\n");
+
+
+ AccretionRadius2 = All.AccretionRadius*All.AccretionRadius;
+ for (k = 0; k < 7; k++)
+ {
+ Ma[k]=0.;
+ Ma_sum[k]=0.;
+ }
+
+#ifdef AGN_USE_ANGULAR_MOMENTUM
+ Lvec[0] = Lvec[1] = Lvec[2] = 0;
+#endif
+ /*
+ loop over all particles
+ */
+
+
+ for(i = 0; i < NumPart; i++)
+ {
+
+ r2 = P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2];
+
+ if (r2<AccretionRadius2)
+ {
+
+#ifdef MULTIPHASE
+
+ if (P[i].Type==0)
+ {
+
+ switch (SphP[i].Phase)
+ {
+ case GAS_SPH:
+ Ma[0] += P[i].Mass;
+ break;
+
+ case GAS_STICKY:
+ case GAS_DARK:
+ Ma[6] += P[i].Mass;
+ break;
+ }
+
+ }
+ else
+ {
+ Ma[P[i].Type] += P[i].Mass;
+ }
+
+
+#else
+ Ma[P[i].Type] += P[i].Mass;
+#endif
+
+#ifdef AGN_USE_ANGULAR_MOMENTUM
+ Lvec[0] += P[i].Pos[1]*P[i].Vel[2] - P[i].Pos[2]*P[i].Vel[1];
+ Lvec[1] += P[i].Pos[2]*P[i].Vel[0] - P[i].Pos[0]*P[i].Vel[2];
+ Lvec[2] += P[i].Pos[0]*P[i].Vel[1] - P[i].Pos[1]*P[i].Vel[0];
+#endif
+ }
+
+ }
+
+
+ /* share results */
+ MPI_Allreduce(Ma, Ma_sum, 7, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+#ifdef AGN_USE_ANGULAR_MOMENTUM
+ MPI_Allreduce(&Lvec, &Lvec_sum, 3, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+#endif
+
+ /*
+ compute parameters for feedback
+
+ All.LastMTotInRa : total Mass in Ra at last feedback
+ All.MTotInRa : total Mass in Ra
+ All.dMTotInRa : diff between total Mass in Ra now and total Mass in Ra last feedback
+
+ All.C : speed of light
+
+ All.AGNFactor : factor efficiency
+ All.MinMTotInRa : minimum accumulated mass in Ra needed to generate a buble
+
+ */
+
+
+ /* store results Ma_sum[6]=sticky */
+ All.MTotInRa = Ma_sum[0]+Ma_sum[6]+Ma_sum[1]+Ma_sum[2]+Ma_sum[3]+Ma_sum[4];
+
+ if (All.NumCurrentTiStep==0)
+ {
+ All.LastMTotInRa = All.MTotInRa;
+ All.dMTotInRa = 0;
+ }
+ else
+ {
+ All.dMTotInRa = All.MTotInRa - All.LastMTotInRa;
+ }
+
+ /*
+ if(ThisTask == 0)
+ printf("--> time=%g dMTotInRa=%g MTotInRa=%g LastMTotInRa=%g MinMTotInRa=%g AGNFactor=%g\n",All.Time,All.dMTotInRa,All.MTotInRa,All.LastMTotInRa,All.MinMTotInRa,All.AGNFactor);
+ */
+
+#ifdef AGN_FEEDBACK
+
+ /* check if it is time for a bubble */
+ if (All.dMTotInRa > All.MinMTotInRa)
+ {
+
+ /* compute jet energy */
+ All.BubblesE[All.BubblesIndex] = All.AGNFactor * All.dMTotInRa * All.LightSpeed* All.LightSpeed;
+ All.LastMTotInRa = All.MTotInRa;
+
+
+#ifdef AGN_USE_ANGULAR_MOMENTUM
+ /* compute jet direction */
+ r = sqrt( Lvec_sum[0]*Lvec_sum[0] + Lvec_sum[1]*Lvec_sum[1] + Lvec_sum[2]*Lvec_sum[2] );
+ theta = acos(Lvec_sum[2]/r);
+
+ r = sqrt( Lvec_sum[0]*Lvec_sum[0] + Lvec_sum[1]*Lvec_sum[1] );
+ phi = acos(Lvec_sum[0]/r);
+
+ All.BubblesA[All.BubblesIndex] = theta;
+ All.BubblesB[All.BubblesIndex] = phi;
+#endif
+ /* set time for the bubbles */
+ All.BubblesTime[All.BubblesIndex]= 0.;
+
+ }
+
+#endif
+
+
+ /* write output */
+ if(ThisTask == 0)
+ {
+
+#ifdef MULTIPHASE
+ fprintf(FdAccretion, "Step: %d, Time: %g, M1a: %g, M1b: %g, M2: %g, M3: %g, M4: %g, M5: %g, M6: %g\n", All.NumCurrentTiStep, All.Time,
+ Ma_sum[0],Ma_sum[6],Ma_sum[1],Ma_sum[2],Ma_sum[3],Ma_sum[4],Ma_sum[5]);
+#else
+ fprintf(FdAccretion, "Step: %d, Time: %g, M1: %g, M2: %g, M3: %g, M4: %g, M5: %g, M6: %g\n", All.NumCurrentTiStep, All.Time,
+ Ma_sum[0],Ma_sum[1],Ma_sum[2],Ma_sum[3],Ma_sum[4],Ma_sum[5]);
+#endif
+ fflush(FdAccretion);
+ }
+
+
+
+ }
+
+}
+
+
+
+
+
+
+
+
+
+
+#endif
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/agn_heating.c b/clusters/user/GEAR/src/agn_heating.c
new file mode 100644
index 0000000..1514508
--- /dev/null
+++ b/clusters/user/GEAR/src/agn_heating.c
@@ -0,0 +1,191 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_spline.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+#ifdef AGN_HEATING
+
+
+/*! \file agn_heating.c
+ * \brief Compute gas heating due to agn
+ *
+*/
+
+static double hubble_a, a3inv;
+
+
+
+void agn_heating()
+ {
+
+
+ int i;
+ double SpecPower;
+ double r,fm,fm_sum,pn,pn_sum;
+
+
+ if(All.ComovingIntegrationOn)
+ {
+
+ hubble_a = All.Omega0 / (All.Time * All.Time * All.Time)
+ + (1 - All.Omega0 - All.OmegaLambda) / (All.Time * All.Time) + All.OmegaLambda;
+
+ hubble_a = All.Hubble * sqrt(hubble_a);
+
+ a3inv = 1 / (All.Time * All.Time * All.Time);
+ }
+ else
+ a3inv = hubble_a = 1;
+
+
+ /* here, we want to inject a power P */
+
+ /************************************/
+ /* first loop : determine SpecPower */ /* here, we should take into account non active part */
+ /************************************/
+
+ fm = 0;
+ pn = 0;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+
+ if(P[i].Type == 0) /* gas */
+ {
+ r = sqrt( P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2] );
+
+ if (r < All.AGNHeatingRmax)
+ fm += HeatingRadialDependency(r)*P[i].Mass;
+
+ }
+ }
+ else
+ {
+ if(P[i].Type == 0) /* gas */
+ {
+ pn += -SphP[i].DtEgySpecAGNHeat*P[i].Mass; /* power of non active particles */
+ }
+ }
+
+ }
+
+
+
+ /* share results */
+ MPI_Allreduce(&fm, &fm_sum, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(&pn, &pn_sum, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+
+#ifdef USE_BONDI_POWER
+ All.AGNHeatingPower = All.BondiPower;
+#endif
+
+ SpecPower = (All.AGNHeatingPower-pn_sum)/fm_sum ;
+
+
+ /***************/
+ /* second loop */
+ /***************/
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+ if(P[i].Type == 0) /* gas */
+ {
+
+ r = sqrt( P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2] );
+
+ if (r < All.AGNHeatingRmax)
+ {
+
+ /* first reset dtentropy */
+ SphP[i].DtEntropyAGNHeat = 0;
+
+ /* first, we simply stop the radiative cooling */
+ //SphP[i].DtEntropyAGNHeat = -SphP[i].DtEntropyRadSph;
+ //SphP[i].DtEntropyRadSph = 0;
+
+ /* then, heat with agn*/
+ SphP[i].DtEntropyAGNHeat += GAMMA_MINUS1*pow(SphP[i].Density * a3inv,-GAMMA)*gamma_fct(SphP[i].Density *a3inv,r,SpecPower)/hubble_a;
+ SphP[i].DtEgySpecAGNHeat = - 1/GAMMA_MINUS1 * pow(SphP[i].Density * a3inv,GAMMA_MINUS1) * (SphP[i].DtEntropyAGNHeat);
+
+
+#ifdef MULTIPHASE
+ switch(SphP[i].Phase)
+ {
+ case GAS_SPH: /* here we increase the entropy */
+ SphP[i].DtEntropy += SphP[i].DtEntropyAGNHeat;
+ break;
+ case GAS_STICKY: /* here we increase the energy */
+ case GAS:DARK:
+ SphP[i].DtEntropy += -SphP[i].DtEgySpecAGNHeat;
+ break;
+ }
+#else
+ SphP[i].DtEntropy += SphP[i].DtEntropyAGNHeat;
+#endif
+
+ }
+ else /* no heating */
+ {
+ SphP[i].DtEntropyAGNHeat = 0; /* if the part is inactive ??? */
+ }
+
+ }
+ }
+ }
+
+
+ }
+
+
+/*! heating function
+ *
+ */
+double gamma_fct(FLOAT density,double r, double SpecPower)
+{
+ double g;
+ g = SpecPower * HeatingRadialDependency(r) * density;
+ return g;
+}
+
+
+
+
+/*! heating radial dependency
+ *
+ */
+double HeatingRadialDependency(double r)
+{
+ double f;
+ /* radius dependency */
+ //f = (1 - r/All.AGNHeatingRmax);
+ //f = f*f;
+
+ if (r<All.AGNHeatingRmax)
+ f = 1;
+ else
+ f = 0;
+
+ return f;
+}
+
+
+
+
+#endif
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/allocate.c b/clusters/user/GEAR/src/allocate.c
new file mode 100644
index 0000000..e207f22
--- /dev/null
+++ b/clusters/user/GEAR/src/allocate.c
@@ -0,0 +1,218 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+/*! \file allocate.c
+ * \brief routines for allocating particle and tree storage
+ */
+
+/*! Allocates a number of small buffers and arrays, the largest one being
+ * the communication buffer. The communication buffer itself is mapped
+ * onto various tables used in the different parts of the force
+ * algorithms. We further allocate space for the top-level tree nodes, and
+ * auxiliary arrays for the domain decomposition algorithm.
+ */
+void allocate_commbuffers(void)
+{
+ size_t bytes;
+
+ Exportflag = malloc(NTask * sizeof(char));
+ DomainStartList = malloc(NTask * sizeof(int));
+ DomainEndList = malloc(NTask * sizeof(int));
+
+ TopNodes = malloc(MAXTOPNODES * sizeof(struct topnode_data));
+
+ DomainWork = malloc(MAXTOPNODES * sizeof(double));
+ DomainCount = malloc(MAXTOPNODES * sizeof(int));
+ DomainCountSph = malloc(MAXTOPNODES * sizeof(int));
+ DomainTask = malloc(MAXTOPNODES * sizeof(int));
+ DomainNodeIndex = malloc(MAXTOPNODES * sizeof(int));
+ DomainTreeNodeLen = malloc(MAXTOPNODES * sizeof(FLOAT));
+ DomainHmax = malloc(MAXTOPNODES * sizeof(FLOAT));
+ DomainMoment = malloc(MAXTOPNODES * sizeof(struct DomainNODE));
+
+ if(!(CommBuffer = malloc(bytes = All.BufferSize * 1024 * 1024)))
+ {
+ printf("failed to allocate memory for `CommBuffer' (%g MB).\n", bytes / (1024.0 * 1024.0));
+ endrun(2);
+ }
+
+ All.BunchSizeForce =
+ (All.BufferSize * 1024 * 1024) / (sizeof(struct gravdata_index) + 2 * sizeof(struct gravdata_in));
+
+ if(All.BunchSizeForce & 1)
+ All.BunchSizeForce -= 1; /* make sure that All.BunchSizeForce is an even number
+ --> 8-byte alignment for 64bit processors */
+
+ GravDataIndexTable = (struct gravdata_index *) CommBuffer;
+ GravDataIn = (struct gravdata_in *) (GravDataIndexTable + All.BunchSizeForce);
+ GravDataGet = GravDataIn + All.BunchSizeForce;
+ GravDataOut = GravDataIn; /* this will overwrite the GravDataIn-Table */
+ GravDataResult = GravDataGet; /* this will overwrite the GravDataGet-Table */
+
+
+ All.BunchSizeDensity =
+ (All.BufferSize * 1024 * 1024) / (2 * sizeof(struct densdata_in) + 2 * sizeof(struct densdata_out));
+
+ DensDataIn = (struct densdata_in *) CommBuffer;
+ DensDataGet = DensDataIn + All.BunchSizeDensity;
+ DensDataResult = (struct densdata_out *) (DensDataGet + All.BunchSizeDensity);
+ DensDataPartialResult = DensDataResult + All.BunchSizeDensity;
+
+ All.BunchSizeHydro =
+ (All.BufferSize * 1024 * 1024) / (2 * sizeof(struct hydrodata_in) + 2 * sizeof(struct hydrodata_out));
+
+ HydroDataIn = (struct hydrodata_in *) CommBuffer;
+ HydroDataGet = HydroDataIn + All.BunchSizeHydro;
+ HydroDataResult = (struct hydrodata_out *) (HydroDataGet + All.BunchSizeHydro);
+ HydroDataPartialResult = HydroDataResult + All.BunchSizeHydro;
+
+#ifdef MULTIPHASE
+ All.BunchSizeSticky =
+ (All.BufferSize * 1024 * 1024) / (2 * sizeof(struct stickydata_in) + 2 * sizeof(struct stickydata_out));
+
+ StickyDataIn = (struct stickydata_in *) CommBuffer;
+ StickyDataGet = StickyDataIn + All.BunchSizeSticky;
+ StickyDataResult = (struct stickydata_out *) (StickyDataGet + All.BunchSizeSticky);
+ StickyDataPartialResult = StickyDataResult + All.BunchSizeSticky;
+
+#endif
+
+#ifdef CHIMIE
+ All.BunchSizeChimie =
+ (All.BufferSize * 1024 * 1024) / (2 * sizeof(struct chimiedata_in) + 2 * sizeof(struct chimiedata_out));
+
+ ChimieDataIn = (struct chimiedata_in *) CommBuffer;
+ ChimieDataGet = ChimieDataIn + All.BunchSizeChimie;
+ ChimieDataResult = (struct chimiedata_out *) (ChimieDataGet + All.BunchSizeChimie);
+ ChimieDataPartialResult = ChimieDataResult + All.BunchSizeChimie;
+
+ All.BunchSizeStarsDensity =
+ (All.BufferSize * 1024 * 1024) / (2 * sizeof(struct starsdensdata_in) + 2 * sizeof(struct starsdensdata_out));
+
+ StarsDensDataIn = (struct starsdensdata_in *) CommBuffer;
+ StarsDensDataGet = StarsDensDataIn + All.BunchSizeStarsDensity;
+ StarsDensDataResult = (struct starsdensdata_out *) (StarsDensDataGet + All.BunchSizeStarsDensity);
+ StarsDensDataPartialResult = StarsDensDataResult + All.BunchSizeStarsDensity;
+
+
+#endif
+
+
+
+#ifdef STELLAR_PROP
+ All.BunchSizeDomain =
+ (All.BufferSize * 1024 * 1024) / (sizeof(struct particle_data) + sizeof(struct sph_particle_data) +
+ sizeof(struct st_particle_data) + sizeof(peanokey));
+#else
+ All.BunchSizeDomain =
+ (All.BufferSize * 1024 * 1024) / (sizeof(struct particle_data) + sizeof(struct sph_particle_data) +
+ sizeof(peanokey));
+#endif
+
+ if(All.BunchSizeDomain & 1)
+ All.BunchSizeDomain -= 1; /* make sure that All.BunchSizeDomain is even
+ --> 8-byte alignment of DomainKeyBuf for 64bit processors */
+
+ DomainPartBuf = (struct particle_data *) CommBuffer;
+ DomainSphBuf = (struct sph_particle_data *) (DomainPartBuf + All.BunchSizeDomain);
+ DomainKeyBuf = (peanokey *) (DomainSphBuf + All.BunchSizeDomain);
+#ifdef STELLAR_PROP
+ DomainStBuf = (struct st_particle_data *) (DomainKeyBuf + All.BunchSizeDomain);
+#endif
+
+ if(ThisTask == 0)
+ {
+ printf("\nAllocated %d MByte communication buffer per processor.\n\n", All.BufferSize);
+ printf("Communication buffer has room for %d particles in gravity computation\n", All.BunchSizeForce);
+ printf("Communication buffer has room for %d particles in density computation\n", All.BunchSizeDensity);
+ printf("Communication buffer has room for %d particles in hydro computation\n", All.BunchSizeHydro);
+ printf("Communication buffer has room for %d particles in domain decomposition\n", All.BunchSizeDomain);
+ printf("\n");
+ }
+
+}
+
+
+
+/*! This routine allocates memory for particle storage, both the
+ * collisionless and the SPH particles.
+ */
+void allocate_memory(void)
+{
+ size_t bytes;
+ double bytes_tot = 0;
+
+ if(All.MaxPart > 0)
+ {
+ if(!(P = malloc(bytes = All.MaxPart * sizeof(struct particle_data))))
+ {
+ printf("failed to allocate memory for `P' (%g MB).\n", bytes / (1024.0 * 1024.0));
+ endrun(1);
+ }
+ bytes_tot += bytes;
+
+ if(ThisTask == 0)
+ printf("\nAllocated %g MByte for particle storage. %d\n\n", bytes_tot / (1024.0 * 1024.0), sizeof(struct particle_data));
+ }
+
+ if(All.MaxPartSph > 0)
+ {
+ bytes_tot = 0;
+
+ if(!(SphP = malloc(bytes = All.MaxPartSph * sizeof(struct sph_particle_data))))
+ {
+ printf("failed to allocate memory for `SphP' (%g MB) %d.\n", bytes / (1024.0 * 1024.0), sizeof(struct sph_particle_data));
+ endrun(1);
+ }
+ bytes_tot += bytes;
+
+ if(ThisTask == 0)
+ printf("Allocated %g MByte for storage of SPH data. %d\n", bytes_tot / (1024.0 * 1024.0), sizeof(struct sph_particle_data));
+ }
+
+#ifdef STELLAR_PROP
+ if(All.MaxPartStars > 0)
+ {
+ bytes_tot = 0;
+
+ if(!(StP = malloc(bytes = All.MaxPartStars * sizeof(struct st_particle_data))))
+ {
+ printf("failed to allocate memory for `StP' (%g MB) %d.\n", bytes / (1024.0 * 1024.0),sizeof(struct st_particle_data));
+ endrun(1);
+ }
+ bytes_tot += bytes;
+
+ if(ThisTask == 0)
+ printf("\nAllocated %g MByte for star properties storage. %d\n\n", bytes_tot / (1024.0 * 1024.0), sizeof(struct st_particle_data));
+ }
+#endif
+
+}
+
+
+
+
+/*! This routine frees the memory for the particle storage. Note: We don't
+ * actually bother to call it in the code... When the program terminats,
+ * the memory will be automatically freed by the operating system.
+ */
+void free_memory(void)
+{
+
+#ifdef STELLAR_PROP
+ if(All.MaxPartStars > 0)
+ free(StP);
+#endif
+
+ if(All.MaxPartSph > 0)
+ free(SphP);
+
+ if(All.MaxPart > 0)
+ free(P);
+}
+
diff --git a/clusters/user/GEAR/src/allvars.c b/clusters/user/GEAR/src/allvars.c
new file mode 100644
index 0000000..3487d62
--- /dev/null
+++ b/clusters/user/GEAR/src/allvars.c
@@ -0,0 +1,333 @@
+/*! \file allvars.c
+ * \brief provides instances of all global variables.
+ */
+
+#include <stdio.h>
+#include <gsl/gsl_rng.h>
+#include "tags.h"
+#include "allvars.h"
+
+int SetMinTimeStepForActives=0;
+
+int ThisTask; /*!< the rank of the local processor */
+int NTask; /*!< number of processors */
+int PTask; /*!< smallest integer such that NTask <= 2^PTask */
+
+int NumPart; /*!< number of particles on the LOCAL processor */
+int N_gas; /*!< number of gas particles on the LOCAL processor */
+#if defined(SFR) || defined(STELLAR_PROP)
+int N_stars; /*!< number of stars particle on the LOCAL processor */
+#endif
+#ifdef MULTIPHASE
+int N_sph;
+int N_sticky;
+int N_stickyflaged;
+int N_dark;
+int NumColPotLocal; /*!< local number of potentially collisional particles */
+int NumColPot; /*!< total number of potentially collisional particles */
+int NumColLocal; /*!< local number of collisions */
+int NumCol; /*!< total number of collisions */
+int NumNoColLocal;
+int NumNoCol;
+#endif
+long long Ntype[6]; /*!< total number of particles of each type */
+int NtypeLocal[6]; /*!< local number of particles of each type */
+
+int NumForceUpdate; /*!< number of active particles on local processor in current timestep */
+int NumSphUpdate; /*!< number of active SPH particles on local processor in current timestep */
+#ifdef CHIMIE
+int NumStUpdate;
+#endif
+
+double CPUThisRun; /*!< Sums the CPU time for the process (current submission only) */
+
+#ifdef SPLIT_DOMAIN_USING_TIME
+double CPU_Gravity;
+#endif
+
+int RestartFlag; /*!< taken from command line used to start code. 0 is normal start-up from
+ initial conditions, 1 is resuming a run from a set of restart files, while 2
+ marks a restart from a snapshot file. */
+
+char *Exportflag; /*!< Buffer used for flagging whether a particle needs to be exported to another process */
+
+int *Ngblist; /*!< Buffer to hold indices of neighbours retrieved by the neighbour search routines */
+
+int TreeReconstructFlag; /*!< Signals that a new tree needs to be constructed */
+#ifdef SFR
+int RearrangeParticlesFlag;/*!< Signals that particles must be rearanged */
+#endif
+
+
+int Flag_FullStep; /*!< This flag signals that the current step involves all particles */
+
+
+gsl_rng *random_generator; /*!< the employed random number generator of the GSL library */
+
+double RndTable[RNDTABLE]; /*!< Hold a table with random numbers, refreshed every timestep */
+
+#ifdef SFR
+double StarFormationRndTable[RNDTABLE]; /*!< Hold a table with random numbers, refreshed every timestep */
+#endif
+
+#ifdef FEEDBACK_WIND
+double FeedbackWindRndTable[RNDTABLE]; /*!< Hold a table with random numbers, refreshed every timestep */
+#endif
+
+#ifdef CHIMIE
+double ChimieRndTable[RNDTABLE]; /*!< Hold a table with random numbers, refreshed every timestep */
+#endif
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+double ChimieKineticFeedbackRndTable[RNDTABLE]; /*!< Hold a table with random numbers, refreshed every timestep */
+#endif
+
+
+
+double DomainCorner[3]; /*!< gives the lower left corner of simulation volume */
+double DomainCenter[3]; /*!< gives the center of simulation volume */
+double DomainLen; /*!< gives the (maximum) side-length of simulation volume */
+double DomainFac; /*!< factor used for converting particle coordinates to a Peano-Hilbert mesh covering the simulation volume */
+int DomainMyStart; /*!< first domain mesh cell that resides on the local processor */
+int DomainMyLast; /*!< last domain mesh cell that resides on the local processor */
+int *DomainStartList; /*!< a table that lists the first domain mesh cell for all processors */
+int *DomainEndList; /*!< a table that lists the last domain mesh cell for all processors */
+double *DomainWork; /*!< a table that gives the total "work" due to the particles stored by each processor */
+int *DomainCount; /*!< a table that gives the total number of particles held by each processor */
+int *DomainCountSph; /*!< a table that gives the total number of SPH particles held by each processor */
+
+int *DomainTask; /*!< this table gives for each leaf of the top-level tree the processor it was assigned to */
+int *DomainNodeIndex; /*!< this table gives for each leaf of the top-level tree the corresponding node of the gravitational tree */
+FLOAT *DomainTreeNodeLen; /*!< this table gives for each leaf of the top-level tree the side-length of the corresponding node of the gravitational tree */
+FLOAT *DomainHmax; /*!< this table gives for each leaf of the top-level tree the maximum SPH smoothing length among the particles of the corresponding node of the gravitational tree */
+
+struct DomainNODE
+ *DomainMoment; /*!< this table stores for each node of the top-level tree corresponding node data from the gravitational tree */
+
+peanokey *DomainKeyBuf; /*!< this points to a buffer used during the exchange of particle data */
+
+peanokey *Key; /*!< a table used for storing Peano-Hilbert keys for particles */
+peanokey *KeySorted; /*!< holds a sorted table of Peano-Hilbert keys for all particles, used to construct top-level tree */
+
+
+int NTopnodes; /*!< total number of nodes in top-level tree */
+int NTopleaves; /*!< number of leaves in top-level tree. Each leaf can be assigned to a different processor */
+
+struct topnode_data
+ *TopNodes; /*!< points to the root node of the top-level tree */
+
+
+double TimeOfLastTreeConstruction; /*!< holds what it says, only used in connection with FORCETEST */
+
+
+
+
+/* variables for input/output, usually only used on process 0 */
+
+char ParameterFile[MAXLEN_FILENAME]; /*!< file name of parameterfile used for starting the simulation */
+
+FILE *FdInfo; /*!< file handle for info.txt log-file. */
+FILE *FdLog ; /*!< file handle for log.txt log-file. */
+FILE *FdEnergy; /*!< file handle for energy.txt log-file. */
+#ifdef SYSTEMSTATISTICS
+FILE *FdSystem;
+#endif
+FILE *FdTimings; /*!< file handle for timings.txt log-file. */
+FILE *FdCPU; /*!< file handle for cpu.txt log-file. */
+
+#ifdef FORCETEST
+FILE *FdForceTest; /*!< file handle for forcetest.txt log-file. */
+#endif
+
+#ifdef SFR
+FILE *FdSfr; /*!< file handle for sfr.txt log-file. */
+#endif
+
+#ifdef CHIMIE
+FILE *FdChimie; /*!< file handle for chimie log-file. */
+#endif
+
+#ifdef MULTIPHASE
+FILE *FdPhase; /*!< file handle for phase.txt log-file. */
+FILE *FdSticky; /*!< file handle for sticky.txt log-file. */
+#endif
+
+#ifdef AGN_ACCRETION
+FILE *FdAccretion; /*!< file handle for accretion.txt log-file. */
+#endif
+
+#ifdef BONDI_ACCRETION
+FILE *FdBondi; /*!< file handle for bondi.txt log-file. */
+#endif
+
+#ifdef BUBBLES
+FILE *FdBubble; /*!< file handle for bubble.txt log-file. */
+#endif
+
+double DriftTable[DRIFT_TABLE_LENGTH]; /*!< table for the cosmological drift factors */
+double GravKickTable[DRIFT_TABLE_LENGTH]; /*!< table for the cosmological kick factor for gravitational forces */
+double HydroKickTable[DRIFT_TABLE_LENGTH]; /*!< table for the cosmological kick factor for hydrodynmical forces */
+
+#ifdef COSMICTIME
+double CosmicTimeTable[COSMICTIME_TABLE_LENGTH]; /*!< table for the computation of cosmic time */
+#endif
+
+void *CommBuffer; /*!< points to communication buffer, which is used in the domain decomposition, the
+ parallel tree-force computation, the SPH routines, etc. */
+
+
+/*! This structure contains data which is the SAME for all tasks (mostly code parameters read from the
+ * parameter file). Holding this data in a structure is convenient for writing/reading the restart file, and
+ * it allows the introduction of new global variables in a simple way. The only thing to do is to introduce
+ * them into this structure.
+ */
+struct global_data_all_processes
+ All;
+
+
+
+/*! This structure holds all the information that is
+ * stored for each particle of the simulation.
+ */
+struct particle_data
+ *P, /*!< holds particle data on local processor */
+ *DomainPartBuf; /*!< buffer for particle data used in domain decomposition */
+
+
+/* the following struture holds data that is stored for each SPH particle in addition to the collisionless
+ * variables.
+ */
+struct sph_particle_data
+ *SphP, /*!< holds SPH particle data on local processor */
+ *DomainSphBuf; /*!< buffer for SPH particle data in domain decomposition */
+
+
+#ifdef STELLAR_PROP
+/* the following struture holds data that is stored for each SPH particle in addition to the collisionless
+ * variables.
+ */
+struct st_particle_data
+ *StP, /*!< holds ST particle data on local processor */
+ *DomainStBuf; /*!< buffer for ST particle data in domain decomposition */
+#endif
+
+
+/* Variables for Tree
+ */
+
+int MaxNodes; /*!< maximum allowed number of internal nodes */
+int Numnodestree; /*!< number of (internal) nodes in each tree */
+
+struct NODE
+ *Nodes_base, /*!< points to the actual memory allocted for the nodes */
+ *Nodes; /*!< this is a pointer used to access the nodes which is shifted such that Nodes[All.MaxPart]
+ gives the first allocated node */
+
+
+int *Nextnode; /*!< gives next node in tree walk */
+int *Father; /*!< gives parent node in tree */
+
+
+struct extNODE /*!< this structure holds additional tree-node information which is not needed in the actual gravity computation */
+ *Extnodes_base, /*!< points to the actual memory allocted for the extended node information */
+ *Extnodes; /*!< provides shifted access to extended node information, parallel to Nodes/Nodes_base */
+
+
+
+
+
+/*! Header for the standard file format.
+ */
+struct io_header
+ header; /*!< holds header for snapshot files */
+
+#ifdef CHIMIE_EXTRAHEADER
+/*! Header for the chimie part.
+ */
+struct io_chimie_extraheader
+ chimie_extraheader;
+#endif
+
+
+char Tab_IO_Labels[IO_NBLOCKS][4]; /*<! This table holds four-byte character tags used for fileformat 2 */
+
+
+
+/* global state of system, used for global statistics
+ */
+struct state_of_system
+ SysState; /*<! Structure for storing some global statistics about the simulation. */
+
+/*! This structure contains data related to the energy budget.
+ These values are different for each task. It need to be stored
+ in the restart flag.
+ */
+struct local_state_of_system
+ LocalSysState; /*<! Structure for storing some local statistics about the simulation. */
+
+
+
+/* Various structures for communication
+ */
+struct gravdata_in
+ *GravDataIn, /*!< holds particle data to be exported to other processors */
+ *GravDataGet, /*!< holds particle data imported from other processors */
+ *GravDataResult, /*!< holds the partial results computed for imported particles. Note: We use GravDataResult = GravDataGet, such that the result replaces the imported data */
+ *GravDataOut; /*!< holds partial results received from other processors. This will overwrite the GravDataIn array */
+
+struct gravdata_index
+ *GravDataIndexTable; /*!< the particles to be exported are grouped by task-number. This table allows the results to be disentangled again and to be assigned to the correct particle */
+
+
+
+struct densdata_in
+ *DensDataIn, /*!< holds particle data for SPH density computation to be exported to other processors */
+ *DensDataGet; /*!< holds imported particle data for SPH density computation */
+
+struct densdata_out
+ *DensDataResult, /*!< stores the locally computed SPH density results for imported particles */
+ *DensDataPartialResult; /*!< imported partial SPH density results from other processors */
+
+
+
+struct hydrodata_in
+ *HydroDataIn, /*!< holds particle data for SPH hydro-force computation to be exported to other processors */
+ *HydroDataGet; /*!< holds imported particle data for SPH hydro-force computation */
+
+struct hydrodata_out
+ *HydroDataResult, /*!< stores the locally computed SPH hydro results for imported particles */
+ *HydroDataPartialResult; /*!< imported partial SPH hydro-force results from other processors */
+
+
+#ifdef MULTIPHASE
+
+struct stickydata_in
+ *StickyDataIn,
+ *StickyDataGet;
+
+struct stickydata_out
+ *StickyDataResult,
+ *StickyDataPartialResult;
+
+struct Sticky_index *StickyIndex;
+#endif
+
+#ifdef CHIMIE
+struct chimiedata_in
+ *ChimieDataIn, /*!< holds particle data for Chimie computation to be exported to other processors */
+ *ChimieDataGet; /*!< holds imported particle data for Chimie computation */
+
+struct chimiedata_out
+ *ChimieDataResult, /*!< stores the locally computed Chimie results for imported particles */
+ *ChimieDataPartialResult; /*!< imported partial Chimie results from other processors */
+
+
+struct starsdensdata_in
+ *StarsDensDataIn, /*!< holds particle data for SPH density computation to be exported to other processors */
+ *StarsDensDataGet; /*!< holds imported particle data for SPH density computation */
+
+struct starsdensdata_out
+ *StarsDensDataResult, /*!< stores the locally computed SPH density results for imported particles */
+ *StarsDensDataPartialResult; /*!< imported partial SPH density results from other processors */
+
+#endif
diff --git a/clusters/user/GEAR/src/allvars.h b/clusters/user/GEAR/src/allvars.h
new file mode 100644
index 0000000..316b262
--- /dev/null
+++ b/clusters/user/GEAR/src/allvars.h
@@ -0,0 +1,1728 @@
+
+/*! \file allvars.h
+ * \brief declares global variables.
+ *
+ * This file declares all global variables. Further variables should be added here, and declared as
+ * 'extern'. The actual existence of these variables is provided by the file 'allvars.c'. To produce
+ * 'allvars.c' from 'allvars.h', do the following:
+ *
+ * - Erase all #define's, typedef's, and enum's
+ * - add #include "allvars.h", delete the #ifndef ALLVARS_H conditional
+ * - delete all keywords 'extern'
+ * - delete all struct definitions enclosed in {...}, e.g.
+ * "extern struct global_data_all_processes {....} All;"
+ * becomes "struct global_data_all_processes All;"
+ */
+
+#ifndef ALLVARS_H
+#define ALLVARS_H
+
+#include <stdio.h>
+#include <gsl/gsl_rng.h>
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_spline.h>
+#include <gsl/gsl_integration.h>
+#include "tags.h"
+
+#define GADGETVERSION "2.0" /*!< code version string */
+
+#define TIMEBASE (1<<28) /*!< The simulated timespan is mapped onto the integer interval [0,TIMESPAN],
+ * where TIMESPAN needs to be a power of 2. Note that (1<<28) corresponds to 2^29
+ */
+
+#define MAXTOPNODES 200000 /*!< Maximum number of nodes in the top-level tree used for domain decomposition */
+
+
+typedef long long peanokey; /*!< defines the variable type used for Peano-Hilbert keys */
+
+#define BITS_PER_DIMENSION 18 /*!< Bits per dimension available for Peano-Hilbert order.
+ Note: If peanokey is defined as type int, the allowed maximum is 10.
+ If 64-bit integers are used, the maximum is 21 */
+
+#define PEANOCELLS (((peanokey)1)<<(3*BITS_PER_DIMENSION)) /*!< The number of different Peano-Hilbert cells */
+
+
+#define RNDTABLE 3000 /*!< gives the length of a table with random numbers, refreshed at every timestep.
+ This is used to allow application of random numbers to a specific particle
+ in a way that is independent of the number of processors used. */
+#define MAX_REAL_NUMBER 1e37
+#define MIN_REAL_NUMBER 1e-37
+
+#define MAXLEN_FILENAME 100 /*!< Maximum number of characters for filenames (including the full path) */
+
+#ifdef ISOTHERM_EQS
+#define GAMMA (1.0) /*!< index for isothermal gas */
+#else
+#define GAMMA (5.0/3) /*!< adiabatic index of simulated gas */
+#endif
+
+#define GAMMA_MINUS1 (GAMMA-1)
+
+#define HYDROGEN_MASSFRAC 0.76 /*!< mass fraction of hydrogen, relevant only for radiative cooling */
+
+/* Some physical constants in cgs units */
+
+#define GRAVITY 6.672e-8 /*!< Gravitational constant (in cgs units) */
+#define SOLAR_MASS 1.989e33
+#define SOLAR_LUM 3.826e33
+#define RAD_CONST 7.565e-15
+#define AVOGADRO 6.0222e23
+#define BOLTZMANN 1.3806e-16
+#define GAS_CONST 8.31425e7
+#define C 2.9979e10
+#define PLANCK 6.6262e-27
+#define CM_PER_MPC 3.085678e24
+#define PROTONMASS 1.6726e-24
+#define ELECTRONMASS 9.10953e-28
+#define THOMPSON 6.65245e-25
+#define ELECTRONCHARGE 4.8032e-10
+#define HUBBLE 3.2407789e-18 /* in h/sec */
+#define YEAR_IN_SECOND 31536000.0 /* year in sec */
+#define FEH_SOLAR 0.00181 /* used only if cooling with metal is on and chimie is off */
+
+#define PI 3.1415926535897931
+#define TWOPI 6.2831853071795862
+
+/* Some conversion factors */
+
+#define SEC_PER_MEGAYEAR 3.155e13
+#define SEC_PER_YEAR 3.155e7
+
+#ifndef ASMTH
+#define ASMTH 1.25 /*!< ASMTH gives the scale of the short-range/long-range force split in units of FFT-mesh cells */
+#endif
+
+#ifndef RCUT
+#define RCUT 4.5 /*!< RCUT gives the maximum distance (in units of the scale used for the force split) out to
+ which short-range forces are evaluated in the short-range tree walk. */
+#endif
+
+#define MAX_NGB 20000 /*!< defines maximum length of neighbour list */
+
+#define MAXLEN_OUTPUTLIST 500 /*!< maxmimum number of entries in list of snapshot output times */
+
+#define DRIFT_TABLE_LENGTH 1000 /*!< length of the lookup table used to hold the drift and kick factors */
+
+#ifdef COSMICTIME
+#define COSMICTIME_TABLE_LENGTH 1000 /*!< length of the lookup table used for the cosmic time computation */
+#endif
+
+
+#define MAXITER 1000 /*!< maxmimum number of steps for SPH neighbour iteration */
+
+
+#ifdef DOUBLEPRECISION /*!< If defined, the variable type FLOAT is set to "double", otherwise to FLOAT */
+#define FLOAT double
+#else
+#define FLOAT float
+#endif
+
+
+#ifndef TWODIMS
+#define NUMDIMS 3 /*!< For 3D-normalized kernel */
+#define KERNEL_COEFF_1 2.546479089470 /*!< Coefficients for SPH spline kernel and its derivative */
+#define KERNEL_COEFF_2 15.278874536822
+#define KERNEL_COEFF_3 45.836623610466
+#define KERNEL_COEFF_4 30.557749073644
+#define KERNEL_COEFF_5 5.092958178941
+#define KERNEL_COEFF_6 (-15.278874536822)
+#define NORM_COEFF 4.188790204786 /*!< Coefficient for kernel normalization. Note: 4.0/3 * PI = 4.188790204786 */
+#else
+#define NUMDIMS 2 /*!< For 2D-normalized kernel */
+#define KERNEL_COEFF_1 (5.0/7*2.546479089470) /*!< Coefficients for SPH spline kernel and its derivative */
+#define KERNEL_COEFF_2 (5.0/7*15.278874536822)
+#define KERNEL_COEFF_3 (5.0/7*45.836623610466)
+#define KERNEL_COEFF_4 (5.0/7*30.557749073644)
+#define KERNEL_COEFF_5 (5.0/7*5.092958178941)
+#define KERNEL_COEFF_6 (5.0/7*(-15.278874536822))
+#define NORM_COEFF M_PI /*!< Coefficient for kernel normalization. */
+#endif
+
+
+#ifdef MULTIPHASE
+#define GAS_SPH 0
+#define GAS_STICKY 1
+#define GAS_DARK 2
+#endif
+
+#if defined(SFR) || defined(STELLAR_PROP)
+#define ST 1
+#endif
+
+
+
+#ifdef CHIMIE
+#define NELEMENTS 5
+#define MAXNELEMENTS 64
+#define FIRST_ELEMENT "Fe"
+#define FE 0
+#endif
+
+#ifdef COOLING
+#define COOLING_NMETALICITIES 9
+#define COOLING_NTEMPERATURES 171
+#endif
+
+#ifdef COMPUTE_VELOCITY_DISPERSION
+#define VELOCITY_DISPERSION_SIZE 3
+#endif
+
+extern int SetMinTimeStepForActives;
+
+extern int ThisTask; /*!< the rank of the local processor */
+extern int NTask; /*!< number of processors */
+extern int PTask; /*!< smallest integer such that NTask <= 2^PTask */
+
+extern int NumPart; /*!< number of particles on the LOCAL processor */
+extern int N_gas; /*!< number of gas particles on the LOCAL processor */
+#if defined(SFR) || defined(STELLAR_PROP)
+extern int N_stars; /*!< number of stars particle on the LOCAL processor */
+#endif
+#ifdef MULTIPHASE
+extern int N_sph;
+extern int N_sticky;
+extern int N_stickyflaged;
+extern int N_dark;
+extern int NumColPotLocal; /*!< local number of potentially collisional particles */
+extern int NumColPot; /*!< total number of potentially collisional particles */
+extern int NumColLocal; /*!< local number of collisions */
+extern int NumCol; /*!< total number of collisions */
+extern int NumNoColLocal;
+extern int NumNoCol;
+#endif
+extern long long Ntype[6]; /*!< total number of particles of each type */
+extern int NtypeLocal[6]; /*!< local number of particles of each type */
+
+extern int NumForceUpdate; /*!< number of active particles on local processor in current timestep */
+extern int NumSphUpdate; /*!< number of active SPH particles on local processor in current timestep */
+#ifdef CHIMIE
+extern int NumStUpdate;
+#endif
+
+extern double CPUThisRun; /*!< Sums the CPU time for the process (current submission only) */
+
+#ifdef SPLIT_DOMAIN_USING_TIME
+extern double CPU_Gravity;
+#endif
+
+extern int RestartFlag; /*!< taken from command line used to start code. 0 is normal start-up from
+ initial conditions, 1 is resuming a run from a set of restart files, while 2
+ marks a restart from a snapshot file. */
+
+extern char *Exportflag; /*!< Buffer used for flagging whether a particle needs to be exported to another process */
+
+extern int *Ngblist; /*!< Buffer to hold indices of neighbours retrieved by the neighbour search routines */
+
+extern int TreeReconstructFlag; /*!< Signals that a new tree needs to be constructed */
+#ifdef SFR
+extern int RearrangeParticlesFlag;/*!< Signals that particles must be rearanged */
+#endif
+
+extern int Flag_FullStep; /*!< This flag signals that the current step involves all particles */
+
+
+extern gsl_rng *random_generator; /*!< the employed random number generator of the GSL library */
+
+extern double RndTable[RNDTABLE]; /*!< Hold a table with random numbers, refreshed every timestep */
+
+#ifdef SFR
+extern double StarFormationRndTable[RNDTABLE]; /*!< Hold a table with random numbers, refreshed every timestep */
+#endif
+
+
+#ifdef FEEDBACK_WIND
+extern double FeedbackWindRndTable[RNDTABLE]; /*!< Hold a table with random numbers, refreshed every timestep */
+#endif
+
+#ifdef CHIMIE
+extern double ChimieRndTable[RNDTABLE]; /*!< Hold a table with random numbers, refreshed every timestep */
+#endif
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+extern double ChimieKineticFeedbackRndTable[RNDTABLE]; /*!< Hold a table with random numbers, refreshed every timestep */
+#endif
+
+
+extern double DomainCorner[3]; /*!< gives the lower left corner of simulation volume */
+extern double DomainCenter[3]; /*!< gives the center of simulation volume */
+extern double DomainLen; /*!< gives the (maximum) side-length of simulation volume */
+extern double DomainFac; /*!< factor used for converting particle coordinates to a Peano-Hilbert mesh covering the simulation volume */
+extern int DomainMyStart; /*!< first domain mesh cell that resides on the local processor */
+extern int DomainMyLast; /*!< last domain mesh cell that resides on the local processor */
+extern int *DomainStartList; /*!< a table that lists the first domain mesh cell for all processors */
+extern int *DomainEndList; /*!< a table that lists the last domain mesh cell for all processors */
+extern double *DomainWork; /*!< a table that gives the total "work" due to the particles stored by each processor */
+extern int *DomainCount; /*!< a table that gives the total number of particles held by each processor */
+extern int *DomainCountSph; /*!< a table that gives the total number of SPH particles held by each processor */
+
+extern int *DomainTask; /*!< this table gives for each leaf of the top-level tree the processor it was assigned to */
+extern int *DomainNodeIndex; /*!< this table gives for each leaf of the top-level tree the corresponding node of the gravitational tree */
+extern FLOAT *DomainTreeNodeLen; /*!< this table gives for each leaf of the top-level tree the side-length of the corresponding node of the gravitational tree */
+extern FLOAT *DomainHmax; /*!< this table gives for each leaf of the top-level tree the maximum SPH smoothing length among the particles of the corresponding node of the gravitational tree */
+
+extern struct DomainNODE
+{
+ FLOAT s[3]; /*!< center-of-mass coordinates */
+ FLOAT vs[3]; /*!< center-of-mass velocities */
+ FLOAT mass; /*!< mass of node */
+#ifdef STELLAR_FLUX
+ FLOAT starlum; /*!< star luminosity of node */
+#endif
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ int bitflags; /*!< this bit-field encodes the particle type with the largest softening among the particles of the nodes, and whether there are particles with different softening in the node */
+#else
+ FLOAT maxsoft; /*!< hold the maximum gravitational softening of particles in the
+ node if the ADAPTIVE_GRAVSOFT_FORGAS option is selected */
+#endif
+#endif
+}
+ *DomainMoment; /*!< this table stores for each node of the top-level tree corresponding node data from the gravitational tree */
+
+extern peanokey *DomainKeyBuf; /*!< this points to a buffer used during the exchange of particle data */
+
+extern peanokey *Key; /*!< a table used for storing Peano-Hilbert keys for particles */
+extern peanokey *KeySorted; /*!< holds a sorted table of Peano-Hilbert keys for all particles, used to construct top-level tree */
+
+
+extern int NTopnodes; /*!< total number of nodes in top-level tree */
+extern int NTopleaves; /*!< number of leaves in top-level tree. Each leaf can be assigned to a different processor */
+
+extern struct topnode_data
+{
+ int Daughter; /*!< index of first daughter cell (out of 8) of top-level node */
+ int Pstart; /*!< for the present top-level node, this gives the index of the first node in the concatenated list of topnodes collected from all processors */
+ int Blocks; /*!< for the present top-level node, this gives the number of corresponding nodes in the concatenated list of topnodes collected from all processors */
+ int Leaf; /*!< if the node is a leaf, this gives its number when all leaves are traversed in Peano-Hilbert order */
+ peanokey Size; /*!< number of Peano-Hilbert mesh-cells represented by top-level node */
+ peanokey StartKey; /*!< first Peano-Hilbert key in top-level node */
+ long long Count; /*!< counts the number of particles in this top-level node */
+}
+ *TopNodes; /*!< points to the root node of the top-level tree */
+
+
+extern double TimeOfLastTreeConstruction; /*!< holds what it says, only used in connection with FORCETEST */
+
+
+
+/* variables for input/output, usually only used on process 0 */
+
+extern char ParameterFile[MAXLEN_FILENAME]; /*!< file name of parameterfile used for starting the simulation */
+
+extern FILE *FdInfo; /*!< file handle for info.txt log-file. */
+extern FILE *FdLog; /*!< file handle for log.txt log-file. */
+extern FILE *FdEnergy; /*!< file handle for energy.txt log-file. */
+#ifdef SYSTEMSTATISTICS
+extern FILE *FdSystem;
+#endif
+extern FILE *FdTimings; /*!< file handle for timings.txt log-file. */
+extern FILE *FdCPU; /*!< file handle for cpu.txt log-file. */
+
+#ifdef FORCETEST
+extern FILE *FdForceTest; /*!< file handle for forcetest.txt log-file. */
+#endif
+
+#ifdef SFR
+extern FILE *FdSfr; /*!< file handle for sfr.txt log-file. */
+#endif
+
+#ifdef CHIMIE
+extern FILE *FdChimie; /*!< file handle for chimie log-file. */
+#endif
+
+#ifdef MULTIPHASE
+extern FILE *FdPhase; /*!< file handle for pase.txt log-file. */
+extern FILE *FdSticky; /*!< file handle for sticky.txt log-file. */
+#endif
+
+#ifdef AGN_ACCRETION
+extern FILE *FdAccretion; /*!< file handle for accretion.txt log-file. */
+#endif
+
+#ifdef BONDI_ACCRETION
+extern FILE *FdBondi; /*!< file handle for bondi.txt log-file. */
+#endif
+
+#ifdef BUBBLES
+extern FILE *FdBubble; /*!< file handle for bubble.txt log-file. */
+#endif
+
+extern double DriftTable[DRIFT_TABLE_LENGTH]; /*!< table for the cosmological drift factors */
+extern double GravKickTable[DRIFT_TABLE_LENGTH]; /*!< table for the cosmological kick factor for gravitational forces */
+extern double HydroKickTable[DRIFT_TABLE_LENGTH]; /*!< table for the cosmological kick factor for hydrodynmical forces */
+
+#ifdef COSMICTIME
+extern double CosmicTimeTable[COSMICTIME_TABLE_LENGTH]; /*!< table for the computation of cosmic time */
+#endif
+
+extern void *CommBuffer; /*!< points to communication buffer, which is used in the domain decomposition, the
+ parallel tree-force computation, the SPH routines, etc. */
+
+
+
+/*! This structure contains data which is the SAME for all tasks (mostly code parameters read from the
+ * parameter file). Holding this data in a structure is convenient for writing/reading the restart file, and
+ * it allows the introduction of new global variables in a simple way. The only thing to do is to introduce
+ * them into this structure.
+ */
+extern struct global_data_all_processes
+{
+ long long TotNumPart; /*!< total particle numbers (global value) */
+ long long TotN_gas; /*!< total gas particle number (global value) */
+#if defined(SFR) || defined(STELLAR_PROP)
+ long long TotN_stars; /*!< total stars particle number (global value) */
+#endif
+#ifdef MULTIPHASE
+ long long TotN_sph; /*!< total sph particle number (global value) */
+ long long TotN_sticky; /*!< total sticky particle number (global value) */
+ long long TotN_stickyflaged; /*!< total sticky flaged particle number (global value) */
+ long long TotN_stickyactive; /*!< total sticky active particle number (global value) */
+ long long TotN_dark; /*!< total dark particle number (global value) */
+#endif
+
+ int MaxPart; /*!< This gives the maxmimum number of particles that can be stored on one processor. */
+ int MaxPartSph; /*!< This gives the maxmimum number of SPH particles that can be stored on one processor. */
+#ifdef STELLAR_PROP
+ int MaxPartStars; /*!< This gives the maxmimum number of Star particles that can be stored on one processor. */
+#endif
+ double BoxSize; /*!< Boxsize in case periodic boundary conditions are used */
+
+ int ICFormat; /*!< selects different versions of IC file-format */
+
+ int SnapFormat; /*!< selects different versions of snapshot file-formats */
+
+ int NumFilesPerSnapshot; /*!< number of files in multi-file snapshot dumps */
+ int NumFilesWrittenInParallel;/*!< maximum number of files that may be written simultaneously when
+ writing/reading restart-files, or when writing snapshot files */
+
+ int BufferSize; /*!< size of communication buffer in MB */
+ int BunchSizeForce; /*!< number of particles fitting into the buffer in the parallel tree-force algorithm */
+ int BunchSizeDensity; /*!< number of particles fitting into the communication buffer in the density computation */
+ int BunchSizeHydro; /*!< number of particles fitting into the communication buffer in the SPH hydrodynamical force computation */
+ int BunchSizeDomain; /*!< number of particles fitting into the communication buffer in the domain decomposition */
+#ifdef MULTIPHASE
+ int BunchSizeSticky; /*!< number of particles fitting into the communication buffer in the Chimie computation */
+#endif
+#ifdef CHIMIE
+ int BunchSizeChimie; /*!< number of particles fitting into the communication buffer in the Chimie computation */
+ int BunchSizeStarsDensity; /*!< number of particles fitting into the communication buffer in the star density computation */
+#endif
+
+
+ double PartAllocFactor; /*!< in order to maintain work-load balance, the particle load will usually
+ NOT be balanced. Each processor allocates memory for PartAllocFactor times
+ the average number of particles to allow for that */
+
+ double TreeAllocFactor; /*!< Each processor allocates a number of nodes which is TreeAllocFactor times
+ the maximum(!) number of particles. Note: A typical local tree for N
+ particles needs usually about ~0.65*N nodes. */
+
+#ifdef SFR
+ double StarsAllocFactor; /*!< Estimated fraction of gas particles that will form stars during the simulation
+ This allow to reduce the memory stored for stellar particles */
+
+#endif
+
+ /* some SPH parameters */
+
+ double DesNumNgb; /*!< Desired number of SPH neighbours */
+ double MaxNumNgbDeviation; /*!< Maximum allowed deviation neighbour number */
+
+ double ArtBulkViscConst; /*!< Sets the parameter \f$\alpha\f$ of the artificial viscosity */
+#ifdef ART_CONDUCTIVITY
+ double ArtCondConst; /*!< Sets the parameter \f$\alpha\f$ of the artificial conductivity */
+ double ArtCondThreshold;
+#endif
+ double InitGasTemp; /*!< may be used to set the temperature in the IC's */
+ double MinGasTemp; /*!< may be used to set a floor for the gas temperature */
+ double MinEgySpec; /*!< the minimum allowed temperature expressed as energy per unit mass */
+
+ /* Usefull constants */
+ double Boltzmann;
+ double ProtonMass;
+ double mumh;
+
+#ifdef COOLING
+ /* Cooling parameters */
+ double *logT;
+ double *logL;
+
+ gsl_interp_accel *acc_cooling_spline;
+ gsl_spline *cooling_spline;
+
+ double CoolingType;
+ char CoolingFile[MAXLEN_FILENAME]; /*!< cooling file */
+ double CutofCoolingTemperature;
+ double InitGasMetallicity;
+
+ /*
+ new metal dependent cooling
+ */
+
+ double CoolingParameters_zmin;
+ double CoolingParameters_zmax;
+ double CoolingParameters_slz;
+ double CoolingParameters_tmin;
+ double CoolingParameters_tmax;
+ double CoolingParameters_slt;
+ double CoolingParameters_FeHSolar;
+ double CoolingParameters_cooling_data_max;
+ double CoolingParameters_cooling_data[COOLING_NMETALICITIES][COOLING_NTEMPERATURES];
+ int CoolingParameters_p;
+ int CoolingParameters_q;
+#endif
+
+
+#ifdef CHIMIE
+ int ChimieNumberOfParameterFiles;
+ char ChimieParameterFile[MAXLEN_FILENAME]; /*!< chimie parameter file */
+ double ChimieSupernovaEnergy;
+ double ChimieKineticFeedbackFraction;
+ double ChimieWindSpeed;
+ double ChimieWindTime;
+ double ChimieSNIaThermalTime;
+ double ChimieSNIIThermalTime;
+ double ChimieMaxSizeTimestep;
+#endif
+
+
+
+
+
+#if !defined (HEATING_PE)
+ double HeatingPeElectronFraction;
+#endif
+#if !defined (HEATING_PE) || defined (STELLAR_FLUX) || defined (EXTERNAL_FLUX)
+ double HeatingPeSolarEnergyDensity;
+#endif
+#if !defined (HEATING_PE) || defined (STELLAR_FLUX)
+ double HeatingPeLMRatioGas;
+ double HeatingPeLMRatioHalo;
+ double HeatingPeLMRatioDisk;
+ double HeatingPeLMRatioBulge;
+ double HeatingPeLMRatioStars;
+ double HeatingPeLMRatioBndry;
+ double HeatingPeLMRatio[6];
+#endif
+
+#ifdef EXTERNAL_FLUX
+ double HeatingExternalFLuxEnergyDensity;
+#endif
+
+#ifdef MULTIPHASE
+ double CriticalTemperature;
+ double CriticalEgySpec;
+ double CriticalNonCollisionalTemperature;
+ double CriticalNonCollisionalEgySpec;
+#ifdef COLDGAS_CYCLE
+ double ColdGasCycleTransitionTime;
+ double ColdGasCycleTransitionParameter;
+#endif
+#endif
+
+
+#ifdef MULTIPHASE
+ /* some STICKY parameters */
+ int StickyUseGridForCollisions;
+ double StickyTime; /*!< Cooling time of sticky particle collision */
+ double StickyCollisionTime;
+ double StickyLastCollisionTime;
+ double StickyIdleTime;
+ double StickyMinVelocity;
+ double StickyMaxVelocity;
+ int StickyGridNx;
+ int StickyGridNy;
+ int StickyGridNz;
+ double StickyGridXmin;
+ double StickyGridXmax;
+ double StickyGridYmin;
+ double StickyGridYmax;
+ double StickyGridZmin;
+ double StickyGridZmax;
+ double StickyLambda;
+ double StickyDensity;
+ double StickyDensityPower;
+ double StickyBetaR;
+ double StickyBetaT;
+ double StickyRsphFact; /*!< Fraction of the sph radius used in sticky particle */
+#endif
+
+#ifdef OUTERPOTENTIAL
+
+#ifdef NFW
+ double HaloConcentration;
+ double HaloMass;
+ double GasMassFraction;
+ double NFWPotentialCte;
+ double Rs;
+#endif
+
+#ifdef PLUMMER
+ double PlummerMass;
+ double PlummerSoftenning;
+ double PlummerPotentialCte;
+#endif
+
+#ifdef MIYAMOTONAGAI
+ double MiyamotoNagaiMass;
+ double MiyamotoNagaiHr;
+ double MiyamotoNagaiHz;
+ double MiyamotoNagaiPotentialCte;
+#endif
+
+#ifdef PISOTHERM
+ double Rho0;
+ double Rc;
+ double PisothermPotentialCte;
+ double GasMassFraction;
+ double PotentialInf;
+ gsl_function PotentialF;
+ gsl_integration_workspace *Potentialw;
+#endif
+
+#ifdef CORIOLIS
+ double CoriolisOmegaX;
+ double CoriolisOmegaY;
+ double CoriolisOmegaZ;
+ double CoriolisOmegaX0;
+ double CoriolisOmegaY0;
+ double CoriolisOmegaZ0;
+#endif
+
+#endif
+
+#ifdef SFR
+ int StarFormationNStarsFromGas;
+ double StarFormationStarMass;
+ double StarFormationMgMsFraction;
+ int StarFormationType;
+ double StarFormationCstar;
+ double StarFormationTime;
+ double StarFormationDensity;
+ double StarFormationTemperature;
+ double ThresholdDensity;
+#endif
+
+#ifdef FEEDBACK
+ double SupernovaTime;
+#endif
+
+#ifdef FEEDBACK_WIND
+ double SupernovaWindEgySpecPerMassUnit;
+ double SupernovaWindFractionInEgyKin;
+ double SupernovaWindParameter;
+ double SupernovaWindSpeed;
+ double SupernovaWindIntAccuracy;
+#endif
+
+#ifdef AGN_ACCRETION
+ double TimeBetAccretion;
+ double AccretionRadius;
+ double AGNFactor;
+ double MinMTotInRa;
+
+
+ double TimeLastAccretion;
+ double LastMTotInRa;
+ double MTotInRa;
+ double dMTotInRa;
+#endif
+
+#ifdef BUBBLES
+ char BubblesInitFile[MAXLEN_FILENAME]; /*!< bubble file */
+ double *BubblesTime;
+ double *BubblesD;
+ double *BubblesR;
+ double *BubblesE;
+ double *BubblesA;
+ double *BubblesB;
+ int BubblesIndex;
+
+ double BubblesAlpha;
+ double BubblesBeta;
+ double BubblesDelta;
+ double BubblesRadiusFactor;
+ double EnergyBubbles;
+#endif
+
+#ifdef AGN_HEATING
+ double AGNHeatingPower;
+ double AGNHeatingRmax;
+#endif
+
+#ifdef BONDI_ACCRETION
+ double BondiEfficiency;
+ double BondiBlackHoleMass;
+ double BondiHsmlFactor;
+ double BondiPower;
+ double BondiTimeBet;
+ double BondiTimeLast;
+#endif
+
+#if defined (AGN_ACCRETION) || defined (BONDI_ACCRETION)
+ double LightSpeed;
+#endif
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS) || defined(ART_VISCO_CD)
+ double ArtBulkViscConstMin;
+ double ArtBulkViscConstMax;
+ double ArtBulkViscConstL;
+#endif
+
+#ifdef AB_TURB
+ double StDecay;
+ double StEnergy;
+ double StDtFreq;
+ double StKmin;
+ double StKmax;
+ double StSolWeight;
+ double StAmplFac;
+ int StSpectForm;
+ int StSeed;
+#endif
+
+
+ /* some force counters */
+
+ long long TotNumOfForces; /*!< counts total number of force computations */
+ long long NumForcesSinceLastDomainDecomp; /*!< count particle updates since last domain decomposition */
+
+ /* system of units */
+
+ double G; /*!< Gravity-constant in internal units */
+ double UnitTime_in_s; /*!< factor to convert internal time unit to seconds/h */
+ double UnitMass_in_g; /*!< factor to convert internal mass unit to grams/h */
+ double UnitVelocity_in_cm_per_s; /*!< factor to convert intqernal velocity unit to cm/sec */
+ double UnitLength_in_cm; /*!< factor to convert internal length unit to cm/h */
+ double UnitPressure_in_cgs; /*!< factor to convert internal pressure unit to cgs units (little 'h' still around!) */
+ double UnitDensity_in_cgs; /*!< factor to convert internal length unit to g/cm^3*h^2 */
+ double UnitCoolingRate_in_cgs; /*!< factor to convert internal cooling rate to cgs units */
+ double UnitEnergy_in_cgs; /*!< factor to convert internal energy to cgs units */
+ double UnitTime_in_Megayears; /*!< factor to convert internal time to megayears/h */
+ double GravityConstantInternal; /*!< If set to zero in the parameterfile, the internal value of the
+ gravitational constant is set to the Newtonian value based on the system of
+ units specified. Otherwise the value provided is taken as internal gravity constant G. */
+
+
+ /* Cosmological parameters */
+
+ double Hubble; /*!< Hubble-constant in internal units */
+ double Omega0; /*!< matter density in units of the critical density (at z=0)*/
+ double OmegaLambda; /*!< vaccum energy density relative to crictical density (at z=0) */
+ double OmegaBaryon; /*!< baryon density in units of the critical density (at z=0)*/
+ double HubbleParam; /*!< little `h', i.e. Hubble constant in units of 100 km/s/Mpc. Only needed to get absolute physical values for cooling physics */
+
+
+ /* Code options */
+
+ int ComovingIntegrationOn; /*!< flags that comoving integration is enabled */
+ int PeriodicBoundariesOn; /*!< flags that periodic boundaries are enabled */
+ int ResubmitOn; /*!< flags that automatic resubmission of job to queue system is enabled */
+ int TypeOfOpeningCriterion; /*!< determines tree cell-opening criterion: 0 for Barnes-Hut, 1 for relative criterion */
+ int TypeOfTimestepCriterion; /*!< gives type of timestep criterion (only 0 supported right now - unlike gadget-1.1) */
+ int OutputListOn; /*!< flags that output times are listed in a specified file */
+
+
+ /* Parameters determining output frequency */
+
+ int SnapshotFileCount; /*!< number of snapshot that is written next */
+ double TimeBetSnapshot; /*!< simulation time interval between snapshot files */
+ double TimeOfFirstSnapshot; /*!< simulation time of first snapshot files */
+ double CpuTimeBetRestartFile; /*!< cpu-time between regularly generated restart files */
+ double TimeLastRestartFile; /*!< cpu-time when last restart-file was written */
+ double TimeBetStatistics; /*!< simulation time interval between computations of energy statistics */
+ double TimeLastStatistics; /*!< simulation time when the energy statistics was computed the last time */
+ int NumCurrentTiStep; /*!< counts the number of system steps taken up to this point */
+
+
+ /* Current time of the simulation, global step, and end of simulation */
+
+ double Time; /*!< current time of the simulation */
+ double TimeBegin; /*!< time of initial conditions of the simulation */
+ double TimeStep; /*!< difference between current times of previous and current timestep */
+ double TimeMax; /*!< marks the point of time until the simulation is to be evolved */
+
+
+ /* variables for organizing discrete timeline */
+
+ double Timebase_interval; /*!< factor to convert from floating point time interval to integer timeline */
+ int Ti_Current; /*!< current time on integer timeline */
+ int Ti_nextoutput; /*!< next output time on integer timeline */
+#ifdef FLEXSTEPS
+ int PresentMinStep; /*!< If FLEXSTEPS is used, particle timesteps are chosen as multiples of the present minimum timestep. */
+ int PresentMaxStep; /*!< If FLEXSTEPS is used, this is the maximum timestep in timeline units, rounded down to the next power 2 division */
+#endif
+#ifdef PMGRID
+ int PM_Ti_endstep; /*!< begin of present long-range timestep */
+ int PM_Ti_begstep; /*!< end of present long-range timestep */
+#endif
+
+
+ /* Placement of PM grids */
+
+#ifdef PMGRID
+ double Asmth[2]; /*!< Gives the scale of the long-range/short-range split (in mesh-cells), both for the coarse and the high-res mesh */
+ double Rcut[2]; /*!< Gives the maximum radius for which the short-range force is evaluated with the tree (in mesh-cells), both for the coarse and the high-res mesh */
+ double Corner[2][3]; /*!< lower left corner of coarse and high-res PM-mesh */
+ double UpperCorner[2][3]; /*!< upper right corner of coarse and high-res PM-mesh */
+ double Xmintot[2][3]; /*!< minimum particle coordinates both for coarse and high-res PM-mesh */
+ double Xmaxtot[2][3]; /*!< maximum particle coordinates both for coarse and high-res PM-mesh */
+ double TotalMeshSize[2]; /*!< total extension of coarse and high-res PM-mesh */
+#endif
+
+
+ /* Variables that keep track of cumulative CPU consumption */
+
+ double TimeLimitCPU; /*!< CPU time limit as defined in parameterfile */
+ double CPU_TreeConstruction; /*!< time spent for constructing the gravitational tree */
+ double CPU_TreeWalk; /*!< actual time spent for pure tree-walks */
+ double CPU_Gravity; /*!< cumulative time used for gravity computation (tree-algorithm only) */
+ double CPU_Potential; /*!< time used for computing gravitational potentials */
+ double CPU_Domain; /*!< cumulative time spent for domain decomposition */
+ double CPU_Snapshot; /*!< time used for writing snapshot files */
+ double CPU_Total; /*!< cumulative time spent for domain decomposition */
+ double CPU_CommSum; /*!< accumulated time used for communication, and for collecting partial results, in tree-gravity */
+ double CPU_Imbalance; /*!< cumulative time lost accross all processors as work-load imbalance in gravitational tree */
+ double CPU_HydCompWalk; /*!< time used for actual SPH computations, including neighbour search */
+ double CPU_HydCommSumm; /*!< cumulative time used for communication in SPH, and for collecting partial results */
+ double CPU_HydImbalance; /*!< cumulative time lost due to work-load imbalance in SPH */
+ double CPU_Hydro; /*!< cumulative time spent for SPH related computations */
+#ifdef SFR
+ double CPU_StarFormation; /*!< cumulative time spent for star formation computations */
+#endif
+#ifdef CHIMIE
+ double CPU_Chimie; /*!< cumulative time spent for chimie computations */
+ double CPU_ChimieDensCompWalk;
+ double CPU_ChimieDensCommSumm;
+ double CPU_ChimieDensImbalance;
+ double CPU_ChimieDensEnsureNgb;
+ double CPU_ChimieCompWalk;
+ double CPU_ChimieCommSumm;
+ double CPU_ChimieImbalance;
+#endif
+#ifdef MULTIPHASE
+ double CPU_Sticky; /*!< cumulative time spent for sticky computations */
+#endif
+ double CPU_EnsureNgb; /*!< time needed to iterate on correct neighbour numbers */
+ double CPU_Predict; /*!< cumulative time to drift the system forward in time, including dynamic tree updates */
+ double CPU_TimeLine; /*!< time used for determining new timesteps, and for organizing the timestepping, including kicks of active particles */
+ double CPU_PM; /*!< time used for long-range gravitational force */
+ double CPU_Peano; /*!< time required to establish Peano-Hilbert order */
+
+
+#ifdef DETAILED_CPU_DOMAIN
+ double CPU_Domain_findExtend;
+ double CPU_Domain_determineTopTree;
+ double CPU_Domain_sumCost;
+ double CPU_Domain_findSplit;
+ double CPU_Domain_shiftSplit;
+ double CPU_Domain_countToGo;
+ double CPU_Domain_exchange;
+#endif
+#ifdef DETAILED_CPU_GRAVITY
+ double CPU_Gravity_TreeWalk1;
+ double CPU_Gravity_TreeWalk2;
+ double CPU_Gravity_CommSum1;
+ double CPU_Gravity_CommSum2;
+ double CPU_Gravity_Imbalance1;
+ double CPU_Gravity_Imbalance2;
+#endif
+
+#ifdef COOLING
+ double CPU_Cooling;
+#endif
+
+#ifdef DETAILED_CPU
+ double CPU_Leapfrog;
+ double CPU_Physics;
+ double CPU_Residual;
+ double CPU_Accel;
+ double CPU_Begrun;
+#endif
+
+
+
+
+
+
+ /* tree code opening criterion */
+
+ double ErrTolTheta; /*!< BH tree opening angle */
+ double ErrTolForceAcc; /*!< parameter for relative opening criterion in tree walk */
+
+
+ /* adjusts accuracy of time-integration */
+
+ double ErrTolIntAccuracy; /*!< accuracy tolerance parameter \f$ \eta \f$ for timestep criterion. The
+ timestep is \f$ \Delta t = \sqrt{\frac{2 \eta eps}{a}} \f$ */
+
+ double MinSizeTimestep; /*!< minimum allowed timestep. Normally, the simulation terminates if the
+ timestep determined by the timestep criteria falls below this limit. */
+ double MaxSizeTimestep; /*!< maximum allowed timestep */
+
+ double MaxRMSDisplacementFac; /*!< this determines a global timestep criterion for cosmological simulations
+ in comoving coordinates. To this end, the code computes the rms velocity
+ of all particles, and limits the timestep such that the rms displacement
+ is a fraction of the mean particle separation (determined from the
+ particle mass and the cosmological parameters). This parameter specifies
+ this fraction. */
+
+ double CourantFac; /*!< SPH-Courant factor */
+
+
+ /* frequency of tree reconstruction/domain decomposition */
+
+ double TreeDomainUpdateFrequency; /*!< controls frequency of domain decompositions */
+
+
+ /* Gravitational and hydrodynamical softening lengths (given in terms of an `equivalent' Plummer softening length).
+ * Five groups of particles are supported 0="gas", 1="halo", 2="disk", 3="bulge", 4="stars", 5="bndry"
+ */
+
+ double MinGasHsmlFractional; /*!< minimum allowed SPH smoothing length in units of SPH gravitational softening length */
+ double MinGasHsml; /*!< minimum allowed SPH smoothing length */
+
+
+ double SofteningGas; /*!< comoving gravitational softening lengths for type 0 */
+ double SofteningHalo; /*!< comoving gravitational softening lengths for type 1 */
+ double SofteningDisk; /*!< comoving gravitational softening lengths for type 2 */
+ double SofteningBulge; /*!< comoving gravitational softening lengths for type 3 */
+ double SofteningStars; /*!< comoving gravitational softening lengths for type 4 */
+ double SofteningBndry; /*!< comoving gravitational softening lengths for type 5 */
+
+ double SofteningGasMaxPhys; /*!< maximum physical softening length for type 0 */
+ double SofteningHaloMaxPhys; /*!< maximum physical softening length for type 1 */
+ double SofteningDiskMaxPhys; /*!< maximum physical softening length for type 2 */
+ double SofteningBulgeMaxPhys; /*!< maximum physical softening length for type 3 */
+ double SofteningStarsMaxPhys; /*!< maximum physical softening length for type 4 */
+ double SofteningBndryMaxPhys; /*!< maximum physical softening length for type 5 */
+
+ double SofteningTable[6]; /*!< current (comoving) gravitational softening lengths for each particle type */
+ double ForceSoftening[6]; /*!< the same, but multiplied by a factor 2.8 - at that scale the force is Newtonian */
+
+
+ double MassTable[6]; /*!< Table with particle masses for particle types with equal mass.
+ If particle masses are all equal for one type, the corresponding entry in MassTable
+ is set to this value, allowing the size of the snapshot files to be reduced. */
+
+
+
+ /* some filenames */
+
+ char InitCondFile[MAXLEN_FILENAME]; /*!< filename of initial conditions */
+ char OutputDir[MAXLEN_FILENAME]; /*!< output directory of the code */
+ char SnapshotFileBase[MAXLEN_FILENAME]; /*!< basename to construct the names of snapshotf files */
+ char EnergyFile[MAXLEN_FILENAME]; /*!< name of file with energy statistics */
+#ifdef SYSTEMSTATISTICS
+ char SystemFile[MAXLEN_FILENAME];
+#endif
+ char CpuFile[MAXLEN_FILENAME]; /*!< name of file with cpu-time statistics */
+ char InfoFile[MAXLEN_FILENAME]; /*!< name of log-file with a list of the timesteps taken */
+ char LogFile[MAXLEN_FILENAME]; /*!< name of log-file with varied info */
+#ifdef SFR
+ char SfrFile[MAXLEN_FILENAME]; /*!< name of file with sfr records */
+#endif
+#ifdef CHIMIE
+ char ChimieFile[MAXLEN_FILENAME]; /*!< name of file with chimie records */
+#endif
+#ifdef MULTIPHASE
+ char PhaseFile[MAXLEN_FILENAME]; /*!< name of file with phase records */
+ char StickyFile[MAXLEN_FILENAME]; /*!< name of file with sticky records */
+#endif
+#ifdef AGN_ACCRETION
+ char AccretionFile[MAXLEN_FILENAME]; /*!< name of file with accretion records */
+#endif
+#ifdef BONDI_ACCRETION
+ char BondiFile[MAXLEN_FILENAME]; /*!< name of file with bondi records */
+#endif
+#ifdef BUBBLES
+ char BubbleFile[MAXLEN_FILENAME]; /*!< name of file with bubble records */
+#endif
+ char TimingsFile[MAXLEN_FILENAME]; /*!< name of file with performance metrics of gravitational tree algorithm */
+ char RestartFile[MAXLEN_FILENAME]; /*!< basename of restart-files */
+ char ResubmitCommand[MAXLEN_FILENAME]; /*!< name of script-file that will be executed for automatic restart */
+ char OutputListFilename[MAXLEN_FILENAME]; /*!< name of file with list of desired output times */
+
+ double OutputListTimes[MAXLEN_OUTPUTLIST]; /*!< table with desired output times */
+ int OutputListLength; /*!< number of output times stored in the table of desired output times */
+
+#ifdef RANDOMSEED_AS_PARAMETER
+ int RandomSeed; /*!< initial random seed >*/
+#endif
+
+
+}
+ All; /*!< a container variable for global variables that are equal on all processors */
+
+
+
+/*! This structure holds all the information that is
+ * stored for each particle of the simulation.
+ */
+extern struct particle_data
+{
+ FLOAT Pos[3]; /*!< particle position at its current time */
+ FLOAT Mass; /*!< particle mass */
+ FLOAT Vel[3]; /*!< particle velocity at its current time */
+ FLOAT GravAccel[3]; /*!< particle acceleration due to gravity */
+#ifdef PMGRID
+ FLOAT GravPM[3]; /*!< particle acceleration due to long-range PM gravity force*/
+#endif
+#ifdef FORCETEST
+ FLOAT GravAccelDirect[3]; /*!< particle acceleration when computed with direct summation */
+#endif
+ FLOAT Potential; /*!< gravitational potential */
+ FLOAT OldAcc; /*!< magnitude of old gravitational force. Used in relative opening criterion */
+#ifndef LONGIDS
+ unsigned int ID; /*!< particle identifier */
+#else
+ unsigned long long ID; /*!< particle identifier */
+#endif
+
+ int Type; /*!< flags particle type. 0=gas, 1=halo, 2=disk, 3=bulge, 4=stars, 5=bndry */
+ int Ti_endstep; /*!< marks start of current timestep of particle on integer timeline */
+ int Ti_begstep; /*!< marks end of current timestep of particle on integer timeline */
+#ifdef FLEXSTEPS
+ int FlexStepGrp; /*!< a random 'offset' on the timeline to create a smooth groouping of particles */
+#endif
+ float GravCost; /*!< weight factor used for balancing the work-load */
+#ifdef PSEUDOSYMMETRIC
+ float AphysOld; /*!< magnitude of acceleration in last timestep. Used to make a first order
+ prediction of the change of acceleration expected in the future, thereby
+ allowing to guess whether a decrease/increase of the timestep should occur
+ in the timestep that is started. */
+#endif
+#ifdef PARTICLE_FLAG
+ float Flag;
+#endif
+
+#ifdef STELLAR_PROP
+ unsigned int StPIdx; /*!< index to the corresponding StP particle */
+#endif
+
+}
+ *P, /*!< holds particle data on local processor */
+ *DomainPartBuf; /*!< buffer for particle data used in domain decomposition */
+
+
+/* the following struture holds data that is stored for each SPH particle in addition to the collisionless
+ * variables.
+ */
+extern struct sph_particle_data
+{
+ FLOAT Entropy; /*!< current value of entropy (actually entropic function) of particle */
+ FLOAT Density; /*!< current baryonic mass density of particle */
+ FLOAT Hsml; /*!< current smoothing length */
+ FLOAT Left; /*!< lower bound in iterative smoothing length search */
+ FLOAT Right; /*!< upper bound in iterative smoothing length search */
+ FLOAT NumNgb; /*!< weighted number of neighbours found */
+#ifdef AVOIDNUMNGBPROBLEM
+ FLOAT OldNumNgb;
+#endif
+ FLOAT Pressure; /*!< current pressure */
+ FLOAT DtEntropy; /*!< rate of change of entropy */
+#ifdef STELLAR_FLUX
+ FLOAT EnergyFlux; /*!< current value of local energy flux - Sph particles */
+#endif
+#ifdef AGN_HEATING
+ FLOAT EgySpecAGNHeat; /*!< current value of specific energy radiated of particle - Sph particles */
+ FLOAT DtEgySpecAGNHeat; /*!< rate of change of specific radiated energy - Sph particles */
+ FLOAT DtEntropyAGNHeat;
+#endif
+#ifdef MULTIPHASE
+ FLOAT StickyTime;
+ int StickyFlag;
+#ifdef COUNT_COLLISIONS
+ float StickyCollisionNumber;
+#endif
+#endif
+#ifdef FEEDBACK
+ FLOAT EgySpecFeedback;
+ FLOAT DtEgySpecFeedback;
+ FLOAT EnergySN;
+ FLOAT EnergySNrem;
+ FLOAT TimeSN;
+ FLOAT FeedbackVel[3]; /*!< kick due to feedback force */
+#endif
+#ifdef FEEDBACK_WIND
+ FLOAT FeedbackWindVel[3]; /*!< kick due to feedback force */
+#endif
+ FLOAT HydroAccel[3]; /*!< acceleration due to hydrodynamical force */
+ FLOAT VelPred[3]; /*!< predicted SPH particle velocity at the current time */
+ FLOAT DivVel; /*!< local velocity divergence */
+ FLOAT CurlVel; /*!< local velocity curl */
+ FLOAT Rot[3]; /*!< local velocity curl */
+ FLOAT DhsmlDensityFactor; /*!< correction factor needed in the equation of motion of the conservative entropy formulation of SPH */
+ FLOAT MaxSignalVel; /*!< maximum "signal velocity" occuring for this particle */
+#ifdef MULTIPHASE
+ int Phase;
+ int StickyIndex;
+ int StickyNgb;
+ int StickyMaxID;
+ float StickyMaxFs;
+ FLOAT StickyNewVel[3];
+#endif
+#ifdef OUTPUTOPTVAR1
+ FLOAT OptVar1; /*!< optional variable 1 */
+#endif
+#ifdef OUTPUTOPTVAR2
+ FLOAT OptVar2; /*!< optional variable 2 */
+#endif
+
+
+#ifdef COMPUTE_VELOCITY_DISPERSION
+ FLOAT VelocityDispersion[VELOCITY_DISPERSION_SIZE]; /*!< velocity dispersion */
+#endif
+
+#ifdef CHIMIE
+ FLOAT Metal[NELEMENTS];
+ FLOAT dMass; /*!< mass variation due to mass transfere */
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ FLOAT DeltaEgySpec;
+ FLOAT SNIaThermalTime; /*!< flag particles that got energy from SNIa */
+ FLOAT SNIIThermalTime; /*!< flag particles that got energy from SNII */
+ double NumberOfSNIa;
+ double NumberOfSNII;
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ FLOAT WindTime; /*!< flag particles that belongs to the wind */
+ unsigned int WindFlag; /*!< flag particles that will be part of the wind */
+#endif
+#endif /*CHIMIE*/
+
+#ifdef ENTROPYPRED
+ FLOAT EntropyPred; /*!< predicted entropy at the current time */
+#endif
+
+#ifdef ART_CONDUCTIVITY
+ FLOAT EnergyIntPred;
+ FLOAT GradEnergyInt[3];
+#endif
+#ifdef AB_TURB
+ FLOAT TurbAccel[3];
+#endif
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS) || defined(ART_VISCO_CD)
+ double ArtBulkViscConst;
+#ifdef ART_VISCO_CD
+ double DmatCD[3][3];
+ double TmatCD[3][3];
+ double DiVelAccurate;
+ double DiVelTemp;
+ double ArtBulkViscConstOld;
+ double R_CD;
+#endif
+#endif
+
+}
+ *SphP, /*!< holds SPH particle data on local processor */
+ *DomainSphBuf; /*!< buffer for SPH particle data in domain decomposition */
+
+
+#ifdef STELLAR_PROP
+/* the following struture holds data that is stored for each SPH particle in addition to the collisionless
+ * variables.
+ */
+extern struct st_particle_data
+{
+#ifdef CHECK_ID_CORRESPONDENCE
+ unsigned int ID; /*!< particle identifier (must be the same as P[].ID) only used to check ID correspondance */
+#endif
+ FLOAT FormationTime; /*!< star formation time of particle */
+ FLOAT InitialMass; /*!< initial stellar mass */
+#ifndef LONGIDS
+ unsigned int IDProj; /*!< id of projenitor particle */
+#else
+ unsigned long long IDProj; /*!< id of projenitor particle */
+#endif
+ FLOAT Metal[NELEMENTS];
+ FLOAT Density; /*!< current baryonic mass density of particle */
+ FLOAT Volume; /*!< current volume of particle */
+ FLOAT Hsml; /*!< current smoothing length */
+ FLOAT Left; /*!< lower bound in iterative smoothing length search */
+ FLOAT Right; /*!< upper bound in iterative smoothing length search */
+ FLOAT NumNgb; /*!< weighted number of neighbours found */
+ unsigned int PIdx; /*!< index to the corresponding particle */
+
+#ifdef AVOIDNUMNGBPROBLEM
+ FLOAT OldNumNgb;
+#endif
+ FLOAT DhsmlDensityFactor; /*!< correction factor needed in the equation of motion of the conservative entropy formulation of SPH */
+
+ double TotalEjectedGasMass;
+ double TotalEjectedEltMass[NELEMENTS];
+ double TotalEjectedEgySpec;
+ double NumberOfSNIa;
+ double NumberOfSNII;
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ double NgbMass; /*!< mass of neighbours */
+#endif
+#ifdef CHIMIE
+ unsigned int Flag;
+#endif
+}
+ *StP, /*!< holds ST particle data on local processor */
+ *DomainStBuf; /*!< buffer for ST particle data in domain decomposition */
+#endif
+
+/* Variables for Tree
+ */
+
+extern int MaxNodes; /*!< maximum allowed number of internal nodes */
+extern int Numnodestree; /*!< number of (internal) nodes in each tree */
+
+extern struct NODE
+{
+ FLOAT len; /*!< sidelength of treenode */
+ FLOAT center[3]; /*!< geometrical center of node */
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ FLOAT maxsoft; /*!< hold the maximum gravitational softening of particles in the
+ node if the ADAPTIVE_GRAVSOFT_FORGAS option is selected */
+#endif
+#ifdef STELLAR_FLUX
+ FLOAT starlum ; /*!< star luminosity of node */
+#endif
+
+ union
+ {
+ int suns[8]; /*!< temporary pointers to daughter nodes */
+ struct
+ {
+ FLOAT s[3]; /*!< center of mass of node */
+ FLOAT mass; /*!< mass of node */
+ int bitflags; /*!< a bit-field with various information on the node */
+ int sibling; /*!< this gives the next node in the walk in case the current node can be used */
+ int nextnode; /*!< this gives the next node in case the current node needs to be opened */
+ int father; /*!< this gives the parent node of each node (or -1 if we have the root node) */
+ }
+ d;
+ }
+ u;
+}
+ *Nodes_base, /*!< points to the actual memory allocted for the nodes */
+ *Nodes; /*!< this is a pointer used to access the nodes which is shifted such that Nodes[All.MaxPart]
+ gives the first allocated node */
+
+
+extern int *Nextnode; /*!< gives next node in tree walk */
+extern int *Father; /*!< gives parent node in tree */
+
+
+extern struct extNODE /*!< this structure holds additional tree-node information which is not needed in the actual gravity computation */
+{
+ FLOAT hmax; /*!< maximum SPH smoothing length in node. Only used for gas particles */
+ FLOAT vs[3]; /*!< center-of-mass velocity */
+}
+ *Extnodes_base, /*!< points to the actual memory allocted for the extended node information */
+ *Extnodes; /*!< provides shifted access to extended node information, parallel to Nodes/Nodes_base */
+
+
+
+
+
+/*! Header for the standard file format.
+ */
+extern struct io_header
+{
+ int npart[6]; /*!< number of particles of each type in this file */
+ double mass[6]; /*!< mass of particles of each type. If 0, then the masses are explicitly
+ stored in the mass-block of the snapshot file, otherwise they are omitted */
+ double time; /*!< time of snapshot file */
+ double redshift; /*!< redshift of snapshot file */
+ int flag_sfr; /*!< flags whether the simulation was including star formation */
+ int flag_feedback; /*!< flags whether feedback was included (obsolete) */
+ unsigned int npartTotal[6]; /*!< total number of particles of each type in this snapshot. This can be
+ different from npart if one is dealing with a multi-file snapshot. */
+ int flag_cooling; /*!< flags whether cooling was included */
+ int num_files; /*!< number of files in multi-file snapshot */
+ double BoxSize; /*!< box-size of simulation in case periodic boundaries were used */
+ double Omega0; /*!< matter density in units of critical density */
+ double OmegaLambda; /*!< cosmological constant parameter */
+ double HubbleParam; /*!< Hubble parameter in units of 100 km/sec/Mpc */
+ int flag_stellarage; /*!< flags whether the file contains formation times of star particles */
+ int flag_metals; /*!< flags whether the file contains metallicity values for gas and star particles */
+ unsigned int npartTotalHighWord[6]; /*!< High word of the total number of particles of each type */
+ int flag_entropy_instead_u; /*!< flags that IC-file contains entropy instead of u */
+ int flag_chimie_extraheader; /*!< flags that IC-file contains extra-header for chimie */
+#ifdef MULTIPHASE
+ double critical_energy_spec;
+#ifdef MESOMACHINE
+ char fill[38];
+#else
+ char fill[48]; /* use 42 with regor... */
+#endif
+#else
+ char fill[56]; /*!< fills to 256 Bytes */
+#endif
+}
+ header; /*!< holds header for snapshot files */
+
+
+
+#ifdef CHIMIE_EXTRAHEADER
+/*! Header for the chimie part.
+ */
+extern struct io_chimie_extraheader
+ {
+ int nelts; /*!< number of chemical element followed */
+ float SolarAbundances[NELEMENTS];
+ char labels[256-4-4*(NELEMENTS)];
+ }
+ chimie_extraheader;
+#endif
+
+
+
+#define IO_NBLOCKS 24 /*!< total number of defined information blocks for snapshot files.
+ Must be equal to the number of entries in "enum iofields" */
+
+enum iofields /*!< this enumeration lists the defined output blocks in snapshot files. Not all of them need to be present. */
+{
+ IO_POS,
+ IO_VEL,
+ IO_ID,
+ IO_MASS,
+ IO_U,
+ IO_RHO,
+ IO_HSML,
+ IO_POT,
+ IO_ACCEL,
+ IO_DTENTR,
+ IO_TSTP,
+ IO_ERADSPH,
+ IO_ERADSTICKY,
+ IO_ERADFEEDBACK,
+ IO_ENERGYFLUX,
+ IO_METALS,
+ IO_STAR_FORMATIONTIME,
+ IO_INITIAL_MASS,
+ IO_STAR_IDPROJ,
+ IO_STAR_RHO,
+ IO_STAR_HSML,
+ IO_STAR_METALS,
+ IO_OPTVAR1,
+ IO_OPTVAR2
+};
+
+
+extern char Tab_IO_Labels[IO_NBLOCKS][4]; /*<! This table holds four-byte character tags used for fileformat 2 */
+
+
+/* global state of system, used for global statistics
+ */
+extern struct state_of_system
+{
+ double Mass;
+ double EnergyKin;
+ double EnergyPot;
+ double EnergyInt;
+#ifdef COOLING
+ double EnergyRadSph;
+#endif
+#ifdef AGN_HEATING
+ double EnergyAGNHeat;
+#endif
+#ifdef MULTIPHASE
+ double EnergyRadSticky;
+#endif
+#ifdef FEEDBACK_WIND
+ double EnergyFeedbackWind;
+#endif
+#ifdef BUBBLES
+ double EnergyBubbles;
+#endif
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ double EnergyThermalFeedback;
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ double EnergyKineticFeedback;
+#endif
+ double EnergyTot;
+ double Momentum[4];
+ double AngMomentum[4];
+ double CenterOfMass[4];
+ double MassComp[6];
+ double EnergyKinComp[6];
+ double EnergyPotComp[6];
+ double EnergyIntComp[6];
+#ifdef COOLING
+ double EnergyRadSphComp[6];
+#endif
+#ifdef AGN_HEATING
+ double EnergyAGNHeatComp[6];
+#endif
+#ifdef MULTIPHASE
+ double EnergyRadStickyComp[6];
+#endif
+#ifdef FEEDBACK_WIND
+ double EnergyFeedbackWindComp[6];
+#endif
+#ifdef BUBBLES
+ double EnergyBubblesComp[6];
+#endif
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ double EnergyThermalFeedbackComp[6];
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ double EnergyKineticFeedbackComp[6];
+#endif
+
+ double EnergyTotComp[6];
+ double MomentumComp[6][4];
+ double AngMomentumComp[6][4];
+ double CenterOfMassComp[6][4];
+}
+ SysState; /*<! Structure for storing some global statistics about the simulation. */
+
+
+
+
+
+/*! This structure contains data related to the energy budget.
+ These values are different for each task. It need to be stored
+ in the restart flag.
+ */
+extern struct local_state_of_system
+{
+
+ double EnergyTest;
+ double EnergyInt1;
+ double EnergyInt2;
+ double EnergyKin1;
+ double EnergyKin2;
+
+
+#ifdef COOLING
+ double RadiatedEnergy;
+#endif
+
+#ifdef SFR
+ double StarEnergyInt;
+#ifdef FEEDBACK
+ double StarEnergyFeedback;
+#endif
+#endif
+
+
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ double EnergyThermalFeedback;
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ double EnergyKineticFeedback;
+#endif
+
+#ifdef MULTIPHASE
+ double EnergyRadSticky;
+#endif
+
+#ifdef FEEDBACK_WIND
+ double EnergyFeedbackWind;
+#endif
+
+
+}
+ LocalSysState; /*<! Structure for storing some local statistics about the simulation. */
+
+
+
+
+
+
+
+
+
+/* Various structures for communication
+ */
+extern struct gravdata_in
+{
+ union
+ {
+ FLOAT Pos[3];
+ FLOAT Acc[3];
+ FLOAT Potential;
+ }
+ u;
+#if defined(UNEQUALSOFTENINGS) || defined(STELLAR_FLUX)
+ int Type;
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ FLOAT Soft;
+#endif
+#endif
+#ifdef STELLAR_FLUX
+ FLOAT EnergyFlux;
+#endif
+ union
+ {
+ FLOAT OldAcc;
+ int Ninteractions;
+ }
+ w;
+}
+ *GravDataIn, /*!< holds particle data to be exported to other processors */
+ *GravDataGet, /*!< holds particle data imported from other processors */
+ *GravDataResult, /*!< holds the partial results computed for imported particles. Note: We use GravDataResult = GravDataGet, such that the result replaces the imported data */
+ *GravDataOut; /*!< holds partial results received from other processors. This will overwrite the GravDataIn array */
+
+extern struct gravdata_index
+{
+ int Task;
+ int Index;
+ int SortIndex;
+}
+ *GravDataIndexTable; /*!< the particles to be exported are grouped by task-number. This table allows the results to be disentangled again and to be assigned to the correct particle */
+
+
+
+extern struct densdata_in
+{
+ FLOAT Pos[3];
+ FLOAT Vel[3];
+ FLOAT Hsml;
+#ifdef MULTIPHASE
+ int Phase;
+#endif
+ int Index;
+ int Task;
+#ifdef ART_CONDUCTIVITY
+ FLOAT EnergyIntPred;
+#endif
+}
+ *DensDataIn, /*!< holds particle data for SPH density computation to be exported to other processors */
+ *DensDataGet; /*!< holds imported particle data for SPH density computation */
+
+extern struct densdata_out
+{
+ FLOAT Rho;
+ FLOAT Div, Rot[3];
+ FLOAT DhsmlDensity;
+ FLOAT Ngb;
+#ifdef ART_CONDUCTIVITY
+ FLOAT GradEnergyInt[3];
+#endif
+}
+ *DensDataResult, /*!< stores the locally computed SPH density results for imported particles */
+ *DensDataPartialResult; /*!< imported partial SPH density results from other processors */
+
+
+
+extern struct hydrodata_in
+{
+ FLOAT Pos[3];
+ FLOAT Vel[3];
+ FLOAT Hsml;
+#ifdef FEEDBACK
+ FLOAT EnergySN;
+#endif
+#ifdef MULTIPHASE
+ int Phase;
+ FLOAT Entropy;
+ int StickyFlag;
+#endif
+ FLOAT Mass;
+ FLOAT Density;
+ FLOAT Pressure;
+ FLOAT F1;
+ FLOAT DhsmlDensityFactor;
+ int Timestep;
+ int Task;
+ int Index;
+#ifdef WITH_ID_IN_HYDRA
+ int ID;
+#endif
+#ifdef ART_CONDUCTIVITY
+ FLOAT NormGradEnergyInt;
+#endif
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS) || defined(ART_VISCO_CD)
+ double ArtBulkViscConst;
+#endif
+
+}
+ *HydroDataIn, /*!< holds particle data for SPH hydro-force computation to be exported to other processors */
+ *HydroDataGet; /*!< holds imported particle data for SPH hydro-force computation */
+
+extern struct hydrodata_out
+{
+ FLOAT Acc[3];
+ FLOAT DtEntropy;
+#ifdef FEEDBACK
+ FLOAT DtEgySpecFeedback;
+ FLOAT FeedbackAccel[3]; /*!< acceleration due to feedback force */
+#endif
+ FLOAT MaxSignalVel;
+#ifdef COMPUTE_VELOCITY_DISPERSION
+ FLOAT VelocityDispersion[VELOCITY_DISPERSION_SIZE];
+#endif
+#ifdef MULTIPHASE
+ FLOAT StickyDVel[3]; /*!< differences in velocities induced by sticky collisions */
+#endif
+
+#ifdef OUTPUT_CONDUCTIVITY
+ FLOAT OptVar2;
+#endif
+
+#ifdef ART_VISCO_CD
+ double DmatCD[3][3];
+ double TmatCD[3][3];
+ double R_CD;
+#endif
+
+}
+ *HydroDataResult, /*!< stores the locally computed SPH hydro results for imported particles */
+ *HydroDataPartialResult; /*!< imported partial SPH hydro-force results from other processors */
+
+
+
+#ifdef MULTIPHASE
+
+
+
+
+extern struct stickydata_in
+{
+ FLOAT Pos[3];
+ FLOAT Vel[3];
+ FLOAT Mass;
+ FLOAT Hsml;
+ int ID;
+ int StickyMaxID;
+ int StickyNgb;
+ float StickyMaxFs;
+ int Task;
+ int Index;
+}
+ *StickyDataIn, /*!< holds particle data for sticky computation to be exported to other processors */
+ *StickyDataGet; /*!< holds imported particle data for sticky computation */
+
+extern struct stickydata_out
+{
+ int StickyMaxID;
+ int StickyNgb;
+ float StickyMaxFs;
+ FLOAT StickyNewVel[3];
+}
+ *StickyDataResult, /*!< stores the locally computed sticky results for imported particles */
+ *StickyDataPartialResult; /*!< imported partial sticky results from other processors */
+
+
+
+
+
+
+
+
+extern struct Sticky_index
+{
+ int Index;
+ int CellIndex;
+ int Flag;
+}
+ *StickyIndex;
+#endif
+
+
+
+#ifdef CHIMIE
+
+extern struct chimiedata_in
+{
+ FLOAT Pos[3];
+ FLOAT Vel[3];
+
+#ifndef LONGIDS
+ unsigned int ID; /*!< particle identifier */
+#else
+ unsigned long long ID; /*!< particle identifier */
+#endif
+
+ FLOAT Hsml;
+#ifdef FEEDBACK
+ FLOAT EnergySN;
+#endif
+#ifdef MULTIPHASE
+ int Phase;
+ FLOAT Entropy;
+ int StickyFlag;
+#endif
+ FLOAT Density;
+ FLOAT Volume;
+ FLOAT Pressure;
+ FLOAT F1;
+ FLOAT DhsmlDensityFactor;
+ int Timestep;
+ int Task;
+ int Index;
+#ifdef WITH_ID_IN_HYDRA
+ int ID;
+#endif
+ double TotalEjectedGasMass;
+ double TotalEjectedEltMass[NELEMENTS];
+ double TotalEjectedEgySpec;
+ double NumberOfSNIa;
+ double NumberOfSNII;
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ FLOAT NgbMass;
+#endif
+
+}
+ *ChimieDataIn, /*!< holds particle data for Chimie computation to be exported to other processors */
+ *ChimieDataGet; /*!< holds imported particle data for Chimie computation */
+
+extern struct chimiedata_out
+{
+ FLOAT Acc[3];
+ FLOAT DtEntropy;
+#ifdef FEEDBACK
+ FLOAT DtEgySpecFeedback;
+ FLOAT FeedbackAccel[3]; /*!< acceleration due to feedback force */
+#endif
+ FLOAT MaxSignalVel;
+#ifdef COMPUTE_VELOCITY_DISPERSION
+ FLOAT VelocityDispersion[VELOCITY_DISPERSION_SIZE];
+#endif
+#ifdef MULTIPHASE
+ FLOAT StickyDVel[3]; /*!< differences in velocities induced by sticky collisions */
+#endif
+}
+ *ChimieDataResult, /*!< stores the locally computed Chimie results for imported particles */
+ *ChimieDataPartialResult; /*!< imported partial Chimie results from other processors */
+
+
+
+
+
+
+extern struct starsdensdata_in
+{
+ FLOAT Pos[3];
+ FLOAT Hsml;
+ int Index;
+ int Task;
+}
+ *StarsDensDataIn, /*!< holds particle data for SPH density computation to be exported to other processors */
+ *StarsDensDataGet; /*!< holds imported particle data for SPH density computation */
+
+extern struct starsdensdata_out
+{
+ FLOAT Rho;
+ FLOAT Volume;
+ FLOAT DhsmlDensity;
+ FLOAT Ngb;
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ FLOAT NgbMass;
+#endif
+}
+ *StarsDensDataResult, /*!< stores the locally computed SPH density results for imported particles */
+ *StarsDensDataPartialResult; /*!< imported partial SPH density results from other processors */
+
+
+
+
+#endif
+
+
+
+
+#endif
+
diff --git a/clusters/user/GEAR/src/art_visc.c b/clusters/user/GEAR/src/art_visc.c
new file mode 100644
index 0000000..ab39c34
--- /dev/null
+++ b/clusters/user/GEAR/src/art_visc.c
@@ -0,0 +1,224 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_linalg.h>
+#include <gsl/gsl_cblas.h>
+#include <gsl/gsl_matrix.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS) || defined(ART_VISCO_CD)
+
+
+
+
+
+
+#ifdef ART_VISCO_CD
+ int sgsl;
+
+ gsl_matrix * Dgsl;
+ gsl_matrix * Tgsl;
+ gsl_matrix * Tigsl;
+ gsl_matrix * Vgsl;
+ gsl_matrix * Vtgsl;
+ gsl_matrix * Idgsl;
+ gsl_permutation * perm;
+
+ double DiVelAccurate;
+ double dt_DiVel;
+ double shock_indicator_CD, shock_limiter_CD;
+ double h_i2, MaxSignalVel2;
+ double alpha_CD_max;
+ double tr_S;
+ double Xi_num, Xi_den;
+
+
+void art_visc_allocate()
+ {
+ Dgsl = gsl_matrix_alloc (3, 3);
+ Tgsl = gsl_matrix_alloc (3, 3);
+ Tigsl = gsl_matrix_alloc (3, 3);
+ perm = gsl_permutation_alloc (3);
+ Vgsl = gsl_matrix_alloc (3, 3);
+ Vtgsl = gsl_matrix_alloc (3, 3);
+ Idgsl = gsl_matrix_alloc (3, 3);
+ }
+
+void art_visc_free()
+ {
+ gsl_matrix_free (Dgsl);
+ gsl_matrix_free (Tgsl);
+ gsl_matrix_free (Tigsl);
+ gsl_matrix_free (Vgsl);
+ gsl_matrix_free (Vtgsl);
+ gsl_matrix_free (Idgsl);
+ gsl_permutation_free (perm);
+ }
+
+
+
+
+
+void compute_art_visc(int i)
+ {
+
+ int ii,jj;
+
+ /* FILL GSL MATRIX*/
+ for (ii = 0; ii < 3; ii++)
+ for (jj = 0; jj < 3; jj++)
+ {
+ gsl_matrix_set (Dgsl, ii, jj, SphP[i].DmatCD[ii][jj]);
+ gsl_matrix_set (Tgsl, ii, jj, SphP[i].TmatCD[ii][jj]);
+
+ }
+ /* COMPUTE INV(TmatCD) */
+
+ // Make LU decomposition of matrix Tgsl
+ gsl_linalg_LU_decomp (Tgsl, perm, &sgsl);
+ // Invert the matrix Tgsl
+ gsl_linalg_LU_invert (Tgsl, perm, Tigsl);
+
+ /* DiVelAccurate = COMPUTE Tr(D * INV(TmatCD)) */
+ gsl_blas_dgemm (CblasNoTrans, CblasNoTrans,
+ 1.0, Dgsl, Tigsl,
+ 0.0, Vgsl);
+
+ /* new div(velpred) */
+ DiVelAccurate = gsl_matrix_get(Vgsl, 0, 0) + gsl_matrix_get(Vgsl, 1, 1) + gsl_matrix_get(Vgsl, 2, 2);
+
+ /* d/dt(div(velpred)) */
+ dt_DiVel = (P[i].Ti_endstep - P[i].Ti_begstep) * All.Timebase_interval;
+ if(All.ComovingIntegrationOn)
+ {
+ printf("ART_VISCO_CD doesnot work in cosmo! \n");
+ endrun(768543);
+ }
+
+ /* !!!!!! for the initial conditions !!!!! */
+ if (dt_DiVel>0.)
+ SphP[i].DiVelTemp = (DiVelAccurate - SphP[i].DiVelAccurate) / dt_DiVel;
+ else
+ SphP[i].DiVelTemp = 0.;
+
+
+ /* compute chock limiter R_i, Xi_i*/
+
+ SphP[i].R_CD = SphP[i].R_CD / SphP[i].Density;
+
+
+ for (ii = 0; ii < 3; ii++)
+ for (jj = 0; jj < 3; jj++)
+ {
+ gsl_matrix_set( Vtgsl, jj, ii, gsl_matrix_get( Vgsl, ii, jj ) );
+ }
+ gsl_matrix_set_identity (Idgsl);
+ gsl_matrix_add (Vgsl, Vtgsl);
+ gsl_matrix_scale (Vgsl, .5);
+ gsl_matrix_scale (Idgsl, -SphP[i].DiVelAccurate/3.);
+ /* tensor S */
+ gsl_matrix_add (Vgsl, Idgsl );
+ for (ii = 0; ii < 3; ii++)
+ for (jj = 0; jj < 3; jj++)
+ {
+ gsl_matrix_set( Vtgsl, jj, ii, gsl_matrix_get( Vgsl, ii, jj ) );
+ }
+ gsl_matrix_mul_elements(Vgsl, Vtgsl);
+
+ tr_S = gsl_matrix_get(Vgsl, 0, 0) + gsl_matrix_get(Vgsl, 1, 1) + gsl_matrix_get(Vgsl, 2, 2);
+
+ Xi_num = pow(2. * pow(1. - SphP[i].R_CD, 4.) * SphP[i].DiVelAccurate, 2);
+ Xi_den = Xi_num + tr_S ;
+
+ /* update */
+ SphP[i].DiVelAccurate = DiVelAccurate;
+
+ // printf("%4.2f %4.2f \n",DiVelAccurate, SphP[i].DivVel );
+
+ alpha_CD_max = All.ArtBulkViscConstMax;
+
+ /*shock_limiter_CD = 1. ;*/
+ shock_limiter_CD = Xi_num / Xi_den;
+ shock_indicator_CD = shock_limiter_CD * dmax(-SphP[i].DiVelTemp,0.);
+
+ h_i2 = SphP[i].Hsml;
+ h_i2 = h_i2 * h_i2;
+ MaxSignalVel2 = SphP[i].MaxSignalVel;
+ MaxSignalVel2 = MaxSignalVel2 * MaxSignalVel2;
+
+ SphP[i].ArtBulkViscConstOld = alpha_CD_max * h_i2 * shock_indicator_CD / (MaxSignalVel2 + h_i2 * shock_indicator_CD);
+ // printf("%4.2f \n",SphP[i].alpha_loc);
+ // exit(1);
+
+ }
+
+
+
+
+#endif
+
+
+
+
+void move_art_visc(int i,double dt_drift)
+ {
+
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS)
+ double timedecay;
+ double source_Velbased;
+ double p_over_rho2_i, soundspeed_i;
+ double dalpha_over_dt;
+#endif
+
+#ifdef ART_VISCO_CD
+ double timedecay, dalpha_over_dt;
+#endif
+
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS)
+ source_Velbased = dmax(-SphP[i].DivVel,0.) ;
+ p_over_rho2_i = SphP[i].Pressure / (SphP[i].Density * SphP[i].Density);
+ soundspeed_i = sqrt(GAMMA * p_over_rho2_i * SphP[i].Density);
+ timedecay = SphP[i].Hsml/(2. * All.ArtBulkViscConstL * soundspeed_i);
+
+#ifdef ART_VISCO_MM
+ dalpha_over_dt = (All.ArtBulkViscConstMin - SphP[i].alpha) / timedecay + source_Velbased;
+#endif
+#ifdef ART_VISCO_ROSS
+ dalpha_over_dt = (All.ArtBulkViscConstMin - SphP[i].alpha) / timedecay + (All.ArtBulkViscConstMax - SphP[i].alpha) * source_Velbased;
+#endif
+ SphP[i].ArtBulkViscConst = SphP[i].ArtBulkViscConst + dalpha_over_dt * dt_drift;
+#endif
+
+
+#ifdef ART_VISCO_CD
+ timedecay = SphP[i].Hsml/(2. * All.ArtBulkViscConstL * SphP[i].MaxSignalVel);
+
+ if (SphP[i].ArtBulkViscConst < SphP[i].ArtBulkViscConstOld)
+ SphP[i].ArtBulkViscConst = SphP[i].ArtBulkViscConstOld;
+ else
+ SphP[i].ArtBulkViscConst = SphP[i].ArtBulkViscConstOld + (SphP[i].ArtBulkViscConst - SphP[i].ArtBulkViscConstOld) * exp(-dt_drift/timedecay);
+
+#endif
+
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+#endif
\ No newline at end of file
diff --git a/clusters/user/GEAR/src/begrun.c b/clusters/user/GEAR/src/begrun.c
new file mode 100644
index 0000000..0a4f3fd
--- /dev/null
+++ b/clusters/user/GEAR/src/begrun.c
@@ -0,0 +1,2145 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <gsl/gsl_rng.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file begrun.c
+ * \brief initial set-up of a simulation run
+ *
+ * This file contains various functions to initialize a simulation run. In
+ * particular, the parameterfile is read in and parsed, the initial
+ * conditions or restart files are read, and global variables are
+ * initialized to their proper values.
+ */
+
+
+/*! This function performs the initial set-up of the simulation. First, the
+ * parameterfile is set, then routines for setting units, reading
+ * ICs/restart-files are called, auxialiary memory is allocated, etc.
+ */
+void begrun(void)
+{
+
+ struct global_data_all_processes all;
+
+#ifdef DETAILED_CPU
+ double tstart,tend;
+ tstart = second();
+#endif
+
+
+ if(ThisTask == 0)
+ {
+ printf("\nThis is Gadget, version `%s'.\n", GADGETVERSION);
+ printf("\nRunning on %d processors.\n", NTask);
+ }
+
+ read_parameter_file(ParameterFile); /* ... read in parameters for this run */
+
+ allocate_commbuffers(); /* ... allocate buffer-memory for particle
+ exchange during force computation */
+ set_units();
+
+
+#if defined(PERIODIC) && (!defined(PMGRID) || defined(FORCETEST))
+ ewald_init();
+#endif
+
+ open_outputfiles();
+
+ random_generator = gsl_rng_alloc(gsl_rng_ranlxd1);
+#ifdef RANDOMSEED_AS_PARAMETER
+ if(ThisTask == 0)
+ printf("Using %d as initial random seed\n",All.RandomSeed);
+ gsl_rng_set(random_generator, All.RandomSeed); /* start-up seed */
+#else
+ if(ThisTask == 0)
+ printf("Using %d as initial random seed\n",42);
+ gsl_rng_set(random_generator, 42); /* start-up seed */
+#endif
+
+#ifdef PMGRID
+ long_range_init();
+#endif
+
+ All.TimeLastRestartFile = CPUThisRun;
+
+#ifdef MULTIPHASE
+ All.StickyLastCollisionTime = All.TimeBegin;
+#endif
+
+
+/* other physics initialization */
+
+
+#ifdef COOLING
+ if (All.CoolingType==0) /* sutherland */
+ {
+ if(ThisTask == 0) printf("Initialize cooling function...\n");
+ init_cooling(0);
+ if(ThisTask == 0) printf("Initialize cooling function done.\n");
+ }
+
+
+ if (All.CoolingType==2) /* cooling with metals */
+ {
+ if(ThisTask == 0) printf("Initialize cooling function...\n");
+ init_cooling_with_metals();
+ if(ThisTask == 0) printf("Initialize cooling function done.\n");
+ }
+
+#endif
+
+
+#ifdef CHIMIE
+ int i;
+ if(ThisTask == 0) printf("Initialize chimie...\n");
+
+ init_chimie();
+ check_chimie();
+
+ if(ThisTask == 0)
+ {
+ for (i=0;i<get_nelts();i++)
+ printf("solar abundance %s\t= %g\n",get_Element(i),get_SolarAbundance(i));
+ }
+ if(ThisTask == 0) printf("Initialize chimie done...\n");
+
+#endif
+
+#ifdef COOLING
+#ifdef CHIMIE
+ All.CoolingParameters_FeHSolar = get_SolarAbundance(FE); /* for consitency, use the value defined in chimie file */
+#else
+ All.CoolingParameters_FeHSolar = FEH_SOLAR; /* use a default value */
+#endif
+#endif
+
+
+#ifdef AB_TURB
+ init_turb();
+#endif
+
+#ifdef ART_VISCO_CD
+ art_visc_allocate();
+#endif
+
+
+
+ if(RestartFlag == 0 || RestartFlag == 2)
+ {
+ set_random_numbers();
+
+ init(); /* ... read in initial model */
+
+ init_local_sys_state();
+ }
+ else
+ {
+ all = All; /* save global variables. (will be read from restart file) */
+
+ restart(RestartFlag); /* ... read restart file. Note: This also resets
+ all variables in the struct `All'.
+ However, during the run, some variables in the parameter
+ file are allowed to be changed, if desired. These need to
+ copied in the way below.
+ Note: All.PartAllocFactor is treated in restart() separately.
+ */
+
+ /* yr
+ if we want a parameter to be taken as the one written in the parameter file,
+ we have to save it below,
+ instead, the value of the restart file will be taken.
+
+ This is usefull, for example, if stop a run and want it to be restarted with
+ different parameters.
+ */
+
+
+ All.MinSizeTimestep = all.MinSizeTimestep;
+ All.MaxSizeTimestep = all.MaxSizeTimestep;
+ All.BufferSize = all.BufferSize;
+ All.BunchSizeForce = all.BunchSizeForce;
+ All.BunchSizeDensity = all.BunchSizeDensity;
+ All.BunchSizeHydro = all.BunchSizeHydro;
+ All.BunchSizeDomain = all.BunchSizeDomain;
+#ifdef MULTIPHASE
+ All.BunchSizeSticky = all.BunchSizeSticky;
+#endif
+#ifdef CHIMIE
+ All.BunchSizeChimie = all.BunchSizeChimie;
+#endif
+
+ All.TimeLimitCPU = all.TimeLimitCPU;
+ All.ResubmitOn = all.ResubmitOn;
+ All.TimeBetSnapshot = all.TimeBetSnapshot;
+ All.TimeBetStatistics = all.TimeBetStatistics;
+ All.CpuTimeBetRestartFile = all.CpuTimeBetRestartFile;
+ All.ErrTolIntAccuracy = all.ErrTolIntAccuracy;
+ All.MaxRMSDisplacementFac = all.MaxRMSDisplacementFac;
+
+ All.ErrTolForceAcc = all.ErrTolForceAcc;
+
+ All.TypeOfTimestepCriterion = all.TypeOfTimestepCriterion;
+ All.TypeOfOpeningCriterion = all.TypeOfOpeningCriterion;
+ All.NumFilesWrittenInParallel = all.NumFilesWrittenInParallel;
+ All.TreeDomainUpdateFrequency = all.TreeDomainUpdateFrequency;
+
+ All.SnapFormat = all.SnapFormat;
+ All.NumFilesPerSnapshot = all.NumFilesPerSnapshot;
+ All.MaxNumNgbDeviation = all.MaxNumNgbDeviation;
+ All.ArtBulkViscConst = all.ArtBulkViscConst;
+#ifdef ART_CONDUCTIVITY
+ All.ArtCondConst = all.ArtCondConst;
+ All.ArtCondThreshold = all.ArtCondThreshold;
+#endif
+
+ All.OutputListOn = all.OutputListOn;
+ All.CourantFac = all.CourantFac;
+
+ All.OutputListLength = all.OutputListLength;
+ memcpy(All.OutputListTimes, all.OutputListTimes, sizeof(double) * All.OutputListLength);
+
+#ifdef RANDOMSEED_AS_PARAMETER
+ All.RandomSeed = all.RandomSeed;
+#endif
+
+#ifdef MULTIPHASE
+ All.CriticalTemperature = all.CriticalTemperature;
+ All.CriticalNonCollisionalTemperature = all.CriticalNonCollisionalTemperature;
+
+ All.StickyUseGridForCollisions = all.StickyUseGridForCollisions;
+ All.StickyTime = all.StickyTime;
+ All.StickyCollisionTime = all.StickyCollisionTime;
+ All.StickyIdleTime = all.StickyIdleTime;
+ All.StickyMinVelocity = all.StickyMinVelocity;
+ All.StickyMaxVelocity = all.StickyMaxVelocity;
+ All.StickyLambda = all.StickyLambda;
+ All.StickyDensity = all.StickyDensity;
+ All.StickyDensityPower = all.StickyDensityPower;
+ All.StickyRsphFact = all.StickyRsphFact;
+ All.StickyBetaR = all.StickyBetaR;
+ All.StickyBetaT = all.StickyBetaT;
+ All.StickyGridNx = all.StickyGridNx;
+ All.StickyGridNy = all.StickyGridNy;
+ All.StickyGridNz = all.StickyGridNz;
+ All.StickyGridXmin = all.StickyGridXmin;
+ All.StickyGridXmax = all.StickyGridXmax;
+ All.StickyGridYmin = all.StickyGridYmin;
+ All.StickyGridYmax = all.StickyGridYmax;
+ All.StickyGridZmin = all.StickyGridZmin;
+ All.StickyGridZmax = all.StickyGridZmax;
+#ifdef COLDGAS_CYCLE
+ All.ColdGasCycleTransitionTime = all.ColdGasCycleTransitionTime;
+ All.ColdGasCycleTransitionParameter = all.ColdGasCycleTransitionParameter;
+#endif
+#endif
+
+#ifdef OUTERPOTENTIAL
+
+#ifdef NFW
+ All.HaloConcentration = all.HaloConcentration;
+ All.HaloMass = all.HaloMass;
+ All.GasMassFraction = all.GasMassFraction;
+#endif
+
+#ifdef PLUMMER
+ All.PlummerMass = all.PlummerMass;
+ All.PlummerSoftenning = all.PlummerSoftenning;
+#endif
+
+#ifdef MIYAMOTONAGAI
+ All.MiyamotoNagaiMass = all.MiyamotoNagaiMass;
+ All.MiyamotoNagaiHr = all.MiyamotoNagaiHr;
+ All.MiyamotoNagaiHz = all.MiyamotoNagaiHz;
+#endif
+
+#ifdef PISOTHERM
+ All.Rho0 = all.Rho0;
+ All.Rc = all.Rc;
+ All.GasMassFraction = all.GasMassFraction;
+#endif
+
+#ifdef CORIOLIS
+ All.CoriolisOmegaX0 = all.CoriolisOmegaX0;
+ All.CoriolisOmegaY0 = all.CoriolisOmegaY0;
+ All.CoriolisOmegaZ0 = all.CoriolisOmegaZ0;
+#endif
+
+#endif
+
+#ifdef SFR
+ //All.StarFormationNStarsFromGas = all.StarFormationNStarsFromGas; /* do not change the param. if restarting, else, StarFormationStarMass will be wrong */
+ //All.StarFormationStarMass = all.StarFormationStarMass;
+ All.StarFormationMgMsFraction = all.StarFormationMgMsFraction;
+ All.StarFormationType = all.StarFormationType;
+ All.StarFormationCstar = all.StarFormationCstar;
+ All.StarFormationTime = all.StarFormationTime;
+ All.StarFormationDensity = all.StarFormationDensity;
+ All.StarFormationTemperature = all.StarFormationTemperature;
+ All.ThresholdDensity = all.ThresholdDensity;
+#endif
+
+#ifdef COOLING
+ All.CoolingType = all.CoolingType;
+ All.CutofCoolingTemperature = all.CutofCoolingTemperature;
+ All.InitGasMetallicity = all.InitGasMetallicity;
+#endif
+
+#ifdef CHIMIE
+ All.ChimieSupernovaEnergy = all.ChimieSupernovaEnergy; /* do not use this value, use the restartfile one */
+ All.ChimieKineticFeedbackFraction = all.ChimieKineticFeedbackFraction;
+ All.ChimieWindSpeed = all.ChimieWindSpeed;
+ All.ChimieWindTime = all.ChimieWindTime;
+ All.ChimieSNIaThermalTime = all.ChimieSNIaThermalTime;
+ All.ChimieSNIIThermalTime = all.ChimieSNIIThermalTime;
+ All.ChimieMaxSizeTimestep = all.ChimieMaxSizeTimestep;
+#endif
+
+#if defined (HEATING_PE)
+ All.HeatingPeElectronFraction = all.HeatingPeElectronFraction;
+#endif
+#if defined (HEATING_PE) || defined (STELLAR_FLUX) || defined (EXTERNAL_FLUX)
+ All.HeatingPeSolarEnergyDensity = all.HeatingPeSolarEnergyDensity;
+#endif
+#if defined (HEATING_PE) || defined (STELLAR_FLUX)
+ All.HeatingPeLMRatioGas = all.HeatingPeLMRatioGas;
+ All.HeatingPeLMRatioHalo = all.HeatingPeLMRatioHalo;
+ All.HeatingPeLMRatioDisk = all.HeatingPeLMRatioDisk;
+ All.HeatingPeLMRatioBulge = all.HeatingPeLMRatioBulge;
+ All.HeatingPeLMRatioStars = all.HeatingPeLMRatioStars;
+ All.HeatingPeLMRatioBndry = all.HeatingPeLMRatioBndry;
+ All.HeatingPeLMRatio[0] = all.HeatingPeLMRatio[0];
+ All.HeatingPeLMRatio[1] = all.HeatingPeLMRatio[1];
+ All.HeatingPeLMRatio[2] = all.HeatingPeLMRatio[2];
+ All.HeatingPeLMRatio[3] = all.HeatingPeLMRatio[3];
+ All.HeatingPeLMRatio[4] = all.HeatingPeLMRatio[4];
+ All.HeatingPeLMRatio[5] = all.HeatingPeLMRatio[5];
+#endif
+
+#ifdef EXTERNAL_FLUX
+ All.HeatingExternalFLuxEnergyDensity = all.HeatingExternalFLuxEnergyDensity;
+#endif
+
+#ifdef FEEDBACK
+ All.SupernovaEgySpecPerMassUnit = all.SupernovaEgySpecPerMassUnit;
+ All.SupernovaFractionInEgyKin = all.SupernovaFractionInEgyKin;
+ All.SupernovaTime = all.SupernovaTime;
+#endif
+
+#ifdef FEEDBACK_WIND
+ All.SupernovaWindEgySpecPerMassUnit = all.SupernovaWindEgySpecPerMassUnit;
+ All.SupernovaWindFractionInEgyKin = all.SupernovaWindFractionInEgyKin;
+ All.SupernovaWindParameter = all.SupernovaWindParameter;
+ All.SupernovaWindIntAccuracy = all.SupernovaWindIntAccuracy;
+#endif
+
+#ifdef BUBBLES
+ All.BubblesDelta = all.BubblesDelta;
+ All.BubblesAlpha = all.BubblesAlpha;
+ All.BubblesRadiusFactor = all.BubblesRadiusFactor;
+ All.BubblesR = all.BubblesR;
+#endif
+
+#ifdef AGN_HEATING
+ All.AGNHeatingPower = all.AGNHeatingPower;
+ All.AGNHeatingRmax = all.AGNHeatingRmax;
+#endif
+
+#ifdef AGN_ACCRETION
+ All.TimeBetAccretion = all.TimeBetAccretion;
+ All.AccretionRadius = all.AccretionRadius;
+ All.AGNFactor = all.AGNFactor;
+ All.MinMTotInRa = all.MinMTotInRa;
+#endif
+
+#ifdef BONDI_ACCRETION
+ All.BondiEfficiency = all.BondiEfficiency;
+ All.BondiBlackHoleMass = all.BondiBlackHoleMass;
+ All.BondiHsmlFactor = all.BondiHsmlFactor;
+ All.BondiPower = all.BondiPower;
+ All.BondiTimeBet = all.BondiTimeBet;
+#endif
+
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS) || defined(ART_VISCO_CD)
+ All.ArtBulkViscConstMin = all.ArtBulkViscConstMin;
+ All.ArtBulkViscConstMax = all.ArtBulkViscConstMax;
+ All.ArtBulkViscConstL = all.ArtBulkViscConstL;
+#endif
+
+
+#ifdef AB_TURB
+ All.StDecay = all.StDecay;
+ All.StEnergy = all.StEnergy;
+ All.StDtFreq = all.StDtFreq;
+ All.StKmin = all.StKmin;
+ All.StKmax = all.StKmax;
+ All.StSolWeight = all.StSolWeight;
+ All.StAmplFac = all.StAmplFac;
+ All.StSpectForm = all.StSpectForm;
+ All.StSeed = all.StSeed;
+#endif
+
+
+ strcpy(All.ResubmitCommand, all.ResubmitCommand);
+ strcpy(All.OutputListFilename, all.OutputListFilename);
+ strcpy(All.OutputDir, all.OutputDir);
+ strcpy(All.RestartFile, all.RestartFile);
+ strcpy(All.EnergyFile, all.EnergyFile);
+#ifdef SYSTEMSTATISTICS
+ strcpy(All.SystemFile, all.SystemFile);
+#endif
+ strcpy(All.InfoFile, all.InfoFile);
+ strcpy(All.CpuFile, all.CpuFile);
+ strcpy(All.LogFile, all.LogFile);
+#ifdef SFR
+ strcpy(All.SfrFile, all.SfrFile);
+#endif
+#ifdef CHIMIE
+ strcpy(All.ChimieFile, all.ChimieFile);
+#endif
+#ifdef MULTIPHASE
+ strcpy(All.PhaseFile, all.PhaseFile);
+ strcpy(All.StickyFile, all.StickyFile);
+#endif
+#ifdef AGN_ACCRETION
+ strcpy(All.AccretionFile, all.AccretionFile);
+#endif
+#ifdef BONDI_ACCRETION
+ strcpy(All.BondiFile, all.BondiFile);
+#endif
+#ifdef BUBBLES
+ strcpy(All.BubbleFile, all.BubbleFile);
+#endif
+
+
+
+ strcpy(All.TimingsFile, all.TimingsFile);
+ strcpy(All.SnapshotFileBase, all.SnapshotFileBase);
+
+ if(All.TimeMax != all.TimeMax)
+ readjust_timebase(All.TimeMax, all.TimeMax);
+ }
+
+#ifdef PMGRID
+ long_range_init_regionsize();
+#endif
+
+ if(All.ComovingIntegrationOn)
+ init_drift_table();
+
+#ifdef COSMICTIME
+ if(All.ComovingIntegrationOn)
+ {
+ if (ThisTask==0)
+ printf("Initialize cosmic table\n");
+ init_cosmictime_table();
+ if (ThisTask==0)
+ printf("Initialize cosmic table done.\n");
+ }
+#endif
+
+
+ if(RestartFlag == 2)
+ All.Ti_nextoutput = find_next_outputtime(All.Ti_Current + 1);
+ else
+ All.Ti_nextoutput = find_next_outputtime(All.Ti_Current);
+
+
+ All.TimeLastRestartFile = CPUThisRun;
+
+
+ /* other initialization for special behavior */
+
+
+#ifdef SFR
+ if (ThisTask == 0)
+ printf("StarFormationStarMass = %g\n\n",All.StarFormationStarMass);
+#endif
+
+
+#ifdef OUTERPOTENTIAL
+ if(ThisTask == 0) printf("Initialize outer potential...\n");
+ init_outer_potential();
+ if(ThisTask == 0) printf("Initialize outer potential done.\n");
+#endif
+
+
+#ifdef BUBBLES
+ if(ThisTask == 0) printf("Initialize bubble function...\n");
+ init_bubble();
+ if(ThisTask == 0) printf("Initialize bubble function done.\n");
+#endif
+
+
+#ifdef MULTIPHASE
+ if(ThisTask == 0) printf("Initialize sticky...\n");
+ header.critical_energy_spec = All.CriticalEgySpec;
+ init_sticky();
+ if(ThisTask == 0) printf("Initialize sticky done.\n");
+#endif
+
+
+#ifdef PNBODY
+ if(ThisTask == 0) printf("Initialize pnbody...\n");
+ init_pnbody();
+ if(ThisTask == 0) printf("Initialize pnbody done.\n");
+#endif
+
+
+#ifdef DETAILED_CPU
+ tend = second();
+ All.CPU_Begrun += timediff(tstart, tend);
+ All.CPU_Begrun -= All.CPU_Leapfrog;
+ All.CPU_Begrun -= All.CPU_Domain;
+ All.CPU_Begrun -= All.CPU_Snapshot;
+#endif
+
+
+}
+
+
+
+
+/*! Computes conversion factors between internal code units and the
+ * cgs-system.
+ */
+void set_units(void)
+{
+ double meanweight;
+
+ All.UnitTime_in_s = All.UnitLength_in_cm / All.UnitVelocity_in_cm_per_s;
+ All.UnitTime_in_Megayears = All.UnitTime_in_s / SEC_PER_MEGAYEAR;
+
+ if(All.GravityConstantInternal == 0)
+ All.G = GRAVITY / pow(All.UnitLength_in_cm, 3) * All.UnitMass_in_g * pow(All.UnitTime_in_s, 2);
+ else
+ All.G = All.GravityConstantInternal;
+
+ All.UnitDensity_in_cgs = All.UnitMass_in_g / pow(All.UnitLength_in_cm, 3);
+ All.UnitPressure_in_cgs = All.UnitMass_in_g / All.UnitLength_in_cm / pow(All.UnitTime_in_s, 2);
+ All.UnitCoolingRate_in_cgs = All.UnitPressure_in_cgs / All.UnitTime_in_s;
+ All.UnitEnergy_in_cgs = All.UnitMass_in_g * pow(All.UnitLength_in_cm, 2) / pow(All.UnitTime_in_s, 2);
+
+ /* convert some physical input parameters to internal units */
+ All.Hubble = HUBBLE * All.UnitTime_in_s;
+
+ meanweight = 4.0 / (1 + 3 * HYDROGEN_MASSFRAC); /* note: we assume neutral gas here */
+ /*meanweight = 4 / (8 - 5 * (1 - HYDROGEN_MASSFRAC));*/ /* note: we assume FULL ionized gas here */
+
+
+ All.Boltzmann = BOLTZMANN /All.UnitEnergy_in_cgs;
+ All.ProtonMass = PROTONMASS/All.UnitMass_in_g;
+ All.mumh = All.ProtonMass*meanweight;
+
+
+#ifdef MULTIPHASE
+
+ All.StickyTime *= 3.1536e+13*All.HubbleParam/All.UnitTime_in_s; /* Myr to code unit */
+ All.StickyCollisionTime *= 3.1536e+13*All.HubbleParam/All.UnitTime_in_s; /* Myr to code unit */
+ All.StickyIdleTime *= 3.1536e+13*All.HubbleParam/All.UnitTime_in_s; /* Myr to code unit */
+
+ All.StickyMinVelocity *=1e5/All.UnitVelocity_in_cm_per_s; /* km/s to code unit */
+ All.StickyMaxVelocity *=1e5/All.UnitVelocity_in_cm_per_s; /* km/s to code unit */
+
+ if (All.StickyTime==0)
+ All.StickyLambda = 0;
+ else
+ All.StickyLambda = 1./All.StickyTime;
+
+
+ All.CriticalEgySpec = 1./GAMMA_MINUS1 * All.Boltzmann/All.mumh * All.CriticalTemperature;
+ All.CriticalNonCollisionalEgySpec = 1./GAMMA_MINUS1 * All.Boltzmann/All.mumh * All.CriticalNonCollisionalTemperature;
+
+ All.StickyDensity = All.StickyDensity/All.UnitDensity_in_cgs/(All.HubbleParam*All.HubbleParam);
+
+
+//if((All.StickyLambda > 0.1/All.MaxSizeTimestep)&&(ThisTask==0))
+// {
+// printf("\nStickyLambda is to big and you may experiment numerical problems !\n");
+// printf("You should either decrease StickyLambda or decrease MaxSizeTimestep.\n");
+// printf("(StickyLambda=%g,maxStickyLambda=%g)\n",All.StickyLambda,0.01/All.MaxSizeTimestep);
+// printf("try \n");
+// printf("StickyLambda <= %g or MaxSizeTimestep <= %g \n",(0.01/All.MaxSizeTimestep),(0.01/All.StickyLambda));
+// fflush(stdout);
+// endrun(121212);
+// }
+
+
+#ifdef COLDGAS_CYCLE
+ All.ColdGasCycleTransitionTime *= 3.1536e+13*All.HubbleParam/All.UnitTime_in_s; /* Myr to code unit */
+#endif
+#endif
+
+
+#ifdef SFR
+ All.StarFormationTime = All.StarFormationTime/All.UnitTime_in_s * 3.1536e16*All.HubbleParam;
+ All.StarFormationDensity = All.StarFormationDensity/All.UnitDensity_in_cgs/(All.HubbleParam*All.HubbleParam);
+#endif
+
+
+#if defined (HEATING_PE) || defined (STELLAR_FLUX)
+ All.HeatingPeLMRatio[0] = All.HeatingPeLMRatioGas;
+ All.HeatingPeLMRatio[1] = All.HeatingPeLMRatioHalo;
+ All.HeatingPeLMRatio[2] = All.HeatingPeLMRatioDisk;
+ All.HeatingPeLMRatio[3] = All.HeatingPeLMRatioBulge;
+ All.HeatingPeLMRatio[4] = All.HeatingPeLMRatioStars;
+ All.HeatingPeLMRatio[5] = All.HeatingPeLMRatioBndry;
+
+ int k;
+ for (k=0;k<6;k++)
+ {
+ All.HeatingPeLMRatio[k] *= 1./SOLAR_MASS; /* erg/s/Msol to erg/s/g */
+ All.HeatingPeLMRatio[k] *= All.UnitMass_in_g*All.UnitTime_in_s / All.UnitEnergy_in_cgs / All.HubbleParam; /* erg/s/g to code unit */
+ }
+#endif
+
+#ifdef FEEDBACK
+ All.SupernovaEgySpecPerMassUnit *= All.UnitMass_in_g / All.UnitEnergy_in_cgs;
+ All.SupernovaTime *= 3.1536e+13*All.HubbleParam/All.UnitTime_in_s; /* Myr to code unit */
+#endif
+
+#ifdef FEEDBACK_WIND
+ All.SupernovaWindEgySpecPerMassUnit *= All.UnitMass_in_g / All.UnitEnergy_in_cgs;
+ All.SupernovaWindSpeed = sqrt( 2*All.SupernovaWindFractionInEgyKin * All.SupernovaWindEgySpecPerMassUnit / All.SupernovaWindParameter );
+#endif
+
+#if defined (AGN_ACCRETION) || defined (BONDI_ACCRETION)
+ All.LightSpeed = C/All.UnitVelocity_in_cm_per_s;
+#endif
+
+
+#ifdef CHIMIE
+ All.ChimieSupernovaEnergy = All.ChimieSupernovaEnergy/All.UnitMass_in_g/pow(All.UnitVelocity_in_cm_per_s,2)*All.HubbleParam;
+ All.ChimieWindSpeed = All.ChimieWindSpeed*1e5/All.UnitVelocity_in_cm_per_s;
+ All.ChimieWindTime = All.ChimieWindTime*3.1536e13/All.UnitTime_in_s*All.HubbleParam;
+ All.ChimieSNIaThermalTime = All.ChimieSNIaThermalTime*3.1536e13/All.UnitTime_in_s*All.HubbleParam;
+ All.ChimieSNIIThermalTime = All.ChimieSNIIThermalTime*3.1536e13/All.UnitTime_in_s*All.HubbleParam;
+ All.ChimieMaxSizeTimestep = All.ChimieMaxSizeTimestep*3.1536e13/All.UnitTime_in_s*All.HubbleParam;
+#endif
+
+
+
+
+
+
+ if(ThisTask == 0)
+ {
+ printf("\nHubble (internal units) = %g\n", All.Hubble);
+ printf("G (internal units) = %g\n", All.G);
+ printf("Boltzmann = %g \n", All.Boltzmann);
+ printf("ProtonMass = %g \n", All.ProtonMass);
+ printf("mumh = %g \n", All.mumh);
+ printf("UnitMass_in_g = %g \n", All.UnitMass_in_g);
+ printf("UnitTime_in_s = %g \n", All.UnitTime_in_s);
+ printf("UnitVelocity_in_cm_per_s = %g \n", All.UnitVelocity_in_cm_per_s);
+ printf("UnitDensity_in_cgs = %g \n", All.UnitDensity_in_cgs);
+ printf("UnitEnergy_in_cgs = %g \n", All.UnitEnergy_in_cgs);
+ printf("\n");
+#ifdef SFR
+ printf("StarFormationDensity (internal units) = %g \n", All.StarFormationDensity);
+ printf("StarFormationTime (internal units) = %g \n", All.StarFormationTime);
+#endif
+#ifdef FEEDBACK
+ printf("SupernovaTime (internal units) = %g \n", All.SupernovaTime);
+ printf("SupernovaEgySpecPerMassUnit (internal units) = %g \n", All.SupernovaEgySpecPerMassUnit);
+#endif
+
+#ifdef FEEDBACK_WIND
+ printf("SupernovaWindEgySpecPerMassUnit (internal units) = %g \n", All.SupernovaWindEgySpecPerMassUnit);
+ printf("SupernovaWindSpeed (internal units) = %g \n", All.SupernovaWindSpeed);
+#endif
+
+#ifdef MULTIPHASE
+ printf("CriticalEgySpec (internal units) = %g \n", All.CriticalEgySpec);
+ printf("CriticalNonCollisionalEgySpec (internal units) = %g \n", All.CriticalNonCollisionalEgySpec);
+ printf("StickyCollisionTime (internal units) = %g \n", All.StickyCollisionTime);
+ printf("StickyIdleTime (internal units) = %g \n", All.StickyIdleTime);
+ printf("StickyDensity (internal units) = %g \n", All.StickyDensity);
+ printf("StickyTime (internal units) = %g \n", All.StickyTime);
+ printf("StickyMinVelocity (internal units) = %g \n", All.StickyMinVelocity);
+ printf("StickyMaxVelocity (internal units) = %g \n", All.StickyMaxVelocity);
+#endif
+
+#ifdef COLDGAS_CYCLE
+ printf("ColdGasCycleTransitionTime (internal units) = %g \n", All.ColdGasCycleTransitionTime);
+#endif
+
+#ifdef CHIMIE
+ printf("ChimieSupernovaEnergy (internal units) = %g \n", All.ChimieSupernovaEnergy);
+ printf("ChimieWindSpeed (internal units) = %g \n", All.ChimieWindSpeed);
+ printf("ChimieWindTime (internal units) = %g \n", All.ChimieWindTime);
+ printf("ChimieSNIaThermalTime (internal units) = %g \n", All.ChimieSNIaThermalTime);
+ printf("ChimieSNIIThermalTime (internal units) = %g \n", All.ChimieSNIIThermalTime);
+ printf("ChimieMaxSizeTimestep (internal units) = %g \n", All.ChimieMaxSizeTimestep);
+#endif
+
+ printf("\n");
+ }
+
+#ifdef ISOTHERM_EQS
+ All.MinEgySpec = 0;
+#else
+ All.MinEgySpec = 1 / meanweight * (1.0 / GAMMA_MINUS1) * (BOLTZMANN / PROTONMASS) * All.MinGasTemp;
+ All.MinEgySpec *= All.UnitMass_in_g / All.UnitEnergy_in_cgs;
+#endif
+
+}
+
+
+
+
+
+/*! Initialize local system state variables
+ */
+void init_local_sys_state(void)
+{
+
+#ifdef SFR
+ LocalSysState.StarEnergyInt = 0.;
+#ifdef COOLING
+ LocalSysState.RadiatedEnergy = 0.;
+#endif
+#endif
+
+
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ LocalSysState.EnergyThermalFeedback = 0.;
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ LocalSysState.EnergyKineticFeedback = 0.;
+#endif
+
+#ifdef MULTIPHASE
+ LocalSysState.EnergyRadSticky = 0.;
+#endif
+
+#ifdef FEEDBACK_WIND
+ LocalSysState.EnergyFeedbackWind = 0.;
+#endif
+}
+
+
+
+/*! This function opens various log-files that report on the status and
+ * performance of the simulstion. On restart from restart-files
+ * (start-option 1), the code will append to these files.
+ */
+void open_outputfiles(void)
+{
+ char mode[2], buf[200];
+
+#ifdef ADVANCEDSTATISTICS
+ int i=0;
+#endif
+
+ if(ThisTask != 0) /* only the root processor writes to the log files */
+ return;
+
+ if(RestartFlag == 0)
+ strcpy(mode, "w");
+ else
+ strcpy(mode, "a");
+
+
+ sprintf(buf, "%s%s", All.OutputDir, All.CpuFile);
+ if(!(FdCPU = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+#ifdef ADVANCEDCPUSTATISTICS
+ else
+ {
+ if(RestartFlag == 0) /* write the header */
+ {
+ fprintf(FdCPU,"# Step ");
+ fprintf(FdCPU,"Time ");
+ fprintf(FdCPU,"nCPUs ");
+ fprintf(FdCPU,"CPU_Total ");
+#ifdef DETAILED_CPU
+ fprintf(FdCPU,"CPU_Leapfrog ");
+ fprintf(FdCPU,"CPU_Physics ");
+ fprintf(FdCPU,"CPU_Residual ");
+ fprintf(FdCPU,"CPU_Accel ");
+ fprintf(FdCPU,"CPU_Begrun ");
+#endif
+ fprintf(FdCPU,"CPU_Gravity ");
+ fprintf(FdCPU,"CPU_Hydro ");
+#ifdef COOLING
+ fprintf(FdCPU,"CPU_Cooling ");
+#endif
+#ifdef SFR
+ fprintf(FdCPU,"CPU_StarFormation ");
+#endif
+#ifdef CHIMIE
+ fprintf(FdCPU,"CPU_Chimie ");
+#endif
+#ifdef MULTIPHASE
+ fprintf(FdCPU,"CPU_Sticky ");
+#endif
+ fprintf(FdCPU,"CPU_Domain ");
+ fprintf(FdCPU,"CPU_Potential ");
+ fprintf(FdCPU,"CPU_Predict ");
+ fprintf(FdCPU,"CPU_TimeLine ");
+ fprintf(FdCPU,"CPU_Snapshot ");
+ fprintf(FdCPU,"CPU_TreeWalk ");
+ fprintf(FdCPU,"CPU_TreeConstruction ");
+ fprintf(FdCPU,"CPU_CommSum ");
+ fprintf(FdCPU,"CPU_Imbalance ");
+ fprintf(FdCPU,"CPU_HydCompWalk ");
+ fprintf(FdCPU,"CPU_HydCommSumm ");
+ fprintf(FdCPU,"CPU_HydImbalance ");
+ fprintf(FdCPU,"CPU_EnsureNgb ");
+ fprintf(FdCPU,"CPU_PM ");
+ fprintf(FdCPU,"CPU_Peano ");
+#ifdef DETAILED_CPU_DOMAIN
+ fprintf(FdCPU,"CPU_Domain_findExtend ");
+ fprintf(FdCPU,"CPU_Domain_determineTopTree ");
+ fprintf(FdCPU,"CPU_Domain_sumCost ");
+ fprintf(FdCPU,"CPU_Domain_findSplit ");
+ fprintf(FdCPU,"CPU_Domain_shiftSplit ");
+ fprintf(FdCPU,"CPU_Domain_countToGo ");
+ fprintf(FdCPU,"CPU_Domain_exchange ");
+#endif
+#ifdef DETAILED_CPU_GRAVITY
+ fprintf(FdCPU,"CPU_Gravity_TreeWalk1 ");
+ fprintf(FdCPU,"CPU_Gravity_TreeWalk2 ");
+ fprintf(FdCPU,"CPU_Gravity_CommSum1 ");
+ fprintf(FdCPU,"CPU_Gravity_CommSum2 ");
+ fprintf(FdCPU,"CPU_Gravity_Imbalance1 ");
+ fprintf(FdCPU,"CPU_Gravity_Imbalance2 ");
+#endif
+ /* return */
+ fprintf(FdCPU,"\n");
+ fflush(FdCPU);
+ }
+ }
+#endif
+
+
+
+
+
+ sprintf(buf, "%s%s", All.OutputDir, All.InfoFile);
+ if(!(FdInfo = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+
+ sprintf(buf, "%s%s", All.OutputDir, All.LogFile);
+ if(!(FdLog = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+
+ sprintf(buf, "%s%s", All.OutputDir, All.EnergyFile);
+ if(!(FdEnergy = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+#ifdef ADVANCEDSTATISTICS
+ else
+ {
+ if(RestartFlag == 0) /* write the header */
+ {
+ fprintf(FdEnergy,"# Time EnergyInt EnergyPot EnergyKin ");
+#ifdef COOLING
+ fprintf(FdEnergy,"EnergyRadSph ");
+#endif
+#ifdef AGN_HEATING
+ fprintf(FdEnergy,"EnergyAGNHeat ");
+#endif
+#ifdef MULTIPHASE
+ fprintf(FdEnergy,"EnergyRadSticky ");
+#endif
+#ifdef FEEDBACK_WIND
+ fprintf(FdEnergy,"EnergyFeedbackWind ");
+#endif
+#ifdef BUBBLES
+ fprintf(FdEnergy,"EnergyBubbles ");
+#endif
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ fprintf(FdEnergy,"EnergyThermalFeedback ");
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ fprintf(FdEnergy,"EnergyKineticFeedback ");
+#endif
+ for (i=0;i<6;i++)
+ {
+ fprintf(FdEnergy,"EnergyIntComp%d EnergyPotComp%d EnergyKinComp%d ",i+1,i+1,i+1);
+#ifdef COOLING
+ fprintf(FdEnergy,"EnergyRadSphComp%d ",i+1);
+#endif
+#ifdef MULTIPHASE
+ fprintf(FdEnergy,"EnergyRadStickyComp%d ",i+1);
+#endif
+#ifdef FEEDBACK_WIND
+ fprintf(FdEnergy,"EnergyFeedbackWindComp%d ",i+1);
+#endif
+#ifdef BUBBLES
+ fprintf(FdEnergy,"EnergyBubblesComp%d ",i+1);
+#endif
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ fprintf(FdEnergy,"EnergyThermalFeedbackComp%d ",i+1);
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ fprintf(FdEnergy,"EnergyKineticFeedbackComp%d ",i+1);
+#endif
+ }
+
+ for (i=0;i<6;i++)
+ fprintf(FdEnergy,"MassComp%d ",i+1);
+
+ /* return */
+ fprintf(FdEnergy,"\n");
+ fflush(FdEnergy);
+ }
+ }
+#endif
+
+#ifdef SYSTEMSTATISTICS
+ sprintf(buf, "%s%s", All.OutputDir, All.SystemFile);
+ if(!(FdSystem = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+#endif
+
+ sprintf(buf, "%s%s", All.OutputDir, All.TimingsFile);
+ if(!(FdTimings = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+
+#ifdef FORCETEST
+ if(RestartFlag == 0)
+ {
+ sprintf(buf, "%s%s", All.OutputDir, "forcetest.txt");
+ if(!(FdForceTest = fopen(buf, "w")))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+ fclose(FdForceTest);
+ }
+#endif
+
+#ifdef SFR
+ sprintf(buf, "%s%s", All.OutputDir, All.SfrFile);
+ if(!(FdSfr = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+#endif
+
+#ifdef CHIMIE
+ sprintf(buf, "%s%s", All.OutputDir, All.ChimieFile);
+ if(!(FdChimie = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+#endif
+
+#ifdef MULTIPHASE
+ sprintf(buf, "%s%s", All.OutputDir, All.PhaseFile);
+ if(!(FdPhase = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+ sprintf(buf, "%s%s", All.OutputDir, All.StickyFile);
+ if(!(FdSticky = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+#endif
+
+#ifdef AGN_ACCRETION
+ sprintf(buf, "%s%s", All.OutputDir, All.AccretionFile);
+ if(!(FdAccretion = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+#endif
+
+#ifdef BONDI_ACCRETION
+ sprintf(buf, "%s%s", All.OutputDir, All.BondiFile);
+ if(!(FdBondi = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+#endif
+
+#ifdef BUBBLES
+ sprintf(buf, "%s%s", All.OutputDir, All.BubbleFile);
+ if(!(FdBubble = fopen(buf, mode)))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(1);
+ }
+#endif
+}
+
+
+/*! This function closes the global log-files.
+ */
+void close_outputfiles(void)
+{
+ if(ThisTask != 0) /* only the root processor writes to the log files */
+ return;
+
+ fclose(FdCPU);
+ fclose(FdInfo);
+ fclose(FdLog);
+ fclose(FdEnergy);
+#ifdef SYSTEMSTATISTICS
+ fclose(FdSystem);
+#endif
+ fclose(FdTimings);
+#ifdef FORCETEST
+ fclose(FdForceTest);
+#endif
+
+#ifdef SFR
+ fclose(FdSfr);
+#endif
+
+#ifdef MULTIPHASE
+ fclose(FdPhase);
+ fclose(FdSticky);
+#endif
+
+#ifdef AGN_ACCRETION
+ fclose(FdAccretion);
+#endif
+
+#ifdef BONDI_ACCRETION
+ fclose(FdBondi);
+#endif
+
+#ifdef BUBBLES
+ fclose(FdBubble);
+#endif
+}
+
+
+
+
+/*! This function parses the parameterfile in a simple way. Each paramater
+ * is defined by a keyword (`tag'), and can be either of type double, int,
+ * or character string. The routine makes sure that each parameter
+ * appears exactly once in the parameterfile, otherwise error messages are
+ * produced that complain about the missing parameters.
+ */
+void read_parameter_file(char *fname)
+{
+#define DOUBLE 1
+#define STRING 2
+#define INT 3
+#define MAXTAGS 300
+
+ FILE *fd, *fdout;
+ char buf[200], buf1[200], buf2[200], buf3[400];
+ int i, j, nt;
+ int id[MAXTAGS];
+ void *addr[MAXTAGS];
+ char tag[MAXTAGS][50];
+ int errorFlag = 0;
+
+ if(sizeof(long long) != 8)
+ {
+ if(ThisTask == 0)
+ printf("\nType `long long' is not 64 bit on this platform. Stopping.\n\n");
+ endrun(0);
+ }
+
+ if(sizeof(int) != 4)
+ {
+ if(ThisTask == 0)
+ printf("\nType `int' is not 32 bit on this platform. Stopping.\n\n");
+ endrun(0);
+ }
+
+ if(sizeof(float) != 4)
+ {
+ if(ThisTask == 0)
+ printf("\nType `float' is not 32 bit on this platform. Stopping.\n\n");
+ endrun(0);
+ }
+
+ if(sizeof(double) != 8)
+ {
+ if(ThisTask == 0)
+ printf("\nType `double' is not 64 bit on this platform. Stopping.\n\n");
+ endrun(0);
+ }
+
+
+ if(ThisTask == 0) /* read parameter file on process 0 */
+ {
+ nt = 0;
+
+ strcpy(tag[nt], "InitCondFile");
+ addr[nt] = All.InitCondFile;
+ id[nt++] = STRING;
+
+ strcpy(tag[nt], "OutputDir");
+ addr[nt] = All.OutputDir;
+ id[nt++] = STRING;
+
+ strcpy(tag[nt], "SnapshotFileBase");
+ addr[nt] = All.SnapshotFileBase;
+ id[nt++] = STRING;
+
+ strcpy(tag[nt], "EnergyFile");
+ addr[nt] = All.EnergyFile;
+ id[nt++] = STRING;
+#ifdef SYSTEMSTATISTICS
+ strcpy(tag[nt], "SystemFile");
+ addr[nt] = All.SystemFile;
+ id[nt++] = STRING;
+#endif
+ strcpy(tag[nt], "CpuFile");
+ addr[nt] = All.CpuFile;
+ id[nt++] = STRING;
+#ifdef SFR
+ strcpy(tag[nt], "SfrFile");
+ addr[nt] = All.SfrFile;
+ id[nt++] = STRING;
+#endif
+#ifdef CHIMIE
+ strcpy(tag[nt], "ChimieFile");
+ addr[nt] = All.ChimieFile;
+ id[nt++] = STRING;
+#endif
+#ifdef MULTIPHASE
+ strcpy(tag[nt], "PhaseFile");
+ addr[nt] = All.PhaseFile;
+ id[nt++] = STRING;
+ strcpy(tag[nt], "StickyFile");
+ addr[nt] = All.StickyFile;
+ id[nt++] = STRING;
+#endif
+#ifdef AGN_ACCRETION
+ strcpy(tag[nt], "AccretionFile");
+ addr[nt] = All.AccretionFile;
+ id[nt++] = STRING;
+#endif
+#ifdef BONDI_ACCRETION
+ strcpy(tag[nt], "BondiFile");
+ addr[nt] = All.BondiFile;
+ id[nt++] = STRING;
+#endif
+#ifdef BUBBLES
+ strcpy(tag[nt], "BubbleFile");
+ addr[nt] = All.BubbleFile;
+ id[nt++] = STRING;
+#endif
+ strcpy(tag[nt], "InfoFile");
+ addr[nt] = All.InfoFile;
+ id[nt++] = STRING;
+
+ strcpy(tag[nt], "LogFile");
+ addr[nt] = All.LogFile;
+ id[nt++] = STRING;
+
+ strcpy(tag[nt], "TimingsFile");
+ addr[nt] = All.TimingsFile;
+ id[nt++] = STRING;
+
+ strcpy(tag[nt], "RestartFile");
+ addr[nt] = All.RestartFile;
+ id[nt++] = STRING;
+
+ strcpy(tag[nt], "ResubmitCommand");
+ addr[nt] = All.ResubmitCommand;
+ id[nt++] = STRING;
+
+ strcpy(tag[nt], "OutputListFilename");
+ addr[nt] = All.OutputListFilename;
+ id[nt++] = STRING;
+
+ strcpy(tag[nt], "OutputListOn");
+ addr[nt] = &All.OutputListOn;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "Omega0");
+ addr[nt] = &All.Omega0;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "OmegaBaryon");
+ addr[nt] = &All.OmegaBaryon;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "OmegaLambda");
+ addr[nt] = &All.OmegaLambda;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "HubbleParam");
+ addr[nt] = &All.HubbleParam;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "BoxSize");
+ addr[nt] = &All.BoxSize;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "PeriodicBoundariesOn");
+ addr[nt] = &All.PeriodicBoundariesOn;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "TimeOfFirstSnapshot");
+ addr[nt] = &All.TimeOfFirstSnapshot;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "CpuTimeBetRestartFile");
+ addr[nt] = &All.CpuTimeBetRestartFile;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "TimeBetStatistics");
+ addr[nt] = &All.TimeBetStatistics;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "TimeBegin");
+ addr[nt] = &All.TimeBegin;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "TimeMax");
+ addr[nt] = &All.TimeMax;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "TimeBetSnapshot");
+ addr[nt] = &All.TimeBetSnapshot;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "UnitVelocity_in_cm_per_s");
+ addr[nt] = &All.UnitVelocity_in_cm_per_s;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "UnitLength_in_cm");
+ addr[nt] = &All.UnitLength_in_cm;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "UnitMass_in_g");
+ addr[nt] = &All.UnitMass_in_g;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "TreeDomainUpdateFrequency");
+ addr[nt] = &All.TreeDomainUpdateFrequency;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ErrTolIntAccuracy");
+ addr[nt] = &All.ErrTolIntAccuracy;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ErrTolTheta");
+ addr[nt] = &All.ErrTolTheta;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ErrTolForceAcc");
+ addr[nt] = &All.ErrTolForceAcc;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "MinGasHsmlFractional");
+ addr[nt] = &All.MinGasHsmlFractional;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "MaxSizeTimestep");
+ addr[nt] = &All.MaxSizeTimestep;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "MinSizeTimestep");
+ addr[nt] = &All.MinSizeTimestep;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "MaxRMSDisplacementFac");
+ addr[nt] = &All.MaxRMSDisplacementFac;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ArtBulkViscConst");
+ addr[nt] = &All.ArtBulkViscConst;
+ id[nt++] = DOUBLE;
+
+#ifdef ART_CONDUCTIVITY
+ strcpy(tag[nt], "ArtCondConst");
+ addr[nt] = &All.ArtCondConst;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ArtCondThreshold");
+ addr[nt] = &All.ArtCondThreshold;
+ id[nt++] = DOUBLE;
+#endif
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS) || defined(ART_VISCO_CD)
+ strcpy(tag[nt], "ArtBulkViscConstMin");
+ addr[nt] = &All.ArtBulkViscConstMin;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ArtBulkViscConstMax");
+ addr[nt] = &All.ArtBulkViscConstMax;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ArtBulkViscConstL");
+ addr[nt] = &All.ArtBulkViscConstL;
+ id[nt++] = DOUBLE;
+#endif
+
+
+#ifdef AB_TURB
+ strcpy(tag[nt], "ST_decay");
+ addr[nt] = &All.StDecay;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ST_energy");
+ addr[nt] = &All.StEnergy;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ST_DtFreq");
+ addr[nt] = &All.StDtFreq;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ST_Kmin");
+ addr[nt] = &All.StKmin;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ST_Kmax");
+ addr[nt] = &All.StKmax;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ST_SolWeight");
+ addr[nt] = &All.StSolWeight;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ST_AmplFac");
+ addr[nt] = &All.StAmplFac;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ST_SpectForm");
+ addr[nt] = &All.StSpectForm;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "ST_Seed");
+ addr[nt] = &All.StSeed;
+ id[nt++] = INT;
+#endif
+ strcpy(tag[nt], "CourantFac");
+ addr[nt] = &All.CourantFac;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "DesNumNgb");
+ addr[nt] = &All.DesNumNgb;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "MaxNumNgbDeviation");
+ addr[nt] = &All.MaxNumNgbDeviation;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ComovingIntegrationOn");
+ addr[nt] = &All.ComovingIntegrationOn;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "ICFormat");
+ addr[nt] = &All.ICFormat;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "SnapFormat");
+ addr[nt] = &All.SnapFormat;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "NumFilesPerSnapshot");
+ addr[nt] = &All.NumFilesPerSnapshot;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "NumFilesWrittenInParallel");
+ addr[nt] = &All.NumFilesWrittenInParallel;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "ResubmitOn");
+ addr[nt] = &All.ResubmitOn;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "TypeOfTimestepCriterion");
+ addr[nt] = &All.TypeOfTimestepCriterion;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "TypeOfOpeningCriterion");
+ addr[nt] = &All.TypeOfOpeningCriterion;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "TimeLimitCPU");
+ addr[nt] = &All.TimeLimitCPU;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SofteningHalo");
+ addr[nt] = &All.SofteningHalo;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SofteningDisk");
+ addr[nt] = &All.SofteningDisk;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SofteningBulge");
+ addr[nt] = &All.SofteningBulge;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SofteningGas");
+ addr[nt] = &All.SofteningGas;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SofteningStars");
+ addr[nt] = &All.SofteningStars;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SofteningBndry");
+ addr[nt] = &All.SofteningBndry;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SofteningHaloMaxPhys");
+ addr[nt] = &All.SofteningHaloMaxPhys;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SofteningDiskMaxPhys");
+ addr[nt] = &All.SofteningDiskMaxPhys;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SofteningBulgeMaxPhys");
+ addr[nt] = &All.SofteningBulgeMaxPhys;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SofteningGasMaxPhys");
+ addr[nt] = &All.SofteningGasMaxPhys;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SofteningStarsMaxPhys");
+ addr[nt] = &All.SofteningStarsMaxPhys;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SofteningBndryMaxPhys");
+ addr[nt] = &All.SofteningBndryMaxPhys;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "BufferSize");
+ addr[nt] = &All.BufferSize;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "PartAllocFactor");
+ addr[nt] = &All.PartAllocFactor;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "TreeAllocFactor");
+ addr[nt] = &All.TreeAllocFactor;
+ id[nt++] = DOUBLE;
+
+#ifdef SFR
+ strcpy(tag[nt], "StarsAllocFactor");
+ addr[nt] = &All.StarsAllocFactor;
+ id[nt++] = DOUBLE;
+#endif
+
+ strcpy(tag[nt], "GravityConstantInternal");
+ addr[nt] = &All.GravityConstantInternal;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "InitGasTemp");
+ addr[nt] = &All.InitGasTemp;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "MinGasTemp");
+ addr[nt] = &All.MinGasTemp;
+ id[nt++] = DOUBLE;
+
+#ifdef RANDOMSEED_AS_PARAMETER
+ strcpy(tag[nt], "RandomSeed");
+ addr[nt] = &All.RandomSeed;
+ id[nt++] = INT;
+#endif
+
+#ifdef COOLING
+ strcpy(tag[nt], "CoolingFile");
+ addr[nt] = All.CoolingFile;
+ id[nt++] = STRING;
+
+ strcpy(tag[nt], "CutofCoolingTemperature");
+ addr[nt] = &All.CutofCoolingTemperature;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "InitGasMetallicity");
+ addr[nt] = &All.InitGasMetallicity;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "CoolingType");
+ addr[nt] = &All.CoolingType;
+ id[nt++] = DOUBLE;
+#endif
+
+#ifdef CHIMIE
+ strcpy(tag[nt], "ChimieNumberOfParameterFiles");
+ addr[nt] = &All.ChimieNumberOfParameterFiles;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "ChimieParameterFile");
+ addr[nt] = All.ChimieParameterFile;
+ id[nt++] = STRING;
+
+ strcpy(tag[nt], "ChimieSupernovaEnergy");
+ addr[nt] = &All.ChimieSupernovaEnergy;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ChimieKineticFeedbackFraction");
+ addr[nt] = &All.ChimieKineticFeedbackFraction;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ChimieWindSpeed");
+ addr[nt] = &All.ChimieWindSpeed;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ChimieWindTime");
+ addr[nt] = &All.ChimieWindTime;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ChimieSNIaThermalTime");
+ addr[nt] = &All.ChimieSNIaThermalTime;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ChimieSNIIThermalTime");
+ addr[nt] = &All.ChimieSNIIThermalTime;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ChimieMaxSizeTimestep");
+ addr[nt] = &All.ChimieMaxSizeTimestep;
+ id[nt++] = DOUBLE;
+#endif
+
+
+#if defined (HEATING_PE)
+ strcpy(tag[nt], "HeatingPeElectronFraction");
+ addr[nt] = &All.HeatingPeElectronFraction;
+ id[nt++] = DOUBLE;
+#endif
+#if defined (HEATING_PE) || defined (STELLAR_FLUX) || defined (EXTERNAL_FLUX)
+ strcpy(tag[nt], "HeatingPeSolarEnergyDensity");
+ addr[nt] = &All.HeatingPeSolarEnergyDensity;
+ id[nt++] = DOUBLE;
+#endif
+#if defined (HEATING_PE) || defined (STELLAR_FLUX)
+ strcpy(tag[nt], "HeatingPeLMRatioGas");
+ addr[nt] = &All.HeatingPeLMRatioGas;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "HeatingPeLMRatioHalo");
+ addr[nt] = &All.HeatingPeLMRatioHalo;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "HeatingPeLMRatioDisk");
+ addr[nt] = &All.HeatingPeLMRatioDisk;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "HeatingPeLMRatioBulge");
+ addr[nt] = &All.HeatingPeLMRatioBulge;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "HeatingPeLMRatioStars");
+ addr[nt] = &All.HeatingPeLMRatioStars;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "HeatingPeLMRatioBndry");
+ addr[nt] = &All.HeatingPeLMRatioBndry;
+ id[nt++] = DOUBLE;
+#endif
+
+#ifdef EXTERNAL_FLUX
+ strcpy(tag[nt], "HeatingExternalFLuxEnergyDensity");
+ addr[nt] = &All.HeatingExternalFLuxEnergyDensity;
+ id[nt++] = DOUBLE;
+#endif
+
+#ifdef MULTIPHASE
+ strcpy(tag[nt], "CriticalTemperature");
+ addr[nt] = &All.CriticalTemperature;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "CriticalNonCollisionalTemperature");
+ addr[nt] = &All.CriticalNonCollisionalTemperature;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyUseGridForCollisions");
+ addr[nt] = &All.StickyUseGridForCollisions;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "StickyTime");
+ addr[nt] = &All.StickyTime;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyCollisionTime");
+ addr[nt] = &All.StickyCollisionTime;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyIdleTime");
+ addr[nt] = &All.StickyIdleTime;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyMinVelocity");
+ addr[nt] = &All.StickyMinVelocity;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyMaxVelocity");
+ addr[nt] = &All.StickyMaxVelocity;
+ id[nt++] = DOUBLE;
+
+
+ strcpy(tag[nt], "StickyBetaR");
+ addr[nt] = &All.StickyBetaR;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyBetaT");
+ addr[nt] = &All.StickyBetaT;
+ id[nt++] = DOUBLE;
+
+
+ strcpy(tag[nt], "StickyGridNx");
+ addr[nt] = &All.StickyGridNx;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "StickyGridNy");
+ addr[nt] = &All.StickyGridNy;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "StickyGridNz");
+ addr[nt] = &All.StickyGridNz;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "StickyGridXmin");
+ addr[nt] = &All.StickyGridXmin;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyGridXmax");
+ addr[nt] = &All.StickyGridXmax;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyGridYmin");
+ addr[nt] = &All.StickyGridYmin;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyGridYmax");
+ addr[nt] = &All.StickyGridYmax;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyGridZmin");
+ addr[nt] = &All.StickyGridZmin;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyGridZmax");
+ addr[nt] = &All.StickyGridZmax;
+ id[nt++] = DOUBLE;
+
+
+ strcpy(tag[nt], "StickyDensity");
+ addr[nt] = &All.StickyDensity;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyDensityPower");
+ addr[nt] = &All.StickyDensityPower;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StickyRsphFact");
+ addr[nt] = &All.StickyRsphFact;
+ id[nt++] = DOUBLE;
+
+#ifdef COLDGAS_CYCLE
+ strcpy(tag[nt], "ColdGasCycleTransitionTime");
+ addr[nt] = &All.ColdGasCycleTransitionTime;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "ColdGasCycleTransitionParameter");
+ addr[nt] = &All.ColdGasCycleTransitionParameter;
+ id[nt++] = DOUBLE;
+
+#endif
+#endif
+
+#ifdef OUTERPOTENTIAL
+
+#ifdef NFW
+ strcpy(tag[nt], "HaloConcentration");
+ addr[nt] = &All.HaloConcentration;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "HaloMass");
+ addr[nt] = &All.HaloMass;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "GasMassFraction");
+ addr[nt] = &All.GasMassFraction;
+ id[nt++] = DOUBLE;
+#endif
+
+#ifdef PLUMMER
+ strcpy(tag[nt], "PlummerMass");
+ addr[nt] = &All.PlummerMass;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "PlummerSoftenning");
+ addr[nt] = &All.PlummerSoftenning;
+ id[nt++] = DOUBLE;
+#endif
+
+
+#ifdef MIYAMOTONAGAI
+ strcpy(tag[nt], "MiyamotoNagaiMass");
+ addr[nt] = &All.MiyamotoNagaiMass;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "MiyamotoNagaiHr");
+ addr[nt] = &All.MiyamotoNagaiHr;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "MiyamotoNagaiHz");
+ addr[nt] = &All.MiyamotoNagaiHz;
+ id[nt++] = DOUBLE;
+#endif
+
+
+#ifdef PISOTHERM
+ strcpy(tag[nt], "Rho0");
+ addr[nt] = &All.Rho0;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "Rc");
+ addr[nt] = &All.Rc;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "GasMassFraction");
+ addr[nt] = &All.GasMassFraction;
+ id[nt++] = DOUBLE;
+#endif
+
+#ifdef CORIOLIS
+ strcpy(tag[nt], "CoriolisOmegaX0");
+ addr[nt] = &All.CoriolisOmegaX0;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "CoriolisOmegaY0");
+ addr[nt] = &All.CoriolisOmegaY0;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "CoriolisOmegaZ0");
+ addr[nt] = &All.CoriolisOmegaZ0;
+ id[nt++] = DOUBLE;
+#endif
+
+#endif
+
+#ifdef SFR
+ strcpy(tag[nt], "StarFormationNStarsFromGas");
+ addr[nt] = &All.StarFormationNStarsFromGas;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "StarFormationMgMsFraction");
+ addr[nt] = &All.StarFormationMgMsFraction;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StarFormationStarMass");
+ addr[nt] = &All.StarFormationStarMass;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StarFormationType");
+ addr[nt] = &All.StarFormationType;
+ id[nt++] = INT;
+
+ strcpy(tag[nt], "StarFormationCstar");
+ addr[nt] = &All.StarFormationCstar;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StarFormationTime");
+ addr[nt] = &All.StarFormationTime;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StarFormationDensity");
+ addr[nt] = &All.StarFormationDensity;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "StarFormationTemperature");
+ addr[nt] = &All.StarFormationTemperature;
+ id[nt++] = DOUBLE;
+#endif
+
+#ifdef FEEDBACK
+ strcpy(tag[nt], "SupernovaEgySpecPerMassUnit");
+ addr[nt] = &All.SupernovaEgySpecPerMassUnit;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SupernovaFractionInEgyKin");
+ addr[nt] = &All.SupernovaFractionInEgyKin;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SupernovaTime");
+ addr[nt] = &All.SupernovaTime;
+ id[nt++] = DOUBLE;
+#endif
+
+#ifdef FEEDBACK_WIND
+ strcpy(tag[nt], "SupernovaWindEgySpecPerMassUnit");
+ addr[nt] = &All.SupernovaWindEgySpecPerMassUnit;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SupernovaWindFractionInEgyKin");
+ addr[nt] = &All.SupernovaWindFractionInEgyKin;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SupernovaWindParameter");
+ addr[nt] = &All.SupernovaWindParameter;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "SupernovaWindIntAccuracy");
+ addr[nt] = &All.SupernovaWindIntAccuracy;
+ id[nt++] = DOUBLE;
+#endif
+
+#ifdef AGN_ACCRETION
+ strcpy(tag[nt], "TimeBetAccretion");
+ addr[nt] = &All.TimeBetAccretion;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "AccretionRadius");
+ addr[nt] = &All.AccretionRadius;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "AGNFactor");
+ addr[nt] = &All.AGNFactor;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "MinMTotInRa");
+ addr[nt] = &All.MinMTotInRa;
+ id[nt++] = DOUBLE;
+#endif
+
+#ifdef BUBBLES
+ strcpy(tag[nt], "BubblesDelta");
+ addr[nt] = &All.BubblesDelta;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "BubblesAlpha");
+ addr[nt] = &All.BubblesAlpha;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "BubblesRadiusFactor");
+ addr[nt] = &All.BubblesRadiusFactor;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "BubblesInitFile");
+ addr[nt] = All.BubblesInitFile;
+ id[nt++] = STRING;
+#endif
+
+#ifdef AGN_HEATING
+ strcpy(tag[nt], "AGNHeatingPower");
+ addr[nt] = &All.AGNHeatingPower;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "AGNHeatingRmax");
+ addr[nt] = &All.AGNHeatingRmax;
+ id[nt++] = DOUBLE;
+#endif
+
+#ifdef BONDI_ACCRETION
+ strcpy(tag[nt], "BondiEfficiency");
+ addr[nt] = &All.BondiEfficiency;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "BondiBlackHoleMass");
+ addr[nt] = &All.BondiBlackHoleMass;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "BondiHsmlFactor");
+ addr[nt] = &All.BondiHsmlFactor;
+ id[nt++] = DOUBLE;
+
+ strcpy(tag[nt], "BondiTimeBet");
+ addr[nt] = &All.BondiTimeBet;
+ id[nt++] = DOUBLE;
+#endif
+
+
+ if((fd = fopen(fname, "r")))
+ {
+ sprintf(buf, "%s%s", fname, "-usedvalues");
+ if(!(fdout = fopen(buf, "w")))
+ {
+ printf("error opening file '%s' \n", buf);
+ errorFlag = 1;
+ }
+ else
+ {
+ while(!feof(fd))
+ {
+ *buf = 0;
+ fgets(buf, 200, fd);
+ if(sscanf(buf, "%s%s%s", buf1, buf2, buf3) < 2)
+ continue;
+
+ if(buf1[0] == '%')
+ continue;
+
+ for(i = 0, j = -1; i < nt; i++)
+ if(strcmp(buf1, tag[i]) == 0)
+ {
+ j = i;
+ tag[i][0] = 0;
+ break;
+ }
+
+ if(j >= 0)
+ {
+ switch (id[j])
+ {
+ case DOUBLE:
+ *((double *) addr[j]) = atof(buf2);
+ fprintf(fdout, "%-35s%g\n", buf1, *((double *) addr[j]));
+ break;
+ case STRING:
+ strcpy(addr[j], buf2);
+ fprintf(fdout, "%-35s%s\n", buf1, buf2);
+ break;
+ case INT:
+ *((int *) addr[j]) = atoi(buf2);
+ fprintf(fdout, "%-35s%d\n", buf1, *((int *) addr[j]));
+ break;
+ }
+ }
+ else
+ {
+ fprintf(stdout, "Error in file %s: Tag '%s' not allowed or multiple defined.\n",
+ fname, buf1);
+ errorFlag = 1;
+ }
+ }
+ fclose(fd);
+ fclose(fdout);
+
+ i = strlen(All.OutputDir);
+ if(i > 0)
+ if(All.OutputDir[i - 1] != '/')
+ strcat(All.OutputDir, "/");
+
+
+ /* copy parameters-usedvalues file*/
+ sprintf(buf1, "%s%s", fname, "-usedvalues");
+ sprintf(buf2, "%s%s", All.OutputDir, "parameters-usedvalues");
+
+ fd = fopen(buf1,"r");
+ fdout = fopen(buf2,"w");
+
+ while(1)
+ {
+ fgets(buf, 200, fd);
+ if (feof(fd)) break;
+ fprintf(fdout, buf, 200);
+ }
+
+ fclose(fd);
+ fclose(fdout);
+
+
+ }
+ }
+ else
+ {
+ printf("\nParameter file %s not found.\n\n", fname);
+ errorFlag = 2;
+ }
+
+ if(errorFlag != 2)
+ for(i = 0; i < nt; i++)
+ {
+ if(*tag[i])
+ {
+ printf("Error. I miss a value for tag '%s' in parameter file '%s'.\n", tag[i], fname);
+ errorFlag = 1;
+ }
+ }
+
+ if(All.OutputListOn && errorFlag == 0)
+ errorFlag += read_outputlist(All.OutputListFilename);
+ else
+ All.OutputListLength = 0;
+ }
+
+ MPI_Bcast(&errorFlag, 1, MPI_INT, 0, MPI_COMM_WORLD);
+
+ if(errorFlag)
+ {
+ MPI_Finalize();
+ exit(0);
+ }
+
+ /* now communicate the relevant parameters to the other processes */
+ MPI_Bcast(&All, sizeof(struct global_data_all_processes), MPI_BYTE, 0, MPI_COMM_WORLD);
+
+
+ if(All.NumFilesWrittenInParallel < 1)
+ {
+ if(ThisTask == 0)
+ printf("NumFilesWrittenInParallel MUST be at least 1\n");
+ endrun(0);
+ }
+
+ if(All.NumFilesWrittenInParallel > NTask)
+ {
+ if(ThisTask == 0)
+ printf("NumFilesWrittenInParallel MUST be smaller than number of processors\n");
+ endrun(0);
+ }
+
+#ifdef PERIODIC
+ if(All.PeriodicBoundariesOn == 0)
+ {
+ if(ThisTask == 0)
+ {
+ printf("Code was compiled with periodic boundary conditions switched on.\n");
+ printf("You must set `PeriodicBoundariesOn=1', or recompile the code.\n");
+ }
+ endrun(0);
+ }
+#else
+ if(All.PeriodicBoundariesOn == 1)
+ {
+ if(ThisTask == 0)
+ {
+ printf("Code was compiled with periodic boundary conditions switched off.\n");
+ printf("You must set `PeriodicBoundariesOn=0', or recompile the code.\n");
+ }
+ endrun(0);
+ }
+#endif
+
+
+ if(All.TypeOfTimestepCriterion >= 1)
+ {
+ if(ThisTask == 0)
+ {
+ printf("The specified timestep criterion\n");
+ printf("is not valid\n");
+ }
+ endrun(0);
+ }
+
+#if defined(LONG_X) || defined(LONG_Y) || defined(LONG_Z)
+#ifndef NOGRAVITY
+ if(ThisTask == 0)
+ {
+ printf("Code was compiled with LONG_X/Y/Z, but not with NOGRAVITY.\n");
+ printf("Stretched periodic boxes are not implemented for gravity yet.\n");
+ }
+ endrun(0);
+#endif
+#endif
+
+#undef DOUBLE
+#undef STRING
+#undef INT
+#undef MAXTAGS
+}
+
+
+/*! this function reads a table with a list of desired output times. The
+ * table does not have to be ordered in any way, but may not contain more
+ * than MAXLEN_OUTPUTLIST entries.
+ */
+int read_outputlist(char *fname)
+{
+ FILE *fd;
+
+ if(!(fd = fopen(fname, "r")))
+ {
+ printf("can't read output list in file '%s'\n", fname);
+ return 1;
+ }
+
+ All.OutputListLength = 0;
+ do
+ {
+ if(fscanf(fd, " %lg ", &All.OutputListTimes[All.OutputListLength]) == 1)
+ All.OutputListLength++;
+ else
+ break;
+ }
+ while(All.OutputListLength < MAXLEN_OUTPUTLIST);
+
+ fclose(fd);
+
+ printf("\nfound %d times in output-list.\n", All.OutputListLength);
+
+ return 0;
+}
+
+
+/*! If a restart from restart-files is carried out where the TimeMax
+ * variable is increased, then the integer timeline needs to be
+ * adjusted. The approach taken here is to reduce the resolution of the
+ * integer timeline by factors of 2 until the new final time can be
+ * reached within TIMEBASE.
+ */
+void readjust_timebase(double TimeMax_old, double TimeMax_new)
+{
+ int i;
+ long long ti_end;
+
+ if(ThisTask == 0)
+ {
+ printf("\nAll.TimeMax has been changed in the parameterfile\n");
+ printf("Need to adjust integer timeline\n\n\n");
+ }
+
+ if(TimeMax_new < TimeMax_old)
+ {
+ if(ThisTask == 0)
+ printf("\nIt is not allowed to reduce All.TimeMax\n\n");
+ endrun(556);
+ }
+
+ if(All.ComovingIntegrationOn)
+ ti_end = log(TimeMax_new / All.TimeBegin) / All.Timebase_interval;
+ else
+ ti_end = (TimeMax_new - All.TimeBegin) / All.Timebase_interval;
+
+ while(ti_end > TIMEBASE)
+ {
+ All.Timebase_interval *= 2.0;
+
+ ti_end /= 2;
+ All.Ti_Current /= 2;
+
+#ifdef PMGRID
+ All.PM_Ti_begstep /= 2;
+ All.PM_Ti_endstep /= 2;
+#endif
+
+ for(i = 0; i < NumPart; i++)
+ {
+ P[i].Ti_begstep /= 2;
+ P[i].Ti_endstep /= 2;
+ }
+ }
+
+ All.TimeMax = TimeMax_new;
+}
+
diff --git a/clusters/user/GEAR/src/bondi_accretion.c b/clusters/user/GEAR/src/bondi_accretion.c
new file mode 100644
index 0000000..be6c99e
--- /dev/null
+++ b/clusters/user/GEAR/src/bondi_accretion.c
@@ -0,0 +1,205 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_spline.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+#ifdef BONDI_ACCRETION
+
+
+/*! \file bondi_accretion.c
+ * \brief Compute bondi accretion on central black hole
+ *
+*/
+
+static double hubble_a, a3inv;
+
+
+
+void compute_bondi_accretion()
+ {
+
+
+ int i,n,j;
+ double pressure,density;
+ //double pressure_max,density_max;
+ //double *density_list,*pressure_list,*radius_list;
+ double pressure_sum,density_sum;
+ double BondiMdot;
+
+ int numngb,startnode,phase,ngb,ngb_sum;
+ FLOAT pos[3],h_i,h_i2;
+ double dx, dy, dz;
+ double h_j,r,r2;
+ double u,wk,hinv,hinv3;
+
+ if(All.ComovingIntegrationOn)
+ {
+
+ hubble_a = All.Omega0 / (All.Time * All.Time * All.Time)
+ + (1 - All.Omega0 - All.OmegaLambda) / (All.Time * All.Time) + All.OmegaLambda;
+
+ hubble_a = All.Hubble * sqrt(hubble_a);
+
+ a3inv = 1 / (All.Time * All.Time * All.Time);
+ }
+ else
+ a3inv = hubble_a = 1;
+
+
+
+
+
+ if((All.Time - All.BondiTimeLast) >= All.BondiTimeBet || All.NumCurrentTiStep==0)
+ {
+
+ All.BondiTimeLast += All.BondiTimeBet;
+
+ density = 0;
+ pressure = 0;
+ ngb=0;
+
+ /* find neighbors around the center */
+ pos[0] = 0;
+ pos[1] = 0;
+ pos[2] = 0;
+ h_i = All.SofteningTable[0]*All.BondiHsmlFactor;
+ h_i2 = h_i * h_i;
+
+ hinv = 1.0 / h_i;
+ hinv3 = hinv * hinv * hinv;
+
+
+ startnode = All.MaxPart;
+#ifdef MULTIPHASE
+ phase = GAS_SPH;
+ numngb = ngb_treefind_phase_pairs(&pos[0],h_i,phase, &startnode);
+#else
+ phase = 0;
+ numngb = ngb_treefind_pairs(&pos[0],h_i,phase, &startnode);
+#endif
+
+
+ for(n = 0; n < numngb; n++)
+ {
+ j = Ngblist[n];
+
+ dx = pos[0] - P[j].Pos[0];
+ dy = pos[1] - P[j].Pos[1];
+ dz = pos[2] - P[j].Pos[2];
+
+ r2 = dx * dx + dy * dy + dz * dz;
+ h_j = SphP[j].Hsml;
+
+ if(r2 < h_i2)
+ {
+ r = sqrt(r2);
+ u = r * hinv;
+
+ ngb++;
+
+ if(u < 0.5)
+ {
+ wk = hinv3 * (KERNEL_COEFF_1 + KERNEL_COEFF_2 * (u - 1) * u * u);
+ }
+ else
+ {
+ wk = hinv3 * KERNEL_COEFF_5 * (1.0 - u) * (1.0 - u) * (1.0 - u);
+ }
+
+ density += P[j].Mass * wk;
+ pressure += SphP[j].Pressure * P[j].Mass/SphP[j].Density * wk;
+
+ }
+ }
+
+
+ /* sum contribution from other nodes */
+ MPI_Allreduce(&density, &density_sum, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(&pressure, &pressure_sum, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(&ngb, &ngb_sum, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+
+ density = density_sum;
+ pressure = pressure_sum;
+
+ /************************************/
+ /* loop over all particles */
+ /************************************/
+/*
+ density_max = 0;
+ pressure_max = 0;
+
+ for(i = 0; i < NumPart; i++)
+ {
+
+ if(P[i].Type == 0)
+ {
+
+ if (density_max < SphP[i].Density)
+ {
+ density_max = SphP[i].Density;
+ pressure_max = SphP[i].Pressure;
+ }
+
+
+ }
+
+
+ }
+
+ density_list = malloc(NTask * sizeof(double));
+ pressure_list = malloc(NTask * sizeof(double));
+ radius_list = malloc(NTask * sizeof(double));
+
+
+ MPI_Allgather(&density_max, 1, MPI_DOUBLE, density_list, 1, MPI_DOUBLE, MPI_COMM_WORLD);
+ MPI_Allgather(&pressure_max, 1, MPI_DOUBLE, pressure_list, 1, MPI_DOUBLE, MPI_COMM_WORLD);
+ MPI_Allgather(&radius_max, 1, MPI_DOUBLE, radius_list, 1, MPI_DOUBLE, MPI_COMM_WORLD);
+
+ density = 0;
+ pressure = 0;
+ for(i = 0; i < NTask; i++)
+ if (density < density_list[i])
+ {
+ density = density_list[i];
+ pressure= pressure_list[i];
+ radius= radius_list[i];
+ }
+
+ free(density_list);
+ free(pressure_list);
+ free(radius_list);
+*/
+
+
+
+ /* compute bondi accretion */
+ BondiMdot = 4*PI * pow( All.G*All.BondiBlackHoleMass ,2)
+ * density * pow(GAMMA*pressure/density ,-3./2.);
+
+ /* compute bondi power */
+ All.BondiPower = All.BondiEfficiency * (All.LightSpeed*All.LightSpeed) * BondiMdot;
+
+ /* output info */
+ if(ThisTask == 0)
+ {
+ fprintf(FdBondi, "Step: %d, Time: %g, BondiMdot: %g, BondiPower: %g, BondiDensity: %g, BondiPressure: %g NumNgb: %d\n",All.NumCurrentTiStep,All.Time,BondiMdot,All.BondiPower,density,pressure,ngb_sum);
+ fflush(FdBondi);
+ }
+
+ }
+ }
+
+#endif
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/bubbles.c b/clusters/user/GEAR/src/bubbles.c
new file mode 100644
index 0000000..20c7606
--- /dev/null
+++ b/clusters/user/GEAR/src/bubbles.c
@@ -0,0 +1,439 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_spline.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+#ifdef BUBBLES
+
+
+/*! \file bubble.c
+ * \brief Init bubble
+ *
+*/
+
+
+/*! compute bubble
+ *
+ */
+void init_bubble()
+{
+ FILE *fd;
+ int n,i;
+ char line[58];
+ float Time,D,R,E,A,B;
+
+
+ fd = fopen(All.BubblesInitFile,"r");
+ fscanf(fd, "# %6d\n", &n);
+
+ /* allocate memory */
+ All.BubblesTime = malloc(n * sizeof(double));
+ All.BubblesD = malloc(n * sizeof(double));
+ All.BubblesR = malloc(n * sizeof(double));
+ All.BubblesE = malloc(n * sizeof(double));
+ All.BubblesA = malloc(n * sizeof(double));
+ All.BubblesB = malloc(n * sizeof(double));
+
+ /* read empty line */
+ fgets(line, sizeof(line), fd);
+
+
+ for (i=0;i<n;i++){
+
+ fscanf(fd, "%f %f %f %f %f %f\n",&Time,&D,&R,&E,&A,&B);
+
+ All.BubblesTime[i] = (double)Time;
+ All.BubblesD[i] = (double)D;
+ All.BubblesR[i] = (double)R;
+ All.BubblesE[i] = (double)E;
+ All.BubblesA[i] = (double)A;
+ All.BubblesB[i] = (double)B;
+
+ if(ThisTask == 0)
+ printf("Time = %8.3f D=%8.3f R=%8.3f E=%8.3f A=%8.3f B=%8.3f\n",All.BubblesTime[i],All.BubblesD[i],All.BubblesR[i],All.BubblesE[i],All.BubblesA[i],All.BubblesB[i]);
+
+ }
+
+ fclose(fd);
+
+ All.BubblesIndex = 0;
+
+ /* set the right index */
+ for (i=0;i<n;i++){
+
+ if (All.BubblesTime[All.BubblesIndex]<All.Time)
+ All.BubblesIndex++;
+ else
+ break;
+
+ }
+
+
+#ifdef AGN_FEEDBACK
+ All.BubblesTime[All.BubblesIndex]=1e30;
+ if(ThisTask == 0)
+ printf("Time for next bubble is not defined\n");
+#else
+ if(ThisTask == 0)
+ printf("Time for next bubble = %f (Tnow = %f)\n",All.BubblesTime[All.BubblesIndex],All.Time);
+#endif
+
+
+
+}
+
+/*! compute bubble
+ *
+ */
+void make_bubble()
+{
+
+
+ if(All.Time>All.BubblesTime[All.BubblesIndex])
+ {
+
+ if(ThisTask == 0)
+ {
+ printf("Its time to make a bubble.\n");
+ }
+
+
+ /* first, compute potential energy for all particles */
+ compute_potential();
+
+ /* make first bubble */
+ create_bubble(+1);
+
+ /* make second bubble */
+ create_bubble(-1);
+
+ if(ThisTask == 0)
+ printf("Two bubbles have been created.\n");
+
+ /* move to the next bubble */
+ All.BubblesIndex++;
+
+#ifdef AGN_FEEDBACK
+ /* ensure that the next bubble will not be lunched without agn_feedback authorisation */
+ All.BubblesTime[All.BubblesIndex]= 1e30;
+#else
+ if(ThisTask == 0)
+ printf("Next bubble at t=%g.\n",All.BubblesTime[All.BubblesIndex]);
+#endif
+
+
+
+ }
+
+}
+
+
+/*! create bubble
+ *
+ */
+void create_bubble(int sign)
+{
+
+ int i;
+ FLOAT x,y,z,r,ee;
+ double D,R,A,B;
+ double u_old=0,u_new=0;
+ double alpha,delta;
+ double xs,cs,ss;
+ double UiInt,UiInt_sum,UeInt,UeInt_sum;
+ double EiPot,EiPot_sum,EePot,EePot_sum;
+ double Mi,Me,Mi_sum,Me_sum;
+ double dEgyPot,dEgyInt;
+
+ double a3inv=1.; /* !!!!!!!!!!!! */
+
+ {
+
+ /*
+ compute total energies and masses of particles that will becomes bubbles or not
+ */
+
+ A = All.BubblesA[All.BubblesIndex];
+ B = All.BubblesB[All.BubblesIndex];
+ D = All.BubblesD[All.BubblesIndex];
+ R = All.BubblesR[All.BubblesIndex];
+
+ UiInt = UiInt_sum = UeInt = UeInt_sum = 0;
+ EiPot = EiPot_sum = EePot = EePot_sum = 0;
+ Mi = Mi_sum = Me = Me_sum = 0;
+
+ for(i = 0; i < NumPart; i++)
+ {
+
+#ifdef MULTIPHASE
+ if((P[i].Type == 0) && (SphP[i].Phase == GAS_SPH))
+#else
+ if(P[i].Type == 0)
+#endif
+ {
+
+ x = P[i].Pos[0];
+ y = P[i].Pos[1];
+ z = P[i].Pos[2];
+
+ r = sqrt(x*x+y*y+z*z);
+
+ /* (1) rotate the point */
+
+ /* Rz(B) */
+ cs = cos(B);
+ ss = sin(B);
+ xs = cs*x - ss*y;
+ y = ss*x + cs*y;
+ x = xs;
+
+ /* Ry(A) */
+ cs = cos(A);
+ ss = sin(A);
+ xs = cs*x + ss*z;
+ z = -ss*x + cs*z;
+ x = xs;
+
+ /* (2) translate+- */
+
+
+ /* sign */
+ z = z-D*sign;
+ r = sqrt(x*x+y*y+z*z);
+
+#ifdef MULTIPHASE
+ switch (SphP[i].Phase)
+ {
+ case GAS_SPH:
+ /* egyspec from entropy */
+ u_old = (1./GAMMA_MINUS1) * SphP[i].Entropy *pow(SphP[i].Density * a3inv, GAMMA_MINUS1);
+ break;
+
+ case GAS_STICKY:
+ case GAS_DARK:
+ /* egyspec from specific energy */
+ u_old = SphP[i].Entropy;
+ break;
+ }
+
+#else
+ u_old = (1./GAMMA_MINUS1) * SphP[i].Entropy *pow(SphP[i].Density * a3inv, GAMMA_MINUS1);
+#endif
+
+ if (r<R) /* the point is in the bubble */
+ {
+ UiInt += u_old*P[i].Mass;
+ EiPot += P[i].Potential*P[i].Mass;
+ Mi += P[i].Mass;
+ }
+ else /* the point is outside the bubble */
+ {
+ ee = exp( (R-r)/(R*All.BubblesRadiusFactor) );
+ UeInt += u_old*P[i].Mass*ee;
+ EePot += P[i].Potential*P[i].Mass*ee;
+ Me += P[i].Mass*ee;
+ }
+
+
+ }
+
+
+ }
+
+ /* share results */
+ MPI_Allreduce(&UiInt, &UiInt_sum, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(&EiPot, &EiPot_sum, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(&UeInt, &UeInt_sum, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(&EePot, &EePot_sum, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(&Mi, &Mi_sum, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(&Me, &Me_sum, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+
+
+ /* if Alpha and Delta are given */
+ if ((All.BubblesAlpha!=0)&&(All.BubblesDelta!=0))
+ {
+ All.BubblesBeta = (1-All.BubblesDelta)* Mi_sum/Me_sum ;
+ All.BubblesE[All.BubblesIndex] = -(All.BubblesDelta-1)*((Mi_sum/Me_sum)*EePot_sum - EiPot_sum) + (All.BubblesAlpha-1)*(UiInt_sum + UeInt_sum);
+ }
+ else
+ {
+ /*if (All.BubblesAlpha==0)*/ /* compute BubblesAlpha from BubblesDelta */
+ if (1) /* !!! if alpha is computed once, it is no longer 0 !!! */
+ {
+ /* we can compute beta */
+ All.BubblesBeta = (1-All.BubblesDelta)* Mi_sum/Me_sum ;
+
+ /* now, we can compute alpha */
+ All.BubblesAlpha = (All.BubblesE[All.BubblesIndex] - (All.BubblesDelta-1)*EiPot_sum - All.BubblesBeta*EePot_sum)/(UiInt_sum + UeInt_sum) + 1;
+ }
+ else /* compute BubblesDelta from BubblesAlpha */
+ {
+ /* we can compute delta */
+ All.BubblesDelta = ( (All.BubblesAlpha-1)*(UiInt_sum + UeInt_sum)- All.BubblesE[All.BubblesIndex])
+ / ( (Mi_sum/Me_sum)*EePot_sum - EiPot_sum) + 1;
+
+ /* now we can compute beta */
+ All.BubblesBeta = (1-All.BubblesDelta)* Mi_sum/Me_sum ;
+ }
+
+ /*
+ if(ThisTask == 0)
+ printf("==> UInt=%g; EiPot=%g; EePot=%g; Mi=%g; Me=%g\n",(UiInt_sum + UeInt_sum),EiPot_sum,EePot_sum,Mi_sum,Me_sum);
+ */
+
+ }
+
+ /* count energy */
+ All.EnergyBubbles -= All.BubblesE[All.BubblesIndex];
+
+ if(ThisTask == 0)
+ {
+ dEgyInt = (All.BubblesAlpha-1)*(UiInt_sum + UeInt_sum);
+ dEgyPot = (1-All.BubblesDelta)*((Mi_sum/Me_sum)*EePot_sum - EiPot_sum);
+ fprintf(FdBubble,"Step: %d, Time: %g, EgyBubble: %g, dEgyInt: %g, dEgyPot: %g, EgyInt: %g, Alpha: %g, Beta: %g, Delta: %g, D: %g, R: %g, A: %g, B: %g \n",
+ All.NumCurrentTiStep,All.Time,All.BubblesE[All.BubblesIndex],dEgyInt,dEgyPot,(UiInt_sum + UeInt_sum),
+ All.BubblesAlpha,All.BubblesBeta,All.BubblesDelta,D,R,A,B);
+ fflush(FdBubble);
+ }
+
+
+ /*
+ now, apply Alpha,Beta,Delta
+ */
+
+
+ for(i = 0; i < NumPart; i++)
+ {
+#ifdef MULTIPHASE
+ if((P[i].Type == 0) && (SphP[i].Phase == GAS_SPH))
+#else
+ if(P[i].Type == 0)
+#endif
+ {
+
+ x = P[i].Pos[0];
+ y = P[i].Pos[1];
+ z = P[i].Pos[2];
+
+ /* (1) rotate the point */
+
+ /* Rz(B) */
+ cs = cos(B);
+ ss = sin(B);
+ xs = cs*x - ss*y;
+ y = ss*x + cs*y;
+ x = xs;
+
+ /* Ry(A) */
+ cs = cos(A);
+ ss = sin(A);
+ xs = cs*x + ss*z;
+ z = -ss*x + cs*z;
+ x = xs;
+
+ /* (2) translate+- */
+
+ D = All.BubblesD[All.BubblesIndex];
+ R = All.BubblesR[All.BubblesIndex];
+
+ /* sign */
+ z = z-D*sign;
+ r = sqrt(x*x+y*y+z*z);
+
+
+#ifdef MULTIPHASE
+ switch (SphP[i].Phase)
+ {
+ case GAS_SPH:
+ /* egyspec from entropy */
+ u_old = (1./GAMMA_MINUS1) * SphP[i].Entropy *pow(SphP[i].Density * a3inv, GAMMA_MINUS1);
+ break;
+
+ case GAS_STICKY:
+ case GAS_DARK:
+ /* egyspec from specific energy */
+ u_old = SphP[i].Entropy;
+ break;
+ }
+
+
+#else
+ u_old = (1./GAMMA_MINUS1) * SphP[i].Entropy *pow(SphP[i].Density * a3inv, GAMMA_MINUS1);
+#endif
+
+
+ if (r<R) /* the point is in the bubble */
+ {
+ alpha = All.BubblesAlpha;
+ delta = All.BubblesDelta;
+ }
+ else /* the point is outside the bubble */
+ {
+ ee = exp( (R-r)/(R*All.BubblesRadiusFactor) );
+ alpha = (All.BubblesAlpha-1)*ee + 1;
+ delta = All.BubblesBeta*ee + 1;
+ }
+
+ u_new = (alpha/delta) *u_old;
+ P[i].Mass *= delta;
+ SphP[i].Density *= delta;
+
+
+
+#ifdef MULTIPHASE
+ switch (SphP[i].Phase)
+ {
+ case GAS_SPH:
+ /* entropy from energy */
+ SphP[i].Entropy = GAMMA_MINUS1 * u_new /pow(SphP[i].Density * a3inv, GAMMA_MINUS1) ;
+ break;
+
+ case GAS_STICKY:
+ case GAS_DARK:
+ /* egyspec from energy */
+ SphP[i].Entropy = u_new;
+ break;
+ }
+
+#else
+ SphP[i].Entropy = GAMMA_MINUS1 * u_new /pow(SphP[i].Density * a3inv, GAMMA_MINUS1) ;
+#endif
+
+
+
+ }
+
+ }
+
+
+
+
+
+ }
+
+
+}
+
+
+
+
+
+
+
+
+
+
+#endif
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/chimie.c b/clusters/user/GEAR/src/chimie.c
new file mode 100644
index 0000000..143adcd
--- /dev/null
+++ b/clusters/user/GEAR/src/chimie.c
@@ -0,0 +1,2833 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_math.h>
+#include "allvars.h"
+#include "proto.h"
+
+#ifdef CHIMIE
+
+/*! \file hydra.c
+ * \brief Computation of SPH forces and rate of entropy generation
+ *
+ * This file contains the "second SPH loop", where the SPH forces are
+ * computed, and where the rate of change of entropy due to the shock heating
+ * (via artificial viscosity) is computed.
+ */
+
+
+static double hubble_a, atime, hubble_a2, fac_mu, fac_vsic_fix, a3inv, fac_egy;
+#ifdef FEEDBACK
+static double fac_pow;
+#endif
+
+#ifdef PERIODIC
+static double boxSize, boxHalf;
+
+#ifdef LONG_X
+static double boxSize_X, boxHalf_X;
+#else
+#define boxSize_X boxSize
+#define boxHalf_X boxHalf
+#endif
+#ifdef LONG_Y
+static double boxSize_Y, boxHalf_Y;
+#else
+#define boxSize_Y boxSize
+#define boxHalf_Y boxHalf
+#endif
+#ifdef LONG_Z
+static double boxSize_Z, boxHalf_Z;
+#else
+#define boxSize_Z boxSize
+#define boxHalf_Z boxHalf
+#endif
+#endif
+
+
+
+/****************************************************************************************/
+/*
+/*
+/*
+/* GADGET CHIMIE PART
+/*
+/*
+/*
+/****************************************************************************************/
+
+
+
+#define MAXPTS 10
+#define MAXDATASIZE 200
+#define KPC_IN_CM 3.085e+21
+
+
+static int verbose=0;
+
+static double *MassFracSNII;
+static double *SingleMassFracSNII;
+static double *EjectedMass;
+static double *SingleEjectedMass;
+
+static double **MassFracSNIIs;
+static double **SingleMassFracSNIIs;
+static double **EjectedMasss;
+static double **SingleEjectedMasss;
+
+
+/* intern global variables */
+
+static struct local_params_chimie
+{
+ float coeff_z[3][3];
+ float Mmin,Mmax;
+ int n;
+ float ms[MAXPTS];
+ float as[MAXPTS+1];
+ float bs[MAXPTS+1];
+ float fs[MAXPTS];
+ double imf_Ntot;
+
+ float SNII_Mmin;
+ float SNII_Mmax;
+ float SNII_cte;
+ float SNII_a;
+
+ float SNIa_Mpl;
+ float SNIa_Mpu;
+ float SNIa_a;
+ float SNIa_cte;
+
+ float SNIa_Mdl1;
+ float SNIa_Mdu1;
+ float SNIa_a1;
+ float SNIa_b1;
+ float SNIa_cte1;
+ float SNIa_bb1;
+
+ float SNIa_Mdl2;
+ float SNIa_Mdu2;
+ float SNIa_a2;
+ float SNIa_b2;
+ float SNIa_cte2;
+ float SNIa_bb2;
+
+ float Mco;
+
+ int npts;
+ int nelts;
+
+}
+ *Cps,*Cp;
+
+
+static struct local_elts_chimie
+{
+ float Mmin; /* minimal mass */
+ float Step; /* log of mass step */
+ float Array[MAXDATASIZE]; /* data */
+ float Metal[MAXDATASIZE]; /* data */
+ float MSNIa;
+ float SolarAbundance;
+ char label[72];
+}
+ **Elts,*Elt;
+
+
+void allocate_chimie()
+ {
+
+ int j;
+
+ /* allocate Cp */
+ Cps = malloc((All.ChimieNumberOfParameterFiles) * sizeof(struct local_params_chimie));
+
+ /* allocate elts */
+ Elts = malloc((All.ChimieNumberOfParameterFiles) * sizeof(struct local_elts_chimie));
+ //for (j=0;j<All.ChimieNumberOfParameterFiles;j++)
+ // Elt[j] = malloc((nelts) * sizeof(struct local_elts_chimie));
+
+
+ MassFracSNIIs = malloc((All.ChimieNumberOfParameterFiles) * sizeof(double));
+ EjectedMasss = malloc((All.ChimieNumberOfParameterFiles) * sizeof(double));
+ SingleMassFracSNIIs= malloc((All.ChimieNumberOfParameterFiles) * sizeof(double));
+ SingleEjectedMasss = malloc((All.ChimieNumberOfParameterFiles) * sizeof(double));
+
+
+ }
+
+
+void allocate_Elts(int it)
+ {
+
+ /* allocate memory for elts */
+ if (Cps[it].npts<=MAXDATASIZE)
+ {
+ Elts[it] = malloc((Cps[it].nelts+2) * sizeof(struct local_elts_chimie));
+ }
+ else
+ {
+ printf("\n Cps[it].npts = %d > MAXDATASIZE = %d !!!\n\n",Cps[it].npts,MAXDATASIZE);
+ endrun(88800);
+ }
+
+
+ }
+
+
+
+
+
+
+
+void set_table(int i)
+ {
+
+ if (i>=All.ChimieNumberOfParameterFiles)
+ {
+ printf("\n set_table : i>= %d !!!\n\n",All.ChimieNumberOfParameterFiles);
+ endrun(88809);
+ }
+ else
+ {
+ Cp = &Cps[i];
+ Elt = Elts[i];
+
+ MassFracSNII = MassFracSNIIs[i];
+ SingleMassFracSNII = SingleMassFracSNIIs[i];
+ EjectedMass = EjectedMasss[i];
+ SingleEjectedMass = SingleEjectedMasss[i];
+
+
+ }
+
+ }
+
+void read_chimie(char * filename,int it)
+ {
+
+ char line[72],buffer[72];
+ FILE *fd;
+ int i,j;
+
+
+
+ if (ThisTask==0)
+ {
+
+ printf("reading %s ...\n",filename);
+ fd = fopen(filename,"r");
+
+ /* read Lifetime */
+ fgets(line, sizeof(line), fd);
+ fgets(line, sizeof(line), fd);
+ fscanf(fd, "%g %g %g\n", &Cps[it].coeff_z[0][0],&Cps[it].coeff_z[0][1],&Cps[it].coeff_z[0][2]);
+ fscanf(fd, "%g %g %g\n", &Cps[it].coeff_z[1][0],&Cps[it].coeff_z[1][1],&Cps[it].coeff_z[1][2]);
+ fscanf(fd, "%g %g %g\n", &Cps[it].coeff_z[2][0],&Cps[it].coeff_z[2][1],&Cps[it].coeff_z[2][2]);
+ fgets(line, sizeof(line), fd);
+
+ /* IMF Parameters */
+ fgets(line, sizeof(line), fd);
+ fscanf(fd, "%g %g\n",&Cps[it].Mmin,&Cps[it].Mmax);
+ fscanf(fd, "%d\n",&Cps[it].n);
+
+ if (Cps[it].n>0)
+ for (i=0;i<Cps[it].n;i++)
+ fscanf(fd,"%g",&Cps[it].ms[i]);
+ else
+ fgets(line, sizeof(line), fd);
+
+ for (i=0;i<Cps[it].n+1;i++)
+ fscanf(fd,"%g",&Cps[it].as[i]);
+
+ fgets(line, sizeof(line), fd);
+
+ /* Parameters for SNII Rates */
+ fgets(line, sizeof(line), fd);
+ fgets(line, sizeof(line), fd);
+ fscanf(fd, "%g \n",&Cps[it].SNII_Mmin);
+ fgets(line, sizeof(line), fd);
+
+ /* Parameters for SNIa Rates */
+ fgets(line, sizeof(line), fd);
+ fscanf(fd, "%g %g\n",&Cps[it].SNIa_Mpl,&Cps[it].SNIa_Mpu);
+ fscanf(fd, "%g \n",&Cps[it].SNIa_a);
+ fscanf(fd, "%g %g %g\n",&Cps[it].SNIa_Mdl1,&Cps[it].SNIa_Mdu1,&Cps[it].SNIa_bb1);
+ fscanf(fd, "%g %g %g\n",&Cps[it].SNIa_Mdl2,&Cps[it].SNIa_Mdu2,&Cps[it].SNIa_bb2);
+ fgets(line, sizeof(line), fd);
+
+
+
+
+ /* Metal injection SNII */
+ fgets(line, sizeof(line), fd);
+ fgets(line, sizeof(line), fd);
+ fscanf(fd, "%d %d\n",&Cps[it].npts,&Cps[it].nelts);
+
+ /* allocate memory for elts */
+ allocate_Elts(it);
+
+
+
+ /* injected metals */
+
+ for (i=0;i<Cps[it].nelts+2;i++)
+ {
+ fgets(line, sizeof(line), fd);
+
+ /* strip trailing line */
+ for (j = 0; j < strlen(line); j++)
+ if ( line[j] == '\n' || line[j] == '\r' )
+ line[j] = '\0';
+ /* copy labels */
+ strcpy(Elts[it][i].label,line);
+ strcpy(buffer,&Elts[it][i].label[2]);
+ strcpy(Elts[it][i].label,buffer);
+
+ fgets(line, sizeof(line), fd);
+
+ fscanf(fd, "%g %g\n",&Elts[it][i].Mmin,&Elts[it][i].Step);
+
+ for (j=0;j<Cps[it].npts;j++)
+ {
+ fscanf(fd, "%g\n",&Elts[it][i].Metal[j]);
+ }
+ }
+
+
+
+
+
+ /* integrals of injected metals */
+ fgets(line, sizeof(line), fd);
+ fgets(line, sizeof(line), fd);
+ fscanf(fd, "%d %d\n",&Cps[it].npts,&Cps[it].nelts);
+
+
+ fgets(line, sizeof(line), fd);
+ fgets(line, sizeof(line), fd);
+
+
+ /* integrals of injected metals */
+
+ for (i=0;i<Cps[it].nelts+2;i++)
+ {
+ fgets(line, sizeof(line), fd);
+ fgets(line, sizeof(line), fd);
+
+ fscanf(fd, "%g %g\n",&Elts[it][i].Mmin,&Elts[it][i].Step);
+
+ for (j=0;j<Cps[it].npts;j++)
+ {
+ fscanf(fd, "%g\n",&Elts[it][i].Array[j]);
+ }
+
+ }
+
+
+
+
+
+
+ /* Metal injection SNIa */
+ fgets(line, sizeof(line), fd);
+ fgets(line, sizeof(line), fd);
+ fscanf(fd, "%g\n",&Cps[it].Mco);
+ fgets(line, sizeof(line), fd);
+ fgets(line, sizeof(line), fd);
+ fgets(line, sizeof(line), fd);
+
+ int nelts;
+ char label[72];
+ fscanf(fd, "%d\n",&nelts);
+ /* check */
+ if (nelts != Cps[it].nelts)
+ {
+ printf("\nThe number of elements in SNII (=%d) is not identical to the on of SNIa (=%d) !!!\n\n",Cps[it].nelts,nelts);
+ printf("This is not supported by the current implementation !!!\n");
+ endrun(88805);
+ }
+
+
+ for (i=0;i<Cps[it].nelts+2;i++)
+ {
+
+ fgets(line, sizeof(line), fd); /* label */
+
+ /* check label */
+ /* strip trailing line */
+ for (j = 0; j < strlen(line); j++)
+ if ( line[j] == '\n' || line[j] == '\r' )
+ line[j] = '\0';
+
+ strcpy(label,line);
+ strcpy(buffer,&label[2]);
+ strcpy(label,buffer);
+ if (strcmp(label,Elts[it][i].label)!=0)
+ {
+ printf("\nLabel of SNII element %d (=%s) is different from the SNIa one (=%s) !!!\n\n",i,Elts[it][i].label,label);
+ endrun(88806);
+ }
+
+ //fgets(line, sizeof(line), fd);
+ fscanf(fd, "%g\n",&Elts[it][i].MSNIa);
+
+ }
+
+
+
+
+ /* Solar Abundances */
+ fgets(line, sizeof(line), fd);
+ fgets(line, sizeof(line), fd);
+ fgets(line, sizeof(line), fd);
+ fgets(line, sizeof(line), fd);
+
+ fscanf(fd, "%d\n",&nelts);
+ /* check */
+ if (nelts != Cps[it].nelts)
+ {
+ printf("\nThe number of elements in SolarAbundances (=%d) is not identical to the on of SNIa (=%d) !!!\n\n",Cps[it].nelts,nelts);
+ printf("This is not supported by the current implementation !!!\n");
+ endrun(88805);
+ }
+
+
+ for (i=0;i<Cps[it].nelts;i++)
+ {
+
+ fgets(line, sizeof(line), fd); /* label */
+
+ /* check label */
+ /* strip trailing line */
+ for (j = 0; j < strlen(line); j++)
+ if ( line[j] == '\n' || line[j] == '\r' )
+ line[j] = '\0';
+
+ strcpy(label,line);
+ strcpy(buffer,&label[2]);
+ strcpy(label,buffer);
+ if (strcmp(label,Elts[it][i+2].label)!=0)
+ {
+ printf("\nLabel of SNII element %d (=%s) is different from the SNIa one (=%s) !!!\n\n",i,Elts[it][i+2].label,label);
+ endrun(88806);
+ }
+
+ //fgets(line, sizeof(line), fd);
+ fscanf(fd, "%g\n",&Elts[it][i+2].SolarAbundance);
+ }
+
+
+
+ fclose(fd);
+
+ }
+
+
+
+ /* send Cps */
+ MPI_Bcast(Cps, (All.ChimieNumberOfParameterFiles) * sizeof(struct local_params_chimie), MPI_BYTE, 0, MPI_COMM_WORLD);
+
+
+ /* slaves allocate Elts */
+ if (ThisTask!=0)
+ allocate_Elts(it);
+
+ MPI_Bcast(Elts[it], (Cps[it].nelts+2) * sizeof(struct local_elts_chimie), MPI_BYTE, 0, MPI_COMM_WORLD);
+
+
+
+ /* allocate memory */
+ MassFracSNIIs[it] = malloc((Cps[it].nelts+2) * sizeof(double));
+ EjectedMasss[it] = malloc((Cps[it].nelts+2) * sizeof(double));
+ SingleMassFracSNIIs[it] = malloc((Cps[it].nelts+2) * sizeof(double));
+ SingleEjectedMasss[it] = malloc((Cps[it].nelts+2) * sizeof(double));
+
+
+
+
+
+
+ if (verbose && ThisTask==0)
+ {
+
+ printf("%g %g %g\n", Cps[it].coeff_z[0][0],Cps[it].coeff_z[0][1],Cps[it].coeff_z[0][2]);
+ printf("%g %g %g\n", Cps[it].coeff_z[1][0],Cps[it].coeff_z[1][1],Cps[it].coeff_z[1][2]);
+ printf("%g %g %g\n", Cps[it].coeff_z[2][0],Cps[it].coeff_z[2][1],Cps[it].coeff_z[2][2]);
+ printf("\n");
+
+ printf("\nIMF\n");
+ printf("%g %g\n",Cps[it].Mmin,Cps[it].Mmax);
+ printf("%d\n",Cps[it].n);
+ for (i=0;i<Cps[it].n;i++)
+ printf( "ms : %g ",Cps[it].ms[i]);
+ printf("\n");
+ for (i=0;i<Cps[it].n+1;i++)
+ printf( "as : %g ",Cps[it].as[i]);
+ printf("\n");
+
+ printf("\nRate SNII\n");
+ printf("%g ",Cps[it].SNII_Mmin);
+ printf("\n");
+
+ printf("\nRate SNIa\n");
+ printf("%g %g\n",Cps[it].SNIa_Mpl,Cps[it].SNIa_Mpu);
+ printf("%g \n",Cps[it].SNIa_a);
+ printf("%g %g %g\n",Cps[it].SNIa_Mdl1,Cps[it].SNIa_Mdu1,Cps[it].SNIa_b1);
+ printf("%g %g %g\n",Cps[it].SNIa_Mdl2,Cps[it].SNIa_Mdu2,Cps[it].SNIa_b2);
+ printf("\n");
+
+
+ for (i=0;i<Cps[it].nelts+2;i++)
+ {
+
+ printf("> %g %g\n",Elts[it][i].Mmin,Elts[it][i].Step);
+
+ for (j=0;j<Cps[it].npts;j++)
+ {
+ printf(" %g\n",Elts[it][i].Array[j]);
+ }
+
+ }
+
+
+ printf("\n");
+ printf("%g\n",Cps[it].Mco);
+ for (i=0;i<Cps[it].nelts+2;i++)
+ printf("%g\n",Elts[it][i].MSNIa);
+
+ printf("\n");
+
+ }
+
+ }
+
+
+
+
+
+
+
+
+/*
+
+ This function returns the mass fraction of a star of mass m
+ using the current IMF
+
+*/
+
+
+static double get_imf(double m)
+ {
+
+ int i;
+ int n;
+
+ n = Cp->n;
+
+ /* convert m in msol */
+ m = m*All.UnitMass_in_g / SOLAR_MASS;
+
+ if (n==0)
+ return Cp->bs[0]* pow(m,Cp->as[0]);
+ else
+ {
+ for (i=0;i<n;i++)
+ if (m < Cp->ms[i])
+ return Cp->bs[i]* pow(m,Cp->as[i]);
+
+ return Cp->bs[n]* pow(m,Cp->as[n]);
+ }
+
+ }
+
+
+
+
+/*
+
+ This function returns the mass fraction between m1 and m2
+ per mass unit, using the current IMF
+
+*/
+
+
+static double get_imf_M(double m1, double m2)
+ {
+
+ int i;
+ int n;
+ double p;
+ double integral=0;
+ double mmin,mmax;
+
+ n = Cp->n;
+
+ /* convert m in msol */
+ m1 = m1*All.UnitMass_in_g / SOLAR_MASS;
+ m2 = m2*All.UnitMass_in_g / SOLAR_MASS;
+
+
+ if (n==0)
+ {
+ p = Cp->as[0]+1;
+ integral = (Cp->bs[0]/p) * ( pow(m2,p) - pow(m1,p) );
+ //printf("--> %g %g %g %g int=%g\n",m1,m2,pow(m2,p), pow(m1,p),integral);
+ }
+
+ else
+ {
+
+ integral = 0;
+
+ /* first */
+ if (m1<Cp->ms[0])
+ {
+ mmin = m1;
+ mmax = dmin(Cp->ms[0],m2);
+ p = Cp->as[0] + 1;
+ integral += (Cp->bs[0]/p) * ( pow(mmax,p) - pow(mmin,p) );
+ }
+
+ /* last */
+ if (m2>Cp->ms[n-1])
+ {
+ mmin = dmax(Cp->ms[n-1],m1);
+ mmax = m2;
+ p = Cp->as[n] + 1;
+ integral += (Cp->bs[n]/p) * ( pow(mmax,p) - pow(mmin,p) );
+ }
+
+ /* loop over other segments */
+ for (i=0;i<n-1;i++)
+ {
+ mmin = dmax(Cp->ms[i ],m1);
+ mmax = dmin(Cp->ms[i+1],m2);
+ if (mmin<mmax)
+ {
+ p = Cp->as[i+1] + 1;
+ integral += (Cp->bs[i+1]/p) * ( pow(mmax,p) - pow(mmin,p) );
+ }
+ }
+
+
+ }
+
+ /* convert into mass unit mass unit */
+ /* integral = integral * SOLAR_MASS/All.UnitMass_in_g;*/
+
+ return integral;
+
+ }
+
+
+
+/*
+
+ This function returns the number fraction between m1 and m2
+ per mass unit, using the current IMF
+
+*/
+
+
+static double get_imf_N(double m1, double m2)
+ {
+
+ int i;
+ int n;
+ double p;
+ double integral=0;
+ double mmin,mmax;
+
+ n = Cp->n;
+
+ /* convert m in msol */
+ m1 = m1*All.UnitMass_in_g / SOLAR_MASS;
+ m2 = m2*All.UnitMass_in_g / SOLAR_MASS;
+
+
+ if (n==0)
+ {
+ p = Cp->as[0];
+ integral = (Cp->bs[0]/p) * ( pow(m2,p) - pow(m1,p) );
+ }
+
+ else
+ {
+
+ integral = 0;
+
+ /* first */
+ if (m1<Cp->ms[0])
+ {
+ mmin = m1;
+ mmax = dmin(Cp->ms[0],m2);
+ p = Cp->as[0];
+ integral += (Cp->bs[0]/p) * ( pow(mmax,p) - pow(mmin,p) );
+ }
+
+ /* last */
+ if (m2>Cp->ms[n-1])
+ {
+ mmin = dmax(Cp->ms[n-1],m1);
+ mmax = m2;
+ p = Cp->as[n];
+ integral += (Cp->bs[n]/p) * ( pow(mmax,p) - pow(mmin,p) );
+ }
+
+ /* loop over other segments */
+ for (i=0;i<n-1;i++)
+ {
+ mmin = dmax(Cp->ms[i ],m1);
+ mmax = dmin(Cp->ms[i+1],m2);
+ if (mmin<mmax)
+ {
+ p = Cp->as[i+1];
+ integral += (Cp->bs[i+1]/p) * ( pow(mmax,p) - pow(mmin,p) );
+ }
+ }
+
+ }
+
+ /* convert into mass unit mass unit */
+ integral = integral / SOLAR_MASS*All.UnitMass_in_g;
+
+ return integral;
+
+ }
+
+
+
+
+
+/*
+
+ This function returns the number fraction between m1 and m2
+ per mass unit, using the current IMF
+
+*/
+
+
+static double imf_sampling()
+ {
+
+ int i;
+ int n;
+ double m;
+ double f;
+ double pmin,pmax;
+
+ n = Cp->n;
+
+ /* init random */
+ //srandom(irand);
+
+ f = (double)random()/(double)RAND_MAX;
+
+
+ if (n==0)
+ {
+ pmin = pow(Cp->Mmin,Cp->as[0]);
+ pmax = pow(Cp->Mmax,Cp->as[0]);
+ m = pow(f*(pmax - pmin) + pmin ,1./Cp->as[0]);
+ return m* SOLAR_MASS/All.UnitMass_in_g;
+ }
+
+ else
+ {
+
+
+ if (f<Cp->fs[0])
+ {
+ pmin = pow(Cp->Mmin ,Cp->as[0]);
+ m = pow(Cp->imf_Ntot*Cp->as[0]/Cp->bs[0]* (f-0) + pmin ,1./Cp->as[0]);
+ return m* SOLAR_MASS/All.UnitMass_in_g;
+
+ }
+
+ for (i=0;i<n-1;i++)
+ {
+
+ if (f<Cp->fs[i+1])
+ {
+ pmin = pow(Cp->ms[i] ,Cp->as[i+1]);
+ m = pow(Cp->imf_Ntot*Cp->as[i+1]/Cp->bs[i+1]* (f-Cp->fs[i]) + pmin ,1./Cp->as[i+1]);
+ return m* SOLAR_MASS/All.UnitMass_in_g;
+ }
+
+
+ }
+
+
+ /* last portion */
+ pmin = pow(Cp->ms[n-1] ,Cp->as[n]);
+ m = pow(Cp->imf_Ntot*Cp->as[n]/Cp->bs[n]* (f-Cp->fs[n-1]) + pmin ,1./Cp->as[n]);
+ return m* SOLAR_MASS/All.UnitMass_in_g;
+
+
+ }
+
+
+
+ }
+
+
+
+
+
+
+
+
+/*
+
+ This function initialized the imf parameters
+ defined in the chimie file
+
+*/
+
+
+void init_imf(void)
+ {
+
+ float integral = 0;
+ float p;
+ float cte;
+ int i,n;
+ double mmin,mmax;
+
+ n = Cp->n;
+
+
+ if (n==0)
+ {
+ p = Cp->as[0]+1;
+ integral = integral + ( pow(Cp->Mmax,p)-pow(Cp->Mmin,p))/(p) ;
+ Cp->bs[0] = 1./integral ;
+ }
+ else
+ {
+ cte = 1.0;
+
+ if (Cp->Mmin < Cp->ms[0])
+ {
+ p = Cp->as[0]+1;
+ integral = integral + (pow(Cp->ms[0],p) - pow(Cp->Mmin,p))/p;
+ }
+
+
+ for (i=0;i<n-1;i++)
+ {
+ cte = cte* pow( Cp->ms[i],( Cp->as[i] - Cp->as[i+1] ));
+ p = Cp->as[i+1]+1;
+ integral = integral + cte*(pow(Cp->ms[i+1],p) - pow(Cp->ms[i],p))/p;
+ }
+
+
+ if (Cp->Mmax > Cp->ms[-1])
+ {
+ cte = cte* pow( Cp->ms[n-1] , ( Cp->as[n-1] - Cp->as[n] ) );
+ p = Cp->as[n]+1;
+ integral = integral + cte*(pow(Cp->Mmax,p) - pow(Cp->ms[n-1],p))/p;
+ }
+
+ /* compute all b */
+ Cp->bs[0] = 1./integral;
+
+ for (i=0;i<n;i++)
+ {
+ Cp->bs[i+1] = Cp->bs[i] * pow( Cp->ms[i],( Cp->as[i] - Cp->as[i+1] ));
+ }
+
+ }
+
+
+ if (verbose && ThisTask==0)
+ {
+ printf("-- bs -- \n");
+ for (i=0;i<n+1;i++)
+ printf("%g ",Cp->bs[i]);
+ printf("\n");
+ }
+
+
+
+ mmin = Cp->Mmin / All.UnitMass_in_g * SOLAR_MASS; /* in mass unit */
+ mmax = Cp->Mmax / All.UnitMass_in_g * SOLAR_MASS; /* in mass unit */
+ Cp->imf_Ntot = get_imf_N(mmin,mmax) *SOLAR_MASS/All.UnitMass_in_g;
+
+ /* init fs : mass fraction at ms */
+ if (n>0)
+ {
+
+ for (i=0;i<n+1;i++)
+ {
+ mmax = Cp->ms[i] / All.UnitMass_in_g * SOLAR_MASS; /* in mass unit */
+ Cp->fs[i] = SOLAR_MASS/All.UnitMass_in_g*get_imf_N(mmin,mmax)/Cp->imf_Ntot;
+ }
+
+ }
+
+
+
+ }
+
+
+
+
+
+
+/*
+
+ This function init the chime parameters
+
+*/
+
+
+void init_chimie(void)
+ {
+
+ int i,nf;
+ double u_lt;
+ double UnitLength_in_kpc;
+ double UnitMass_in_Msol;
+
+ char filename[500];
+ char ext[100];
+
+
+ /* check some flags */
+
+#ifndef COSMICTIME
+ if (All.ComovingIntegrationOn)
+ {
+ if(ThisTask == 0)
+ printf("Code wasn't compiled with COSMICTIME support enabled!\n");
+ endrun(-88800);
+ }
+#endif
+
+
+
+
+
+ UnitLength_in_kpc = All.UnitLength_in_cm / KPC_IN_CM;
+ UnitMass_in_Msol = All.UnitMass_in_g / SOLAR_MASS;
+
+ //u_lt = -log10( 4.7287e11*sqrt(pow(UnitLength_in_kpc,3)/UnitMass_in_Msol));
+ /*Sat Dec 25 23:27:10 CET 2010 */
+ u_lt = -log10(All.UnitTime_in_Megayears*1e6);
+
+ allocate_chimie();
+
+ for (nf=0;nf<All.ChimieNumberOfParameterFiles;nf++)
+ {
+
+ if (All.ChimieNumberOfParameterFiles==1)
+ sprintf(filename,"%s",All.ChimieParameterFile);
+ else
+ sprintf(filename,"%s.%d",All.ChimieParameterFile,nf);
+
+
+ read_chimie(filename,nf);
+
+
+
+ /* set the table */
+ set_table(nf);
+
+
+ /* Conversion into program time unit */
+ Cp->coeff_z[2][2] = Cp->coeff_z[2][2] + u_lt;
+
+ for (i=0;i<3;i++)
+ Cp->coeff_z[1][i] = Cp->coeff_z[1][i]/2.0;
+
+
+ /* init imf parameters */
+ init_imf();
+
+
+ /* init SNII parameters */
+ if (Cp->n==0)
+ {
+ //Cp->SNII_cte[0] = Cp->bs[0]/Cp->as[0];
+ Cp->SNII_cte = Cp->bs[0]/Cp->as[0];
+ Cp->SNII_a = Cp->as[0];
+ }
+ else
+ {
+ //for (i=0;i<Cp->n+1;i++) /* if multiple power law in the SNII mass range */
+ // Cp->SNII_cte[i] = Cp->bs[i]/Cp->as[i];
+ Cp->SNII_cte = Cp->bs[Cp->n]/Cp->as[Cp->n];
+ Cp->SNII_a = Cp->as[Cp->n];
+ }
+
+
+ /* init SNIa parameters */
+ Cp->SNIa_a1 = Cp->SNIa_a;
+ Cp->SNIa_b1 = (Cp->SNIa_a1+1)/(pow(Cp->SNIa_Mdu1,Cp->SNIa_a1+1)-pow(Cp->SNIa_Mdl1,Cp->SNIa_a1+1));
+ Cp->SNIa_cte1 = Cp->SNIa_b1/Cp->SNIa_a1;
+
+ Cp->SNIa_a2 = Cp->SNIa_a;
+ Cp->SNIa_b2 = (Cp->SNIa_a2+1)/(pow(Cp->SNIa_Mdu2,Cp->SNIa_a2+1)-pow(Cp->SNIa_Mdl2,Cp->SNIa_a2+1));
+ Cp->SNIa_cte2 = Cp->SNIa_b2/Cp->SNIa_a2;
+
+
+ /* init SNII parameters */
+ if (Cp->n==0)
+ {
+ Cp->SNIa_cte = Cp->bs[0]/Cp->as[0];
+ Cp->SNIa_a = Cp->as[0];
+ }
+ else
+ {
+ Cp->SNIa_cte = Cp->bs[Cp->n]/Cp->as[Cp->n];
+ Cp->SNIa_a = Cp->as[Cp->n];
+ }
+
+
+
+ Cp->SNII_Mmax = Cp->Mmax;
+
+
+ for (i=0;i<Cp->nelts+2;i++)
+ Elt[i].Mmin = log10(Elt[i].Mmin);
+
+
+
+
+
+ /* output info */
+ if (verbose && ThisTask==0)
+ {
+ printf("-- SNII_cte -- \n");
+ //for (i=0;i<Cp->n+1;i++)
+ // printf("%g ",Cp->SNII_cte[i]);
+ printf("%g ",Cp->SNII_cte);
+
+ printf("\n");
+ }
+
+
+
+
+ /* check that the masses are higher than the last IMF elbow */
+ if (Cp->n>0)
+ {
+ if (Cp->SNIa_Mpl < Cp->ms[Cp->n-1])
+ {
+ printf("\nSNIa_Mpl = %g < ms[n-1] = %g !!!\n\n",Cp->SNIa_Mpl,Cp->ms[Cp->n-1]);
+ printf("This is not supported by the current implementation !!!\n");
+ endrun(88801);
+ }
+
+ if (Cp->SNIa_Mpu < Cp->ms[Cp->n-1])
+ {
+ printf("\nSNIa_Mpu = %g < ms[n-1] = %g !!!\n\n",Cp->SNIa_Mpu,Cp->ms[Cp->n-1]);
+ printf("This is not supported by the current implementation !!!\n");
+ endrun(88802);
+ }
+
+ if (Cp->SNII_Mmin < Cp->ms[Cp->n-1])
+ {
+ printf("\nSNII_Mmin = %g < ms[n-1] = %g !!!\n\n",Cp->SNII_Mmin,Cp->ms[Cp->n-1]);
+ printf("This is not supported by the current implementation !!!\n");
+ endrun(88803);
+ }
+
+ if (Cp->SNII_Mmax < Cp->ms[Cp->n-1])
+ {
+ printf("\nSNII_Mmax = %g < ms[n-1] = %g !!!\n\n",Cp->SNII_Mmax,Cp->ms[Cp->n-1]);
+ printf("This is not supported by the current implementation !!!\n");
+ endrun(88804);
+ }
+ }
+
+
+
+
+
+ }
+ }
+
+
+
+void check_chimie(void)
+ {
+ int i;
+
+ if (ThisTask==0)
+ {
+ printf("Number of elements : %d\n",Cp->nelts);
+ for(i=2;i<Cp->nelts+2;i++)
+ printf("%s ",&Elt[i].label);
+ printf("\n");
+ }
+
+ /* check number of elements */
+ if (NELEMENTS != Cp->nelts)
+ {
+ printf("\n(Taks=%d) NELEMENTS (=%d) != Cp->nelts (=%d)!!!\n\n",ThisTask,NELEMENTS,Cp->nelts);
+ printf("This means that the number of chemical elements defined in the chimie parameter file is\n");
+ printf("different from the one defined by the variable NELEMENTS.\n");
+ printf("You can either change NELEMENTS and recompile the code or change the chimie parameter file.\n");
+ endrun(88807);
+ }
+
+ /* check that iron is the first element */
+
+ if ((strcmp("Fe",Elt[2].label))!=0)
+ {
+ printf("(Taks=%d) first element (=%s) is not %s !!!\n\n",ThisTask,Elt[2].label,FIRST_ELEMENT);
+ endrun(88808);
+ }
+
+
+ }
+
+int get_nelts()
+ {
+ return Cp->nelts;
+ }
+
+float get_SolarAbundance(i)
+ {
+ return Elt[i+2].SolarAbundance;
+ }
+
+char* get_Element(i)
+ {
+ return Elt[i+2].label;
+ }
+
+
+
+
+
+
+
+double star_lifetime(double z,double m)
+{
+
+ /* z is the mass fraction of metals, ie, the metallicity */
+ /* m is the stellar mass in code unit */
+ /* Return t in code time unit */
+
+ int i;
+ double a,b,c;
+ double coeff[3];
+ double logm,twologm,logm2,time;
+
+
+ /* convert m in msol */
+ m = m*All.UnitMass_in_g / SOLAR_MASS;
+
+
+ for (i=0;i<3;i++)
+ coeff[i] = ( Cp->coeff_z[i][0]*z+Cp->coeff_z[i][1] )*z+Cp->coeff_z[i][2];
+
+ a = coeff[0];
+ b = coeff[1];
+ c = coeff[2];
+
+ logm = log10(m);
+ twologm = 2.0 * logm;
+ logm2 = logm*logm;
+
+
+ time = pow(10.,(a*logm2+b*twologm+c));
+
+ return time;
+
+}
+
+
+double star_mass_from_age(double z,double t)
+{
+
+ /* z is the mass fraction of metals, ie, the metallicity */
+ /* t is the star life time */
+ /* return the stellar mass (in code unit) that has a lifetime equal to t */
+ /* this is the inverse of star_lifetime */
+
+
+ int i;
+ double a,b,c;
+ double coeff[3];
+ double m;
+
+
+ for (i=0;i<3;i++)
+ coeff[i] = ( Cp->coeff_z[i][0]*z+Cp->coeff_z[i][1] )*z+Cp->coeff_z[i][2];
+
+ a = coeff[0];
+ b = coeff[1];
+ c = coeff[2];
+
+ m = -(b+sqrt(b*b-a*(c-log10(t))))/a;
+
+ m = pow(10,m); /* here, m is in solar mass */
+ m = m*SOLAR_MASS/All.UnitMass_in_g; /* Msol to mass unit */
+
+ return m;
+
+}
+
+
+/****************************************************************************************/
+/*
+/* Supernova rate : number of supernova per mass unit
+/*
+/****************************************************************************************/
+
+
+double SNII_rate(double m1,double m2)
+{
+
+ /*
+ masses in code unit
+ */
+
+ double RSNII;
+ double md,mu;
+
+ RSNII = 0.0;
+
+ /* convert m in msol */
+ m1 = m1*All.UnitMass_in_g / SOLAR_MASS;
+ m2 = m2*All.UnitMass_in_g / SOLAR_MASS;
+
+ /* (1) find md, mu */
+ md = dmax(m1,Cp->SNII_Mmin);
+ mu = dmin(m2,Cp->SNII_Mmax);
+
+ if (mu<=md) /* no SNII in that mass range */
+ return 0.0;
+
+
+ RSNII = Cp->SNII_cte * (pow(mu,Cp->SNII_a)-pow(md,Cp->SNII_a)); /* number per solar mass */
+
+ /* convert in number per solar mass to number per mass unit */
+ RSNII = RSNII *All.UnitMass_in_g / SOLAR_MASS;
+
+ return RSNII;
+}
+
+
+
+double SNIa_rate(double m1,double m2)
+{
+
+ /*
+ masses in code unit
+ */
+
+ double RSNIa;
+ double md,mu;
+
+
+ RSNIa = 0.0;
+
+ /* convert m in msol */
+ m1 = m1*All.UnitMass_in_g / SOLAR_MASS;
+ m2 = m2*All.UnitMass_in_g / SOLAR_MASS;
+
+ /* RG contribution */
+ md = dmax(m1,Cp->SNIa_Mdl1);
+ mu = dmin(m2,Cp->SNIa_Mdu1);
+
+ if (md<mu)
+ RSNIa = RSNIa + Cp->SNIa_bb1 * Cp->SNIa_cte1 * (pow(mu,Cp->SNIa_a1)-pow(md,Cp->SNIa_a1));
+
+
+ /* MS contribution */
+ md = dmax(m1,Cp->SNIa_Mdl2);
+ mu = dmin(m2,Cp->SNIa_Mdu2);
+
+ if (md<mu)
+ RSNIa = RSNIa + Cp->SNIa_bb2 * Cp->SNIa_cte2 * (pow(mu,Cp->SNIa_a2)-pow(md,Cp->SNIa_a2));
+
+
+
+ /* WD contribution */
+ md = dmax(m1,Cp->SNIa_Mpl); /* select stars that have finished their life -> WD */
+ mu = Cp->SNIa_Mpu; /* no upper bond */
+
+
+ if (mu<=md) /* no SNIa in that mass range */
+ return 0.0;
+
+ RSNIa = RSNIa * Cp->SNIa_cte * (pow(mu,Cp->SNIa_a)-pow(md,Cp->SNIa_a)); /* number per solar mass */
+
+ /* convert in number per solar mass to number per mass unit */
+ RSNIa = RSNIa *All.UnitMass_in_g / SOLAR_MASS;
+
+
+
+ return RSNIa;
+}
+
+
+
+
+void SNII_mass_ejection(double m1,double m2)
+{
+
+ double l1,l2;
+ int i1,i2,i1p,i2p,j;
+ double f1,f2;
+ double v1,v2;
+
+ /* convert m in msol */
+ m1 = m1*All.UnitMass_in_g / SOLAR_MASS;
+ m2 = m2*All.UnitMass_in_g / SOLAR_MASS;
+
+ j = 0;
+
+ l1 = ( log10(m1) - Elt[j].Mmin) / Elt[j].Step ;
+ l2 = ( log10(m2) - Elt[j].Mmin) / Elt[j].Step ;
+
+ if (l1 < 0.0) l1 = 0.0;
+ if (l2 < 0.0) l2 = 0.0;
+
+ i1 = (int)l1;
+ i2 = (int)l2;
+
+ i1p = i1 + 1;
+ i2p = i2 + 1;
+
+ f1 = l1 - i1;
+ f2 = l2 - i2;
+
+ /* check (yr) */
+ if (i1<0) i1=0;
+ if (i2<0) i2=0;
+
+
+ /* --------- TOTAL GAS ---------- */
+ j = 0;
+ v1 = f1 * ( Elt[j].Array[i1p] - Elt[j].Array[i1] ) + Elt[j].Array[i1];
+ v2 = f2 * ( Elt[j].Array[i2p] - Elt[j].Array[i2] ) + Elt[j].Array[i2];
+ MassFracSNII[j] = v2-v1;
+
+ /* --------- He core therm ---------- */
+ j = 1;
+ v1 = f1 * ( Elt[j].Array[i1p] - Elt[j].Array[i1] ) + Elt[j].Array[i1];
+ v2 = f2 * ( Elt[j].Array[i2p] - Elt[j].Array[i2] ) + Elt[j].Array[i2];
+ MassFracSNII[j] = v2-v1;
+
+
+
+
+ /* ---------------------------- */
+ /* --------- Metals ---------- */
+ /* ---------------------------- */
+
+ j = 2;
+
+ l1 = ( log10(m1) - Elt[j].Mmin) / Elt[j].Step ;
+ l2 = ( log10(m2) - Elt[j].Mmin) / Elt[j].Step ;
+
+ if (l1 < 0.0) l1 = 0.0;
+ if (l2 < 0.0) l2 = 0.0;
+
+ i1 = (int)l1;
+ i2 = (int)l2;
+
+ i1p = i1 + 1;
+ i2p = i2 + 1;
+
+ f1 = l1 - i1;
+ f2 = l2 - i2;
+
+ /* check (yr) */
+ if (i1<0) i1=0;
+ if (i2<0) i2=0;
+
+
+ for (j=2;j<Cp->nelts+2;j++)
+ {
+ v1 = f1 * ( Elt[j].Array[i1p] - Elt[j].Array[i1] ) + Elt[j].Array[i1];
+ v2 = f2 * ( Elt[j].Array[i2p] - Elt[j].Array[i2] ) + Elt[j].Array[i2];
+ MassFracSNII[j] = v2-v1;
+ }
+
+}
+
+
+
+
+
+
+void SNII_single_mass_ejection(double m1)
+{
+
+ double l1;
+ int i1,i1p,j;
+ double f1;
+ double v1;
+
+ /* convert m in msol */
+ m1 = m1*All.UnitMass_in_g / SOLAR_MASS;
+
+ j = 0;
+
+ l1 = ( log10(m1) - Elt[j].Mmin) / Elt[j].Step ;
+
+ if (l1 < 0.0) l1 = 0.0;
+
+ i1 = (int)l1;
+
+ i1p = i1 + 1;
+
+ f1 = l1 - i1;
+
+ /* check (yr) */
+ if (i1<0) i1=0;
+
+
+ /* --------- TOTAL GAS ---------- */
+ j = 0;
+ v1 = f1 * ( Elt[j].Metal[i1p] - Elt[j].Metal[i1] ) + Elt[j].Metal[i1];
+ SingleMassFracSNII[j] = v1;
+
+ /* --------- He core therm ---------- */
+ j = 1;
+ v1 = f1 * ( Elt[j].Metal[i1p] - Elt[j].Metal[i1] ) + Elt[j].Metal[i1];
+ SingleMassFracSNII[j] = v1;
+
+
+
+
+ /* ---------------------------- */
+ /* --------- Metals ---------- */
+ /* ---------------------------- */
+
+ j = 2;
+
+ l1 = ( log10(m1) - Elt[j].Mmin) / Elt[j].Step ;
+
+ if (l1 < 0.0) l1 = 0.0;
+
+ i1 = (int)l1;
+
+ i1p = i1 + 1;
+
+ f1 = l1 - i1;
+
+ /* check (yr) */
+ if (i1<0) i1=0;
+
+
+ for (j=2;j<Cp->nelts+2;j++)
+ {
+ v1 = f1 * ( Elt[j].Metal[i1p] - Elt[j].Metal[i1] ) + Elt[j].Metal[i1];
+ SingleMassFracSNII[j] = v1;
+ }
+
+}
+
+
+
+
+
+
+void Total_mass_ejection(double m1,double m2,double M0,double *z)
+{
+
+ int j;
+ double NSNIa;
+
+ /* compute SNII mass ejection -> MassFracSNII */
+ SNII_mass_ejection(m1,m2);
+
+
+ /* number of SNIa per mass unit between time and time+dt */
+ NSNIa = SNIa_rate(m1,m2)*M0;
+
+ /* number of SNII per mass unit between time and time+dt */
+ //NSNII = SNII_rate(m1,m2)*M0; /* useless (only for energy) */
+
+ /* total ejected gas mass */
+ EjectedMass[0] = M0 * MassFracSNII[0] + Cp->Mco/All.UnitMass_in_g*SOLAR_MASS * NSNIa;
+
+
+ /* ejected mass per element */
+ for (j=2;j<Cp->nelts+2;j++)
+ EjectedMass[j] = M0*(MassFracSNII[j] +z[j-2]*MassFracSNII[1]) + NSNIa* Elt[j].MSNIa/All.UnitMass_in_g*SOLAR_MASS;
+
+
+ /* not used */
+ EjectedMass[1] = -1;
+
+
+}
+
+
+
+
+void Total_single_mass_ejection(double m1,double *z)
+{
+
+ /*
+
+ !!! we do not take into account SNIa
+ */
+
+ int j;
+ float M0;
+
+ M0 = m1;
+
+ /* compute SNII mass ejection -> SingleMassFracSNII */
+ SNII_single_mass_ejection(m1);
+
+
+ /* total ejected gas mass */
+ SingleEjectedMass[0] = M0 * SingleMassFracSNII[0]; /* + Cp->Mco/All.UnitMass_in_g*SOLAR_MASS * NSNIa; */
+
+
+ /* ejected mass per element */
+ for (j=2;j<Cp->nelts+2;j++)
+ SingleEjectedMass[j] = M0*(SingleMassFracSNII[j] +z[j-2]*SingleMassFracSNII[1]); /* + NSNIa* Elt[j].MSNIa/All.UnitMass_in_g*SOLAR_MASS; */
+
+ /* not used */
+ SingleEjectedMass[1] = -1;
+
+}
+
+
+
+
+
+
+
+
+
+
+/**********************************************************************************************
+
+ END OF CHIMIE FUNCTIONS
+
+**********************************************************************************************/
+
+
+
+
+
+
+
+
+
+#if defined(CHIMIE_THERMAL_FEEDBACK) && defined(CHIMIE_COMPUTE_THERMAL_FEEDBACK_ENERGY)
+
+void chimie_compute_energy_int(int mode)
+{
+ int i;
+ double DeltaEgyInt;
+ double Tot_DeltaEgyInt;
+
+ DeltaEgyInt = 0;
+ Tot_DeltaEgyInt = 0;
+
+ if (mode==1)
+ {
+ LocalSysState.EnergyInt1 = 0;
+ LocalSysState.EnergyInt2 = 0;
+ }
+
+
+ for(i = 0; i < N_gas; i++)
+ {
+ if (P[i].Type==0)
+ {
+
+ if (mode==1)
+ LocalSysState.EnergyInt1 += P[i].Mass * SphP[i].EntropyPred / (GAMMA_MINUS1) * pow(SphP[i].Density*a3inv, GAMMA_MINUS1);
+ else
+ LocalSysState.EnergyInt2 += P[i].Mass * SphP[i].EntropyPred / (GAMMA_MINUS1) * pow(SphP[i].Density*a3inv, GAMMA_MINUS1);
+ }
+ }
+
+ if (mode==2)
+ {
+ DeltaEgyInt = LocalSysState.EnergyInt2 - LocalSysState.EnergyInt1;
+ MPI_Reduce(&DeltaEgyInt, &Tot_DeltaEgyInt, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ LocalSysState.EnergyThermalFeedback -= DeltaEgyInt;
+ }
+
+
+}
+
+#endif
+
+
+
+#if defined(CHIMIE_KINETIC_FEEDBACK) && defined(CHIMIE_COMPUTE_KINETIC_FEEDBACK_ENERGY)
+
+void chimie_compute_energy_kin(int mode)
+{
+ int i;
+ double DeltaEgyKin;
+ double Tot_DeltaEgyKin;
+
+ DeltaEgyKin = 0;
+ Tot_DeltaEgyKin = 0;
+
+ if (mode==1)
+ {
+ LocalSysState.EnergyKin1 = 0;
+ LocalSysState.EnergyKin2 = 0;
+ }
+
+
+ for(i = 0; i < N_gas; i++)
+ {
+ if (P[i].Type==0)
+ {
+
+ if (mode==1)
+ LocalSysState.EnergyKin1 += 0.5 * P[i].Mass * (P[i].Vel[0]*P[i].Vel[0]+P[i].Vel[1]*P[i].Vel[1]+P[i].Vel[2]*P[i].Vel[2]);
+ else
+ LocalSysState.EnergyKin2 += 0.5 * P[i].Mass * (P[i].Vel[0]*P[i].Vel[0]+P[i].Vel[1]*P[i].Vel[1]+P[i].Vel[2]*P[i].Vel[2]);
+ }
+ }
+
+ if (mode==2)
+ {
+ DeltaEgyKin = LocalSysState.EnergyKin2 - LocalSysState.EnergyKin1;
+ MPI_Reduce(&DeltaEgyKin, &Tot_DeltaEgyKin, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ LocalSysState.EnergyKineticFeedback -= DeltaEgyKin;
+ }
+
+
+}
+
+#endif
+
+
+
+#ifdef CHIMIE_THERMAL_FEEDBACK
+void chimie_apply_thermal_feedback(void)
+{
+
+ int i;
+ double EgySpec,NewEgySpec,DeltaEntropy;
+
+ for(i = 0; i < N_gas; i++)
+ {
+ if (P[i].Type==0)
+ {
+ if (SphP[i].DeltaEgySpec > 0)
+ {
+
+ /* spec energy at current step */
+ EgySpec = SphP[i].EntropyPred / GAMMA_MINUS1 * pow(SphP[i].Density*a3inv, GAMMA_MINUS1);
+
+ /* new egyspec */
+ NewEgySpec = EgySpec + SphP[i].DeltaEgySpec;
+
+ LocalSysState.EnergyThermalFeedback -= SphP[i].DeltaEgySpec*P[i].Mass;
+ /* new entropy */
+ DeltaEntropy = GAMMA_MINUS1*NewEgySpec/pow(SphP[i].Density*a3inv, GAMMA_MINUS1) - SphP[i].EntropyPred;
+
+ SphP[i].EntropyPred += DeltaEntropy;
+ SphP[i].Entropy += DeltaEntropy;
+
+
+ /* set the adiabatic period for SNIa */
+ if (SphP[i].NumberOfSNIa>0)
+ SphP[i].SNIaThermalTime = All.Time;
+
+ /* set the adiabatic period for SNII */
+ if (SphP[i].NumberOfSNII>0)
+ SphP[i].SNIIThermalTime = All.Time;
+
+
+
+ /* reset variables */
+ SphP[i].DeltaEgySpec = 0;
+ SphP[i].NumberOfSNIa = 0;
+ SphP[i].NumberOfSNII = 0;
+
+
+ }
+ }
+ }
+
+}
+#endif
+
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+void chimie_apply_wind(void)
+{
+
+ /* apply wind */
+
+ int i;
+ double e1,e2;
+ double phi,costh,sinth,vx,vy,vz;
+
+ for(i = 0; i < N_gas; i++)
+ {
+ if (P[i].Type==0)
+ {
+ if (SphP[i].WindFlag)
+ {
+
+ phi = get_ChimieKineticFeedback_random_number(P[i].ID)*PI*2.;
+ costh = 1.-2.*get_ChimieKineticFeedback_random_number(P[i].ID+1);
+ sinth = sqrt(1.-pow(costh,2));
+
+ vx = All.ChimieWindSpeed*sinth*cos(phi);
+ vy = All.ChimieWindSpeed*sinth*sin(phi);
+ vz = All.ChimieWindSpeed*costh;
+
+ e1 = 0.5*P[i].Mass * ( SphP[i].VelPred[0]*SphP[i].VelPred[0] + SphP[i].VelPred[1]*SphP[i].VelPred[1] + SphP[i].VelPred[2]*SphP[i].VelPred[2]);
+
+ P[i].Vel[0] += vx;
+ P[i].Vel[1] += vy;
+ P[i].Vel[2] += vz;
+
+ SphP[i].VelPred[0] += vx;
+ SphP[i].VelPred[1] += vy;
+ SphP[i].VelPred[2] += vz;
+
+ e2 = 0.5*P[i].Mass * ( SphP[i].VelPred[0]*SphP[i].VelPred[0] + SphP[i].VelPred[1]*SphP[i].VelPred[1] + SphP[i].VelPred[2]*SphP[i].VelPred[2]);
+ LocalSysState.EnergyKineticFeedback -= e2-e1;
+
+ SphP[i].WindFlag = 0;
+ }
+ }
+ }
+
+}
+#endif
+
+
+
+/*! This function is the driver routine for the calculation of chemical evolution
+ */
+void chimie(void)
+{
+ double t0, t1;
+
+ t0 = second(); /* measure the time for the full chimie computation */
+
+
+ if (ThisTask==0)
+ printf("Start Chimie computation.\n");
+
+
+
+
+ if(All.ComovingIntegrationOn)
+ {
+ /* Factors for comoving integration of hydro */
+ hubble_a = All.Omega0 / (All.Time * All.Time * All.Time)
+ + (1 - All.Omega0 - All.OmegaLambda) / (All.Time * All.Time) + All.OmegaLambda;
+
+ hubble_a = All.Hubble * sqrt(hubble_a);
+ hubble_a2 = All.Time * All.Time * hubble_a;
+
+ fac_mu = pow(All.Time, 3 * (GAMMA - 1) / 2) / All.Time;
+
+ fac_egy = pow(All.Time, 3 * (GAMMA - 1));
+
+ fac_vsic_fix = hubble_a * pow(All.Time, 3 * GAMMA_MINUS1);
+
+ a3inv = 1 / (All.Time * All.Time * All.Time);
+ atime = All.Time;
+
+#ifdef FEEDBACK
+ fac_pow = fac_egy*atime*atime;
+#endif
+
+ }
+ else
+ {
+ hubble_a = hubble_a2 = atime = fac_mu = fac_vsic_fix = a3inv = fac_egy = 1.0;
+#ifdef FEEDBACK
+ fac_pow = 1.0;
+#endif
+ }
+
+
+
+
+
+/* apply thermal feedback on selected particles */
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ chimie_apply_thermal_feedback();
+#endif
+
+ /* apply wind on selected particles */
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ chimie_apply_wind();
+#endif
+
+
+
+
+ stars_density(); /* compute density */
+ do_chimie(); /* chimie */
+
+
+
+ if (ThisTask==0)
+ printf("Chimie computation done.\n");
+
+
+ t1 = second();
+ All.CPU_Chimie += timediff(t0, t1);
+
+}
+
+
+
+/*! This function is the driver routine for the calculation of chemical evolution
+ */
+void do_chimie(void)
+{
+ long long ntot, ntotleft;
+ int i, j, k, n, m, ngrp, maxfill, source, ndone;
+ int *nbuffer, *noffset, *nsend_local, *nsend, *numlist, *ndonelist;
+ int level, sendTask, recvTask, nexport, place;
+ double tstart, tend, sumt, sumcomm;
+ double timecomp = 0, timecommsumm = 0, timeimbalance = 0, sumimbalance;
+ int flag_chimie;
+ MPI_Status status;
+
+ int do_it;
+ int Ti0,Ti1,Ti2;
+ double t1,t2,t01,t02;
+ double tmin,tmax;
+ double minlivetime,maxlivetime;
+ double m1,m2,M0;
+ double NSNIa,NSNII;
+ double NSNIa_tot,NSNII_tot,NSNIa_totlocal,NSNII_totlocal;
+ double EgySN,EgySNlocal;
+ double EgySNThermal,EgySNKinetic;
+ int Nchim,Nchimlocal;
+ int Nwind,Nwindlocal;
+ int Nflag,Nflaglocal;
+ int Noldwind,Noldwindlocal;
+ double metals[NELEMENTS];
+
+ double FeH;
+
+ float MinRelMass=1e-3;
+
+#ifdef DETAILED_CPU_OUTPUT_IN_CHIMIE
+ double *timecomplist;
+ double *timecommsummlist;
+ double *timeimbalancelist;
+#endif
+
+
+#ifdef PERIODIC
+ boxSize = All.BoxSize;
+ boxHalf = 0.5 * All.BoxSize;
+#ifdef LONG_X
+ boxHalf_X = boxHalf * LONG_X;
+ boxSize_X = boxSize * LONG_X;
+#endif
+#ifdef LONG_Y
+ boxHalf_Y = boxHalf * LONG_Y;
+ boxSize_Y = boxSize * LONG_Y;
+#endif
+#ifdef LONG_Z
+ boxHalf_Z = boxHalf * LONG_Z;
+ boxSize_Z = boxSize * LONG_Z;
+#endif
+#endif
+
+#ifdef COMPUTE_VELOCITY_DISPERSION
+ double v1m,v2m;
+#endif
+
+
+ /* `NumStUpdate' gives the number of particles on this processor that want a chimie computation */
+ for(n = 0, NumStUpdate = 0; n < N_gas+N_stars; n++)
+ {
+ if(P[n].Ti_endstep == All.Ti_Current)
+ if(P[n].Type == ST)
+ {
+ m = P[n].StPIdx;
+ if ( (P[n].Mass/StP[m].InitialMass) > MinRelMass)
+ NumStUpdate++;
+ }
+
+ if(P[n].Type == 0)
+ SphP[n].dMass = 0.;
+
+ }
+
+ numlist = malloc(NTask * sizeof(int) * NTask);
+ MPI_Allgather(&NumStUpdate, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, ntot = 0; i < NTask; i++)
+ ntot += numlist[i];
+ free(numlist);
+
+
+ noffset = malloc(sizeof(int) * NTask); /* offsets of bunches in common list */
+ nbuffer = malloc(sizeof(int) * NTask);
+ nsend_local = malloc(sizeof(int) * NTask);
+ nsend = malloc(sizeof(int) * NTask * NTask);
+ ndonelist = malloc(sizeof(int) * NTask);
+
+
+ i = 0; /* first gas particle, because stars may be hidden among gas particles */
+ ntotleft = ntot; /* particles left for all tasks together */
+
+
+ NSNIa_tot = 0;
+ NSNII_tot = 0;
+ NSNIa_totlocal = 0;
+ NSNII_totlocal = 0;
+ EgySN = 0;
+ EgySNlocal =0;
+ Nchimlocal = 0;
+ Nchim = 0;
+
+ Nwindlocal = 0;
+ Nwind = 0;
+
+ Noldwindlocal = 0;
+ Noldwind = 0;
+
+ Nflaglocal = 0;
+ Nflag = 0;
+
+ while(ntotleft > 0)
+ {
+ for(j = 0; j < NTask; j++)
+ nsend_local[j] = 0;
+
+ /* do local particles and prepare export list */
+ tstart = second();
+ for(nexport = 0, ndone = 0; i < N_gas+N_stars && nexport < All.BunchSizeChimie - NTask; i++)
+ {
+
+
+ /* only active particles and stars */
+ if((P[i].Ti_endstep == All.Ti_Current)&&(P[i].Type == ST))
+ {
+
+
+ if(P[i].Type != ST)
+ {
+ printf("P[i].Type != ST, we better stop.\n");
+ printf("N_gas=%d (type=%d) i=%d (type=%d)\n",N_gas,P[N_gas].Type,i,P[i].Type);
+ printf("Please, check that you do not use PEANOHILBERT\n");
+ endrun(777001);
+ }
+
+ m = P[i].StPIdx;
+
+ if ( (P[i].Mass/StP[m].InitialMass) > MinRelMass)
+ {
+
+ flag_chimie = 0;
+
+
+ /******************************************/
+ /* do chimie */
+ /******************************************/
+
+ /*****************************************************/
+ /* look if a SN may have explode during the last step
+ /*****************************************************/
+
+
+ /***********************************************/
+ /***********************************************/
+ /* set the right table base of the metallicity */
+
+ set_table(0);
+
+ //FeH = log10( (StP[m].Metal[FE]/get_SolarAbundance(FE)) + 1.e-20 );
+
+ //if (FeH<-3)
+ // set_table(1);
+ //else
+ // set_table(0);
+
+
+ //if (P[i].ID==65546)
+ // {
+ // printf("(%d) %g the particle 65546 FeH=%g metalFe=%g Mmin=%g Mmax=%g n=%d\n",ThisTask,All.Time,FeH,StP[m].Metal[FE],Cp->Mmin,Cp->Mmax,Cp->n);
+ // }
+
+ /*
+
+
+ Cp->Mmin
+ Cp->Mmax
+ Cp->n
+ Cp->ms[]
+ Cp->as[]
+
+ Cp->SNIa_cte
+ Cp->SNIa_a
+
+ Cp->SNIa_Mdl1
+ Cp->SNIa_Mdu1
+ Cp->SNIa_bb1
+ Cp->SNIa_cte1
+ Cp->SNIa_a1
+
+ Cp->SNIa_Mdl2
+ Cp->SNIa_Mdu2
+ Cp->SNIa_bb2
+ Cp->SNIa_cte2
+ Cp->SNIa_a2
+
+ */
+
+
+
+ /***********************************************/
+ /***********************************************/
+
+
+ /* minimum live time for a given metallicity */
+ minlivetime = star_lifetime(StP[m].Metal[NELEMENTS-1],Cp->Mmax*SOLAR_MASS/All.UnitMass_in_g)*All.HubbleParam;
+
+ /* maximum live time for a given metallicity */
+ maxlivetime = star_lifetime(StP[m].Metal[NELEMENTS-1],Cp->Mmin*SOLAR_MASS/All.UnitMass_in_g)*All.HubbleParam;
+
+
+ //if (P[i].ID==65546)
+ // printf("(%d) %g the particle 65546 has a max livetime of %g (metal=%g Mmin=%g)\n",ThisTask,All.Time,maxlivetime,StP[m].Metal[NELEMENTS-1],Cp->Mmin);
+
+
+ if (All.ComovingIntegrationOn)
+ {
+ /* FormationTime on the time line */
+ Ti0 = log(StP[m].FormationTime/All.TimeBegin) / All.Timebase_interval;
+ /* Beginning of time step on the time line */
+ Ti1 = P[i].Ti_begstep;
+ /* End of time step on the time line */
+ Ti2 = All.Ti_Current;
+
+#ifdef COSMICTIME
+ t01 = get_cosmictime_difference(Ti0,Ti1);
+ t02 = get_cosmictime_difference(Ti0,Ti2);
+#endif
+ }
+ else
+ {
+ t1 = All.TimeBegin + (P[i].Ti_begstep * All.Timebase_interval);
+ t2 = All.TimeBegin + (All.Ti_Current * All.Timebase_interval);
+
+ t01 = t1-StP[m].FormationTime;
+ t02 = t2-StP[m].FormationTime;
+ }
+
+
+
+ /* now treat all cases */
+ do_it=1;
+
+ /* beginning of interval */
+ if (t01>=minlivetime)
+ if (t01>=maxlivetime)
+ do_it=0; /* nothing to do */
+ else
+ m2 = star_mass_from_age(StP[m].Metal[NELEMENTS-1],t01/All.HubbleParam)*All.HubbleParam;
+ else
+ m2 = Cp->Mmax*SOLAR_MASS/All.UnitMass_in_g*All.HubbleParam;
+
+
+ /* end of interval */
+ if (t02<=maxlivetime)
+ if (t02<=minlivetime)
+ do_it=0; /* nothing to do */
+ else
+ m1 = star_mass_from_age(StP[m].Metal[NELEMENTS-1],t02/All.HubbleParam)*All.HubbleParam;
+ else
+ m1 = Cp->Mmin*SOLAR_MASS/All.UnitMass_in_g*All.HubbleParam;
+
+
+
+ //printf("Time=%g t01=%g t02=%g id=%d minlivetime=%g maxlivetime=%g \n",All.Time,t01,t02,P[i].ID,minlivetime,maxlivetime);
+
+
+
+
+ /* if some of the stars in the SSP explode between t1 and t2 */
+ if (do_it)
+ {
+
+
+ Nchimlocal++;
+
+ StP[m].Flag = 1; /* mark it as active */
+
+
+
+ if (m1>m2)
+ {
+ printf("m1=%g (%g Msol) > m2=%g (%g Msol) !!!\n\n",m1,m1*All.UnitMass_in_g/SOLAR_MASS,m2,m2*All.UnitMass_in_g/SOLAR_MASS);
+ endrun(777002);
+ }
+
+
+ M0 = StP[m].InitialMass;
+ for (k=0;k<NELEMENTS;k++)
+ metals[k] = StP[m].Metal[k];
+
+
+
+ /* number of SNIa */
+ NSNIa = SNIa_rate(m1/All.HubbleParam,m2/All.HubbleParam)*M0/All.HubbleParam;
+ /* number of SNII */
+ NSNII = SNII_rate(m1/All.HubbleParam,m2/All.HubbleParam)*M0/All.HubbleParam;
+
+
+
+ /* discretize SN */
+#ifdef CHIMIE_MC_SUPERNOVAE
+ double fNSNIa,fNSNII;
+
+ fNSNIa = NSNIa-floor(NSNIa);
+ NSNIa = floor(NSNIa);
+
+ if (get_Chimie_random_number(P[i].ID) < fNSNIa)
+ NSNIa = NSNIa+1;
+
+
+ fNSNII = NSNII-floor(NSNII);
+ NSNII = floor(NSNII);
+
+ if (get_Chimie_random_number(P[i].ID) < fNSNII)
+ NSNII = NSNII+1;
+
+#endif CHIMIE_MC_SUPERNOVAE
+ /* discretize SN */
+
+
+
+
+ NSNIa_totlocal += NSNIa;
+ NSNII_totlocal += NSNII;
+
+
+ /* compute ejectas */
+ Total_mass_ejection(m1/All.HubbleParam,m2/All.HubbleParam,M0/All.HubbleParam,metals);
+
+
+ StP[m].TotalEjectedGasMass = EjectedMass[0]*All.HubbleParam; /* gas mass */
+
+ for (k=0;k<NELEMENTS;k++)
+ StP[m].TotalEjectedEltMass[k] = EjectedMass[k+2]*All.HubbleParam; /* metal mass */
+
+ if (StP[m].TotalEjectedGasMass>0)
+ flag_chimie=1;
+
+ /* compute injected energy */
+ StP[m].TotalEjectedEgySpec = All.ChimieSupernovaEnergy* (NSNIa + NSNII) /StP[m].TotalEjectedGasMass;
+ StP[m].NumberOfSNIa = NSNIa;
+ StP[m].NumberOfSNII = NSNII;
+
+ EgySNlocal += All.ChimieSupernovaEnergy* (NSNIa + NSNII);
+
+
+ /* correct mass particle */
+
+ if (P[i].Mass-StP[m].TotalEjectedGasMass<0)
+ {
+ printf("mass wants to be less than zero...\n");
+ printf("P[i].Mass=%g StP[m].TotalEjectedGasMass=%g\n",P[i].Mass,StP[m].TotalEjectedGasMass);
+ endrun(777100);
+ }
+
+
+ //if (P[i].ID==65546)
+ // printf("(%d) %g the particle 65546 is here, mass=%g TotalEjectedEltMass=%g m1=%g m2=%g\n",ThisTask,All.Time,P[i].Mass,StP[m].TotalEjectedGasMass,m1,m2);
+
+
+ P[i].Mass = P[i].Mass-StP[m].TotalEjectedGasMass;
+ //float Fe,Mg;
+ //Fe = StP[m].TotalEjectedEltMass[0];
+ //Mg = StP[m].TotalEjectedEltMass[1];
+
+
+
+ }
+
+
+
+ /******************************************/
+ /* end do chimie */
+ /******************************************/
+
+ ndone++;
+
+
+ if (flag_chimie)
+ {
+
+ for(j = 0; j < NTask; j++)
+ Exportflag[j] = 0;
+
+ chimie_evaluate(i, 0);
+
+ for(j = 0; j < NTask; j++)
+ {
+ if(Exportflag[j])
+ {
+
+ for(k = 0; k < 3; k++)
+ {
+ ChimieDataIn[nexport].Pos[k] = P[i].Pos[k];
+ ChimieDataIn[nexport].Vel[k] = P[i].Vel[k];
+ }
+ ChimieDataIn[nexport].ID = P[i].ID;
+ ChimieDataIn[nexport].Timestep = P[i].Ti_endstep - P[i].Ti_begstep;
+
+ ChimieDataIn[nexport].Hsml = StP[m].Hsml;
+ ChimieDataIn[nexport].Density = StP[m].Density;
+ ChimieDataIn[nexport].Volume = StP[m].Volume;
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ ChimieDataIn[nexport].NgbMass = StP[m].NgbMass;
+#endif
+
+ ChimieDataIn[nexport].TotalEjectedGasMass = StP[m].TotalEjectedGasMass;
+ for(k = 0; k < NELEMENTS; k++)
+ ChimieDataIn[nexport].TotalEjectedEltMass[k] = StP[m].TotalEjectedEltMass[k];
+ ChimieDataIn[nexport].TotalEjectedEgySpec = StP[m].TotalEjectedEgySpec;
+ ChimieDataIn[nexport].NumberOfSNIa = StP[m].NumberOfSNIa;
+ ChimieDataIn[nexport].NumberOfSNII = StP[m].NumberOfSNII;
+
+#ifdef WITH_ID_IN_HYDRA
+ ChimieDataIn[nexport].ID = P[i].ID;
+#endif
+ ChimieDataIn[nexport].Index = i;
+ ChimieDataIn[nexport].Task = j;
+ nexport++;
+ nsend_local[j]++;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+ qsort(ChimieDataIn, nexport, sizeof(struct chimiedata_in), chimie_compare_key);
+
+ for(j = 1, noffset[0] = 0; j < NTask; j++)
+ noffset[j] = noffset[j - 1] + nsend_local[j - 1];
+
+ tstart = second();
+
+ MPI_Allgather(nsend_local, NTask, MPI_INT, nsend, NTask, MPI_INT, MPI_COMM_WORLD);
+
+ tend = second();
+ timeimbalance += timediff(tstart, tend);
+
+
+
+ /* now do the particles that need to be exported */
+
+ for(level = 1; level < (1 << PTask); level++)
+ {
+ tstart = second();
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeChimie)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* get the particles */
+ MPI_Sendrecv(&ChimieDataIn[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct chimiedata_in), MPI_BYTE,
+ recvTask, TAG_CHIMIE_A,
+ &ChimieDataGet[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct chimiedata_in), MPI_BYTE,
+ recvTask, TAG_CHIMIE_A, MPI_COMM_WORLD, &status);
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+ tend = second();
+ timecommsumm += timediff(tstart, tend);
+
+ /* now do the imported particles */
+ tstart = second();
+ for(j = 0; j < nbuffer[ThisTask]; j++)
+ chimie_evaluate(j, 1);
+
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+ /* do a block to measure imbalance */
+ tstart = second();
+ MPI_Barrier(MPI_COMM_WORLD);
+ tend = second();
+ timeimbalance += timediff(tstart, tend);
+
+ /* get the result */
+ tstart = second();
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeChimie)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* send the results */
+ MPI_Sendrecv(&ChimieDataResult[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct chimiedata_out),
+ MPI_BYTE, recvTask, TAG_CHIMIE_B,
+ &ChimieDataPartialResult[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct chimiedata_out),
+ MPI_BYTE, recvTask, TAG_CHIMIE_B, MPI_COMM_WORLD, &status);
+
+ /* add the result to the particles */
+ for(j = 0; j < nsend_local[recvTask]; j++)
+ {
+ source = j + noffset[recvTask];
+ place = ChimieDataIn[source].Index;
+
+// for(k = 0; k < 3; k++)
+// SphP[place].HydroAccel[k] += HydroDataPartialResult[source].Acc[k];
+//
+// SphP[place].DtEntropy += HydroDataPartialResult[source].DtEntropy;
+//#ifdef FEEDBACK
+// SphP[place].DtEgySpecFeedback += HydroDataPartialResult[source].DtEgySpecFeedback;
+//#endif
+// if(SphP[place].MaxSignalVel < HydroDataPartialResult[source].MaxSignalVel)
+// SphP[place].MaxSignalVel = HydroDataPartialResult[source].MaxSignalVel;
+//#ifdef COMPUTE_VELOCITY_DISPERSION
+// for(k = 0; k < VELOCITY_DISPERSION_SIZE; k++)
+// SphP[place].VelocityDispersion[k] += HydroDataPartialResult[source].VelocityDispersion[k];
+//#endif
+
+ }
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+ tend = second();
+ timecommsumm += timediff(tstart, tend);
+
+ level = ngrp - 1;
+ }
+
+ MPI_Allgather(&ndone, 1, MPI_INT, ndonelist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(j = 0; j < NTask; j++)
+ ntotleft -= ndonelist[j];
+ }
+
+ free(ndonelist);
+ free(nsend);
+ free(nsend_local);
+ free(nbuffer);
+ free(noffset);
+
+
+
+ /* do final operations on results */
+ tstart = second();
+
+ for(i = 0; i < N_gas; i++)
+ {
+ if (P[i].Type==0)
+ {
+ P[i].Mass += SphP[i].dMass;
+ SphP[i].dMass = 0.;
+ }
+ }
+
+
+
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+
+
+
+ /* collect some timing information */
+
+ MPI_Reduce(&timecomp, &sumt, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timecommsumm, &sumcomm, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timeimbalance, &sumimbalance, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+
+
+
+ if(ThisTask == 0)
+ {
+ All.CPU_ChimieCompWalk += sumt / NTask;
+ All.CPU_ChimieCommSumm += sumcomm / NTask;
+ All.CPU_ChimieImbalance += sumimbalance / NTask;
+ }
+
+
+
+
+
+#ifdef DETAILED_CPU_OUTPUT_IN_CHIMIE
+ numlist = malloc(sizeof(int) * NTask);
+ timecomplist = malloc(sizeof(double) * NTask);
+ timecommsummlist = malloc(sizeof(double) * NTask);
+ timeimbalancelist = malloc(sizeof(double) * NTask);
+
+
+ MPI_Gather(&NumStUpdate, 1, MPI_INT, numlist, 1, MPI_INT, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timecomp, 1, MPI_DOUBLE, timecomplist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timecommsumm, 1, MPI_DOUBLE, timecommsummlist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timeimbalance, 1, MPI_DOUBLE, timeimbalancelist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+
+ if(ThisTask == 0)
+ {
+ fprintf(FdTimings, "\n chimie\n\n");
+
+ fprintf(FdTimings, "Nupdate ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12d ",numlist[i]); /* nombre de part par proc */
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timecomp ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timecomplist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timecommsumm ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timecommsummlist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timeimbalance ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timeimbalancelist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "\n");
+ }
+
+ free(timeimbalancelist);
+ free(timecommsummlist);
+ free(timecomplist);
+ free(numlist);
+#endif
+
+
+
+
+ /* collect some chimie informations */
+ MPI_Reduce(&NSNIa_totlocal, &NSNIa_tot, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&NSNII_totlocal, &NSNII_tot, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&EgySNlocal, &EgySN, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&Nchimlocal, &Nchim, 1, MPI_INT , MPI_SUM, 0, MPI_COMM_WORLD);
+
+
+
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ EgySNThermal = EgySN*(1-All.ChimieKineticFeedbackFraction);
+#else
+ EgySNThermal = 0;
+#endif
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ EgySNKinetic = EgySN*All.ChimieKineticFeedbackFraction;
+
+ /* count number of wind particles */
+ for(i = 0; i < N_gas; i++)
+ {
+ if (P[i].Type==0)
+ {
+ if (SphP[i].WindTime >= (All.Time-All.ChimieWindTime))
+ Nwindlocal++;
+ //else
+ // if (SphP[i].WindTime > All.TimeBegin-2*All.ChimieWindTime)
+ // Noldwindlocal++;
+
+ if (SphP[i].WindFlag)
+ Nflaglocal++;
+ }
+ }
+
+ MPI_Reduce(&Nwindlocal, &Nwind, 1, MPI_INT , MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&Noldwindlocal, &Noldwind, 1, MPI_INT , MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Allreduce(&Nflaglocal, &Nflag, 1, MPI_INT , MPI_SUM, MPI_COMM_WORLD);
+
+#else
+ EgySNKinetic = 0;
+#endif
+
+
+
+ /* write some info */
+ if (ThisTask==0)
+ {
+ fprintf(FdChimie, "%15g %10d %15g %15g %15g %15g %15g %10d %10d %10d\n",All.Time,Nchim,NSNIa_tot,NSNII_tot,EgySN,EgySNThermal,EgySNKinetic,Nwind,Noldwind,Nflag);
+ fflush(FdChimie);
+ }
+
+
+ if (Nflag>0)
+ {
+ SetMinTimeStepForActives=1;
+ if (ThisTask==0)
+ fprintf(FdLog,"%g : !!! set min timestep for active particles !!!\n",All.Time);
+ }
+
+
+
+}
+
+
+/*! This function is the 'core' of the Chemie computation. A target
+ * particle is specified which may either be local, or reside in the
+ * communication buffer.
+ */
+void chimie_evaluate(int target, int mode)
+{
+ int j, n, startnode, numngb,numngb_inbox,k;
+ FLOAT *pos,*vel;
+ //FLOAT *vel;
+ //FLOAT mass;
+ double h, h2;
+ double acc[3];
+ double dx, dy, dz;
+ double wk, r, r2, u=0;
+ double hinv=1, hinv3;
+ int target_stp;
+
+ double density;
+ double volume;
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ double ngbmass;
+ double p;
+#endif
+
+ double aij;
+ double ejectedGasMass;
+ double ejectedEltMass[NELEMENTS];
+ double ejectedEgySpec;
+ double NumberOfSNIa;
+ double NumberOfSNII;
+
+ double mass_k;
+ double NewMass;
+ double fv,vi2,vj2;
+
+ double EgySpec,NewEgySpec;
+ double DeltaEntropy;
+ double DeltaVel[3];
+
+#ifndef LONGIDS
+ unsigned int id; /*!< particle identifier */
+#else
+ unsigned long long id; /*!< particle identifier */
+#endif
+
+
+ if(mode == 0)
+ {
+ pos = P[target].Pos;
+ vel = P[target].Vel;
+ id = P[target].ID;
+
+ target_stp = P[target].StPIdx;
+ h = StP[target_stp].Hsml;
+ density = StP[target_stp].Density;
+ volume = StP[target_stp].Volume;
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ ngbmass = StP[target_stp].NgbMass;
+#endif
+
+ ejectedGasMass = StP[target_stp].TotalEjectedGasMass;
+ for(k=0;k<NELEMENTS;k++)
+ ejectedEltMass[k] = StP[target_stp].TotalEjectedEltMass[k];
+
+ ejectedEgySpec = StP[target_stp].TotalEjectedEgySpec;
+ NumberOfSNIa = StP[target_stp].NumberOfSNIa;
+ NumberOfSNII = StP[target_stp].NumberOfSNII;
+
+ }
+ else
+ {
+ pos = ChimieDataGet[target].Pos;
+ vel = ChimieDataGet[target].Vel;
+ id = ChimieDataGet[target].ID;
+ h = ChimieDataGet[target].Hsml;
+ density = ChimieDataGet[target].Density;
+ volume = ChimieDataGet[target].Volume;
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ ngbmass = ChimieDataGet[target].NgbMass;
+#endif
+
+ ejectedGasMass = ChimieDataGet[target].TotalEjectedGasMass;
+ for(k=0;k<NELEMENTS;k++)
+ ejectedEltMass[k] = ChimieDataGet[target].TotalEjectedEltMass[k];
+
+ ejectedEgySpec = ChimieDataGet[target].TotalEjectedEgySpec;
+ NumberOfSNIa = ChimieDataGet[target].NumberOfSNIa;
+ NumberOfSNII = ChimieDataGet[target].NumberOfSNII;
+
+ }
+
+
+ /* initialize variables before SPH loop is started */
+ acc[0] = acc[1] = acc[2] = 0;
+
+ vi2 = 0;
+ for(k=0;k<3;k++)
+ vi2 += vel[k]*vel[k];
+
+ h2 = h * h;
+ hinv = 1.0 / h;
+#ifndef TWODIMS
+ hinv3 = hinv * hinv * hinv;
+#else
+ hinv3 = hinv * hinv / boxSize_Z;
+#endif
+
+
+ /* Now start the actual SPH computation for this particle */
+ startnode = All.MaxPart;
+ numngb = 0;
+ do
+ {
+ numngb_inbox = ngb_treefind_variable_for_chimie(&pos[0], h, &startnode);
+
+ for(n = 0; n < numngb_inbox; n++)
+ {
+ j = Ngblist[n];
+
+ dx = pos[0] - P[j].Pos[0];
+ dy = pos[1] - P[j].Pos[1];
+ dz = pos[2] - P[j].Pos[2];
+
+#ifdef PERIODIC /* now find the closest image in the given box size */
+ if(dx > boxHalf_X)
+ dx -= boxSize_X;
+ if(dx < -boxHalf_X)
+ dx += boxSize_X;
+ if(dy > boxHalf_Y)
+ dy -= boxSize_Y;
+ if(dy < -boxHalf_Y)
+ dy += boxSize_Y;
+ if(dz > boxHalf_Z)
+ dz -= boxSize_Z;
+ if(dz < -boxHalf_Z)
+ dz += boxSize_Z;
+#endif
+ r2 = dx * dx + dy * dy + dz * dz;
+
+ if(r2 < h2)
+ {
+ numngb++;
+
+ r = sqrt(r2);
+
+ u = r * hinv;
+
+ if(u < 0.5)
+ {
+ wk = hinv3 * (KERNEL_COEFF_1 + KERNEL_COEFF_2 * (u - 1) * u * u);
+ }
+ else
+ {
+ wk = hinv3 * KERNEL_COEFF_5 * (1.0 - u) * (1.0 - u) * (1.0 - u);
+ }
+
+
+
+ /* normalisation using mass */
+ aij = P[j].Mass*wk/density;
+
+ /* normalisation using volume */
+ /* !!! si on utilise, il faut stoquer une nouvelle variable : OldDensity, car density est modifié plus bas... */
+ //aij = P[j].Mass/SphP[j].Density*wk/volume;
+
+
+ /* metal injection */
+ for(k=0;k<NELEMENTS;k++)
+ {
+ mass_k = SphP[j].Metal[k]*P[j].Mass; /* mass of elt k */
+ SphP[j].Metal[k] = ( mass_k + aij*ejectedEltMass[k] )/( P[j].Mass + aij*ejectedGasMass );
+ }
+
+
+ /* new mass */
+ NewMass = P[j].Mass + aij*ejectedGasMass;
+
+
+ /* new velocity */
+ vj2 = 0;
+ for(k=0;k<3;k++)
+ vj2 += SphP[j].VelPred[k]*SphP[j].VelPred[k];
+
+ fv = sqrt( (P[j].Mass/NewMass) + aij*(ejectedGasMass/NewMass) * (vi2/vj2) );
+
+ for(k=0;k<3;k++)
+ {
+ DeltaVel[k] = fv*SphP[j].VelPred[k] - SphP[j].VelPred[k];
+ SphP[j].VelPred[k] += DeltaVel[k];
+ P[j].Vel [k] += DeltaVel[k];
+ }
+
+ /* spec energy at current step */
+ EgySpec = SphP[j].EntropyPred / GAMMA_MINUS1 * pow(SphP[j].Density*a3inv, GAMMA_MINUS1);
+
+ /* new egyspec */
+ NewEgySpec = (EgySpec )*(P[j].Mass/NewMass);
+
+ /* new density */
+ SphP[j].Density = SphP[j].Density*NewMass/P[j].Mass;
+
+
+ /* new entropy */
+ DeltaEntropy = GAMMA_MINUS1*NewEgySpec/pow(SphP[j].Density*a3inv, GAMMA_MINUS1) - SphP[j].EntropyPred;
+
+ SphP[j].EntropyPred += DeltaEntropy;
+ SphP[j].Entropy += DeltaEntropy;
+
+
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ SphP[j].DeltaEgySpec += (1.-All.ChimieKineticFeedbackFraction)*(ejectedGasMass*ejectedEgySpec)* aij/NewMass;
+ SphP[j].NumberOfSNII += NumberOfSNII*aij;
+ SphP[j].NumberOfSNIa += NumberOfSNIa*aij;
+#endif
+
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ p = (All.ChimieKineticFeedbackFraction*ejectedEgySpec*ejectedGasMass)/(0.5*ngbmass*All.ChimieWindSpeed*All.ChimieWindSpeed);
+
+ double r;
+ r = get_Chimie_random_number(P[j].ID+id);
+
+
+ if ( r < p) /* we should maybe have a 2d table here... */
+ {
+
+ if (SphP[j].WindTime < (All.Time-All.ChimieWindTime)) /* not a wind particle */
+ {
+ SphP[j].WindFlag = 1;
+ SphP[j].WindTime = All.Time;
+ }
+
+ }
+#endif
+
+
+
+#ifdef CHECK_ENTROPY_SIGN
+ if ((SphP[j].EntropyPred < 0)||(SphP[j].Entropy < 0))
+ {
+ printf("\ntask=%d: entropy less than zero in chimie_evaluate !\n", ThisTask);
+ printf("ID=%d Entropy=%g EntropyPred=%g DeltaEntropy=%g\n",P[j].ID,SphP[j].Entropy,SphP[j].EntropyPred,DeltaEntropy);
+ fflush(stdout);
+ endrun(777003);
+
+ }
+#endif
+
+
+
+ /* store mass diff. */
+ SphP[j].dMass += NewMass-P[j].Mass;
+
+
+ }
+ }
+ }
+ while(startnode >= 0);
+
+
+
+ /* Now collect the result at the right place */
+ if(mode == 0)
+ {
+// for(k = 0; k < 3; k++)
+// SphP[target].HydroAccel[k] = acc[k];
+// SphP[target].DtEntropy = dtEntropy;
+//#ifdef FEEDBACK
+// SphP[target].DtEgySpecFeedback = dtEgySpecFeedback;
+//#endif
+// SphP[target].MaxSignalVel = maxSignalVel;
+//#ifdef COMPUTE_VELOCITY_DISPERSION
+// for(k = 0; k < VELOCITY_DISPERSION_SIZE; k++)
+// SphP[target].VelocityDispersion[k] = VelocityDispersion[k];
+//#endif
+ }
+ else
+ {
+// for(k = 0; k < 3; k++)
+// HydroDataResult[target].Acc[k] = acc[k];
+// HydroDataResult[target].DtEntropy = dtEntropy;
+//#ifdef FEEDBACK
+// HydroDataResult[target].DtEgySpecFeedback = dtEgySpecFeedback;
+//#endif
+// HydroDataResult[target].MaxSignalVel = maxSignalVel;
+//#ifdef COMPUTE_VELOCITY_DISPERSION
+// for(k = 0; k < VELOCITY_DISPERSION_SIZE; k++)
+// HydroDataResult[target].VelocityDispersion[k] = VelocityDispersion[k];
+//#endif
+ }
+}
+
+
+
+
+
+/*! This is a comparison kernel for a sort routine, which is used to group
+ * particles that are going to be exported to the same CPU.
+ */
+int chimie_compare_key(const void *a, const void *b)
+{
+ if(((struct chimiedata_in *) a)->Task < (((struct chimiedata_in *) b)->Task))
+ return -1;
+ if(((struct chimiedata_in *) a)->Task > (((struct chimiedata_in *) b)->Task))
+ return +1;
+ return 0;
+}
+
+
+#endif
diff --git a/clusters/user/GEAR/src/cooling.c b/clusters/user/GEAR/src/cooling.c
new file mode 100644
index 0000000..68eb15f
--- /dev/null
+++ b/clusters/user/GEAR/src/cooling.c
@@ -0,0 +1,2104 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_spline.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_roots.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+#ifdef COOLING
+
+
+
+
+/*! initialize cooling function (the metallicity is fixed)
+ *
+ * T = temperature
+ * L0 = m000 primordial metallicity
+ * L1 = m-30
+ * L2 = m-20
+ * L3 = m-10
+ * L4 = m-05
+ * L5 = m-00 solar metallicity
+ * L6 = m+05
+ */
+int init_cooling(FLOAT metallicity)
+{
+
+ FILE *fd;
+ int n,i;
+ char line[72];
+ float T,L0,L1,L2,L3,L4,L5,L6;
+ int MetallicityIndex=4;
+
+
+ /* find the right index */
+ if (All.InitGasMetallicity<-3)
+ MetallicityIndex = 0;
+ else
+ {
+ if (All.InitGasMetallicity<-2)
+ MetallicityIndex = 1;
+ else
+ {
+ if (All.InitGasMetallicity<-1)
+ MetallicityIndex = 2;
+ else
+ {
+ if (All.InitGasMetallicity<-0.5)
+ MetallicityIndex = 3;
+ else
+ {
+ if (All.InitGasMetallicity<0)
+ MetallicityIndex = 4;
+ else
+ {
+ MetallicityIndex = 5;
+ }
+ }
+ }
+ }
+ }
+
+
+
+ fd = fopen(All.CoolingFile,"r");
+ fscanf(fd, "# %6d\n", &n);
+
+ /* allocate memory */
+ All.logT = malloc(n * sizeof(double));
+ All.logL = malloc(n * sizeof(double));
+
+ /* read empty line */
+ fgets(line, sizeof(line), fd);
+
+
+ /* read file */
+
+ for (i=0;i<n;i++){
+
+ fscanf(fd, "%f %f %f %f %f %f %f %f\n",&T,&L0,&L1,&L2,&L3,&L4,&L5,&L6);
+
+ //printf("%8.3f %8.3f\n",T,L0);
+
+ /* keep only solar values */
+ All.logT[i] = (double)T;
+
+ switch (MetallicityIndex)
+ {
+ case 0:
+ All.logL[i] = (double)L0;
+ break;
+ case 1:
+ All.logL[i] = (double)L1;
+ break;
+ case 2:
+ All.logL[i] = (double)L2;
+ break;
+ case 3:
+ All.logL[i] = (double)L3;
+ break;
+ case 4:
+ All.logL[i] = (double)L4;
+ break;
+ case 5:
+ All.logL[i] = (double)L5;
+ break;
+ case 6:
+ All.logL[i] = (double)L6;
+ break;
+ }
+ }
+
+ fclose(fd);
+
+ /* init interpolation */
+ All.acc_cooling_spline = gsl_interp_accel_alloc ();
+ All.cooling_spline = gsl_spline_alloc (gsl_interp_cspline, n);
+ gsl_spline_init (All.cooling_spline, All.logT, All.logL, n);
+
+
+#ifdef OUTPUT_COOLING_FUNCTION
+ /* test cooling */
+ double logT;
+ double l;
+ logT = 1.;
+ while(logT<8)
+ {
+
+ T = pow(10,logT);
+ l = log10(cooling_function(T));
+
+ if(ThisTask == 0)
+ printf("%8.3f %8.3f\n",logT,l);
+
+ logT = logT + 0.05;
+ }
+#endif
+
+ return 0;
+}
+
+
+
+
+/*! This function return the normalized cooling function (no metallicity dependency)
+ */
+double cooling_function(double temperature)
+{
+
+ double logT;
+
+
+ if (temperature >= All.CutofCoolingTemperature)
+ {
+
+ logT = log10(temperature);
+
+ if (logT>8.5)
+ logT = 8.5;
+
+
+ return pow(10,gsl_spline_eval (All.cooling_spline, logT, All.acc_cooling_spline));
+ }
+ else
+ return 1e-100;
+
+
+}
+
+
+
+
+
+
+
+/***************************************************************************
+
+ METALLICITY DEPENDENT COOLING
+
+ **************************************************************************/
+
+
+
+
+int init_cooling_with_metals()
+{
+
+ /*
+
+ zmin zmax slz
+ tmin tmax slt
+ FeHSolar
+ p k
+
+ */
+
+
+ FILE *fd;
+ int p,k,i,j;
+ float zmin,zmax,slz,tmin,tmax,slt,FeHSolar;
+ float lbd;
+
+
+ if (ThisTask==0)
+ {
+
+ fd = fopen(All.CoolingFile,"r");
+ fscanf(fd, "%f %f %f\n", &zmin,&zmax,&slz);
+ fscanf(fd, "%f %f %f\n", &tmin,&tmax,&slt);
+ fscanf(fd, "%f\n" , &FeHSolar);
+ fscanf(fd, "%d %d\n" , &p,&k);
+
+
+ All.CoolingParameters_zmin = zmin;
+ All.CoolingParameters_zmax = zmax;
+ All.CoolingParameters_slz = slz;
+ All.CoolingParameters_tmin = tmin;
+ All.CoolingParameters_tmax = tmax;
+ All.CoolingParameters_slt = slt;
+ //All.CoolingParameters_FeHSolar = FEH_SOLAR; /* instead of FeHSolar*/
+ All.CoolingParameters_cooling_data_max = k-2;
+
+
+ for (i=0;i<p;i++)
+ for (j=0;j<k;j++)
+ {
+ fscanf(fd, "%f\n" ,&lbd);
+ All.CoolingParameters_cooling_data[i][j]=lbd;
+ }
+
+ fclose(fd);
+
+ }
+
+
+ /* now broadcast */
+ /*
+ This is quite bad to do it like this, however, there is no other solution, as
+ All has already be sent.
+ The other solution will be to create a structure devoted to the cooling (like Cps in chimie.c)
+ avoiding to link the parameters to All.
+ */
+ MPI_Bcast(&All.CoolingParameters_zmin, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&All.CoolingParameters_zmax, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&All.CoolingParameters_slz, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&All.CoolingParameters_tmin, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&All.CoolingParameters_tmax, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&All.CoolingParameters_slt, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&All.CoolingParameters_cooling_data_max, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&All.CoolingParameters_cooling_data , (COOLING_NMETALICITIES*COOLING_NTEMPERATURES), MPI_DOUBLE, 0, MPI_COMM_WORLD);
+
+
+
+#ifdef OUTPUT_COOLING_FUNCTION
+ /* test cooling */
+ double logT,T;
+ double l;
+ double metal;
+ logT = 1.;
+
+
+
+ metal = (pow(10,All.InitGasMetallicity)-1e-10)*All.CoolingParameters_FeHSolar;
+ while(logT<8)
+ {
+
+ T = pow(10,logT);
+ l = log10(cooling_function_with_metals(T,metal));
+
+ if(ThisTask == 0)
+ printf("%8.3f %8.3f\n",logT,l);
+
+ logT = logT + 0.05;
+ }
+#endif
+
+
+
+
+
+
+
+ return 0;
+
+
+}
+
+/*! This function return the normalized cooling function, that depends on metallicity
+ */
+double cooling_function_with_metals(double temperature,double metal)
+{
+
+
+ double cooling;
+ double T,Z;
+ double rt, rz, ft, fz, v1, v2, v;
+ int it,iz,itp,izp;
+
+ double zmin,zmax,slz,tmin,tmax,slt,FeHSolar,cooling_data_max;
+
+ zmin = All.CoolingParameters_zmin;
+ zmax = All.CoolingParameters_zmax;
+ slz = All.CoolingParameters_slz;
+ tmin = All.CoolingParameters_tmin;
+ tmax = All.CoolingParameters_tmax;
+ slt = All.CoolingParameters_slt;
+ FeHSolar = All.CoolingParameters_FeHSolar;
+ cooling_data_max = All.CoolingParameters_cooling_data_max;
+
+
+ cooling = 0.0;
+
+
+ T = log10( temperature );
+ Z = log10( metal/FeHSolar + 1.e-10 );
+
+
+ if (Z>zmax)
+ {
+ /*print *,'Warning: Z>Zmax for',i*/
+ Z=zmax;
+ }
+
+ if (Z < zmin)
+ {
+
+ rt = (T-tmin)/slt;
+
+ it = (int)rt;
+
+ if (it < cooling_data_max )
+ it = (int)rt;
+ else
+ it = cooling_data_max;
+
+ itp = it+1;
+
+ ft = rt - it;
+
+ fz = ( 10. + Z )/( 10. + zmin);
+
+
+ v1 = ft*( All.CoolingParameters_cooling_data[1][itp] -All.CoolingParameters_cooling_data[1][it] ) + All.CoolingParameters_cooling_data[1][it];
+ v2 = ft*( All.CoolingParameters_cooling_data[0][itp] -All.CoolingParameters_cooling_data[0][it] ) + All.CoolingParameters_cooling_data[0][it];
+ v = v2 + fz*(v1-v2);
+
+ }
+ else
+ {
+
+ rt = (T-tmin)/slt;
+ rz = (Z-zmin)/slz+1.0;
+
+ it = (int)rt;
+
+ if (it < cooling_data_max )
+ it = (int)rt;
+ else
+ it = cooling_data_max;
+
+
+ iz = (int)rz;
+
+ itp = it+1;
+ izp = iz+1;
+
+ ft = rt - it;
+ fz = rz - iz;
+
+ v1 = ft*(All.CoolingParameters_cooling_data[izp][itp] - All.CoolingParameters_cooling_data[izp][it]) + All.CoolingParameters_cooling_data[izp][it];
+ v2 = ft*(All.CoolingParameters_cooling_data[iz][itp] - All.CoolingParameters_cooling_data[iz][it]) + All.CoolingParameters_cooling_data[iz][it];
+ v = v2 + fz*(v1-v2);
+
+
+ }
+
+ cooling = pow(10,v);
+
+
+
+ return cooling;
+
+}
+
+
+
+
+
+
+
+
+/***************************************************************************
+
+ END OF METALLICITY DEPENDENT COOLING
+
+ **************************************************************************/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*! \file cooling.c
+ * \brief Compute gas cooling
+ *
+*/
+
+static double hubble_a, a3inv;
+static double eV = 1.6022000e-12;
+static double normfacJ0 = 0.74627;
+static double J0min = 1.e-29;
+static double alpha = 1.0;
+
+static int Norderweinberg = 7; /* polynom order+1 */
+static double coefweinberg[7][6];
+static double z;
+static double J0;
+
+static double Cte_G_gHI;
+static double Cte_G_gHeI;
+static double Cte_G_gHeII;
+static double Cte_heating_radiative_HI;
+static double Cte_heating_radiative_HeI;
+static double Cte_heating_radiative_HeII;
+
+
+/*
+ * init some variables that depends only on redshift
+ */
+void init_from_new_redshift(double Redshift)
+{
+
+ /* init weinberg coeff */
+
+ coefweinberg[0][0] = -0.31086729929951613e+002;
+ coefweinberg[1][0] = 0.34803667059463761e+001;
+ coefweinberg[2][0] = -0.15145716066316397e+001;
+ coefweinberg[3][0] = 0.54649951450632972e+000;
+ coefweinberg[4][0] = -0.16395924120387340e+000;
+ coefweinberg[5][0] = 0.25197466148524143e-001;
+ coefweinberg[6][0] = -0.15352763785487806e-002;
+
+ coefweinberg[0][1] = -0.31887274113252204e+002;
+ coefweinberg[1][1] = 0.44178493140927095e+001;
+ coefweinberg[2][1] = -0.20158132553082293e+001;
+ coefweinberg[3][1] = 0.64080497292269134e+000;
+ coefweinberg[4][1] = -0.15981267091909040e+000;
+ coefweinberg[5][1] = 0.22056900050237707e-001;
+ coefweinberg[6][1] = -0.12837570029562849e-002;
+
+ coefweinberg[0][2] = -0.35693331167978656e+002;
+ coefweinberg[1][2] = 0.20207245722165794e+001;
+ coefweinberg[2][2] = -0.76856976101363744e-001;
+ coefweinberg[3][2] = -0.75691470654320359e-001;
+ coefweinberg[4][2] = -0.54502220282734729e-001;
+ coefweinberg[5][2] = 0.20633345104660583e-001;
+ coefweinberg[6][2] = -0.18410307456285177e-002;
+
+ coefweinberg[0][3] = -0.56967559787460921e+002;
+ coefweinberg[1][3] = 0.38601174525546353e+001;
+ coefweinberg[2][3] = -0.18318926655684415e+001;
+ coefweinberg[3][3] = 0.67360594266440688e+000;
+ coefweinberg[4][3] = -0.18983466813215341e+000;
+ coefweinberg[5][3] = 0.27768907786915147e-001;
+ coefweinberg[6][3] = -0.16330066969315893e-002;
+
+ coefweinberg[0][4] = -0.56977907250821026e+002;
+ coefweinberg[1][4] = 0.38686249565302266e+001;
+ coefweinberg[2][4] = -0.13330942368518774e+001;
+ coefweinberg[3][4] = 0.33988839029092172e+000;
+ coefweinberg[4][4] = -0.98997915675929332e-001;
+ coefweinberg[5][4] = 0.16781612113050747e-001;
+ coefweinberg[6][4] = -0.11514328893746039e-002;
+
+ coefweinberg[0][5] = -0.59825233828609278e+002;
+ coefweinberg[1][5] = 0.21898162706563347e+001;
+ coefweinberg[2][5] = -0.42982055888598525e+000;
+ coefweinberg[3][5] = 0.50312144291614215e-001;
+ coefweinberg[4][5] = -0.61550639239553132e-001;
+ coefweinberg[5][5] = 0.18017109270959387e-001;
+ coefweinberg[6][5] = -0.15438891584271634e-002;
+
+
+
+ z = Redshift;
+ J0 = J_0();
+
+ /* here, we initialize the ctes that uses J_nu(z) */
+
+ /* Tessier */
+ /*
+ Cte_G_gHI = G_gHI();
+ Cte_G_gHeI = G_gHeI();
+ Cte_G_gHeII = G_gHeII();
+ Cte_heating_radiative_HI = heating_radiative_HI();
+ Cte_heating_radiative_HeI = heating_radiative_HeI();
+ Cte_heating_radiative_HeII = heating_radiative_HeII();
+ */
+
+ /* Theuns */
+ /*
+ Cte_G_gHI = G_gHI_t(J0);
+ Cte_G_gHeI = G_gHeI_t(J0);
+ Cte_G_gHeII = G_gHeII_t(J0);
+ Cte_heating_radiative_HI = heating_radiative_HI_t(J0);
+ Cte_heating_radiative_HeI = heating_radiative_HeI_t(J0);
+ Cte_heating_radiative_HeII = heating_radiative_HeII_t(J0);
+ */
+
+ /* Weinberg */
+ Cte_G_gHI = G_gHI_w();
+ Cte_G_gHeI = G_gHeI_w();
+ Cte_G_gHeII = G_gHeII_w();
+ Cte_heating_radiative_HI = heating_radiative_HI_w();
+ Cte_heating_radiative_HeI = heating_radiative_HeI_w();
+ Cte_heating_radiative_HeII = heating_radiative_HeII_w();
+
+}
+
+/*
+ * J0
+ */
+
+double J_0()
+{
+ double Fz;
+
+ if (z > 6)
+ Fz = 0;
+ else
+ {
+ if (z > 3)
+ Fz = 4/(z+1);
+ else
+ {
+ if (z > 2)
+ Fz = 1;
+ else
+ Fz = pow(((1+z)/3.),3);
+ }
+ }
+
+ return 1.0e-22*Fz;
+}
+
+/*
+ * UV background intensity
+ */
+
+double J_nu(double e)
+{
+ double e_L;
+ e_L = 13.598*eV;
+ return (e_L/e)*J_0();
+}
+
+/*
+ * sigma_rad
+ */
+
+double sigma_rad_HI(double e)
+{
+ double xxx,alph,e_i;
+
+ e_i = 13.598 *eV;
+ xxx = e/e_i;
+ alph = sqrt(xxx-1.0);
+ return 6.30e-18/pow(xxx,4)*exp(4.0-4.0*atan(alph)/alph) /(1.0-exp(-TWOPI/alph));
+}
+
+
+double sigma_rad_HeI(double e)
+{
+ double xxx,alph,e_i;
+
+ e_i = 24.587 *eV;
+ xxx = e/e_i;
+ alph = sqrt(xxx-1.0);
+ return 7.42e-18*(1.660/pow(xxx,2.050)-0.660/pow(xxx,3.050));
+}
+
+double sigma_rad_HeII(double e)
+{
+ double xxx,alph,e_i;
+
+ e_i = 54.416 *eV;
+ xxx = e/e_i;
+ alph = sqrt(xxx-1.0);
+ return 1.58e-18/pow(xxx,4)*exp(4.0-4.0*atan(alph)/alph)/(1.0-exp(-TWOPI/alph));
+}
+
+
+/*
+ * cooling rates
+ */
+
+/* Bremstrahlung */
+double cooling_bremstrahlung_HI(double T)
+{
+ return 1.42e-27*sqrt(T)*(1.10+0.340*exp(-pow((5.50-log10(T)),2) /3.0));
+}
+
+double cooling_bremstrahlung_HeI(double T)
+{
+ return 1.42e-27*sqrt(T)*(1.10+0.340*exp(-pow((5.50-log10(T)),2) /3.0));
+}
+
+double cooling_bremstrahlung_HeII(double T)
+{
+ return 5.68e-27*sqrt(T)*(1.10+0.340*exp(-pow((5.50-log10(T)),2) /3.0));
+}
+
+/* Ionization */
+double cooling_ionization_HI(double T)
+{
+ double T5;
+ T5 = T/1e5;
+ return 2.54e-21*sqrt(T)*exp(-157809.1/T)/(1+sqrt(T5));
+}
+
+double cooling_ionization_HeI(double T)
+{
+ double T5;
+ T5 = T/1e5;
+ return 1.88e-21*sqrt(T)*exp(-285335.4/T)/(1+sqrt(T5));
+}
+
+double cooling_ionization_HeII(double T)
+{
+ double T5;
+ T5 = T/1e5;
+ return 9.90e-22*sqrt(T)*exp(-631515.0/T)/(1+sqrt(T5));
+}
+
+/* Recombination */
+double cooling_recombination_HI(double T)
+{
+ double T3,T6;
+ T3 = T/1e3;
+ T6 = T/1e6;
+ return 8.70e-27*sqrt(T)/pow(T3,0.2)/(1.0+pow(T6,0.7));
+}
+
+double cooling_recombination_HeI(double T)
+{
+ return 1.55e-26*pow(T,0.3647);
+}
+
+double cooling_recombination_HeII(double T)
+{
+ double T3,T6;
+ T3 = T/1e3;
+ T6 = T/1e6;
+ return 3.48e-26*sqrt(T)/pow(T3,0.2)/(1.0+pow(T6,0.7));
+}
+
+/* Dielectric Recombination */
+double cooling_dielectric_recombination(double T)
+{
+ return 1.24e-13*pow(T,-1.5)*exp(-470000.0/T)*(1.0+0.3*exp(-94000.0/T));
+}
+
+/* Ecitation cooling (line cooling) */
+double cooling_excitation_HI(double T)
+{
+ double T5;
+ T5 = T/1e5;
+ return 7.50e-19*exp(-118348.0/T)/(1+sqrt(T5));
+}
+
+double cooling_excitation_HII(double T)
+{
+ double T5;
+ T5 = T/1e5;
+ return 5.54e-17/pow(T,0.397)*exp(-473638.0/T)/(1+sqrt(T5));
+}
+
+/* Compton cooling */
+double cooling_compton(double T)
+{
+ return 5.406e-36*(T-2.7*(1+z))*pow((1+z),4);
+}
+
+/*
+ * recombination rates (taux_rec)
+ */
+
+double A_HII(double T)
+{
+ double T3,T6;
+ T3 = T/1e3;
+ T6 = T/1e6;
+ return 6.30e-11/sqrt(T)/pow(T3,0.2)/(1+pow(T6,0.7));
+}
+
+double A_HeIId(double T)
+{
+ return 1.9e-3/pow(T,1.50)*exp(-470000.0/T)*(1.0+0.30*exp(-94000.0/T));
+}
+
+double A_HeII(double T)
+{
+ return 1.5e-10/pow(T,0.6353) + A_HeIId(T);
+}
+
+double A_HeIII(double T)
+{
+ double T3,T6;
+ T3 = T/1e3;
+ T6 = T/1e6;
+ return 3.36e-10/sqrt(T)/pow(T3,0.2)/(1.0+pow(T6,0.7));
+}
+
+/*
+ * collisional rates (taux_ion)
+ */
+
+double G_HI(double T)
+{
+ double T5;
+ T5 = T/1e5;
+ return 1.17e-10*sqrt(T)*exp(-157809.1/T)/(1.0+sqrt(T5));
+}
+
+double G_HeI(double T)
+{
+ double T5;
+ T5 = T/1e5;
+ return 2.38e-11*sqrt(T)*exp(-285335.4/T)/(1.0+sqrt(T5));
+}
+
+double G_HeII(double T)
+{
+ double T5;
+ T5 = T/1e5;
+ return 5.68e-12*sqrt(T)*exp(-631515.0/T)/(1.0+sqrt(T5));
+}
+
+/*
+ * photoionisation rates (depend only on z)
+ */
+
+double G_gHI()
+{
+ double e_i,integ,e,de,error;
+
+ e_i = 13.598*eV;
+ integ = 0.0;
+ e = e_i;
+ de = e/100.0;
+ error = 1.0;
+ while (error>1.e-6)
+ {
+ e = e + de;
+ de = e/100.0;
+ error = 2*TWOPI*J_nu(e)*sigma_rad_HI(e)*de/e;
+ integ = integ + error;
+ error = error/fabs(integ);
+ }
+
+ return integ/PLANCK;
+}
+
+
+double G_gHeI()
+{
+ double e_i,integ,e,de,error;
+
+ e_i = 24.587*eV;
+ integ = 0.0;
+ e = e_i;
+ de = e/100.0;
+ error = 1.0;
+ while (error>1.e-6)
+ {
+ e = e + de;
+ de = e/100.0;
+ error = 2*TWOPI*J_nu(e)*sigma_rad_HeI(e)*de/e;
+ integ = integ + error;
+ error = error/fabs(integ);
+ }
+
+ return integ/PLANCK;
+}
+
+double G_gHeII()
+{
+ double e_i,integ,e,de,error;
+
+ e_i = 54.416*eV;
+ integ = 0.0;
+ e = e_i;
+ de = e/100.0;
+ error = 1.0;
+ while (error>1.e-6)
+ {
+ e = e + de;
+ de = e/100.0;
+ error = 2*TWOPI*J_nu(e)*sigma_rad_HeII(e)*de/e;
+ integ = integ + error;
+ error = error/fabs(integ);
+ }
+
+ return integ/PLANCK;
+}
+
+
+double G_gHI_t(double J0)
+{
+ return 1.26e10*J0/(3.0+alpha);
+
+}
+
+double G_gHeI_t(double J0)
+{
+ return 1.48e10*J0*pow(0.5530,alpha) *(1.660/(alpha+2.050)-0.660/(alpha+3.050));
+}
+
+double G_gHeII_t(double J0)
+{
+ return 3.34e9*J0*pow(0.2490,alpha)/(3.0+alpha);
+}
+
+
+
+
+double G_gHI_w()
+{
+ double taux_rad_weinbergint;
+ double hh,tt,zz;
+ int i;
+
+ if (z < 8.50)
+ {
+ hh=0.0;
+ zz=dmax(z,1.0e-15);
+ for (i=0;i<Norderweinberg;i++)
+ hh=hh+coefweinberg[i][0]*pow(zz,i);
+ taux_rad_weinbergint=normfacJ0*exp(hh);
+ }
+ else
+ taux_rad_weinbergint=0.0;
+
+ tt=G_gHI_t(J0min);
+ if (taux_rad_weinbergint < tt)
+ taux_rad_weinbergint=tt;
+
+ return taux_rad_weinbergint;
+}
+
+double G_gHeI_w()
+{
+ double taux_rad_weinbergint;
+ double hh,tt,zz;
+ int i;
+
+ if (z < 8.50)
+ {
+ hh=0.0;
+ zz=dmax(z,1.0e-15);
+ for (i=0;i<Norderweinberg;i++)
+ hh=hh+coefweinberg[i][1]*pow(zz,i);
+ taux_rad_weinbergint=normfacJ0*exp(hh);
+ }
+ else
+ taux_rad_weinbergint=0.0;
+
+ tt=G_gHeI_t(J0min);
+ if (taux_rad_weinbergint < tt)
+ taux_rad_weinbergint=tt;
+
+ return taux_rad_weinbergint;
+}
+
+
+double G_gHeII_w()
+{
+ double taux_rad_weinbergint;
+ double hh,tt,zz;
+ int i;
+
+ if (z < 8.50)
+ {
+ hh=0.0;
+ zz=dmax(z,1.0e-15);
+ for (i=0;i<Norderweinberg;i++)
+ hh=hh+coefweinberg[i][2]*pow(zz,i);
+ taux_rad_weinbergint=normfacJ0*exp(hh);
+ }
+ else
+ taux_rad_weinbergint=0.0;
+
+ tt=G_gHeII_t(J0min);
+ if (taux_rad_weinbergint < tt)
+ taux_rad_weinbergint=tt;
+
+ return taux_rad_weinbergint;
+}
+
+
+
+
+
+/*
+ * heating rates (depend only on z)
+ */
+
+double heating_radiative_HI() /* use J_nu */
+{
+ double e_i,integ,e,de,error;
+
+ e_i = 13.598*eV;
+ integ = 0.0;
+ e = e_i;
+ de = e/100.0;
+ error = 1.0;
+
+ while(error>1.e-6)
+ {
+ e = e + de;
+ de = e/100.0;
+ error = 2.0*TWOPI*J_nu(e)*sigma_rad_HI(e)*(e/e_i-1.0)*de/e;
+ integ = integ + error;
+ error=error/fabs(integ);
+ }
+ return integ/PLANCK*e_i;
+}
+
+double heating_radiative_HeI() /* use J_nu */
+{
+ double e_i,integ,e,de,error;
+
+ e_i = 24.587*eV;
+ integ = 0.0;
+ e = e_i;
+ de = e/100.0;
+ error = 1.0;
+
+ while(error>1.e-6)
+ {
+ e = e + de;
+ de = e/100.0;
+ error = 2.0*TWOPI*J_nu(e)*sigma_rad_HeI(e)*(e/e_i-1.0)*de/e;
+ integ = integ + error;
+ error=error/fabs(integ);
+ }
+ return integ/PLANCK*e_i;
+}
+
+
+double heating_radiative_HeII() /* use J_nu */
+{
+ double e_i,integ,e,de,error;
+
+ e_i = 54.416*eV;
+ integ = 0.0;
+ e = e_i;
+ de = e/100.0;
+ error = 1.0;
+
+ while(error>1.e-6)
+ {
+ e = e + de;
+ de = e/100.0;
+ error = 2.0*TWOPI*J_nu(e)*sigma_rad_HeII(e)*(e/e_i-1.0)*de/e;
+ integ = integ + error;
+ error=error/fabs(integ);
+ }
+ return integ/PLANCK*e_i;
+}
+
+
+double heating_radiative_HI_t(double J0) /* use Theuns */
+{
+ return (2.91e-1*J0/(2.0+alpha))/(3.0+alpha);
+}
+
+double heating_radiative_HeI_t(double J0) /* use Theuns */
+{
+ return 5.84e-1*J0*pow(0.5530,alpha)*(1.660/(alpha+1.050)-2.320/(alpha+2.050)+0.660/(alpha+3.050));
+}
+
+double heating_radiative_HeII_t(double J0) /* use Theuns */
+{
+ return (2.92e-1*J0*pow(0.2490,alpha)/(2.0+alpha))/(3.0+alpha);
+}
+
+
+
+
+double heating_radiative_HI_w() /* use weinberg coeff */
+{
+ double heat_rad_weinbergint;
+ double hh,tt,zz;
+ int i;
+
+ if (z < 8.50)
+ {
+ hh=0.0;
+ zz=dmax(z,1.0e-15);
+ for (i=0;i<Norderweinberg;i++)
+ hh=hh+coefweinberg[i][3]*pow(zz,i);
+ heat_rad_weinbergint=normfacJ0*exp(hh);
+ }
+ else
+ heat_rad_weinbergint=0.0;
+
+ tt=heating_radiative_HI_t(J0min);
+ if (heat_rad_weinbergint < tt)
+ heat_rad_weinbergint=tt;
+
+ return heat_rad_weinbergint;
+}
+
+double heating_radiative_HeI_w() /* use weinberg coeff */
+{
+ double heat_rad_weinbergint;
+ double hh,tt,zz;
+ int i;
+
+ if (z < 8.50)
+ {
+ hh=0.0;
+ zz=dmax(z,1.0e-15);
+ for (i=0;i<Norderweinberg;i++)
+ hh=hh+coefweinberg[i][4]*pow(zz,i);
+ heat_rad_weinbergint=normfacJ0*exp(hh);
+ }
+ else
+ heat_rad_weinbergint=0.0;
+
+ tt=heating_radiative_HeI_t(J0min);
+ if (heat_rad_weinbergint < tt)
+ heat_rad_weinbergint=tt;
+
+ return heat_rad_weinbergint;
+}
+
+double heating_radiative_HeII_w() /* use weinberg coeff */
+{
+ double heat_rad_weinbergint;
+ double hh,tt,zz;
+ int i;
+
+ if (z < 8.50)
+ {
+ hh=0.0;
+ zz=dmax(z,1.0e-15);
+ for (i=0;i<Norderweinberg;i++)
+ hh=hh+coefweinberg[i][5]*pow(zz,i);
+ heat_rad_weinbergint=normfacJ0*exp(hh);
+ }
+ else
+ heat_rad_weinbergint=0.0;
+
+ tt=heating_radiative_HeII_t(J0min);
+ if (heat_rad_weinbergint < tt)
+ heat_rad_weinbergint=tt;
+
+ return heat_rad_weinbergint;
+}
+
+
+
+
+
+
+
+double heating_compton()
+{
+ /* Abel, Tom; Haehnelt, Martin G.Apj 520 */
+ //return 5.406e-36*2.726*pow((1+z),5); /* from Ramses */
+
+ //if (z>6)
+ // return 0;
+ //else
+ // return 1.25e-31*pow((1+z),13/3.);
+
+ return 0;
+}
+
+
+
+
+void compute_densities(double T,double X,double *pn_H, double *pn_HI,double *pn_HII,double *pn_HEI,double *pn_HEII,double *pn_HEIII,double *pn_E,double *pmu)
+{
+
+ double Y,yy,x1;
+ double t_rad_HI,t_rec_HI,t_ion_HI;
+ double t_rad_HEI,t_rec_HEI,t_ion_HEI;
+ double t_rad_HEII,t_rec_HEII,t_ion_HEII;
+ double t_ion2_HI,t_ion2_HEI,t_ion2_HEII;
+ double err_nE;
+ double n_T;
+ double n_H,n_HI,n_HII,n_HEI,n_HEII,n_HEIII,n_E,mu;
+
+ Y = 1-X;
+ yy = Y/(4-4*Y);
+
+ t_rad_HI = Cte_G_gHI;
+ t_rec_HI = A_HII(T);
+ t_ion_HI = G_HI(T);
+
+ t_rad_HEI = Cte_G_gHeI;
+ t_rec_HEI = A_HeII(T);
+ t_ion_HEI = G_HeI(T);
+
+ t_rad_HEII = Cte_G_gHeII;
+ t_rec_HEII = A_HeIII(T);
+ t_ion_HEII = G_HeII(T);
+
+ n_H = *pn_H;
+
+ n_E = n_H;
+ err_nE = 1.;
+
+
+ while(err_nE > 1.e-8)
+ {
+
+ /* compute densities (Ramses implementation) */
+ t_ion2_HI = t_ion_HI + t_rad_HI /dmax(n_E,1e-15*n_H);
+ t_ion2_HEI = t_ion_HEI + t_rad_HEI /dmax(n_E,1e-15*n_H);
+ t_ion2_HEII = t_ion_HEII + t_rad_HEII/dmax(n_E,1e-15*n_H);
+
+ n_HI = t_rec_HI/(t_ion2_HI+t_rec_HI)*n_H;
+ n_HII = t_ion2_HI/(t_ion2_HI+t_rec_HI)*n_H;
+
+ x1 = (t_rec_HEII*t_rec_HEI+t_ion2_HEI*t_rec_HEII+t_ion2_HEII*t_ion2_HEI);
+
+ n_HEIII = yy*t_ion2_HEII*t_ion2_HEI/x1*n_H;
+ n_HEII = yy*t_ion2_HEI *t_rec_HEII/x1*n_H;
+ n_HEI = yy*t_rec_HEII *t_rec_HEI /x1*n_H;
+
+ err_nE = fabs((n_E - (n_HII + n_HEII + 2.*n_HEIII))/n_H);
+ n_E = 0.5*n_E+0.5*(n_HII + n_HEII + 2.*n_HEIII);
+
+ }
+
+ n_T = n_HI + n_HII+ n_HEI+ n_HEII+ n_HEIII+ n_E;
+ mu = n_H/X/n_T;
+
+ *pn_H = n_H;
+ *pn_HI = n_HI;
+ *pn_HII = n_HII;
+ *pn_HEI = n_HEI;
+ *pn_HEII = n_HEII;
+ *pn_HEIII = n_HEIII;
+ *pn_E = n_E;
+ *pmu = mu;
+
+
+}
+
+void print_cooling(double T,
+ double c1,double c2,double c3,double c4,double c5,double c6,double c7,double c8,double c9,
+ double c10,double c11,double c12,double c13,double h1, double h2, double h3, double h4)
+{
+
+ double ctot,htot,chtot;
+
+ ctot = c1+c2+c3+c4+c5+c6+c7+c8+c9+c10+c11+c12+c13;
+ htot = h1+h2+h3+h4;
+ chtot= ctot - htot;
+
+ printf("%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g\n",T,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,h1,h2,h3,h4,ctot,htot,chtot);
+
+}
+
+
+void compute_cooling_from_T_and_Nh(double T,double X,double n_H,
+ double *c1,double *c2,double *c3,double *c4,double *c5,double *c6,double *c7,double *c8,double *c9,
+ double *c10,double *c11,double *c12,double *c13,double *h1, double *h2, double *h3, double *h4)
+{
+
+ double n_HI,n_HII,n_HEI,n_HEII,n_HEIII,n_E,mu;
+ double nH2;
+ //double c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13;
+ //double h1,h2,h3,h4;
+
+ compute_densities(T,X,&n_H,&n_HI,&n_HII,&n_HEI,&n_HEII,&n_HEIII,&n_E,&mu);
+
+ nH2 = n_H*n_H;
+
+ /*
+ * compute cooling
+ */
+
+ /* Bremstrahlung (cool_bre) */
+ *c1 = cooling_bremstrahlung_HI(T) *n_E*n_HII /nH2;
+ *c2 = cooling_bremstrahlung_HeI(T) *n_E*n_HEII /nH2;
+ *c3 = cooling_bremstrahlung_HeII(T) *n_E*n_HEIII/nH2;
+
+
+ /* Ionization cooling (cool_ion) */
+ *c4 = cooling_ionization_HI(T) *n_E*n_HI /nH2;
+ *c5 = cooling_ionization_HeI(T) *n_E*n_HEI /nH2;
+ *c6 = cooling_ionization_HeII(T) *n_E*n_HEII /nH2;
+
+
+ /* Recombination cooling (cool_rec) */
+ *c7 = cooling_recombination_HI(T) *n_E*n_HII /nH2;
+ *c8 = cooling_recombination_HeI(T) *n_E*n_HEII /nH2;
+ *c9 = cooling_recombination_HeII(T) *n_E*n_HEIII/nH2;
+
+ /* Dielectric recombination cooling (cool_die) */
+ *c10 = cooling_dielectric_recombination(T) *n_E*n_HEII /nH2;
+
+ /* Line cooling (cool_exc) */
+ *c11 = cooling_excitation_HI(T) *n_E*n_HI /nH2;
+ *c12 = cooling_excitation_HII(T) *n_E*n_HEII /nH2;
+
+ /* Compton cooling (cool_com) */
+ *c13 = cooling_compton(T) *n_E /nH2; /* !! dep on z */
+
+
+ /*
+ * compute heating
+ */
+
+ /* Radiative heating (h_rad_spec) */
+ *h1 = Cte_heating_radiative_HI *n_HI /nH2;
+ *h2 = Cte_heating_radiative_HeI *n_HEI /nH2;
+ *h3 = Cte_heating_radiative_HeII *n_HEII /nH2;
+
+
+ /* Compton heating (heat_com) */
+ *h4 = heating_compton() *n_E /nH2; /* !! dep on z */
+
+}
+
+
+
+double compute_cooling_from_Egyspec_and_Density(double Egyspec,double Density,double *MeanWeight)
+{
+
+ double T,mu,n_H;
+ double n_HI,n_HII,n_HEI,n_HEII,n_HEIII,n_E;
+
+ double err_mu,mu_left,mu_right,mu_old;
+ int niter;
+
+ double c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13;
+ double h1,h2,h3,h4;
+
+ double nH2;
+
+ /* Hydrogen density (cgs) */
+ n_H = HYDROGEN_MASSFRAC * Density/ PROTONMASS;
+
+
+ /* itterate to find the right mu and T */
+
+ err_mu=1.;
+ mu_left=0.5;
+ mu_right=1.3;
+ niter=0;
+
+ while ( (err_mu > 1.e-4) && (niter <= 50) )
+ {
+
+ mu_old=0.5*(mu_left+mu_right);
+
+ /* compute temperature */
+ T = GAMMA_MINUS1 *mu_old*PROTONMASS/BOLTZMANN *Egyspec;
+
+ /* compute all */
+ compute_densities(T,HYDROGEN_MASSFRAC,&n_H,&n_HI,&n_HII,&n_HEI,&n_HEII,&n_HEIII,&n_E,&mu);
+
+ err_mu = (mu-mu_old)/mu_old;
+
+
+ if(err_mu>0.)
+ {
+ mu_left =0.5*(mu_left+mu_right);
+ mu_right=mu_right;
+ }
+ else
+ {
+ mu_left =mu_left;
+ mu_right=0.5*(mu_left+mu_right);
+ }
+
+ err_mu=fabs(err_mu);
+ niter=niter+1;
+
+ }
+
+ if (niter > 50)
+ printf("ERROR : too many iterations.");
+
+ *MeanWeight = 0.5*(mu_left+mu_right);
+
+ /* now, compute cooling */
+
+ nH2 = n_H*n_H;
+
+ /*
+ * compute cooling
+ */
+
+ /* Bremstrahlung (cool_bre) */
+ c1 = cooling_bremstrahlung_HI(T) *n_E*n_HII /nH2;
+ c2 = cooling_bremstrahlung_HeI(T) *n_E*n_HEII /nH2;
+ c3 = cooling_bremstrahlung_HeII(T) *n_E*n_HEIII/nH2;
+
+
+ /* Ionization cooling (cool_ion) */
+ c4 = cooling_ionization_HI(T) *n_E*n_HI /nH2;
+ c5 = cooling_ionization_HeI(T) *n_E*n_HEI /nH2;
+ c6 = cooling_ionization_HeII(T) *n_E*n_HEII /nH2;
+
+
+ /* Recombination cooling (cool_rec) */
+ c7 = cooling_recombination_HI(T) *n_E*n_HII /nH2;
+ c8 = cooling_recombination_HeI(T) *n_E*n_HEII /nH2;
+ c9 = cooling_recombination_HeII(T) *n_E*n_HEIII/nH2;
+
+ /* Dielectric recombination cooling (cool_die) */
+ c10 = cooling_dielectric_recombination(T) *n_E*n_HEII /nH2;
+
+ /* Line cooling (cool_exc) */
+ c11 = cooling_excitation_HI(T) *n_E*n_HI /nH2;
+ c12 = cooling_excitation_HII(T) *n_E*n_HEII /nH2;
+
+ /* Compton cooling (cool_com) */
+ c13 = cooling_compton(T) *n_E /nH2; /* !! dep on z */
+
+
+ /*
+ * compute heating
+ */
+
+ /* Radiative heating (h_rad_spec) */
+ h1 = Cte_heating_radiative_HI *n_HI /nH2;
+ h2 = Cte_heating_radiative_HeI *n_HEI /nH2;
+ h3 = Cte_heating_radiative_HeII *n_HEII /nH2;
+
+
+ /* Compton heating (heat_com) */
+ h4 = heating_compton() *n_E /nH2; /* !! dep on z */
+
+ /* output info */
+ //print_cooling(T,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,h1,h2,h3,h4);
+
+ c1 = dmax(c1,0);
+ c2 = dmax(c2,0);
+ c3 = dmax(c3,0);
+ c4 = dmax(c4,0);
+ c5 = dmax(c5,0);
+ c6 = dmax(c6,0);
+ c7 = dmax(c7,0);
+ c8 = dmax(c8,0);
+ c9 = dmax(c9,0);
+ c10 = dmax(c10,0);
+ c11 = dmax(c11,0);
+ c12 = dmax(c12,0);
+ c13 = dmax(c13,0);
+ h1 = dmax(h1,0);
+ h2 = dmax(h2,0);
+ h3 = dmax(h3,0);
+ h4 = dmax(h4,0);
+
+ return (c1+c2+c3+c4+c5+c6+c7+c8+c9+c10+c11+c12+c13) - (h1+h2+h3+h4);
+
+}
+
+
+
+struct cooling_solver_params
+{
+ double Entropy;
+ double Density;
+ int Phase;
+ int i;
+ double DtEntropyVisc;
+ double dt;
+ double hubble_a;
+};
+
+double cooling_solver_function(double EntropyVar, void *params)
+{
+ struct cooling_solver_params *p = (struct cooling_solver_params *) params;
+ double Entropy = p->Entropy;
+ double Density = p->Density;
+ int Phase = p->Phase;
+ int i = p->i;
+ double DtEntropyVisc = p->DtEntropyVisc;
+ double dt = p->dt;
+ double hubble_a = p->hubble_a;
+
+ double DtEntropyRadSph=0;
+
+#ifdef MULTIPHASE
+ switch (Phase)
+ {
+ case GAS_SPH:
+ DtEntropyRadSph = -GAMMA_MINUS1*pow(Density,-GAMMA)*lambda(Density,EntropyVar,Phase,i)/hubble_a;
+ break;
+ case GAS_STICKY:
+ case GAS_DARK:
+ DtEntropyRadSph = -1/(Density * a3inv) *lambda(Density,EntropyVar,Phase,i)/hubble_a;
+ break;
+ }
+#else
+ DtEntropyRadSph = -GAMMA_MINUS1*pow(Density,-GAMMA)*lambda(Density,EntropyVar,Phase,i)/hubble_a;
+#endif
+
+
+ return Entropy + (DtEntropyVisc + DtEntropyRadSph)*dt - EntropyVar;
+};
+
+
+
+
+
+/*! This function compute the new Entropy due to isochoric cooling
+ * using an implicit iteration scheme
+ *
+ * !!! here Density is already expressed in comobile coord
+ *
+ */
+double DoCooling(FLOAT Density,FLOAT Entropy,int Phase,int i,FLOAT DtEntropyVisc, double dt, double hubble_a)
+{
+
+ double EntropyNew;
+ double Entropy_lo=0, Entropy_hi=0;
+ double lo,hi;
+
+ int status;
+ int iter = 0;
+ int max_iter = 100;
+
+ const gsl_root_fsolver_type *T;
+ gsl_root_fsolver *s;
+ gsl_function F;
+ struct cooling_solver_params params = {(double)Entropy,(double)Density,(int)Phase,(int)i,(double)DtEntropyVisc,(double)dt,(double)hubble_a};
+
+
+ F.function = &cooling_solver_function;
+ F.params = &params;
+
+ T = gsl_root_fsolver_brent;
+ s = gsl_root_fsolver_alloc (T);
+
+
+ Entropy_lo = 0.5*Entropy;
+ Entropy_hi = 1.1*Entropy;
+
+
+ lo = cooling_solver_function(Entropy_lo,&params);
+ hi = cooling_solver_function(Entropy_hi,&params);
+
+
+ if (lo*hi>0)
+ {
+
+ do
+ {
+ Entropy_hi = 2* Entropy_hi;
+ Entropy_lo = 0.5*Entropy_lo;
+
+ lo = cooling_solver_function(Entropy_lo,&params);
+ hi = cooling_solver_function(Entropy_hi,&params);
+
+ //printf("here, we need to iterate...\n");
+
+
+ }
+ while (lo*hi>0);
+ }
+
+
+
+
+
+ gsl_root_fsolver_set (s, &F, Entropy_lo, Entropy_hi);
+
+
+ do
+ {
+ iter++;
+ status = gsl_root_fsolver_iterate (s);
+ EntropyNew = gsl_root_fsolver_root (s);
+ Entropy_lo = gsl_root_fsolver_x_lower (s);
+ Entropy_hi = gsl_root_fsolver_x_upper (s);
+ status = gsl_root_test_interval (Entropy_lo, Entropy_hi,0, 0.001);
+
+
+ }
+ while (status == GSL_CONTINUE && iter < max_iter);
+
+ gsl_root_fsolver_free (s);
+
+
+ if (status!=GSL_SUCCESS)
+ {
+ printf("WARNING, HERE WE DO NOT CONVERGE...%g %g\n",Entropy_lo,Entropy_hi);
+ endrun(3737);
+ }
+
+
+
+ return EntropyNew;
+
+}
+
+
+
+/*! This function computes the entropy variation due to the cooling.
+ * Cooling is computed only for sph active particles.
+ */
+void cooling()
+{
+
+ int i;
+ double dt=0;
+ double EntropyNew;
+
+ /* set the right Redshift and compute value indep of Temperature */
+ if (All.CoolingType==1)
+ init_from_new_redshift(1.0 / (All.Time) - 1);
+
+ if(All.ComovingIntegrationOn)
+ {
+
+ hubble_a = All.Omega0 / (All.Time * All.Time * All.Time)
+ + (1 - All.Omega0 - All.OmegaLambda) / (All.Time * All.Time) + All.OmegaLambda;
+
+ hubble_a = All.Hubble * sqrt(hubble_a);
+
+ a3inv = 1 / (All.Time * All.Time * All.Time);
+ }
+ else
+ a3inv = hubble_a = 1;
+
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(P[i].Ti_endstep == All.Ti_Current) /* active particles */
+ {
+
+
+ if(P[i].Type == 0) /* SPH stuff */
+ {
+
+
+ //DtEntropyRadSph=0.;
+ //SphP[i].DtEntropyRadSph = 0;
+
+
+#ifdef MULTIPHASE
+ if (SphP[i].Phase == GAS_SPH)
+ {
+#endif
+ /* note : SphP[i].DtEntropyRadSph should not be necessary */
+
+
+ dt = (All.Ti_Current - P[i].Ti_begstep) * All.Timebase_interval;
+ //SphP[i].DtEntropyRadSph = -GAMMA_MINUS1*pow(SphP[i].Density * a3inv,-GAMMA)*lambda(SphP[i].Density *a3inv,SphP[i].Entropy,0,i)/hubble_a;
+
+ //if (fabs((SphP[i].DtEntropyRadSph+SphP[i].DtEntropy)*dt) > 0.1*fabs(SphP[i].Entropy))
+ {
+ /* do implicit isochoric cooling */
+ EntropyNew = DoCooling(SphP[i].Density*a3inv,SphP[i].Entropy,0,i,SphP[i].DtEntropy,dt,hubble_a);
+
+ if(dt > 0)
+ SphP[i].DtEntropy = (EntropyNew - SphP[i].Entropy)/dt;
+ }
+ //else
+ {
+ // SphP[i].DtEntropy += SphP[i].DtEntropyRadSph;
+ }
+
+ //SphP[i].DtEgySpecRadSph = - 1/GAMMA_MINUS1 * pow(SphP[i].Density * a3inv,GAMMA_MINUS1) * (SphP[i].DtEntropyRadSph);
+
+
+#ifdef MULTIPHASE
+ }
+ else /* STICKY OR DARK */
+ {
+
+ //SphP[i].DtEntropyRadSph = -1/(SphP[i].Density * a3inv)*lambda(SphP[i].Density *a3inv,SphP[i].Entropy,SphP[i].Phase,i)/hubble_a;
+ //SphP[i].DtEntropy += SphP[i].DtEntropyRadSph;
+
+ /* do implicit isochoric cooling */
+ dt = (All.Ti_Current - P[i].Ti_begstep) * All.Timebase_interval;
+ EntropyNew = DoCooling(SphP[i].Density*a3inv,SphP[i].Entropy,SphP[i].Phase,i,SphP[i].DtEntropy,dt,hubble_a);
+
+ if(dt > 0)
+ SphP[i].DtEntropy = (EntropyNew - SphP[i].Entropy)/dt;
+
+ /* !!! here, we do not take into account the energy variation !!! */
+ /* SphP[i].DtEgySpecRadSph = SphP[i].DtEntropy, no ?*/
+
+ }
+#endif
+
+ /* finally sum to the entropy variation */
+
+ /* WARNING : we do not compute DtEntropy here, it is updated in timestep.c */
+ /* no, because, it is updated juste above, no ? */
+ //SphP[i].DtEntropy += SphP[i].DtEntropyRadSph;
+ //SphP[i].DtEntropy += SphP[i].DtEgySpecRadSph / (-1/GAMMA_MINUS1 * pow(SphP[i].Density * a3inv,GAMMA_MINUS1));
+
+ }
+ }
+ }
+
+}
+
+
+
+
+
+/*! This function computes the new entropy due to the cooling,
+ * between step t0 and t1.
+ */
+void CoolingForOne(int i,int tstart,int tend,double a3inv,double hubble_a)
+{
+
+ double dt,dadt,tcool,dt_entr;
+ double MinSizeTimestep,ErrTolIntAccuracy;
+ int ti_current,istep;
+ int ti_step;
+ double minentropy;
+
+ FLOAT Entropy,DEntropy,DtEntropy,DtEgySpec;
+
+
+
+ if(All.MinEgySpec)
+ minentropy = All.MinEgySpec * GAMMA_MINUS1 / pow(SphP[i].Density * a3inv, GAMMA_MINUS1);
+
+
+
+ /* compute dt */
+ /* here we use the convention of Gadget */
+ /* this assume that DtEntropy = dA/dt/hubble_a */
+ /* and not only dA/dt */
+ dt_entr = (tend - tstart) * All.Timebase_interval;
+
+
+ ErrTolIntAccuracy = 0.02;
+ MinSizeTimestep = 0.01*dt_entr;
+
+
+ /* compute da/dt */
+ //dadt = fabs( -GAMMA_MINUS1*pow(SphP[i].Density * a3inv,-GAMMA)*lambda(SphP[i].Density *a3inv,SphP[i].Entropy,0,i)/hubble_a );
+
+ /* compute cooling time */
+ //tcool = SphP[i].Entropy / dadt;
+
+ //if (ErrTolIntAccuracy*tcool/dt_entr < 1)
+ // printf("** %g %g\n",ErrTolIntAccuracy*tcool,dt_entr); /* --> verifier le cooling time */
+
+
+
+ /***************************************/
+ /* integrate with adaptative timesteps */
+ /***************************************/
+
+
+ Entropy = SphP[i].Entropy;
+ ti_current = tstart;
+ istep = 0;
+
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ int no_cooling_SNII,no_cooling_SNIa,no_cooling;
+ int Tis,Tic;
+ double td;
+
+ no_cooling=0;
+ no_cooling_SNIa=0;
+ no_cooling_SNII=0;
+
+ /* check if we are in an adiabatic phase or not */
+
+ if (All.ComovingIntegrationOn)
+ {
+ Tic = All.Ti_Current;
+
+
+ if (SphP[i].SNIaThermalTime>0) /* only if the time has been set at least once, it is negative instead (see init.c) */
+ {
+ Tis = log(SphP[i].SNIaThermalTime/All.TimeBegin) / All.Timebase_interval;
+ td = get_cosmictime_difference(Tis,Tic);
+
+ if(td<All.ChimieSNIaThermalTime)
+ no_cooling_SNIa=1;
+ }
+
+ if (SphP[i].SNIIThermalTime>0) /* only if the time has been set at least once, it is negative instead (see init.c) */
+ {
+ Tis = log(SphP[i].SNIIThermalTime/All.TimeBegin) / All.Timebase_interval;
+ td = get_cosmictime_difference(Tis,Tic);
+
+ if(td<All.ChimieSNIIThermalTime)
+ no_cooling_SNII=1;
+ }
+
+ }
+ else
+ {
+ if (SphP[i].SNIaThermalTime>0) /* only if the time has been set at least once, it is negative instead (see init.c) */
+ if ((All.Time-SphP[i].SNIaThermalTime)<All.ChimieSNIaThermalTime)
+ no_cooling_SNIa=1;
+
+ if (SphP[i].SNIIThermalTime>0) /* only if the time has been set at least once, it is negative instead (see init.c) */
+ if ((All.Time-SphP[i].SNIIThermalTime)<All.ChimieSNIIThermalTime)
+ no_cooling_SNII=1;
+ }
+
+
+ no_cooling=no_cooling_SNIa+no_cooling_SNII;
+
+
+ if(no_cooling)
+ {
+ Entropy = Entropy + SphP[i].DtEntropy* dt_entr;
+
+ /* avoid Entropy to be less than minentropy */
+ if(All.MinEgySpec)
+ if(Entropy < minentropy)
+ Entropy = minentropy;
+
+ /* update particle */
+ SphP[i].DtEntropy = (Entropy-SphP[i].Entropy)/dt_entr;
+ SphP[i].Entropy = Entropy;
+
+ return ;
+ }
+#endif
+
+
+
+ while (ti_current<tend)
+ {
+
+ /* compute da/dt */
+ dadt = fabs( -GAMMA_MINUS1*pow(SphP[i].Density * a3inv,-GAMMA)*lambda(SphP[i].Density *a3inv,Entropy,0,i)/hubble_a );
+
+ /* compute cooling time */
+ /* this is similar in comobile integraction */
+ tcool = Entropy / dadt;
+
+
+ /* find dt */
+ dt = dmax(MinSizeTimestep, tcool*ErrTolIntAccuracy);
+ dt = dmin(dt,dt_entr);
+
+
+ ti_step = dt / All.Timebase_interval;
+
+ ti_step = imax(1,ti_step);
+ ti_step = imin(ti_step,tend-ti_current);
+
+ dt = ti_step* All.Timebase_interval;
+
+
+#ifndef IMPLICIT_COOLING_INTEGRATION
+ /* normal integration of Entropy */
+ Entropy += SphP[i].DtEntropy* dt; /* viscosity */
+ Entropy += -GAMMA_MINUS1*pow(SphP[i].Density * a3inv,-GAMMA)*lambda(SphP[i].Density *a3inv,Entropy,0,i)/hubble_a *dt; /* cooling */
+#else
+ /* or use implicit integration of Entropy */
+ /* need this if there is also heating like UV */
+
+ if(All.ComovingIntegrationOn)
+ {
+ printf("CoolingForOne : this must be checked !\n");
+ endrun(123321);
+ }
+ Entropy = DoCooling(SphP[i].Density*a3inv,Entropy,0,i,SphP[i].DtEntropy,dt,hubble_a);
+#endif
+
+
+
+ /* avoid Entropy to be less than minentropy */
+ if(All.MinEgySpec)
+ if(Entropy < minentropy)
+ {
+ Entropy = minentropy;
+ break;
+ }
+
+ ti_current += ti_step;
+ istep = istep+1;
+
+ }
+
+ /* entropy only due to cooling */
+ DEntropy = Entropy-SphP[i].Entropy - SphP[i].DtEntropy* dt_entr;
+ DtEntropy = DEntropy/dt_entr;
+
+
+ //if (istep>1)
+ // printf("* %d %d %d %g %g\n",istep,ti_current,tend,SphP[i].DtEntropy,DtEntropy);
+
+
+
+ /* update particle */
+
+ SphP[i].Entropy = Entropy;
+ SphP[i].DtEntropy = SphP[i].DtEntropy + DtEntropy;
+
+ DtEgySpec = - 1/GAMMA_MINUS1 * pow(SphP[i].Density * a3inv,GAMMA_MINUS1) * (DtEntropy);
+
+
+ LocalSysState.RadiatedEnergy += DtEgySpec * dt_entr * P[i].Mass;
+
+
+
+#ifdef CHECK_ENTROPY_SIGN
+ if (SphP[i].Entropy < 0)
+ {
+ printf("\ntask=%d: entropy less than zero in CoolingForOne !\n", ThisTask);
+ printf("ID=%d Entropy=%g EntropyPred=%g DtEntropy=%g\n",P[i].ID,SphP[i].Entropy,SphP[i].EntropyPred,SphP[i].DtEntropy);
+ fflush(stdout);
+ endrun(444001);
+
+ }
+#endif
+
+
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*! cooling function
+ *
+ */
+double lambda(FLOAT Density,FLOAT Entropy,int phase,int i)
+{
+ /*
+ * These function returns the Lambda (not the Lambda_n)
+ * Here, we assume that Lambda may also contain the heating term.
+ *
+ * Here, the Entropy and Density are physical, but in h units
+ *
+ * The function is used only in cooling.c
+ *
+ */
+
+ double EgySpec;
+ double MeanWeight;
+ double T=0,nH=0,nH2=0,l=0;
+ double nHcgs=0,nH2cgs=0;
+
+#ifdef HEATING
+ double Gpe=0;
+ double X,XTne,eps,ne,flux_in_cgs;
+#endif
+
+
+
+ /* number of Hydrogen atoms per unit volume (user units, not corrected from h : [nH] = h2/cm^3 ) */
+#ifndef DO_NO_USE_HYDROGEN_MASSFRAC_IN_COOLING
+ nH = HYDROGEN_MASSFRAC*Density/All.ProtonMass;
+#else
+ nH = 1 *Density/All.ProtonMass;
+#endif
+ nH2 = nH*nH;
+
+
+ /* in cgs, corrected from h */
+ nHcgs = nH/pow(All.UnitLength_in_cm, 3)*(All.HubbleParam*All.HubbleParam);
+ nH2cgs = nHcgs*nHcgs;
+
+
+ /* compute temperature */
+#ifdef MULTIPHASE
+ switch(phase)
+ {
+ case GAS_SPH:
+ T = All.mumh/All.Boltzmann * Entropy * pow(Density,GAMMA_MINUS1);
+ break;
+ case GAS_STICKY:
+ case GAS_DARK:
+ T = All.mumh/All.Boltzmann * GAMMA_MINUS1 * Entropy;
+ break;
+ }
+#else
+ T = All.mumh/All.Boltzmann * Entropy * pow(Density,GAMMA_MINUS1);
+#endif
+
+
+ /*******************
+
+ * * * COOLING * * *
+
+ *******************/
+
+ if (All.CoolingType==0 || All.CoolingType==2)
+ {
+
+ /**************/
+ /* Sutherland */
+ /**************/
+
+#ifdef MULTIPHASE
+ switch(phase)
+ {
+ case GAS_SPH:
+ if (T > All.CutofCoolingTemperature)
+ if (All.CoolingType==0)
+ l = cooling_function(T);
+ else
+#ifdef CHIMIE
+ l = cooling_function_with_metals(T,SphP[i].Metal[FE]);
+#else
+ l = cooling_function_with_metals(T,(pow(10,All.InitGasMetallicity)-1e-10)*All.CoolingParameters_FeHSolar);
+#endif
+ else
+ l = 0;
+ break;
+ case GAS_STICKY:
+ case GAS_DARK:
+ if (T > All.CutofCoolingTemperature)
+ if (All.CoolingType==0)
+ l = cooling_function(T);
+ else
+#ifdef CHIMIE
+ l = cooling_function_with_metals(T,SphP[i].Metal[FE]);
+#else
+ l = cooling_function_with_metals(T,(pow(10,All.InitGasMetallicity)-1e-10)*All.CoolingParameters_FeHSolar);
+#endif
+ else
+ l = 0;
+ break;
+ }
+
+#else
+ /* here, lambda' is in erg*cm^3/s = kg*m^5/s^3 */
+ if (T > All.CutofCoolingTemperature)
+ if (All.CoolingType==0)
+ l = cooling_function(T);
+ else
+#ifdef CHIMIE
+ l = cooling_function_with_metals(T,SphP[i].Metal[FE]);
+#else
+ l = cooling_function_with_metals(T,(pow(10,All.InitGasMetallicity)-1e-10)*All.CoolingParameters_FeHSolar);
+#endif
+ else
+ l = 0;
+#endif
+ }
+ else
+ {
+
+ /******************************/
+ /* cooling with UV background */
+ /******************************/
+
+ /* get the right density and egyspec in cgs */
+ /* entropy and density are already physical */
+
+#ifdef MULTIPHASE
+
+ /* WARNING, HERE, WE MUST DIFERENCIATE ACORDING TO THE PHASE... */
+ printf("WARNING, HERE, WE MUST DIFERENCIATE ACORDING TO THE PHASE...\n");
+ exit(0);
+
+// if (phase == GAS_SPH)
+// EgySpec = Entropy / GAMMA_MINUS1 * pow(Density, GAMMA_MINUS1);
+// else
+// EgySpec = Entropy;
+#else
+ EgySpec = Entropy / GAMMA_MINUS1 * pow(Density, GAMMA_MINUS1);
+#endif
+
+ /* into cgs, corrected from h */
+ EgySpec *= All.UnitEnergy_in_cgs/All.UnitMass_in_g;
+ Density *= All.UnitDensity_in_cgs;
+ //if(All.ComovingIntegrationOn)
+ // Density *= (All.HubbleParam*All.HubbleParam);
+
+ /* compute cooling from EnergySpec and Density */
+ l = compute_cooling_from_Egyspec_and_Density(EgySpec,Density,&MeanWeight);
+
+ /* compute temperature */
+ /*
+ Temperature = GAMMA_MINUS1 *MeanWeight*PROTONMASS/BOLTZMANN *EgySpec;
+ //printf("%g %g %g\n",Temperature,MeanWeight,Lambda);
+ logT = log10(Temperature);
+ */
+
+ }
+
+
+
+ /*******************
+
+ * * * HEATING * * *
+
+ *******************/
+#ifdef HEATING
+
+
+#ifdef HEATING_PE
+ /**************************/
+ /* Photo-electric heating */ /* all must be in cgs */
+ /**************************/
+ X = 0;
+
+#ifdef STELLAR_FLUX
+ flux_in_cgs = SphP[i].EnergyFlux* All.UnitEnergy_in_cgs/All.UnitTime_in_s/pow(All.UnitLength_in_cm, 2);
+ X = X + flux_in_cgs/C / All.HeatingPeSolarEnergyDensity;
+#endif
+
+#ifdef EXTERNAL_FLUX
+ X = X + All.HeatingExternalFLuxEnergyDensity/All.HeatingPeSolarEnergyDensity ;
+#endif
+
+ ne = nHcgs*All.HeatingPeElectronFraction;
+ XTne = X*sqrt(T)/ne;
+ eps = 4.87e-2/(1+4e-3*pow(XTne,0.73)) + 3.65e-2*(T/1e4)/(1+2e-4*XTne);
+
+ Gpe = (1e-24 * eps * X * nHcgs)/ nH2cgs ;
+
+ l = l - Gpe;
+
+#endif /*HEATING_PE*/
+
+
+
+
+
+
+
+
+#endif
+
+
+
+ /**********************************
+
+ * * * final unit conversions * * *
+
+ ***********************************/
+
+ /* convert lambda' in user units */
+ l = l / All.UnitEnergy_in_cgs /pow(All.UnitLength_in_cm,3) * All.UnitTime_in_s;
+
+ /* in unit with h */
+ l = l*All.HubbleParam;
+
+
+ /* correct from h */
+ /*
+ * [ Lambda / H / rho_p ] = [u] = cm^2/s^2
+ *
+ * [H] = h/s
+ * [rho_p] = g/cm^3 * h^2
+ * [Lambda_n] = g * m^5 / s^3
+ * [n] = h^2/m^5
+ *
+ * => Lambda_n must be multiplied by h (in order to remove one h !! not a unit !!)
+ *
+ */
+ //if(All.ComovingIntegrationOn)
+ // l = l * All.HubbleParam;
+
+ /* get the final lambda by multiplying lambda' by nH2 (all in user units) */
+ l = l*nH2;
+
+ return l;
+}
+
+
+#endif
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/cosmictime.c b/clusters/user/GEAR/src/cosmictime.c
new file mode 100644
index 0000000..079031b
--- /dev/null
+++ b/clusters/user/GEAR/src/cosmictime.c
@@ -0,0 +1,138 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_integration.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+#ifdef COSMICTIME
+
+
+/*! \file driftfac.c
+ * \brief compute loop-up tables for prefactors in cosmological integration
+ */
+
+static double logTimeBegin;
+static double logTimeMax;
+
+
+
+/*! Integration kernel for cosmictime factor computation.
+ */
+double cosmictime_integ(double a, void *param)
+{
+ double h;
+
+ h = All.Omega0 / (a * a * a) + (1 - All.Omega0 - All.OmegaLambda) / (a * a) + All.OmegaLambda;
+ h = All.Hubble * sqrt(h);
+
+ return 1 / (h * a);
+}
+
+/*! This function computes look-up tables for factors needed in
+ * cosmological integrations. The (simple) integrations are carried out
+ * with the GSL library. Separate factors are computed for the "drift",
+ * and the gravitational and hydrodynamical "kicks". The lookup-table is
+ * used for reasons of speed.
+ */
+void init_cosmictime_table(void)
+{
+#define WORKSIZE 100000
+ int i;
+ double result, abserr;
+ gsl_function F;
+ gsl_integration_workspace *workspace;
+
+ logTimeBegin = log(All.TimeBegin);
+ logTimeMax = log(All.TimeMax);
+
+ workspace = gsl_integration_workspace_alloc(WORKSIZE);
+
+ for(i = 0; i < COSMICTIME_TABLE_LENGTH; i++)
+ {
+ F.function = &cosmictime_integ;
+ gsl_integration_qag(&F, exp(logTimeBegin), exp(logTimeBegin + ((logTimeMax - logTimeBegin) / COSMICTIME_TABLE_LENGTH) * (i + 1)), All.Hubble, /* note: absolute error just a dummy */
+ 1.0e-8, WORKSIZE, GSL_INTEG_GAUSS41, workspace, &result, &abserr);
+ CosmicTimeTable[i] = result;
+ }
+
+ gsl_integration_workspace_free(workspace);
+
+
+
+ /*
+ check
+ */
+
+ //double a0,a1;
+ //int ti0,ti1;
+ //
+ //a0 = 0.7;
+ //a1 = 1.0;
+ //
+ //ti0 = log(a0 / All.TimeBegin) / All.Timebase_interval;
+ //ti1 = log(a1 / All.TimeBegin) / All.Timebase_interval;
+ //
+ //printf("- - - %g ti0=%d ti1=%d\n",get_cosmictime_difference(ti0,ti1),ti0,ti1);
+ //endrun(-7);
+
+ /*
+ end of check check
+ */
+
+
+}
+
+
+
+/*! This function return cosmic time difference for time in the time line
+ */
+double get_cosmictime_difference(int time0, int time1)
+{
+ double a1, a2, df1, df2, u1, u2;
+ int i1, i2;
+
+ /* note: will only be called for cosmological integration */
+
+ a1 = logTimeBegin + time0 * All.Timebase_interval;
+ a2 = logTimeBegin + time1 * All.Timebase_interval;
+
+ u1 = (a1 - logTimeBegin) / (logTimeMax - logTimeBegin) * COSMICTIME_TABLE_LENGTH;
+ i1 = (int) u1;
+ if(i1 >= COSMICTIME_TABLE_LENGTH)
+ i1 = COSMICTIME_TABLE_LENGTH - 1;
+
+ if(i1 <= 1)
+ df1 = u1 * CosmicTimeTable[0];
+ else
+ df1 = CosmicTimeTable[i1 - 1] + (CosmicTimeTable[i1] - CosmicTimeTable[i1 - 1]) * (u1 - i1);
+
+
+ u2 = (a2 - logTimeBegin) / (logTimeMax - logTimeBegin) * COSMICTIME_TABLE_LENGTH;
+ i2 = (int) u2;
+ if(i2 >= COSMICTIME_TABLE_LENGTH)
+ i2 = COSMICTIME_TABLE_LENGTH - 1;
+
+ if(i2 <= 1)
+ df2 = u2 * CosmicTimeTable[0];
+ else
+ df2 = CosmicTimeTable[i2 - 1] + (CosmicTimeTable[i2] - CosmicTimeTable[i2 - 1]) * (u2 - i2);
+
+ return df2 - df1;
+}
+
+
+
+
+
+
+
+
+
+
+#endif
diff --git a/clusters/user/GEAR/src/density.c b/clusters/user/GEAR/src/density.c
new file mode 100644
index 0000000..5b91e5a
--- /dev/null
+++ b/clusters/user/GEAR/src/density.c
@@ -0,0 +1,809 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file density.c
+ * \brief SPH density computation and smoothing length determination
+ *
+ * This file contains the "first SPH loop", where the SPH densities and
+ * some auxiliary quantities are computed. If the number of neighbours
+ * obtained falls outside the target range, the correct smoothing
+ * length is determined iteratively, if needed.
+ */
+
+
+#ifdef PERIODIC
+static double boxSize, boxHalf;
+
+#ifdef LONG_X
+static double boxSize_X, boxHalf_X;
+#else
+#define boxSize_X boxSize
+#define boxHalf_X boxHalf
+#endif
+#ifdef LONG_Y
+static double boxSize_Y, boxHalf_Y;
+#else
+#define boxSize_Y boxSize
+#define boxHalf_Y boxHalf
+#endif
+#ifdef LONG_Z
+static double boxSize_Z, boxHalf_Z;
+#else
+#define boxSize_Z boxSize
+#define boxHalf_Z boxHalf
+#endif
+#endif
+
+
+/*! This function computes the local density for each active SPH particle,
+ * the number of neighbours in the current smoothing radius, and the
+ * divergence and curl of the velocity field. The pressure is updated as
+ * well. If a particle with its smoothing region is fully inside the
+ * local domain, it is not exported to the other processors. The function
+ * also detects particles that have a number of neighbours outside the
+ * allowed tolerance range. For these particles, the smoothing length is
+ * adjusted accordingly, and the density computation is executed again.
+ * Note that the smoothing length is not allowed to fall below the lower
+ * bound set by MinGasHsml.
+ */
+void density(int mode)
+{
+ long long ntot, ntotleft;
+ int *noffset, *nbuffer, *nsend, *nsend_local, *numlist, *ndonelist;
+ int i, j, n, ndone, npleft, maxfill, source, iter = 0;
+ int level, ngrp, sendTask, recvTask, place, nexport;
+ double dt_entr, tstart, tend, tstart_ngb = 0, tend_ngb = 0;
+ double sumt, sumcomm, timengb, sumtimengb;
+ double timecomp = 0, timeimbalance = 0, timecommsumm = 0, sumimbalance;
+ MPI_Status status;
+
+
+#ifdef DETAILED_CPU_OUTPUT_IN_DENSITY
+ double *timengblist;
+ double *timecomplist;
+ double *timecommsummlist;
+ double *timeimbalancelist;
+#endif
+
+#ifdef DETAILED_CPU
+ double t0=0,t1=0;
+#endif
+
+#ifdef PERIODIC
+ boxSize = All.BoxSize;
+ boxHalf = 0.5 * All.BoxSize;
+#ifdef LONG_X
+ boxHalf_X = boxHalf * LONG_X;
+ boxSize_X = boxSize * LONG_X;
+#endif
+#ifdef LONG_Y
+ boxHalf_Y = boxHalf * LONG_Y;
+ boxSize_Y = boxSize * LONG_Y;
+#endif
+#ifdef LONG_Z
+ boxHalf_Z = boxHalf * LONG_Z;
+ boxSize_Z = boxSize * LONG_Z;
+#endif
+#endif
+
+#ifdef DETAILED_CPU
+ if (mode==1)
+ t0 = second();
+#endif
+
+
+ noffset = malloc(sizeof(int) * NTask); /* offsets of bunches in common list */
+ nbuffer = malloc(sizeof(int) * NTask);
+ nsend_local = malloc(sizeof(int) * NTask);
+ nsend = malloc(sizeof(int) * NTask * NTask);
+ ndonelist = malloc(sizeof(int) * NTask);
+
+
+ for(n = 0, NumSphUpdate = 0; n < N_gas; n++)
+ {
+ SphP[n].Left = SphP[n].Right = 0;
+#ifdef AVOIDNUMNGBPROBLEM
+ SphP[n].OldNumNgb = -1;
+#endif
+
+#ifdef ART_CONDUCTIVITY
+ SphP[n].EnergyIntPred = GAMMA_MINUS1*SphP[n].Pressure/SphP[n].Density ;
+#endif
+
+#ifdef SFR
+ if((P[n].Ti_endstep == All.Ti_Current) && (P[n].Type == 0))
+#else
+ if(P[n].Ti_endstep == All.Ti_Current)
+#endif
+ NumSphUpdate++;
+ }
+
+ numlist = malloc(NTask * sizeof(int) * NTask);
+ MPI_Allgather(&NumSphUpdate, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, ntot = 0; i < NTask; i++)
+ ntot += numlist[i];
+ free(numlist);
+
+
+
+ /* we will repeat the whole thing for those particles where we didn't
+ * find enough neighbours
+ */
+ do
+ {
+ i = 0; /* beginn with this index */
+ ntotleft = ntot; /* particles left for all tasks together */
+
+ while(ntotleft > 0)
+ {
+ for(j = 0; j < NTask; j++)
+ nsend_local[j] = 0;
+
+ /* do local particles and prepare export list */
+ tstart = second();
+ for(nexport = 0, ndone = 0; i < N_gas && nexport < All.BunchSizeDensity - NTask; i++)
+#ifdef SFR
+ if((P[i].Ti_endstep == All.Ti_Current) && (P[i].Type == 0))
+#else
+ if(P[i].Ti_endstep == All.Ti_Current)
+#endif
+ {
+ ndone++;
+
+ for(j = 0; j < NTask; j++)
+ Exportflag[j] = 0;
+
+ density_evaluate(i, 0);
+
+ for(j = 0; j < NTask; j++)
+ {
+ if(Exportflag[j])
+ {
+ DensDataIn[nexport].Pos[0] = P[i].Pos[0];
+ DensDataIn[nexport].Pos[1] = P[i].Pos[1];
+ DensDataIn[nexport].Pos[2] = P[i].Pos[2];
+ DensDataIn[nexport].Vel[0] = SphP[i].VelPred[0];
+ DensDataIn[nexport].Vel[1] = SphP[i].VelPred[1];
+ DensDataIn[nexport].Vel[2] = SphP[i].VelPred[2];
+ DensDataIn[nexport].Hsml = SphP[i].Hsml;
+#ifdef MULTIPHASE
+ DensDataIn[nexport].Phase = SphP[i].Phase;
+#endif
+ DensDataIn[nexport].Index = i;
+ DensDataIn[nexport].Task = j;
+#ifdef ART_CONDUCTIVITY
+ DensDataIn[nexport].EnergyIntPred = SphP[i].EnergyIntPred ;
+#endif
+ nexport++;
+ nsend_local[j]++;
+ }
+ }
+ }
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+ qsort(DensDataIn, nexport, sizeof(struct densdata_in), dens_compare_key);
+
+ for(j = 1, noffset[0] = 0; j < NTask; j++)
+ noffset[j] = noffset[j - 1] + nsend_local[j - 1];
+
+ tstart = second();
+
+ MPI_Allgather(nsend_local, NTask, MPI_INT, nsend, NTask, MPI_INT, MPI_COMM_WORLD);
+
+ tend = second();
+ timeimbalance += timediff(tstart, tend);
+
+
+ /* now do the particles that need to be exported */
+
+ for(level = 1; level < (1 << PTask); level++)
+ {
+ tstart = second();
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeDensity)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* get the particles */
+ MPI_Sendrecv(&DensDataIn[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct densdata_in), MPI_BYTE,
+ recvTask, TAG_DENS_A,
+ &DensDataGet[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct densdata_in),
+ MPI_BYTE, recvTask, TAG_DENS_A, MPI_COMM_WORLD, &status);
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+ tend = second();
+ timecommsumm += timediff(tstart, tend);
+
+
+ tstart = second();
+ for(j = 0; j < nbuffer[ThisTask]; j++)
+ density_evaluate(j, 1);
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+ /* do a block to explicitly measure imbalance */
+ tstart = second();
+ MPI_Barrier(MPI_COMM_WORLD);
+ tend = second();
+ timeimbalance += timediff(tstart, tend);
+
+ /* get the result */
+ tstart = second();
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeDensity)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* send the results */
+ MPI_Sendrecv(&DensDataResult[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct densdata_out),
+ MPI_BYTE, recvTask, TAG_DENS_B,
+ &DensDataPartialResult[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct densdata_out),
+ MPI_BYTE, recvTask, TAG_DENS_B, MPI_COMM_WORLD, &status);
+
+ /* add the result to the particles */
+ for(j = 0; j < nsend_local[recvTask]; j++)
+ {
+ source = j + noffset[recvTask];
+ place = DensDataIn[source].Index;
+
+ SphP[place].NumNgb += DensDataPartialResult[source].Ngb;
+ SphP[place].Density += DensDataPartialResult[source].Rho;
+ SphP[place].DivVel += DensDataPartialResult[source].Div;
+
+ SphP[place].DhsmlDensityFactor += DensDataPartialResult[source].DhsmlDensity;
+
+ SphP[place].Rot[0] += DensDataPartialResult[source].Rot[0];
+ SphP[place].Rot[1] += DensDataPartialResult[source].Rot[1];
+ SphP[place].Rot[2] += DensDataPartialResult[source].Rot[2];
+#ifdef ART_CONDUCTIVITY
+ SphP[place].GradEnergyInt[0] += DensDataPartialResult[source].GradEnergyInt[0];
+ SphP[place].GradEnergyInt[1] += DensDataPartialResult[source].GradEnergyInt[1];
+ SphP[place].GradEnergyInt[2] += DensDataPartialResult[source].GradEnergyInt[2];
+#endif
+ }
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+ tend = second();
+ timecommsumm += timediff(tstart, tend);
+
+ level = ngrp - 1;
+ }
+
+ MPI_Allgather(&ndone, 1, MPI_INT, ndonelist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(j = 0; j < NTask; j++)
+ ntotleft -= ndonelist[j];
+ }
+
+
+
+ /* do final operations on results */
+ tstart = second();
+ for(i = 0, npleft = 0; i < N_gas; i++)
+ {
+#ifdef SFR
+ if((P[i].Ti_endstep == All.Ti_Current) && (P[i].Type == 0))
+#else
+ if(P[i].Ti_endstep == All.Ti_Current)
+#endif
+ {
+
+ {
+ SphP[i].DhsmlDensityFactor =
+ 1 / (1 + SphP[i].Hsml * SphP[i].DhsmlDensityFactor / (NUMDIMS * SphP[i].Density));
+
+ SphP[i].CurlVel = sqrt(SphP[i].Rot[0] * SphP[i].Rot[0] +
+ SphP[i].Rot[1] * SphP[i].Rot[1] +
+ SphP[i].Rot[2] * SphP[i].Rot[2]) / SphP[i].Density;
+
+ SphP[i].DivVel /= SphP[i].Density;
+
+ dt_entr = (All.Ti_Current - (P[i].Ti_begstep + P[i].Ti_endstep) / 2) * All.Timebase_interval;
+
+ SphP[i].Pressure =
+ (SphP[i].Entropy + SphP[i].DtEntropy * dt_entr) * pow(SphP[i].Density, GAMMA);
+
+#ifdef ART_CONDUCTIVITY
+ SphP[i].GradEnergyInt[0] /= SphP[i].Density;
+ SphP[i].GradEnergyInt[1] /= SphP[i].Density;
+ SphP[i].GradEnergyInt[2] /= SphP[i].Density;
+#endif
+ }
+
+
+ /* now check whether we had enough neighbours */
+
+
+ if(SphP[i].NumNgb < (All.DesNumNgb - All.MaxNumNgbDeviation) ||
+ (SphP[i].NumNgb > (All.DesNumNgb + All.MaxNumNgbDeviation)
+ && SphP[i].Hsml > (1.01 * All.MinGasHsml)))
+ {
+
+#ifdef AVOIDNUMNGBPROBLEM
+// if((SphP[i].NumNgb>SphP[i].OldNumNgb-All.MaxNumNgbDeviation/10000.)
+// &&(SphP[i].NumNgb<SphP[i].OldNumNgb+All.MaxNumNgbDeviation/10000.))
+ if(SphP[i].NumNgb==SphP[i].OldNumNgb)
+ {
+ P[i].Ti_endstep = -P[i].Ti_endstep - 1;
+ printf("ID=%d NumNgb=%g OldNumNgb=%g\n",P[i].ID,SphP[i].NumNgb,SphP[i].OldNumNgb);
+ continue;
+ }
+
+ SphP[i].OldNumNgb = SphP[i].NumNgb;
+#endif
+
+
+ /* need to redo this particle */
+ npleft++;
+
+ if(SphP[i].Left > 0 && SphP[i].Right > 0)
+ if((SphP[i].Right - SphP[i].Left) < 1.0e-3 * SphP[i].Left)
+ {
+ /* this one should be ok */
+ npleft--;
+ P[i].Ti_endstep = -P[i].Ti_endstep - 1; /* Mark as inactive */
+ continue;
+ }
+
+ if(SphP[i].NumNgb < (All.DesNumNgb - All.MaxNumNgbDeviation))
+ SphP[i].Left = dmax(SphP[i].Hsml, SphP[i].Left);
+ else
+ {
+ if(SphP[i].Right != 0)
+ {
+ if(SphP[i].Hsml < SphP[i].Right)
+ SphP[i].Right = SphP[i].Hsml;
+ }
+ else
+ SphP[i].Right = SphP[i].Hsml;
+ }
+
+ if(iter >= MAXITER - 10)
+ {
+ printf
+ ("i=%d task=%d ID=%d Hsml=%g Left=%g Right=%g Ngbs=%g Right-Left=%g\n pos=(%g|%g|%g)\n",
+ i, ThisTask, (int) P[i].ID, SphP[i].Hsml, SphP[i].Left, SphP[i].Right,
+ (float) SphP[i].NumNgb, SphP[i].Right - SphP[i].Left, P[i].Pos[0], P[i].Pos[1],
+ P[i].Pos[2]);
+ fflush(stdout);
+ }
+
+ if(SphP[i].Right > 0 && SphP[i].Left > 0)
+ SphP[i].Hsml = pow(0.5 * (pow(SphP[i].Left, 3) + pow(SphP[i].Right, 3)), 1.0 / 3);
+ else
+ {
+ if(SphP[i].Right == 0 && SphP[i].Left == 0)
+ {
+ printf
+ ("i=%d task=%d ID=%d Hsml=%g Left=%g Right=%g Ngbs=%g Right-Left=%g\n pos=(%g|%g|%g)\n",
+ i, ThisTask, (int) P[i].ID, SphP[i].Hsml, SphP[i].Left, SphP[i].Right,
+ (float) SphP[i].NumNgb, SphP[i].Right - SphP[i].Left, P[i].Pos[0], P[i].Pos[1],
+ P[i].Pos[2]);
+ fflush(stdout);
+ endrun(8188); /* can't occur */
+ }
+
+ if(SphP[i].Right == 0 && SphP[i].Left > 0)
+ {
+ if(P[i].Type == 0 && fabs(SphP[i].NumNgb - All.DesNumNgb) < 0.5 * All.DesNumNgb)
+ {
+ SphP[i].Hsml *=
+ 1 - (SphP[i].NumNgb -
+ All.DesNumNgb) / (NUMDIMS * SphP[i].NumNgb) * SphP[i].DhsmlDensityFactor;
+ }
+ else
+ SphP[i].Hsml *= 1.26;
+ }
+
+ if(SphP[i].Right > 0 && SphP[i].Left == 0)
+ {
+ if(P[i].Type == 0 && fabs(SphP[i].NumNgb - All.DesNumNgb) < 0.5 * All.DesNumNgb)
+ {
+ SphP[i].Hsml *=
+ 1 - (SphP[i].NumNgb -
+ All.DesNumNgb) / (NUMDIMS * SphP[i].NumNgb) * SphP[i].DhsmlDensityFactor;
+ }
+ else
+ SphP[i].Hsml /= 1.26;
+ }
+ }
+
+ if(SphP[i].Hsml < All.MinGasHsml)
+ SphP[i].Hsml = All.MinGasHsml;
+ }
+ else
+ P[i].Ti_endstep = -P[i].Ti_endstep - 1; /* Mark as inactive */
+
+ }
+ }
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+
+ numlist = malloc(NTask * sizeof(int) * NTask);
+ MPI_Allgather(&npleft, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, ntot = 0; i < NTask; i++)
+ ntot += numlist[i];
+ free(numlist);
+
+ if(ntot > 0)
+ {
+ if(iter == 0)
+ tstart_ngb = second();
+
+ iter++;
+
+ if(iter > 0 && ThisTask == 0)
+ {
+ printf("ngb iteration %d: need to repeat for %d%09d particles.\n", iter,
+ (int) (ntot / 1000000000), (int) (ntot % 1000000000));
+ fflush(stdout);
+ }
+
+ if(iter > MAXITER)
+ {
+ printf("failed to converge in neighbour iteration in density()\n");
+ fflush(stdout);
+ endrun(1155);
+ }
+ }
+ else
+ tend_ngb = second();
+ }
+ while(ntot > 0);
+
+
+
+ /* mark as active again */
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep < 0)
+ P[i].Ti_endstep = -P[i].Ti_endstep - 1;
+
+ free(ndonelist);
+ free(nsend);
+ free(nsend_local);
+ free(nbuffer);
+ free(noffset);
+
+
+ /* collect some timing information */
+ if(iter > 0)
+ timengb = timediff(tstart_ngb, tend_ngb);
+ else
+ timengb = 0;
+
+ MPI_Reduce(&timengb, &sumtimengb, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timecomp, &sumt, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timecommsumm, &sumcomm, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timeimbalance, &sumimbalance, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+
+#ifdef DETAILED_CPU_OUTPUT_IN_DENSITY
+ numlist = malloc(sizeof(int) * NTask);
+ timengblist = malloc(sizeof(double) * NTask);
+ timecomplist = malloc(sizeof(double) * NTask);
+ timecommsummlist = malloc(sizeof(double) * NTask);
+ timeimbalancelist = malloc(sizeof(double) * NTask);
+
+ MPI_Gather(&NumSphUpdate, 1, MPI_INT, numlist, 1, MPI_INT, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timengb, 1, MPI_DOUBLE, timengblist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timecomp, 1, MPI_DOUBLE, timecomplist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timecommsumm, 1, MPI_DOUBLE, timecommsummlist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timeimbalance, 1, MPI_DOUBLE, timeimbalancelist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+
+ if(ThisTask == 0)
+ {
+ fprintf(FdTimings, "\n density (mode=%d)\n\n",mode);
+
+ fprintf(FdTimings, "Nupdate ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12d ",numlist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timengb ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timengblist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timecomp ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timecomplist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timecommsumm ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timecommsummlist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timeimbalance ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timeimbalancelist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "\n");
+ }
+
+ free(timeimbalancelist);
+ free(timecommsummlist);
+ free(timecomplist);
+ free(numlist);
+
+#endif
+
+#ifdef DETAILED_CPU
+ if (mode==1)
+ {
+ t1 = second();
+ All.CPU_StarFormation += timediff(t0, t1);
+ }
+ else
+ if(ThisTask == 0)
+ {
+ All.CPU_HydCompWalk += sumt / NTask;
+ All.CPU_HydCommSumm += sumcomm / NTask;
+ All.CPU_HydImbalance += sumimbalance / NTask;
+ All.CPU_EnsureNgb += sumtimengb / NTask;
+ }
+
+#else
+ if(ThisTask == 0)
+ {
+ All.CPU_HydCompWalk += sumt / NTask;
+ All.CPU_HydCommSumm += sumcomm / NTask;
+ All.CPU_HydImbalance += sumimbalance / NTask;
+ All.CPU_EnsureNgb += sumtimengb / NTask;
+ }
+#endif
+
+}
+
+
+
+/*! This function represents the core of the SPH density computation. The
+ * target particle may either be local, or reside in the communication
+ * buffer.
+ */
+void density_evaluate(int target, int mode)
+{
+ int j, n, startnode, numngb, numngb_inbox;
+ double h, h2, fac, hinv, hinv3, hinv4;
+ double rho, divv, wk, dwk;
+ double dx, dy, dz, r, r2, u, mass_j;
+ double dvx, dvy, dvz, rotv[3];
+ double weighted_numngb, dhsmlrho;
+ FLOAT *pos, *vel;
+ int phase=0;
+
+
+#ifdef ART_CONDUCTIVITY
+ double gradux, graduy, graduz;
+ double energyintpred;
+#endif
+
+ if(mode == 0)
+ {
+ pos = P[target].Pos;
+ vel = SphP[target].VelPred;
+ h = SphP[target].Hsml;
+#ifdef MULTIPHASE
+ phase = SphP[target].Phase;
+#endif
+#ifdef ART_CONDUCTIVITY
+ energyintpred = SphP[target].EnergyIntPred;
+#endif
+ }
+ else
+ {
+ pos = DensDataGet[target].Pos;
+ vel = DensDataGet[target].Vel;
+ h = DensDataGet[target].Hsml;
+#ifdef MULTIPHASE
+ phase = DensDataGet[target].Phase;
+#endif
+#ifdef ART_CONDUCTIVITY
+ energyintpred = DensDataGet[target].EnergyIntPred;
+#endif
+ }
+
+ h2 = h * h;
+ hinv = 1.0 / h;
+#ifndef TWODIMS
+ hinv3 = hinv * hinv * hinv;
+#else
+ hinv3 = hinv * hinv / boxSize_Z;
+#endif
+ hinv4 = hinv3 * hinv;
+
+ rho = divv = rotv[0] = rotv[1] = rotv[2] = 0;
+ weighted_numngb = 0;
+ dhsmlrho = 0;
+
+#ifdef ART_CONDUCTIVITY
+ gradux=graduy=graduz=0;
+#endif
+
+ startnode = All.MaxPart;
+ numngb = 0;
+ do
+ {
+ numngb_inbox = ngb_treefind_variable(&pos[0], h, phase, &startnode);
+
+ for(n = 0; n < numngb_inbox; n++)
+ {
+ j = Ngblist[n];
+
+ dx = pos[0] - P[j].Pos[0];
+ dy = pos[1] - P[j].Pos[1];
+ dz = pos[2] - P[j].Pos[2];
+
+#ifdef PERIODIC /* now find the closest image in the given box size */
+ if(dx > boxHalf_X)
+ dx -= boxSize_X;
+ if(dx < -boxHalf_X)
+ dx += boxSize_X;
+ if(dy > boxHalf_Y)
+ dy -= boxSize_Y;
+ if(dy < -boxHalf_Y)
+ dy += boxSize_Y;
+ if(dz > boxHalf_Z)
+ dz -= boxSize_Z;
+ if(dz < -boxHalf_Z)
+ dz += boxSize_Z;
+#endif
+ r2 = dx * dx + dy * dy + dz * dz;
+
+ if(r2 < h2)
+ {
+ numngb++;
+
+ r = sqrt(r2);
+
+ u = r * hinv;
+
+ if(u < 0.5)
+ {
+ wk = hinv3 * (KERNEL_COEFF_1 + KERNEL_COEFF_2 * (u - 1) * u * u);
+ dwk = hinv4 * u * (KERNEL_COEFF_3 * u - KERNEL_COEFF_4);
+ }
+ else
+ {
+ wk = hinv3 * KERNEL_COEFF_5 * (1.0 - u) * (1.0 - u) * (1.0 - u);
+ dwk = hinv4 * KERNEL_COEFF_6 * (1.0 - u) * (1.0 - u);
+ }
+
+ mass_j = P[j].Mass;
+
+ rho += mass_j * wk;
+
+ weighted_numngb += NORM_COEFF * wk / hinv3;
+
+ dhsmlrho += -mass_j * (NUMDIMS * hinv * wk + u * dwk);
+
+ if(r > 0)
+ {
+ fac = mass_j * dwk / r;
+
+ dvx = vel[0] - SphP[j].VelPred[0];
+ dvy = vel[1] - SphP[j].VelPred[1];
+ dvz = vel[2] - SphP[j].VelPred[2];
+
+ divv -= fac * (dx * dvx + dy * dvy + dz * dvz);
+
+ rotv[0] += fac * (dz * dvy - dy * dvz);
+ rotv[1] += fac * (dx * dvz - dz * dvx);
+ rotv[2] += fac * (dy * dvx - dx * dvy);
+
+#ifdef ART_CONDUCTIVITY
+ if (All.NumCurrentTiStep==0)
+ fac = 0;
+ gradux += fac * (energyintpred-SphP[j].EnergyIntPred)*dx;
+ graduy += fac * (energyintpred-SphP[j].EnergyIntPred)*dy;
+ graduz += fac * (energyintpred-SphP[j].EnergyIntPred)*dz;
+#endif
+
+ }
+ }
+ }
+ }
+ while(startnode >= 0);
+
+ if(mode == 0)
+ {
+ SphP[target].NumNgb = weighted_numngb;
+ SphP[target].Density = rho;
+ SphP[target].DivVel = divv;
+ SphP[target].DhsmlDensityFactor = dhsmlrho;
+ SphP[target].Rot[0] = rotv[0];
+ SphP[target].Rot[1] = rotv[1];
+ SphP[target].Rot[2] = rotv[2];
+#ifdef ART_CONDUCTIVITY
+ SphP[target].GradEnergyInt[0] = gradux;
+ SphP[target].GradEnergyInt[1] = graduy;
+ SphP[target].GradEnergyInt[2] = graduz;
+#endif
+ }
+ else
+ {
+ DensDataResult[target].Rho = rho;
+ DensDataResult[target].Div = divv;
+ DensDataResult[target].Ngb = weighted_numngb;
+ DensDataResult[target].DhsmlDensity = dhsmlrho;
+ DensDataResult[target].Rot[0] = rotv[0];
+ DensDataResult[target].Rot[1] = rotv[1];
+ DensDataResult[target].Rot[2] = rotv[2];
+#ifdef ART_CONDUCTIVITY
+ DensDataResult[target].GradEnergyInt[0] = gradux;
+ DensDataResult[target].GradEnergyInt[1] = graduy;
+ DensDataResult[target].GradEnergyInt[2] = graduz;
+#endif
+ }
+}
+
+
+
+
+/*! This routine is a comparison kernel used in a sort routine to group
+ * particles that are exported to the same processor.
+ */
+int dens_compare_key(const void *a, const void *b)
+{
+ if(((struct densdata_in *) a)->Task < (((struct densdata_in *) b)->Task))
+ return -1;
+
+ if(((struct densdata_in *) a)->Task > (((struct densdata_in *) b)->Task))
+ return +1;
+
+ return 0;
+}
diff --git a/clusters/user/GEAR/src/domain.c b/clusters/user/GEAR/src/domain.c
new file mode 100644
index 0000000..ff54a09
--- /dev/null
+++ b/clusters/user/GEAR/src/domain.c
@@ -0,0 +1,1817 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+
+/*! \file domain.c
+ * \brief code for domain decomposition
+ *
+ * This file contains the code for the domain decomposition of the
+ * simulation volume. The domains are constructed from disjoint subsets
+ * of the leaves of a fiducial top-level tree that covers the full
+ * simulation volume. Domain boundaries hence run along tree-node
+ * divisions of a fiducial global BH tree. As a result of this method, the
+ * tree force are in principle strictly independent of the way the domains
+ * are cut. The domain decomposition can be carried out for an arbitrary
+ * number of CPUs. Individual domains are not cubical, but spatially
+ * coherent since the leaves are traversed in a Peano-Hilbert order and
+ * individual domains form segments along this order. This also ensures
+ * that each domain has a small surface to volume ratio, which minimizes
+ * communication.
+ */
+
+#define TOPNODEFACTOR 20.0
+
+#define REDUC_FAC 0.98
+
+
+/*! toGo[task*NTask + partner] gives the number of particles in task 'task'
+ * that have to go to task 'partner'
+ */
+static int *toGo, *toGoSph;
+static int *local_toGo, *local_toGoSph;
+static int *list_NumPart;
+static int *list_N_gas;
+static int *list_load;
+static int *list_loadsph;
+static double *list_work;
+
+#ifdef STELLAR_PROP
+static int *toGoSt;
+static int *local_toGoSt;
+static int *list_N_stars;
+#endif
+
+static long long maxload, maxloadsph;
+
+static struct topnode_exchange
+{
+ peanokey Startkey;
+ int Count;
+}
+ *toplist, *toplist_local;
+
+
+
+/*! This is the main routine for the domain decomposition. It acts as a
+ * driver routine that allocates various temporary buffers, maps the
+ * particles back onto the periodic box if needed, and then does the
+ * domain decomposition, and a final Peano-Hilbert order of all particles
+ * as a tuning measure.
+ */
+void domain_Decomposition(void)
+{
+ double t0, t1;
+ int i;
+
+#ifdef PMGRID
+ if(All.PM_Ti_endstep == All.Ti_Current)
+ {
+ All.NumForcesSinceLastDomainDecomp = 1 + All.TotNumPart * All.TreeDomainUpdateFrequency;
+ /* to make sure that we do a domain decomposition before the PM-force is evaluated.
+ this is needed to make sure that the particles are wrapped into the box */
+ }
+#endif
+
+ /* Check whether it is really time for a new domain decomposition */
+ if(All.NumForcesSinceLastDomainDecomp > All.TotNumPart * All.TreeDomainUpdateFrequency)
+ {
+ t0 = second();
+
+#ifdef PERIODIC
+ do_box_wrapping(); /* map the particles back onto the box */
+#endif
+ All.NumForcesSinceLastDomainDecomp = 0;
+
+
+#ifdef SFR
+ rearrange_particle_sequence();
+#endif
+
+
+ TreeReconstructFlag = 1; /* ensures that new tree will be constructed */
+
+ if(ThisTask == 0)
+ {
+ printf("start domain decomposition... \n");
+ fflush(stdout);
+ }
+
+ Key = malloc(sizeof(peanokey) * All.MaxPart);
+ KeySorted = malloc(sizeof(peanokey) * All.MaxPart);
+
+ toGo = malloc(sizeof(int) * NTask * NTask);
+ toGoSph = malloc(sizeof(int) * NTask * NTask);
+ local_toGo = malloc(sizeof(int) * NTask);
+ local_toGoSph = malloc(sizeof(int) * NTask);
+ list_NumPart = malloc(sizeof(int) * NTask);
+ list_N_gas = malloc(sizeof(int) * NTask);
+ list_load = malloc(sizeof(int) * NTask);
+ list_loadsph = malloc(sizeof(int) * NTask);
+ list_work = malloc(sizeof(double) * NTask);
+
+ MPI_Allgather(&NumPart, 1, MPI_INT, list_NumPart, 1, MPI_INT, MPI_COMM_WORLD);
+ MPI_Allgather(&N_gas, 1, MPI_INT, list_N_gas, 1, MPI_INT, MPI_COMM_WORLD);
+
+#ifdef STELLAR_PROP
+ toGoSt = malloc(sizeof(int) * NTask * NTask);
+ local_toGoSt = malloc(sizeof(int) * NTask);
+ list_N_stars = malloc(sizeof(int) * NTask);
+ MPI_Allgather(&N_stars, 1, MPI_INT, list_N_stars, 1, MPI_INT, MPI_COMM_WORLD);
+#endif
+
+ maxload = All.MaxPart * REDUC_FAC;
+ maxloadsph = All.MaxPartSph * REDUC_FAC;
+
+
+
+
+
+#ifdef CHECK_ID_CORRESPONDENCE
+ if (ThisTask==0)
+ printf("Check id correspondence before decomposition...\n");
+
+ rearrange_particle_sequence();
+
+ for(i = N_gas; i < N_gas+N_stars; i++)
+ {
+ if( StP[P[i].StPIdx].PIdx != i )
+ {
+ printf("\nP/StP correspondance error\n");
+ printf("(%d) (in domain before) N_stars=%d N_gas=%d i=%d id=%d P[i].StPIdx=%d StP[P[i].StPIdx].PIdx=%d\n\n",ThisTask,N_stars,N_gas,i,P[i].ID,P[i].StPIdx,StP[P[i].StPIdx].PIdx);
+ endrun(888001);
+ }
+
+
+ if(StP[P[i].StPIdx].ID != P[i].ID)
+ {
+ printf("\nP/StP correspondance error\n");
+ printf("(%d) (in domain before) N_gas=%d N_stars=%d i=%d Type=%d P.Id=%d P[i].StPIdx=%d StP[P[i].StPIdx].ID=%d \n\n",ThisTask,N_gas,N_stars,i,P[i].Type,P[i].ID, P[i].StPIdx, StP[P[i].StPIdx].ID);
+ endrun(888002);
+ }
+ }
+ if (ThisTask==0)
+ printf("Check id correspondence before decomposition done...\n");
+#endif
+
+
+
+ domain_decompose();
+
+ free(list_work);
+ free(list_loadsph);
+ free(list_load);
+ free(list_N_gas);
+ free(list_NumPart);
+ free(local_toGoSph);
+ free(local_toGo);
+ free(toGoSph);
+ free(toGo);
+
+#ifdef STELLAR_PROP
+ free(list_N_stars);
+ free(local_toGoSt);
+ free(toGoSt);
+#endif
+
+#ifdef CHECK_BLOCK_ORDER
+ int typenow;
+ typenow = 0;
+ for(i = 0; i < NumPart; i++)
+ {
+
+ if ((P[i].Type<typenow)&&(typenow<=ST))
+ {
+ printf("\nBlock order error\n");
+ printf("(%d) i=%d Type=%d typenow=%d\n\n",ThisTask,i,P[i].Type,typenow);
+ endrun(888003);
+ }
+
+ typenow = P[i].Type;
+ }
+#endif
+
+#ifdef CHECK_ID_CORRESPONDENCE
+ if (ThisTask==0)
+ printf("Check id correspondence after decomposition...\n");
+
+ rearrange_particle_sequence();
+
+ for(i = N_gas; i < N_gas+N_stars; i++)
+ {
+ if( StP[P[i].StPIdx].PIdx != i )
+ {
+ printf("\nP/StP correspondance error\n");
+ printf("(%d) (in domain after) N_stars=%d N_gas=%d i=%d id=%d P[i].StPIdx=%d StP[P[i].StPIdx].PIdx=%d\n\n",ThisTask,N_stars,N_gas,i,P[i].ID,P[i].StPIdx,StP[P[i].StPIdx].PIdx);
+ endrun(888004);
+ }
+
+
+ if(StP[P[i].StPIdx].ID != P[i].ID)
+ {
+ printf("\nP/StP correspondance error\n");
+ printf("(%d) (in domain after) N_gas=%d N_stars=%d i=%d Type=%d P.Id=%d P[i].StPIdx=%d StP[P[i].StPIdx].ID=%d \n\n",ThisTask,N_gas,N_stars,i,P[i].Type,P[i].ID, P[i].StPIdx, StP[P[i].StPIdx].ID);
+ endrun(888005);
+ }
+ }
+ if (ThisTask==0)
+ printf("Check id correspondence after decomposition done...\n");
+#endif
+
+
+
+
+
+
+ if(ThisTask == 0)
+ {
+ printf("domain decomposition done. \n");
+ fflush(stdout);
+ }
+
+ t1 = second();
+ All.CPU_Domain += timediff(t0, t1);
+
+#ifdef PEANOHILBERT
+ t0 = second();
+ peano_hilbert_order();
+ t1 = second();
+ All.CPU_Peano += timediff(t0, t1);
+#endif
+
+ free(KeySorted);
+ free(Key);
+ }
+
+}
+
+
+
+/*! This function carries out the actual domain decomposition for all
+ * particle types. It will try to balance the work-load for each domain,
+ * as estimated based on the P[i]-GravCost values. The decomposition will
+ * respect the maximum allowed memory-imbalance given by the value of
+ * PartAllocFactor.
+ */
+void domain_decompose(void)
+{
+ int i, j, status;
+ int ngrp, task, partner, sendcount, recvcount;
+ long long sumtogo, sumload;
+ int maxload, *temp;
+ double sumwork, maxwork;
+
+#ifdef DETAILED_CPU_DOMAIN
+ double t0, t1;
+#endif
+
+ for(i = 0; i < 6; i++)
+ NtypeLocal[i] = 0;
+
+ for(i = 0; i < NumPart; i++)
+ NtypeLocal[P[i].Type]++;
+
+ /* because Ntype[] is of type `long long', we cannot do a simple
+ * MPI_Allreduce() to sum the total particle numbers
+ */
+ temp = malloc(NTask * 6 * sizeof(int));
+ MPI_Allgather(NtypeLocal, 6, MPI_INT, temp, 6, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0; i < 6; i++)
+ {
+ Ntype[i] = 0;
+ for(j = 0; j < NTask; j++)
+ Ntype[i] += temp[j * 6 + i];
+ }
+ free(temp);
+
+#ifndef UNEQUALSOFTENINGS
+ for(i = 0; i < 6; i++)
+ if(Ntype[i] > 0)
+ break;
+
+ for(ngrp = i + 1; ngrp < 6; ngrp++)
+ {
+ if(Ntype[ngrp] > 0)
+ if(All.SofteningTable[ngrp] != All.SofteningTable[i])
+ {
+ if(ThisTask == 0)
+ {
+ fprintf(stdout, "Code was not compiled with UNEQUALSOFTENINGS, but some of the\n");
+ fprintf(stdout, "softening lengths are unequal nevertheless.\n");
+ fprintf(stdout, "This is not allowed.\n");
+ }
+ endrun(0);
+ }
+ }
+#endif
+
+
+ /* determine global dimensions of domain grid */
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+ domain_findExtent();
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_findExtend += timediff(t0, t1);
+#endif
+
+
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+ domain_determineTopTree();
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_determineTopTree += timediff(t0, t1);
+#endif
+
+
+ /* determine cost distribution in domain grid */
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+ domain_sumCost();
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_sumCost += timediff(t0, t1);
+#endif
+
+
+ /* find the split of the domain grid recursively */
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+#ifdef SPLIT_DOMAIN_USING_TIME
+ status = domain_findSplityr(0, NTask, 0, NTopleaves - 1);
+#else
+ status = domain_findSplit(0, NTask, 0, NTopleaves - 1);
+#endif
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_findSplit += timediff(t0, t1);
+#endif
+
+ if(status != 0)
+ {
+ if(ThisTask == 0)
+ printf("\nNo domain decomposition that stays within memory bounds is possible (status=%d).\n",status);
+ endrun(0);
+ }
+
+ /* now try to improve the work-load balance of the split */
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+#ifdef SPLIT_DOMAIN_USING_TIME
+ domain_shiftSplityr();
+#else
+ domain_shiftSplit();
+#endif
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_shiftSplit += timediff(t0, t1);
+#endif
+
+
+ DomainMyStart = DomainStartList[ThisTask];
+ DomainMyLast = DomainEndList[ThisTask];
+
+ if(ThisTask == 0)
+ {
+ sumload = maxload = 0;
+ sumwork = maxwork = 0;
+ for(i = 0; i < NTask; i++)
+ {
+ sumload += list_load[i];
+ sumwork += list_work[i];
+
+ if(list_load[i] > maxload)
+ maxload = list_load[i];
+
+ if(list_work[i] > maxwork)
+ maxwork = list_work[i];
+ }
+
+ printf("work-load balance=%g memory-balance=%g\n",
+ maxwork / (sumwork / NTask), maxload / (((double) sumload) / NTask));
+ }
+
+
+ /* determine for each cpu how many particles have to be shifted to other cpus */
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+ domain_countToGo();
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_countToGo += timediff(t0, t1);
+#endif
+
+
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+
+ for(i = 0, sumtogo = 0; i < NTask * NTask; i++)
+ sumtogo += toGo[i];
+
+ while(sumtogo > 0)
+ {
+ if(ThisTask == 0)
+ {
+ printf("exchange of %d%09d particles\n", (int) (sumtogo / 1000000000),
+ (int) (sumtogo % 1000000000));
+ fflush(stdout);
+ }
+
+ for(ngrp = 1; ngrp < (1 << PTask); ngrp++)
+ {
+ for(task = 0; task < NTask; task++)
+ {
+ partner = task ^ ngrp;
+
+ if(partner < NTask && task < partner)
+ {
+
+
+
+ /* treat SPH separately */
+ if(All.TotN_gas > 0)
+ {
+ domain_findExchangeNumbers(task, partner, 0, &sendcount, &recvcount);
+
+ list_NumPart[task] += recvcount - sendcount;
+ list_NumPart[partner] -= recvcount - sendcount;
+ list_N_gas[task] += recvcount - sendcount;
+ list_N_gas[partner] -= recvcount - sendcount;
+
+ toGo[task * NTask + partner] -= sendcount;
+ toGo[partner * NTask + task] -= recvcount;
+ toGoSph[task * NTask + partner] -= sendcount;
+ toGoSph[partner * NTask + task] -= recvcount;
+
+ //if (sendcount>0)
+ // printf("(%d) gas --> %d (%d)\n",ThisTask,sendcount,N_gas);
+ //if (recvcount>0)
+ // printf("(%d) gas <-- %d (%d)\n",ThisTask,recvcount,N_gas);
+
+ //printf("(%d) N_gas=%d P[N_gas].ID=%d %d (%d %d)\n",ThisTask,N_gas,P[N_gas].ID,P[N_gas].Type,sendcount,recvcount);
+
+ if(task == ThisTask) /* actually carry out the exchange */
+ domain_exchangeParticles(partner, 0, sendcount, recvcount);
+ if(partner == ThisTask)
+ domain_exchangeParticles(task, 0, recvcount, sendcount);
+
+
+ //if (sendcount>0)
+ // printf("(%d) (after) gas --> %d (%d)\n",ThisTask,sendcount,N_gas);
+ //if (recvcount>0)
+ // printf("(%d) (after) gas <-- %d (%d)\n",ThisTask,recvcount,N_gas);
+
+ //printf("(%d) (after) N_gas=%d P[N_gas].ID=%d %d (%d %d)\n",ThisTask,N_gas,P[N_gas].ID,P[N_gas].Type,sendcount,recvcount);
+
+
+ }
+
+
+
+#ifdef STELLAR_PROP
+ /* treat STARS separately */
+ if(All.TotN_stars > 0)
+ {
+ domain_findExchangeNumbers(task, partner, 1, &sendcount, &recvcount);
+
+ list_NumPart[task] += recvcount - sendcount;
+ list_NumPart[partner] -= recvcount - sendcount;
+ list_N_stars[task] += recvcount - sendcount;
+ list_N_stars[partner] -= recvcount - sendcount;
+
+ toGo[task * NTask + partner] -= sendcount;
+ toGo[partner * NTask + task] -= recvcount;
+ toGoSt[task * NTask + partner] -= sendcount;
+ toGoSt[partner * NTask + task] -= recvcount;
+
+ //if (sendcount>0)
+ // printf("(%d) stars --> %d (%d)\n",ThisTask,sendcount,N_stars);
+ //if (recvcount>0)
+ // printf("(%d) stars <-- %d (%d)\n",ThisTask,recvcount,N_stars);
+
+ if(task == ThisTask) /* actually carry out the exchange */
+ domain_exchangeParticles(partner, 1, sendcount, recvcount);
+ if(partner == ThisTask)
+ domain_exchangeParticles(task, 1, recvcount, sendcount);
+
+ //if (sendcount>0)
+ // printf("(%d) stars --> %d (%d)\n",ThisTask,sendcount,N_stars);
+ //if (recvcount>0)
+ // printf("(%d) stars <-- %d (%d)\n",ThisTask,recvcount,N_stars);
+
+ }
+#endif
+
+
+
+
+ domain_findExchangeNumbers(task, partner, -1, &sendcount, &recvcount);
+
+ list_NumPart[task] += recvcount - sendcount;
+ list_NumPart[partner] -= recvcount - sendcount;
+
+ toGo[task * NTask + partner] -= sendcount;
+ toGo[partner * NTask + task] -= recvcount;
+
+ if(task == ThisTask) /* actually carry out the exchange */
+ domain_exchangeParticles(partner, -1, sendcount, recvcount);
+ if(partner == ThisTask)
+ domain_exchangeParticles(task, -1, recvcount, sendcount);
+ }
+ }
+ }
+
+ for(i = 0, sumtogo = 0; i < NTask * NTask; i++)
+ sumtogo += toGo[i];
+ }
+#ifdef SFR
+#ifndef STELLAR_PROP
+ /* count the new N_stars : in case STELLAR_PROP is on,
+ N_stars is already updated during the domain decomposition */
+
+ int nstars;
+
+ for(i = N_gas, nstars = 0; i < NumPart; i++)
+ {
+ if (P[i].Type==ST)
+ nstars++;
+ }
+
+ N_stars = nstars;
+
+#endif
+#endif
+
+
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_exchange += timediff(t0, t1);
+#endif
+
+
+}
+
+/*! This function tries to find a split point in a range of cells in the
+ * domain-grid. The range of cells starts at 'first', and ends at 'last'
+ * (inclusively). The number of cpus that holds the range is 'ncpu', with
+ * the first cpu given by 'cpustart'. If more than 2 cpus are to be split,
+ * the function calls itself recursively. The division tries to achieve a
+ * best particle-load balance under the constraint that 'maxload' and
+ * 'maxloadsph' may not be exceeded, and that each cpu holds at least one
+ * cell from the domaingrid. If such a decomposition cannot be achieved, a
+ * non-zero error code is returned.
+ *
+ * After successful completion, DomainMyStart[] and DomainMyLast[] contain
+ * the first and last cell of the domaingrid assigned to the local task
+ * for the given type. Also, DomainTask[] contains for each cell the task
+ * it was assigned to.
+ */
+int domain_findSplit(int cpustart, int ncpu, int first, int last)
+{
+ int i, split, ok_left, ok_right;
+ long long load, sphload, load_leftOfSplit, sphload_leftOfSplit;
+ int ncpu_leftOfSplit;
+ double maxAvgLoad_CurrentSplit, maxAvgLoad_NewSplit;
+
+
+ ncpu_leftOfSplit = ncpu / 2;
+
+ for(i = first, load = 0, sphload = 0; i <= last; i++)
+ {
+ load += DomainCount[i];
+ sphload += DomainCountSph[i];
+ }
+
+ split = first + ncpu_leftOfSplit;
+
+ for(i = first, load_leftOfSplit = sphload_leftOfSplit = 0; i < split; i++)
+ {
+ load_leftOfSplit += DomainCount[i];
+ sphload_leftOfSplit += DomainCountSph[i];
+ }
+
+ /* find the best split point in terms of work-load balance */
+
+ while(split < last - (ncpu - ncpu_leftOfSplit - 1) && split > 0)
+ {
+ maxAvgLoad_CurrentSplit =
+ dmax(load_leftOfSplit / ncpu_leftOfSplit, (load - load_leftOfSplit) / (ncpu - ncpu_leftOfSplit));
+
+ maxAvgLoad_NewSplit =
+ dmax((load_leftOfSplit + DomainCount[split]) / ncpu_leftOfSplit,
+ (load - load_leftOfSplit - DomainCount[split]) / (ncpu - ncpu_leftOfSplit));
+
+ if(maxAvgLoad_NewSplit <= maxAvgLoad_CurrentSplit)
+ {
+ load_leftOfSplit += DomainCount[split];
+ sphload_leftOfSplit += DomainCountSph[split];
+ split++;
+ }
+ else
+ break;
+ }
+
+
+ /* we will now have to check whether this solution is possible given the restrictions on the maximum load */
+
+ for(i = first, load_leftOfSplit = 0, sphload_leftOfSplit = 0; i < split; i++)
+ {
+ load_leftOfSplit += DomainCount[i];
+ sphload_leftOfSplit += DomainCountSph[i];
+ }
+
+ if(load_leftOfSplit > maxload * ncpu_leftOfSplit ||
+ (load - load_leftOfSplit) > maxload * (ncpu - ncpu_leftOfSplit))
+ {
+ /* we did not find a viable split */
+ printf("(%d) error -1 ",ThisTask);
+ return -1;
+ }
+
+ if(sphload_leftOfSplit > maxloadsph * ncpu_leftOfSplit ||
+ (sphload - sphload_leftOfSplit) > maxloadsph * (ncpu - ncpu_leftOfSplit))
+ {
+ /* we did not find a viable split */
+ printf("(%d) error -2 ",ThisTask);
+ return -2;
+ }
+
+
+
+
+ if(ncpu_leftOfSplit >= 2)
+ ok_left = domain_findSplit(cpustart, ncpu_leftOfSplit, first, split - 1);
+ else
+ ok_left = 0;
+
+ if((ncpu - ncpu_leftOfSplit) >= 2)
+ ok_right = domain_findSplit(cpustart + ncpu_leftOfSplit, ncpu - ncpu_leftOfSplit, split, last);
+ else
+ ok_right = 0;
+
+
+
+ if(ok_left == 0 && ok_right == 0)
+ {
+ /* found a viable split */
+
+ if(ncpu_leftOfSplit == 1)
+ {
+ for(i = first; i < split; i++)
+ DomainTask[i] = cpustart;
+
+ list_load[cpustart] = load_leftOfSplit;
+ list_loadsph[cpustart] = sphload_leftOfSplit;
+ DomainStartList[cpustart] = first;
+ DomainEndList[cpustart] = split - 1;
+ }
+
+ if((ncpu - ncpu_leftOfSplit) == 1)
+ {
+ for(i = split; i <= last; i++)
+ DomainTask[i] = cpustart + ncpu_leftOfSplit;
+
+ list_load[cpustart + ncpu_leftOfSplit] = load - load_leftOfSplit;
+ list_loadsph[cpustart + ncpu_leftOfSplit] = sphload - sphload_leftOfSplit;
+ DomainStartList[cpustart + ncpu_leftOfSplit] = split;
+ DomainEndList[cpustart + ncpu_leftOfSplit] = last;
+ }
+
+ return 0;
+ }
+
+ /* we did not find a viable split */
+ return -3;
+}
+
+
+#ifdef SPLIT_DOMAIN_USING_TIME
+/*! This function tries to find a split point in a range of cells
+ */
+int domain_findSplityr(int cpustart, int ncpu, int first, int last)
+{
+ int i, split, ok_left, ok_right;
+ long long load, sphload, load_leftOfSplit, sphload_leftOfSplit;
+ int ncpu_leftOfSplit;
+ double maxAvgLoad_CurrentSplit, maxAvgLoad_NewSplit;
+
+
+
+
+
+ /************************************/
+ /* find the number of part per proc */
+ /************************************/
+
+
+ double sumCPU_Gravity,meanCPU_Gravity;
+ double imb;
+ double ImbFactor;
+ int NumPartDiff,sumNumPartDiff,DesiredNumPart;
+ int *list_DesiredNumPart;
+
+ MPI_Allreduce(&CPU_Gravity, &sumCPU_Gravity, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ meanCPU_Gravity = sumCPU_Gravity/NTask;
+
+ if (sumCPU_Gravity>0)
+ {
+ imb = CPU_Gravity/meanCPU_Gravity;
+ NumPartDiff = (int) ((meanCPU_Gravity-CPU_Gravity)/meanCPU_Gravity * All.TotNumPart/NTask * 0.5);
+ ImbFactor=0;
+ }
+ else
+ {
+ imb = 0;
+ ImbFactor=0;
+ NumPartDiff=0;
+ }
+
+
+ //NumPartDiff = (int)NumPart*ImbFactor;
+ MPI_Reduce(&NumPartDiff, &sumNumPartDiff, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
+
+ if (ThisTask==0)
+ {
+ NumPartDiff-= sumNumPartDiff;
+ }
+
+ /* check */
+ MPI_Reduce(&NumPartDiff, &sumNumPartDiff, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
+ if (ThisTask==0)
+ if (sumNumPartDiff != 0)
+ {
+ printf("we are in trouble here...\n");
+ endrun(89897676);
+ }
+
+ DesiredNumPart = NumPart + NumPartDiff;
+
+
+ /* create a list */
+ list_DesiredNumPart= malloc(sizeof(double) * NTask);
+ MPI_Allgather(&DesiredNumPart, 1, MPI_INT, list_DesiredNumPart, 1, MPI_INT, MPI_COMM_WORLD);
+
+
+
+ printf("(%04d) Step=%04d Imbalance : %12g %12g %12g %12g %12d %12d %12d\n",ThisTask,All.NumCurrentTiStep,CPU_Gravity,sumCPU_Gravity/NTask, imb ,ImbFactor,NumPart,NumPartDiff,DesiredNumPart);
+
+ /************************************/
+ /* find the splits */
+ /************************************/
+
+
+ int task;
+ int domain;
+
+ /* loop over all top leaves */
+ for(task = 0, domain = 0; task < NTask-1; task++)
+ {
+
+
+ DomainStartList[task] = domain;
+
+ list_load[task] =0;
+ list_loadsph[task]=0;
+
+
+ while( (list_load[task]+DomainCount[domain] < list_DesiredNumPart[task]) || ((list_load[task]+DomainCount[domain] - list_DesiredNumPart[task]) < (list_DesiredNumPart[task]-list_load[task])) )
+ {
+
+ /* add the domain to the task */
+ list_load[task] += DomainCount[domain];
+ list_loadsph[task]+= DomainCountSph[domain];
+
+ DomainTask[domain] = task;
+ DomainEndList[task] = domain;
+
+ /* move to next domain */
+ domain++;
+ if (domain==NTopleaves)
+ {
+
+ printf("not enought domains...\n");
+ endrun(77665566);
+ }
+
+
+ }
+
+ }
+
+
+ /* now, do the last task */
+ task = NTask-1;
+
+ DomainStartList[task] = domain;
+
+ list_load[task] =0;
+ list_loadsph[task]=0;
+
+ for(domain = domain; domain < NTopleaves; domain++)
+ {
+ list_load[task] += DomainCount[domain];
+ list_loadsph[task]+= DomainCountSph[domain];
+
+ DomainTask[domain] = task;
+ DomainEndList[task] = domain;
+ }
+
+
+
+
+
+ free(list_DesiredNumPart);
+
+
+ return 0;
+}
+#endif
+
+
+/*! This function tries to improve the domain decomposition found by
+ * domain_findSplit() with respect to work-load balance. To this end, the
+ * boundaries in the existing domain-split solution (which was found by
+ * trying to balance the particle load) are shifted as long as this leads
+ * to better work-load while still remaining within the allowed
+ * memory-imbalance constraints.
+ */
+void domain_shiftSplit(void)
+{
+ int i, task, iter = 0, moved;
+ double maxw, newmaxw;
+
+ for(task = 0; task < NTask; task++)
+ list_work[task] = 0;
+
+ for(i = 0; i < NTopleaves; i++)
+ list_work[DomainTask[i]] += DomainWork[i];
+
+ if (ThisTask==0)
+ {
+ fprintf(FdLog,"1 %12g ",All.Time);
+ for(task = 0; task < NTask; task++)
+ fprintf(FdLog,"%12g ",list_work[task]);
+ fprintf(FdLog,"\n");
+ fflush(FdLog);
+ }
+
+
+ do
+ {
+ for(task = 0, moved = 0; task < NTask - 1; task++)
+ {
+ maxw = dmax(list_work[task], list_work[task + 1]);
+
+ if(list_work[task] < list_work[task + 1])
+ {
+ newmaxw = dmax(list_work[task] + DomainWork[DomainStartList[task + 1]],
+ list_work[task + 1] - DomainWork[DomainStartList[task + 1]]);
+ if(newmaxw <= maxw)
+ {
+ if(list_load[task] + DomainCount[DomainStartList[task + 1]] <= maxload)
+ {
+ if(list_loadsph[task] + DomainCountSph[DomainStartList[task + 1]] > maxloadsph)
+ continue;
+
+ /* ok, we can move one domain cell from right to left */
+ list_work[task] += DomainWork[DomainStartList[task + 1]];
+ list_load[task] += DomainCount[DomainStartList[task + 1]];
+ list_loadsph[task] += DomainCountSph[DomainStartList[task + 1]];
+ list_work[task + 1] -= DomainWork[DomainStartList[task + 1]];
+ list_load[task + 1] -= DomainCount[DomainStartList[task + 1]];
+ list_loadsph[task + 1] -= DomainCountSph[DomainStartList[task + 1]];
+
+ DomainTask[DomainStartList[task + 1]] = task;
+ DomainStartList[task + 1] += 1;
+ DomainEndList[task] += 1;
+
+ moved++;
+ }
+ }
+ }
+ else
+ {
+ newmaxw = dmax(list_work[task] - DomainWork[DomainEndList[task]],
+ list_work[task + 1] + DomainWork[DomainEndList[task]]);
+ if(newmaxw <= maxw)
+ {
+ if(list_load[task + 1] + DomainCount[DomainEndList[task]] <= maxload)
+ {
+ if(list_loadsph[task + 1] + DomainCountSph[DomainEndList[task]] > maxloadsph)
+ continue;
+
+ /* ok, we can move one domain cell from left to right */
+ list_work[task] -= DomainWork[DomainEndList[task]];
+ list_load[task] -= DomainCount[DomainEndList[task]];
+ list_loadsph[task] -= DomainCountSph[DomainEndList[task]];
+ list_work[task + 1] += DomainWork[DomainEndList[task]];
+ list_load[task + 1] += DomainCount[DomainEndList[task]];
+ list_loadsph[task + 1] += DomainCountSph[DomainEndList[task]];
+
+ DomainTask[DomainEndList[task]] = task + 1;
+ DomainEndList[task] -= 1;
+ DomainStartList[task + 1] -= 1;
+
+ moved++;
+ }
+ }
+
+ }
+ }
+
+ iter++;
+ }
+ while(moved > 0 && iter < 10 * NTopleaves);
+
+
+
+ if (ThisTask==0)
+ {
+ fprintf(FdLog,"2 %12g ",All.Time);
+ for(task = 0; task < NTask; task++)
+ fprintf(FdLog,"%12g ",list_work[task]);
+ fprintf(FdLog,"\n");
+ fflush(FdLog);
+ }
+
+
+
+
+
+}
+
+
+#ifdef SPLIT_DOMAIN_USING_TIME
+/*! This function tries to improve the domain decomposition found by
+ * domain_findSplit() with respect to work-load balance. To this end, the
+ * boundaries in the existing domain-split solution (which was found by
+ * trying to balance the particle load) are shifted as long as this leads
+ * to better work-load while still remaining within the allowed
+ * memory-imbalance constraints.
+ */
+void domain_shiftSplityr(void)
+{
+
+}
+#endif
+
+
+/*! This function counts how many particles have to be exchanged between
+ * two CPUs according to the domain split. If the CPUs are already quite
+ * full and hold data from other CPUs as well, not all the particles may
+ * be exchanged at once. In this case the communication phase has to be
+ * repeated, until enough of the third-party particles have been moved
+ * away such that the decomposition can be completed.
+ */
+void domain_findExchangeNumbers(int task, int partner, int sphflag, int *send, int *recv)
+{
+ int numpartA, numpartsphA, ntobesentA, maxsendA, maxsendA_old;
+ int numpartB, numpartsphB, ntobesentB, maxsendB, maxsendB_old;
+#ifdef STELLAR_PROP
+ int numpartstA;
+ int numpartstB;
+#endif
+
+
+ numpartA = list_NumPart[task];
+ numpartsphA = list_N_gas[task];
+#ifdef STELLAR_PROP
+ numpartstA = list_N_stars[task];
+#endif
+
+ numpartB = list_NumPart[partner];
+ numpartsphB = list_N_gas[partner];
+#ifdef STELLAR_PROP
+ numpartstB = list_N_stars[partner];
+#endif
+
+ switch (sphflag)
+ {
+ case 0:
+ ntobesentA = toGoSph[task * NTask + partner];
+ ntobesentB = toGoSph[partner * NTask + task];
+ break;
+#ifdef STELLAR_PROP
+ case 1:
+ ntobesentA = toGoSt[task * NTask + partner];
+ ntobesentB = toGoSt[partner * NTask + task];
+ break;
+#endif
+ default:
+#ifdef STELLAR_PROP
+ ntobesentA = toGo[task * NTask + partner] - toGoSph[task * NTask + partner] - toGoSt[task * NTask + partner];
+ ntobesentB = toGo[partner * NTask + task] - toGoSph[partner * NTask + task] - toGoSt[partner * NTask + task];
+#else
+ ntobesentA = toGo[task * NTask + partner] - toGoSph[task * NTask + partner];
+ ntobesentB = toGo[partner * NTask + task] - toGoSph[partner * NTask + task];
+#endif
+ break;
+ }
+
+
+ maxsendA = imin(ntobesentA, All.BunchSizeDomain);
+ maxsendB = imin(ntobesentB, All.BunchSizeDomain);
+
+ do
+ {
+ maxsendA_old = maxsendA;
+ maxsendB_old = maxsendB;
+
+ maxsendA = imin(All.MaxPart - numpartB + maxsendB, maxsendA);
+ maxsendB = imin(All.MaxPart - numpartA + maxsendA, maxsendB);
+ }
+ while((maxsendA != maxsendA_old) || (maxsendB != maxsendB_old));
+
+
+ /* now make also sure that there is enough space for SPH particles */
+ switch (sphflag)
+ {
+ case 0:
+ do
+ {
+ maxsendA_old = maxsendA;
+ maxsendB_old = maxsendB;
+
+ maxsendA = imin(All.MaxPartSph - numpartsphB + maxsendB, maxsendA);
+ maxsendB = imin(All.MaxPartSph - numpartsphA + maxsendA, maxsendB);
+ }
+ while((maxsendA != maxsendA_old) || (maxsendB != maxsendB_old));
+ break;
+#ifdef STELLAR_PROP
+ case 1:
+ do
+ {
+ maxsendA_old = maxsendA;
+ maxsendB_old = maxsendB;
+
+ maxsendA = imin(All.MaxPartStars - numpartstB + maxsendB, maxsendA);
+ maxsendB = imin(All.MaxPartStars - numpartstA + maxsendA, maxsendB);
+ }
+ while((maxsendA != maxsendA_old) || (maxsendB != maxsendB_old));
+ break;
+#endif
+ default:
+ break;
+ }
+
+
+ *send = maxsendA;
+ *recv = maxsendB;
+}
+
+
+
+
+/*! This function exchanges particles between two CPUs according to the
+ * domain split. In doing this, the memory boundaries which may restrict
+ * the exhange process are observed.
+ */
+void domain_exchangeParticles(int partner, int sphflag, int send_count, int recv_count)
+{
+ int i, no, n, count, rep;
+ MPI_Status status;
+#ifdef STELLAR_PROP
+ int m;
+#endif
+
+ for(n = 0, count = 0; count < send_count && n < NumPart; n++)
+ {
+
+ switch (sphflag)
+ {
+ case 0:
+ if(P[n].Type != 0)
+ continue;
+ break;
+#ifdef STELLAR_PROP
+ case 1:
+ if(P[n].Type != 1)
+ continue;
+ break;
+#endif
+ default:
+#ifdef STELLAR_PROP
+ if((P[n].Type == 0)||(P[n].Type == 1))
+#else
+ if(P[n].Type == 0)
+#endif
+ continue;
+ break;
+ }
+
+ no = 0;
+
+ while(TopNodes[no].Daughter >= 0)
+ no = TopNodes[no].Daughter + (Key[n] - TopNodes[no].StartKey) / (TopNodes[no].Size / 8);
+
+ no = TopNodes[no].Leaf;
+
+ if(DomainTask[no] == partner)
+ {
+
+
+ switch (sphflag)
+ {
+ case 0: /* special reorder routine for SPH particles (need to stay at beginning) */
+#ifndef STELLAR_PROP
+ DomainPartBuf[count] = P[n]; /* copy particle and collect in contiguous memory */
+ DomainKeyBuf[count] = Key[n];
+ DomainSphBuf[count] = SphP[n];
+
+ P[n] = P[N_gas - 1];
+ P[N_gas - 1] = P[NumPart - 1];
+
+ Key[n] = Key[N_gas - 1];
+ Key[N_gas - 1] = Key[NumPart - 1];
+
+ SphP[n] = SphP[N_gas - 1];
+ N_gas--;
+ break;
+#else
+ DomainPartBuf[count] = P[n]; /* copy particle and collect in contiguous memory */
+ DomainKeyBuf[count] = Key[n];
+ DomainSphBuf[count] = SphP[n];
+
+ P[n] = P[N_gas - 1];
+ P[N_gas - 1] = P[N_gas+N_stars - 1];
+ P[N_gas+N_stars - 1] = P[NumPart - 1];
+
+ Key[n] = Key[N_gas - 1];
+ Key[N_gas - 1] = Key[N_gas+N_stars - 1];
+ Key[N_gas+N_stars - 1] = Key[NumPart - 1];
+
+ SphP[n] = SphP[N_gas - 1];
+
+ StP[P[N_gas - 1].StPIdx].PIdx = N_gas - 1;
+
+ N_gas--;
+ break;
+#endif
+#ifdef STELLAR_PROP
+ case 1:
+ DomainPartBuf[count] = P[n]; /* copy particle and collect in contiguous memory */
+ DomainKeyBuf[count] = Key[n];
+ DomainStBuf[count] = StP[P[n].StPIdx];
+
+ m = P[n].StPIdx;
+
+ //printf("(%d) sending P .... n=%d id=%d\n",ThisTask,n,P[n].ID);
+ //printf("(%d) replacing P using .... n=%d id=%d\n",ThisTask,N_gas+N_stars - 1,P[N_gas+N_stars - 1].ID);
+ //printf("(%d) sending Stp .... n=%d id=%d\n",ThisTask,m,StP[m].ID);
+ //printf("(%d) replacing StP using .... n=%d id=%d\n",ThisTask,N_stars - 1,StP[N_stars - 1].ID);
+
+
+ P[n] = P[N_gas+N_stars - 1];
+ StP[P[n].StPIdx].PIdx = n; /* create correct link */
+ P[N_gas+N_stars - 1] = P[NumPart - 1];
+
+
+ Key[n] = Key[N_gas+N_stars - 1];
+ Key[N_gas+N_stars - 1] = Key[NumPart - 1];
+
+
+ if (m!=(N_stars - 1))
+ {
+ StP[m] = StP[N_stars - 1]; /* replace by the last one -> avoid a hole in Stp */
+ P[StP[m].PIdx].StPIdx = m; /* create correct link */
+ }
+
+
+
+
+
+
+ N_stars--;
+ break;
+#endif
+ default:
+ DomainPartBuf[count] = P[n]; /* copy particle and collect in contiguous memory */
+ DomainKeyBuf[count] = Key[n];
+ P[n] = P[NumPart - 1];
+ Key[n] = Key[NumPart - 1];
+ break;
+ }
+
+
+ count++;
+ NumPart--;
+ n--;
+
+ }
+ }
+
+ if(count != send_count)
+ {
+ printf("Houston, we got a problem... (sphflag=%d)\n",sphflag);
+ printf("ThisTask=%d count=%d send_count=%d\n", ThisTask, count, send_count);
+ endrun(88);
+ }
+
+ /* transmit */
+
+ for(rep = 0; rep < 2; rep++)
+ {
+ if((rep == 0 && ThisTask < partner) || (rep == 1 && ThisTask > partner))
+ {
+ if(send_count > 0)
+ {
+ MPI_Ssend(&DomainPartBuf[0], send_count * sizeof(struct particle_data), MPI_BYTE, partner,
+ TAG_PDATA, MPI_COMM_WORLD);
+
+ MPI_Ssend(&DomainKeyBuf[0], send_count * sizeof(peanokey), MPI_BYTE, partner, TAG_KEY,
+ MPI_COMM_WORLD);
+
+ if(sphflag==0)
+ MPI_Ssend(&DomainSphBuf[0], send_count * sizeof(struct sph_particle_data), MPI_BYTE, partner,
+ TAG_SPHDATA, MPI_COMM_WORLD);
+
+#ifdef STELLAR_PROP
+ if(sphflag==ST)
+ MPI_Ssend(&DomainStBuf[0], send_count * sizeof(struct st_particle_data), MPI_BYTE, partner,
+ TAG_STDATA, MPI_COMM_WORLD);
+#endif
+
+ }
+ }
+
+ if((rep == 1 && ThisTask < partner) || (rep == 0 && ThisTask > partner))
+ {
+ if(recv_count > 0)
+ {
+ switch (sphflag)
+ {
+ case 0:
+#ifndef STELLAR_PROP
+
+ if((NumPart - N_gas) > recv_count)
+ {
+ for(i = 0; i < recv_count; i++)
+ {
+ P[NumPart + i] = P[N_gas + i];
+ Key[NumPart + i] = Key[N_gas + i];
+ }
+ }
+ else
+ {
+ for(i = NumPart - 1; i >= N_gas; i--)
+ {
+ P[i + recv_count] = P[i];
+ Key[i + recv_count] = Key[i];
+ }
+ }
+
+#else
+ /* A : move elts of last block */
+ if((NumPart - N_gas - N_stars) > recv_count)
+ {
+ for(i = 0; i < recv_count; i++)
+ {
+ P[NumPart + i] = P[N_gas + N_stars + i];
+ Key[NumPart + i] = Key[N_gas + N_stars + i];
+ }
+ }
+ else
+ {
+ for(i = NumPart - 1; i >= N_gas + N_stars; i--)
+ {
+ P[i + recv_count] = P[i];
+ Key[i + recv_count] = Key[i];
+ }
+ }
+
+
+ /* B : move stars */
+ if (N_stars > 0)
+ {
+ if((N_stars) > recv_count)
+ {
+ for(i = 0; i < recv_count; i++)
+ {
+ P[N_gas + N_stars + i] = P[N_gas + i];
+ Key[N_gas + N_stars + i] = Key[N_gas + i];
+ StP[P[N_gas + N_stars + i].StPIdx].PIdx = N_gas + N_stars + i;
+ }
+ }
+ else
+ {
+ for(i = N_gas + N_stars - 1; i >= N_gas; i--)
+ {
+ P[i + recv_count] = P[i];
+ Key[i + recv_count] = Key[i];
+ StP[P[i + recv_count].StPIdx].PIdx = i + recv_count;
+ }
+ }
+ }
+#endif
+ MPI_Recv(&P[N_gas], recv_count * sizeof(struct particle_data), MPI_BYTE, partner, TAG_PDATA,
+ MPI_COMM_WORLD, &status);
+ MPI_Recv(&Key[N_gas], recv_count * sizeof(peanokey), MPI_BYTE, partner, TAG_KEY,
+ MPI_COMM_WORLD, &status);
+ MPI_Recv(&SphP[N_gas], recv_count * sizeof(struct sph_particle_data), MPI_BYTE, partner,
+ TAG_SPHDATA, MPI_COMM_WORLD, &status);
+
+ N_gas += recv_count;
+ break;
+#ifdef STELLAR_PROP
+ case 1:
+ if((NumPart - N_gas - N_stars) > recv_count)
+ {
+ for(i = 0; i < recv_count; i++)
+ {
+ P[NumPart + i] = P[N_gas + N_stars + i];
+ Key[NumPart + i] = Key[N_gas + N_stars + i];
+ }
+ }
+ else
+ {
+ for(i = NumPart - 1; i >= N_gas + N_stars; i--)
+ {
+ P[i + recv_count] = P[i];
+ Key[i + recv_count] = Key[i];
+ }
+ }
+
+ MPI_Recv(&P[N_gas+N_stars], recv_count * sizeof(struct particle_data), MPI_BYTE, partner, TAG_PDATA,
+ MPI_COMM_WORLD, &status);
+ MPI_Recv(&Key[N_gas+N_stars], recv_count * sizeof(peanokey), MPI_BYTE, partner, TAG_KEY,
+ MPI_COMM_WORLD, &status);
+ MPI_Recv(&StP[N_stars], recv_count * sizeof(struct st_particle_data), MPI_BYTE, partner, TAG_STDATA,
+ MPI_COMM_WORLD, &status);
+
+ /* set right links */
+ for(i = 0; i < recv_count; i++)
+ {
+ P[N_gas + N_stars + i].StPIdx = N_stars + i;
+ StP[N_stars + i].PIdx = N_gas + N_stars + i;
+ }
+
+
+ N_stars += recv_count;
+ break;
+#endif
+ default:
+ MPI_Recv(&P[NumPart], recv_count * sizeof(struct particle_data), MPI_BYTE, partner,
+ TAG_PDATA, MPI_COMM_WORLD, &status);
+ MPI_Recv(&Key[NumPart], recv_count * sizeof(peanokey), MPI_BYTE, partner,
+ TAG_KEY, MPI_COMM_WORLD, &status);
+
+ break;
+ }
+
+
+ NumPart += recv_count;
+ }
+ }
+ }
+}
+
+/*! This function determines how many particles that are currently stored
+ * on the local CPU have to be moved off according to the domain
+ * decomposition.
+ */
+void domain_countToGo(void)
+{
+ int n, no;
+
+ for(n = 0; n < NTask; n++)
+ {
+ local_toGo[n] = 0;
+ local_toGoSph[n] = 0;
+#ifdef STELLAR_PROP
+ local_toGoSt[n] = 0;
+#endif
+ }
+
+ for(n = 0; n < NumPart; n++)
+ {
+ no = 0;
+
+ while(TopNodes[no].Daughter >= 0)
+ no = TopNodes[no].Daughter + (Key[n] - TopNodes[no].StartKey) / (TopNodes[no].Size / 8);
+
+ no = TopNodes[no].Leaf;
+
+ if(DomainTask[no] != ThisTask)
+ {
+ local_toGo[DomainTask[no]] += 1;
+ if(P[n].Type == 0)
+ local_toGoSph[DomainTask[no]] += 1;
+#ifdef STELLAR_PROP
+ if(P[n].Type == 1)
+ local_toGoSt[DomainTask[no]] += 1;
+#endif
+ }
+ }
+
+ MPI_Allgather(local_toGo, NTask, MPI_INT, toGo, NTask, MPI_INT, MPI_COMM_WORLD);
+ MPI_Allgather(local_toGoSph, NTask, MPI_INT, toGoSph, NTask, MPI_INT, MPI_COMM_WORLD);
+#ifdef STELLAR_PROP
+ MPI_Allgather(local_toGoSt, NTask, MPI_INT, toGoSt, NTask, MPI_INT, MPI_COMM_WORLD);
+#endif
+}
+
+
+/*! This function walks the global top tree in order to establish the
+ * number of leaves it has. These leaves are distributed to different
+ * processors.
+ */
+void domain_walktoptree(int no)
+{
+ int i;
+
+ if(TopNodes[no].Daughter == -1)
+ {
+ TopNodes[no].Leaf = NTopleaves;
+ NTopleaves++;
+ }
+ else
+ {
+ for(i = 0; i < 8; i++)
+ domain_walktoptree(TopNodes[no].Daughter + i);
+ }
+}
+
+/*! This routine bins the particles onto the domain-grid, i.e. it sums up the
+ * total number of particles and the total amount of work in each of the
+ * domain-cells. This information forms the basis for the actual decision on
+ * the adopted domain decomposition.
+ */
+void domain_sumCost(void)
+{
+ int i, n, no;
+ double *local_DomainWork;
+ int *local_DomainCount;
+ int *local_DomainCountSph;
+
+ local_DomainWork = malloc(NTopnodes * sizeof(double));
+ local_DomainCount = malloc(NTopnodes * sizeof(int));
+ local_DomainCountSph = malloc(NTopnodes * sizeof(int));
+
+
+
+ NTopleaves = 0;
+
+ domain_walktoptree(0);
+
+ for(i = 0; i < NTopleaves; i++)
+ {
+ local_DomainWork[i] = 0;
+ local_DomainCount[i] = 0;
+ local_DomainCountSph[i] = 0;
+ }
+
+ if(ThisTask == 0)
+ printf("NTopleaves= %d\n", NTopleaves);
+
+
+ for(n = 0; n < NumPart; n++)
+ {
+ no = 0;
+
+ while(TopNodes[no].Daughter >= 0)
+ no = TopNodes[no].Daughter + (Key[n] - TopNodes[no].StartKey) / (TopNodes[no].Size / 8);
+
+ no = TopNodes[no].Leaf;
+
+ if(P[n].Ti_endstep > P[n].Ti_begstep)
+ local_DomainWork[no] += (1.0 + P[n].GravCost) / (P[n].Ti_endstep - P[n].Ti_begstep);
+ else
+ local_DomainWork[no] += (1.0 + P[n].GravCost);
+
+ local_DomainCount[no] += 1;
+ if(P[n].Type == 0)
+ local_DomainCountSph[no] += 1;
+ }
+
+ MPI_Allreduce(local_DomainWork, DomainWork, NTopleaves, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(local_DomainCount, DomainCount, NTopleaves, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(local_DomainCountSph, DomainCountSph, NTopleaves, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+
+
+ free(local_DomainCountSph);
+ free(local_DomainCount);
+ free(local_DomainWork);
+}
+
+
+/*! This routine finds the extent of the global domain grid.
+ */
+void domain_findExtent(void)
+{
+ int i, j;
+ double len, xmin[3], xmax[3], xmin_glob[3], xmax_glob[3];
+
+ /* determine local extension */
+ for(j = 0; j < 3; j++)
+ {
+ xmin[j] = MAX_REAL_NUMBER;
+ xmax[j] = -MAX_REAL_NUMBER;
+ }
+
+ for(i = 0; i < NumPart; i++)
+ {
+ for(j = 0; j < 3; j++)
+ {
+ if(xmin[j] > P[i].Pos[j])
+ xmin[j] = P[i].Pos[j];
+
+ if(xmax[j] < P[i].Pos[j])
+ xmax[j] = P[i].Pos[j];
+ }
+ }
+
+ MPI_Allreduce(xmin, xmin_glob, 3, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD);
+ MPI_Allreduce(xmax, xmax_glob, 3, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD);
+
+ len = 0;
+ for(j = 0; j < 3; j++)
+ if(xmax_glob[j] - xmin_glob[j] > len)
+ len = xmax_glob[j] - xmin_glob[j];
+
+ len *= 1.001;
+
+#ifdef DOMAIN_AT_ORIGIN
+ for(j = 0; j < 3; j++)
+ {
+ DomainCenter[j] = 0.0;
+ DomainCorner[j] = - 0.5 * len;
+ }
+#else
+ for(j = 0; j < 3; j++)
+ {
+ DomainCenter[j] = 0.5 * (xmin_glob[j] + xmax_glob[j]);
+ DomainCorner[j] = 0.5 * (xmin_glob[j] + xmax_glob[j]) - 0.5 * len;
+ }
+#endif
+
+ DomainLen = len;
+ DomainFac = 1.0 / len * (((peanokey) 1) << (BITS_PER_DIMENSION));
+
+#ifdef OTHERINFO
+ if(ThisTask == 0)
+ {
+ printf("xmin_glob = %g %g %g\n",xmin_glob[0],xmin_glob[1],xmin_glob[2]);
+ printf("xmax_glob = %g %g %g\n",xmax_glob[0],xmax_glob[1],xmax_glob[2]);
+ printf("DomainCenter = %g %g %g\n",DomainCenter[0], DomainCenter[1], DomainCenter[2]);
+ printf("DomainCorner = %g %g %g\n",DomainCorner[0], DomainCorner[1], DomainCorner[2]);
+ printf("DomainLen = %g\n",DomainLen);
+ }
+#endif
+
+}
+
+
+/*! This function constructs the global top-level tree node that is used
+ * for the domain decomposition. This is done by considering the string of
+ * Peano-Hilbert keys for all particles, which is recursively chopped off
+ * in pieces of eight segments until each segment holds at most a certain
+ * number of particles.
+ */
+void domain_determineTopTree(void)
+{
+ int i, ntop_local, ntop;
+ int *ntopnodelist, *ntopoffset;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ KeySorted[i] = Key[i] = peano_hilbert_key((P[i].Pos[0] - DomainCorner[0]) * DomainFac,
+ (P[i].Pos[1] - DomainCorner[1]) * DomainFac,
+ (P[i].Pos[2] - DomainCorner[2]) * DomainFac,
+ BITS_PER_DIMENSION);
+ }
+
+ qsort(KeySorted, NumPart, sizeof(peanokey), domain_compare_key);
+
+ NTopnodes = 1;
+ TopNodes[0].Daughter = -1;
+ TopNodes[0].Size = PEANOCELLS;
+ TopNodes[0].StartKey = 0;
+ TopNodes[0].Count = NumPart;
+ TopNodes[0].Pstart = 0;
+
+ domain_topsplit_local(0, 0);
+
+ toplist_local = malloc(NTopnodes * sizeof(struct topnode_exchange));
+
+ for(i = 0, ntop_local = 0; i < NTopnodes; i++)
+ {
+ if(TopNodes[i].Daughter == -1) /* only use leaves */
+ {
+ toplist_local[ntop_local].Startkey = TopNodes[i].StartKey;
+ toplist_local[ntop_local].Count = TopNodes[i].Count;
+ ntop_local++;
+ }
+ }
+
+ ntopnodelist = malloc(sizeof(int) * NTask);
+ ntopoffset = malloc(sizeof(int) * NTask);
+
+ MPI_Allgather(&ntop_local, 1, MPI_INT, ntopnodelist, 1, MPI_INT, MPI_COMM_WORLD);
+
+ for(i = 0, ntop = 0, ntopoffset[0] = 0; i < NTask; i++)
+ {
+ ntop += ntopnodelist[i];
+ if(i > 0)
+ ntopoffset[i] = ntopoffset[i - 1] + ntopnodelist[i - 1];
+ }
+
+
+ toplist = malloc(ntop * sizeof(struct topnode_exchange));
+
+ for(i = 0; i < NTask; i++)
+ {
+ ntopnodelist[i] *= sizeof(struct topnode_exchange);
+ ntopoffset[i] *= sizeof(struct topnode_exchange);
+ }
+
+ MPI_Allgatherv(toplist_local, ntop_local * sizeof(struct topnode_exchange), MPI_BYTE,
+ toplist, ntopnodelist, ntopoffset, MPI_BYTE, MPI_COMM_WORLD);
+
+ qsort(toplist, ntop, sizeof(struct topnode_exchange), domain_compare_toplist);
+
+ NTopnodes = 1;
+ TopNodes[0].Daughter = -1;
+ TopNodes[0].Size = PEANOCELLS;
+ TopNodes[0].StartKey = 0;
+ TopNodes[0].Count = All.TotNumPart;
+ TopNodes[0].Pstart = 0;
+ TopNodes[0].Blocks = ntop;
+
+ domain_topsplit(0, 0);
+
+ free(toplist);
+ free(ntopoffset);
+ free(ntopnodelist);
+ free(toplist_local);
+
+}
+
+
+
+/*! This function is responsible for constructing the local top-level
+ * Peano-Hilbert segments. A segment is cut into 8 pieces recursively
+ * until the number of particles in the segment has fallen below
+ * All.TotNumPart / (TOPNODEFACTOR * NTask * NTask).
+ */
+void domain_topsplit_local(int node, peanokey startkey)
+{
+ int i, p, sub, bin;
+
+ if(TopNodes[node].Size >= 8)
+ {
+ TopNodes[node].Daughter = NTopnodes;
+
+ for(i = 0; i < 8; i++)
+ {
+ if(NTopnodes < MAXTOPNODES)
+ {
+ sub = TopNodes[node].Daughter + i;
+ TopNodes[sub].Size = TopNodes[node].Size / 8;
+ TopNodes[sub].Count = 0;
+ TopNodes[sub].Daughter = -1;
+ TopNodes[sub].StartKey = startkey + i * TopNodes[sub].Size;
+ TopNodes[sub].Pstart = TopNodes[node].Pstart;
+
+ NTopnodes++;
+ }
+ else
+ {
+ printf("task=%d: We are out of Topnodes. Increasing the constant MAXTOPNODES might help.\n",
+ ThisTask);
+ fflush(stdout);
+ endrun(13213);
+ }
+ }
+
+ for(p = TopNodes[node].Pstart; p < TopNodes[node].Pstart + TopNodes[node].Count; p++)
+ {
+ bin = (KeySorted[p] - startkey) / (TopNodes[node].Size / 8);
+
+ if(bin < 0 || bin > 7)
+ {
+ printf("task=%d: something odd has happened here. bin=%d\n", ThisTask, bin);
+ fflush(stdout);
+ endrun(13123123);
+ }
+
+ sub = TopNodes[node].Daughter + bin;
+
+ if(TopNodes[sub].Count == 0)
+ TopNodes[sub].Pstart = p;
+
+ TopNodes[sub].Count++;
+ }
+
+ for(i = 0; i < 8; i++)
+ {
+ sub = TopNodes[node].Daughter + i;
+ //if(TopNodes[sub].Count > All.TotNumPart / (TOPNODEFACTOR * NTask * NTask))
+ if(TopNodes[sub].Count > All.TotNumPart / (TOPNODEFACTOR * NTask))
+ domain_topsplit_local(sub, TopNodes[sub].StartKey);
+ }
+ }
+}
+
+
+
+/*! This function is responsible for constructing the global top-level tree
+ * segments. Starting from a joint list of all local top-level segments,
+ * in which mulitple occurences of the same spatial segment have been
+ * combined, a segment is subdivided into 8 pieces recursively until the
+ * number of particles in each segment has fallen below All.TotNumPart /
+ * (TOPNODEFACTOR * NTask).
+ */
+void domain_topsplit(int node, peanokey startkey)
+{
+ int i, p, sub, bin;
+
+ if(TopNodes[node].Size >= 8)
+ {
+ TopNodes[node].Daughter = NTopnodes;
+
+ for(i = 0; i < 8; i++)
+ {
+ if(NTopnodes < MAXTOPNODES)
+ {
+ sub = TopNodes[node].Daughter + i;
+ TopNodes[sub].Size = TopNodes[node].Size / 8;
+ TopNodes[sub].Count = 0;
+ TopNodes[sub].Blocks = 0;
+ TopNodes[sub].Daughter = -1;
+ TopNodes[sub].StartKey = startkey + i * TopNodes[sub].Size;
+ TopNodes[sub].Pstart = TopNodes[node].Pstart;
+ NTopnodes++;
+ }
+ else
+ {
+ printf("Task=%d: We are out of Topnodes. Increasing the constant MAXTOPNODES might help.\n",
+ ThisTask);
+ fflush(stdout);
+ endrun(137213);
+ }
+ }
+
+ for(p = TopNodes[node].Pstart; p < TopNodes[node].Pstart + TopNodes[node].Blocks; p++)
+ {
+ bin = (toplist[p].Startkey - startkey) / (TopNodes[node].Size / 8);
+ sub = TopNodes[node].Daughter + bin;
+
+ if(bin < 0 || bin > 7)
+ endrun(77);
+
+ if(TopNodes[sub].Blocks == 0)
+ TopNodes[sub].Pstart = p;
+
+ TopNodes[sub].Count += toplist[p].Count;
+ TopNodes[sub].Blocks++;
+ }
+
+ for(i = 0; i < 8; i++)
+ {
+ sub = TopNodes[node].Daughter + i;
+ if(TopNodes[sub].Count > All.TotNumPart / (TOPNODEFACTOR * NTask))
+ domain_topsplit(sub, TopNodes[sub].StartKey);
+ }
+ }
+}
+
+
+/*! This is a comparison kernel used in a sort routine.
+ */
+int domain_compare_toplist(const void *a, const void *b)
+{
+ if(((struct topnode_exchange *) a)->Startkey < (((struct topnode_exchange *) b)->Startkey))
+ return -1;
+
+ if(((struct topnode_exchange *) a)->Startkey > (((struct topnode_exchange *) b)->Startkey))
+ return +1;
+
+ return 0;
+}
+
+/*! This is a comparison kernel used in a sort routine.
+ */
+int domain_compare_key(const void *a, const void *b)
+{
+ if(*(peanokey *) a < *(peanokey *) b)
+ return -1;
+
+ if(*(peanokey *) a > *(peanokey *) b)
+ return +1;
+
+ return 0;
+}
diff --git a/clusters/user/GEAR/src/domain.c~ b/clusters/user/GEAR/src/domain.c~
new file mode 100644
index 0000000..ff54a09
--- /dev/null
+++ b/clusters/user/GEAR/src/domain.c~
@@ -0,0 +1,1817 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+
+/*! \file domain.c
+ * \brief code for domain decomposition
+ *
+ * This file contains the code for the domain decomposition of the
+ * simulation volume. The domains are constructed from disjoint subsets
+ * of the leaves of a fiducial top-level tree that covers the full
+ * simulation volume. Domain boundaries hence run along tree-node
+ * divisions of a fiducial global BH tree. As a result of this method, the
+ * tree force are in principle strictly independent of the way the domains
+ * are cut. The domain decomposition can be carried out for an arbitrary
+ * number of CPUs. Individual domains are not cubical, but spatially
+ * coherent since the leaves are traversed in a Peano-Hilbert order and
+ * individual domains form segments along this order. This also ensures
+ * that each domain has a small surface to volume ratio, which minimizes
+ * communication.
+ */
+
+#define TOPNODEFACTOR 20.0
+
+#define REDUC_FAC 0.98
+
+
+/*! toGo[task*NTask + partner] gives the number of particles in task 'task'
+ * that have to go to task 'partner'
+ */
+static int *toGo, *toGoSph;
+static int *local_toGo, *local_toGoSph;
+static int *list_NumPart;
+static int *list_N_gas;
+static int *list_load;
+static int *list_loadsph;
+static double *list_work;
+
+#ifdef STELLAR_PROP
+static int *toGoSt;
+static int *local_toGoSt;
+static int *list_N_stars;
+#endif
+
+static long long maxload, maxloadsph;
+
+static struct topnode_exchange
+{
+ peanokey Startkey;
+ int Count;
+}
+ *toplist, *toplist_local;
+
+
+
+/*! This is the main routine for the domain decomposition. It acts as a
+ * driver routine that allocates various temporary buffers, maps the
+ * particles back onto the periodic box if needed, and then does the
+ * domain decomposition, and a final Peano-Hilbert order of all particles
+ * as a tuning measure.
+ */
+void domain_Decomposition(void)
+{
+ double t0, t1;
+ int i;
+
+#ifdef PMGRID
+ if(All.PM_Ti_endstep == All.Ti_Current)
+ {
+ All.NumForcesSinceLastDomainDecomp = 1 + All.TotNumPart * All.TreeDomainUpdateFrequency;
+ /* to make sure that we do a domain decomposition before the PM-force is evaluated.
+ this is needed to make sure that the particles are wrapped into the box */
+ }
+#endif
+
+ /* Check whether it is really time for a new domain decomposition */
+ if(All.NumForcesSinceLastDomainDecomp > All.TotNumPart * All.TreeDomainUpdateFrequency)
+ {
+ t0 = second();
+
+#ifdef PERIODIC
+ do_box_wrapping(); /* map the particles back onto the box */
+#endif
+ All.NumForcesSinceLastDomainDecomp = 0;
+
+
+#ifdef SFR
+ rearrange_particle_sequence();
+#endif
+
+
+ TreeReconstructFlag = 1; /* ensures that new tree will be constructed */
+
+ if(ThisTask == 0)
+ {
+ printf("start domain decomposition... \n");
+ fflush(stdout);
+ }
+
+ Key = malloc(sizeof(peanokey) * All.MaxPart);
+ KeySorted = malloc(sizeof(peanokey) * All.MaxPart);
+
+ toGo = malloc(sizeof(int) * NTask * NTask);
+ toGoSph = malloc(sizeof(int) * NTask * NTask);
+ local_toGo = malloc(sizeof(int) * NTask);
+ local_toGoSph = malloc(sizeof(int) * NTask);
+ list_NumPart = malloc(sizeof(int) * NTask);
+ list_N_gas = malloc(sizeof(int) * NTask);
+ list_load = malloc(sizeof(int) * NTask);
+ list_loadsph = malloc(sizeof(int) * NTask);
+ list_work = malloc(sizeof(double) * NTask);
+
+ MPI_Allgather(&NumPart, 1, MPI_INT, list_NumPart, 1, MPI_INT, MPI_COMM_WORLD);
+ MPI_Allgather(&N_gas, 1, MPI_INT, list_N_gas, 1, MPI_INT, MPI_COMM_WORLD);
+
+#ifdef STELLAR_PROP
+ toGoSt = malloc(sizeof(int) * NTask * NTask);
+ local_toGoSt = malloc(sizeof(int) * NTask);
+ list_N_stars = malloc(sizeof(int) * NTask);
+ MPI_Allgather(&N_stars, 1, MPI_INT, list_N_stars, 1, MPI_INT, MPI_COMM_WORLD);
+#endif
+
+ maxload = All.MaxPart * REDUC_FAC;
+ maxloadsph = All.MaxPartSph * REDUC_FAC;
+
+
+
+
+
+#ifdef CHECK_ID_CORRESPONDENCE
+ if (ThisTask==0)
+ printf("Check id correspondence before decomposition...\n");
+
+ rearrange_particle_sequence();
+
+ for(i = N_gas; i < N_gas+N_stars; i++)
+ {
+ if( StP[P[i].StPIdx].PIdx != i )
+ {
+ printf("\nP/StP correspondance error\n");
+ printf("(%d) (in domain before) N_stars=%d N_gas=%d i=%d id=%d P[i].StPIdx=%d StP[P[i].StPIdx].PIdx=%d\n\n",ThisTask,N_stars,N_gas,i,P[i].ID,P[i].StPIdx,StP[P[i].StPIdx].PIdx);
+ endrun(888001);
+ }
+
+
+ if(StP[P[i].StPIdx].ID != P[i].ID)
+ {
+ printf("\nP/StP correspondance error\n");
+ printf("(%d) (in domain before) N_gas=%d N_stars=%d i=%d Type=%d P.Id=%d P[i].StPIdx=%d StP[P[i].StPIdx].ID=%d \n\n",ThisTask,N_gas,N_stars,i,P[i].Type,P[i].ID, P[i].StPIdx, StP[P[i].StPIdx].ID);
+ endrun(888002);
+ }
+ }
+ if (ThisTask==0)
+ printf("Check id correspondence before decomposition done...\n");
+#endif
+
+
+
+ domain_decompose();
+
+ free(list_work);
+ free(list_loadsph);
+ free(list_load);
+ free(list_N_gas);
+ free(list_NumPart);
+ free(local_toGoSph);
+ free(local_toGo);
+ free(toGoSph);
+ free(toGo);
+
+#ifdef STELLAR_PROP
+ free(list_N_stars);
+ free(local_toGoSt);
+ free(toGoSt);
+#endif
+
+#ifdef CHECK_BLOCK_ORDER
+ int typenow;
+ typenow = 0;
+ for(i = 0; i < NumPart; i++)
+ {
+
+ if ((P[i].Type<typenow)&&(typenow<=ST))
+ {
+ printf("\nBlock order error\n");
+ printf("(%d) i=%d Type=%d typenow=%d\n\n",ThisTask,i,P[i].Type,typenow);
+ endrun(888003);
+ }
+
+ typenow = P[i].Type;
+ }
+#endif
+
+#ifdef CHECK_ID_CORRESPONDENCE
+ if (ThisTask==0)
+ printf("Check id correspondence after decomposition...\n");
+
+ rearrange_particle_sequence();
+
+ for(i = N_gas; i < N_gas+N_stars; i++)
+ {
+ if( StP[P[i].StPIdx].PIdx != i )
+ {
+ printf("\nP/StP correspondance error\n");
+ printf("(%d) (in domain after) N_stars=%d N_gas=%d i=%d id=%d P[i].StPIdx=%d StP[P[i].StPIdx].PIdx=%d\n\n",ThisTask,N_stars,N_gas,i,P[i].ID,P[i].StPIdx,StP[P[i].StPIdx].PIdx);
+ endrun(888004);
+ }
+
+
+ if(StP[P[i].StPIdx].ID != P[i].ID)
+ {
+ printf("\nP/StP correspondance error\n");
+ printf("(%d) (in domain after) N_gas=%d N_stars=%d i=%d Type=%d P.Id=%d P[i].StPIdx=%d StP[P[i].StPIdx].ID=%d \n\n",ThisTask,N_gas,N_stars,i,P[i].Type,P[i].ID, P[i].StPIdx, StP[P[i].StPIdx].ID);
+ endrun(888005);
+ }
+ }
+ if (ThisTask==0)
+ printf("Check id correspondence after decomposition done...\n");
+#endif
+
+
+
+
+
+
+ if(ThisTask == 0)
+ {
+ printf("domain decomposition done. \n");
+ fflush(stdout);
+ }
+
+ t1 = second();
+ All.CPU_Domain += timediff(t0, t1);
+
+#ifdef PEANOHILBERT
+ t0 = second();
+ peano_hilbert_order();
+ t1 = second();
+ All.CPU_Peano += timediff(t0, t1);
+#endif
+
+ free(KeySorted);
+ free(Key);
+ }
+
+}
+
+
+
+/*! This function carries out the actual domain decomposition for all
+ * particle types. It will try to balance the work-load for each domain,
+ * as estimated based on the P[i]-GravCost values. The decomposition will
+ * respect the maximum allowed memory-imbalance given by the value of
+ * PartAllocFactor.
+ */
+void domain_decompose(void)
+{
+ int i, j, status;
+ int ngrp, task, partner, sendcount, recvcount;
+ long long sumtogo, sumload;
+ int maxload, *temp;
+ double sumwork, maxwork;
+
+#ifdef DETAILED_CPU_DOMAIN
+ double t0, t1;
+#endif
+
+ for(i = 0; i < 6; i++)
+ NtypeLocal[i] = 0;
+
+ for(i = 0; i < NumPart; i++)
+ NtypeLocal[P[i].Type]++;
+
+ /* because Ntype[] is of type `long long', we cannot do a simple
+ * MPI_Allreduce() to sum the total particle numbers
+ */
+ temp = malloc(NTask * 6 * sizeof(int));
+ MPI_Allgather(NtypeLocal, 6, MPI_INT, temp, 6, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0; i < 6; i++)
+ {
+ Ntype[i] = 0;
+ for(j = 0; j < NTask; j++)
+ Ntype[i] += temp[j * 6 + i];
+ }
+ free(temp);
+
+#ifndef UNEQUALSOFTENINGS
+ for(i = 0; i < 6; i++)
+ if(Ntype[i] > 0)
+ break;
+
+ for(ngrp = i + 1; ngrp < 6; ngrp++)
+ {
+ if(Ntype[ngrp] > 0)
+ if(All.SofteningTable[ngrp] != All.SofteningTable[i])
+ {
+ if(ThisTask == 0)
+ {
+ fprintf(stdout, "Code was not compiled with UNEQUALSOFTENINGS, but some of the\n");
+ fprintf(stdout, "softening lengths are unequal nevertheless.\n");
+ fprintf(stdout, "This is not allowed.\n");
+ }
+ endrun(0);
+ }
+ }
+#endif
+
+
+ /* determine global dimensions of domain grid */
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+ domain_findExtent();
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_findExtend += timediff(t0, t1);
+#endif
+
+
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+ domain_determineTopTree();
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_determineTopTree += timediff(t0, t1);
+#endif
+
+
+ /* determine cost distribution in domain grid */
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+ domain_sumCost();
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_sumCost += timediff(t0, t1);
+#endif
+
+
+ /* find the split of the domain grid recursively */
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+#ifdef SPLIT_DOMAIN_USING_TIME
+ status = domain_findSplityr(0, NTask, 0, NTopleaves - 1);
+#else
+ status = domain_findSplit(0, NTask, 0, NTopleaves - 1);
+#endif
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_findSplit += timediff(t0, t1);
+#endif
+
+ if(status != 0)
+ {
+ if(ThisTask == 0)
+ printf("\nNo domain decomposition that stays within memory bounds is possible (status=%d).\n",status);
+ endrun(0);
+ }
+
+ /* now try to improve the work-load balance of the split */
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+#ifdef SPLIT_DOMAIN_USING_TIME
+ domain_shiftSplityr();
+#else
+ domain_shiftSplit();
+#endif
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_shiftSplit += timediff(t0, t1);
+#endif
+
+
+ DomainMyStart = DomainStartList[ThisTask];
+ DomainMyLast = DomainEndList[ThisTask];
+
+ if(ThisTask == 0)
+ {
+ sumload = maxload = 0;
+ sumwork = maxwork = 0;
+ for(i = 0; i < NTask; i++)
+ {
+ sumload += list_load[i];
+ sumwork += list_work[i];
+
+ if(list_load[i] > maxload)
+ maxload = list_load[i];
+
+ if(list_work[i] > maxwork)
+ maxwork = list_work[i];
+ }
+
+ printf("work-load balance=%g memory-balance=%g\n",
+ maxwork / (sumwork / NTask), maxload / (((double) sumload) / NTask));
+ }
+
+
+ /* determine for each cpu how many particles have to be shifted to other cpus */
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+ domain_countToGo();
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_countToGo += timediff(t0, t1);
+#endif
+
+
+#ifdef DETAILED_CPU_DOMAIN
+ t0 = second();
+#endif
+
+ for(i = 0, sumtogo = 0; i < NTask * NTask; i++)
+ sumtogo += toGo[i];
+
+ while(sumtogo > 0)
+ {
+ if(ThisTask == 0)
+ {
+ printf("exchange of %d%09d particles\n", (int) (sumtogo / 1000000000),
+ (int) (sumtogo % 1000000000));
+ fflush(stdout);
+ }
+
+ for(ngrp = 1; ngrp < (1 << PTask); ngrp++)
+ {
+ for(task = 0; task < NTask; task++)
+ {
+ partner = task ^ ngrp;
+
+ if(partner < NTask && task < partner)
+ {
+
+
+
+ /* treat SPH separately */
+ if(All.TotN_gas > 0)
+ {
+ domain_findExchangeNumbers(task, partner, 0, &sendcount, &recvcount);
+
+ list_NumPart[task] += recvcount - sendcount;
+ list_NumPart[partner] -= recvcount - sendcount;
+ list_N_gas[task] += recvcount - sendcount;
+ list_N_gas[partner] -= recvcount - sendcount;
+
+ toGo[task * NTask + partner] -= sendcount;
+ toGo[partner * NTask + task] -= recvcount;
+ toGoSph[task * NTask + partner] -= sendcount;
+ toGoSph[partner * NTask + task] -= recvcount;
+
+ //if (sendcount>0)
+ // printf("(%d) gas --> %d (%d)\n",ThisTask,sendcount,N_gas);
+ //if (recvcount>0)
+ // printf("(%d) gas <-- %d (%d)\n",ThisTask,recvcount,N_gas);
+
+ //printf("(%d) N_gas=%d P[N_gas].ID=%d %d (%d %d)\n",ThisTask,N_gas,P[N_gas].ID,P[N_gas].Type,sendcount,recvcount);
+
+ if(task == ThisTask) /* actually carry out the exchange */
+ domain_exchangeParticles(partner, 0, sendcount, recvcount);
+ if(partner == ThisTask)
+ domain_exchangeParticles(task, 0, recvcount, sendcount);
+
+
+ //if (sendcount>0)
+ // printf("(%d) (after) gas --> %d (%d)\n",ThisTask,sendcount,N_gas);
+ //if (recvcount>0)
+ // printf("(%d) (after) gas <-- %d (%d)\n",ThisTask,recvcount,N_gas);
+
+ //printf("(%d) (after) N_gas=%d P[N_gas].ID=%d %d (%d %d)\n",ThisTask,N_gas,P[N_gas].ID,P[N_gas].Type,sendcount,recvcount);
+
+
+ }
+
+
+
+#ifdef STELLAR_PROP
+ /* treat STARS separately */
+ if(All.TotN_stars > 0)
+ {
+ domain_findExchangeNumbers(task, partner, 1, &sendcount, &recvcount);
+
+ list_NumPart[task] += recvcount - sendcount;
+ list_NumPart[partner] -= recvcount - sendcount;
+ list_N_stars[task] += recvcount - sendcount;
+ list_N_stars[partner] -= recvcount - sendcount;
+
+ toGo[task * NTask + partner] -= sendcount;
+ toGo[partner * NTask + task] -= recvcount;
+ toGoSt[task * NTask + partner] -= sendcount;
+ toGoSt[partner * NTask + task] -= recvcount;
+
+ //if (sendcount>0)
+ // printf("(%d) stars --> %d (%d)\n",ThisTask,sendcount,N_stars);
+ //if (recvcount>0)
+ // printf("(%d) stars <-- %d (%d)\n",ThisTask,recvcount,N_stars);
+
+ if(task == ThisTask) /* actually carry out the exchange */
+ domain_exchangeParticles(partner, 1, sendcount, recvcount);
+ if(partner == ThisTask)
+ domain_exchangeParticles(task, 1, recvcount, sendcount);
+
+ //if (sendcount>0)
+ // printf("(%d) stars --> %d (%d)\n",ThisTask,sendcount,N_stars);
+ //if (recvcount>0)
+ // printf("(%d) stars <-- %d (%d)\n",ThisTask,recvcount,N_stars);
+
+ }
+#endif
+
+
+
+
+ domain_findExchangeNumbers(task, partner, -1, &sendcount, &recvcount);
+
+ list_NumPart[task] += recvcount - sendcount;
+ list_NumPart[partner] -= recvcount - sendcount;
+
+ toGo[task * NTask + partner] -= sendcount;
+ toGo[partner * NTask + task] -= recvcount;
+
+ if(task == ThisTask) /* actually carry out the exchange */
+ domain_exchangeParticles(partner, -1, sendcount, recvcount);
+ if(partner == ThisTask)
+ domain_exchangeParticles(task, -1, recvcount, sendcount);
+ }
+ }
+ }
+
+ for(i = 0, sumtogo = 0; i < NTask * NTask; i++)
+ sumtogo += toGo[i];
+ }
+#ifdef SFR
+#ifndef STELLAR_PROP
+ /* count the new N_stars : in case STELLAR_PROP is on,
+ N_stars is already updated during the domain decomposition */
+
+ int nstars;
+
+ for(i = N_gas, nstars = 0; i < NumPart; i++)
+ {
+ if (P[i].Type==ST)
+ nstars++;
+ }
+
+ N_stars = nstars;
+
+#endif
+#endif
+
+
+#ifdef DETAILED_CPU_DOMAIN
+ t1 = second();
+ All.CPU_Domain_exchange += timediff(t0, t1);
+#endif
+
+
+}
+
+/*! This function tries to find a split point in a range of cells in the
+ * domain-grid. The range of cells starts at 'first', and ends at 'last'
+ * (inclusively). The number of cpus that holds the range is 'ncpu', with
+ * the first cpu given by 'cpustart'. If more than 2 cpus are to be split,
+ * the function calls itself recursively. The division tries to achieve a
+ * best particle-load balance under the constraint that 'maxload' and
+ * 'maxloadsph' may not be exceeded, and that each cpu holds at least one
+ * cell from the domaingrid. If such a decomposition cannot be achieved, a
+ * non-zero error code is returned.
+ *
+ * After successful completion, DomainMyStart[] and DomainMyLast[] contain
+ * the first and last cell of the domaingrid assigned to the local task
+ * for the given type. Also, DomainTask[] contains for each cell the task
+ * it was assigned to.
+ */
+int domain_findSplit(int cpustart, int ncpu, int first, int last)
+{
+ int i, split, ok_left, ok_right;
+ long long load, sphload, load_leftOfSplit, sphload_leftOfSplit;
+ int ncpu_leftOfSplit;
+ double maxAvgLoad_CurrentSplit, maxAvgLoad_NewSplit;
+
+
+ ncpu_leftOfSplit = ncpu / 2;
+
+ for(i = first, load = 0, sphload = 0; i <= last; i++)
+ {
+ load += DomainCount[i];
+ sphload += DomainCountSph[i];
+ }
+
+ split = first + ncpu_leftOfSplit;
+
+ for(i = first, load_leftOfSplit = sphload_leftOfSplit = 0; i < split; i++)
+ {
+ load_leftOfSplit += DomainCount[i];
+ sphload_leftOfSplit += DomainCountSph[i];
+ }
+
+ /* find the best split point in terms of work-load balance */
+
+ while(split < last - (ncpu - ncpu_leftOfSplit - 1) && split > 0)
+ {
+ maxAvgLoad_CurrentSplit =
+ dmax(load_leftOfSplit / ncpu_leftOfSplit, (load - load_leftOfSplit) / (ncpu - ncpu_leftOfSplit));
+
+ maxAvgLoad_NewSplit =
+ dmax((load_leftOfSplit + DomainCount[split]) / ncpu_leftOfSplit,
+ (load - load_leftOfSplit - DomainCount[split]) / (ncpu - ncpu_leftOfSplit));
+
+ if(maxAvgLoad_NewSplit <= maxAvgLoad_CurrentSplit)
+ {
+ load_leftOfSplit += DomainCount[split];
+ sphload_leftOfSplit += DomainCountSph[split];
+ split++;
+ }
+ else
+ break;
+ }
+
+
+ /* we will now have to check whether this solution is possible given the restrictions on the maximum load */
+
+ for(i = first, load_leftOfSplit = 0, sphload_leftOfSplit = 0; i < split; i++)
+ {
+ load_leftOfSplit += DomainCount[i];
+ sphload_leftOfSplit += DomainCountSph[i];
+ }
+
+ if(load_leftOfSplit > maxload * ncpu_leftOfSplit ||
+ (load - load_leftOfSplit) > maxload * (ncpu - ncpu_leftOfSplit))
+ {
+ /* we did not find a viable split */
+ printf("(%d) error -1 ",ThisTask);
+ return -1;
+ }
+
+ if(sphload_leftOfSplit > maxloadsph * ncpu_leftOfSplit ||
+ (sphload - sphload_leftOfSplit) > maxloadsph * (ncpu - ncpu_leftOfSplit))
+ {
+ /* we did not find a viable split */
+ printf("(%d) error -2 ",ThisTask);
+ return -2;
+ }
+
+
+
+
+ if(ncpu_leftOfSplit >= 2)
+ ok_left = domain_findSplit(cpustart, ncpu_leftOfSplit, first, split - 1);
+ else
+ ok_left = 0;
+
+ if((ncpu - ncpu_leftOfSplit) >= 2)
+ ok_right = domain_findSplit(cpustart + ncpu_leftOfSplit, ncpu - ncpu_leftOfSplit, split, last);
+ else
+ ok_right = 0;
+
+
+
+ if(ok_left == 0 && ok_right == 0)
+ {
+ /* found a viable split */
+
+ if(ncpu_leftOfSplit == 1)
+ {
+ for(i = first; i < split; i++)
+ DomainTask[i] = cpustart;
+
+ list_load[cpustart] = load_leftOfSplit;
+ list_loadsph[cpustart] = sphload_leftOfSplit;
+ DomainStartList[cpustart] = first;
+ DomainEndList[cpustart] = split - 1;
+ }
+
+ if((ncpu - ncpu_leftOfSplit) == 1)
+ {
+ for(i = split; i <= last; i++)
+ DomainTask[i] = cpustart + ncpu_leftOfSplit;
+
+ list_load[cpustart + ncpu_leftOfSplit] = load - load_leftOfSplit;
+ list_loadsph[cpustart + ncpu_leftOfSplit] = sphload - sphload_leftOfSplit;
+ DomainStartList[cpustart + ncpu_leftOfSplit] = split;
+ DomainEndList[cpustart + ncpu_leftOfSplit] = last;
+ }
+
+ return 0;
+ }
+
+ /* we did not find a viable split */
+ return -3;
+}
+
+
+#ifdef SPLIT_DOMAIN_USING_TIME
+/*! This function tries to find a split point in a range of cells
+ */
+int domain_findSplityr(int cpustart, int ncpu, int first, int last)
+{
+ int i, split, ok_left, ok_right;
+ long long load, sphload, load_leftOfSplit, sphload_leftOfSplit;
+ int ncpu_leftOfSplit;
+ double maxAvgLoad_CurrentSplit, maxAvgLoad_NewSplit;
+
+
+
+
+
+ /************************************/
+ /* find the number of part per proc */
+ /************************************/
+
+
+ double sumCPU_Gravity,meanCPU_Gravity;
+ double imb;
+ double ImbFactor;
+ int NumPartDiff,sumNumPartDiff,DesiredNumPart;
+ int *list_DesiredNumPart;
+
+ MPI_Allreduce(&CPU_Gravity, &sumCPU_Gravity, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ meanCPU_Gravity = sumCPU_Gravity/NTask;
+
+ if (sumCPU_Gravity>0)
+ {
+ imb = CPU_Gravity/meanCPU_Gravity;
+ NumPartDiff = (int) ((meanCPU_Gravity-CPU_Gravity)/meanCPU_Gravity * All.TotNumPart/NTask * 0.5);
+ ImbFactor=0;
+ }
+ else
+ {
+ imb = 0;
+ ImbFactor=0;
+ NumPartDiff=0;
+ }
+
+
+ //NumPartDiff = (int)NumPart*ImbFactor;
+ MPI_Reduce(&NumPartDiff, &sumNumPartDiff, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
+
+ if (ThisTask==0)
+ {
+ NumPartDiff-= sumNumPartDiff;
+ }
+
+ /* check */
+ MPI_Reduce(&NumPartDiff, &sumNumPartDiff, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
+ if (ThisTask==0)
+ if (sumNumPartDiff != 0)
+ {
+ printf("we are in trouble here...\n");
+ endrun(89897676);
+ }
+
+ DesiredNumPart = NumPart + NumPartDiff;
+
+
+ /* create a list */
+ list_DesiredNumPart= malloc(sizeof(double) * NTask);
+ MPI_Allgather(&DesiredNumPart, 1, MPI_INT, list_DesiredNumPart, 1, MPI_INT, MPI_COMM_WORLD);
+
+
+
+ printf("(%04d) Step=%04d Imbalance : %12g %12g %12g %12g %12d %12d %12d\n",ThisTask,All.NumCurrentTiStep,CPU_Gravity,sumCPU_Gravity/NTask, imb ,ImbFactor,NumPart,NumPartDiff,DesiredNumPart);
+
+ /************************************/
+ /* find the splits */
+ /************************************/
+
+
+ int task;
+ int domain;
+
+ /* loop over all top leaves */
+ for(task = 0, domain = 0; task < NTask-1; task++)
+ {
+
+
+ DomainStartList[task] = domain;
+
+ list_load[task] =0;
+ list_loadsph[task]=0;
+
+
+ while( (list_load[task]+DomainCount[domain] < list_DesiredNumPart[task]) || ((list_load[task]+DomainCount[domain] - list_DesiredNumPart[task]) < (list_DesiredNumPart[task]-list_load[task])) )
+ {
+
+ /* add the domain to the task */
+ list_load[task] += DomainCount[domain];
+ list_loadsph[task]+= DomainCountSph[domain];
+
+ DomainTask[domain] = task;
+ DomainEndList[task] = domain;
+
+ /* move to next domain */
+ domain++;
+ if (domain==NTopleaves)
+ {
+
+ printf("not enought domains...\n");
+ endrun(77665566);
+ }
+
+
+ }
+
+ }
+
+
+ /* now, do the last task */
+ task = NTask-1;
+
+ DomainStartList[task] = domain;
+
+ list_load[task] =0;
+ list_loadsph[task]=0;
+
+ for(domain = domain; domain < NTopleaves; domain++)
+ {
+ list_load[task] += DomainCount[domain];
+ list_loadsph[task]+= DomainCountSph[domain];
+
+ DomainTask[domain] = task;
+ DomainEndList[task] = domain;
+ }
+
+
+
+
+
+ free(list_DesiredNumPart);
+
+
+ return 0;
+}
+#endif
+
+
+/*! This function tries to improve the domain decomposition found by
+ * domain_findSplit() with respect to work-load balance. To this end, the
+ * boundaries in the existing domain-split solution (which was found by
+ * trying to balance the particle load) are shifted as long as this leads
+ * to better work-load while still remaining within the allowed
+ * memory-imbalance constraints.
+ */
+void domain_shiftSplit(void)
+{
+ int i, task, iter = 0, moved;
+ double maxw, newmaxw;
+
+ for(task = 0; task < NTask; task++)
+ list_work[task] = 0;
+
+ for(i = 0; i < NTopleaves; i++)
+ list_work[DomainTask[i]] += DomainWork[i];
+
+ if (ThisTask==0)
+ {
+ fprintf(FdLog,"1 %12g ",All.Time);
+ for(task = 0; task < NTask; task++)
+ fprintf(FdLog,"%12g ",list_work[task]);
+ fprintf(FdLog,"\n");
+ fflush(FdLog);
+ }
+
+
+ do
+ {
+ for(task = 0, moved = 0; task < NTask - 1; task++)
+ {
+ maxw = dmax(list_work[task], list_work[task + 1]);
+
+ if(list_work[task] < list_work[task + 1])
+ {
+ newmaxw = dmax(list_work[task] + DomainWork[DomainStartList[task + 1]],
+ list_work[task + 1] - DomainWork[DomainStartList[task + 1]]);
+ if(newmaxw <= maxw)
+ {
+ if(list_load[task] + DomainCount[DomainStartList[task + 1]] <= maxload)
+ {
+ if(list_loadsph[task] + DomainCountSph[DomainStartList[task + 1]] > maxloadsph)
+ continue;
+
+ /* ok, we can move one domain cell from right to left */
+ list_work[task] += DomainWork[DomainStartList[task + 1]];
+ list_load[task] += DomainCount[DomainStartList[task + 1]];
+ list_loadsph[task] += DomainCountSph[DomainStartList[task + 1]];
+ list_work[task + 1] -= DomainWork[DomainStartList[task + 1]];
+ list_load[task + 1] -= DomainCount[DomainStartList[task + 1]];
+ list_loadsph[task + 1] -= DomainCountSph[DomainStartList[task + 1]];
+
+ DomainTask[DomainStartList[task + 1]] = task;
+ DomainStartList[task + 1] += 1;
+ DomainEndList[task] += 1;
+
+ moved++;
+ }
+ }
+ }
+ else
+ {
+ newmaxw = dmax(list_work[task] - DomainWork[DomainEndList[task]],
+ list_work[task + 1] + DomainWork[DomainEndList[task]]);
+ if(newmaxw <= maxw)
+ {
+ if(list_load[task + 1] + DomainCount[DomainEndList[task]] <= maxload)
+ {
+ if(list_loadsph[task + 1] + DomainCountSph[DomainEndList[task]] > maxloadsph)
+ continue;
+
+ /* ok, we can move one domain cell from left to right */
+ list_work[task] -= DomainWork[DomainEndList[task]];
+ list_load[task] -= DomainCount[DomainEndList[task]];
+ list_loadsph[task] -= DomainCountSph[DomainEndList[task]];
+ list_work[task + 1] += DomainWork[DomainEndList[task]];
+ list_load[task + 1] += DomainCount[DomainEndList[task]];
+ list_loadsph[task + 1] += DomainCountSph[DomainEndList[task]];
+
+ DomainTask[DomainEndList[task]] = task + 1;
+ DomainEndList[task] -= 1;
+ DomainStartList[task + 1] -= 1;
+
+ moved++;
+ }
+ }
+
+ }
+ }
+
+ iter++;
+ }
+ while(moved > 0 && iter < 10 * NTopleaves);
+
+
+
+ if (ThisTask==0)
+ {
+ fprintf(FdLog,"2 %12g ",All.Time);
+ for(task = 0; task < NTask; task++)
+ fprintf(FdLog,"%12g ",list_work[task]);
+ fprintf(FdLog,"\n");
+ fflush(FdLog);
+ }
+
+
+
+
+
+}
+
+
+#ifdef SPLIT_DOMAIN_USING_TIME
+/*! This function tries to improve the domain decomposition found by
+ * domain_findSplit() with respect to work-load balance. To this end, the
+ * boundaries in the existing domain-split solution (which was found by
+ * trying to balance the particle load) are shifted as long as this leads
+ * to better work-load while still remaining within the allowed
+ * memory-imbalance constraints.
+ */
+void domain_shiftSplityr(void)
+{
+
+}
+#endif
+
+
+/*! This function counts how many particles have to be exchanged between
+ * two CPUs according to the domain split. If the CPUs are already quite
+ * full and hold data from other CPUs as well, not all the particles may
+ * be exchanged at once. In this case the communication phase has to be
+ * repeated, until enough of the third-party particles have been moved
+ * away such that the decomposition can be completed.
+ */
+void domain_findExchangeNumbers(int task, int partner, int sphflag, int *send, int *recv)
+{
+ int numpartA, numpartsphA, ntobesentA, maxsendA, maxsendA_old;
+ int numpartB, numpartsphB, ntobesentB, maxsendB, maxsendB_old;
+#ifdef STELLAR_PROP
+ int numpartstA;
+ int numpartstB;
+#endif
+
+
+ numpartA = list_NumPart[task];
+ numpartsphA = list_N_gas[task];
+#ifdef STELLAR_PROP
+ numpartstA = list_N_stars[task];
+#endif
+
+ numpartB = list_NumPart[partner];
+ numpartsphB = list_N_gas[partner];
+#ifdef STELLAR_PROP
+ numpartstB = list_N_stars[partner];
+#endif
+
+ switch (sphflag)
+ {
+ case 0:
+ ntobesentA = toGoSph[task * NTask + partner];
+ ntobesentB = toGoSph[partner * NTask + task];
+ break;
+#ifdef STELLAR_PROP
+ case 1:
+ ntobesentA = toGoSt[task * NTask + partner];
+ ntobesentB = toGoSt[partner * NTask + task];
+ break;
+#endif
+ default:
+#ifdef STELLAR_PROP
+ ntobesentA = toGo[task * NTask + partner] - toGoSph[task * NTask + partner] - toGoSt[task * NTask + partner];
+ ntobesentB = toGo[partner * NTask + task] - toGoSph[partner * NTask + task] - toGoSt[partner * NTask + task];
+#else
+ ntobesentA = toGo[task * NTask + partner] - toGoSph[task * NTask + partner];
+ ntobesentB = toGo[partner * NTask + task] - toGoSph[partner * NTask + task];
+#endif
+ break;
+ }
+
+
+ maxsendA = imin(ntobesentA, All.BunchSizeDomain);
+ maxsendB = imin(ntobesentB, All.BunchSizeDomain);
+
+ do
+ {
+ maxsendA_old = maxsendA;
+ maxsendB_old = maxsendB;
+
+ maxsendA = imin(All.MaxPart - numpartB + maxsendB, maxsendA);
+ maxsendB = imin(All.MaxPart - numpartA + maxsendA, maxsendB);
+ }
+ while((maxsendA != maxsendA_old) || (maxsendB != maxsendB_old));
+
+
+ /* now make also sure that there is enough space for SPH particles */
+ switch (sphflag)
+ {
+ case 0:
+ do
+ {
+ maxsendA_old = maxsendA;
+ maxsendB_old = maxsendB;
+
+ maxsendA = imin(All.MaxPartSph - numpartsphB + maxsendB, maxsendA);
+ maxsendB = imin(All.MaxPartSph - numpartsphA + maxsendA, maxsendB);
+ }
+ while((maxsendA != maxsendA_old) || (maxsendB != maxsendB_old));
+ break;
+#ifdef STELLAR_PROP
+ case 1:
+ do
+ {
+ maxsendA_old = maxsendA;
+ maxsendB_old = maxsendB;
+
+ maxsendA = imin(All.MaxPartStars - numpartstB + maxsendB, maxsendA);
+ maxsendB = imin(All.MaxPartStars - numpartstA + maxsendA, maxsendB);
+ }
+ while((maxsendA != maxsendA_old) || (maxsendB != maxsendB_old));
+ break;
+#endif
+ default:
+ break;
+ }
+
+
+ *send = maxsendA;
+ *recv = maxsendB;
+}
+
+
+
+
+/*! This function exchanges particles between two CPUs according to the
+ * domain split. In doing this, the memory boundaries which may restrict
+ * the exhange process are observed.
+ */
+void domain_exchangeParticles(int partner, int sphflag, int send_count, int recv_count)
+{
+ int i, no, n, count, rep;
+ MPI_Status status;
+#ifdef STELLAR_PROP
+ int m;
+#endif
+
+ for(n = 0, count = 0; count < send_count && n < NumPart; n++)
+ {
+
+ switch (sphflag)
+ {
+ case 0:
+ if(P[n].Type != 0)
+ continue;
+ break;
+#ifdef STELLAR_PROP
+ case 1:
+ if(P[n].Type != 1)
+ continue;
+ break;
+#endif
+ default:
+#ifdef STELLAR_PROP
+ if((P[n].Type == 0)||(P[n].Type == 1))
+#else
+ if(P[n].Type == 0)
+#endif
+ continue;
+ break;
+ }
+
+ no = 0;
+
+ while(TopNodes[no].Daughter >= 0)
+ no = TopNodes[no].Daughter + (Key[n] - TopNodes[no].StartKey) / (TopNodes[no].Size / 8);
+
+ no = TopNodes[no].Leaf;
+
+ if(DomainTask[no] == partner)
+ {
+
+
+ switch (sphflag)
+ {
+ case 0: /* special reorder routine for SPH particles (need to stay at beginning) */
+#ifndef STELLAR_PROP
+ DomainPartBuf[count] = P[n]; /* copy particle and collect in contiguous memory */
+ DomainKeyBuf[count] = Key[n];
+ DomainSphBuf[count] = SphP[n];
+
+ P[n] = P[N_gas - 1];
+ P[N_gas - 1] = P[NumPart - 1];
+
+ Key[n] = Key[N_gas - 1];
+ Key[N_gas - 1] = Key[NumPart - 1];
+
+ SphP[n] = SphP[N_gas - 1];
+ N_gas--;
+ break;
+#else
+ DomainPartBuf[count] = P[n]; /* copy particle and collect in contiguous memory */
+ DomainKeyBuf[count] = Key[n];
+ DomainSphBuf[count] = SphP[n];
+
+ P[n] = P[N_gas - 1];
+ P[N_gas - 1] = P[N_gas+N_stars - 1];
+ P[N_gas+N_stars - 1] = P[NumPart - 1];
+
+ Key[n] = Key[N_gas - 1];
+ Key[N_gas - 1] = Key[N_gas+N_stars - 1];
+ Key[N_gas+N_stars - 1] = Key[NumPart - 1];
+
+ SphP[n] = SphP[N_gas - 1];
+
+ StP[P[N_gas - 1].StPIdx].PIdx = N_gas - 1;
+
+ N_gas--;
+ break;
+#endif
+#ifdef STELLAR_PROP
+ case 1:
+ DomainPartBuf[count] = P[n]; /* copy particle and collect in contiguous memory */
+ DomainKeyBuf[count] = Key[n];
+ DomainStBuf[count] = StP[P[n].StPIdx];
+
+ m = P[n].StPIdx;
+
+ //printf("(%d) sending P .... n=%d id=%d\n",ThisTask,n,P[n].ID);
+ //printf("(%d) replacing P using .... n=%d id=%d\n",ThisTask,N_gas+N_stars - 1,P[N_gas+N_stars - 1].ID);
+ //printf("(%d) sending Stp .... n=%d id=%d\n",ThisTask,m,StP[m].ID);
+ //printf("(%d) replacing StP using .... n=%d id=%d\n",ThisTask,N_stars - 1,StP[N_stars - 1].ID);
+
+
+ P[n] = P[N_gas+N_stars - 1];
+ StP[P[n].StPIdx].PIdx = n; /* create correct link */
+ P[N_gas+N_stars - 1] = P[NumPart - 1];
+
+
+ Key[n] = Key[N_gas+N_stars - 1];
+ Key[N_gas+N_stars - 1] = Key[NumPart - 1];
+
+
+ if (m!=(N_stars - 1))
+ {
+ StP[m] = StP[N_stars - 1]; /* replace by the last one -> avoid a hole in Stp */
+ P[StP[m].PIdx].StPIdx = m; /* create correct link */
+ }
+
+
+
+
+
+
+ N_stars--;
+ break;
+#endif
+ default:
+ DomainPartBuf[count] = P[n]; /* copy particle and collect in contiguous memory */
+ DomainKeyBuf[count] = Key[n];
+ P[n] = P[NumPart - 1];
+ Key[n] = Key[NumPart - 1];
+ break;
+ }
+
+
+ count++;
+ NumPart--;
+ n--;
+
+ }
+ }
+
+ if(count != send_count)
+ {
+ printf("Houston, we got a problem... (sphflag=%d)\n",sphflag);
+ printf("ThisTask=%d count=%d send_count=%d\n", ThisTask, count, send_count);
+ endrun(88);
+ }
+
+ /* transmit */
+
+ for(rep = 0; rep < 2; rep++)
+ {
+ if((rep == 0 && ThisTask < partner) || (rep == 1 && ThisTask > partner))
+ {
+ if(send_count > 0)
+ {
+ MPI_Ssend(&DomainPartBuf[0], send_count * sizeof(struct particle_data), MPI_BYTE, partner,
+ TAG_PDATA, MPI_COMM_WORLD);
+
+ MPI_Ssend(&DomainKeyBuf[0], send_count * sizeof(peanokey), MPI_BYTE, partner, TAG_KEY,
+ MPI_COMM_WORLD);
+
+ if(sphflag==0)
+ MPI_Ssend(&DomainSphBuf[0], send_count * sizeof(struct sph_particle_data), MPI_BYTE, partner,
+ TAG_SPHDATA, MPI_COMM_WORLD);
+
+#ifdef STELLAR_PROP
+ if(sphflag==ST)
+ MPI_Ssend(&DomainStBuf[0], send_count * sizeof(struct st_particle_data), MPI_BYTE, partner,
+ TAG_STDATA, MPI_COMM_WORLD);
+#endif
+
+ }
+ }
+
+ if((rep == 1 && ThisTask < partner) || (rep == 0 && ThisTask > partner))
+ {
+ if(recv_count > 0)
+ {
+ switch (sphflag)
+ {
+ case 0:
+#ifndef STELLAR_PROP
+
+ if((NumPart - N_gas) > recv_count)
+ {
+ for(i = 0; i < recv_count; i++)
+ {
+ P[NumPart + i] = P[N_gas + i];
+ Key[NumPart + i] = Key[N_gas + i];
+ }
+ }
+ else
+ {
+ for(i = NumPart - 1; i >= N_gas; i--)
+ {
+ P[i + recv_count] = P[i];
+ Key[i + recv_count] = Key[i];
+ }
+ }
+
+#else
+ /* A : move elts of last block */
+ if((NumPart - N_gas - N_stars) > recv_count)
+ {
+ for(i = 0; i < recv_count; i++)
+ {
+ P[NumPart + i] = P[N_gas + N_stars + i];
+ Key[NumPart + i] = Key[N_gas + N_stars + i];
+ }
+ }
+ else
+ {
+ for(i = NumPart - 1; i >= N_gas + N_stars; i--)
+ {
+ P[i + recv_count] = P[i];
+ Key[i + recv_count] = Key[i];
+ }
+ }
+
+
+ /* B : move stars */
+ if (N_stars > 0)
+ {
+ if((N_stars) > recv_count)
+ {
+ for(i = 0; i < recv_count; i++)
+ {
+ P[N_gas + N_stars + i] = P[N_gas + i];
+ Key[N_gas + N_stars + i] = Key[N_gas + i];
+ StP[P[N_gas + N_stars + i].StPIdx].PIdx = N_gas + N_stars + i;
+ }
+ }
+ else
+ {
+ for(i = N_gas + N_stars - 1; i >= N_gas; i--)
+ {
+ P[i + recv_count] = P[i];
+ Key[i + recv_count] = Key[i];
+ StP[P[i + recv_count].StPIdx].PIdx = i + recv_count;
+ }
+ }
+ }
+#endif
+ MPI_Recv(&P[N_gas], recv_count * sizeof(struct particle_data), MPI_BYTE, partner, TAG_PDATA,
+ MPI_COMM_WORLD, &status);
+ MPI_Recv(&Key[N_gas], recv_count * sizeof(peanokey), MPI_BYTE, partner, TAG_KEY,
+ MPI_COMM_WORLD, &status);
+ MPI_Recv(&SphP[N_gas], recv_count * sizeof(struct sph_particle_data), MPI_BYTE, partner,
+ TAG_SPHDATA, MPI_COMM_WORLD, &status);
+
+ N_gas += recv_count;
+ break;
+#ifdef STELLAR_PROP
+ case 1:
+ if((NumPart - N_gas - N_stars) > recv_count)
+ {
+ for(i = 0; i < recv_count; i++)
+ {
+ P[NumPart + i] = P[N_gas + N_stars + i];
+ Key[NumPart + i] = Key[N_gas + N_stars + i];
+ }
+ }
+ else
+ {
+ for(i = NumPart - 1; i >= N_gas + N_stars; i--)
+ {
+ P[i + recv_count] = P[i];
+ Key[i + recv_count] = Key[i];
+ }
+ }
+
+ MPI_Recv(&P[N_gas+N_stars], recv_count * sizeof(struct particle_data), MPI_BYTE, partner, TAG_PDATA,
+ MPI_COMM_WORLD, &status);
+ MPI_Recv(&Key[N_gas+N_stars], recv_count * sizeof(peanokey), MPI_BYTE, partner, TAG_KEY,
+ MPI_COMM_WORLD, &status);
+ MPI_Recv(&StP[N_stars], recv_count * sizeof(struct st_particle_data), MPI_BYTE, partner, TAG_STDATA,
+ MPI_COMM_WORLD, &status);
+
+ /* set right links */
+ for(i = 0; i < recv_count; i++)
+ {
+ P[N_gas + N_stars + i].StPIdx = N_stars + i;
+ StP[N_stars + i].PIdx = N_gas + N_stars + i;
+ }
+
+
+ N_stars += recv_count;
+ break;
+#endif
+ default:
+ MPI_Recv(&P[NumPart], recv_count * sizeof(struct particle_data), MPI_BYTE, partner,
+ TAG_PDATA, MPI_COMM_WORLD, &status);
+ MPI_Recv(&Key[NumPart], recv_count * sizeof(peanokey), MPI_BYTE, partner,
+ TAG_KEY, MPI_COMM_WORLD, &status);
+
+ break;
+ }
+
+
+ NumPart += recv_count;
+ }
+ }
+ }
+}
+
+/*! This function determines how many particles that are currently stored
+ * on the local CPU have to be moved off according to the domain
+ * decomposition.
+ */
+void domain_countToGo(void)
+{
+ int n, no;
+
+ for(n = 0; n < NTask; n++)
+ {
+ local_toGo[n] = 0;
+ local_toGoSph[n] = 0;
+#ifdef STELLAR_PROP
+ local_toGoSt[n] = 0;
+#endif
+ }
+
+ for(n = 0; n < NumPart; n++)
+ {
+ no = 0;
+
+ while(TopNodes[no].Daughter >= 0)
+ no = TopNodes[no].Daughter + (Key[n] - TopNodes[no].StartKey) / (TopNodes[no].Size / 8);
+
+ no = TopNodes[no].Leaf;
+
+ if(DomainTask[no] != ThisTask)
+ {
+ local_toGo[DomainTask[no]] += 1;
+ if(P[n].Type == 0)
+ local_toGoSph[DomainTask[no]] += 1;
+#ifdef STELLAR_PROP
+ if(P[n].Type == 1)
+ local_toGoSt[DomainTask[no]] += 1;
+#endif
+ }
+ }
+
+ MPI_Allgather(local_toGo, NTask, MPI_INT, toGo, NTask, MPI_INT, MPI_COMM_WORLD);
+ MPI_Allgather(local_toGoSph, NTask, MPI_INT, toGoSph, NTask, MPI_INT, MPI_COMM_WORLD);
+#ifdef STELLAR_PROP
+ MPI_Allgather(local_toGoSt, NTask, MPI_INT, toGoSt, NTask, MPI_INT, MPI_COMM_WORLD);
+#endif
+}
+
+
+/*! This function walks the global top tree in order to establish the
+ * number of leaves it has. These leaves are distributed to different
+ * processors.
+ */
+void domain_walktoptree(int no)
+{
+ int i;
+
+ if(TopNodes[no].Daughter == -1)
+ {
+ TopNodes[no].Leaf = NTopleaves;
+ NTopleaves++;
+ }
+ else
+ {
+ for(i = 0; i < 8; i++)
+ domain_walktoptree(TopNodes[no].Daughter + i);
+ }
+}
+
+/*! This routine bins the particles onto the domain-grid, i.e. it sums up the
+ * total number of particles and the total amount of work in each of the
+ * domain-cells. This information forms the basis for the actual decision on
+ * the adopted domain decomposition.
+ */
+void domain_sumCost(void)
+{
+ int i, n, no;
+ double *local_DomainWork;
+ int *local_DomainCount;
+ int *local_DomainCountSph;
+
+ local_DomainWork = malloc(NTopnodes * sizeof(double));
+ local_DomainCount = malloc(NTopnodes * sizeof(int));
+ local_DomainCountSph = malloc(NTopnodes * sizeof(int));
+
+
+
+ NTopleaves = 0;
+
+ domain_walktoptree(0);
+
+ for(i = 0; i < NTopleaves; i++)
+ {
+ local_DomainWork[i] = 0;
+ local_DomainCount[i] = 0;
+ local_DomainCountSph[i] = 0;
+ }
+
+ if(ThisTask == 0)
+ printf("NTopleaves= %d\n", NTopleaves);
+
+
+ for(n = 0; n < NumPart; n++)
+ {
+ no = 0;
+
+ while(TopNodes[no].Daughter >= 0)
+ no = TopNodes[no].Daughter + (Key[n] - TopNodes[no].StartKey) / (TopNodes[no].Size / 8);
+
+ no = TopNodes[no].Leaf;
+
+ if(P[n].Ti_endstep > P[n].Ti_begstep)
+ local_DomainWork[no] += (1.0 + P[n].GravCost) / (P[n].Ti_endstep - P[n].Ti_begstep);
+ else
+ local_DomainWork[no] += (1.0 + P[n].GravCost);
+
+ local_DomainCount[no] += 1;
+ if(P[n].Type == 0)
+ local_DomainCountSph[no] += 1;
+ }
+
+ MPI_Allreduce(local_DomainWork, DomainWork, NTopleaves, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(local_DomainCount, DomainCount, NTopleaves, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(local_DomainCountSph, DomainCountSph, NTopleaves, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+
+
+ free(local_DomainCountSph);
+ free(local_DomainCount);
+ free(local_DomainWork);
+}
+
+
+/*! This routine finds the extent of the global domain grid.
+ */
+void domain_findExtent(void)
+{
+ int i, j;
+ double len, xmin[3], xmax[3], xmin_glob[3], xmax_glob[3];
+
+ /* determine local extension */
+ for(j = 0; j < 3; j++)
+ {
+ xmin[j] = MAX_REAL_NUMBER;
+ xmax[j] = -MAX_REAL_NUMBER;
+ }
+
+ for(i = 0; i < NumPart; i++)
+ {
+ for(j = 0; j < 3; j++)
+ {
+ if(xmin[j] > P[i].Pos[j])
+ xmin[j] = P[i].Pos[j];
+
+ if(xmax[j] < P[i].Pos[j])
+ xmax[j] = P[i].Pos[j];
+ }
+ }
+
+ MPI_Allreduce(xmin, xmin_glob, 3, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD);
+ MPI_Allreduce(xmax, xmax_glob, 3, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD);
+
+ len = 0;
+ for(j = 0; j < 3; j++)
+ if(xmax_glob[j] - xmin_glob[j] > len)
+ len = xmax_glob[j] - xmin_glob[j];
+
+ len *= 1.001;
+
+#ifdef DOMAIN_AT_ORIGIN
+ for(j = 0; j < 3; j++)
+ {
+ DomainCenter[j] = 0.0;
+ DomainCorner[j] = - 0.5 * len;
+ }
+#else
+ for(j = 0; j < 3; j++)
+ {
+ DomainCenter[j] = 0.5 * (xmin_glob[j] + xmax_glob[j]);
+ DomainCorner[j] = 0.5 * (xmin_glob[j] + xmax_glob[j]) - 0.5 * len;
+ }
+#endif
+
+ DomainLen = len;
+ DomainFac = 1.0 / len * (((peanokey) 1) << (BITS_PER_DIMENSION));
+
+#ifdef OTHERINFO
+ if(ThisTask == 0)
+ {
+ printf("xmin_glob = %g %g %g\n",xmin_glob[0],xmin_glob[1],xmin_glob[2]);
+ printf("xmax_glob = %g %g %g\n",xmax_glob[0],xmax_glob[1],xmax_glob[2]);
+ printf("DomainCenter = %g %g %g\n",DomainCenter[0], DomainCenter[1], DomainCenter[2]);
+ printf("DomainCorner = %g %g %g\n",DomainCorner[0], DomainCorner[1], DomainCorner[2]);
+ printf("DomainLen = %g\n",DomainLen);
+ }
+#endif
+
+}
+
+
+/*! This function constructs the global top-level tree node that is used
+ * for the domain decomposition. This is done by considering the string of
+ * Peano-Hilbert keys for all particles, which is recursively chopped off
+ * in pieces of eight segments until each segment holds at most a certain
+ * number of particles.
+ */
+void domain_determineTopTree(void)
+{
+ int i, ntop_local, ntop;
+ int *ntopnodelist, *ntopoffset;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ KeySorted[i] = Key[i] = peano_hilbert_key((P[i].Pos[0] - DomainCorner[0]) * DomainFac,
+ (P[i].Pos[1] - DomainCorner[1]) * DomainFac,
+ (P[i].Pos[2] - DomainCorner[2]) * DomainFac,
+ BITS_PER_DIMENSION);
+ }
+
+ qsort(KeySorted, NumPart, sizeof(peanokey), domain_compare_key);
+
+ NTopnodes = 1;
+ TopNodes[0].Daughter = -1;
+ TopNodes[0].Size = PEANOCELLS;
+ TopNodes[0].StartKey = 0;
+ TopNodes[0].Count = NumPart;
+ TopNodes[0].Pstart = 0;
+
+ domain_topsplit_local(0, 0);
+
+ toplist_local = malloc(NTopnodes * sizeof(struct topnode_exchange));
+
+ for(i = 0, ntop_local = 0; i < NTopnodes; i++)
+ {
+ if(TopNodes[i].Daughter == -1) /* only use leaves */
+ {
+ toplist_local[ntop_local].Startkey = TopNodes[i].StartKey;
+ toplist_local[ntop_local].Count = TopNodes[i].Count;
+ ntop_local++;
+ }
+ }
+
+ ntopnodelist = malloc(sizeof(int) * NTask);
+ ntopoffset = malloc(sizeof(int) * NTask);
+
+ MPI_Allgather(&ntop_local, 1, MPI_INT, ntopnodelist, 1, MPI_INT, MPI_COMM_WORLD);
+
+ for(i = 0, ntop = 0, ntopoffset[0] = 0; i < NTask; i++)
+ {
+ ntop += ntopnodelist[i];
+ if(i > 0)
+ ntopoffset[i] = ntopoffset[i - 1] + ntopnodelist[i - 1];
+ }
+
+
+ toplist = malloc(ntop * sizeof(struct topnode_exchange));
+
+ for(i = 0; i < NTask; i++)
+ {
+ ntopnodelist[i] *= sizeof(struct topnode_exchange);
+ ntopoffset[i] *= sizeof(struct topnode_exchange);
+ }
+
+ MPI_Allgatherv(toplist_local, ntop_local * sizeof(struct topnode_exchange), MPI_BYTE,
+ toplist, ntopnodelist, ntopoffset, MPI_BYTE, MPI_COMM_WORLD);
+
+ qsort(toplist, ntop, sizeof(struct topnode_exchange), domain_compare_toplist);
+
+ NTopnodes = 1;
+ TopNodes[0].Daughter = -1;
+ TopNodes[0].Size = PEANOCELLS;
+ TopNodes[0].StartKey = 0;
+ TopNodes[0].Count = All.TotNumPart;
+ TopNodes[0].Pstart = 0;
+ TopNodes[0].Blocks = ntop;
+
+ domain_topsplit(0, 0);
+
+ free(toplist);
+ free(ntopoffset);
+ free(ntopnodelist);
+ free(toplist_local);
+
+}
+
+
+
+/*! This function is responsible for constructing the local top-level
+ * Peano-Hilbert segments. A segment is cut into 8 pieces recursively
+ * until the number of particles in the segment has fallen below
+ * All.TotNumPart / (TOPNODEFACTOR * NTask * NTask).
+ */
+void domain_topsplit_local(int node, peanokey startkey)
+{
+ int i, p, sub, bin;
+
+ if(TopNodes[node].Size >= 8)
+ {
+ TopNodes[node].Daughter = NTopnodes;
+
+ for(i = 0; i < 8; i++)
+ {
+ if(NTopnodes < MAXTOPNODES)
+ {
+ sub = TopNodes[node].Daughter + i;
+ TopNodes[sub].Size = TopNodes[node].Size / 8;
+ TopNodes[sub].Count = 0;
+ TopNodes[sub].Daughter = -1;
+ TopNodes[sub].StartKey = startkey + i * TopNodes[sub].Size;
+ TopNodes[sub].Pstart = TopNodes[node].Pstart;
+
+ NTopnodes++;
+ }
+ else
+ {
+ printf("task=%d: We are out of Topnodes. Increasing the constant MAXTOPNODES might help.\n",
+ ThisTask);
+ fflush(stdout);
+ endrun(13213);
+ }
+ }
+
+ for(p = TopNodes[node].Pstart; p < TopNodes[node].Pstart + TopNodes[node].Count; p++)
+ {
+ bin = (KeySorted[p] - startkey) / (TopNodes[node].Size / 8);
+
+ if(bin < 0 || bin > 7)
+ {
+ printf("task=%d: something odd has happened here. bin=%d\n", ThisTask, bin);
+ fflush(stdout);
+ endrun(13123123);
+ }
+
+ sub = TopNodes[node].Daughter + bin;
+
+ if(TopNodes[sub].Count == 0)
+ TopNodes[sub].Pstart = p;
+
+ TopNodes[sub].Count++;
+ }
+
+ for(i = 0; i < 8; i++)
+ {
+ sub = TopNodes[node].Daughter + i;
+ //if(TopNodes[sub].Count > All.TotNumPart / (TOPNODEFACTOR * NTask * NTask))
+ if(TopNodes[sub].Count > All.TotNumPart / (TOPNODEFACTOR * NTask))
+ domain_topsplit_local(sub, TopNodes[sub].StartKey);
+ }
+ }
+}
+
+
+
+/*! This function is responsible for constructing the global top-level tree
+ * segments. Starting from a joint list of all local top-level segments,
+ * in which mulitple occurences of the same spatial segment have been
+ * combined, a segment is subdivided into 8 pieces recursively until the
+ * number of particles in each segment has fallen below All.TotNumPart /
+ * (TOPNODEFACTOR * NTask).
+ */
+void domain_topsplit(int node, peanokey startkey)
+{
+ int i, p, sub, bin;
+
+ if(TopNodes[node].Size >= 8)
+ {
+ TopNodes[node].Daughter = NTopnodes;
+
+ for(i = 0; i < 8; i++)
+ {
+ if(NTopnodes < MAXTOPNODES)
+ {
+ sub = TopNodes[node].Daughter + i;
+ TopNodes[sub].Size = TopNodes[node].Size / 8;
+ TopNodes[sub].Count = 0;
+ TopNodes[sub].Blocks = 0;
+ TopNodes[sub].Daughter = -1;
+ TopNodes[sub].StartKey = startkey + i * TopNodes[sub].Size;
+ TopNodes[sub].Pstart = TopNodes[node].Pstart;
+ NTopnodes++;
+ }
+ else
+ {
+ printf("Task=%d: We are out of Topnodes. Increasing the constant MAXTOPNODES might help.\n",
+ ThisTask);
+ fflush(stdout);
+ endrun(137213);
+ }
+ }
+
+ for(p = TopNodes[node].Pstart; p < TopNodes[node].Pstart + TopNodes[node].Blocks; p++)
+ {
+ bin = (toplist[p].Startkey - startkey) / (TopNodes[node].Size / 8);
+ sub = TopNodes[node].Daughter + bin;
+
+ if(bin < 0 || bin > 7)
+ endrun(77);
+
+ if(TopNodes[sub].Blocks == 0)
+ TopNodes[sub].Pstart = p;
+
+ TopNodes[sub].Count += toplist[p].Count;
+ TopNodes[sub].Blocks++;
+ }
+
+ for(i = 0; i < 8; i++)
+ {
+ sub = TopNodes[node].Daughter + i;
+ if(TopNodes[sub].Count > All.TotNumPart / (TOPNODEFACTOR * NTask))
+ domain_topsplit(sub, TopNodes[sub].StartKey);
+ }
+ }
+}
+
+
+/*! This is a comparison kernel used in a sort routine.
+ */
+int domain_compare_toplist(const void *a, const void *b)
+{
+ if(((struct topnode_exchange *) a)->Startkey < (((struct topnode_exchange *) b)->Startkey))
+ return -1;
+
+ if(((struct topnode_exchange *) a)->Startkey > (((struct topnode_exchange *) b)->Startkey))
+ return +1;
+
+ return 0;
+}
+
+/*! This is a comparison kernel used in a sort routine.
+ */
+int domain_compare_key(const void *a, const void *b)
+{
+ if(*(peanokey *) a < *(peanokey *) b)
+ return -1;
+
+ if(*(peanokey *) a > *(peanokey *) b)
+ return +1;
+
+ return 0;
+}
diff --git a/clusters/user/GEAR/src/driftfac.c b/clusters/user/GEAR/src/driftfac.c
new file mode 100644
index 0000000..8487267
--- /dev/null
+++ b/clusters/user/GEAR/src/driftfac.c
@@ -0,0 +1,224 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_math.h>
+#include <gsl/gsl_integration.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+/*! \file driftfac.c
+ * \brief compute loop-up tables for prefactors in cosmological integration
+ */
+
+static double logTimeBegin;
+static double logTimeMax;
+
+
+/*! This function computes look-up tables for factors needed in
+ * cosmological integrations. The (simple) integrations are carried out
+ * with the GSL library. Separate factors are computed for the "drift",
+ * and the gravitational and hydrodynamical "kicks". The lookup-table is
+ * used for reasons of speed.
+ */
+void init_drift_table(void)
+{
+#define WORKSIZE 100000
+ int i;
+ double result, abserr;
+ gsl_function F;
+ gsl_integration_workspace *workspace;
+
+ logTimeBegin = log(All.TimeBegin);
+ logTimeMax = log(All.TimeMax);
+
+ workspace = gsl_integration_workspace_alloc(WORKSIZE);
+
+ for(i = 0; i < DRIFT_TABLE_LENGTH; i++)
+ {
+ F.function = &drift_integ;
+ gsl_integration_qag(&F, exp(logTimeBegin), exp(logTimeBegin + ((logTimeMax - logTimeBegin) / DRIFT_TABLE_LENGTH) * (i + 1)), All.Hubble, /* note: absolute error just a dummy */
+ 1.0e-8, WORKSIZE, GSL_INTEG_GAUSS41, workspace, &result, &abserr);
+ DriftTable[i] = result;
+
+
+ F.function = &gravkick_integ;
+ gsl_integration_qag(&F, exp(logTimeBegin), exp(logTimeBegin + ((logTimeMax - logTimeBegin) / DRIFT_TABLE_LENGTH) * (i + 1)), All.Hubble, /* note: absolute error just a dummy */
+ 1.0e-8, WORKSIZE, GSL_INTEG_GAUSS41, workspace, &result, &abserr);
+ GravKickTable[i] = result;
+
+
+ F.function = &hydrokick_integ;
+ gsl_integration_qag(&F, exp(logTimeBegin), exp(logTimeBegin + ((logTimeMax - logTimeBegin) / DRIFT_TABLE_LENGTH) * (i + 1)), All.Hubble, /* note: absolute error just a dummy */
+ 1.0e-8, WORKSIZE, GSL_INTEG_GAUSS41, workspace, &result, &abserr);
+ HydroKickTable[i] = result;
+ }
+
+ gsl_integration_workspace_free(workspace);
+}
+
+
+/*! This function integrates the cosmological prefactor for a drift step
+ * between time0 and time1. The value returned is * \f[ \int_{a_0}^{a_1}
+ * \frac{{\rm d}a}{H(a)} * \f]
+ */
+double get_drift_factor(int time0, int time1)
+{
+ double a1, a2, df1, df2, u1, u2;
+ int i1, i2;
+
+ /* note: will only be called for cosmological integration */
+
+ a1 = logTimeBegin + time0 * All.Timebase_interval;
+ a2 = logTimeBegin + time1 * All.Timebase_interval;
+
+ u1 = (a1 - logTimeBegin) / (logTimeMax - logTimeBegin) * DRIFT_TABLE_LENGTH;
+ i1 = (int) u1;
+ if(i1 >= DRIFT_TABLE_LENGTH)
+ i1 = DRIFT_TABLE_LENGTH - 1;
+
+ if(i1 <= 1)
+ df1 = u1 * DriftTable[0];
+ else
+ df1 = DriftTable[i1 - 1] + (DriftTable[i1] - DriftTable[i1 - 1]) * (u1 - i1);
+
+
+ u2 = (a2 - logTimeBegin) / (logTimeMax - logTimeBegin) * DRIFT_TABLE_LENGTH;
+ i2 = (int) u2;
+ if(i2 >= DRIFT_TABLE_LENGTH)
+ i2 = DRIFT_TABLE_LENGTH - 1;
+
+ if(i2 <= 1)
+ df2 = u2 * DriftTable[0];
+ else
+ df2 = DriftTable[i2 - 1] + (DriftTable[i2] - DriftTable[i2 - 1]) * (u2 - i2);
+
+ return df2 - df1;
+}
+
+
+/*! This function integrates the cosmological prefactor for a kick step of
+ * the gravitational force.
+ */
+double get_gravkick_factor(int time0, int time1)
+{
+ double a1, a2, df1, df2, u1, u2;
+ int i1, i2;
+
+ /* note: will only be called for cosmological integration */
+
+ a1 = logTimeBegin + time0 * All.Timebase_interval; /* yr: this gives log(a1) to be compatible with init_drift_table*/
+ a2 = logTimeBegin + time1 * All.Timebase_interval; /* yr: this gives log(a2) to be compatible with init_drift_table*/
+
+ u1 = (a1 - logTimeBegin) / (logTimeMax - logTimeBegin) * DRIFT_TABLE_LENGTH;
+ i1 = (int) u1;
+ if(i1 >= DRIFT_TABLE_LENGTH)
+ i1 = DRIFT_TABLE_LENGTH - 1;
+
+ if(i1 <= 1)
+ df1 = u1 * GravKickTable[0];
+ else
+ df1 = GravKickTable[i1 - 1] + (GravKickTable[i1] - GravKickTable[i1 - 1]) * (u1 - i1); /* yr : interpolate */
+
+
+ u2 = (a2 - logTimeBegin) / (logTimeMax - logTimeBegin) * DRIFT_TABLE_LENGTH;
+ i2 = (int) u2;
+ if(i2 >= DRIFT_TABLE_LENGTH)
+ i2 = DRIFT_TABLE_LENGTH - 1;
+
+ if(i2 <= 1)
+ df2 = u2 * GravKickTable[0];
+ else
+ df2 = GravKickTable[i2 - 1] + (GravKickTable[i2] - GravKickTable[i2 - 1]) * (u2 - i2);
+
+ return df2 - df1;
+}
+
+/*! This function integrates the cosmological prefactor for a kick step of
+ * the hydrodynamical force.
+ */
+double get_hydrokick_factor(int time0, int time1)
+{
+ double a1, a2, df1, df2, u1, u2;
+ int i1, i2;
+
+ /* note: will only be called for cosmological integration */
+
+ a1 = logTimeBegin + time0 * All.Timebase_interval;
+ a2 = logTimeBegin + time1 * All.Timebase_interval;
+
+ u1 = (a1 - logTimeBegin) / (logTimeMax - logTimeBegin) * DRIFT_TABLE_LENGTH;
+ i1 = (int) u1;
+ if(i1 >= DRIFT_TABLE_LENGTH)
+ i1 = DRIFT_TABLE_LENGTH - 1;
+
+ if(i1 <= 1)
+ df1 = u1 * HydroKickTable[0];
+ else
+ df1 = HydroKickTable[i1 - 1] + (HydroKickTable[i1] - HydroKickTable[i1 - 1]) * (u1 - i1);
+
+
+ u2 = (a2 - logTimeBegin) / (logTimeMax - logTimeBegin) * DRIFT_TABLE_LENGTH;
+ i2 = (int) u2;
+ if(i2 >= DRIFT_TABLE_LENGTH)
+ i2 = DRIFT_TABLE_LENGTH - 1;
+
+ if(i2 <= 1)
+ df2 = u2 * HydroKickTable[0];
+ else
+ df2 = HydroKickTable[i2 - 1] + (HydroKickTable[i2] - HydroKickTable[i2 - 1]) * (u2 - i2);
+
+ return df2 - df1;
+}
+
+
+/*! Integration kernel for drift factor computation.
+ */
+double drift_integ(double a, void *param)
+{
+ double h;
+
+ h = All.Omega0 / (a * a * a) + (1 - All.Omega0 - All.OmegaLambda) / (a * a) + All.OmegaLambda;
+ h = All.Hubble * sqrt(h);
+
+ return 1 / (h * a * a * a);
+}
+
+/*! Integration kernel for gravitational kick factor computation.
+ */
+double gravkick_integ(double a, void *param)
+{
+ double h;
+
+ h = All.Omega0 / (a * a * a) + (1 - All.Omega0 - All.OmegaLambda) / (a * a) + All.OmegaLambda;
+ h = All.Hubble * sqrt(h);
+
+ return 1 / (h * a * a);
+}
+
+
+/*! Integration kernel for hydrodynamical kick factor computation.
+ */
+double hydrokick_integ(double a, void *param)
+{
+ double h;
+
+ h = All.Omega0 / (a * a * a) + (1 - All.Omega0 - All.OmegaLambda) / (a * a) + All.OmegaLambda;
+ h = All.Hubble * sqrt(h);
+
+ return 1 / (h * pow(a, 3 * GAMMA_MINUS1) * a);
+}
+
+double growthfactor_integ(double a, void *param)
+{
+ double s;
+
+ s = All.Omega0 + (1 - All.Omega0 - All.OmegaLambda) * a + All.OmegaLambda * a * a * a;
+ s = sqrt(s);
+
+ return pow(sqrt(a) / s, 3);
+}
+
+
diff --git a/clusters/user/GEAR/src/endrun.c b/clusters/user/GEAR/src/endrun.c
new file mode 100644
index 0000000..3070a7e
--- /dev/null
+++ b/clusters/user/GEAR/src/endrun.c
@@ -0,0 +1,43 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <signal.h>
+#include <unistd.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file endrun.c
+ * \brief Termination of simulation
+ *
+ * This file contains routines for termination of the simulation.
+ */
+
+/*! This function aborts the simulations. If a single processors wants an
+ * immediate termination, the function needs to be called with ierr>0. A
+ * bunch of MPI-error messages may also appear in this case. For ierr=0,
+ * MPI is gracefully cleaned up, but this requires that all processors
+ * call endrun().
+ */
+void endrun(int ierr)
+{
+ if(ierr)
+ {
+ printf("task %d: endrun called with an error level of %d\n\n\n", ThisTask, ierr);
+ fflush(stdout);
+#ifdef DEBUG
+ terminate_processes();
+ raise(SIGABRT);
+ sleep(60);
+#else
+ MPI_Abort(MPI_COMM_WORLD, ierr);
+#endif
+ exit(0);
+ }
+
+ MPI_Finalize();
+ exit(0);
+}
diff --git a/clusters/user/GEAR/src/forcetree.c b/clusters/user/GEAR/src/forcetree.c
new file mode 100644
index 0000000..d2f1c09
--- /dev/null
+++ b/clusters/user/GEAR/src/forcetree.c
@@ -0,0 +1,3396 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <time.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file forcetree.c
+ * \brief gravitational tree and code for Ewald correction
+ *
+ * This file contains the computation of the gravitational force by means
+ * of a tree. The type of tree implemented is a geometrical oct-tree,
+ * starting from a cube encompassing all particles. This cube is
+ * automatically found in the domain decomposition, which also splits up
+ * the global "top-level" tree along node boundaries, moving the particles
+ * of different parts of the tree to separate processors. Tree nodes can
+ * be dynamically updated in drift/kick operations to avoid having to
+ * reconstruct the tree every timestep.
+ */
+
+/*! auxialiary variable used to set-up non-recursive walk */
+static int last;
+
+
+
+/*! length of lock-up table for short-range force kernel in TreePM algorithm */
+#define NTAB 1000
+/*! variables for short-range lookup table */
+static float tabfac, shortrange_table[NTAB], shortrange_table_potential[NTAB];
+
+/*! toggles after first tree-memory allocation, has only influence on log-files */
+static int first_flag = 0;
+
+
+
+
+#ifdef PERIODIC
+/*! Macro that maps a distance to the nearest periodic neighbour */
+#define NEAREST(x) (((x)>boxhalf)?((x)-boxsize):(((x)<-boxhalf)?((x)+boxsize):(x)))
+/*! Size of 3D lock-up table for Ewald correction force */
+#define EN 64
+/*! 3D lock-up table for Ewald correction to force and potential. Only one
+ * octant is stored, the rest constructed by using the symmetry
+ */
+static FLOAT fcorrx[EN + 1][EN + 1][EN + 1];
+static FLOAT fcorry[EN + 1][EN + 1][EN + 1];
+static FLOAT fcorrz[EN + 1][EN + 1][EN + 1];
+static FLOAT potcorr[EN + 1][EN + 1][EN + 1];
+static double fac_intp;
+#endif
+
+
+
+/*! This function is a driver routine for constructing the gravitational
+ * oct-tree, which is done by calling a small number of other functions.
+ */
+int force_treebuild(int npart)
+{
+ Numnodestree = force_treebuild_single(npart);
+
+ force_update_pseudoparticles();
+
+ force_flag_localnodes();
+
+ TimeOfLastTreeConstruction = All.Time;
+
+ return Numnodestree;
+}
+
+
+
+/*! Constructs the gravitational oct-tree.
+ *
+ * The index convention for accessing tree nodes is the following: the
+ * indices 0...NumPart-1 reference single particles, the indices
+ * All.MaxPart.... All.MaxPart+nodes-1 reference tree nodes. `Nodes_base'
+ * points to the first tree node, while `nodes' is shifted such that
+ * nodes[All.MaxPart] gives the first tree node. Finally, node indices
+ * with values 'All.MaxPart + MaxNodes' and larger indicate "pseudo
+ * particles", i.e. multipole moments of top-level nodes that lie on
+ * different CPUs. If such a node needs to be opened, the corresponding
+ * particle must be exported to that CPU. The 'Extnodes' structure
+ * parallels that of 'Nodes'. Its information is only needed for the SPH
+ * part of the computation. (The data is split onto these two structures
+ * as a tuning measure. If it is merged into 'Nodes' a somewhat bigger
+ * size of the nodes also for gravity would result, which would reduce
+ * cache utilization slightly.
+ */
+int force_treebuild_single(int npart)
+{
+ int i, j, subnode = 0, parent, numnodes;
+ int nfree, th, nn, no;
+ struct NODE *nfreep;
+ double lenhalf, epsilon;
+ peanokey key;
+
+
+ /* create an empty root node */
+ nfree = All.MaxPart; /* index of first free node */
+ nfreep = &Nodes[nfree]; /* select first node */
+
+ nfreep->len = DomainLen;
+ for(j = 0; j < 3; j++)
+ nfreep->center[j] = DomainCenter[j];
+ for(j = 0; j < 8; j++)
+ nfreep->u.suns[j] = -1;
+
+
+ numnodes = 1;
+ nfreep++;
+ nfree++;
+
+ /* create a set of empty nodes corresponding to the top-level domain
+ * grid. We need to generate these nodes first to make sure that we have a
+ * complete top-level tree which allows the easy insertion of the
+ * pseudo-particles at the right place
+ */
+
+ force_create_empty_nodes(All.MaxPart, 0, 1, 0, 0, 0, &numnodes, &nfree);
+
+
+ /* if a high-resolution region in a global tree is used, we need to generate
+ * an additional set empty nodes to make sure that we have a complete
+ * top-level tree for the high-resolution inset
+ */
+
+ nfreep = &Nodes[nfree];
+ parent = -1; /* note: will not be used below before it is changed */
+
+
+ /* now we insert all particles */
+ for(i = 0; i < npart; i++)
+ {
+
+ /* the softening is only used to check whether particles are so close
+ * that the tree needs not to be refined further
+ */
+ epsilon = All.ForceSoftening[P[i].Type];
+
+ key = peano_hilbert_key((P[i].Pos[0] - DomainCorner[0]) * DomainFac,
+ (P[i].Pos[1] - DomainCorner[1]) * DomainFac,
+ (P[i].Pos[2] - DomainCorner[2]) * DomainFac, BITS_PER_DIMENSION);
+
+ no = 0;
+ while(TopNodes[no].Daughter >= 0)
+ no = TopNodes[no].Daughter + (key - TopNodes[no].StartKey) / (TopNodes[no].Size / 8);
+
+ no = TopNodes[no].Leaf;
+ th = DomainNodeIndex[no];
+
+ while(1)
+ {
+ if(th >= All.MaxPart) /* we are dealing with an internal node */
+ {
+ subnode = 0;
+ if(P[i].Pos[0] > Nodes[th].center[0])
+ subnode += 1;
+ if(P[i].Pos[1] > Nodes[th].center[1])
+ subnode += 2;
+ if(P[i].Pos[2] > Nodes[th].center[2])
+ subnode += 4;
+
+ nn = Nodes[th].u.suns[subnode];
+
+ if(nn >= 0) /* ok, something is in the daughter slot already, need to continue */
+ {
+ parent = th;
+ th = nn;
+ }
+ else
+ {
+ /* here we have found an empty slot where we can attach
+ * the new particle as a leaf.
+ */
+ Nodes[th].u.suns[subnode] = i;
+ break; /* done for this particle */
+ }
+ }
+ else
+ {
+ /* We try to insert into a leaf with a single particle. Need
+ * to generate a new internal node at this point.
+ */
+ Nodes[parent].u.suns[subnode] = nfree;
+
+ nfreep->len = 0.5 * Nodes[parent].len;
+ lenhalf = 0.25 * Nodes[parent].len;
+
+ if(subnode & 1)
+ nfreep->center[0] = Nodes[parent].center[0] + lenhalf;
+ else
+ nfreep->center[0] = Nodes[parent].center[0] - lenhalf;
+
+ if(subnode & 2)
+ nfreep->center[1] = Nodes[parent].center[1] + lenhalf;
+ else
+ nfreep->center[1] = Nodes[parent].center[1] - lenhalf;
+
+ if(subnode & 4)
+ nfreep->center[2] = Nodes[parent].center[2] + lenhalf;
+ else
+ nfreep->center[2] = Nodes[parent].center[2] - lenhalf;
+
+ nfreep->u.suns[0] = -1;
+ nfreep->u.suns[1] = -1;
+ nfreep->u.suns[2] = -1;
+ nfreep->u.suns[3] = -1;
+ nfreep->u.suns[4] = -1;
+ nfreep->u.suns[5] = -1;
+ nfreep->u.suns[6] = -1;
+ nfreep->u.suns[7] = -1;
+
+
+ subnode = 0;
+ if(P[th].Pos[0] > nfreep->center[0])
+ subnode += 1;
+ if(P[th].Pos[1] > nfreep->center[1])
+ subnode += 2;
+ if(P[th].Pos[2] > nfreep->center[2])
+ subnode += 4;
+#ifndef NOTREERND
+ if(nfreep->len < 1.0e-3 * epsilon)
+ {
+ /* seems like we're dealing with particles at identical (or extremely close)
+ * locations. Randomize subnode index to allow tree construction. Note: Multipole moments
+ * of tree are still correct, but this will only happen well below gravitational softening
+ * length-scale anyway.
+ */
+ subnode = (int) (8.0 * get_random_number((0xffff & P[i].ID) + P[i].GravCost));
+ P[i].GravCost += 1;
+ if(subnode >= 8)
+ subnode = 7;
+ }
+#endif
+ nfreep->u.suns[subnode] = th;
+
+ th = nfree; /* resume trying to insert the new particle at
+ * the newly created internal node
+ */
+
+ numnodes++;
+ nfree++;
+ nfreep++;
+
+ if((numnodes) >= MaxNodes)
+ {
+ printf("task %d: maximum number %d of tree-nodes reached.\n", ThisTask, MaxNodes);
+ printf("for particle %d\n", i);
+ dump_particles();
+ endrun(1);
+ }
+ }
+ }
+ }
+
+
+ /* insert the pseudo particles that represent the mass distribution of other domains */
+ force_insert_pseudo_particles();
+
+
+ /* now compute the multipole moments recursively */
+ last = -1;
+
+ force_update_node_recursive(All.MaxPart, -1, -1);
+
+ if(last >= All.MaxPart)
+ {
+ if(last >= All.MaxPart + MaxNodes) /* a pseudo-particle */
+ Nextnode[last - MaxNodes] = -1;
+ else
+ Nodes[last].u.d.nextnode = -1;
+ }
+ else
+ Nextnode[last] = -1;
+
+ return numnodes;
+}
+
+
+
+/*! This function recursively creates a set of empty tree nodes which
+ * corresponds to the top-level tree for the domain grid. This is done to
+ * ensure that this top-level tree is always "complete" so that we can
+ * easily associate the pseudo-particles of other CPUs with tree-nodes at
+ * a given level in the tree, even when the particle population is so
+ * sparse that some of these nodes are actually empty.
+*/
+void force_create_empty_nodes(int no, int topnode, int bits, int x, int y, int z, int *nodecount,
+ int *nextfree)
+{
+ int i, j, k, n, sub, count;
+
+ if(TopNodes[topnode].Daughter >= 0)
+ {
+ for(i = 0; i < 2; i++)
+ for(j = 0; j < 2; j++)
+ for(k = 0; k < 2; k++)
+ {
+ sub = 7 & peano_hilbert_key((x << 1) + i, (y << 1) + j, (z << 1) + k, bits);
+
+ count = i + 2 * j + 4 * k;
+
+ Nodes[no].u.suns[count] = *nextfree;
+
+
+ Nodes[*nextfree].len = 0.5 * Nodes[no].len;
+ Nodes[*nextfree].center[0] = Nodes[no].center[0] + (2 * i - 1) * 0.25 * Nodes[no].len;
+ Nodes[*nextfree].center[1] = Nodes[no].center[1] + (2 * j - 1) * 0.25 * Nodes[no].len;
+ Nodes[*nextfree].center[2] = Nodes[no].center[2] + (2 * k - 1) * 0.25 * Nodes[no].len;
+
+ for(n = 0; n < 8; n++)
+ Nodes[*nextfree].u.suns[n] = -1;
+
+ if(TopNodes[TopNodes[topnode].Daughter + sub].Daughter == -1)
+ DomainNodeIndex[TopNodes[TopNodes[topnode].Daughter + sub].Leaf] = *nextfree;
+
+ *nextfree = *nextfree + 1;
+ *nodecount = *nodecount + 1;
+
+ if((*nodecount) >= MaxNodes)
+ {
+ printf("task %d: maximum number %d of tree-nodes reached.\n", ThisTask, MaxNodes);
+ printf("in create empty nodes\n");
+ dump_particles();
+ endrun(11);
+ }
+
+ force_create_empty_nodes(*nextfree - 1, TopNodes[topnode].Daughter + sub,
+ bits + 1, 2 * x + i, 2 * y + j, 2 * z + k, nodecount, nextfree);
+ }
+ }
+}
+
+
+
+/*! this function inserts pseudo-particles which will represent the mass
+ * distribution of the other CPUs. Initially, the mass of the
+ * pseudo-particles is set to zero, and their coordinate is set to the
+ * center of the domain-cell they correspond to. These quantities will be
+ * updated later on.
+ */
+void force_insert_pseudo_particles(void)
+{
+ int i, index, subnode, nn, th;
+
+ for(i = 0; i < NTopleaves; i++)
+ {
+ index = DomainNodeIndex[i];
+
+ DomainMoment[i].mass = 0;
+#ifdef STELLAR_FLUX
+ DomainMoment[i].starlum = 0;
+#endif
+ DomainMoment[i].s[0] = Nodes[index].center[0];
+ DomainMoment[i].s[1] = Nodes[index].center[1];
+ DomainMoment[i].s[2] = Nodes[index].center[2];
+ }
+
+ for(i = 0; i < NTopleaves; i++)
+ {
+ if(i < DomainMyStart || i > DomainMyLast)
+ {
+ th = All.MaxPart; /* select index of first node in tree */
+
+ while(1)
+ {
+ if(th >= All.MaxPart) /* we are dealing with an internal node */
+ {
+ if(th >= All.MaxPart + MaxNodes)
+ endrun(888); /* this can't be */
+
+ subnode = 0;
+ if(DomainMoment[i].s[0] > Nodes[th].center[0])
+ subnode += 1;
+ if(DomainMoment[i].s[1] > Nodes[th].center[1])
+ subnode += 2;
+ if(DomainMoment[i].s[2] > Nodes[th].center[2])
+ subnode += 4;
+
+ nn = Nodes[th].u.suns[subnode];
+
+ if(nn >= 0) /* ok, something is in the daughter slot already, need to continue */
+ {
+ th = nn;
+ }
+ else
+ {
+ /* here we have found an empty slot where we can
+ * attach the pseudo particle as a leaf
+ */
+ Nodes[th].u.suns[subnode] = All.MaxPart + MaxNodes + i;
+
+ break; /* done for this pseudo particle */
+ }
+ }
+ else
+ {
+ endrun(889); /* this can't be */
+ }
+ }
+ }
+ }
+}
+
+
+/*! this routine determines the multipole moments for a given internal node
+ * and all its subnodes using a recursive computation. The result is
+ * stored in the Nodes[] structure in the sequence of this tree-walk.
+ *
+ * Note that the bitflags-variable for each node is used to store in the
+ * lowest bits some special information: Bit 0 flags whether the node
+ * belongs to the top-level tree corresponding to the domain
+ * decomposition, while Bit 1 signals whether the top-level node is
+ * dependent on local mass.
+ *
+ * If UNEQUALSOFTENINGS is set, bits 2-4 give the particle type with
+ * the maximum softening among the particles in the node, and bit 5
+ * flags whether the node contains any particles with lower softening
+ * than that.
+ */
+void force_update_node_recursive(int no, int sib, int father)
+{
+ int j, jj, p, pp, nextsib, suns[8];
+ FLOAT hmax;
+
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ int maxsofttype, diffsoftflag;
+#else
+ FLOAT maxsoft;
+#endif
+#endif
+ struct particle_data *pa;
+ double s[3], vs[3], mass;
+#ifdef STELLAR_FLUX
+ double starlum;
+#endif
+
+ if(no >= All.MaxPart && no < All.MaxPart + MaxNodes) /* internal node */
+ {
+ for(j = 0; j < 8; j++)
+ suns[j] = Nodes[no].u.suns[j]; /* this "backup" is necessary because the nextnode entry will
+ overwrite one element (union!) */
+ if(last >= 0)
+ {
+ if(last >= All.MaxPart)
+ {
+ if(last >= All.MaxPart + MaxNodes) /* a pseudo-particle */
+ Nextnode[last - MaxNodes] = no;
+ else
+ Nodes[last].u.d.nextnode = no;
+ }
+ else
+ Nextnode[last] = no;
+ }
+
+ last = no;
+
+ mass = 0;
+#ifdef STELLAR_FLUX
+ starlum = 0;
+#endif
+ s[0] = 0;
+ s[1] = 0;
+ s[2] = 0;
+ vs[0] = 0;
+ vs[1] = 0;
+ vs[2] = 0;
+ hmax = 0;
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ maxsofttype = 7;
+ diffsoftflag = 0;
+#else
+ maxsoft = 0;
+#endif
+#endif
+
+ for(j = 0; j < 8; j++)
+ {
+ if((p = suns[j]) >= 0)
+ {
+ /* check if we have a sibling on the same level */
+ for(jj = j + 1; jj < 8; jj++)
+ if((pp = suns[jj]) >= 0)
+ break;
+
+ if(jj < 8) /* yes, we do */
+ nextsib = pp;
+ else
+ nextsib = sib;
+
+ force_update_node_recursive(p, nextsib, no);
+
+
+ if(p >= All.MaxPart) /* an internal node or pseudo particle */
+ {
+ if(p >= All.MaxPart + MaxNodes) /* a pseudo particle */
+ {
+ /* nothing to be done here because the mass of the
+ * pseudo-particle is still zero. This will be changed
+ * later.
+ */
+ }
+ else
+ {
+ mass += Nodes[p].u.d.mass;
+#ifdef STELLAR_FLUX
+ starlum += Nodes[p].starlum;
+#endif
+ s[0] += Nodes[p].u.d.mass * Nodes[p].u.d.s[0];
+ s[1] += Nodes[p].u.d.mass * Nodes[p].u.d.s[1];
+ s[2] += Nodes[p].u.d.mass * Nodes[p].u.d.s[2];
+ vs[0] += Nodes[p].u.d.mass * Extnodes[p].vs[0];
+ vs[1] += Nodes[p].u.d.mass * Extnodes[p].vs[1];
+ vs[2] += Nodes[p].u.d.mass * Extnodes[p].vs[2];
+
+ if(Extnodes[p].hmax > hmax)
+ hmax = Extnodes[p].hmax;
+
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ diffsoftflag |= (Nodes[p].u.d.bitflags >> 5) & 1;
+
+ if(maxsofttype == 7)
+ {
+ maxsofttype = (Nodes[p].u.d.bitflags >> 2) & 7;
+ }
+ else
+ {
+ if(((Nodes[p].u.d.bitflags >> 2) & 7) != 7)
+ {
+ if(All.ForceSoftening[((Nodes[p].u.d.bitflags >> 2) & 7)] >
+ All.ForceSoftening[maxsofttype])
+ {
+ maxsofttype = ((Nodes[p].u.d.bitflags >> 2) & 7);
+ diffsoftflag = 1;
+ }
+ else
+ {
+ if(All.ForceSoftening[((Nodes[p].u.d.bitflags >> 2) & 7)] <
+ All.ForceSoftening[maxsofttype])
+ diffsoftflag = 1;
+ }
+ }
+ }
+#else
+ if(Nodes[p].maxsoft > maxsoft)
+ maxsoft = Nodes[p].maxsoft;
+#endif
+#endif
+ }
+ }
+ else /* a particle */
+ {
+ pa = &P[p];
+
+ mass += pa->Mass;
+#ifdef STELLAR_FLUX
+ starlum += pa->Mass*All.HeatingPeLMRatio[pa->Type];
+#endif
+
+ s[0] += pa->Mass * pa->Pos[0];
+ s[1] += pa->Mass * pa->Pos[1];
+ s[2] += pa->Mass * pa->Pos[2];
+ vs[0] += pa->Mass * pa->Vel[0];
+ vs[1] += pa->Mass * pa->Vel[1];
+ vs[2] += pa->Mass * pa->Vel[2];
+
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ if(maxsofttype == 7)
+ {
+ maxsofttype = pa->Type;
+ }
+ else
+ {
+ if(All.ForceSoftening[pa->Type] > All.ForceSoftening[maxsofttype])
+ {
+ maxsofttype = pa->Type;
+ diffsoftflag = 1;
+ }
+ else
+ {
+ if(All.ForceSoftening[pa->Type] < All.ForceSoftening[maxsofttype])
+ diffsoftflag = 1;
+ }
+ }
+#else
+ if(pa->Type == 0)
+ {
+ if(SphP[p].Hsml > maxsoft)
+ maxsoft = SphP[p].Hsml;
+ }
+ else
+ {
+ if(All.ForceSoftening[pa->Type] > maxsoft)
+ maxsoft = All.ForceSoftening[pa->Type];
+ }
+#endif
+#endif
+ if(pa->Type == 0)
+ if(SphP[p].Hsml > hmax)
+ hmax = SphP[p].Hsml;
+ }
+ }
+ }
+
+
+ if(mass)
+ {
+ s[0] /= mass;
+ s[1] /= mass;
+ s[2] /= mass;
+ vs[0] /= mass;
+ vs[1] /= mass;
+ vs[2] /= mass;
+ }
+ else
+ {
+ s[0] = Nodes[no].center[0];
+ s[1] = Nodes[no].center[1];
+ s[2] = Nodes[no].center[2];
+ }
+
+ Nodes[no].u.d.s[0] = s[0];
+ Nodes[no].u.d.s[1] = s[1];
+ Nodes[no].u.d.s[2] = s[2];
+ Nodes[no].u.d.mass = mass;
+#ifdef STELLAR_FLUX
+ Nodes[no].starlum = starlum;
+#endif
+
+
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ Nodes[no].u.d.bitflags = 4 * maxsofttype + 32 * diffsoftflag;
+#else
+ Nodes[no].u.d.bitflags = 0;
+ Nodes[no].maxsoft = maxsoft;
+#endif
+#else
+ Nodes[no].u.d.bitflags = 0;
+#endif
+
+
+ Extnodes[no].vs[0] = vs[0];
+ Extnodes[no].vs[1] = vs[1];
+ Extnodes[no].vs[2] = vs[2];
+ Extnodes[no].hmax = hmax;
+
+ Nodes[no].u.d.sibling = sib;
+ Nodes[no].u.d.father = father;
+ }
+ else /* single particle or pseudo particle */
+ {
+ if(last >= 0)
+ {
+ if(last >= All.MaxPart)
+ {
+ if(last >= All.MaxPart + MaxNodes) /* a pseudo-particle */
+ Nextnode[last - MaxNodes] = no;
+ else
+ Nodes[last].u.d.nextnode = no;
+ }
+ else
+ Nextnode[last] = no;
+ }
+
+ last = no;
+
+ if(no < All.MaxPart) /* only set it for single particles */
+ Father[no] = father;
+ }
+
+}
+
+
+
+/*! This function updates the multipole moments of the pseudo-particles
+ * that represent the mass distribution on different CPUs. For that
+ * purpose, it first exchanges the necessary data, and then updates the
+ * top-level tree accordingly. The detailed implementation of these two
+ * tasks is done in separate functions.
+ */
+void force_update_pseudoparticles(void)
+{
+ force_exchange_pseudodata();
+
+ force_treeupdate_pseudos();
+}
+
+
+
+/*! This function communicates the values of the multipole moments of the
+ * top-level tree-nodes of the domain grid. This data can then be used to
+ * update the pseudo-particles on each CPU accordingly.
+ */
+void force_exchange_pseudodata(void)
+{
+ int i, no;
+ MPI_Status status;
+ int level, sendTask, recvTask;
+
+ for(i = DomainMyStart; i <= DomainMyLast; i++)
+ {
+ no = DomainNodeIndex[i];
+
+ /* read out the multipole moments from the local base cells */
+ DomainMoment[i].s[0] = Nodes[no].u.d.s[0];
+ DomainMoment[i].s[1] = Nodes[no].u.d.s[1];
+ DomainMoment[i].s[2] = Nodes[no].u.d.s[2];
+ DomainMoment[i].vs[0] = Extnodes[no].vs[0];
+ DomainMoment[i].vs[1] = Extnodes[no].vs[1];
+ DomainMoment[i].vs[2] = Extnodes[no].vs[2];
+ DomainMoment[i].mass = Nodes[no].u.d.mass;
+#ifdef STELLAR_FLUX
+ DomainMoment[i].starlum = Nodes[no].starlum;
+#endif
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ DomainMoment[i].bitflags = Nodes[no].u.d.bitflags;
+#else
+ DomainMoment[i].maxsoft = Nodes[no].maxsoft;
+#endif
+#endif
+ }
+
+ /* share the pseudo-particle data accross CPUs */
+
+ for(level = 1; level < (1 << PTask); level++)
+ {
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ level;
+
+ if(recvTask < NTask)
+ MPI_Sendrecv(&DomainMoment[DomainStartList[sendTask]],
+ (DomainEndList[sendTask] - DomainStartList[sendTask] + 1) * sizeof(struct DomainNODE),
+ MPI_BYTE, recvTask, TAG_DMOM,
+ &DomainMoment[DomainStartList[recvTask]],
+ (DomainEndList[recvTask] - DomainStartList[recvTask] + 1) * sizeof(struct DomainNODE),
+ MPI_BYTE, recvTask, TAG_DMOM, MPI_COMM_WORLD, &status);
+ }
+
+}
+
+/*! This function updates the top-level tree after the multipole moments of
+ * the pseudo-particles have been updated.
+ */
+void force_treeupdate_pseudos(void)
+{
+ int i, k, no;
+ FLOAT sold[3], vsold[3], snew[3], vsnew[3], massold, massnew, mm;
+#ifdef STELLAR_FLUX
+ FLOAT starlumold, starlumnew, starmm;
+#endif
+
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ int maxsofttype, diffsoftflag;
+#else
+ FLOAT maxsoft;
+#endif
+#endif
+
+ for(i = 0; i < NTopleaves; i++)
+ if(i < DomainMyStart || i > DomainMyLast)
+ {
+ no = DomainNodeIndex[i];
+
+ for(k = 0; k < 3; k++)
+ {
+ sold[k] = Nodes[no].u.d.s[k];
+ vsold[k] = Extnodes[no].vs[k];
+ }
+ massold = Nodes[no].u.d.mass;
+#ifdef STELLAR_FLUX
+ starlumold = Nodes[no].starlum;
+#endif
+
+
+ for(k = 0; k < 3; k++)
+ {
+ snew[k] = DomainMoment[i].s[k];
+ vsnew[k] = DomainMoment[i].vs[k];
+ }
+ massnew = DomainMoment[i].mass;
+#ifdef STELLAR_FLUX
+ starlumnew = DomainMoment[i].starlum;
+#endif
+
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ maxsofttype = (DomainMoment[i].bitflags >> 2) & 7;
+ diffsoftflag = (DomainMoment[i].bitflags >> 5) & 1;
+#else
+ maxsoft = DomainMoment[i].maxsoft;
+#endif
+#endif
+ do
+ {
+ mm = Nodes[no].u.d.mass + massnew - massold;
+#ifdef STELLAR_FLUX
+ starmm = Nodes[no].starlum + starlumnew - starlumold;
+#endif
+ for(k = 0; k < 3; k++)
+ {
+ if(mm > 0)
+ {
+ Nodes[no].u.d.s[k] =
+ (Nodes[no].u.d.mass * Nodes[no].u.d.s[k] + massnew * snew[k] - massold * sold[k]) / mm;
+ Extnodes[no].vs[k] =
+ (Nodes[no].u.d.mass * Extnodes[no].vs[k] + massnew * vsnew[k] -
+ massold * vsold[k]) / mm;
+ }
+ }
+ Nodes[no].u.d.mass = mm;
+#ifdef STELLAR_FLUX
+ Nodes[no].starlum = starmm;
+#endif
+
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ diffsoftflag |= (Nodes[no].u.d.bitflags >> 5) & 1;
+
+ if(maxsofttype == 7)
+ maxsofttype = (Nodes[no].u.d.bitflags >> 2) & 7;
+ else
+ {
+ if(((Nodes[no].u.d.bitflags >> 2) & 7) != 7)
+ {
+ if(All.ForceSoftening[((Nodes[no].u.d.bitflags >> 2) & 7)] >
+ All.ForceSoftening[maxsofttype])
+ {
+ maxsofttype = ((Nodes[no].u.d.bitflags >> 2) & 7);
+ diffsoftflag = 1;
+ }
+ else
+ {
+ if(All.ForceSoftening[((Nodes[no].u.d.bitflags >> 2) & 7)] <
+ All.ForceSoftening[maxsofttype])
+ diffsoftflag = 1;
+ }
+ }
+ }
+
+ Nodes[no].u.d.bitflags = (Nodes[no].u.d.bitflags & 3) + 4 * maxsofttype + 32 * diffsoftflag;
+#else
+ if(Nodes[no].maxsoft < maxsoft)
+ Nodes[no].maxsoft = maxsoft;
+ maxsoft = Nodes[no].maxsoft;
+#endif
+#endif
+ no = Nodes[no].u.d.father;
+
+ }
+ while(no >= 0);
+ }
+}
+
+
+
+/*! This function flags nodes in the top-level tree that are dependent on
+ * local particle data.
+ */
+void force_flag_localnodes(void)
+{
+ int no, i;
+
+ /* mark all top-level nodes */
+
+ for(i = 0; i < NTopleaves; i++)
+ {
+ no = DomainNodeIndex[i];
+
+ while(no >= 0)
+ {
+ if((Nodes[no].u.d.bitflags & 1))
+ break;
+
+ Nodes[no].u.d.bitflags |= 1;
+
+ no = Nodes[no].u.d.father;
+ }
+ }
+
+ /* mark top-level nodes that contain local particles */
+
+ for(i = DomainMyStart; i <= DomainMyLast; i++)
+ {
+ /*
+ if(DomainMoment[i].mass > 0)
+ */
+ {
+ no = DomainNodeIndex[i];
+
+ while(no >= 0)
+ {
+ if((Nodes[no].u.d.bitflags & 2))
+ break;
+
+ Nodes[no].u.d.bitflags |= 2;
+
+ no = Nodes[no].u.d.father;
+ }
+ }
+ }
+}
+
+
+
+/*! This function updates the side-length of tree nodes in case the tree is
+ * not reconstructed, but only drifted. The grouping of particles to tree
+ * nodes is not changed in this case, but some tree nodes may need to be
+ * enlarged because particles moved out of their original bounds.
+ */
+void force_update_len(void)
+{
+ int i, no;
+ MPI_Status status;
+ int level, sendTask, recvTask;
+
+ force_update_node_len_local();
+
+ /* first update the side-lengths of all local nodes */
+ for(i = DomainMyStart; i <= DomainMyLast; i++)
+ {
+ no = DomainNodeIndex[i];
+
+ DomainTreeNodeLen[i] = Nodes[no].len;
+ }
+
+ for(level = 1; level < (1 << PTask); level++)
+ {
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ level;
+
+ if(recvTask < NTask)
+ MPI_Sendrecv(&DomainTreeNodeLen[DomainStartList[sendTask]],
+ (DomainEndList[sendTask] - DomainStartList[sendTask] + 1) * sizeof(FLOAT),
+ MPI_BYTE, recvTask, TAG_NODELEN,
+ &DomainTreeNodeLen[DomainStartList[recvTask]],
+ (DomainEndList[recvTask] - DomainStartList[recvTask] + 1) * sizeof(FLOAT),
+ MPI_BYTE, recvTask, TAG_NODELEN, MPI_COMM_WORLD, &status);
+ }
+
+ /* Finally, we update the top-level tree. */
+ force_update_node_len_toptree();
+}
+
+
+/*! This function recursively enlarges nodes such that they always contain
+ * all their daughter nodes and daughter particles.
+ */
+void force_update_node_len_local(void)
+{
+ int i, p, k, no;
+ FLOAT dist, distmax;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ no = Father[i];
+
+ for(k = 0, distmax = 0; k < 3; k++)
+ {
+ dist = P[i].Pos[k] - Nodes[no].center[k];
+ if(dist < 0)
+ dist = -dist;
+ if(dist > distmax)
+ distmax = dist;
+ }
+
+ if(distmax + distmax > Nodes[no].len)
+ {
+ Nodes[no].len = distmax + distmax;
+ p = Nodes[no].u.d.father;
+
+ while(p >= 0)
+ {
+ distmax = Nodes[p].center[0] - Nodes[no].center[0];
+ if(distmax < 0)
+ distmax = -distmax;
+ distmax = distmax + distmax + Nodes[no].len;
+
+ if(0.999999 * distmax > Nodes[p].len)
+ {
+ Nodes[p].len = distmax;
+ no = p;
+ p = Nodes[p].u.d.father;
+ }
+ else
+ break;
+ }
+ }
+ }
+}
+
+
+/*! This function recursively enlarges nodes of the top-level tree such
+ * that they always contain all their daughter nodes.
+ */
+void force_update_node_len_toptree(void)
+{
+ int i, no, p;
+ FLOAT distmax;
+
+ for(i = 0; i < NTopleaves; i++)
+ if(i < DomainMyStart || i > DomainMyLast)
+ {
+ no = DomainNodeIndex[i];
+
+ if(Nodes[no].len < DomainTreeNodeLen[i])
+ Nodes[no].len = DomainTreeNodeLen[i];
+
+ p = Nodes[no].u.d.father;
+
+ while(p >= 0)
+ {
+ distmax = Nodes[p].center[0] - Nodes[no].center[0];
+ if(distmax < 0)
+ distmax = -distmax;
+ distmax = distmax + distmax + Nodes[no].len;
+
+ if(0.999999 * distmax > Nodes[p].len)
+ {
+ Nodes[p].len = distmax;
+ no = p;
+ p = Nodes[p].u.d.father;
+ }
+ else
+ break;
+ }
+ }
+}
+
+
+
+
+/*! This function updates the hmax-values in tree nodes that hold SPH
+ * particles. These values are needed to find all neighbors in the
+ * hydro-force computation. Since the Hsml-values are potentially changed
+ * in the SPH-denity computation, force_update_hmax() should be carried
+ * out just before the hydrodynamical SPH forces are computed, i.e. after
+ * density().
+ */
+void force_update_hmax(void)
+{
+ int i, no;
+ MPI_Status status;
+ int level, sendTask, recvTask;
+
+ force_update_node_hmax_local();
+
+ for(i = DomainMyStart; i <= DomainMyLast; i++)
+ {
+ no = DomainNodeIndex[i];
+
+ DomainHmax[i] = Extnodes[no].hmax;
+ }
+
+ /* share the hmax-data of the pseudo-particles accross CPUs */
+
+ for(level = 1; level < (1 << PTask); level++)
+ {
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ level;
+
+ if(recvTask < NTask)
+ MPI_Sendrecv(&DomainHmax[DomainStartList[sendTask]],
+ (DomainEndList[sendTask] - DomainStartList[sendTask] + 1) * sizeof(FLOAT),
+ MPI_BYTE, recvTask, TAG_HMAX,
+ &DomainHmax[DomainStartList[recvTask]],
+ (DomainEndList[recvTask] - DomainStartList[recvTask] + 1) * sizeof(FLOAT),
+ MPI_BYTE, recvTask, TAG_HMAX, MPI_COMM_WORLD, &status);
+ }
+
+
+ force_update_node_hmax_toptree();
+}
+
+/*! This routine updates the hmax-values of local tree nodes.
+ */
+void force_update_node_hmax_local(void)
+{
+ int i, p, no;
+
+ for(i = 0; i < N_gas; i++)
+ {
+
+ no = Father[i];
+
+ if(SphP[i].Hsml > Extnodes[no].hmax)
+ {
+
+ Extnodes[no].hmax = SphP[i].Hsml;
+ p = Nodes[no].u.d.father;
+
+ while(p >= 0)
+ {
+ if(Extnodes[no].hmax > Extnodes[p].hmax)
+ {
+ Extnodes[p].hmax = Extnodes[no].hmax;
+ no = p;
+ p = Nodes[p].u.d.father;
+ }
+ else
+ break;
+ }
+ }
+
+ }
+}
+
+
+
+
+/*! This function recursively sets the hmax-values of the top-level tree.
+ */
+void force_update_node_hmax_toptree(void)
+{
+
+ int i, no, p;
+
+
+ for(i = 0; i < NTopleaves; i++)
+ if(i < DomainMyStart || i > DomainMyLast)
+ {
+ no = DomainNodeIndex[i];
+
+ if(Extnodes[no].hmax < DomainHmax[i])
+ Extnodes[no].hmax = DomainHmax[i];
+
+ p = Nodes[no].u.d.father;
+
+ while(p >= 0)
+ {
+ if(Extnodes[no].hmax > Extnodes[p].hmax)
+ {
+ Extnodes[p].hmax = Extnodes[no].hmax;
+ no = p;
+ p = Nodes[p].u.d.father;
+ }
+ else
+ break;
+ }
+ }
+}
+
+
+
+
+
+/*! This routine computes the gravitational force for a given local
+ * particle, or for a particle in the communication buffer. Depending on
+ * the value of TypeOfOpeningCriterion, either the geometrical BH
+ * cell-opening criterion, or the `relative' opening criterion is used.
+ */
+int force_treeevaluate(int target, int mode, double *ewaldcountsum)
+{
+ struct NODE *nop = 0;
+ int no, ninteractions, ptype;
+ double r2, dx, dy, dz, mass, r, fac, u, h, h_inv, h3_inv;
+ double acc_x, acc_y, acc_z, pos_x, pos_y, pos_z, aold;
+#if defined(UNEQUALSOFTENINGS) && !defined(ADAPTIVE_GRAVSOFT_FORGAS)
+ int maxsofttype;
+#endif
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ double soft = 0;
+#endif
+#ifdef PERIODIC
+ double boxsize, boxhalf;
+
+ boxsize = All.BoxSize;
+ boxhalf = 0.5 * All.BoxSize;
+#endif
+
+#ifdef STELLAR_FLUX
+ double flux=0,starlum=0;
+ int type=0;
+ double hf;
+#endif
+
+ acc_x = 0;
+ acc_y = 0;
+ acc_z = 0;
+ ninteractions = 0;
+
+ if(mode == 0)
+ {
+ pos_x = P[target].Pos[0];
+ pos_y = P[target].Pos[1];
+ pos_z = P[target].Pos[2];
+ ptype = P[target].Type;
+ aold = All.ErrTolForceAcc * P[target].OldAcc;
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(ptype == 0)
+ soft = SphP[target].Hsml;
+#endif
+#ifdef STELLAR_FLUX
+ type = P[target].Type;
+#endif
+ }
+ else
+ {
+ pos_x = GravDataGet[target].u.Pos[0];
+ pos_y = GravDataGet[target].u.Pos[1];
+ pos_z = GravDataGet[target].u.Pos[2];
+#ifdef UNEQUALSOFTENINGS
+ ptype = GravDataGet[target].Type;
+#else
+ ptype = P[0].Type;
+#endif
+ aold = All.ErrTolForceAcc * GravDataGet[target].w.OldAcc;
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(ptype == 0)
+ soft = GravDataGet[target].Soft;
+#endif
+#ifdef STELLAR_FLUX
+ type = GravDataGet[target].Type;
+#endif
+ }
+
+
+
+#ifndef UNEQUALSOFTENINGS
+ h = All.ForceSoftening[ptype];
+ h_inv = 1.0 / h;
+ h3_inv = h_inv * h_inv * h_inv;
+#endif
+ no = All.MaxPart; /* root node */
+
+ while(no >= 0)
+ {
+
+ if(no < All.MaxPart) /* single particle */
+ {
+ /* the index of the node is the index of the particle */
+ /* observe the sign */
+
+ dx = P[no].Pos[0] - pos_x;
+ dy = P[no].Pos[1] - pos_y;
+ dz = P[no].Pos[2] - pos_z;
+
+ mass = P[no].Mass;
+#ifdef STELLAR_FLUX
+ starlum = P[no].Mass*All.HeatingPeLMRatio[P[no].Type];
+#endif
+ }
+ else
+ {
+ if(no >= All.MaxPart + MaxNodes) /* pseudo particle */
+ {
+ if(mode == 0)
+ {
+ Exportflag[DomainTask[no - (All.MaxPart + MaxNodes)]] = 1;
+ }
+ no = Nextnode[no - MaxNodes];
+ continue;
+ }
+ nop = &Nodes[no];
+ dx = nop->u.d.s[0] - pos_x;
+ dy = nop->u.d.s[1] - pos_y;
+ dz = nop->u.d.s[2] - pos_z;
+
+ mass = nop->u.d.mass;
+
+#ifdef STELLAR_FLUX
+ starlum = nop->starlum;
+#endif
+
+ }
+#ifdef PERIODIC
+ dx = NEAREST(dx);
+ dy = NEAREST(dy);
+ dz = NEAREST(dz);
+#endif
+ r2 = dx * dx + dy * dy + dz * dz;
+
+ if(no < All.MaxPart)
+ {
+
+#ifdef UNEQUALSOFTENINGS
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(ptype == 0)
+ h = soft;
+ else
+ h = All.ForceSoftening[ptype];
+
+ if(P[no].Type == 0)
+ {
+ if(h < SphP[no].Hsml)
+ h = SphP[no].Hsml;
+ }
+ else
+ {
+ if(h < All.ForceSoftening[P[no].Type])
+ h = All.ForceSoftening[P[no].Type];
+ }
+#else
+ h = All.ForceSoftening[ptype];
+ if(h < All.ForceSoftening[P[no].Type])
+ h = All.ForceSoftening[P[no].Type];
+#endif
+#endif
+ no = Nextnode[no];
+ }
+ else /* we have an internal node. Need to check opening criterion */
+ {
+ if(mode == 1)
+ {
+ if((nop->u.d.bitflags & 3) == 1) /* if it's a top-level node
+ * which does not contain
+ * local particles we can
+ * continue to do a short-cut */
+ {
+ no = nop->u.d.sibling;
+ continue;
+ }
+ }
+
+
+ if(All.ErrTolTheta) /* check Barnes-Hut opening criterion */
+ {
+ if(nop->len * nop->len > r2 * All.ErrTolTheta * All.ErrTolTheta)
+ {
+ /* open cell */
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+ else /* check relative opening criterion */
+ {
+ if(mass * nop->len * nop->len > r2 * r2 * aold)
+ {
+ /* open cell */
+ no = nop->u.d.nextnode;
+ continue;
+ }
+
+ /* check in addition whether we lie inside the cell */
+
+ if(fabs(nop->center[0] - pos_x) < 0.60 * nop->len)
+ {
+ if(fabs(nop->center[1] - pos_y) < 0.60 * nop->len)
+ {
+ if(fabs(nop->center[2] - pos_z) < 0.60 * nop->len)
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+ }
+ }
+
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ h = All.ForceSoftening[ptype];
+ maxsofttype = (nop->u.d.bitflags >> 2) & 7;
+ if(maxsofttype == 7) /* may only occur for zero mass top-level nodes */
+ {
+ if(mass > 0)
+ endrun(986);
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ else
+ {
+ if(h < All.ForceSoftening[maxsofttype])
+ {
+ h = All.ForceSoftening[maxsofttype];
+ if(r2 < h * h)
+ {
+ if(((nop->u.d.bitflags >> 5) & 1)) /* bit-5 signals that there are particles of different softening in the node */
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+ }
+ }
+#else
+ if(ptype == 0)
+ h = soft;
+ else
+ h = All.ForceSoftening[ptype];
+
+ if(h < nop->maxsoft)
+ {
+ h = nop->maxsoft;
+ if(r2 < h * h)
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+#endif
+#endif
+
+ no = nop->u.d.sibling; /* ok, node can be used */
+
+ if(mode == 1)
+ {
+ if(((nop->u.d.bitflags) & 1)) /* Bit 0 signals that this node belongs to top-level tree */
+ continue;
+ }
+ }
+
+ r = sqrt(r2);
+
+ if(r >= h)
+ fac = mass / (r2 * r);
+ else
+ {
+#ifdef UNEQUALSOFTENINGS
+ h_inv = 1.0 / h;
+ h3_inv = h_inv * h_inv * h_inv;
+#endif
+ u = r * h_inv;
+ if(u < 0.5)
+ fac = mass * h3_inv * (10.666666666667 + u * u * (32.0 * u - 38.4));
+ else
+ fac =
+ mass * h3_inv * (21.333333333333 - 48.0 * u +
+ 38.4 * u * u - 10.666666666667 * u * u * u - 0.066666666667 / (u * u * u));
+ }
+
+ acc_x += dx * fac;
+ acc_y += dy * fac;
+ acc_z += dz * fac;
+
+#ifdef STELLAR_FLUX
+ if (type==0) /* gas particle */
+ {
+
+ hf = All.SofteningTable[type];
+
+ flux += starlum / (4*PI) / (r2 + hf*hf) ;
+
+ //if ((target==0)&&(starlum!=0))
+ // printf("flux flux=%g\n",flux);
+ //if ((target==0)&&(starlum!=0))
+ // printf("flux r=%g starlum=%g mass=%g h=%g no=%d\n",sqrt(r2),starlum,mass,hf,no);
+
+
+ //if(r >= hf)
+ // flux += starlum/All.HeatingPeLMRatio/ (4*PI) / r2 ;
+ //else
+ // flux += starlum/All.HeatingPeLMRatio/ (4*PI) / (r2 + hf*hf) ;
+ }
+#endif
+
+
+ ninteractions++;
+ }
+
+
+ /* store result at the proper place */
+ if(mode == 0)
+ {
+ P[target].GravAccel[0] = acc_x;
+ P[target].GravAccel[1] = acc_y;
+ P[target].GravAccel[2] = acc_z;
+#ifdef STELLAR_FLUX
+ if (P[target].Type==0) /* only for gas */
+ SphP[target].EnergyFlux = flux;
+#endif
+ P[target].GravCost = ninteractions;
+ }
+ else
+ {
+ GravDataResult[target].u.Acc[0] = acc_x;
+ GravDataResult[target].u.Acc[1] = acc_y;
+ GravDataResult[target].u.Acc[2] = acc_z;
+#ifdef STELLAR_FLUX
+ GravDataResult[target].EnergyFlux = flux;
+#endif
+ GravDataResult[target].w.Ninteractions = ninteractions;
+ }
+
+#ifdef PERIODIC
+ *ewaldcountsum += force_treeevaluate_ewald_correction(target, mode, pos_x, pos_y, pos_z, aold);
+#endif
+
+ return ninteractions;
+}
+
+
+
+
+
+
+#ifdef PMGRID
+/*! In the TreePM algorithm, the tree is walked only locally around the
+ * target coordinate. Tree nodes that fall outside a box of half
+ * side-length Rcut= RCUT*ASMTH*MeshSize can be discarded. The short-range
+ * potential is modified by a complementary error function, multiplied
+ * with the Newtonian form. The resulting short-range suppression compared
+ * to the Newtonian force is tabulated, because looking up from this table
+ * is faster than recomputing the corresponding factor, despite the
+ * memory-access panelty (which reduces cache performance) incurred by the
+ * table.
+ */
+int force_treeevaluate_shortrange(int target, int mode)
+{
+ struct NODE *nop = 0;
+ int no, ptype, ninteractions, tabindex;
+ double r2, dx, dy, dz, mass, r, fac, u, h, h_inv, h3_inv;
+ double acc_x, acc_y, acc_z, pos_x, pos_y, pos_z, aold;
+ double eff_dist;
+ double rcut, asmth, asmthfac, rcut2, dist;
+#if defined(UNEQUALSOFTENINGS) && !defined(ADAPTIVE_GRAVSOFT_FORGAS)
+ int maxsofttype;
+#endif
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ double soft = 0;
+#endif
+#ifdef PERIODIC
+ double boxsize, boxhalf;
+
+ boxsize = All.BoxSize;
+ boxhalf = 0.5 * All.BoxSize;
+#endif
+
+
+ acc_x = 0;
+ acc_y = 0;
+ acc_z = 0;
+ ninteractions = 0;
+
+ if(mode == 0)
+ {
+ pos_x = P[target].Pos[0];
+ pos_y = P[target].Pos[1];
+ pos_z = P[target].Pos[2];
+ ptype = P[target].Type;
+ aold = All.ErrTolForceAcc * P[target].OldAcc;
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(ptype == 0)
+ soft = SphP[target].Hsml;
+#endif
+ }
+ else
+ {
+ pos_x = GravDataGet[target].u.Pos[0];
+ pos_y = GravDataGet[target].u.Pos[1];
+ pos_z = GravDataGet[target].u.Pos[2];
+#ifdef UNEQUALSOFTENINGS
+ ptype = GravDataGet[target].Type;
+#else
+ ptype = P[0].Type;
+#endif
+ aold = All.ErrTolForceAcc * GravDataGet[target].w.OldAcc;
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(ptype == 0)
+ soft = GravDataGet[target].Soft;
+#endif
+ }
+
+ rcut = All.Rcut[0];
+ asmth = All.Asmth[0];
+#ifdef PLACEHIGHRESREGION
+ if(((1 << ptype) & (PLACEHIGHRESREGION)))
+ {
+ rcut = All.Rcut[1];
+ asmth = All.Asmth[1];
+ }
+#endif
+ rcut2 = rcut * rcut;
+
+ asmthfac = 0.5 / asmth * (NTAB / 3.0);
+
+#ifndef UNEQUALSOFTENINGS
+ h = All.ForceSoftening[ptype];
+ h_inv = 1.0 / h;
+ h3_inv = h_inv * h_inv * h_inv;
+#endif
+ no = All.MaxPart; /* root node */
+
+ while(no >= 0)
+ {
+ if(no < All.MaxPart)
+ {
+ /* the index of the node is the index of the particle */
+ dx = P[no].Pos[0] - pos_x;
+ dy = P[no].Pos[1] - pos_y;
+ dz = P[no].Pos[2] - pos_z;
+#ifdef PERIODIC
+ dx = NEAREST(dx);
+ dy = NEAREST(dy);
+ dz = NEAREST(dz);
+#endif
+ r2 = dx * dx + dy * dy + dz * dz;
+
+ mass = P[no].Mass;
+#ifdef UNEQUALSOFTENINGS
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(ptype == 0)
+ h = soft;
+ else
+ h = All.ForceSoftening[ptype];
+
+ if(P[no].Type == 0)
+ {
+ if(h < SphP[no].Hsml)
+ h = SphP[no].Hsml;
+ }
+ else
+ {
+ if(h < All.ForceSoftening[P[no].Type])
+ h = All.ForceSoftening[P[no].Type];
+ }
+#else
+ h = All.ForceSoftening[ptype];
+ if(h < All.ForceSoftening[P[no].Type])
+ h = All.ForceSoftening[P[no].Type];
+#endif
+#endif
+ no = Nextnode[no];
+ }
+ else /* we have an internal node */
+ {
+ if(no >= All.MaxPart + MaxNodes) /* pseudo particle */
+ {
+ if(mode == 0)
+ {
+ Exportflag[DomainTask[no - (All.MaxPart + MaxNodes)]] = 1;
+ }
+ no = Nextnode[no - MaxNodes];
+ continue;
+ }
+
+ nop = &Nodes[no];
+
+ if(mode == 1)
+ {
+ if((nop->u.d.bitflags & 3) == 1) /* if it's a top-level node
+ * which does not contain
+ * local particles we can
+ * continue at this point
+ */
+ {
+ no = nop->u.d.sibling;
+ continue;
+ }
+ }
+
+ mass = nop->u.d.mass;
+
+ dx = nop->u.d.s[0] - pos_x;
+ dy = nop->u.d.s[1] - pos_y;
+ dz = nop->u.d.s[2] - pos_z;
+#ifdef PERIODIC
+ dx = NEAREST(dx);
+ dy = NEAREST(dy);
+ dz = NEAREST(dz);
+#endif
+ r2 = dx * dx + dy * dy + dz * dz;
+
+ if(r2 > rcut2)
+ {
+ /* check whether we can stop walking along this branch */
+ eff_dist = rcut + 0.5 * nop->len;
+#ifdef PERIODIC
+ dist = NEAREST(nop->center[0] - pos_x);
+#else
+ dist = nop->center[0] - pos_x;
+#endif
+ if(dist < -eff_dist || dist > eff_dist)
+ {
+ no = nop->u.d.sibling;
+ continue;
+ }
+#ifdef PERIODIC
+ dist = NEAREST(nop->center[1] - pos_y);
+#else
+ dist = nop->center[1] - pos_y;
+#endif
+ if(dist < -eff_dist || dist > eff_dist)
+ {
+ no = nop->u.d.sibling;
+ continue;
+ }
+#ifdef PERIODIC
+ dist = NEAREST(nop->center[2] - pos_z);
+#else
+ dist = nop->center[2] - pos_z;
+#endif
+ if(dist < -eff_dist || dist > eff_dist)
+ {
+ no = nop->u.d.sibling;
+ continue;
+ }
+ }
+
+
+ if(All.ErrTolTheta) /* check Barnes-Hut opening criterion */
+ {
+ if(nop->len * nop->len > r2 * All.ErrTolTheta * All.ErrTolTheta)
+ {
+ /* open cell */
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+ else /* check relative opening criterion */
+ {
+ if(mass * nop->len * nop->len > r2 * r2 * aold)
+ {
+ /* open cell */
+ no = nop->u.d.nextnode;
+ continue;
+ }
+
+ /* check in addition whether we lie inside the cell */
+
+ if(fabs(nop->center[0] - pos_x) < 0.60 * nop->len)
+ {
+ if(fabs(nop->center[1] - pos_y) < 0.60 * nop->len)
+ {
+ if(fabs(nop->center[2] - pos_z) < 0.60 * nop->len)
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+ }
+ }
+
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ h = All.ForceSoftening[ptype];
+ maxsofttype = (nop->u.d.bitflags >> 2) & 7;
+ if(maxsofttype == 7) /* may only occur for zero mass top-level nodes */
+ {
+ if(mass > 0)
+ endrun(987);
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ else
+ {
+ if(h < All.ForceSoftening[maxsofttype])
+ {
+ h = All.ForceSoftening[maxsofttype];
+ if(r2 < h * h)
+ {
+ if(((nop->u.d.bitflags >> 5) & 1)) /* bit-5 signals that there are particles of different softening in the node */
+ {
+ no = nop->u.d.nextnode;
+
+ continue;
+ }
+ }
+ }
+ }
+#else
+ if(ptype == 0)
+ h = soft;
+ else
+ h = All.ForceSoftening[ptype];
+
+ if(h < nop->maxsoft)
+ {
+ h = nop->maxsoft;
+ if(r2 < h * h)
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+#endif
+#endif
+ no = nop->u.d.sibling; /* ok, node can be used */
+
+ if(mode == 1)
+ {
+ if(((nop->u.d.bitflags) & 1)) /* Bit 0 signals that this node belongs to top-level tree */
+ continue;
+ }
+ }
+
+ r = sqrt(r2);
+
+ if(r >= h)
+ fac = mass / (r2 * r);
+ else
+ {
+#ifdef UNEQUALSOFTENINGS
+ h_inv = 1.0 / h;
+ h3_inv = h_inv * h_inv * h_inv;
+#endif
+ u = r * h_inv;
+ if(u < 0.5)
+ fac = mass * h3_inv * (10.666666666667 + u * u * (32.0 * u - 38.4));
+ else
+ fac =
+ mass * h3_inv * (21.333333333333 - 48.0 * u +
+ 38.4 * u * u - 10.666666666667 * u * u * u - 0.066666666667 / (u * u * u));
+ }
+
+ tabindex = (int) (asmthfac * r);
+
+ if(tabindex < NTAB)
+ {
+ fac *= shortrange_table[tabindex];
+
+ acc_x += dx * fac;
+ acc_y += dy * fac;
+ acc_z += dz * fac;
+
+ ninteractions++;
+ }
+ }
+
+
+ /* store result at the proper place */
+ if(mode == 0)
+ {
+ P[target].GravAccel[0] = acc_x;
+ P[target].GravAccel[1] = acc_y;
+ P[target].GravAccel[2] = acc_z;
+ P[target].GravCost = ninteractions;
+ }
+ else
+ {
+ GravDataResult[target].u.Acc[0] = acc_x;
+ GravDataResult[target].u.Acc[1] = acc_y;
+ GravDataResult[target].u.Acc[2] = acc_z;
+ GravDataResult[target].w.Ninteractions = ninteractions;
+ }
+
+ return ninteractions;
+}
+
+#endif
+
+
+
+#ifdef PERIODIC
+/*! This function computes the Ewald correction, and is needed if periodic
+ * boundary conditions together with a pure tree algorithm are used. Note
+ * that the ordinary tree walk does not carry out this correction directly
+ * as it was done in Gadget-1.1. Instead, the tree is walked a second
+ * time. This is actually faster because the "Ewald-Treewalk" can use a
+ * different opening criterion than the normal tree walk. In particular,
+ * the Ewald correction is negligible for particles that are very close,
+ * but it is large for particles that are far away (this is quite
+ * different for the normal direct force). So we can here use a different
+ * opening criterion. Sufficient accuracy is usually obtained if the node
+ * length has dropped to a certain fraction ~< 0.25 of the
+ * BoxLength. However, we may only short-cut the interaction list of the
+ * normal full Ewald tree walk if we are sure that the whole node and all
+ * daughter nodes "lie on the same side" of the periodic boundary,
+ * i.e. that the real tree walk would not find a daughter node or particle
+ * that was mapped to a different nearest neighbour position when the tree
+ * walk would be further refined.
+ */
+int force_treeevaluate_ewald_correction(int target, int mode, double pos_x, double pos_y, double pos_z,
+ double aold)
+{
+ struct NODE *nop = 0;
+ int no, cost;
+ double dx, dy, dz, mass, r2;
+ int signx, signy, signz;
+ int i, j, k, openflag;
+ double u, v, w;
+ double f1, f2, f3, f4, f5, f6, f7, f8;
+ double acc_x, acc_y, acc_z;
+ double boxsize, boxhalf;
+
+ boxsize = All.BoxSize;
+ boxhalf = 0.5 * All.BoxSize;
+
+ acc_x = 0;
+ acc_y = 0;
+ acc_z = 0;
+ cost = 0;
+
+ no = All.MaxPart;
+
+ while(no >= 0)
+ {
+ if(no < All.MaxPart) /* single particle */
+ {
+ /* the index of the node is the index of the particle */
+ /* observe the sign */
+
+ dx = P[no].Pos[0] - pos_x;
+ dy = P[no].Pos[1] - pos_y;
+ dz = P[no].Pos[2] - pos_z;
+ mass = P[no].Mass;
+ }
+ else
+ {
+ if(no >= All.MaxPart + MaxNodes) /* pseudo particle */
+ {
+ if(mode == 0)
+ {
+ Exportflag[DomainTask[no - (All.MaxPart + MaxNodes)]] = 1;
+ }
+
+ no = Nextnode[no - MaxNodes];
+ continue;
+ }
+
+ nop = &Nodes[no];
+ dx = nop->u.d.s[0] - pos_x;
+ dy = nop->u.d.s[1] - pos_y;
+ dz = nop->u.d.s[2] - pos_z;
+ mass = nop->u.d.mass;
+ }
+
+ dx = NEAREST(dx);
+ dy = NEAREST(dy);
+ dz = NEAREST(dz);
+
+ if(no < All.MaxPart)
+ no = Nextnode[no];
+ else /* we have an internal node. Need to check opening criterion */
+ {
+ openflag = 0;
+
+ r2 = dx * dx + dy * dy + dz * dz;
+
+ if(All.ErrTolTheta) /* check Barnes-Hut opening criterion */
+ {
+ if(nop->len * nop->len > r2 * All.ErrTolTheta * All.ErrTolTheta)
+ {
+ openflag = 1;
+ }
+ }
+ else /* check relative opening criterion */
+ {
+ if(mass * nop->len * nop->len > r2 * r2 * aold)
+ {
+ openflag = 1;
+ }
+ else
+ {
+ if(fabs(nop->center[0] - pos_x) < 0.60 * nop->len)
+ {
+ if(fabs(nop->center[1] - pos_y) < 0.60 * nop->len)
+ {
+ if(fabs(nop->center[2] - pos_z) < 0.60 * nop->len)
+ {
+ openflag = 1;
+ }
+ }
+ }
+ }
+ }
+
+ if(openflag)
+ {
+ /* now we check if we can avoid opening the cell */
+
+ u = nop->center[0] - pos_x;
+ if(u > boxhalf)
+ u -= boxsize;
+ if(u < -boxhalf)
+ u += boxsize;
+
+ if(fabs(u) > 0.5 * (boxsize - nop->len))
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+
+ u = nop->center[1] - pos_y;
+ if(u > boxhalf)
+ u -= boxsize;
+ if(u < -boxhalf)
+ u += boxsize;
+
+ if(fabs(u) > 0.5 * (boxsize - nop->len))
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+
+ u = nop->center[2] - pos_z;
+ if(u > boxhalf)
+ u -= boxsize;
+ if(u < -boxhalf)
+ u += boxsize;
+
+ if(fabs(u) > 0.5 * (boxsize - nop->len))
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+
+ /* if the cell is too large, we need to refine
+ * it further
+ */
+ if(nop->len > 0.20 * boxsize)
+ {
+ /* cell is too large */
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+
+ no = nop->u.d.sibling; /* ok, node can be used */
+
+ if(mode == 1)
+ {
+ if((nop->u.d.bitflags & 1)) /* Bit 0 signals that this node belongs to top-level tree */
+ continue;
+ }
+ }
+
+ /* compute the Ewald correction force */
+
+ if(dx < 0)
+ {
+ dx = -dx;
+ signx = +1;
+ }
+ else
+ signx = -1;
+
+ if(dy < 0)
+ {
+ dy = -dy;
+ signy = +1;
+ }
+ else
+ signy = -1;
+
+ if(dz < 0)
+ {
+ dz = -dz;
+ signz = +1;
+ }
+ else
+ signz = -1;
+
+ u = dx * fac_intp;
+ i = (int) u;
+ if(i >= EN)
+ i = EN - 1;
+ u -= i;
+ v = dy * fac_intp;
+ j = (int) v;
+ if(j >= EN)
+ j = EN - 1;
+ v -= j;
+ w = dz * fac_intp;
+ k = (int) w;
+ if(k >= EN)
+ k = EN - 1;
+ w -= k;
+
+ /* compute factors for trilinear interpolation */
+
+ f1 = (1 - u) * (1 - v) * (1 - w);
+ f2 = (1 - u) * (1 - v) * (w);
+ f3 = (1 - u) * (v) * (1 - w);
+ f4 = (1 - u) * (v) * (w);
+ f5 = (u) * (1 - v) * (1 - w);
+ f6 = (u) * (1 - v) * (w);
+ f7 = (u) * (v) * (1 - w);
+ f8 = (u) * (v) * (w);
+
+ acc_x += mass * signx * (fcorrx[i][j][k] * f1 +
+ fcorrx[i][j][k + 1] * f2 +
+ fcorrx[i][j + 1][k] * f3 +
+ fcorrx[i][j + 1][k + 1] * f4 +
+ fcorrx[i + 1][j][k] * f5 +
+ fcorrx[i + 1][j][k + 1] * f6 +
+ fcorrx[i + 1][j + 1][k] * f7 + fcorrx[i + 1][j + 1][k + 1] * f8);
+
+ acc_y += mass * signy * (fcorry[i][j][k] * f1 +
+ fcorry[i][j][k + 1] * f2 +
+ fcorry[i][j + 1][k] * f3 +
+ fcorry[i][j + 1][k + 1] * f4 +
+ fcorry[i + 1][j][k] * f5 +
+ fcorry[i + 1][j][k + 1] * f6 +
+ fcorry[i + 1][j + 1][k] * f7 + fcorry[i + 1][j + 1][k + 1] * f8);
+
+ acc_z += mass * signz * (fcorrz[i][j][k] * f1 +
+ fcorrz[i][j][k + 1] * f2 +
+ fcorrz[i][j + 1][k] * f3 +
+ fcorrz[i][j + 1][k + 1] * f4 +
+ fcorrz[i + 1][j][k] * f5 +
+ fcorrz[i + 1][j][k + 1] * f6 +
+ fcorrz[i + 1][j + 1][k] * f7 + fcorrz[i + 1][j + 1][k + 1] * f8);
+ cost++;
+ }
+
+
+ /* add the result at the proper place */
+
+ if(mode == 0)
+ {
+ P[target].GravAccel[0] += acc_x;
+ P[target].GravAccel[1] += acc_y;
+ P[target].GravAccel[2] += acc_z;
+ P[target].GravCost += cost;
+ }
+ else
+ {
+ GravDataResult[target].u.Acc[0] += acc_x;
+ GravDataResult[target].u.Acc[1] += acc_y;
+ GravDataResult[target].u.Acc[2] += acc_z;
+ GravDataResult[target].w.Ninteractions += cost;
+ }
+
+ return cost;
+}
+
+#endif
+
+
+
+
+
+
+/*! This routine computes the gravitational potential by walking the
+ * tree. The same opening criteria is used as for the gravitational force
+ * walk.
+ */
+void force_treeevaluate_potential(int target, int mode)
+{
+ struct NODE *nop = 0;
+ int no, ptype;
+ double r2, dx, dy, dz, mass, r, u, h, h_inv, wp;
+ double pot, pos_x, pos_y, pos_z, aold;
+#if defined(UNEQUALSOFTENINGS) && !defined(ADAPTIVE_GRAVSOFT_FORGAS)
+ int maxsofttype;
+#endif
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ double soft = 0;
+#endif
+#ifdef PERIODIC
+ double boxsize, boxhalf;
+
+ boxsize = All.BoxSize;
+ boxhalf = 0.5 * All.BoxSize;
+#endif
+
+ pot = 0;
+
+ if(mode == 0)
+ {
+ pos_x = P[target].Pos[0];
+ pos_y = P[target].Pos[1];
+ pos_z = P[target].Pos[2];
+ ptype = P[target].Type;
+ aold = All.ErrTolForceAcc * P[target].OldAcc;
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(ptype == 0)
+ soft = SphP[target].Hsml;
+#endif
+ }
+ else
+ {
+ pos_x = GravDataGet[target].u.Pos[0];
+ pos_y = GravDataGet[target].u.Pos[1];
+ pos_z = GravDataGet[target].u.Pos[2];
+#ifdef UNEQUALSOFTENINGS
+ ptype = GravDataGet[target].Type;
+#else
+ ptype = P[0].Type;
+#endif
+ aold = All.ErrTolForceAcc * GravDataGet[target].w.OldAcc;
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(ptype == 0)
+ soft = GravDataGet[target].Soft;
+#endif
+ }
+
+
+#ifndef UNEQUALSOFTENINGS
+ h = All.ForceSoftening[ptype];
+ h_inv = 1.0 / h;
+#endif
+ no = All.MaxPart;
+
+ while(no >= 0)
+ {
+ if(no < All.MaxPart) /* single particle */
+ {
+ /* the index of the node is the index of the particle */
+ /* observe the sign */
+
+ dx = P[no].Pos[0] - pos_x;
+ dy = P[no].Pos[1] - pos_y;
+ dz = P[no].Pos[2] - pos_z;
+ mass = P[no].Mass;
+ }
+ else
+ {
+ if(no >= All.MaxPart + MaxNodes) /* pseudo particle */
+ {
+ if(mode == 0)
+ {
+ Exportflag[DomainTask[no - (All.MaxPart + MaxNodes)]] = 1;
+ }
+ no = Nextnode[no - MaxNodes];
+ continue;
+ }
+
+ nop = &Nodes[no];
+ dx = nop->u.d.s[0] - pos_x;
+ dy = nop->u.d.s[1] - pos_y;
+ dz = nop->u.d.s[2] - pos_z;
+ mass = nop->u.d.mass;
+ }
+
+#ifdef PERIODIC
+ dx = NEAREST(dx);
+ dy = NEAREST(dy);
+ dz = NEAREST(dz);
+#endif
+ r2 = dx * dx + dy * dy + dz * dz;
+
+ if(no < All.MaxPart)
+ {
+#ifdef UNEQUALSOFTENINGS
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(ptype == 0)
+ h = soft;
+ else
+ h = All.ForceSoftening[ptype];
+
+ if(P[no].Type == 0)
+ {
+ if(h < SphP[no].Hsml)
+ h = SphP[no].Hsml;
+ }
+ else
+ {
+ if(h < All.ForceSoftening[P[no].Type])
+ h = All.ForceSoftening[P[no].Type];
+ }
+#else
+ h = All.ForceSoftening[ptype];
+ if(h < All.ForceSoftening[P[no].Type])
+ h = All.ForceSoftening[P[no].Type];
+#endif
+#endif
+ no = Nextnode[no];
+ }
+ else /* we have an internal node. Need to check opening criterion */
+ {
+ if(mode == 1)
+ {
+ if((nop->u.d.bitflags & 3) == 1) /* if it's a top-level node
+ * which does not contain
+ * local particles we can make
+ * a short-cut
+ */
+ {
+ no = nop->u.d.sibling;
+ continue;
+ }
+ }
+
+ if(All.ErrTolTheta) /* check Barnes-Hut opening criterion */
+ {
+ if(nop->len * nop->len > r2 * All.ErrTolTheta * All.ErrTolTheta)
+ {
+ /* open cell */
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+ else /* check relative opening criterion */
+ {
+ if(mass * nop->len * nop->len > r2 * r2 * aold)
+ {
+ /* open cell */
+ no = nop->u.d.nextnode;
+ continue;
+ }
+
+ if(fabs(nop->center[0] - pos_x) < 0.60 * nop->len)
+ {
+ if(fabs(nop->center[1] - pos_y) < 0.60 * nop->len)
+ {
+ if(fabs(nop->center[2] - pos_z) < 0.60 * nop->len)
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+ }
+ }
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ h = All.ForceSoftening[ptype];
+ maxsofttype = (nop->u.d.bitflags >> 2) & 7;
+ if(maxsofttype == 7) /* may only occur for zero mass top-level nodes */
+ {
+ if(mass > 0)
+ endrun(988);
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ else
+ {
+ if(h < All.ForceSoftening[maxsofttype])
+ {
+ h = All.ForceSoftening[maxsofttype];
+ if(r2 < h * h)
+ {
+ if(((nop->u.d.bitflags >> 5) & 1)) /* bit-5 signals that there are particles of different softening in the node */
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+ }
+ }
+#else
+ if(ptype == 0)
+ h = soft;
+ else
+ h = All.ForceSoftening[ptype];
+
+ if(h < nop->maxsoft)
+ {
+ h = nop->maxsoft;
+ if(r2 < h * h)
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+#endif
+#endif
+
+ no = nop->u.d.sibling; /* node can be used */
+
+ if(mode == 1)
+ {
+ if(((nop->u.d.bitflags) & 1)) /* Bit 0 signals that this node belongs to top-level tree */
+ continue;
+ }
+ }
+
+ r = sqrt(r2);
+
+ if(r >= h)
+ pot -= mass / r;
+ else
+ {
+#ifdef UNEQUALSOFTENINGS
+ h_inv = 1.0 / h;
+#endif
+ u = r * h_inv;
+
+ if(u < 0.5)
+ wp = -2.8 + u * u * (5.333333333333 + u * u * (6.4 * u - 9.6));
+ else
+ wp =
+ -3.2 + 0.066666666667 / u + u * u * (10.666666666667 +
+ u * (-16.0 + u * (9.6 - 2.133333333333 * u)));
+
+ pot += mass * h_inv * wp;
+ }
+#ifdef PERIODIC
+ pot += mass * ewald_pot_corr(dx, dy, dz);
+#endif
+ }
+
+ /* store result at the proper place */
+
+ if(mode == 0)
+ P[target].Potential = pot;
+ else
+ GravDataResult[target].u.Potential = pot;
+}
+
+
+
+
+#ifdef PMGRID
+/*! This function computes the short-range potential when the TreePM
+ * algorithm is used. This potential is the Newtonian potential, modified
+ * by a complementary error function.
+ */
+void force_treeevaluate_potential_shortrange(int target, int mode)
+{
+ struct NODE *nop = 0;
+ int no, ptype, tabindex;
+ double r2, dx, dy, dz, mass, r, u, h, h_inv, wp;
+ double pot, pos_x, pos_y, pos_z, aold;
+ double eff_dist, fac, rcut, asmth, asmthfac;
+ double dxx, dyy, dzz;
+#if defined(UNEQUALSOFTENINGS) && !defined(ADAPTIVE_GRAVSOFT_FORGAS)
+ int maxsofttype;
+#endif
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ double soft = 0;
+#endif
+
+#ifdef PERIODIC
+ double boxsize, boxhalf;
+
+ boxsize = All.BoxSize;
+ boxhalf = 0.5 * All.BoxSize;
+#endif
+
+ pot = 0;
+
+ if(mode == 0)
+ {
+ pos_x = P[target].Pos[0];
+ pos_y = P[target].Pos[1];
+ pos_z = P[target].Pos[2];
+ ptype = P[target].Type;
+ aold = All.ErrTolForceAcc * P[target].OldAcc;
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(ptype == 0)
+ soft = SphP[target].Hsml;
+#endif
+ }
+ else
+ {
+ pos_x = GravDataGet[target].u.Pos[0];
+ pos_y = GravDataGet[target].u.Pos[1];
+ pos_z = GravDataGet[target].u.Pos[2];
+#ifdef UNEQUALSOFTENINGS
+ ptype = GravDataGet[target].Type;
+#else
+ ptype = P[0].Type;
+#endif
+ aold = All.ErrTolForceAcc * GravDataGet[target].w.OldAcc;
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(ptype == 0)
+ soft = GravDataGet[target].Soft;
+#endif
+ }
+
+
+ rcut = All.Rcut[0];
+ asmth = All.Asmth[0];
+#ifdef PLACEHIGHRESREGION
+ if(((1 << ptype) & (PLACEHIGHRESREGION)))
+ {
+ rcut = All.Rcut[1];
+ asmth = All.Asmth[1];
+ }
+#endif
+ asmthfac = 0.5 / asmth * (NTAB / 3.0);
+
+#ifndef UNEQUALSOFTENINGS
+ h = All.ForceSoftening[ptype];
+ h_inv = 1.0 / h;
+#endif
+
+ no = All.MaxPart;
+
+ while(no >= 0)
+ {
+ if(no < All.MaxPart) /* single particle */
+ {
+ /* the index of the node is the index of the particle */
+ /* observe the sign */
+
+ dx = P[no].Pos[0] - pos_x;
+ dy = P[no].Pos[1] - pos_y;
+ dz = P[no].Pos[2] - pos_z;
+ mass = P[no].Mass;
+ }
+ else
+ {
+ if(no >= All.MaxPart + MaxNodes) /* pseudo particle */
+ {
+ if(mode == 0)
+ {
+ Exportflag[DomainTask[no - (All.MaxPart + MaxNodes)]] = 1;
+ }
+ no = Nextnode[no - MaxNodes];
+ continue;
+ }
+
+ nop = &Nodes[no];
+ dx = nop->u.d.s[0] - pos_x;
+ dy = nop->u.d.s[1] - pos_y;
+ dz = nop->u.d.s[2] - pos_z;
+ mass = nop->u.d.mass;
+ }
+
+#ifdef PERIODIC
+ dx = NEAREST(dx);
+ dy = NEAREST(dy);
+ dz = NEAREST(dz);
+#endif
+ r2 = dx * dx + dy * dy + dz * dz;
+
+ if(no < All.MaxPart)
+ {
+#ifdef UNEQUALSOFTENINGS
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(ptype == 0)
+ h = soft;
+ else
+ h = All.ForceSoftening[ptype];
+
+ if(P[no].Type == 0)
+ {
+ if(h < SphP[no].Hsml)
+ h = SphP[no].Hsml;
+ }
+ else
+ {
+ if(h < All.ForceSoftening[P[no].Type])
+ h = All.ForceSoftening[P[no].Type];
+ }
+#else
+ h = All.ForceSoftening[ptype];
+ if(h < All.ForceSoftening[P[no].Type])
+ h = All.ForceSoftening[P[no].Type];
+#endif
+#endif
+ no = Nextnode[no];
+ }
+ else /* we have an internal node. Need to check opening criterion */
+ {
+ /* check whether we can stop walking along this branch */
+ if(no >= All.MaxPart + MaxNodes) /* pseudo particle */
+ {
+ if(mode == 0)
+ {
+ Exportflag[DomainTask[no - (All.MaxPart + MaxNodes)]] = 1;
+ }
+ no = Nextnode[no - MaxNodes];
+ continue;
+ }
+
+ if(mode == 1)
+ {
+ if((nop->u.d.bitflags & 3) == 1) /* if it's a top-level node which does not contain local particles */
+ {
+ no = nop->u.d.sibling;
+ continue;
+ }
+ }
+
+ eff_dist = rcut + 0.5 * nop->len;
+
+ dxx = nop->center[0] - pos_x; /* observe the sign ! */
+ dyy = nop->center[1] - pos_y; /* this vector is -y in my thesis notation */
+ dzz = nop->center[2] - pos_z;
+#ifdef PERIODIC
+ dxx = NEAREST(dxx);
+ dyy = NEAREST(dyy);
+ dzz = NEAREST(dzz);
+#endif
+ if(dxx < -eff_dist || dxx > eff_dist)
+ {
+ no = nop->u.d.sibling;
+ continue;
+ }
+
+ if(dyy < -eff_dist || dyy > eff_dist)
+ {
+ no = nop->u.d.sibling;
+ continue;
+ }
+
+ if(dzz < -eff_dist || dzz > eff_dist)
+ {
+ no = nop->u.d.sibling;
+ continue;
+ }
+
+ if(All.ErrTolTheta) /* check Barnes-Hut opening criterion */
+ {
+ if(nop->len * nop->len > r2 * All.ErrTolTheta * All.ErrTolTheta)
+ {
+ /* open cell */
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+ else /* check relative opening criterion */
+ {
+ if(mass * nop->len * nop->len > r2 * r2 * aold)
+ {
+ /* open cell */
+ no = nop->u.d.nextnode;
+ continue;
+ }
+
+ if(fabs(nop->center[0] - pos_x) < 0.60 * nop->len)
+ {
+ if(fabs(nop->center[1] - pos_y) < 0.60 * nop->len)
+ {
+ if(fabs(nop->center[2] - pos_z) < 0.60 * nop->len)
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+ }
+ }
+
+#ifdef UNEQUALSOFTENINGS
+#ifndef ADAPTIVE_GRAVSOFT_FORGAS
+ h = All.ForceSoftening[ptype];
+ maxsofttype = (nop->u.d.bitflags >> 2) & 7;
+ if(maxsofttype == 7) /* may only occur for zero mass top-level nodes */
+ {
+ if(mass > 0)
+ endrun(989);
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ else
+ {
+ if(h < All.ForceSoftening[maxsofttype])
+ {
+ h = All.ForceSoftening[maxsofttype];
+ if(r2 < h * h)
+ {
+ /* bit-5 signals that there are particles of
+ * different softening in the node
+ */
+ if(((nop->u.d.bitflags >> 5) & 1))
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+ }
+ }
+#else
+ if(ptype == 0)
+ h = soft;
+ else
+ h = All.ForceSoftening[ptype];
+
+ if(h < nop->maxsoft)
+ {
+ h = nop->maxsoft;
+ if(r2 < h * h)
+ {
+ no = nop->u.d.nextnode;
+ continue;
+ }
+ }
+#endif
+#endif
+ no = nop->u.d.sibling; /* node can be used */
+
+ if(mode == 1)
+ {
+ if(((nop->u.d.bitflags) & 1)) /* Bit 0 signals that this node belongs to top-level tree */
+ continue;
+ }
+ }
+
+ r = sqrt(r2);
+
+ tabindex = (int) (r * asmthfac);
+
+ if(tabindex < NTAB)
+ {
+ fac = shortrange_table_potential[tabindex];
+
+ if(r >= h)
+ pot -= fac * mass / r;
+ else
+ {
+#ifdef UNEQUALSOFTENINGS
+ h_inv = 1.0 / h;
+#endif
+ u = r * h_inv;
+
+ if(u < 0.5)
+ wp = -2.8 + u * u * (5.333333333333 + u * u * (6.4 * u - 9.6));
+ else
+ wp =
+ -3.2 + 0.066666666667 / u + u * u * (10.666666666667 +
+ u * (-16.0 + u * (9.6 - 2.133333333333 * u)));
+ pot += fac * mass * h_inv * wp;
+ }
+ }
+ }
+
+
+ /* store result at the proper place */
+ if(mode == 0)
+ P[target].Potential = pot;
+ else
+ GravDataResult[target].u.Potential = pot;
+}
+
+#endif
+
+
+
+/*! This function allocates the memory used for storage of the tree and of
+ * auxiliary arrays needed for tree-walk and link-lists. Usually,
+ * maxnodes approximately equal to 0.7*maxpart is sufficient to store the
+ * tree for up to maxpart particles.
+ */
+void force_treeallocate(int maxnodes, int maxpart)
+{
+ int i;
+ size_t bytes;
+ double allbytes = 0;
+ double u;
+
+ MaxNodes = maxnodes;
+
+ if(!(Nodes_base = malloc(bytes = (MaxNodes + 1) * sizeof(struct NODE))))
+ {
+ printf("failed to allocate memory for %d tree-nodes (%g MB).\n", MaxNodes, bytes / (1024.0 * 1024.0));
+ endrun(3);
+ }
+ allbytes += bytes;
+
+ if(!(Extnodes_base = malloc(bytes = (MaxNodes + 1) * sizeof(struct extNODE))))
+ {
+ printf("failed to allocate memory for %d tree-extnodes (%g MB).\n", MaxNodes,
+ bytes / (1024.0 * 1024.0));
+ endrun(3);
+ }
+ allbytes += bytes;
+
+ Nodes = Nodes_base - All.MaxPart;
+ Extnodes = Extnodes_base - All.MaxPart;
+
+ if(!(Nextnode = malloc(bytes = (maxpart + MAXTOPNODES) * sizeof(int))))
+ {
+ printf("Failed to allocate %d spaces for 'Nextnode' array (%g MB)\n", maxpart + MAXTOPNODES,
+ bytes / (1024.0 * 1024.0));
+ exit(0);
+ }
+ allbytes += bytes;
+
+ if(!(Father = malloc(bytes = (maxpart) * sizeof(int))))
+ {
+ printf("Failed to allocate %d spaces for 'Father' array (%g MB)\n", maxpart, bytes / (1024.0 * 1024.0));
+ exit(0);
+ }
+ allbytes += bytes;
+
+ if(first_flag == 0)
+ {
+ first_flag = 1;
+
+ if(ThisTask == 0)
+ printf("\nAllocated %g MByte for BH-tree. %d\n\n", allbytes / (1024.0 * 1024.0),
+ sizeof(struct NODE) + sizeof(struct extNODE));
+
+ tabfac = NTAB / 3.0;
+
+ for(i = 0; i < NTAB; i++)
+ {
+ u = 3.0 / NTAB * (i + 0.5);
+ shortrange_table[i] = erfc(u) + 2.0 * u / sqrt(M_PI) * exp(-u * u);
+ shortrange_table_potential[i] = erfc(u);
+ }
+ }
+}
+
+
+/*! This function frees the memory allocated for the tree, i.e. it frees
+ * the space allocated by the function force_treeallocate().
+ */
+void force_treefree(void)
+{
+ free(Father);
+ free(Nextnode);
+ free(Extnodes_base);
+ free(Nodes_base);
+}
+
+
+
+
+/*! This function does the force computation with direct summation for the
+ * specified particle in the communication buffer. This can be useful for
+ * debugging purposes, in particular for explicit checks of the force
+ * accuracy.
+ */
+#ifdef FORCETEST
+int force_treeevaluate_direct(int target, int mode)
+{
+ double epsilon;
+ double h, h_inv, dx, dy, dz, r, r2, u, r_inv, fac;
+ int i, ptype;
+ double pos_x, pos_y, pos_z;
+ double acc_x, acc_y, acc_z;
+
+#ifdef PERIODIC
+ double fcorr[3];
+#endif
+#ifdef PERIODIC
+ double boxsize, boxhalf;
+
+ boxsize = All.BoxSize;
+ boxhalf = 0.5 * All.BoxSize;
+#endif
+
+ acc_x = 0;
+ acc_y = 0;
+ acc_z = 0;
+
+ if(mode == 0)
+ {
+ pos_x = P[target].Pos[0];
+ pos_y = P[target].Pos[1];
+ pos_z = P[target].Pos[2];
+ ptype = P[target].Type;
+ }
+ else
+ {
+ pos_x = GravDataGet[target].u.Pos[0];
+ pos_y = GravDataGet[target].u.Pos[1];
+ pos_z = GravDataGet[target].u.Pos[2];
+#ifdef UNEQUALSOFTENINGS
+ ptype = GravDataGet[target].Type;
+#else
+ ptype = P[0].Type;
+#endif
+ }
+
+ for(i = 0; i < NumPart; i++)
+ {
+ epsilon = dmax(All.ForceSoftening[P[i].Type], All.ForceSoftening[ptype]);
+
+ h = epsilon;
+ h_inv = 1 / h;
+
+ dx = P[i].Pos[0] - pos_x;
+ dy = P[i].Pos[1] - pos_y;
+ dz = P[i].Pos[2] - pos_z;
+
+#ifdef PERIODIC
+ while(dx > boxhalf)
+ dx -= boxsize;
+ while(dy > boxhalf)
+ dy -= boxsize;
+ while(dz > boxhalf)
+ dz -= boxsize;
+ while(dx < -boxhalf)
+ dx += boxsize;
+ while(dy < -boxhalf)
+ dy += boxsize;
+ while(dz < -boxhalf)
+ dz += boxsize;
+#endif
+ r2 = dx * dx + dy * dy + dz * dz;
+
+ r = sqrt(r2);
+
+ u = r * h_inv;
+
+ if(u >= 1)
+ {
+ r_inv = 1 / r;
+
+ fac = P[i].Mass * r_inv * r_inv * r_inv;
+ }
+ else
+ {
+ if(u < 0.5)
+ fac = P[i].Mass * h_inv * h_inv * h_inv * (10.666666666667 + u * u * (32.0 * u - 38.4));
+ else
+ fac =
+ P[i].Mass * h_inv * h_inv * h_inv * (21.333333333333 -
+ 48.0 * u + 38.4 * u * u -
+ 10.666666666667 * u * u *
+ u - 0.066666666667 / (u * u * u));
+ }
+
+ acc_x += dx * fac;
+ acc_y += dy * fac;
+ acc_z += dz * fac;
+
+#ifdef PERIODIC
+ if(u > 1.0e-5)
+ {
+ ewald_corr(dx, dy, dz, fcorr);
+
+ acc_x += P[i].Mass * fcorr[0];
+ acc_y += P[i].Mass * fcorr[1];
+ acc_z += P[i].Mass * fcorr[2];
+ }
+#endif
+ }
+
+
+ if(mode == 0)
+ {
+ P[target].GravAccelDirect[0] = acc_x;
+ P[target].GravAccelDirect[1] = acc_y;
+ P[target].GravAccelDirect[2] = acc_z;
+ }
+ else
+ {
+ GravDataResult[target].u.Acc[0] = acc_x;
+ GravDataResult[target].u.Acc[1] = acc_y;
+ GravDataResult[target].u.Acc[2] = acc_z;
+ }
+
+
+ return NumPart;
+}
+#endif
+
+
+/*! This function dumps some of the basic particle data to a file. In case
+ * the tree construction fails, it is called just before the run
+ * terminates with an error message. Examination of the generated file may
+ * then give clues to what caused the problem.
+ */
+void dump_particles(void)
+{
+ FILE *fd;
+ char buffer[200];
+ int i;
+
+ sprintf(buffer, "particles%d.dat", ThisTask);
+ fd = fopen(buffer, "w");
+ my_fwrite(&NumPart, 1, sizeof(int), fd);
+
+ for(i = 0; i < NumPart; i++)
+ my_fwrite(&P[i].Pos[0], 3, sizeof(FLOAT), fd);
+
+ for(i = 0; i < NumPart; i++)
+ my_fwrite(&P[i].Vel[0], 3, sizeof(FLOAT), fd);
+
+ for(i = 0; i < NumPart; i++)
+ my_fwrite(&P[i].ID, 1, sizeof(int), fd);
+
+ fclose(fd);
+}
+
+
+
+#ifdef PERIODIC
+
+/*! This function initializes tables with the correction force and the
+ * correction potential due to the periodic images of a point mass located
+ * at the origin. These corrections are obtained by Ewald summation. (See
+ * Hernquist, Bouchet, Suto, ApJS, 1991, 75, 231) The correction fields
+ * are used to obtain the full periodic force if periodic boundaries
+ * combined with the pure tree algorithm are used. For the TreePM
+ * algorithm, the Ewald correction is not used.
+ *
+ * The correction fields are stored on disk once they are computed. If a
+ * corresponding file is found, they are loaded from disk to speed up the
+ * initialization. The Ewald summation is done in parallel, i.e. the
+ * processors share the work to compute the tables if needed.
+ */
+void ewald_init(void)
+{
+ int i, j, k, beg, len, size, n, task, count;
+ double x[3], force[3];
+ char buf[200];
+ FILE *fd;
+
+ if(ThisTask == 0)
+ {
+ printf("initialize Ewald correction...\n");
+ fflush(stdout);
+ }
+
+#ifdef DOUBLEPRECISION
+ sprintf(buf, "ewald_spc_table_%d_dbl.dat", EN);
+#else
+ sprintf(buf, "ewald_spc_table_%d.dat", EN);
+#endif
+
+
+
+#ifdef ONLY_MASTER_READ_EWALD
+ /* the master check if the file exists */
+ int is_ewald_file=0;
+ if(ThisTask == 0)
+ {
+
+ if((fd = fopen(buf, "r")))
+ {
+
+ printf("\n(%d) reading Ewald tables from file `%s'\n", ThisTask,buf);
+ fflush(stdout);
+
+ my_fread(&fcorrx[0][0][0], sizeof(FLOAT), (EN + 1) * (EN + 1) * (EN + 1), fd);
+ my_fread(&fcorry[0][0][0], sizeof(FLOAT), (EN + 1) * (EN + 1) * (EN + 1), fd);
+ my_fread(&fcorrz[0][0][0], sizeof(FLOAT), (EN + 1) * (EN + 1) * (EN + 1), fd);
+ my_fread(&potcorr[0][0][0], sizeof(FLOAT), (EN + 1) * (EN + 1) * (EN + 1), fd);
+ fclose(fd);
+
+ is_ewald_file=1;
+ }
+ else
+ is_ewald_file=0;
+
+ }
+
+ MPI_Bcast(&is_ewald_file, 1, MPI_INT, 0, MPI_COMM_WORLD);
+
+
+ if (is_ewald_file)
+ {
+
+#ifdef DOUBLEPRECISION
+ MPI_Bcast(&fcorrx[0][0][0], (EN + 1) * (EN + 1) * (EN + 1), MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&fcorry[0][0][0], (EN + 1) * (EN + 1) * (EN + 1), MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&fcorrz[0][0][0], (EN + 1) * (EN + 1) * (EN + 1), MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&potcorr[0][0][0], (EN + 1) * (EN + 1) * (EN + 1), MPI_DOUBLE, 0, MPI_COMM_WORLD);
+#else
+ MPI_Bcast(&fcorrx[0][0][0], (EN + 1) * (EN + 1) * (EN + 1), MPI_FLOAT, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&fcorry[0][0][0], (EN + 1) * (EN + 1) * (EN + 1), MPI_FLOAT, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&fcorrz[0][0][0], (EN + 1) * (EN + 1) * (EN + 1), MPI_FLOAT, 0, MPI_COMM_WORLD);
+ MPI_Bcast(&potcorr[0][0][0], (EN + 1) * (EN + 1) * (EN + 1), MPI_FLOAT, 0, MPI_COMM_WORLD);
+#endif
+
+ }
+
+
+#else
+
+
+ if((fd = fopen(buf, "r")))
+ {
+ if(ThisTask == 0)
+ {
+ printf("\nreading Ewald tables from file `%s'\n", buf);
+ fflush(stdout);
+ }
+
+ my_fread(&fcorrx[0][0][0], sizeof(FLOAT), (EN + 1) * (EN + 1) * (EN + 1), fd);
+ my_fread(&fcorry[0][0][0], sizeof(FLOAT), (EN + 1) * (EN + 1) * (EN + 1), fd);
+ my_fread(&fcorrz[0][0][0], sizeof(FLOAT), (EN + 1) * (EN + 1) * (EN + 1), fd);
+ my_fread(&potcorr[0][0][0], sizeof(FLOAT), (EN + 1) * (EN + 1) * (EN + 1), fd);
+ fclose(fd);
+ }
+
+
+#endif
+ else
+ {
+ if(ThisTask == 0)
+ {
+ printf("\nNo Ewald tables in file `%s' found.\nRecomputing them...\n", buf);
+ fflush(stdout);
+ }
+
+ /* ok, let's recompute things. Actually, we do that in parallel. */
+
+ size = (EN + 1) * (EN + 1) * (EN + 1) / NTask;
+
+
+ beg = ThisTask * size;
+ len = size;
+ if(ThisTask == (NTask - 1))
+ len = (EN + 1) * (EN + 1) * (EN + 1) - beg;
+
+ for(i = 0, count = 0; i <= EN; i++)
+ for(j = 0; j <= EN; j++)
+ for(k = 0; k <= EN; k++)
+ {
+ n = (i * (EN + 1) + j) * (EN + 1) + k;
+ if(n >= beg && n < (beg + len))
+ {
+ if(ThisTask == 0)
+ {
+ if((count % (len / 20)) == 0)
+ {
+ printf("%4.1f percent done\n", count / (len / 100.0));
+ fflush(stdout);
+ }
+ }
+
+ x[0] = 0.5 * ((double) i) / EN;
+ x[1] = 0.5 * ((double) j) / EN;
+ x[2] = 0.5 * ((double) k) / EN;
+
+ ewald_force(i, j, k, x, force);
+
+ fcorrx[i][j][k] = force[0];
+ fcorry[i][j][k] = force[1];
+ fcorrz[i][j][k] = force[2];
+
+ if(i + j + k == 0)
+ potcorr[i][j][k] = 2.8372975;
+ else
+ potcorr[i][j][k] = ewald_psi(x);
+
+ count++;
+ }
+ }
+
+ for(task = 0; task < NTask; task++)
+ {
+ beg = task * size;
+ len = size;
+ if(task == (NTask - 1))
+ len = (EN + 1) * (EN + 1) * (EN + 1) - beg;
+
+#ifdef DOUBLEPRECISION
+ MPI_Bcast(&fcorrx[0][0][beg], len, MPI_DOUBLE, task, MPI_COMM_WORLD);
+ MPI_Bcast(&fcorry[0][0][beg], len, MPI_DOUBLE, task, MPI_COMM_WORLD);
+ MPI_Bcast(&fcorrz[0][0][beg], len, MPI_DOUBLE, task, MPI_COMM_WORLD);
+ MPI_Bcast(&potcorr[0][0][beg], len, MPI_DOUBLE, task, MPI_COMM_WORLD);
+#else
+ MPI_Bcast(&fcorrx[0][0][beg], len, MPI_FLOAT, task, MPI_COMM_WORLD);
+ MPI_Bcast(&fcorry[0][0][beg], len, MPI_FLOAT, task, MPI_COMM_WORLD);
+ MPI_Bcast(&fcorrz[0][0][beg], len, MPI_FLOAT, task, MPI_COMM_WORLD);
+ MPI_Bcast(&potcorr[0][0][beg], len, MPI_FLOAT, task, MPI_COMM_WORLD);
+#endif
+ }
+
+ if(ThisTask == 0)
+ {
+ printf("\nwriting Ewald tables to file `%s'\n", buf);
+ fflush(stdout);
+
+ if((fd = fopen(buf, "w")))
+ {
+ my_fwrite(&fcorrx[0][0][0], sizeof(FLOAT), (EN + 1) * (EN + 1) * (EN + 1), fd);
+ my_fwrite(&fcorry[0][0][0], sizeof(FLOAT), (EN + 1) * (EN + 1) * (EN + 1), fd);
+ my_fwrite(&fcorrz[0][0][0], sizeof(FLOAT), (EN + 1) * (EN + 1) * (EN + 1), fd);
+ my_fwrite(&potcorr[0][0][0], sizeof(FLOAT), (EN + 1) * (EN + 1) * (EN + 1), fd);
+ fclose(fd);
+ }
+ }
+ }
+
+ fac_intp = 2 * EN / All.BoxSize;
+
+ for(i = 0; i <= EN; i++)
+ for(j = 0; j <= EN; j++)
+ for(k = 0; k <= EN; k++)
+ {
+ potcorr[i][j][k] /= All.BoxSize;
+ fcorrx[i][j][k] /= All.BoxSize * All.BoxSize;
+ fcorry[i][j][k] /= All.BoxSize * All.BoxSize;
+ fcorrz[i][j][k] /= All.BoxSize * All.BoxSize;
+ }
+
+ if(ThisTask == 0)
+ {
+ printf("initialization of periodic boundaries finished.\n");
+ fflush(stdout);
+ }
+}
+
+
+/*! This function looks up the correction force due to the infinite number
+ * of periodic particle/node images. We here use trilinear interpolation
+ * to get it from the precomputed tables, which contain one octant
+ * around the target particle at the origin. The other octants are
+ * obtained from it by exploiting the symmetry properties.
+ */
+#ifdef FORCETEST
+void ewald_corr(double dx, double dy, double dz, double *fper)
+{
+ int signx, signy, signz;
+ int i, j, k;
+ double u, v, w;
+ double f1, f2, f3, f4, f5, f6, f7, f8;
+
+ if(dx < 0)
+ {
+ dx = -dx;
+ signx = +1;
+ }
+ else
+ signx = -1;
+
+ if(dy < 0)
+ {
+ dy = -dy;
+ signy = +1;
+ }
+ else
+ signy = -1;
+
+ if(dz < 0)
+ {
+ dz = -dz;
+ signz = +1;
+ }
+ else
+ signz = -1;
+
+ u = dx * fac_intp;
+ i = (int) u;
+ if(i >= EN)
+ i = EN - 1;
+ u -= i;
+ v = dy * fac_intp;
+ j = (int) v;
+ if(j >= EN)
+ j = EN - 1;
+ v -= j;
+ w = dz * fac_intp;
+ k = (int) w;
+ if(k >= EN)
+ k = EN - 1;
+ w -= k;
+
+ f1 = (1 - u) * (1 - v) * (1 - w);
+ f2 = (1 - u) * (1 - v) * (w);
+ f3 = (1 - u) * (v) * (1 - w);
+ f4 = (1 - u) * (v) * (w);
+ f5 = (u) * (1 - v) * (1 - w);
+ f6 = (u) * (1 - v) * (w);
+ f7 = (u) * (v) * (1 - w);
+ f8 = (u) * (v) * (w);
+
+ fper[0] = signx * (fcorrx[i][j][k] * f1 +
+ fcorrx[i][j][k + 1] * f2 +
+ fcorrx[i][j + 1][k] * f3 +
+ fcorrx[i][j + 1][k + 1] * f4 +
+ fcorrx[i + 1][j][k] * f5 +
+ fcorrx[i + 1][j][k + 1] * f6 +
+ fcorrx[i + 1][j + 1][k] * f7 + fcorrx[i + 1][j + 1][k + 1] * f8);
+
+ fper[1] = signy * (fcorry[i][j][k] * f1 +
+ fcorry[i][j][k + 1] * f2 +
+ fcorry[i][j + 1][k] * f3 +
+ fcorry[i][j + 1][k + 1] * f4 +
+ fcorry[i + 1][j][k] * f5 +
+ fcorry[i + 1][j][k + 1] * f6 +
+ fcorry[i + 1][j + 1][k] * f7 + fcorry[i + 1][j + 1][k + 1] * f8);
+
+ fper[2] = signz * (fcorrz[i][j][k] * f1 +
+ fcorrz[i][j][k + 1] * f2 +
+ fcorrz[i][j + 1][k] * f3 +
+ fcorrz[i][j + 1][k + 1] * f4 +
+ fcorrz[i + 1][j][k] * f5 +
+ fcorrz[i + 1][j][k + 1] * f6 +
+ fcorrz[i + 1][j + 1][k] * f7 + fcorrz[i + 1][j + 1][k + 1] * f8);
+}
+#endif
+
+
+/*! This function looks up the correction potential due to the infinite
+ * number of periodic particle/node images. We here use tri-linear
+ * interpolation to get it from the precomputed table, which contains
+ * one octant around the target particle at the origin. The other
+ * octants are obtained from it by exploiting symmetry properties.
+ */
+double ewald_pot_corr(double dx, double dy, double dz)
+{
+ int i, j, k;
+ double u, v, w;
+ double f1, f2, f3, f4, f5, f6, f7, f8;
+
+ if(dx < 0)
+ dx = -dx;
+
+ if(dy < 0)
+ dy = -dy;
+
+ if(dz < 0)
+ dz = -dz;
+
+ u = dx * fac_intp;
+ i = (int) u;
+ if(i >= EN)
+ i = EN - 1;
+ u -= i;
+ v = dy * fac_intp;
+ j = (int) v;
+ if(j >= EN)
+ j = EN - 1;
+ v -= j;
+ w = dz * fac_intp;
+ k = (int) w;
+ if(k >= EN)
+ k = EN - 1;
+ w -= k;
+
+ f1 = (1 - u) * (1 - v) * (1 - w);
+ f2 = (1 - u) * (1 - v) * (w);
+ f3 = (1 - u) * (v) * (1 - w);
+ f4 = (1 - u) * (v) * (w);
+ f5 = (u) * (1 - v) * (1 - w);
+ f6 = (u) * (1 - v) * (w);
+ f7 = (u) * (v) * (1 - w);
+ f8 = (u) * (v) * (w);
+
+ return potcorr[i][j][k] * f1 +
+ potcorr[i][j][k + 1] * f2 +
+ potcorr[i][j + 1][k] * f3 +
+ potcorr[i][j + 1][k + 1] * f4 +
+ potcorr[i + 1][j][k] * f5 +
+ potcorr[i + 1][j][k + 1] * f6 + potcorr[i + 1][j + 1][k] * f7 + potcorr[i + 1][j + 1][k + 1] * f8;
+}
+
+
+
+/*! This function computes the potential correction term by means of Ewald
+ * summation.
+ */
+double ewald_psi(double x[3])
+{
+ double alpha, psi;
+ double r, sum1, sum2, hdotx;
+ double dx[3];
+ int i, n[3], h[3], h2;
+
+ alpha = 2.0;
+
+ for(n[0] = -4, sum1 = 0; n[0] <= 4; n[0]++)
+ for(n[1] = -4; n[1] <= 4; n[1]++)
+ for(n[2] = -4; n[2] <= 4; n[2]++)
+ {
+ for(i = 0; i < 3; i++)
+ dx[i] = x[i] - n[i];
+
+ r = sqrt(dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2]);
+ sum1 += erfc(alpha * r) / r;
+ }
+
+ for(h[0] = -4, sum2 = 0; h[0] <= 4; h[0]++)
+ for(h[1] = -4; h[1] <= 4; h[1]++)
+ for(h[2] = -4; h[2] <= 4; h[2]++)
+ {
+ hdotx = x[0] * h[0] + x[1] * h[1] + x[2] * h[2];
+ h2 = h[0] * h[0] + h[1] * h[1] + h[2] * h[2];
+ if(h2 > 0)
+ sum2 += 1 / (M_PI * h2) * exp(-M_PI * M_PI * h2 / (alpha * alpha)) * cos(2 * M_PI * hdotx);
+ }
+
+ r = sqrt(x[0] * x[0] + x[1] * x[1] + x[2] * x[2]);
+
+ psi = M_PI / (alpha * alpha) - sum1 - sum2 + 1 / r;
+
+ return psi;
+}
+
+
+/*! This function computes the force correction term (difference between full
+ * force of infinite lattice and nearest image) by Ewald summation.
+ */
+void ewald_force(int iii, int jjj, int kkk, double x[3], double force[3])
+{
+ double alpha, r2;
+ double r, val, hdotx, dx[3];
+ int i, h[3], n[3], h2;
+
+ alpha = 2.0;
+
+ for(i = 0; i < 3; i++)
+ force[i] = 0;
+
+ if(iii == 0 && jjj == 0 && kkk == 0)
+ return;
+
+ r2 = x[0] * x[0] + x[1] * x[1] + x[2] * x[2];
+
+ for(i = 0; i < 3; i++)
+ force[i] += x[i] / (r2 * sqrt(r2));
+
+ for(n[0] = -4; n[0] <= 4; n[0]++)
+ for(n[1] = -4; n[1] <= 4; n[1]++)
+ for(n[2] = -4; n[2] <= 4; n[2]++)
+ {
+ for(i = 0; i < 3; i++)
+ dx[i] = x[i] - n[i];
+
+ r = sqrt(dx[0] * dx[0] + dx[1] * dx[1] + dx[2] * dx[2]);
+
+ val = erfc(alpha * r) + 2 * alpha * r / sqrt(M_PI) * exp(-alpha * alpha * r * r);
+
+ for(i = 0; i < 3; i++)
+ force[i] -= dx[i] / (r * r * r) * val;
+ }
+
+ for(h[0] = -4; h[0] <= 4; h[0]++)
+ for(h[1] = -4; h[1] <= 4; h[1]++)
+ for(h[2] = -4; h[2] <= 4; h[2]++)
+ {
+ hdotx = x[0] * h[0] + x[1] * h[1] + x[2] * h[2];
+ h2 = h[0] * h[0] + h[1] * h[1] + h[2] * h[2];
+
+ if(h2 > 0)
+ {
+ val = 2.0 / ((double) h2) * exp(-M_PI * M_PI * h2 / (alpha * alpha)) * sin(2 * M_PI * hdotx);
+
+ for(i = 0; i < 3; i++)
+ force[i] -= h[i] * val;
+ }
+ }
+}
+
+#endif
diff --git a/clusters/user/GEAR/src/global.c b/clusters/user/GEAR/src/global.c
new file mode 100644
index 0000000..e79a6b3
--- /dev/null
+++ b/clusters/user/GEAR/src/global.c
@@ -0,0 +1,379 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file global.c
+ * \brief Computes global physical properties of the system
+ */
+
+
+/*! This routine computes various global properties of the particle
+ * distribution and stores the result in the struct `SysState'.
+ * Currently, not all the information that's computed here is actually
+ * used (e.g. momentum is not really used anywhere), just the energies are
+ * written to a log-file every once in a while.
+ */
+void compute_global_quantities_of_system(void)
+{
+ int i, j, n;
+ struct state_of_system sys;
+ double a1, a2, a3;
+ double entr = 0, egyspec, vel[3];
+#ifdef AGN_HEATING
+ double especagnheat = 0;
+#endif
+#ifdef SFR
+ /* see starformation.c */
+#endif
+ double dt_entr, dt_gravkick, dt_hydrokick;
+
+
+
+ if(All.ComovingIntegrationOn)
+ {
+ a1 = All.Time;
+ a2 = All.Time * All.Time;
+ a3 = All.Time * All.Time * All.Time;
+ }
+ else
+ {
+ a1 = a2 = a3 = 1;
+ }
+
+
+ for(n = 0; n < 6; n++)
+ {
+ sys.MassComp[n] = sys.EnergyKinComp[n] = sys.EnergyPotComp[n] = sys.EnergyIntComp[n] = 0;
+#ifdef COOLING
+ sys.EnergyRadSphComp[n] = 0;
+#endif
+#ifdef AGN_HEATING
+ sys.EnergyAGNHeatComp[n] = 0;
+#endif
+ for(j = 0; j < 4; j++)
+ sys.CenterOfMassComp[n][j] = sys.MomentumComp[n][j] = sys.AngMomentumComp[n][j] = 0;
+ }
+
+
+
+
+#ifdef SFR
+ rearrange_particle_sequence();
+#endif
+
+
+ for(i = 0; i < NumPart; i++)
+ {
+ sys.MassComp[P[i].Type] += P[i].Mass;
+
+
+ sys.EnergyPotComp[P[i].Type] += 0.5 * P[i].Mass * P[i].Potential / a1;
+
+ if(All.ComovingIntegrationOn)
+ {
+ dt_entr = (All.Ti_Current - (P[i].Ti_begstep + P[i].Ti_endstep) / 2) * All.Timebase_interval;
+ dt_gravkick = get_gravkick_factor(P[i].Ti_begstep, All.Ti_Current) -
+ get_gravkick_factor(P[i].Ti_begstep, (P[i].Ti_begstep + P[i].Ti_endstep) / 2);
+ dt_hydrokick = get_hydrokick_factor(P[i].Ti_begstep, All.Ti_Current) -
+ get_hydrokick_factor(P[i].Ti_begstep, (P[i].Ti_begstep + P[i].Ti_endstep) / 2);
+ }
+ else
+ dt_entr = dt_gravkick = dt_hydrokick =
+ (All.Ti_Current - (P[i].Ti_begstep + P[i].Ti_endstep) / 2) * All.Timebase_interval;
+
+ for(j = 0; j < 3; j++)
+ {
+ vel[j] = P[i].Vel[j] + P[i].GravAccel[j] * dt_gravkick;
+
+ if(P[i].Type == 0)
+ vel[j] += SphP[i].HydroAccel[j] * dt_hydrokick;
+ }
+ if(P[i].Type == 0)
+ {
+ entr = SphP[i].Entropy + SphP[i].DtEntropy * dt_entr;
+#ifdef AGN_HEATING
+ especagnheat = SphP[i].EgySpecAGNHeat + SphP[i].DtEgySpecAGNHeat * dt_entr;
+#endif
+#ifdef SFR
+ /* see starformation.c */
+#endif
+
+ }
+#ifdef PMGRID
+ if(All.ComovingIntegrationOn)
+ dt_gravkick = get_gravkick_factor(All.PM_Ti_begstep, All.Ti_Current) -
+ get_gravkick_factor(All.PM_Ti_begstep, (All.PM_Ti_begstep + All.PM_Ti_endstep) / 2);
+ else
+ dt_gravkick = (All.Ti_Current - (All.PM_Ti_begstep + All.PM_Ti_endstep) / 2) * All.Timebase_interval;
+
+ for(j = 0; j < 3; j++)
+ vel[j] += P[i].GravPM[j] * dt_gravkick;
+#endif
+
+ sys.EnergyKinComp[P[i].Type] +=
+ 0.5 * P[i].Mass * (vel[0] * vel[0] + vel[1] * vel[1] + vel[2] * vel[2]) / a2;
+
+ if(P[i].Type == 0)
+ {
+#ifdef ISOTHERM_EQS
+ egyspec = entr;
+#else
+#ifdef MULTIPHASE
+ if (SphP[i].Phase== GAS_SPH)
+ egyspec = entr / (GAMMA_MINUS1) * pow(SphP[i].Density / a3, GAMMA_MINUS1);
+ else
+ egyspec = entr;
+#else
+ egyspec = entr / (GAMMA_MINUS1) * pow(SphP[i].Density / a3, GAMMA_MINUS1);
+
+#endif
+ if(All.MinEgySpec)
+ egyspec = dmax(All.MinEgySpec,egyspec);
+#endif
+ sys.EnergyIntComp[0] += P[i].Mass * egyspec;
+#ifdef AGN_HEATING
+ sys.EnergyAGNHeatComp[0] += P[i].Mass * especagnheat;
+#endif
+#ifdef SFR
+ /* see starformation.c */
+#endif
+ }
+
+
+
+ for(j = 0; j < 3; j++)
+ {
+ sys.MomentumComp[P[i].Type][j] += P[i].Mass * vel[j];
+ sys.CenterOfMassComp[P[i].Type][j] += P[i].Mass * P[i].Pos[j];
+ }
+
+ sys.AngMomentumComp[P[i].Type][0] += P[i].Mass * (P[i].Pos[1] * vel[2] - P[i].Pos[2] * vel[1]);
+ sys.AngMomentumComp[P[i].Type][1] += P[i].Mass * (P[i].Pos[2] * vel[0] - P[i].Pos[0] * vel[2]);
+ sys.AngMomentumComp[P[i].Type][2] += P[i].Mass * (P[i].Pos[0] * vel[1] - P[i].Pos[1] * vel[0]);
+ }
+
+/* count energy lost by different processes */
+
+#ifdef COOLING
+ sys.EnergyRadSphComp[0]=LocalSysState.RadiatedEnergy;
+#endif
+
+#ifdef SFR
+ sys.EnergyIntComp[ST]=LocalSysState.StarEnergyInt;
+#endif
+
+
+/* count thermal feedback */
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ sys.EnergyThermalFeedbackComp[0]=LocalSysState.EnergyThermalFeedback;
+ for(i = 1; i < 6; i++)
+ sys.EnergyThermalFeedbackComp[i]=0;
+#endif
+/* count kinetic feedback */
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ sys.EnergyKineticFeedbackComp[0]=LocalSysState.EnergyKineticFeedback;
+ for(i = 1; i < 6; i++)
+ sys.EnergyKineticFeedbackComp[i]=0;
+#endif
+/* count sticky */
+#ifdef MULTIPHASE
+ sys.EnergyRadStickyComp[0]=LocalSysState.EnergyRadSticky;
+ for(i = 1; i < 6; i++)
+ sys.EnergyRadStickyComp[i]=0;
+#endif
+/* count feedback wind */
+#ifdef FEEDBACK_WIND
+ sys.EnergyFeedbackWindComp[0]=LocalSysState.EnergyFeedbackWind;
+ for(i = 1; i < 6; i++)
+ sys.EnergyFeedbackWindComp[i]=0;
+#endif
+
+
+ /* some the stuff over all processors */
+ MPI_Reduce(&sys.MassComp[0], &SysState.MassComp[0], 6, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&sys.EnergyPotComp[0], &SysState.EnergyPotComp[0], 6, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&sys.EnergyIntComp[0], &SysState.EnergyIntComp[0], 6, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+#ifdef COOLING
+ MPI_Reduce(&sys.EnergyRadSphComp[0], &SysState.EnergyRadSphComp[0], 6, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+#endif
+#ifdef AGN_HEATING
+ MPI_Reduce(&sys.EnergyAGNHeatComp[0], &SysState.EnergyAGNHeatComp[0], 6, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+#endif
+
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ MPI_Reduce(&sys.EnergyThermalFeedbackComp[0], &SysState.EnergyThermalFeedbackComp[0], 6, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ MPI_Reduce(&sys.EnergyKineticFeedbackComp[0], &SysState.EnergyKineticFeedbackComp[0], 6, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+#endif
+#ifdef MULTIPHASE
+ MPI_Reduce(&sys.EnergyRadStickyComp[0], &SysState.EnergyRadStickyComp[0], 6, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+#endif
+#ifdef FEEDBACK_WIND
+ MPI_Reduce(&sys.EnergyFeedbackWindComp[0], &SysState.EnergyFeedbackWindComp[0], 6, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+#endif
+
+
+ MPI_Reduce(&sys.EnergyKinComp[0], &SysState.EnergyKinComp[0], 6, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&sys.MomentumComp[0][0], &SysState.MomentumComp[0][0], 6 * 4, MPI_DOUBLE, MPI_SUM, 0,
+ MPI_COMM_WORLD);
+ MPI_Reduce(&sys.AngMomentumComp[0][0], &SysState.AngMomentumComp[0][0], 6 * 4, MPI_DOUBLE, MPI_SUM, 0,
+ MPI_COMM_WORLD);
+ MPI_Reduce(&sys.CenterOfMassComp[0][0], &SysState.CenterOfMassComp[0][0], 6 * 4, MPI_DOUBLE, MPI_SUM, 0,
+ MPI_COMM_WORLD);
+
+
+#ifdef BUBBLES
+ SysState.EnergyBubblesComp[0]=All.EnergyBubbles;
+ for(i = 1; i < 6; i++)
+ SysState.EnergyBubblesComp[i]=0;
+#endif
+
+
+
+
+
+
+ if(ThisTask == 0)
+ {
+ for(i = 0; i < 6; i++)
+ {
+ SysState.EnergyTotComp[i] = SysState.EnergyKinComp[i]
+ + SysState.EnergyPotComp[i]
+ + SysState.EnergyIntComp[i];
+#ifdef COOLING
+ SysState.EnergyTotComp[i] += SysState.EnergyRadSphComp[i];
+#endif
+#ifdef AGN_HEATING
+ SysState.EnergyTotComp[i] += SysState.EnergyAGNHeatComp[i];
+#endif
+#ifdef MULTIPHASE
+ SysState.EnergyTotComp[i] += SysState.EnergyRadStickyComp[i];
+#endif
+#ifdef FEEDBACK_WIND
+ SysState.EnergyTotComp[i] += SysState.EnergyFeedbackWindComp[i];
+#endif
+#ifdef BUBBLES
+ SysState.EnergyTotComp[i] += SysState.EnergyBubblesComp[i];
+#endif
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ SysState.EnergyTotComp[i] += SysState.EnergyThermalFeedbackComp[i];
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ SysState.EnergyTotComp[i] += SysState.EnergyKineticFeedbackComp[i];
+#endif
+ }
+
+ SysState.Mass = SysState.EnergyKin = SysState.EnergyPot = SysState.EnergyInt = SysState.EnergyTot = 0;
+#ifdef COOLING
+ SysState.EnergyRadSph = 0;
+#endif
+#ifdef AGN_HEATING
+ SysState.EnergyAGNHeat = 0;
+#endif
+#ifdef MULTIPHASE
+ SysState.EnergyRadSticky = 0;
+#endif
+#ifdef FEEDBACK_WIND
+ SysState.EnergyFeedbackWind = 0;
+#endif
+#ifdef BUBBLES
+ SysState.EnergyBubbles = 0;
+#endif
+
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ SysState.EnergyThermalFeedback = 0;
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ SysState.EnergyKineticFeedback = 0;
+#endif
+
+
+ for(j = 0; j < 3; j++)
+ SysState.Momentum[j] = SysState.AngMomentum[j] = SysState.CenterOfMass[j] = 0;
+
+ for(i = 0; i < 6; i++)
+ {
+ SysState.Mass += SysState.MassComp[i];
+ SysState.EnergyKin += SysState.EnergyKinComp[i];
+ SysState.EnergyPot += SysState.EnergyPotComp[i];
+ SysState.EnergyInt += SysState.EnergyIntComp[i];
+ SysState.EnergyTot += SysState.EnergyTotComp[i];
+#ifdef COOLING
+ SysState.EnergyRadSph += SysState.EnergyRadSphComp[i];
+#endif
+#ifdef AGN_HEATING
+ SysState.EnergyAGNHeat += SysState.EnergyAGNHeatComp[i];
+#endif
+#ifdef MULTIPHASE
+ SysState.EnergyRadSticky += SysState.EnergyRadStickyComp[i];
+#endif
+#ifdef FEEDBACK_WIND
+ SysState.EnergyFeedbackWind += SysState.EnergyFeedbackWindComp[i];
+#endif
+#ifdef BUBBLES
+ SysState.EnergyBubbles += SysState.EnergyBubblesComp[i];
+#endif
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ SysState.EnergyThermalFeedback += SysState.EnergyThermalFeedbackComp[i];
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ SysState.EnergyKineticFeedback += SysState.EnergyKineticFeedbackComp[i];
+#endif
+
+ for(j = 0; j < 3; j++)
+ {
+ SysState.Momentum[j] += SysState.MomentumComp[i][j];
+ SysState.AngMomentum[j] += SysState.AngMomentumComp[i][j];
+ SysState.CenterOfMass[j] += SysState.CenterOfMassComp[i][j];
+ }
+ }
+
+ for(i = 0; i < 6; i++)
+ for(j = 0; j < 3; j++)
+ if(SysState.MassComp[i] > 0)
+ SysState.CenterOfMassComp[i][j] /= SysState.MassComp[i];
+
+ for(j = 0; j < 3; j++)
+ if(SysState.Mass > 0)
+ SysState.CenterOfMass[j] /= SysState.Mass;
+
+ for(i = 0; i < 6; i++)
+ {
+ SysState.CenterOfMassComp[i][3] = SysState.MomentumComp[i][3] = SysState.AngMomentumComp[i][3] = 0;
+ for(j = 0; j < 3; j++)
+ {
+ SysState.CenterOfMassComp[i][3] +=
+ SysState.CenterOfMassComp[i][j] * SysState.CenterOfMassComp[i][j];
+ SysState.MomentumComp[i][3] += SysState.MomentumComp[i][j] * SysState.MomentumComp[i][j];
+ SysState.AngMomentumComp[i][3] +=
+ SysState.AngMomentumComp[i][j] * SysState.AngMomentumComp[i][j];
+ }
+ SysState.CenterOfMassComp[i][3] = sqrt(SysState.CenterOfMassComp[i][3]);
+ SysState.MomentumComp[i][3] = sqrt(SysState.MomentumComp[i][3]);
+ SysState.AngMomentumComp[i][3] = sqrt(SysState.AngMomentumComp[i][3]);
+ }
+
+ SysState.CenterOfMass[3] = SysState.Momentum[3] = SysState.AngMomentum[3] = 0;
+
+ for(j = 0; j < 3; j++)
+ {
+ SysState.CenterOfMass[3] += SysState.CenterOfMass[j] * SysState.CenterOfMass[j];
+ SysState.Momentum[3] += SysState.Momentum[j] * SysState.Momentum[j];
+ SysState.AngMomentum[3] += SysState.AngMomentum[j] * SysState.AngMomentum[j];
+ }
+
+ SysState.CenterOfMass[3] = sqrt(SysState.CenterOfMass[3]);
+ SysState.Momentum[3] = sqrt(SysState.Momentum[3]);
+ SysState.AngMomentum[3] = sqrt(SysState.AngMomentum[3]);
+ }
+
+ /* give everyone the result, maybe the want to do something with it */
+ MPI_Bcast(&SysState, sizeof(struct state_of_system), MPI_BYTE, 0, MPI_COMM_WORLD);
+}
diff --git a/clusters/user/GEAR/src/gravtree.c b/clusters/user/GEAR/src/gravtree.c
new file mode 100644
index 0000000..5f59599
--- /dev/null
+++ b/clusters/user/GEAR/src/gravtree.c
@@ -0,0 +1,678 @@
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <float.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+/*! \file gravtree.c
+ * \brief main driver routines for gravitational (short-range) force computation
+ *
+ * This file contains the code for the gravitational force computation by
+ * means of the tree algorithm. To this end, a tree force is computed for
+ * all active local particles, and particles are exported to other
+ * processors if needed, where they can receive additional force
+ * contributions. If the TreePM algorithm is enabled, the force computed
+ * will only be the short-range part.
+ */
+
+/*! This function computes the gravitational forces for all active
+ * particles. If needed, a new tree is constructed, otherwise the
+ * dynamically updated tree is used. Particles are only exported to other
+ * processors when really needed, thereby allowing a good use of the
+ * communication buffer.
+ */
+void gravity_tree(void)
+{
+ long long ntot;
+ int numnodes, nexportsum = 0;
+ int i, j, iter = 0;
+ int *numnodeslist, maxnumnodes, nexport, *numlist, *nrecv, *ndonelist;
+ double tstart, tend, timetree = 0, timecommsumm = 0, timeimbalance = 0, sumimbalance;
+ double ewaldcount;
+ double costtotal, ewaldtot, *costtreelist, *ewaldlist;
+ double maxt, sumt, *timetreelist, *timecommlist;
+ double fac, plb, plb_max, sumcomm;
+
+
+#ifdef DETAILED_CPU_GRAVITY
+ double timetree1 = 0, timecommsumm1 = 0, timeimbalance1 = 0;
+ double timetree2 = 0, timecommsumm2 = 0, timeimbalance2 = 0;
+ double sumt1,sumt2;
+ double sumcomm1,sumcomm2;
+ double sumimbalance1,sumimbalance2;
+#endif
+
+#ifdef DETAILED_CPU_OUTPUT_IN_GRAVTREE
+ double *timetreelist1, *timecommlist1, *timeimbalancelist1;
+ double *timetreelist2, *timecommlist2, *timeimbalancelist2;
+ double *timeimbalancelist;
+ int *numpartlist;
+#endif
+
+
+#ifndef NOGRAVITY
+ int *noffset, *nbuffer, *nsend, *nsend_local;
+ long long ntotleft;
+ int ndone, maxfill, ngrp;
+ int k, place;
+ int level, sendTask, recvTask;
+ double ax, ay, az;
+ MPI_Status status;
+#endif
+
+ /* set new softening lengths */
+ if(All.ComovingIntegrationOn)
+ set_softenings();
+
+
+ /* contruct tree if needed */
+ tstart = second();
+ if(TreeReconstructFlag)
+ {
+ if(ThisTask == 0)
+ printf("Tree construction.\n");
+
+ force_treebuild(NumPart);
+
+ TreeReconstructFlag = 0;
+
+ if(ThisTask == 0)
+ printf("Tree construction done.\n");
+ }
+ tend = second();
+ All.CPU_TreeConstruction += timediff(tstart, tend);
+
+ costtotal = ewaldcount = 0;
+
+ /* Note: 'NumForceUpdate' has already been determined in find_next_sync_point_and_drift() */
+ numlist = malloc(NTask * sizeof(int) * NTask);
+ MPI_Allgather(&NumForceUpdate, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, ntot = 0; i < NTask; i++)
+ ntot += numlist[i];
+ free(numlist);
+
+
+#ifndef NOGRAVITY
+ if(ThisTask == 0)
+ printf("Begin tree force.\n");
+
+
+#ifdef SELECTIVE_NO_GRAVITY
+ for(i = 0; i < NumPart; i++)
+ if(((1 << P[i].Type) & (SELECTIVE_NO_GRAVITY)))
+ P[i].Ti_endstep = -P[i].Ti_endstep - 1;
+#endif
+
+
+ noffset = malloc(sizeof(int) * NTask); /* offsets of bunches in common list */
+ nbuffer = malloc(sizeof(int) * NTask);
+ nsend_local = malloc(sizeof(int) * NTask);
+ nsend = malloc(sizeof(int) * NTask * NTask);
+ ndonelist = malloc(sizeof(int) * NTask);
+
+ i = 0; /* beginn with this index */
+ ntotleft = ntot; /* particles left for all tasks together */
+
+ while(ntotleft > 0)
+ {
+ iter++;
+
+ for(j = 0; j < NTask; j++)
+ nsend_local[j] = 0;
+
+ /* do local particles and prepare export list */
+ tstart = second();
+ for(nexport = 0, ndone = 0; i < NumPart && nexport < All.BunchSizeForce - NTask; i++)
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+ ndone++;
+
+ for(j = 0; j < NTask; j++)
+ Exportflag[j] = 0;
+#ifndef PMGRID
+ costtotal += force_treeevaluate(i, 0, &ewaldcount);
+#else
+ costtotal += force_treeevaluate_shortrange(i, 0);
+#endif
+ for(j = 0; j < NTask; j++)
+ {
+ if(Exportflag[j])
+ {
+ for(k = 0; k < 3; k++)
+ GravDataGet[nexport].u.Pos[k] = P[i].Pos[k];
+#if defined(UNEQUALSOFTENINGS) || defined(STELLAR_FLUX)
+ GravDataGet[nexport].Type = P[i].Type;
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(P[i].Type == 0)
+ GravDataGet[nexport].Soft = SphP[i].Hsml;
+#endif
+#endif
+ GravDataGet[nexport].w.OldAcc = P[i].OldAcc;
+ GravDataIndexTable[nexport].Task = j;
+ GravDataIndexTable[nexport].Index = i;
+ GravDataIndexTable[nexport].SortIndex = nexport;
+ nexport++;
+ nexportsum++;
+ nsend_local[j]++;
+ }
+ }
+ }
+ tend = second();
+ timetree += timediff(tstart, tend);
+#ifdef DETAILED_CPU_GRAVITY
+ timetree1 += timediff(tstart, tend);
+#endif
+
+ qsort(GravDataIndexTable, nexport, sizeof(struct gravdata_index), grav_tree_compare_key);
+
+ for(j = 0; j < nexport; j++)
+ GravDataIn[j] = GravDataGet[GravDataIndexTable[j].SortIndex];
+
+ for(j = 1, noffset[0] = 0; j < NTask; j++)
+ noffset[j] = noffset[j - 1] + nsend_local[j - 1];
+
+ tstart = second();
+
+ MPI_Allgather(nsend_local, NTask, MPI_INT, nsend, NTask, MPI_INT, MPI_COMM_WORLD);
+
+ tend = second();
+ timeimbalance += timediff(tstart, tend);
+#ifdef DETAILED_CPU_GRAVITY
+ timeimbalance1 += timediff(tstart, tend);
+#endif
+ /* now do the particles that need to be exported */
+
+ for(level = 1; level < (1 << PTask); level++)
+ {
+ tstart = second();
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeForce)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* get the particles */
+ MPI_Sendrecv(&GravDataIn[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct gravdata_in), MPI_BYTE,
+ recvTask, TAG_GRAV_A,
+ &GravDataGet[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct gravdata_in), MPI_BYTE,
+ recvTask, TAG_GRAV_A, MPI_COMM_WORLD, &status);
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+ tend = second();
+ timecommsumm += timediff(tstart, tend);
+#ifdef DETAILED_CPU_GRAVITY
+ timecommsumm1 += timediff(tstart, tend);
+#endif
+
+ tstart = second();
+ for(j = 0; j < nbuffer[ThisTask]; j++)
+ {
+#ifndef PMGRID
+ costtotal += force_treeevaluate(j, 1, &ewaldcount);
+#else
+ costtotal += force_treeevaluate_shortrange(j, 1);
+#endif
+ }
+ tend = second();
+ timetree += timediff(tstart, tend);
+#ifdef DETAILED_CPU_GRAVITY
+ timetree2 += timediff(tstart, tend);
+#endif
+ tstart = second();
+ MPI_Barrier(MPI_COMM_WORLD);
+ tend = second();
+ timeimbalance += timediff(tstart, tend);
+#ifdef DETAILED_CPU_GRAVITY
+ timeimbalance2 += timediff(tstart, tend);
+#endif
+ /* get the result */
+ tstart = second();
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeForce)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* send the results */
+ MPI_Sendrecv(&GravDataResult[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct gravdata_in),
+ MPI_BYTE, recvTask, TAG_GRAV_B,
+ &GravDataOut[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct gravdata_in),
+ MPI_BYTE, recvTask, TAG_GRAV_B, MPI_COMM_WORLD, &status);
+
+ /* add the result to the particles */
+ for(j = 0; j < nsend_local[recvTask]; j++)
+ {
+ place = GravDataIndexTable[noffset[recvTask] + j].Index;
+
+ for(k = 0; k < 3; k++)
+ P[place].GravAccel[k] += GravDataOut[j + noffset[recvTask]].u.Acc[k];
+
+ P[place].GravCost += GravDataOut[j + noffset[recvTask]].w.Ninteractions;
+#ifdef STELLAR_FLUX
+ if (P[place].Type==0) /* only for gas */
+ SphP[place].EnergyFlux += GravDataOut[j + noffset[recvTask]].EnergyFlux;
+#endif
+ }
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+ tend = second();
+ timecommsumm += timediff(tstart, tend);
+#ifdef DETAILED_CPU_GRAVITY
+ timecommsumm2 += timediff(tstart, tend);
+#endif
+ level = ngrp - 1;
+ }
+
+ MPI_Allgather(&ndone, 1, MPI_INT, ndonelist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(j = 0; j < NTask; j++)
+ ntotleft -= ndonelist[j];
+ }
+
+ free(ndonelist);
+ free(nsend);
+ free(nsend_local);
+ free(nbuffer);
+ free(noffset);
+
+ /* now add things for comoving integration */
+ /* yr: with vacuum boundary conditions */
+
+#ifndef PERIODIC
+#ifndef PMGRID
+ if(All.ComovingIntegrationOn)
+ {
+ fac = 0.5 * All.Hubble * All.Hubble * All.Omega0 / All.G;
+
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep == All.Ti_Current)
+ for(j = 0; j < 3; j++)
+ P[i].GravAccel[j] += fac * P[i].Pos[j];
+ }
+#endif
+#endif
+
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+#ifdef PMGRID
+ ax = P[i].GravAccel[0] + P[i].GravPM[0] / All.G;
+ ay = P[i].GravAccel[1] + P[i].GravPM[1] / All.G;
+ az = P[i].GravAccel[2] + P[i].GravPM[2] / All.G;
+#else
+ ax = P[i].GravAccel[0];
+ ay = P[i].GravAccel[1];
+ az = P[i].GravAccel[2];
+#endif
+ P[i].OldAcc = sqrt(ax * ax + ay * ay + az * az);
+ }
+
+
+ if(All.TypeOfOpeningCriterion == 1)
+ All.ErrTolTheta = 0; /* This will switch to the relative opening criterion for the following force computations */
+
+ /* muliply by G */
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep == All.Ti_Current)
+ for(j = 0; j < 3; j++)
+ P[i].GravAccel[j] *= All.G;
+
+
+ /* Finally, the following factor allows a computation of a cosmological simulation
+ with vacuum energy in physical coordinates */
+#ifndef PERIODIC
+#ifndef PMGRID
+ if(All.ComovingIntegrationOn == 0)
+ {
+ fac = All.OmegaLambda * All.Hubble * All.Hubble;
+
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep == All.Ti_Current)
+ for(j = 0; j < 3; j++)
+ P[i].GravAccel[j] += fac * P[i].Pos[j];
+ }
+#endif
+#endif
+
+#ifdef SELECTIVE_NO_GRAVITY
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep < 0)
+ P[i].Ti_endstep = -P[i].Ti_endstep - 1;
+#endif
+
+ if(ThisTask == 0)
+ printf("tree is done.\n");
+
+
+#else /* gravity is switched off */
+
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep == All.Ti_Current)
+ for(j = 0; j < 3; j++)
+ P[i].GravAccel[j] = 0;
+
+#endif
+
+#ifdef OUTERPOTENTIAL
+ /* Add outer forces from an outer potential */
+ outer_forces();
+#endif
+
+ /* Now the force computation is finished */
+
+ /* gather some diagnostic information */
+
+ timetreelist = malloc(sizeof(double) * NTask);
+ timecommlist = malloc(sizeof(double) * NTask);
+ costtreelist = malloc(sizeof(double) * NTask);
+ numnodeslist = malloc(sizeof(int) * NTask);
+ ewaldlist = malloc(sizeof(double) * NTask);
+ nrecv = malloc(sizeof(int) * NTask);
+
+#ifdef DETAILED_CPU_OUTPUT_IN_GRAVTREE
+ timeimbalancelist = malloc(sizeof(double) * NTask);
+ numpartlist = malloc(sizeof(int) * NTask);
+ timetreelist1 = malloc(sizeof(double) * NTask);
+ timecommlist1 = malloc(sizeof(double) * NTask);
+ timeimbalancelist1 = malloc(sizeof(double) * NTask);
+ timetreelist2 = malloc(sizeof(double) * NTask);
+ timecommlist2 = malloc(sizeof(double) * NTask);
+ timeimbalancelist2 = malloc(sizeof(double) * NTask);
+#endif
+
+ numnodes = Numnodestree;
+
+
+ MPI_Gather(&costtotal, 1, MPI_DOUBLE, costtreelist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&numnodes, 1, MPI_INT, numnodeslist, 1, MPI_INT, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timetree, 1, MPI_DOUBLE, timetreelist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timecommsumm, 1, MPI_DOUBLE, timecommlist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&NumPart, 1, MPI_INT, nrecv, 1, MPI_INT, 0, MPI_COMM_WORLD);
+ MPI_Gather(&ewaldcount, 1, MPI_DOUBLE, ewaldlist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&nexportsum, &nexport, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timeimbalance, &sumimbalance, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+#ifdef DETAILED_CPU_GRAVITY
+ MPI_Reduce(&timetree1, &sumt1, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timetree2, &sumt2, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timeimbalance1, &sumimbalance1, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timeimbalance2, &sumimbalance2, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timecommsumm1, &sumcomm1, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timecommsumm2, &sumcomm2, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+#endif
+
+#ifdef DETAILED_CPU_OUTPUT_IN_GRAVTREE
+ MPI_Gather(&timeimbalance, 1, MPI_DOUBLE, timeimbalancelist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&NumForceUpdate, 1, MPI_INT, numpartlist, 1, MPI_INT, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timetree1, 1, MPI_DOUBLE, timetreelist1, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timetree2, 1, MPI_DOUBLE, timetreelist2, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timecommsumm1, 1, MPI_DOUBLE, timecommlist1, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timecommsumm2, 1, MPI_DOUBLE, timecommlist2, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timeimbalance1, 1, MPI_DOUBLE, timeimbalancelist1, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timeimbalance2, 1, MPI_DOUBLE, timeimbalancelist2, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+#endif
+
+#ifdef SPLIT_DOMAIN_USING_TIME
+ CPU_Gravity = timetree1;
+#endif
+
+ if(ThisTask == 0)
+ {
+ All.TotNumOfForces += ntot;
+
+ fprintf(FdTimings, "Step= %d t= %g dt= %g \n", All.NumCurrentTiStep, All.Time, All.TimeStep);
+ fprintf(FdTimings, "Nf= %d%09d total-Nf= %d%09d ex-frac= %g iter= %d\n",
+ (int) (ntot / 1000000000), (int) (ntot % 1000000000),
+ (int) (All.TotNumOfForces / 1000000000), (int) (All.TotNumOfForces % 1000000000),
+ nexport / ((double) ntot), iter);
+ /* note: on Linux, the 8-byte integer could be printed with the format identifier "%qd", but doesn't work on AIX */
+
+ fac = NTask / ((double) All.TotNumPart);
+
+
+ for(i = 0, maxt = timetreelist[0], sumt = 0, plb_max = 0,
+ maxnumnodes = 0, costtotal = 0, sumcomm = 0, ewaldtot = 0; i < NTask; i++)
+ {
+ costtotal += costtreelist[i];
+
+ sumcomm += timecommlist[i];
+
+ if(maxt < timetreelist[i])
+ maxt = timetreelist[i];
+ sumt += timetreelist[i];
+
+ plb = nrecv[i] * fac;
+
+ if(plb > plb_max)
+ plb_max = plb;
+
+ if(numnodeslist[i] > maxnumnodes)
+ maxnumnodes = numnodeslist[i];
+
+ ewaldtot += ewaldlist[i];
+ }
+ fprintf(FdTimings, "work-load balance: %g max=%g avg=%g PE0=%g\n",
+ maxt / (sumt / NTask), maxt, sumt / NTask, timetreelist[0]);
+ fprintf(FdTimings, "particle-load balance: %g\n", plb_max);
+ fprintf(FdTimings, "max. nodes: %d, filled: %g\n", maxnumnodes,
+ maxnumnodes / (All.TreeAllocFactor * All.MaxPart));
+ fprintf(FdTimings, "part/sec=%g | %g ia/part=%g (%g)\n", ntot / (sumt + 1.0e-20),
+ ntot / (maxt * NTask), ((double) (costtotal)) / ntot, ((double) ewaldtot) / ntot);
+
+
+#ifdef DETAILED_CPU_OUTPUT_IN_GRAVTREE
+ fprintf(FdTimings, "\n gravtree\n\n");
+
+ fprintf(FdTimings, "Nupdate ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12d ",numpartlist[i]); /* nombre de part par proc */
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "costtree ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",costtreelist[i]); /* nombre d'interactions */
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timetree ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timetreelist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timeimbalance ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timeimbalancelist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timecomm ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timecommlist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timetree1 ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timetreelist1[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timetree2 ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timetreelist2[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timeimbalance1 ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timeimbalancelist1[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timeimbalance2 ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timeimbalancelist2[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timecomm1 ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timecommlist1[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timecomm2 ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timecommlist2[i]);
+ fprintf(FdTimings, "\n");
+ fprintf(FdTimings, "\n");
+#endif
+
+
+ fprintf(FdTimings, "\n");
+
+ fflush(FdTimings);
+
+ All.CPU_TreeWalk += sumt / NTask;
+ All.CPU_Imbalance += sumimbalance / NTask;
+ All.CPU_CommSum += sumcomm / NTask;
+
+#ifdef DETAILED_CPU_GRAVITY
+ All.CPU_Gravity_TreeWalk1 += sumt1 / NTask;
+ All.CPU_Gravity_Imbalance1 += sumimbalance1 / NTask;
+ All.CPU_Gravity_CommSum1 += sumcomm1 / NTask;
+
+ All.CPU_Gravity_TreeWalk2 += sumt2 / NTask;
+ All.CPU_Gravity_Imbalance2 += sumimbalance2 / NTask;
+ All.CPU_Gravity_CommSum2 += sumcomm2 / NTask;
+#endif
+ }
+
+#ifdef DETAILED_CPU_GRAVITY
+ free(timeimbalancelist2);
+ free(timecommlist2);
+ free(timetreelist2);
+ free(timeimbalancelist1);
+ free(timecommlist1);
+ free(timetreelist1);
+ free(numpartlist);
+ free(timeimbalancelist);
+#endif
+
+ free(nrecv);
+ free(ewaldlist);
+ free(numnodeslist);
+ free(costtreelist);
+ free(timecommlist);
+ free(timetreelist);
+}
+
+
+
+/*! This function sets the (comoving) softening length of all particle
+ * types in the table All.SofteningTable[...]. We check that the physical
+ * softening length is bounded by the Softening-MaxPhys values.
+ */
+void set_softenings(void)
+{
+ int i;
+
+ if(All.ComovingIntegrationOn)
+ {
+ if(All.SofteningGas * All.Time > All.SofteningGasMaxPhys)
+ All.SofteningTable[0] = All.SofteningGasMaxPhys / All.Time;
+ else
+ All.SofteningTable[0] = All.SofteningGas;
+
+ if(All.SofteningHalo * All.Time > All.SofteningHaloMaxPhys)
+ All.SofteningTable[1] = All.SofteningHaloMaxPhys / All.Time;
+ else
+ All.SofteningTable[1] = All.SofteningHalo;
+
+ if(All.SofteningDisk * All.Time > All.SofteningDiskMaxPhys)
+ All.SofteningTable[2] = All.SofteningDiskMaxPhys / All.Time;
+ else
+ All.SofteningTable[2] = All.SofteningDisk;
+
+ if(All.SofteningBulge * All.Time > All.SofteningBulgeMaxPhys)
+ All.SofteningTable[3] = All.SofteningBulgeMaxPhys / All.Time;
+ else
+ All.SofteningTable[3] = All.SofteningBulge;
+
+ if(All.SofteningStars * All.Time > All.SofteningStarsMaxPhys)
+ All.SofteningTable[4] = All.SofteningStarsMaxPhys / All.Time;
+ else
+ All.SofteningTable[4] = All.SofteningStars;
+
+ if(All.SofteningBndry * All.Time > All.SofteningBndryMaxPhys)
+ All.SofteningTable[5] = All.SofteningBndryMaxPhys / All.Time;
+ else
+ All.SofteningTable[5] = All.SofteningBndry;
+ }
+ else
+ {
+ All.SofteningTable[0] = All.SofteningGas;
+ All.SofteningTable[1] = All.SofteningHalo;
+ All.SofteningTable[2] = All.SofteningDisk;
+ All.SofteningTable[3] = All.SofteningBulge;
+ All.SofteningTable[4] = All.SofteningStars;
+ All.SofteningTable[5] = All.SofteningBndry;
+ }
+
+ for(i = 0; i < 6; i++)
+ All.ForceSoftening[i] = 2.8 * All.SofteningTable[i];
+
+ All.MinGasHsml = All.MinGasHsmlFractional * All.ForceSoftening[0];
+}
+
+
+/*! This function is used as a comparison kernel in a sort routine. It is
+ * used to group particles in the communication buffer that are going to
+ * be sent to the same CPU.
+ */
+int grav_tree_compare_key(const void *a, const void *b)
+{
+ if(((struct gravdata_index *) a)->Task < (((struct gravdata_index *) b)->Task))
+ return -1;
+
+ if(((struct gravdata_index *) a)->Task > (((struct gravdata_index *) b)->Task))
+ return +1;
+
+ return 0;
+}
diff --git a/clusters/user/GEAR/src/gravtree_forcetest.c b/clusters/user/GEAR/src/gravtree_forcetest.c
new file mode 100644
index 0000000..177ac09
--- /dev/null
+++ b/clusters/user/GEAR/src/gravtree_forcetest.c
@@ -0,0 +1,354 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <float.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file gravtree_forcetest.c
+ * \brief routines for direct summation forces
+ *
+ * The code in this file allows to compute checks of the force accuracy by
+ * an independent direct summation computation. To this end, one can
+ * instruct GADGET in the Makefile to coompute direct summation forces for
+ * a certain random subfraction of particles.
+ */
+
+
+
+#ifdef FORCETEST
+
+/*! This routine does the test of the gravitational tree force by computing
+ * the force for a random subset of particles with direct summation.
+ */
+void gravity_forcetest(void)
+{
+ int ntot, iter = 0, ntotleft, nthis;
+ double tstart, tend, timetree = 0;
+ int i, j, ndone, ngrp, maxfill, place, ndonetot;
+
+#ifndef NOGRAVITY
+ int *noffset, *nbuffer, *nsend, *nsend_local;
+ int k, nexport;
+ int level, sendTask, recvTask;
+ double fac1;
+ MPI_Status status;
+#endif
+ double costtotal, *costtreelist;
+ double maxt, sumt, *timetreelist;
+ double fac;
+ char buf[200];
+
+#ifdef PMGRID
+ if(All.PM_Ti_endstep != All.Ti_Current)
+ return;
+#endif
+
+ if(All.ComovingIntegrationOn)
+ set_softenings(); /* set new softening lengths */
+
+ for(i = 0, NumForceUpdate = 0; i < NumPart; i++)
+ {
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+ if(get_random_number(P[i].ID) < FORCETEST)
+ {
+ P[i].Ti_endstep = -P[i].Ti_endstep - 1;
+ NumForceUpdate++;
+ }
+ }
+ }
+
+ /* NumForceUpdate is the number of particles on this processor that want a force update */
+
+ MPI_Allreduce(&NumForceUpdate, &ntot, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+
+ costtotal = 0;
+
+ noffset = malloc(sizeof(int) * NTask); /* offsets of bunches in common list */
+ nbuffer = malloc(sizeof(int) * NTask);
+ nsend_local = malloc(sizeof(int) * NTask);
+ nsend = malloc(sizeof(int) * NTask * NTask);
+
+ i = 0; /* beginn with this index */
+ ntotleft = ntot; /* particles left for all tasks together */
+
+ while(ntotleft > 0)
+ {
+ iter++;
+
+ for(j = 0; j < NTask; j++)
+ nsend_local[j] = 0;
+
+ /* do local particles and prepare export list */
+ tstart = second();
+ for(nexport = 0, ndone = 0; i < NumPart && nexport < All.BunchSizeForce - NTask; i++)
+ if(P[i].Ti_endstep < 0)
+ {
+ ndone++;
+
+ for(j = 0; j < NTask; j++)
+ Exportflag[j] = 1;
+ Exportflag[ThisTask] = 0;
+
+ costtotal += force_treeevaluate_direct(i, 0);
+
+ for(j = 0; j < NTask; j++)
+ {
+ if(Exportflag[j])
+ {
+ for(k = 0; k < 3; k++)
+ GravDataGet[nexport].u.Pos[k] = P[i].Pos[k];
+
+#ifdef UNEQUALSOFTENINGS
+ GravDataGet[nexport].Type = P[i].Type;
+#endif
+ GravDataGet[nexport].w.OldAcc = P[i].OldAcc;
+
+ GravDataIndexTable[nexport].Task = j;
+ GravDataIndexTable[nexport].Index = i;
+ GravDataIndexTable[nexport].SortIndex = nexport;
+
+ nexport++;
+ nsend_local[j]++;
+ }
+ }
+ }
+ tend = second();
+ timetree += timediff(tstart, tend);
+
+ qsort(GravDataIndexTable, nexport, sizeof(struct gravdata_index), grav_tree_compare_key);
+
+ for(j = 0; j < nexport; j++)
+ GravDataIn[j] = GravDataGet[GravDataIndexTable[j].SortIndex];
+
+ for(j = 1, noffset[0] = 0; j < NTask; j++)
+ noffset[j] = noffset[j - 1] + nsend_local[j - 1];
+
+ MPI_Allgather(nsend_local, NTask, MPI_INT, nsend, NTask, MPI_INT, MPI_COMM_WORLD);
+
+ /* now do the particles that need to be exported */
+
+ for(level = 1; level < (1 << PTask); level++)
+ {
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeForce)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* get the particles */
+ MPI_Sendrecv(&GravDataIn[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct gravdata_in), MPI_BYTE,
+ recvTask, TAG_DIRECT_A,
+ &GravDataGet[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct gravdata_in), MPI_BYTE,
+ recvTask, TAG_DIRECT_A, MPI_COMM_WORLD, &status);
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+
+ tstart = second();
+ for(j = 0; j < nbuffer[ThisTask]; j++)
+ {
+ costtotal += force_treeevaluate_direct(j, 1);
+ }
+ tend = second();
+ timetree += timediff(tstart, tend);
+
+
+ /* get the result */
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeForce)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* send the results */
+ MPI_Sendrecv(&GravDataResult[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct gravdata_in),
+ MPI_BYTE, recvTask, TAG_DIRECT_B,
+ &GravDataOut[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct gravdata_in),
+ MPI_BYTE, recvTask, TAG_DIRECT_B, MPI_COMM_WORLD, &status);
+
+ /* add the result to the particles */
+ for(j = 0; j < nsend_local[recvTask]; j++)
+ {
+ place = GravDataIndexTable[noffset[recvTask] + j].Index;
+
+ for(k = 0; k < 3; k++)
+ P[place].GravAccelDirect[k] += GravDataOut[j + noffset[recvTask]].u.Acc[k];
+ }
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+
+ level = ngrp - 1;
+ }
+
+ MPI_Allreduce(&ndone, &ndonetot, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+
+ ntotleft -= ndonetot;
+ }
+
+ free(nsend);
+ free(nsend_local);
+ free(nbuffer);
+ free(noffset);
+
+
+ /* now add things for comoving integration */
+
+ if(All.ComovingIntegrationOn)
+ {
+#ifndef PERIODIC
+ fac1 = 0.5 * All.Hubble * All.Hubble * All.Omega0 / All.G;
+
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep < 0)
+ for(j = 0; j < 3; j++)
+ P[i].GravAccelDirect[j] += fac1 * P[i].Pos[j];
+#endif
+ }
+
+
+
+ /* muliply by G */
+
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep < 0)
+ for(j = 0; j < 3; j++)
+ P[i].GravAccelDirect[j] *= All.G;
+
+
+
+ /* Finally, the following factor allows a computation of cosmological simulation
+ with vacuum energy in physical coordinates */
+
+ if(All.ComovingIntegrationOn == 0)
+ {
+ fac1 = All.OmegaLambda * All.Hubble * All.Hubble;
+
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep < 0)
+ for(j = 0; j < 3; j++)
+ P[i].GravAccelDirect[j] += fac1 * P[i].Pos[j];
+ }
+
+ /* now output the forces to a file */
+
+ for(nthis = 0; nthis < NTask; nthis++)
+ {
+ if(nthis == ThisTask)
+ {
+ sprintf(buf, "%s%s", All.OutputDir, "forcetest.txt");
+ if(!(FdForceTest = fopen(buf, "a")))
+ {
+ printf("error in opening file '%s'\n", buf);
+ endrun(17);
+ }
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep < 0)
+ {
+#ifndef PMGRID
+ fprintf(FdForceTest, "%d %g %g %g %g %g %g %g %g %g %g %g\n",
+ P[i].Type, All.Time, All.Time - TimeOfLastTreeConstruction,
+ P[i].Pos[0], P[i].Pos[1], P[i].Pos[2],
+ P[i].GravAccelDirect[0], P[i].GravAccelDirect[1], P[i].GravAccelDirect[2],
+ P[i].GravAccel[0], P[i].GravAccel[1], P[i].GravAccel[2]);
+#else
+ fprintf(FdForceTest, "%d %g %g %g %g %g %g %g %g %g %g %g %g %g %g\n",
+ P[i].Type, All.Time, All.Time - TimeOfLastTreeConstruction,
+ P[i].Pos[0], P[i].Pos[1], P[i].Pos[2],
+ P[i].GravAccelDirect[0], P[i].GravAccelDirect[1], P[i].GravAccelDirect[2],
+ P[i].GravAccel[0], P[i].GravAccel[1], P[i].GravAccel[2],
+ P[i].GravPM[0] + P[i].GravAccel[0],
+ P[i].GravPM[1] + P[i].GravAccel[1], P[i].GravPM[2] + P[i].GravAccel[2]);
+#endif
+ }
+ fclose(FdForceTest);
+ }
+ MPI_Barrier(MPI_COMM_WORLD);
+ }
+
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep < 0)
+ P[i].Ti_endstep = -P[i].Ti_endstep - 1;
+
+ /* Now the force computation is finished */
+
+
+
+ timetreelist = malloc(sizeof(double) * NTask);
+ costtreelist = malloc(sizeof(double) * NTask);
+
+ MPI_Gather(&costtotal, 1, MPI_DOUBLE, costtreelist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timetree, 1, MPI_DOUBLE, timetreelist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+
+ if(ThisTask == 0)
+ {
+ fac = NTask / ((double) All.TotNumPart);
+
+ for(i = 0, maxt = timetreelist[0], sumt = 0, costtotal = 0; i < NTask; i++)
+ {
+ costtotal += costtreelist[i];
+
+ if(maxt < timetreelist[i])
+ maxt = timetreelist[i];
+ sumt += timetreelist[i];
+ }
+
+ fprintf(FdTimings, "DIRECT Nf= %d part/sec=%g | %g ia/part=%g \n", ntot, ntot / (sumt + 1.0e-20),
+ ntot / (maxt * NTask), ((double) (costtotal)) / ntot);
+ fprintf(FdTimings, "\n");
+
+ fflush(FdTimings);
+ }
+
+ free(costtreelist);
+ free(timetreelist);
+}
+
+#endif
diff --git a/clusters/user/GEAR/src/hydra.c b/clusters/user/GEAR/src/hydra.c
new file mode 100644
index 0000000..08f0e94
--- /dev/null
+++ b/clusters/user/GEAR/src/hydra.c
@@ -0,0 +1,1096 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_math.h>
+#include "allvars.h"
+#include "proto.h"
+
+/*! \file hydra.c
+ * \brief Computation of SPH forces and rate of entropy generation
+ *
+ * This file contains the "second SPH loop", where the SPH forces are
+ * computed, and where the rate of change of entropy due to the shock heating
+ * (via artificial viscosity) is computed.
+ */
+
+
+static double hubble_a, atime, hubble_a2, fac_mu, fac_vsic_fix, a3inv, fac_egy;
+#ifdef FEEDBACK
+static double fac_pow;
+#endif
+
+#ifdef PERIODIC
+static double boxSize, boxHalf;
+
+#ifdef LONG_X
+static double boxSize_X, boxHalf_X;
+#else
+#define boxSize_X boxSize
+#define boxHalf_X boxHalf
+#endif
+#ifdef LONG_Y
+static double boxSize_Y, boxHalf_Y;
+#else
+#define boxSize_Y boxSize
+#define boxHalf_Y boxHalf
+#endif
+#ifdef LONG_Z
+static double boxSize_Z, boxHalf_Z;
+#else
+#define boxSize_Z boxSize
+#define boxHalf_Z boxHalf
+#endif
+#endif
+
+
+
+/*! This function is the driver routine for the calculation of hydrodynamical
+ * force and rate of change of entropy due to shock heating for all active
+ * particles .
+ */
+void hydro_force(void)
+{
+ long long ntot, ntotleft;
+ int i, j, k, n, ngrp, maxfill, source, ndone;
+ int *nbuffer, *noffset, *nsend_local, *nsend, *numlist, *ndonelist;
+ int level, sendTask, recvTask, nexport, place;
+ double soundspeed_i;
+ double tstart, tend, sumt, sumcomm;
+ double timecomp = 0, timecommsumm = 0, timeimbalance = 0, sumimbalance;
+ MPI_Status status;
+
+#ifdef ART_VISCO_CD
+ int ii,jj;
+#endif
+
+#ifdef DETAILED_CPU_OUTPUT_IN_HYDRA
+ double *timecomplist;
+ double *timecommsummlist;
+ double *timeimbalancelist;
+#endif
+
+#ifdef PERIODIC
+ boxSize = All.BoxSize;
+ boxHalf = 0.5 * All.BoxSize;
+#ifdef LONG_X
+ boxHalf_X = boxHalf * LONG_X;
+ boxSize_X = boxSize * LONG_X;
+#endif
+#ifdef LONG_Y
+ boxHalf_Y = boxHalf * LONG_Y;
+ boxSize_Y = boxSize * LONG_Y;
+#endif
+#ifdef LONG_Z
+ boxHalf_Z = boxHalf * LONG_Z;
+ boxSize_Z = boxSize * LONG_Z;
+#endif
+#endif
+
+#ifdef COMPUTE_VELOCITY_DISPERSION
+ double v1m,v2m;
+#endif
+
+ if(All.ComovingIntegrationOn)
+ {
+ /* Factors for comoving integration of hydro */
+ hubble_a = All.Omega0 / (All.Time * All.Time * All.Time)
+ + (1 - All.Omega0 - All.OmegaLambda) / (All.Time * All.Time) + All.OmegaLambda;
+
+ hubble_a = All.Hubble * sqrt(hubble_a);
+ hubble_a2 = All.Time * All.Time * hubble_a;
+
+ fac_mu = pow(All.Time, 3 * (GAMMA - 1) / 2) / All.Time;
+
+ fac_egy = pow(All.Time, 3 * (GAMMA - 1));
+
+ fac_vsic_fix = hubble_a * pow(All.Time, 3 * GAMMA_MINUS1);
+
+ a3inv = 1 / (All.Time * All.Time * All.Time);
+ atime = All.Time;
+
+#ifdef FEEDBACK
+ fac_pow = fac_egy*atime*atime;
+#endif
+
+ }
+ else
+ {
+ hubble_a = hubble_a2 = atime = fac_mu = fac_vsic_fix = a3inv = fac_egy = 1.0;
+#ifdef FEEDBACK
+ fac_pow = 1.0;
+#endif
+ }
+
+
+#ifdef OUTPUT_CONDUCTIVITY
+ for (i=0;i<N_gas;i++)
+ SphP[i].OptVar1 = sqrt( pow(SphP[i].GradEnergyInt[0],2)+pow(SphP[i].GradEnergyInt[1],2)+pow(SphP[i].GradEnergyInt[2],2))*SphP[i].Hsml/(SphP[i].Pressure/(SphP[i].Density*GAMMA_MINUS1)) ;
+#endif
+
+
+
+ /* `NumSphUpdate' gives the number of particles on this processor that want a force update */
+ for(n = 0, NumSphUpdate = 0; n < N_gas; n++)
+ {
+#ifdef SFR
+ if((P[n].Ti_endstep == All.Ti_Current) && (P[n].Type == 0))
+#else
+ if(P[n].Ti_endstep == All.Ti_Current)
+#endif
+#ifdef MULTIPHASE
+ if(SphP[n].Phase == GAS_SPH)
+#endif
+ NumSphUpdate++;
+
+ }
+
+ numlist = malloc(NTask * sizeof(int) * NTask);
+ MPI_Allgather(&NumSphUpdate, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, ntot = 0; i < NTask; i++)
+ ntot += numlist[i];
+ free(numlist);
+
+
+ noffset = malloc(sizeof(int) * NTask); /* offsets of bunches in common list */
+ nbuffer = malloc(sizeof(int) * NTask);
+ nsend_local = malloc(sizeof(int) * NTask);
+ nsend = malloc(sizeof(int) * NTask * NTask);
+ ndonelist = malloc(sizeof(int) * NTask);
+
+
+ i = 0; /* first particle for this task */
+ ntotleft = ntot; /* particles left for all tasks together */
+
+ while(ntotleft > 0)
+ {
+ for(j = 0; j < NTask; j++)
+ nsend_local[j] = 0;
+
+ /* do local particles and prepare export list */
+ tstart = second();
+ for(nexport = 0, ndone = 0; i < N_gas && nexport < All.BunchSizeHydro - NTask; i++)
+#ifdef SFR
+ if((P[i].Ti_endstep == All.Ti_Current) && (P[i].Type == 0))
+#else
+ if(P[i].Ti_endstep == All.Ti_Current)
+#endif
+ {
+#ifdef MULTIPHASE
+ if(SphP[i].Phase == GAS_SPH)
+ {
+#endif
+ ndone++;
+
+ for(j = 0; j < NTask; j++)
+ Exportflag[j] = 0;
+
+ hydro_evaluate(i, 0);
+
+ for(j = 0; j < NTask; j++)
+ {
+ if(Exportflag[j])
+ {
+ for(k = 0; k < 3; k++)
+ {
+ HydroDataIn[nexport].Pos[k] = P[i].Pos[k];
+ HydroDataIn[nexport].Vel[k] = SphP[i].VelPred[k];
+ }
+ HydroDataIn[nexport].Hsml = SphP[i].Hsml;
+#ifdef FEEDBACK
+ HydroDataIn[nexport].EnergySN = SphP[i].EnergySN;
+#endif
+ HydroDataIn[nexport].Mass = P[i].Mass;
+ HydroDataIn[nexport].DhsmlDensityFactor = SphP[i].DhsmlDensityFactor;
+ HydroDataIn[nexport].Density = SphP[i].Density;
+ HydroDataIn[nexport].Pressure = SphP[i].Pressure;
+ HydroDataIn[nexport].Timestep = P[i].Ti_endstep - P[i].Ti_begstep;
+
+#ifdef WITH_ID_IN_HYDRA
+ HydroDataIn[nexport].ID = P[i].ID;
+#endif
+#ifdef ART_CONDUCTIVITY
+ HydroDataIn[nexport].NormGradEnergyInt = sqrt( pow(SphP[i].GradEnergyInt[0],2)+pow(SphP[i].GradEnergyInt[1],2)+pow(SphP[i].GradEnergyInt[2],2));
+#endif
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS) || defined(ART_VISCO_CD)
+ HydroDataIn[nexport].ArtBulkViscConst = SphP[i].ArtBulkViscConst;
+#endif
+
+
+ /* calculation of F1 */
+ soundspeed_i = sqrt(GAMMA * SphP[i].Pressure / SphP[i].Density);
+ HydroDataIn[nexport].F1 = fabs(SphP[i].DivVel) /
+ (fabs(SphP[i].DivVel) + SphP[i].CurlVel +
+ 0.0001 * soundspeed_i / SphP[i].Hsml / fac_mu);
+
+ HydroDataIn[nexport].Index = i;
+ HydroDataIn[nexport].Task = j;
+ nexport++;
+ nsend_local[j]++;
+ }
+ }
+#ifdef MULTIPHASE
+ }
+#endif
+ }
+
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+ qsort(HydroDataIn, nexport, sizeof(struct hydrodata_in), hydro_compare_key);
+
+ for(j = 1, noffset[0] = 0; j < NTask; j++)
+ noffset[j] = noffset[j - 1] + nsend_local[j - 1];
+
+ tstart = second();
+
+ MPI_Allgather(nsend_local, NTask, MPI_INT, nsend, NTask, MPI_INT, MPI_COMM_WORLD);
+
+ tend = second();
+ timeimbalance += timediff(tstart, tend);
+
+
+
+ /* now do the particles that need to be exported */
+
+ for(level = 1; level < (1 << PTask); level++)
+ {
+ tstart = second();
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeHydro)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* get the particles */
+ MPI_Sendrecv(&HydroDataIn[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct hydrodata_in), MPI_BYTE,
+ recvTask, TAG_HYDRO_A,
+ &HydroDataGet[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct hydrodata_in), MPI_BYTE,
+ recvTask, TAG_HYDRO_A, MPI_COMM_WORLD, &status);
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+ tend = second();
+ timecommsumm += timediff(tstart, tend);
+
+ /* now do the imported particles */
+ tstart = second();
+ for(j = 0; j < nbuffer[ThisTask]; j++)
+ hydro_evaluate(j, 1);
+
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+ /* do a block to measure imbalance */
+ tstart = second();
+ MPI_Barrier(MPI_COMM_WORLD);
+ tend = second();
+ timeimbalance += timediff(tstart, tend);
+
+ /* get the result */
+ tstart = second();
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeHydro)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* send the results */
+ MPI_Sendrecv(&HydroDataResult[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct hydrodata_out),
+ MPI_BYTE, recvTask, TAG_HYDRO_B,
+ &HydroDataPartialResult[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct hydrodata_out),
+ MPI_BYTE, recvTask, TAG_HYDRO_B, MPI_COMM_WORLD, &status);
+
+ /* add the result to the particles */
+ for(j = 0; j < nsend_local[recvTask]; j++)
+ {
+ source = j + noffset[recvTask];
+ place = HydroDataIn[source].Index;
+
+ for(k = 0; k < 3; k++)
+ SphP[place].HydroAccel[k] += HydroDataPartialResult[source].Acc[k];
+
+ SphP[place].DtEntropy += HydroDataPartialResult[source].DtEntropy;
+#ifdef FEEDBACK
+ SphP[place].DtEgySpecFeedback += HydroDataPartialResult[source].DtEgySpecFeedback;
+#endif
+ if(SphP[place].MaxSignalVel < HydroDataPartialResult[source].MaxSignalVel)
+ SphP[place].MaxSignalVel = HydroDataPartialResult[source].MaxSignalVel;
+#ifdef COMPUTE_VELOCITY_DISPERSION
+ for(k = 0; k < VELOCITY_DISPERSION_SIZE; k++)
+ SphP[place].VelocityDispersion[k] += HydroDataPartialResult[source].VelocityDispersion[k];
+#endif
+#ifdef OUTPUT_CONDUCTIVITY
+ SphP[place].OptVar2 += HydroDataPartialResult[source].OptVar2;
+#endif
+
+#ifdef ART_VISCO_CD
+ /* reduce DmatCD and TmatCD*/
+ for (ii = 0; ii < 3; ii++)
+ for (jj = 0; jj < 3; jj++)
+ {
+ SphP[place].DmatCD[ii][jj] += HydroDataPartialResult[source].DmatCD[ii][jj];
+ SphP[place].TmatCD[ii][jj] += HydroDataPartialResult[source].TmatCD[ii][jj];
+ }
+ SphP[place].R_CD += HydroDataPartialResult[source].R_CD;
+#endif
+
+
+ }
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+ tend = second();
+ timecommsumm += timediff(tstart, tend);
+
+ level = ngrp - 1;
+ }
+
+ MPI_Allgather(&ndone, 1, MPI_INT, ndonelist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(j = 0; j < NTask; j++)
+ ntotleft -= ndonelist[j];
+ }
+
+ free(ndonelist);
+ free(nsend);
+ free(nsend_local);
+ free(nbuffer);
+ free(noffset);
+
+
+
+ /* do final operations on results */
+ tstart = second();
+
+ for(i = 0; i < N_gas; i++)
+#ifdef SFR
+ if((P[i].Ti_endstep == All.Ti_Current) && (P[i].Type == 0))
+#else
+ if(P[i].Ti_endstep == All.Ti_Current)
+#endif
+ {
+ SphP[i].DtEntropy *= GAMMA_MINUS1 / (hubble_a2 * pow(SphP[i].Density, GAMMA_MINUS1));
+
+#ifdef SPH_BND_PARTICLES
+ if(P[i].ID == 0)
+ {
+ SphP[i].DtEntropy = 0;
+ for(k = 0; k < 3; k++)
+ SphP[i].HydroAccel[k] = 0;
+ }
+#endif
+
+#ifdef COMPUTE_VELOCITY_DISPERSION
+ if (SphP[i].VelocityDispersion[0] != 0)
+ {
+ /* compute sigma r */
+
+ v1m = SphP[i].VelocityDispersion[1]/SphP[i].VelocityDispersion[0];
+ v2m = SphP[i].VelocityDispersion[2]/SphP[i].VelocityDispersion[0];
+
+ if (v2m > v1m*v1m)
+ SphP[i].OptVar1 = sqrt(v2m - v1m*v1m);
+ else
+ SphP[i].OptVar1 = 0.0;
+
+ }
+ else
+ SphP[i].OptVar1 = 0.0;
+#endif
+
+#ifdef OUTPUT_CONDUCTIVITY
+ SphP[i].OptVar2*= GAMMA_MINUS1 / (hubble_a2 * pow(SphP[i].Density, GAMMA_MINUS1)); /* to dA/dt */
+
+ if (SphP[i].OptVar2!=0)
+ SphP[i].OptVar2=SphP[i].Entropy/fabs(SphP[i].OptVar2); /* to time*/
+ else
+ SphP[i].OptVar2=0;
+#endif
+
+
+#ifdef ART_VISCO_CD
+ compute_art_visc(i);
+#endif
+
+
+
+
+ }
+
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+
+
+
+ /* collect some timing information */
+
+ MPI_Reduce(&timecomp, &sumt, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timecommsumm, &sumcomm, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timeimbalance, &sumimbalance, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+
+ if(ThisTask == 0)
+ {
+ All.CPU_HydCompWalk += sumt / NTask;
+ All.CPU_HydCommSumm += sumcomm / NTask;
+ All.CPU_HydImbalance += sumimbalance / NTask;
+ }
+
+
+#ifdef DETAILED_CPU_OUTPUT_IN_HYDRA
+ numlist = malloc(sizeof(int) * NTask);
+ timecomplist = malloc(sizeof(double) * NTask);
+ timecommsummlist = malloc(sizeof(double) * NTask);
+ timeimbalancelist = malloc(sizeof(double) * NTask);
+
+
+ MPI_Gather(&NumSphUpdate, 1, MPI_INT, numlist, 1, MPI_INT, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timecomp, 1, MPI_DOUBLE, timecomplist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timecommsumm, 1, MPI_DOUBLE, timecommsummlist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timeimbalance, 1, MPI_DOUBLE, timeimbalancelist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+
+ if(ThisTask == 0)
+ {
+ fprintf(FdTimings, "\n hydra\n\n");
+
+ fprintf(FdTimings, "Nupdate ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12d ",numlist[i]); /* nombre de part par proc */
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timecomp ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timecomplist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timecommsumm ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timecommsummlist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timeimbalance ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timeimbalancelist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "\n");
+ }
+
+ free(timeimbalancelist);
+ free(timecommsummlist);
+ free(timecomplist);
+ free(numlist);
+#endif
+
+
+
+}
+
+
+/*! This function is the 'core' of the SPH force computation. A target
+ * particle is specified which may either be local, or reside in the
+ * communication buffer.
+ */
+void hydro_evaluate(int target, int mode)
+{
+ int j, k, n, timestep, startnode, numngb;
+ FLOAT *pos, *vel;
+ FLOAT mass, h_i, dhsmlDensityFactor, rho, pressure, f1, f2;
+ double acc[3], dtEntropy, maxSignalVel;
+ double dx, dy, dz, dvx, dvy, dvz;
+ double h_i2, hinv=1, hinv4;
+ double p_over_rho2_i, p_over_rho2_j, soundspeed_i, soundspeed_j;
+ double hfc, dwk_i, vdotr, vdotr2, visc, mu_ij, rho_ij=0, vsig;
+ double h_j, dwk_j, r, r2, u=0, hfc_visc;
+ int phase=0;
+#ifdef FEEDBACK
+ int EnergySN;
+ double wk,wk_i,wk_j,uintspec,hinv3;
+ double dtEgySpecFeedback=0;
+#endif
+#ifdef COMPUTE_VELOCITY_DISPERSION
+ double VelocityDispersion[VELOCITY_DISPERSION_SIZE];
+ for(k = 0; k < VELOCITY_DISPERSION_SIZE; k++)
+ VelocityDispersion[k]=0.0;
+#endif
+
+#ifndef NOVISCOSITYLIMITER
+ double dt;
+#endif
+
+#ifdef ART_CONDUCTIVITY
+ double hfc_cond,vsig_u,vsig_u_max;
+ double Arho_i,Arho_j;
+ double u_i,u_j;
+ double normGradEnergyInt_i, normGradEnergyInt_j;
+ double dtEntropy_artcond;
+#endif
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS)|| defined(ART_VISCO_CD)
+ double alpha_i, alpha_j;
+ double alpha_ij;
+ double beta_ij;
+ double soundspeed_ij;
+
+#ifdef ART_VISCO_CD
+ double wk,wk_i,wk_j,hinv3;
+ int ii, jj;
+ double DmatCD[3][3];
+ double TmatCD[3][3];
+ double dv_dot_dx;
+ double R_CD;
+ double sign_DiVel;
+#endif
+#endif
+
+
+
+ if(mode == 0)
+ {
+ pos = P[target].Pos;
+ vel = SphP[target].VelPred;
+ h_i = SphP[target].Hsml;
+#ifdef FEEDBACK
+ EnergySN = SphP[target].EnergySN;
+#endif
+ mass = P[target].Mass;
+ dhsmlDensityFactor = SphP[target].DhsmlDensityFactor;
+ rho = SphP[target].Density;
+ pressure = SphP[target].Pressure;
+ timestep = P[target].Ti_endstep - P[target].Ti_begstep;
+ soundspeed_i = sqrt(GAMMA * pressure / rho);
+ f1 = fabs(SphP[target].DivVel) /
+ (fabs(SphP[target].DivVel) + SphP[target].CurlVel +
+ 0.0001 * soundspeed_i / SphP[target].Hsml / fac_mu);
+#ifdef ART_CONDUCTIVITY
+ normGradEnergyInt_i = sqrt( pow(SphP[target].GradEnergyInt[0],2)+pow(SphP[target].GradEnergyInt[1],2)+pow(SphP[target].GradEnergyInt[2],2));
+#endif
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS) || defined(ART_VISCO_CD)
+ alpha_i = SphP[target].ArtBulkViscConst;
+#endif
+
+ }
+ else
+ {
+ pos = HydroDataGet[target].Pos;
+ vel = HydroDataGet[target].Vel;
+ h_i = HydroDataGet[target].Hsml;
+#ifdef FEEDBACK
+ EnergySN = HydroDataGet[target].EnergySN;
+#endif
+ mass = HydroDataGet[target].Mass;
+ dhsmlDensityFactor = HydroDataGet[target].DhsmlDensityFactor;
+ rho = HydroDataGet[target].Density;
+ pressure = HydroDataGet[target].Pressure;
+ timestep = HydroDataGet[target].Timestep;
+ soundspeed_i = sqrt(GAMMA * pressure / rho);
+ f1 = HydroDataGet[target].F1;
+#ifdef ART_CONDUCTIVITY
+ normGradEnergyInt_i = HydroDataGet[target].NormGradEnergyInt;
+#endif
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS)|| defined(ART_VISCO_CD)
+ alpha_i = HydroDataGet[target].ArtBulkViscConst;
+#endif
+ }
+
+
+ /* initialize variables before SPH loop is started */
+ acc[0] = acc[1] = acc[2] = dtEntropy = 0;
+ maxSignalVel = 0;
+#ifdef FEEDBACK
+ dtEgySpecFeedback=0;
+#endif
+
+ p_over_rho2_i = pressure / (rho * rho) * dhsmlDensityFactor;
+ h_i2 = h_i * h_i;
+
+
+#ifdef ART_CONDUCTIVITY
+ Arho_i = pressure/rho;
+ u_i = pressure/(rho*GAMMA_MINUS1);
+ dtEntropy_artcond=0;
+#endif
+
+#ifdef ART_VISCO_CD
+ for (ii = 0; ii < 3; ii++)
+ for (jj = 0; jj < 3; jj++)
+ {
+ DmatCD[ii][jj] = 0.;
+ TmatCD[ii][jj] = 0.;
+ }
+
+ R_CD = 0.;
+#endif
+
+ /* Now start the actual SPH computation for this particle */
+ startnode = All.MaxPart;
+ do
+ {
+ numngb = ngb_treefind_pairs(&pos[0], h_i, phase, &startnode);
+
+ for(n = 0; n < numngb; n++)
+ {
+ j = Ngblist[n];
+
+ dx = pos[0] - P[j].Pos[0];
+ dy = pos[1] - P[j].Pos[1];
+ dz = pos[2] - P[j].Pos[2];
+
+#ifdef PERIODIC /* find the closest image in the given box size */
+ if(dx > boxHalf_X)
+ dx -= boxSize_X;
+ if(dx < -boxHalf_X)
+ dx += boxSize_X;
+ if(dy > boxHalf_Y)
+ dy -= boxSize_Y;
+ if(dy < -boxHalf_Y)
+ dy += boxSize_Y;
+ if(dz > boxHalf_Z)
+ dz -= boxSize_Z;
+ if(dz < -boxHalf_Z)
+ dz += boxSize_Z;
+#endif
+ r2 = dx * dx + dy * dy + dz * dz;
+ h_j = SphP[j].Hsml;
+ if(r2 < h_i2 || r2 < h_j * h_j)
+ {
+ r = sqrt(r2);
+ if(r > 0)
+ {
+ p_over_rho2_j = SphP[j].Pressure / (SphP[j].Density * SphP[j].Density);
+ soundspeed_j = sqrt(GAMMA * p_over_rho2_j * SphP[j].Density);
+ dvx = vel[0] - SphP[j].VelPred[0];
+ dvy = vel[1] - SphP[j].VelPred[1];
+ dvz = vel[2] - SphP[j].VelPred[2];
+ vdotr = dx * dvx + dy * dvy + dz * dvz;
+
+ if(All.ComovingIntegrationOn)
+ vdotr2 = vdotr + hubble_a2 * r2;
+ else
+ vdotr2 = vdotr;
+
+ if(r2 < h_i2)
+ {
+ hinv = 1.0 / h_i;
+#ifndef TWODIMS
+ hinv4 = hinv * hinv * hinv * hinv;
+#else
+ hinv4 = hinv * hinv * hinv / boxSize_Z;
+#endif
+ u = r * hinv;
+ if(u < 0.5)
+ dwk_i = hinv4 * u * (KERNEL_COEFF_3 * u - KERNEL_COEFF_4);
+ else
+ dwk_i = hinv4 * KERNEL_COEFF_6 * (1.0 - u) * (1.0 - u);
+ }
+ else
+ {
+ dwk_i = 0;
+ }
+
+ if(r2 < h_j * h_j)
+ {
+ hinv = 1.0 / h_j;
+#ifndef TWODIMS
+ hinv4 = hinv * hinv * hinv * hinv;
+#else
+ hinv4 = hinv * hinv * hinv / boxSize_Z;
+#endif
+ u = r * hinv;
+ if(u < 0.5)
+ dwk_j = hinv4 * u * (KERNEL_COEFF_3 * u - KERNEL_COEFF_4);
+ else
+ dwk_j = hinv4 * KERNEL_COEFF_6 * (1.0 - u) * (1.0 - u);
+ }
+ else
+ {
+ dwk_j = 0;
+ }
+
+
+
+#if !defined(ART_VISCO_MM) && !defined(ART_VISCO_ROSS) && !defined(ART_VISCO_CD)
+
+
+ if(soundspeed_i + soundspeed_j > maxSignalVel)
+ maxSignalVel = soundspeed_i + soundspeed_j;
+
+ if(vdotr2 < 0) /* ... artificial viscosity */
+ {
+ mu_ij = fac_mu * vdotr2 / r; /* note: this is negative! */
+
+ vsig = soundspeed_i + soundspeed_j - 3 * mu_ij;
+
+ if(vsig > maxSignalVel)
+ maxSignalVel = vsig;
+
+ rho_ij = 0.5 * (rho + SphP[j].Density);
+ f2 =
+ fabs(SphP[j].DivVel) / (fabs(SphP[j].DivVel) + SphP[j].CurlVel +
+ 0.0001 * soundspeed_j / fac_mu / SphP[j].Hsml);
+
+ visc = 0.25 * All.ArtBulkViscConst * vsig * (-mu_ij) / rho_ij * (f1 + f2);
+
+ /* .... end artificial viscosity evaluation */
+#ifndef NOVISCOSITYLIMITER
+ /* make sure that viscous acceleration is not too large */
+ dt = imax(timestep, (P[j].Ti_endstep - P[j].Ti_begstep)) * All.Timebase_interval;
+ if(dt > 0 && (dwk_i + dwk_j) < 0)
+ {
+ visc = dmin(visc, 0.5 * fac_vsic_fix * vdotr2 /
+ (0.5 * (mass + P[j].Mass) * (dwk_i + dwk_j) * r * dt));
+ }
+#endif
+ }
+ else
+ visc = 0;
+
+ p_over_rho2_j *= SphP[j].DhsmlDensityFactor;
+
+ hfc_visc = 0.5 * P[j].Mass * visc * (dwk_i + dwk_j) / r;
+
+ hfc = hfc_visc + P[j].Mass * (p_over_rho2_i * dwk_i + p_over_rho2_j * dwk_j) / r;
+
+ acc[0] -= hfc * dx;
+ acc[1] -= hfc * dy;
+ acc[2] -= hfc * dz;
+ dtEntropy += 0.5 * hfc_visc * vdotr2;
+
+#endif
+
+ /*********************************/
+ /* alternative form of viscosity */
+ /*********************************/
+
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS)|| defined(ART_VISCO_CD)
+
+ alpha_j = SphP[j].ArtBulkViscConst;
+ alpha_ij = 0.5*(alpha_i + alpha_j);
+ beta_ij = 2. * alpha_ij;
+
+ mu_ij = fac_mu * vdotr2 / r; /* note: this is negative! */
+
+ soundspeed_ij = 0.5 * (soundspeed_i + soundspeed_j);
+
+ rho_ij = 0.5 * (rho + SphP[j].Density);
+
+ visc = (- alpha_ij * soundspeed_ij * mu_ij + beta_ij * mu_ij * mu_ij) / rho_ij;
+
+ p_over_rho2_j *= SphP[j].DhsmlDensityFactor;
+
+ hfc_visc = 0.5 * P[j].Mass * visc * (dwk_i + dwk_j) / r;
+
+ hfc = hfc_visc + P[j].Mass * (p_over_rho2_i * dwk_i + p_over_rho2_j * dwk_j) / r;
+
+ acc[0] -= hfc * dx;
+ acc[1] -= hfc * dy;
+ acc[2] -= hfc * dz;
+ dtEntropy += 0.5 * hfc_visc * vdotr2;
+
+
+#ifdef ART_VISCO_CD
+
+ /* COMPUTE wk_i, wk_j, wk */
+ if(r2 < h_i2)
+ {
+ hinv = 1.0 / h_i;
+ hinv3 = hinv * hinv * hinv ;
+ u = r * hinv;
+
+ if(u < 0.5)
+ wk_i = hinv3 * (KERNEL_COEFF_1 + KERNEL_COEFF_2 * (u - 1) * u * u);
+ else
+ wk_i = hinv3 * KERNEL_COEFF_5 * (1.0 - u) * (1.0 - u) * (1.0 - u);
+ }
+ else
+ wk_i = 0;
+
+ if(r2 < h_j * h_j)
+ {
+ hinv = 1.0 / h_j;
+ hinv3 = hinv * hinv * hinv ;
+ u = r * hinv;
+
+ if(u < 0.5)
+ wk_j = hinv3 * (KERNEL_COEFF_1 + KERNEL_COEFF_2 * (u - 1) * u * u);
+ else
+ wk_j = hinv3 * KERNEL_COEFF_5 * (1.0 - u) * (1.0 - u) * (1.0 - u);
+ }
+ else
+ wk_j = 0;
+
+ /* wk = 0.5*(wk_i+wk_j); */
+
+ wk = 0.5*(dwk_i + dwk_j)/r;
+
+
+ /* CHOICE OF THE WEIGHT */
+ wk = P[j].Mass * wk / SphP[j].Density;
+
+ /* COMPUTE the matrix Di, Ti */
+
+ DmatCD[0][0] += dvx * dx * wk;
+ DmatCD[1][0] += dvy * dx * wk;
+ DmatCD[2][0] += dvz * dx * wk;
+ DmatCD[0][1] += dvx * dy * wk;
+ DmatCD[1][1] += dvy * dy * wk;
+ DmatCD[2][1] += dvz * dy * wk;
+ DmatCD[0][2] += dvx * dz * wk;
+ DmatCD[1][2] += dvy * dz * wk;
+ DmatCD[2][2] += dvz * dz * wk;
+
+ TmatCD[0][0] += dx * dx * wk;
+ TmatCD[1][0] += dy * dx * wk;
+ TmatCD[2][0] += dz * dx * wk;
+ TmatCD[0][1] += dx * dy * wk;
+ TmatCD[1][1] += dy * dy * wk;
+ TmatCD[2][1] += dz * dy * wk;
+ TmatCD[0][2] += dx * dz * wk;
+ TmatCD[1][2] += dy * dz * wk;
+ TmatCD[2][2] += dz * dz * wk;
+
+ /* COMPUTE maxSignalVel */
+
+ dv_dot_dx = dvx * dx + dvy * dy + dvz * dz;
+ vsig = soundspeed_ij - dmin(0., dv_dot_dx);
+
+ if(vsig > maxSignalVel)
+ maxSignalVel = vsig;
+
+ /* compute chock indicator */
+ if (SphP[j].DiVelAccurate>0.)
+ sign_DiVel = 1.;
+ else
+ sign_DiVel = -1.;
+
+ R_CD += 0.5 * sign_DiVel * P[j].Mass * (wk_i + wk_j);
+
+#endif
+#endif
+
+
+
+
+
+
+#ifdef ART_CONDUCTIVITY
+ mu_ij = fac_mu * vdotr2 / r;
+ vsig_u = soundspeed_i + soundspeed_j - 3 * mu_ij;
+ Arho_j = SphP[j].Pressure / SphP[j].Density;
+ rho_ij = 0.5 * (rho + SphP[j].Density);
+
+ /* switch */
+ normGradEnergyInt_j = sqrt( pow(SphP[j].GradEnergyInt[0],2)+pow(SphP[j].GradEnergyInt[1],2)+pow(SphP[j].GradEnergyInt[2],2));
+
+
+ u_j = SphP[j].Pressure/(SphP[j].Density*GAMMA_MINUS1);
+ hfc_cond = P[j].Mass * All.ArtCondConst * vsig_u * (Arho_i-Arho_j)/ rho_ij * 0.5*(dwk_i + dwk_j);
+
+
+ dtEntropy_artcond = hfc_cond / GAMMA_MINUS1;
+
+
+ dtEntropy += dtEntropy_artcond ;
+
+
+
+
+#endif
+ /*****************************************/
+ /* FEEDBACK INTERACTION */
+ /*****************************************/
+
+#ifdef FEEDBACK
+ rho_ij = 0.5 * (rho + SphP[j].Density);
+
+ if(P[j].Ti_endstep == All.Ti_Current)
+ {
+
+ /* additional feedback entropy */
+ if ((EnergySN > 0)||(SphP[j].EnergySN > 0))
+ {
+
+ /* find the thermal specific energy to release */
+ uintspec = 0.;
+
+ if (EnergySN > 0)
+ {
+ uintspec = 0;
+ }
+
+ if (SphP[j].EnergySN > 0)
+ {
+ uintspec += SphP[j].EnergySN * (1-All.SupernovaFractionInEgyKin)/ mass;
+ }
+
+ if(r2 < h_i2)
+ {
+ hinv = 1.0 / h_i;
+ hinv3 = hinv * hinv * hinv ;
+ u = r * hinv;
+
+ if(u < 0.5)
+ wk_i = hinv3 * (KERNEL_COEFF_1 + KERNEL_COEFF_2 * (u - 1) * u * u);
+ else
+ wk_i = hinv3 * KERNEL_COEFF_5 * (1.0 - u) * (1.0 - u) * (1.0 - u);
+ }
+ else
+ wk_i = 0;
+
+ if(r2 < h_j * h_j)
+ {
+ hinv = 1.0 / h_j;
+ hinv3 = hinv * hinv * hinv ;
+ u = r * hinv;
+
+ if(u < 0.5)
+ wk_j = hinv3 * (KERNEL_COEFF_1 + KERNEL_COEFF_2 * (u - 1) * u * u);
+ else
+ wk_j = hinv3 * KERNEL_COEFF_5 * (1.0 - u) * (1.0 - u) * (1.0 - u);
+ }
+ else
+ wk_j = 0;
+
+ wk = 0.5*(wk_i+wk_j);
+
+ /* dt in physical units */
+ dt = imax(timestep, (P[j].Ti_endstep - P[j].Ti_begstep)) * All.Timebase_interval/ hubble_a;
+ if(dt <= 0);
+ uintspec = 0;
+
+ /* thermal feedback */
+ uintspec = (uintspec/dt) *wk *0.5*(mass + P[j].Mass) /rho_ij *fac_pow ;
+ dtEntropy += uintspec;
+ dtEgySpecFeedback += uintspec;
+
+ }
+ }
+#endif /* FEEDBACK */
+
+
+
+ }
+ }
+ }
+ }
+ while(startnode >= 0);
+
+ /* Now collect the result at the right place */
+ if(mode == 0)
+ {
+ for(k = 0; k < 3; k++)
+ SphP[target].HydroAccel[k] = acc[k];
+ SphP[target].DtEntropy = dtEntropy;
+#ifdef FEEDBACK
+ SphP[target].DtEgySpecFeedback = dtEgySpecFeedback;
+#endif
+ SphP[target].MaxSignalVel = maxSignalVel;
+#ifdef COMPUTE_VELOCITY_DISPERSION
+ for(k = 0; k < VELOCITY_DISPERSION_SIZE; k++)
+ SphP[target].VelocityDispersion[k] = VelocityDispersion[k];
+#endif
+#ifdef OUTPUT_CONDUCTIVITY
+ SphP[target].OptVar2 = dtEntropy_artcond;
+#endif
+#ifdef ART_VISCO_CD
+ /*collect DmatCD, TmatCD*/
+ for (ii = 0; ii < 3; ii++)
+ for (jj = 0; jj < 3; jj++)
+ {
+ SphP[target].DmatCD[ii][jj] = DmatCD[ii][jj];
+ SphP[target].TmatCD[ii][jj] = TmatCD[ii][jj];
+ }
+ SphP[target].R_CD = R_CD;
+#endif
+ }
+ else
+ {
+ for(k = 0; k < 3; k++)
+ HydroDataResult[target].Acc[k] = acc[k];
+ HydroDataResult[target].DtEntropy = dtEntropy;
+#ifdef FEEDBACK
+ HydroDataResult[target].DtEgySpecFeedback = dtEgySpecFeedback;
+#endif
+ HydroDataResult[target].MaxSignalVel = maxSignalVel;
+#ifdef COMPUTE_VELOCITY_DISPERSION
+ for(k = 0; k < VELOCITY_DISPERSION_SIZE; k++)
+ HydroDataResult[target].VelocityDispersion[k] = VelocityDispersion[k];
+#endif
+#ifdef OUTPUT_CONDUCTIVITY
+ HydroDataResult[target].OptVar2 = dtEntropy_artcond;
+#endif
+#ifdef ART_VISCO_CD
+ /*collect DmatCD, TmatCD*/
+ for (ii = 0; ii < 3; ii++)
+ for (jj = 0; jj < 3; jj++)
+ {
+ HydroDataResult[target].DmatCD[ii][jj] = DmatCD[ii][jj];
+ HydroDataResult[target].TmatCD[ii][jj] = TmatCD[ii][jj];
+ }
+ HydroDataResult[target].R_CD = R_CD;
+#endif
+
+
+ }
+}
+
+
+
+
+
+/*! This is a comparison kernel for a sort routine, which is used to group
+ * particles that are going to be exported to the same CPU.
+ */
+int hydro_compare_key(const void *a, const void *b)
+{
+ if(((struct hydrodata_in *) a)->Task < (((struct hydrodata_in *) b)->Task))
+ return -1;
+ if(((struct hydrodata_in *) a)->Task > (((struct hydrodata_in *) b)->Task))
+ return +1;
+ return 0;
+}
diff --git a/clusters/user/GEAR/src/init.c b/clusters/user/GEAR/src/init.c
new file mode 100644
index 0000000..0a15d2a
--- /dev/null
+++ b/clusters/user/GEAR/src/init.c
@@ -0,0 +1,619 @@
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file init.c
+ * \brief Code for initialisation of a simulation from initial conditions
+ */
+
+
+/*! This function reads the initial conditions, and allocates storage for the
+ * tree. Various variables of the particle data are initialised and An intial
+ * domain decomposition is performed. If SPH particles are present, the inial
+ * SPH smoothing lengths are determined.
+ */
+void init(void)
+{
+ int i, j;
+ double a3;
+#ifdef SFR
+ double Mgas=0,sum_Mgas=0;
+ int nstars=0;
+ int *numlist;
+#endif
+
+ All.Time = All.TimeBegin;
+
+ switch (All.ICFormat)
+ {
+ case 1:
+#if (MAKEGLASS > 1)
+ seed_glass();
+#else
+ read_ic(All.InitCondFile);
+#endif
+ break;
+ case 2:
+ case 3:
+ read_ic(All.InitCondFile);
+ break;
+ default:
+ if(ThisTask == 0)
+ printf("ICFormat=%d not supported.\n", All.ICFormat);
+ endrun(0);
+ }
+
+ All.Time = All.TimeBegin;
+ All.Ti_Current = 0;
+
+ if(All.ComovingIntegrationOn)
+ {
+ All.Timebase_interval = (log(All.TimeMax) - log(All.TimeBegin)) / TIMEBASE;
+ a3 = All.Time * All.Time * All.Time;
+ }
+ else
+ {
+ All.Timebase_interval = (All.TimeMax - All.TimeBegin) / TIMEBASE;
+ a3 = 1;
+ }
+
+
+
+ if (ThisTask==0)
+ printf("\nMinimum Time Step (Timebase_interval) = %g \n\n", All.Timebase_interval);
+
+
+
+
+ set_softenings();
+
+ All.NumCurrentTiStep = 0; /* setup some counters */
+ All.SnapshotFileCount = 0;
+ if(RestartFlag == 2)
+ All.SnapshotFileCount = atoi(All.InitCondFile + strlen(All.InitCondFile) - 3) + 1;
+
+ All.TotNumOfForces = 0;
+ All.NumForcesSinceLastDomainDecomp = 0;
+
+ if(All.ComovingIntegrationOn)
+ if(All.PeriodicBoundariesOn == 1)
+ check_omega();
+
+ All.TimeLastStatistics = All.TimeBegin - All.TimeBetStatistics;
+#ifdef AGN_ACCRETION
+ All.TimeLastAccretion = All.TimeBegin - All.TimeBetAccretion;
+ All.LastMTotInRa = 0;
+#endif
+#ifdef BONDI_ACCRETION
+ All.BondiTimeLast = All.TimeBegin - All.BondiTimeBet;
+#endif
+#ifdef BUBBLES
+ All.EnergyBubbles=0;
+#endif
+
+ if(All.ComovingIntegrationOn) /* change to new velocity variable */
+ {
+ for(i = 0; i < NumPart; i++)
+ for(j = 0; j < 3; j++)
+ P[i].Vel[j] *= sqrt(All.Time) * All.Time;
+ }
+
+ for(i = 0; i < NumPart; i++) /* start-up initialization */
+ {
+ for(j = 0; j < 3; j++)
+ P[i].GravAccel[j] = 0;
+#ifdef PMGRID
+ for(j = 0; j < 3; j++)
+ P[i].GravPM[j] = 0;
+#endif
+ P[i].Ti_endstep = 0;
+ P[i].Ti_begstep = 0;
+
+ P[i].OldAcc = 0;
+ P[i].GravCost = 1;
+ P[i].Potential = 0;
+#ifdef PARTICLE_FLAG
+ P[i].Flag = 0;
+#endif
+ }
+
+#ifdef PMGRID
+ All.PM_Ti_endstep = All.PM_Ti_begstep = 0;
+#endif
+
+#ifdef FLEXSTEPS
+ All.PresentMinStep = TIMEBASE;
+ for(i = 0; i < NumPart; i++) /* start-up initialization */
+ {
+ P[i].FlexStepGrp = (int) (TIMEBASE * get_random_number(P[i].ID));
+ }
+#endif
+
+
+ for(i = 0; i < N_gas; i++) /* initialize sph_properties */
+ {
+ for(j = 0; j < 3; j++)
+ {
+ SphP[i].VelPred[j] = P[i].Vel[j];
+ SphP[i].HydroAccel[j] = 0;
+ }
+
+ SphP[i].DtEntropy = 0;
+
+
+#ifdef STELLAR_FLUX
+ SphP[i].EnergyFlux = 0.;
+#endif
+#ifdef AGN_HEATING
+ SphP[i].EgySpecAGNHeat = 0.;
+ SphP[i].DtEgySpecAGNHeat = 0.;
+#endif
+#ifdef MULTIPHASE
+#ifdef COUNT_COLLISIONS
+ SphP[i].StickyCollisionNumber = 0;
+#endif
+#endif
+#ifdef FEEDBACK
+ SphP[i].EgySpecFeedback = 0.;
+ SphP[i].DtEgySpecFeedback = 0.;
+ SphP[i].EnergySN = 0.;
+ SphP[i].EnergySNrem = 0.;
+ SphP[i].TimeSN = 0.;
+ for(j = 0; j < 3; j++)
+ {
+ SphP[i].FeedbackVel[j] = 0;
+ }
+#endif
+#ifdef FEEDBACK_WIND
+ for(j = 0; j < 3; j++)
+ {
+ SphP[i].FeedbackWindVel[j] = 0;
+ }
+#endif
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS) || defined(ART_VISCO_CD)
+ SphP[i].ArtBulkViscConst = All.ArtBulkViscConstMin;
+#ifdef ART_VISCO_CD
+ SphP[i].ArtBulkViscConst = 0.;
+ SphP[i].DiVelAccurate = 0.;
+ SphP[i].DiVelTemp = 0.;
+#endif
+#endif
+
+
+
+
+#ifdef OUTPUTOPTVAR1
+ SphP[i].OptVar1 = 0.;
+#endif
+
+#ifdef OUTPUTOPTVAR2
+ SphP[i].OptVar2 = 0.;
+#endif
+
+
+#ifdef COMPUTE_VELOCITY_DISPERSION
+ for(j = 0; j < VELOCITY_DISPERSION_SIZE; j++)
+ SphP[i].VelocityDispersion[j] = 0.;
+#endif
+
+ if(RestartFlag == 0)
+ {
+ SphP[i].Hsml = 0;
+ SphP[i].Density = -1;
+ }
+
+#ifdef MULTIPHASE
+ /* here, we set the Phase, according to the SpecificEnergy and not Entropy */
+ if (SphP[i].Entropy > All.CriticalEgySpec)
+ SphP[i].Phase = GAS_SPH; /* warmer phase */
+ else
+ {
+ if (SphP[i].Entropy >= All.CriticalNonCollisionalEgySpec)
+ SphP[i].Phase = GAS_STICKY;
+ else
+ SphP[i].Phase = GAS_DARK;
+ }
+
+ SphP[i].StickyFlag = 0;
+ SphP[i].StickyTime = All.Time;
+ //SphP[i].StickyTime = All.Time + All.StickyIdleTime*get_random_number(P[i].ID);
+#endif
+
+#ifdef SFR
+ Mgas += P[i].Mass;
+#endif
+
+ }
+
+
+
+
+#ifdef SFR
+ RearrangeParticlesFlag=0;
+
+ if (All.StarFormationStarMass==0)
+ {
+ /* compute the mean gas mass */
+ MPI_Allreduce(&Mgas, &sum_Mgas, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ All.StarFormationStarMass = (sum_Mgas/All.TotN_gas) / All.StarFormationNStarsFromGas;
+ }
+
+
+ for(i = 0; i < NumPart; i++) /* initialize st_properties */
+ {
+ if (P[i].Type==ST)
+ nstars++;
+#ifdef STELLAR_PROP
+ if (P[i].Type==ST)
+ {
+
+
+ if (RestartFlag==0) /* only if starting from scratch */
+ {
+
+#ifndef CHIMIE_INPUT_ALL
+ P[i].StPIdx = i;
+
+ StP[P[i].StPIdx].FormationTime = 0; /* bad */
+ StP[P[i].StPIdx].InitialMass = 0; /* bad */
+ StP[P[i].StPIdx].IDProj = P[i].ID;
+
+ StP[P[i].StPIdx].Hsml = 0;
+ StP[P[i].StPIdx].Density = -1;
+
+ for(j = 0; j < NELEMENTS; j++)
+ StP[P[i].StPIdx].Metal[j] = 0.;
+
+ StP[P[i].StPIdx].Flag = 0; /*obsolete*/
+#else /* here, we restart for a file already processed by gadget */
+ P[i].StPIdx = i-N_gas;
+ StP[P[i].StPIdx].Flag = 0; /*obsolete*/
+#endif
+
+
+ }
+
+ if (RestartFlag==2) /* start from snapshot */
+ {
+ P[i].StPIdx = i-N_gas;
+
+ StP[P[i].StPIdx].Flag = 0; /*obsolete*/
+ }
+
+ StP[P[i].StPIdx].PIdx = i;
+#ifdef CHECK_ID_CORRESPONDENCE
+ StP[P[i].StPIdx].ID = P[i].ID;
+#endif
+
+
+
+ }
+ //else
+ // P[i].StPIdx = -1; /* shoud be set, however, may be a problem in domain.c --> must be corrected */
+#endif
+
+
+#ifdef CHIMIE
+ if (P[i].Type==0)
+ {
+ if (RestartFlag==0 && header.flag_metals==0) /* only if starting from scratch and metal block not present */
+ {
+ for(j = 0; j < NELEMENTS; j++)
+ {
+ SphP[i].Metal[j] = (pow(10,All.InitGasMetallicity)-1e-10)*get_SolarAbundance(j);
+ //if (j==FE)
+ // SphP[i].Metal[j] = (pow(10,All.InitGasMetallicity)-1e-10)*All.CoolingParameters_FeHSolar;
+ //else
+ // SphP[i].Metal[j] = 0;
+ }
+ }
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ SphP[i].DeltaEgySpec = 0;
+ SphP[i].NumberOfSNIa = 0;
+ SphP[i].NumberOfSNII = 0;
+
+ SphP[i].SNIaThermalTime = -1;
+ SphP[i].SNIIThermalTime = -1;
+
+
+#endif
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ SphP[i].WindTime = All.TimeBegin-2*All.ChimieWindTime;
+ SphP[i].WindFlag = 0;
+#endif
+ }
+
+#endif /* chimie */
+
+ }
+
+ /* here, we would like to reduce N_stars to TotN_stars */
+ /* MPI_Allreduce(&N_stars, &All.TotN_stars, 1, MPI_LONG_LONG, MPI_SUM, MPI_COMM_WORLD); does not works */
+
+ numlist = malloc(NTask * sizeof(int) * NTask);
+ MPI_Allgather(&N_stars, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotN_stars = 0; i < NTask; i++)
+ All.TotN_stars += numlist[i];
+ free(numlist);
+
+
+ if(ThisTask == 0)
+ {
+ printf("Total number of star particles : %d%09d\n\n",(int) (All.TotN_stars / 1000000000), (int) (All.TotN_stars % 1000000000));
+ fflush(stdout);
+ }
+
+
+#endif /*SFR*/
+
+
+
+
+
+
+
+
+ ngb_treeallocate(MAX_NGB);
+
+ force_treeallocate(All.TreeAllocFactor * All.MaxPart, All.MaxPart);
+
+ All.NumForcesSinceLastDomainDecomp = 1 + All.TotNumPart * All.TreeDomainUpdateFrequency;
+
+ Flag_FullStep = 1; /* to ensure that Peano-Hilber order is done */
+
+ domain_Decomposition(); /* do initial domain decomposition (gives equal numbers of particles) */
+
+ ngb_treebuild(); /* will build tree */
+
+ setup_smoothinglengths();
+
+#ifdef CHIMIE
+#ifndef CHIMIE_INPUT_ALL
+ stars_setup_smoothinglengths();
+#endif
+#endif
+
+ TreeReconstructFlag = 1;
+
+
+
+ /* at this point, the entropy variable normally contains the
+ * internal energy, read in from the initial conditions file, unless the file
+ * explicitly signals that the initial conditions contain the entropy directly.
+ * Once the density has been computed, we can convert thermal energy to entropy.
+ */
+#ifndef ISOTHERM_EQS
+ if(header.flag_entropy_instead_u == 0)
+ {
+ for(i = 0; i < N_gas; i++)
+#ifdef MULTIPHASE
+ {
+ switch(SphP[i].Phase)
+ {
+ case GAS_SPH:
+ SphP[i].Entropy = GAMMA_MINUS1 * SphP[i].Entropy / pow(SphP[i].Density / a3, GAMMA_MINUS1);
+ break;
+
+ case GAS_STICKY:
+ break;
+
+ case GAS_DARK:
+ SphP[i].Entropy = -SphP[i].Entropy;
+ break;
+ }
+
+ }
+#else
+ SphP[i].Entropy = GAMMA_MINUS1 * SphP[i].Entropy / pow(SphP[i].Density / a3, GAMMA_MINUS1);
+#endif
+ }
+
+
+#endif
+
+
+#ifdef ENTROPYPRED
+ for(i = 0; i < N_gas; i++)
+ SphP[i].EntropyPred = SphP[i].Entropy;
+#endif
+
+
+}
+
+
+/*! This routine computes the mass content of the box and compares it to the
+ * specified value of Omega-matter. If discrepant, the run is terminated.
+ */
+void check_omega(void)
+{
+ double mass = 0, masstot, omega;
+ int i;
+
+ for(i = 0; i < NumPart; i++)
+ mass += P[i].Mass;
+
+ MPI_Allreduce(&mass, &masstot, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+
+ omega =
+ masstot / (All.BoxSize * All.BoxSize * All.BoxSize) / (3 * All.Hubble * All.Hubble / (8 * M_PI * All.G));
+
+ if(fabs(omega - All.Omega0) > 1.0e-3)
+ {
+ if(ThisTask == 0)
+ {
+ printf("\n\nI've found something odd!\n");
+ printf
+ ("The mass content accounts only for Omega=%g,\nbut you specified Omega=%g in the parameterfile.\n",
+ omega, All.Omega0);
+ printf("\nI better stop.\n");
+
+ fflush(stdout);
+ }
+ endrun(1);
+ }
+}
+
+
+
+/*! This function is used to find an initial smoothing length for each SPH
+ * particle. It guarantees that the number of neighbours will be between
+ * desired_ngb-MAXDEV and desired_ngb+MAXDEV. For simplicity, a first guess
+ * of the smoothing length is provided to the function density(), which will
+ * then iterate if needed to find the right smoothing length.
+ */
+void setup_smoothinglengths(void)
+{
+ int i, no, p;
+
+ if(RestartFlag == 0)
+ {
+
+ for(i = 0; i < N_gas; i++)
+ {
+ no = Father[i];
+
+ while(10 * All.DesNumNgb * P[i].Mass > Nodes[no].u.d.mass)
+ {
+ p = Nodes[no].u.d.father;
+
+ if(p < 0)
+ break;
+
+ no = p;
+ }
+#ifndef TWODIMS
+ SphP[i].Hsml =
+ pow(3.0 / (4 * M_PI) * All.DesNumNgb * P[i].Mass / Nodes[no].u.d.mass, 1.0 / 3) * Nodes[no].len;
+#else
+ SphP[i].Hsml =
+ pow(1.0 / (M_PI) * All.DesNumNgb * P[i].Mass / Nodes[no].u.d.mass, 1.0 / 2) * Nodes[no].len;
+#endif
+ }
+ }
+
+ density(0);
+}
+
+
+#ifdef CHIMIE
+/*! This function is used to find an initial smoothing length for each SPH
+ * particle. It guarantees that the number of neighbours will be between
+ * desired_ngb-MAXDEV and desired_ngb+MAXDEV. For simplicity, a first guess
+ * of the smoothing length is provided to the function density(), which will
+ * then iterate if needed to find the right smoothing length.
+ */
+void stars_setup_smoothinglengths(void)
+{
+ int i, no, p;
+
+ if(RestartFlag == 0)
+ {
+
+ for(i = 0; i < NumPart; i++)
+ {
+
+ if(P[i].Type == ST)
+ {
+
+ no = Father[i];
+
+ while(10 * All.DesNumNgb * P[i].Mass > Nodes[no].u.d.mass)
+ {
+ p = Nodes[no].u.d.father;
+
+ if(p < 0)
+ break;
+
+ no = p;
+ }
+#ifndef TWODIMS
+ StP[P[i].StPIdx].Hsml =
+ pow(3.0 / (4 * M_PI) * All.DesNumNgb * P[i].Mass / Nodes[no].u.d.mass, 1.0 / 3) * Nodes[no].len;
+#else
+ StP[P[i].StPIdx].Hsml =
+ pow(1.0 / (M_PI) * All.DesNumNgb * P[i].Mass / Nodes[no].u.d.mass, 1.0 / 2) * Nodes[no].len;
+#endif
+
+ }
+
+ }
+ }
+
+ stars_density();
+}
+#endif
+
+
+
+/*! If the code is run in glass-making mode, this function populates the
+ * simulation box with a Poisson sample of particles.
+ */
+#if (MAKEGLASS > 1)
+void seed_glass(void)
+{
+ int i, k, n_for_this_task;
+ double Range[3], LowerBound[3];
+ double drandom, partmass;
+ long long IDstart;
+
+ All.TotNumPart = MAKEGLASS;
+ partmass = All.Omega0 * (3 * All.Hubble * All.Hubble / (8 * M_PI * All.G))
+ * (All.BoxSize * All.BoxSize * All.BoxSize) / All.TotNumPart;
+
+ All.MaxPart = All.PartAllocFactor * (All.TotNumPart / NTask); /* sets the maximum number of particles that may */
+
+ allocate_memory();
+
+ header.npartTotal[1] = All.TotNumPart;
+ header.mass[1] = partmass;
+
+ if(ThisTask == 0)
+ {
+ printf("\nGlass initialising\nPartMass= %g\n", partmass);
+ printf("TotNumPart= %d%09d\n\n",
+ (int) (All.TotNumPart / 1000000000), (int) (All.TotNumPart % 1000000000));
+ }
+
+ /* set the number of particles assigned locally to this task */
+ n_for_this_task = All.TotNumPart / NTask;
+
+ if(ThisTask == NTask - 1)
+ n_for_this_task = All.TotNumPart - (NTask - 1) * n_for_this_task;
+
+ NumPart = 0;
+ IDstart = 1 + (All.TotNumPart / NTask) * ThisTask;
+
+ /* split the temporal domain into Ntask slabs in z-direction */
+
+ Range[0] = Range[1] = All.BoxSize;
+ Range[2] = All.BoxSize / NTask;
+ LowerBound[0] = LowerBound[1] = 0;
+ LowerBound[2] = ThisTask * Range[2];
+
+ srand48(ThisTask);
+
+ for(i = 0; i < n_for_this_task; i++)
+ {
+ for(k = 0; k < 3; k++)
+ {
+ drandom = drand48();
+
+ P[i].Pos[k] = LowerBound[k] + Range[k] * drandom;
+ P[i].Vel[k] = 0;
+ }
+
+ P[i].Mass = partmass;
+ P[i].Type = 1;
+ P[i].ID = IDstart + i;
+
+ NumPart++;
+ }
+}
+#endif
diff --git a/clusters/user/GEAR/src/io.c b/clusters/user/GEAR/src/io.c
new file mode 100644
index 0000000..3060464
--- /dev/null
+++ b/clusters/user/GEAR/src/io.c
@@ -0,0 +1,1645 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <errno.h>
+
+#ifdef HAVE_HDF5
+#include <hdf5.h>
+#endif
+
+#include "allvars.h"
+#include "proto.h"
+
+
+
+/*! \file io.c
+ * \brief Routines for producing a snapshot file on disk.
+ */
+
+static int n_type[6];
+static long long ntot_type_all[6];
+
+
+
+
+/*! This function writes a snapshot of the particle distribution to one or
+ * several files using the selected file format. If NumFilesPerSnapshot>1,
+ * the snapshot is distributed onto several files, several of them can be
+ * written simultaneously (up to NumFilesWrittenInParallel). Each file
+ * contains data from a group of processors.
+ */
+void savepositions(int num)
+{
+ double t0, t1;
+ char buf[500];
+ int i, j, *temp, n, filenr, gr, ngroups, masterTask, lastTask;
+
+ t0 = second();
+
+ if(ThisTask == 0)
+ printf("\nwriting snapshot file... \n");
+
+#if defined(SFR) || defined(BLACK_HOLES)
+ rearrange_particle_sequence();
+ /* ensures that new tree will be constructed */
+ All.NumForcesSinceLastDomainDecomp = 1 + All.TreeDomainUpdateFrequency * All.TotNumPart;
+#endif
+
+ if(NTask < All.NumFilesPerSnapshot)
+ {
+ if(ThisTask == 0)
+ printf("Fatal error.\nNumber of processors must be larger or equal than All.NumFilesPerSnapshot.\n");
+ endrun(0);
+ }
+ if(All.SnapFormat < 1 || All.SnapFormat > 3)
+ {
+ if(ThisTask == 0)
+ printf("Unsupported File-Format\n");
+ endrun(0);
+ }
+#ifndef HAVE_HDF5
+ if(All.SnapFormat == 3)
+ {
+ if(ThisTask == 0)
+ printf("Code wasn't compiled with HDF5 support enabled!\n");
+ endrun(0);
+ }
+#endif
+
+
+ /* determine global and local particle numbers */
+ for(n = 0; n < 6; n++)
+ n_type[n] = 0;
+
+ for(n = 0; n < NumPart; n++)
+ n_type[P[n].Type]++;
+
+#ifdef CHECK_TYPE_DURING_IO
+ if (n_type[0]!=N_gas)
+ {
+ printf("(%d) n_type[0]=%d N_gas=%d !!!\n\n",ThisTask,n_type[0],N_gas);
+ endrun(111000);
+ }
+#ifdef SFR
+ if (n_type[ST]!=N_stars)
+ {
+ printf("(%d) n_type[ST]=%d N_gas=%d !!!\n\n",ThisTask,n_type[ST],N_stars);
+ endrun(111001);
+ }
+#endif
+#endif
+
+
+ /* because ntot_type_all[] is of type `long long', we cannot do a simple
+ * MPI_Allreduce() to sum the total particle numbers
+ */
+ temp = malloc(NTask * 6 * sizeof(int));
+ MPI_Allgather(n_type, 6, MPI_INT, temp, 6, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0; i < 6; i++)
+ {
+ ntot_type_all[i] = 0;
+ for(j = 0; j < NTask; j++)
+ ntot_type_all[i] += temp[j * 6 + i];
+ }
+ free(temp);
+
+
+ /* assign processors to output files */
+ distribute_file(All.NumFilesPerSnapshot, 0, 0, NTask - 1, &filenr, &masterTask, &lastTask);
+
+ fill_Tab_IO_Labels();
+
+ if(All.NumFilesPerSnapshot > 1)
+ sprintf(buf, "%s%s_%04d.%d", All.OutputDir, All.SnapshotFileBase, num, filenr);
+ else
+ sprintf(buf, "%s%s_%04d", All.OutputDir, All.SnapshotFileBase, num);
+
+ ngroups = All.NumFilesPerSnapshot / All.NumFilesWrittenInParallel;
+ if((All.NumFilesPerSnapshot % All.NumFilesWrittenInParallel))
+ ngroups++;
+
+ for(gr = 0; gr < ngroups; gr++)
+ {
+ if((filenr / All.NumFilesWrittenInParallel) == gr) /* ok, it's this processor's turn */
+ write_file(buf, masterTask, lastTask);
+ MPI_Barrier(MPI_COMM_WORLD);
+ }
+
+
+ if(ThisTask == 0)
+ printf("done with snapshot.\n");
+
+ t1 = second();
+
+ All.CPU_Snapshot += timediff(t0, t1);
+
+}
+
+
+
+/*! This function fills the write buffer with particle data. New output blocks
+ * can in principle be added here.
+ */
+void fill_write_buffer(enum iofields blocknr, int *startindex, int pc, int type)
+{
+ int n, k, pindex;
+ float *fp;
+
+#ifdef LONGIDS
+ long long *ip;
+#else
+ int *ip;
+#endif
+
+#ifdef PERIODIC
+ FLOAT boxSize;
+#endif
+#ifdef PMGRID
+ double dt_gravkick_pm = 0;
+#endif
+ double dt_gravkick, dt_hydrokick, a3inv = 1, fac1, fac2;
+
+
+ if(All.ComovingIntegrationOn)
+ {
+ a3inv = 1 / (All.Time * All.Time * All.Time);
+ fac1 = 1 / (All.Time * All.Time);
+ fac2 = 1 / pow(All.Time, 3 * GAMMA - 2);
+ }
+ else
+ a3inv = fac1 = fac2 = 1;
+
+#ifdef PMGRID
+ if(All.ComovingIntegrationOn)
+ dt_gravkick_pm =
+ get_gravkick_factor(All.PM_Ti_begstep,
+ All.Ti_Current) -
+ get_gravkick_factor(All.PM_Ti_begstep, (All.PM_Ti_begstep + All.PM_Ti_endstep) / 2);
+ else
+ dt_gravkick_pm = (All.Ti_Current - (All.PM_Ti_begstep + All.PM_Ti_endstep) / 2) * All.Timebase_interval;
+#endif
+
+
+
+ fp = CommBuffer;
+ ip = CommBuffer;
+
+ pindex = *startindex;
+
+ switch (blocknr)
+ {
+ case IO_POS: /* positions */
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ for(k = 0; k < 3; k++)
+ {
+ fp[k] = P[pindex].Pos[k];
+#ifdef PERIODIC
+ boxSize = All.BoxSize;
+#ifdef LONG_X
+ if(k == 0)
+ boxSize = All.BoxSize * LONG_X;
+#endif
+#ifdef LONG_Y
+ if(k == 1)
+ boxSize = All.BoxSize * LONG_Y;
+#endif
+#ifdef LONG_Z
+ if(k == 2)
+ boxSize = All.BoxSize * LONG_Z;
+#endif
+ while(fp[k] < 0)
+ fp[k] += boxSize;
+ while(fp[k] >= boxSize)
+ fp[k] -= boxSize;
+#endif
+ }
+ n++;
+ fp += 3;
+ }
+ break;
+
+ case IO_VEL: /* velocities */
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ if(All.ComovingIntegrationOn)
+ {
+ dt_gravkick =
+ get_gravkick_factor(P[pindex].Ti_begstep,
+ All.Ti_Current) -
+ get_gravkick_factor(P[pindex].Ti_begstep,
+ (P[pindex].Ti_begstep + P[pindex].Ti_endstep) / 2);
+ dt_hydrokick =
+ get_hydrokick_factor(P[pindex].Ti_begstep,
+ All.Ti_Current) -
+ get_hydrokick_factor(P[pindex].Ti_begstep,
+ (P[pindex].Ti_begstep + P[pindex].Ti_endstep) / 2);
+ }
+ else
+ dt_gravkick = dt_hydrokick =
+ (All.Ti_Current - (P[pindex].Ti_begstep + P[pindex].Ti_endstep) / 2) * All.Timebase_interval;
+
+ for(k = 0; k < 3; k++)
+ {
+ fp[k] = P[pindex].Vel[k] + P[pindex].GravAccel[k] * dt_gravkick;
+ if(P[pindex].Type == 0)
+ {
+ fp[k] += SphP[pindex].HydroAccel[k] * dt_hydrokick;
+ }
+ }
+#ifdef PMGRID
+ for(k = 0; k < 3; k++)
+ fp[k] += P[pindex].GravPM[k] * dt_gravkick_pm;
+#endif
+ for(k = 0; k < 3; k++)
+ fp[k] *= sqrt(a3inv);
+
+ n++;
+ fp += 3;
+ }
+ break;
+
+ case IO_ID: /* particle ID */
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *ip++ = P[pindex].ID;
+ n++;
+ }
+ break;
+
+ case IO_MASS: /* particle mass */
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = P[pindex].Mass;
+ n++;
+ }
+ break;
+
+ case IO_U: /* internal energy */
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+#ifdef ISOTHERM_EQS
+ *fp++ = SphP[pindex].Entropy;
+#else
+#ifdef MULTIPHASE
+ switch(SphP[pindex].Phase)
+ {
+ case GAS_SPH:
+ *fp++ = dmax(All.MinEgySpec,SphP[pindex].Entropy / GAMMA_MINUS1 * pow(SphP[pindex].Density * a3inv, GAMMA_MINUS1));
+ break;
+ case GAS_STICKY:
+ *fp++ = SphP[pindex].Entropy;
+ break;
+ case GAS_DARK:
+ *fp++ = -SphP[pindex].Entropy;
+ break;
+ }
+#else
+ *fp++ =
+ dmax(All.MinEgySpec,
+ SphP[pindex].Entropy / GAMMA_MINUS1 * pow(SphP[pindex].Density * a3inv, GAMMA_MINUS1));
+#endif
+#endif
+ n++;
+ }
+ break;
+
+ case IO_RHO: /* density */
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = SphP[pindex].Density;
+ n++;
+ }
+ break;
+
+ case IO_HSML: /* SPH smoothing length */
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = SphP[pindex].Hsml;
+ n++;
+ }
+ break;
+
+ /*********************************************/
+ /* here it is the end of the minimal output */
+ /*********************************************/
+
+
+ case IO_STAR_FORMATIONTIME: /* stellar formation time */
+#ifdef OUTPUTSTELLAR_PROP
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = StP[P[pindex].StPIdx].FormationTime;
+ n++;
+ }
+#endif
+ break;
+
+
+ case IO_INITIAL_MASS: /* stellar formation time */
+#ifdef OUTPUTSTELLAR_PROP
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = StP[P[pindex].StPIdx].InitialMass;
+ n++;
+ }
+#endif
+ break;
+
+
+ case IO_STAR_IDPROJ: /* stellar projenitor */
+#ifdef OUTPUTSTELLAR_PROP
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *ip++ = StP[P[pindex].StPIdx].IDProj;
+ n++;
+ }
+#endif
+ break;
+
+
+ case IO_STAR_RHO: /* gas density around a star */
+#ifdef OUTPUTSTELLAR_PROP
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = StP[P[pindex].StPIdx].Density;
+ n++;
+ }
+#endif
+ break;
+
+
+ case IO_STAR_HSML: /* SPH smoothing length of a star */
+#ifdef OUTPUTSTELLAR_PROP
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = StP[P[pindex].StPIdx].Hsml;
+ n++;
+ }
+#endif
+ break;
+
+
+
+ case IO_STAR_METALS: /* stars metal */
+#ifdef OUTPUTSTELLAR_PROP
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ for(k = 0; k < NELEMENTS; k++)
+ {
+ fp[k] = StP[P[pindex].StPIdx].Metal[k];
+ }
+ n++;
+ fp += NELEMENTS;
+ }
+#endif
+ break;
+
+
+
+ case IO_METALS: /* gas metal */
+#ifdef OUTPUTSTELLAR_PROP
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ for(k = 0; k < NELEMENTS; k++)
+ {
+ fp[k] = SphP[pindex].Metal[k];
+ }
+ n++;
+ fp += NELEMENTS;
+ }
+#endif
+ break;
+
+
+
+
+
+
+
+
+
+ case IO_POT: /* gravitational potential */
+#ifdef OUTPUTPOTENTIAL
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = P[pindex].Potential;
+ n++;
+ }
+#endif
+ break;
+
+ case IO_ACCEL: /* acceleration */
+#ifdef OUTPUTACCELERATION
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ for(k = 0; k < 3; k++)
+ fp[k] = fac1 * P[pindex].GravAccel[k];
+#ifdef PMGRID
+ for(k = 0; k < 3; k++)
+ fp[k] += fac1 * P[pindex].GravPM[k];
+#endif
+ if(P[pindex].Type == 0)
+ for(k = 0; k < 3; k++)
+ {
+ fp[k] += fac2 * SphP[pindex].HydroAccel[k];
+ }
+ fp += 3;
+ n++;
+ }
+#endif
+ break;
+
+ case IO_DTENTR: /* rate of change of entropy */
+#ifdef OUTPUTCHANGEOFENTROPY
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = SphP[pindex].DtEntropy;
+ n++;
+ }
+#endif
+ break;
+
+ case IO_TSTP: /* timestep */
+#ifdef OUTPUTTIMESTEP
+
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = (P[pindex].Ti_endstep - P[pindex].Ti_begstep) * All.Timebase_interval;
+ n++;
+ }
+#endif
+ break;
+
+ case IO_ERADSTICKY: /* sticky radiated energy */
+#ifdef OUTPUTERADSTICKY
+ /* obsolete */
+#endif
+ break;
+
+ case IO_ERADFEEDBACK: /* feedback injected energy */
+#ifdef OUTPUTERADFEEDBACK
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = SphP[pindex].EgySpecFeedback;
+ n++;
+ }
+#endif
+ break;
+
+ case IO_ENERGYFLUX: /* energyflux */
+#ifdef OUTPUTENERGYFLUX
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = SphP[pindex].EnergyFlux;
+ n++;
+ }
+#endif
+ break;
+
+ case IO_OPTVAR1: /* optional variable 1 */
+#ifdef OUTPUTOPTVAR1
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = SphP[pindex].OptVar1;
+ n++;
+ }
+#endif
+ break;
+
+ case IO_OPTVAR2: /* optional variable 2 */
+#ifdef OUTPUTOPTVAR2
+ for(n = 0; n < pc; pindex++)
+ if(P[pindex].Type == type)
+ {
+ *fp++ = SphP[pindex].OptVar2;
+ n++;
+ }
+#endif
+ break;
+ }
+
+ *startindex = pindex;
+}
+
+
+
+
+/*! This function tells the size of one data entry in each of the blocks
+ * defined for the output file. If one wants to add a new output-block, this
+ * function should be augmented accordingly.
+ */
+int get_bytes_per_blockelement(enum iofields blocknr)
+{
+ int bytes_per_blockelement = 0;
+
+ switch (blocknr)
+ {
+ case IO_POS:
+ case IO_VEL:
+ case IO_ACCEL:
+ bytes_per_blockelement = 3 * sizeof(float);
+ break;
+
+ case IO_ID:
+#ifdef LONGIDS
+ bytes_per_blockelement = sizeof(long long);
+#else
+ bytes_per_blockelement = sizeof(int);
+#endif
+ break;
+
+ case IO_MASS:
+ case IO_U:
+ case IO_RHO:
+ case IO_HSML:
+ case IO_POT:
+ case IO_DTENTR:
+ case IO_TSTP:
+ case IO_ERADSPH:
+ case IO_ERADSTICKY:
+ case IO_ERADFEEDBACK:
+ case IO_ENERGYFLUX:
+ case IO_OPTVAR1:
+ case IO_OPTVAR2:
+ bytes_per_blockelement = sizeof(float);
+ break;
+
+
+ case IO_STAR_FORMATIONTIME:
+ case IO_INITIAL_MASS:
+ case IO_STAR_RHO:
+ case IO_STAR_HSML:
+ bytes_per_blockelement = sizeof(float);
+ break;
+
+ case IO_METALS:
+#ifdef CHIMIE
+ case IO_STAR_METALS:
+ bytes_per_blockelement = NELEMENTS*sizeof(float);
+#endif
+ break;
+
+ case IO_STAR_IDPROJ:
+#ifdef LONGIDS
+ bytes_per_blockelement = sizeof(long long);
+#else
+ bytes_per_blockelement = sizeof(int);
+#endif
+ break;
+
+
+
+
+ }
+
+ return bytes_per_blockelement;
+}
+
+
+/*! This function returns the type of the data contained in a given block of
+ * the output file. If one wants to add a new output-block, this function
+ * should be augmented accordingly.
+ */
+int get_datatype_in_block(enum iofields blocknr)
+{
+ int typekey;
+
+ switch (blocknr)
+ {
+ case IO_ID:
+ case IO_STAR_IDPROJ:
+#ifdef LONGIDS
+ typekey = 2; /* native long long */
+#else
+ typekey = 0; /* native int */
+#endif
+ break;
+
+ default:
+ typekey = 1; /* native float */
+ break;
+ }
+
+ return typekey;
+}
+
+
+/*! This function informs about the number of elements stored per particle for
+ * the given block of the output file. If one wants to add a new
+ * output-block, this function should be augmented accordingly.
+ */
+int get_values_per_blockelement(enum iofields blocknr)
+{
+ int values = 0;
+
+ switch (blocknr)
+ {
+ case IO_POS:
+ case IO_VEL:
+ case IO_ACCEL:
+ values = 3;
+ break;
+
+ case IO_ID:
+ case IO_MASS:
+ case IO_U:
+ case IO_RHO:
+ case IO_HSML:
+ case IO_POT:
+ case IO_DTENTR:
+ case IO_TSTP:
+ case IO_ERADSPH:
+ case IO_ERADSTICKY:
+ case IO_ERADFEEDBACK:
+ case IO_ENERGYFLUX:
+ case IO_OPTVAR1:
+ case IO_OPTVAR2:
+ case IO_STAR_FORMATIONTIME:
+ case IO_INITIAL_MASS:
+ case IO_STAR_IDPROJ:
+ case IO_STAR_RHO:
+ case IO_STAR_HSML:
+ values = 1;
+ break;
+
+ case IO_METALS:
+#ifdef CHIMIE
+ case IO_STAR_METALS:
+ values = NELEMENTS;
+#endif
+ break;
+
+ }
+
+ return values;
+}
+
+
+/*! This function determines how many particles there are in a given block,
+ * based on the information in the header-structure. It also flags particle
+ * types that are present in the block in the typelist array. If one wants to
+ * add a new output-block, this function should be augmented accordingly.
+ */
+int get_particles_in_block(enum iofields blocknr, int *typelist)
+{
+ int i, nall, ntot_withmasses, ngas, nstars;
+
+ nall = 0;
+ ntot_withmasses = 0;
+
+ for(i = 0; i < 6; i++)
+ {
+ typelist[i] = 0;
+
+ if(header.npart[i] > 0)
+ {
+ nall += header.npart[i];
+ typelist[i] = 1;
+ }
+
+ if(All.MassTable[i] == 0)
+ ntot_withmasses += header.npart[i];
+ }
+
+ ngas = header.npart[0];
+#if defined(SFR) || defined(STELLAR_PROP)
+ nstars = header.npart[ST];
+#else
+ nstars = header.npart[4];
+#endif
+
+ switch (blocknr)
+ {
+ case IO_POS:
+ case IO_VEL:
+ case IO_ACCEL:
+ case IO_TSTP:
+ case IO_ID:
+ case IO_POT:
+ return nall;
+ break;
+
+ case IO_MASS:
+ for(i = 0; i < 6; i++)
+ {
+ typelist[i] = 0;
+ if(All.MassTable[i] == 0 && header.npart[i] > 0)
+ typelist[i] = 1;
+ }
+ return ntot_withmasses;
+ break;
+
+ case IO_U:
+ case IO_RHO:
+ case IO_HSML:
+ case IO_DTENTR:
+ case IO_ERADSPH:
+ case IO_ERADSTICKY:
+ case IO_ERADFEEDBACK:
+ case IO_ENERGYFLUX:
+ case IO_OPTVAR1:
+ case IO_OPTVAR2:
+ case IO_METALS:
+ for(i = 1; i < 6; i++)
+ typelist[i] = 0;
+ return ngas;
+ break;
+
+
+ case IO_STAR_FORMATIONTIME:
+ case IO_INITIAL_MASS:
+ case IO_STAR_IDPROJ:
+ case IO_STAR_RHO:
+ case IO_STAR_HSML:
+#if defined(STELLAR_PROP)
+ case IO_STAR_METALS:
+ for(i = 0; i < 6; i++)
+ {
+ typelist[i] = 0;
+ if(i == ST)
+ typelist[i] = 1;
+ }
+ return nstars;
+#endif
+ break;
+ }
+
+ endrun(212);
+ return 0;
+}
+
+
+
+/*! This function tells whether or not a given block in the output file is
+ * present, depending on the type of simulation run and the compile-time
+ * options. If one wants to add a new output-block, this function should be
+ * augmented accordingly.
+ */
+int blockpresent(enum iofields blocknr)
+{
+
+#ifndef OUTPUTPOTENTIAL
+ if(blocknr == IO_POT)
+ return 0;
+#endif
+
+#ifndef OUTPUTACCELERATION
+ if(blocknr == IO_ACCEL)
+ return 0;
+#endif
+
+#ifndef OUTPUTCHANGEOFENTROPY
+ if(blocknr == IO_DTENTR)
+ return 0;
+#endif
+
+#ifndef OUTPUTTIMESTEP
+ if(blocknr == IO_TSTP)
+ return 0;
+#endif
+
+#ifndef OUTPUTERADSPH
+ if(blocknr == IO_ERADSPH)
+ return 0;
+#endif
+
+#ifndef OUTPUTERADSTICKY
+ if(blocknr == IO_ERADSTICKY)
+ return 0;
+#endif
+
+#ifndef OUTPUTERADFEEDBACK
+ if(blocknr == IO_ERADFEEDBACK)
+ return 0;
+#endif
+
+#ifndef OUTPUTENERGYFLUX
+ if(blocknr == IO_ENERGYFLUX)
+ return 0;
+#endif
+
+#ifndef OUTPUTOPTVAR1
+ if(blocknr == IO_OPTVAR1)
+ return 0;
+#endif
+
+#ifndef OUTPUTOPTVAR2
+ if(blocknr == IO_OPTVAR2)
+ return 0;
+#endif
+
+#ifndef OUTPUTSTELLAR_PROP
+ if(blocknr == IO_STAR_FORMATIONTIME)
+ return 0;
+#endif
+
+#ifndef OUTPUTSTELLAR_PROP
+ if(blocknr == IO_INITIAL_MASS)
+ return 0;
+#endif
+
+#ifndef OUTPUTSTELLAR_PROP
+ if(blocknr == IO_STAR_IDPROJ)
+ return 0;
+#endif
+
+#ifndef OUTPUTSTELLAR_PROP
+ if(blocknr == IO_STAR_RHO)
+ return 0;
+#endif
+
+#ifndef OUTPUTSTELLAR_PROP
+ if(blocknr == IO_STAR_HSML)
+ return 0;
+#endif
+
+#ifndef OUTPUTSTELLAR_PROP
+ if(blocknr == IO_STAR_METALS)
+ return 0;
+#endif
+
+#ifndef OUTPUTSTELLAR_PROP
+ if(blocknr == IO_METALS)
+ return 0;
+#endif
+
+ return 1; /* default: present */
+}
+
+
+#ifdef BLOCK_SKIPPING
+/*! This function tells whether or not a given block in the input file is
+ * present, depending on the type of simulation run and the compile-time
+ * options. If one wants to add a new input-block, this function should be
+ * augmented accordingly.
+ */
+int blockabsent(enum iofields blocknr)
+{
+
+ /* here we will for exampe read the gas initial metallicity if needed */
+
+#ifdef CHIMIE
+
+#ifdef CHIMIE_INPUT_ALL
+ /* here, we restart from a file that contains all block*/
+ if(RestartFlag == 0 && header.flag_metals)
+ if(blocknr > IO_STAR_METALS) /* read all blocks */
+ return 1;
+ else
+ return 0;
+#else
+ /* here, we restart from a file that contains only the gas metals */
+ if(RestartFlag == 0 && header.flag_metals)
+ if(blocknr > IO_METALS) /* read in addition IO_RHO,IO_HSML and IO_METALS */
+ return 1;
+ else
+ return 0;
+#endif
+
+#endif
+
+
+ if(RestartFlag == 0 && blocknr > IO_U)
+ return 1; /* ignore all other blocks in initial conditions */
+
+ return 0; /* default: absent */
+}
+#endif
+
+
+
+/*! This function associates a short 4-character block name with each block
+ * number. This is stored in front of each block for snapshot
+ * FileFormat=2. If one wants to add a new output-block, this function should
+ * be augmented accordingly.
+ */
+void fill_Tab_IO_Labels(void)
+{
+ enum iofields i;
+
+ for(i = 0; i < IO_NBLOCKS; i++)
+ switch (i)
+ {
+ case IO_POS:
+ strncpy(Tab_IO_Labels[IO_POS], "POS ", 4);
+ break;
+ case IO_VEL:
+ strncpy(Tab_IO_Labels[IO_VEL], "VEL ", 4);
+ break;
+ case IO_ID:
+ strncpy(Tab_IO_Labels[IO_ID], "ID ", 4);
+ break;
+ case IO_MASS:
+ strncpy(Tab_IO_Labels[IO_MASS], "MASS", 4);
+ break;
+ case IO_U:
+ strncpy(Tab_IO_Labels[IO_U], "U ", 4);
+ break;
+ case IO_RHO:
+ strncpy(Tab_IO_Labels[IO_RHO], "RHO ", 4);
+ break;
+ case IO_HSML:
+ strncpy(Tab_IO_Labels[IO_HSML], "HSML", 4);
+ break;
+ case IO_POT:
+ strncpy(Tab_IO_Labels[IO_POT], "POT ", 4);
+ break;
+ case IO_ACCEL:
+ strncpy(Tab_IO_Labels[IO_ACCEL], "ACCE", 4);
+ break;
+ case IO_DTENTR:
+ strncpy(Tab_IO_Labels[IO_DTENTR], "ENDT", 4);
+ break;
+ case IO_TSTP:
+ strncpy(Tab_IO_Labels[IO_TSTP], "TSTP", 4);
+ break;
+ case IO_ERADSPH:
+ strncpy(Tab_IO_Labels[IO_ERADSPH], "ERADSPH", 4);
+ break;
+ case IO_ERADSTICKY:
+ strncpy(Tab_IO_Labels[IO_ERADSTICKY], "ERADSTICKY", 4);
+ break;
+ case IO_ERADFEEDBACK:
+ strncpy(Tab_IO_Labels[IO_ERADFEEDBACK], "ERADFEEDBACK", 4);
+ break;
+ case IO_ENERGYFLUX:
+ strncpy(Tab_IO_Labels[IO_ENERGYFLUX], "ENERGYFLUX", 4);
+ break;
+ case IO_OPTVAR1:
+ strncpy(Tab_IO_Labels[IO_OPTVAR1], "OPTVAR1", 4);
+ break;
+ case IO_OPTVAR2:
+ strncpy(Tab_IO_Labels[IO_OPTVAR2], "OPTVAR2", 4);
+ break;
+ case IO_STAR_FORMATIONTIME:
+ strncpy(Tab_IO_Labels[IO_STAR_FORMATIONTIME], "STAR_FORMATIONTIME", 4);
+ break;
+ case IO_INITIAL_MASS:
+ strncpy(Tab_IO_Labels[IO_INITIAL_MASS], "INITIAL_MASS", 4);
+ break;
+ case IO_STAR_IDPROJ:
+ strncpy(Tab_IO_Labels[IO_STAR_IDPROJ], "STAR_IDPROJ", 4);
+ break;
+ case IO_STAR_RHO:
+ strncpy(Tab_IO_Labels[IO_STAR_RHO], "STAR_RHO", 4);
+ break;
+ case IO_STAR_HSML:
+ strncpy(Tab_IO_Labels[IO_STAR_HSML], "STAR_HSML", 4);
+ break;
+ case IO_STAR_METALS:
+ strncpy(Tab_IO_Labels[IO_STAR_METALS], "STAR_METALS", 4);
+ break;
+ case IO_METALS:
+ strncpy(Tab_IO_Labels[IO_METALS], "METALS", 4);
+ break;
+
+ }
+}
+
+/*! This function returns a descriptive character string that describes the
+ * name of the block when the HDF5 file format is used. If one wants to add
+ * a new output-block, this function should be augmented accordingly.
+ */
+void get_dataset_name(enum iofields blocknr, char *buf)
+{
+
+ strcpy(buf, "default");
+
+ switch (blocknr)
+ {
+ case IO_POS:
+ strcpy(buf, "Coordinates");
+ break;
+ case IO_VEL:
+ strcpy(buf, "Velocities");
+ break;
+ case IO_ID:
+ strcpy(buf, "ParticleIDs");
+ break;
+ case IO_MASS:
+ strcpy(buf, "Masses");
+ break;
+ case IO_U:
+ strcpy(buf, "InternalEnergy");
+ break;
+ case IO_RHO:
+ strcpy(buf, "Density");
+ break;
+ case IO_HSML:
+ strcpy(buf, "SmoothingLength");
+ break;
+ case IO_POT:
+ strcpy(buf, "Potential");
+ break;
+ case IO_ACCEL:
+ strcpy(buf, "Acceleration");
+ break;
+ case IO_DTENTR:
+ strcpy(buf, "RateOfChangeOfEntropy");
+ break;
+ case IO_TSTP:
+ strcpy(buf, "TimeStep");
+ break;
+ case IO_ERADSPH:
+ strcpy(buf, "EnergyRadiatedSph");
+ break;
+ case IO_ERADSTICKY:
+ strcpy(buf, "EnergyRadiatedSticky");
+ break;
+ case IO_ERADFEEDBACK:
+ strcpy(buf, "EnergyRadiatedFeedback");
+ break;
+ case IO_ENERGYFLUX:
+ strcpy(buf, "EnergyFlux");
+ break;
+ case IO_OPTVAR1:
+ strcpy(buf, "OptVar1");
+ break;
+ case IO_OPTVAR2:
+ strcpy(buf, "OptVar2");
+ break;
+ case IO_STAR_FORMATIONTIME:
+ strcpy(buf, "StarFormationTime");
+ break;
+ case IO_INITIAL_MASS:
+ strcpy(buf, "InitialMass");
+ break;
+ case IO_STAR_IDPROJ:
+ strcpy(buf, "StarIDProj");
+ break;
+ case IO_STAR_RHO:
+ strcpy(buf, "StarRho");
+ break;
+ case IO_STAR_HSML:
+ strcpy(buf, "StarHsml");
+ break;
+ case IO_STAR_METALS:
+ strcpy(buf, "StarMetals");
+ break;
+ case IO_METALS:
+ strcpy(buf, "Metals");
+ break;
+
+ }
+}
+
+
+
+/*! This function writes an actual snapshot file containing the data from
+ * processors 'writeTask' to 'lastTask'. 'writeTask' is the one that actually
+ * writes. Each snapshot file contains a header first, then particle
+ * positions, velocities and ID's. Particle masses are written only for
+ * those particle types with zero entry in MassTable. After that, first the
+ * internal energies u, and then the density is written for the SPH
+ * particles. If cooling is enabled, mean molecular weight and neutral
+ * hydrogen abundance are written for the gas particles. This is followed by
+ * the SPH smoothing length and further blocks of information, depending on
+ * included physics and compile-time flags. If HDF5 is used, the header is
+ * stored in a group called "/Header", and the particle data is stored
+ * separately for each particle type in groups calles "/PartType0",
+ * "/PartType1", etc. The sequence of the blocks is unimportant in this case.
+ */
+void write_file(char *fname, int writeTask, int lastTask)
+{
+ int type, bytes_per_blockelement, npart, nextblock, typelist[6];
+ int n_for_this_task, ntask, n, p, pc, offset = 0, task;
+ int blockmaxlen, ntot_type[6], nn[6];
+ enum iofields blocknr;
+ int blksize;
+ int i;
+ MPI_Status status;
+ FILE *fd = 0;
+
+#ifdef HAVE_HDF5
+ hid_t hdf5_file = 0, hdf5_grp[6], hdf5_headergrp = 0, hdf5_dataspace_memory;
+ hid_t hdf5_datatype = 0, hdf5_dataspace_in_file = 0, hdf5_dataset = 0;
+ herr_t hdf5_status;
+ hsize_t dims[2], count[2], start[2];
+ int rank, pcsum = 0;
+ char buf[500];
+#endif
+
+#define SKIP {my_fwrite(&blksize,sizeof(int),1,fd);}
+
+ /* determine particle numbers of each type in file */
+
+ if(ThisTask == writeTask)
+ {
+ for(n = 0; n < 6; n++)
+ ntot_type[n] = n_type[n];
+
+ for(task = writeTask + 1; task <= lastTask; task++)
+ {
+ MPI_Recv(&nn[0], 6, MPI_INT, task, TAG_LOCALN, MPI_COMM_WORLD, &status);
+ for(n = 0; n < 6; n++)
+ ntot_type[n] += nn[n];
+ }
+
+ for(task = writeTask + 1; task <= lastTask; task++)
+ MPI_Send(&ntot_type[0], 6, MPI_INT, task, TAG_N, MPI_COMM_WORLD);
+ }
+ else
+ {
+ MPI_Send(&n_type[0], 6, MPI_INT, writeTask, TAG_LOCALN, MPI_COMM_WORLD);
+ MPI_Recv(&ntot_type[0], 6, MPI_INT, writeTask, TAG_N, MPI_COMM_WORLD, &status);
+ }
+
+
+
+ /* fill file header */
+
+ for(n = 0; n < 6; n++)
+ {
+ header.npart[n] = ntot_type[n];
+ header.npartTotal[n] = (unsigned int) ntot_type_all[n];
+ header.npartTotalHighWord[n] = (unsigned int) (ntot_type_all[n] >> 32);
+ }
+
+ for(n = 0; n < 6; n++)
+ header.mass[n] = All.MassTable[n];
+
+ header.time = All.Time;
+
+ if(All.ComovingIntegrationOn)
+ header.redshift = 1.0 / All.Time - 1;
+ else
+ header.redshift = 0;
+
+ header.flag_sfr = 0;
+ header.flag_feedback = 0;
+ header.flag_cooling = 0;
+ header.flag_stellarage = 0;
+ header.flag_metals = 0;
+
+
+#ifdef MULTIPHASE
+ header.critical_energy_spec = All.CriticalEgySpec;
+#endif
+
+#ifdef COOLING
+ header.flag_cooling = 1;
+#endif
+
+#ifdef SFR
+ header.flag_sfr = 1;
+#ifdef OUTPUTSTELLAR_PROP
+ header.flag_stellarage = 1;
+ header.flag_metals = NELEMENTS;
+#endif
+
+#ifdef FEEDBACK
+ header.flag_feedback = 1;
+#endif
+
+#endif
+
+
+ header.num_files = All.NumFilesPerSnapshot;
+ header.BoxSize = All.BoxSize;
+ header.Omega0 = All.Omega0;
+ header.OmegaLambda = All.OmegaLambda;
+ header.HubbleParam = All.HubbleParam;
+
+ /* set fill to " " : yr Thu Aug 13 17:34:07 CEST 2009*/
+ memset(header.fill,' ',sizeof(header.fill));
+
+
+ /* fill file chimie-header */
+ header.flag_chimie_extraheader = 0;
+
+#ifdef CHIMIE_EXTRAHEADER
+ header.flag_chimie_extraheader = 1;
+ chimie_extraheader.nelts = get_nelts();
+ for (i=0;i<get_nelts();i++)
+ {
+ chimie_extraheader.SolarAbundances[i]=get_SolarAbundance(i);
+ }
+
+ memset(chimie_extraheader.labels,' ',sizeof(chimie_extraheader.labels));
+ for (i=0,n=0;i<get_nelts();i++)
+ {
+ strcpy(&chimie_extraheader.labels[n],get_Element(i));
+ n+= strlen(get_Element(i));
+ strncpy(&chimie_extraheader.labels[n++],",",1);
+ }
+
+#endif
+
+ /* open file and write header */
+
+ if(ThisTask == writeTask)
+ {
+ if(All.SnapFormat == 3)
+ {
+#ifdef HAVE_HDF5
+ sprintf(buf, "%s.hdf5", fname);
+ hdf5_file = H5Fcreate(buf, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
+
+ hdf5_headergrp = H5Gcreate(hdf5_file, "/Header", 0);
+
+ for(type = 0; type < 6; type++)
+ {
+ if(header.npart[type] > 0)
+ {
+ sprintf(buf, "/PartType%d", type);
+ hdf5_grp[type] = H5Gcreate(hdf5_file, buf, 0);
+ }
+ }
+
+ write_header_attributes_in_hdf5(hdf5_headergrp);
+#endif
+ }
+ else
+ {
+ if(!(fd = fopen(fname, "w")))
+ {
+ printf("can't open file `%s' for writing snapshot.\n", fname);
+ endrun(123);
+ }
+
+ if(All.SnapFormat == 2)
+ {
+ blksize = sizeof(int) + 4 * sizeof(char);
+ SKIP;
+ my_fwrite("HEAD", sizeof(char), 4, fd);
+ nextblock = sizeof(header) + 2 * sizeof(int);
+ my_fwrite(&nextblock, sizeof(int), 1, fd);
+ SKIP;
+ }
+
+ blksize = sizeof(header);
+ SKIP;
+ my_fwrite(&header, sizeof(header), 1, fd);
+ SKIP;
+
+#ifdef CHIMIE_EXTRAHEADER
+ blksize = sizeof(chimie_extraheader);
+ SKIP;
+ my_fwrite(&chimie_extraheader, sizeof(chimie_extraheader), 1, fd);
+ SKIP;
+#endif
+ }
+ }
+
+ ntask = lastTask - writeTask + 1;
+
+ for(blocknr = 0; blocknr < IO_NBLOCKS; blocknr++)
+ {
+ if(blockpresent(blocknr))
+ {
+ bytes_per_blockelement = get_bytes_per_blockelement(blocknr);
+
+ blockmaxlen = ((int) (All.BufferSize * 1024 * 1024)) / bytes_per_blockelement;
+
+ npart = get_particles_in_block(blocknr, &typelist[0]);
+
+ if(npart > 0)
+ {
+ if(ThisTask == writeTask)
+ {
+
+ if(All.SnapFormat == 1 || All.SnapFormat == 2)
+ {
+ if(All.SnapFormat == 2)
+ {
+ blksize = sizeof(int) + 4 * sizeof(char);
+ SKIP;
+ my_fwrite(Tab_IO_Labels[blocknr], sizeof(char), 4, fd);
+ nextblock = npart * bytes_per_blockelement + 2 * sizeof(int);
+ my_fwrite(&nextblock, sizeof(int), 1, fd);
+ SKIP;
+ }
+
+ blksize = npart * bytes_per_blockelement;
+ SKIP;
+
+ }
+ }
+
+ for(type = 0; type < 6; type++)
+ {
+ if(typelist[type])
+ {
+#ifdef HAVE_HDF5
+ if(ThisTask == writeTask && All.SnapFormat == 3 && header.npart[type] > 0)
+ {
+ switch (get_datatype_in_block(blocknr))
+ {
+ case 0:
+ hdf5_datatype = H5Tcopy(H5T_NATIVE_UINT);
+ break;
+ case 1:
+ hdf5_datatype = H5Tcopy(H5T_NATIVE_FLOAT);
+ break;
+ case 2:
+ hdf5_datatype = H5Tcopy(H5T_NATIVE_UINT64);
+ break;
+ }
+
+ dims[0] = header.npart[type];
+ dims[1] = get_values_per_blockelement(blocknr);
+ if(dims[1] == 1)
+ rank = 1;
+ else
+ rank = 2;
+
+ get_dataset_name(blocknr, buf);
+
+ hdf5_dataspace_in_file = H5Screate_simple(rank, dims, NULL);
+ hdf5_dataset =
+ H5Dcreate(hdf5_grp[type], buf, hdf5_datatype, hdf5_dataspace_in_file,
+ H5P_DEFAULT);
+ pcsum = 0;
+ }
+#endif
+
+ for(task = writeTask, offset = 0; task <= lastTask; task++)
+ {
+ if(task == ThisTask)
+ {
+ n_for_this_task = n_type[type];
+
+ for(p = writeTask; p <= lastTask; p++)
+ if(p != ThisTask)
+ MPI_Send(&n_for_this_task, 1, MPI_INT, p, TAG_NFORTHISTASK, MPI_COMM_WORLD);
+ }
+ else
+ MPI_Recv(&n_for_this_task, 1, MPI_INT, task, TAG_NFORTHISTASK, MPI_COMM_WORLD,
+ &status);
+
+ while(n_for_this_task > 0)
+ {
+ pc = n_for_this_task;
+
+ if(pc > blockmaxlen)
+ pc = blockmaxlen;
+
+ if(ThisTask == task)
+ fill_write_buffer(blocknr, &offset, pc, type);
+
+ if(ThisTask == writeTask && task != writeTask)
+ MPI_Recv(CommBuffer, bytes_per_blockelement * pc, MPI_BYTE, task,
+ TAG_PDATA, MPI_COMM_WORLD, &status);
+
+ if(ThisTask != writeTask && task == ThisTask)
+ MPI_Ssend(CommBuffer, bytes_per_blockelement * pc, MPI_BYTE, writeTask,
+ TAG_PDATA, MPI_COMM_WORLD);
+
+ if(ThisTask == writeTask)
+ {
+ if(All.SnapFormat == 3)
+ {
+#ifdef HAVE_HDF5
+ start[0] = pcsum;
+ start[1] = 0;
+
+ count[0] = pc;
+ count[1] = get_values_per_blockelement(blocknr);
+ pcsum += pc;
+
+ H5Sselect_hyperslab(hdf5_dataspace_in_file, H5S_SELECT_SET,
+ start, NULL, count, NULL);
+
+ dims[0] = pc;
+ dims[1] = get_values_per_blockelement(blocknr);
+ hdf5_dataspace_memory = H5Screate_simple(rank, dims, NULL);
+
+ hdf5_status =
+ H5Dwrite(hdf5_dataset, hdf5_datatype, hdf5_dataspace_memory,
+ hdf5_dataspace_in_file, H5P_DEFAULT, CommBuffer);
+
+ H5Sclose(hdf5_dataspace_memory);
+#endif
+ }
+ else
+ my_fwrite(CommBuffer, bytes_per_blockelement, pc, fd);
+ }
+
+ n_for_this_task -= pc;
+ }
+ }
+
+#ifdef HAVE_HDF5
+ if(ThisTask == writeTask && All.SnapFormat == 3 && header.npart[type] > 0)
+ {
+ if(All.SnapFormat == 3)
+ {
+ H5Dclose(hdf5_dataset);
+ H5Sclose(hdf5_dataspace_in_file);
+ H5Tclose(hdf5_datatype);
+ }
+ }
+#endif
+ }
+ }
+
+ if(ThisTask == writeTask)
+ {
+ if(All.SnapFormat == 1 || All.SnapFormat == 2)
+ SKIP;
+ }
+ }
+ }
+ }
+
+ if(ThisTask == writeTask)
+ {
+ if(All.SnapFormat == 3)
+ {
+#ifdef HAVE_HDF5
+ for(type = 5; type >= 0; type--)
+ if(header.npart[type] > 0)
+ H5Gclose(hdf5_grp[type]);
+ H5Gclose(hdf5_headergrp);
+ H5Fclose(hdf5_file);
+#endif
+ }
+ else
+ fclose(fd);
+ }
+}
+
+
+
+
+/*! This function writes the header information in case HDF5 is selected as
+ * file format.
+ */
+#ifdef HAVE_HDF5
+void write_header_attributes_in_hdf5(hid_t handle)
+{
+ hsize_t adim[1] = { 6 };
+ hid_t hdf5_dataspace, hdf5_attribute;
+
+ hdf5_dataspace = H5Screate(H5S_SIMPLE);
+ H5Sset_extent_simple(hdf5_dataspace, 1, adim, NULL);
+ hdf5_attribute = H5Acreate(handle, "NumPart_ThisFile", H5T_NATIVE_INT, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_UINT, header.npart);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SIMPLE);
+ H5Sset_extent_simple(hdf5_dataspace, 1, adim, NULL);
+ hdf5_attribute = H5Acreate(handle, "NumPart_Total", H5T_NATIVE_UINT, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_UINT, header.npartTotal);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SIMPLE);
+ H5Sset_extent_simple(hdf5_dataspace, 1, adim, NULL);
+ hdf5_attribute = H5Acreate(handle, "NumPart_Total_HW", H5T_NATIVE_UINT, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_UINT, header.npartTotalHighWord);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+
+ hdf5_dataspace = H5Screate(H5S_SIMPLE);
+ H5Sset_extent_simple(hdf5_dataspace, 1, adim, NULL);
+ hdf5_attribute = H5Acreate(handle, "MassTable", H5T_NATIVE_DOUBLE, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_DOUBLE, header.mass);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SCALAR);
+ hdf5_attribute = H5Acreate(handle, "Time", H5T_NATIVE_DOUBLE, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_DOUBLE, &header.time);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SCALAR);
+ hdf5_attribute = H5Acreate(handle, "Redshift", H5T_NATIVE_DOUBLE, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_DOUBLE, &header.redshift);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SCALAR);
+ hdf5_attribute = H5Acreate(handle, "BoxSize", H5T_NATIVE_DOUBLE, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_DOUBLE, &header.BoxSize);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SCALAR);
+ hdf5_attribute = H5Acreate(handle, "NumFilesPerSnapshot", H5T_NATIVE_INT, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_INT, &header.num_files);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SCALAR);
+ hdf5_attribute = H5Acreate(handle, "Omega0", H5T_NATIVE_DOUBLE, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_DOUBLE, &header.Omega0);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SCALAR);
+ hdf5_attribute = H5Acreate(handle, "OmegaLambda", H5T_NATIVE_DOUBLE, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_DOUBLE, &header.OmegaLambda);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SCALAR);
+ hdf5_attribute = H5Acreate(handle, "HubbleParam", H5T_NATIVE_DOUBLE, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_DOUBLE, &header.HubbleParam);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SCALAR);
+ hdf5_attribute = H5Acreate(handle, "Flag_Sfr", H5T_NATIVE_INT, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_INT, &header.flag_sfr);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SCALAR);
+ hdf5_attribute = H5Acreate(handle, "Flag_Cooling", H5T_NATIVE_INT, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_INT, &header.flag_cooling);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SCALAR);
+ hdf5_attribute = H5Acreate(handle, "Flag_StellarAge", H5T_NATIVE_INT, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_INT, &header.flag_stellarage);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SCALAR);
+ hdf5_attribute = H5Acreate(handle, "Flag_Metals", H5T_NATIVE_INT, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_INT, &header.flag_metals);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ hdf5_dataspace = H5Screate(H5S_SCALAR);
+ hdf5_attribute = H5Acreate(handle, "Flag_Feedback", H5T_NATIVE_INT, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_INT, &header.flag_feedback);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+
+ header.flag_entropy_instead_u = 0;
+
+ hdf5_dataspace = H5Screate(H5S_SIMPLE);
+ H5Sset_extent_simple(hdf5_dataspace, 1, adim, NULL);
+ hdf5_attribute = H5Acreate(handle, "Flag_Entropy_ICs", H5T_NATIVE_UINT, hdf5_dataspace, H5P_DEFAULT);
+ H5Awrite(hdf5_attribute, H5T_NATIVE_UINT, header.flag_entropy_instead_u);
+ H5Aclose(hdf5_attribute);
+ H5Sclose(hdf5_dataspace);
+}
+#endif
+
+
+
+
+
+/*! This catches I/O errors occuring for my_fwrite(). In this case we
+ * better stop.
+ */
+size_t my_fwrite(void *ptr, size_t size, size_t nmemb, FILE * stream)
+{
+ size_t nwritten;
+
+ if((nwritten = fwrite(ptr, size, nmemb, stream)) != nmemb)
+ {
+ printf("I/O error (fwrite) on task=%d has occured: %s\n", ThisTask, strerror(errno));
+ fflush(stdout);
+ endrun(777);
+ }
+ return nwritten;
+}
+
+
+/*! This catches I/O errors occuring for fread(). In this case we
+ * better stop.
+ */
+size_t my_fread(void *ptr, size_t size, size_t nmemb, FILE * stream)
+{
+ size_t nread;
+
+ if((nread = fread(ptr, size, nmemb, stream)) != nmemb)
+ {
+ printf("I/O error (fread) on task=%d has occured: %s\n", ThisTask, strerror(errno));
+ fflush(stdout);
+ endrun(778);
+ }
+ return nread;
+}
diff --git a/clusters/user/GEAR/src/longrange.c b/clusters/user/GEAR/src/longrange.c
new file mode 100644
index 0000000..16322c2
--- /dev/null
+++ b/clusters/user/GEAR/src/longrange.c
@@ -0,0 +1,144 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file longrange.c
+ * \brief driver routines for computation of long-range gravitational PM force
+ */
+
+#ifdef PMGRID
+
+/*! Calls initializiation routines of periodic or/and non-periodic FFT
+ * routines.
+ */
+void long_range_init(void)
+{
+#ifdef PERIODIC
+ pm_init_periodic();
+#ifdef PLACEHIGHRESREGION
+ pm_init_nonperiodic();
+#endif
+#else
+ pm_init_nonperiodic();
+#endif
+}
+
+
+/*! This function calls subroutines that determine the spatial region covered
+ * by the PM mesh.
+ */
+void long_range_init_regionsize(void)
+{
+#ifdef PERIODIC
+#ifdef PLACEHIGHRESREGION
+ if(RestartFlag != 1)
+ pm_init_regionsize();
+ pm_setup_nonperiodic_kernel();
+#endif
+#else
+ if(RestartFlag != 1)
+ pm_init_regionsize();
+ pm_setup_nonperiodic_kernel();
+#endif
+}
+
+
+/*! This function is a driver routine for the long-range PM force
+ * computation. It calls periodic and/or non-periodic FFT routines as needed
+ * for the present simulation set-up.
+ */
+void long_range_force(void)
+{
+ int i;
+
+#ifndef PERIODIC
+ int j;
+ double fac;
+#endif
+
+
+ for(i = 0; i < NumPart; i++)
+ P[i].GravPM[0] = P[i].GravPM[1] = P[i].GravPM[2] = 0;
+
+#ifdef NOGRAVITY
+ return;
+#endif
+
+
+#ifdef PERIODIC
+ pmforce_periodic();
+#ifdef PLACEHIGHRESREGION
+ i = pmforce_nonperiodic(1);
+ if(i == 1) /* this is returned if a particle lied outside allowed range */
+ {
+ pm_init_regionsize();
+ pm_setup_nonperiodic_kernel();
+ i = pmforce_nonperiodic(1); /* try again */
+ }
+ if(i == 1)
+ endrun(68686);
+#endif
+#else
+ i = pmforce_nonperiodic(0);
+ if(i == 1) /* this is returned if a particle lied outside allowed range */
+ {
+ pm_init_regionsize();
+ pm_setup_nonperiodic_kernel();
+ i = pmforce_nonperiodic(0); /* try again */
+ }
+ if(i == 1)
+ endrun(68687);
+#ifdef PLACEHIGHRESREGION
+ i = pmforce_nonperiodic(1);
+ if(i == 1) /* this is returned if a particle lied outside allowed range */
+ {
+ pm_init_regionsize();
+ pm_setup_nonperiodic_kernel();
+
+ /* try again */
+
+ for(i = 0; i < NumPart; i++)
+ P[i].GravPM[0] = P[i].GravPM[1] = P[i].GravPM[2] = 0;
+
+ i = pmforce_nonperiodic(0) + pmforce_nonperiodic(1);
+ }
+ if(i != 0)
+ endrun(68688);
+#endif
+#endif
+
+
+#ifndef PERIODIC
+ if(All.ComovingIntegrationOn)
+ {
+ fac = 0.5 * All.Hubble * All.Hubble * All.Omega0;
+
+ for(i = 0; i < NumPart; i++)
+ for(j = 0; j < 3; j++)
+ P[i].GravPM[j] += fac * P[i].Pos[j];
+ }
+
+
+ /* Finally, the following factor allows a computation of cosmological simulation
+ with vacuum energy in physical coordinates */
+
+ if(All.ComovingIntegrationOn == 0)
+ {
+ fac = All.OmegaLambda * All.Hubble * All.Hubble;
+
+ for(i = 0; i < NumPart; i++)
+ for(j = 0; j < 3; j++)
+ P[i].GravPM[j] += fac * P[i].Pos[j];
+ }
+#endif
+
+}
+
+
+#endif
diff --git a/clusters/user/GEAR/src/main.c b/clusters/user/GEAR/src/main.c
new file mode 100644
index 0000000..553ad41
--- /dev/null
+++ b/clusters/user/GEAR/src/main.c
@@ -0,0 +1,881 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file main.c
+ * \brief start of the program
+ */
+
+/*!
+ * This function initializes the MPI communication packages, and sets
+ * cpu-time counters to 0. Then begrun() is called, which sets up
+ * the simulation either from IC's or from restart files. Finally,
+ * run() is started, the main simulation loop, which iterates over
+ * the timesteps.
+ */
+int main(int argc, char **argv)
+{
+ double t0, t1;
+
+ MPI_Init(&argc, &argv);
+ MPI_Comm_rank(MPI_COMM_WORLD, &ThisTask);
+ MPI_Comm_size(MPI_COMM_WORLD, &NTask);
+
+ if(NTask <= 1)
+ {
+ if(ThisTask == 0)
+ printf
+ ("Note: This is a massively parallel code, but you are running with 1 processor only.\nCompared to an equivalent serial code, there is some unnecessary overhead.\n");
+ }
+
+ for(PTask = 0; NTask > (1 << PTask); PTask++);
+
+ if(argc < 2)
+ {
+ if(ThisTask == 0)
+ {
+ printf("Parameters are missing.\n");
+ printf("Call with <ParameterFile> [<RestartFlag>]\n");
+ }
+ endrun(0);
+ }
+
+ strcpy(ParameterFile, argv[1]);
+
+ if(argc >= 3)
+ RestartFlag = atoi(argv[2]);
+ else
+ RestartFlag = 0;
+
+ All.CPU_TreeConstruction = All.CPU_TreeWalk = All.CPU_Gravity = All.CPU_Potential = All.CPU_Domain =
+ All.CPU_Snapshot = All.CPU_Total = All.CPU_CommSum = All.CPU_Imbalance = All.CPU_Hydro =
+ All.CPU_HydCompWalk = All.CPU_HydCommSumm = All.CPU_HydImbalance =
+ All.CPU_EnsureNgb = All.CPU_Predict = All.CPU_TimeLine = All.CPU_PM = All.CPU_Peano = 0;
+
+#ifdef COOLING
+ All.CPU_Cooling = 0;
+#endif
+#ifdef SFR
+ All.CPU_StarFormation = 0;
+#endif
+#ifdef CHIMIE
+ All.CPU_Chimie = 0;
+ All.CPU_ChimieDensCompWalk = 0;
+ All.CPU_ChimieDensCommSumm = 0;
+ All.CPU_ChimieDensImbalance = 0;
+ All.CPU_ChimieDensEnsureNgb = 0;
+ All.CPU_ChimieCompWalk = 0;
+ All.CPU_ChimieCommSumm = 0;
+ All.CPU_ChimieImbalance = 0;
+#endif
+#ifdef MULTIPHASE
+ All.CPU_Sticky = 0;
+#endif
+
+#ifdef DETAILED_CPU_DOMAIN
+ All.CPU_Domain_findExtend = 0;
+ All.CPU_Domain_determineTopTree = 0;
+ All.CPU_Domain_sumCost = 0;
+ All.CPU_Domain_findSplit = 0;
+ All.CPU_Domain_shiftSplit = 0;
+ All.CPU_Domain_countToGo = 0;
+ All.CPU_Domain_exchange = 0;
+#endif
+
+#ifdef DETAILED_CPU_GRAVITY
+ All.CPU_Gravity_TreeWalk1 = 0;
+ All.CPU_Gravity_TreeWalk2 = 0;
+ All.CPU_Gravity_CommSum1 = 0;
+ All.CPU_Gravity_CommSum2 = 0;
+ All.CPU_Gravity_Imbalance1 = 0;
+ All.CPU_Gravity_Imbalance2 = 0;
+#endif
+
+#ifdef DETAILED_CPU
+ All.CPU_Leapfrog = 0;
+ All.CPU_Physics = 0;
+ All.CPU_Residual = 0;
+ All.CPU_Accel = 0;
+ All.CPU_Begrun = 0;
+#endif
+
+ CPUThisRun = 0;
+
+ t0 = second();
+
+ begrun(); /* set-up run */
+
+ t1 = second();
+ CPUThisRun += timediff(t0, t1);
+ All.CPU_Total += timediff(t0, t1);
+
+ run(); /* main simulation loop */
+
+ MPI_Finalize(); /* clean up & finalize MPI */
+
+ return 0;
+}
+
+
+
+
+/* ----------------------------------------------------------------------
+ The rest of this file contains documentation for compiling and
+ running the code, in a format appropriate for 'doxygen'.
+ ----------------------------------------------------------------------
+ */
+
+/*! \mainpage Reference documentation for GADGET-2
+
+\author Volker Springel \n
+ Max-Planck-Institute for Astrophysics \n
+ Karl-Schwarzschild-Str. 1 \n
+ 85740 Garching \n
+ Germany \n
+ volker@mpa-garching.mpg.de \n
+
+\n
+
+\section prelim Getting started
+
+GADGET-2 is a massively parallel code for hydrodynamical cosmological
+simulations. It is a flexible code that can be applied to a variety of
+different types of simulations, offering a number of sophisticated
+simulation algorithms.
+
+A full account of the numerical algorithms employed by the code is given
+in the accompanying code paper, and detailed instructions for usage of
+the code are given in the included code documentation.
+
+This html-document serves as a cross-referenced documentation of the
+source code itself - in fact, using the doxygen tool, the html-pages
+have been produced from comments inlined in the source code. Apart from
+the source-code documentation, a brief guide to code compilation is
+given below, and under <b>Related Pages (see link on top)</b> you can find an
+explanation of GADGET's parameterfile and a short guide to compile-time
+options of the code.
+
+
+\section install Compilation
+
+GADGET-2 needs the following non-standard libraries for compilation:
+
+- \b MPI - the Message Passing Interface (version 1.0 or higher). Many
+ vendor supplied versions exist, in addition to excellent open source
+ implementations, e.g. MPICH
+ (http://www-unix.mcs.anl.gov/mpi/mpich/) or LAM
+ (http://www.lam-mpi.org/).
+
+- \b GSL - the GNU scientific library. This open-source package can be
+ obtained at http://www.gnu.org/software/gsl , for example. GADGET-2
+ needs this library for a few simple cosmological
+ integrations at start-up, and for random number generation.
+
+- \b HDF5 - the <em>Hierarchical Data Format</em>. This library has been
+ developed by NCSA and can be obtained at http://hdf.ncsa.uiuc.edu/HDF5 .
+ GADGET-2 can be compiled without this library, but then the HDF5 format
+ is not supported.
+
+- \b FFTW - the <em>Fastest Fourier Transform in the West</em>. This
+ open-source package can be obtained at http://www.fftw.org . It is only
+ needed for simulations that use the TreePM algorithm. Note that the
+ MPI-capable version 2.x of FFTW is required, and that FFTW needs to be
+ explicitly compiled with parallel support enabled. This can be achieved
+ by passing the option <b>--enable-mpi</b> to the configure script. When
+ at it, you might as well add <b>--enable-type-prefix</b> to obtain the
+ libraries in both a single and double precision version. If this has not
+ been done, you should set the option <em>NOTYPEPREFIX_FFTW</em> in GADGET's
+ \ref Gadget-Makefile "Makefile".
+
+Note that if any of the above libraries is not installed in standard
+locations on your system, the \ref Gadget-Makefile "Makefile" provided with
+the code may need slight adjustments. Similarly, compiler options,
+particularly with respect to optimisations, may need adjustment to the
+C-compiler that is used. Finally, the \ref Gadget-Makefile "Makefile"
+contains a number of compile-time options that need to be set appropriately
+for the type of simulation that is simulated.
+
+The provided makefile is compatible with GNU-make, i.e. typing \b make or
+\b gmake should then build the executable <b>Gadget2</b>. If your site
+does not have GNU-make, get it, or write your own makefile.
+
+\section howtorun Running the code
+
+In order to start the simulation code, a \ref parameterfile "parameterfile"
+needs to be specified. An additional optional numerical parameter can be
+used to signal whether a continuation from a set of restart files, or from
+a snapshot file, is desired. A typical command to start the code looks like
+the following: \n \n
+
+ <b> mpirun -np 8 ./Gadget2 <parameterfile> [restartflag]</b> \n \n
+
+This would start the code using 8 processors, assuming that the parallel
+environment uses the <em>mpirun</em> command to start MPI
+applications. Depending on the operating system, other commands may be
+required for this task, e.g. <em>poe</em> on IBM/AIX machines. Note that
+the code can in principle be started using an arbitrary number of
+processors, but the communication algorithms will be most efficient for
+powers of 2. It is also possible to use a single processor only, in
+which case the code behaves like a serial code, except that GADGET-2
+will still go through some of the overhead induced by the
+parallelization algorithms, so the code will not quite reach the same
+performance as an optimum serial solution in this case.
+
+
+The optional <em>restartflag</em> can have the values 0, 1, or 2, only. "1"
+signals a continuation from restart files, while "2" can be used to restart
+from a snapshot file produced by the code. If omitted (equivalent to the
+default of "0"), the code starts from initial conditions.
+
+*/
+
+
+
+
+
+
+
+
+
+
+
+/*! \page parameterfile Parameterfile of GADGET-2
+
+The parameterfile for GADGET-2 is a simple text file, consisting of pairs of
+tags and values. For each parameter, a separate line needs to be specified,
+first listing the name (tag) of the parameter, and then the assigned value,
+separated by whitespace. It is allowed to add further text behind the
+assigned parameter value. The order of the parameters is arbitrary, but
+each one needs to occur exactly one time, otherwise an error message will
+be produced. Empty lines, or lines beginning with a \%-sign, are ignored and
+treated as comments.
+
+
+- \b InitCondFile \n The filename of the initial conditions file. If a
+ restart from a snapshot with the "2" option is desired, one
+ needs to specify the snapshot file here.
+
+- \b OutputDir \n Pathname of the output directory of the code.
+
+- \b EnergyFile \n Filename of the log-file that contain the energy
+ statistics.
+
+- \b InfoFile \n Log-file that contains a list of the timesteps taken.
+
+- \b TimingsFile \n Log-file with performance metrics of the gravitational
+ tree computation.
+
+- \b CpuFile \n Log-file with CPU time consumption in various parts of the
+ code.
+
+- \b RestartFile \n Basename of restart-files produced by the code.
+
+- \b SnapshotFileBase \n Basename of snapshot files produced by the code.
+
+- \b OutputListFilename \n File with a list of the desired output times.
+
+- \b TimeLimitCPU \n CPU-time limit for the present submission of the
+ code. If 85 percent of this time have been reached at the end
+ of a timestep, the code terminates itself and produces restart
+ files.
+
+- \b ResubmitOn \n If set to "1", the code will try to resubmit itself to
+ the queuing system when an interruption of the run due to the
+ CPU-time limit occurs. The resubmission itself is done by
+ executing the program/script given with
+ <em>ResubmitCommand</em>.
+
+- \b ResubmitCommand \n The name of a script file or program that is
+ executed for automatic resubmission of the job to the queuing
+ system. Note that the file given here needs to be executable.
+
+- \b ICFormat \n The file format of the initial conditions. Currently,
+ three different formats are supported, selected by one of the
+ choices "1", "2", or "3". Format "1" is the traditional
+ fortran-style unformatted format familiar from
+ GADGET-1. Format "2" is a variant of this format, where each
+ block of data is preceeded by a 4-character
+ block-identifier. Finally, format "3" selects the HDF-5
+ format.
+
+- \b SnapFormat \n Similar as <em>ICFormat</em>, this parameter selects the
+ file-format of snapshot dumps produced by the code.
+
+- \b ComovingIntegrationOn \n If set to "1", the code assumes that a
+ cosmological integration in comoving coordinates is carried
+ out, otherwise ordinary Newtonian dynamics is assumed.
+
+
+- \b TypeOfTimestepCriterion \n This parameter can in principle be used to
+ select different kinds of timestep criteria for gravitational
+ dynamics. However, GADGET-2 presently only supports the
+ standard criterion "0".
+
+- \b OutputListOn \n If set to "1", the code tries to read a list of
+ desired output times from the file given in
+ <em>OutputListFilename</em>. Otherwise, output times are
+ generated equally spaced from the values assigned for
+ <em>TimeOfFirstSnapshot</em> and <em>TimeBetSnapshot</em>.
+
+- \b PeriodicBoundariesOn \n If set to "1", periodic boundary conditions
+ are assumed, with a cubical box-size of side-length
+ <em>BoxSize</em>. Particle coordinates are expected to be in
+ the range [0,<em>BoxSize</em>[.
+
+
+- \b TimeBegin \n This sets the starting time of a simulation when the code
+ is started from initial conditions. For cosmological
+ integrations, the value specified here is taken as the initial
+ scale factor.
+
+- \b TimeMax \n This sets the final time for the simulation. The code
+ normally tries to run until this time is reached. For
+ cosmological integrations, the value given here is the final
+ scale factor.
+
+- \b Omega0 \n Gives the total matter density (in units of the critical
+ density) at z=0 for cosmological simulations.
+
+- \b OmegaLambda \n Gives the vacuum energy density at z=0 for cosmological
+ simulations.
+
+- \b OmegaBaryon \n Gives the baryon density at z=0 for cosmological
+ simulations.
+
+- \b HubbleParam \n This gives the Hubble constant at z=0 in units of 100
+ km/sec/Mpc. Note that this parameter has been basically
+ absorbed into the definition of the internal code units, such
+ that for gravitational dynamics and adiabatic gas dynamics the
+ actual value assigned for <em>HubbleParam</em> is not used by
+ the code.
+
+- \b BoxSize \n The boxsize for simulations with periodic boundary
+ conditions.
+
+- \b TimeOfFirstSnapshot \n The time of the first desired snapshot file in
+ case a file with output times is not specified. For
+ cosmological simulations, the value given here is the scale factor
+ of the first desired output.
+
+- \b TimeBetSnapshot \n The time interval between two subsequent snapshot
+ files in case a file with output times is not specified. For
+ cosmological simulations, this is a multiplicative factor
+ applied to the time of the last snapshot, such that the
+ snapshots will have a constant logarithmic spacing in the
+ scale factor. Otherwise, the parameter is an additive constant
+ that gives the linear spacing between snapshot times.
+
+- \b CpuTimeBetRestartFile \n The value specfied here gives the time in
+ seconds the code will run before it writes regularly produced
+ restart files. This can be useful to protect against
+ unexpected interruptions (for example due to a hardware
+ problem) of a simulation, particularly if it is run for a long
+ time. It is then possible to resume a simulation from the last
+ restart file, reducing the potential loss to the elapsed
+ CPU-time since this was produced.
+
+- \b TimeBetStatistics \n The code can be asked to measure the total
+ kinetic, thermal, and potential energy in regular intervals,
+ and to write the results to the file given in
+ <em>EnergyFile</em>. The time interval between two such
+ measurements is given by the parameter
+ <em>TimeBetStatistics</em>, in an analogous way as with
+ <em>TimeBetSnapshot</em>. Note that the compile time option
+ <em>COMPUTE_POTENTIAL_ENERGY</em> needs to be activated to
+ obtain a measurement of the gravitational potential energy.
+
+- \b NumFilesPerSnapshot \n The number of separate files requested for each
+ snapshot dump. Each file of the snapshot will hold the data of
+ one or several processors, up to all of
+ them. <em>NumFilesPerSnapshot</em> must hence lie between 1
+ and the number of processors used. Distributing a snapshot
+ onto several files can be done in parallel and may lead to
+ much better I/O performance, depending on the hardware
+ configuration. It can also help to avoid problems due to big
+ files (>2GB) for large simulations. Note that initial
+ conditions may also be distributed into several files, the
+ number of which is automatically recognised by the code and
+ does not have to be equal to <em>NumFilesPerSnapshot</em> (it
+ may also be larger than the number of processors).
+
+
+- \b NumFilesWrittenInParallel \n The number of files the code may read or
+ write simultaneously when writing or reading snapshot/restart
+ files. The value of this parameter must be smaller or equal to
+ the number of processors.
+
+
+- \b ErrTolIntAccuracy \n This dimensionless parameter controls the
+ accuracy of the timestep criterion selected by
+ <em>TypeOfTimestepCriterion</em>.
+
+- \b CourantFac \n This sets the value of the Courant parameter used in the
+ determination of the hydrodynamical timestep of SPH particles.
+
+- \b MaxSizeTimestep \n This gives the maximum timestep a particle may
+ take. This should be set to a sensible value in order to
+ protect against too large timesteps for particles with very
+ small acceleration. For cosmological simulations, the
+ parameter given here is the maximum allowed step in the
+ logarithm of the expansion factor. Note that the definition
+ of MaxSizeTimestep has <em>changed</em> compared to Gadget-1.1 for cosmological simulations.
+
+
+- \b MinSizeTimestep \n If a particle requests a timestep smaller than the
+ value specified here, the code will normally terminate with a
+ warning message. If compiled with the
+ <em>NOSTOP_WHEN_BELOW_MINTIMESTEP</em> option, the code will
+ instead force the timesteps to be at least as large as
+ <em>MinSizeTimestep</em>.
+
+- \b TypeOfOpeningCriterion \n This selects the type of cell-opening
+ criterion used in the tree walks. A value of `0' results in
+ standard Barnes & Hut, while `1' selects the relative opening
+ criterion of GADGET-2.
+
+- \b ErrTolTheta \n This gives the maximum opening angle if the BH
+ criterion is used for the tree walk. If the relative opening
+ criterion is used instead, a first force estimate is computed
+ using the BH algorithm, which is then recomputed with the
+ relative opening criterion.
+
+- \b ErrTolForceAcc \n The accuracy parameter for the relative opening
+ criterion for the tree walk.
+
+- \b TreeDomainUpdateFrequency \n The domain decomposition and tree
+ construction need not necessarily be done every single
+ timestep. Instead, tree nodes can be dynamically updated,
+ which is faster. However, the tree walk will become more
+ expensive since the tree nodes have to "grow" to keep
+ accomodating all particles they enclose. The parameter
+ <em>TreeDomainUpdateFrequency</em> controls how often the
+ domain decomposition is carried out and the tree is
+ reconstructed from scratch. For example, a value of 0.1 means
+ that the domain decomposition and the tree are reconstructed
+ whenever there have been more than 0.1*N force computations
+ since the last reconstruction, where N is the total particle
+ number. A value of 0 will reconstruct the tree every timestep.
+
+- \b MaxRMSDisplacementFac \n This parameter is an additional timestep
+ criterion for the long-range integration in case the TreePM
+ algorithm is used. It limits the long-range timestep such that
+ the rms-displacement of particles per step is at most
+ <em>MaxRMSDisplacementFac</em> times the mean
+ particle separation, or the mesh-scale, whichever is smaller.
+
+- \b DesNumNgb \n This sets the desired number of SPH smoothing neighbours.
+
+- \b MaxNumNgbDeviation \n This sets the allowed variation of the number of
+ neighbours around the target value <em>DesNumNgb</em>.
+
+- \b ArtBulkViscConst \n This sets the value of the artificial viscosity
+ parameter used by GADGET-2.
+
+
+- \b InitGasTemp \n This sets the initial gas temperature (assuming either
+ a mean molecular weight corresponding to full ionization or
+ full neutrality, depending on whether the temperature is above
+ or below 10^4 K) in Kelvin when initial conditions are
+ read. However, the gas temperature is only set to a certain
+ temperature if <em>InitGasTemp</em>>0, and if the temperature
+ of the gas particles in the initial conditions file is zero,
+ otherwise the initial gas temperature is left at the value
+ stored in the IC file.
+
+- \b MinGasTemp \n A minimum temperature floor imposed by the code. This
+ may be set to zero.
+
+- \b PartAllocFactor \n Each processor allocates space for
+ <em>PartAllocFactor</em> times the average number of particles
+ per processor. This number needs to be larger than 1 to allow
+ the simulation to achieve a good work-load balancing, which
+ requires to trade particle-load balance for work-load
+ balance. It is good to make <em>PartAllocFactor</em> quite a
+ bit larger than 1, but values in excess of 3 will typically
+ not improve performance any more. For a value that is too
+ small, the code may not be able to succeed in the domain
+ decomposition and terminate.
+
+- \b TreeAllocFactor \n To construct the BH-tree for N particles, somewhat
+ less than N internal tree-nodes are necessary for `normal'
+ particle distributions. <em>TreeAllocFactor</em> sets the
+ number of internal tree-nodes allocated in units of the
+ particle number. By experience, space for 0.65 N internal
+ nodes is usually fully sufficient, so a value of 0.7 should
+ put you on the safe side.
+
+- \b BufferSize \n This specifies the size (in MByte per processor) of a
+ communication buffer used by the code.
+
+- \b UnitLength_in_cm \n This sets the internal length unit in cm/h, where
+ H_0 = 100 h km/sec/Mpc. For example, a choice of 3.085678e21
+ sets the length unit to 1.0 kpc/h.
+
+- \b UnitMass_in_g \n This sets the internal mass unit in g/h, where H_0 =
+ 100 h km/sec/Mpc. For example, a choice of 1.989e43 sets the
+ mass unit to 10^10 M_sun/h.
+
+- \b UnitVelocity_in_cm_per_s \n This sets the internal velocity unit in
+ cm/sec. For example, a choice of 1e5 sets the velocity unit to
+ km/sec. Note that the specification of
+ <em>UnitLength_in_cm</em>, <em>UnitMass_in_g</em>, and
+ <em>UnitVelocity_in_cm_per_s</em> also determines the internal
+ unit of time.
+
+- \b GravityConstantInternal \n The numerical value of the gravitational
+ constant G in internal units depends on the system of units
+ you choose. For example, for the choices above, G=43007.1 in
+ internal units. For <em>GravityConstantInternal</em>=0, the
+ code calculates the value corresponding to the physical value
+ of G automatically. However, you might want to set G
+ yourself. For example, by specifying
+ <em>GravityConstantInternal</em>=1,
+ <em>UnitLength_in_cm</em>=1, <em>UnitMass_in_g</em>=1, and
+ <em>UnitVelocity_in_cm_per_s</em>=1, one obtains a `natural'
+ system of units. Note that the code will nevertheless try to
+ use the `correct' value of the Hubble constant in this case,
+ so you should not set <em>GravityConstantInternal</em> in
+ cosmological integrations.
+
+- \b MinGasHsmlFractional \n This parameter sets the minimum allowed SPH
+ smoothing length in units of the gravitational softening
+ length of the gas particles. The smoothing length will be
+ prevented from falling below this value. When this bound is
+ actually reached, the number of smoothing neighbors will
+ instead be increased above <em>DesNumNgb</em>.
+
+- \b SofteningGas \n The Plummer equivalent gravitational softening length
+ for particle type 0, which are the gas particles. For
+ cosmological simulations in comoving coordinates, this is
+ interpreted as a comoving softening length.
+
+- \b SofteningHalo \n The Plummer equivalent gravitational softening length
+ for particle type 1.
+
+- \b SofteningDisk \n The Plummer equivalent gravitational softening length
+ for particle type 2.
+
+- \b SofteningBulge \n The Plummer equivalent gravitational softening
+ length for particle type 3.
+
+- \b SofteningStars \n The Plummer equivalent gravitational softening
+ length for particle type 4.
+
+- \b SofteningBndry \n The Plummer equivalent gravitational softening
+ length for particle type 5.
+
+
+- \b SofteningGasMaxPhys \n When comoving integration is used, this
+ parameter gives the maximum physical gravitational softening
+ length for particle type 0. Depening on the relative settings
+ of <em>SofteningGas</em> and <em>SofteningGasMaxPhys</em>, the
+ code will hence switch from a softening constant in comoving
+ units to one constant in physical units.
+
+- \b SofteningHaloMaxPhys \n When comoving integration is used, this
+ parameter gives the maximum physical gravitational softening
+ length for particle type 1.
+
+- \b SofteningDiskMaxPhys \n When comoving integration is used, this
+ parameter gives the maximum physical gravitational softening
+ length for particle type 2.
+
+- \b SofteningBulgeMaxPhys \n When comoving integration is used, this
+ parameter gives the maximum physical gravitational softening
+ length for particle type 3.
+
+- \b SofteningStarsMaxPhys \n When comoving integration is used, this
+ parameter gives the maximum physical gravitational softening
+ length for particle type 4.
+
+- \b SofteningBndryMaxPhys \n When comoving integration is used, this
+ parameter gives the maximum physical gravitational softening
+ length for particle type 5.
+
+
+*/
+
+
+
+
+
+
+
+
+
+
+/*! \page Gadget-Makefile Makefile of GADGET-2
+
+A number of features of GADGET-2 are controlled with compile-time options
+in the makefile rather than by the parameterfile. This has been done in
+order to allow the generation of highly optimised binaries by the compiler,
+even when the underlying source code allows for many different ways to run the
+code.
+
+The makefile contains a dummy list of all available compile-time options,
+with most of them commented out by default. To activate a certain feature,
+the corresponding parameter should be commented in, and given the desired
+value, where appropriate. Below, a brief guide to these options is
+included.
+
+<b>Important Note:</b> Whenever one of the compile-time options
+described below is modified, a full recompilation of the code may be
+necessary. To guarantee that this is done when a simple <b>make</b> is
+specified, all source files have been specified in the Makefile as being
+dependent on the Makefile itself. Alternatively, one can also issue the
+command <b>make clean</b>, which will erase all object files, followed
+by <b>make</b>.
+
+Note that the above technique has the disadvantage that different
+simulations may require different binaries of GADGET-2. If several
+simulations are run concurrently, there is hence the danger that a
+simulation is started/resumed with the `wrong' binary. Note that while
+GADGET-2 checks the plausibility of some of the most important code
+options, this is not done for all of them. To minimise the risk of using
+the wrong executable for a simulation, it is recommended to produce a
+separate executable for each simulation that is run. For example, a good
+strategy is to make a copy of the whole code together with its makefile in
+the output directory of each simulation run, and then to use this copy to
+compile the code and to run the simulation.
+
+
+\n
+\section secmake1 Basic operation mode of code
+- \b PERIODIC \n Set this if you want to have periodic boundary conditions.
+
+- \b UNEQUALSOFTENINGS \n Set this if you use particles with different
+ gravitational softening lengths.
+
+\n
+\section secmake2 Things that are always recommended
+- \b PEANOHILBERT \n This is a tuning option. When set, the code will bring
+ the particles into Peano-Hilbert order after each domain
+ decomposition. This improves cache utilisation and performance.
+
+- \b WALLCLOCK \n If set, a wallclock timer is used by the code to measure
+ internal time consumption (see cpu-log file). Otherwise, a timer that
+ measures consumed processor ticks is used.
+
+\n
+\section secmake3 TreePM options
+- \b PMGRID=128 \n This enables the TreePM method, i.e. the long-range
+ force is computed with a PM-algorithm, and the short range force with
+ the tree. The parameter has to be set to the size of the mesh that
+ should be used, e.g.~64, 96, 128, etc. The mesh dimensions need not
+ necessarily be a power of two, but the FFT is fastest for such a
+ choice. Note: If the simulation is not in a periodic box, then a FFT
+ method for vacuum boundaries is employed, using a mesh with dimension
+ twice that specified by <b>PMGRID</b>.
+
+- \b PLACEHIGHRESREGION=1+8 \n If this option is set (will only work
+ together with \b PMGRID), then the long range force is computed in two
+ stages: One Fourier-grid is used to cover the whole simulation volume,
+ allowing the computation of the large-scale force. A second Fourier
+ mesh is placed on the region occupied by `high-resolution' particles,
+ allowing the computation of an intermediate-scale force. Finally, the
+ force on very small scales is computed by the tree. This procedure can
+ be useful for `zoom-simulations', where the majority of particles (the
+ high-res particles) are occupying only a small fraction of the
+ volume. To activate this option, the parameter needs to be set to an
+ integer that encodes the particle types that make up the high-res
+ particles in the form of a bit mask. For example, if types 0, 1, and 4
+ are the high-res particles, then the parameter should be set to
+ <b>PLACEHIGHRESREGION=1+2+16</b>, i.e. to the sum
+ \f$2^0+2^1+2^4\f$. The spatial region covered by the high-res grid is
+ determined automatically from the initial conditions. Note: If a
+ periodic box is used, the high-res zone is not allowed to intersect the box
+ boundaries.
+
+- <b> ENLARGEREGION=1.1</b> \n The spatial region covered by the high-res zone
+ normally has a fixed size during the simulation, which initially is
+ set to the smallest region that encompasses all high-res
+ particles. Normally, the simulation will be interrupted if high-res
+ particles leave this region in the course of the run. However, by
+ setting this parameter to a value larger than one, the high-res region
+ can be expanded on the fly. For example, setting it to 1.4 will enlarge its
+ side-length by 40% in such an event (it remains centred on the high-res
+ particles). Hence, with such a setting, the high-res region may expand
+ or move by a limited amount. If in addition \b SYNCHRONIZATION is
+ activated, then the code will be able to continue even if high-res
+ particles leave the initial high-res grid. In this case, the code will
+ update the size and position of the grid that is placed onto the
+ high-resolution region automatically. To prevent that this potentially
+ happens every single PM step, one should nevertheless assign a value
+ slightly larger than 1 to \b ENLARGEREGION.
+
+- <b> ASMTH=1.25</b> \n This can be used to override the value assumed for the
+ scale that defines the long-range/short-range force-split in the
+ TreePM algorithm. The default value is 1.25, in mesh-cells.
+
+- <b> RCUT=4.5</b> \n This can be used to override the maximum radius in which
+ the short-range tree-force is evaluated (in case the TreePM algorithm
+ is used). The default value is 4.5, given in mesh-cells.
+
+\n
+\section secmake4 Single or double precision
+- \b DOUBLEPRECISION \n This makes the code store and compute internal
+ particle data in double precision. Note that output files are
+ nevertheless written by converting the values that are saved to single
+ precision.
+
+- \b DOUBLEPRECISION_FFTW \n If this is set, the code will use the
+ double-precision version of FTTW, provided the latter has been
+ explicitly installed with a "d" prefix, and NOTYPEPREFIX_FFTW is not
+ set. Otherwise the single precision version ("s" prefix) is used.
+
+
+\n
+\section secmake5 Time integration options
+- \b SYNCHRONIZATION \n When this is set, particles may only increase their
+ timestep if the new timestep will put them into synchronisation with
+ the higher time level. This typically means that only on half of the
+ timesteps of a particle an increase of its step may occur. Especially
+ for TreePM runs, it is usually advisable to set this option.
+
+- \b FLEXSTEPS \n This is an alternative to SYNCHRONIZATION. Particle
+ timesteps are here allowed to be integer multiples of the minimum
+ timestep that occurs among the particles, which in turn is rounded
+ down to the nearest power-of-two devision of the total simulated
+ timespan. This option distributes particles more evenly over
+ individual system timesteps, particularly once a simulation has run
+ for a while, and may then result in a reduction of work-load imbalance
+ losses.
+
+- \b PSEUDOSYMMETRIC \n When this option is set, the code will try to
+ `anticipate' timestep changes by extrapolating the change of the
+ acceleration into the future. This in general improves the long-term
+ integration behaviour of periodic orbits, because then the adaptive
+ integration becomes more akin to a strictly time reversible
+ integrator. Note: This option has no effect if FLEXSTEPS is set.
+
+- \b NOSTOP_WHEN_BELOW_MINTIMESTEP \n If this is activated, the code will
+ not terminate when the timestep falls below the value of \b
+ MinSizeTimestep specified in the parameterfile. This is useful for
+ runs where one wants to enforce a constant timestep for all
+ particles. This can be done by activating this option, and by setting
+ \b MinSizeTimestep and \b MaxSizeTimestep to an equal value.
+
+- \b NOPMSTEPADJUSTMENT \n When this is set, the long-range timestep for
+ the PM force computation is always determined by \b MaxSizeTimeStep.
+ Otherwise, it is set to the minimum of \b MaxSizeTimeStep and the
+ timestep obtained for the maximum long-range force with an effective
+ softening scale equal to the PM smoothing-scale.
+
+\n
+\section secmake6 Output options
+- \b HAVE_HDF5 \n If this is set, the code will be compiled with support
+ for input and output in the HDF5 format. You need to have the HDF5
+ libraries and headers installed on your computer for this option to
+ work. The HDF5 format can then be selected as format "3" in Gadget's
+ parameterfile.
+
+- \b OUTPUTPOTENTIAL \n This will force the code to compute gravitational
+ potentials for all particles each time a snapshot file is
+ generated. These values are then included in the snapshot files. Note
+ that the computation of the values of the potential costs additional
+ time.
+
+- \b OUTPUTACCELERATION \n This will include the physical acceleration of
+ each particle in snapshot files.
+
+- \b OUTPUTCHANGEOFENTROPY \n This will include the rate of change of
+ entropy of gas particles in snapshot files.
+
+- \b OUTPUTTIMESTEP \n This will include the timesteps actually taken by
+ each particle in the snapshot files.
+
+\n
+\section secmake7 Things for special behaviour
+- \b NOGRAVITY \n This switches off gravity. Makes only sense for pure SPH
+ simulations in non-expanding space.
+
+- \b NOTREERND \n If this is not set, the tree construction will succeed
+ even when there are a few particles at identical locations. This is
+ done by `rerouting' particles once the node-size has fallen below
+ \f$10^{-3}\f$ of the softening length. When this option is activated,
+ this will be suppressed and the tree construction will always fail if
+ there are particles at extremely close or identical coordinates.
+
+- \b NOTYPEPREFIX_FFTW \n If this is set, the fftw-header/libraries are
+ accessed without type prefix (adopting whatever was chosen as default
+ at compile-time of fftw). Otherwise, the type prefix 'd' for
+ double-precision is used.
+
+- \b LONG_X/Y/Z \n These options can be used together with PERIODIC and
+ NOGRAVITY only. When set, the options define numerical factors that
+ can be used to distort the periodic simulation cube into a
+ parallelepiped of arbitrary aspect ratio. This can be useful for
+ idealized SPH tests.
+
+- \b TWODIMS \n This effectively switches of one dimension in SPH,
+ i.e. the code follows only 2d hydrodynamics in the xy-, yz-, or
+ xz-plane. This only works with NOGRAVITY, and if all coordinates of
+ the third axis are exactly equal. Can be useful for idealized SPH
+ tests.
+
+- \b SPH_BND_PARTICLES \n If this is set, particles with a particle-ID
+ equal to zero do not receive any SPH acceleration. This can be useful
+ for idealized SPH tests, where these particles represent fixed
+ "walls".
+
+- \b NOVISCOSITYLIMITER \n If this is set, there is no explicit upper
+ limit on the viscosity. In the default version, this limiter will
+ try to protect against possible particle `reflections', which could
+ in principle occur if very poor timestepping is used in the
+ presence of strong shocks.
+
+- \b COMPUTE_POTENTIAL_ENERGY \n When this option is set, the code will
+ compute the gravitational potential energy each time a global
+ statistics is computed. This can be useful for testing global energy
+ conservation.
+
+- \b ISOTHERM_EQS \n This special option makes the gas behave like an
+ isothermal gas with equation of state \f$ P = c_s^2 \rho \f$. The
+ sound-speed \f$ c_s \f$ is set by the thermal energy per unit mass
+ in the intial conditions, i.e. \f$ c_s^2=u \f$. If the value for \f$ u \f$
+ is zero, then the initial gas temperature in the parameter file is
+ used to define the sound speed according to \f$ c_s^2= 3/4\,
+ k\,T/m_p \f$ , where \f$ m_p \f$ is the proton mass.
+
+- \b ADAPTIVE_GRAVSOFT_FORGAS \n When this option is set, the gravitational
+ softening lengths used for gas particles is tied to their SPH smoothing
+ length. This can be useful for dissipative collapse simulations. The
+ option requires the setting of UNEQUALSOFTENINGS.
+
+- \b SELECTIVE_NO_GRAVITY \n This can be used for special computations where
+ one wants to exclude certain particle types from receiving gravitational
+ forces. The particle types that are excluded in this fashion are specified
+ by a bit mask, in the same as for the PLACEHIGHRESREGION option.
+
+- \b LONGIDS \n If this is set, the code assumes that particle-IDs are
+ stored as 64-bit long integers. This is only really needed if you want
+ to go beyond ~2 billion particles.
+
+\n
+\section secmake8 Testing and Debugging options
+- \b FORCETEST=0.01 \n This can be set to check the force accuracy of the
+ code, and is only included as a debugging option. The option needs to
+ be set to a number between 0 and 1 (e.g. 0.01), which specifies the
+ fraction of randomly chosen particles for which at each timestep
+ forces by direct summation are computed. The normal tree-forces and
+ the `correct' direct summation forces are then collected in a file \b
+ forcetest.txt for later inspection. Note that the simulation itself is
+ unaffected by this option, but it will of course run much(!) slower,
+ particularly if <b> FORCETEST*NumPart*NumPart>>NumPart</b>
+ Note: Particle IDs must be set to numbers >=1 for this
+ option to work.
+
+\n
+\section secmake9 Glass making
+- \b MAKEGLASS=262144 \n This option can be used to generate a glass-like
+ particle configuration. The value assigned gives the particle load,
+ which is initially generated as a Poisson sample and then evolved
+ towards a glass with the sign of gravity reversed
+
+*/
diff --git a/clusters/user/GEAR/src/new.phase.c b/clusters/user/GEAR/src/new.phase.c
new file mode 100644
index 0000000..0bb015b
--- /dev/null
+++ b/clusters/user/GEAR/src/new.phase.c
@@ -0,0 +1,339 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_spline.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+#ifdef MULTIPHASE
+
+
+/*! \file phase.c
+ * \brief Compute phase mixing
+ *
+*/
+
+/*! compute phase mixing
+ *
+ */
+void update_phase()
+{
+ int i;
+ double a3,hubble_a;
+#ifdef PHASE_MIXING
+ FLOAT EgySpec=0;
+#endif
+
+ double dt;
+
+#ifdef COLDGAS_CYCLE
+ double Pwc,Pcw;
+ double flux_in_cgs,X,tau;
+#endif
+
+ double Pcol,ColTime;
+ double DensityNorm;
+
+ int *numlist;
+
+
+ N_sph = 0;
+ N_sticky = 0;
+ N_stickyflaged = 0;
+ N_dark = 0;
+ NumColPotLocal = 0;
+
+
+ if(All.ComovingIntegrationOn)
+ {
+ a3 = All.Time * All.Time * All.Time;
+ hubble_a = All.Omega0 / (All.Time * All.Time * All.Time)
+ + (1 - All.Omega0 - All.OmegaLambda) / (All.Time * All.Time) + All.OmegaLambda;
+
+ hubble_a = All.Hubble * sqrt(hubble_a);
+
+ }
+ else
+ {
+ a3 = 1;
+ hubble_a = 1;
+ }
+
+
+
+ for(i = 0; i < N_gas; i++)
+ {
+
+ //if(P[i].Ti_endstep == All.Ti_Current) /* if the particle is active */
+ {
+
+
+ SphP[i].StickyFlag = 0;
+
+
+#ifdef PHASE_MIXING
+
+
+
+#ifdef FEEDBACK
+ if((P[i].Type == 0) && (SphP[i].EnergySN==0))
+#else
+ if(P[i].Type == 0)
+#endif
+ {
+
+ switch (SphP[i].Phase)
+ {
+ case GAS_SPH:
+ /* compute temperature from entropy */
+ EgySpec = 1./GAMMA_MINUS1 * pow(SphP[i].Density / a3,GAMMA_MINUS1)* SphP[i].Entropy;
+
+ if (EgySpec < All.CriticalEgySpec) /* to sticky phase */
+ {
+ SphP[i].Phase = GAS_STICKY;
+ SphP[i].StickyFlag = 0;
+ SphP[i].StickyTime = All.Time; /* may be elligible for collision */
+ SphP[i].Entropy = EgySpec;
+ }
+
+ break;
+
+ case GAS_STICKY:
+ /* compute temperature from specific energy */
+ EgySpec = SphP[i].Entropy;
+
+ if (EgySpec >= All.CriticalEgySpec) /* to sph phase */
+ {
+ SphP[i].Phase = GAS_SPH;
+ SphP[i].Entropy = GAMMA_MINUS1 * EgySpec / pow(SphP[i].Density / a3, GAMMA_MINUS1);
+ }
+
+ break;
+ }
+
+
+#ifdef COLDGAS_CYCLE
+
+ /*
+
+ Here, we do nothing during the first step, because the UV flux is unknown
+
+ */
+
+
+ if (((SphP[i].Phase==GAS_STICKY)||(SphP[i].Phase==GAS_DARK))&&All.NumCurrentTiStep>0)
+ {
+ /* cold/warm gas cycle */
+
+ /* compute dt */
+ dt = (All.Ti_Current - P[i].Ti_begstep) * All.Timebase_interval / hubble_a;
+
+ X = 0.;
+
+#ifdef STELLAR_FLUX
+ /* compute stellar flux */
+ flux_in_cgs = SphP[i].EnergyFlux* All.UnitEnergy_in_cgs/All.UnitTime_in_s/pow(All.UnitLength_in_cm, 2);
+ X = X + flux_in_cgs/C / All.HeatingPeSolarEnergyDensity;
+#endif
+
+#ifdef EXTERNAL_FLUX
+ /* compute outer flux */
+ X = X + All.HeatingExternalFLuxEnergyDensity/All.HeatingPeSolarEnergyDensity ;
+#endif
+
+
+
+ if (X>0)
+ {
+ /* warm gas */
+
+ tau = pow(X,+All.ColdGasCycleTransitionParameter) * All.ColdGasCycleTransitionTime;
+ Pwc = 1.0-exp(-dt/tau);
+
+ /* cold gas */
+ tau = pow(X,-All.ColdGasCycleTransitionParameter) * All.ColdGasCycleTransitionTime;
+ Pcw = 1.0-exp(-dt/tau);
+
+ }
+ else
+ {
+ Pwc = 1.0;
+ Pcw = 0.0;
+ }
+
+
+ /* compute transition */
+ switch(SphP[i].Phase)
+ {
+ case GAS_STICKY:
+ if (get_random_number(P[i].ID) < Pwc)
+ {
+ SphP[i].Phase = GAS_DARK;
+ }
+ break;
+
+ case GAS_DARK:
+ if (get_random_number(P[i].ID) < Pcw)
+ {
+ SphP[i].Phase = GAS_STICKY;
+ SphP[i].StickyFlag = 0;
+ SphP[i].StickyTime = All.Time; /* may be elligible for collision */
+ }
+ break;
+
+ }
+
+ }
+
+#endif /* COLDGAS_CYCLE */
+
+
+#endif /* PHASE_MIXING */
+
+
+ /* determine if a sticky particle may collide or not */
+
+
+ if(SphP[i].Phase==GAS_STICKY)
+ {
+
+
+ if(SphP[i].StickyTime <= All.Time) /* may collide */
+ {
+
+ /* new implementation */
+ SphP[i].StickyFlag = 1;
+
+
+ /* this was the old implementation */
+
+ //dt = (All.Ti_Current - P[i].Ti_begstep) * All.Timebase_interval / hubble_a;
+ //
+ ///* because mean free path depends on density */
+ //if (All.StickyDensity>0)
+ // {
+ // //ColTime = All.StickyTime * pow(All.StickyDensity/SphP[i].Density,All.StickyDensityPower);
+ // DensityNorm = SphP[i].Density/All.StickyDensity;
+ // ColTime = All.StickyTime / (DensityNorm * pow( (1+pow(DensityNorm/3,2)) ,1/2.));
+ // if (DensityNorm > 10)
+ // {
+ // ColTime = ColTime*1e10; /* cut off */
+ // }
+ // }
+ //else
+ // ColTime = All.StickyTime;
+ //
+ //
+ //Pcol = 1.0-exp(-dt/ColTime);
+ //if (get_random_number(P[i].ID) < Pcol)
+ // {
+ // SphP[i].StickyFlag = 1; /* the particle may collide */
+ // SphP[i].StickyTime = All.Time + All.StickyIdleTime;
+ // NumColPotLocal++;
+ // }
+
+
+
+ }
+ }
+
+
+ } /* end of Ptype==0 */
+
+ } /* end of active particles */
+
+ /* count number of each type */
+ if(P[i].Type == 0)
+ {
+ switch (SphP[i].Phase)
+ {
+ case GAS_SPH:
+ N_sph++;
+ break;
+
+ case GAS_STICKY:
+ N_sticky++;
+ if (SphP[i].StickyFlag == 1)
+ N_stickyflaged++;
+ break;
+
+ case GAS_DARK:
+ N_dark++;
+ break;
+ }
+ }
+
+
+
+
+ } /* end of main loop */
+
+ /* share results */
+ //MPI_Allreduce(&N_sph, &All.TotN_sph, 1, MPI_LONG_LONG, MPI_SUM, MPI_COMM_WORLD);
+ //MPI_Allreduce(&N_sticky, &All.TotN_sticky, 1, MPI_LONG_LONG, MPI_SUM, MPI_COMM_WORLD);
+ //MPI_Allreduce(&N_stickyflaged, &All.TotN_stickyflaged, 1, MPI_LONG_LONG, MPI_SUM, MPI_COMM_WORLD);
+ //MPI_Allreduce(&N_dark, &All.TotN_dark, 1, MPI_LONG_LONG, MPI_SUM, MPI_COMM_WORLD);
+
+
+ numlist = malloc(NTask * sizeof(int) * NTask);
+
+ MPI_Allgather(&N_sph, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotN_sph = 0; i < NTask; i++)
+ All.TotN_sph += numlist[i];
+
+ MPI_Allgather(&N_sticky, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotN_sticky = 0; i < NTask; i++)
+ All.TotN_sticky += numlist[i];
+
+ MPI_Allgather(&N_stickyflaged, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotN_stickyflaged = 0; i < NTask; i++)
+ All.TotN_stickyflaged += numlist[i];
+
+ MPI_Allgather(&N_dark, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotN_dark = 0; i < NTask; i++)
+ All.TotN_dark += numlist[i];
+
+ free(numlist);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if (ThisTask==0)
+ {
+ fprintf(FdPhase, "Step %d, Time: %g GasPart: %d SphPart: %d StickyPart: %d DarkPart: %d StickyPartFlaged: %d\n", All.NumCurrentTiStep, All.Time, (int)All.TotN_gas, (int)All.TotN_sph, (int)All.TotN_sticky,(int)All.TotN_dark, (int)All.TotN_stickyflaged);
+ fflush(FdPhase);
+ }
+
+
+}
+
+
+
+
+
+#endif
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/ngb.c b/clusters/user/GEAR/src/ngb.c
new file mode 100644
index 0000000..22143f1
--- /dev/null
+++ b/clusters/user/GEAR/src/ngb.c
@@ -0,0 +1,880 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <time.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file ngb.c
+ * \brief neighbour search by means of the tree
+ *
+ * This file contains routines for neighbour finding. We use the
+ * gravity-tree and a range-searching technique to find neighbours.
+ */
+
+#ifdef PERIODIC
+static double boxSize, boxHalf;
+
+#ifdef LONG_X
+static double boxSize_X, boxHalf_X;
+#else
+#define boxSize_X boxSize
+#define boxHalf_X boxHalf
+#endif
+#ifdef LONG_Y
+static double boxSize_Y, boxHalf_Y;
+#else
+#define boxSize_Y boxSize
+#define boxHalf_Y boxHalf
+#endif
+#ifdef LONG_Z
+static double boxSize_Z, boxHalf_Z;
+#else
+#define boxSize_Z boxSize
+#define boxHalf_Z boxHalf
+#endif
+#endif
+
+
+/*! these macros maps a coordinate difference to the nearest periodic
+ * image
+ */
+
+#define NGB_PERIODIC_X(x) (xtmp=(x),(xtmp>boxHalf_X)?(xtmp-boxSize_X):((xtmp<-boxHalf_X)?(xtmp+boxSize_X):xtmp))
+#define NGB_PERIODIC_Y(x) (xtmp=(x),(xtmp>boxHalf_Y)?(xtmp-boxSize_Y):((xtmp<-boxHalf_Y)?(xtmp+boxSize_Y):xtmp))
+#define NGB_PERIODIC_Z(x) (xtmp=(x),(xtmp>boxHalf_Z)?(xtmp-boxSize_Z):((xtmp<-boxHalf_Z)?(xtmp+boxSize_Z):xtmp))
+
+
+
+/*! This routine finds all neighbours `j' that can interact with the
+ * particle `i' in the communication buffer.
+ *
+ * Note that an interaction can take place if
+ * \f$ r_{ij} < h_i \f$ OR if \f$ r_{ij} < h_j \f$.
+ *
+ * In the range-search this is taken into account, i.e. it is guaranteed that
+ * all particles are found that fulfil this condition, including the (more
+ * difficult) second part of it. For this purpose, each node knows the
+ * maximum h occuring among the particles it represents.
+ */
+int ngb_treefind_pairs(FLOAT searchcenter[3], FLOAT hsml, int phase, int *startnode)
+{
+ int k, no, p, numngb;
+ FLOAT hdiff;
+ FLOAT searchmin[3], searchmax[3];
+ struct NODE *this;
+
+#ifdef PERIODIC
+ double xtmp;
+#endif
+
+ for(k = 0; k < 3; k++) /* cube-box window */
+ {
+ searchmin[k] = searchcenter[k] - hsml;
+ searchmax[k] = searchcenter[k] + hsml;
+ }
+
+ numngb = 0;
+ no = *startnode;
+
+ while(no >= 0)
+ {
+ if(no < All.MaxPart) /* single particle */
+ {
+ p = no;
+ no = Nextnode[no];
+
+ if(P[p].Type > 0)
+ continue;
+
+
+#ifdef MULTIPHASE
+ /* WARNING - WARNING - WARNING - WARNING */
+
+ /* keep only particles of same phase */
+ //if(SphP[p].Phase != phase)
+ // continue;
+
+ /* WARNING - WARNING - WARNING - WARNING */
+ /* this may be problematic for the feedback */
+
+ /* sticky sees only sticky */
+
+ //if ((phase==GAS_STICKY) && SphP[p].Phase!=GAS_STICKY)
+ // continue;
+
+#endif
+
+
+
+ hdiff = SphP[p].Hsml - hsml;
+ if(hdiff < 0)
+ hdiff = 0;
+
+#ifdef PERIODIC
+ if(NGB_PERIODIC_X(P[p].Pos[0] - searchcenter[0]) < (-hsml - hdiff))
+ continue;
+ if(NGB_PERIODIC_X(P[p].Pos[0] - searchcenter[0]) > (hsml + hdiff))
+ continue;
+ if(NGB_PERIODIC_Y(P[p].Pos[1] - searchcenter[1]) < (-hsml - hdiff))
+ continue;
+ if(NGB_PERIODIC_Y(P[p].Pos[1] - searchcenter[1]) > (hsml + hdiff))
+ continue;
+ if(NGB_PERIODIC_Z(P[p].Pos[2] - searchcenter[2]) < (-hsml - hdiff))
+ continue;
+ if(NGB_PERIODIC_Z(P[p].Pos[2] - searchcenter[2]) > (hsml + hdiff))
+ continue;
+#else
+ if(P[p].Pos[0] < (searchmin[0] - hdiff))
+ continue;
+ if(P[p].Pos[0] > (searchmax[0] + hdiff))
+ continue;
+ if(P[p].Pos[1] < (searchmin[1] - hdiff))
+ continue;
+ if(P[p].Pos[1] > (searchmax[1] + hdiff))
+ continue;
+ if(P[p].Pos[2] < (searchmin[2] - hdiff))
+ continue;
+ if(P[p].Pos[2] > (searchmax[2] + hdiff))
+ continue;
+#endif
+ Ngblist[numngb++] = p;
+
+ if(numngb == MAX_NGB)
+ {
+ printf
+ ("ThisTask=%d: Need to do a second neighbour loop in hydro-force for (%g|%g|%g) hsml=%g no=%d\n",
+ ThisTask, searchcenter[0], searchcenter[1], searchcenter[2], hsml, no);
+ *startnode = no;
+ return numngb;
+ }
+ }
+ else
+ {
+ if(no >= All.MaxPart + MaxNodes) /* pseudo particle */
+ {
+ Exportflag[DomainTask[no - (All.MaxPart + MaxNodes)]] = 1;
+ no = Nextnode[no - MaxNodes];
+ continue;
+ }
+
+ this = &Nodes[no];
+ hdiff = Extnodes[no].hmax - hsml;
+ if(hdiff < 0)
+ hdiff = 0;
+
+ no = this->u.d.sibling; /* in case the node can be discarded */
+
+#ifdef PERIODIC
+ if((NGB_PERIODIC_X(this->center[0] - searchcenter[0]) + 0.5 * this->len) < (-hsml - hdiff))
+ continue;
+ if((NGB_PERIODIC_X(this->center[0] - searchcenter[0]) - 0.5 * this->len) > (hsml + hdiff))
+ continue;
+ if((NGB_PERIODIC_Y(this->center[1] - searchcenter[1]) + 0.5 * this->len) < (-hsml - hdiff))
+ continue;
+ if((NGB_PERIODIC_Y(this->center[1] - searchcenter[1]) - 0.5 * this->len) > (hsml + hdiff))
+ continue;
+ if((NGB_PERIODIC_Z(this->center[2] - searchcenter[2]) + 0.5 * this->len) < (-hsml - hdiff))
+ continue;
+ if((NGB_PERIODIC_Z(this->center[2] - searchcenter[2]) - 0.5 * this->len) > (hsml + hdiff))
+ continue;
+#else
+ if((this->center[0] + 0.5 * this->len) < (searchmin[0] - hdiff))
+ continue;
+ if((this->center[0] - 0.5 * this->len) > (searchmax[0] + hdiff))
+ continue;
+ if((this->center[1] + 0.5 * this->len) < (searchmin[1] - hdiff))
+ continue;
+ if((this->center[1] - 0.5 * this->len) > (searchmax[1] + hdiff))
+ continue;
+ if((this->center[2] + 0.5 * this->len) < (searchmin[2] - hdiff))
+ continue;
+ if((this->center[2] - 0.5 * this->len) > (searchmax[2] + hdiff))
+ continue;
+#endif
+ no = this->u.d.nextnode; /* ok, we need to open the node */
+ }
+ }
+
+ *startnode = -1;
+ return numngb;
+}
+
+
+
+
+
+
+
+/*! This routine finds all neighbours `j' that can interact with the
+ * particle `i' in the communication buffer.
+ *
+ * Note that an interaction can take place if
+ * \f$ r_{ij} < h_i \f$ OR if \f$ r_{ij} < h_j \f$.
+ *
+ * In the range-search this is taken into account, i.e. it is guaranteed that
+ * all particles are found that fulfil this condition, including the (more
+ * difficult) second part of it. For this purpose, each node knows the
+ * maximum h occuring among the particles it represents.
+ *
+ * This function is similar to ngb_treefind_pairs but returns only
+ * pairs of same phase
+ */
+#ifdef MULTIPHASE
+int ngb_treefind_phase_pairs(FLOAT searchcenter[3], FLOAT hsml, int phase, int *startnode)
+{
+ int k, no, p, numngb;
+ FLOAT hdiff;
+ FLOAT searchmin[3], searchmax[3];
+ struct NODE *this;
+
+#ifdef PERIODIC
+ double xtmp;
+#endif
+
+ for(k = 0; k < 3; k++) /* cube-box window */
+ {
+ searchmin[k] = searchcenter[k] - hsml;
+ searchmax[k] = searchcenter[k] + hsml;
+ }
+
+ numngb = 0;
+ no = *startnode;
+
+ while(no >= 0)
+ {
+ if(no < All.MaxPart) /* single particle */
+ {
+ p = no;
+ no = Nextnode[no];
+
+ if(P[p].Type > 0)
+ continue;
+
+ /* here, we select all gas particles */
+
+#ifdef MULTIPHASE
+ /* keep only particles of same phase */
+ if(SphP[p].Phase != phase)
+ continue;
+#endif
+
+ hdiff = SphP[p].Hsml - hsml;
+ if(hdiff < 0)
+ hdiff = 0;
+
+#ifdef PERIODIC
+ if(NGB_PERIODIC_X(P[p].Pos[0] - searchcenter[0]) < (-hsml - hdiff))
+ continue;
+ if(NGB_PERIODIC_X(P[p].Pos[0] - searchcenter[0]) > (hsml + hdiff))
+ continue;
+ if(NGB_PERIODIC_Y(P[p].Pos[1] - searchcenter[1]) < (-hsml - hdiff))
+ continue;
+ if(NGB_PERIODIC_Y(P[p].Pos[1] - searchcenter[1]) > (hsml + hdiff))
+ continue;
+ if(NGB_PERIODIC_Z(P[p].Pos[2] - searchcenter[2]) < (-hsml - hdiff))
+ continue;
+ if(NGB_PERIODIC_Z(P[p].Pos[2] - searchcenter[2]) > (hsml + hdiff))
+ continue;
+#else
+ if(P[p].Pos[0] < (searchmin[0] - hdiff))
+ continue;
+ if(P[p].Pos[0] > (searchmax[0] + hdiff))
+ continue;
+ if(P[p].Pos[1] < (searchmin[1] - hdiff))
+ continue;
+ if(P[p].Pos[1] > (searchmax[1] + hdiff))
+ continue;
+ if(P[p].Pos[2] < (searchmin[2] - hdiff))
+ continue;
+ if(P[p].Pos[2] > (searchmax[2] + hdiff))
+ continue;
+#endif
+ Ngblist[numngb++] = p;
+
+ if(numngb == MAX_NGB)
+ {
+ printf
+ ("ThisTask=%d: Need to do a second neighbour loop in hydro-force for (%g|%g|%g) hsml=%g no=%d\n",
+ ThisTask, searchcenter[0], searchcenter[1], searchcenter[2], hsml, no);
+ *startnode = no;
+ return numngb;
+ }
+ }
+ else
+ {
+ if(no >= All.MaxPart + MaxNodes) /* pseudo particle */
+ {
+ Exportflag[DomainTask[no - (All.MaxPart + MaxNodes)]] = 1;
+ no = Nextnode[no - MaxNodes];
+ continue;
+ }
+
+ this = &Nodes[no];
+ hdiff = Extnodes[no].hmax - hsml;
+ if(hdiff < 0)
+ hdiff = 0;
+
+ no = this->u.d.sibling; /* in case the node can be discarded */
+
+#ifdef PERIODIC
+ if((NGB_PERIODIC_X(this->center[0] - searchcenter[0]) + 0.5 * this->len) < (-hsml - hdiff))
+ continue;
+ if((NGB_PERIODIC_X(this->center[0] - searchcenter[0]) - 0.5 * this->len) > (hsml + hdiff))
+ continue;
+ if((NGB_PERIODIC_Y(this->center[1] - searchcenter[1]) + 0.5 * this->len) < (-hsml - hdiff))
+ continue;
+ if((NGB_PERIODIC_Y(this->center[1] - searchcenter[1]) - 0.5 * this->len) > (hsml + hdiff))
+ continue;
+ if((NGB_PERIODIC_Z(this->center[2] - searchcenter[2]) + 0.5 * this->len) < (-hsml - hdiff))
+ continue;
+ if((NGB_PERIODIC_Z(this->center[2] - searchcenter[2]) - 0.5 * this->len) > (hsml + hdiff))
+ continue;
+#else
+ if((this->center[0] + 0.5 * this->len) < (searchmin[0] - hdiff))
+ continue;
+ if((this->center[0] - 0.5 * this->len) > (searchmax[0] + hdiff))
+ continue;
+ if((this->center[1] + 0.5 * this->len) < (searchmin[1] - hdiff))
+ continue;
+ if((this->center[1] - 0.5 * this->len) > (searchmax[1] + hdiff))
+ continue;
+ if((this->center[2] + 0.5 * this->len) < (searchmin[2] - hdiff))
+ continue;
+ if((this->center[2] - 0.5 * this->len) > (searchmax[2] + hdiff))
+ continue;
+#endif
+ no = this->u.d.nextnode; /* ok, we need to open the node */
+ }
+ }
+
+ *startnode = -1;
+ return numngb;
+}
+#endif
+
+/*! This function returns neighbours with distance <= hsml and returns them in
+ * Ngblist. Actually, particles in a box of half side length hsml are
+ * returned, i.e. the reduction to a sphere still needs to be done in the
+ * calling routine.
+ */
+int ngb_treefind_variable(FLOAT searchcenter[3], FLOAT hsml, int phase, int *startnode)
+{
+ int k, numngb;
+ int no, p;
+ struct NODE *this;
+ FLOAT searchmin[3], searchmax[3];
+
+#ifdef PERIODIC
+ double xtmp;
+#endif
+
+ for(k = 0; k < 3; k++) /* cube-box window */
+ {
+ searchmin[k] = searchcenter[k] - hsml;
+ searchmax[k] = searchcenter[k] + hsml;
+ }
+
+ numngb = 0;
+ no = *startnode;
+
+ while(no >= 0)
+ {
+ if(no < All.MaxPart) /* single particle */
+ {
+ p = no;
+ no = Nextnode[no];
+
+ if(P[p].Type > 0)
+ continue;
+
+#ifdef MULTIPHASE
+ /* GAS_SPH sees only GAS_SPH */
+ if((phase == GAS_SPH) && (SphP[p].Phase != GAS_SPH))
+ continue;
+
+ /* GAS_SPH sees only GAS_STICKY (better for sticky interaction) */
+ if((phase == GAS_STICKY) && (SphP[p].Phase != GAS_STICKY))
+ continue;
+
+ /* GAS_DARK sees everybody */
+
+
+
+#endif
+
+
+#ifdef PERIODIC
+ if(NGB_PERIODIC_X(P[p].Pos[0] - searchcenter[0]) < -hsml)
+ continue;
+ if(NGB_PERIODIC_X(P[p].Pos[0] - searchcenter[0]) > hsml)
+ continue;
+ if(NGB_PERIODIC_Y(P[p].Pos[1] - searchcenter[1]) < -hsml)
+ continue;
+ if(NGB_PERIODIC_Y(P[p].Pos[1] - searchcenter[1]) > hsml)
+ continue;
+ if(NGB_PERIODIC_Z(P[p].Pos[2] - searchcenter[2]) < -hsml)
+ continue;
+ if(NGB_PERIODIC_Z(P[p].Pos[2] - searchcenter[2]) > hsml)
+ continue;
+#else
+ if(P[p].Pos[0] < searchmin[0])
+ continue;
+ if(P[p].Pos[0] > searchmax[0])
+ continue;
+ if(P[p].Pos[1] < searchmin[1])
+ continue;
+ if(P[p].Pos[1] > searchmax[1])
+ continue;
+ if(P[p].Pos[2] < searchmin[2])
+ continue;
+ if(P[p].Pos[2] > searchmax[2])
+ continue;
+#endif
+ Ngblist[numngb++] = p;
+
+ if(numngb == MAX_NGB)
+ {
+ numngb = ngb_clear_buf(searchcenter, hsml, numngb);
+ if(numngb == MAX_NGB)
+ {
+ printf("ThisTask=%d: Need to do a second neighbour loop for (%g|%g|%g) hsml=%g no=%d\n",
+ ThisTask, searchcenter[0], searchcenter[1], searchcenter[2], hsml, no);
+ *startnode = no;
+ return numngb;
+ }
+ }
+ }
+ else
+ {
+ if(no >= All.MaxPart + MaxNodes) /* pseudo particle */
+ {
+ Exportflag[DomainTask[no - (All.MaxPart + MaxNodes)]] = 1;
+ no = Nextnode[no - MaxNodes];
+ continue;
+ }
+
+ this = &Nodes[no];
+
+ no = this->u.d.sibling; /* in case the node can be discarded */
+#ifdef PERIODIC
+ if((NGB_PERIODIC_X(this->center[0] - searchcenter[0]) + 0.5 * this->len) < -hsml)
+ continue;
+ if((NGB_PERIODIC_X(this->center[0] - searchcenter[0]) - 0.5 * this->len) > hsml)
+ continue;
+ if((NGB_PERIODIC_Y(this->center[1] - searchcenter[1]) + 0.5 * this->len) < -hsml)
+ continue;
+ if((NGB_PERIODIC_Y(this->center[1] - searchcenter[1]) - 0.5 * this->len) > hsml)
+ continue;
+ if((NGB_PERIODIC_Z(this->center[2] - searchcenter[2]) + 0.5 * this->len) < -hsml)
+ continue;
+ if((NGB_PERIODIC_Z(this->center[2] - searchcenter[2]) - 0.5 * this->len) > hsml)
+ continue;
+#else
+ if((this->center[0] + 0.5 * this->len) < (searchmin[0]))
+ continue;
+ if((this->center[0] - 0.5 * this->len) > (searchmax[0]))
+ continue;
+ if((this->center[1] + 0.5 * this->len) < (searchmin[1]))
+ continue;
+ if((this->center[1] - 0.5 * this->len) > (searchmax[1]))
+ continue;
+ if((this->center[2] + 0.5 * this->len) < (searchmin[2]))
+ continue;
+ if((this->center[2] - 0.5 * this->len) > (searchmax[2]))
+ continue;
+#endif
+ no = this->u.d.nextnode; /* ok, we need to open the node */
+ }
+ }
+
+ *startnode = -1;
+ return numngb;
+}
+
+
+
+
+
+
+#ifdef CHIMIE
+/*! This function returns neighbours with distance <= hsml and returns them in
+ * Ngblist. Actually, particles in a box of half side length hsml are
+ * returned, i.e. the reduction to a sphere still needs to be done in the
+ * calling routine.
+ */
+int ngb_treefind_variable_for_chimie(FLOAT searchcenter[3], FLOAT hsml, int *startnode)
+{
+ int k, numngb;
+ int no, p;
+ struct NODE *this;
+ FLOAT searchmin[3], searchmax[3];
+
+#ifdef PERIODIC
+ double xtmp;
+#endif
+
+ for(k = 0; k < 3; k++) /* cube-box window */
+ {
+ searchmin[k] = searchcenter[k] - hsml;
+ searchmax[k] = searchcenter[k] + hsml;
+ }
+
+ numngb = 0;
+ no = *startnode;
+
+ while(no >= 0)
+ {
+ if(no < All.MaxPart) /* single particle */
+ {
+ p = no;
+ no = Nextnode[no];
+
+ if(P[p].Type > 0)
+ continue;
+
+#ifdef CHIMIE_KINETIC_FEEDBACK /* no, we need to keep all particles, especially when the wind is low */
+// if (SphP[p].WindTime >= (All.Time-All.ChimieWindTime))
+// continue;
+#endif
+
+#ifdef PERIODIC
+ if(NGB_PERIODIC_X(P[p].Pos[0] - searchcenter[0]) < -hsml)
+ continue;
+ if(NGB_PERIODIC_X(P[p].Pos[0] - searchcenter[0]) > hsml)
+ continue;
+ if(NGB_PERIODIC_Y(P[p].Pos[1] - searchcenter[1]) < -hsml)
+ continue;
+ if(NGB_PERIODIC_Y(P[p].Pos[1] - searchcenter[1]) > hsml)
+ continue;
+ if(NGB_PERIODIC_Z(P[p].Pos[2] - searchcenter[2]) < -hsml)
+ continue;
+ if(NGB_PERIODIC_Z(P[p].Pos[2] - searchcenter[2]) > hsml)
+ continue;
+#else
+ if(P[p].Pos[0] < searchmin[0])
+ continue;
+ if(P[p].Pos[0] > searchmax[0])
+ continue;
+ if(P[p].Pos[1] < searchmin[1])
+ continue;
+ if(P[p].Pos[1] > searchmax[1])
+ continue;
+ if(P[p].Pos[2] < searchmin[2])
+ continue;
+ if(P[p].Pos[2] > searchmax[2])
+ continue;
+#endif
+ Ngblist[numngb++] = p;
+
+ if(numngb == MAX_NGB)
+ {
+ numngb = ngb_clear_buf(searchcenter, hsml, numngb);
+ if(numngb == MAX_NGB)
+ {
+ printf("ThisTask=%d: Need to do a second neighbour loop for (%g|%g|%g) hsml=%g no=%d\n",
+ ThisTask, searchcenter[0], searchcenter[1], searchcenter[2], hsml, no);
+ *startnode = no;
+ return numngb;
+ }
+ }
+ }
+ else
+ {
+ if(no >= All.MaxPart + MaxNodes) /* pseudo particle */
+ {
+ Exportflag[DomainTask[no - (All.MaxPart + MaxNodes)]] = 1;
+ no = Nextnode[no - MaxNodes];
+ continue;
+ }
+
+ this = &Nodes[no];
+
+ no = this->u.d.sibling; /* in case the node can be discarded */
+#ifdef PERIODIC
+ if((NGB_PERIODIC_X(this->center[0] - searchcenter[0]) + 0.5 * this->len) < -hsml)
+ continue;
+ if((NGB_PERIODIC_X(this->center[0] - searchcenter[0]) - 0.5 * this->len) > hsml)
+ continue;
+ if((NGB_PERIODIC_Y(this->center[1] - searchcenter[1]) + 0.5 * this->len) < -hsml)
+ continue;
+ if((NGB_PERIODIC_Y(this->center[1] - searchcenter[1]) - 0.5 * this->len) > hsml)
+ continue;
+ if((NGB_PERIODIC_Z(this->center[2] - searchcenter[2]) + 0.5 * this->len) < -hsml)
+ continue;
+ if((NGB_PERIODIC_Z(this->center[2] - searchcenter[2]) - 0.5 * this->len) > hsml)
+ continue;
+#else
+ if((this->center[0] + 0.5 * this->len) < (searchmin[0]))
+ continue;
+ if((this->center[0] - 0.5 * this->len) > (searchmax[0]))
+ continue;
+ if((this->center[1] + 0.5 * this->len) < (searchmin[1]))
+ continue;
+ if((this->center[1] - 0.5 * this->len) > (searchmax[1]))
+ continue;
+ if((this->center[2] + 0.5 * this->len) < (searchmin[2]))
+ continue;
+ if((this->center[2] - 0.5 * this->len) > (searchmax[2]))
+ continue;
+#endif
+ no = this->u.d.nextnode; /* ok, we need to open the node */
+ }
+ }
+
+ *startnode = -1;
+ return numngb;
+}
+#endif
+
+
+
+
+
+
+
+
+
+
+
+
+/*! This function returns the first particle that may sticky-interact with
+ * the given particle, in the sph kernel.
+ */
+#ifdef MULTIPHASE
+int ngb_treefind_sticky_collisions(FLOAT searchcenter[3], FLOAT hsml, int phase, int *startnode)
+{
+ int k, numngb;
+ int no, p;
+ struct NODE *this;
+ FLOAT searchmin[3], searchmax[3];
+
+ double dx,dy,dz,dr2;
+
+#ifdef PERIODIC
+ double xtmp;
+#endif
+
+ for(k = 0; k < 3; k++) /* cube-box window */
+ {
+ searchmin[k] = searchcenter[k] - hsml;
+ searchmax[k] = searchcenter[k] + hsml;
+ }
+
+ numngb = 0;
+ no = *startnode;
+
+ while(no >= 0)
+ {
+ if(no < All.MaxPart) /* single particle */
+ {
+ p = no;
+ no = Nextnode[no];
+
+ if((P[p].Type > 0) || (SphP[p].Phase!=GAS_STICKY)) /* keep only GAS_STICKY */
+ continue;
+
+ if(SphP[p].StickyFlag==0) /* the particle may not collide */
+ continue;
+
+
+#ifdef PERIODIC
+ if(NGB_PERIODIC_X(P[p].Pos[0] - searchcenter[0]) < -hsml)
+ continue;
+ if(NGB_PERIODIC_X(P[p].Pos[0] - searchcenter[0]) > hsml)
+ continue;
+ if(NGB_PERIODIC_Y(P[p].Pos[1] - searchcenter[1]) < -hsml)
+ continue;
+ if(NGB_PERIODIC_Y(P[p].Pos[1] - searchcenter[1]) > hsml)
+ continue;
+ if(NGB_PERIODIC_Z(P[p].Pos[2] - searchcenter[2]) < -hsml)
+ continue;
+ if(NGB_PERIODIC_Z(P[p].Pos[2] - searchcenter[2]) > hsml)
+ continue;
+#else
+ if(P[p].Pos[0] < searchmin[0])
+ continue;
+ if(P[p].Pos[0] > searchmax[0])
+ continue;
+ if(P[p].Pos[1] < searchmin[1])
+ continue;
+ if(P[p].Pos[1] > searchmax[1])
+ continue;
+ if(P[p].Pos[2] < searchmin[2])
+ continue;
+ if(P[p].Pos[2] > searchmax[2])
+ continue;
+#endif
+
+ dx = searchcenter[0] - P[p].Pos[0];
+ dy = searchcenter[1] - P[p].Pos[1];
+ dz = searchcenter[2] - P[p].Pos[2];
+ dr2= dx * dx + dy * dy + dz * dz;
+
+ if (dr2>hsml*hsml)
+ continue;
+
+ if (dr2==0)
+ continue;
+
+ return p;
+
+
+ }
+ else
+ {
+ if(no >= All.MaxPart + MaxNodes) /* pseudo particle */
+ {
+ /* here, we do nothing */
+ no = Nextnode[no - MaxNodes];
+ continue;
+ }
+
+ this = &Nodes[no];
+
+ no = this->u.d.sibling; /* in case the node can be discarded */
+#ifdef PERIODIC
+ if((NGB_PERIODIC_X(this->center[0] - searchcenter[0]) + 0.5 * this->len) < -hsml)
+ continue;
+ if((NGB_PERIODIC_X(this->center[0] - searchcenter[0]) - 0.5 * this->len) > hsml)
+ continue;
+ if((NGB_PERIODIC_Y(this->center[1] - searchcenter[1]) + 0.5 * this->len) < -hsml)
+ continue;
+ if((NGB_PERIODIC_Y(this->center[1] - searchcenter[1]) - 0.5 * this->len) > hsml)
+ continue;
+ if((NGB_PERIODIC_Z(this->center[2] - searchcenter[2]) + 0.5 * this->len) < -hsml)
+ continue;
+ if((NGB_PERIODIC_Z(this->center[2] - searchcenter[2]) - 0.5 * this->len) > hsml)
+ continue;
+#else
+ if((this->center[0] + 0.5 * this->len) < (searchmin[0]))
+ continue;
+ if((this->center[0] - 0.5 * this->len) > (searchmax[0]))
+ continue;
+ if((this->center[1] + 0.5 * this->len) < (searchmin[1]))
+ continue;
+ if((this->center[1] - 0.5 * this->len) > (searchmax[1]))
+ continue;
+ if((this->center[2] + 0.5 * this->len) < (searchmin[2]))
+ continue;
+ if((this->center[2] - 0.5 * this->len) > (searchmax[2]))
+ continue;
+#endif
+ no = this->u.d.nextnode; /* ok, we need to open the node */
+ }
+ }
+
+ return -1;
+}
+#endif
+
+
+
+
+
+
+
+
+/*! The buffer for the neighbour list has a finite length MAX_NGB. For a large
+ * search region, this buffer can get full, in which case this routine can be
+ * called to eliminate some of the superfluous particles in the "corners" of
+ * the search box - only the ones in the inscribed sphere need to be kept.
+ */
+int ngb_clear_buf(FLOAT searchcenter[3], FLOAT hsml, int numngb)
+{
+ int i, p;
+ FLOAT dx, dy, dz, r2;
+
+#ifdef PERIODIC
+ double xtmp;
+#endif
+
+ for(i = 0; i < numngb; i++)
+ {
+ p = Ngblist[i];
+#ifdef PERIODIC
+ dx = NGB_PERIODIC_X(P[p].Pos[0] - searchcenter[0]);
+ dy = NGB_PERIODIC_Y(P[p].Pos[1] - searchcenter[1]);
+ dz = NGB_PERIODIC_Z(P[p].Pos[2] - searchcenter[2]);
+#else
+ dx = P[p].Pos[0] - searchcenter[0];
+ dy = P[p].Pos[1] - searchcenter[1];
+ dz = P[p].Pos[2] - searchcenter[2];
+#endif
+ r2 = dx * dx + dy * dy + dz * dz;
+
+ if(r2 > hsml * hsml)
+ {
+ Ngblist[i] = Ngblist[numngb - 1];
+ i--;
+ numngb--;
+ }
+ }
+
+ return numngb;
+}
+
+
+
+/*! Allocates memory for the neighbour list buffer.
+ */
+void ngb_treeallocate(int npart)
+{
+ double totbytes = 0;
+ size_t bytes;
+
+#ifdef PERIODIC
+ boxSize = All.BoxSize;
+ boxHalf = 0.5 * All.BoxSize;
+#ifdef LONG_X
+ boxHalf_X = boxHalf * LONG_X;
+ boxSize_X = boxSize * LONG_X;
+#endif
+#ifdef LONG_Y
+ boxHalf_Y = boxHalf * LONG_Y;
+ boxSize_Y = boxSize * LONG_Y;
+#endif
+#ifdef LONG_Z
+ boxHalf_Z = boxHalf * LONG_Z;
+ boxSize_Z = boxSize * LONG_Z;
+#endif
+#endif
+
+ if(!(Ngblist = malloc(bytes = npart * (long) sizeof(int))))
+ {
+ printf("Failed to allocate %g MB for ngblist array\n", bytes / (1024.0 * 1024.0));
+ endrun(78);
+ }
+ totbytes += bytes;
+
+ if(ThisTask == 0)
+ printf("allocated %g Mbyte for ngb search.\n", totbytes / (1024.0 * 1024.0));
+}
+
+
+/*! free memory allocated for neighbour list buffer.
+ */
+void ngb_treefree(void)
+{
+ free(Ngblist);
+}
+
+/*! This function constructs the neighbour tree. To this end, we actually need
+ * to construct the gravitational tree, because we use it now for the
+ * neighbour search.
+ */
+void ngb_treebuild(void)
+{
+ if(ThisTask == 0)
+ printf("Begin Ngb-tree construction.\n");
+
+ force_treebuild(N_gas);
+
+ if(ThisTask == 0)
+ printf("Ngb-Tree contruction finished \n");
+}
+
diff --git a/clusters/user/GEAR/src/outerpotential.c b/clusters/user/GEAR/src/outerpotential.c
new file mode 100644
index 0000000..099a8a3
--- /dev/null
+++ b/clusters/user/GEAR/src/outerpotential.c
@@ -0,0 +1,570 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_spline.h>
+#include <gsl/gsl_integration.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+#ifdef OUTERPOTENTIAL
+
+
+
+/**************************************
+*
+* * * * driving functions * * *
+*
+***************************************/
+
+
+void init_outer_potential()
+{
+
+#ifdef NFW
+ init_outer_potential_nfw();
+#endif
+
+#ifdef PLUMMER
+ init_outer_potential_plummer();
+#endif
+
+#ifdef MIYAMOTONAGAI
+ init_outer_potential_miyamotonagai();
+#endif
+
+#ifdef PISOTHERM
+ init_outer_potential_pisotherm();
+#endif
+
+#ifdef CORIOLIS
+ init_outer_potential_coriolis();
+#endif
+}
+
+
+void outer_forces()
+{
+
+#ifdef NFW
+ outer_forces_nfw();
+#endif
+
+#ifdef PLUMMER
+ outer_forces_plummer();
+#endif
+
+#ifdef PISOTHERM
+ outer_forces_pisotherm();
+#endif
+
+#ifdef MIYAMOTONAGAI
+ outer_forces_miyamotonagai();
+#endif
+
+#ifdef CORIOLIS
+ outer_forces_coriolis();
+#endif
+
+}
+
+void outer_potential()
+{
+
+#ifdef NFW
+ outer_potential_nfw();
+#endif
+
+#ifdef PLUMMER
+ outer_potential_plummer();
+#endif
+
+#ifdef MIYAMOTONAGAI
+ outer_potential_miyamotonagai();
+#endif
+
+#ifdef PISOTHERM
+ outer_potential_pisotherm();
+#endif
+
+#ifdef CORIOLIS
+ outer_potential_coriolis();
+#endif
+
+}
+
+
+
+#ifdef NFW
+/****************************
+*
+* * * * NFW * * *
+*
+*****************************/
+
+
+/*! \file phase.c
+ * \brief Compute forces and potential from the outer potential
+ *
+*/
+
+
+/*! init outer potential constantes
+ *
+ */
+void init_outer_potential_nfw()
+{
+ double rhoc;
+
+ All.HaloMass = All.HaloMass / All.UnitMass_in_g;
+ All.HaloMass = All.HaloMass*SOLAR_MASS; /* from Msolar in user units */
+ All.NFWPotentialCte = (1.-All.GasMassFraction) * All.G*All.HaloMass/(log(1+All.HaloConcentration) - All.HaloConcentration/(1+All.HaloConcentration));
+
+ /* here, convert HubbleParam in 1/(unit_time) */
+ rhoc = pow(All.HubbleParam*HUBBLE*All.UnitTime_in_s,2)*3/(8*PI*All.G);
+ All.Rs = pow(( All.HaloMass/(4/3.*PI*200*rhoc) ),(1./3.)) / All.HaloConcentration;
+ printf("\nRs (internal units) = %g\n", All.Rs);
+
+
+}
+
+
+
+/*! compute forces du to the outer potential
+ *
+ */
+void outer_forces_nfw()
+{
+ int i;
+ FLOAT accx, accy, accz;
+ FLOAT r,dPhi;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+
+ r = sqrt(P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2]);
+ dPhi = - All.NFWPotentialCte * ( log(1+r/All.Rs) - r/(All.Rs+r) ) / (r*r);
+
+ accx = dPhi * P[i].Pos[0]/r;
+ accy = dPhi * P[i].Pos[1]/r;
+ accz = dPhi * P[i].Pos[2]/r;
+
+ /*
+ if (P[i].ID==8)
+ {
+ printf("------> x=%g y=%g z=%g ax=%g ay=%g az=%g r=%g\n",P[i].Pos[0],P[i].Pos[1],P[i].Pos[2],accx,accy,accz,r);
+ printf("------> x=%g y=%g z=%g ax=%g ay=%g az=%g\n",P[i].Pos[0],P[i].Pos[1],P[i].Pos[2],P[i].GravAccel[0],P[i].GravAccel[1],P[i].GravAccel[2]);
+ }
+ */
+
+
+ P[i].GravAccel[0] = P[i].GravAccel[0] + accx;
+ P[i].GravAccel[1] = P[i].GravAccel[1] + accy;
+ P[i].GravAccel[2] = P[i].GravAccel[2] + accz;
+ }
+ }
+}
+
+/*! compute outer potential
+ *
+ */
+void outer_potential_nfw()
+{
+ int i;
+ FLOAT r,Phi;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ r = sqrt(P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2]);
+ Phi = - All.NFWPotentialCte * (log(1+r/All.Rs) / r);
+
+ /*
+ if (P[i].ID==8)
+ {
+ printf("------> x=%g y=%g z=%g Phi=%g\n",P[i].Pos[0],P[i].Pos[1],P[i].Pos[2],Phi);
+ printf("------> x=%g y=%g z=%g Phi=%g\n",P[i].Pos[0],P[i].Pos[1],P[i].Pos[2],P[i].Potential);
+ }
+ */
+
+
+ /* !!! do not forget do multiply by 2 (Springel choice ?) !!! */
+ P[i].Potential = P[i].Potential + 2*Phi;
+ }
+}
+
+
+#endif
+
+
+#ifdef PLUMMER
+/****************************
+*
+* * * * PLUMMER * * *
+*
+*****************************/
+
+
+/*! \file phase.c
+ * \brief Compute forces and potential from the outer potential
+ *
+*/
+
+
+/*! init outer potential constantes
+ *
+ */
+void init_outer_potential_plummer()
+{
+ All.PlummerPotentialCte = All.G*All.PlummerMass /All.UnitMass_in_g *SOLAR_MASS; /* from Msolar in user units */
+}
+
+
+
+/*! compute forces due to the outer potential
+ *
+ */
+void outer_forces_plummer()
+{
+ int i;
+ FLOAT accx, accy, accz;
+ FLOAT r,dPhi;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+
+ r = sqrt(P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2]);
+ dPhi = - All.PlummerPotentialCte / pow(r*r+All.PlummerSoftenning*All.PlummerSoftenning,1.5)*r;
+
+ accx = dPhi * P[i].Pos[0]/r;
+ accy = dPhi * P[i].Pos[1]/r;
+ accz = dPhi * P[i].Pos[2]/r;
+
+
+ P[i].GravAccel[0] = P[i].GravAccel[0] + accx;
+ P[i].GravAccel[1] = P[i].GravAccel[1] + accy;
+ P[i].GravAccel[2] = P[i].GravAccel[2] + accz;
+ }
+ }
+}
+
+/*! compute outer potential
+ *
+ */
+void outer_potential_plummer()
+{
+ int i;
+ FLOAT r,Phi;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ r = sqrt(P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2]);
+ Phi = - All.PlummerPotentialCte / pow(r*r+All.PlummerSoftenning*All.PlummerSoftenning,0.5);
+
+
+
+ /* !!! do not forget do multiply by 2 (Springel choice ?) !!! */
+ P[i].Potential = P[i].Potential + 2*Phi;
+ }
+}
+
+
+#endif
+
+
+
+
+
+
+#ifdef MIYAMOTONAGAI
+/****************************
+*
+* * * * MIYAMOTONAGAI * * *
+*
+*****************************/
+
+
+/*! \file phase.c
+ * \brief Compute forces and potential from the outer potential
+ *
+*/
+
+
+/*! init outer potential constantes
+ *
+ */
+void init_outer_potential_miyamotonagai()
+{
+ All.MiyamotoNagaiPotentialCte = All.G*All.MiyamotoNagaiMass /All.UnitMass_in_g *SOLAR_MASS; /* from Msolar in user units */
+}
+
+
+
+/*! compute forces due to the outer potential
+ *
+ */
+void outer_forces_miyamotonagai()
+{
+ int i;
+ FLOAT accx, accy, accz;
+ FLOAT r,dPhi;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+
+ r = sqrt(P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2]);
+ dPhi = - All.MiyamotoNagaiPotentialCte / pow(r*r+All.MiyamotoNagaiHr*All.MiyamotoNagaiHr,1.5)*r;
+
+ accx = dPhi * P[i].Pos[0]/r;
+ accy = dPhi * P[i].Pos[1]/r;
+ accz = dPhi * P[i].Pos[2]/r;
+
+
+ P[i].GravAccel[0] = P[i].GravAccel[0] + accx;
+ P[i].GravAccel[1] = P[i].GravAccel[1] + accy;
+ P[i].GravAccel[2] = P[i].GravAccel[2] + accz;
+ }
+ }
+}
+
+/*! compute outer potential
+ *
+ */
+void outer_potential_miyamotonagai()
+{
+ int i;
+ FLOAT r,Phi;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ r = sqrt(P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2]);
+ Phi = - All.MiyamotoNagaiPotentialCte / pow(r*r+All.MiyamotoNagaiHr*All.MiyamotoNagaiHr,0.5);
+
+
+
+ /* !!! do not forget do multiply by 2 (Springel choice ?) !!! */
+ P[i].Potential = P[i].Potential + 2*Phi;
+ }
+}
+
+
+#endif
+
+
+
+
+
+
+
+
+#ifdef PISOTHERM
+/**********************************************
+*
+* * * * PSEUDO ISOTHERM POTENTIAL * * *
+*
+***********************************************/
+
+/*! \file phase.c
+ * \brief Compute forces and potential from the outer potential
+ *
+*/
+
+
+/*! init outer potential constantes
+ *
+ */
+void init_outer_potential_pisotherm()
+{
+
+
+ All.PisothermPotentialCte = 4*PI*All.Rho0*pow(All.Rc,3) *All.G *(1.-All.GasMassFraction);
+ All.Potentialw = gsl_integration_workspace_alloc (1000);
+ All.PotentialF.function = &potential_f;
+
+ /* potential normalisation */
+ /*All.PotentialInf = All.PisothermPotentialCte/All.Rc; viriel Pfen. */
+ All.PotentialInf = 3.3263051716357208; /* in order to have 2Uint = Epot */
+}
+
+
+/*! potential function
+ *
+ */
+double potential_f (double r, void * params)
+ {
+ double f = All.PisothermPotentialCte*(r/All.Rc-atan(r/All.Rc))/(r*r);
+ return f;
+ }
+
+
+/*! potential function
+ *
+ */
+double get_potential(double r)
+ {
+
+ double result, error;
+ gsl_integration_qags (&All.PotentialF, 0, r, 0, 1e-5, 1000, All.Potentialw, &result, &error);
+
+ return result;
+
+ }
+
+/*! compute forces du to the outer potential
+ *
+ */
+void outer_forces_pisotherm()
+{
+ int i;
+ FLOAT accx, accy, accz;
+ FLOAT r,dPhi;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+
+ r = sqrt(P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2]);
+ dPhi = - All.PisothermPotentialCte * ( r/All.Rc - atan(r/All.Rc) ) / (r*r);
+
+ accx = dPhi * P[i].Pos[0]/r;
+ accy = dPhi * P[i].Pos[1]/r;
+ accz = dPhi * P[i].Pos[2]/r;
+
+
+ P[i].GravAccel[0] = P[i].GravAccel[0] + accx;
+ P[i].GravAccel[1] = P[i].GravAccel[1] + accy;
+ P[i].GravAccel[2] = P[i].GravAccel[2] + accz;
+ }
+ }
+}
+
+/*! compute outer potential
+ *
+ */
+void outer_potential_pisotherm()
+{
+ int i;
+ FLOAT Phi;
+ FLOAT r;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ r = sqrt(P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2]);
+ Phi = get_potential(r)-All.PotentialInf;
+
+ /* !!! do not forget do multiply by 2 (Springel choice ?) !!! */
+ P[i].Potential = P[i].Potential + 2*Phi;
+ }
+}
+
+
+#endif
+
+
+
+#ifdef CORIOLIS
+/****************************
+*
+* * * * CORIOLIS * * *
+*
+*****************************/
+
+
+/*! \file phase.c
+ * \brief Compute forces and potential from the outer potential
+ *
+*/
+
+
+/*! init outer potential constantes
+ *
+ */
+void init_outer_potential_coriolis()
+{
+ set_outer_potential_coriolis();
+}
+
+void set_outer_potential_coriolis()
+{
+
+ double amp;
+ double CoriolisTime = 1000;
+
+ amp = All.Time/CoriolisTime;
+
+ if (amp>1)
+ amp = 1;
+
+
+ All.CoriolisOmegaX = All.CoriolisOmegaX0*amp;
+ All.CoriolisOmegaY = All.CoriolisOmegaY0*amp;
+ All.CoriolisOmegaZ = All.CoriolisOmegaZ0*amp;
+
+ printf("coriolis CoriolisOmegaZ = %g\n",All.CoriolisOmegaZ);
+}
+
+/*! compute forces due to the outer potential
+ *
+ */
+void outer_forces_coriolis()
+{
+ int i;
+ FLOAT accx, accy, accz;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+
+ accx = pow(All.CoriolisOmegaZ,2)*P[i].Pos[0] - All.CoriolisOmegaZ*P[i].Vel[1];
+ accy = pow(All.CoriolisOmegaZ,2)*P[i].Pos[1] + All.CoriolisOmegaZ*P[i].Vel[0];
+ accz = 0;
+
+
+ P[i].GravAccel[0] = P[i].GravAccel[0] + accx;
+ P[i].GravAccel[1] = P[i].GravAccel[1] + accy;
+ P[i].GravAccel[2] = P[i].GravAccel[2] + accz;
+ }
+ }
+}
+
+/*! compute outer potential
+ *
+ */
+void outer_potential_coriolis()
+{
+ int i;
+ FLOAT r,Phi;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ r = sqrt(P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2]);
+ Phi = -0.5*pow(All.CoriolisOmegaZ*r,2);
+
+
+ /* !!! do not forget do multiply by 2 (Springel choice ?) !!! */
+ P[i].Potential = P[i].Potential + 2*Phi;
+ }
+}
+
+
+#endif
+
+
+#endif
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/peano.c b/clusters/user/GEAR/src/peano.c
new file mode 100644
index 0000000..b373d05
--- /dev/null
+++ b/clusters/user/GEAR/src/peano.c
@@ -0,0 +1,579 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+/*! \file peano.c
+ * \brief Routines to compute a Peano-Hilbert order
+ *
+ * This file contains routines to compute Peano-Hilbert keys, and to put the
+ * particle data into the order of these keys, i.e. into the order of a
+ * space-filling fractal curve.
+ */
+
+
+static struct peano_hilbert_data
+{
+ peanokey key;
+ int index;
+}
+ *mp;
+
+static int *Id;
+
+
+/*! This function puts the particles into Peano-Hilbert order by sorting them
+ * according to their keys. The latter half already been computed in the
+ * domain decomposition. Since gas particles need to stay at the beginning of
+ * the particle list, they are sorted as a separate block.
+ */
+void peano_hilbert_order(void)
+{
+ int i;
+
+ if(ThisTask == 0)
+ printf("begin Peano-Hilbert order...\n");
+
+ if(N_gas)
+ {
+ mp = malloc(sizeof(struct peano_hilbert_data) * N_gas);
+ Id = malloc(sizeof(int) * N_gas);
+
+ for(i = 0; i < N_gas; i++)
+ {
+ mp[i].index = i;
+ mp[i].key = Key[i];
+ }
+
+ qsort(mp, N_gas, sizeof(struct peano_hilbert_data), compare_key);
+
+ for(i = 0; i < N_gas; i++)
+ Id[mp[i].index] = i;
+
+ reorder_gas();
+
+ free(Id);
+ free(mp);
+ }
+
+#ifdef STELLAR_PROP
+ if(N_stars>0)
+ {
+ mp = malloc(sizeof(struct peano_hilbert_data) * (N_stars));
+ mp -= (N_gas);
+
+ Id = malloc(sizeof(int) * (N_stars));
+ Id -= (N_gas);
+
+ for(i = N_gas; i < N_gas+N_stars; i++)
+ {
+ mp[i].index = i;
+ mp[i].key = Key[i];
+ }
+
+ qsort(mp + N_gas, N_stars, sizeof(struct peano_hilbert_data), compare_key);
+
+ for(i = N_gas; i < N_gas+N_stars; i++)
+ Id[mp[i].index] = i;
+
+ reorder_stars();
+
+ Id += N_gas;
+ free(Id);
+ mp += N_gas;
+ free(mp);
+ }
+
+ if(NumPart - N_gas - N_stars > 0)
+ {
+ mp = malloc(sizeof(struct peano_hilbert_data) * (NumPart - N_gas - N_stars));
+ mp -= (N_gas+N_stars);
+
+ Id = malloc(sizeof(int) * (NumPart - N_gas - N_stars));
+ Id -= (N_gas+N_stars);
+
+ for(i = N_gas+N_stars; i < NumPart; i++)
+ {
+ mp[i].index = i;
+ mp[i].key = Key[i];
+ }
+
+ qsort(mp + N_gas+N_stars, NumPart - N_gas - N_stars, sizeof(struct peano_hilbert_data), compare_key);
+
+ for(i = N_gas+N_stars; i < NumPart; i++)
+ Id[mp[i].index] = i;
+
+ reorder_particles();
+
+ Id += N_gas+N_stars;
+ free(Id);
+ mp += N_gas+N_stars;
+ free(mp);
+ }
+
+
+ /* now, do StP */
+ if(N_stars>0)
+ {
+ Id = malloc(sizeof(int) * (N_stars));
+
+ for(i = N_gas; i < N_gas+N_stars; i++)
+ {
+ Id[P[i].StPIdx] = i - N_gas;
+ }
+
+ reorder_st();
+ free(Id);
+ }
+
+
+
+#else
+ if(NumPart - N_gas > 0)
+ {
+ mp = malloc(sizeof(struct peano_hilbert_data) * (NumPart - N_gas));
+ mp -= (N_gas);
+
+ Id = malloc(sizeof(int) * (NumPart - N_gas));
+ Id -= (N_gas);
+
+ for(i = N_gas; i < NumPart; i++)
+ {
+ mp[i].index = i;
+ mp[i].key = Key[i];
+ }
+
+ qsort(mp + N_gas, NumPart - N_gas, sizeof(struct peano_hilbert_data), compare_key);
+
+ for(i = N_gas; i < NumPart; i++)
+ Id[mp[i].index] = i;
+
+ reorder_particles();
+
+ Id += N_gas;
+ free(Id);
+ mp += N_gas;
+ free(mp);
+ }
+#endif
+
+
+#ifdef CHECK_ID_CORRESPONDENCE
+
+ if (ThisTask==0)
+ printf("Check id correspondence after peano-hilbert order...\n");
+
+ for(i = N_gas; i < N_gas+N_stars; i++)
+ {
+
+ //printf("-> i=%d ID=%d P[i].StPIdx=%d StP[P[i].StPIdx].PIdx=%d\n",i,P[i].ID,P[i].StPIdx,StP[P[i].StPIdx].PIdx);
+
+ if(P[i].ID != StP[i-N_gas].ID)
+ {
+ printf("\nP/StP ID correspondance error\n");
+ printf("(%d) (in peano-hilbert) N_stars=%d N_gas=%d i=%d id=%d P[i].StPIdx=%d StP[P[i].StPIdx].PIdx=%d StP[P[i].StPIdx].ID=%d\n\n",ThisTask,N_stars,N_gas,i,P[i].ID,P[i].StPIdx,StP[P[i].StPIdx].PIdx,StP[P[i].StPIdx].ID);
+ endrun(1212001);
+ }
+
+
+ if( StP[P[i].StPIdx].PIdx != i )
+ {
+ printf("\nP/StP correspondance error\n");
+ printf("(%d) (in peano-hilbert) N_stars=%d N_gas=%d i=%d id=%d P[i].StPIdx=%d StP[P[i].StPIdx].PIdx=%d\n\n",ThisTask,N_stars,N_gas,i,P[i].ID,P[i].StPIdx,StP[P[i].StPIdx].PIdx);
+ endrun(1212001);
+ }
+
+
+ if(StP[P[i].StPIdx].ID != P[i].ID)
+ {
+ printf("\nP/StP correspondance error\n");
+ printf("(%d) (in peano-hilbert) N_gas=%d N_stars=%d i=%d Type=%d P.Id=%d P[i].StPIdx=%d StP[P[i].StPIdx].ID=%d \n\n",ThisTask,N_gas,N_stars,i,P[i].Type,P[i].ID, P[i].StPIdx, StP[P[i].StPIdx].ID);
+ endrun(1212002);
+ }
+ }
+
+ if (ThisTask==0)
+ printf("Check id correspondence after peano-hilbert order...\n");
+
+#endif
+
+
+
+ if(ThisTask == 0)
+ printf("Peano-Hilbert done.\n");
+}
+
+
+/*! This function is a comparison kernel for sorting the Peano-Hilbert keys.
+ */
+int compare_key(const void *a, const void *b)
+{
+ if(((struct peano_hilbert_data *) a)->key < (((struct peano_hilbert_data *) b)->key))
+ return -1;
+
+ if(((struct peano_hilbert_data *) a)->key > (((struct peano_hilbert_data *) b)->key))
+ return +1;
+
+ return 0;
+}
+
+
+/*! This function brings the gas particles into the same order as the sorted
+ * keys. (The sort is first done only on the keys themselves and done
+ * directly on the gas particles in order to reduce the amount of data that
+ * needs to be moved in memory. Only once the order is established, the gas
+ * particles are rearranged, such that each particle has to be moved at most
+ * once.)
+ */
+void reorder_gas(void)
+{
+ int i;
+ struct particle_data Psave, Psource;
+ struct sph_particle_data SphPsave, SphPsource;
+
+ int idsource, idsave, dest;
+
+ for(i = 0; i < N_gas; i++)
+ {
+ if(Id[i] != i)
+ {
+ Psource = P[i];
+ SphPsource = SphP[i];
+
+ idsource = Id[i];
+ dest = Id[i];
+
+ do
+ {
+ Psave = P[dest];
+ SphPsave = SphP[dest];
+ idsave = Id[dest];
+
+ P[dest] = Psource;
+ SphP[dest] = SphPsource;
+ Id[dest] = idsource;
+
+ if(dest == i)
+ break;
+
+ Psource = Psave;
+ SphPsource = SphPsave;
+ idsource = idsave;
+
+ dest = idsource;
+ }
+ while(1);
+ }
+ }
+}
+
+#ifdef STELLAR_PROP
+/*! This function brings the stars into the same order as
+ * the sorted keys. (The sort is first done only on the keys themselves and
+ * done directly on the particles in order to reduce the amount of data that
+ * needs to be moved in memory. Only once the order is established, the
+ * particles are rearranged, such that each particle has to be moved at most
+ * once.)
+ */
+void reorder_stars(void)
+{
+ int i;
+ struct particle_data Psave, Psource;
+ int idsource, idsave, dest;
+
+ for(i = N_gas; i < N_gas+N_stars; i++)
+ {
+ if(Id[i] != i)
+ {
+ Psource = P[i];
+ idsource = Id[i];
+
+ dest = Id[i];
+
+ do
+ {
+ Psave = P[dest];
+ idsave = Id[dest];
+
+ P[dest] = Psource;
+ Id[dest] = idsource;
+
+ /* restore the link with Stp */
+ StP[ P[dest].StPIdx ].PIdx = dest;
+
+ if(dest == i)
+ break;
+
+ Psource = Psave;
+ idsource = idsave;
+
+ dest = idsource;
+ }
+ while(1);
+ }
+ }
+}
+
+
+void reorder_st(void)
+{
+ int i;
+ struct st_particle_data StPsave, StPsource;
+ int idsource, idsave, dest;
+
+
+ for(i = 0; i < N_stars; i++)
+ {
+ if(Id[i] != i)
+ {
+ StPsource = StP[i];
+ idsource = Id[i];
+
+ dest = Id[i];
+
+ do
+ {
+ StPsave = StP[dest];
+ idsave = Id[dest];
+
+ StP[dest] = StPsource;
+ Id[dest] = idsource;
+
+ /* restore the link with P */
+ P[ StP[dest].PIdx ].StPIdx = dest;
+
+ if(dest == i)
+ break;
+
+ StPsource = StPsave;
+ idsource = idsave;
+
+ dest = idsource;
+ }
+ while(1);
+ }
+ }
+
+
+
+}
+#endif
+
+
+/*! This function brings the collisionless particles into the same order as
+ * the sorted keys. (The sort is first done only on the keys themselves and
+ * done directly on the particles in order to reduce the amount of data that
+ * needs to be moved in memory. Only once the order is established, the
+ * particles are rearranged, such that each particle has to be moved at most
+ * once.)
+ */
+void reorder_particles(void)
+{
+ int i;
+ struct particle_data Psave, Psource;
+ int idsource, idsave, dest;
+
+#ifdef STELLAR_PROP
+ for(i = N_gas+N_stars; i < NumPart; i++)
+#else
+ for(i = N_gas; i < NumPart; i++)
+#endif
+ {
+ if(Id[i] != i)
+ {
+ Psource = P[i];
+ idsource = Id[i];
+
+ dest = Id[i];
+
+ do
+ {
+ Psave = P[dest];
+ idsave = Id[dest];
+
+ P[dest] = Psource;
+ Id[dest] = idsource;
+
+ if(dest == i)
+ break;
+
+ Psource = Psave;
+ idsource = idsave;
+
+ dest = idsource;
+ }
+ while(1);
+ }
+ }
+}
+
+
+
+
+
+
+static int quadrants[24][2][2][2] = {
+ /* rotx=0, roty=0-3 */
+ {{{0, 7}, {1, 6}}, {{3, 4}, {2, 5}}},
+ {{{7, 4}, {6, 5}}, {{0, 3}, {1, 2}}},
+ {{{4, 3}, {5, 2}}, {{7, 0}, {6, 1}}},
+ {{{3, 0}, {2, 1}}, {{4, 7}, {5, 6}}},
+ /* rotx=1, roty=0-3 */
+ {{{1, 0}, {6, 7}}, {{2, 3}, {5, 4}}},
+ {{{0, 3}, {7, 4}}, {{1, 2}, {6, 5}}},
+ {{{3, 2}, {4, 5}}, {{0, 1}, {7, 6}}},
+ {{{2, 1}, {5, 6}}, {{3, 0}, {4, 7}}},
+ /* rotx=2, roty=0-3 */
+ {{{6, 1}, {7, 0}}, {{5, 2}, {4, 3}}},
+ {{{1, 2}, {0, 3}}, {{6, 5}, {7, 4}}},
+ {{{2, 5}, {3, 4}}, {{1, 6}, {0, 7}}},
+ {{{5, 6}, {4, 7}}, {{2, 1}, {3, 0}}},
+ /* rotx=3, roty=0-3 */
+ {{{7, 6}, {0, 1}}, {{4, 5}, {3, 2}}},
+ {{{6, 5}, {1, 2}}, {{7, 4}, {0, 3}}},
+ {{{5, 4}, {2, 3}}, {{6, 7}, {1, 0}}},
+ {{{4, 7}, {3, 0}}, {{5, 6}, {2, 1}}},
+ /* rotx=4, roty=0-3 */
+ {{{6, 7}, {5, 4}}, {{1, 0}, {2, 3}}},
+ {{{7, 0}, {4, 3}}, {{6, 1}, {5, 2}}},
+ {{{0, 1}, {3, 2}}, {{7, 6}, {4, 5}}},
+ {{{1, 6}, {2, 5}}, {{0, 7}, {3, 4}}},
+ /* rotx=5, roty=0-3 */
+ {{{2, 3}, {1, 0}}, {{5, 4}, {6, 7}}},
+ {{{3, 4}, {0, 7}}, {{2, 5}, {1, 6}}},
+ {{{4, 5}, {7, 6}}, {{3, 2}, {0, 1}}},
+ {{{5, 2}, {6, 1}}, {{4, 3}, {7, 0}}}
+};
+
+
+static int rotxmap_table[24] = { 4, 5, 6, 7, 8, 9, 10, 11,
+ 12, 13, 14, 15, 0, 1, 2, 3, 17, 18, 19, 16, 23, 20, 21, 22
+};
+
+static int rotymap_table[24] = { 1, 2, 3, 0, 16, 17, 18, 19,
+ 11, 8, 9, 10, 22, 23, 20, 21, 14, 15, 12, 13, 4, 5, 6, 7
+};
+
+static int rotx_table[8] = { 3, 0, 0, 2, 2, 0, 0, 1 };
+static int roty_table[8] = { 0, 1, 1, 2, 2, 3, 3, 0 };
+
+static int sense_table[8] = { -1, -1, -1, +1, +1, -1, -1, -1 };
+
+static int flag_quadrants_inverse = 1;
+static char quadrants_inverse_x[24][8];
+static char quadrants_inverse_y[24][8];
+static char quadrants_inverse_z[24][8];
+
+
+/*! This function computes a Peano-Hilbert key for an integer triplet (x,y,z),
+ * with x,y,z in the range between 0 and 2^bits-1.
+ */
+peanokey peano_hilbert_key(int x, int y, int z, int bits)
+{
+ int i, quad, bitx, bity, bitz;
+ int mask, rotation, rotx, roty, sense;
+ peanokey key;
+
+
+ mask = 1 << (bits - 1);
+ key = 0;
+ rotation = 0;
+ sense = 1;
+
+
+ for(i = 0; i < bits; i++, mask >>= 1)
+ {
+ bitx = (x & mask) ? 1 : 0;
+ bity = (y & mask) ? 1 : 0;
+ bitz = (z & mask) ? 1 : 0;
+
+ quad = quadrants[rotation][bitx][bity][bitz];
+
+ key <<= 3;
+ key += (sense == 1) ? (quad) : (7 - quad);
+
+ rotx = rotx_table[quad];
+ roty = roty_table[quad];
+ sense *= sense_table[quad];
+
+ while(rotx > 0)
+ {
+ rotation = rotxmap_table[rotation];
+ rotx--;
+ }
+
+ while(roty > 0)
+ {
+ rotation = rotymap_table[rotation];
+ roty--;
+ }
+ }
+
+ return key;
+}
+
+
+/*! This function computes for a given Peano-Hilbert key, the inverse,
+ * i.e. the integer triplet (x,y,z) with a Peano-Hilbert key equal to the
+ * input key. (This functionality is actually not needed in the present
+ * code.)
+ */
+void peano_hilbert_key_inverse(peanokey key, int bits, int *x, int *y, int *z)
+{
+ int i, keypart, bitx, bity, bitz, mask, quad, rotation, shift;
+ char sense, rotx, roty;
+
+ if(flag_quadrants_inverse)
+ {
+ flag_quadrants_inverse = 0;
+ for(rotation = 0; rotation < 24; rotation++)
+ for(bitx = 0; bitx < 2; bitx++)
+ for(bity = 0; bity < 2; bity++)
+ for(bitz = 0; bitz < 2; bitz++)
+ {
+ quad = quadrants[rotation][bitx][bity][bitz];
+ quadrants_inverse_x[rotation][quad] = bitx;
+ quadrants_inverse_y[rotation][quad] = bity;
+ quadrants_inverse_z[rotation][quad] = bitz;
+ }
+ }
+
+ shift = 3 * (bits - 1);
+ mask = 7 << shift;
+
+ rotation = 0;
+ sense = 1;
+
+ *x = *y = *z = 0;
+
+ for(i = 0; i < bits; i++, mask >>= 3, shift -= 3)
+ {
+ keypart = (key & mask) >> shift;
+
+ quad = (sense == 1) ? (keypart) : (7 - keypart);
+
+ *x = (*x << 1) + quadrants_inverse_x[rotation][quad];
+ *y = (*y << 1) + quadrants_inverse_y[rotation][quad];
+ *z = (*z << 1) + quadrants_inverse_z[rotation][quad];
+
+ rotx = rotx_table[quad];
+ roty = roty_table[quad];
+ sense *= sense_table[quad];
+
+ while(rotx > 0)
+ {
+ rotation = rotxmap_table[rotation];
+ rotx--;
+ }
+
+ while(roty > 0)
+ {
+ rotation = rotymap_table[rotation];
+ roty--;
+ }
+ }
+}
diff --git a/clusters/user/GEAR/src/phase.c b/clusters/user/GEAR/src/phase.c
new file mode 100644
index 0000000..d497462
--- /dev/null
+++ b/clusters/user/GEAR/src/phase.c
@@ -0,0 +1,357 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_spline.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+#ifdef MULTIPHASE
+
+
+/*! \file phase.c
+ * \brief Compute phase mixing
+ *
+*/
+
+/*! compute phase mixing
+ *
+ */
+void update_phase()
+{
+ int i;
+ double a3,hubble_a;
+#ifdef PHASE_MIXING
+ FLOAT EgySpec=0;
+#endif
+
+ double dt;
+ int Tis,Tic;
+
+#ifdef COLDGAS_CYCLE
+ double Pwc,Pcw;
+ double flux_in_cgs,X,tau;
+#endif
+
+ double Pcol,ColTime;
+ double DensityNorm;
+
+ int *numlist;
+
+
+ N_sph = 0;
+ N_sticky = 0;
+ N_stickyflaged = 0;
+ N_dark = 0;
+ NumColPotLocal = 0;
+
+
+ if(All.ComovingIntegrationOn)
+ {
+ a3 = All.Time * All.Time * All.Time;
+ hubble_a = All.Omega0 / (All.Time * All.Time * All.Time)
+ + (1 - All.Omega0 - All.OmegaLambda) / (All.Time * All.Time) + All.OmegaLambda;
+
+ hubble_a = All.Hubble * sqrt(hubble_a);
+
+ }
+ else
+ {
+ a3 = 1;
+ hubble_a = 1;
+ }
+
+
+
+ for(i = 0; i < N_gas; i++)
+ {
+
+ //if(P[i].Ti_endstep == All.Ti_Current) /* if the particle is active */
+ if(P[i].Type == 0)
+ {
+
+
+ SphP[i].StickyFlag = 0;
+
+
+#ifdef PHASE_MIXING
+
+
+
+#ifdef FEEDBACK
+ if(SphP[i].EnergySN==0)
+#endif
+ {
+
+ switch (SphP[i].Phase)
+ {
+ case GAS_SPH:
+ /* compute temperature from entropy */
+ EgySpec = 1./GAMMA_MINUS1 * pow(SphP[i].Density / a3,GAMMA_MINUS1)* SphP[i].Entropy;
+
+ if (EgySpec < All.CriticalEgySpec) /* to sticky phase */
+ {
+ SphP[i].Phase = GAS_STICKY;
+ SphP[i].StickyFlag = 0;
+ /* disable :Mon Feb 21 16:47:28 CET 2011 */ //SphP[i].StickyTime = All.Time; */ /* may be elligible for collision */
+ SphP[i].Entropy = EgySpec;
+ }
+
+ break;
+
+ case GAS_STICKY:
+ /* compute temperature from specific energy */
+ EgySpec = SphP[i].Entropy;
+
+ if (EgySpec >= All.CriticalEgySpec) /* to sph phase */
+ {
+ SphP[i].Phase = GAS_SPH;
+ SphP[i].Entropy = GAMMA_MINUS1 * EgySpec / pow(SphP[i].Density / a3, GAMMA_MINUS1);
+ }
+
+ break;
+ }
+ }
+
+
+#ifdef COLDGAS_CYCLE
+
+ /*
+
+ Here, we do nothing during the first step, because the UV flux is unknown
+
+ */
+
+
+ if (((SphP[i].Phase==GAS_STICKY)||(SphP[i].Phase==GAS_DARK))&&All.NumCurrentTiStep>0)
+ {
+ /* cold/warm gas cycle */
+
+ /* compute dt */
+ dt = (All.Ti_Current - P[i].Ti_begstep) * All.Timebase_interval / hubble_a;
+
+ X = 0.;
+
+#ifdef STELLAR_FLUX
+ /* compute stellar flux */
+ flux_in_cgs = SphP[i].EnergyFlux* All.UnitEnergy_in_cgs/All.UnitTime_in_s/pow(All.UnitLength_in_cm, 2);
+ X = X + flux_in_cgs/C / All.HeatingPeSolarEnergyDensity;
+#endif
+
+#ifdef EXTERNAL_FLUX
+ /* compute outer flux */
+ X = X + All.HeatingExternalFLuxEnergyDensity/All.HeatingPeSolarEnergyDensity ;
+#endif
+
+
+
+ if (X>0)
+ {
+ /* warm gas */
+
+ tau = pow(X,+All.ColdGasCycleTransitionParameter) * All.ColdGasCycleTransitionTime;
+ Pwc = 1.0-exp(-dt/tau);
+
+ /* cold gas */
+ tau = pow(X,-All.ColdGasCycleTransitionParameter) * All.ColdGasCycleTransitionTime;
+ Pcw = 1.0-exp(-dt/tau);
+
+ }
+ else
+ {
+ Pwc = 1.0;
+ Pcw = 0.0;
+ }
+
+
+ /* compute transition */
+ switch(SphP[i].Phase)
+ {
+ case GAS_STICKY:
+ if (get_random_number(P[i].ID) < Pwc)
+ {
+ SphP[i].Phase = GAS_DARK;
+ }
+ break;
+
+ case GAS_DARK:
+ if (get_random_number(P[i].ID) < Pcw)
+ {
+ SphP[i].Phase = GAS_STICKY;
+ SphP[i].StickyFlag = 0;
+ /* disable :Mon Feb 21 16:47:28 CET 2011 */ //SphP[i].StickyTime = All.Time; /* may be elligible for collision */
+ }
+ break;
+
+ }
+
+ }
+
+#endif
+
+
+#endif
+
+
+
+
+
+ /* determine if a sticky particle may collide or not */
+
+
+ if(SphP[i].Phase==GAS_STICKY)
+ {
+
+
+ if (All.ComovingIntegrationOn)
+ {
+ Tis = log(SphP[i].StickyTime/All.TimeBegin) / All.Timebase_interval;
+ Tic = All.Ti_Current;
+ dt = get_cosmictime_difference(Tis,Tic);
+ }
+ else
+ {
+ dt = All.Time - SphP[i].StickyTime;
+ }
+
+ if(dt >= All.StickyIdleTime)
+ SphP[i].StickyFlag = 1;
+
+
+
+
+ // /* disable :Mon Feb 21 16:47:28 CET 2011 */ //if(SphP[i].StickyTime <= All.Time) /* may collide */
+ //{
+ ///* new implementation */
+ //SphP[i].StickyFlag = 1;
+ //
+ //
+ ///* this was the old implementation */
+ //
+ //dt = (All.Ti_Current - P[i].Ti_begstep) * All.Timebase_interval / hubble_a;
+ //
+ // /* because mean free path depends on density */
+ //if (All.StickyDensity>0)
+ // {
+ // //ColTime = All.StickyTime * pow(All.StickyDensity/SphP[i].Density,All.StickyDensityPower);
+ // DensityNorm = SphP[i].Density/All.StickyDensity;
+ // ColTime = All.StickyTime / (DensityNorm * pow( (1+pow(DensityNorm/3,2)) ,1/2.));
+ // if (DensityNorm > 10)
+ // {
+ // ColTime = ColTime*1e10; /* cut off */
+ // }
+ // }
+ //else
+ // ColTime = All.StickyTime;
+ //
+ //
+ //Pcol = 1.0-exp(-dt/ColTime);
+ //if (get_random_number(P[i].ID) < Pcol)
+ // {
+ // SphP[i].StickyFlag = 1; /* the particle may collide */
+ // SphP[i].StickyTime = All.Time + All.StickyIdleTime;
+ // NumColPotLocal++;
+ // }
+ //}
+ }
+
+
+
+
+
+ } /* end of active particles */ /* P[i].Type==0 */
+
+ /* count number of each type */
+ if(P[i].Type == 0)
+ {
+ switch (SphP[i].Phase)
+ {
+ case GAS_SPH:
+ N_sph++;
+ break;
+
+ case GAS_STICKY:
+ N_sticky++;
+ if (SphP[i].StickyFlag == 1)
+ N_stickyflaged++;
+ break;
+
+ case GAS_DARK:
+ N_dark++;
+ break;
+ }
+ }
+
+
+
+
+ } /* end of main loop */
+
+ /* share results */
+ //MPI_Allreduce(&N_sph, &All.TotN_sph, 1, MPI_LONG_LONG, MPI_SUM, MPI_COMM_WORLD);
+ //MPI_Allreduce(&N_sticky, &All.TotN_sticky, 1, MPI_LONG_LONG, MPI_SUM, MPI_COMM_WORLD);
+ //MPI_Allreduce(&N_stickyflaged, &All.TotN_stickyflaged, 1, MPI_LONG_LONG, MPI_SUM, MPI_COMM_WORLD);
+ //MPI_Allreduce(&N_dark, &All.TotN_dark, 1, MPI_LONG_LONG, MPI_SUM, MPI_COMM_WORLD);
+
+
+ numlist = malloc(NTask * sizeof(int) * NTask);
+
+ MPI_Allgather(&N_sph, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotN_sph = 0; i < NTask; i++)
+ All.TotN_sph += numlist[i];
+
+ MPI_Allgather(&N_sticky, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotN_sticky = 0; i < NTask; i++)
+ All.TotN_sticky += numlist[i];
+
+ MPI_Allgather(&N_stickyflaged, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotN_stickyflaged = 0; i < NTask; i++)
+ All.TotN_stickyflaged += numlist[i];
+
+ MPI_Allgather(&N_dark, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotN_dark = 0; i < NTask; i++)
+ All.TotN_dark += numlist[i];
+
+ free(numlist);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if (ThisTask==0)
+ {
+ fprintf(FdPhase, "Step %d, Time: %g GasPart: %d SphPart: %d StickyPart: %d DarkPart: %d StickyPartFlaged: %d\n", All.NumCurrentTiStep, All.Time, (int)All.TotN_gas, (int)All.TotN_sph, (int)All.TotN_sticky,(int)All.TotN_dark, (int)All.TotN_stickyflaged);
+ fflush(FdPhase);
+ }
+
+
+}
+
+
+
+
+
+#endif
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/pm_nonperiodic.c b/clusters/user/GEAR/src/pm_nonperiodic.c
new file mode 100644
index 0000000..9f0543a
--- /dev/null
+++ b/clusters/user/GEAR/src/pm_nonperiodic.c
@@ -0,0 +1,1445 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+
+/*! \file pm_nonperiodic.c
+ * \brief code for non-periodic FFT to compute long-range PM force
+ */
+
+
+#ifdef PMGRID
+#if !defined (PERIODIC) || defined (PLACEHIGHRESREGION)
+
+#ifdef NOTYPEPREFIX_FFTW
+#include <rfftw_mpi.h>
+#else
+#ifdef DOUBLEPRECISION_FFTW
+#include <drfftw_mpi.h> /* double precision FFTW */
+#else
+#include <srfftw_mpi.h>
+#endif
+#endif
+
+#include "allvars.h"
+#include "proto.h"
+
+#define GRID (2*PMGRID)
+#define GRID2 (2*(GRID/2 + 1))
+
+
+
+static rfftwnd_mpi_plan fft_forward_plan, fft_inverse_plan;
+
+static int slab_to_task[GRID];
+static int *slabs_per_task;
+static int *first_slab_of_task;
+
+static int *meshmin_list, *meshmax_list;
+
+static int slabstart_x, nslab_x, slabstart_y, nslab_y;
+
+static int fftsize, maxfftsize;
+
+static fftw_real *kernel[2], *rhogrid, *forcegrid, *workspace;
+static fftw_complex *fft_of_kernel[2], *fft_of_rhogrid;
+
+/*! This function determines the particle extension of all particles, and for
+ * those types selected with PLACEHIGHRESREGION if this is used, and then
+ * determines the boundaries of the non-periodic FFT-mesh that can be placed
+ * on this region. Note that a sufficient buffer region at the rim of the
+ * occupied part of the mesh needs to be reserved in order to allow a correct
+ * finite differencing using a 4-point formula. In addition, to allow
+ * non-periodic boundaries, the actual FFT mesh used is twice as large in
+ * each dimension compared with PMGRID.
+ */
+void pm_init_regionsize(void)
+{
+ double meshinner[2], xmin[2][3], xmax[2][3];
+ int i, j, t;
+
+ /* find enclosing rectangle */
+
+ for(j = 0; j < 3; j++)
+ {
+ xmin[0][j] = xmin[1][j] = 1.0e36;
+ xmax[0][j] = xmax[1][j] = -1.0e36;
+ }
+
+ for(i = 0; i < NumPart; i++)
+ for(j = 0; j < 3; j++)
+ {
+ t = 0;
+#ifdef PLACEHIGHRESREGION
+ if(((1 << P[i].Type) & (PLACEHIGHRESREGION)))
+ t = 1;
+#endif
+ if(P[i].Pos[j] > xmax[t][j])
+ xmax[t][j] = P[i].Pos[j];
+ if(P[i].Pos[j] < xmin[t][j])
+ xmin[t][j] = P[i].Pos[j];
+ }
+
+ MPI_Allreduce(xmin, All.Xmintot, 6, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD);
+ MPI_Allreduce(xmax, All.Xmaxtot, 6, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD);
+
+ for(j = 0; j < 2; j++)
+ {
+ All.TotalMeshSize[j] = All.Xmaxtot[j][0] - All.Xmintot[j][0];
+ All.TotalMeshSize[j] = dmax(All.TotalMeshSize[j], All.Xmaxtot[j][1] - All.Xmintot[j][1]);
+ All.TotalMeshSize[j] = dmax(All.TotalMeshSize[j], All.Xmaxtot[j][2] - All.Xmintot[j][2]);
+#ifdef ENLARGEREGION
+ All.TotalMeshSize[j] *= ENLARGEREGION;
+#endif
+
+ /* symmetrize the box onto the center */
+ for(i = 0; i < 3; i++)
+ {
+ All.Xmintot[j][i] = (All.Xmintot[j][i] + All.Xmaxtot[j][i]) / 2 - All.TotalMeshSize[j] / 2;
+ All.Xmaxtot[j][i] = All.Xmintot[j][i] + All.TotalMeshSize[j];
+ }
+ }
+
+ /* this will produce enough room for zero-padding and buffer region to
+ allow finite differencing of the potential */
+
+ for(j = 0; j < 2; j++)
+ {
+ meshinner[j] = All.TotalMeshSize[j];
+ All.TotalMeshSize[j] *= 2.001 * (GRID) / ((double) (GRID - 2 - 8));
+ }
+
+ /* move lower left corner by two cells to allow finite differencing of the potential by a 4-point function */
+
+ for(j = 0; j < 2; j++)
+ for(i = 0; i < 3; i++)
+ {
+ All.Corner[j][i] = All.Xmintot[j][i] - 2.0005 * All.TotalMeshSize[j] / GRID;
+ All.UpperCorner[j][i] = All.Corner[j][i] + (GRID / 2 - 1) * (All.TotalMeshSize[j] / GRID);
+ }
+
+
+#ifndef PERIODIC
+ All.Asmth[0] = ASMTH * All.TotalMeshSize[0] / GRID;
+ All.Rcut[0] = RCUT * All.Asmth[0];
+#endif
+
+#ifdef PLACEHIGHRESREGION
+ All.Asmth[1] = ASMTH * All.TotalMeshSize[1] / GRID;
+ All.Rcut[1] = RCUT * All.Asmth[1];
+#endif
+
+#ifdef PLACEHIGHRESREGION
+ if(2 * All.TotalMeshSize[1] / GRID < All.Rcut[0])
+ {
+ All.TotalMeshSize[1] = 2 * (meshinner[1] + 2 * All.Rcut[0]) * (GRID) / ((double) (GRID - 2));
+
+ for(i = 0; i < 3; i++)
+ {
+ All.Corner[1][i] = All.Xmintot[1][i] - 1.0001 * All.Rcut[0];
+ All.UpperCorner[1][i] = All.Corner[1][i] + (GRID / 2 - 1) * (All.TotalMeshSize[1] / GRID);
+ }
+
+ if(2 * All.TotalMeshSize[1] / GRID > All.Rcut[0])
+ {
+ All.TotalMeshSize[1] = 2 * (meshinner[1] + 2 * All.Rcut[0]) * (GRID) / ((double) (GRID - 10));
+
+ for(i = 0; i < 3; i++)
+ {
+ All.Corner[1][i] = All.Xmintot[1][i] - 1.0001 * (All.Rcut[0] + 2 * All.TotalMeshSize[j] / GRID);
+ All.UpperCorner[1][i] = All.Corner[1][i] + (GRID / 2 - 1) * (All.TotalMeshSize[1] / GRID);
+ }
+ }
+
+ All.Asmth[1] = ASMTH * All.TotalMeshSize[1] / GRID;
+ All.Rcut[1] = RCUT * All.Asmth[1];
+ }
+#endif
+
+ if(ThisTask == 0)
+ {
+#ifndef PERIODIC
+ printf("\nAllowed region for isolated PM mesh (coarse):\n");
+ printf("(%g|%g|%g) -> (%g|%g|%g) ext=%g totmeshsize=%g meshsize=%g\n\n",
+ All.Xmintot[0][0], All.Xmintot[0][1], All.Xmintot[0][2],
+ All.Xmaxtot[0][0], All.Xmaxtot[0][1], All.Xmaxtot[0][2], meshinner[0], All.TotalMeshSize[0],
+ All.TotalMeshSize[0] / GRID);
+#endif
+#ifdef PLACEHIGHRESREGION
+ printf("\nAllowed region for isolated PM mesh (high-res):\n");
+ printf("(%g|%g|%g) -> (%g|%g|%g) ext=%g totmeshsize=%g meshsize=%g\n\n",
+ All.Xmintot[1][0], All.Xmintot[1][1], All.Xmintot[1][2],
+ All.Xmaxtot[1][0], All.Xmaxtot[1][1], All.Xmaxtot[1][2],
+ meshinner[1], All.TotalMeshSize[1], All.TotalMeshSize[1] / GRID);
+#endif
+ }
+
+}
+
+/*! Initialization of the non-periodic PM routines. The plan-files for FFTW
+ * are created. Finally, the routine to set-up the non-periodic Greens
+ * function is called.
+ */
+void pm_init_nonperiodic(void)
+{
+ int i, slab_to_task_local[GRID];
+ double bytes_tot = 0;
+ size_t bytes;
+
+ /* Set up the FFTW plan files. */
+
+ fft_forward_plan = rfftw3d_mpi_create_plan(MPI_COMM_WORLD, GRID, GRID, GRID,
+ FFTW_REAL_TO_COMPLEX, FFTW_ESTIMATE | FFTW_IN_PLACE);
+ fft_inverse_plan = rfftw3d_mpi_create_plan(MPI_COMM_WORLD, GRID, GRID, GRID,
+ FFTW_COMPLEX_TO_REAL, FFTW_ESTIMATE | FFTW_IN_PLACE);
+
+ /* Workspace out the ranges on each processor. */
+
+ rfftwnd_mpi_local_sizes(fft_forward_plan, &nslab_x, &slabstart_x, &nslab_y, &slabstart_y, &fftsize);
+
+
+ for(i = 0; i < GRID; i++)
+ slab_to_task_local[i] = 0;
+
+ for(i = 0; i < nslab_x; i++)
+ slab_to_task_local[slabstart_x + i] = ThisTask;
+
+ MPI_Allreduce(slab_to_task_local, slab_to_task, GRID, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+
+ slabs_per_task = malloc(NTask * sizeof(int));
+ MPI_Allgather(&nslab_x, 1, MPI_INT, slabs_per_task, 1, MPI_INT, MPI_COMM_WORLD);
+
+#ifndef PERIODIC
+ if(ThisTask == 0)
+ {
+ for(i = 0; i < NTask; i++)
+ printf("Task=%d FFT-Slabs=%d\n", i, slabs_per_task[i]);
+ }
+#endif
+
+ first_slab_of_task = malloc(NTask * sizeof(int));
+ MPI_Allgather(&slabstart_x, 1, MPI_INT, first_slab_of_task, 1, MPI_INT, MPI_COMM_WORLD);
+
+ meshmin_list = malloc(3 * NTask * sizeof(int));
+ meshmax_list = malloc(3 * NTask * sizeof(int));
+
+ MPI_Allreduce(&fftsize, &maxfftsize, 1, MPI_INT, MPI_MAX, MPI_COMM_WORLD);
+
+ /* now allocate memory to hold the FFT fields */
+
+#if !defined(PERIODIC)
+ if(!(kernel[0] = (fftw_real *) malloc(bytes = fftsize * sizeof(fftw_real))))
+ {
+ printf("failed to allocate memory for `FFT-kernel[0]' (%g MB).\n", bytes / (1024.0 * 1024.0));
+ endrun(1);
+ }
+ bytes_tot += bytes;
+ fft_of_kernel[0] = (fftw_complex *) kernel[0];
+#endif
+
+#if defined(PLACEHIGHRESREGION)
+ if(!(kernel[1] = (fftw_real *) malloc(bytes = fftsize * sizeof(fftw_real))))
+ {
+ printf("failed to allocate memory for `FFT-kernel[1]' (%g MB).\n", bytes / (1024.0 * 1024.0));
+ endrun(1);
+ }
+ bytes_tot += bytes;
+ fft_of_kernel[1] = (fftw_complex *) kernel[1];
+#endif
+
+ if(ThisTask == 0)
+ printf("\nAllocated %g MByte for FFT kernel(s).\n\n", bytes_tot / (1024.0 * 1024.0));
+
+}
+
+
+/*! This function allocates the workspace needed for the non-periodic FFT
+ * algorithm. Three fields are used, one for the density/potential fields,
+ * one to hold the force field obtained by finite differencing, and finally
+ * an additional workspace which is used both in the parallel FFT itself, and
+ * as a buffer for the communication algorithm.
+ */
+void pm_init_nonperiodic_allocate(int dimprod)
+{
+ static int first_alloc = 1;
+ int dimprodmax;
+ double bytes_tot = 0;
+ size_t bytes;
+
+ MPI_Allreduce(&dimprod, &dimprodmax, 1, MPI_INT, MPI_MAX, MPI_COMM_WORLD);
+
+ if(!(rhogrid = (fftw_real *) malloc(bytes = fftsize * sizeof(fftw_real))))
+ {
+ printf("failed to allocate memory for `FFT-rhogrid' (%g MB).\n", bytes / (1024.0 * 1024.0));
+ endrun(1);
+ }
+ bytes_tot += bytes;
+
+ fft_of_rhogrid = (fftw_complex *) rhogrid;
+
+ if(!(forcegrid = (fftw_real *) malloc(bytes = imax(fftsize, dimprodmax) * sizeof(fftw_real))))
+ {
+ printf("failed to allocate memory for `FFT-forcegrid' (%g MB).\n", bytes / (1024.0 * 1024.0));
+ endrun(1);
+ }
+ bytes_tot += bytes;
+
+ if(!(workspace = (fftw_real *) malloc(bytes = imax(maxfftsize, dimprodmax) * sizeof(fftw_real))))
+ {
+ printf("failed to allocate memory for `FFT-workspace' (%g MB).\n", bytes / (1024.0 * 1024.0));
+ endrun(1);
+ }
+ bytes_tot += bytes;
+
+ if(first_alloc == 1)
+ {
+ first_alloc = 0;
+ if(ThisTask == 0)
+ printf("\nUsing %g MByte for non-periodic FFT computation.\n\n", bytes_tot / (1024.0 * 1024.0));
+ }
+}
+
+
+/*! This function frees the memory allocated for the non-periodic FFT
+ * computation. (With the exception of the Greens function(s), which are kept
+ * statically in memory for the next force computation.)
+ */
+void pm_init_nonperiodic_free(void)
+{
+ /* deallocate memory */
+ free(workspace);
+ free(forcegrid);
+ free(rhogrid);
+}
+
+
+/*! This function sets-up the Greens function for the non-periodic potential
+ * in real space, and then converts it to Fourier space by means of a FFT.
+ */
+void pm_setup_nonperiodic_kernel(void)
+{
+ int i, j, k;
+ double x, y, z, r, u, fac;
+ double kx, ky, kz, k2, fx, fy, fz, ff;
+ int ip;
+
+ /* now set up kernel and its Fourier transform */
+
+ pm_init_nonperiodic_allocate(0);
+
+#if !defined(PERIODIC)
+ for(i = 0; i < fftsize; i++) /* clear local density field */
+ kernel[0][i] = 0;
+
+ for(i = slabstart_x; i < (slabstart_x + nslab_x); i++)
+ for(j = 0; j < GRID; j++)
+ for(k = 0; k < GRID; k++)
+ {
+ x = ((double) i) / GRID;
+ y = ((double) j) / GRID;
+ z = ((double) k) / GRID;
+
+ if(x >= 0.5)
+ x -= 1.0;
+ if(y >= 0.5)
+ y -= 1.0;
+ if(z >= 0.5)
+ z -= 1.0;
+
+ r = sqrt(x * x + y * y + z * z);
+
+ u = 0.5 * r / (((double) ASMTH) / GRID);
+
+ fac = 1 - erfc(u);
+
+ if(r > 0)
+ kernel[0][GRID * GRID2 * (i - slabstart_x) + GRID2 * j + k] = -fac / r;
+ else
+ kernel[0][GRID * GRID2 * (i - slabstart_x) + GRID2 * j + k] =
+ -1 / (sqrt(M_PI) * (((double) ASMTH) / GRID));
+ }
+
+ /* do the forward transform of the kernel */
+
+ rfftwnd_mpi(fft_forward_plan, 1, kernel[0], workspace, FFTW_TRANSPOSED_ORDER);
+#endif
+
+
+#if defined(PLACEHIGHRESREGION)
+ for(i = 0; i < fftsize; i++) /* clear local density field */
+ kernel[1][i] = 0;
+
+ for(i = slabstart_x; i < (slabstart_x + nslab_x); i++)
+ for(j = 0; j < GRID; j++)
+ for(k = 0; k < GRID; k++)
+ {
+ x = ((double) i) / GRID;
+ y = ((double) j) / GRID;
+ z = ((double) k) / GRID;
+
+ if(x >= 0.5)
+ x -= 1.0;
+ if(y >= 0.5)
+ y -= 1.0;
+ if(z >= 0.5)
+ z -= 1.0;
+
+ r = sqrt(x * x + y * y + z * z);
+
+ u = 0.5 * r / (((double) ASMTH) / GRID);
+
+ fac = erfc(u * All.Asmth[1] / All.Asmth[0]) - erfc(u);
+
+ if(r > 0)
+ kernel[1][GRID * GRID2 * (i - slabstart_x) + GRID2 * j + k] = -fac / r;
+ else
+ {
+ fac = 1 - All.Asmth[1] / All.Asmth[0];
+ kernel[1][GRID * GRID2 * (i - slabstart_x) + GRID2 * j + k] =
+ -fac / (sqrt(M_PI) * (((double) ASMTH) / GRID));
+ }
+ }
+
+ /* do the forward transform of the kernel */
+
+ rfftwnd_mpi(fft_forward_plan, 1, kernel[1], workspace, FFTW_TRANSPOSED_ORDER);
+#endif
+
+ /* deconvolve the Greens function twice with the CIC kernel */
+
+ for(y = slabstart_y; y < slabstart_y + nslab_y; y++)
+ for(x = 0; x < GRID; x++)
+ for(z = 0; z < GRID / 2 + 1; z++)
+ {
+ if(x > GRID / 2)
+ kx = x - GRID;
+ else
+ kx = x;
+ if(y > GRID / 2)
+ ky = y - GRID;
+ else
+ ky = y;
+ if(z > GRID / 2)
+ kz = z - GRID;
+ else
+ kz = z;
+
+ k2 = kx * kx + ky * ky + kz * kz;
+
+ if(k2 > 0)
+ {
+ fx = fy = fz = 1;
+ if(kx != 0)
+ {
+ fx = (M_PI * kx) / GRID;
+ fx = sin(fx) / fx;
+ }
+ if(ky != 0)
+ {
+ fy = (M_PI * ky) / GRID;
+ fy = sin(fy) / fy;
+ }
+ if(kz != 0)
+ {
+ fz = (M_PI * kz) / GRID;
+ fz = sin(fz) / fz;
+ }
+ ff = 1 / (fx * fy * fz);
+ ff = ff * ff * ff * ff;
+
+ ip = GRID * (GRID / 2 + 1) * (y - slabstart_y) + (GRID / 2 + 1) * x + z;
+#if !defined(PERIODIC)
+ fft_of_kernel[0][ip].re *= ff;
+ fft_of_kernel[0][ip].im *= ff;
+#endif
+#if defined(PLACEHIGHRESREGION)
+ fft_of_kernel[1][ip].re *= ff;
+ fft_of_kernel[1][ip].im *= ff;
+#endif
+ }
+ }
+ /* end deconvolution */
+
+ pm_init_nonperiodic_free();
+}
+
+
+
+/*! Calculates the long-range non-periodic forces using the PM method. The
+ * potential is Gaussian filtered with Asmth, given in mesh-cell units. The
+ * potential is finite differenced using a 4-point finite differencing
+ * formula to obtain the force fields, which are then interpolated to the
+ * particle positions. We carry out a CIC charge assignment, and compute the
+ * potenial by Fourier transform methods. The CIC kernel is deconvolved.
+ */
+int pmforce_nonperiodic(int grnr)
+{
+ double dx, dy, dz;
+ double fac, to_slab_fac;
+ double re, im, acc_dim;
+ int i, j, slab, level, sendTask, recvTask, flag, flagsum;
+ int x, y, z, xl, yl, zl, xr, yr, zr, xll, yll, zll, xrr, yrr, zrr, ip, dim;
+ int slab_x, slab_y, slab_z;
+ int slab_xx, slab_yy, slab_zz;
+ int meshmin[3], meshmax[3], sendmin, sendmax, recvmin, recvmax;
+ int dimx, dimy, dimz, recv_dimx, recv_dimy, recv_dimz;
+ MPI_Status status;
+
+ if(ThisTask == 0)
+ printf("Starting non-periodic PM calculation (grid=%d).\n", grnr);
+
+ fac = All.G / pow(All.TotalMeshSize[grnr], 4) * pow(All.TotalMeshSize[grnr] / GRID, 3); /* to get potential */
+ fac *= 1 / (2 * All.TotalMeshSize[grnr] / GRID); /* for finite differencing */
+
+ to_slab_fac = GRID / All.TotalMeshSize[grnr];
+
+
+ /* first, establish the extension of the local patch in GRID (for binning) */
+
+ for(j = 0; j < 3; j++)
+ {
+ meshmin[j] = GRID;
+ meshmax[j] = 0;
+ }
+
+ for(i = 0, flag = 0; i < NumPart; i++)
+ {
+#ifdef PLACEHIGHRESREGION
+ if(grnr == 0 || (grnr == 1 && ((1 << P[i].Type) & (PLACEHIGHRESREGION))))
+#endif
+ {
+ for(j = 0; j < 3; j++)
+ {
+ if(P[i].Pos[j] < All.Xmintot[grnr][j] || P[i].Pos[j] > All.Xmaxtot[grnr][j])
+ {
+ if(flag == 0)
+ {
+ printf
+ ("Particle Id=%d on task=%d with coordinates (%g|%g|%g) lies outside PM mesh.\nStopping\n",
+ (int)P[i].ID, ThisTask, P[i].Pos[0], P[i].Pos[1], P[i].Pos[2]);
+ fflush(stdout);
+ }
+ flag++;
+ break;
+ }
+ }
+ }
+
+ if(flag > 0)
+ continue;
+
+ if(P[i].Pos[0] >= All.Corner[grnr][0] && P[i].Pos[0] < All.UpperCorner[grnr][0])
+ if(P[i].Pos[1] >= All.Corner[grnr][1] && P[i].Pos[1] < All.UpperCorner[grnr][1])
+ if(P[i].Pos[2] >= All.Corner[grnr][2] && P[i].Pos[2] < All.UpperCorner[grnr][2])
+ {
+ for(j = 0; j < 3; j++)
+ {
+ slab = to_slab_fac * (P[i].Pos[j] - All.Corner[grnr][j]);
+
+ if(slab < meshmin[j])
+ meshmin[j] = slab;
+
+ if(slab > meshmax[j])
+ meshmax[j] = slab;
+ }
+ }
+ }
+
+
+ MPI_Allreduce(&flag, &flagsum, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+ if(flagsum > 0)
+ {
+ if(ThisTask == 0)
+ {
+ printf("In total %d particles were outside allowed range.\n", flagsum);
+ fflush(stdout);
+ }
+ return 1; /* error - need to return because particle were outside allowed range */
+ }
+
+ MPI_Allgather(meshmin, 3, MPI_INT, meshmin_list, 3, MPI_INT, MPI_COMM_WORLD);
+ MPI_Allgather(meshmax, 3, MPI_INT, meshmax_list, 3, MPI_INT, MPI_COMM_WORLD);
+
+ dimx = meshmax[0] - meshmin[0] + 2;
+ dimy = meshmax[1] - meshmin[1] + 2;
+ dimz = meshmax[2] - meshmin[2] + 2;
+
+
+ force_treefree();
+
+ pm_init_nonperiodic_allocate((dimx + 4) * (dimy + 4) * (dimz + 4));
+
+ for(i = 0; i < dimx * dimy * dimz; i++)
+ workspace[i] = 0;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(P[i].Pos[0] < All.Corner[grnr][0] || P[i].Pos[0] >= All.UpperCorner[grnr][0])
+ continue;
+ if(P[i].Pos[1] < All.Corner[grnr][1] || P[i].Pos[1] >= All.UpperCorner[grnr][1])
+ continue;
+ if(P[i].Pos[2] < All.Corner[grnr][2] || P[i].Pos[2] >= All.UpperCorner[grnr][2])
+ continue;
+
+ slab_x = to_slab_fac * (P[i].Pos[0] - All.Corner[grnr][0]);
+ dx = to_slab_fac * (P[i].Pos[0] - All.Corner[grnr][0]) - slab_x;
+ slab_x -= meshmin[0];
+ slab_xx = slab_x + 1;
+
+ slab_y = to_slab_fac * (P[i].Pos[1] - All.Corner[grnr][1]);
+ dy = to_slab_fac * (P[i].Pos[1] - All.Corner[grnr][1]) - slab_y;
+ slab_y -= meshmin[1];
+ slab_yy = slab_y + 1;
+
+ slab_z = to_slab_fac * (P[i].Pos[2] - All.Corner[grnr][2]);
+ dz = to_slab_fac * (P[i].Pos[2] - All.Corner[grnr][2]) - slab_z;
+ slab_z -= meshmin[2];
+ slab_zz = slab_z + 1;
+
+ workspace[(slab_x * dimy + slab_y) * dimz + slab_z] += P[i].Mass * (1.0 - dx) * (1.0 - dy) * (1.0 - dz);
+ workspace[(slab_x * dimy + slab_yy) * dimz + slab_z] += P[i].Mass * (1.0 - dx) * dy * (1.0 - dz);
+ workspace[(slab_x * dimy + slab_y) * dimz + slab_zz] += P[i].Mass * (1.0 - dx) * (1.0 - dy) * dz;
+ workspace[(slab_x * dimy + slab_yy) * dimz + slab_zz] += P[i].Mass * (1.0 - dx) * dy * dz;
+
+ workspace[(slab_xx * dimy + slab_y) * dimz + slab_z] += P[i].Mass * (dx) * (1.0 - dy) * (1.0 - dz);
+ workspace[(slab_xx * dimy + slab_yy) * dimz + slab_z] += P[i].Mass * (dx) * dy * (1.0 - dz);
+ workspace[(slab_xx * dimy + slab_y) * dimz + slab_zz] += P[i].Mass * (dx) * (1.0 - dy) * dz;
+ workspace[(slab_xx * dimy + slab_yy) * dimz + slab_zz] += P[i].Mass * (dx) * dy * dz;
+ }
+
+
+ for(i = 0; i < fftsize; i++) /* clear local density field */
+ rhogrid[i] = 0;
+
+ for(level = 0; level < (1 << PTask); level++) /* note: for level=0, target is the same task */
+ {
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ level;
+ if(recvTask < NTask)
+ {
+ /* check how much we have to send */
+ sendmin = 2 * GRID;
+ sendmax = -1;
+ for(slab_x = meshmin[0]; slab_x < meshmax[0] + 2; slab_x++)
+ if(slab_to_task[slab_x] == recvTask)
+ {
+ if(slab_x < sendmin)
+ sendmin = slab_x;
+ if(slab_x > sendmax)
+ sendmax = slab_x;
+ }
+ if(sendmax == -1)
+ sendmin = 0;
+
+ /* check how much we have to receive */
+ recvmin = 2 * GRID;
+ recvmax = -1;
+ for(slab_x = meshmin_list[3 * recvTask]; slab_x < meshmax_list[3 * recvTask] + 2; slab_x++)
+ if(slab_to_task[slab_x] == sendTask)
+ {
+ if(slab_x < recvmin)
+ recvmin = slab_x;
+ if(slab_x > recvmax)
+ recvmax = slab_x;
+ }
+ if(recvmax == -1)
+ recvmin = 0;
+
+ if((recvmax - recvmin) >= 0 || (sendmax - sendmin) >= 0) /* ok, we have a contribution to the slab */
+ {
+ recv_dimx = meshmax_list[3 * recvTask + 0] - meshmin_list[3 * recvTask + 0] + 2;
+ recv_dimy = meshmax_list[3 * recvTask + 1] - meshmin_list[3 * recvTask + 1] + 2;
+ recv_dimz = meshmax_list[3 * recvTask + 2] - meshmin_list[3 * recvTask + 2] + 2;
+
+ if(level > 0)
+ {
+ MPI_Sendrecv(workspace + (sendmin - meshmin[0]) * dimy * dimz,
+ (sendmax - sendmin + 1) * dimy * dimz * sizeof(fftw_real), MPI_BYTE, recvTask,
+ TAG_NONPERIOD_A, forcegrid,
+ (recvmax - recvmin + 1) * recv_dimy * recv_dimz * sizeof(fftw_real), MPI_BYTE,
+ recvTask, TAG_NONPERIOD_A, MPI_COMM_WORLD, &status);
+ }
+ else
+ {
+ memcpy(forcegrid, workspace + (sendmin - meshmin[0]) * dimy * dimz,
+ (sendmax - sendmin + 1) * dimy * dimz * sizeof(fftw_real));
+ }
+
+ for(slab_x = recvmin; slab_x <= recvmax; slab_x++)
+ {
+ slab_xx = slab_x - first_slab_of_task[ThisTask];
+
+ if(slab_xx >= 0 && slab_xx < slabs_per_task[ThisTask])
+ {
+ for(slab_y = meshmin_list[3 * recvTask + 1];
+ slab_y <= meshmax_list[3 * recvTask + 1] + 1; slab_y++)
+ {
+ slab_yy = slab_y;
+
+ for(slab_z = meshmin_list[3 * recvTask + 2];
+ slab_z <= meshmax_list[3 * recvTask + 2] + 1; slab_z++)
+ {
+ slab_zz = slab_z;
+
+ rhogrid[GRID * GRID2 * slab_xx + GRID2 * slab_yy + slab_zz] +=
+ forcegrid[((slab_x - recvmin) * recv_dimy +
+ (slab_y - meshmin_list[3 * recvTask + 1])) * recv_dimz +
+ (slab_z - meshmin_list[3 * recvTask + 2])];
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ /* Do the FFT of the density field */
+
+ rfftwnd_mpi(fft_forward_plan, 1, rhogrid, workspace, FFTW_TRANSPOSED_ORDER);
+
+
+ /* multiply with the Fourier transform of the Green's function (kernel) */
+
+ for(y = 0; y < nslab_y; y++)
+ for(x = 0; x < GRID; x++)
+ for(z = 0; z < GRID / 2 + 1; z++)
+ {
+ ip = GRID * (GRID / 2 + 1) * y + (GRID / 2 + 1) * x + z;
+
+ re =
+ fft_of_rhogrid[ip].re * fft_of_kernel[grnr][ip].re -
+ fft_of_rhogrid[ip].im * fft_of_kernel[grnr][ip].im;
+
+ im =
+ fft_of_rhogrid[ip].re * fft_of_kernel[grnr][ip].im +
+ fft_of_rhogrid[ip].im * fft_of_kernel[grnr][ip].re;
+
+ fft_of_rhogrid[ip].re = re;
+ fft_of_rhogrid[ip].im = im;
+ }
+
+ /* get the potential by inverse FFT */
+
+ rfftwnd_mpi(fft_inverse_plan, 1, rhogrid, workspace, FFTW_TRANSPOSED_ORDER);
+
+ /* Now rhogrid holds the potential */
+ /* construct the potential for the local patch */
+
+
+ /* if we have a high-res mesh, establish the extension of the local patch in GRID (for reading out the
+ * forces)
+ */
+
+#ifdef PLACEHIGHRESREGION
+ if(grnr == 1)
+ {
+ for(j = 0; j < 3; j++)
+ {
+ meshmin[j] = GRID;
+ meshmax[j] = 0;
+ }
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(!((1 << P[i].Type) & (PLACEHIGHRESREGION)))
+ continue;
+
+
+ if(P[i].Pos[0] >= All.Corner[grnr][0] && P[i].Pos[0] < All.UpperCorner[grnr][0])
+ if(P[i].Pos[1] >= All.Corner[grnr][1] && P[i].Pos[1] < All.UpperCorner[grnr][1])
+ if(P[i].Pos[2] >= All.Corner[grnr][2] && P[i].Pos[2] < All.UpperCorner[grnr][2])
+ {
+ for(j = 0; j < 3; j++)
+ {
+ slab = to_slab_fac * (P[i].Pos[j] - All.Corner[grnr][j]);
+
+ if(slab < meshmin[j])
+ meshmin[j] = slab;
+
+ if(slab > meshmax[j])
+ meshmax[j] = slab;
+ }
+ }
+ }
+
+ MPI_Allgather(meshmin, 3, MPI_INT, meshmin_list, 3, MPI_INT, MPI_COMM_WORLD);
+ MPI_Allgather(meshmax, 3, MPI_INT, meshmax_list, 3, MPI_INT, MPI_COMM_WORLD);
+ }
+#endif
+
+ dimx = meshmax[0] - meshmin[0] + 6;
+ dimy = meshmax[1] - meshmin[1] + 6;
+ dimz = meshmax[2] - meshmin[2] + 6;
+
+ for(j = 0; j < 3; j++)
+ {
+ if(meshmin[j] < 2)
+ endrun(131231);
+ if(meshmax[j] > GRID / 2 - 3)
+ endrun(131288);
+ }
+
+ for(level = 0; level < (1 << PTask); level++) /* note: for level=0, target is the same task */
+ {
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ level;
+
+ if(recvTask < NTask)
+ {
+ /* check how much we have to send */
+ sendmin = 2 * GRID;
+ sendmax = -GRID;
+ for(slab_x = meshmin_list[3 * recvTask] - 2; slab_x < meshmax_list[3 * recvTask] + 4; slab_x++)
+ if(slab_to_task[slab_x] == sendTask)
+ {
+ if(slab_x < sendmin)
+ sendmin = slab_x;
+ if(slab_x > sendmax)
+ sendmax = slab_x;
+ }
+ if(sendmax == -GRID)
+ sendmin = sendmax + 1;
+
+
+ /* check how much we have to receive */
+ recvmin = 2 * GRID;
+ recvmax = -GRID;
+ for(slab_x = meshmin[0] - 2; slab_x < meshmax[0] + 4; slab_x++)
+ if(slab_to_task[slab_x] == recvTask)
+ {
+ if(slab_x < recvmin)
+ recvmin = slab_x;
+ if(slab_x > recvmax)
+ recvmax = slab_x;
+ }
+ if(recvmax == -GRID)
+ recvmin = recvmax + 1;
+
+ if((recvmax - recvmin) >= 0 || (sendmax - sendmin) >= 0) /* ok, we have a contribution to the slab */
+ {
+ recv_dimx = meshmax_list[3 * recvTask + 0] - meshmin_list[3 * recvTask + 0] + 6;
+ recv_dimy = meshmax_list[3 * recvTask + 1] - meshmin_list[3 * recvTask + 1] + 6;
+ recv_dimz = meshmax_list[3 * recvTask + 2] - meshmin_list[3 * recvTask + 2] + 6;
+
+ /* prepare what we want to send */
+ if(sendmax - sendmin >= 0)
+ {
+ for(slab_x = sendmin; slab_x <= sendmax; slab_x++)
+ {
+ slab_xx = slab_x - first_slab_of_task[ThisTask];
+
+ for(slab_y = meshmin_list[3 * recvTask + 1] - 2;
+ slab_y < meshmax_list[3 * recvTask + 1] + 4; slab_y++)
+ {
+ slab_yy = slab_y;
+
+ for(slab_z = meshmin_list[3 * recvTask + 2] - 2;
+ slab_z < meshmax_list[3 * recvTask + 2] + 4; slab_z++)
+ {
+ slab_zz = slab_z;
+
+ forcegrid[((slab_x - sendmin) * recv_dimy +
+ (slab_y - (meshmin_list[3 * recvTask + 1] - 2))) * recv_dimz +
+ slab_z - (meshmin_list[3 * recvTask + 2] - 2)] =
+ rhogrid[GRID * GRID2 * slab_xx + GRID2 * slab_yy + slab_zz];
+ }
+ }
+ }
+ }
+
+ if(level > 0)
+ {
+ MPI_Sendrecv(forcegrid,
+ (sendmax - sendmin + 1) * recv_dimy * recv_dimz * sizeof(fftw_real),
+ MPI_BYTE, recvTask, TAG_NONPERIOD_B,
+ workspace + (recvmin - (meshmin[0] - 2)) * dimy * dimz,
+ (recvmax - recvmin + 1) * dimy * dimz * sizeof(fftw_real), MPI_BYTE,
+ recvTask, TAG_NONPERIOD_B, MPI_COMM_WORLD, &status);
+ }
+ else
+ {
+ memcpy(workspace + (recvmin - (meshmin[0] - 2)) * dimy * dimz,
+ forcegrid, (recvmax - recvmin + 1) * dimy * dimz * sizeof(fftw_real));
+ }
+ }
+ }
+ }
+
+ dimx = meshmax[0] - meshmin[0] + 2;
+ dimy = meshmax[1] - meshmin[1] + 2;
+ dimz = meshmax[2] - meshmin[2] + 2;
+
+ recv_dimx = meshmax[0] - meshmin[0] + 6;
+ recv_dimy = meshmax[1] - meshmin[1] + 6;
+ recv_dimz = meshmax[2] - meshmin[2] + 6;
+
+
+ for(dim = 0; dim < 3; dim++) /* Calculate each component of the force. */
+ {
+ /* get the force component by finite differencing the potential */
+ /* note: "workspace" now contains the potential for the local patch, plus a suffiently large buffer region */
+
+ for(x = 0; x < meshmax[0] - meshmin[0] + 2; x++)
+ for(y = 0; y < meshmax[1] - meshmin[1] + 2; y++)
+ for(z = 0; z < meshmax[2] - meshmin[2] + 2; z++)
+ {
+ xrr = xll = xr = xl = x;
+ yrr = yll = yr = yl = y;
+ zrr = zll = zr = zl = z;
+
+ switch (dim)
+ {
+ case 0:
+ xr = x + 1;
+ xrr = x + 2;
+ xl = x - 1;
+ xll = x - 2;
+ break;
+ case 1:
+ yr = y + 1;
+ yl = y - 1;
+ yrr = y + 2;
+ yll = y - 2;
+ break;
+ case 2:
+ zr = z + 1;
+ zl = z - 1;
+ zrr = z + 2;
+ zll = z - 2;
+ break;
+ }
+
+ forcegrid[(x * dimy + y) * dimz + z]
+ =
+ fac * ((4.0 / 3) *
+ (workspace[((xl + 2) * recv_dimy + (yl + 2)) * recv_dimz + (zl + 2)]
+ - workspace[((xr + 2) * recv_dimy + (yr + 2)) * recv_dimz + (zr + 2)]) -
+ (1.0 / 6) *
+ (workspace[((xll + 2) * recv_dimy + (yll + 2)) * recv_dimz + (zll + 2)] -
+ workspace[((xrr + 2) * recv_dimy + (yrr + 2)) * recv_dimz + (zrr + 2)]));
+ }
+
+
+ /* read out the forces */
+
+ for(i = 0; i < NumPart; i++)
+ {
+#ifdef PLACEHIGHRESREGION
+ if(grnr == 1)
+ if(!((1 << P[i].Type) & (PLACEHIGHRESREGION)))
+ continue;
+#endif
+ slab_x = to_slab_fac * (P[i].Pos[0] - All.Corner[grnr][0]);
+ dx = to_slab_fac * (P[i].Pos[0] - All.Corner[grnr][0]) - slab_x;
+ slab_x -= meshmin[0];
+ slab_xx = slab_x + 1;
+
+ slab_y = to_slab_fac * (P[i].Pos[1] - All.Corner[grnr][1]);
+ dy = to_slab_fac * (P[i].Pos[1] - All.Corner[grnr][1]) - slab_y;
+ slab_y -= meshmin[1];
+ slab_yy = slab_y + 1;
+
+ slab_z = to_slab_fac * (P[i].Pos[2] - All.Corner[grnr][2]);
+ dz = to_slab_fac * (P[i].Pos[2] - All.Corner[grnr][2]) - slab_z;
+ slab_z -= meshmin[2];
+ slab_zz = slab_z + 1;
+
+ acc_dim =
+ forcegrid[(slab_x * dimy + slab_y) * dimz + slab_z] * (1.0 - dx) * (1.0 - dy) * (1.0 - dz);
+ acc_dim += forcegrid[(slab_x * dimy + slab_yy) * dimz + slab_z] * (1.0 - dx) * dy * (1.0 - dz);
+ acc_dim += forcegrid[(slab_x * dimy + slab_y) * dimz + slab_zz] * (1.0 - dx) * (1.0 - dy) * dz;
+ acc_dim += forcegrid[(slab_x * dimy + slab_yy) * dimz + slab_zz] * (1.0 - dx) * dy * dz;
+
+ acc_dim += forcegrid[(slab_xx * dimy + slab_y) * dimz + slab_z] * (dx) * (1.0 - dy) * (1.0 - dz);
+ acc_dim += forcegrid[(slab_xx * dimy + slab_yy) * dimz + slab_z] * (dx) * dy * (1.0 - dz);
+ acc_dim += forcegrid[(slab_xx * dimy + slab_y) * dimz + slab_zz] * (dx) * (1.0 - dy) * dz;
+ acc_dim += forcegrid[(slab_xx * dimy + slab_yy) * dimz + slab_zz] * (dx) * dy * dz;
+
+ P[i].GravPM[dim] += acc_dim;
+ }
+ }
+
+ pm_init_nonperiodic_free();
+ force_treeallocate(All.TreeAllocFactor * All.MaxPart, All.MaxPart);
+ All.NumForcesSinceLastDomainDecomp = 1 + All.TotNumPart * All.TreeDomainUpdateFrequency;
+
+ if(ThisTask == 0)
+ printf("done PM.\n");
+
+ return 0;
+}
+
+
+
+
+/*! Calculates the long-range non-periodic potential using the PM method. The
+ * potential is Gaussian filtered with Asmth, given in mesh-cell units. We
+ * carry out a CIC charge assignment, and compute the potenial by Fourier
+ * transform methods. The CIC kernel is deconvolved.
+ */
+int pmpotential_nonperiodic(int grnr)
+{
+ double dx, dy, dz;
+ double fac, to_slab_fac;
+ double re, im, pot;
+ int i, j, slab, level, sendTask, recvTask, flag, flagsum;
+ int x, y, z, ip;
+ int slab_x, slab_y, slab_z;
+ int slab_xx, slab_yy, slab_zz;
+ int meshmin[3], meshmax[3], sendmin, sendmax, recvmin, recvmax;
+ int dimx, dimy, dimz, recv_dimx, recv_dimy, recv_dimz;
+ MPI_Status status;
+
+
+ if(ThisTask == 0)
+ printf("Starting non-periodic PM-potential calculation.\n");
+
+ fac = All.G / pow(All.TotalMeshSize[grnr], 4) * pow(All.TotalMeshSize[grnr] / GRID, 3); /* to get potential */
+
+ to_slab_fac = GRID / All.TotalMeshSize[grnr];
+
+ /* first, establish the extension of the local patch in GRID (for binning) */
+
+ for(j = 0; j < 3; j++)
+ {
+ meshmin[j] = GRID;
+ meshmax[j] = 0;
+ }
+
+ for(i = 0, flag = 0; i < NumPart; i++)
+ {
+#ifdef PLACEHIGHRESREGION
+ if(grnr == 0 || (grnr == 1 && ((1 << P[i].Type) & (PLACEHIGHRESREGION))))
+#endif
+ {
+ for(j = 0; j < 3; j++)
+ {
+ if(P[i].Pos[j] < All.Xmintot[grnr][j] || P[i].Pos[j] > All.Xmaxtot[grnr][j])
+ {
+ if(flag == 0)
+ {
+ printf
+ ("Particle Id=%d on task=%d with coordinates (%g|%g|%g) lies outside PM mesh.\nStopping\n",
+ (int)P[i].ID, ThisTask, P[i].Pos[0], P[i].Pos[1], P[i].Pos[2]);
+ fflush(stdout);
+ }
+ flag++;
+ break;
+ }
+ }
+ }
+
+ if(flag > 0)
+ continue;
+
+ if(P[i].Pos[0] >= All.Corner[grnr][0] && P[i].Pos[0] < All.UpperCorner[grnr][0])
+ if(P[i].Pos[1] >= All.Corner[grnr][1] && P[i].Pos[1] < All.UpperCorner[grnr][1])
+ if(P[i].Pos[2] >= All.Corner[grnr][2] && P[i].Pos[2] < All.UpperCorner[grnr][2])
+ {
+ for(j = 0; j < 3; j++)
+ {
+ slab = to_slab_fac * (P[i].Pos[j] - All.Corner[grnr][j]);
+
+ if(slab < meshmin[j])
+ meshmin[j] = slab;
+
+ if(slab > meshmax[j])
+ meshmax[j] = slab;
+ }
+ }
+ }
+
+
+ MPI_Allreduce(&flag, &flagsum, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+ if(flagsum > 0)
+ {
+ if(ThisTask == 0)
+ {
+ printf("In total %d particles were outside allowed range.\n", flagsum);
+ fflush(stdout);
+ }
+ return 1; /* error - need to return because particle were outside allowed range */
+ }
+
+
+
+ MPI_Allgather(meshmin, 3, MPI_INT, meshmin_list, 3, MPI_INT, MPI_COMM_WORLD);
+ MPI_Allgather(meshmax, 3, MPI_INT, meshmax_list, 3, MPI_INT, MPI_COMM_WORLD);
+
+ dimx = meshmax[0] - meshmin[0] + 2;
+ dimy = meshmax[1] - meshmin[1] + 2;
+ dimz = meshmax[2] - meshmin[2] + 2;
+
+
+ force_treefree();
+
+ pm_init_nonperiodic_allocate((dimx + 4) * (dimy + 4) * (dimz + 4));
+
+ for(i = 0; i < dimx * dimy * dimz; i++)
+ workspace[i] = 0;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(P[i].Pos[0] < All.Corner[grnr][0] || P[i].Pos[0] >= All.UpperCorner[grnr][0])
+ continue;
+ if(P[i].Pos[1] < All.Corner[grnr][1] || P[i].Pos[1] >= All.UpperCorner[grnr][1])
+ continue;
+ if(P[i].Pos[2] < All.Corner[grnr][2] || P[i].Pos[2] >= All.UpperCorner[grnr][2])
+ continue;
+
+ slab_x = to_slab_fac * (P[i].Pos[0] - All.Corner[grnr][0]);
+ dx = to_slab_fac * (P[i].Pos[0] - All.Corner[grnr][0]) - slab_x;
+ slab_x -= meshmin[0];
+ slab_xx = slab_x + 1;
+
+ slab_y = to_slab_fac * (P[i].Pos[1] - All.Corner[grnr][1]);
+ dy = to_slab_fac * (P[i].Pos[1] - All.Corner[grnr][1]) - slab_y;
+ slab_y -= meshmin[1];
+ slab_yy = slab_y + 1;
+
+ slab_z = to_slab_fac * (P[i].Pos[2] - All.Corner[grnr][2]);
+ dz = to_slab_fac * (P[i].Pos[2] - All.Corner[grnr][2]) - slab_z;
+ slab_z -= meshmin[2];
+ slab_zz = slab_z + 1;
+
+ workspace[(slab_x * dimy + slab_y) * dimz + slab_z] += P[i].Mass * (1.0 - dx) * (1.0 - dy) * (1.0 - dz);
+ workspace[(slab_x * dimy + slab_yy) * dimz + slab_z] += P[i].Mass * (1.0 - dx) * dy * (1.0 - dz);
+ workspace[(slab_x * dimy + slab_y) * dimz + slab_zz] += P[i].Mass * (1.0 - dx) * (1.0 - dy) * dz;
+ workspace[(slab_x * dimy + slab_yy) * dimz + slab_zz] += P[i].Mass * (1.0 - dx) * dy * dz;
+
+ workspace[(slab_xx * dimy + slab_y) * dimz + slab_z] += P[i].Mass * (dx) * (1.0 - dy) * (1.0 - dz);
+ workspace[(slab_xx * dimy + slab_yy) * dimz + slab_z] += P[i].Mass * (dx) * dy * (1.0 - dz);
+ workspace[(slab_xx * dimy + slab_y) * dimz + slab_zz] += P[i].Mass * (dx) * (1.0 - dy) * dz;
+ workspace[(slab_xx * dimy + slab_yy) * dimz + slab_zz] += P[i].Mass * (dx) * dy * dz;
+ }
+
+
+ for(i = 0; i < fftsize; i++) /* clear local density field */
+ rhogrid[i] = 0;
+
+ for(level = 0; level < (1 << PTask); level++) /* note: for level=0, target is the same task */
+ {
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ level;
+ if(recvTask < NTask)
+ {
+ /* check how much we have to send */
+ sendmin = 2 * GRID;
+ sendmax = -1;
+ for(slab_x = meshmin[0]; slab_x < meshmax[0] + 2; slab_x++)
+ if(slab_to_task[slab_x] == recvTask)
+ {
+ if(slab_x < sendmin)
+ sendmin = slab_x;
+ if(slab_x > sendmax)
+ sendmax = slab_x;
+ }
+ if(sendmax == -1)
+ sendmin = 0;
+
+ /* check how much we have to receive */
+ recvmin = 2 * GRID;
+ recvmax = -1;
+ for(slab_x = meshmin_list[3 * recvTask]; slab_x < meshmax_list[3 * recvTask] + 2; slab_x++)
+ if(slab_to_task[slab_x] == sendTask)
+ {
+ if(slab_x < recvmin)
+ recvmin = slab_x;
+ if(slab_x > recvmax)
+ recvmax = slab_x;
+ }
+ if(recvmax == -1)
+ recvmin = 0;
+
+ if((recvmax - recvmin) >= 0 || (sendmax - sendmin) >= 0) /* ok, we have a contribution to the slab */
+ {
+ recv_dimx = meshmax_list[3 * recvTask + 0] - meshmin_list[3 * recvTask + 0] + 2;
+ recv_dimy = meshmax_list[3 * recvTask + 1] - meshmin_list[3 * recvTask + 1] + 2;
+ recv_dimz = meshmax_list[3 * recvTask + 2] - meshmin_list[3 * recvTask + 2] + 2;
+
+ if(level > 0)
+ {
+ MPI_Sendrecv(workspace + (sendmin - meshmin[0]) * dimy * dimz,
+ (sendmax - sendmin + 1) * dimy * dimz * sizeof(fftw_real), MPI_BYTE, recvTask,
+ TAG_NONPERIOD_C, forcegrid,
+ (recvmax - recvmin + 1) * recv_dimy * recv_dimz * sizeof(fftw_real), MPI_BYTE,
+ recvTask, TAG_NONPERIOD_C, MPI_COMM_WORLD, &status);
+ }
+ else
+ {
+ memcpy(forcegrid, workspace + (sendmin - meshmin[0]) * dimy * dimz,
+ (sendmax - sendmin + 1) * dimy * dimz * sizeof(fftw_real));
+ }
+
+ for(slab_x = recvmin; slab_x <= recvmax; slab_x++)
+ {
+ slab_xx = slab_x - first_slab_of_task[ThisTask];
+
+ if(slab_xx >= 0 && slab_xx < slabs_per_task[ThisTask])
+ {
+ for(slab_y = meshmin_list[3 * recvTask + 1];
+ slab_y <= meshmax_list[3 * recvTask + 1] + 1; slab_y++)
+ {
+ slab_yy = slab_y;
+
+ for(slab_z = meshmin_list[3 * recvTask + 2];
+ slab_z <= meshmax_list[3 * recvTask + 2] + 1; slab_z++)
+ {
+ slab_zz = slab_z;
+
+ rhogrid[GRID * GRID2 * slab_xx + GRID2 * slab_yy + slab_zz] +=
+ forcegrid[((slab_x - recvmin) * recv_dimy +
+ (slab_y - meshmin_list[3 * recvTask + 1])) * recv_dimz +
+ (slab_z - meshmin_list[3 * recvTask + 2])];
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ /* Do the FFT of the density field */
+
+ rfftwnd_mpi(fft_forward_plan, 1, rhogrid, workspace, FFTW_TRANSPOSED_ORDER);
+
+
+ /* multiply with the Fourier transform of the Green's function (kernel) */
+
+ for(y = 0; y < nslab_y; y++)
+ for(x = 0; x < GRID; x++)
+ for(z = 0; z < GRID / 2 + 1; z++)
+ {
+ ip = GRID * (GRID / 2 + 1) * y + (GRID / 2 + 1) * x + z;
+
+ re =
+ fft_of_rhogrid[ip].re * fft_of_kernel[grnr][ip].re -
+ fft_of_rhogrid[ip].im * fft_of_kernel[grnr][ip].im;
+
+ im =
+ fft_of_rhogrid[ip].re * fft_of_kernel[grnr][ip].im +
+ fft_of_rhogrid[ip].im * fft_of_kernel[grnr][ip].re;
+
+ fft_of_rhogrid[ip].re = fac * re;
+ fft_of_rhogrid[ip].im = fac * im;
+ }
+
+ /* get the potential by inverse FFT */
+
+ rfftwnd_mpi(fft_inverse_plan, 1, rhogrid, workspace, FFTW_TRANSPOSED_ORDER);
+
+ /* Now rhogrid holds the potential */
+ /* construct the potential for the local patch */
+
+
+ /* if we have a high-res mesh, establish the extension of the local patch in GRID (for reading out the
+ * forces)
+ */
+
+#ifdef PLACEHIGHRESREGION
+ if(grnr == 1)
+ {
+ for(j = 0; j < 3; j++)
+ {
+ meshmin[j] = GRID;
+ meshmax[j] = 0;
+ }
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(!((1 << P[i].Type) & (PLACEHIGHRESREGION)))
+ continue;
+
+
+ if(P[i].Pos[0] >= All.Corner[grnr][0] && P[i].Pos[0] < All.UpperCorner[grnr][0])
+ if(P[i].Pos[1] >= All.Corner[grnr][1] && P[i].Pos[1] < All.UpperCorner[grnr][1])
+ if(P[i].Pos[2] >= All.Corner[grnr][2] && P[i].Pos[2] < All.UpperCorner[grnr][2])
+ {
+ for(j = 0; j < 3; j++)
+ {
+ slab = to_slab_fac * (P[i].Pos[j] - All.Corner[grnr][j]);
+
+ if(slab < meshmin[j])
+ meshmin[j] = slab;
+
+ if(slab > meshmax[j])
+ meshmax[j] = slab;
+ }
+ }
+ }
+
+ MPI_Allgather(meshmin, 3, MPI_INT, meshmin_list, 3, MPI_INT, MPI_COMM_WORLD);
+ MPI_Allgather(meshmax, 3, MPI_INT, meshmax_list, 3, MPI_INT, MPI_COMM_WORLD);
+ }
+#endif
+
+ dimx = meshmax[0] - meshmin[0] + 6;
+ dimy = meshmax[1] - meshmin[1] + 6;
+ dimz = meshmax[2] - meshmin[2] + 6;
+
+ for(j = 0; j < 3; j++)
+ {
+ if(meshmin[j] < 2)
+ endrun(131231);
+ if(meshmax[j] > GRID / 2 - 3)
+ endrun(131288);
+ }
+
+ for(level = 0; level < (1 << PTask); level++) /* note: for level=0, target is the same task */
+ {
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ level;
+
+ if(recvTask < NTask)
+ {
+ /* check how much we have to send */
+ sendmin = 2 * GRID;
+ sendmax = -GRID;
+ for(slab_x = meshmin_list[3 * recvTask] - 2; slab_x < meshmax_list[3 * recvTask] + 4; slab_x++)
+ if(slab_to_task[slab_x] == sendTask)
+ {
+ if(slab_x < sendmin)
+ sendmin = slab_x;
+ if(slab_x > sendmax)
+ sendmax = slab_x;
+ }
+ if(sendmax == -GRID)
+ sendmin = sendmax + 1;
+
+
+ /* check how much we have to receive */
+ recvmin = 2 * GRID;
+ recvmax = -GRID;
+ for(slab_x = meshmin[0] - 2; slab_x < meshmax[0] + 4; slab_x++)
+ if(slab_to_task[slab_x] == recvTask)
+ {
+ if(slab_x < recvmin)
+ recvmin = slab_x;
+ if(slab_x > recvmax)
+ recvmax = slab_x;
+ }
+ if(recvmax == -GRID)
+ recvmin = recvmax + 1;
+
+ if((recvmax - recvmin) >= 0 || (sendmax - sendmin) >= 0) /* ok, we have a contribution to the slab */
+ {
+ recv_dimx = meshmax_list[3 * recvTask + 0] - meshmin_list[3 * recvTask + 0] + 6;
+ recv_dimy = meshmax_list[3 * recvTask + 1] - meshmin_list[3 * recvTask + 1] + 6;
+ recv_dimz = meshmax_list[3 * recvTask + 2] - meshmin_list[3 * recvTask + 2] + 6;
+
+ /* prepare what we want to send */
+ if(sendmax - sendmin >= 0)
+ {
+ for(slab_x = sendmin; slab_x <= sendmax; slab_x++)
+ {
+ slab_xx = slab_x - first_slab_of_task[ThisTask];
+
+ for(slab_y = meshmin_list[3 * recvTask + 1] - 2;
+ slab_y < meshmax_list[3 * recvTask + 1] + 4; slab_y++)
+ {
+ slab_yy = slab_y;
+
+ for(slab_z = meshmin_list[3 * recvTask + 2] - 2;
+ slab_z < meshmax_list[3 * recvTask + 2] + 4; slab_z++)
+ {
+ slab_zz = slab_z;
+
+ forcegrid[((slab_x - sendmin) * recv_dimy +
+ (slab_y - (meshmin_list[3 * recvTask + 1] - 2))) * recv_dimz +
+ slab_z - (meshmin_list[3 * recvTask + 2] - 2)] =
+ rhogrid[GRID * GRID2 * slab_xx + GRID2 * slab_yy + slab_zz];
+ }
+ }
+ }
+ }
+
+ if(level > 0)
+ {
+ MPI_Sendrecv(forcegrid,
+ (sendmax - sendmin + 1) * recv_dimy * recv_dimz * sizeof(fftw_real),
+ MPI_BYTE, recvTask, TAG_NONPERIOD_D,
+ workspace + (recvmin - (meshmin[0] - 2)) * dimy * dimz,
+ (recvmax - recvmin + 1) * dimy * dimz * sizeof(fftw_real), MPI_BYTE,
+ recvTask, TAG_NONPERIOD_D, MPI_COMM_WORLD, &status);
+ }
+ else
+ {
+ memcpy(workspace + (recvmin - (meshmin[0] - 2)) * dimy * dimz,
+ forcegrid, (recvmax - recvmin + 1) * dimy * dimz * sizeof(fftw_real));
+ }
+ }
+ }
+ }
+
+ dimx = meshmax[0] - meshmin[0] + 2;
+ dimy = meshmax[1] - meshmin[1] + 2;
+ dimz = meshmax[2] - meshmin[2] + 2;
+
+ recv_dimx = meshmax[0] - meshmin[0] + 6;
+ recv_dimy = meshmax[1] - meshmin[1] + 6;
+ recv_dimz = meshmax[2] - meshmin[2] + 6;
+
+
+ for(x = 0; x < meshmax[0] - meshmin[0] + 2; x++)
+ for(y = 0; y < meshmax[1] - meshmin[1] + 2; y++)
+ for(z = 0; z < meshmax[2] - meshmin[2] + 2; z++)
+ {
+ forcegrid[(x * dimy + y) * dimz + z]
+ = workspace[((x + 2) * recv_dimy + (y + 2)) * recv_dimz + (z + 2)];
+ }
+
+
+ /* read out the potential */
+
+ for(i = 0; i < NumPart; i++)
+ {
+#ifdef PLACEHIGHRESREGION
+ if(grnr == 1)
+ if(!((1 << P[i].Type) & (PLACEHIGHRESREGION)))
+ continue;
+#endif
+ slab_x = to_slab_fac * (P[i].Pos[0] - All.Corner[grnr][0]);
+ dx = to_slab_fac * (P[i].Pos[0] - All.Corner[grnr][0]) - slab_x;
+ slab_x -= meshmin[0];
+ slab_xx = slab_x + 1;
+
+ slab_y = to_slab_fac * (P[i].Pos[1] - All.Corner[grnr][1]);
+ dy = to_slab_fac * (P[i].Pos[1] - All.Corner[grnr][1]) - slab_y;
+ slab_y -= meshmin[1];
+ slab_yy = slab_y + 1;
+
+ slab_z = to_slab_fac * (P[i].Pos[2] - All.Corner[grnr][2]);
+ dz = to_slab_fac * (P[i].Pos[2] - All.Corner[grnr][2]) - slab_z;
+ slab_z -= meshmin[2];
+ slab_zz = slab_z + 1;
+
+ pot = forcegrid[(slab_x * dimy + slab_y) * dimz + slab_z] * (1.0 - dx) * (1.0 - dy) * (1.0 - dz);
+ pot += forcegrid[(slab_x * dimy + slab_yy) * dimz + slab_z] * (1.0 - dx) * dy * (1.0 - dz);
+ pot += forcegrid[(slab_x * dimy + slab_y) * dimz + slab_zz] * (1.0 - dx) * (1.0 - dy) * dz;
+ pot += forcegrid[(slab_x * dimy + slab_yy) * dimz + slab_zz] * (1.0 - dx) * dy * dz;
+
+ pot += forcegrid[(slab_xx * dimy + slab_y) * dimz + slab_z] * (dx) * (1.0 - dy) * (1.0 - dz);
+ pot += forcegrid[(slab_xx * dimy + slab_yy) * dimz + slab_z] * (dx) * dy * (1.0 - dz);
+ pot += forcegrid[(slab_xx * dimy + slab_y) * dimz + slab_zz] * (dx) * (1.0 - dy) * dz;
+ pot += forcegrid[(slab_xx * dimy + slab_yy) * dimz + slab_zz] * (dx) * dy * dz;
+
+ P[i].Potential += pot;
+ }
+
+ pm_init_nonperiodic_free();
+ force_treeallocate(All.TreeAllocFactor * All.MaxPart, All.MaxPart);
+ All.NumForcesSinceLastDomainDecomp = 1 + All.TotNumPart * All.TreeDomainUpdateFrequency;
+
+ if(ThisTask == 0)
+ printf("done PM-potential.\n");
+
+ return 0;
+}
+
+
+#endif
+#endif
diff --git a/clusters/user/GEAR/src/pm_periodic.c b/clusters/user/GEAR/src/pm_periodic.c
new file mode 100644
index 0000000..513a847
--- /dev/null
+++ b/clusters/user/GEAR/src/pm_periodic.c
@@ -0,0 +1,1158 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <float.h>
+#include <mpi.h>
+
+/*! \file pm_periodic.c
+ * \brief routines for periodic PM-force computation
+ */
+
+#ifdef PMGRID
+#ifdef PERIODIC
+
+#ifdef NOTYPEPREFIXFFTW
+#include <rfftw_mpi.h>
+#else
+#ifdef DOUBLEPRECISION_FFTW
+#include <drfftw_mpi.h> /* double precision FFTW */
+#else
+#include <srfftw_mpi.h>
+#endif
+#endif
+
+
+#include "allvars.h"
+#include "proto.h"
+
+#define PMGRID2 (2*(PMGRID/2 + 1))
+
+
+
+
+static rfftwnd_mpi_plan fft_forward_plan, fft_inverse_plan;
+
+static int slab_to_task[PMGRID];
+static int *slabs_per_task;
+static int *first_slab_of_task;
+static int *meshmin_list, *meshmax_list;
+
+static int slabstart_x, nslab_x, slabstart_y, nslab_y, smallest_slab;
+
+static int fftsize, maxfftsize;
+
+static fftw_real *rhogrid, *forcegrid, *workspace;
+static fftw_complex *fft_of_rhogrid;
+
+
+static FLOAT to_slab_fac;
+
+
+/*! This routines generates the FFTW-plans to carry out the parallel FFTs
+ * later on. Some auxiliary variables are also initialized.
+ */
+void pm_init_periodic(void)
+{
+ int i;
+ int slab_to_task_local[PMGRID];
+
+ All.Asmth[0] = ASMTH * All.BoxSize / PMGRID;
+ All.Rcut[0] = RCUT * All.Asmth[0];
+
+ /* Set up the FFTW plan files. */
+
+ fft_forward_plan = rfftw3d_mpi_create_plan(MPI_COMM_WORLD, PMGRID, PMGRID, PMGRID,
+ FFTW_REAL_TO_COMPLEX, FFTW_ESTIMATE | FFTW_IN_PLACE);
+ fft_inverse_plan = rfftw3d_mpi_create_plan(MPI_COMM_WORLD, PMGRID, PMGRID, PMGRID,
+ FFTW_COMPLEX_TO_REAL, FFTW_ESTIMATE | FFTW_IN_PLACE);
+
+ /* Workspace out the ranges on each processor. */
+
+ rfftwnd_mpi_local_sizes(fft_forward_plan, &nslab_x, &slabstart_x, &nslab_y, &slabstart_y, &fftsize);
+
+ for(i = 0; i < PMGRID; i++)
+ slab_to_task_local[i] = 0;
+
+ for(i = 0; i < nslab_x; i++)
+ slab_to_task_local[slabstart_x + i] = ThisTask;
+
+ MPI_Allreduce(slab_to_task_local, slab_to_task, PMGRID, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+
+ MPI_Allreduce(&nslab_x, &smallest_slab, 1, MPI_INT, MPI_MIN, MPI_COMM_WORLD);
+
+ slabs_per_task = malloc(NTask * sizeof(int));
+ MPI_Allgather(&nslab_x, 1, MPI_INT, slabs_per_task, 1, MPI_INT, MPI_COMM_WORLD);
+
+ if(ThisTask == 0)
+ {
+ for(i = 0; i < NTask; i++)
+ printf("Task=%d FFT-Slabs=%d\n", i, slabs_per_task[i]);
+ }
+
+ first_slab_of_task = malloc(NTask * sizeof(int));
+ MPI_Allgather(&slabstart_x, 1, MPI_INT, first_slab_of_task, 1, MPI_INT, MPI_COMM_WORLD);
+
+ meshmin_list = malloc(3 * NTask * sizeof(int));
+ meshmax_list = malloc(3 * NTask * sizeof(int));
+
+
+ to_slab_fac = PMGRID / All.BoxSize;
+
+ MPI_Allreduce(&fftsize, &maxfftsize, 1, MPI_INT, MPI_MAX, MPI_COMM_WORLD);
+}
+
+
+/*! This function allocates the memory neeed to compute the long-range PM
+ * force. Three fields are used, one to hold the density (and its FFT, and
+ * then the real-space potential), one to hold the force field obtained by
+ * finite differencing, and finally a workspace field, which is used both as
+ * workspace for the parallel FFT, and as buffer for the communication
+ * algorithm used in the force computation.
+ */
+void pm_init_periodic_allocate(int dimprod)
+{
+ static int first_alloc = 1;
+ int dimprodmax;
+ double bytes_tot = 0;
+ size_t bytes;
+
+ MPI_Allreduce(&dimprod, &dimprodmax, 1, MPI_INT, MPI_MAX, MPI_COMM_WORLD);
+
+ /* allocate the memory to hold the FFT fields */
+
+ if(!(rhogrid = (fftw_real *) malloc(bytes = fftsize * sizeof(fftw_real))))
+ {
+ printf("failed to allocate memory for `FFT-rhogrid' (%g MB).\n", bytes / (1024.0 * 1024.0));
+ endrun(1);
+ }
+ bytes_tot += bytes;
+
+
+ if(!(forcegrid = (fftw_real *) malloc(bytes = imax(fftsize, dimprodmax) * sizeof(fftw_real))))
+ {
+ printf("failed to allocate memory for `FFT-forcegrid' (%g MB).\n", bytes / (1024.0 * 1024.0));
+ endrun(1);
+ }
+ bytes_tot += bytes;
+
+ if(!(workspace = (fftw_real *) malloc(bytes = imax(maxfftsize, dimprodmax) * sizeof(fftw_real))))
+ {
+ printf("failed to allocate memory for `FFT-workspace' (%g MB).\n", bytes / (1024.0 * 1024.0));
+ endrun(1);
+ }
+ bytes_tot += bytes;
+
+ if(first_alloc == 1)
+ {
+ first_alloc = 0;
+ if(ThisTask == 0)
+ printf("\nAllocated %g MByte for FFT data.\n\n", bytes_tot / (1024.0 * 1024.0));
+ }
+
+ fft_of_rhogrid = (fftw_complex *) & rhogrid[0];
+}
+
+
+
+/*! This routine frees the space allocated for the parallel FFT algorithm.
+ */
+void pm_init_periodic_free(void)
+{
+ /* allocate the memory to hold the FFT fields */
+ free(workspace);
+ free(forcegrid);
+ free(rhogrid);
+}
+
+
+
+/*! Calculates the long-range periodic force given the particle positions
+ * using the PM method. The force is Gaussian filtered with Asmth, given in
+ * mesh-cell units. We carry out a CIC charge assignment, and compute the
+ * potenial by Fourier transform methods. The potential is finite differenced
+ * using a 4-point finite differencing formula, and the forces are
+ * interpolated tri-linearly to the particle positions. The CIC kernel is
+ * deconvolved. Note that the particle distribution is not in the slab
+ * decomposition that is used for the FFT. Instead, overlapping patches
+ * between local domains and FFT slabs are communicated as needed.
+ */
+void pmforce_periodic(void)
+{
+ double k2, kx, ky, kz, smth;
+ double dx, dy, dz;
+ double fx, fy, fz, ff;
+ double asmth2, fac, acc_dim;
+ int i, j, slab, level, sendTask, recvTask;
+ int x, y, z, xl, yl, zl, xr, yr, zr, xll, yll, zll, xrr, yrr, zrr, ip, dim;
+ int slab_x, slab_y, slab_z;
+ int slab_xx, slab_yy, slab_zz;
+ int meshmin[3], meshmax[3], sendmin, sendmax, recvmin, recvmax;
+ int rep, ncont, cont_sendmin[2], cont_sendmax[2], cont_recvmin[2], cont_recvmax[2];
+ int dimx, dimy, dimz, recv_dimx, recv_dimy, recv_dimz;
+ MPI_Status status;
+
+
+ if(ThisTask == 0)
+ {
+ printf("Starting periodic PM calculation.\n");
+ fflush(stdout);
+ }
+
+
+ force_treefree();
+
+
+ asmth2 = (2 * M_PI) * All.Asmth[0] / All.BoxSize;
+ asmth2 *= asmth2;
+
+ fac = All.G / (M_PI * All.BoxSize); /* to get potential */
+ fac *= 1 / (2 * All.BoxSize / PMGRID); /* for finite differencing */
+
+ /* first, establish the extension of the local patch in the PMGRID */
+
+ for(j = 0; j < 3; j++)
+ {
+ meshmin[j] = PMGRID;
+ meshmax[j] = 0;
+ }
+
+ for(i = 0; i < NumPart; i++)
+ {
+ for(j = 0; j < 3; j++)
+ {
+ slab = to_slab_fac * P[i].Pos[j];
+ if(slab >= PMGRID)
+ slab = PMGRID - 1;
+
+ if(slab < meshmin[j])
+ meshmin[j] = slab;
+
+ if(slab > meshmax[j])
+ meshmax[j] = slab;
+ }
+ }
+
+ MPI_Allgather(meshmin, 3, MPI_INT, meshmin_list, 3, MPI_INT, MPI_COMM_WORLD);
+ MPI_Allgather(meshmax, 3, MPI_INT, meshmax_list, 3, MPI_INT, MPI_COMM_WORLD);
+
+ dimx = meshmax[0] - meshmin[0] + 2;
+ dimy = meshmax[1] - meshmin[1] + 2;
+ dimz = meshmax[2] - meshmin[2] + 2;
+
+ pm_init_periodic_allocate((dimx + 4) * (dimy + 4) * (dimz + 4));
+
+ for(i = 0; i < dimx * dimy * dimz; i++)
+ workspace[i] = 0;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ slab_x = to_slab_fac * P[i].Pos[0];
+ if(slab_x >= PMGRID)
+ slab_x = PMGRID - 1;
+ dx = to_slab_fac * P[i].Pos[0] - slab_x;
+ slab_x -= meshmin[0];
+ slab_xx = slab_x + 1;
+
+ slab_y = to_slab_fac * P[i].Pos[1];
+ if(slab_y >= PMGRID)
+ slab_y = PMGRID - 1;
+ dy = to_slab_fac * P[i].Pos[1] - slab_y;
+ slab_y -= meshmin[1];
+ slab_yy = slab_y + 1;
+
+ slab_z = to_slab_fac * P[i].Pos[2];
+ if(slab_z >= PMGRID)
+ slab_z = PMGRID - 1;
+ dz = to_slab_fac * P[i].Pos[2] - slab_z;
+ slab_z -= meshmin[2];
+ slab_zz = slab_z + 1;
+
+ workspace[(slab_x * dimy + slab_y) * dimz + slab_z] += P[i].Mass * (1.0 - dx) * (1.0 - dy) * (1.0 - dz);
+ workspace[(slab_x * dimy + slab_yy) * dimz + slab_z] += P[i].Mass * (1.0 - dx) * dy * (1.0 - dz);
+ workspace[(slab_x * dimy + slab_y) * dimz + slab_zz] += P[i].Mass * (1.0 - dx) * (1.0 - dy) * dz;
+ workspace[(slab_x * dimy + slab_yy) * dimz + slab_zz] += P[i].Mass * (1.0 - dx) * dy * dz;
+
+ workspace[(slab_xx * dimy + slab_y) * dimz + slab_z] += P[i].Mass * (dx) * (1.0 - dy) * (1.0 - dz);
+ workspace[(slab_xx * dimy + slab_yy) * dimz + slab_z] += P[i].Mass * (dx) * dy * (1.0 - dz);
+ workspace[(slab_xx * dimy + slab_y) * dimz + slab_zz] += P[i].Mass * (dx) * (1.0 - dy) * dz;
+ workspace[(slab_xx * dimy + slab_yy) * dimz + slab_zz] += P[i].Mass * (dx) * dy * dz;
+ }
+
+
+ for(i = 0; i < fftsize; i++) /* clear local density field */
+ rhogrid[i] = 0;
+
+ for(level = 0; level < (1 << PTask); level++) /* note: for level=0, target is the same task */
+ {
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ level;
+ if(recvTask < NTask)
+ {
+ /* check how much we have to send */
+ sendmin = 2 * PMGRID;
+ sendmax = -1;
+ for(slab_x = meshmin[0]; slab_x < meshmax[0] + 2; slab_x++)
+ if(slab_to_task[slab_x % PMGRID] == recvTask)
+ {
+ if(slab_x < sendmin)
+ sendmin = slab_x;
+ if(slab_x > sendmax)
+ sendmax = slab_x;
+ }
+ if(sendmax == -1)
+ sendmin = 0;
+
+ /* check how much we have to receive */
+ recvmin = 2 * PMGRID;
+ recvmax = -1;
+ for(slab_x = meshmin_list[3 * recvTask]; slab_x < meshmax_list[3 * recvTask] + 2; slab_x++)
+ if(slab_to_task[slab_x % PMGRID] == sendTask)
+ {
+ if(slab_x < recvmin)
+ recvmin = slab_x;
+ if(slab_x > recvmax)
+ recvmax = slab_x;
+ }
+ if(recvmax == -1)
+ recvmin = 0;
+
+
+ if((recvmax - recvmin) >= 0 || (sendmax - sendmin) >= 0) /* ok, we have a contribution to the slab */
+ {
+ recv_dimx = meshmax_list[3 * recvTask + 0] - meshmin_list[3 * recvTask + 0] + 2;
+ recv_dimy = meshmax_list[3 * recvTask + 1] - meshmin_list[3 * recvTask + 1] + 2;
+ recv_dimz = meshmax_list[3 * recvTask + 2] - meshmin_list[3 * recvTask + 2] + 2;
+
+ if(level > 0)
+ {
+ MPI_Sendrecv(workspace + (sendmin - meshmin[0]) * dimy * dimz,
+ (sendmax - sendmin + 1) * dimy * dimz * sizeof(fftw_real), MPI_BYTE, recvTask,
+ TAG_PERIODIC_A, forcegrid,
+ (recvmax - recvmin + 1) * recv_dimy * recv_dimz * sizeof(fftw_real), MPI_BYTE,
+ recvTask, TAG_PERIODIC_A, MPI_COMM_WORLD, &status);
+ }
+ else
+ {
+ memcpy(forcegrid, workspace + (sendmin - meshmin[0]) * dimy * dimz,
+ (sendmax - sendmin + 1) * dimy * dimz * sizeof(fftw_real));
+ }
+
+ for(slab_x = recvmin; slab_x <= recvmax; slab_x++)
+ {
+ slab_xx = (slab_x % PMGRID) - first_slab_of_task[ThisTask];
+
+ if(slab_xx >= 0 && slab_xx < slabs_per_task[ThisTask])
+ {
+ for(slab_y = meshmin_list[3 * recvTask + 1];
+ slab_y <= meshmax_list[3 * recvTask + 1] + 1; slab_y++)
+ {
+ slab_yy = slab_y;
+ if(slab_yy >= PMGRID)
+ slab_yy -= PMGRID;
+
+ for(slab_z = meshmin_list[3 * recvTask + 2];
+ slab_z <= meshmax_list[3 * recvTask + 2] + 1; slab_z++)
+ {
+ slab_zz = slab_z;
+ if(slab_zz >= PMGRID)
+ slab_zz -= PMGRID;
+
+ rhogrid[PMGRID * PMGRID2 * slab_xx + PMGRID2 * slab_yy + slab_zz] +=
+ forcegrid[((slab_x - recvmin) * recv_dimy +
+ (slab_y - meshmin_list[3 * recvTask + 1])) * recv_dimz +
+ (slab_z - meshmin_list[3 * recvTask + 2])];
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /* Do the FFT of the density field */
+
+ rfftwnd_mpi(fft_forward_plan, 1, rhogrid, workspace, FFTW_TRANSPOSED_ORDER);
+
+ /* multiply with Green's function for the potential */
+
+ for(y = slabstart_y; y < slabstart_y + nslab_y; y++)
+ for(x = 0; x < PMGRID; x++)
+ for(z = 0; z < PMGRID / 2 + 1; z++)
+ {
+ if(x > PMGRID / 2)
+ kx = x - PMGRID;
+ else
+ kx = x;
+ if(y > PMGRID / 2)
+ ky = y - PMGRID;
+ else
+ ky = y;
+ if(z > PMGRID / 2)
+ kz = z - PMGRID;
+ else
+ kz = z;
+
+ k2 = kx * kx + ky * ky + kz * kz;
+
+ if(k2 > 0)
+ {
+ smth = -exp(-k2 * asmth2) / k2;
+
+ /* do deconvolution */
+
+ fx = fy = fz = 1;
+ if(kx != 0)
+ {
+ fx = (M_PI * kx) / PMGRID;
+ fx = sin(fx) / fx;
+ }
+ if(ky != 0)
+ {
+ fy = (M_PI * ky) / PMGRID;
+ fy = sin(fy) / fy;
+ }
+ if(kz != 0)
+ {
+ fz = (M_PI * kz) / PMGRID;
+ fz = sin(fz) / fz;
+ }
+ ff = 1 / (fx * fy * fz);
+ smth *= ff * ff * ff * ff;
+
+ /* end deconvolution */
+
+ ip = PMGRID * (PMGRID / 2 + 1) * (y - slabstart_y) + (PMGRID / 2 + 1) * x + z;
+ fft_of_rhogrid[ip].re *= smth;
+ fft_of_rhogrid[ip].im *= smth;
+ }
+ }
+
+ if(slabstart_y == 0)
+ fft_of_rhogrid[0].re = fft_of_rhogrid[0].im = 0.0;
+
+ /* Do the FFT to get the potential */
+
+ rfftwnd_mpi(fft_inverse_plan, 1, rhogrid, workspace, FFTW_TRANSPOSED_ORDER);
+
+ /* Now rhogrid holds the potential */
+ /* construct the potential for the local patch */
+
+
+ dimx = meshmax[0] - meshmin[0] + 6;
+ dimy = meshmax[1] - meshmin[1] + 6;
+ dimz = meshmax[2] - meshmin[2] + 6;
+
+ for(level = 0; level < (1 << PTask); level++) /* note: for level=0, target is the same task */
+ {
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ level;
+
+ if(recvTask < NTask)
+ {
+
+ /* check how much we have to send */
+ sendmin = 2 * PMGRID;
+ sendmax = -PMGRID;
+ for(slab_x = meshmin_list[3 * recvTask] - 2; slab_x < meshmax_list[3 * recvTask] + 4; slab_x++)
+ if(slab_to_task[(slab_x + PMGRID) % PMGRID] == sendTask)
+ {
+ if(slab_x < sendmin)
+ sendmin = slab_x;
+ if(slab_x > sendmax)
+ sendmax = slab_x;
+ }
+ if(sendmax == -PMGRID)
+ sendmin = sendmax + 1;
+
+
+ /* check how much we have to receive */
+ recvmin = 2 * PMGRID;
+ recvmax = -PMGRID;
+ for(slab_x = meshmin[0] - 2; slab_x < meshmax[0] + 4; slab_x++)
+ if(slab_to_task[(slab_x + PMGRID) % PMGRID] == recvTask)
+ {
+ if(slab_x < recvmin)
+ recvmin = slab_x;
+ if(slab_x > recvmax)
+ recvmax = slab_x;
+ }
+ if(recvmax == -PMGRID)
+ recvmin = recvmax + 1;
+
+ if((recvmax - recvmin) >= 0 || (sendmax - sendmin) >= 0) /* ok, we have a contribution to the slab */
+ {
+ recv_dimx = meshmax_list[3 * recvTask + 0] - meshmin_list[3 * recvTask + 0] + 6;
+ recv_dimy = meshmax_list[3 * recvTask + 1] - meshmin_list[3 * recvTask + 1] + 6;
+ recv_dimz = meshmax_list[3 * recvTask + 2] - meshmin_list[3 * recvTask + 2] + 6;
+
+ ncont = 1;
+ cont_sendmin[0] = sendmin;
+ cont_sendmax[0] = sendmax;
+ cont_sendmin[1] = sendmax + 1;
+ cont_sendmax[1] = sendmax;
+
+ cont_recvmin[0] = recvmin;
+ cont_recvmax[0] = recvmax;
+ cont_recvmin[1] = recvmax + 1;
+ cont_recvmax[1] = recvmax;
+
+ for(slab_x = sendmin; slab_x <= sendmax; slab_x++)
+ {
+ if(slab_to_task[(slab_x + PMGRID) % PMGRID] != ThisTask)
+ {
+ /* non-contiguous */
+ cont_sendmax[0] = slab_x - 1;
+ while(slab_to_task[(slab_x + PMGRID) % PMGRID] != ThisTask)
+ slab_x++;
+ cont_sendmin[1] = slab_x;
+ ncont++;
+ }
+ }
+
+ for(slab_x = recvmin; slab_x <= recvmax; slab_x++)
+ {
+ if(slab_to_task[(slab_x + PMGRID) % PMGRID] != recvTask)
+ {
+ /* non-contiguous */
+ cont_recvmax[0] = slab_x - 1;
+ while(slab_to_task[(slab_x + PMGRID) % PMGRID] != recvTask)
+ slab_x++;
+ cont_recvmin[1] = slab_x;
+ if(ncont == 1)
+ ncont++;
+ }
+ }
+
+
+ for(rep = 0; rep < ncont; rep++)
+ {
+ sendmin = cont_sendmin[rep];
+ sendmax = cont_sendmax[rep];
+ recvmin = cont_recvmin[rep];
+ recvmax = cont_recvmax[rep];
+
+ /* prepare what we want to send */
+ if(sendmax - sendmin >= 0)
+ {
+ for(slab_x = sendmin; slab_x <= sendmax; slab_x++)
+ {
+ slab_xx = ((slab_x + PMGRID) % PMGRID) - first_slab_of_task[ThisTask];
+
+ for(slab_y = meshmin_list[3 * recvTask + 1] - 2;
+ slab_y < meshmax_list[3 * recvTask + 1] + 4; slab_y++)
+ {
+ slab_yy = (slab_y + PMGRID) % PMGRID;
+
+ for(slab_z = meshmin_list[3 * recvTask + 2] - 2;
+ slab_z <= meshmax_list[3 * recvTask + 2] + 4; slab_z++)
+ {
+ slab_zz = (slab_z + PMGRID) % PMGRID;
+
+ forcegrid[((slab_x - sendmin) * recv_dimy +
+ (slab_y - (meshmin_list[3 * recvTask + 1] - 2))) * recv_dimz +
+ slab_z - (meshmin_list[3 * recvTask + 2] - 2)] =
+ rhogrid[PMGRID * PMGRID2 * slab_xx + PMGRID2 * slab_yy + slab_zz];
+ }
+ }
+ }
+ }
+
+ if(level > 0)
+ {
+ MPI_Sendrecv(forcegrid,
+ (sendmax - sendmin + 1) * recv_dimy * recv_dimz * sizeof(fftw_real),
+ MPI_BYTE, recvTask, TAG_PERIODIC_B,
+ workspace + (recvmin - (meshmin[0] - 2)) * dimy * dimz,
+ (recvmax - recvmin + 1) * dimy * dimz * sizeof(fftw_real), MPI_BYTE,
+ recvTask, TAG_PERIODIC_B, MPI_COMM_WORLD, &status);
+ }
+ else
+ {
+ memcpy(workspace + (recvmin - (meshmin[0] - 2)) * dimy * dimz,
+ forcegrid, (recvmax - recvmin + 1) * dimy * dimz * sizeof(fftw_real));
+ }
+ }
+ }
+ }
+ }
+
+
+ dimx = meshmax[0] - meshmin[0] + 2;
+ dimy = meshmax[1] - meshmin[1] + 2;
+ dimz = meshmax[2] - meshmin[2] + 2;
+
+ recv_dimx = meshmax[0] - meshmin[0] + 6;
+ recv_dimy = meshmax[1] - meshmin[1] + 6;
+ recv_dimz = meshmax[2] - meshmin[2] + 6;
+
+
+ for(dim = 0; dim < 3; dim++) /* Calculate each component of the force. */
+ {
+ /* get the force component by finite differencing the potential */
+ /* note: "workspace" now contains the potential for the local patch, plus a suffiently large buffer region */
+
+ for(x = 0; x < meshmax[0] - meshmin[0] + 2; x++)
+ for(y = 0; y < meshmax[1] - meshmin[1] + 2; y++)
+ for(z = 0; z < meshmax[2] - meshmin[2] + 2; z++)
+ {
+ xrr = xll = xr = xl = x;
+ yrr = yll = yr = yl = y;
+ zrr = zll = zr = zl = z;
+
+ switch (dim)
+ {
+ case 0:
+ xr = x + 1;
+ xrr = x + 2;
+ xl = x - 1;
+ xll = x - 2;
+ break;
+ case 1:
+ yr = y + 1;
+ yl = y - 1;
+ yrr = y + 2;
+ yll = y - 2;
+ break;
+ case 2:
+ zr = z + 1;
+ zl = z - 1;
+ zrr = z + 2;
+ zll = z - 2;
+ break;
+ }
+
+ forcegrid[(x * dimy + y) * dimz + z]
+ =
+ fac * ((4.0 / 3) *
+ (workspace[((xl + 2) * recv_dimy + (yl + 2)) * recv_dimz + (zl + 2)]
+ - workspace[((xr + 2) * recv_dimy + (yr + 2)) * recv_dimz + (zr + 2)]) -
+ (1.0 / 6) *
+ (workspace[((xll + 2) * recv_dimy + (yll + 2)) * recv_dimz + (zll + 2)] -
+ workspace[((xrr + 2) * recv_dimy + (yrr + 2)) * recv_dimz + (zrr + 2)]));
+ }
+
+ /* read out the forces */
+
+ for(i = 0; i < NumPart; i++)
+ {
+ slab_x = to_slab_fac * P[i].Pos[0];
+ if(slab_x >= PMGRID)
+ slab_x = PMGRID - 1;
+ dx = to_slab_fac * P[i].Pos[0] - slab_x;
+ slab_x -= meshmin[0];
+ slab_xx = slab_x + 1;
+
+ slab_y = to_slab_fac * P[i].Pos[1];
+ if(slab_y >= PMGRID)
+ slab_y = PMGRID - 1;
+ dy = to_slab_fac * P[i].Pos[1] - slab_y;
+ slab_y -= meshmin[1];
+ slab_yy = slab_y + 1;
+
+ slab_z = to_slab_fac * P[i].Pos[2];
+ if(slab_z >= PMGRID)
+ slab_z = PMGRID - 1;
+ dz = to_slab_fac * P[i].Pos[2] - slab_z;
+ slab_z -= meshmin[2];
+ slab_zz = slab_z + 1;
+
+ acc_dim =
+ forcegrid[(slab_x * dimy + slab_y) * dimz + slab_z] * (1.0 - dx) * (1.0 - dy) * (1.0 - dz);
+ acc_dim += forcegrid[(slab_x * dimy + slab_yy) * dimz + slab_z] * (1.0 - dx) * dy * (1.0 - dz);
+ acc_dim += forcegrid[(slab_x * dimy + slab_y) * dimz + slab_zz] * (1.0 - dx) * (1.0 - dy) * dz;
+ acc_dim += forcegrid[(slab_x * dimy + slab_yy) * dimz + slab_zz] * (1.0 - dx) * dy * dz;
+
+ acc_dim += forcegrid[(slab_xx * dimy + slab_y) * dimz + slab_z] * (dx) * (1.0 - dy) * (1.0 - dz);
+ acc_dim += forcegrid[(slab_xx * dimy + slab_yy) * dimz + slab_z] * (dx) * dy * (1.0 - dz);
+ acc_dim += forcegrid[(slab_xx * dimy + slab_y) * dimz + slab_zz] * (dx) * (1.0 - dy) * dz;
+ acc_dim += forcegrid[(slab_xx * dimy + slab_yy) * dimz + slab_zz] * (dx) * dy * dz;
+
+ P[i].GravPM[dim] = acc_dim;
+ }
+ }
+
+ pm_init_periodic_free();
+ force_treeallocate(All.TreeAllocFactor * All.MaxPart, All.MaxPart);
+
+ All.NumForcesSinceLastDomainDecomp = 1 + All.TotNumPart * All.TreeDomainUpdateFrequency;
+
+ if(ThisTask == 0)
+ {
+ printf("done PM.\n");
+ fflush(stdout);
+ }
+}
+
+
+/*! Calculates the long-range potential using the PM method. The potential is
+ * Gaussian filtered with Asmth, given in mesh-cell units. We carry out a CIC
+ * charge assignment, and compute the potenial by Fourier transform
+ * methods. The CIC kernel is deconvolved.
+ */
+void pmpotential_periodic(void)
+{
+ double k2, kx, ky, kz, smth;
+ double dx, dy, dz;
+ double fx, fy, fz, ff;
+ double asmth2, fac;
+ int i, j, slab, level, sendTask, recvTask;
+ int x, y, z, ip;
+ int slab_x, slab_y, slab_z;
+ int slab_xx, slab_yy, slab_zz;
+ int meshmin[3], meshmax[3], sendmin, sendmax, recvmin, recvmax;
+ int rep, ncont, cont_sendmin[2], cont_sendmax[2], cont_recvmin[2], cont_recvmax[2];
+ int dimx, dimy, dimz, recv_dimx, recv_dimy, recv_dimz;
+ MPI_Status status;
+
+ if(ThisTask == 0)
+ {
+ printf("Starting periodic PM calculation.\n");
+ fflush(stdout);
+ }
+
+ asmth2 = (2 * M_PI) * All.Asmth[0] / All.BoxSize;
+ asmth2 *= asmth2;
+
+ fac = All.G / (M_PI * All.BoxSize); /* to get potential */
+
+ force_treefree();
+
+ /* first, establish the extension of the local patch in the PMGRID */
+
+ for(j = 0; j < 3; j++)
+ {
+ meshmin[j] = PMGRID;
+ meshmax[j] = 0;
+ }
+
+ for(i = 0; i < NumPart; i++)
+ {
+ for(j = 0; j < 3; j++)
+ {
+ slab = to_slab_fac * P[i].Pos[j];
+ if(slab >= PMGRID)
+ slab = PMGRID - 1;
+
+ if(slab < meshmin[j])
+ meshmin[j] = slab;
+
+ if(slab > meshmax[j])
+ meshmax[j] = slab;
+ }
+ }
+
+ MPI_Allgather(meshmin, 3, MPI_INT, meshmin_list, 3, MPI_INT, MPI_COMM_WORLD);
+ MPI_Allgather(meshmax, 3, MPI_INT, meshmax_list, 3, MPI_INT, MPI_COMM_WORLD);
+
+ dimx = meshmax[0] - meshmin[0] + 2;
+ dimy = meshmax[1] - meshmin[1] + 2;
+ dimz = meshmax[2] - meshmin[2] + 2;
+
+ pm_init_periodic_allocate((dimx + 4) * (dimy + 4) * (dimz + 4));
+
+ for(i = 0; i < dimx * dimy * dimz; i++)
+ workspace[i] = 0;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ slab_x = to_slab_fac * P[i].Pos[0];
+ if(slab_x >= PMGRID)
+ slab_x = PMGRID - 1;
+ dx = to_slab_fac * P[i].Pos[0] - slab_x;
+ slab_x -= meshmin[0];
+ slab_xx = slab_x + 1;
+
+ slab_y = to_slab_fac * P[i].Pos[1];
+ if(slab_y >= PMGRID)
+ slab_y = PMGRID - 1;
+ dy = to_slab_fac * P[i].Pos[1] - slab_y;
+ slab_y -= meshmin[1];
+ slab_yy = slab_y + 1;
+
+ slab_z = to_slab_fac * P[i].Pos[2];
+ if(slab_z >= PMGRID)
+ slab_z = PMGRID - 1;
+ dz = to_slab_fac * P[i].Pos[2] - slab_z;
+ slab_z -= meshmin[2];
+ slab_zz = slab_z + 1;
+
+ workspace[(slab_x * dimy + slab_y) * dimz + slab_z] += P[i].Mass * (1.0 - dx) * (1.0 - dy) * (1.0 - dz);
+ workspace[(slab_x * dimy + slab_yy) * dimz + slab_z] += P[i].Mass * (1.0 - dx) * dy * (1.0 - dz);
+ workspace[(slab_x * dimy + slab_y) * dimz + slab_zz] += P[i].Mass * (1.0 - dx) * (1.0 - dy) * dz;
+ workspace[(slab_x * dimy + slab_yy) * dimz + slab_zz] += P[i].Mass * (1.0 - dx) * dy * dz;
+
+ workspace[(slab_xx * dimy + slab_y) * dimz + slab_z] += P[i].Mass * (dx) * (1.0 - dy) * (1.0 - dz);
+ workspace[(slab_xx * dimy + slab_yy) * dimz + slab_z] += P[i].Mass * (dx) * dy * (1.0 - dz);
+ workspace[(slab_xx * dimy + slab_y) * dimz + slab_zz] += P[i].Mass * (dx) * (1.0 - dy) * dz;
+ workspace[(slab_xx * dimy + slab_yy) * dimz + slab_zz] += P[i].Mass * (dx) * dy * dz;
+ }
+
+
+ for(i = 0; i < fftsize; i++) /* clear local density field */
+ rhogrid[i] = 0;
+
+ for(level = 0; level < (1 << PTask); level++) /* note: for level=0, target is the same task */
+ {
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ level;
+ if(recvTask < NTask)
+ {
+ /* check how much we have to send */
+ sendmin = 2 * PMGRID;
+ sendmax = -1;
+ for(slab_x = meshmin[0]; slab_x < meshmax[0] + 2; slab_x++)
+ if(slab_to_task[slab_x % PMGRID] == recvTask)
+ {
+ if(slab_x < sendmin)
+ sendmin = slab_x;
+ if(slab_x > sendmax)
+ sendmax = slab_x;
+ }
+ if(sendmax == -1)
+ sendmin = 0;
+
+ /* check how much we have to receive */
+ recvmin = 2 * PMGRID;
+ recvmax = -1;
+ for(slab_x = meshmin_list[3 * recvTask]; slab_x < meshmax_list[3 * recvTask] + 2; slab_x++)
+ if(slab_to_task[slab_x % PMGRID] == sendTask)
+ {
+ if(slab_x < recvmin)
+ recvmin = slab_x;
+ if(slab_x > recvmax)
+ recvmax = slab_x;
+ }
+ if(recvmax == -1)
+ recvmin = 0;
+
+
+ if((recvmax - recvmin) >= 0 || (sendmax - sendmin) >= 0) /* ok, we have a contribution to the slab */
+ {
+ recv_dimx = meshmax_list[3 * recvTask + 0] - meshmin_list[3 * recvTask + 0] + 2;
+ recv_dimy = meshmax_list[3 * recvTask + 1] - meshmin_list[3 * recvTask + 1] + 2;
+ recv_dimz = meshmax_list[3 * recvTask + 2] - meshmin_list[3 * recvTask + 2] + 2;
+
+ if(level > 0)
+ {
+ MPI_Sendrecv(workspace + (sendmin - meshmin[0]) * dimy * dimz,
+ (sendmax - sendmin + 1) * dimy * dimz * sizeof(fftw_real), MPI_BYTE, recvTask,
+ TAG_PERIODIC_C, forcegrid,
+ (recvmax - recvmin + 1) * recv_dimy * recv_dimz * sizeof(fftw_real), MPI_BYTE,
+ recvTask, TAG_PERIODIC_C, MPI_COMM_WORLD, &status);
+ }
+ else
+ {
+ memcpy(forcegrid, workspace + (sendmin - meshmin[0]) * dimy * dimz,
+ (sendmax - sendmin + 1) * dimy * dimz * sizeof(fftw_real));
+ }
+
+ for(slab_x = recvmin; slab_x <= recvmax; slab_x++)
+ {
+ slab_xx = (slab_x % PMGRID) - first_slab_of_task[ThisTask];
+
+ if(slab_xx >= 0 && slab_xx < slabs_per_task[ThisTask])
+ {
+ for(slab_y = meshmin_list[3 * recvTask + 1];
+ slab_y <= meshmax_list[3 * recvTask + 1] + 1; slab_y++)
+ {
+ slab_yy = slab_y;
+ if(slab_yy >= PMGRID)
+ slab_yy -= PMGRID;
+
+ for(slab_z = meshmin_list[3 * recvTask + 2];
+ slab_z <= meshmax_list[3 * recvTask + 2] + 1; slab_z++)
+ {
+ slab_zz = slab_z;
+ if(slab_zz >= PMGRID)
+ slab_zz -= PMGRID;
+
+ rhogrid[PMGRID * PMGRID2 * slab_xx + PMGRID2 * slab_yy + slab_zz] +=
+ forcegrid[((slab_x - recvmin) * recv_dimy +
+ (slab_y - meshmin_list[3 * recvTask + 1])) * recv_dimz +
+ (slab_z - meshmin_list[3 * recvTask + 2])];
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+
+ /* Do the FFT of the density field */
+
+ rfftwnd_mpi(fft_forward_plan, 1, rhogrid, workspace, FFTW_TRANSPOSED_ORDER);
+
+ /* multiply with Green's function for the potential */
+
+ for(y = slabstart_y; y < slabstart_y + nslab_y; y++)
+ for(x = 0; x < PMGRID; x++)
+ for(z = 0; z < PMGRID / 2 + 1; z++)
+ {
+ if(x > PMGRID / 2)
+ kx = x - PMGRID;
+ else
+ kx = x;
+ if(y > PMGRID / 2)
+ ky = y - PMGRID;
+ else
+ ky = y;
+ if(z > PMGRID / 2)
+ kz = z - PMGRID;
+ else
+ kz = z;
+
+ k2 = kx * kx + ky * ky + kz * kz;
+
+ if(k2 > 0)
+ {
+ smth = -exp(-k2 * asmth2) / k2 * fac;
+ /* do deconvolution */
+ fx = fy = fz = 1;
+ if(kx != 0)
+ {
+ fx = (M_PI * kx) / PMGRID;
+ fx = sin(fx) / fx;
+ }
+ if(ky != 0)
+ {
+ fy = (M_PI * ky) / PMGRID;
+ fy = sin(fy) / fy;
+ }
+ if(kz != 0)
+ {
+ fz = (M_PI * kz) / PMGRID;
+ fz = sin(fz) / fz;
+ }
+ ff = 1 / (fx * fy * fz);
+ smth *= ff * ff * ff * ff;
+ /* end deconvolution */
+
+ ip = PMGRID * (PMGRID / 2 + 1) * (y - slabstart_y) + (PMGRID / 2 + 1) * x + z;
+ fft_of_rhogrid[ip].re *= smth;
+ fft_of_rhogrid[ip].im *= smth;
+ }
+ }
+
+ if(slabstart_y == 0)
+ fft_of_rhogrid[0].re = fft_of_rhogrid[0].im = 0.0;
+
+ /* Do the FFT to get the potential */
+
+ rfftwnd_mpi(fft_inverse_plan, 1, rhogrid, workspace, FFTW_TRANSPOSED_ORDER);
+
+ /* note: "rhogrid" now contains the potential */
+
+
+
+ dimx = meshmax[0] - meshmin[0] + 6;
+ dimy = meshmax[1] - meshmin[1] + 6;
+ dimz = meshmax[2] - meshmin[2] + 6;
+
+ for(level = 0; level < (1 << PTask); level++) /* note: for level=0, target is the same task */
+ {
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ level;
+
+ if(recvTask < NTask)
+ {
+
+ /* check how much we have to send */
+ sendmin = 2 * PMGRID;
+ sendmax = -PMGRID;
+ for(slab_x = meshmin_list[3 * recvTask] - 2; slab_x < meshmax_list[3 * recvTask] + 4; slab_x++)
+ if(slab_to_task[(slab_x + PMGRID) % PMGRID] == sendTask)
+ {
+ if(slab_x < sendmin)
+ sendmin = slab_x;
+ if(slab_x > sendmax)
+ sendmax = slab_x;
+ }
+ if(sendmax == -PMGRID)
+ sendmin = sendmax + 1;
+
+
+ /* check how much we have to receive */
+ recvmin = 2 * PMGRID;
+ recvmax = -PMGRID;
+ for(slab_x = meshmin[0] - 2; slab_x < meshmax[0] + 4; slab_x++)
+ if(slab_to_task[(slab_x + PMGRID) % PMGRID] == recvTask)
+ {
+ if(slab_x < recvmin)
+ recvmin = slab_x;
+ if(slab_x > recvmax)
+ recvmax = slab_x;
+ }
+ if(recvmax == -PMGRID)
+ recvmin = recvmax + 1;
+
+ if((recvmax - recvmin) >= 0 || (sendmax - sendmin) >= 0) /* ok, we have a contribution to the slab */
+ {
+ recv_dimx = meshmax_list[3 * recvTask + 0] - meshmin_list[3 * recvTask + 0] + 6;
+ recv_dimy = meshmax_list[3 * recvTask + 1] - meshmin_list[3 * recvTask + 1] + 6;
+ recv_dimz = meshmax_list[3 * recvTask + 2] - meshmin_list[3 * recvTask + 2] + 6;
+
+ ncont = 1;
+ cont_sendmin[0] = sendmin;
+ cont_sendmax[0] = sendmax;
+ cont_sendmin[1] = sendmax + 1;
+ cont_sendmax[1] = sendmax;
+
+ cont_recvmin[0] = recvmin;
+ cont_recvmax[0] = recvmax;
+ cont_recvmin[1] = recvmax + 1;
+ cont_recvmax[1] = recvmax;
+
+ for(slab_x = sendmin; slab_x <= sendmax; slab_x++)
+ {
+ if(slab_to_task[(slab_x + PMGRID) % PMGRID] != ThisTask)
+ {
+ /* non-contiguous */
+ cont_sendmax[0] = slab_x - 1;
+ while(slab_to_task[(slab_x + PMGRID) % PMGRID] != ThisTask)
+ slab_x++;
+ cont_sendmin[1] = slab_x;
+ ncont++;
+ }
+ }
+
+ for(slab_x = recvmin; slab_x <= recvmax; slab_x++)
+ {
+ if(slab_to_task[(slab_x + PMGRID) % PMGRID] != recvTask)
+ {
+ /* non-contiguous */
+ cont_recvmax[0] = slab_x - 1;
+ while(slab_to_task[(slab_x + PMGRID) % PMGRID] != recvTask)
+ slab_x++;
+ cont_recvmin[1] = slab_x;
+ if(ncont == 1)
+ ncont++;
+ }
+ }
+
+
+ for(rep = 0; rep < ncont; rep++)
+ {
+ sendmin = cont_sendmin[rep];
+ sendmax = cont_sendmax[rep];
+ recvmin = cont_recvmin[rep];
+ recvmax = cont_recvmax[rep];
+
+ /* prepare what we want to send */
+ if(sendmax - sendmin >= 0)
+ {
+ for(slab_x = sendmin; slab_x <= sendmax; slab_x++)
+ {
+ slab_xx = ((slab_x + PMGRID) % PMGRID) - first_slab_of_task[ThisTask];
+
+ for(slab_y = meshmin_list[3 * recvTask + 1] - 2;
+ slab_y < meshmax_list[3 * recvTask + 1] + 4; slab_y++)
+ {
+ slab_yy = (slab_y + PMGRID) % PMGRID;
+
+ for(slab_z = meshmin_list[3 * recvTask + 2] - 2;
+ slab_z <= meshmax_list[3 * recvTask + 2] + 4; slab_z++)
+ {
+ slab_zz = (slab_z + PMGRID) % PMGRID;
+
+ forcegrid[((slab_x - sendmin) * recv_dimy +
+ (slab_y - (meshmin_list[3 * recvTask + 1] - 2))) * recv_dimz +
+ slab_z - (meshmin_list[3 * recvTask + 2] - 2)] =
+ rhogrid[PMGRID * PMGRID2 * slab_xx + PMGRID2 * slab_yy + slab_zz];
+ }
+ }
+ }
+ }
+
+ if(level > 0)
+ {
+ MPI_Sendrecv(forcegrid,
+ (sendmax - sendmin + 1) * recv_dimy * recv_dimz * sizeof(fftw_real),
+ MPI_BYTE, recvTask, TAG_PERIODIC_D,
+ workspace + (recvmin - (meshmin[0] - 2)) * dimy * dimz,
+ (recvmax - recvmin + 1) * dimy * dimz * sizeof(fftw_real), MPI_BYTE,
+ recvTask, TAG_PERIODIC_D, MPI_COMM_WORLD, &status);
+ }
+ else
+ {
+ memcpy(workspace + (recvmin - (meshmin[0] - 2)) * dimy * dimz,
+ forcegrid, (recvmax - recvmin + 1) * dimy * dimz * sizeof(fftw_real));
+ }
+ }
+ }
+ }
+ }
+
+
+ dimx = meshmax[0] - meshmin[0] + 2;
+ dimy = meshmax[1] - meshmin[1] + 2;
+ dimz = meshmax[2] - meshmin[2] + 2;
+
+ recv_dimx = meshmax[0] - meshmin[0] + 6;
+ recv_dimy = meshmax[1] - meshmin[1] + 6;
+ recv_dimz = meshmax[2] - meshmin[2] + 6;
+
+
+
+ for(x = 0; x < meshmax[0] - meshmin[0] + 2; x++)
+ for(y = 0; y < meshmax[1] - meshmin[1] + 2; y++)
+ for(z = 0; z < meshmax[2] - meshmin[2] + 2; z++)
+ {
+ forcegrid[(x * dimy + y) * dimz + z] =
+ workspace[((x + 2) * recv_dimy + (y + 2)) * recv_dimz + (z + 2)];
+ }
+
+
+ /* read out the potential */
+
+ for(i = 0; i < NumPart; i++)
+ {
+ slab_x = to_slab_fac * P[i].Pos[0];
+ if(slab_x >= PMGRID)
+ slab_x = PMGRID - 1;
+ dx = to_slab_fac * P[i].Pos[0] - slab_x;
+ slab_x -= meshmin[0];
+ slab_xx = slab_x + 1;
+
+ slab_y = to_slab_fac * P[i].Pos[1];
+ if(slab_y >= PMGRID)
+ slab_y = PMGRID - 1;
+ dy = to_slab_fac * P[i].Pos[1] - slab_y;
+ slab_y -= meshmin[1];
+ slab_yy = slab_y + 1;
+
+ slab_z = to_slab_fac * P[i].Pos[2];
+ if(slab_z >= PMGRID)
+ slab_z = PMGRID - 1;
+ dz = to_slab_fac * P[i].Pos[2] - slab_z;
+ slab_z -= meshmin[2];
+ slab_zz = slab_z + 1;
+
+ P[i].Potential +=
+ forcegrid[(slab_x * dimy + slab_y) * dimz + slab_z] * (1.0 - dx) * (1.0 - dy) * (1.0 - dz);
+ P[i].Potential += forcegrid[(slab_x * dimy + slab_yy) * dimz + slab_z] * (1.0 - dx) * dy * (1.0 - dz);
+ P[i].Potential += forcegrid[(slab_x * dimy + slab_y) * dimz + slab_zz] * (1.0 - dx) * (1.0 - dy) * dz;
+ P[i].Potential += forcegrid[(slab_x * dimy + slab_yy) * dimz + slab_zz] * (1.0 - dx) * dy * dz;
+
+ P[i].Potential += forcegrid[(slab_xx * dimy + slab_y) * dimz + slab_z] * (dx) * (1.0 - dy) * (1.0 - dz);
+ P[i].Potential += forcegrid[(slab_xx * dimy + slab_yy) * dimz + slab_z] * (dx) * dy * (1.0 - dz);
+ P[i].Potential += forcegrid[(slab_xx * dimy + slab_y) * dimz + slab_zz] * (dx) * (1.0 - dy) * dz;
+ P[i].Potential += forcegrid[(slab_xx * dimy + slab_yy) * dimz + slab_zz] * (dx) * dy * dz;
+ }
+
+ pm_init_periodic_free();
+ force_treeallocate(All.TreeAllocFactor * All.MaxPart, All.MaxPart);
+
+ All.NumForcesSinceLastDomainDecomp = 1 + All.TotNumPart * All.TreeDomainUpdateFrequency;
+
+ if(ThisTask == 0)
+ {
+ printf("done PM-Potential.\n");
+ fflush(stdout);
+ }
+}
+
+#endif
+#endif
diff --git a/clusters/user/GEAR/src/pnbody.c b/clusters/user/GEAR/src/pnbody.c
new file mode 100644
index 0000000..4c088b6
--- /dev/null
+++ b/clusters/user/GEAR/src/pnbody.c
@@ -0,0 +1,283 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+
+#ifdef PNBODY
+
+
+#include <Python.h>
+#include <numpy/arrayobject.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+
+
+
+double NextTime;
+
+PyObject *ImageModule;
+PyObject *ImageDict;
+PyObject *ImageMaker;
+PyObject *pyCreator;
+PyObject *pyArgs;
+PyObject *pyFile;
+PyObject *pyNextTime;
+
+PyArrayObject *Pos;
+PyArrayObject *Vel;
+PyArrayObject *Num;
+PyArrayObject *Mass;
+PyArrayObject *Tpe;
+PyArrayObject *U;
+PyArrayObject *Rho;
+PyArrayObject *Rsp;
+
+PyArrayObject *Metals;
+
+
+void init_pnbody()
+{
+
+ /* initialize python and numpy */
+ Py_Initialize();
+ import_array();
+
+ ImageModule = PyImport_ImportModule("Mkgmov");
+
+
+ /* create the object */
+ pyCreator = PyObject_GetAttrString(ImageModule, "Movie");
+
+ /* file */
+ pyFile = PyString_FromString("filmparam.py");
+ pyArgs = PyTuple_New(1);
+ PyTuple_SetItem(pyArgs, 0, pyFile);
+
+ //ImageMaker = PyObject_CallObject(pyCreator, NULL);
+ ImageMaker = PyObject_CallObject(pyCreator, pyArgs);
+
+
+ /* deallocate */
+ Py_DECREF(pyCreator);
+ Py_DECREF(pyArgs);
+ Py_DECREF(pyFile);
+
+ /* dictionary */
+ ImageDict =PyDict_New();
+
+
+ /* give some info */
+ PyObject_CallMethod(ImageMaker, "info",NULL);
+
+}
+
+
+
+
+/*! finalize pNbody
+ *
+ */
+void finalize_pnbody()
+{
+
+
+ /* clean */
+ Py_DECREF(ImageDict);
+ Py_DECREF(ImageMaker);
+
+
+ Py_Finalize();
+
+}
+
+
+
+void compute_pnbody()
+{
+
+
+ /****************************************/
+ /* check if it is time for the next image
+ /****************************************/
+
+ pyNextTime = PyObject_CallMethod(ImageMaker, "get_next_time",NULL);
+
+ if (!PyFloat_Check(pyNextTime))
+ {
+ printf("no more time left.\n");
+ Py_DECREF(pyNextTime);
+ return;
+ }
+
+ NextTime = PyFloat_AsDouble(pyNextTime);
+
+ printf(" Time=%g NextTime=%g\n",All.Time,NextTime);
+
+
+ if (NextTime<=All.Time)
+ {
+
+ /* set next time */
+ PyObject_CallMethod(ImageMaker, "set_next_time",NULL);
+
+ /***********************************/
+ /* create arrays
+ /***********************************/
+
+ /*
+
+ need to add :
+
+ - metals (gas and stars)
+ - tstar (stars)
+ - minit (stars) (bof)
+ - idp (stars) (bof)
+ - rho_stars (stars) (bof)
+
+ */
+
+
+ int i,k;
+ npy_intp ld1[2],ld2[1],ldn[2];
+ FLOAT Ui,Rhoi,Rspi;
+
+
+
+ ld2[0]=NumPart;
+ ld2[1]=3;
+
+ ld1[0]=NumPart;
+
+ ldn[0]=NumPart;
+ ldn[1]=NELEMENTS;
+
+
+ Pos = (PyArrayObject *) PyArray_SimpleNew(2,ld2,NPY_FLOAT);
+ Vel = (PyArrayObject *) PyArray_SimpleNew(2,ld2,NPY_FLOAT);
+ Num = (PyArrayObject *) PyArray_SimpleNew(1,ld1,NPY_INT);
+ Mass= (PyArrayObject *) PyArray_SimpleNew(1,ld1,NPY_FLOAT);
+ Tpe = (PyArrayObject *) PyArray_SimpleNew(1,ld1,NPY_INT);
+
+ U = (PyArrayObject *) PyArray_SimpleNew(1,ld1,NPY_FLOAT);
+ Rho = (PyArrayObject *) PyArray_SimpleNew(1,ld1,NPY_FLOAT);
+ Rsp = (PyArrayObject *) PyArray_SimpleNew(1,ld1,NPY_FLOAT);
+
+ Metals = (PyArrayObject *) PyArray_SimpleNew(2,ldn,NPY_FLOAT);
+
+
+ for (i=0;i<NumPart;i++)
+ {
+
+ *(float*)(Pos->data + i*(Pos->strides[0]) + 0*Pos->strides[1]) = P[i].Pos[0] ;
+ *(float*)(Pos->data + i*(Pos->strides[0]) + 1*Pos->strides[1]) = P[i].Pos[1] ;
+ *(float*)(Pos->data + i*(Pos->strides[0]) + 2*Pos->strides[1]) = P[i].Pos[2] ;
+
+ *(float*)(Vel->data + i*(Vel->strides[0]) + 0*Vel->strides[1]) = P[i].Vel[0] ;
+ *(float*)(Vel->data + i*(Vel->strides[0]) + 1*Vel->strides[1]) = P[i].Vel[1] ;
+ *(float*)(Vel->data + i*(Vel->strides[0]) + 2*Vel->strides[1]) = P[i].Vel[2] ;
+
+ *(int*) (Num->data + i*(Num->strides[0])) = P[i].ID;
+ *(int*) (Tpe->data + i*(Tpe->strides[0])) = P[i].Type;
+ *(float*)(Mass->data + i*(Mass->strides[0])) = P[i].Mass;
+
+
+ if (i<N_gas)
+ {
+
+#ifdef ISOTHERM_EQS
+ Ui = P[i].Entropy ;
+#else
+ Ui = dmax(All.MinEgySpec,SphP[i].Entropy / GAMMA_MINUS1 * pow(SphP[i].Density , GAMMA_MINUS1));
+ //Ui = dmax(All.MinEgySpec,SphP[i].Entropy / GAMMA_MINUS1 * pow(SphP[i].Density * a3inv, GAMMA_MINUS1));
+#endif
+ Rhoi =SphP[i].Density ;
+
+ Rspi = SphP[i].Hsml ;
+ }
+ else
+ {
+ Ui = 0;
+ Rhoi=0;
+ Rspi=0;
+ }
+
+ *(float*)(U->data + i*( U->strides[0])) = Ui ;
+ *(float*)(Rho->data + i*(Rho->strides[0])) = Rhoi ;
+ *(float*)(Rsp->data + i*(Rsp->strides[0])) = Rspi ;
+
+
+ switch (P[i].Type)
+ {
+ case 0:
+ for(k=0;k<NELEMENTS;k++)
+ *(float*)(Metals->data + i*(Metals->strides[0]) + k*Metals->strides[1]) = SphP[i].Metal[k];
+ break;
+
+ case ST:
+ for(k=0;k<NELEMENTS;k++)
+ *(float*)(Metals->data + i*(Metals->strides[0]) + k*Metals->strides[1]) = StP[P[i].StPIdx].Metal[k];
+ break;
+
+ default:
+ for(k=0;k<NELEMENTS;k++)
+ *(float*)(Metals->data + i*(Metals->strides[0]) + k*Metals->strides[1]) = 0;
+ break;
+ }
+
+
+ }
+
+
+
+ /***********************************/
+ /* create image
+ /***********************************/
+
+
+
+ /* fill the dictionnary */
+ PyDict_Clear(ImageDict);
+ PyDict_SetItemString(ImageDict,"pos", (PyObject*)Pos);
+ PyDict_SetItemString(ImageDict,"vel", (PyObject*)Vel);
+ PyDict_SetItemString(ImageDict,"num", (PyObject*)Num);
+ PyDict_SetItemString(ImageDict,"mass", (PyObject*)Mass);
+ PyDict_SetItemString(ImageDict,"tpe", (PyObject*)Tpe);
+
+ PyDict_SetItemString(ImageDict,"u", (PyObject*)U);
+ PyDict_SetItemString(ImageDict,"rho", (PyObject*)Rho);
+ PyDict_SetItemString(ImageDict,"rsp", (PyObject*)Rsp);
+
+ PyDict_SetItemString(ImageDict,"metals", (PyObject*)Metals);
+
+ PyDict_SetItemString(ImageDict,"atime", PyFloat_FromDouble((double)All.Time));
+
+ /* call the dump method */
+ PyObject_CallMethod(ImageMaker, "dump","O",ImageDict);
+
+
+ Py_DECREF(Pos);
+ Py_DECREF(Vel);
+ Py_DECREF(Num);
+ Py_DECREF(Mass);
+ Py_DECREF(Tpe);
+ Py_DECREF(U);
+ Py_DECREF(Rho);
+ Py_DECREF(Rsp);
+ Py_DECREF(Metals);
+
+ }
+
+ Py_DECREF(pyNextTime);
+
+}
+
+
+
+
+#endif
+
diff --git a/clusters/user/GEAR/src/potential.c b/clusters/user/GEAR/src/potential.c
new file mode 100644
index 0000000..976c3dd
--- /dev/null
+++ b/clusters/user/GEAR/src/potential.c
@@ -0,0 +1,331 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <float.h>
+#include <mpi.h>
+
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file potential.c
+ * \brief Computation of the gravitational potential of particles
+ */
+
+
+/*! This function computes the gravitational potential for ALL the particles.
+ * First, the (short-range) tree potential is computed, and then, if needed,
+ * the long range PM potential is added.
+ */
+void compute_potential(void)
+{
+ int i;
+
+#ifndef NOGRAVITY
+ long long ntot, ntotleft;
+ int j, k, level, sendTask, recvTask;
+ int ndone;
+ int maxfill, ngrp, place, nexport;
+ int *nsend, *noffset, *nsend_local, *nbuffer, *ndonelist, *numlist;
+ double fac;
+ double t0, t1, tstart, tend;
+ MPI_Status status;
+ double r2;
+
+ t0 = second();
+
+ if(All.ComovingIntegrationOn)
+ set_softenings();
+
+ if(ThisTask == 0)
+ {
+ printf("Start computation of potential for all particles...\n");
+ fflush(stdout);
+ }
+
+
+ tstart = second();
+ if(TreeReconstructFlag)
+ {
+ if(ThisTask == 0)
+ printf("Tree construction.\n");
+
+ force_treebuild(NumPart);
+
+ TreeReconstructFlag = 0;
+
+ if(ThisTask == 0)
+ printf("Tree construction done.\n");
+ }
+ tend = second();
+ All.CPU_TreeConstruction += timediff(tstart, tend);
+
+ numlist = malloc(NTask * sizeof(int) * NTask);
+ MPI_Allgather(&NumPart, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, ntot = 0; i < NTask; i++)
+ ntot += numlist[i];
+ free(numlist);
+
+ noffset = malloc(sizeof(int) * NTask); /* offsets of bunches in common list */
+ nbuffer = malloc(sizeof(int) * NTask);
+ nsend_local = malloc(sizeof(int) * NTask);
+ nsend = malloc(sizeof(int) * NTask * NTask);
+ ndonelist = malloc(sizeof(int) * NTask);
+
+ i = 0; /* beginn with this index */
+ ntotleft = ntot; /* particles left for all tasks together */
+
+ while(ntotleft > 0)
+ {
+ for(j = 0; j < NTask; j++)
+ nsend_local[j] = 0;
+
+ /* do local particles and prepare export list */
+ for(nexport = 0, ndone = 0; i < NumPart && nexport < All.BunchSizeForce - NTask; i++)
+ {
+ ndone++;
+
+ for(j = 0; j < NTask; j++)
+ Exportflag[j] = 0;
+
+#ifndef PMGRID
+ force_treeevaluate_potential(i, 0);
+#else
+ force_treeevaluate_potential_shortrange(i, 0);
+#endif
+
+ for(j = 0; j < NTask; j++)
+ {
+ if(Exportflag[j])
+ {
+ for(k = 0; k < 3; k++)
+ GravDataGet[nexport].u.Pos[k] = P[i].Pos[k];
+#ifdef UNEQUALSOFTENINGS
+ GravDataGet[nexport].Type = P[i].Type;
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(P[i].Type == 0)
+ GravDataGet[nexport].Soft = SphP[i].Hsml;
+#endif
+#endif
+ GravDataGet[nexport].w.OldAcc = P[i].OldAcc;
+
+ GravDataIndexTable[nexport].Task = j;
+ GravDataIndexTable[nexport].Index = i;
+ GravDataIndexTable[nexport].SortIndex = nexport;
+
+ nexport++;
+ nsend_local[j]++;
+ }
+ }
+ }
+
+ qsort(GravDataIndexTable, nexport, sizeof(struct gravdata_index), grav_tree_compare_key);
+
+ for(j = 0; j < nexport; j++)
+ GravDataIn[j] = GravDataGet[GravDataIndexTable[j].SortIndex];
+
+ for(j = 1, noffset[0] = 0; j < NTask; j++)
+ noffset[j] = noffset[j - 1] + nsend_local[j - 1];
+
+ MPI_Allgather(nsend_local, NTask, MPI_INT, nsend, NTask, MPI_INT, MPI_COMM_WORLD);
+
+ /* now do the particles that need to be exported */
+
+ for(level = 1; level < (1 << PTask); level++)
+ {
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeForce)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* get the particles */
+ MPI_Sendrecv(&GravDataIn[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct gravdata_in), MPI_BYTE,
+ recvTask, TAG_POTENTIAL_A,
+ &GravDataGet[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct gravdata_in), MPI_BYTE,
+ recvTask, TAG_POTENTIAL_A, MPI_COMM_WORLD, &status);
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+
+ for(j = 0; j < nbuffer[ThisTask]; j++)
+ {
+#ifndef PMGRID
+ force_treeevaluate_potential(j, 1);
+#else
+ force_treeevaluate_potential_shortrange(j, 1);
+#endif
+ }
+
+
+ /* get the result */
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeForce)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* send the results */
+ MPI_Sendrecv(&GravDataResult[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct gravdata_in),
+ MPI_BYTE, recvTask, TAG_POTENTIAL_B,
+ &GravDataOut[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct gravdata_in),
+ MPI_BYTE, recvTask, TAG_POTENTIAL_B, MPI_COMM_WORLD, &status);
+
+ /* add the result to the particles */
+ for(j = 0; j < nsend_local[recvTask]; j++)
+ {
+ place = GravDataIndexTable[noffset[recvTask] + j].Index;
+
+ P[place].Potential += GravDataOut[j + noffset[recvTask]].u.Potential;
+ }
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+
+ level = ngrp - 1;
+ }
+
+ MPI_Allgather(&ndone, 1, MPI_INT, ndonelist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(j = 0; j < NTask; j++)
+ ntotleft -= ndonelist[j];
+ }
+
+ free(ndonelist);
+ free(nsend);
+ free(nsend_local);
+ free(nbuffer);
+ free(noffset);
+
+
+ /* add correction to exclude self-potential */
+
+ for(i = 0; i < NumPart; i++)
+ {
+ /* remove self-potential */
+ P[i].Potential += P[i].Mass / All.SofteningTable[P[i].Type];
+
+ if(All.ComovingIntegrationOn)
+ if(All.PeriodicBoundariesOn)
+ P[i].Potential -= 2.8372975 * pow(P[i].Mass, 2.0 / 3) *
+ pow(All.Omega0 * 3 * All.Hubble * All.Hubble / (8 * M_PI * All.G), 1.0 / 3);
+ }
+
+
+ /* multiply with the gravitational constant */
+
+ for(i = 0; i < NumPart; i++)
+ P[i].Potential *= All.G;
+
+
+#ifdef PMGRID
+
+#ifdef PERIODIC
+ pmpotential_periodic();
+#ifdef PLACEHIGHRESREGION
+ pmpotential_nonperiodic(1);
+#endif
+#else
+ pmpotential_nonperiodic(0);
+#ifdef PLACEHIGHRESREGION
+ pmpotential_nonperiodic(1);
+#endif
+#endif
+
+#endif
+
+
+
+ if(All.ComovingIntegrationOn)
+ {
+#ifndef PERIODIC
+ fac = -0.5 * All.Omega0 * All.Hubble * All.Hubble;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ for(k = 0, r2 = 0; k < 3; k++)
+ r2 += P[i].Pos[k] * P[i].Pos[k];
+
+ P[i].Potential += fac * r2;
+ }
+#endif
+ }
+ else
+ {
+ fac = -0.5 * All.OmegaLambda * All.Hubble * All.Hubble;
+ if(fac != 0)
+ {
+ for(i = 0; i < NumPart; i++)
+ {
+ for(k = 0, r2 = 0; k < 3; k++)
+ r2 += P[i].Pos[k] * P[i].Pos[k];
+
+ P[i].Potential += fac * r2;
+ }
+ }
+ }
+
+
+ if(ThisTask == 0)
+ {
+ printf("potential done.\n");
+ fflush(stdout);
+ }
+
+ t1 = second();
+
+ All.CPU_Potential += timediff(t0, t1);
+
+#else
+ for(i = 0; i < NumPart; i++)
+ P[i].Potential = 0;
+#endif
+
+#ifdef OUTERPOTENTIAL
+ /* Add contribution from an outer potential */
+ outer_potential();
+#endif
+}
diff --git a/clusters/user/GEAR/src/predict.c b/clusters/user/GEAR/src/predict.c
new file mode 100644
index 0000000..3b2ea3d
--- /dev/null
+++ b/clusters/user/GEAR/src/predict.c
@@ -0,0 +1,178 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_math.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file predict.c
+ * \brief drift particles by a small time interval
+ *
+ * This function contains code to implement a drift operation on all the
+ * particles, which represents one part of the leapfrog integration scheme.
+ */
+
+
+/*! This function drifts all particles from the current time to the future:
+ * time0 - > time1
+ *
+ * If there is no explicit tree construction in the following timestep, the
+ * tree nodes are also drifted and updated accordingly. Note: For periodic
+ * boundary conditions, the mapping of coordinates onto the interval
+ * [0,All.BoxSize] is only done before the domain decomposition, or for
+ * outputs to snapshot files. This simplifies dynamic tree updates, and
+ * allows the domain decomposition to be carried out only every once in a
+ * while.
+ */
+void move_particles(int time0, int time1)
+{
+ int i, j;
+ double dt_drift, dt_gravkick, dt_hydrokick, dt_entr;
+ double t0, t1;
+
+
+ t0 = second();
+
+ if(All.ComovingIntegrationOn)
+ {
+ dt_drift = get_drift_factor(time0, time1);
+ dt_gravkick = get_gravkick_factor(time0, time1);
+ dt_hydrokick = get_hydrokick_factor(time0, time1);
+ }
+ else
+ {
+ dt_drift = dt_gravkick = dt_hydrokick = (time1 - time0) * All.Timebase_interval;
+ }
+
+ for(i = 0; i < NumPart; i++)
+ {
+ for(j = 0; j < 3; j++)
+ P[i].Pos[j] += P[i].Vel[j] * dt_drift;
+
+ if(P[i].Type == 0)
+ {
+#ifdef PMGRID
+ for(j = 0; j < 3; j++)
+ {
+ SphP[i].VelPred[j] += (P[i].GravAccel[j] + P[i].GravPM[j]) * dt_gravkick + SphP[i].HydroAccel[j] * dt_hydrokick;
+ }
+#else
+ for(j = 0; j < 3; j++)
+ {
+ SphP[i].VelPred[j] += P[i].GravAccel[j] * dt_gravkick + SphP[i].HydroAccel[j] * dt_hydrokick;
+ }
+#endif
+ SphP[i].Density *= exp(-SphP[i].DivVel * dt_drift);
+ SphP[i].Hsml *= exp(0.333333333333 * SphP[i].DivVel * dt_drift);
+
+ if(SphP[i].Hsml < All.MinGasHsml)
+ SphP[i].Hsml = All.MinGasHsml;
+
+ dt_entr = (time1 - (P[i].Ti_begstep + P[i].Ti_endstep) / 2) * All.Timebase_interval;
+
+ SphP[i].Pressure = (SphP[i].Entropy + SphP[i].DtEntropy * dt_entr) * pow(SphP[i].Density, GAMMA);
+
+#ifdef ENTROPYPRED
+ SphP[i].EntropyPred = (SphP[i].Entropy + SphP[i].DtEntropy * dt_entr);
+#endif
+
+
+#ifdef CHECK_ENTROPY_SIGN
+ if ((SphP[i].EntropyPred < 0)||(SphP[i].Entropy < 0))
+ {
+ printf("\ntask=%d: entropy less than zero in move_particles !\n", ThisTask);
+ printf("ID=%d Entropy=%g EntropyPred=%g DtEntropy=%g dt_entr=%g\n",P[i].ID,SphP[i].Entropy,SphP[i].EntropyPred,SphP[i].DtEntropy,dt_entr);
+ fflush(stdout);
+ endrun(333001);
+
+ }
+#endif
+
+
+
+#ifdef NO_NEGATIVE_PRESSURE
+ if (SphP[i].Pressure<0)
+ {
+ printf("\ntask=%d: pressure less than zero in move_particles !\n", ThisTask);
+ printf("ID=%d Entropy=%g DtEntropy*dt=%g Density=%g DtEntropy=%g dt=%g\n",P[i].ID,SphP[i].Entropy,SphP[i].DtEntropy*dt_entr,SphP[i].Density,SphP[i].DtEntropy,dt_entr);
+ fflush(stdout);
+ endrun(333002);
+ }
+#endif
+
+
+
+ /***********************************************************/
+ /* compute art visc coeff */
+ /***********************************************************/
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS) || defined(ART_VISCO_CD)
+ move_art_visc(i,dt_drift);
+#endif
+
+
+
+
+
+
+ }
+ }
+
+ /* if domain-decomp and tree are not going to be reconstructed, update dynamically. */
+ if(All.NumForcesSinceLastDomainDecomp < All.TotNumPart * All.TreeDomainUpdateFrequency)
+ {
+ for(i = 0; i < Numnodestree; i++)
+ for(j = 0; j < 3; j++)
+ Nodes[All.MaxPart + i].u.d.s[j] += Extnodes[All.MaxPart + i].vs[j] * dt_drift;
+
+ force_update_len();
+
+ force_update_pseudoparticles();
+ }
+
+ t1 = second();
+
+ All.CPU_Predict += timediff(t0, t1);
+}
+
+
+
+/*! This function makes sure that all particle coordinates (Pos) are
+ * periodically mapped onto the interval [0, BoxSize]. After this function
+ * has been called, a new domain decomposition should be done, which will
+ * also force a new tree construction.
+ */
+#ifdef PERIODIC
+void do_box_wrapping(void)
+{
+ int i, j;
+ double boxsize[3];
+
+ for(j = 0; j < 3; j++)
+ boxsize[j] = All.BoxSize;
+
+#ifdef LONG_X
+ boxsize[0] *= LONG_X;
+#endif
+#ifdef LONG_Y
+ boxsize[1] *= LONG_Y;
+#endif
+#ifdef LONG_Z
+ boxsize[2] *= LONG_Z;
+#endif
+
+ for(i = 0; i < NumPart; i++)
+ for(j = 0; j < 3; j++)
+ {
+ while(P[i].Pos[j] < 0)
+ P[i].Pos[j] += boxsize[j];
+
+ while(P[i].Pos[j] >= boxsize[j])
+ P[i].Pos[j] -= boxsize[j];
+ }
+}
+#endif
diff --git a/clusters/user/GEAR/src/proto.h b/clusters/user/GEAR/src/proto.h
new file mode 100644
index 0000000..127c2f5
--- /dev/null
+++ b/clusters/user/GEAR/src/proto.h
@@ -0,0 +1,429 @@
+/*! \file proto.h
+ * \brief this file contains all function prototypes of the code
+ */
+
+#ifndef ALLVARS_H
+#include "allvars.h"
+#endif
+
+#ifdef HAVE_HDF5
+#include <hdf5.h>
+#endif
+
+void advance_and_find_timesteps(void);
+void allocate_commbuffers(void);
+void allocate_memory(void);
+void begrun(void);
+int blockpresent(enum iofields blocknr);
+#ifdef BLOCK_SKIPPING
+int blockabsent(enum iofields blocknr);
+#endif
+void catch_abort(int sig);
+void catch_fatal(int sig);
+void check_omega(void);
+void close_outputfiles(void);
+int compare_key(const void *a, const void *b);
+void compute_accelerations(int mode);
+void compute_global_quantities_of_system(void);
+void compute_potential(void);
+int dens_compare_key(const void *a, const void *b);
+void density(int mode);
+void density_decouple(void);
+void density_evaluate(int i, int mode);
+#ifdef CHIMIE
+int stars_dens_compare_key(const void *a, const void *b);
+void stars_density(void);
+void stars_density_evaluate(int i, int mode);
+#endif
+
+void distribute_file(int nfiles, int firstfile, int firsttask, int lasttask, int *filenr, int *master, int *last);
+double dmax(double, double);
+double dmin(double, double);
+void do_box_wrapping(void);
+
+void domain_Decomposition(void);
+int domain_compare_key(const void *a, const void *b);
+int domain_compare_key(const void *a, const void *b);
+int domain_compare_toplist(const void *a, const void *b);
+void domain_countToGo(void);
+void domain_decompose(void);
+void domain_determineTopTree(void);
+void domain_exchangeParticles(int partner, int sphflag, int send_count, int recv_count);
+void domain_findExchangeNumbers(int task, int partner, int sphflag, int *send, int *recv);
+void domain_findExtent(void);
+int domain_findSplit(int cpustart, int ncpu, int first, int last);
+int domain_findSplityr(int cpustart, int ncpu, int first, int last);
+void domain_shiftSplit(void);
+void domain_shiftSplityr(void);
+void domain_sumCost(void);
+void domain_topsplit(int node, peanokey startkey);
+void domain_topsplit_local(int node, peanokey startkey);
+
+double drift_integ(double a, void *param);
+void dump_particles(void);
+void empty_read_buffer(enum iofields blocknr, int offset, int pc, int type);
+void endrun(int);
+void energy_statistics(void);
+#ifdef ADVANCEDSTATISTICS
+void advanced_energy_statistics(void);
+#endif
+void every_timestep_stuff(void);
+
+void ewald_corr(double dx, double dy, double dz, double *fper);
+void ewald_force(int ii, int jj, int kk, double x[3], double force[3]);
+void ewald_init(void);
+double ewald_pot_corr(double dx, double dy, double dz);
+double ewald_psi(double x[3]);
+
+void fill_Tab_IO_Labels(void);
+void fill_write_buffer(enum iofields blocknr, int *pindex, int pc, int type);
+void find_dt_displacement_constraint(double hfac);
+int find_files(char *fname);
+int find_next_outputtime(int time);
+void find_next_sync_point_and_drift(void);
+
+void force_create_empty_nodes(int no, int topnode, int bits, int x, int y, int z, int *nodecount, int *nextfree);
+void force_exchange_pseudodata(void);
+void force_flag_localnodes(void);
+void force_insert_pseudo_particles(void);
+void force_setupnonrecursive(int no);
+void force_treeallocate(int maxnodes, int maxpart);
+int force_treebuild(int npart);
+int force_treebuild_single(int npart);
+int force_treeevaluate(int target, int mode, double *ewaldcountsum);
+int force_treeevaluate_direct(int target, int mode);
+int force_treeevaluate_ewald_correction(int target, int mode, double pos_x, double pos_y, double pos_z, double aold);
+void force_treeevaluate_potential(int target, int type);
+void force_treeevaluate_potential_shortrange(int target, int mode);
+int force_treeevaluate_shortrange(int target, int mode);
+void force_treefree(void);
+void force_treeupdate_pseudos(void);
+void force_update_hmax(void);
+void force_update_len(void);
+void force_update_node(int no, int flag);
+void force_update_node_hmax_local(void);
+void force_update_node_hmax_toptree(void);
+void force_update_node_len_local(void);
+void force_update_node_len_toptree(void);
+void force_update_node_recursive(int no, int sib, int father);
+void force_update_pseudoparticles(void);
+void force_update_size_of_parent_node(int no);
+
+void free_memory(void);
+
+int get_bytes_per_blockelement(enum iofields blocknr);
+void get_dataset_name(enum iofields blocknr, char *buf);
+int get_datatype_in_block(enum iofields blocknr);
+double get_drift_factor(int time0, int time1);
+double get_gravkick_factor(int time0, int time1);
+double get_hydrokick_factor(int time0, int time1);
+int get_particles_in_block(enum iofields blocknr, int *typelist);
+double get_random_number(int id);
+#ifdef SFR
+double get_StarFormation_random_number(int id);
+#endif
+#ifdef FEEDBACK_WIND
+double get_FeedbackWind_random_number(int id);
+#endif
+#ifdef CHIMIE
+double get_Chimie_random_number(int id);
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+double get_ChimieKineticFeedback_random_number(int id);
+#endif
+int get_timestep(int p, double *a, int flag);
+int get_values_per_blockelement(enum iofields blocknr);
+
+int grav_tree_compare_key(const void *a, const void *b);
+void gravity_forcetest(void);
+void gravity_tree(void);
+void gravity_tree_shortrange(void);
+double gravkick_integ(double a, void *param);
+
+int hydro_compare_key(const void *a, const void *b);
+void hydro_evaluate(int target, int mode);
+void hydro_force(void);
+double hydrokick_integ(double a, void *param);
+
+int imax(int, int);
+int imin(int, int);
+
+void init(void);
+void init_drift_table(void);
+void init_peano_map(void);
+
+
+#ifdef COSMICTIME
+void init_cosmictime_table(void);
+double get_cosmictime_difference(int time0, int time1);
+#endif
+
+void long_range_force(void);
+void long_range_init(void);
+void long_range_init_regionsize(void);
+void move_particles(int time0, int time1);
+size_t my_fread(void *ptr, size_t size, size_t nmemb, FILE * stream);
+size_t my_fwrite(void *ptr, size_t size, size_t nmemb, FILE * stream);
+
+int ngb_clear_buf(FLOAT searchcenter[3], FLOAT hguess, int numngb);
+void ngb_treeallocate(int npart);
+void ngb_treebuild(void);
+int ngb_treefind_pairs(FLOAT searchcenter[3], FLOAT hsml, int phase, int *startnode);
+#ifdef MULTIPHASE
+int ngb_treefind_phase_pairs(FLOAT searchcenter[3], FLOAT hsml, int phase, int *startnode);
+int ngb_treefind_sticky_collisions(FLOAT searchcenter[3], FLOAT hguess, int phase, int *startnode);
+#endif
+int ngb_treefind_variable(FLOAT searchcenter[3], FLOAT hguess, int phase, int *startnode);
+#ifdef CHIMIE
+int ngb_treefind_variable_for_chimie(FLOAT searchcenter[3], FLOAT hguess, int *startnode);
+#endif
+void ngb_treefree(void);
+void ngb_treesearch(int);
+void ngb_treesearch_pairs(int);
+void ngb_update_nodes(void);
+
+void open_outputfiles(void);
+
+peanokey peano_hilbert_key(int x, int y, int z, int bits);
+void peano_hilbert_order(void);
+
+void pm_init_nonperiodic(void);
+void pm_init_nonperiodic_allocate(int dimprod);
+void pm_init_nonperiodic_free(void);
+void pm_init_periodic(void);
+void pm_init_periodic_allocate(int dimprod);
+void pm_init_periodic_free(void);
+void pm_init_regionsize(void);
+void pm_setup_nonperiodic_kernel(void);
+int pmforce_nonperiodic(int grnr);
+void pmforce_periodic(void);
+int pmpotential_nonperiodic(int grnr);
+void pmpotential_periodic(void);
+
+double pow(double, double); /* on some old DEC Alphas, the correct prototype for pow() is missing, even when math.h is included */
+
+void read_file(char *fname, int readTask, int lastTask);
+void read_header_attributes_in_hdf5(char *fname);
+void read_ic(char *fname);
+int read_outputlist(char *fname);
+void read_parameter_file(char *fname);
+void readjust_timebase(double TimeMax_old, double TimeMax_new);
+
+void reorder_gas(void);
+void reorder_particles(void);
+#ifdef STELLAR_PROP
+void reorder_stars(void);
+void reorder_st(void);
+#endif
+void restart(int mod);
+void run(void);
+void savepositions(int num);
+
+double second(void);
+
+void seed_glass(void);
+void set_random_numbers(void);
+void set_softenings(void);
+void set_units(void);
+void init_local_sys_state(void);
+
+void setup_smoothinglengths(void);
+#ifdef CHIMIE
+void stars_setup_smoothinglengths(void);
+#endif
+void statistics(void);
+void terminate_processes(void);
+double timediff(double t0, double t1);
+
+#ifdef HAVE_HDF5
+void write_header_attributes_in_hdf5(hid_t handle);
+#endif
+void write_file(char *fname, int readTask, int lastTask);
+void write_pid_file(void);
+
+#ifdef COOLING
+int init_cooling(FLOAT metallicity);
+int init_cooling_with_metals();
+double cooling_function(double temperature);
+double cooling_function_with_metals(double temperature,double metal);
+void init_from_new_redshift(double Redshift);
+double J_0();
+double J_nu(double e);
+double sigma_rad_HI(double e);
+double sigma_rad_HeI(double e);
+double sigma_rad_HeII(double e);
+double cooling_bremstrahlung_HI(double T);
+double cooling_bremstrahlung_HeI(double T);
+double cooling_bremstrahlung_HeII(double T);
+double cooling_ionization_HI(double T);
+double cooling_ionization_HeI(double T);
+double cooling_ionization_HeII(double T);
+double cooling_recombination_HI(double T);
+double cooling_recombination_HeI(double T);
+double cooling_recombination_HeII(double T);
+double cooling_dielectric_recombination(double T);
+double cooling_excitation_HI(double T);
+double cooling_excitation_HII(double T);
+double cooling_compton(double T);
+double A_HII(double T);
+double A_HeIId(double T);
+double A_HeII(double T);
+double A_HeIII(double T);
+double G_HI(double T);
+double G_HeI(double T);
+double G_HeII(double T);
+double G_gHI();
+double G_gHeI();
+double G_gHeII();
+double G_gHI_t(double J0);
+double G_gHeI_t(double J0);
+double G_gHeII_t(double J0);
+double G_gHI_w();
+double G_gHeI_w();
+double G_gHeII_w();
+double heating_radiative_HI();
+double heating_radiative_HeI();
+double heating_radiative_HeII();
+double heating_radiative_HI_t(double J0);
+double heating_radiative_HeI_t(double J0);
+double heating_radiative_HeII_t(double J0);
+double heating_radiative_HI_w();
+double heating_radiative_HeI_w();
+double heating_radiative_HeII_w();
+double heating_compton();
+void print_cooling(double T,double c1,double c2,double c3,double c4,double c5,double c6,double c7,double c8,double c9,double c10,double c11,double c12,double c13,double h1, double h2, double h3, double h4);
+void compute_densities(double T,double X,double* n_H, double* n_HI,double* n_HII,double* n_HEI,double* n_HEII,double* n_HEIII,double* n_E,double* mu);
+void compute_cooling_from_T_and_Nh(double T,double X,double n_H,double *c1,double *c2,double *c3,double *c4,double *c5,double *c6,double *c7,double *c8,double *c9,double *c10,double *c11,double *c12,double *c13,double *h1, double *h2, double *h3, double *h4);
+double compute_cooling_from_Egyspec_and_Density(double Egyspec,double Density, double *MeanWeight);
+double DoCooling(FLOAT Density,FLOAT Entropy,int Phase,int i,FLOAT DtEntropyVisc, double dt, double hubble_a);
+void CoolingForOne(int i,int t0,int t1,double a3inv,double hubble_a);
+void cooling();
+double lambda(FLOAT density,FLOAT egyspec, int phase, int i);
+#endif
+
+#ifdef HEATING
+void heating();
+double gamma_fct(FLOAT Density,FLOAT Entropy,int i);
+#endif
+
+#ifdef AGN_HEATING
+void agn_heating();
+double gamma_fct(FLOAT density,double r, double SpecPower);
+double HeatingRadialDependency(double r);
+#endif
+
+#ifdef MULTIPHASE
+void update_phase(void);
+void init_sticky(void);
+void sticky(void);
+void sticky_compute_energy_kin(int mode);
+void sticky_collisions(void);
+void sticky_collisions2(int loop);
+void sticky_evaluate(int target, int mode, int loop);
+int sticky_compare_key(const void *a, const void *b);
+#endif
+
+
+#ifdef FEEDBACK_WIND
+void feedbackwind_compute_energy_kin(int mode);
+#endif
+
+
+#ifdef CHIMIE
+void init_chimie(void);
+void check_chimie(void);
+void chimie(void);
+void do_chimie(void);
+void chimie_evaluate(int target, int mode);
+int chimie_compare_key(const void *a, const void *b);
+int get_nelts();
+char* get_Element(i);
+float get_SolarAbundance(i);
+#if defined(CHIMIE_THERMAL_FEEDBACK) && defined(CHIMIE_COMPUTE_THERMAL_FEEDBACK_ENERGY)
+void chimie_compute_energy_int(int mode);
+#endif
+#if defined(CHIMIE_KINETIC_FEEDBACK) && defined(CHIMIE_COMPUTE_KINETIC_FEEDBACK_ENERGY)
+void chimie_compute_energy_kin(int mode);
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+void chimie_apply_wind(void);
+#endif
+#endif
+
+
+#ifdef OUTERPOTENTIAL
+void init_outer_potential(void);
+void outer_forces(void);
+void outer_potential(void);
+
+#ifdef NFW
+void init_outer_potential_nfw(void);
+void outer_forces_nfw(void);
+void outer_potential_nfw(void);
+#endif
+
+#ifdef PLUMMER
+void init_outer_potential_plummer(void);
+void outer_forces_plummer(void);
+void outer_potential_plummer(void);
+#endif
+
+#ifdef PISOTHERM
+void init_outer_potential_pisotherm(void);
+void outer_forces_pisotherm(void);
+void outer_potential_pisotherm(void);
+double potential_f(double r, void * params);
+double get_potential(double r);
+#endif
+
+#ifdef CORIOLIS
+void init_outer_potential_coriolis(void);
+void set_outer_potential_coriolis(void);
+void outer_forces_coriolis(void);
+void outer_potential_coriolis(void);
+#endif
+#endif
+
+#ifdef SFR
+void star_formation(void);
+void rearrange_particle_sequence(void);
+void sfr_compute_energy_int(int mode);
+void sfr_check_number_of_stars(int mode);
+#endif
+
+#ifdef AGN_ACCRETION
+void compute_agn_accretion(void);
+#endif
+
+#ifdef BUBBLES
+void init_bubble(void);
+void make_bubble(void);
+void create_bubble(int sign);
+#endif
+
+#ifdef BONDI_ACCRETION
+void bondi_accretion(void);
+#endif
+
+
+#ifdef PNBODY
+void init_pnbody();
+void finalize_pnbody();
+void compute_pnbody();
+#endif
+
+#ifdef AB_TURB
+void init_turb();
+#endif
+
+#if defined(ART_VISCO_MM)|| defined(ART_VISCO_ROSS) || defined(ART_VISCO_CD)
+void move_art_visc(int i,double dt_drift);
+
+#ifdef ART_VISCO_CD
+void art_visc_allocate();
+void art_visc_free();
+void compute_art_visc(int i);
+#endif
+
+#endif
+
diff --git a/clusters/user/GEAR/src/read_ic.c b/clusters/user/GEAR/src/read_ic.c
new file mode 100644
index 0000000..225a19d
--- /dev/null
+++ b/clusters/user/GEAR/src/read_ic.c
@@ -0,0 +1,946 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <string.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file read_ic.c
+ * \brief Read initial conditions in one of Gadget's file formats
+ */
+
+/*! This function reads initial conditions, in one of the three possible file
+ * formats currently supported by Gadget. Note: When a snapshot file is
+ * started from initial conditions (start-option 0), not all the information
+ * in the header is used, in particular, the STARTING TIME needs to be set in
+ * the parameterfile. Also, for gas particles, only the internal energy is
+ * read, the density and mean molecular weight will be recomputed by the
+ * code. When InitGasTemp>0 is given, the gas temperature will be initialzed
+ * to this value assuming a mean colecular weight either corresponding to
+ * complete neutrality, or full ionization.
+ *
+ * However, when the code is started with start-option 2, then all the this
+ * data in the snapshot files is preserved, i.e. this is also the way to
+ * resume a simulation from a snapshot file in case a regular restart file is
+ * not available.
+ */
+void read_ic(char *fname)
+{
+ int i, num_files, rest_files, ngroups, gr, filenr, masterTask, lastTask, groupMaster;
+ double u_init;
+ char buf[500];
+#ifndef ISOTHERM_EQS
+ double molecular_weight;
+#endif
+
+
+ NumPart = 0;
+ N_gas = 0;
+#ifdef SFR
+ N_stars = 0;
+#endif
+ All.TotNumPart = 0;
+
+ num_files = find_files(fname);
+
+ rest_files = num_files;
+
+ fill_Tab_IO_Labels();
+
+ while(rest_files > NTask)
+ {
+ sprintf(buf, "%s.%d", fname, ThisTask + (rest_files - NTask));
+ if(All.ICFormat == 3)
+ sprintf(buf, "%s.%d.hdf5", fname, ThisTask + (rest_files - NTask));
+
+ ngroups = NTask / All.NumFilesWrittenInParallel;
+ if((NTask % All.NumFilesWrittenInParallel))
+ ngroups++;
+ groupMaster = (ThisTask / ngroups) * ngroups;
+
+ for(gr = 0; gr < ngroups; gr++)
+ {
+ if(ThisTask == (groupMaster + gr)) /* ok, it's this processor's turn */
+ read_file(buf, ThisTask, ThisTask);
+ MPI_Barrier(MPI_COMM_WORLD);
+ }
+
+ rest_files -= NTask;
+ }
+
+
+ if(rest_files > 0)
+ {
+ distribute_file(rest_files, 0, 0, NTask - 1, &filenr, &masterTask, &lastTask);
+
+ if(num_files > 1)
+ {
+ sprintf(buf, "%s.%d", fname, filenr);
+ if(All.ICFormat == 3)
+ sprintf(buf, "%s.%d.hdf5", fname, filenr);
+ }
+ else
+ {
+ sprintf(buf, "%s", fname);
+ if(All.ICFormat == 3)
+ sprintf(buf, "%s.hdf5", fname);
+ }
+
+ ngroups = rest_files / All.NumFilesWrittenInParallel;
+ if((rest_files % All.NumFilesWrittenInParallel))
+ ngroups++;
+
+ for(gr = 0; gr < ngroups; gr++)
+ {
+ if((filenr / All.NumFilesWrittenInParallel) == gr) /* ok, it's this processor's turn */
+ read_file(buf, masterTask, lastTask);
+ MPI_Barrier(MPI_COMM_WORLD);
+ }
+ }
+
+
+ /* this makes sure that masses are initialized in the case that the mass-block
+ is completely empty */
+ for(i = 0; i < NumPart; i++)
+ {
+ if(All.MassTable[P[i].Type] != 0)
+ P[i].Mass = All.MassTable[P[i].Type];
+ }
+
+ if(RestartFlag == 0)
+ {
+ if(All.InitGasTemp > 0)
+ {
+ u_init = (BOLTZMANN / PROTONMASS) * All.InitGasTemp;
+ u_init *= All.UnitMass_in_g / All.UnitEnergy_in_cgs; /* unit conversion */
+
+#ifdef ISOTHERM_EQS
+ u_init *= (3.0/2);
+#else
+ u_init *= (1.0 / GAMMA_MINUS1);
+
+ if(All.InitGasTemp > 1.0e4) /* assuming FULL ionization */
+ molecular_weight = 4 / (8 - 5 * (1 - HYDROGEN_MASSFRAC));
+ else /* assuming NEUTRAL GAS */
+ molecular_weight = 4 / (1 + 3 * HYDROGEN_MASSFRAC);
+
+ u_init /= molecular_weight;
+#endif
+
+ for(i = 0; i < N_gas; i++)
+ {
+ if(SphP[i].Entropy == 0)
+ SphP[i].Entropy = u_init;
+
+ /* Note: the conversion to entropy will be done in the function init(),
+ after the densities have been computed */
+ }
+ }
+ }
+
+
+#ifdef WRITE_ALL_MASSES
+ for(i = 0; i < 6; i++)
+ All.MassTable[i] = 0;
+#endif
+
+#ifdef MULTIPHASE
+ for(i = 0; i < N_gas; i++)
+ {
+ if(SphP[i].Entropy>0)
+ SphP[i].Entropy = dmax(All.MinEgySpec, SphP[i].Entropy);
+ else
+ SphP[i].Entropy = -dmax(All.MinEgySpec, -SphP[i].Entropy);
+ }
+#else
+ for(i = 0; i < N_gas; i++)
+ SphP[i].Entropy = dmax(All.MinEgySpec, SphP[i].Entropy);
+#endif
+
+ MPI_Barrier(MPI_COMM_WORLD);
+
+ if(ThisTask == 0)
+ {
+ printf("reading done.\n");
+ fflush(stdout);
+ }
+
+ if(ThisTask == 0)
+ {
+ printf("Total number of particles : %d%09d\n\n",
+ (int) (All.TotNumPart / 1000000000), (int) (All.TotNumPart % 1000000000));
+ fflush(stdout);
+ }
+}
+
+
+/*! This function reads out the buffer that was filled with particle data, and
+ * stores it at the appropriate place in the particle structures.
+ */
+void empty_read_buffer(enum iofields blocknr, int offset, int pc, int type)
+{
+ int n, k;
+ float *fp;
+
+#ifdef LONGIDS
+ long long *ip;
+#else
+ int *ip;
+#endif
+
+ fp = CommBuffer;
+ ip = CommBuffer;
+
+ switch (blocknr)
+ {
+ case IO_POS: /* positions */
+ for(n = 0; n < pc; n++)
+ for(k = 0; k < 3; k++)
+ P[offset + n].Pos[k] = *fp++;
+
+ for(n = 0; n < pc; n++)
+ P[offset + n].Type = type; /* initialize type here as well */
+ break;
+
+ case IO_VEL: /* velocities */
+ for(n = 0; n < pc; n++)
+ for(k = 0; k < 3; k++)
+ P[offset + n].Vel[k] = *fp++;
+ break;
+
+ case IO_ID: /* particle ID */
+ for(n = 0; n < pc; n++)
+ P[offset + n].ID = *ip++;
+ break;
+
+ case IO_MASS: /* particle mass */
+ for(n = 0; n < pc; n++)
+ P[offset + n].Mass = *fp++;
+ break;
+
+ case IO_U: /* temperature */
+ for(n = 0; n < pc; n++)
+ SphP[offset + n].Entropy = *fp++;
+ break;
+
+ case IO_RHO: /* density */
+ for(n = 0; n < pc; n++)
+ SphP[offset + n].Density = *fp++;
+ break;
+
+
+ case IO_HSML: /* SPH smoothing length */
+ for(n = 0; n < pc; n++)
+ SphP[offset + n].Hsml = *fp++;
+ break;
+
+
+
+ /* the other input fields (if present) are not needed to define the
+ initial conditions of the code */
+
+ case IO_POT:
+ case IO_ACCEL:
+ case IO_DTENTR:
+ case IO_TSTP:
+ case IO_ERADSPH:
+ case IO_ERADSTICKY:
+ case IO_ERADFEEDBACK:
+ case IO_ENERGYFLUX:
+ case IO_OPTVAR1:
+ case IO_OPTVAR2:
+ break;
+
+
+ case IO_METALS: /* gas metallicity */
+#ifdef CHIMIE
+ for(n = 0; n < pc; n++)
+ {
+ for(k = 0; k < NELEMENTS; k++)
+ {
+ SphP[offset + n].Metal[k] = *fp++;
+ }
+ }
+#endif
+ break;
+
+
+ case IO_STAR_FORMATIONTIME:
+#ifdef STELLAR_PROP
+ for(n = 0; n < pc; n++)
+ StP[n].FormationTime = *fp++;
+#endif
+ break;
+
+ case IO_INITIAL_MASS:
+#ifdef STELLAR_PROP
+ for(n = 0; n < pc; n++)
+ StP[n].InitialMass = *fp++;
+#endif
+ break;
+
+ case IO_STAR_IDPROJ:
+#ifdef STELLAR_PROP
+ for(n = 0; n < pc; n++)
+ StP[n].IDProj = *ip++;
+#endif
+ break;
+
+ case IO_STAR_RHO:
+#ifdef STELLAR_PROP
+ for(n = 0; n < pc; n++)
+ StP[n].Density = *fp++;
+#endif
+ break;
+
+ case IO_STAR_HSML:
+#ifdef STELLAR_PROP
+ for(n = 0; n < pc; n++)
+ StP[n].Hsml = *fp++;
+#endif
+ break;
+
+ case IO_STAR_METALS:
+#ifdef CHIMIE
+ for(n = 0; n < pc; n++)
+ {
+ for(k = 0; k < NELEMENTS; k++)
+ {
+ StP[n].Metal[k] = *fp++;
+ }
+ }
+#endif
+ break;
+
+ }
+}
+
+
+
+/*! This function reads a snapshot file and distributes the data it contains
+ * to tasks 'readTask' to 'lastTask'.
+ */
+void read_file(char *fname, int readTask, int lastTask)
+{
+ int blockmaxlen;
+ int i, n_in_file, n_for_this_task, ntask, pc, offset = 0, task;
+ int blksize1, blksize2;
+ MPI_Status status;
+ FILE *fd = 0;
+ int nall;
+ int type;
+ char label[4];
+ int nstart, bytes_per_blockelement, npart, nextblock, typelist[6];
+ enum iofields blocknr;
+
+#ifdef HAVE_HDF5
+ char buf[500];
+ int rank, pcsum;
+ hid_t hdf5_file, hdf5_grp[6], hdf5_dataspace_in_file;
+ hid_t hdf5_datatype, hdf5_dataspace_in_memory, hdf5_dataset;
+ hsize_t dims[2], count[2], start[2];
+#endif
+
+#define SKIP {my_fread(&blksize1,sizeof(int),1,fd);}
+#define SKIP2 {my_fread(&blksize2,sizeof(int),1,fd);}
+
+ if(ThisTask == readTask)
+ {
+ if(All.ICFormat == 1 || All.ICFormat == 2)
+ {
+ if(!(fd = fopen(fname, "r")))
+ {
+ printf("can't open file `%s' for reading initial conditions.\n", fname);
+ endrun(123);
+ }
+
+ if(All.ICFormat == 2)
+ {
+ SKIP;
+ my_fread(&label, sizeof(char), 4, fd);
+ my_fread(&nextblock, sizeof(int), 1, fd);
+ printf("Reading header => '%c%c%c%c' (%d byte)\n", label[0], label[1], label[2], label[3],
+ nextblock);
+ SKIP2;
+ }
+
+ SKIP;
+ my_fread(&header, sizeof(header), 1, fd);
+ SKIP2;
+
+ if(blksize1 != 256 || blksize2 != 256)
+ {
+ printf("incorrect header format\n");
+ fflush(stdout);
+ endrun(890);
+ }
+
+#ifdef CHIMIE
+ if((header.flag_metals!= 0) && (header.flag_metals!= NELEMENTS))
+ {
+ printf("\n(Tasks=%d) NELEMENTS (=%d) != header.flag_metals (=%d) !!!\n\n",ThisTask,NELEMENTS,header.flag_metals);
+ printf("This means that the number of chemical elements stored in your initial condition file is different \n");
+ printf("from the variable NELEMENTS equal to the one in the chimie parameter file.\n");
+ printf("You can either modify you initial condition file or change the NELEMENTS and the chimie parameter file.");
+ endrun(12323);
+ }
+#endif
+
+
+
+#ifdef CHIMIE_EXTRAHEADER
+ if (header.flag_chimie_extraheader)
+ {
+ SKIP;
+ my_fread(&chimie_extraheader, sizeof(chimie_extraheader), 1, fd);
+ SKIP2;
+
+ if(blksize1 != 256 || blksize2 != 256)
+ {
+ printf("incorrect chimie_extraheader format\n");
+ fflush(stdout);
+ endrun(891);
+ }
+ }
+#endif
+
+ }
+
+
+#ifdef HAVE_HDF5
+ if(All.ICFormat == 3)
+ {
+ read_header_attributes_in_hdf5(fname);
+
+ hdf5_file = H5Fopen(fname, H5F_ACC_RDONLY, H5P_DEFAULT);
+
+ for(type = 0; type < 6; type++)
+ {
+ if(header.npart[type] > 0)
+ {
+ sprintf(buf, "/PartType%d", type);
+ hdf5_grp[type] = H5Gopen(hdf5_file, buf);
+ }
+ }
+ }
+#endif
+
+ for(task = readTask + 1; task <= lastTask; task++)
+ {
+ MPI_Ssend(&header, sizeof(header), MPI_BYTE, task, TAG_HEADER, MPI_COMM_WORLD);
+#ifdef CHIMIE_EXTRAHEADER
+ if (header.flag_chimie_extraheader)
+ MPI_Ssend(&header, sizeof(chimie_extraheader), MPI_BYTE, task, TAG_CHIMIE_EXTRAHEADER, MPI_COMM_WORLD);
+#endif
+ }
+ }
+ else
+ {
+ MPI_Recv(&header, sizeof(header), MPI_BYTE, readTask, TAG_HEADER, MPI_COMM_WORLD, &status);
+#ifdef CHIMIE_EXTRAHEADER
+ if (header.flag_chimie_extraheader)
+ MPI_Recv(&chimie_extraheader, sizeof(chimie_extraheader), MPI_BYTE, readTask, TAG_CHIMIE_EXTRAHEADER, MPI_COMM_WORLD, &status);
+#endif
+ }
+
+ if(All.TotNumPart == 0)
+ {
+ if(header.num_files <= 1)
+ for(i = 0; i < 6; i++)
+ header.npartTotal[i] = header.npart[i];
+
+ All.TotN_gas = header.npartTotal[0] + (((long long) header.npartTotalHighWord[0]) << 32);
+#if defined(SFR) || defined(STELLAR_PROP)
+ All.TotN_stars = header.npartTotal[ST] + (((long long) header.npartTotalHighWord[ST]) << 32);
+#endif
+ for(i = 0, All.TotNumPart = 0; i < 6; i++)
+ {
+ All.TotNumPart += header.npartTotal[i];
+ All.TotNumPart += (((long long) header.npartTotalHighWord[i]) << 32);
+ }
+
+
+ for(i = 0; i < 6; i++)
+ All.MassTable[i] = header.mass[i];
+
+ All.MaxPart = All.PartAllocFactor * (All.TotNumPart / NTask); /* sets the maximum number of particles that may */
+ All.MaxPartSph = All.PartAllocFactor * (All.TotN_gas / NTask); /* sets the maximum number of particles that may
+ reside on a processor */
+#ifdef STELLAR_PROP
+ All.MaxPartStars = All.PartAllocFactor * (All.TotN_stars / NTask); /* existing star particles */
+#ifdef SFR
+ All.MaxPartStars = All.MaxPartStars + All.StarFormationNStarsFromGas*All.MaxPartSph*All.StarsAllocFactor; /* potental star particles */
+#endif
+#endif
+ allocate_memory();
+
+ if(RestartFlag == 2)
+ All.Time = All.TimeBegin = header.time;
+ }
+
+ if(ThisTask == readTask)
+ {
+ for(i = 0, n_in_file = 0; i < 6; i++)
+ n_in_file += header.npart[i];
+
+ printf("\nreading file `%s' on task=%d (contains %d particles.)\n"
+ "distributing this file to tasks %d-%d\n"
+ "Type 0 (gas): %8d (tot=%6d%09d) masstab=%g\n"
+ "Type 1 (halo): %8d (tot=%6d%09d) masstab=%g\n"
+ "Type 2 (disk): %8d (tot=%6d%09d) masstab=%g\n"
+ "Type 3 (bulge): %8d (tot=%6d%09d) masstab=%g\n"
+ "Type 4 (stars): %8d (tot=%6d%09d) masstab=%g\n"
+ "Type 5 (bndry): %8d (tot=%6d%09d) masstab=%g\n\n", fname, ThisTask, n_in_file, readTask,
+ lastTask, header.npart[0], (int) (header.npartTotal[0] / 1000000000),
+ (int) (header.npartTotal[0] % 1000000000), All.MassTable[0], header.npart[1],
+ (int) (header.npartTotal[1] / 1000000000), (int) (header.npartTotal[1] % 1000000000),
+ All.MassTable[1], header.npart[2], (int) (header.npartTotal[2] / 1000000000),
+ (int) (header.npartTotal[2] % 1000000000), All.MassTable[2], header.npart[3],
+ (int) (header.npartTotal[3] / 1000000000), (int) (header.npartTotal[3] % 1000000000),
+ All.MassTable[3], header.npart[4], (int) (header.npartTotal[4] / 1000000000),
+ (int) (header.npartTotal[4] % 1000000000), All.MassTable[4], header.npart[5],
+ (int) (header.npartTotal[5] / 1000000000), (int) (header.npartTotal[5] % 1000000000),
+ All.MassTable[5]);
+ fflush(stdout);
+ }
+
+
+ ntask = lastTask - readTask + 1;
+
+
+ /* to collect the gas particles all at the beginning (in case several
+ snapshot files are read on the current CPU) we move the collisionless
+ particles such that a gap of the right size is created */
+
+ for(type = 0, nall = 0; type < 6; type++)
+ {
+ n_in_file = header.npart[type];
+
+ n_for_this_task = n_in_file / ntask;
+ if((ThisTask - readTask) < (n_in_file % ntask))
+ n_for_this_task++;
+
+ nall += n_for_this_task;
+ }
+
+ memmove(&P[N_gas + nall], &P[N_gas], (NumPart - N_gas) * sizeof(struct particle_data));
+ nstart = N_gas;
+
+
+
+ for(blocknr = 0; blocknr < IO_NBLOCKS; blocknr++)
+ {
+ if(blockpresent(blocknr))
+ {
+
+#ifndef BLOCK_SKIPPING
+ if(RestartFlag == 0 && blocknr > IO_U)
+ continue; /* ignore all other blocks in initial conditions */
+#else
+ if(blockabsent(blocknr))
+ continue;
+#endif
+
+ bytes_per_blockelement = get_bytes_per_blockelement(blocknr);
+
+ blockmaxlen = ((int) (All.BufferSize * 1024 * 1024)) / bytes_per_blockelement;
+
+ npart = get_particles_in_block(blocknr, &typelist[0]);
+
+ if(npart > 0)
+ {
+ if(ThisTask == readTask)
+ {
+ if(All.ICFormat == 2)
+ {
+ SKIP;
+ my_fread(&label, sizeof(char), 4, fd);
+ my_fread(&nextblock, sizeof(int), 1, fd);
+ printf("Reading header => '%c%c%c%c' (%d byte)\n", label[0], label[1], label[2],
+ label[3], nextblock);
+ SKIP2;
+
+ if(strncmp(label, Tab_IO_Labels[blocknr], 4) != 0)
+ {
+ printf("incorrect block-structure!\n");
+ printf("expected '%c%c%c%c' but found '%c%c%c%c'\n",
+ label[0], label[1], label[2], label[3],
+ Tab_IO_Labels[blocknr][0], Tab_IO_Labels[blocknr][1],
+ Tab_IO_Labels[blocknr][2], Tab_IO_Labels[blocknr][3]);
+ fflush(stdout);
+ endrun(1890);
+ }
+ }
+
+ if(All.ICFormat == 1 || All.ICFormat == 2)
+ SKIP;
+ }
+
+ for(type = 0, offset = 0; type < 6; type++)
+ {
+ n_in_file = header.npart[type];
+#ifdef HAVE_HDF5
+ pcsum = 0;
+#endif
+ if(typelist[type] == 0)
+ {
+ n_for_this_task = n_in_file / ntask;
+ if((ThisTask - readTask) < (n_in_file % ntask))
+ n_for_this_task++;
+
+ offset += n_for_this_task;
+ }
+ else
+ {
+ for(task = readTask; task <= lastTask; task++)
+ {
+ n_for_this_task = n_in_file / ntask;
+ if((task - readTask) < (n_in_file % ntask))
+ n_for_this_task++;
+
+ if(task == ThisTask)
+ if(NumPart + n_for_this_task > All.MaxPart)
+ {
+ printf("too many particles\n");
+ endrun(1313);
+ }
+
+
+ do
+ {
+ pc = n_for_this_task;
+
+ if(pc > blockmaxlen)
+ pc = blockmaxlen;
+
+ if(ThisTask == readTask)
+ {
+ if(All.ICFormat == 1 || All.ICFormat == 2)
+ my_fread(CommBuffer, bytes_per_blockelement, pc, fd);
+#ifdef HAVE_HDF5
+ if(All.ICFormat == 3)
+ {
+ get_dataset_name(blocknr, buf);
+ hdf5_dataset = H5Dopen(hdf5_grp[type], buf);
+
+ dims[0] = header.npart[type];
+ dims[1] = get_values_per_blockelement(blocknr);
+ if(dims[1] == 1)
+ rank = 1;
+ else
+ rank = 2;
+
+ hdf5_dataspace_in_file = H5Screate_simple(rank, dims, NULL);
+
+ dims[0] = pc;
+ hdf5_dataspace_in_memory = H5Screate_simple(rank, dims, NULL);
+
+ start[0] = pcsum;
+ start[1] = 0;
+
+ count[0] = pc;
+ count[1] = get_values_per_blockelement(blocknr);
+ pcsum += pc;
+
+ H5Sselect_hyperslab(hdf5_dataspace_in_file, H5S_SELECT_SET,
+ start, NULL, count, NULL);
+
+ switch (get_datatype_in_block(blocknr))
+ {
+ case 0:
+ hdf5_datatype = H5Tcopy(H5T_NATIVE_UINT);
+ break;
+ case 1:
+ hdf5_datatype = H5Tcopy(H5T_NATIVE_FLOAT);
+ break;
+ case 2:
+ hdf5_datatype = H5Tcopy(H5T_NATIVE_UINT64);
+ break;
+ }
+
+ H5Dread(hdf5_dataset, hdf5_datatype, hdf5_dataspace_in_memory,
+ hdf5_dataspace_in_file, H5P_DEFAULT, CommBuffer);
+
+ H5Tclose(hdf5_datatype);
+ H5Sclose(hdf5_dataspace_in_memory);
+ H5Sclose(hdf5_dataspace_in_file);
+ H5Dclose(hdf5_dataset);
+ }
+#endif
+ }
+
+ if(ThisTask == readTask && task != readTask)
+ MPI_Ssend(CommBuffer, bytes_per_blockelement * pc, MPI_BYTE, task, TAG_PDATA,
+ MPI_COMM_WORLD);
+
+ if(ThisTask != readTask && task == ThisTask)
+ MPI_Recv(CommBuffer, bytes_per_blockelement * pc, MPI_BYTE, readTask,
+ TAG_PDATA, MPI_COMM_WORLD, &status);
+
+ if(ThisTask == task)
+ {
+ empty_read_buffer(blocknr, nstart + offset, pc, type);
+ offset += pc;
+ }
+
+ n_for_this_task -= pc;
+ }
+ while(n_for_this_task > 0);
+ }
+ }
+ }
+ if(ThisTask == readTask)
+ {
+ if(All.ICFormat == 1 || All.ICFormat == 2)
+ {
+ SKIP2;
+ if(blksize1 != blksize2)
+ {
+ printf("incorrect block-sizes detected!\n");
+ printf("Task=%d blocknr=%d blksize1=%d blksize2=%d\n", ThisTask, blocknr,
+ blksize1, blksize2);
+ fflush(stdout);
+ endrun(1889);
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ for(type = 0; type < 6; type++)
+ {
+ n_in_file = header.npart[type];
+
+ n_for_this_task = n_in_file / ntask;
+ if((ThisTask - readTask) < (n_in_file % ntask))
+ n_for_this_task++;
+
+ NumPart += n_for_this_task;
+
+ if(type == 0)
+ N_gas += n_for_this_task;
+
+#ifdef SFR
+ if(type == ST)
+ N_stars += n_for_this_task;
+#endif
+ }
+
+ if(ThisTask == readTask)
+ {
+ if(All.ICFormat == 1 || All.ICFormat == 2)
+ fclose(fd);
+#ifdef HAVE_HDF5
+ if(All.ICFormat == 3)
+ {
+ for(type = 5; type >= 0; type--)
+ if(header.npart[type] > 0)
+ H5Gclose(hdf5_grp[type]);
+ H5Fclose(hdf5_file);
+ }
+#endif
+ }
+}
+
+
+
+
+/*! This function determines onto how many files a given snapshot is
+ * distributed.
+ */
+int find_files(char *fname)
+{
+ FILE *fd;
+ char buf[200], buf1[200];
+ int dummy;
+
+ sprintf(buf, "%s.%d", fname, 0);
+ sprintf(buf1, "%s", fname);
+
+ if(All.SnapFormat == 3)
+ {
+ sprintf(buf, "%s.%d.hdf5", fname, 0);
+ sprintf(buf1, "%s.hdf5", fname);
+ }
+
+#ifndef HAVE_HDF5
+ if(All.SnapFormat == 3)
+ {
+ if(ThisTask == 0)
+ printf("Code wasn't compiled with HDF5 support enabled!\n");
+ endrun(0);
+ }
+#endif
+
+ header.num_files = 0;
+
+ if(ThisTask == 0)
+ {
+ if((fd = fopen(buf, "r")))
+ {
+ if(All.ICFormat == 1 || All.ICFormat == 2)
+ {
+ if(All.ICFormat == 2)
+ {
+ fread(&dummy, sizeof(dummy), 1, fd);
+ fread(&dummy, sizeof(dummy), 1, fd);
+ fread(&dummy, sizeof(dummy), 1, fd);
+ fread(&dummy, sizeof(dummy), 1, fd);
+ }
+
+ fread(&dummy, sizeof(dummy), 1, fd);
+ fread(&header, sizeof(header), 1, fd);
+ fread(&dummy, sizeof(dummy), 1, fd);
+ }
+ fclose(fd);
+
+#ifdef HAVE_HDF5
+ if(All.ICFormat == 3)
+ read_header_attributes_in_hdf5(buf);
+#endif
+ }
+ }
+
+ MPI_Bcast(&header, sizeof(header), MPI_BYTE, 0, MPI_COMM_WORLD);
+
+ if(header.num_files > 0)
+ return header.num_files;
+
+ if(ThisTask == 0)
+ {
+ if((fd = fopen(buf1, "r")))
+ {
+ if(All.ICFormat == 1 || All.ICFormat == 2)
+ {
+ if(All.ICFormat == 2)
+ {
+ fread(&dummy, sizeof(dummy), 1, fd);
+ fread(&dummy, sizeof(dummy), 1, fd);
+ fread(&dummy, sizeof(dummy), 1, fd);
+ fread(&dummy, sizeof(dummy), 1, fd);
+ }
+
+ fread(&dummy, sizeof(dummy), 1, fd);
+ fread(&header, sizeof(header), 1, fd);
+ fread(&dummy, sizeof(dummy), 1, fd);
+ }
+ fclose(fd);
+
+#ifdef HAVE_HDF5
+ if(All.ICFormat == 3)
+ read_header_attributes_in_hdf5(buf1);
+#endif
+ header.num_files = 1;
+ }
+ }
+
+ MPI_Bcast(&header, sizeof(header), MPI_BYTE, 0, MPI_COMM_WORLD);
+
+ if(header.num_files > 0)
+ return header.num_files;
+
+ if(ThisTask == 0)
+ {
+ printf("\nCan't find initial conditions file.");
+ printf("neither as '%s'\nnor as '%s'\n", buf, buf1);
+ fflush(stdout);
+ }
+
+ endrun(0);
+ return 0;
+}
+
+
+
+/*! This function assigns a certain number of files to processors, such that
+ * each processor is exactly assigned to one file, and the number of cpus per
+ * file is as homogenous as possible. The number of files may at most be
+ * equal to the number of processors.
+ */
+void distribute_file(int nfiles, int firstfile, int firsttask, int lasttask, int *filenr, int *master,
+ int *last)
+{
+ int ntask, filesleft, filesright, tasksleft, tasksright;
+
+ if(nfiles > 1)
+ {
+ ntask = lasttask - firsttask + 1;
+
+ filesleft = (((double) (ntask / 2)) / ntask) * nfiles;
+ if(filesleft <= 0)
+ filesleft = 1;
+ if(filesleft >= nfiles)
+ filesleft = nfiles - 1;
+
+ filesright = nfiles - filesleft;
+
+ tasksleft = ntask / 2;
+ tasksright = ntask - tasksleft;
+
+ distribute_file(filesleft, firstfile, firsttask, firsttask + tasksleft - 1, filenr, master, last);
+ distribute_file(filesright, firstfile + filesleft, firsttask + tasksleft, lasttask, filenr, master,
+ last);
+ }
+ else
+ {
+ if(ThisTask >= firsttask && ThisTask <= lasttask)
+ {
+ *filenr = firstfile;
+ *master = firsttask;
+ *last = lasttask;
+ }
+ }
+}
+
+
+/*! This function reads the header information in case the HDF5 file format is
+ * used.
+ */
+#ifdef HAVE_HDF5
+void read_header_attributes_in_hdf5(char *fname)
+{
+ hid_t hdf5_file, hdf5_headergrp, hdf5_attribute;
+
+
+ hdf5_file = H5Fopen(fname, H5F_ACC_RDONLY, H5P_DEFAULT);
+ hdf5_headergrp = H5Gopen(hdf5_file, "/Header");
+
+
+ hdf5_attribute = H5Aopen_name(hdf5_headergrp, "NumPart_ThisFile");
+ H5Aread(hdf5_attribute, H5T_NATIVE_INT, header.npart);
+ H5Aclose(hdf5_attribute);
+
+ hdf5_attribute = H5Aopen_name(hdf5_headergrp, "NumPart_Total");
+ H5Aread(hdf5_attribute, H5T_NATIVE_UINT, header.npartTotal);
+ H5Aclose(hdf5_attribute);
+
+ hdf5_attribute = H5Aopen_name(hdf5_headergrp, "NumPart_Total_HighWord");
+ H5Aread(hdf5_attribute, H5T_NATIVE_UINT, header.npartTotalHighWord);
+ H5Aclose(hdf5_attribute);
+
+ hdf5_attribute = H5Aopen_name(hdf5_headergrp, "MassTable");
+ H5Aread(hdf5_attribute, H5T_NATIVE_DOUBLE, header.mass);
+ H5Aclose(hdf5_attribute);
+
+ hdf5_attribute = H5Aopen_name(hdf5_headergrp, "Time");
+ H5Aread(hdf5_attribute, H5T_NATIVE_DOUBLE, &header.time);
+ H5Aclose(hdf5_attribute);
+
+ hdf5_attribute = H5Aopen_name(hdf5_headergrp, "NumFilesPerSnapshot");
+ H5Aread(hdf5_attribute, H5T_NATIVE_INT, &header.num_files);
+ H5Aclose(hdf5_attribute);
+
+ hdf5_attribute = H5Aopen_name(hdf5_headergrp, "Flag_Entropy_ICs");
+ H5Aread(hdf5_attribute, H5T_NATIVE_INT, &header.flag_entropy_instead_u);
+ H5Aclose(hdf5_attribute);
+
+ H5Gclose(hdf5_headergrp);
+ H5Fclose(hdf5_file);
+}
+#endif
diff --git a/clusters/user/GEAR/src/restart.c b/clusters/user/GEAR/src/restart.c
new file mode 100644
index 0000000..b1ffa16
--- /dev/null
+++ b/clusters/user/GEAR/src/restart.c
@@ -0,0 +1,402 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/file.h>
+#include <unistd.h>
+#include <gsl/gsl_rng.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+/*! \file restart.c
+ * \brief Code for reading and writing restart files
+ */
+
+static FILE *fd,*fd_bak;
+
+static void in(int *x, int modus);
+static void byten(void *x, size_t n, int modus);
+
+
+/*! This function reads or writes the restart files. Each processor writes
+ * its own restart file, with the I/O being done in parallel. To avoid
+ * congestion of the disks you can tell the program to restrict the number of
+ * files that are simultaneously written to NumFilesWrittenInParallel.
+ *
+ * If modus>0 the restart()-routine reads, if modus==0 it writes a restart
+ * file.
+ */
+void restart(int modus)
+{
+ char buf[200], buf_bak[200], buf_mv[500];
+ double save_PartAllocFactor, save_TreeAllocFactor;
+ int i, nprocgroup, masterTask, groupTask, old_MaxPart, old_MaxNodes;
+ struct global_data_all_processes all_task0;
+
+
+ sprintf(buf, "%s%s.%d", All.OutputDir, All.RestartFile, ThisTask);
+ sprintf(buf_bak, "%s%s.%d.bak", All.OutputDir, All.RestartFile, ThisTask);
+ sprintf(buf_mv, "mv %s %s", buf, buf_bak);
+
+
+ if((NTask < All.NumFilesWrittenInParallel))
+ {
+ printf
+ ("Fatal error.\nNumber of processors must be a smaller or equal than `NumFilesWrittenInParallel'.\n");
+ endrun(2131);
+ }
+
+ nprocgroup = NTask / All.NumFilesWrittenInParallel;
+
+ if((NTask % All.NumFilesWrittenInParallel))
+ {
+ nprocgroup++;
+ }
+
+ masterTask = (ThisTask / nprocgroup) * nprocgroup;
+
+ for(groupTask = 0; groupTask < nprocgroup; groupTask++)
+ {
+ if(ThisTask == (masterTask + groupTask)) /* ok, it's this processor's turn */
+ {
+ if(modus)
+ {
+ if(!(fd = fopen(buf, "r")))
+ {
+ printf("Restart file '%s' not found.\n", buf);
+ endrun(7870);
+ }
+ }
+ else
+ {
+
+ system(buf_mv); /* move old restart files to .bak files */
+
+
+/*
+
+ /* move old restart files to .bak files */
+/*
+ system(buf_mv);
+
+ This does not work !!!
+
+ fd = fopen(buf,"r");
+ fd_bak = fopen(buf_bak,"w");
+
+ while(1)
+ {
+ fgets(buf, 200, fd);
+ if (feof(fd)) break;
+ fprintf(fd_bak, buf, 200);
+ }
+
+ fclose(fd);
+ fclose(fd_bak);
+*/
+
+
+
+ if(!(fd = fopen(buf, "w")))
+ {
+ printf("Restart file '%s' cannot be opened.\n", buf);
+ endrun(7878);
+ }
+ }
+
+
+ save_PartAllocFactor = All.PartAllocFactor;
+ save_TreeAllocFactor = All.TreeAllocFactor;
+
+ /* common data */
+ byten(&All, sizeof(struct global_data_all_processes), modus);
+
+ if(ThisTask == 0 && modus > 0)
+ all_task0 = All;
+
+ if(modus > 0 && groupTask == 0) /* read */
+ {
+ MPI_Bcast(&all_task0, sizeof(struct global_data_all_processes), MPI_BYTE, 0, MPI_COMM_WORLD);
+ }
+
+ old_MaxPart = All.MaxPart;
+ old_MaxNodes = All.TreeAllocFactor * All.MaxPart;
+
+ if(modus) /* read */
+ {
+ if(All.PartAllocFactor != save_PartAllocFactor)
+ {
+ All.PartAllocFactor = save_PartAllocFactor;
+ All.MaxPart = All.PartAllocFactor * (All.TotNumPart / NTask);
+ All.MaxPartSph = All.PartAllocFactor * (All.TotN_gas / NTask);
+#ifdef STELLAR_PROP
+ All.MaxPartStars = All.PartAllocFactor * (All.TotN_stars / NTask); /* existing star particles */
+#ifdef SFR
+ All.MaxPartStars = All.MaxPartStars = + All.StarFormationNStarsFromGas*All.MaxPartSph; /* potental star particles */
+#endif
+#endif
+
+ save_PartAllocFactor = -1;
+ }
+
+ if(All.TreeAllocFactor != save_TreeAllocFactor)
+ {
+ All.TreeAllocFactor = save_TreeAllocFactor;
+ save_TreeAllocFactor = -1;
+ }
+
+ if(all_task0.Time != All.Time)
+ {
+ printf("The restart file on task=%d is not consistent with the one on task=0\n", ThisTask);
+ fflush(stdout);
+ endrun(16);
+ }
+
+ allocate_memory();
+ }
+
+ in(&NumPart, modus);
+
+ if(NumPart > All.MaxPart)
+ {
+ printf
+ ("it seems you have reduced(!) 'PartAllocFactor' below the value of %g needed to load the restart file.\n",
+ NumPart / (((double) All.TotNumPart) / NTask));
+ printf("fatal error\n");
+ endrun(22);
+ }
+
+ /* Particle data */
+ byten(&P[0], NumPart * sizeof(struct particle_data), modus);
+
+ in(&N_gas, modus);
+
+ if(N_gas > 0)
+ {
+ if(N_gas > All.MaxPartSph)
+ {
+ printf
+ ("SPH: it seems you have reduced(!) 'PartAllocFactor' below the value of %g needed to load the restart file.\n",
+ N_gas / (((double) All.TotN_gas) / NTask));
+ printf("fatal error\n");
+ endrun(222);
+ }
+ /* Sph-Particle data */
+ byten(&SphP[0], N_gas * sizeof(struct sph_particle_data), modus);
+ }
+
+
+#ifdef SFR
+ in(&N_stars, modus);
+
+#ifdef STELLAR_PROP
+ if(N_stars > 0)
+ {
+ if(N_stars > All.MaxPartStars)
+ {
+ printf
+ ("StP : it seems you have reduced(!) 'PartAllocFactor' below the value of %g needed to load the restart file.\n",
+ N_stars / (((double) All.TotN_stars) / NTask));
+ printf("fatal error\n");
+ endrun(2222);
+ }
+
+ /* Particle data */
+ byten(&StP[0], N_stars * sizeof(struct st_particle_data), modus);
+ }
+
+
+ /* this is a test, in case the restart fails */
+ //for(i=0;i<N_stars;i++)
+ // {
+ // printf("(%d) %d %15g %15g \n",ThisTask,N_stars,StP[i].FormationTime,StP[i].Hsml);
+ // }
+
+
+#endif
+#endif
+
+
+
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ in(&SetMinTimeStepForActives, modus);
+#endif
+
+#ifdef AB_TURB
+ if (ThisTask==0)
+ printf("WARNING: AB_TURB in restart.c : must be set correctely ");
+/* byten(gsl_rng_state(StRng), gsl_rng_size(StRng), modus);
+ byten(&StNModes, sizeof(StNModes), modus);
+ byten(&StOUVar, sizeof(StOUVar),modus);
+ byten(StOUPhases, StNModes*6*sizeof(double),modus);
+ byten(StAmpl, StNModes*3*sizeof(double),modus);
+ byten(StAka, StNModes*3*sizeof(double),modus);
+ byten(StAkb, StNModes*3*sizeof(double),modus);
+ byten(StMode, StNModes*3*sizeof(double),modus);
+ byten(&StTPrev, sizeof(StTPrev),modus);
+ byten(&StSolWeightNorm, sizeof(StSolWeightNorm),modus); */
+#endif
+
+ /* write state of random number generator */
+ byten(gsl_rng_state(random_generator), gsl_rng_size(random_generator), modus);
+
+
+ /* now store relevant data for tree */
+
+ if(modus) /* read */
+ {
+ ngb_treeallocate(MAX_NGB);
+
+ force_treeallocate(All.TreeAllocFactor * All.MaxPart, All.MaxPart);
+ }
+
+
+ in(&Numnodestree, modus);
+ in(&NTopleaves, modus); /* yr : Thu Mar 17 16:54:34 CET 2011 */
+
+ if(Numnodestree > MaxNodes)
+ {
+ printf
+ ("Tree storage: it seems you have reduced(!) 'PartAllocFactor' below the value needed to load the restart file (task=%d). "
+ "Numnodestree=%d MaxNodes=%d\n", ThisTask, Numnodestree, MaxNodes);
+ endrun(221);
+ }
+
+ byten(Nodes_base, Numnodestree * sizeof(struct NODE), modus);
+ byten(Extnodes_base, Numnodestree * sizeof(struct extNODE), modus);
+
+ byten(Father, NumPart * sizeof(int), modus);
+
+ byten(Nextnode, NumPart * sizeof(int), modus);
+ byten(Nextnode + All.MaxPart, MAXTOPNODES * sizeof(int), modus);
+
+ byten(DomainStartList, NTask * sizeof(int), modus);
+ byten(DomainEndList, NTask * sizeof(int), modus);
+ byten(DomainTask, MAXTOPNODES * sizeof(int), modus);
+ byten(DomainNodeIndex, MAXTOPNODES * sizeof(int), modus);
+ byten(DomainTreeNodeLen, MAXTOPNODES * sizeof(FLOAT), modus);
+ byten(DomainHmax, MAXTOPNODES * sizeof(FLOAT), modus);
+ byten(DomainMoment, MAXTOPNODES * sizeof(struct DomainNODE), modus);
+
+ byten(DomainCorner, 3 * sizeof(double), modus);
+ byten(DomainCenter, 3 * sizeof(double), modus);
+ byten(&DomainLen, sizeof(double), modus);
+ byten(&DomainFac, sizeof(double), modus);
+ byten(&DomainMyStart, sizeof(int), modus);
+ byten(&DomainMyLast, sizeof(int), modus);
+
+ if(modus) /* read */
+ if(All.PartAllocFactor != save_PartAllocFactor || All.TreeAllocFactor != save_TreeAllocFactor)
+ {
+ for(i = 0; i < NumPart; i++)
+ Father[i] += (All.MaxPart - old_MaxPart);
+
+ for(i = 0; i < NumPart; i++)
+ if(Nextnode[i] >= old_MaxPart)
+ {
+ if(Nextnode[i] >= old_MaxPart + old_MaxNodes)
+ Nextnode[i] += (All.MaxPart - old_MaxPart) + (MaxNodes - old_MaxPart);
+ else
+ Nextnode[i] += (All.MaxPart - old_MaxPart);
+ }
+
+ for(i = 0; i < Numnodestree; i++)
+ {
+ if(Nodes_base[i].u.d.sibling >= old_MaxPart)
+ {
+ if(Nodes_base[i].u.d.sibling >= old_MaxPart + old_MaxNodes)
+ Nodes_base[i].u.d.sibling +=
+ (All.MaxPart - old_MaxPart) + (MaxNodes - old_MaxNodes);
+ else
+ Nodes_base[i].u.d.sibling += (All.MaxPart - old_MaxPart);
+ }
+
+ if(Nodes_base[i].u.d.father >= old_MaxPart)
+ {
+ if(Nodes_base[i].u.d.father >= old_MaxPart + old_MaxNodes)
+ Nodes_base[i].u.d.father += (All.MaxPart - old_MaxPart) + (MaxNodes - old_MaxNodes);
+ else
+ Nodes_base[i].u.d.father += (All.MaxPart - old_MaxPart);
+ }
+
+ if(Nodes_base[i].u.d.nextnode >= old_MaxPart)
+ {
+ if(Nodes_base[i].u.d.nextnode >= old_MaxPart + old_MaxNodes)
+ Nodes_base[i].u.d.nextnode +=
+ (All.MaxPart - old_MaxPart) + (MaxNodes - old_MaxNodes);
+ else
+ Nodes_base[i].u.d.nextnode += (All.MaxPart - old_MaxPart);
+ }
+ }
+
+ for(i = 0; i < MAXTOPNODES; i++)
+ if(Nextnode[i + All.MaxPart] >= old_MaxPart)
+ {
+ if(Nextnode[i + All.MaxPart] >= old_MaxPart + old_MaxNodes)
+ Nextnode[i + All.MaxPart] += (All.MaxPart - old_MaxPart) + (MaxNodes - old_MaxNodes);
+ else
+ Nextnode[i + All.MaxPart] += (All.MaxPart - old_MaxPart);
+ }
+
+ for(i = 0; i < MAXTOPNODES; i++)
+ if(DomainNodeIndex[i] >= old_MaxPart)
+ {
+ if(DomainNodeIndex[i] >= old_MaxPart + old_MaxNodes)
+ DomainNodeIndex[i] += (All.MaxPart - old_MaxPart) + (MaxNodes - old_MaxNodes);
+ else
+ DomainNodeIndex[i] += (All.MaxPart - old_MaxPart);
+ }
+ }
+
+
+
+ /* local system state (yr) */
+ if (sizeof(struct local_state_of_system))
+ byten(&LocalSysState, sizeof(struct local_state_of_system), modus);
+
+
+
+
+ fclose(fd);
+ }
+ else /* wait inside the group */
+ {
+ if(modus > 0 && groupTask == 0) /* read */
+ {
+ MPI_Bcast(&all_task0, sizeof(struct global_data_all_processes), MPI_BYTE, 0, MPI_COMM_WORLD);
+ }
+ }
+
+ MPI_Barrier(MPI_COMM_WORLD);
+ }
+}
+
+
+
+/*! reads/writes n bytes in restart routine
+ */
+void byten(void *x, size_t n, int modus)
+{
+ if(modus)
+ my_fread(x, n, 1, fd);
+ else
+ my_fwrite(x, n, 1, fd);
+}
+
+
+/*! reads/writes one `int' variable in restart routine
+ */
+void in(int *x, int modus)
+{
+ if(modus)
+ my_fread(x, 1, sizeof(int), fd);
+ else
+ my_fwrite(x, 1, sizeof(int), fd);
+}
diff --git a/clusters/user/GEAR/src/run.c b/clusters/user/GEAR/src/run.c
new file mode 100644
index 0000000..0708276
--- /dev/null
+++ b/clusters/user/GEAR/src/run.c
@@ -0,0 +1,837 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <unistd.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+/*! \file run.c
+ * \brief iterates over timesteps, main loop
+ */
+
+/*! This routine contains the main simulation loop that iterates over single
+ * timesteps. The loop terminates when the cpu-time limit is reached, when a
+ * `stop' file is found in the output directory, or when the simulation ends
+ * because we arrived at TimeMax.
+ */
+void run(void)
+{
+ FILE *fd;
+ int stopflag = 0;
+ char stopfname[200], contfname[200];
+ double t0, t1;
+
+#ifdef DETAILED_CPU
+ double tstart,tend;
+#endif
+
+
+
+ sprintf(stopfname, "%sstop", All.OutputDir);
+ sprintf(contfname, "%scont", All.OutputDir);
+ unlink(contfname);
+
+
+ do /* main loop */
+ {
+ t0 = second();
+
+ find_next_sync_point_and_drift(); /* find next synchronization point and drift particles to this time.
+ * If needed, this function will also write an output file
+ * at the desired time.
+ */
+
+ every_timestep_stuff(); /* write some info to log-files */
+
+
+
+#ifdef PNBODY
+ compute_pnbody();
+#endif
+
+#ifdef OUTPUT_EVERY_TIMESTEP
+ savepositions(All.SnapshotFileCount++); /* write snapshot file */
+#endif
+
+
+
+#ifdef DETAILED_CPU
+ tstart = second();
+#endif
+
+
+
+
+#ifdef AGN_ACCRETION
+ compute_agn_accretion(); /* compute accretion */
+#endif
+
+#ifdef BONDI_ACCRETION
+ compute_bondi_accretion(); /* compute bondi accretion */
+#endif
+
+#ifdef BUBBLES
+ make_bubble(); /* create a bubble */
+#endif
+
+#ifdef MULTIPHASE
+ update_phase(); /* allow particles to change their phase */
+#endif
+
+
+#ifdef CORIOLIS
+ set_outer_potential_coriolis(); /* coriolis */
+#endif
+
+
+
+#ifdef CHIMIE
+ chimie();
+#endif
+
+
+
+
+
+#ifdef SFR
+#ifdef COMPUTE_SFR_ENERGY
+ density(1);
+ force_update_hmax();
+ sfr_compute_energy_int(1);
+#endif
+ star_formation(); /* starformation */
+#endif
+
+
+#ifdef MULTIPHASE
+ sticky();
+#endif
+
+#ifdef DETAILED_CPU
+ tend = second();
+ All.CPU_Physics += timediff(tstart, tend);
+#endif
+
+
+
+ domain_Decomposition(); /* do domain decomposition if needed */
+
+
+ compute_accelerations(0); /* compute accelerations for
+ * the particles that are to be advanced
+ */
+
+
+#if defined(SFR) && defined(COMPUTE_SFR_ENERGY)
+#ifdef DETAILED_CPU
+ tstart = second();
+#endif
+ //sfr_compute_energy_int(2);
+#ifdef DETAILED_CPU
+ tend = second();
+ All.CPU_Physics += timediff(tstart, tend);
+#endif
+#endif
+
+
+
+
+
+
+
+
+
+ /* check whether we want a full energy statistics */
+ if((All.Time - All.TimeLastStatistics) >= All.TimeBetStatistics)
+ {
+#ifdef COMPUTE_POTENTIAL_ENERGY
+ compute_potential();
+#endif
+
+#ifndef ADVANCEDSTATISTICS
+ energy_statistics(); /* compute and output energy statistics */
+#else
+ advanced_energy_statistics(); /* compute and output energy statistics */
+#endif
+
+
+ All.TimeLastStatistics += All.TimeBetStatistics;
+ }
+
+ advance_and_find_timesteps(); /* 'kick' active particles in
+ * momentum space and compute new
+ * timesteps for them
+ */
+ All.NumCurrentTiStep++;
+
+ /* Check whether we need to interrupt the run */
+ if(ThisTask == 0)
+ {
+ /* Is the stop-file present? If yes, interrupt the run. */
+ if((fd = fopen(stopfname, "r")))
+ {
+ fclose(fd);
+ stopflag = 1;
+ unlink(stopfname);
+ }
+
+ /* are we running out of CPU-time ? If yes, interrupt run. */
+ //if(CPUThisRun > 0.85 * All.TimeLimitCPU)
+ if(CPUThisRun > 1.0 * All.TimeLimitCPU)
+ {
+ printf("reaching time-limit. stopping.\n");
+ stopflag = 2;
+ }
+ }
+
+ MPI_Bcast(&stopflag, 1, MPI_INT, 0, MPI_COMM_WORLD);
+
+ if(stopflag)
+ {
+ restart(0); /* write restart file */
+ MPI_Barrier(MPI_COMM_WORLD);
+
+ if(stopflag == 2 && ThisTask == 0)
+ {
+ if((fd = fopen(contfname, "w")))
+ fclose(fd);
+ }
+
+ if(stopflag == 2 && All.ResubmitOn && ThisTask == 0)
+ {
+ close_outputfiles();
+ system(All.ResubmitCommand);
+ }
+ return;
+ }
+
+ /* is it time to write a regular restart-file? (for security) */
+ if(ThisTask == 0)
+ {
+ if((CPUThisRun - All.TimeLastRestartFile) >= All.CpuTimeBetRestartFile)
+ {
+ All.TimeLastRestartFile = CPUThisRun;
+ stopflag = 3;
+ }
+ else
+ stopflag = 0;
+ }
+
+ MPI_Bcast(&stopflag, 1, MPI_INT, 0, MPI_COMM_WORLD);
+
+ if(stopflag == 3)
+ {
+ restart(0); /* write an occasional restart file */
+ stopflag = 0;
+ }
+
+ t1 = second();
+
+ All.CPU_Total += timediff(t0, t1);
+ CPUThisRun += timediff(t0, t1);
+ }
+ while(All.Ti_Current < TIMEBASE && All.Time <= All.TimeMax);
+
+ restart(0);
+
+ savepositions(All.SnapshotFileCount++); /* write a last snapshot
+ * file at final time (will
+ * be overwritten if
+ * All.TimeMax is increased
+ * and the run is continued)
+ */
+}
+
+
+/*! This function finds the next synchronization point of the system (i.e. the
+ * earliest point of time any of the particles needs a force computation),
+ * and drifts the system to this point of time. If the system drifts over
+ * the desired time of a snapshot file, the function will drift to this
+ * moment, generate an output, and then resume the drift.
+ */
+void find_next_sync_point_and_drift(void)
+{
+ int n, min, min_glob, flag, *temp;
+ double timeold;
+ double t0, t1;
+#ifdef DETAILED_CPU
+ double tstart,tend;
+#endif
+
+ t0 = second();
+#ifdef DETAILED_CPU
+ tstart = t0;
+#endif
+
+ timeold = All.Time;
+
+ for(n = 1, min = P[0].Ti_endstep; n < NumPart; n++)
+ if(min > P[n].Ti_endstep)
+ min = P[n].Ti_endstep;
+
+ MPI_Allreduce(&min, &min_glob, 1, MPI_INT, MPI_MIN, MPI_COMM_WORLD);
+
+ /* We check whether this is a full step where all particles are synchronized */
+ flag = 1;
+ for(n = 0; n < NumPart; n++)
+ if(P[n].Ti_endstep > min_glob)
+ flag = 0;
+
+ MPI_Allreduce(&flag, &Flag_FullStep, 1, MPI_INT, MPI_MIN, MPI_COMM_WORLD);
+
+#ifdef PMGRID
+ if(min_glob >= All.PM_Ti_endstep)
+ {
+ min_glob = All.PM_Ti_endstep;
+ Flag_FullStep = 1;
+ }
+#endif
+
+ /* Determine 'NumForceUpdate', i.e. the number of particles on this processor that are going to be active */
+ for(n = 0, NumForceUpdate = 0; n < NumPart; n++)
+ {
+ if(P[n].Ti_endstep == min_glob)
+#ifdef SELECTIVE_NO_GRAVITY
+ if(!((1 << P[n].Type) & (SELECTIVE_NO_GRAVITY)))
+#endif
+ NumForceUpdate++;
+ }
+
+ /* note: NumForcesSinceLastDomainDecomp has type "long long" */
+ temp = malloc(NTask * sizeof(int));
+ MPI_Allgather(&NumForceUpdate, 1, MPI_INT, temp, 1, MPI_INT, MPI_COMM_WORLD);
+ for(n = 0; n < NTask; n++)
+ All.NumForcesSinceLastDomainDecomp += temp[n];
+
+#ifdef COUNT_ACTIVE_PARTICLES
+ long long NumActivePatricles;
+ NumActivePatricles=0;
+ for(n = 0; n < NTask; n++)
+ NumActivePatricles+=temp[n];
+#endif
+
+ free(temp);
+
+
+
+ t1 = second();
+ All.CPU_Predict += timediff(t0, t1);
+
+ while(min_glob >= All.Ti_nextoutput && All.Ti_nextoutput >= 0)
+ {
+ move_particles(All.Ti_Current, All.Ti_nextoutput);
+
+ All.Ti_Current = All.Ti_nextoutput;
+
+ if(All.ComovingIntegrationOn)
+ All.Time = All.TimeBegin * exp(All.Ti_Current * All.Timebase_interval);
+ else
+ All.Time = All.TimeBegin + All.Ti_Current * All.Timebase_interval;
+
+#ifdef OUTPUTPOTENTIAL
+ All.NumForcesSinceLastDomainDecomp = 1 + All.TotNumPart * All.TreeDomainUpdateFrequency;
+ domain_Decomposition();
+ compute_potential();
+#endif
+#ifndef OUTPUT_EVERY_TIMESTEP
+ savepositions(All.SnapshotFileCount++); /* write snapshot file */
+#endif
+
+ All.Ti_nextoutput = find_next_outputtime(All.Ti_nextoutput + 1);
+ }
+
+ move_particles(All.Ti_Current, min_glob);
+
+ All.Ti_Current = min_glob;
+
+ if(All.ComovingIntegrationOn)
+ All.Time = All.TimeBegin * exp(All.Ti_Current * All.Timebase_interval);
+ else
+ All.Time = All.TimeBegin + All.Ti_Current * All.Timebase_interval;
+
+ All.TimeStep = All.Time - timeold;
+
+#ifdef COUNT_ACTIVE_PARTICLES
+ if (ThisTask==0)
+ {
+ fprintf(FdTimings,"===========================================================================================\n");
+ fprintf(FdTimings,"Step = %06d Time = %g \n\n",All.NumCurrentTiStep,All.Time);
+
+
+ fprintf(FdTimings,"%g %g : Total number of active particles : %d%09d\n\n",All.Time,All.TimeStep,(int) (NumActivePatricles / 1000000000), (int) (NumActivePatricles % 1000000000));
+ }
+
+
+ int *numpartlist;
+ int i;
+ int tot;
+ numpartlist = malloc(sizeof(int) * NTask*6);
+
+ MPI_Gather(&N_gas, 1, MPI_INT, &numpartlist[NTask*0], 1, MPI_INT, 0, MPI_COMM_WORLD);
+ MPI_Gather(&N_stars, 1, MPI_INT, &numpartlist[NTask*1], 1, MPI_INT, 0, MPI_COMM_WORLD);
+ MPI_Gather(&NumPart, 1, MPI_INT, &numpartlist[NTask*2], 1, MPI_INT, 0, MPI_COMM_WORLD);
+
+
+
+ if (ThisTask==0)
+ {
+
+ tot = 0;
+ fprintf(FdTimings,"gas ");
+ for (i=0;i<NTask;i++)
+ {
+ fprintf(FdTimings, "%12d ",numpartlist[NTask*0+i]); /* nombre de part par proc */
+ tot += numpartlist[NTask*0+i];
+ }
+ fprintf(FdTimings, " : %12d ",tot);
+ fprintf(FdTimings,"\n");
+
+
+ tot = 0;
+ fprintf(FdTimings,"stars ");
+ for (i=0;i<NTask;i++)
+ {
+ fprintf(FdTimings, "%12d ",numpartlist[NTask*1+i]); /* nombre de part par proc */
+ tot += numpartlist[NTask*1+i];
+ }
+ fprintf(FdTimings, " : %12d ",tot);
+ fprintf(FdTimings,"\n");
+
+ tot = 0;
+ fprintf(FdTimings,"remaining ");
+ for (i=0;i<NTask;i++)
+ {
+ fprintf(FdTimings, "%12d ",numpartlist[NTask*2+i]-numpartlist[NTask*1+i]-numpartlist[NTask*0+i]); /* nombre de part par proc */
+ tot += numpartlist[NTask*2+i]-numpartlist[NTask*1+i]-numpartlist[NTask*0+i];
+ }
+ fprintf(FdTimings, " : %12d ",tot);
+ fprintf(FdTimings,"\n\n");
+
+ tot = 0;
+ fprintf(FdTimings,"total ");
+ for (i=0;i<NTask;i++)
+ {
+ fprintf(FdTimings, "%12d ",numpartlist[NTask*2+i]); /* nombre de part par proc */
+ tot += numpartlist[NTask*2+i];
+ }
+ fprintf(FdTimings, " : %12d ",tot);
+ fprintf(FdTimings,"\n\n");
+
+
+
+ fflush(FdTimings);
+ }
+
+ free(numpartlist);
+
+#endif
+
+
+
+#ifdef DETAILED_CPU
+ tend = second();
+ All.CPU_Leapfrog += timediff(tstart, tend);
+#endif
+
+
+}
+
+
+
+/*! this function returns the next output time that is equal or larger to
+ * ti_curr
+ */
+int find_next_outputtime(int ti_curr)
+{
+
+ int i, ti, ti_next, iter = 0;
+ double next, time;
+
+ ti_next = -1;
+
+ if(All.OutputListOn)
+ {
+ for(i = 0; i < All.OutputListLength; i++)
+ {
+ time = All.OutputListTimes[i];
+
+ if(time >= All.TimeBegin && time <= All.TimeMax)
+ {
+ if(All.ComovingIntegrationOn)
+ ti = log(time / All.TimeBegin) / All.Timebase_interval;
+ else
+ ti = (time - All.TimeBegin) / All.Timebase_interval;
+
+ if(ti >= ti_curr)
+ {
+ if(ti_next == -1)
+ ti_next = ti;
+
+ if(ti_next > ti)
+ ti_next = ti;
+ }
+ }
+ }
+ }
+ else
+ {
+ if(All.ComovingIntegrationOn)
+ {
+ if(All.TimeBetSnapshot <= 1.0)
+ {
+ printf("TimeBetSnapshot > 1.0 required for your simulation.\n");
+ endrun(13123);
+ }
+ }
+ else
+ {
+ if(All.TimeBetSnapshot <= 0.0)
+ {
+ printf("TimeBetSnapshot > 0.0 required for your simulation.\n");
+ endrun(13123);
+ }
+ }
+
+ time = All.TimeOfFirstSnapshot;
+
+ iter = 0;
+
+ while(time < All.TimeBegin)
+ {
+ if(All.ComovingIntegrationOn)
+ time *= All.TimeBetSnapshot;
+ else
+ time += All.TimeBetSnapshot;
+
+ iter++;
+
+ if(iter > 1000000)
+ {
+ printf("Can't determine next output time.\n");
+ endrun(110);
+ }
+ }
+
+ while(time <= All.TimeMax)
+ {
+ if(All.ComovingIntegrationOn)
+ ti = log(time / All.TimeBegin) / All.Timebase_interval;
+ else
+ ti = (time - All.TimeBegin) / All.Timebase_interval;
+
+ if(ti >= ti_curr)
+ {
+ ti_next = ti;
+ break;
+ }
+
+ if(All.ComovingIntegrationOn)
+ time *= All.TimeBetSnapshot;
+ else
+ time += All.TimeBetSnapshot;
+
+ iter++;
+
+ if(iter > 1000000)
+ {
+ printf("Can't determine next output time.\n");
+ endrun(111);
+ }
+ }
+ }
+
+ if(ti_next == -1)
+ {
+ ti_next = 2 * TIMEBASE; /* this will prevent any further output */
+
+ if(ThisTask == 0)
+ printf("\nThere is no valid time for a further snapshot file.\n");
+ }
+ else
+ {
+ if(All.ComovingIntegrationOn)
+ next = All.TimeBegin * exp(ti_next * All.Timebase_interval);
+ else
+ next = All.TimeBegin + ti_next * All.Timebase_interval;
+
+ if(ThisTask == 0)
+ printf("\nSetting next time for snapshot file to Time_next= %g\n\n", next);
+ }
+
+ return ti_next;
+}
+
+
+
+
+/*! This routine writes one line for every timestep to two log-files. In
+ * FdInfo, we just list the timesteps that have been done, while in FdCPU the
+ * cumulative cpu-time consumption in various parts of the code is stored.
+ */
+void every_timestep_stuff(void)
+{
+ double z;
+
+#ifdef DETAILED_CPU
+ double tstart,tend;
+ tstart = second();
+#endif
+
+
+ if(ThisTask == 0)
+ {
+ if(All.ComovingIntegrationOn)
+ {
+ z = 1.0 / (All.Time) - 1;
+ fprintf(FdInfo, "\nBegin Step %d, Time: %g, Redshift: %g, Systemstep: %g, Dloga: %g\n",
+ All.NumCurrentTiStep, All.Time, z, All.TimeStep,
+ log(All.Time) - log(All.Time - All.TimeStep));
+ printf("\nBegin Step %d, Time: %g, Redshift: %g, Systemstep: %g, Dloga: %g\n", All.NumCurrentTiStep,
+ All.Time, z, All.TimeStep, log(All.Time) - log(All.Time - All.TimeStep));
+ fflush(FdInfo);
+ }
+ else
+ {
+ fprintf(FdInfo, "\nBegin Step %d, Time: %g, Systemstep: %g\n", All.NumCurrentTiStep, All.Time,
+ All.TimeStep);
+ printf("\nBegin Step %d, Time: %g, Systemstep: %g\n", All.NumCurrentTiStep, All.Time, All.TimeStep);
+ fflush(FdInfo);
+ }
+
+ printf("-------------------------------------------------------------\n");
+ fflush(stdout);
+
+#ifdef ADVANCEDCPUSTATISTICS
+ fprintf(FdCPU, "%d ", All.NumCurrentTiStep);
+ fprintf(FdCPU, "%g ", All.Time);
+ fprintf(FdCPU, "%d ", NTask);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Total);
+#ifdef DETAILED_CPU
+ fprintf(FdCPU,"%10.2f ",All.CPU_Leapfrog);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Physics);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Residual);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Accel);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Begrun);
+#endif
+ fprintf(FdCPU,"%10.2f ",All.CPU_Gravity);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Hydro);
+#ifdef COOLING
+ fprintf(FdCPU,"%10.2f ",All.CPU_Cooling);
+#endif
+#ifdef SFR
+ fprintf(FdCPU,"%10.2f ",All.CPU_StarFormation);
+#endif
+#ifdef CHIMIE
+ fprintf(FdCPU,"%10.2f ",All.CPU_Chimie);
+#endif
+#ifdef MULTIPHASE
+ fprintf(FdCPU,"%10.2f ",All.CPU_Sticky);
+#endif
+ fprintf(FdCPU,"%10.2f ",All.CPU_Domain);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Potential);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Predict);
+ fprintf(FdCPU,"%10.2f ",All.CPU_TimeLine);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Snapshot);
+ fprintf(FdCPU,"%10.2f ",All.CPU_TreeWalk);
+ fprintf(FdCPU,"%10.2f ",All.CPU_TreeConstruction);
+ fprintf(FdCPU,"%10.2f ",All.CPU_CommSum);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Imbalance);
+ fprintf(FdCPU,"%10.2f ",All.CPU_HydCompWalk);
+ fprintf(FdCPU,"%10.2f ",All.CPU_HydCommSumm);
+ fprintf(FdCPU,"%10.2f ",All.CPU_HydImbalance);
+ fprintf(FdCPU,"%10.2f ",All.CPU_EnsureNgb);
+ fprintf(FdCPU,"%10.2f ",All.CPU_PM);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Peano);
+#ifdef DETAILED_CPU_DOMAIN
+ fprintf(FdCPU,"%10.2f ",All.CPU_Domain_findExtend);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Domain_determineTopTree);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Domain_sumCost);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Domain_findSplit);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Domain_shiftSplit);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Domain_countToGo);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Domain_exchange);
+#endif
+#ifdef DETAILED_CPU_GRAVITY
+ fprintf(FdCPU,"%10.2f ",All.CPU_Gravity_TreeWalk1);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Gravity_TreeWalk2);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Gravity_CommSum1);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Gravity_CommSum2);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Gravity_Imbalance1);
+ fprintf(FdCPU,"%10.2f ",All.CPU_Gravity_Imbalance2);
+#endif
+ fprintf(FdCPU,"\n");
+ fflush(FdCPU);
+#else
+ fprintf(FdCPU, "Step %d, Time: %g, CPUs: %d\n", All.NumCurrentTiStep, All.Time, NTask);
+
+ fprintf(FdCPU,
+ "%10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f\n",
+ All.CPU_Total, All.CPU_Gravity, All.CPU_Hydro, All.CPU_Domain, All.CPU_Potential,
+ All.CPU_Predict, All.CPU_TimeLine, All.CPU_Snapshot, All.CPU_TreeWalk, All.CPU_TreeConstruction,
+ All.CPU_CommSum, All.CPU_Imbalance, All.CPU_HydCompWalk, All.CPU_HydCommSumm,
+ All.CPU_HydImbalance, All.CPU_EnsureNgb, All.CPU_PM, All.CPU_Peano);
+ fflush(FdCPU);
+#endif
+
+ }
+
+
+ set_random_numbers();
+
+#ifdef DETAILED_CPU
+ tend = second();
+ All.CPU_Residual += timediff(tstart, tend);
+#endif
+
+
+}
+
+/*! This routine first calls a computation of various global quantities of the
+ * particle distribution, and then writes some statistics about the energies
+ * in the various particle components to the file FdEnergy.
+ */
+void energy_statistics(void)
+{
+ compute_global_quantities_of_system();
+
+ if(ThisTask == 0)
+ {
+ fprintf(FdEnergy,
+ "%g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g %g\n",
+ All.Time, SysState.EnergyInt, SysState.EnergyPot, SysState.EnergyKin, SysState.EnergyIntComp[0],
+ SysState.EnergyPotComp[0], SysState.EnergyKinComp[0], SysState.EnergyIntComp[1],
+ SysState.EnergyPotComp[1], SysState.EnergyKinComp[1], SysState.EnergyIntComp[2],
+ SysState.EnergyPotComp[2], SysState.EnergyKinComp[2], SysState.EnergyIntComp[3],
+ SysState.EnergyPotComp[3], SysState.EnergyKinComp[3], SysState.EnergyIntComp[4],
+ SysState.EnergyPotComp[4], SysState.EnergyKinComp[4], SysState.EnergyIntComp[5],
+ SysState.EnergyPotComp[5], SysState.EnergyKinComp[5], SysState.MassComp[0],
+ SysState.MassComp[1], SysState.MassComp[2], SysState.MassComp[3], SysState.MassComp[4],
+ SysState.MassComp[5]);
+ fflush(FdEnergy);
+ }
+}
+
+
+/*! This routine first calls a computation of various global quantities of the
+ * particle distribution, and then writes some statistics about the energies
+ * in the various particle components to the file FdEnergy.
+ */
+#ifdef ADVANCEDSTATISTICS
+void advanced_energy_statistics(void)
+{
+ int i;
+
+#ifdef DETAILED_CPU
+ double tstart,tend;
+ tstart = second();
+#endif
+
+
+ compute_global_quantities_of_system();
+
+ if(ThisTask == 0)
+ {
+
+ /**************/
+ /* energy */
+ /**************/
+
+ /* time */
+ fprintf(FdEnergy,"%g ",All.Time);
+
+ /* total */
+ fprintf(FdEnergy,"%g %g %g ",SysState.EnergyInt, SysState.EnergyPot, SysState.EnergyKin);
+#ifdef COOLING
+ fprintf(FdEnergy,"%g ",SysState.EnergyRadSph);
+#endif
+#ifdef AGN_HEATING
+ fprintf(FdEnergy,"%g ",SysState.EnergyAGNHeat);
+#endif
+#ifdef MULTIPHASE
+ fprintf(FdEnergy,"%g ",SysState.EnergyRadSticky);
+#endif
+#ifdef FEEDBACK_WIND
+ fprintf(FdEnergy,"%g ",SysState.EnergyFeedbackWind);
+#endif
+#ifdef BUBBLES
+ fprintf(FdEnergy,"%g ",SysState.EnergyBubbles);
+#endif
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ fprintf(FdEnergy,"%g ",SysState.EnergyThermalFeedback);
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ fprintf(FdEnergy,"%g ",SysState.EnergyKineticFeedback);
+#endif
+
+ /* comp */
+ for (i=0;i<6;i++)
+ {
+ fprintf(FdEnergy,"%g %g %g ",SysState.EnergyIntComp[i],SysState.EnergyPotComp[i], SysState.EnergyKinComp[i]);
+#ifdef COOLING
+ fprintf(FdEnergy,"%g ",SysState.EnergyRadSphComp[i]);
+#endif
+#ifdef AGN_HEATING
+ fprintf(FdEnergy,"%g ",SysState.EnergyAGNHeatComp[i]);
+#endif
+#ifdef MULTIPHASE
+ fprintf(FdEnergy,"%g ",SysState.EnergyRadStickyComp[i]);
+#endif
+#ifdef FEEDBACK_WIND
+ fprintf(FdEnergy,"%g ",SysState.EnergyFeedbackWindComp[i]);
+#endif
+#ifdef BUBBLES
+ fprintf(FdEnergy,"%g ",SysState.EnergyBubblesComp[i]);
+#endif
+#ifdef CHIMIE_THERMAL_FEEDBACK
+ fprintf(FdEnergy,"%g ",SysState.EnergyThermalFeedbackComp[i]);
+#endif
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ fprintf(FdEnergy,"%g ",SysState.EnergyKineticFeedbackComp[i]);
+#endif
+
+ }
+
+ /* mass */
+ for (i=0;i<6;i++)
+ {
+ fprintf(FdEnergy,"%g ",SysState.MassComp[i]);
+ }
+
+ /* return */
+ fprintf(FdEnergy,"\n");
+
+ fflush(FdEnergy);
+
+#ifdef SYSTEMSTATISTICS
+
+ /**************/
+ /* system */
+ /**************/
+
+
+ fprintf(FdSystem,"%g %g %g %g %g %g %g %g %g %g %g %g %g\n",
+ All.Time,
+ SysState.Momentum[0], SysState.Momentum[1], SysState.Momentum[2], SysState.Momentum[3],
+ SysState.AngMomentum[0], SysState.AngMomentum[1], SysState.AngMomentum[2], SysState.AngMomentum[3],
+ SysState.CenterOfMass[0], SysState.CenterOfMass[1], SysState.CenterOfMass[2], SysState.CenterOfMass[3]);
+
+ fflush(FdSystem);
+
+
+#endif
+
+ }
+
+#ifdef DETAILED_CPU
+ tend = second();
+ All.CPU_Residual += timediff(tstart, tend);
+#endif
+
+
+}
+
+#endif
+
diff --git a/clusters/user/GEAR/src/starformation.c b/clusters/user/GEAR/src/starformation.c
new file mode 100644
index 0000000..4181519
--- /dev/null
+++ b/clusters/user/GEAR/src/starformation.c
@@ -0,0 +1,1009 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_spline.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+#ifdef SFR
+#ifdef FEEDBACK_WIND
+
+void feedbackwind_compute_energy_kin(int mode)
+{
+ int i;
+ double DeltaEgyKin;
+ double Tot_DeltaEgyKin;
+
+ DeltaEgyKin = 0;
+ Tot_DeltaEgyKin = 0;
+
+ if (mode==1)
+ {
+ LocalSysState.EnergyKin1 = 0;
+ LocalSysState.EnergyKin2 = 0;
+ }
+
+
+ for(i = 0; i < N_gas; i++)
+ {
+ if (P[i].Type==0)
+ {
+
+ if (mode==1)
+ LocalSysState.EnergyKin1 += 0.5 * P[i].Mass * (P[i].Vel[0]*P[i].Vel[0]+P[i].Vel[1]*P[i].Vel[1]+P[i].Vel[2]*P[i].Vel[2]);
+ else
+ LocalSysState.EnergyKin2 += 0.5 * P[i].Mass * (P[i].Vel[0]*P[i].Vel[0]+P[i].Vel[1]*P[i].Vel[1]+P[i].Vel[2]*P[i].Vel[2]);
+ }
+ }
+
+ if (mode==2)
+ {
+ DeltaEgyKin = LocalSysState.EnergyKin2 - LocalSysState.EnergyKin1;
+ MPI_Reduce(&DeltaEgyKin, &Tot_DeltaEgyKin, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ LocalSysState.EnergyFeedbackWind -= DeltaEgyKin;
+ }
+
+
+}
+
+#endif
+
+
+
+
+
+
+/*! \file starformation.c
+ * \brief Compute jet
+ *
+*/
+
+static double hubble_a,a3inv=1.;
+
+/*! Compute starformation
+ *
+ */
+void star_formation(void)
+{
+ int i,j;
+ int NumNewStars=0,firststar;
+ int *AllNumNewStars;
+ double T;
+ double p;
+ double dt=0;
+ double tstar=1.;
+ double MeanBaryonicDensity;
+ int flagST=1,flagToStar=0;
+ double mstar;
+ double mstars=0,Tot_mstars=0;
+ double mnewstars,Tot_mnewstars=0;
+ int Nnewstars,Tot_Nnewstars=0;
+ double star_formation_rate;
+ int *numlist;
+ double t0,t1;
+ double DivVel;
+
+ struct particle_data Psave;
+
+ int k;
+
+ t0 = second();
+
+ if(ThisTask == 0)
+ {
+ printf("start star formation... \n");
+ fflush(stdout);
+ }
+
+ AllNumNewStars = malloc(sizeof(int) * NTask);
+
+
+#ifdef FEEDBACK_WIND
+ double phi,costh,sinth;
+#endif
+
+ if(All.ComovingIntegrationOn)
+ {
+ hubble_a = All.Omega0 / (All.Time * All.Time * All.Time)
+ + (1 - All.Omega0 - All.OmegaLambda) / (All.Time * All.Time) + All.OmegaLambda;
+
+ hubble_a = All.Hubble * sqrt(hubble_a);
+ a3inv = 1 / (All.Time * All.Time * All.Time);
+ }
+ else
+ {
+ hubble_a = 1.;
+ a3inv = 1.;
+ }
+
+ switch (All.StarFormationType)
+ {
+ case 0:
+ All.ThresholdDensity = All.StarFormationDensity;
+ break;
+
+ case 1:
+ MeanBaryonicDensity = All.OmegaBaryon * (3 * All.Hubble * All.Hubble / (8 * M_PI * All.G));
+ All.ThresholdDensity = dmax(All.StarFormationDensity/a3inv,200*MeanBaryonicDensity);
+ break;
+
+ case 2:
+ All.ThresholdDensity = All.StarFormationDensity;
+ All.StarFormationTime = 1./All.StarFormationCstar / pow(4*PI*All.G*All.StarFormationDensity,0.5);
+ break;
+
+ }
+
+ flagST=1;
+ mnewstars=0;
+ Nnewstars=0;
+#ifdef FEEDBACK_WIND
+ feedbackwind_compute_energy_kin(1);
+#endif
+
+
+
+
+ for(i = 0; i < N_gas; i++)
+ {
+
+ /* only active particles */
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ if (SphP[i].WindTime < (All.Time-All.ChimieWindTime)) /* not a wind particle */
+ {
+#endif
+
+ /* if the particle is a false gas (new star) */
+ if(P[i].Type != 0)
+ continue;
+
+#ifdef FEEDBACK
+ /* if the particle is a SN */
+ if(SphP[i].EnergySN)
+ {
+
+ /* the particle is not allowed to becomes a stars, as it is already a SN */
+ flagST = 0;
+
+ SphP[i].EnergySNrem = SphP[i].EnergySNrem - SphP[i].EnergySN;
+
+ /* dt in time unit here, even for ComovingIntegrationOn */
+ dt = (All.Ti_Current - P[i].Ti_begstep) * All.Timebase_interval / hubble_a;
+
+ if (All.SupernovaTime==0)
+ SphP[i].EnergySN = SphP[i].EnergySNrem;
+ else
+ SphP[i].EnergySN = (P[i].Mass*All.SupernovaEgySpecPerMassUnit)/All.SupernovaTime*dt;
+
+
+ /* limit the feedback energy to the remaining energy */
+ if (SphP[i].EnergySN>SphP[i].EnergySNrem)
+ SphP[i].EnergySN = SphP[i].EnergySNrem;
+
+
+ if (SphP[i].EnergySNrem == 0) /* not enough energy, make a star */
+ {
+ //printf("Particle %d becomes a star\n",P[i].ID);
+ P[i].Type = ST;
+ RearrangeParticlesFlag=1;
+ }
+
+
+ }
+#endif
+
+ /* check if the particle may become a star */
+#ifdef SFR_NEG_DIV_ONLY
+ if(All.ComovingIntegrationOn)
+ DivVel = SphP[i].DivVel/(All.Time*All.Time) + 3*hubble_a;
+ else
+ DivVel = SphP[i].DivVel;
+
+ if (( DivVel < 0) && flagST)
+#endif
+ {
+
+
+
+
+
+#ifdef MULTIPHASE
+ if (SphP[i].Phase == GAS_STICKY)
+ {
+#endif
+
+ if (SphP[i].Density*a3inv > All.ThresholdDensity)
+ {
+
+ /* check temperature */
+#ifdef ISOTHERM_EQS
+ T = All.InitGasTemp;
+#else
+#ifdef MULTIPHASE
+ T = GAMMA_MINUS1*All.mumh/All.Boltzmann * SphP[i].EntropyPred;
+#else
+ T = All.mumh/All.Boltzmann * SphP[i].EntropyPred * pow(SphP[i].Density*a3inv,GAMMA_MINUS1);
+#endif
+#endif
+
+ if (T < All.StarFormationTemperature)
+ {
+ /* dt in time unit here, even for ComovingIntegrationOn */
+ /* dt has units of Gyr/h also tstar */
+ dt = (All.Ti_Current - P[i].Ti_begstep) * All.Timebase_interval / hubble_a;
+ tstar = All.StarFormationTime / pow(SphP[i].Density*a3inv/All.StarFormationDensity,0.5);
+
+
+
+ /* check the mass of the particle */
+
+ flagToStar = 0;
+
+ if (All.StarFormationNStarsFromGas==1)
+ {
+ /* transform the gas particle into a star particle */
+ mstar = P[i].Mass;
+ flagToStar=1;
+ }
+ else
+ {
+ if (P[i].Mass<=(1.0+All.StarFormationMgMsFraction)*All.StarFormationStarMass)
+ /* transform the gas particle into a star particle */
+ {
+ mstar = P[i].Mass;
+ flagToStar=1;
+ }
+ else
+ /* extract a star particle from the gas particle */
+ {
+ mstar = All.StarFormationStarMass;
+ flagToStar=0;
+ }
+ }
+
+
+
+
+ /* compute probability of forming star */
+ p = (P[i].Mass/mstar)*(1. - exp(-dt/tstar) );
+
+ if (get_StarFormation_random_number(P[i].ID) < p)
+ {
+
+#ifdef FEEDBACK
+ SphP[i].EnergySNrem = P[i].Mass*All.SupernovaEgySpecPerMassUnit;
+
+ if (All.SupernovaTime==0)
+ SphP[i].EnergySN = SphP[i].EnergySNrem;
+ else
+ SphP[i].EnergySN = (P[i].Mass*All.SupernovaEgySpecPerMassUnit)/All.SupernovaTime*dt;
+
+
+ /* limit the feedback energy to the remaining energy */
+ if (SphP[i].EnergySN>SphP[i].EnergySNrem)
+ SphP[i].EnergySN = SphP[i].EnergySNrem;
+
+ if (SphP[i].EnergySNrem==0)
+ {
+ P[i].Type = ST;
+ RearrangeParticlesFlag=1;
+ }
+#else
+
+ if (flagToStar) /* turns the stellar particule into star particle */
+ {
+#ifdef STELLAR_PROP
+ if (N_stars+1 > All.MaxPartStars)
+ {
+ printf("No memory left for new star particle : N_stars+1=%d MaxPartStars=%d\n\n",N_stars+1,All.MaxPartStars);
+ endrun(999008);
+ }
+#else
+ if (N_stars+1 > All.MaxPart-N_gas)
+ {
+ printf("No memory left for new star particle : N_stars+1=%d All.MaxPart-N_gas=%d\n\n",N_stars+1,All.MaxPart-N_gas);
+ endrun(999009);
+ }
+
+#endif
+
+ P[i].Type = ST;
+ RearrangeParticlesFlag=1;
+
+ //printf("(%d) move gas particle to star (i=%d,id=%d)\n",ThisTask,i,P[i].ID);
+
+ /* count mass */
+ mnewstars+=P[i].Mass;
+ Nnewstars+=1;
+
+
+ /* gather energy */
+#ifdef FEEDBACK
+ LocalSysState.StarEnergyFeedback += SphP[i].EgySpecFeedback * P[i].Mass;
+#endif
+
+
+
+
+ }
+ else /* create a new star particle */
+ {
+
+#ifdef STELLAR_PROP
+ if (N_stars+1 > All.MaxPartStars)
+ {
+ printf("No memory left for new star particle : N_stars+1=%d MaxPartStars=%d\n\n",N_stars+1,All.MaxPartStars);
+ endrun(999000);
+ }
+#else
+ if (N_stars+1 > All.MaxPart-N_gas)
+ {
+ printf("No memory left for new star particle : N_stars+1=%d All.MaxPart-N_gas=%d\n\n",N_stars+1,All.MaxPart-N_gas);
+ endrun(999001);
+ }
+#endif
+
+ if (NumPart+1 > All.MaxPart)
+ {
+ printf("No memory left for new particle : NumPart=%d MaxPart=%d",NumPart,All.MaxPart);
+ endrun(999002);
+ }
+
+ if (P[i].Mass <= mstar)
+ {
+ printf("Mass too small %g %g !",P[i].Mass,mstar);
+ endrun(999003);
+ }
+
+
+ /* the new particle get all properties of the SPH particle, except the mass */
+ /* the type is defined further */
+
+ j = NumPart+NumNewStars;
+
+ P[j] = P[i];
+ P[j].Mass = mstar;
+ P[j].Type = ST;
+
+ /* count mass */
+ mnewstars+=mstar;
+ Nnewstars+=1;
+
+
+ /* this is needed to kick parent nodes dynamically in timestep.c */
+ /* could be avoided if All.NumForcesSinceLastDomainDecomp > All.TotNumPart * All.TreeDomainUpdateFrequency*/
+ Father[j] = Father[i];
+
+#ifdef STELLAR_PROP
+ /* index to Stp */
+ P[j].StPIdx = N_stars+NumNewStars;
+
+ /* record info at the end of StP */
+
+ /* record time */
+ StP[P[j].StPIdx].FormationTime = All.Time;
+ /* record time */
+ StP[P[j].StPIdx].IDProj = P[i].ID;
+ /* record hsml */
+ StP[P[j].StPIdx].Hsml = SphP[i].Hsml;
+
+#ifdef CHIMIE
+ /* record initial mass */
+ StP[P[j].StPIdx].InitialMass = P[j].Mass;
+ /* record density */
+ StP[P[j].StPIdx].Density = SphP[i].Density;
+ /* record metalicity */
+ for(k = 0; k < NELEMENTS; k++)
+ StP[P[j].StPIdx].Metal[k] = SphP[i].Metal[k];
+#endif
+ /* index to P */
+ StP[P[j].StPIdx].PIdx = j;
+
+
+#endif
+
+
+ /* change proj properties */
+ P[i].Mass = P[i].Mass-mstar;
+
+
+
+
+ /* gather energy */
+#ifdef FEEDBACK
+ LocalSysState.StarEnergyFeedback += SphP[i].EgySpecFeedback * P[j].Mass;
+#endif
+
+ /* here, we should add the self force, but it is negligible */
+
+
+ NumNewStars++;
+
+
+ }
+
+#endif
+ }
+#ifdef FEEDBACK_WIND
+ else
+ {
+ tstar = tstar/All.SupernovaWindParameter;
+ /* here, we devide by p, because there is (1-p) prob. to be here */
+ p = (P[i].Mass/mstar)*(1. - exp(-dt/tstar))/(1-p);
+
+ if (get_FeedbackWind_random_number(P[i].ID) < p)
+ {
+ phi = PI*2.*get_FeedbackWind_random_number(P[i].ID+1);
+ costh = 1.-2.*get_FeedbackWind_random_number(P[i].ID+2);
+ sinth = sqrt(1.-costh*costh);
+
+ SphP[i].FeedbackWindVel[0] = All.SupernovaWindSpeed *sinth*cos(phi);
+ SphP[i].FeedbackWindVel[1] = All.SupernovaWindSpeed *sinth*sin(phi);
+ SphP[i].FeedbackWindVel[2] = All.SupernovaWindSpeed *costh;
+
+
+ //printf("(%d) %d vx vy vz %g %g %g %g\n",ThisTask,P[i].ID,P[i].Vel[0],P[i].Vel[1],P[i].Vel[2],sqrt( P[i].Vel[0]*P[i].Vel[0] + P[i].Vel[1]*P[i].Vel[1] + P[i].Vel[2]*P[i].Vel[2] ));
+ //printf("(%d) SupernovaWindSpeed %g dv=%g\n",ThisTask,All.SupernovaWindSpeed,sqrt( SphP[i].FeedbackWindVel[0]*SphP[i].FeedbackWindVel[0] + SphP[i].FeedbackWindVel[1]*SphP[i].FeedbackWindVel[1] + SphP[i].FeedbackWindVel[2]*SphP[i].FeedbackWindVel[2] ));
+
+ /* new velocities */
+ for(k = 0; k < 3; k++)
+ {
+ SphP[i].VelPred[k] += SphP[i].FeedbackWindVel[k];
+ P[i].Vel[k] += SphP[i].FeedbackWindVel[k];
+ }
+
+ //printf("(%d) %d vx vy vz %g %g %g %g\n",ThisTask,P[i].ID,P[i].Vel[0],P[i].Vel[1],P[i].Vel[2],sqrt( P[i].Vel[0]*P[i].Vel[0] + P[i].Vel[1]*P[i].Vel[1] + P[i].Vel[2]*P[i].Vel[2] ));
+
+
+ }
+
+
+
+ }
+#endif
+
+
+
+ }
+ }
+
+#ifdef MULTIPHASE
+ }
+#endif
+
+
+
+
+ }
+
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ }
+#endif
+
+
+ }
+
+ }
+
+
+
+ if (All.StarFormationNStarsFromGas != 1)
+ {
+
+
+ /* get NumNewStars from all other procs */
+ MPI_Allgather(&NumNewStars, 1, MPI_INT, AllNumNewStars, 1, MPI_INT, MPI_COMM_WORLD);
+
+ /* find the id of the fist local star */
+ firststar = All.TotNumPart;
+
+ for (i=0;i<ThisTask;i++)
+ firststar += AllNumNewStars[i];
+
+ /* now, set ids */
+ for (i=0;i< NumNewStars;i++)
+ P[NumPart+i].ID = firststar + i;
+
+ /* move the new stars to the right place
+ in both cases, the relati ve position of the new stars is preseved,
+ so, there is no need to rearrange StP.
+ */
+ if (NumNewStars < NumPart-N_gas-N_stars) /* move stars inwards */
+ {
+ for(i=0;i<NumNewStars;i++)
+ {
+ Psave = P[N_gas+N_stars+i];
+ P[N_gas+N_stars+i] = P[NumPart+i];
+ P[NumPart+i]=Psave;
+#ifdef STELLAR_PROP
+ /* set index for StP */
+ StP[P[N_gas+N_stars+i].StPIdx].PIdx = N_gas+N_stars+i;
+#ifdef CHECK_ID_CORRESPONDENCE
+ StP[P[N_gas+N_stars+i].StPIdx].ID = P[N_gas+N_stars+i].ID;
+#endif
+ //printf("(%d) new star (a) i=%d id=%d (StPi=%d PIdx=%d)\n",ThisTask,N_gas+N_stars+i,P[N_gas+N_stars+i].ID,P[N_gas+N_stars+i].StPIdx,StP[P[N_gas+N_stars+i].StPIdx].PIdx);
+#endif
+
+ }
+ }
+ else /* move other particles outwards */
+ {
+
+ if (NumPart-N_gas-N_stars>0) /* there is other particles */
+ {
+ for(i=N_gas+N_stars;i<NumPart;i++)
+ {
+ Psave = P[i];
+ P[i] = P[i+NumNewStars];
+ P[i+NumNewStars] = Psave;
+#ifdef STELLAR_PROP
+ /* set new index for StP */
+ StP[P[i].StPIdx].PIdx = i;
+#ifdef CHECK_ID_CORRESPONDENCE
+ StP[P[i].StPIdx].ID = P[i].ID;
+#endif
+
+#endif
+ //printf("(%d) new star (b) i=%d id=%d\n",ThisTask,N_gas+N_stars+i,P[N_gas+N_stars+i].ID);
+ }
+
+
+
+ /* now, set new index for the StP that where untouched */
+ for(i=N_gas+N_stars+1;i<N_gas+N_stars+NumNewStars;i++) /* here, we should move up to <N_gas+N_stars+NumNewStars */
+ { /* however, if there is only one particle, it will not be counted */
+#ifdef STELLAR_PROP
+ /* set new index for StP */
+ StP[P[i].StPIdx].PIdx = i;
+#ifdef CHECK_ID_CORRESPONDENCE
+ StP[P[i].StPIdx].ID = P[i].ID;
+#endif
+#endif
+ }
+
+
+
+
+ }
+ else /* there is no other particles outside, i.e, new particles are already the last ones */
+ {
+
+ for(i=N_gas+N_stars;i<NumPart+NumNewStars;i++)
+ {
+#ifdef STELLAR_PROP
+ /* set new index for StP */
+ StP[P[i].StPIdx].PIdx = i;
+#ifdef CHECK_ID_CORRESPONDENCE
+ StP[P[i].StPIdx].ID = P[i].ID;
+#endif
+
+#endif
+ }
+
+
+ }
+
+
+
+
+
+ }
+
+
+ /* set new NumPart */
+ NumPart = NumPart+NumNewStars;
+ N_stars = N_stars+NumNewStars;
+
+
+
+ /*MPI_Allreduce(&NumPart, &All.TotNumPart, 1, MPI_LONG_LONG, MPI_SUM, MPI_COMM_WORLD);*/
+ numlist = malloc(NTask * sizeof(int) * NTask);
+
+ MPI_Allgather(&NumPart, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotNumPart = 0; i < NTask; i++)
+ All.TotNumPart += numlist[i];
+
+ MPI_Allgather(&N_stars, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotN_stars = 0; i < NTask; i++)
+ All.TotN_stars += numlist[i];
+
+ free(numlist);
+
+
+ }
+
+
+
+ /* compute star mass */
+ mstars=0;
+ for (i=0;i< NumPart;i++)
+ {
+ if (P[i].Type==ST)
+ mstars+= P[i].Mass;
+ }
+
+#ifdef FEEDBACK_WIND
+ feedbackwind_compute_energy_kin(2);
+#endif
+
+
+
+ /* share results */
+ MPI_Allreduce(&mstars, &Tot_mstars, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(&mnewstars, &Tot_mnewstars, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(&Nnewstars, &Tot_Nnewstars, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+
+ if (All.TimeStep>0)
+ star_formation_rate = Tot_mnewstars/All.TimeStep;
+ else
+ star_formation_rate = 0.;
+
+
+ if (ThisTask==0)
+ {
+ //fprintf(FdSfr, "Step %d, Time: %g, NewStarsPart: %g \n", All.NumCurrentTiStep, All.Time, Tot_mstars);
+ fprintf(FdSfr, "%15g %15g %15g %15g %15g\n", All.Time,All.TimeStep,Tot_mstars,Tot_mnewstars,star_formation_rate);
+ fflush(FdSfr);
+ }
+
+
+
+ //printf("(%d) N_gas = %d N_stars = %d NumPart = %d\n",ThisTask,N_gas,N_stars,NumPart);
+ //fflush(stdout);
+
+ if(ThisTask == 0)
+ {
+ printf("Total number of new star particles : %d \n",(int) Tot_Nnewstars);
+ printf("Total number of star particles : %d%09d\n",(int) (All.TotN_stars / 1000000000), (int) (All.TotN_stars % 1000000000));
+ fflush(stdout);
+ }
+
+
+
+#ifdef CHECK_BLOCK_ORDER
+ int typenow;
+
+ rearrange_particle_sequence();
+
+ typenow = 0;
+ for(i = 0; i < NumPart; i++)
+ {
+
+ if ((P[i].Type<typenow)&&(typenow<=ST))
+ {
+ printf("\nBlock order error\n");
+ printf("(%d) i=%d id=%d Type=%d typenow=%d\n\n",ThisTask,i,P[i].ID,P[i].Type,typenow);
+ endrun(999004);
+ }
+
+ typenow = P[i].Type;
+ }
+#endif
+
+
+
+#ifdef CHECK_ID_CORRESPONDENCE
+
+ rearrange_particle_sequence();
+
+ for(i = N_gas; i < N_gas+N_stars; i++)
+ {
+
+ if( StP[P[i].StPIdx].PIdx != i )
+ {
+ printf("\nP/StP correspondance error\n");
+ printf("(%d) (in starformation) N_stars=%d N_gas=%d i=%d id=%d P[i].StPIdx=%d StP[P[i].StPIdx].PIdx=%d\n\n",ThisTask,N_stars,N_gas,i,P[i].ID,P[i].StPIdx,StP[P[i].StPIdx].PIdx);
+ endrun(999005);
+ }
+
+
+ if(StP[P[i].StPIdx].ID != P[i].ID)
+ {
+ printf("\nP/StP correspondance error\n");
+ printf("(%d) (in starformation) N_gas=%d N_stars=%d i=%d Type=%d P.Id=%d P[i].StPIdx=%d StP[P[i].StPIdx].ID=%d \n\n",ThisTask,N_gas,N_stars,i,P[i].Type,P[i].ID, P[i].StPIdx, StP[P[i].StPIdx].ID);
+ endrun(999006);
+ }
+
+ }
+
+#endif
+
+
+
+ if(ThisTask == 0)
+ {
+ printf("star formation done. \n");
+ fflush(stdout);
+ }
+
+
+ t1 = second();
+ All.CPU_StarFormation += timediff(t0, t1);
+
+}
+
+
+/*
+ * This routine rearrange particle sequence in order to group particles of same type
+ */
+void rearrange_particle_sequence(void)
+{
+ int i,j;
+ struct particle_data Psave;
+ struct sph_particle_data Psave_sph;
+ int nstars=0;
+ int *numlist;
+ int sumflag;
+#ifdef CHIMIE
+ int k;
+#endif
+
+
+ MPI_Allreduce(&RearrangeParticlesFlag, &sumflag, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+
+
+
+ if(RearrangeParticlesFlag)
+ {
+
+
+ if(ThisTask == 0)
+ {
+ printf("Start rearrange particle sequence...\n");
+ fflush(stdout);
+ }
+
+
+ /* loop over all gasous particles */
+ for(i = 0; i < N_gas; i++)
+ {
+
+ if (P[i].Type == ST)
+ {
+
+
+ /* find the first non star (flag) particle */
+ for(j=N_gas-1;j>0;j--)
+ {
+ if (P[j].Type==0) /* we have a gasous particle */
+ break;
+
+ if (j==i) /* the particule is the last gaseous particle */
+ break; /* the particle will be inverted with itself */
+
+
+ if (P[j].Type==ST) /* the particule is selected to becomes a star, turn it to star */
+ {
+#ifdef STELLAR_PROP
+ P[j].StPIdx = N_stars;
+
+ StP[P[j].StPIdx].FormationTime = All.Time;
+ StP[P[j].StPIdx].IDProj = P[j].ID;
+ StP[P[j].StPIdx].Hsml = SphP[j].Hsml;
+#ifdef CHIMIE
+ /* record initial mass */
+ StP[P[j].StPIdx].InitialMass = P[j].Mass;
+ /* record density */
+ StP[P[j].StPIdx].Density = SphP[j].Density;
+ /* record metalicity */
+ for(k = 0; k < NELEMENTS; k++)
+ StP[P[j].StPIdx].Metal[k] = SphP[j].Metal[k];
+#endif
+
+#ifdef CHECK_ID_CORRESPONDENCE
+ StP[P[j].StPIdx].ID = P[j].ID;
+#endif
+
+ StP[P[j].StPIdx].PIdx = j;
+ //printf("(%d) move to stars (b) i=%d -> j=%d id=%d Stpi=%d (N_gas=%d N_stars=%d)\n",ThisTask,j,j,P[j].ID,P[j].StPIdx,N_gas,N_stars);
+#endif
+
+ nstars++;
+ N_gas--;
+ N_stars++;
+ continue;
+ }
+
+
+ }
+
+ //printf("(%d) --> i=%d id=%d Type=%d (N_gas=%d)\n",ThisTask,i,P[i].ID,P[i].Type,N_gas);
+ //printf("(%d) <-- i=%d id=%d Type=%d\n",ThisTask,j,P[j].ID,P[j].Type);
+
+ /* move the particle */
+ Psave = P[i]; /* copy the particle */
+ Psave_sph = SphP[i]; /* copy the particle */
+
+ P[i] = P[j]; /* replace by the last gaseous one */
+ SphP[i] = SphP[j]; /* replace by the last gaseous one */
+ P[j] = Psave;
+
+#ifdef STELLAR_PROP
+ P[j].StPIdx = N_stars;
+ StP[P[j].StPIdx].FormationTime = All.Time;
+ StP[P[j].StPIdx].IDProj = P[j].ID;
+ StP[P[j].StPIdx].Hsml = Psave_sph.Hsml;
+#ifdef CHIMIE
+ /* record initial mass */
+ StP[P[j].StPIdx].InitialMass = P[j].Mass;
+ /* record density */
+ StP[P[j].StPIdx].Density = Psave_sph.Density;
+ /* record metalicity */
+ for(k = 0; k < NELEMENTS; k++)
+ StP[P[j].StPIdx].Metal[k] = Psave_sph.Metal[k];
+#endif
+
+
+#ifdef CHECK_ID_CORRESPONDENCE
+ StP[P[j].StPIdx].ID = P[j].ID;
+#endif
+ StP[P[j].StPIdx].PIdx = j;
+ //printf("(%d) move to stars (a) i=%d -> j=%d id=%d Stpi=%d (N_gas=%d N_stars=%d)\n",ThisTask,i,j,P[j].ID,P[j].StPIdx,N_gas,N_stars);
+#endif
+
+
+
+ nstars++;
+ N_gas--;
+ N_stars++;
+ }
+ }
+ RearrangeParticlesFlag=0;
+
+ //if(ThisTask == 0)
+ // {
+ // printf("%d new star(s)\n",nstars);
+ // printf("Start rearrange particle sequence done.\n");
+ // fflush(stdout);
+ // }
+
+
+ }
+
+
+
+ if (sumflag) /* do this only if at least one Task has rearrange particles */
+ {
+
+
+
+ numlist = malloc(NTask * sizeof(int) * NTask);
+
+ /* update all.TotN_gas */
+ MPI_Allgather(&N_gas, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotN_gas = 0; i < NTask; i++)
+ All.TotN_gas += numlist[i];
+
+ /* update all.TotN_stars */
+ MPI_Allgather(&N_stars, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, All.TotN_stars = 0; i < NTask; i++)
+ All.TotN_stars += numlist[i];
+
+ free(numlist);
+
+
+ }
+
+
+
+
+
+}
+
+
+
+
+
+
+void sfr_compute_energy_int(int mode)
+{
+ int i;
+ double DeltaEgyInt;
+ double Tot_DeltaEgyInt;
+ double egyspec;
+
+
+ DeltaEgyInt = 0;
+ Tot_DeltaEgyInt = 0;
+
+ if (mode==1)
+ {
+ LocalSysState.EnergyInt1 = 0;
+ LocalSysState.EnergyInt2 = 0;
+ }
+
+ for(i = 0; i < N_gas; i++)
+ {
+ if (P[i].Type==0)
+ {
+
+#ifdef MULTIPHASE
+ if (SphP[i].Phase== GAS_SPH)
+ egyspec = SphP[i].Entropy / (GAMMA_MINUS1) * pow(SphP[i].Density * a3inv, GAMMA_MINUS1);
+ else
+ egyspec = SphP[i].Entropy;
+#else
+ egyspec = SphP[i].Entropy / (GAMMA_MINUS1) * pow(SphP[i].Density * a3inv, GAMMA_MINUS1);
+
+#endif
+
+ if (mode==1)
+ LocalSysState.EnergyInt1 += P[i].Mass * egyspec;
+ else
+ LocalSysState.EnergyInt2 += P[i].Mass * egyspec;
+ }
+ }
+
+ if (mode==2)
+ {
+ DeltaEgyInt = LocalSysState.EnergyInt2 - LocalSysState.EnergyInt1;
+ MPI_Reduce(&DeltaEgyInt, &Tot_DeltaEgyInt, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ LocalSysState.StarEnergyInt -= DeltaEgyInt;
+ }
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+void sfr_check_number_of_stars(int mode)
+{
+
+ int i;
+ int nstars;
+ int npotstars;
+
+
+ for(i = 0, nstars = 0, npotstars = 0; i < NumPart; i++)
+ {
+
+ if (P[i].Type==ST)
+ if (i<N_gas)
+ {
+ npotstars++;
+ }
+ else
+ {
+ nstars++;
+ }
+
+ }
+
+
+ printf("(%d) N_stars=%d npotstars+nstars=%d npotstars=%d nstars=%d\n",ThisTask,N_stars,npotstars+nstars,npotstars,nstars);
+ if (nstars != N_stars)
+ endrun(987987);
+
+}
+
+
+
+
+
+
+#endif
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/stars_density.c b/clusters/user/GEAR/src/stars_density.c
new file mode 100644
index 0000000..7aca1fe
--- /dev/null
+++ b/clusters/user/GEAR/src/stars_density.c
@@ -0,0 +1,719 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file density.c
+ * \brief SPH density computation and smoothing length determination
+ *
+ * This file contains the "first SPH loop", where the SPH densities and
+ * some auxiliary quantities are computed. If the number of neighbours
+ * obtained falls outside the target range, the correct smoothing
+ * length is determined iteratively, if needed.
+ */
+
+
+#ifdef PERIODIC
+static double boxSize, boxHalf;
+
+#ifdef LONG_X
+static double boxSize_X, boxHalf_X;
+#else
+#define boxSize_X boxSize
+#define boxHalf_X boxHalf
+#endif
+#ifdef LONG_Y
+static double boxSize_Y, boxHalf_Y;
+#else
+#define boxSize_Y boxSize
+#define boxHalf_Y boxHalf
+#endif
+#ifdef LONG_Z
+static double boxSize_Z, boxHalf_Z;
+#else
+#define boxSize_Z boxSize
+#define boxHalf_Z boxHalf
+#endif
+#endif
+
+#ifdef CHIMIE
+/*! This function computes the local density for each active SPH particle,
+ * the number of neighbours in the current smoothing radius, and the
+ * divergence and curl of the velocity field. The pressure is updated as
+ * well. If a particle with its smoothing region is fully inside the
+ * local domain, it is not exported to the other processors. The function
+ * also detects particles that have a number of neighbours outside the
+ * allowed tolerance range. For these particles, the smoothing length is
+ * adjusted accordingly, and the density computation is executed again.
+ * Note that the smoothing length is not allowed to fall below the lower
+ * bound set by MinGasHsml.
+ */
+void stars_density(void)
+{
+ long long ntot, ntotleft;
+ int *noffset, *nbuffer, *nsend, *nsend_local, *numlist, *ndonelist;
+ int i, j, n,m, ndone, npleft, maxfill, source, iter = 0;
+ int level, ngrp, sendTask, recvTask, place, nexport;
+ double tstart, tend, tstart_ngb = 0, tend_ngb = 0;
+ double sumt, sumcomm, timengb, sumtimengb;
+ double timecomp = 0, timeimbalance = 0, timecommsumm = 0, sumimbalance;
+ MPI_Status status;
+
+#ifdef DETAILED_CPU_OUTPUT_IN_STARS_DENSITY
+ double *timengblist;
+ double *timecomplist;
+ double *timecommsummlist;
+ double *timeimbalancelist;
+#endif
+
+
+#ifdef PERIODIC
+ boxSize = All.BoxSize;
+ boxHalf = 0.5 * All.BoxSize;
+#ifdef LONG_X
+ boxHalf_X = boxHalf * LONG_X;
+ boxSize_X = boxSize * LONG_X;
+#endif
+#ifdef LONG_Y
+ boxHalf_Y = boxHalf * LONG_Y;
+ boxSize_Y = boxSize * LONG_Y;
+#endif
+#ifdef LONG_Z
+ boxHalf_Z = boxHalf * LONG_Z;
+ boxSize_Z = boxSize * LONG_Z;
+#endif
+#endif
+
+ if (ThisTask==0)
+ printf("Start star density computation.\n");
+
+ noffset = malloc(sizeof(int) * NTask); /* offsets of bunches in common list */
+ nbuffer = malloc(sizeof(int) * NTask);
+ nsend_local = malloc(sizeof(int) * NTask);
+ nsend = malloc(sizeof(int) * NTask * NTask);
+ ndonelist = malloc(sizeof(int) * NTask);
+
+
+ /* `NumStUpdate' gives the number of particles on this processor that want a chimie computation */
+ for(n = N_gas, NumStUpdate = 0; n < N_gas+N_stars; n++)
+ {
+ m = P[n].StPIdx;
+ StP[m].Left = StP[m].Right = 0;
+#ifdef AVOIDNUMNGBPROBLEM
+ StP[m].OldNumNgb = -1;
+#endif
+ if(P[n].Ti_endstep == All.Ti_Current)
+ NumStUpdate++;
+ }
+
+ numlist = malloc(NTask * sizeof(int) * NTask);
+ MPI_Allgather(&NumStUpdate, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, ntot = 0; i < NTask; i++)
+ ntot += numlist[i];
+ free(numlist);
+
+ /* we will repeat the whole thing for those particles where we didn't
+ * find enough neighbours
+ */
+ do
+ {
+ i = N_gas; /* beginn with the first star */
+ ntotleft = ntot; /* particles left for all tasks together */
+
+ while(ntotleft > 0)
+ {
+
+ for(j = 0; j < NTask; j++)
+ nsend_local[j] = 0;
+
+ /* do local particles and prepare export list */
+ tstart = second();
+ for(nexport = 0, ndone = 0; i < N_gas+N_stars && nexport < All.BunchSizeDensity - NTask; i++)
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+
+ if(P[i].Type != ST)
+ {
+ printf("P[i].Type != ST, we better stop.\n");
+ printf("N_gas=%d (type=%d) i=%d (type=%d)\n",N_gas,P[N_gas].Type,i,P[i].Type);
+ printf("Please, check that you do not use PEANOHILBERT\n");
+ endrun(666001);
+ }
+
+ ndone++;
+
+ m = P[i].StPIdx;
+
+ for(j = 0; j < NTask; j++)
+ Exportflag[j] = 0;
+
+ stars_density_evaluate(i, 0);
+
+ for(j = 0; j < NTask; j++)
+ {
+ if(Exportflag[j])
+ {
+ StarsDensDataIn[nexport].Pos[0] = P[i].Pos[0];
+ StarsDensDataIn[nexport].Pos[1] = P[i].Pos[1];
+ StarsDensDataIn[nexport].Pos[2] = P[i].Pos[2];
+ StarsDensDataIn[nexport].Hsml = StP[m].Hsml;
+ StarsDensDataIn[nexport].Index = i;
+ StarsDensDataIn[nexport].Task = j;
+ nexport++;
+ nsend_local[j]++;
+ }
+ }
+
+ }
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+ qsort(StarsDensDataIn, nexport, sizeof(struct starsdensdata_in), stars_dens_compare_key);
+
+ for(j = 1, noffset[0] = 0; j < NTask; j++)
+ noffset[j] = noffset[j - 1] + nsend_local[j - 1];
+
+ tstart = second();
+
+ MPI_Allgather(nsend_local, NTask, MPI_INT, nsend, NTask, MPI_INT, MPI_COMM_WORLD);
+
+ tend = second();
+ timeimbalance += timediff(tstart, tend);
+
+
+ /* now do the particles that need to be exported */
+
+ for(level = 1; level < (1 << PTask); level++)
+ {
+ tstart = second();
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeDensity)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* get the particles */
+ MPI_Sendrecv(&StarsDensDataIn[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct starsdensdata_in), MPI_BYTE,
+ recvTask, TAG_DENS_A,
+ &StarsDensDataGet[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct starsdensdata_in),
+ MPI_BYTE, recvTask, TAG_DENS_A, MPI_COMM_WORLD, &status);
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+ tend = second();
+ timecommsumm += timediff(tstart, tend);
+
+
+ tstart = second();
+ for(j = 0; j < nbuffer[ThisTask]; j++)
+ stars_density_evaluate(j, 1);
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+ /* do a block to explicitly measure imbalance */
+ tstart = second();
+ MPI_Barrier(MPI_COMM_WORLD);
+ tend = second();
+ timeimbalance += timediff(tstart, tend);
+
+ /* get the result */
+ tstart = second();
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeDensity)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* send the results */
+ MPI_Sendrecv(&StarsDensDataResult[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct starsdensdata_out),
+ MPI_BYTE, recvTask, TAG_DENS_B,
+ &StarsDensDataPartialResult[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct starsdensdata_out),
+ MPI_BYTE, recvTask, TAG_DENS_B, MPI_COMM_WORLD, &status);
+
+ /* add the result to the particles */
+ for(j = 0; j < nsend_local[recvTask]; j++)
+ {
+ source = j + noffset[recvTask];
+ place = P[StarsDensDataIn[source].Index].StPIdx;
+
+ StP[place].NumNgb += StarsDensDataPartialResult[source].Ngb;
+ StP[place].Density += StarsDensDataPartialResult[source].Rho;
+ StP[place].Volume += StarsDensDataPartialResult[source].Volume;
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ StP[place].NgbMass += StarsDensDataPartialResult[source].NgbMass;
+#endif
+ StP[place].DhsmlDensityFactor += StarsDensDataPartialResult[source].DhsmlDensity;
+ }
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+ tend = second();
+ timecommsumm += timediff(tstart, tend);
+
+ level = ngrp - 1;
+ }
+
+ MPI_Allgather(&ndone, 1, MPI_INT, ndonelist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(j = 0; j < NTask; j++)
+ ntotleft -= ndonelist[j];
+ }
+
+
+
+ /* do final operations on results */
+ tstart = second();
+ for(i = N_gas, npleft = 0; i < N_gas+N_stars; i++)
+ {
+ if((P[i].Ti_endstep == All.Ti_Current))
+ {
+
+
+ m = P[i].StPIdx;
+ StP[m].DhsmlDensityFactor =
+ 1 / (1 + StP[m].Hsml * StP[m].DhsmlDensityFactor / (NUMDIMS * StP[m].Density));
+
+
+
+ /* now check whether we had enough neighbours */
+
+
+ if(StP[m].NumNgb < (All.DesNumNgb - All.MaxNumNgbDeviation) ||
+ (StP[m].NumNgb > (All.DesNumNgb + All.MaxNumNgbDeviation)
+ && StP[m].Hsml > (1.01 * All.MinGasHsml)))
+ {
+
+#ifdef AVOIDNUMNGBPROBLEM
+// if((StP[m].NumNgb>StP[m].OldNumNgb-All.MaxNumNgbDeviation/10000.)
+// &&(StP[m].NumNgb<StP[m].OldNumNgb+All.MaxNumNgbDeviation/10000.))
+ if(StP[m].NumNgb==StP[m].OldNumNgb)
+ {
+ P[i].Ti_endstep = -P[i].Ti_endstep - 1;
+ printf("ID=%d NumNgb=%g OldNumNgb=%g\n",P[i].ID,StP[m].NumNgb,StP[m].OldNumNgb);
+ continue;
+ }
+
+ StP[m].OldNumNgb = StP[m].NumNgb;
+#endif
+
+
+ /* need to redo this particle */
+ npleft++;
+
+ if(StP[m].Left > 0 && StP[m].Right > 0)
+ if((StP[m].Right - StP[m].Left) < 1.0e-3 * StP[m].Left)
+ {
+ /* this one should be ok */
+ npleft--;
+ P[i].Ti_endstep = -P[i].Ti_endstep - 1; /* Mark as inactive */
+ continue;
+ }
+
+ if(StP[m].NumNgb < (All.DesNumNgb - All.MaxNumNgbDeviation))
+ StP[m].Left = dmax(StP[m].Hsml, StP[m].Left);
+ else
+ {
+ if(StP[m].Right != 0)
+ {
+ if(StP[m].Hsml < StP[m].Right)
+ StP[m].Right = StP[m].Hsml;
+ }
+ else
+ StP[m].Right = StP[m].Hsml;
+ }
+
+ if(iter >= MAXITER - 10)
+ {
+ printf
+ ("i=%d task=%d ID=%d Hsml=%g Left=%g Right=%g Ngbs=%g Right-Left=%g\n pos=(%g|%g|%g)\n",
+ i, ThisTask, (int) P[i].ID, StP[m].Hsml, StP[m].Left, StP[m].Right,
+ (float) StP[m].NumNgb, StP[m].Right - StP[m].Left, P[i].Pos[0], P[i].Pos[1],
+ P[i].Pos[2]);
+ fflush(stdout);
+ }
+
+ if(StP[m].Right > 0 && StP[m].Left > 0)
+ StP[m].Hsml = pow(0.5 * (pow(StP[m].Left, 3) + pow(StP[m].Right, 3)), 1.0 / 3);
+ else
+ {
+ if(StP[m].Right == 0 && StP[m].Left == 0)
+ {
+ printf
+ ("i=%d task=%d ID=%d Hsml=%g Left=%g Right=%g Ngbs=%g Right-Left=%g\n pos=(%g|%g|%g)\n",
+ i, ThisTask, (int) P[i].ID, StP[m].Hsml, StP[m].Left, StP[m].Right,
+ (float) StP[m].NumNgb, StP[m].Right - StP[m].Left, P[i].Pos[0], P[i].Pos[1],
+ P[i].Pos[2]);
+ fflush(stdout);
+ endrun(8188); /* can't occur */
+ }
+
+ if(StP[m].Right == 0 && StP[m].Left > 0)
+ {
+ if(P[i].Type == ST && fabs(StP[m].NumNgb - All.DesNumNgb) < 0.5 * All.DesNumNgb)
+ {
+ StP[m].Hsml *=
+ 1 - (StP[m].NumNgb -
+ All.DesNumNgb) / (NUMDIMS * StP[m].NumNgb) * StP[m].DhsmlDensityFactor;
+ }
+ else
+ StP[m].Hsml *= 1.26;
+ }
+
+ if(StP[m].Right > 0 && StP[m].Left == 0)
+ {
+ if(P[i].Type == ST && fabs(StP[m].NumNgb - All.DesNumNgb) < 0.5 * All.DesNumNgb)
+ {
+ StP[m].Hsml *=
+ 1 - (StP[m].NumNgb -
+ All.DesNumNgb) / (NUMDIMS * StP[m].NumNgb) * StP[m].DhsmlDensityFactor;
+ }
+ else
+ StP[m].Hsml /= 1.26;
+ }
+ }
+
+ if(StP[m].Hsml < All.MinGasHsml)
+ StP[m].Hsml = All.MinGasHsml;
+ }
+ else
+ P[i].Ti_endstep = -P[i].Ti_endstep - 1; /* Mark as inactive */
+ }
+ }
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+
+ numlist = malloc(NTask * sizeof(int) * NTask);
+ MPI_Allgather(&npleft, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0, ntot = 0; i < NTask; i++)
+ ntot += numlist[i];
+ free(numlist);
+
+ if(ntot > 0)
+ {
+ if(iter == 0)
+ tstart_ngb = second();
+
+ iter++;
+
+ if(iter > 0 && ThisTask == 0)
+ {
+ printf("ngb iteration %d: need to repeat for %d%09d particles.\n", iter,
+ (int) (ntot / 1000000000), (int) (ntot % 1000000000));
+ fflush(stdout);
+ }
+
+ if(iter > MAXITER)
+ {
+ printf("failed to converge in neighbour iteration in density()\n");
+ fflush(stdout);
+ endrun(1155);
+ }
+ }
+ else
+ tend_ngb = second();
+ }
+ while(ntot > 0);
+
+
+ /* mark as active again */
+ for(i = 0; i < NumPart; i++)
+ if(P[i].Ti_endstep < 0)
+ P[i].Ti_endstep = -P[i].Ti_endstep - 1;
+
+ free(ndonelist);
+ free(nsend);
+ free(nsend_local);
+ free(nbuffer);
+ free(noffset);
+
+
+ /* collect some timing information */
+ if(iter > 0)
+ timengb = timediff(tstart_ngb, tend_ngb);
+ else
+ timengb = 0;
+
+ MPI_Reduce(&timengb, &sumtimengb, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timecomp, &sumt, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timecommsumm, &sumcomm, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ MPI_Reduce(&timeimbalance, &sumimbalance, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+
+
+#ifdef DETAILED_CPU_OUTPUT_IN_STARS_DENSITY
+
+ numlist = malloc(sizeof(int) * NTask);
+ timengblist = malloc(sizeof(double) * NTask);
+ timecomplist = malloc(sizeof(double) * NTask);
+ timecommsummlist = malloc(sizeof(double) * NTask);
+ timeimbalancelist = malloc(sizeof(double) * NTask);
+
+ MPI_Gather(&NumStUpdate, 1, MPI_INT, numlist, 1, MPI_INT, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timengb, 1, MPI_DOUBLE, timengblist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timecomp, 1, MPI_DOUBLE, timecomplist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timecommsumm, 1, MPI_DOUBLE, timecommsummlist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+ MPI_Gather(&timeimbalance, 1, MPI_DOUBLE, timeimbalancelist, 1, MPI_DOUBLE, 0, MPI_COMM_WORLD);
+
+ if(ThisTask == 0)
+ {
+ fprintf(FdTimings, "\n stars density \n\n");
+
+ fprintf(FdTimings, "Nupdate ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12d ",numlist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timengb ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timengblist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timecomp ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timecomplist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timecommsumm ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timecommsummlist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "timeimbalance ");
+ for (i=0;i<NTask;i++)
+ fprintf(FdTimings, "%12g ",timeimbalancelist[i]);
+ fprintf(FdTimings, "\n");
+
+ fprintf(FdTimings, "\n");
+ }
+
+ free(timeimbalancelist);
+ free(timecommsummlist);
+ free(timecomplist);
+ free(timengblist);
+ free(numlist);
+
+
+#endif
+
+
+ if(ThisTask == 0)
+ {
+ All.CPU_ChimieDensCompWalk += sumt / NTask;
+ All.CPU_ChimieDensCommSumm += sumcomm / NTask;
+ All.CPU_ChimieDensImbalance += sumimbalance / NTask;
+ All.CPU_ChimieDensEnsureNgb += sumtimengb / NTask;
+ }
+
+ if (ThisTask==0)
+ printf("Stars density computation done.\n");
+
+
+}
+
+
+
+/*! This function represents the core of the SPH density computation. The
+ * target particle may either be local, or reside in the communication
+ * buffer.
+ */
+void stars_density_evaluate(int target, int mode)
+{
+ int j, n, startnode, numngb, numngb_inbox;
+ double h, h2, hinv, hinv3, hinv4;
+ double rho, volume, wk, dwk;
+ double dx, dy, dz, r, r2, u, mass_j,rho_j;
+ double weighted_numngb, dhsmlrho;
+ int target_stp;
+ FLOAT *pos;
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ double ngbmass;
+#endif
+
+ if(mode == 0)
+ {
+ pos = P[target].Pos;
+ target_stp = P[target].StPIdx;
+ h = StP[target_stp].Hsml;
+ }
+ else
+ {
+ pos = StarsDensDataGet[target].Pos;
+ h = StarsDensDataGet[target].Hsml;
+ }
+
+ h2 = h * h;
+ hinv = 1.0 / h;
+#ifndef TWODIMS
+ hinv3 = hinv * hinv * hinv;
+#else
+ hinv3 = hinv * hinv / boxSize_Z;
+#endif
+ hinv4 = hinv3 * hinv;
+
+ rho = 0;
+ volume = 0;
+ weighted_numngb = 0;
+ dhsmlrho = 0;
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ ngbmass=0;
+#endif
+
+ startnode = All.MaxPart;
+ numngb = 0;
+ do
+ {
+ numngb_inbox = ngb_treefind_variable_for_chimie(&pos[0], h, &startnode);
+
+ for(n = 0; n < numngb_inbox; n++)
+ {
+ j = Ngblist[n];
+
+ dx = pos[0] - P[j].Pos[0];
+ dy = pos[1] - P[j].Pos[1];
+ dz = pos[2] - P[j].Pos[2];
+
+#ifdef PERIODIC /* now find the closest image in the given box size */
+ if(dx > boxHalf_X)
+ dx -= boxSize_X;
+ if(dx < -boxHalf_X)
+ dx += boxSize_X;
+ if(dy > boxHalf_Y)
+ dy -= boxSize_Y;
+ if(dy < -boxHalf_Y)
+ dy += boxSize_Y;
+ if(dz > boxHalf_Z)
+ dz -= boxSize_Z;
+ if(dz < -boxHalf_Z)
+ dz += boxSize_Z;
+#endif
+ r2 = dx * dx + dy * dy + dz * dz;
+
+ if(r2 < h2)
+ {
+ numngb++;
+
+ r = sqrt(r2);
+
+ u = r * hinv;
+
+ if(u < 0.5)
+ {
+ wk = hinv3 * (KERNEL_COEFF_1 + KERNEL_COEFF_2 * (u - 1) * u * u);
+ dwk = hinv4 * u * (KERNEL_COEFF_3 * u - KERNEL_COEFF_4);
+ }
+ else
+ {
+ wk = hinv3 * KERNEL_COEFF_5 * (1.0 - u) * (1.0 - u) * (1.0 - u);
+ dwk = hinv4 * KERNEL_COEFF_6 * (1.0 - u) * (1.0 - u);
+ }
+
+ mass_j = P[j].Mass;
+ rho_j = SphP[j].Density;
+
+ rho += mass_j * wk;
+ volume += mass_j/rho_j * wk;
+
+ weighted_numngb += NORM_COEFF * wk / hinv3;
+
+ dhsmlrho += -mass_j * (NUMDIMS * hinv * wk + u * dwk);
+
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ ngbmass += mass_j;
+#endif
+
+
+ }
+ }
+ }
+ while(startnode >= 0);
+
+ if(mode == 0)
+ {
+ StP[target_stp].NumNgb = weighted_numngb;
+ StP[target_stp].Density = rho;
+ StP[target_stp].Volume = volume;
+ StP[target_stp].DhsmlDensityFactor = dhsmlrho;
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ StP[target_stp].NgbMass = ngbmass;
+#endif
+ }
+ else
+ {
+ StarsDensDataResult[target].Rho = rho;
+ StarsDensDataResult[target].Volume = volume;
+ StarsDensDataResult[target].Ngb = weighted_numngb;
+ StarsDensDataResult[target].DhsmlDensity = dhsmlrho;
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ StarsDensDataResult[target].NgbMass = ngbmass;
+#endif
+ }
+}
+
+
+
+
+/*! This routine is a comparison kernel used in a sort routine to group
+ * particles that are exported to the same processor.
+ */
+int stars_dens_compare_key(const void *a, const void *b)
+{
+ if(((struct starsdensdata_in *) a)->Task < (((struct starsdensdata_in *) b)->Task))
+ return -1;
+
+ if(((struct starsdensdata_in *) a)->Task > (((struct starsdensdata_in *) b)->Task))
+ return +1;
+
+ return 0;
+}
+
+
+#endif
diff --git a/clusters/user/GEAR/src/sticky.c b/clusters/user/GEAR/src/sticky.c
new file mode 100644
index 0000000..dfe7a3a
--- /dev/null
+++ b/clusters/user/GEAR/src/sticky.c
@@ -0,0 +1,1360 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include <gsl/gsl_errno.h>
+#include <gsl/gsl_spline.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+
+
+
+#ifdef PERIODIC
+static double boxSize, boxHalf;
+
+#ifdef LONG_X
+static double boxSize_X, boxHalf_X;
+#else
+#define boxSize_X boxSize
+#define boxHalf_X boxHalf
+#endif
+#ifdef LONG_Y
+static double boxSize_Y, boxHalf_Y;
+#else
+#define boxSize_Y boxSize
+#define boxHalf_Y boxHalf
+#endif
+#ifdef LONG_Z
+static double boxSize_Z, boxHalf_Z;
+#else
+#define boxSize_Z boxSize
+#define boxHalf_Z boxHalf
+#endif
+#endif
+
+
+
+
+
+
+
+#ifdef MULTIPHASE
+
+static int Ncz;
+static int Ncxy;
+static int Ncxyz;
+
+
+static double hubble_a, atime, hubble_a2, hubble_a_a, ainv, fac_mu, fac_vsic_fix, a3inv, fac_egy;
+
+
+/*! \file sticky.c
+ * \brief Compute sticky collisions
+ *
+*/
+
+
+
+/*! init sticky
+ *
+ */
+void init_sticky()
+{
+
+ Ncz = All.StickyGridNz;
+ Ncxy = All.StickyGridNx*All.StickyGridNy;
+ Ncxyz = All.StickyGridNx*All.StickyGridNy*All.StickyGridNz;
+
+
+}
+
+
+
+
+/*! This function is the driver routine for the calculation of sticky collisions
+ */
+void sticky()
+{
+
+ double t0, t1;
+ double dt;
+ int Tis,Tic;
+ int do_sticky=0;
+
+ t0 = second(); /* measure the time for the full chimie computation */
+
+
+ do_sticky=0;
+
+ if (All.ComovingIntegrationOn)
+ {
+ Tis = log(All.StickyLastCollisionTime/All.TimeBegin) / All.Timebase_interval;
+ Tic = All.Ti_Current;
+ dt = get_cosmictime_difference(Tis,Tic);
+ if(dt >= All.StickyCollisionTime)
+ do_sticky=1;
+
+ }
+ else
+ {
+ if((All.Time - All.StickyLastCollisionTime) >= All.StickyCollisionTime)
+ do_sticky=1;
+ }
+
+
+ if(do_sticky)
+ {
+
+ sticky_compute_energy_kin(1);
+ //sticky_collisions(); /* old implementation */
+
+ if(ThisTask==0)
+ printf("sticky first loop\n");
+ sticky_collisions2(1);
+ if(ThisTask==0)
+ printf("sticky second loop\n");
+ sticky_collisions2(2);
+
+ sticky_compute_energy_kin(2);
+
+ //All.StickyLastCollisionTime += All.StickyCollisionTime;
+ All.StickyLastCollisionTime = All.Time;
+ }
+
+
+ t1 = second();
+ All.CPU_Sticky += timediff(t0, t1);
+
+
+}
+
+
+
+
+
+
+/*! This function is used as a comparison kernel in a sort routine.
+ */
+int compare_sticky_index(const void *a, const void *b)
+{
+ if(((struct Sticky_index *) a)->CellIndex < (((struct Sticky_index *) b)->CellIndex))
+ return -1;
+
+ if(((struct Sticky_index *) a)->CellIndex > (((struct Sticky_index *) b)->CellIndex))
+ return +1;
+
+ return 0;
+}
+
+
+
+/*! This function returns the first particle that may sticky-interact with
+ * the given particle. This routine use a pseudo-grid to find pairs, based
+ * on the Bournaud technique
+ */
+#ifdef MULTIPHASE
+int find_sticky_pairs(int ii)
+{
+
+ int jj;
+ int ci,cj;
+
+ int i,j;
+ double dx,dy,dz,r2,r;
+ double dvx,dvy,dvz,vdotr,vdotr2,dv;
+
+ if (ii>=N_gas)
+ return -11;
+
+ ci = StickyIndex[ii].CellIndex;
+
+ if (ci>=Ncxyz)
+ return -12;
+
+ jj = ii;
+
+
+ do
+ {
+
+ jj++;
+
+ if (jj>=N_gas)
+ return -1;
+
+ cj = StickyIndex[jj].CellIndex;
+
+ if (cj>=Ncxyz)
+ return -2;
+
+ if (ci!=cj)
+ return -3;
+
+ if (SphP[StickyIndex[jj].Index].StickyFlag) /* if its free, return it, else, go to the next one */
+ {
+ /* here we check that we can interact */
+
+ i = StickyIndex[ii].Index;
+ j = StickyIndex[jj].Index;
+
+
+ dx = P[i].Pos[0] - P[j].Pos[0];
+ dy = P[i].Pos[1] - P[j].Pos[1];
+ dz = P[i].Pos[2] - P[j].Pos[2];
+ r2 = dx * dx + dy * dy + dz * dz;
+ r = sqrt(r2);
+
+ dvx = P[i].Vel[0] - P[j].Vel[0];
+ dvy = P[i].Vel[1] - P[j].Vel[1];
+ dvz = P[i].Vel[2] - P[j].Vel[2];
+ vdotr = dx * dvx + dy * dvy + dz * dvz;
+ vdotr2 = vdotr;
+ dv = vdotr2/r;
+
+ /*disable Mon Feb 21 16:47:28 CET 2011*/ //if ( (vdotr2<0) && (-vdotr2>All.StickyMinVelocity))
+ {
+ //printf("(1)%d %d\n",i,j);
+ return StickyIndex[jj].Index; /* ok, we accept the collision */
+
+ }
+ }
+
+
+ }
+ while(1);
+
+
+}
+#endif
+
+
+
+
+
+
+
+void sticky_compute_energy_kin(int mode)
+{
+ int i;
+ double DeltaEgyKin;
+ double Tot_DeltaEgyKin;
+
+ DeltaEgyKin = 0;
+ Tot_DeltaEgyKin = 0;
+
+ if (mode==1)
+ {
+ LocalSysState.EnergyKin1 = 0;
+ LocalSysState.EnergyKin2 = 0;
+ }
+
+
+ for(i = 0; i < N_gas; i++)
+ {
+ if (P[i].Type==0)
+ {
+
+ if (mode==1)
+ LocalSysState.EnergyKin1 += 0.5 * P[i].Mass * (P[i].Vel[0]*P[i].Vel[0]+P[i].Vel[1]*P[i].Vel[1]+P[i].Vel[2]*P[i].Vel[2]);
+ else
+ LocalSysState.EnergyKin2 += 0.5 * P[i].Mass * (P[i].Vel[0]*P[i].Vel[0]+P[i].Vel[1]*P[i].Vel[1]+P[i].Vel[2]*P[i].Vel[2]);
+ }
+ }
+
+ if (mode==2)
+ {
+ DeltaEgyKin = LocalSysState.EnergyKin2 - LocalSysState.EnergyKin1;
+ MPI_Reduce(&DeltaEgyKin, &Tot_DeltaEgyKin, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);
+ LocalSysState.EnergyRadSticky -= DeltaEgyKin;
+ }
+
+
+}
+
+
+
+
+
+
+
+
+
+
+/*! compute sticky collisions
+ *
+ */
+void sticky_collisions()
+{
+
+ int i,j,k;
+ int startnode;
+ FLOAT *pos, *vel;
+ FLOAT mass, h_i;
+ int phase;
+
+ double vcm[3],newv1[3],newv2[3];
+ double dv1[3],dv2[3];
+ double dx, dy, dz, dvx, dvy, dvz;
+ double r,r2;
+ double vdotr, vdotr2;
+
+ double dv;
+ double beta_r,beta_t;
+
+ double M1M,M2M,M12;
+ double dbeta_dv,dbeta_dv_er_x,dbeta_dv_er_y,dbeta_dv_er_z;
+ double dv_beta_t_x,dv_beta_t_y,dv_beta_t_z;
+
+
+ NumColLocal = 0;
+ NumNoColLocal = 0;
+
+ beta_r = All.StickyBetaR;
+ beta_t = All.StickyBetaT;
+
+
+
+ double xi,yi,zi;
+ int ix,iy,iz;
+ size_t bytes;
+
+ if (ThisTask==0)
+ printf("Start sticky collisions...\n");
+
+
+ /*****************************/
+ /* first, update StickyIndex */
+ /*****************************/
+
+ if (All.StickyUseGridForCollisions)
+ {
+
+ /* allocate memory */
+ if(!(StickyIndex = malloc(bytes = N_gas * sizeof(struct Sticky_index))))
+ {
+ printf("failed to allocate memory for `StickyIndex' (%g MB).\n", bytes / (1024.0 * 1024.0));
+ endrun(2233);
+ }
+
+
+ /* loop gas particles */
+ for(i = 0; i < N_gas; i++)
+ {
+
+ //if (P[i].Type==0) /* we also take also into account the stars not transfered in stars now */
+ {
+
+
+ StickyIndex[i].Index = i;
+ StickyIndex[i].CellIndex = Ncxyz;
+ StickyIndex[i].Flag = 1;
+
+
+ if (SphP[i].StickyFlag) /* particle that may collide (set in phase.c) */
+ {
+
+
+ /* scale between 0 and nx,ny,nz */
+ xi = All.StickyGridNx*(P[i].Pos[0]-All.StickyGridXmin)/(All.StickyGridXmax-All.StickyGridXmin);
+ yi = All.StickyGridNy*(P[i].Pos[1]-All.StickyGridYmin)/(All.StickyGridYmax-All.StickyGridYmin);
+ zi = All.StickyGridNz*(P[i].Pos[2]-All.StickyGridZmin)/(All.StickyGridZmax-All.StickyGridZmin);
+
+ ix = (int)(xi);
+ iy = (int)(yi);
+ iz = (int)(zi);
+
+
+ if (ix >= 0 && ix < All.StickyGridNx)
+ if (iy >= 0 && iy < All.StickyGridNy)
+ if (iz >= 0 && iz < All.StickyGridNz)
+ {
+ j = (ix)*(Ncxy) + (iy)*(Ncz) + (iz);
+ StickyIndex[i].Index = i;
+ StickyIndex[i].CellIndex = j;
+ }
+ }
+
+ }
+
+
+ }
+
+
+
+ /* sort particles */
+ qsort(StickyIndex, N_gas, sizeof(struct Sticky_index), compare_sticky_index);
+
+
+
+
+
+ /* record index in SphP (not necessary, but simplifies) */
+
+ /* loop over cells */
+ for(i = 0; i < N_gas; i++)
+ {
+ //printf("%d %d\n",StickyIndex[i].CellIndex,StickyIndex[i].Index);
+ j = StickyIndex[i].Index;
+ SphP[j].StickyIndex = i;
+ }
+
+
+ }
+
+
+ /*****************************/
+ /* loop over all particles */
+ /*****************************/
+
+
+ for(i = 0; i < N_gas; i++)
+ {
+
+//#ifdef SFR
+// if((P[i].Ti_endstep == All.Ti_Current) && (P[i].Type == 0))
+//#else
+// if(P[i].Ti_endstep == All.Ti_Current)
+//#endif
+
+#ifdef SFR
+ if(P[i].Type == 0)
+#endif
+ {
+
+ if(SphP[i].Phase == GAS_STICKY)
+ {
+ if(SphP[i].StickyFlag)
+ {
+
+ pos = P[i].Pos;
+ vel = SphP[i].VelPred;
+ mass = P[i].Mass;
+ h_i = SphP[i].Hsml;
+ phase = SphP[i].Phase;
+
+ startnode = All.MaxPart;
+
+ if (All.StickyUseGridForCollisions)
+ j = find_sticky_pairs(SphP[i].StickyIndex);
+ else
+ j = ngb_treefind_sticky_collisions(&pos[0], h_i, phase, &startnode);
+
+ /* check that particles are in the same cell */
+ /*
+ if (j>=0 && j!=i)
+ {
+ int i1,i2;
+
+ xi = All.StickyGridNx*(P[i].Pos[0]-All.StickyGridXmin)/(All.StickyGridXmax-All.StickyGridXmin);
+ yi = All.StickyGridNy*(P[i].Pos[1]-All.StickyGridYmin)/(All.StickyGridYmax-All.StickyGridYmin);
+ zi = All.StickyGridNz*(P[i].Pos[2]-All.StickyGridZmin)/(All.StickyGridZmax-All.StickyGridZmin);
+
+ ix = (int)(xi);
+ iy = (int)(yi);
+ iz = (int)(zi);
+
+ i1 = (ix)*(Ncxy) + (iy)*(Ncz) + (iz);
+
+
+ xi = All.StickyGridNx*(P[i].Pos[0]-All.StickyGridXmin)/(All.StickyGridXmax-All.StickyGridXmin);
+ yi = All.StickyGridNy*(P[i].Pos[1]-All.StickyGridYmin)/(All.StickyGridYmax-All.StickyGridYmin);
+ zi = All.StickyGridNz*(P[i].Pos[2]-All.StickyGridZmin)/(All.StickyGridZmax-All.StickyGridZmin);
+
+ ix = (int)(xi);
+ iy = (int)(yi);
+ iz = (int)(zi);
+
+ i2 = (ix)*(Ncxy) + (iy)*(Ncz) + (iz);
+
+ if (i1!=i2)
+ {
+ printf("\n\nSomething odd here!\n");
+ endrun("999888777");
+ }
+
+ }
+ */
+
+
+
+
+ if (j>=0 && j!=i) /* particles may collide */
+ {
+
+ if (j>=N_gas)
+ {
+ printf("sticky_collisions : j=%d,N_gas=%d j>N_gas !!!",j,N_gas);
+ exit(-1);
+ }
+
+ dx = pos[0] - P[j].Pos[0];
+ dy = pos[1] - P[j].Pos[1];
+ dz = pos[2] - P[j].Pos[2];
+ r2 = dx * dx + dy * dy + dz * dz;
+ r = sqrt(r2);
+
+ dvx = vel[0] - SphP[j].VelPred[0];
+ dvy = vel[1] - SphP[j].VelPred[1];
+ dvz = vel[2] - SphP[j].VelPred[2];
+ vdotr = dx * dvx + dy * dvy + dz * dvz;
+ vdotr2 = vdotr;
+ dv = vdotr2/r;
+
+
+
+ if (vdotr2<0) /* particles approaches !!! */
+ {
+
+ /* compute new velocities */
+
+ M12 = mass+P[j].Mass;
+ M1M = mass/M12;
+ M2M = P[j].Mass/M12;
+
+
+ /* compute velocity of the mass center */
+ for(k = 0; k < 3; k++)
+ vcm[k] = (mass*vel[k]+P[j].Mass*SphP[j].VelPred[k])/M12;
+
+
+ dbeta_dv = (beta_r-beta_t)*dv;
+ dbeta_dv_er_x = -dbeta_dv *dx/r;
+ dbeta_dv_er_y = -dbeta_dv *dy/r;
+ dbeta_dv_er_z = -dbeta_dv *dz/r;
+
+ dv_beta_t_x = dvx*beta_t;
+ dv_beta_t_y = dvy*beta_t;
+ dv_beta_t_z = dvz*beta_t;
+
+
+ newv1[0] = M2M * ( +dv_beta_t_x - dbeta_dv_er_x ) + vcm[0];
+ newv1[1] = M2M * ( +dv_beta_t_y - dbeta_dv_er_y ) + vcm[1];
+ newv1[2] = M2M * ( +dv_beta_t_z - dbeta_dv_er_z ) + vcm[2];
+
+ newv2[0] = M1M * ( -dv_beta_t_x + dbeta_dv_er_x ) + vcm[0];
+ newv2[1] = M1M * ( -dv_beta_t_y + dbeta_dv_er_y ) + vcm[1];
+ newv2[2] = M1M * ( -dv_beta_t_z + dbeta_dv_er_z ) + vcm[2];
+
+
+ /* new velocities */
+ for(k = 0; k < 3; k++)
+ {
+
+ dv1[k] = newv1[k] - SphP[i].VelPred[k];
+ dv2[k] = newv2[k] - SphP[j].VelPred[k];
+
+ SphP[i].VelPred[k] = newv1[k];
+ SphP[j].VelPred[k] = newv2[k];
+
+ P[i].Vel[k] += dv1[k];
+ P[j].Vel[k] += dv2[k];
+
+ }
+
+
+
+ /* set particles as non sticky-active */
+ SphP[i].StickyFlag = 0;
+ SphP[j].StickyFlag = 0;
+ SphP[i].StickyTime = All.Time + All.StickyIdleTime;
+ SphP[j].StickyTime = All.Time + All.StickyIdleTime;
+
+
+ /* record collision */
+ NumColLocal+=2;
+
+ }
+
+ }
+
+
+
+ }
+ }
+
+
+ }
+ }
+
+
+
+
+ /* write some statistics */
+
+ MPI_Allreduce(&NumColLocal, &NumCol, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+ //MPI_Allreduce(&NumColPotLocal,&NumColPot, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(&NumNoColLocal, &NumNoCol, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+
+ if(ThisTask == 0)
+ {
+ fprintf(FdSticky, "Step %d, Time: %g NumColPot: %d NumCol: %d NumNoCol: %d\n", All.NumCurrentTiStep, All.Time,(int)NumColPot,(int)NumCol,(int)NumNoCol);
+ fflush(FdSticky);
+ }
+
+
+
+ if (All.StickyUseGridForCollisions)
+ free(StickyIndex);
+
+ if (ThisTask==0)
+ printf("sticky collisions done.\n");
+
+
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*! This function is the driver routine for the calculation of hydrodynamical
+ * force and rate of change of entropy due to shock heating for all active
+ * particles .
+ *
+ * During the first loop, each particle compute j (a potentially colliding particle)
+ * During the second loop, it check if it can collide and collide if it can.
+ *
+ */
+void sticky_collisions2(int loop)
+{
+ long long ntot, ntotleft;
+ int i, j, k, n, ngrp, maxfill, source, ndone;
+ int *nbuffer, *noffset, *nsend_local, *nsend, *numlist, *ndonelist;
+ int level, sendTask, recvTask, nexport, place;
+ double tstart, tend, sumt, sumcomm;
+ double timecomp = 0, timecommsumm = 0, timeimbalance = 0, sumimbalance;
+ MPI_Status status;
+
+ double dv[3];
+
+
+#ifdef PERIODIC
+ boxSize = All.BoxSize;
+ boxHalf = 0.5 * All.BoxSize;
+#ifdef LONG_X
+ boxHalf_X = boxHalf * LONG_X;
+ boxSize_X = boxSize * LONG_X;
+#endif
+#ifdef LONG_Y
+ boxHalf_Y = boxHalf * LONG_Y;
+ boxSize_Y = boxSize * LONG_Y;
+#endif
+#ifdef LONG_Z
+ boxHalf_Z = boxHalf * LONG_Z;
+ boxSize_Z = boxSize * LONG_Z;
+#endif
+#endif
+
+#ifdef COMPUTE_VELOCITY_DISPERSION
+ double v1m,v2m;
+#endif
+
+ if(All.ComovingIntegrationOn)
+ {
+ /* Factors for comoving integration of hydro */
+ hubble_a = All.Omega0 / (All.Time * All.Time * All.Time)
+ + (1 - All.Omega0 - All.OmegaLambda) / (All.Time * All.Time) + All.OmegaLambda;
+
+ hubble_a = All.Hubble * sqrt(hubble_a);
+ hubble_a2 = All.Time * All.Time * hubble_a;
+ hubble_a_a = All.Time * hubble_a;
+ ainv = 1.0/All.Time;
+
+ fac_mu = pow(All.Time, 3 * (GAMMA - 1) / 2) / All.Time;
+
+ fac_egy = pow(All.Time, 3 * (GAMMA - 1));
+
+ fac_vsic_fix = hubble_a * pow(All.Time, 3 * GAMMA_MINUS1);
+
+ a3inv = 1 / (All.Time * All.Time * All.Time);
+ atime = All.Time;
+
+#ifdef FEEDBACK
+ fac_pow = fac_egy*atime*atime;
+#endif
+
+ }
+ else
+ {
+ hubble_a = hubble_a2 = hubble_a_a = ainv = atime = fac_mu = fac_vsic_fix = a3inv = fac_egy = 1.0;
+#ifdef FEEDBACK
+ fac_pow = 1.0;
+#endif
+ }
+
+
+ /* `NumSphUpdate' gives the number of particles on this processor that want a force update */
+ for(n = 0, NumSphUpdate = 0; n < N_gas; n++)
+ {
+#ifdef SFR
+ //if((P[n].Ti_endstep == All.Ti_Current) && (P[n].Type == 0))
+#else
+ //if(P[n].Ti_endstep == All.Ti_Current)
+#endif
+ if((SphP[n].Phase == GAS_STICKY) && (SphP[n].StickyFlag) )
+ {
+
+ if (loop==1)
+ {
+ SphP[n].StickyMaxFs = 0;
+ SphP[n].StickyMaxID =-1;
+ }
+ SphP[n].StickyNgb =-1;
+
+
+ NumSphUpdate++;
+ }
+ }
+
+ numlist = malloc(NTask * sizeof(int) * NTask);
+ MPI_Allgather(&NumSphUpdate, 1, MPI_INT, numlist, 1, MPI_INT, MPI_COMM_WORLD);
+
+ for(i = 0, ntot = 0; i < NTask; i++)
+ ntot += numlist[i];
+
+ if (loop==1)
+ for(i = 0, All.TotN_stickyactive = 0; i < NTask; i++)
+ All.TotN_stickyactive += numlist[i];
+
+ free(numlist);
+
+
+
+ noffset = malloc(sizeof(int) * NTask); /* offsets of bunches in common list */
+ nbuffer = malloc(sizeof(int) * NTask);
+ nsend_local = malloc(sizeof(int) * NTask);
+ nsend = malloc(sizeof(int) * NTask * NTask);
+ ndonelist = malloc(sizeof(int) * NTask);
+
+ i = 0; /* first particle for this task */
+ ntotleft = ntot; /* particles left for all tasks together */
+
+
+ NumColLocal = 0;
+ NumNoColLocal = 0;
+
+
+ while(ntotleft > 0)
+ {
+ for(j = 0; j < NTask; j++)
+ nsend_local[j] = 0;
+
+ /* do local particles and prepare export list */
+ tstart = second();
+ for(nexport = 0, ndone = 0; i < N_gas && nexport < All.BunchSizeSticky - NTask; i++)
+ {
+#ifdef SFR
+ //if((P[i].Ti_endstep == All.Ti_Current) && (P[i].Type == 0))
+#else
+ //if(P[i].Ti_endstep == All.Ti_Current)
+#endif
+
+ if((SphP[i].Phase == GAS_STICKY)&&(SphP[i].StickyFlag))
+ {
+
+ ndone++;
+
+ for(j = 0; j < NTask; j++)
+ Exportflag[j] = 0;
+
+ sticky_evaluate(i, 0,loop);
+
+ /* the particle is not exported if an ngb has been found locally */
+ if (SphP[i].StickyNgb!=-1)
+ for(j = 0; j < NTask; j++)
+ Exportflag[j] = 0;
+
+ for(j = 0; j < NTask; j++)
+ {
+ if(Exportflag[j])
+ {
+
+ for(k = 0; k < 3; k++)
+ {
+ StickyDataIn[nexport].Pos[k] = P[i].Pos[k];
+ StickyDataIn[nexport].Vel[k] = SphP[i].VelPred[k];
+ }
+ StickyDataIn[nexport].Mass = P[i].Mass;
+ StickyDataIn[nexport].Hsml = SphP[i].Hsml;
+ StickyDataIn[nexport].StickyMaxID = SphP[i].StickyMaxID;
+ StickyDataIn[nexport].StickyMaxFs = SphP[i].StickyMaxFs;
+ StickyDataIn[nexport].StickyNgb = SphP[i].StickyNgb;
+ StickyDataIn[nexport].ID = P[i].ID;
+
+
+ StickyDataIn[nexport].Index = i;
+ StickyDataIn[nexport].Task = j;
+ nexport++;
+ nsend_local[j]++;
+ }
+ }
+
+ }
+ }
+
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+ qsort(StickyDataIn, nexport, sizeof(struct stickydata_in), sticky_compare_key);
+
+ for(j = 1, noffset[0] = 0; j < NTask; j++)
+ noffset[j] = noffset[j - 1] + nsend_local[j - 1];
+
+ tstart = second();
+
+ MPI_Allgather(nsend_local, NTask, MPI_INT, nsend, NTask, MPI_INT, MPI_COMM_WORLD);
+
+ tend = second();
+ timeimbalance += timediff(tstart, tend);
+
+ /* now do the particles that need to be exported */
+ for(level = 1; level < (1 << PTask); level++)
+ {
+ tstart = second();
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeSticky)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* get the particles */
+ MPI_Sendrecv(&StickyDataIn[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct stickydata_in), MPI_BYTE,
+ recvTask, TAG_HYDRO_A,
+ &StickyDataGet[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct stickydata_in), MPI_BYTE,
+ recvTask, TAG_HYDRO_A, MPI_COMM_WORLD, &status);
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+ tend = second();
+ timecommsumm += timediff(tstart, tend);
+
+ /* now do the imported particles */
+ tstart = second();
+ for(j = 0; j < nbuffer[ThisTask]; j++)
+ sticky_evaluate(j, 1,loop);
+
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+ /* do a block to measure imbalance */
+ tstart = second();
+ MPI_Barrier(MPI_COMM_WORLD);
+ tend = second();
+ timeimbalance += timediff(tstart, tend);
+
+ /* get the result */
+ tstart = second();
+ for(j = 0; j < NTask; j++)
+ nbuffer[j] = 0;
+ for(ngrp = level; ngrp < (1 << PTask); ngrp++)
+ {
+ maxfill = 0;
+ for(j = 0; j < NTask; j++)
+ {
+ if((j ^ ngrp) < NTask)
+ if(maxfill < nbuffer[j] + nsend[(j ^ ngrp) * NTask + j])
+ maxfill = nbuffer[j] + nsend[(j ^ ngrp) * NTask + j];
+ }
+ if(maxfill >= All.BunchSizeSticky)
+ break;
+
+ sendTask = ThisTask;
+ recvTask = ThisTask ^ ngrp;
+
+ if(recvTask < NTask)
+ {
+ if(nsend[ThisTask * NTask + recvTask] > 0 || nsend[recvTask * NTask + ThisTask] > 0)
+ {
+ /* send the results */
+ MPI_Sendrecv(&StickyDataResult[nbuffer[ThisTask]],
+ nsend[recvTask * NTask + ThisTask] * sizeof(struct stickydata_out),
+ MPI_BYTE, recvTask, TAG_HYDRO_B,
+ &StickyDataPartialResult[noffset[recvTask]],
+ nsend_local[recvTask] * sizeof(struct stickydata_out),
+ MPI_BYTE, recvTask, TAG_HYDRO_B, MPI_COMM_WORLD, &status);
+
+ /* add the result to the particles */
+ for(j = 0; j < nsend_local[recvTask]; j++)
+ {
+ source = j + noffset[recvTask];
+ place = StickyDataIn[source].Index;
+
+ if (StickyDataPartialResult[source].StickyMaxFs>SphP[place].StickyMaxFs)
+ {
+ SphP[place].StickyMaxID = StickyDataPartialResult[source].StickyMaxID;
+ SphP[place].StickyMaxFs = StickyDataPartialResult[source].StickyMaxFs;
+ }
+
+ if (StickyDataPartialResult[source].StickyNgb!=-1) /* copy only if met a neighbor */
+ {
+ SphP[place].StickyNgb = StickyDataPartialResult[source].StickyNgb;
+ for(k = 0; k < 3; k++)
+ SphP[place].StickyNewVel[k]= StickyDataPartialResult[source].StickyNewVel[k];
+ }
+ }
+
+
+
+ }
+ }
+
+ for(j = 0; j < NTask; j++)
+ if((j ^ ngrp) < NTask)
+ nbuffer[j] += nsend[(j ^ ngrp) * NTask + j];
+ }
+ tend = second();
+ timecommsumm += timediff(tstart, tend);
+
+ level = ngrp - 1;
+ }
+
+ MPI_Allgather(&ndone, 1, MPI_INT, ndonelist, 1, MPI_INT, MPI_COMM_WORLD);
+ for(j = 0; j < NTask; j++)
+ ntotleft -= ndonelist[j];
+ }
+
+ free(ndonelist);
+ free(nsend);
+ free(nsend_local);
+ free(nbuffer);
+ free(noffset);
+
+
+ if (loop==2)
+ {
+
+ /* do final operations on results */
+ double norm_dv;
+ double max_dv;
+ int amax_dv;
+
+ max_dv = 0;
+
+
+ for(i = 0; i < N_gas; i++)
+#ifdef SFR
+ //if((P[i].Ti_endstep == All.Ti_Current) && (P[i].Type == 0))
+#else
+ //if(P[i].Ti_endstep == All.Ti_Current)
+#endif
+ if((SphP[i].Phase == GAS_STICKY)&&(SphP[i].StickyFlag))
+ {
+
+
+
+ if (SphP[i].StickyNgb!=-1)
+ {
+
+ //printf("(%d) COLLISION : %d -> %d\n",ThisTask,P[i].ID,SphP[i].StickyNgb);
+ //printf(" : OldV %g NewV %g\n",SphP[i].VelPred[0],SphP[i].StickyNewVel[0]);
+ //printf(" : OldV %g NewV %g\n",SphP[i].VelPred[1],SphP[i].StickyNewVel[1]);
+ //printf(" : OldV %g NewV %g\n",SphP[i].VelPred[2],SphP[i].StickyNewVel[2]);
+
+ /* new velocities */
+ for(k = 0; k < 3; k++)
+ {
+ dv[k] = SphP[i].StickyNewVel[k] - SphP[i].VelPred[k];
+ SphP[i].VelPred[k] = SphP[i].StickyNewVel[k];
+ P[i].Vel[k] += dv[k];
+ }
+
+ norm_dv = sqrt( dv[0]*dv[0] + dv[1]*dv[1] + dv[2]*dv[2]);
+
+ if (norm_dv>max_dv)
+ {
+ max_dv = norm_dv;
+ amax_dv= P[i].ID;
+ }
+
+
+ /* set particles as non sticky-active */
+ SphP[i].StickyFlag = 0;
+ SphP[i].StickyTime = All.Time;
+
+
+ /* record collision */
+ NumColLocal++;
+ }
+ else
+ NumNoColLocal++;
+
+
+
+ }
+
+
+
+ printf("(%d) max_dv=%g amax_dv=%d\n",ThisTask,max_dv,amax_dv);
+
+ }
+
+ tend = second();
+ timecomp += timediff(tstart, tend);
+
+
+
+
+ /* write some statistics */
+ if(loop==2)
+ {
+
+ MPI_Allreduce(&NumColLocal, &NumCol, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(&NumNoColLocal, &NumNoCol, 1, MPI_INT, MPI_SUM, MPI_COMM_WORLD);
+
+ if(ThisTask == 0)
+ {
+ //fprintf(FdSticky, "Step %d, Time: %g NumColPot: %d NumCol: %d NumNoCol: %d\n", All.NumCurrentTiStep, All.Time,(int)NumColPot,(int)NumCol,(int)NumNoCol);
+ fprintf(FdSticky, "%10d %15g %10d %10d %10d %10d\n", All.NumCurrentTiStep, All.Time,(int)All.TotN_sticky,(int)All.TotN_stickyactive,(int)NumCol,(int)NumNoCol);
+ fflush(FdSticky);
+ }
+
+
+ }
+
+ if (ThisTask==0)
+ printf("sticky collisions done.\n");
+
+}
+
+
+
+
+
+/*!
+ *
+ * first sticky
+ *
+ */
+void sticky_evaluate(int target, int mode, int loop)
+{
+ int j,k, n, startnode, numngb;
+ FLOAT *pos, *vel;
+ FLOAT mass;
+ FLOAT h_i;
+ double dx, dy, dz;
+ double dvx,dvy,dvz;
+ double vdotr, vdotr2,dv,dv2;
+ double vcm[3],newvel[3];
+
+ double h_i2;
+ double h_j, r, r2;
+ int phase=0;
+ int StickyMaxID;
+ int id;
+
+ double M1M,M2M,M12;
+ double dbeta_dv,dbeta_dv_er_x,dbeta_dv_er_y,dbeta_dv_er_z;
+ double dv_beta_t_x,dv_beta_t_y,dv_beta_t_z;
+ double beta_r,beta_t;
+ double iM12;
+ double W0,W1,W2,vdotr2r2;
+ double dvxadxa,dvyadya,dvzadza;
+ double vdotr2r2dx,vdotr2r2dy,vdotr2r2dz;
+
+ float fs,maxfs;
+ int id_max;
+ int id_ngb;
+
+
+ beta_r = All.StickyBetaR;
+ beta_t = All.StickyBetaT;
+
+ if(mode == 0)
+ {
+ pos = P[target].Pos;
+ vel = SphP[target].VelPred;
+ mass= P[target].Mass;
+ h_i = SphP[target].Hsml;
+ id = P[target].ID;
+ StickyMaxID = SphP[target].StickyMaxID;
+ maxfs = SphP[target].StickyMaxFs;
+ id_max= SphP[target].StickyMaxID;
+ id_ngb= SphP[target].StickyNgb;
+ }
+ else
+ {
+ pos = StickyDataGet[target].Pos;
+ vel = StickyDataGet[target].Vel;
+ mass= StickyDataGet[target].Mass;
+ h_i = StickyDataGet[target].Hsml;
+ id = StickyDataGet[target].ID;
+
+ StickyMaxID = StickyDataGet[target].StickyMaxID;
+ maxfs = StickyDataGet[target].StickyMaxFs;
+ id_max= StickyDataGet[target].StickyMaxID;
+ id_ngb=StickyDataGet[target].StickyNgb;
+ }
+
+
+ h_i2 = h_i * h_i;
+
+ for(k = 0; k < 3; k++)
+ newvel[k] = vel[k];
+
+ /* Now start sticky 1 for this particle */
+ startnode = All.MaxPart;
+ do
+ {
+ numngb = ngb_treefind_pairs(&pos[0], h_i, phase, &startnode);
+
+
+
+ for(n = 0; n < numngb; n++)
+ {
+ j = Ngblist[n];
+
+ dx = pos[0] - P[j].Pos[0];
+ dy = pos[1] - P[j].Pos[1];
+ dz = pos[2] - P[j].Pos[2];
+
+#ifdef PERIODIC /* find the closest image in the given box size */
+ if(dx > boxHalf_X)
+ dx -= boxSize_X;
+ if(dx < -boxHalf_X)
+ dx += boxSize_X;
+ if(dy > boxHalf_Y)
+ dy -= boxSize_Y;
+ if(dy < -boxHalf_Y)
+ dy += boxSize_Y;
+ if(dz > boxHalf_Z)
+ dz -= boxSize_Z;
+ if(dz < -boxHalf_Z)
+ dz += boxSize_Z;
+#endif
+ r2 = dx * dx + dy * dy + dz * dz;
+ h_j = SphP[j].Hsml;
+
+ if(r2 < h_i2 || r2 < h_j * h_j)
+ {
+ r = sqrt(r2);
+ if(r > 0)
+ {
+
+ dvx = vel[0] - SphP[j].VelPred[0];
+ dvy = vel[1] - SphP[j].VelPred[1];
+ dvz = vel[2] - SphP[j].VelPred[2];
+ vdotr = dx * dvx + dy * dvy + dz * dvz;
+
+ if(All.ComovingIntegrationOn)
+ vdotr2 = vdotr + hubble_a2 * r2;
+ else
+ vdotr2 = vdotr;
+
+
+ dv = vdotr2/r;
+
+
+ if (loop==1)
+ {
+
+ if (vdotr2<0) /* particles approaches !!! */
+ {
+
+
+ /*
+ * the next lines are no longer needed if we do not select on
+ * the final relative velocities of particles
+ * /
+
+// /* compute new velocities */
+//
+// M12 = mass+P[j].Mass;
+// M1M = mass/M12;
+// M2M = P[j].Mass/M12;
+//
+// /* compute velocity of the mass center */
+// for(k = 0; k < 3; k++)
+// vcm[k] = (mass*vel[k]+P[j].Mass*SphP[j].VelPred[k])/M12;
+//
+//
+// dbeta_dv = (beta_r-beta_t)*dv;
+// dbeta_dv_er_x = -dbeta_dv *dx/r;
+// dbeta_dv_er_y = -dbeta_dv *dy/r;
+// dbeta_dv_er_z = -dbeta_dv *dz/r;
+//
+// dv_beta_t_x = dvx*beta_t;
+// dv_beta_t_y = dvy*beta_t;
+// dv_beta_t_z = dvz*beta_t;
+//
+// newvel[0] = M2M * ( +dv_beta_t_x - dbeta_dv_er_x ) + vcm[0];
+// newvel[1] = M2M * ( +dv_beta_t_y - dbeta_dv_er_y ) + vcm[1];
+// newvel[2] = M2M * ( +dv_beta_t_z - dbeta_dv_er_z ) + vcm[2];
+//
+//
+// /* check that dv is not too large */
+// dv2 = (newvel[0]-vel[0])*(newvel[0]-vel[0])
+// + (newvel[1]-vel[1])*(newvel[1]-vel[1])
+// + (newvel[2]-vel[2])*(newvel[2]-vel[2]);
+
+
+ /* disable Mon Feb 21 16:55:22 CET 2011 */ //if (dv2<All.StickyMaxVelocity*All.StickyMaxVelocity)
+ {
+ fs = r/( (0.5*(h_i+h_j)+r) * (0.5*(h_i+h_j)+r));
+
+ if (fs>maxfs)
+ {
+ id_max = P[j].ID;
+ maxfs = fs;
+ }
+ }
+
+
+
+ }
+ }
+ else
+ {
+ if ((SphP[j].StickyMaxID == id) && (StickyMaxID == P[j].ID))
+ {
+ id_ngb = P[j].ID;
+
+ /* compute new velocities : new version : Pfenniger 2001.02.16*/
+ iM12 = 1.0/(mass+P[j].Mass);
+ vdotr2r2 = vdotr2 / r2;
+
+ dvxadxa = (-dvx*ainv) + (-dx*hubble_a_a);
+ dvyadya = (-dvy*ainv) + (-dy*hubble_a_a);
+ dvzadza = (-dvz*ainv) + (-dz*hubble_a_a);
+
+ W0 = iM12 * ( (1.0-beta_t)*(dvxadxa) + (beta_t-beta_r)*(vdotr2r2*(-dx)*ainv));
+ W1 = iM12 * ( (1.0-beta_t)*(dvyadya) + (beta_t-beta_r)*(vdotr2r2*(-dy)*ainv));
+ W2 = iM12 * ( (1.0-beta_t)*(dvzadza) + (beta_t-beta_r)*(vdotr2r2*(-dz)*ainv));
+
+ newvel[0] = vel[0] + P[j].Mass*W0*atime;
+ newvel[1] = vel[1] + P[j].Mass*W1*atime;
+ newvel[2] = vel[2] + P[j].Mass*W2*atime;
+
+
+
+// /* compute new velocities : old standard version */
+//
+// M12 = mass+P[j].Mass;
+// M1M = mass/M12;
+// M2M = P[j].Mass/M12;
+//
+// /* compute velocity of the mass center */
+// for(k = 0; k < 3; k++)
+// vcm[k] = (mass*vel[k]+P[j].Mass*SphP[j].VelPred[k])/M12;
+//
+//
+// dbeta_dv = (beta_r-beta_t)*dv;
+// dbeta_dv_er_x = -dbeta_dv *dx/r;
+// dbeta_dv_er_y = -dbeta_dv *dy/r;
+// dbeta_dv_er_z = -dbeta_dv *dz/r;
+//
+// dv_beta_t_x = dvx*beta_t;
+// dv_beta_t_y = dvy*beta_t;
+// dv_beta_t_z = dvz*beta_t;
+//
+//
+// newvel[0] = M2M * ( +dv_beta_t_x - dbeta_dv_er_x ) + vcm[0];
+// newvel[1] = M2M * ( +dv_beta_t_y - dbeta_dv_er_y ) + vcm[1];
+// newvel[2] = M2M * ( +dv_beta_t_z - dbeta_dv_er_z ) + vcm[2];
+
+
+ }
+ }
+ }
+ }
+ }
+ }
+ while(startnode >= 0);
+
+
+
+
+ /* Now collect the result at the right place */
+ if(mode == 0)
+ {
+ if(loop == 1)
+ {
+ SphP[target].StickyMaxID = id_max;
+ SphP[target].StickyMaxFs = maxfs;
+ }
+ SphP[target].StickyNgb = id_ngb;
+ for(k = 0; k < 3; k++)
+ SphP[target].StickyNewVel[k] = newvel[k];
+
+ }
+ else
+ {
+ if(loop == 1)
+ {
+ StickyDataResult[target].StickyMaxID = id_max;
+ StickyDataResult[target].StickyMaxFs= maxfs;
+ }
+ StickyDataResult[target].StickyNgb= id_ngb;
+ for(k = 0; k < 3; k++)
+ StickyDataResult[target].StickyNewVel[k] = newvel[k];
+
+ }
+
+
+}
+
+
+
+
+
+/*! This is a comparison kernel for a sort routine, which is used to group
+ * particles that are going to be exported to the same CPU.
+ */
+int sticky_compare_key(const void *a, const void *b)
+{
+ if(((struct stickydata_in *) a)->Task < (((struct stickydata_in *) b)->Task))
+ return -1;
+ if(((struct stickydata_in *) a)->Task > (((struct stickydata_in *) b)->Task))
+ return +1;
+ return 0;
+}
+
+
+
+
+
+
+
+
+
+
+#endif
+
+
+
+
+
+
diff --git a/clusters/user/GEAR/src/system.c b/clusters/user/GEAR/src/system.c
new file mode 100644
index 0000000..1c9d257
--- /dev/null
+++ b/clusters/user/GEAR/src/system.c
@@ -0,0 +1,178 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <time.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+#include <unistd.h>
+#include <signal.h>
+#include <gsl/gsl_rng.h>
+#include <mpi.h>
+
+#include "allvars.h"
+#include "proto.h"
+
+
+/*! \file system.c
+ * \brief contains miscellaneous routines, e.g. elapsed time measurements
+ */
+
+
+/*! This routine returns a random number taken from a table of random numbers,
+ * which is refilled every timestep. This method is used to allow random
+ * number application to particles independent of the number of processors
+ * used, and independent of the particular order the particles have. In order
+ * to work properly, the particle IDs should be set properly to unique
+ * integer values.
+ */
+double get_random_number(int id)
+{
+ return RndTable[(id % RNDTABLE)];
+}
+
+
+#ifdef SFR
+double get_StarFormation_random_number(int id)
+{
+ return StarFormationRndTable[(id % RNDTABLE)];
+}
+#endif
+
+#ifdef FEEDBACK_WIND
+double get_FeedbackWind_random_number(int id)
+{
+ return FeedbackWindRndTable[(id % RNDTABLE)];
+}
+#endif
+
+
+#ifdef CHIMIE
+double get_Chimie_random_number(int id)
+{
+ return ChimieRndTable[(id % RNDTABLE)];
+}
+#endif
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+double get_ChimieKineticFeedback_random_number(int id)
+{
+ return ChimieKineticFeedbackRndTable[(id % RNDTABLE)];
+}
+#endif
+
+
+
+/*! This routine fills the random number table.
+ */
+void set_random_numbers(void)
+{
+ int i;
+
+ for(i = 0; i < RNDTABLE; i++)
+ RndTable[i] = gsl_rng_uniform(random_generator);
+
+#ifdef SFR
+ for(i = 0; i < RNDTABLE; i++)
+ StarFormationRndTable[i] = gsl_rng_uniform(random_generator);
+#endif
+
+#ifdef FEEDBACK_WIND
+ for(i = 0; i < RNDTABLE; i++)
+ FeedbackWindRndTable[i] = gsl_rng_uniform(random_generator);
+#endif
+
+#ifdef CHIMIE
+ for(i = 0; i < RNDTABLE; i++)
+ ChimieRndTable[i] = gsl_rng_uniform(random_generator);
+#endif
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ for(i = 0; i < RNDTABLE; i++)
+ ChimieKineticFeedbackRndTable[i] = gsl_rng_uniform(random_generator);
+#endif
+}
+
+
+/*! returns the number of cpu-ticks in seconds that have elapsed, or the
+ * wall-clock time obtained with MPI_Wtime().
+ */
+double second(void)
+{
+#ifdef WALLCLOCK
+ return MPI_Wtime();
+#else
+ return ((double) clock()) / CLOCKS_PER_SEC;
+#endif
+
+ /* note: on AIX and presumably many other 32bit systems,
+ * clock() has only a resolution of 10ms=0.01sec
+ */
+}
+
+
+/*! returns the time difference between two measurements obtained with
+ * second(). The routine takes care of the possible overflow of the tick
+ * counter on 32bit systems, but depending on the system, this may not always
+ * work properly. Similarly, in some MPI implementations, the MPI_Wtime()
+ * function may also overflow, in which case a negative time difference would
+ * be returned. The routine returns instead a time difference equal to 0.
+ */
+double timediff(double t0, double t1)
+{
+ double dt;
+
+ dt = t1 - t0;
+
+ if(dt < 0) /* overflow has occured (for systems with 32bit tick counter) */
+ {
+#ifdef WALLCLOCK
+ dt = 0;
+#else
+ dt = t1 + pow(2, 32) / CLOCKS_PER_SEC - t0;
+#endif
+ }
+
+ return dt;
+}
+
+
+/*! returns the maximum of two double
+ */
+double dmax(double x, double y)
+{
+ if(x > y)
+ return x;
+ else
+ return y;
+}
+
+/*! returns the minimum of two double
+ */
+double dmin(double x, double y)
+{
+ if(x < y)
+ return x;
+ else
+ return y;
+}
+
+/*! returns the maximum of two integers
+ */
+int imax(int x, int y)
+{
+ if(x > y)
+ return x;
+ else
+ return y;
+}
+
+/*! returns the minimum of two integers
+ */
+int imin(int x, int y)
+{
+ if(x < y)
+ return x;
+ else
+ return y;
+}
diff --git a/clusters/user/GEAR/src/tags.h b/clusters/user/GEAR/src/tags.h
new file mode 100644
index 0000000..f0225d3
--- /dev/null
+++ b/clusters/user/GEAR/src/tags.h
@@ -0,0 +1,36 @@
+/*! \file tags.h
+ * \brief declares various tags for labelling MPI messages.
+ */
+
+#define TAG_N 10 /*!< Various tags used for labelling MPI messages */
+#define TAG_HEADER 11
+#define TAG_PDATA 12
+#define TAG_SPHDATA 13
+#define TAG_KEY 14
+#define TAG_DMOM 15
+#define TAG_NODELEN 16
+#define TAG_HMAX 17
+#define TAG_GRAV_A 18
+#define TAG_GRAV_B 19
+#define TAG_DIRECT_A 20
+#define TAG_DIRECT_B 21
+#define TAG_HYDRO_A 22
+#define TAG_HYDRO_B 23
+#define TAG_NFORTHISTASK 24
+#define TAG_PERIODIC_A 25
+#define TAG_PERIODIC_B 26
+#define TAG_PERIODIC_C 27
+#define TAG_PERIODIC_D 28
+#define TAG_NONPERIOD_A 29
+#define TAG_NONPERIOD_B 30
+#define TAG_NONPERIOD_C 31
+#define TAG_NONPERIOD_D 32
+#define TAG_POTENTIAL_A 33
+#define TAG_POTENTIAL_B 34
+#define TAG_DENS_A 35
+#define TAG_DENS_B 36
+#define TAG_LOCALN 37
+#define TAG_STDATA 38
+#define TAG_CHIMIE_A 39
+#define TAG_CHIMIE_B 40
+#define TAG_CHIMIE_EXTRAHEADER 41
\ No newline at end of file
diff --git a/clusters/user/GEAR/src/timestep.c b/clusters/user/GEAR/src/timestep.c
new file mode 100644
index 0000000..f55b19f
--- /dev/null
+++ b/clusters/user/GEAR/src/timestep.c
@@ -0,0 +1,892 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <mpi.h>
+#include "allvars.h"
+#include "proto.h"
+
+/*! \file timestep.c
+ * \brief routines for 'kicking' particles in momentum space and assigning new timesteps
+ */
+
+static double fac1, fac2, fac3, hubble_a, atime, a3inv;
+static double dt_displacement = 0;
+
+
+/*! This function advances the system in momentum space, i.e. it does apply
+ * the 'kick' operation after the forces have been computed. Additionally, it
+ * assigns new timesteps to particles. At start-up, a half-timestep is
+ * carried out, as well as at the end of the simulation. In between, the
+ * half-step kick that ends the previous timestep and the half-step kick for
+ * the new timestep are combined into one operation.
+ */
+void advance_and_find_timesteps(void)
+{
+ int i, j, no, ti_step, ti_min, tend, tstart;
+ double dt_entr, dt_entr2, dt_gravkick, dt_hydrokick, dt_gravkick2, dt_hydrokick2, t0, t1;
+ double minentropy, aphys;
+ FLOAT dv[3];
+
+#ifdef COOLING
+ double t2,t3;
+#endif
+
+#ifdef FLEXSTEPS
+ int ti_grp;
+#endif
+#if defined(PSEUDOSYMMETRIC) && !defined(FLEXSTEPS)
+ double apred, prob;
+ int ti_step2;
+#endif
+#ifdef PMGRID
+ double dt_gravkickA, dt_gravkickB;
+#endif
+#ifdef MAKEGLASS
+ double disp, dispmax, globmax, dmean, fac, disp2sum, globdisp2sum;
+#endif
+
+
+ t0 = second();
+
+ if(All.ComovingIntegrationOn)
+ {
+ fac1 = 1 / (All.Time * All.Time);
+ fac2 = 1 / pow(All.Time, 3 * GAMMA - 2);
+ fac3 = pow(All.Time, 3 * (1 - GAMMA) / 2.0);
+ hubble_a = All.Omega0 / (All.Time * All.Time * All.Time)
+ + (1 - All.Omega0 - All.OmegaLambda) / (All.Time * All.Time) + All.OmegaLambda;
+
+ hubble_a = All.Hubble * sqrt(hubble_a);
+ a3inv = 1 / (All.Time * All.Time * All.Time);
+ atime = All.Time;
+ }
+ else
+ fac1 = fac2 = fac3 = hubble_a = a3inv = atime = 1;
+
+#ifdef NOPMSTEPADJUSTMENT
+ dt_displacement = All.MaxSizeTimestep;
+#else
+ if(Flag_FullStep || dt_displacement == 0)
+ find_dt_displacement_constraint(hubble_a * atime * atime);
+#endif
+
+#ifdef PMGRID
+ if(All.ComovingIntegrationOn)
+ dt_gravkickB = get_gravkick_factor(All.PM_Ti_begstep, All.Ti_Current) -
+ get_gravkick_factor(All.PM_Ti_begstep, (All.PM_Ti_begstep + All.PM_Ti_endstep) / 2);
+ else
+ dt_gravkickB = (All.Ti_Current - (All.PM_Ti_begstep + All.PM_Ti_endstep) / 2) * All.Timebase_interval;
+
+ if(All.PM_Ti_endstep == All.Ti_Current) /* need to do long-range kick */
+ {
+ /* make sure that we reconstruct the domain/tree next time because we don't kick the tree nodes in this case */
+ All.NumForcesSinceLastDomainDecomp = 1 + All.TotNumPart * All.TreeDomainUpdateFrequency;
+ }
+#endif
+
+
+#ifdef MAKEGLASS
+ for(i = 0, dispmax = 0, disp2sum = 0; i < NumPart; i++)
+ {
+ for(j = 0; j < 3; j++)
+ {
+ P[i].GravPM[j] *= -1;
+ P[i].GravAccel[j] *= -1;
+ P[i].GravAccel[j] += P[i].GravPM[j];
+ P[i].GravPM[j] = 0;
+ }
+
+ disp = sqrt(P[i].GravAccel[0] * P[i].GravAccel[0] +
+ P[i].GravAccel[1] * P[i].GravAccel[1] + P[i].GravAccel[2] * P[i].GravAccel[2]);
+
+ disp *= 2.0 / (3 * All.Hubble * All.Hubble);
+
+ disp2sum += disp * disp;
+
+ if(disp > dispmax)
+ dispmax = disp;
+ }
+
+ MPI_Allreduce(&dispmax, &globmax, 1, MPI_DOUBLE, MPI_MAX, MPI_COMM_WORLD);
+ MPI_Allreduce(&disp2sum, &globdisp2sum, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+
+ dmean = pow(P[0].Mass / (All.Omega0 * 3 * All.Hubble * All.Hubble / (8 * M_PI * All.G)), 1.0 / 3);
+
+ if(globmax > dmean)
+ fac = dmean / globmax;
+ else
+ fac = 1.0;
+
+ if(ThisTask == 0)
+ {
+ printf("\nglass-making: dmean= %g global disp-maximum= %g rms= %g\n\n",
+ dmean, globmax, sqrt(globdisp2sum / All.TotNumPart));
+ fflush(stdout);
+ }
+
+ for(i = 0, dispmax = 0; i < NumPart; i++)
+ {
+ for(j = 0; j < 3; j++)
+ {
+ P[i].Vel[j] = 0;
+ P[i].Pos[j] += fac * P[i].GravAccel[j] * 2.0 / (3 * All.Hubble * All.Hubble);
+ P[i].GravAccel[j] = 0;
+ }
+ }
+#endif
+
+
+ /* Now assign new timesteps and kick */
+
+#ifdef FLEXSTEPS
+ if((All.Ti_Current % (4 * All.PresentMinStep)) == 0)
+ if(All.PresentMinStep < TIMEBASE)
+ All.PresentMinStep *= 2;
+
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+ ti_step = get_timestep(i, &aphys, 0);
+
+ /* make it a power 2 subdivision */
+ ti_min = TIMEBASE;
+ while(ti_min > ti_step)
+ ti_min >>= 1;
+ ti_step = ti_min;
+
+ if(ti_step < All.PresentMinStep)
+ All.PresentMinStep = ti_step;
+ }
+ }
+
+ ti_step = All.PresentMinStep;
+ MPI_Allreduce(&ti_step, &All.PresentMinStep, 1, MPI_INT, MPI_MIN, MPI_COMM_WORLD);
+
+ if(dt_displacement < All.MaxSizeTimestep)
+ ti_step = (int) (dt_displacement / All.Timebase_interval);
+ else
+ ti_step = (int) (All.MaxSizeTimestep / All.Timebase_interval);
+
+ /* make it a power 2 subdivision */
+ ti_min = TIMEBASE;
+ while(ti_min > ti_step)
+ ti_min >>= 1;
+ All.PresentMaxStep = ti_min;
+
+
+ if(ThisTask == 0)
+ printf("Syn Range = %g PresentMinStep = %d PresentMaxStep = %d \n",
+ (double) All.PresentMaxStep / All.PresentMinStep, All.PresentMinStep, All.PresentMaxStep);
+
+
+#endif
+
+
+ for(i = 0; i < NumPart; i++)
+ {
+ if(P[i].Ti_endstep == All.Ti_Current)
+ {
+ ti_step = get_timestep(i, &aphys, 0);
+
+ /* make it a power 2 subdivision */
+ ti_min = TIMEBASE;
+ while(ti_min > ti_step)
+ ti_min >>= 1;
+ ti_step = ti_min;
+
+#ifdef FLEXSTEPS
+ ti_grp = P[i].FlexStepGrp % All.PresentMaxStep;
+ ti_grp = (ti_grp / All.PresentMinStep) * All.PresentMinStep;
+ ti_step = ((P[i].Ti_endstep + ti_grp + ti_step) / ti_step) * ti_step - (P[i].Ti_endstep + ti_grp);
+#else
+
+#ifdef PSEUDOSYMMETRIC
+ if(P[i].Type != 0)
+ {
+ if(P[i].Ti_endstep > P[i].Ti_begstep)
+ {
+ apred = aphys + ((aphys - P[i].AphysOld) / (P[i].Ti_endstep - P[i].Ti_begstep)) * ti_step;
+ if(fabs(apred - aphys) < 0.5 * aphys)
+ {
+ ti_step2 = get_timestep(i, &apred, -1);
+ ti_min = TIMEBASE;
+ while(ti_min > ti_step2)
+ ti_min >>= 1;
+ ti_step2 = ti_min;
+
+ if(ti_step2 < ti_step)
+ {
+ get_timestep(i, &apred, ti_step);
+ prob =
+ ((apred - aphys) / (aphys - P[i].AphysOld) * (P[i].Ti_endstep -
+ P[i].Ti_begstep)) / ti_step;
+ if(prob < get_random_number(P[i].ID))
+ ti_step /= 2;
+ }
+ else if(ti_step2 > ti_step)
+ {
+ get_timestep(i, &apred, 2 * ti_step);
+ prob =
+ ((apred - aphys) / (aphys - P[i].AphysOld) * (P[i].Ti_endstep -
+ P[i].Ti_begstep)) / ti_step;
+ if(prob < get_random_number(P[i].ID + 1))
+ ti_step *= 2;
+ }
+ }
+ }
+ P[i].AphysOld = aphys;
+ }
+#endif
+
+#ifdef SYNCHRONIZATION
+ if(ti_step > (P[i].Ti_endstep - P[i].Ti_begstep)) /* timestep wants to increase */
+ {
+
+
+ //if(((TIMEBASE - P[i].Ti_endstep) % ti_step) > 0)
+ // ti_step = P[i].Ti_endstep - P[i].Ti_begstep; /* leave at old step */
+
+ while(((TIMEBASE - P[i].Ti_endstep) % ti_step) > 0) /* yr : allow to increase */
+ ti_step = ti_step/2;
+
+
+
+ }
+#endif
+#endif /* end of FLEXSTEPS */
+
+ if(All.Ti_Current == TIMEBASE) /* we here finish the last timestep. */
+ ti_step = 0;
+
+ if((TIMEBASE - All.Ti_Current) < ti_step) /* check that we don't run beyond the end */
+ ti_step = TIMEBASE - All.Ti_Current;
+
+ tstart = (P[i].Ti_begstep + P[i].Ti_endstep) / 2; /* midpoint of old step */
+ tend = P[i].Ti_endstep + ti_step / 2; /* midpoint of new step */
+
+ if(All.ComovingIntegrationOn)
+ {
+ dt_entr = (tend - tstart) * All.Timebase_interval;
+ dt_entr2 = (tend - P[i].Ti_endstep) * All.Timebase_interval;
+ dt_gravkick = get_gravkick_factor(tstart, tend);
+ dt_hydrokick = get_hydrokick_factor(tstart, tend);
+ dt_gravkick2 = get_gravkick_factor(P[i].Ti_endstep, tend);
+ dt_hydrokick2 = get_hydrokick_factor(P[i].Ti_endstep, tend);
+ }
+ else
+ {
+ dt_entr = dt_gravkick = dt_hydrokick = (tend - tstart) * All.Timebase_interval;
+ dt_gravkick2 = dt_hydrokick2 = dt_entr2 = (tend - P[i].Ti_endstep) * All.Timebase_interval;
+ }
+
+ P[i].Ti_begstep = P[i].Ti_endstep;
+ P[i].Ti_endstep = P[i].Ti_begstep + ti_step;
+
+
+
+
+
+#ifdef CYLINDRICAL_SYMMETRY
+
+ double r,factor;
+
+ r = sqrt( P[i].Pos[0]*P[i].Pos[0] + P[i].Pos[1]*P[i].Pos[1] + P[i].Pos[2]*P[i].Pos[2] );
+
+ factor = 1/(r*r) * (P[i].Pos[0]*P[i].GravAccel[0] + P[i].Pos[1]*P[i].GravAccel[1]);
+
+ P[i].GravAccel[0] = factor * P[i].Pos[0];
+ P[i].GravAccel[1] = factor * P[i].Pos[1];
+
+
+#endif
+
+ /* do the kick */
+
+ for(j = 0; j < 3; j++)
+ {
+
+ dv[j] = 0.0;
+
+#ifdef LIMIT_DVEL
+ if (fabs(P[i].GravAccel[j] * dt_gravkick)>LIMIT_DVEL)
+ {
+#ifdef MULTIPHASE
+ printf("Warning(LIMIT_DVEL): ID=%d j=%d dv[j]=%g Phase=%d(setting GravAccel[j] to 0.0)\n",P[i].ID,j,P[i].GravAccel[j]*dt_hydrokick,SphP[i].Phase);
+#else
+ printf("Warning(LIMIT_DVEL): ID=%d j=%d dv[j]=%g Phase=-(setting GravAccel[j] to 0.0)\n",P[i].ID,j,P[i].GravAccel[j]*dt_hydrokick);
+#endif
+ P[i].GravAccel[j] = 0.0;
+ }
+#endif
+
+ dv[j] += P[i].GravAccel[j] * dt_gravkick;
+ P[i].Vel[j] += P[i].GravAccel[j] * dt_gravkick;
+ }
+
+ if(P[i].Type == 0) /* SPH stuff */
+ {
+ for(j = 0; j < 3; j++)
+ {
+
+#ifdef LIMIT_DVEL /* begin LIMIT_DVEL */
+ if (fabs(SphP[i].HydroAccel[j] * dt_hydrokick)>LIMIT_DVEL)
+ {
+#ifdef MULTIPHASE
+ printf("Warning(LIMIT_DVEL): ID=%d j=%d dv[j]=%g Phase=%d(setting HydroAccel[j] to 0.0)\n",P[i].ID,j,SphP[i].HydroAccel[j] *dt_hydrokick,SphP[i].Phase);
+#else
+ printf("Warning(LIMIT_DVEL): ID=%d j=%d dv[j]=%g Phase=-(setting HydroAccel[j] to 0.0)\n",P[i].ID,j,SphP[i].HydroAccel[j] *dt_hydrokick);
+#endif
+ SphP[i].HydroAccel[j] = 0.0;
+ }
+
+#endif /* end LIMIT_DVEL */
+
+
+ dv[j] += SphP[i].HydroAccel[j] * dt_hydrokick;
+ P[i].Vel[j] += SphP[i].HydroAccel[j] * dt_hydrokick;
+
+
+ SphP[i].VelPred[j] =
+ P[i].Vel[j] - dt_gravkick2 * P[i].GravAccel[j] - dt_hydrokick2 * SphP[i].HydroAccel[j];
+#ifdef PMGRID
+ SphP[i].VelPred[j] += P[i].GravPM[j] * dt_gravkickB;
+#endif
+
+#ifdef AB_TURB
+ dv[j] += SphP[i].TurbAccel[j] * dt_hydrokick;
+ P[i].Vel[j] += SphP[i].TurbAccel[j] * dt_hydrokick;
+
+ SphP[i].VelPred[j] += - dt_hydrokick2 * SphP[i].TurbAccel[j];
+#endif
+ }
+
+
+ /***********************************************************/
+ /* compute spec energy lost/win by different other process */
+ /***********************************************************/
+
+
+
+ /***********************************************************/
+ /* compute entropy variation */
+ /***********************************************************/
+
+
+
+ /*******************************/
+ /* compute cooling */
+ /*******************************/
+#ifdef COOLING
+ t2 = second();
+ CoolingForOne(i,tstart,tend,a3inv,hubble_a);
+ t3 = second();
+ All.CPU_Cooling += timediff(t2, t3);
+#else
+
+
+ /* In case of cooling, we prevent that the entropy (and
+ hence temperature decreases by more than a factor 0.5 */
+
+ if(SphP[i].DtEntropy * dt_entr > -0.5 * SphP[i].Entropy)
+ SphP[i].Entropy += SphP[i].DtEntropy * dt_entr;
+ else
+ SphP[i].Entropy *= 0.5;
+
+
+#ifdef MULTIPHASE
+ if (SphP[i].Phase==GAS_SPH)
+ {
+#endif
+
+ if(All.MinEgySpec)
+ {
+ minentropy = All.MinEgySpec * GAMMA_MINUS1 / pow(SphP[i].Density * a3inv, GAMMA_MINUS1);
+ if(SphP[i].Entropy < minentropy)
+ {
+ SphP[i].Entropy = minentropy;
+ SphP[i].DtEntropy = 0;
+ }
+ }
+
+#ifdef MULTIPHASE
+ }
+#endif
+
+
+
+#endif /* COOLING */
+
+
+
+
+
+ /* In case the timestep increases in the new step, we
+ make sure that we do not 'overcool' when deriving
+ predicted temperatures. The maximum timespan over
+ which prediction can occur is ti_step/2, i.e. from
+ the middle to the end of the current step */
+
+ //dt_entr = ti_step / 2 * All.Timebase_interval;
+ dt_entr = imax(ti_step / 2,1) * All.Timebase_interval; /* yr : prevent dt_entr to be zero if ti_step=1 */
+
+ if(SphP[i].Entropy + SphP[i].DtEntropy * dt_entr < 0.5 * SphP[i].Entropy)
+ SphP[i].DtEntropy = -0.5 * SphP[i].Entropy / dt_entr;
+
+
+#ifdef ENTROPYPRED
+ /* now, we correct the predicted Entropy */
+ SphP[i].EntropyPred = SphP[i].Entropy - dt_entr2 * SphP[i].DtEntropy ;
+#ifdef CHECK_ENTROPY_SIGN
+ if ((SphP[i].EntropyPred < 0))
+ {
+ printf("\ntask=%d: EntropyPred less than zero in advance_and_find_timesteps !\n", ThisTask);
+ printf("ID=%d Entropy=%g EntropyPred=%g DtEntropy=%g dt_entr=%g\n",P[i].ID,SphP[i].Entropy,SphP[i].EntropyPred,SphP[i].DtEntropy,dt_entr);
+ fflush(stdout);
+ endrun(1010101000);
+
+ }
+#endif
+
+#endif
+
+ }
+
+ /* if tree is not going to be reconstructed, kick parent nodes dynamically.
+ */
+ if(All.NumForcesSinceLastDomainDecomp < All.TotNumPart * All.TreeDomainUpdateFrequency)
+ {
+ no = Father[i];
+ while(no >= 0)
+ {
+ for(j = 0; j < 3; j++)
+ Extnodes[no].vs[j] += dv[j] * P[i].Mass / Nodes[no].u.d.mass;
+
+ no = Nodes[no].u.d.father;
+ }
+ }
+ }
+ }
+
+
+
+#ifdef PMGRID
+ if(All.PM_Ti_endstep == All.Ti_Current) /* need to do long-range kick */
+ {
+ ti_step = TIMEBASE;
+ while(ti_step > (dt_displacement / All.Timebase_interval))
+ ti_step >>= 1;
+
+ if(ti_step > (All.PM_Ti_endstep - All.PM_Ti_begstep)) /* PM-timestep wants to increase */
+ {
+ /* we only increase if an integer number of steps will bring us to the end */
+ if(((TIMEBASE - All.PM_Ti_endstep) % ti_step) > 0)
+ ti_step = All.PM_Ti_endstep - All.PM_Ti_begstep; /* leave at old step */
+ }
+
+ if(All.Ti_Current == TIMEBASE) /* we here finish the last timestep. */
+ ti_step = 0;
+
+ tstart = (All.PM_Ti_begstep + All.PM_Ti_endstep) / 2;
+ tend = All.PM_Ti_endstep + ti_step / 2;
+
+ if(All.ComovingIntegrationOn)
+ dt_gravkick = get_gravkick_factor(tstart, tend);
+ else
+ dt_gravkick = (tend - tstart) * All.Timebase_interval;
+
+ All.PM_Ti_begstep = All.PM_Ti_endstep;
+ All.PM_Ti_endstep = All.PM_Ti_begstep + ti_step;
+
+ if(All.ComovingIntegrationOn)
+ dt_gravkickB = -get_gravkick_factor(All.PM_Ti_begstep, (All.PM_Ti_begstep + All.PM_Ti_endstep) / 2);
+ else
+ dt_gravkickB =
+ -((All.PM_Ti_begstep + All.PM_Ti_endstep) / 2 - All.PM_Ti_begstep) * All.Timebase_interval;
+
+ for(i = 0; i < NumPart; i++)
+ {
+ for(j = 0; j < 3; j++) /* do the kick */
+ P[i].Vel[j] += P[i].GravPM[j] * dt_gravkick;
+
+ if(P[i].Type == 0)
+ {
+ if(All.ComovingIntegrationOn)
+ {
+ dt_gravkickA = get_gravkick_factor(P[i].Ti_begstep, All.Ti_Current) -
+ get_gravkick_factor(P[i].Ti_begstep, (P[i].Ti_begstep + P[i].Ti_endstep) / 2);
+ dt_hydrokick = get_hydrokick_factor(P[i].Ti_begstep, All.Ti_Current) -
+ get_hydrokick_factor(P[i].Ti_begstep, (P[i].Ti_begstep + P[i].Ti_endstep) / 2);
+ }
+ else
+ dt_gravkickA = dt_hydrokick =
+ (All.Ti_Current - (P[i].Ti_begstep + P[i].Ti_endstep) / 2) * All.Timebase_interval;
+
+ for(j = 0; j < 3; j++)
+ SphP[i].VelPred[j] = P[i].Vel[j]
+ + P[i].GravAccel[j] * dt_gravkickA
+ + SphP[i].HydroAccel[j] * dt_hydrokick
+ + P[i].GravPM[j] * dt_gravkickB;
+ }
+ }
+ }
+#endif
+
+ t1 = second();
+ All.CPU_TimeLine += timediff(t0, t1);
+
+#ifdef DETAILED_CPU
+ All.CPU_Leapfrog += timediff(t0, t1);
+#endif
+
+
+#ifdef COOLING
+ //All.CPU_TimeLine -= All.CPU_Cooling;
+#endif
+
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ if(SetMinTimeStepForActives)
+ SetMinTimeStepForActives=0;
+#endif
+
+
+}
+
+
+
+
+/*! This function normally (for flag==0) returns the maximum allowed timestep
+ * of a particle, expressed in terms of the integer mapping that is used to
+ * represent the total simulated timespan. The physical acceleration is
+ * returned in `aphys'. The latter is used in conjunction with the
+ * PSEUDOSYMMETRIC integration option, which also makes of the second
+ * function of get_timestep. When it is called with a finite timestep for
+ * flag, it returns the physical acceleration that would lead to this
+ * timestep, assuming timestep criterion 0.
+ */
+int get_timestep(int p, /*!< particle index */
+ double *aphys, /*!< acceleration (physical units) */
+ int flag /*!< either 0 for normal operation, or finite timestep to get corresponding
+ aphys */ )
+{
+ double ax, ay, az, ac, csnd;
+ double dt = 0, dt_courant = 0, dt_accel;
+ int ti_step;
+
+#ifdef CONDUCTION
+ double dt_cond;
+#endif
+
+ if(flag == 0)
+ {
+ ax = fac1 * P[p].GravAccel[0];
+ ay = fac1 * P[p].GravAccel[1];
+ az = fac1 * P[p].GravAccel[2];
+
+#ifdef PMGRID
+ ax += fac1 * P[p].GravPM[0];
+ ay += fac1 * P[p].GravPM[1];
+ az += fac1 * P[p].GravPM[2];
+#endif
+
+ if(P[p].Type == 0)
+ {
+ ax += fac2 * SphP[p].HydroAccel[0];
+ ay += fac2 * SphP[p].HydroAccel[1];
+ az += fac2 * SphP[p].HydroAccel[2];
+
+#ifdef AB_TURB
+ ax += fac2 * SphP[p].TurbAccel[0];
+ ay += fac2 * SphP[p].TurbAccel[1];
+ az += fac2 * SphP[p].TurbAccel[2];
+#endif
+ }
+
+ ac = sqrt(ax * ax + ay * ay + az * az); /* this is now the physical acceleration */
+ *aphys = ac;
+ }
+ else
+ ac = *aphys;
+
+ if(ac == 0)
+ ac = 1.0e-30;
+
+ switch (All.TypeOfTimestepCriterion)
+ {
+ case 0:
+ if(flag > 0)
+ {
+ dt = flag * All.Timebase_interval;
+ dt /= hubble_a; /* convert dloga to physical timestep */
+ ac = 2 * All.ErrTolIntAccuracy * atime * All.SofteningTable[P[p].Type] / (dt * dt);
+ *aphys = ac;
+ return flag;
+ }
+ dt = dt_accel = sqrt(2 * All.ErrTolIntAccuracy * atime * All.SofteningTable[P[p].Type] / ac);
+
+
+
+
+#ifdef ADAPTIVE_GRAVSOFT_FORGAS
+ if(P[p].Type == 0)
+ dt = dt_accel = sqrt(2 * All.ErrTolIntAccuracy * atime * SphP[p].Hsml / 2.8 / ac);
+#endif
+ break;
+ default:
+ endrun(888);
+ break;
+ }
+
+ if(P[p].Type == 0)
+ {
+ csnd = sqrt(GAMMA * SphP[p].Pressure / SphP[p].Density);
+
+ if(All.ComovingIntegrationOn)
+ dt_courant = 2 * All.CourantFac * All.Time * SphP[p].Hsml / (fac3 * SphP[p].MaxSignalVel);
+ else
+ dt_courant = 2 * All.CourantFac * SphP[p].Hsml / SphP[p].MaxSignalVel;
+
+ if(dt_courant < dt)
+#ifndef MULTIPHASE
+ dt = dt_courant;
+#else
+ {
+ if (SphP[p].MaxSignalVel != 0);
+ dt = dt_courant;
+ }
+#endif
+
+
+
+#ifdef CHIMIE_THERMAL_FEEDBACK
+
+ float f;
+ double EgySpec,NewEgySpec;
+
+ if (SphP[p].DeltaEgySpec > 0)
+ {
+
+ /* spec energy at current step */
+ EgySpec = SphP[p].EntropyPred / GAMMA_MINUS1 * pow(SphP[p].Density*a3inv, GAMMA_MINUS1);
+
+ /* new egyspec */
+ NewEgySpec = EgySpec + SphP[p].DeltaEgySpec;
+
+ f = NewEgySpec/EgySpec;
+
+ //if (f>1)
+ // dt = dt / f;
+ }
+
+#endif
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ double dt_kinetic_feedback;
+ double SupernovaKieticFeedbackIntAccuracy=0.1;
+
+ dt_kinetic_feedback = SupernovaKieticFeedbackIntAccuracy * All.SofteningTable[P[p].Type] / All.ChimieWindSpeed;
+
+ if(dt_kinetic_feedback < dt)
+ dt = dt_kinetic_feedback;
+#endif
+
+
+#ifdef FEEDBACK_WIND
+ double dt_feedback_wind;
+ double vwind;
+
+ vwind = sqrt( SphP[p].FeedbackWindVel[0]*SphP[p].FeedbackWindVel[0] + SphP[p].FeedbackWindVel[1]*SphP[p].FeedbackWindVel[1] + SphP[p].FeedbackWindVel[2]*SphP[p].FeedbackWindVel[2] );
+
+ if (vwind > 0)
+ {
+ dt_feedback_wind = All.SupernovaWindIntAccuracy * All.SofteningTable[P[p].Type] / vwind;
+
+ SphP[p].FeedbackWindVel[0]=0;
+ SphP[p].FeedbackWindVel[1]=0;
+ SphP[p].FeedbackWindVel[2]=0;
+
+ if(dt_feedback_wind < dt)
+ dt = dt_feedback_wind;
+ }
+#endif
+
+ }
+
+
+#ifdef CHIMIE
+ int m;
+ double dt_chimie;
+
+ if(P[p].Type == ST)
+ {
+ //m = P[p].StPIdx;
+ //if (StP[m].Flag)
+ {
+ dt_chimie = All.ChimieMaxSizeTimestep;
+ }
+ if(dt_chimie < dt)
+ dt = dt_chimie;
+ }
+#endif
+
+
+ /* convert the physical timestep to dloga if needed. Note: If comoving integration has not been selected,
+ hubble_a=1.
+ */
+ dt *= hubble_a;
+
+ if(dt >= All.MaxSizeTimestep)
+ dt = All.MaxSizeTimestep;
+
+ if(dt >= dt_displacement)
+ dt = dt_displacement;
+
+ if(dt < All.MinSizeTimestep)
+ {
+#ifndef NOSTOP_WHEN_BELOW_MINTIMESTEP
+ printf("warning: Timestep wants to be below the limit `MinSizeTimestep'\n");
+
+ if(P[p].Type == 0)
+ {
+ printf
+ ("Part-ID=%d dt=%g dtc=%g ac=%g xyz=(%g|%g|%g) hsml=%g maxsignalvel=%g dt0=%g eps=%g\n",
+ (int) P[p].ID, dt, dt_courant * hubble_a, ac, P[p].Pos[0], P[p].Pos[1], P[p].Pos[2],
+ SphP[p].Hsml, SphP[p].MaxSignalVel,
+ sqrt(2 * All.ErrTolIntAccuracy * atime * All.SofteningTable[P[p].Type] / ac) * hubble_a,
+ All.SofteningTable[P[p].Type]);
+ }
+ else
+ {
+ printf("Part-ID=%d dt=%g ac=%g xyz=(%g|%g|%g)\n", (int) P[p].ID, dt, ac, P[p].Pos[0], P[p].Pos[1],
+ P[p].Pos[2]);
+ }
+ fflush(stdout);
+ endrun(888);
+#endif
+ dt = All.MinSizeTimestep;
+ }
+
+ ti_step = dt / All.Timebase_interval;
+
+
+#ifdef CHIMIE_KINETIC_FEEDBACK
+ //if(SetMinTimeStepForActives)
+ // ti_step=1;
+#endif
+
+ if(!(ti_step > 0 && ti_step < TIMEBASE))
+ {
+ printf("\nError: A timestep of size zero was assigned on the integer timeline!\n"
+ "We better stop.\n"
+ "Task=%d Part-ID=%d dt=%g tibase=%g ti_step=%d ac=%g xyz=(%g|%g|%g) tree=(%g|%g%g)\n\n",
+ ThisTask, (int) P[p].ID, dt, All.Timebase_interval, ti_step, ac,
+ P[p].Pos[0], P[p].Pos[1], P[p].Pos[2], P[p].GravAccel[0], P[p].GravAccel[1], P[p].GravAccel[2]);
+#ifdef PMGRID
+ printf("pm_force=(%g|%g|%g)\n", P[p].GravPM[0], P[p].GravPM[1], P[p].GravPM[2]);
+#endif
+ if(P[p].Type == 0)
+ printf("hydro-frc=(%g|%g|%g)\n", SphP[p].HydroAccel[0], SphP[p].HydroAccel[1], SphP[p].HydroAccel[2]);
+#ifdef FEEDBACK_WIND
+ if(P[p].Type == 0)
+ printf("feedback-vel=(%g|%g|%g)\n", SphP[p].FeedbackWindVel[0], SphP[p].FeedbackWindVel[1], SphP[p].FeedbackWindVel[2]);
+#endif
+
+
+ fflush(stdout);
+ endrun(818);
+ }
+
+ return ti_step;
+}
+
+
+/*! This function computes an upper limit ('dt_displacement') to the global
+ * timestep of the system based on the rms velocities of particles. For
+ * cosmological simulations, the criterion used is that the rms displacement
+ * should be at most a fraction MaxRMSDisplacementFac of the mean particle
+ * separation. Note that the latter is estimated using the assigned particle
+ * masses, separately for each particle type. If comoving integration is not
+ * used, the function imposes no constraint on the timestep.
+ */
+void find_dt_displacement_constraint(double hfac /*!< should be a^2*H(a) */ )
+{
+ int i, j, type, *temp;
+ int count[6];
+ long long count_sum[6];
+ double v[6], v_sum[6], mim[6], min_mass[6];
+ double dt, dmean, asmth = 0;
+
+ dt_displacement = All.MaxSizeTimestep;
+
+ if(All.ComovingIntegrationOn)
+ {
+ for(type = 0; type < 6; type++)
+ {
+ count[type] = 0;
+ v[type] = 0;
+ mim[type] = 1.0e30;
+ }
+
+ for(i = 0; i < NumPart; i++)
+ {
+ v[P[i].Type] += P[i].Vel[0] * P[i].Vel[0] + P[i].Vel[1] * P[i].Vel[1] + P[i].Vel[2] * P[i].Vel[2];
+ if(mim[P[i].Type] > P[i].Mass)
+ mim[P[i].Type] = P[i].Mass;
+ count[P[i].Type]++;
+ }
+
+ MPI_Allreduce(v, v_sum, 6, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD);
+ MPI_Allreduce(mim, min_mass, 6, MPI_DOUBLE, MPI_MIN, MPI_COMM_WORLD);
+
+ temp = malloc(NTask * 6 * sizeof(int));
+ MPI_Allgather(count, 6, MPI_INT, temp, 6, MPI_INT, MPI_COMM_WORLD);
+ for(i = 0; i < 6; i++)
+ {
+ count_sum[i] = 0;
+ for(j = 0; j < NTask; j++)
+ count_sum[i] += temp[j * 6 + i];
+ }
+ free(temp);
+
+ for(type = 0; type < 6; type++)
+ {
+ if(count_sum[type] > 0)
+ {
+ if(type == 0)
+ dmean =
+ pow(min_mass[type] / (All.OmegaBaryon * 3 * All.Hubble * All.Hubble / (8 * M_PI * All.G)),
+ 1.0 / 3);
+ else
+ dmean =
+ pow(min_mass[type] /
+ ((All.Omega0 - All.OmegaBaryon) * 3 * All.Hubble * All.Hubble / (8 * M_PI * All.G)),
+ 1.0 / 3);
+
+ dt = All.MaxRMSDisplacementFac * hfac * dmean / sqrt(v_sum[type] / count_sum[type]);
+
+#ifdef PMGRID
+ asmth = All.Asmth[0];
+#ifdef PLACEHIGHRESREGION
+ if(((1 << type) & (PLACEHIGHRESREGION)))
+ asmth = All.Asmth[1];
+#endif
+ if(asmth < dmean)
+ dt = All.MaxRMSDisplacementFac * hfac * asmth / sqrt(v_sum[type] / count_sum[type]);
+#endif
+
+ if(ThisTask == 0)
+ printf("type=%d dmean=%g asmth=%g minmass=%g a=%g sqrt(<p^2>)=%g dlogmax=%g\n",
+ type, dmean, asmth, min_mass[type], All.Time, sqrt(v_sum[type] / count_sum[type]), dt);
+
+ if(dt < dt_displacement)
+ dt_displacement = dt;
+ }
+ }
+
+ if(ThisTask == 0)
+ printf("displacement time constraint: %g (%g)\n", dt_displacement, All.MaxSizeTimestep);
+ }
+}
diff --git a/clusters/user/GEAR/template.job b/clusters/user/GEAR/template.job
new file mode 100644
index 0000000..6c83348
--- /dev/null
+++ b/clusters/user/GEAR/template.job
@@ -0,0 +1,9 @@
+#!/bin/bash -l
+
+#SBATCH --nodes --NODES--
+#SBATCH --ntasks --NP--
+#SBATCH --cpus-per-task 1
+#SBATCH --time 02:00:00
+#SBATCH --job-name GEAR--NP--
+
+
diff --git a/clusters/user/QE/CP/H.blyp-vbc.UPF b/clusters/user/QE/CP/H.blyp-vbc.UPF
new file mode 100644
index 0000000..3d7bbff
--- /dev/null
+++ b/clusters/user/QE/CP/H.blyp-vbc.UPF
@@ -0,0 +1,359 @@
+<PP_INFO>
+Generated using ld1 code
+Author: P. Giannozzi Generation date: 2001
+Info: Hydrogen BLYP 1s1 local VonBarth-Car
+ 0 The Pseudo was generated with a Non-Relativistic Calculation
+ 0.00000000000E+00 Local Potential cutoff radius
+nl pn l occ Rcut Rcut US E pseu
+1S 0 0 1.00 0.94000000000 0.00000000000 0.00000000000
+</PP_INFO>
+
+
+<PP_HEADER>
+ 0 Version Number
+ H Element
+ NC Norm - Conserving pseudopotential
+ F Nonlinear Core Correction
+ SLA LYP B88 BLYP BLYP Exchange-Correlation functional
+ 1.00000000000 Z valence
+ 0.00000000000 Total energy
+ 60.000000 240.00000 Suggested cutoff for wfc and rho
+ -1 Max angular momentum component
+ 243 Number of points in mesh
+ 1 0 Number of Wavefunctions, Number of Projectors
+ Wavefunctions nl l occ
+ 1S 0 1.00
+</PP_HEADER>
+
+
+<PP_MESH>
+ <PP_R>
+ 3.35462627903E-04 3.52662164628E-04 3.70743540459E-04 3.89751968253E-04
+ 4.09734978980E-04 4.30742540576E-04 4.52827182887E-04 4.76044129022E-04
+ 5.00451433441E-04 5.26110127116E-04 5.53084370148E-04 5.81441612194E-04
+ 6.11252761130E-04 6.42592360356E-04 6.75538775194E-04 7.10174388843E-04
+ 7.46585808377E-04 7.84864081311E-04 8.25104923266E-04 8.67408957307E-04
+ 9.11881965555E-04 9.58635153694E-04 1.00778542905E-03 1.05945569291E-03
+ 1.11377514784E-03 1.17087962079E-03 1.23091190267E-03 1.29402210547E-03
+ 1.36036803755E-03 1.43011559831E-03 1.50343919298E-03 1.58052216874E-03
+ 1.66155727317E-03 1.74674713626E-03 1.83630477703E-03 1.93045413623E-03
+ 2.02943063630E-03 2.13348177004E-03 2.24286771949E-03 2.35786200649E-03
+ 2.47875217667E-03 2.60584051841E-03 2.73944481877E-03 2.87989915809E-03
+ 3.02755474538E-03 3.18278079651E-03 3.34596545747E-03 3.51751677491E-03
+ 3.69786371648E-03 3.88745724348E-03 4.08677143846E-03 4.29630469075E-03
+ 4.51658094261E-03 4.74815099941E-03 4.99159390691E-03 5.24751839918E-03
+ 5.51656442076E-03 5.79940472684E-03 6.09674656552E-03 6.40933344626E-03
+ 6.73794699909E-03 7.08340892905E-03 7.44658307092E-03 7.82837754923E-03
+ 8.22974704902E-03 8.65169520312E-03 9.09527710170E-03 9.56160193054E-03
+ 1.00518357446E-02 1.05672043839E-02 1.11089965382E-02 1.16785669704E-02
+ 1.22773399031E-02 1.29068125805E-02 1.35685590122E-02 1.42642339090E-02
+ 1.49955768205E-02 1.57644164849E-02 1.65726754018E-02 1.74223746395E-02
+ 1.83156388887E-02 1.92547017754E-02 2.02419114458E-02 2.12797364384E-02
+ 2.23707718562E-02 2.35177458560E-02 2.47235264703E-02 2.59911287788E-02
+ 2.73237224473E-02 2.87246396542E-02 3.01973834223E-02 3.17456363781E-02
+ 3.33732699603E-02 3.50843541008E-02 3.68831674012E-02 3.87742078317E-02
+ 4.07622039784E-02 4.28521268670E-02 4.50492023936E-02 4.73589243911E-02
+ 4.97870683679E-02 5.23397059484E-02 5.50232200564E-02 5.78443208748E-02
+ 6.08100626252E-02 6.39278612067E-02 6.72055127397E-02 7.06512130604E-02
+ 7.42735782143E-02 7.80816660012E-02 8.20849986239E-02 8.62935864994E-02
+ 9.07179532894E-02 9.53691622155E-02 1.00258843723E-01 1.05399224562E-01
+ 1.10803158362E-01 1.16484157773E-01 1.22456428253E-01 1.28734903588E-01
+ 1.35335283237E-01 1.42274071587E-01 1.49568619223E-01 1.57237166314E-01
+ 1.65298888222E-01 1.73773943450E-01 1.82683524053E-01 1.92049908621E-01
+ 2.01896517995E-01 2.12247973827E-01 2.23130160148E-01 2.34570288094E-01
+ 2.46596963942E-01 2.59240260646E-01 2.72531793034E-01 2.86504796860E-01
+ 3.01194211912E-01 3.16636769379E-01 3.32871083698E-01 3.49937749111E-01
+ 3.67879441171E-01 3.86741023455E-01 4.06569659741E-01 4.27414931949E-01
+ 4.49328964117E-01 4.72366552741E-01 4.96585303791E-01 5.22045776761E-01
+ 5.48811636094E-01 5.76949810380E-01 6.06530659713E-01 6.37628151622E-01
+ 6.70320046036E-01 7.04688089719E-01 7.40818220682E-01 7.78800783071E-01
+ 8.18730753078E-01 8.60707976425E-01 9.04837418036E-01 9.51229424501E-01
+ 1.00000000000E+00 1.05127109638E+00 1.10517091808E+00 1.16183424273E+00
+ 1.22140275816E+00 1.28402541669E+00 1.34985880758E+00 1.41906754859E+00
+ 1.49182469764E+00 1.56831218549E+00 1.64872127070E+00 1.73325301787E+00
+ 1.82211880039E+00 1.91554082901E+00 2.01375270747E+00 2.11700001661E+00
+ 2.22554092849E+00 2.33964685193E+00 2.45960311116E+00 2.58570965932E+00
+ 2.71828182846E+00 2.85765111806E+00 3.00416602395E+00 3.15819290969E+00
+ 3.32011692274E+00 3.49034295746E+00 3.66929666762E+00 3.85742553070E+00
+ 4.05519996684E+00 4.26311451517E+00 4.48168907034E+00 4.71147018259E+00
+ 4.95303242440E+00 5.20697982718E+00 5.47394739173E+00 5.75460267601E+00
+ 6.04964746441E+00 6.35981952260E+00 6.68589444228E+00 7.02868758059E+00
+ 7.38905609893E+00 7.76790110631E+00 8.16616991257E+00 8.58485839718E+00
+ 9.02501349943E+00 9.48773583636E+00 9.97418245481E+00 1.04855697247E+01
+ 1.10231763806E+01 1.15883467192E+01 1.21824939607E+01 1.28071037827E+01
+ 1.34637380350E+01 1.41540386454E+01 1.48797317249E+01 1.56426318842E+01
+ 1.64446467711E+01 1.72877818406E+01 1.81741453694E+01 1.91059537282E+01
+ 2.00855369232E+01 2.11153444225E+01 2.21979512814E+01 2.33360645809E+01
+ 2.45325301971E+01 2.57903399172E+01 2.71126389207E+01 2.85027336438E+01
+ 2.99641000474E+01 3.15003923087E+01 3.31154519587E+01 3.48133174876E+01
+ 3.65982344437E+01 3.84746660490E+01 4.04473043601E+01 4.25210820001E+01
+ 4.47011844933E+01 4.69930632316E+01 4.94024491055E+01 5.19353668348E+01
+ 5.45981500331E+01 5.73974570454E+01 6.03402875974E+01
+ </PP_R>
+ <PP_RAB>
+ 1.67731313951E-05 1.76331082314E-05 1.85371770230E-05 1.94875984126E-05
+ 2.04867489490E-05 2.15371270288E-05 2.26413591443E-05 2.38022064511E-05
+ 2.50225716720E-05 2.63055063558E-05 2.76542185074E-05 2.90720806097E-05
+ 3.05626380565E-05 3.21296180178E-05 3.37769387597E-05 3.55087194421E-05
+ 3.73292904188E-05 3.92432040655E-05 4.12552461633E-05 4.33704478654E-05
+ 4.55940982777E-05 4.79317576847E-05 5.03892714524E-05 5.29727846454E-05
+ 5.56887573922E-05 5.85439810396E-05 6.15455951337E-05 6.47011052733E-05
+ 6.80184018774E-05 7.15057799154E-05 7.51719596489E-05 7.90261084368E-05
+ 8.30778636587E-05 8.73373568131E-05 9.18152388514E-05 9.65227068114E-05
+ 1.01471531815E-04 1.06674088502E-04 1.12143385974E-04 1.17893100325E-04
+ 1.23937608833E-04 1.30292025920E-04 1.36972240938E-04 1.43994957904E-04
+ 1.51377737269E-04 1.59139039825E-04 1.67298272874E-04 1.75875838746E-04
+ 1.84893185824E-04 1.94372862174E-04 2.04338571923E-04 2.14815234538E-04
+ 2.25829047131E-04 2.37407549971E-04 2.49579695346E-04 2.62375919959E-04
+ 2.75828221038E-04 2.89970236342E-04 3.04837328276E-04 3.20466672313E-04
+ 3.36897349954E-04 3.54170446453E-04 3.72329153546E-04 3.91418877461E-04
+ 4.11487352451E-04 4.32584760156E-04 4.54763855085E-04 4.78080096527E-04
+ 5.02591787232E-04 5.28360219193E-04 5.55449826912E-04 5.83928348520E-04
+ 6.13866995153E-04 6.45340629024E-04 6.78427950610E-04 7.13211695450E-04
+ 7.49778841024E-04 7.88220824243E-04 8.28633770088E-04 8.71118731975E-04
+ 9.15781944437E-04 9.62735088769E-04 1.01209557229E-03 1.06398682192E-03
+ 1.11853859281E-03 1.17588729280E-03 1.23617632352E-03 1.29955643894E-03
+ 1.36618612236E-03 1.43623198271E-03 1.50986917112E-03 1.58728181890E-03
+ 1.66866349802E-03 1.75421770504E-03 1.84415837006E-03 1.93871039159E-03
+ 2.03811019892E-03 2.14260634335E-03 2.25246011968E-03 2.36794621956E-03
+ 2.48935341839E-03 2.61698529742E-03 2.75116100282E-03 2.89221604374E-03
+ 3.04050313126E-03 3.19639306034E-03 3.36027563699E-03 3.53256065302E-03
+ 3.71367891072E-03 3.90408330006E-03 4.10424993119E-03 4.31467932497E-03
+ 4.53589766447E-03 4.76845811078E-03 5.01294218614E-03 5.26996122809E-03
+ 5.54015791812E-03 5.82420788867E-03 6.12282141265E-03 6.43674517939E-03
+ 6.76676416183E-03 7.11370357933E-03 7.47843096113E-03 7.86185831568E-03
+ 8.26494441108E-03 8.68869717252E-03 9.13417620264E-03 9.60249543104E-03
+ 1.00948258997E-02 1.06123986913E-02 1.11565080074E-02 1.17285144047E-02
+ 1.23298481971E-02 1.29620130323E-02 1.36265896517E-02 1.43252398430E-02
+ 1.50597105956E-02 1.58318384690E-02 1.66435541849E-02 1.74968874556E-02
+ 1.83939720586E-02 1.93370511727E-02 2.03284829870E-02 2.13707465974E-02
+ 2.24664482059E-02 2.36183276371E-02 2.48292651896E-02 2.61022888381E-02
+ 2.74405818047E-02 2.88474905190E-02 3.03265329856E-02 3.18814075811E-02
+ 3.35160023018E-02 3.52344044859E-02 3.70409110341E-02 3.89400391536E-02
+ 4.09365376539E-02 4.30353988213E-02 4.52418709018E-02 4.75614712250E-02
+ 5.00000000000E-02 5.25635548188E-02 5.52585459038E-02 5.80917121364E-02
+ 6.10701379080E-02 6.42012708344E-02 6.74929403788E-02 7.09533774297E-02
+ 7.45912348821E-02 7.84156092745E-02 8.24360635350E-02 8.66626508934E-02
+ 9.11059400195E-02 9.57770414507E-02 1.00687635374E-01 1.05850000831E-01
+ 1.11277046425E-01 1.16982342596E-01 1.22980155558E-01 1.29285482966E-01
+ 1.35914091423E-01 1.42882555903E-01 1.50208301197E-01 1.57909645484E-01
+ 1.66005846137E-01 1.74517147873E-01 1.83464833381E-01 1.92871276535E-01
+ 2.02759998342E-01 2.13155725758E-01 2.24084453517E-01 2.35573509130E-01
+ 2.47651621220E-01 2.60348991359E-01 2.73697369586E-01 2.87730133800E-01
+ 3.02482373221E-01 3.17990976130E-01 3.34294722114E-01 3.51434379029E-01
+ 3.69452804947E-01 3.88395055315E-01 4.08308495628E-01 4.29242919859E-01
+ 4.51250674972E-01 4.74386791818E-01 4.98709122741E-01 5.24278486236E-01
+ 5.51158819032E-01 5.79417335961E-01 6.09124698035E-01 6.40355189133E-01
+ 6.73186901750E-01 7.07701932269E-01 7.43986586244E-01 7.82131594209E-01
+ 8.22232338555E-01 8.64389092028E-01 9.08707268472E-01 9.55297686412E-01
+ 1.00427684616E+00 1.05576722113E+00 1.10989756407E+00 1.16680322905E+00
+ 1.22662650986E+00 1.28951699586E+00 1.35563194603E+00 1.42513668219E+00
+ 1.49820500237E+00 1.57501961544E+00 1.65577259793E+00 1.74066587438E+00
+ 1.82991172218E+00 1.92373330245E+00 2.02236521800E+00 2.12605410000E+00
+ 2.23505922467E+00 2.34965316158E+00 2.47012245528E+00 2.59676834174E+00
+ 2.72990750166E+00 2.86987285227E+00 3.01701437987E+00
+ </PP_RAB>
+</PP_MESH>
+
+
+<PP_LOCAL>
+ -1.29502203134E+01 -1.29502191540E+01 -1.29502178727E+01 -1.29502164567E+01
+ -1.29502148918E+01 -1.29502131622E+01 -1.29502112508E+01 -1.29502091384E+01
+ -1.29502068037E+01 -1.29502042236E+01 -1.29502013721E+01 -1.29501982207E+01
+ -1.29501947378E+01 -1.29501908887E+01 -1.29501866347E+01 -1.29501819334E+01
+ -1.29501767376E+01 -1.29501709954E+01 -1.29501646492E+01 -1.29501576357E+01
+ -1.29501498845E+01 -1.29501413181E+01 -1.29501318509E+01 -1.29501213879E+01
+ -1.29501098246E+01 -1.29500970451E+01 -1.29500829217E+01 -1.29500673128E+01
+ -1.29500500625E+01 -1.29500309979E+01 -1.29500099284E+01 -1.29499866430E+01
+ -1.29499609087E+01 -1.29499324680E+01 -1.29499010363E+01 -1.29498662990E+01
+ -1.29498279085E+01 -1.29497854807E+01 -1.29497385909E+01 -1.29496867700E+01
+ -1.29496294994E+01 -1.29495662060E+01 -1.29494962565E+01 -1.29494189510E+01
+ -1.29493335160E+01 -1.29492390967E+01 -1.29491347485E+01 -1.29490194272E+01
+ -1.29488919793E+01 -1.29487511298E+01 -1.29485954696E+01 -1.29484234417E+01
+ -1.29482333253E+01 -1.29480232191E+01 -1.29477910217E+01 -1.29475344110E+01
+ -1.29472508210E+01 -1.29469374163E+01 -1.29465910636E+01 -1.29462083006E+01
+ -1.29457853015E+01 -1.29453178389E+01 -1.29448012419E+01 -1.29442303494E+01
+ -1.29435994587E+01 -1.29429022696E+01 -1.29421318211E+01 -1.29412804225E+01
+ -1.29403395779E+01 -1.29392999013E+01 -1.29381510245E+01 -1.29368814947E+01
+ -1.29354786613E+01 -1.29339285522E+01 -1.29322157359E+01 -1.29303231712E+01
+ -1.29282320397E+01 -1.29259215635E+01 -1.29233688023E+01 -1.29205484316E+01
+ -1.29174324984E+01 -1.29139901518E+01 -1.29101873480E+01 -1.29059865258E+01
+ -1.29013462505E+01 -1.28962208231E+01 -1.28905598531E+01 -1.28843077895E+01
+ -1.28774034090E+01 -1.28697792567E+01 -1.28613610360E+01 -1.28520669445E+01
+ -1.28418069516E+01 -1.28304820153E+01 -1.28179832337E+01 -1.28041909295E+01
+ -1.27889736633E+01 -1.27721871753E+01 -1.27536732542E+01 -1.27332585320E+01
+ -1.27107532094E+01 -1.26859497130E+01 -1.26586212928E+01 -1.26285205697E+01
+ -1.25953780471E+01 -1.25589006051E+01 -1.25187700054E+01 -1.24746414371E+01
+ -1.24261421477E+01 -1.23728702118E+01 -1.23143935030E+01 -1.22502489484E+01
+ -1.21799421643E+01 -1.21029475868E+01 -1.20187092362E+01 -1.19266422720E+01
+ -1.18261355238E+01 -1.17165552057E+01 -1.15972500440E+01 -1.14675580712E+01
+ -1.13268153534E+01 -1.11743669232E+01 -1.10095801853E+01 -1.08318610348E+01
+ -1.06406728738E+01 -1.04355586311E+01 -1.02161657559E+01 -9.98227398156E+00
+ -9.73382541510E+00 -9.47095620703E+00 -9.19402868810E+00 -8.90366243534E+00
+ -8.60076226420E+00 -8.28654067225E+00 -7.96253183308E+00 -7.63059393158E+00
+ -7.29289653649E+00 -6.95188993629E+00 -6.61025403537E+00 -6.27082562065E+00
+ -5.93650462203E+00 -5.61014237438E+00 -5.29441769454E+00 -4.99170950135E+00
+ -4.70397725346E+00 -4.43266204327E+00 -4.17862111392E+00 -3.94210632955E+00
+ -3.72279252780E+00 -3.51985506085E+00 -3.33208818303E+00 -3.15804885046E+00
+ -2.99620580369E+00 -2.84507305211E+00 -2.70331069015E+00 -2.56978360766E+00
+ -2.44357804619E+00 -2.32398434484E+00 -2.21045921728E+00 -2.10258145004E+00
+ -2.00001168621E+00 -1.90246190773E+00 -1.80967553048E+00 -1.72141608753E+00
+ -1.63746152810E+00 -1.55760156909E+00 -1.48163644168E+00 -1.40937617946E+00
+ -1.34064009207E+00 -1.27525630324E+00 -1.21306131943E+00 -1.15389962076E+00
+ -1.09762327219E+00 -1.04409155352E+00 -9.93170607583E-01 -9.44733105482E-01
+ -8.98657928234E-01 -8.54829863897E-01 -8.13139319481E-01 -7.73482046909E-01
+ -7.35758882343E-01 -6.99875498222E-01 -6.65742167396E-01 -6.33273538758E-01
+ -6.02388423824E-01 -5.73009593720E-01 -5.45063586068E-01 -5.18480521292E-01
+ -4.93193927883E-01 -4.69140576188E-01 -4.46260320297E-01 -4.24495947653E-01
+ -4.03793035989E-01 -3.84099817242E-01 -3.65367048105E-01 -3.47547886901E-01
+ -3.30597776443E-01 -3.14474332627E-01 -2.99137238445E-01 -2.84548143173E-01
+ -2.70670566473E-01 -2.57469807176E-01 -2.44912856506E-01 -2.32968315547E-01
+ -2.21606316725E-01 -2.10798449124E-01 -2.00517687446E-01 -1.90738324431E-01
+ -1.81435906579E-01 -1.72587172999E-01 -1.64169997248E-01 -1.56163332002E-01
+ -1.48547156429E-01 -1.41302426121E-01 -1.34411025479E-01 -1.27855722413E-01
+ -1.21620125250E-01 -1.15688641750E-01 -1.10046440113E-01 -1.04679411897E-01
+ -9.95741367357E-02 -9.47178487823E-02 -9.00984047871E-02 -8.57042537341E-02
+ -8.15244079567E-02 -7.75484156634E-02 -7.37663348025E-02 -7.01687082017E-02
+ -6.67465399207E-02 -6.34912727561E-02 -6.03947668446E-02 -5.74492793085E-02
+ -5.46474448946E-02 -5.19822575575E-02 -4.94470529407E-02 -4.70354917120E-02
+ -4.47415437123E-02 -4.25594728768E-02 -4.04838228916E-02 -3.85094035508E-02
+ -3.66312777775E-02 -3.48447492790E-02 -3.31453508035E-02
+</PP_LOCAL>
+
+
+<PP_NONLOCAL>
+ <PP_DIJ>
+ 0 Number of nonzero Dij
+ </PP_DIJ>
+</PP_NONLOCAL>
+
+
+<PP_PSWFC>
+1S 0 1.00 Wavefunction
+ 5.54554020000E-04 5.82986610000E-04 6.12876970000E-04 6.44299850000E-04
+ 6.77333810000E-04 7.12061460000E-04 7.48569630000E-04 7.86949610000E-04
+ 8.27297370000E-04 8.69713790000E-04 9.14304950000E-04 9.61182330000E-04
+ 1.01046320000E-03 1.06227070000E-03 1.11673440000E-03 1.17399050000E-03
+ 1.23418220000E-03 1.29745990000E-03 1.36398200000E-03 1.43391470000E-03
+ 1.50743280000E-03 1.58472030000E-03 1.66597040000E-03 1.75138620000E-03
+ 1.84118130000E-03 1.93558020000E-03 2.03481900000E-03 2.13914570000E-03
+ 2.24882130000E-03 2.36412000000E-03 2.48533000000E-03 2.61275440000E-03
+ 2.74671180000E-03 2.88753710000E-03 3.03558240000E-03 3.19121790000E-03
+ 3.35483260000E-03 3.52683560000E-03 3.70765680000E-03 3.89774840000E-03
+ 4.09758560000E-03 4.30766780000E-03 4.52852040000E-03 4.76069520000E-03
+ 5.00477270000E-03 5.26136290000E-03 5.53110720000E-03 5.81467960000E-03
+ 6.11278900000E-03 6.42618010000E-03 6.75563630000E-03 7.10198060000E-03
+ 7.46607830000E-03 7.84883910000E-03 8.25121910000E-03 8.67422330000E-03
+ 9.11890810000E-03 9.58638400000E-03 1.00778180000E-02 1.05944370000E-02
+ 1.11375300000E-02 1.17084530000E-02 1.23086300000E-02 1.29395580000E-02
+ 1.36028100000E-02 1.43000400000E-02 1.50329850000E-02 1.58034710000E-02
+ 1.66134160000E-02 1.74648340000E-02 1.83598420000E-02 1.93006640000E-02
+ 2.02896380000E-02 2.13292180000E-02 2.24219830000E-02 2.35706420000E-02
+ 2.47780370000E-02 2.60471570000E-02 2.73811360000E-02 2.87832650000E-02
+ 3.02570000000E-02 3.18059660000E-02 3.34339680000E-02 3.51449950000E-02
+ 3.69432330000E-02 3.88330700000E-02 4.08191070000E-02 4.29061640000E-02
+ 4.50992910000E-02 4.74037740000E-02 4.98251500000E-02 5.23692080000E-02
+ 5.50420040000E-02 5.78498660000E-02 6.07994020000E-02 6.38975110000E-02
+ 6.71513850000E-02 7.05685200000E-02 7.41567160000E-02 7.79240860000E-02
+ 8.18790540000E-02 8.60303540000E-02 9.03870340000E-02 9.49584450000E-02
+ 9.97542330000E-02 1.04784330000E-01 1.10058930000E-01 1.15588490000E-01
+ 1.21383660000E-01 1.27455290000E-01 1.33814360000E-01 1.40471940000E-01
+ 1.47439120000E-01 1.54726970000E-01 1.62346390000E-01 1.70308080000E-01
+ 1.78622390000E-01 1.87299190000E-01 1.96347740000E-01 2.05776530000E-01
+ 2.15593070000E-01 2.25803740000E-01 2.36413530000E-01 2.47425830000E-01
+ 2.58842200000E-01 2.70662090000E-01 2.82882590000E-01 2.95498170000E-01
+ 3.08500430000E-01 3.21877850000E-01 3.35615580000E-01 3.49695240000E-01
+ 3.64094790000E-01 3.78788420000E-01 3.93746540000E-01 4.08935770000E-01
+ 4.24319060000E-01 4.39855800000E-01 4.55502060000E-01 4.71210790000E-01
+ 4.86932060000E-01 5.02613270000E-01 5.18199320000E-01 5.33632720000E-01
+ 5.48853520000E-01 5.63799290000E-01 5.78404820000E-01 5.92601880000E-01
+ 6.06318930000E-01 6.19480840000E-01 6.32008720000E-01 6.43819960000E-01
+ 6.54828480000E-01 6.64945200000E-01 6.74078810000E-01 6.82136710000E-01
+ 6.89026140000E-01 6.94655460000E-01 6.98935480000E-01 7.01780810000E-01
+ 7.03111300000E-01 7.02853460000E-01 7.00941860000E-01 6.97320630000E-01
+ 6.91944810000E-01 6.84781770000E-01 6.75812530000E-01 6.65032940000E-01
+ 6.52454780000E-01 6.38106700000E-01 6.22034860000E-01 6.04303390000E-01
+ 5.84994590000E-01 5.64208700000E-01 5.42063470000E-01 5.18693210000E-01
+ 4.94247610000E-01 4.68890120000E-01 4.42796010000E-01 4.16150140000E-01
+ 3.89144520000E-01 3.61975730000E-01 3.34842310000E-01 3.07942100000E-01
+ 2.81469790000E-01 2.55614490000E-01 2.30557360000E-01 2.06469160000E-01
+ 1.83507430000E-01 1.61813170000E-01 1.41506930000E-01 1.22684590000E-01
+ 1.05413500000E-01 8.97300400000E-02 7.56391480000E-02 6.31161190000E-02
+ 5.21099970000E-02 4.25477380000E-02 3.43384900000E-02 2.73777710000E-02
+ 2.15515520000E-02 1.67402560000E-02 1.28225850000E-02 9.67903910000E-03
+ 7.19499650000E-03 5.26324060000E-03 3.78586650000E-03 2.67554730000E-03
+ 1.85616920000E-03 1.26293100000E-03 8.41861070000E-04 5.49141780000E-04
+ 3.50161980000E-04 2.18064220000E-04 1.32477710000E-04 7.84146230000E-05
+ 4.51617100000E-05 2.52728030000E-05 1.37215790000E-05 7.21649280000E-06
+ 3.67023340000E-06 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+</PP_PSWFC>
+
+
+<PP_RHOATOM>
+ 3.07530161098E-07 3.39873387439E-07 3.75618180356E-07 4.15122296710E-07
+ 4.58781090169E-07 5.07031522817E-07 5.60356490958E-07 6.19289688679E-07
+ 6.84420938409E-07 7.56402076516E-07 8.35953541595E-07 9.23871471504E-07
+ 1.02103587855E-06 1.12841904008E-06 1.24709572014E-06 1.37825369409E-06
+ 1.52320570280E-06 1.68340219211E-06 1.86044689632E-06 2.05611136688E-06
+ 2.27235364652E-06 2.51133842923E-06 2.77545737368E-06 3.06735362155E-06
+ 3.38994857947E-06 3.74647071063E-06 4.14048836276E-06 4.57594432583E-06
+ 5.05719723933E-06 5.58906337440E-06 6.17686520890E-06 6.82648555472E-06
+ 7.54442571226E-06 8.33787050388E-06 9.21476050719E-06 1.01838716853E-05
+ 1.12549017740E-05 1.24385693494E-05 1.37467189466E-05 1.51924425897E-05
+ 1.67902077493E-05 1.85560018752E-05 2.05074970132E-05 2.26642187873E-05
+ 2.50477497787E-05 2.76819395655E-05 3.05931468579E-05 3.38104988507E-05
+ 3.73661893585E-05 4.12957906776E-05 4.56386218179E-05 5.04381284428E-05
+ 5.57423251817E-05 6.16042752177E-05 6.80826166362E-05 7.52421498583E-05
+ 8.31544849362E-05 9.18987581955E-05 1.01562415641E-04 1.12242095347E-04
+ 1.24044574501E-04 1.37087871653E-04 1.51502372477E-04 1.67432161235E-04
+ 1.85036439896E-04 2.04491144002E-04 2.25990638010E-04 2.49749695648E-04
+ 2.76005591189E-04 3.05020426648E-04 3.37083798265E-04 3.72515630841E-04
+ 4.11669410171E-04 4.54935540492E-04 5.02745321652E-04 5.55575164292E-04
+ 6.13951117573E-04 6.78454387783E-04 7.49726608650E-04 8.28476344060E-04
+ 9.15486049000E-04 1.01161947319E-03 1.11783021623E-03 1.23517067355E-03
+ 1.36480246449E-03 1.50800732562E-03 1.66619949628E-03 1.84093890919E-03
+ 2.03394604870E-03 2.24711778944E-03 2.48254557252E-03 2.74253394655E-03
+ 3.02962220434E-03 3.34660699622E-03 3.69656728356E-03 4.08289191200E-03
+ 4.50930850742E-03 4.97991601499E-03 5.49921852790E-03 6.07216317894E-03
+ 6.70417948393E-03 7.40122180937E-03 8.16981591532E-03 9.01710627682E-03
+ 9.95090700142E-03 1.09797558135E-02 1.21129680727E-02 1.33606990205E-02
+ 1.47339929150E-02 1.62448509490E-02 1.79062829422E-02 1.97323659274E-02
+ 2.17382941064E-02 2.39404352454E-02 2.63563503460E-02 2.90048421133E-02
+ 3.19059582093E-02 3.50809865747E-02 3.85524350031E-02 4.23439802988E-02
+ 4.64803718320E-02 5.09873289980E-02 5.58913571671E-02 6.12195413512E-02
+ 6.69992845008E-02 7.32579669632E-02 8.00225597251E-02 8.73191684733E-02
+ 9.51725153102E-02 1.03605350321E-01 1.12637817539E-01 1.22286760879E-01
+ 1.32565016105E-01 1.43480667126E-01 1.55036337762E-01 1.67228463985E-01
+ 1.80046664679E-01 1.93473124794E-01 2.07482126664E-01 2.22039608612E-01
+ 2.37102831056E-01 2.52620099180E-01 2.68530535248E-01 2.84763879855E-01
+ 3.01240186416E-01 3.17869639405E-01 3.34552135799E-01 3.51176988180E-01
+ 3.67622644876E-01 3.83756511127E-01 3.99435022156E-01 4.14504140894E-01
+ 4.28800338219E-01 4.42152119003E-01 4.54382242091E-01 4.65310491130E-01
+ 4.74757021603E-01 4.82546208108E-01 4.88510805203E-01 4.92496305284E-01
+ 4.94365500188E-01 4.94002986234E-01 4.91319491100E-01 4.86256061024E-01
+ 4.78787620086E-01 4.68926072524E-01 4.56722575705E-01 4.42268811285E-01
+ 4.25697239945E-01 4.07180160585E-01 3.86927367055E-01 3.65182587165E-01
+ 3.42218670329E-01 3.18331457156E-01 2.93832805508E-01 2.69042646100E-01
+ 2.44280699991E-01 2.19857944634E-01 1.96068306472E-01 1.73180939022E-01
+ 1.51433457446E-01 1.31026429109E-01 1.12119372566E-01 9.48283369524E-02
+ 7.92252426826E-02 6.53387674980E-02 5.31566962502E-02 4.26295140311E-02
+ 3.36749768652E-02 2.61835019854E-02 2.00242112380E-02 1.50515086235E-02
+ 1.11120059822E-02 8.05148007840E-03 5.72128071017E-03 3.98364447762E-03
+ 2.71545178734E-03 1.81031000892E-03 1.17913189548E-03 7.49542344928E-04
+ 4.64469393609E-04 2.80236170946E-04 1.64418686082E-04 9.36837978993E-05
+ 5.17679746350E-05 2.77017016135E-05 1.43327851558E-05 7.15855335454E-06
+ 3.44536409903E-06 1.59499471076E-06 7.08730061182E-07 3.01556694542E-07
+ 1.22613412238E-07 4.75520040442E-08 1.75503436468E-08 6.14885310023E-09
+ 2.03958005012E-09 6.38714571477E-10 1.88281730253E-10 5.20777683325E-11
+ 1.34706132105E-11 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+</PP_RHOATOM>
diff --git a/clusters/user/QE/CP/O.blyp-mt.UPF b/clusters/user/QE/CP/O.blyp-mt.UPF
new file mode 100644
index 0000000..1353c41
--- /dev/null
+++ b/clusters/user/QE/CP/O.blyp-mt.UPF
@@ -0,0 +1,557 @@
+<PP_INFO>
+Generated using ld1 code (trou)
+Author: P. Giannozzi Generation date: 2001
+Info: Oxygen BLYP 2s2 2p4 l=1 local Martins-Troullier
+ 0 The Pseudo was generated with a Non-Relativistic Calculation
+ 0.00000000000E+00 Local Potential cutoff radius
+nl pn l occ Rcut Rcut US E pseu
+2S 0 0 2.00 1.31000000000 0.00000000000 0.00000000000
+2P 0 1 4.00 1.31000000000 0.00000000000 0.00000000000
+</PP_INFO>
+
+
+<PP_HEADER>
+ 0 Version Number
+ O Element
+ NC Norm - Conserving pseudopotential
+ F Nonlinear Core Correction
+ SLA LYP B88 BLYP BLYP Exchange-Correlation functional
+ 6.00000000000 Z valence
+ 0.00000000000 Total energy
+ 0.0000000 0.0000000 Suggested cutoff for wfc and rho
+ 0 Max angular momentum component
+ 285 Number of points in mesh
+ 2 1 Number of Wavefunctions, Number of Projectors
+ Wavefunctions nl l occ
+ 2S 0 2.00
+ 2P 1 4.00
+</PP_HEADER>
+
+
+<PP_MESH>
+ <PP_R>
+ 4.19328284878E-05 4.40827705785E-05 4.63429425574E-05 4.87189960316E-05
+ 5.12168723725E-05 5.38428175720E-05 5.66033978608E-05 5.95055161278E-05
+ 6.25564291801E-05 6.57637658895E-05 6.91355462685E-05 7.26802015242E-05
+ 7.64065951412E-05 8.03240450444E-05 8.44423468992E-05 8.87717986053E-05
+ 9.33232260471E-05 9.81080101639E-05 1.03138115408E-04 1.08426119663E-04
+ 1.13985245694E-04 1.19829394212E-04 1.25973178631E-04 1.32431961613E-04
+ 1.39221893481E-04 1.46359952599E-04 1.53863987834E-04 1.61752763183E-04
+ 1.70046004693E-04 1.78764449788E-04 1.87929899122E-04 1.97565271092E-04
+ 2.07694659147E-04 2.18343392033E-04 2.29538097129E-04 2.41306767028E-04
+ 2.53678829537E-04 2.66685221255E-04 2.80358464936E-04 2.94732750811E-04
+ 3.09844022083E-04 3.25730064801E-04 3.42430602346E-04 3.59987394761E-04
+ 3.78444343172E-04 3.97847599564E-04 4.18245682184E-04 4.39689596864E-04
+ 4.62232964560E-04 4.85932155435E-04 5.10846429808E-04 5.37038086344E-04
+ 5.64572617827E-04 5.93518874926E-04 6.23949238364E-04 6.55939799898E-04
+ 6.89570552595E-04 7.24925590855E-04 7.62093320689E-04 8.01166680782E-04
+ 8.42243374886E-04 8.85426116132E-04 9.30822883866E-04 9.78547193653E-04
+ 1.02871838113E-03 1.08146190039E-03 1.13690963771E-03 1.19520024132E-03
+ 1.25647946808E-03 1.32090054798E-03 1.38862456728E-03 1.45982087130E-03
+ 1.53466748788E-03 1.61335157256E-03 1.69606987653E-03 1.78302923862E-03
+ 1.87444710256E-03 1.97055206061E-03 2.07158442522E-03 2.17779682994E-03
+ 2.28945486109E-03 2.40683772192E-03 2.53023893073E-03 2.65996705480E-03
+ 2.79634648202E-03 2.93971823200E-03 3.09044080879E-03 3.24889109734E-03
+ 3.41546530591E-03 3.59057995678E-03 3.77467292779E-03 3.96820454726E-03
+ 4.17165874504E-03 4.38554426261E-03 4.61039592516E-03 4.84677597897E-03
+ 5.09527549730E-03 5.35651585838E-03 5.63115029919E-03 5.91986554889E-03
+ 6.22338354598E-03 6.54246324355E-03 6.87790250705E-03 7.23054010935E-03
+ 7.60125782815E-03 7.99098265084E-03 8.40068909247E-03 8.83140163255E-03
+ 9.28419727679E-03 9.76020825014E-03 1.02606248280E-02 1.07866983124E-02
+ 1.13397441612E-02 1.19211452769E-02 1.25323554654E-02 1.31749030702E-02
+ 1.38503947953E-02 1.45605197217E-02 1.53070535316E-02 1.60918629485E-02
+ 1.69169104046E-02 1.77842589483E-02 1.86960774028E-02 1.96546457892E-02
+ 2.06623610277E-02 2.17217429313E-02 2.28354405066E-02 2.40062385776E-02
+ 2.52370647493E-02 2.65309967283E-02 2.78912700186E-02 2.93212860117E-02
+ 3.08246204927E-02 3.24050325807E-02 3.40664741293E-02 3.58130996075E-02
+ 3.76492764890E-02 3.95795961724E-02 4.16088854623E-02 4.37422186389E-02
+ 4.59849301464E-02 4.83426279318E-02 5.08212074676E-02 5.34268664936E-02
+ 5.61661205147E-02 5.90458190926E-02 6.20731629739E-02 6.52557220951E-02
+ 6.86014545118E-02 7.21187262976E-02 7.58163324641E-02 7.97035189527E-02
+ 8.37900057545E-02 8.80860112148E-02 9.26022775852E-02 9.73500978839E-02
+ 1.02341344135E-01 1.07588497053E-01 1.13104677254E-01 1.18903678063E-01
+ 1.25000000000E-01 1.31408887047E-01 1.38146364759E-01 1.45229280341E-01
+ 1.52675344770E-01 1.60503177086E-01 1.68732350947E-01 1.77383443574E-01
+ 1.86478087205E-01 1.96039023186E-01 2.06090158838E-01 2.16656627233E-01
+ 2.27764850049E-01 2.39442603627E-01 2.51719088434E-01 2.64625002077E-01
+ 2.78192616062E-01 2.92455856491E-01 3.07450388895E-01 3.23213707414E-01
+ 3.39785228557E-01 3.57206389758E-01 3.75520752993E-01 3.94774113711E-01
+ 4.15014615342E-01 4.36292869683E-01 4.58662083452E-01 4.82178191337E-01
+ 5.06899995856E-01 5.32889314396E-01 5.60211133792E-01 5.88933772824E-01
+ 6.19129053049E-01 6.50872478397E-01 6.84243423966E-01 7.19325334501E-01
+ 7.56205933052E-01 7.94977440325E-01 8.35736805285E-01 8.78585947574E-01
+ 9.23632012366E-01 9.70987638288E-01 1.02077123907E+00 1.07310729965E+00
+ 1.12812668743E+00 1.18596697954E+00 1.24677280685E+00 1.31069621559E+00
+ 1.37789704758E+00 1.44854333990E+00 1.52281174509E+00 1.60088797283E+00
+ 1.68296725438E+00 1.76925483067E+00 1.85996646561E+00 1.95532898552E+00
+ 2.05558084639E+00 2.16097273007E+00 2.27176817118E+00 2.38824421603E+00
+ 2.51069211540E+00 2.63941805282E+00 2.77474391018E+00 2.91700807262E+00
+ 3.06656627464E+00 3.22379248965E+00 3.38907986508E+00 3.56284170547E+00
+ 3.74551250592E+00 3.93754903859E+00 4.13943149484E+00 4.35166468595E+00
+ 4.57477930546E+00 4.80933325613E+00 5.05591304501E+00 5.31513525001E+00
+ 5.58764806166E+00 5.87413290395E+00 6.17530613819E+00 6.49192085435E+00
+ 6.82476875414E+00 7.17468213068E+00 7.54253594967E+00 7.92925003727E+00
+ 8.33579138012E+00 8.76317654334E+00 9.21247421245E+00 9.68480786566E+00
+ 1.01813585831E+01 1.07033680003E+01 1.12521414126E+01 1.18290510394E+01
+ 1.24355394552E+01 1.30731231971E+01 1.37433965565E+01 1.44480355659E+01
+ 1.51888021898E+01 1.59675487308E+01 1.67862224606E+01 1.76468704902E+01
+ 1.85516448878E+01 1.95028080608E+01 2.05027384125E+01 2.15539362896E+01
+ 2.26590302344E+01 2.38207835573E+01 2.50421012468E+01 2.63260372333E+01
+ 2.76758020255E+01 2.90947707385E+01 3.05864915330E+01 3.21546944882E+01
+ 3.38033009283E+01 3.55364332280E+01 3.73584251209E+01 3.92738325357E+01
+ 4.12874449887E+01 4.34042975598E+01 4.56296834832E+01 4.79691673826E+01
+ 5.04285991866E+01 5.30141287556E+01 5.57322212603E+01 5.85896733478E+01
+ 6.15936301367E+01
+ </PP_R>
+ <PP_RAB>
+ 2.09664142439E-06 2.20413852893E-06 2.31714712787E-06 2.43594980158E-06
+ 2.56084361862E-06 2.69214087860E-06 2.83016989304E-06 2.97527580639E-06
+ 3.12782145900E-06 3.28818829448E-06 3.45677731342E-06 3.63401007621E-06
+ 3.82032975706E-06 4.01620225222E-06 4.22211734496E-06 4.43858993027E-06
+ 4.66616130235E-06 4.90540050819E-06 5.15690577041E-06 5.42130598317E-06
+ 5.69926228472E-06 5.99146971059E-06 6.29865893155E-06 6.62159808067E-06
+ 6.96109467403E-06 7.31799762994E-06 7.69319939171E-06 8.08763815916E-06
+ 8.50230023467E-06 8.93822248942E-06 9.39649495611E-06 9.87826355460E-06
+ 1.03847329573E-05 1.09171696016E-05 1.14769048564E-05 1.20653383514E-05
+ 1.26839414768E-05 1.33342610627E-05 1.40179232468E-05 1.47366375406E-05
+ 1.54922011042E-05 1.62865032401E-05 1.71215301173E-05 1.79993697381E-05
+ 1.89222171586E-05 1.98923799782E-05 2.09122841092E-05 2.19844798432E-05
+ 2.31116482280E-05 2.42966077717E-05 2.55423214904E-05 2.68519043172E-05
+ 2.82286308913E-05 2.96759437463E-05 3.11974619182E-05 3.27969899949E-05
+ 3.44785276298E-05 3.62462795428E-05 3.81046660345E-05 4.00583340391E-05
+ 4.21121687443E-05 4.42713058066E-05 4.65411441933E-05 4.89273596827E-05
+ 5.14359190564E-05 5.40730950195E-05 5.68454818856E-05 5.97600120659E-05
+ 6.28239734040E-05 6.60450273991E-05 6.94312283640E-05 7.29910435650E-05
+ 7.67333743942E-05 8.06675786280E-05 8.48034938263E-05 8.91514619312E-05
+ 9.37223551280E-05 9.85276030303E-05 1.03579221261E-04 1.08889841497E-04
+ 1.14472743055E-04 1.20341886096E-04 1.26511946536E-04 1.32998352740E-04
+ 1.39817324101E-04 1.46985911600E-04 1.54522040440E-04 1.62444554867E-04
+ 1.70773265296E-04 1.79528997839E-04 1.88733646389E-04 1.98410227363E-04
+ 2.08582937252E-04 2.19277213130E-04 2.30519796258E-04 2.42338798948E-04
+ 2.54763774865E-04 2.67825792919E-04 2.81557514960E-04 2.95993277445E-04
+ 3.11169177299E-04 3.27123162178E-04 3.43895125353E-04 3.61527005468E-04
+ 3.80062891408E-04 3.99549132542E-04 4.20034454623E-04 4.41570081628E-04
+ 4.64209863840E-04 4.88010412507E-04 5.13031241399E-04 5.39334915621E-04
+ 5.66987208059E-04 5.96057263847E-04 6.26617773268E-04 6.58745153512E-04
+ 6.92519739765E-04 7.28025986084E-04 7.65352676581E-04 8.04593147424E-04
+ 8.45845520229E-04 8.89212947416E-04 9.34803870141E-04 9.82732289460E-04
+ 1.03311805138E-03 1.08608714657E-03 1.14177202533E-03 1.20031192888E-03
+ 1.26185323747E-03 1.32654983642E-03 1.39456350093E-03 1.46606430059E-03
+ 1.54123102464E-03 1.62025162904E-03 1.70332370646E-03 1.79065498038E-03
+ 1.88246382445E-03 1.97897980862E-03 2.08044427311E-03 2.18711093194E-03
+ 2.29924650732E-03 2.41713139659E-03 2.54106037338E-03 2.67134332468E-03
+ 2.80830602573E-03 2.95229095463E-03 3.10365814870E-03 3.26278610476E-03
+ 3.43007272559E-03 3.60593631488E-03 3.79081662320E-03 3.98517594764E-03
+ 4.18950028772E-03 4.40430056074E-03 4.63011387926E-03 4.86750489420E-03
+ 5.11706720674E-03 5.37942485266E-03 5.65523386272E-03 5.94518390313E-03
+ 6.25000000000E-03 6.57044435235E-03 6.90731823797E-03 7.26146401705E-03
+ 7.63376723850E-03 8.02515885430E-03 8.43661754735E-03 8.86917217871E-03
+ 9.32390436026E-03 9.80195115931E-03 1.03045079419E-02 1.08328313617E-02
+ 1.13882425024E-02 1.19721301813E-02 1.25859544217E-02 1.32312501038E-02
+ 1.39096308031E-02 1.46227928245E-02 1.53725194447E-02 1.61606853707E-02
+ 1.69892614279E-02 1.78603194879E-02 1.87760376497E-02 1.97387056856E-02
+ 2.07507307671E-02 2.18146434841E-02 2.29331041726E-02 2.41089095669E-02
+ 2.53449997928E-02 2.66444657198E-02 2.80105566896E-02 2.94466886412E-02
+ 3.09564526525E-02 3.25436239199E-02 3.42121711983E-02 3.59662667250E-02
+ 3.78102966526E-02 3.97488720163E-02 4.17868402642E-02 4.39292973787E-02
+ 4.61816006183E-02 4.85493819144E-02 5.10385619535E-02 5.36553649824E-02
+ 5.64063343715E-02 5.92983489772E-02 6.23386403426E-02 6.55348107795E-02
+ 6.88948523790E-02 7.24271669951E-02 7.61405872544E-02 8.00443986416E-02
+ 8.41483627188E-02 8.84627415336E-02 9.29983232805E-02 9.77664492762E-02
+ 1.02779042319E-01 1.08048636504E-01 1.13588408559E-01 1.19412210801E-01
+ 1.25534605770E-01 1.31970902641E-01 1.38737195509E-01 1.45850403631E-01
+ 1.53328313732E-01 1.61189624482E-01 1.69453993254E-01 1.78142085274E-01
+ 1.87275625296E-01 1.96877451930E-01 2.06971574742E-01 2.17583234298E-01
+ 2.28738965273E-01 2.40466662806E-01 2.52795652250E-01 2.65756762500E-01
+ 2.79382403083E-01 2.93706645197E-01 3.08765306910E-01 3.24596042718E-01
+ 3.41238437707E-01 3.58734106534E-01 3.77126797484E-01 3.96462501863E-01
+ 4.16789569006E-01 4.38158827167E-01 4.60623710622E-01 4.84240393283E-01
+ 5.09067929156E-01 5.35168400014E-01 5.62607070628E-01 5.91452551968E-01
+ 6.21776972762E-01 6.53656159857E-01 6.87169827826E-01 7.22401778295E-01
+ 7.59440109492E-01 7.98377436538E-01 8.39311123031E-01 8.82343524509E-01
+ 9.27582244391E-01 9.75140403040E-01 1.02513692062E+00 1.07769681448E+00
+ 1.13295151172E+00 1.19103917787E+00 1.25210506234E+00 1.31630186167E+00
+ 1.38379010128E+00 1.45473853692E+00 1.52932457665E+00 1.60773472441E+00
+ 1.69016504641E+00 1.77682166140E+00 1.86792125604E+00 1.96369162679E+00
+ 2.06437224944E+00 2.17021487799E+00 2.28148417416E+00 2.39845836913E+00
+ 2.52142995933E+00 2.65070643778E+00 2.78661106302E+00 2.92948366739E+00
+ 3.07968150683E+00
+ </PP_RAB>
+</PP_MESH>
+
+
+<PP_LOCAL>
+ -3.67588380000E+01 -3.67588370000E+01 -3.67588360000E+01 -3.67588350000E+01
+ -3.67588340000E+01 -3.67588330000E+01 -3.67588330000E+01 -3.67588320000E+01
+ -3.67588310000E+01 -3.67588290000E+01 -3.67588280000E+01 -3.67588270000E+01
+ -3.67588260000E+01 -3.67588240000E+01 -3.67588220000E+01 -3.67588200000E+01
+ -3.67588170000E+01 -3.67588150000E+01 -3.67588130000E+01 -3.67588100000E+01
+ -3.67588060000E+01 -3.67588030000E+01 -3.67587980000E+01 -3.67587940000E+01
+ -3.67587890000E+01 -3.67587830000E+01 -3.67587770000E+01 -3.67587700000E+01
+ -3.67587630000E+01 -3.67587550000E+01 -3.67587460000E+01 -3.67587360000E+01
+ -3.67587240000E+01 -3.67587120000E+01 -3.67586980000E+01 -3.67586830000E+01
+ -3.67586670000E+01 -3.67586480000E+01 -3.67586280000E+01 -3.67586060000E+01
+ -3.67585810000E+01 -3.67585540000E+01 -3.67585230000E+01 -3.67584900000E+01
+ -3.67584530000E+01 -3.67584120000E+01 -3.67583670000E+01 -3.67583170000E+01
+ -3.67582620000E+01 -3.67582010000E+01 -3.67581340000E+01 -3.67580600000E+01
+ -3.67579770000E+01 -3.67578870000E+01 -3.67577860000E+01 -3.67576750000E+01
+ -3.67575530000E+01 -3.67574180000E+01 -3.67572680000E+01 -3.67571030000E+01
+ -3.67569200000E+01 -3.67567190000E+01 -3.67564960000E+01 -3.67562500000E+01
+ -3.67559780000E+01 -3.67556780000E+01 -3.67553470000E+01 -3.67549810000E+01
+ -3.67545760000E+01 -3.67541300000E+01 -3.67536370000E+01 -3.67530930000E+01
+ -3.67524920000E+01 -3.67518290000E+01 -3.67510970000E+01 -3.67502900000E+01
+ -3.67493990000E+01 -3.67484160000E+01 -3.67473320000E+01 -3.67461370000E+01
+ -3.67448190000E+01 -3.67433670000E+01 -3.67417670000E+01 -3.67400050000E+01
+ -3.67380640000E+01 -3.67359270000E+01 -3.67335770000E+01 -3.67309910000E+01
+ -3.67281490000E+01 -3.67250250000E+01 -3.67215940000E+01 -3.67178290000E+01
+ -3.67136980000E+01 -3.67091710000E+01 -3.67042100000E+01 -3.66987810000E+01
+ -3.66928430000E+01 -3.66863540000E+01 -3.66792690000E+01 -3.66715420000E+01
+ -3.66631220000E+01 -3.66539570000E+01 -3.66439930000E+01 -3.66331720000E+01
+ -3.66214350000E+01 -3.66087200000E+01 -3.65949630000E+01 -3.65800980000E+01
+ -3.65640580000E+01 -3.65467740000E+01 -3.65281740000E+01 -3.65081870000E+01
+ -3.64867400000E+01 -3.64637600000E+01 -3.64391740000E+01 -3.64129070000E+01
+ -3.63848880000E+01 -3.63550440000E+01 -3.63233060000E+01 -3.62896070000E+01
+ -3.62538820000E+01 -3.62160720000E+01 -3.61761210000E+01 -3.61339810000E+01
+ -3.60896110000E+01 -3.60429780000E+01 -3.59940600000E+01 -3.59428440000E+01
+ -3.58893310000E+01 -3.58335360000E+01 -3.57754880000E+01 -3.57152330000E+01
+ -3.56528340000E+01 -3.55883720000E+01 -3.55219460000E+01 -3.54536750000E+01
+ -3.53836960000E+01 -3.53121640000E+01 -3.52392510000E+01 -3.51651460000E+01
+ -3.50900520000E+01 -3.50141800000E+01 -3.49377530000E+01 -3.48609970000E+01
+ -3.47841390000E+01 -3.47074000000E+01 -3.46309940000E+01 -3.45551220000E+01
+ -3.44799630000E+01 -3.44056740000E+01 -3.43323790000E+01 -3.42601690000E+01
+ -3.41890970000E+01 -3.41191690000E+01 -3.40503430000E+01 -3.39825270000E+01
+ -3.39155730000E+01 -3.38492750000E+01 -3.37833690000E+01 -3.37175270000E+01
+ -3.36513590000E+01 -3.35844080000E+01 -3.35161520000E+01 -3.34459930000E+01
+ -3.33732640000E+01 -3.32972140000E+01 -3.32170080000E+01 -3.31317140000E+01
+ -3.30402960000E+01 -3.29415940000E+01 -3.28343100000E+01 -3.27169820000E+01
+ -3.25879640000E+01 -3.24453860000E+01 -3.22871270000E+01 -3.21107680000E+01
+ -3.19135570000E+01 -3.16923570000E+01 -3.14436120000E+01 -3.11633070000E+01
+ -3.08469510000E+01 -3.04895760000E+01 -3.00857810000E+01 -2.96298530000E+01
+ -2.91160310000E+01 -2.85390720000E+01 -2.78948570000E+01 -2.71794360000E+01
+ -2.63865050000E+01 -2.55079930000E+01 -2.45381120000E+01 -2.34757280000E+01
+ -2.23248600000E+01 -2.10951850000E+01 -1.98026800000E+01 -1.84700900000E+01
+ -1.71269260000E+01 -1.58087610000E+01 -1.45555690000E+01 -1.34089160000E+01
+ -1.24077730000E+01 -1.15827430000E+01 -1.09484550000E+01 -1.04942540000E+01
+ -1.01747900000E+01 -9.90643530000E+00 -9.58479250000E+00 -9.15548380000E+00
+ -8.70892150000E+00 -8.28418210000E+00 -7.88015830000E+00 -7.49583850000E+00
+ -7.13026220000E+00 -6.78251520000E+00 -6.45172800000E+00 -6.13707340000E+00
+ -5.83776480000E+00 -5.55305370000E+00 -5.28222810000E+00 -5.02461080000E+00
+ -4.77955760000E+00 -4.54645580000E+00 -4.32472260000E+00 -4.11380340000E+00
+ -3.91317080000E+00 -3.72232320000E+00 -3.54078340000E+00 -3.36809730000E+00
+ -3.20383330000E+00 -3.04758050000E+00 -2.89894820000E+00 -2.75756490000E+00
+ -2.62307680000E+00 -2.49514790000E+00 -2.37345810000E+00 -2.25770320000E+00
+ -2.14759370000E+00 -2.04285430000E+00 -1.94322310000E+00 -1.84845100000E+00
+ -1.75830100000E+00 -1.67254760000E+00 -1.59097650000E+00 -1.51338370000E+00
+ -1.43957510000E+00 -1.36936620000E+00 -1.30258140000E+00 -1.23905380000E+00
+ -1.17862440000E+00 -1.12114220000E+00 -1.06646350000E+00 -1.01445140000E+00
+ -9.64976040000E-01 -9.17913610000E-01 -8.73146430000E-01 -8.30562580000E-01
+ -7.90055560000E-01 -7.51524100000E-01 -7.14871840000E-01 -6.80007120000E-01
+ -6.46842790000E-01 -6.15295890000E-01 -5.85287560000E-01 -5.56742750000E-01
+ -5.29590080000E-01 -5.03761670000E-01 -4.79192920000E-01 -4.55822410000E-01
+ -4.33591690000E-01 -4.12445170000E-01 -3.92329980000E-01 -3.73195820000E-01
+ -3.54994850000E-01 -3.37681550000E-01 -3.21212620000E-01 -3.05546900000E-01
+ -2.90645200000E-01 -2.76470270000E-01 -2.62986650000E-01 -2.50160640000E-01
+ -2.37960160000E-01 -2.26354710000E-01 -2.15315260000E-01 -2.04814210000E-01
+ -1.94825300000E-01
+</PP_LOCAL>
+
+
+<PP_NONLOCAL>
+ <PP_BETA>
+ 1 0 Beta L
+ 249
+ 1.10358162536E-03 1.16016347574E-03 1.21964639409E-03 1.28217900311E-03
+ 1.34791764930E-03 1.41702685860E-03 1.48967947215E-03 1.56605697509E-03
+ 1.64635043345E-03 1.73076052636E-03 1.81949850944E-03 1.91278633478E-03
+ 2.01085700561E-03 2.11395572002E-03 2.22234065999E-03 2.33628246766E-03
+ 2.45606612693E-03 2.58199130945E-03 2.71437302153E-03 2.85354190182E-03
+ 2.99984605971E-03 3.15365142096E-03 3.31534242066E-03 3.48532382405E-03
+ 3.66402019990E-03 3.85187864599E-03 4.04936861741E-03 4.25698389078E-03
+ 4.47524445882E-03 4.70469512332E-03 4.94591001721E-03 5.19949217588E-03
+ 5.46607548686E-03 5.74632764718E-03 6.04094776690E-03 6.35067376897E-03
+ 6.67628006678E-03 7.01857987576E-03 7.37843059506E-03 7.75673077290E-03
+ 8.15442684876E-03 8.57251325384E-03 9.01203486764E-03 9.47409222559E-03
+ 9.95983934941E-03 1.04704912307E-02 1.10073246699E-02 1.15716822501E-02
+ 1.21649750850E-02 1.27886866675E-02 1.34443765338E-02 1.41336844786E-02
+ 1.48583330420E-02 1.56201366944E-02 1.64209981262E-02 1.72629196281E-02
+ 1.81480092448E-02 1.90784771121E-02 2.00566514748E-02 2.10849780069E-02
+ 2.21660263243E-02 2.33025028126E-02 2.44972476926E-02 2.57532489491E-02
+ 2.70736439670E-02 2.84617375697E-02 2.99210041720E-02 3.14550851903E-02
+ 3.30678192039E-02 3.47632428569E-02 3.65455908567E-02 3.84193213499E-02
+ 4.03891197254E-02 4.24599132460E-02 4.46368741096E-02 4.69254554497E-02
+ 4.93313706407E-02 5.18606396458E-02 5.45195878320E-02 5.73148593995E-02
+ 6.02534452447E-02 6.33427012335E-02 6.65903428040E-02 7.00044925089E-02
+ 7.35936873945E-02 7.73668982229E-02 8.13335725722E-02 8.55036146021E-02
+ 8.98874565947E-02 9.44960598316E-02 9.93409408804E-02 1.04434231685E-01
+ 1.09788643179E-01 1.15417586110E-01 1.21335112202E-01 1.27556040097E-01
+ 1.34095904980E-01 1.40971063777E-01 1.48198706021E-01 1.55796902616E-01
+ 1.63784647987E-01 1.72181911384E-01 1.81009686354E-01 1.90290037162E-01
+ 2.00046163620E-01 2.10302474110E-01 2.21084585267E-01 2.32419451359E-01
+ 2.44335419265E-01 2.56862246791E-01 2.70031249266E-01 2.83875339017E-01
+ 2.98429125232E-01 3.13728979275E-01 3.29813127364E-01 3.46721697362E-01
+ 3.64497035956E-01 3.83183445492E-01 4.02827692777E-01 4.23478769046E-01
+ 4.45188257948E-01 4.68010397466E-01 4.92002110624E-01 5.17223265041E-01
+ 5.43736882540E-01 5.71609021748E-01 6.00909243568E-01 6.31710616591E-01
+ 6.64089837701E-01 6.98127680260E-01 7.33908835644E-01 7.71522444278E-01
+ 8.11062053238E-01 8.52625970791E-01 8.96317509821E-01 9.42245185740E-01
+ 9.90522922792E-01 1.04127031327E+00 1.09461297084E+00 1.15068288914E+00
+ 1.20961846799E+00 1.27156487728E+00 1.33667443376E+00 1.40510710807E+00
+ 1.47703015415E+00 1.55261919249E+00 1.63205787503E+00 1.71553861746E+00
+ 1.80326245593E+00 1.89543964655E+00 1.99228897445E+00 2.09403935036E+00
+ 2.20092835217E+00 2.31320279873E+00 2.43111887488E+00 2.55494025075E+00
+ 2.68493920591E+00 2.82139427456E+00 2.96458972200E+00 3.11481250156E+00
+ 3.27235088945E+00 3.43749014414E+00 3.61050896987E+00 3.79167215187E+00
+ 3.98122544089E+00 4.17938372221E+00 4.38632119926E+00 4.60215421757E+00
+ 4.82692568077E+00 5.06057716643E+00 5.30292380423E+00 5.55361574692E+00
+ 5.81209591237E+00 6.07754525255E+00 6.34881940060E+00 6.62437022076E+00
+ 6.90215712228E+00 7.17953816729E+00 7.45315321964E+00 7.71878544435E+00
+ 7.97121934823E+00 8.20408655843E+00 8.40972338662E+00 8.57904651292E+00
+ 8.70147550840E+00 8.76493516829E+00 8.75598698172E+00 8.66014089287E+00
+ 8.46243081667E+00 8.14832562617E+00 7.70505724398E+00 7.12342981311E+00
+ 6.40011023444E+00 5.54033159777E+00 4.56075030291E+00 3.49204216119E+00
+ 2.38051693943E+00 1.28782476481E+00 2.87672591096E-01 -5.41417179081E-01
+ -1.12776869466E+00 -1.42204642662E+00 -1.41449982940E+00 -1.14983273514E+00
+ -7.33204895726E-01 -3.17504350900E-01 -5.65955904724E-02 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+ </PP_BETA>
+ <PP_DIJ>
+ 1 Number of nonzero Dij
+ 1 1 4.50662283680E-01
+ </PP_DIJ>
+</PP_NONLOCAL>
+
+
+<PP_PSWFC>
+2S 0 2.00 Wavefunction
+ 6.02267680000E-05 6.33146610000E-05 6.65608730000E-05 6.99735220000E-05
+ 7.35611410000E-05 7.73327010000E-05 8.12976340000E-05 8.54658530000E-05
+ 8.98477810000E-05 9.44543750000E-05 9.92971540000E-05 1.04388230000E-04
+ 1.09740330000E-04 1.15366830000E-04 1.21281820000E-04 1.27500070000E-04
+ 1.34037140000E-04 1.40909370000E-04 1.48133950000E-04 1.55728940000E-04
+ 1.63713330000E-04 1.72107090000E-04 1.80931210000E-04 1.90207750000E-04
+ 1.99959910000E-04 2.10212080000E-04 2.20989880000E-04 2.32320270000E-04
+ 2.44231590000E-04 2.56753610000E-04 2.69917650000E-04 2.83756620000E-04
+ 2.98305130000E-04 3.13599570000E-04 3.29678160000E-04 3.46581120000E-04
+ 3.64350710000E-04 3.83031370000E-04 4.02669810000E-04 4.23315130000E-04
+ 4.45018960000E-04 4.67835570000E-04 4.91822010000E-04 5.17038260000E-04
+ 5.43547380000E-04 5.71415650000E-04 6.00712750000E-04 6.31511950000E-04
+ 6.63890260000E-04 6.97928640000E-04 7.33712200000E-04 7.71330430000E-04
+ 8.10877380000E-04 8.52451940000E-04 8.96158080000E-04 9.42105080000E-04
+ 9.90407830000E-04 1.04118710000E-03 1.09456990000E-03 1.15068970000E-03
+ 1.20968680000E-03 1.27170870000E-03 1.33691060000E-03 1.40545550000E-03
+ 1.47751470000E-03 1.55326840000E-03 1.63290620000E-03 1.71662700000E-03
+ 1.80464030000E-03 1.89716610000E-03 1.99443580000E-03 2.09669260000E-03
+ 2.20419220000E-03 2.31720350000E-03 2.43600890000E-03 2.56090560000E-03
+ 2.69220580000E-03 2.83023790000E-03 2.97534710000E-03 3.12789600000E-03
+ 3.28826630000E-03 3.45685890000E-03 3.63409540000E-03 3.82041890000E-03
+ 4.01629530000E-03 4.22221440000E-03 4.43869110000E-03 4.66626660000E-03
+ 4.90551000000E-03 5.15701950000E-03 5.42142390000E-03 5.69938440000E-03
+ 5.99159590000E-03 6.29878900000E-03 6.62173190000E-03 6.96123190000E-03
+ 7.31813790000E-03 7.69334220000E-03 8.08778290000E-03 8.50244620000E-03
+ 8.93836870000E-03 9.39664020000E-03 9.87840640000E-03 1.03848720000E-02
+ 1.09173020000E-02 1.14770290000E-02 1.20654510000E-02 1.26840390000E-02
+ 1.33343400000E-02 1.40179780000E-02 1.47366620000E-02 1.54921890000E-02
+ 1.62864470000E-02 1.71214200000E-02 1.79991950000E-02 1.89219640000E-02
+ 1.98920340000E-02 2.09118270000E-02 2.19838920000E-02 2.31109050000E-02
+ 2.42956800000E-02 2.55411770000E-02 2.68505040000E-02 2.82269300000E-02
+ 2.96738900000E-02 3.11949940000E-02 3.27940370000E-02 3.44750070000E-02
+ 3.62420940000E-02 3.80997030000E-02 4.00524630000E-02 4.21052380000E-02
+ 4.42631370000E-02 4.65315320000E-02 4.89160640000E-02 5.14226610000E-02
+ 5.40575500000E-02 5.68272720000E-02 5.97386990000E-02 6.27990470000E-02
+ 6.60158940000E-02 6.93971990000E-02 7.29513170000E-02 7.66870190000E-02
+ 8.06135100000E-02 8.47404550000E-02 8.90779890000E-02 9.36367480000E-02
+ 9.84278860000E-02 1.03463100000E-01 1.08754640000E-01 1.14315370000E-01
+ 1.20158730000E-01 1.26298820000E-01 1.32750400000E-01 1.39528880000E-01
+ 1.46650410000E-01 1.54131840000E-01 1.61990790000E-01 1.70245620000E-01
+ 1.78915480000E-01 1.88020330000E-01 1.97580920000E-01 2.07618810000E-01
+ 2.18156380000E-01 2.29216800000E-01 2.40824030000E-01 2.53002780000E-01
+ 2.65778490000E-01 2.79177210000E-01 2.93225590000E-01 3.07950710000E-01
+ 3.23379970000E-01 3.39540870000E-01 3.56460790000E-01 3.74166650000E-01
+ 3.92684510000E-01 4.12039050000E-01 4.32252910000E-01 4.53345810000E-01
+ 4.75333480000E-01 4.98226230000E-01 5.22027160000E-01 5.46729890000E-01
+ 5.72315600000E-01 5.98749330000E-01 6.25975370000E-01 6.53911440000E-01
+ 6.82441550000E-01 7.11407500000E-01 7.40598790000E-01 7.69741280000E-01
+ 7.98484980000E-01 8.26392070000E-01 8.52926910000E-01 8.77450660000E-01
+ 8.99224470000E-01 9.17425960000E-01 9.31184180000E-01 9.39637380000E-01
+ 9.42014700000E-01 9.37736480000E-01 9.26518360000E-01 9.08453110000E-01
+ 8.84034430000E-01 8.54087880000E-01 8.19594030000E-01 7.81449590000E-01
+ 7.40339420000E-01 6.96867730000E-01 6.51645620000E-01 6.05283930000E-01
+ 5.58381280000E-01 5.11512830000E-01 4.65219880000E-01 4.20000720000E-01
+ 3.76302710000E-01 3.34515900000E-01 2.94968270000E-01 2.57922750000E-01
+ 2.23575940000E-01 1.92058740000E-01 1.63438680000E-01 1.37723930000E-01
+ 1.14868680000E-01 9.47797450000E-02 7.73240020000E-02 6.23362270000E-02
+ 4.96270370000E-02 3.89904890000E-02 3.02110590000E-02 2.30698800000E-02
+ 1.73502870000E-02 1.28428640000E-02 9.35009200000E-03 6.69044460000E-03
+ 4.70152060000E-03 3.24187010000E-03 2.19143640000E-03 1.45082670000E-03
+ 9.39744170000E-04 5.94896720000E-04 3.67634930000E-04 2.21520610000E-04
+ 1.29982330000E-04 7.41733420000E-05 4.11048460000E-05 2.20889370000E-05
+ 1.14923410000E-05 5.77950300000E-06 2.80437540000E-06 1.31033560000E-06
+ 5.88429340000E-07 2.53372310000E-07 1.04324730000E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+2P 1 4.00 Wavefunction
+ 8.63639410000E-09 9.54469160000E-09 1.05485160000E-08 1.16579130000E-08
+ 1.28839860000E-08 1.42390070000E-08 1.57365360000E-08 1.73915620000E-08
+ 1.92206480000E-08 2.12421020000E-08 2.34761530000E-08 2.59451620000E-08
+ 2.86738380000E-08 3.16894920000E-08 3.50223050000E-08 3.87056330000E-08
+ 4.27763390000E-08 4.72751660000E-08 5.22471390000E-08 5.77420180000E-08
+ 6.38147990000E-08 7.05262600000E-08 7.79435710000E-08 8.61409680000E-08
+ 9.52004920000E-08 1.05212810000E-07 1.16278140000E-07 1.28507220000E-07
+ 1.42022440000E-07 1.56959070000E-07 1.73466600000E-07 1.91710240000E-07
+ 2.11872580000E-07 2.34155410000E-07 2.58781750000E-07 2.85998060000E-07
+ 3.16076730000E-07 3.49318810000E-07 3.86056980000E-07 4.26658940000E-07
+ 4.71531050000E-07 5.21122390000E-07 5.75929300000E-07 6.36500290000E-07
+ 7.03441590000E-07 7.77423170000E-07 8.59185450000E-07 9.49546730000E-07
+ 1.04941140000E-06 1.15977890000E-06 1.28175380000E-06 1.41655700000E-06
+ 1.56553750000E-06 1.73018640000E-06 1.91215150000E-06 2.11325410000E-06
+ 2.33550670000E-06 2.58113390000E-06 2.85259370000E-06 3.15260320000E-06
+ 3.48416490000E-06 3.85059720000E-06 4.25556730000E-06 4.70312830000E-06
+ 5.19775950000E-06 5.74441140000E-06 6.34855480000E-06 7.01623610000E-06
+ 7.75413770000E-06 8.56964450000E-06 9.47091830000E-06 1.04669790000E-05
+ 1.15677950000E-05 1.27843850000E-05 1.41289220000E-05 1.56148640000E-05
+ 1.72570820000E-05 1.90720100000E-05 2.10778130000E-05 2.32945640000E-05
+ 2.57444480000E-05 2.84519830000E-05 3.14442650000E-05 3.47512380000E-05
+ 3.84059990000E-05 4.24451200000E-05 4.69090240000E-05 5.18423810000E-05
+ 5.72945600000E-05 6.33201210000E-05 6.99793590000E-05 7.73389130000E-05
+ 8.54724240000E-05 9.44612780000E-05 1.04395420000E-04 1.15374250000E-04
+ 1.27507610000E-04 1.40916900000E-04 1.55736290000E-04 1.72114030000E-04
+ 1.90213970000E-04 2.10217170000E-04 2.32323730000E-04 2.56754790000E-04
+ 2.83754690000E-04 3.13593480000E-04 3.46569570000E-04 3.83012710000E-04
+ 4.23287310000E-04 4.67796040000E-04 5.16983840000E-04 5.71342390000E-04
+ 6.31414970000E-04 6.97801900000E-04 7.71166470000E-04 8.52241570000E-04
+ 9.41836950000E-04 1.04084730000E-03 1.15026100000E-03 1.27117000000E-03
+ 1.40478080000E-03 1.55242600000E-03 1.71557770000E-03 1.89586210000E-03
+ 2.09507520000E-03 2.31520060000E-03 2.55842910000E-03 2.82717990000E-03
+ 3.12412430000E-03 3.45221170000E-03 3.81469820000E-03 4.21517820000E-03
+ 4.65761880000E-03 5.14639800000E-03 5.68634650000E-03 6.28279380000E-03
+ 6.94161810000E-03 7.66930180000E-03 8.47299220000E-03 9.36056680000E-03
+ 1.03407060000E-02 1.14229740000E-02 1.26178980000E-02 1.39370710000E-02
+ 1.53932460000E-02 1.70004490000E-02 1.87740950000E-02 2.07311200000E-02
+ 2.28901150000E-02 2.52714710000E-02 2.78975420000E-02 3.07928030000E-02
+ 3.39840280000E-02 3.75004710000E-02 4.13740520000E-02 4.56395530000E-02
+ 5.03348080000E-02 5.55008950000E-02 6.11823180000E-02 6.74271800000E-02
+ 7.42873280000E-02 8.18184680000E-02 9.00802370000E-02 9.91362140000E-02
+ 1.09053850000E-01 1.19904280000E-01 1.31762050000E-01 1.44704620000E-01
+ 1.58811690000E-01 1.74164320000E-01 1.90843640000E-01 2.08929330000E-01
+ 2.28497580000E-01 2.49618610000E-01 2.72353620000E-01 2.96751110000E-01
+ 3.22842510000E-01 3.50637110000E-01 3.80116300000E-01 4.11227060000E-01
+ 4.43874970000E-01 4.77916860000E-01 5.13153460000E-01 5.49322580000E-01
+ 5.86093500000E-01 6.23063390000E-01 6.59756990000E-01 6.95630580000E-01
+ 7.30081680000E-01 7.62465520000E-01 7.92119210000E-01 8.18393570000E-01
+ 8.40691950000E-01 8.58513680000E-01 8.71498380000E-01 8.79465860000E-01
+ 8.82444990000E-01 8.80684650000E-01 8.74640340000E-01 8.64932170000E-01
+ 8.52273210000E-01 8.37372140000E-01 8.20820870000E-01 8.02986960000E-01
+ 7.83943800000E-01 7.63484770000E-01 7.41266350000E-01 7.17068210000E-01
+ 6.90969470000E-01 6.63195010000E-01 6.33987800000E-01 6.03598480000E-01
+ 5.72281800000E-01 5.40293190000E-01 5.07885530000E-01 4.75306080000E-01
+ 4.42793550000E-01 4.10575420000E-01 3.78865490000E-01 3.47861680000E-01
+ 3.17744100000E-01 2.88673650000E-01 2.60790910000E-01 2.34215690000E-01
+ 2.09047120000E-01 1.85364280000E-01 1.63227340000E-01 1.42679010000E-01
+ 1.23745990000E-01 1.06439940000E-01 9.07576110000E-02 7.66797850000E-02
+ 6.41694000000E-02 5.31698180000E-02 4.36046380000E-02 3.53799010000E-02
+ 2.83883510000E-02 2.25145040000E-02 1.76393190000E-02 1.36439710000E-02
+ 1.04128030000E-02 7.83568760000E-03 5.80991040000E-03 4.24159850000E-03
+ 3.04667380000E-03 2.15134220000E-03 1.49214870000E-03 1.01565640000E-03
+ 6.77795670000E-04 4.43058370000E-04 2.83349310000E-04 1.77071920000E-04
+ 1.08011120000E-04 6.42335570000E-05 3.71921460000E-05 2.09370480000E-05
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+</PP_PSWFC>
+
+
+<PP_RHOATOM>
+ 7.25452746580E-09 8.01749295949E-09 8.86070007413E-09 9.79258810580E-09
+ 1.08224835944E-08 1.19606940989E-08 1.32186115786E-08 1.46088252679E-08
+ 1.61452489790E-08 1.78432597182E-08 1.97198517895E-08 2.17938078177E-08
+ 2.40858833458E-08 2.66190149454E-08 2.94185646313E-08 3.25125416925E-08
+ 3.59319171180E-08 3.97109100474E-08 4.38873452043E-08 4.85030188436E-08
+ 5.36041251287E-08 5.92417207523E-08 6.54722298049E-08 7.23580060012E-08
+ 7.99679674670E-08 8.83782814348E-08 9.76731082073E-08 1.07945481762E-07
+ 1.19298219789E-07 1.31844931041E-07 1.45711195926E-07 1.61035785799E-07
+ 1.77972080729E-07 1.96689599923E-07 2.17375646234E-07 2.40237272660E-07
+ 2.65503279373E-07 2.93426548903E-07 3.24286547931E-07 3.58392126725E-07
+ 3.96084638885E-07 4.37741327389E-07 4.83779105819E-07 5.34658745138E-07
+ 5.90889487930E-07 6.53034107677E-07 7.21714568824E-07 7.97618292542E-07
+ 8.81504959703E-07 9.74214153413E-07 1.07667375643E-06 1.18990929102E-06
+ 1.31505405442E-06 1.45336059420E-06 1.60621323399E-06 1.77514182690E-06
+ 1.96183715782E-06 2.16816780342E-06 2.39619908114E-06 2.64821332700E-06
+ 2.92673286581E-06 3.23454534371E-06 3.57473234420E-06 3.95069880262E-06
+ 4.36620744425E-06 4.82541743793E-06 5.33292653259E-06 5.89381342453E-06
+ 6.51369373137E-06 7.19877217721E-06 7.95590711382E-06 8.79267794839E-06
+ 9.71746176461E-06 1.07395178828E-05 1.18690772275E-05 1.31174502801E-05
+ 1.44971353666E-05 1.60219481075E-05 1.77071578278E-05 1.95696373205E-05
+ 2.16280416258E-05 2.39029849704E-05 2.64172537198E-05 2.91960317371E-05
+ 3.22671559566E-05 3.56613952320E-05 3.94127591886E-05 4.35588384944E-05
+ 4.81411873866E-05 5.32057379977E-05 5.88032626497E-05 6.49898903078E-05
+ 7.18276649989E-05 7.93851774652E-05 8.77382603258E-05 9.69707440014E-05
+ 1.07175317409E-04 1.18454458703E-04 1.30921479643E-04 1.44701675725E-04
+ 1.59933595452E-04 1.76770459131E-04 1.95381723269E-04 2.15954825002E-04
+ 2.38697032815E-04 2.63837752816E-04 2.91630657534E-04 3.22356485651E-04
+ 3.56325935058E-04 3.93882746957E-04 4.35407502968E-04 4.81321568530E-04
+ 5.32091451225E-04 5.88233755599E-04 6.50320832194E-04 7.18986706009E-04
+ 7.94934260676E-04 8.78942469364E-04 9.71875416408E-04 1.07469135251E-03
+ 1.18845376971E-03 1.31434355103E-03 1.45367195749E-03 1.60789632686E-03
+ 1.77863685584E-03 1.96769591659E-03 2.17707996335E-03 2.40902400005E-03
+ 2.66601936558E-03 2.95084579986E-03 3.26660727416E-03 3.61677304310E-03
+ 4.00522424571E-03 4.43630859003E-03 4.91490078058E-03 5.44647412038E-03
+ 6.03718167139E-03 6.69395044632E-03 7.42459070371E-03 8.23792145149E-03
+ 9.14391732355E-03 1.01538797981E-02 1.12806347038E-02 1.25387655584E-02
+ 1.39448840787E-02 1.55179504920E-02 1.72796428208E-02 1.92547984978E-02
+ 2.14719269437E-02 2.39638151092E-02 2.67682348416E-02 2.99287945029E-02
+ 3.34958974268E-02 3.75279251677E-02 4.20925861159E-02 4.72684919003E-02
+ 5.31470570919E-02 5.98346455868E-02 6.74551362331E-02 7.61528406694E-02
+ 8.60959263728E-02 9.74803358101E-02 1.10534236288E-01 1.25523096237E-01
+ 1.42755381069E-01 1.62588828254E-01 1.85437378132E-01 2.11778521573E-01
+ 2.42161023016E-01 2.77212670611E-01 3.17647672975E-01 3.64273139316E-01
+ 4.17993786258E-01 4.79813806634E-01 5.50834566923E-01 6.32246249089E-01
+ 7.25311393840E-01 8.31337889086E-01 9.51638762510E-01 1.08747562639E+00
+ 1.23998379039E+00 1.41007685281E+00 1.59833060560E+00 1.80484833283E+00
+ 2.02911265498E+00 2.26983347218E+00 2.52480747111E+00 2.79080795805E+00
+ 3.06352997622E+00 3.33761593887E+00 3.60678450690E+00 3.86407541794E+00
+ 4.10220834575E+00 4.31403066171E+00 4.49300633297E+00 4.63368011709E+00
+ 4.73204593640E+00 4.78576259515E+00 4.79419085159E+00 4.75826744659E+00
+ 4.68026188797E+00 4.56346781524E+00 4.41186014534E+00 4.22972633786E+00
+ 4.02130527308E+00 3.79056818961E+00 3.54137195459E+00 3.27807419459E+00
+ 3.00596014750E+00 2.73055975139E+00 2.45704615033E+00 2.19006177207E+00
+ 1.93360514215E+00 1.69095767515E+00 1.46464991983E+00 1.25646468834E+00
+ 1.06747197079E+00 8.98090476738E-01 7.48168798665E-01 6.17079283585E-01
+ 5.03817654233E-01 4.07103024038E-01 3.25471999195E-01 2.57363719558E-01
+ 2.01192420811E-01 1.55406065324E-01 1.18530660664E-01 8.92008099715E-02
+ 6.61779657671E-02 4.83583597737E-02 3.47731919895E-02 2.45835964370E-02
+ 1.70729125034E-02 1.16379964961E-02 7.78030626126E-03 5.09647367697E-03
+ 3.26780248190E-03 2.04863100495E-03 1.25418708613E-03 7.48841574822E-04
+ 4.35472103477E-04 2.46299804874E-04 1.35290546308E-04 7.20627741021E-05
+ 3.71626757867E-05 1.85240964153E-05 8.90941018838E-06 4.12720753372E-06
+ 1.83789202889E-06 7.85269682218E-07 3.21163054953E-07 1.25421293369E-07
+ 4.66663006728E-08 1.65039277745E-08 5.53304466364E-09 1.75343991582E-09
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+</PP_RHOATOM>
diff --git a/clusters/user/QE/CP/generate-cp-test b/clusters/user/QE/CP/generate-cp-test
new file mode 100755
index 0000000..009ef01
--- /dev/null
+++ b/clusters/user/QE/CP/generate-cp-test
@@ -0,0 +1,543 @@
+#!/bin/sh
+
+#edit here
+PSEUDO_DIR=$BENCH_DIR/CP
+# don't change this
+STEP1=50
+STEP2=30
+
+for ncpu in `cat ../../cores.txt`; do
+#edit next line
+TMP_DIR=$SCRATCH_DIR/cp$ncpu
+mkdir $TMP_DIR
+
+mkdir carp$ncpu
+
+cd carp$ncpu
+
+PREFIX1='cp1'$ncpu
+PREFIX2='cp2'$ncpu
+
+cat > h2o-64-1.in << EOF
+ &control
+ title = ' Water 64 molecules ',
+ calculation = 'cp',
+ restart_mode = 'from_scratch', ! 'restart',
+ ndr = 50,
+ ndw = -1,
+ nstep = $STEP1,
+ iprint = 10,
+ isave = 100,
+ tstress = .TRUE.,
+ tprnfor = .TRUE.,
+ dt = 5.0d0,
+ etot_conv_thr = 1.d-8,
+ prefix = '$PREFIX1',
+ pseudo_dir='$PSEUDO_DIR/',
+ outdir='$TMP_DIR/',
+ /
+ &system
+ ibrav = 14,
+ celldm(1) = 18.65,
+ celldm(2) = 1.0,
+ celldm(3) = 2.0,
+ celldm(4) = 0.0,
+ celldm(5) = 0.0,
+ celldm(6) = 0.0,
+ nat = 192,
+ ntyp = 2,
+ nbnd = 256,
+ ecutwfc = 70.0,
+ ecfixed = 68.0,
+ qcutz = 68.0,
+ q2sigma = 8.0,
+ input_dft = 'BLYP',
+ /
+ &electrons
+ conv_thr = 1.0d-8
+ emass = 500
+ electron_dynamics = 'damp'
+ electron_damping = 0.1d0
+ electron_velocities = 'zero'
+ /
+ &ions
+ ion_dynamics = 'none',
+ ion_radius(1) = 0.8d0,
+ ion_radius(2) = 0.5d0,
+! ion_velocities = 'zero',
+ ion_temperature = 'not_controlled'
+ /
+ &cell
+ cell_dynamics = 'none',
+ cell_velocities = 'zero',
+ press = 0.0d0,
+ wmass = 70000.0d0
+ /
+ATOMIC_SPECIES
+ O 16.0d0 O.blyp-mt.UPF
+ H 1.0079d0 H.blyp-vbc.UPF
+ATOMIC_POSITIONS (crystal)
+ O 0.3342 0.3858 0.0851
+ O 0.6681 0.0772 0.0498
+ O 0.4894 0.2752 0.4832
+ O 0.8374 0.0165 0.4442
+ O 0.4164 0.1406 0.2687
+ O 0.9200 0.2746 0.3740
+ O 0.9298 0.6759 0.0273
+ O 0.5197 0.5773 0.1235
+ O 0.8453 0.2308 0.1265
+ O 0.7080 0.4512 0.0551
+ O 0.6297 0.6739 0.2349
+ O 0.6889 0.4428 0.4050
+ O 0.9273 0.8859 0.1374
+ O 0.7260 0.9572 0.2257
+ O 0.9539 0.6297 0.3152
+ O 0.0634 0.4197 0.1333
+ O 0.0088 0.1409 0.2536
+ O 0.8042 0.4375 0.2471
+ O 0.6981 0.1893 0.2917
+ O 0.2908 0.5198 0.2617
+ O 0.1835 0.3971 0.3904
+ O 0.2450 0.2024 0.1737
+ O 0.3062 0.1574 0.3997
+ O 0.4465 0.8389 0.1080
+ O 0.1931 0.5738 0.0024
+ O 0.1879 0.9665 0.0950
+ O 0.0876 0.6667 0.2042
+ O 0.2637 0.7476 0.3940
+ O 0.5203 0.6329 0.3607
+ O 0.3714 0.8763 0.2450
+ O 0.7915 0.8290 0.3527
+ O 0.1436 0.9899 0.4648
+ O 0.3342 0.3858 0.5851
+ O 0.6681 0.0772 0.5498
+ O 0.4894 0.2752 0.9832
+ O 0.8374 0.0165 0.9442
+ O 0.4164 0.1406 0.7687
+ O 0.9200 0.2746 0.8740
+ O 0.9298 0.6759 0.5273
+ O 0.5197 0.5773 0.6235
+ O 0.8453 0.2308 0.6265
+ O 0.7080 0.4512 0.5551
+ O 0.6297 0.6739 0.7349
+ O 0.6889 0.4428 0.9050
+ O 0.9273 0.8859 0.6374
+ O 0.7260 0.9572 0.7257
+ O 0.9539 0.6297 0.8152
+ O 0.0634 0.4197 0.6333
+ O 0.0088 0.1409 0.7536
+ O 0.8042 0.4375 0.7471
+ O 0.6981 0.1893 0.7917
+ O 0.2908 0.5198 0.7617
+ O 0.1835 0.3971 0.8904
+ O 0.2450 0.2024 0.6737
+ O 0.3062 0.1574 0.8997
+ O 0.4465 0.8389 0.6080
+ O 0.1931 0.5738 0.5024
+ O 0.1879 0.9665 0.5950
+ O 0.0876 0.6667 0.7042
+ O 0.2637 0.7476 0.8940
+ O 0.5203 0.6329 0.8607
+ O 0.3714 0.8763 0.7450
+ O 0.7915 0.8290 0.8527
+ O 0.1436 0.9899 0.9648
+ H 0.3742 0.3360 0.0464
+ H 0.3150 0.3226 0.1236
+ H 0.9405 0.1804 0.2258
+ H 0.6062 0.0086 0.0686
+ H 0.7231 0.0354 0.0132
+ H 0.5460 0.2002 0.4942
+ H 0.5502 0.3269 0.4515
+ H 0.8537 0.1049 0.4240
+ H 0.4251 0.0432 0.2605
+ H 0.3722 0.1543 0.3137
+ H 0.7041 0.0486 0.2455
+ H 0.9378 0.2191 0.3310
+ H 0.9083 0.7339 0.0657
+ H 0.5940 0.5403 0.0959
+ H 0.4413 0.5140 0.1152
+ H 0.7975 0.1623 0.0969
+ H 0.9351 0.2490 0.1085
+ H 0.7495 0.3794 0.0882
+ H 0.7769 0.5261 0.0474
+ H 0.7242 0.6488 0.2257
+ H 0.5812 0.6156 0.2016
+ H 0.7610 0.3991 0.3793
+ H 0.7253 0.4549 0.4506
+ H 0.9805 0.8118 0.1579
+ H 0.8774 0.9234 0.1754
+ H 0.8266 0.9432 0.4093
+ H 0.6439 0.9054 0.2329
+ H 0.9099 0.7082 0.3370
+ H 0.1146 0.3475 0.1565
+ H 0.1177 0.4592 0.0968
+ H 0.0984 0.1864 0.2470
+ H 0.8732 0.4903 0.2716
+ H 0.8466 0.4047 0.2052
+ H 0.5983 0.1849 0.2879
+ H 0.7255 0.2866 0.2809
+ H 0.2468 0.6010 0.2474
+ H 0.3655 0.5512 0.2883
+ H 0.2218 0.4478 0.3492
+ H 0.2272 0.3027 0.3868
+ H 0.0089 0.3172 0.3875
+ H 0.3206 0.1756 0.2063
+ H 0.2308 0.1250 0.1400
+ H 0.2420 0.1027 0.4275
+ H 0.3752 0.1963 0.4351
+ H 0.3477 0.8559 0.0950
+ H 0.4738 0.7418 0.1051
+ H 0.0297 0.6626 0.0302
+ H 0.2668 0.5360 0.0300
+ H 0.1691 0.9883 0.0479
+ H 0.0952 0.9378 0.1119
+ H 0.0161 0.6488 0.2384
+ H 0.0940 0.5739 0.1865
+ H 0.2728 0.6995 0.4381
+ H 0.3551 0.7479 0.3759
+ H 0.5812 0.5576 0.3790
+ H 0.5605 0.6617 0.3175
+ H 0.1741 0.5139 0.4642
+ H 0.3026 0.8058 0.2542
+ H 0.4067 0.8573 0.1970
+ H 0.7040 0.7965 0.3683
+ H 0.7716 0.8608 0.3049
+ H 0.0148 0.6043 0.3532
+ H 0.1834 0.9112 0.4331
+ H 0.0492 0.9894 0.4603
+ H 0.3742 0.3360 0.5464
+ H 0.3150 0.3226 0.6236
+ H 0.9405 0.1804 0.7258
+ H 0.6062 0.0086 0.5686
+ H 0.7231 0.0354 0.5132
+ H 0.5460 0.2002 0.9942
+ H 0.5502 0.3269 0.9515
+ H 0.8537 0.1049 0.9240
+ H 0.4251 0.0432 0.7605
+ H 0.3722 0.1543 0.8137
+ H 0.7041 0.0486 0.7455
+ H 0.9378 0.2191 0.8310
+ H 0.9083 0.7339 0.5657
+ H 0.5940 0.5403 0.5959
+ H 0.4413 0.5140 0.6152
+ H 0.7975 0.1623 0.5969
+ H 0.9351 0.2490 0.6085
+ H 0.7495 0.3794 0.5882
+ H 0.7769 0.5261 0.5474
+ H 0.7242 0.6488 0.7257
+ H 0.5812 0.6156 0.7016
+ H 0.7610 0.3991 0.8793
+ H 0.7253 0.4549 0.9506
+ H 0.9805 0.8118 0.6579
+ H 0.8774 0.9234 0.6754
+ H 0.8266 0.9432 0.9093
+ H 0.6439 0.9054 0.7329
+ H 0.9099 0.7082 0.8370
+ H 0.1146 0.3475 0.6565
+ H 0.1177 0.4592 0.5968
+ H 0.0984 0.1864 0.7470
+ H 0.8732 0.4903 0.7716
+ H 0.8466 0.4047 0.7052
+ H 0.5983 0.1849 0.7879
+ H 0.7255 0.2866 0.7809
+ H 0.2468 0.6010 0.7474
+ H 0.3655 0.5512 0.7883
+ H 0.2218 0.4478 0.8492
+ H 0.2272 0.3027 0.8868
+ H 0.0089 0.3172 0.8875
+ H 0.3206 0.1756 0.7063
+ H 0.2308 0.1250 0.6400
+ H 0.2420 0.1027 0.9275
+ H 0.3752 0.1963 0.9351
+ H 0.3477 0.8559 0.5950
+ H 0.4738 0.7418 0.6051
+ H 0.0297 0.6626 0.5302
+ H 0.2668 0.5360 0.5300
+ H 0.1691 0.9883 0.5479
+ H 0.0952 0.9378 0.6119
+ H 0.0161 0.6488 0.7384
+ H 0.0940 0.5739 0.6865
+ H 0.2728 0.6995 0.9381
+ H 0.3551 0.7479 0.8759
+ H 0.5812 0.5576 0.8790
+ H 0.5605 0.6617 0.8175
+ H 0.1741 0.5139 0.9642
+ H 0.3026 0.8058 0.7542
+ H 0.4067 0.8573 0.6970
+ H 0.7040 0.7965 0.8683
+ H 0.7716 0.8608 0.8049
+ H 0.0148 0.6043 0.8532
+ H 0.1834 0.9112 0.9331
+ H 0.0492 0.9894 0.9603
+EOF
+
+cat > h2o-64-2.in << EOF
+ &control
+ title = ' Water 64 molecules ',
+ calculation = 'cp',
+ restart_mode = 'from_scratch', ! 'restart',
+ ndr = 50,
+ ndw = -1,
+ nstep = $STEP2,
+ iprint = 10,
+ isave = 100,
+ tstress = .TRUE.,
+ tprnfor = .TRUE.,
+ dt = 5.0d0,
+ etot_conv_thr = 1.d-8,
+ prefix = '$PREFIX2',
+ pseudo_dir='$PSEUDO_DIR/',
+ outdir='$TMP_DIR/',
+ /
+ &system
+ ibrav = 14,
+ celldm(1) = 18.65,
+ celldm(2) = 1.0,
+ celldm(3) = 2.0,
+ celldm(4) = 0.0,
+ celldm(5) = 0.0,
+ celldm(6) = 0.0,
+ nat = 192,
+ ntyp = 2,
+ nbnd = 256,
+ ecutwfc = 70.0,
+ ecfixed = 68.0,
+ qcutz = 68.0,
+ q2sigma = 8.0,
+ input_dft = 'BLYP',
+ /
+ &electrons
+ emass = 400.d0,
+ emass_cutoff = 2.5d0,
+ orthogonalization = 'ortho',
+ ortho_eps = 5.d-8,
+ ortho_max = 25,
+ electron_dynamics = 'sd',
+ electron_velocities = 'zero',
+ electron_temperature = 'not_controlled',
+ /
+ &ions
+ ion_dynamics = 'none',
+ ion_radius(1) = 0.8d0,
+ ion_radius(2) = 0.5d0,
+! ion_velocities = 'zero',
+ ion_temperature = 'not_controlled'
+ /
+ &cell
+ cell_dynamics = 'none',
+ cell_velocities = 'zero',
+ press = 0.0d0,
+ wmass = 70000.0d0
+ /
+ATOMIC_SPECIES
+ O 16.0d0 O.blyp-mt.UPF
+ H 1.0079d0 H.blyp-vbc.UPF
+ATOMIC_POSITIONS (crystal)
+ O 0.3342 0.3858 0.0851
+ O 0.6681 0.0772 0.0498
+ O 0.4894 0.2752 0.4832
+ O 0.8374 0.0165 0.4442
+ O 0.4164 0.1406 0.2687
+ O 0.9200 0.2746 0.3740
+ O 0.9298 0.6759 0.0273
+ O 0.5197 0.5773 0.1235
+ O 0.8453 0.2308 0.1265
+ O 0.7080 0.4512 0.0551
+ O 0.6297 0.6739 0.2349
+ O 0.6889 0.4428 0.4050
+ O 0.9273 0.8859 0.1374
+ O 0.7260 0.9572 0.2257
+ O 0.9539 0.6297 0.3152
+ O 0.0634 0.4197 0.1333
+ O 0.0088 0.1409 0.2536
+ O 0.8042 0.4375 0.2471
+ O 0.6981 0.1893 0.2917
+ O 0.2908 0.5198 0.2617
+ O 0.1835 0.3971 0.3904
+ O 0.2450 0.2024 0.1737
+ O 0.3062 0.1574 0.3997
+ O 0.4465 0.8389 0.1080
+ O 0.1931 0.5738 0.0024
+ O 0.1879 0.9665 0.0950
+ O 0.0876 0.6667 0.2042
+ O 0.2637 0.7476 0.3940
+ O 0.5203 0.6329 0.3607
+ O 0.3714 0.8763 0.2450
+ O 0.7915 0.8290 0.3527
+ O 0.1436 0.9899 0.4648
+ O 0.3342 0.3858 0.5851
+ O 0.6681 0.0772 0.5498
+ O 0.4894 0.2752 0.9832
+ O 0.8374 0.0165 0.9442
+ O 0.4164 0.1406 0.7687
+ O 0.9200 0.2746 0.8740
+ O 0.9298 0.6759 0.5273
+ O 0.5197 0.5773 0.6235
+ O 0.8453 0.2308 0.6265
+ O 0.7080 0.4512 0.5551
+ O 0.6297 0.6739 0.7349
+ O 0.6889 0.4428 0.9050
+ O 0.9273 0.8859 0.6374
+ O 0.7260 0.9572 0.7257
+ O 0.9539 0.6297 0.8152
+ O 0.0634 0.4197 0.6333
+ O 0.0088 0.1409 0.7536
+ O 0.8042 0.4375 0.7471
+ O 0.6981 0.1893 0.7917
+ O 0.2908 0.5198 0.7617
+ O 0.1835 0.3971 0.8904
+ O 0.2450 0.2024 0.6737
+ O 0.3062 0.1574 0.8997
+ O 0.4465 0.8389 0.6080
+ O 0.1931 0.5738 0.5024
+ O 0.1879 0.9665 0.5950
+ O 0.0876 0.6667 0.7042
+ O 0.2637 0.7476 0.8940
+ O 0.5203 0.6329 0.8607
+ O 0.3714 0.8763 0.7450
+ O 0.7915 0.8290 0.8527
+ O 0.1436 0.9899 0.9648
+ H 0.3742 0.3360 0.0464
+ H 0.3150 0.3226 0.1236
+ H 0.9405 0.1804 0.2258
+ H 0.6062 0.0086 0.0686
+ H 0.7231 0.0354 0.0132
+ H 0.5460 0.2002 0.4942
+ H 0.5502 0.3269 0.4515
+ H 0.8537 0.1049 0.4240
+ H 0.4251 0.0432 0.2605
+ H 0.3722 0.1543 0.3137
+ H 0.7041 0.0486 0.2455
+ H 0.9378 0.2191 0.3310
+ H 0.9083 0.7339 0.0657
+ H 0.5940 0.5403 0.0959
+ H 0.4413 0.5140 0.1152
+ H 0.7975 0.1623 0.0969
+ H 0.9351 0.2490 0.1085
+ H 0.7495 0.3794 0.0882
+ H 0.7769 0.5261 0.0474
+ H 0.7242 0.6488 0.2257
+ H 0.5812 0.6156 0.2016
+ H 0.7610 0.3991 0.3793
+ H 0.7253 0.4549 0.4506
+ H 0.9805 0.8118 0.1579
+ H 0.8774 0.9234 0.1754
+ H 0.8266 0.9432 0.4093
+ H 0.6439 0.9054 0.2329
+ H 0.9099 0.7082 0.3370
+ H 0.1146 0.3475 0.1565
+ H 0.1177 0.4592 0.0968
+ H 0.0984 0.1864 0.2470
+ H 0.8732 0.4903 0.2716
+ H 0.8466 0.4047 0.2052
+ H 0.5983 0.1849 0.2879
+ H 0.7255 0.2866 0.2809
+ H 0.2468 0.6010 0.2474
+ H 0.3655 0.5512 0.2883
+ H 0.2218 0.4478 0.3492
+ H 0.2272 0.3027 0.3868
+ H 0.0089 0.3172 0.3875
+ H 0.3206 0.1756 0.2063
+ H 0.2308 0.1250 0.1400
+ H 0.2420 0.1027 0.4275
+ H 0.3752 0.1963 0.4351
+ H 0.3477 0.8559 0.0950
+ H 0.4738 0.7418 0.1051
+ H 0.0297 0.6626 0.0302
+ H 0.2668 0.5360 0.0300
+ H 0.1691 0.9883 0.0479
+ H 0.0952 0.9378 0.1119
+ H 0.0161 0.6488 0.2384
+ H 0.0940 0.5739 0.1865
+ H 0.2728 0.6995 0.4381
+ H 0.3551 0.7479 0.3759
+ H 0.5812 0.5576 0.3790
+ H 0.5605 0.6617 0.3175
+ H 0.1741 0.5139 0.4642
+ H 0.3026 0.8058 0.2542
+ H 0.4067 0.8573 0.1970
+ H 0.7040 0.7965 0.3683
+ H 0.7716 0.8608 0.3049
+ H 0.0148 0.6043 0.3532
+ H 0.1834 0.9112 0.4331
+ H 0.0492 0.9894 0.4603
+ H 0.3742 0.3360 0.5464
+ H 0.3150 0.3226 0.6236
+ H 0.9405 0.1804 0.7258
+ H 0.6062 0.0086 0.5686
+ H 0.7231 0.0354 0.5132
+ H 0.5460 0.2002 0.9942
+ H 0.5502 0.3269 0.9515
+ H 0.8537 0.1049 0.9240
+ H 0.4251 0.0432 0.7605
+ H 0.3722 0.1543 0.8137
+ H 0.7041 0.0486 0.7455
+ H 0.9378 0.2191 0.8310
+ H 0.9083 0.7339 0.5657
+ H 0.5940 0.5403 0.5959
+ H 0.4413 0.5140 0.6152
+ H 0.7975 0.1623 0.5969
+ H 0.9351 0.2490 0.6085
+ H 0.7495 0.3794 0.5882
+ H 0.7769 0.5261 0.5474
+ H 0.7242 0.6488 0.7257
+ H 0.5812 0.6156 0.7016
+ H 0.7610 0.3991 0.8793
+ H 0.7253 0.4549 0.9506
+ H 0.9805 0.8118 0.6579
+ H 0.8774 0.9234 0.6754
+ H 0.8266 0.9432 0.9093
+ H 0.6439 0.9054 0.7329
+ H 0.9099 0.7082 0.8370
+ H 0.1146 0.3475 0.6565
+ H 0.1177 0.4592 0.5968
+ H 0.0984 0.1864 0.7470
+ H 0.8732 0.4903 0.7716
+ H 0.8466 0.4047 0.7052
+ H 0.5983 0.1849 0.7879
+ H 0.7255 0.2866 0.7809
+ H 0.2468 0.6010 0.7474
+ H 0.3655 0.5512 0.7883
+ H 0.2218 0.4478 0.8492
+ H 0.2272 0.3027 0.8868
+ H 0.0089 0.3172 0.8875
+ H 0.3206 0.1756 0.7063
+ H 0.2308 0.1250 0.6400
+ H 0.2420 0.1027 0.9275
+ H 0.3752 0.1963 0.9351
+ H 0.3477 0.8559 0.5950
+ H 0.4738 0.7418 0.6051
+ H 0.0297 0.6626 0.5302
+ H 0.2668 0.5360 0.5300
+ H 0.1691 0.9883 0.5479
+ H 0.0952 0.9378 0.6119
+ H 0.0161 0.6488 0.7384
+ H 0.0940 0.5739 0.6865
+ H 0.2728 0.6995 0.9381
+ H 0.3551 0.7479 0.8759
+ H 0.5812 0.5576 0.8790
+ H 0.5605 0.6617 0.8175
+ H 0.1741 0.5139 0.9642
+ H 0.3026 0.8058 0.7542
+ H 0.4067 0.8573 0.6970
+ H 0.7040 0.7965 0.8683
+ H 0.7716 0.8608 0.8049
+ H 0.0148 0.6043 0.8532
+ H 0.1834 0.9112 0.9331
+ H 0.0492 0.9894 0.9603
+EOF
+
+
+
+
+
+cat > runme << EOF
+mpirun -np $ncpu $ESPRESSO_DIR/cp.x < h2o-64-1.in > h2o-64-1.out
+mpirun -np $ncpu $ESPRESSO_DIR/cp.x < h2o-64-2.in > h2o-64-2.out
+
+EOF
+
+cd ..
+
+done
+
diff --git a/clusters/user/QE/LICENSE.txt b/clusters/user/QE/LICENSE.txt
new file mode 100644
index 0000000..630b072
--- /dev/null
+++ b/clusters/user/QE/LICENSE.txt
@@ -0,0 +1,19 @@
+################################################################################
+## Copyright (C) 2012 Andrea Cepellotti. ##
+## This file is distributed under the terms ##
+## of the GNU General Public License v2. ##
+## See http://www.gnu.org/licenses/gpl.html . ##
+## ##
+## This program is free software: you can redistribute it and/or modify ##
+## it under the terms of the GNU General Public License as published by ##
+## the Free Software Foundation, either version 3 of the License, or ##
+## (at your option) any later version. ##
+## ##
+## This program is distributed in the hope that it will be useful, ##
+## but WITHOUT ANY WARRANTY; without even the implied warranty of ##
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ##
+## GNU General Public License for more details. ##
+## ##
+## You should have received a copy of the GNU General Public License ##
+## along with this program. If not, see <http://www.gnu.org/licenses/>. ##
+################################################################################
diff --git a/clusters/user/QE/PW/O.vdb.UPF b/clusters/user/QE/PW/O.vdb.UPF
new file mode 100644
index 0000000..f78f9cd
--- /dev/null
+++ b/clusters/user/QE/PW/O.vdb.UPF
@@ -0,0 +1,3667 @@
+<PP_INFO>
+Generated using Vanderbilt code, version 7 3 4
+Author: Vanderbilt Group Generation date: 5 11 2002
+http://www.physics.rutgers.edu/~dhv/uspp/uspp-cur/Work/008-O/008-O-ca--vgrp
+ 0 The Pseudo was generated with a Non-Relativistic Calculation
+ 1.00000000000E+00 Local Potential cutoff radius
+nl pn l occ Rcut Rcut US E pseu
+2S 2 0 2.00 10.00000000000 1.30000000000 -1.74236362000
+2P 2 1 4.00 10.00000000000 1.30000000000 -0.67659442900
+</PP_INFO>
+
+
+<PP_HEADER>
+ 0 Version Number
+ O Element
+ US Ultrasoft pseudopotential
+ F Nonlinear Core Correction
+ SLA PZ NOGX NOGC PZ Exchange-Correlation functional
+ 6.00000000000 Z valence
+ -31.52095287920 Total energy
+ 0.0000000 0.0000000 Suggested cutoff for wfc and rho
+ 1 Max angular momentum component
+ 737 Number of points in mesh
+ 2 4 Number of Wavefunctions, Number of Projectors
+ Wavefunctions nl l occ
+ 2S 0 2.00
+ 2P 1 4.00
+</PP_HEADER>
+
+
+<PP_MESH>
+ <PP_R>
+ 0.00000000000E+00 5.29635113499E-06 1.06832360010E-05 1.61622021457E-05
+ 2.17348235702E-05 2.74027011807E-05 3.31674632488E-05 3.90307658791E-05
+ 4.49942934849E-05 5.10597592724E-05 5.72289057325E-05 6.35035051415E-05
+ 6.98853600706E-05 7.63763039030E-05 8.29782013614E-05 8.96929490432E-05
+ 9.65224759654E-05 1.03468744119E-04 1.10533749032E-04 1.17719520345E-04
+ 1.25028122389E-04 1.32461654785E-04 1.40022253043E-04 1.47712089177E-04
+ 1.55533372328E-04 1.63488349398E-04 1.71579305700E-04 1.79808565607E-04
+ 1.88178493228E-04 1.96691493080E-04 2.05350010784E-04 2.14156533764E-04
+ 2.23113591964E-04 2.32223758573E-04 2.41489650766E-04 2.50913930455E-04
+ 2.60499305052E-04 2.70248528251E-04 2.80164400814E-04 2.90249771379E-04
+ 3.00507537280E-04 3.10940645372E-04 3.21552092887E-04 3.32344928287E-04
+ 3.43322252146E-04 3.54487218036E-04 3.65843033437E-04 3.77392960653E-04
+ 3.89140317755E-04 4.01088479533E-04 4.13240878461E-04 4.25601005689E-04
+ 4.38172412041E-04 4.50958709041E-04 4.63963569943E-04 4.77190730792E-04
+ 4.90643991496E-04 5.04327216916E-04 5.18244337978E-04 5.32399352802E-04
+ 5.46796327850E-04 5.61439399093E-04 5.76332773203E-04 5.91480728758E-04
+ 6.06887617473E-04 6.22557865448E-04 6.38495974442E-04 6.54706523167E-04
+ 6.71194168598E-04 6.87963647318E-04 7.05019776872E-04 7.22367457158E-04
+ 7.40011671827E-04 7.57957489721E-04 7.76210066327E-04 7.94774645257E-04
+ 8.13656559754E-04 8.32861234228E-04 8.52394185810E-04 8.72261025938E-04
+ 8.92467461973E-04 9.13019298830E-04 9.33922440657E-04 9.55182892520E-04
+ 9.76806762136E-04 9.98800261625E-04 1.02116970929E-03 1.04392153145E-03
+ 1.06706226425E-03 1.09059855559E-03 1.11453716698E-03 1.13888497552E-03
+ 1.16364897587E-03 1.18883628224E-03 1.21445413047E-03 1.24050988005E-03
+ 1.26701101631E-03 1.29396515252E-03 1.32138003206E-03 1.34926353070E-03
+ 1.37762365885E-03 1.40646856380E-03 1.43580653215E-03 1.46564599212E-03
+ 1.49599551601E-03 1.52686382266E-03 1.55825977993E-03 1.59019240728E-03
+ 1.62267087832E-03 1.65570452350E-03 1.68930283274E-03 1.72347545819E-03
+ 1.75823221697E-03 1.79358309404E-03 1.82953824502E-03 1.86610799913E-03
+ 1.90330286214E-03 1.94113351943E-03 1.97961083901E-03 2.01874587466E-03
+ 2.05854986914E-03 2.09903425735E-03 2.14021066967E-03 2.18209093530E-03
+ 2.22468708561E-03 2.26801135767E-03 2.31207619770E-03 2.35689426467E-03
+ 2.40247843395E-03 2.44884180098E-03 2.49599768506E-03 2.54395963318E-03
+ 2.59274142386E-03 2.64235707117E-03 2.69282082872E-03 2.74414719379E-03
+ 2.79635091143E-03 2.84944697877E-03 2.90345064928E-03 2.95837743717E-03
+ 3.01424312185E-03 3.07106375243E-03 3.12885565239E-03 3.18763542423E-03
+ 3.24741995424E-03 3.30822641735E-03 3.37007228208E-03 3.43297531556E-03
+ 3.49695358861E-03 3.56202548094E-03 3.62820968646E-03 3.69552521861E-03
+ 3.76399141583E-03 3.83362794714E-03 3.90445481777E-03 3.97649237491E-03
+ 4.04976131354E-03 4.12428268243E-03 4.20007789012E-03 4.27716871110E-03
+ 4.35557729208E-03 4.43532615832E-03 4.51643822013E-03 4.59893677943E-03
+ 4.68284553647E-03 4.76818859661E-03 4.85499047726E-03 4.94327611491E-03
+ 5.03307087233E-03 5.12440054580E-03 5.21729137258E-03 5.31177003841E-03
+ 5.40786368517E-03 5.50559991872E-03 5.60500681678E-03 5.70611293702E-03
+ 5.80894732528E-03 5.91353952390E-03 6.01991958018E-03 6.12811805506E-03
+ 6.23816603186E-03 6.35009512524E-03 6.46393749026E-03 6.57972583163E-03
+ 6.69749341310E-03 6.81727406702E-03 6.93910220405E-03 7.06301282306E-03
+ 7.18904152117E-03 7.31722450399E-03 7.44759859600E-03 7.58020125116E-03
+ 7.71507056366E-03 7.85224527882E-03 7.99176480430E-03 8.13366922135E-03
+ 8.27799929636E-03 8.42479649258E-03 8.57410298199E-03 8.72596165747E-03
+ 8.88041614507E-03 9.03751081658E-03 9.19729080225E-03 9.35980200378E-03
+ 9.52509110751E-03 9.69320559778E-03 9.86419377064E-03 1.00381047477E-02
+ 1.02149884902E-02 1.03948958134E-02 1.05778784012E-02 1.07639888209E-02
+ 1.09532805386E-02 1.11458079340E-02 1.13416263165E-02 1.15407919410E-02
+ 1.17433620239E-02 1.19493947596E-02 1.21589493374E-02 1.23720859583E-02
+ 1.25888658522E-02 1.28093512959E-02 1.30336056306E-02 1.32616932801E-02
+ 1.34936797696E-02 1.37296317445E-02 1.39696169890E-02 1.42137044464E-02
+ 1.44619642382E-02 1.47144676847E-02 1.49712873252E-02 1.52324969390E-02
+ 1.54981715666E-02 1.57683875312E-02 1.60432224606E-02 1.63227553096E-02
+ 1.66070663825E-02 1.68962373564E-02 1.71903513045E-02 1.74894927201E-02
+ 1.77937475407E-02 1.81032031729E-02 1.84179485172E-02 1.87380739939E-02
+ 1.90636715688E-02 1.93948347799E-02 1.97316587639E-02 2.00742402838E-02
+ 2.04226777567E-02 2.07770712820E-02 2.11375226699E-02 2.15041354713E-02
+ 2.18770150068E-02 2.22562683976E-02 2.26420045959E-02 2.30343344161E-02
+ 2.34333705670E-02 2.38392276841E-02 2.42520223621E-02 2.46718731891E-02
+ 2.50989007800E-02 2.55332278116E-02 2.59749790577E-02 2.64242814248E-02
+ 2.68812639888E-02 2.73460580319E-02 2.78187970806E-02 2.82996169435E-02
+ 2.87886557510E-02 2.92860539943E-02 2.97919545665E-02 3.03065028029E-02
+ 3.08298465233E-02 3.13621360742E-02 3.19035243721E-02 3.24541669474E-02
+ 3.30142219890E-02 3.35838503899E-02 3.41632157934E-02 3.47524846399E-02
+ 3.53518262149E-02 3.59614126977E-02 3.65814192106E-02 3.72120238697E-02
+ 3.78534078352E-02 3.85057553646E-02 3.91692538645E-02 3.98440939453E-02
+ 4.05304694755E-02 4.12285776375E-02 4.19386189841E-02 4.26607974967E-02
+ 4.33953206431E-02 4.41423994375E-02 4.49022485013E-02 4.56750861243E-02
+ 4.64611343280E-02 4.72606189287E-02 4.80737696029E-02 4.89008199529E-02
+ 4.97420075745E-02 5.05975741245E-02 5.14677653907E-02 5.23528313620E-02
+ 5.32530263010E-02 5.41686088161E-02 5.50998419365E-02 5.60469931874E-02
+ 5.70103346672E-02 5.79901431250E-02 5.89867000411E-02 6.00002917068E-02
+ 6.10312093074E-02 6.20797490057E-02 6.31462120267E-02 6.42309047447E-02
+ 6.53341387710E-02 6.64562310432E-02 6.75975039168E-02 6.87582852574E-02
+ 6.99389085350E-02 7.11397129198E-02 7.23610433798E-02 7.36032507795E-02
+ 7.48666919810E-02 7.61517299466E-02 7.74587338427E-02 7.87880791465E-02
+ 8.01401477529E-02 8.15153280852E-02 8.29140152060E-02 8.43366109312E-02
+ 8.57835239449E-02 8.72551699172E-02 8.87519716236E-02 9.02743590662E-02
+ 9.18227695974E-02 9.33976480457E-02 9.49994468432E-02 9.66286261556E-02
+ 9.82856540146E-02 9.99710064523E-02 1.01685167638E-01 1.03428630017E-01
+ 1.05201894451E-01 1.07005470367E-01 1.08839875896E-01 1.10705638027E-01
+ 1.12603292758E-01 1.14533385248E-01 1.16496469976E-01 1.18493110897E-01
+ 1.20523881608E-01 1.22589365511E-01 1.24690155978E-01 1.26826856526E-01
+ 1.29000080988E-01 1.31210453690E-01 1.33458609628E-01 1.35745194654E-01
+ 1.38070865660E-01 1.40436290766E-01 1.42842149513E-01 1.45289133057E-01
+ 1.47777944370E-01 1.50309298440E-01 1.52883922474E-01 1.55502556113E-01
+ 1.58165951639E-01 1.60874874195E-01 1.63630102002E-01 1.66432426582E-01
+ 1.69282652990E-01 1.72181600041E-01 1.75130100546E-01 1.78129001552E-01
+ 1.81179164585E-01 1.84281465899E-01 1.87436796724E-01 1.90646063526E-01
+ 1.93910188265E-01 1.97230108660E-01 2.00606778462E-01 2.04041167722E-01
+ 2.07534263072E-01 2.11087068013E-01 2.14700603196E-01 2.18375906719E-01
+ 2.22114034428E-01 2.25916060212E-01 2.29783076321E-01 2.33716193673E-01
+ 2.37716542178E-01 2.41785271057E-01 2.45923549178E-01 2.50132565388E-01
+ 2.54413528856E-01 2.58767669420E-01 2.63196237940E-01 2.67700506659E-01
+ 2.72281769565E-01 2.76941342767E-01 2.81680564869E-01 2.86500797360E-01
+ 2.91403424997E-01 2.96389856212E-01 3.01461523510E-01 3.06619883881E-01
+ 3.11866419224E-01 3.17202636767E-01 3.22630069502E-01 3.28150276624E-01
+ 3.33764843983E-01 3.39475384535E-01 3.45283538809E-01 3.51190975373E-01
+ 3.57199391322E-01 3.63310512755E-01 3.69526095281E-01 3.75847924515E-01
+ 3.82277816597E-01 3.88817618711E-01 3.95469209615E-01 4.02234500182E-01
+ 4.09115433950E-01 4.16113987677E-01 4.23232171914E-01 4.30472031575E-01
+ 4.37835646533E-01 4.45325132213E-01 4.52942640197E-01 4.60690358849E-01
+ 4.68570513939E-01 4.76585369283E-01 4.84737227393E-01 4.93028430141E-01
+ 5.01461359428E-01 5.10038437872E-01 5.18762129502E-01 5.27634940466E-01
+ 5.36659419750E-01 5.45838159912E-01 5.55173797828E-01 5.64669015445E-01
+ 5.74326540555E-01 5.84149147579E-01 5.94139658362E-01 6.04300942983E-01
+ 6.14635920584E-01 6.25147560203E-01 6.35838881632E-01 6.46712956279E-01
+ 6.57772908056E-01 6.69021914274E-01 6.80463206553E-01 6.92100071757E-01
+ 7.03935852930E-01 7.15973950265E-01 7.28217822073E-01 7.40670985782E-01
+ 7.53337018944E-01 7.66219560267E-01 7.79322310655E-01 7.92649034274E-01
+ 8.06203559634E-01 8.19989780688E-01 8.34011657951E-01 8.48273219637E-01
+ 8.62778562816E-01 8.77531854593E-01 8.92537333304E-01 9.07799309730E-01
+ 9.23322168344E-01 9.39110368562E-01 9.55168446029E-01 9.71501013919E-01
+ 9.88112764263E-01 1.00500846930E+00 1.02219298283E+00 1.03967124163E+00
+ 1.05744826688E+00 1.07552916556E+00 1.09391913198E+00 1.11262344920E+00
+ 1.13164749062E+00 1.15099672148E+00 1.17067670044E+00 1.19069308118E+00
+ 1.21105161400E+00 1.23175814753E+00 1.25281863036E+00 1.27423911275E+00
+ 1.29602574838E+00 1.31818479615E+00 1.34072262192E+00 1.36364570036E+00
+ 1.38696061684E+00 1.41067406927E+00 1.43479287008E+00 1.45932394813E+00
+ 1.48427435072E+00 1.50965124562E+00 1.53546192313E+00 1.56171379815E+00
+ 1.58841441233E+00 1.61557143624E+00 1.64319267158E+00 1.67128605339E+00
+ 1.69985965236E+00 1.72892167712E+00 1.75848047663E+00 1.78854454257E+00
+ 1.81912251176E+00 1.85022316866E+00 1.88185544788E+00 1.91402843677E+00
+ 1.94675137801E+00 1.98003367225E+00 2.01388488087E+00 2.04831472865E+00
+ 2.08333310664E+00 2.11895007492E+00 2.15517586556E+00 2.19202088554E+00
+ 2.22949571972E+00 2.26761113389E+00 2.30637807786E+00 2.34580768864E+00
+ 2.38591129359E+00 2.42670041369E+00 2.46818676688E+00 2.51038227138E+00
+ 2.55329904913E+00 2.59694942931E+00 2.64134595182E+00 2.68650137092E+00
+ 2.73242865889E+00 2.77914100975E+00 2.82665184305E+00 2.87497480775E+00
+ 2.92412378608E+00 2.97411289761E+00 3.02495650323E+00 3.07666920934E+00
+ 3.12926587198E+00 3.18276160117E+00 3.23717176519E+00 3.29251199502E+00
+ 3.34879818885E+00 3.40604651661E+00 3.46427342464E+00 3.52349564040E+00
+ 3.58373017729E+00 3.64499433952E+00 3.70730572710E+00 3.77068224089E+00
+ 3.83514208773E+00 3.90070378570E+00 3.96738616939E+00 4.03520839537E+00
+ 4.10418994764E+00 4.17435064329E+00 4.24571063811E+00 4.31829043244E+00
+ 4.39211087707E+00 4.46719317918E+00 4.54355890845E+00 4.62123000329E+00
+ 4.70022877710E+00 4.78057792469E+00 4.86230052882E+00 4.94542006682E+00
+ 5.02996041732E+00 5.11594586712E+00 5.20340111819E+00 5.29235129472E+00
+ 5.38282195038E+00 5.47483907563E+00 5.56842910522E+00 5.66361892575E+00
+ 5.76043588341E+00 5.85890779185E+00 5.95906294013E+00 6.06093010089E+00
+ 6.16453853860E+00 6.26991801796E+00 6.37709881244E+00 6.48611171303E+00
+ 6.59698803701E+00 6.70975963701E+00 6.82445891012E+00 6.94111880723E+00
+ 7.05977284247E+00 7.18045510285E+00 7.30320025805E+00 7.42804357036E+00
+ 7.55502090487E+00 7.68416873970E+00 7.81552417653E+00 7.94912495123E+00
+ 8.08500944471E+00 8.22321669397E+00 8.36378640327E+00 8.50675895557E+00
+ 8.65217542412E+00 8.80007758426E+00 8.95050792540E+00 9.10350966329E+00
+ 9.25912675235E+00 9.41740389837E+00 9.57838657131E+00 9.74212101837E+00
+ 9.90865427729E+00 1.00780341899E+01 1.02503094156E+01 1.04255294460E+01
+ 1.06037446182E+01 1.07850061301E+01 1.09693660545E+01 1.11568773546E+01
+ 1.13475938986E+01 1.15415704758E+01 1.17388628119E+01 1.19395275851E+01
+ 1.21436224425E+01 1.23512060167E+01 1.25623379424E+01 1.27770788737E+01
+ 1.29954905016E+01 1.32176355714E+01 1.34435779011E+01 1.36733823996E+01
+ 1.39071150853E+01 1.41448431051E+01 1.43866347536E+01 1.46325594929E+01
+ 1.48826879724E+01 1.51370920491E+01 1.53958448085E+01 1.56590205852E+01
+ 1.59266949846E+01 1.61989449042E+01 1.64758485562E+01 1.67574854897E+01
+ 1.70439366135E+01 1.73352842195E+01 1.76316120062E+01 1.79330051029E+01
+ 1.82395500940E+01 1.85513350438E+01 1.88684495222E+01 1.91909846301E+01
+ 1.95190330255E+01 1.98526889504E+01 2.01920482577E+01 2.05372084387E+01
+ 2.08882686513E+01 2.12453297483E+01 2.16084943064E+01 2.19778666558E+01
+ 2.23535529101E+01 2.27356609965E+01 2.31243006874E+01 2.35195836314E+01
+ 2.39216233857E+01 2.43305354485E+01 2.47464372923E+01 2.51694483977E+01
+ 2.55996902876E+01 2.60372865621E+01 2.64823629342E+01 2.69350472658E+01
+ 2.73954696042E+01 2.78637622200E+01 2.83400596445E+01 2.88244987087E+01
+ 2.93172185826E+01 2.98183608151E+01 3.03280693747E+01 3.08464906907E+01
+ 3.13737736956E+01 3.19100698676E+01 3.24555332743E+01 3.30103206165E+01
+ 3.35745912742E+01 3.41485073512E+01 3.47322337226E+01 3.53259380817E+01
+ 3.59297909882E+01 3.65439659174E+01 3.71686393098E+01 3.78039906221E+01
+ 3.84502023784E+01 3.91074602228E+01 3.97759529727E+01 4.04558726733E+01
+ 4.11474146522E+01 4.18507775762E+01 4.25661635077E+01 4.32937779633E+01
+ 4.40338299725E+01 4.47865321380E+01 4.55521006966E+01 4.63307555812E+01
+ 4.71227204844E+01 4.79282229223E+01 4.87474943003E+01 4.95807699790E+01
+ 5.04282893426E+01 5.12902958668E+01 5.21670371896E+01 5.30587651817E+01
+ 5.39657360193E+01 5.48882102576E+01 5.58264529055E+01 5.67807335021E+01
+ 5.77513261938E+01 5.87385098129E+01 5.97425679582E+01 6.07637890763E+01
+ 6.18024665441E+01 6.28588987537E+01 6.39333891975E+01 6.50262465558E+01
+ 6.61377847856E+01 6.72683232100E+01 6.84181866111E+01 6.95877053222E+01
+ 7.07772153235E+01 7.19870583381E+01 7.32175819307E+01 7.44691396067E+01
+ 7.57420909145E+01 7.70368015483E+01 7.83536434535E+01 7.96929949333E+01
+ 8.10552407574E+01
+ </PP_R>
+ <PP_RAB>
+ 5.25159359463E-06 5.34136225794E-06 5.43266539126E-06 5.52552922422E-06
+ 5.61998043481E-06 5.71604615702E-06 5.81375398868E-06 5.91313199936E-06
+ 6.01420873844E-06 6.11701324332E-06 6.22157504773E-06 6.32792419025E-06
+ 6.43609122295E-06 6.54610722011E-06 6.65800378720E-06 6.77181306994E-06
+ 6.88756776354E-06 7.00530112207E-06 7.12504696806E-06 7.24683970217E-06
+ 7.37071431309E-06 7.49670638760E-06 7.62485212079E-06 7.75518832645E-06
+ 7.88775244764E-06 8.02258256748E-06 8.15971742005E-06 8.29919640153E-06
+ 8.44105958155E-06 8.58534771463E-06 8.73210225199E-06 8.88136535335E-06
+ 9.03317989911E-06 9.18758950265E-06 9.34463852288E-06 9.50437207692E-06
+ 9.66683605315E-06 9.83207712431E-06 1.00001427610E-05 1.01710812451E-05
+ 1.03449416841E-05 1.05217740247E-05 1.07016290673E-05 1.08845584809E-05
+ 1.10706148174E-05 1.12598515275E-05 1.14523229749E-05 1.16480844532E-05
+ 1.18471922007E-05 1.20497034172E-05 1.22556762804E-05 1.24651699622E-05
+ 1.26782446462E-05 1.28949615445E-05 1.31153829157E-05 1.33395720826E-05
+ 1.35675934505E-05 1.37995125254E-05 1.40353959333E-05 1.42753114387E-05
+ 1.45193279650E-05 1.47675156132E-05 1.50199456828E-05 1.52766906922E-05
+ 1.55378243993E-05 1.58034218226E-05 1.60735592631E-05 1.63483143263E-05
+ 1.66277659438E-05 1.69119943966E-05 1.72010813382E-05 1.74951098176E-05
+ 1.77941643036E-05 1.80983307086E-05 1.84076964137E-05 1.87223502939E-05
+ 1.90423827430E-05 1.93678857002E-05 1.96989526762E-05 2.00356787800E-05
+ 2.03781607467E-05 2.07264969646E-05 2.10807875041E-05 2.14411341458E-05
+ 2.18076404105E-05 2.21804115883E-05 2.25595547691E-05 2.29451788735E-05
+ 2.33373946837E-05 2.37363148758E-05 2.41420540519E-05 2.45547287729E-05
+ 2.49744575924E-05 2.54013610903E-05 2.58355619076E-05 2.62771847820E-05
+ 2.67263565830E-05 2.71832063491E-05 2.76478653244E-05 2.81204669964E-05
+ 2.86011471344E-05 2.90900438285E-05 2.95872975293E-05 3.00930510881E-05
+ 3.06074497982E-05 3.11306414363E-05 3.16627763054E-05 3.22040072773E-05
+ 3.27544898374E-05 3.33143821285E-05 3.38838449970E-05 3.44630420385E-05
+ 3.50521396450E-05 3.56513070530E-05 3.62607163916E-05 3.68805427324E-05
+ 3.75109641394E-05 3.81521617206E-05 3.88043196795E-05 3.94676253686E-05
+ 4.01422693427E-05 4.08284454140E-05 4.15263507077E-05 4.22361857183E-05
+ 4.29581543677E-05 4.36924640637E-05 4.44393257590E-05 4.51989540128E-05
+ 4.59715670513E-05 4.67573868315E-05 4.75566391042E-05 4.83695534790E-05
+ 4.91963634905E-05 5.00373066653E-05 5.08926245900E-05 5.17625629809E-05
+ 5.26473717545E-05 5.35473050993E-05 5.44626215486E-05 5.53935840552E-05
+ 5.63404600666E-05 5.73035216019E-05 5.82830453301E-05 5.92793126494E-05
+ 6.02926097682E-05 6.13232277870E-05 6.23714627825E-05 6.34376158923E-05
+ 6.45219934015E-05 6.56249068310E-05 6.67466730262E-05 6.78876142491E-05
+ 6.90480582698E-05 7.02283384615E-05 7.14287938959E-05 7.26497694405E-05
+ 7.38916158581E-05 7.51546899071E-05 7.64393544441E-05 7.77459785285E-05
+ 7.90749375281E-05 8.04266132271E-05 8.18013939358E-05 8.31996746020E-05
+ 8.46218569247E-05 8.60683494694E-05 8.75395677854E-05 8.90359345253E-05
+ 9.05578795663E-05 9.21058401337E-05 9.36802609266E-05 9.52815942457E-05
+ 9.69103001230E-05 9.85668464543E-05 1.00251709133E-04 1.01965372188E-04
+ 1.03708327921E-04 1.05481077051E-04 1.07284128852E-04 1.09118001307E-04
+ 1.10983221253E-04 1.12880324531E-04 1.14809856141E-04 1.16772370402E-04
+ 1.18768431105E-04 1.20798611680E-04 1.22863495358E-04 1.24963675341E-04
+ 1.27099754970E-04 1.29272347900E-04 1.31482078273E-04 1.33729580903E-04
+ 1.36015501453E-04 1.38340496625E-04 1.40705234345E-04 1.43110393956E-04
+ 1.45556666414E-04 1.48044754486E-04 1.50575372950E-04 1.53149248806E-04
+ 1.55767121477E-04 1.58429743028E-04 1.61137878378E-04 1.63892305523E-04
+ 1.66693815756E-04 1.69543213896E-04 1.72441318521E-04 1.75388962199E-04
+ 1.78386991733E-04 1.81436268397E-04 1.84537668191E-04 1.87692082085E-04
+ 1.90900416283E-04 1.94163592476E-04 1.97482548112E-04 2.00858236663E-04
+ 2.04291627898E-04 2.07783708165E-04 2.11335480670E-04 2.14947965769E-04
+ 2.18622201260E-04 2.22359242678E-04 2.26160163604E-04 2.30026055969E-04
+ 2.33958030368E-04 2.37957216382E-04 2.42024762900E-04 2.46161838449E-04
+ 2.50369631530E-04 2.54649350962E-04 2.59002226225E-04 2.63429507815E-04
+ 2.67932467605E-04 2.72512399209E-04 2.77170618351E-04 2.81908463249E-04
+ 2.86727294993E-04 2.91628497940E-04 2.96613480112E-04 3.01683673597E-04
+ 3.06840534963E-04 3.12085545677E-04 3.17420212530E-04 3.22846068067E-04
+ 3.28364671032E-04 3.33977606813E-04 3.39686487898E-04 3.45492954338E-04
+ 3.51398674217E-04 3.57405344136E-04 3.63514689695E-04 3.69728465989E-04
+ 3.76048458117E-04 3.82476481690E-04 3.89014383355E-04 3.95664041325E-04
+ 4.02427365917E-04 4.09306300105E-04 4.16302820072E-04 4.23418935783E-04
+ 4.30656691561E-04 4.38018166673E-04 4.45505475928E-04 4.53120770285E-04
+ 4.60866237472E-04 4.68744102610E-04 4.76756628859E-04 4.84906118061E-04
+ 4.93194911408E-04 5.01625390109E-04 5.10199976078E-04 5.18921132627E-04
+ 5.27791365176E-04 5.36813221970E-04 5.45989294816E-04 5.55322219821E-04
+ 5.64814678154E-04 5.74469396814E-04 5.84289149415E-04 5.94276756982E-04
+ 6.04435088762E-04 6.14767063047E-04 6.25275648012E-04 6.35963862572E-04
+ 6.46834777243E-04 6.57891515028E-04 6.69137252315E-04 6.80575219787E-04
+ 6.92208703349E-04 7.04041045077E-04 7.16075644173E-04 7.28315957945E-04
+ 7.40765502799E-04 7.53427855247E-04 7.66306652938E-04 7.79405595702E-04
+ 7.92728446612E-04 8.06279033064E-04 8.20061247880E-04 8.34079050424E-04
+ 8.48336467739E-04 8.62837595705E-04 8.77586600216E-04 8.92587718375E-04
+ 9.07845259713E-04 9.23363607427E-04 9.39147219637E-04 9.55200630670E-04
+ 9.71528452360E-04 9.88135375375E-04 1.00502617056E-03 1.02220569032E-03
+ 1.03967886999E-03 1.05745072928E-03 1.07552637371E-03 1.09391099605E-03
+ 1.11260987785E-03 1.13162839094E-03 1.15097199896E-03 1.17064625897E-03
+ 1.19065682300E-03 1.21100943969E-03 1.23170995596E-03 1.25276431867E-03
+ 1.27417857632E-03 1.29595888082E-03 1.31811148923E-03 1.34064276557E-03
+ 1.36355918263E-03 1.38686732385E-03 1.41057388522E-03 1.43468567717E-03
+ 1.45920962656E-03 1.48415277863E-03 1.50952229908E-03 1.53532547607E-03
+ 1.56156972236E-03 1.58826257742E-03 1.61541170958E-03 1.64302491827E-03
+ 1.67111013622E-03 1.69967543177E-03 1.72872901119E-03 1.75827922099E-03
+ 1.78833455040E-03 1.81890363371E-03 1.84999525285E-03 1.88161833981E-03
+ 1.91378197932E-03 1.94649541136E-03 1.97976803386E-03 2.01360940541E-03
+ 2.04802924797E-03 2.08303744971E-03 2.11864406780E-03 2.15485933133E-03
+ 2.19169364425E-03 2.22915758834E-03 2.26726192627E-03 2.30601760467E-03
+ 2.34543575732E-03 2.38552770827E-03 2.42630497516E-03 2.46777927253E-03
+ 2.50996251513E-03 2.55286682139E-03 2.59650451688E-03 2.64088813788E-03
+ 2.68603043494E-03 2.73194437656E-03 2.77864315294E-03 2.82614017973E-03
+ 2.87444910190E-03 2.92358379768E-03 2.97355838251E-03 3.02438721312E-03
+ 3.07608489165E-03 3.12866626985E-03 3.18214645332E-03 3.23654080590E-03
+ 3.29186495401E-03 3.34813479123E-03 3.40536648278E-03 3.46357647023E-03
+ 3.52278147617E-03 3.58299850907E-03 3.64424486810E-03 3.70653814816E-03
+ 3.76989624491E-03 3.83433735990E-03 3.89988000581E-03 3.96654301179E-03
+ 4.03434552881E-03 4.10330703524E-03 4.17344734238E-03 4.24478660017E-03
+ 4.31734530302E-03 4.39114429563E-03 4.46620477903E-03 4.54254831663E-03
+ 4.62019684046E-03 4.69917265744E-03 4.77949845579E-03 4.86119731155E-03
+ 4.94429269524E-03 5.02880847855E-03 5.11476894121E-03 5.20219877802E-03
+ 5.29112310587E-03 5.38156747101E-03 5.47355785633E-03 5.56712068892E-03
+ 5.66228284754E-03 5.75907167046E-03 5.85751496323E-03 5.95764100670E-03
+ 6.05947856515E-03 6.16305689453E-03 6.26840575089E-03 6.37555539893E-03
+ 6.48453662067E-03 6.59538072429E-03 6.70811955317E-03 6.82278549499E-03
+ 6.93941149105E-03 7.05803104575E-03 7.17867823620E-03 7.30138772198E-03
+ 7.42619475518E-03 7.55313519042E-03 7.68224549524E-03 7.81356276053E-03
+ 7.94712471121E-03 8.08296971704E-03 8.22113680365E-03 8.36166566377E-03
+ 8.50459666864E-03 8.64997087956E-03 8.79783005973E-03 8.94821668623E-03
+ 9.10117396223E-03 9.25674582939E-03 9.41497698051E-03 9.57591287232E-03
+ 9.73959973860E-03 9.90608460341E-03 1.00754152946E-02 1.02476404577E-02
+ 1.04228095696E-02 1.06009729530E-02 1.07821817907E-02 1.09664881407E-02
+ 1.11539449505E-02 1.13446060728E-02 1.15385262809E-02 1.17357612844E-02
+ 1.19363677450E-02 1.21404032930E-02 1.23479265440E-02 1.25589971153E-02
+ 1.27736756435E-02 1.29920238015E-02 1.32141043166E-02 1.34399809881E-02
+ 1.36697187060E-02 1.39033834697E-02 1.41410424063E-02 1.43827637908E-02
+ 1.46286170651E-02 1.48786728579E-02 1.51330030055E-02 1.53916805721E-02
+ 1.56547798706E-02 1.59223764845E-02 1.61945472890E-02 1.64713704736E-02
+ 1.67529255642E-02 1.70392934461E-02 1.73305563873E-02 1.76267980619E-02
+ 1.79281035746E-02 1.82345594845E-02 1.85462538305E-02 1.88632761563E-02
+ 1.91857175364E-02 1.95136706018E-02 1.98472295672E-02 2.01864902576E-02
+ 2.05315501360E-02 2.08825083315E-02 2.12394656675E-02 2.16025246910E-02
+ 2.19717897018E-02 2.23473667826E-02 2.27293638295E-02 2.31178905827E-02
+ 2.35130586586E-02 2.39149815812E-02 2.43237748153E-02 2.47395557992E-02
+ 2.51624439787E-02 2.55925608415E-02 2.60300299517E-02 2.64749769859E-02
+ 2.69275297686E-02 2.73878183096E-02 2.78559748408E-02 2.83321338545E-02
+ 2.88164321421E-02 2.93090088329E-02 2.98100054349E-02 3.03195658745E-02
+ 3.08378365388E-02 3.13649663167E-02 3.19011066425E-02 3.24464115389E-02
+ 3.30010376615E-02 3.35651443437E-02 3.41388936422E-02 3.47224503844E-02
+ 3.53159822146E-02 3.59196596430E-02 3.65336560947E-02 3.71581479588E-02
+ 3.77933146397E-02 3.84393386086E-02 3.90964054556E-02 3.97647039434E-02
+ 4.04444260612E-02 4.11357670799E-02 4.18389256085E-02 4.25541036508E-02
+ 4.32815066636E-02 4.40213436158E-02 4.47738270481E-02 4.55391731346E-02
+ 4.63176017442E-02 4.71093365046E-02 4.79146048657E-02 4.87336381656E-02
+ 4.95666716967E-02 5.04139447734E-02 5.12757008009E-02 5.21521873451E-02
+ 5.30436562034E-02 5.39503634778E-02 5.48725696476E-02 5.58105396448E-02
+ 5.67645429301E-02 5.77348535701E-02 5.87217503163E-02 5.97255166851E-02
+ 6.07464410391E-02 6.17848166701E-02 6.28409418834E-02 6.39151200832E-02
+ 6.50076598602E-02 6.61188750800E-02 6.72490849730E-02 6.83986142269E-02
+ 6.95677930791E-02 7.07569574120E-02 7.19664488496E-02 7.31966148554E-02
+ 7.44478088321E-02 7.57203902237E-02 7.70147246182E-02 7.83311838528E-02
+ 7.96701461207E-02 8.10319960799E-02 8.24171249635E-02 8.38259306923E-02
+ 8.52588179889E-02 8.67161984940E-02 8.81984908850E-02 8.97061209956E-02
+ 9.12395219390E-02 9.27991342314E-02 9.43854059194E-02 9.59987927080E-02
+ 9.76397580921E-02 9.93087734893E-02 1.01006318375E-01 1.02732880422E-01
+ 1.04488955638E-01 1.06275048508E-01 1.08091672144E-01 1.09939348425E-01
+ 1.11818608153E-01 1.13729991204E-01 1.15674046680E-01 1.17651333072E-01
+ 1.19662418415E-01 1.21707880456E-01 1.23788306815E-01 1.25904295159E-01
+ 1.28056453371E-01 1.30245399724E-01 1.32471763060E-01 1.34736182970E-01
+ 1.37039309979E-01 1.39381805729E-01 1.41764343174E-01 1.44187606773E-01
+ 1.46652292680E-01 1.49159108954E-01 1.51708775753E-01 1.54302025548E-01
+ 1.56939603328E-01 1.59622266820E-01 1.62350786701E-01 1.65125946820E-01
+ 1.67948544429E-01 1.70819390405E-01 1.73739309486E-01 1.76709140509E-01
+ 1.79729736648E-01 1.82801965663E-01 1.85926710145E-01 1.89104867773E-01
+ 1.92337351570E-01 1.95625090167E-01 1.98969028066E-01 2.02370125917E-01
+ 2.05829360789E-01 2.09347726453E-01 2.12926233669E-01 2.16565910470E-01
+ 2.20267802468E-01 2.24032973142E-01 2.27862504154E-01 2.31757495655E-01
+ 2.35719066599E-01 2.39748355070E-01 2.43846518604E-01 2.48014734524E-01
+ 2.52254200278E-01 2.56566133782E-01 2.60951773772E-01 2.65412380157E-01
+ 2.69949234383E-01 2.74563639800E-01 2.79256922037E-01 2.84030429385E-01
+ 2.88885533178E-01 2.93823628195E-01 2.98846133055E-01 3.03954490626E-01
+ 3.09150168440E-01 3.14434659116E-01 3.19809480784E-01 3.25276177527E-01
+ 3.30836319822E-01 3.36491504990E-01 3.42243357656E-01 3.48093530216E-01
+ 3.54043703311E-01 3.60095586310E-01 3.66250917804E-01 3.72511466099E-01
+ 3.78879029730E-01 3.85355437975E-01 3.91942551380E-01 3.98642262295E-01
+ 4.05456495418E-01 4.12387208347E-01 4.19436392141E-01 4.26606071893E-01
+ 4.33898307315E-01 4.41315193324E-01 4.48858860648E-01 4.56531476438E-01
+ 4.64335244886E-01 4.72272407865E-01 4.80345245567E-01 4.88556077164E-01
+ 4.96907261468E-01 5.05401197612E-01 5.14040325740E-01 5.22827127707E-01
+ 5.31764127791E-01 5.40853893418E-01 5.50099035903E-01 5.59502211196E-01
+ 5.69066120648E-01 5.78793511784E-01 5.88687179096E-01 5.98749964842E-01
+ 6.08984759868E-01 6.19394504430E-01 6.29982189048E-01 6.40750855358E-01
+ 6.51703596990E-01 6.62843560454E-01 6.74173946047E-01 6.85698008768E-01
+ 6.97419059259E-01 7.09340464749E-01 7.21465650029E-01 7.33798098429E-01
+ 7.46341352823E-01 7.59099016645E-01 7.72074754926E-01 7.85272295343E-01
+ 7.98695429296E-01 8.12348012989E-01 8.26233968547E-01 8.40357285136E-01
+ 8.54722020112E-01 8.69332300184E-01 8.84192322604E-01 8.99306356368E-01
+ 9.14678743446E-01 9.30313900027E-01 9.46216317789E-01 9.62390565189E-01
+ 9.78841288776E-01 9.95573214523E-01 1.01259114919E+00 1.02989998170E+00
+ 1.04750468454E+00 1.06541031521E+00 1.08362201765E+00 1.10214502373E+00
+ 1.12098465474E+00 1.14014632295E+00 1.15963553314E+00 1.17945788417E+00
+ 1.19961907064E+00 1.22012488444E+00 1.24098121652E+00 1.26219405849E+00
+ 1.28376950438E+00 1.30571375241E+00 1.32803310674E+00 1.35073397928E+00
+ 1.37382289155E+00
+ </PP_RAB>
+</PP_MESH>
+
+
+<PP_LOCAL>
+ -2.90950522311E+01 -2.90950522311E+01 -2.90950522284E+01 -2.90950522237E+01
+ -2.90950522168E+01 -2.90950522076E+01 -2.90950521962E+01 -2.90950521824E+01
+ -2.90950521659E+01 -2.90950521467E+01 -2.90950521249E+01 -2.90950521001E+01
+ -2.90950520722E+01 -2.90950520412E+01 -2.90950520067E+01 -2.90950519686E+01
+ -2.90950519269E+01 -2.90950518814E+01 -2.90950518320E+01 -2.90950517781E+01
+ -2.90950517200E+01 -2.90950516574E+01 -2.90950515899E+01 -2.90950515173E+01
+ -2.90950514396E+01 -2.90950513565E+01 -2.90950512675E+01 -2.90950511728E+01
+ -2.90950510719E+01 -2.90950509646E+01 -2.90950508505E+01 -2.90950507294E+01
+ -2.90950506011E+01 -2.90950504652E+01 -2.90950503214E+01 -2.90950501693E+01
+ -2.90950500087E+01 -2.90950498391E+01 -2.90950496602E+01 -2.90950494718E+01
+ -2.90950492731E+01 -2.90950490641E+01 -2.90950488442E+01 -2.90950486130E+01
+ -2.90950483699E+01 -2.90950481147E+01 -2.90950478466E+01 -2.90950475653E+01
+ -2.90950472701E+01 -2.90950469607E+01 -2.90950466364E+01 -2.90950462968E+01
+ -2.90950459410E+01 -2.90950455684E+01 -2.90950451786E+01 -2.90950447706E+01
+ -2.90950443440E+01 -2.90950438979E+01 -2.90950434315E+01 -2.90950429443E+01
+ -2.90950424350E+01 -2.90950419033E+01 -2.90950413481E+01 -2.90950407685E+01
+ -2.90950401635E+01 -2.90950395321E+01 -2.90950388736E+01 -2.90950381867E+01
+ -2.90950374703E+01 -2.90950367234E+01 -2.90950359448E+01 -2.90950351335E+01
+ -2.90950342880E+01 -2.90950334071E+01 -2.90950324896E+01 -2.90950315339E+01
+ -2.90950305388E+01 -2.90950295026E+01 -2.90950284239E+01 -2.90950273012E+01
+ -2.90950261326E+01 -2.90950249168E+01 -2.90950236517E+01 -2.90950223356E+01
+ -2.90950209667E+01 -2.90950195430E+01 -2.90950180623E+01 -2.90950165227E+01
+ -2.90950149221E+01 -2.90950132580E+01 -2.90950115281E+01 -2.90950097303E+01
+ -2.90950078619E+01 -2.90950059204E+01 -2.90950039028E+01 -2.90950018070E+01
+ -2.90949996295E+01 -2.90949973673E+01 -2.90949950179E+01 -2.90949925780E+01
+ -2.90949900437E+01 -2.90949874123E+01 -2.90949846798E+01 -2.90949818429E+01
+ -2.90949788977E+01 -2.90949758400E+01 -2.90949726662E+01 -2.90949693716E+01
+ -2.90949659524E+01 -2.90949624037E+01 -2.90949587211E+01 -2.90949548995E+01
+ -2.90949509343E+01 -2.90949468200E+01 -2.90949425513E+01 -2.90949381227E+01
+ -2.90949335287E+01 -2.90949287630E+01 -2.90949238196E+01 -2.90949186923E+01
+ -2.90949133742E+01 -2.90949078588E+01 -2.90949021390E+01 -2.90948962074E+01
+ -2.90948900566E+01 -2.90948836786E+01 -2.90948770653E+01 -2.90948702085E+01
+ -2.90948630995E+01 -2.90948557292E+01 -2.90948480886E+01 -2.90948401677E+01
+ -2.90948319569E+01 -2.90948234457E+01 -2.90948146236E+01 -2.90948054794E+01
+ -2.90947960019E+01 -2.90947861792E+01 -2.90947759991E+01 -2.90947654488E+01
+ -2.90947545153E+01 -2.90947431853E+01 -2.90947314445E+01 -2.90947192785E+01
+ -2.90947066723E+01 -2.90946936102E+01 -2.90946800765E+01 -2.90946660542E+01
+ -2.90946515262E+01 -2.90946364748E+01 -2.90946208815E+01 -2.90946047270E+01
+ -2.90945879920E+01 -2.90945706555E+01 -2.90945526971E+01 -2.90945340942E+01
+ -2.90945148246E+01 -2.90944948646E+01 -2.90944741902E+01 -2.90944527762E+01
+ -2.90944305967E+01 -2.90944076248E+01 -2.90943838327E+01 -2.90943591916E+01
+ -2.90943336719E+01 -2.90943072425E+01 -2.90942798719E+01 -2.90942515269E+01
+ -2.90942221734E+01 -2.90941917763E+01 -2.90941602987E+01 -2.90941277031E+01
+ -2.90940939505E+01 -2.90940590001E+01 -2.90940228101E+01 -2.90939853374E+01
+ -2.90939465370E+01 -2.90939063623E+01 -2.90938647658E+01 -2.90938216975E+01
+ -2.90937771061E+01 -2.90937309384E+01 -2.90936831396E+01 -2.90936336524E+01
+ -2.90935824183E+01 -2.90935293761E+01 -2.90934744630E+01 -2.90934176134E+01
+ -2.90933587603E+01 -2.90932978333E+01 -2.90932347608E+01 -2.90931694675E+01
+ -2.90931018765E+01 -2.90930319073E+01 -2.90929594777E+01 -2.90928845014E+01
+ -2.90928068903E+01 -2.90927265523E+01 -2.90926433929E+01 -2.90925573136E+01
+ -2.90924682133E+01 -2.90923759862E+01 -2.90922805244E+01 -2.90921817149E+01
+ -2.90920794417E+01 -2.90919735839E+01 -2.90918640176E+01 -2.90917506133E+01
+ -2.90916332383E+01 -2.90915117541E+01 -2.90913860186E+01 -2.90912558835E+01
+ -2.90911211966E+01 -2.90909817993E+01 -2.90908375290E+01 -2.90906882154E+01
+ -2.90905336845E+01 -2.90903737546E+01 -2.90902082391E+01 -2.90900369432E+01
+ -2.90898596676E+01 -2.90896762038E+01 -2.90894863380E+01 -2.90892898476E+01
+ -2.90890865041E+01 -2.90888760681E+01 -2.90886582957E+01 -2.90884329310E+01
+ -2.90881997123E+01 -2.90879583660E+01 -2.90877086122E+01 -2.90874501580E+01
+ -2.90871827036E+01 -2.90869059355E+01 -2.90866195331E+01 -2.90863231609E+01
+ -2.90860164756E+01 -2.90856991181E+01 -2.90853707213E+01 -2.90850309007E+01
+ -2.90846792632E+01 -2.90843153976E+01 -2.90839388831E+01 -2.90835492798E+01
+ -2.90831461373E+01 -2.90827289846E+01 -2.90822973397E+01 -2.90818506989E+01
+ -2.90813885463E+01 -2.90809103425E+01 -2.90804155357E+01 -2.90799035489E+01
+ -2.90793737913E+01 -2.90788256454E+01 -2.90782584790E+01 -2.90776716315E+01
+ -2.90770644263E+01 -2.90764361563E+01 -2.90757860978E+01 -2.90751134940E+01
+ -2.90744175704E+01 -2.90736975175E+01 -2.90729525061E+01 -2.90721816703E+01
+ -2.90713841230E+01 -2.90705589374E+01 -2.90697051642E+01 -2.90688218120E+01
+ -2.90679078650E+01 -2.90669622623E+01 -2.90659839173E+01 -2.90649716945E+01
+ -2.90639244316E+01 -2.90628409138E+01 -2.90617198973E+01 -2.90605600824E+01
+ -2.90593601386E+01 -2.90581186752E+01 -2.90568342686E+01 -2.90555054314E+01
+ -2.90541306403E+01 -2.90527083038E+01 -2.90512367932E+01 -2.90497144054E+01
+ -2.90481393976E+01 -2.90465099484E+01 -2.90448241936E+01 -2.90430801849E+01
+ -2.90412759278E+01 -2.90394093383E+01 -2.90374782835E+01 -2.90354805338E+01
+ -2.90334138080E+01 -2.90312757218E+01 -2.90290638343E+01 -2.90267755963E+01
+ -2.90244083973E+01 -2.90219595105E+01 -2.90194261441E+01 -2.90168053823E+01
+ -2.90140942399E+01 -2.90112895980E+01 -2.90083882649E+01 -2.90053869056E+01
+ -2.90022821073E+01 -2.89990703042E+01 -2.89957478472E+01 -2.89923109237E+01
+ -2.89887556328E+01 -2.89850778986E+01 -2.89812735503E+01 -2.89773382312E+01
+ -2.89732674831E+01 -2.89690566488E+01 -2.89647009633E+01 -2.89601954490E+01
+ -2.89555350130E+01 -2.89507143359E+01 -2.89457279754E+01 -2.89405702471E+01
+ -2.89352353358E+01 -2.89297171678E+01 -2.89240095303E+01 -2.89181059346E+01
+ -2.89119997437E+01 -2.89056840264E+01 -2.88991516939E+01 -2.88923953429E+01
+ -2.88854074033E+01 -2.88781799692E+01 -2.88707049573E+01 -2.88629739265E+01
+ -2.88549782472E+01 -2.88467089085E+01 -2.88381566992E+01 -2.88293120016E+01
+ -2.88201649862E+01 -2.88107053902E+01 -2.88009227258E+01 -2.87908060442E+01
+ -2.87803441587E+01 -2.87695253913E+01 -2.87583378124E+01 -2.87467689697E+01
+ -2.87348061455E+01 -2.87224360654E+01 -2.87096451747E+01 -2.86964193282E+01
+ -2.86827440841E+01 -2.86686043733E+01 -2.86539848147E+01 -2.86388693612E+01
+ -2.86232416374E+01 -2.86070845610E+01 -2.85903807060E+01 -2.85731118963E+01
+ -2.85552595956E+01 -2.85368044726E+01 -2.85177268203E+01 -2.84980060899E+01
+ -2.84776213402E+01 -2.84565507397E+01 -2.84347720491E+01 -2.84122620883E+01
+ -2.83889972539E+01 -2.83649529493E+01 -2.83401041414E+01 -2.83144247491E+01
+ -2.82878882412E+01 -2.82604669839E+01 -2.82321328810E+01 -2.82028566779E+01
+ -2.81726086470E+01 -2.81413578441E+01 -2.81090728458E+01 -2.80757209527E+01
+ -2.80412689817E+01 -2.80056824144E+01 -2.79689262482E+01 -2.79309640857E+01
+ -2.78917590479E+01 -2.78512728027E+01 -2.78094665435E+01 -2.77662999528E+01
+ -2.77217322524E+01 -2.76757210957E+01 -2.76282236947E+01 -2.75791956393E+01
+ -2.75285921034E+01 -2.74763665873E+01 -2.74224722095E+01 -2.73668603664E+01
+ -2.73094821150E+01 -2.72502867465E+01 -2.71892232643E+01 -2.71262388676E+01
+ -2.70612805292E+01 -2.69942933854E+01 -2.69252224189E+01 -2.68540107505E+01
+ -2.67806014313E+01 -2.67049356344E+01 -2.66269545591E+01 -2.65465975198E+01
+ -2.64638039671E+01 -2.63785114715E+01 -2.62906578631E+01 -2.62001791113E+01
+ -2.61070115846E+01 -2.60110898258E+01 -2.59123489357E+01 -2.58107222452E+01
+ -2.57061438232E+01 -2.55985460507E+01 -2.54878622549E+01 -2.53740241903E+01
+ -2.52569648006E+01 -2.51366156165E+01 -2.50129096477E+01 -2.48857787082E+01
+ -2.47551564424E+01 -2.46209755935E+01 -2.44831711672E+01 -2.43416776633E+01
+ -2.41964323807E+01 -2.40473726352E+01 -2.38944392100E+01 -2.37375735852E+01
+ -2.35767215302E+01 -2.34118303750E+01 -2.32428527266E+01 -2.30697438111E+01
+ -2.28924652711E+01 -2.27109825977E+01 -2.25252689252E+01 -2.23353025562E+01
+ -2.21410706023E+01 -2.19425665740E+01 -2.17397936321E+01 -2.15327621625E+01
+ -2.13214923115E+01 -2.11060114065E+01 -2.08863553953E+01 -2.06625659522E+01
+ -2.04346905464E+01 -2.02027792243E+01 -1.99668835881E+01 -1.97270539479E+01
+ -1.94833391036E+01 -1.92357867309E+01 -1.89844497698E+01 -1.87293984702E+01
+ -1.84707476135E+01 -1.82087014048E+01 -1.79436326175E+01 -1.76762100481E+01
+ -1.74074619943E+01 -1.71368850175E+01 -1.68643262021E+01 -1.65900875687E+01
+ -1.63144985569E+01 -1.60379216764E+01 -1.57607509620E+01 -1.54834184704E+01
+ -1.52063928019E+01 -1.49301865093E+01 -1.46553548689E+01 -1.43825042833E+01
+ -1.41122915116E+01 -1.38454331619E+01 -1.35827056083E+01 -1.33249556702E+01
+ -1.30731014437E+01 -1.28281442433E+01 -1.25911705383E+01 -1.23633651646E+01
+ -1.21460144547E+01 -1.19405415743E+01 -1.17397665767E+01 -1.15423742009E+01
+ -1.13483064738E+01 -1.11575065759E+01 -1.09699187572E+01 -1.07854883371E+01
+ -1.06041616405E+01 -1.04258857987E+01 -1.02506095134E+01 -1.00782817857E+01
+ -9.90885276166E+00 -9.74227349083E+00 -9.57849589637E+00 -9.41747275698E+00
+ -9.25915766921E+00 -9.10350501276E+00 -8.95046991720E+00 -8.80000821836E+00
+ -8.65207664854E+00 -8.50663260537E+00 -8.36363421100E+00 -8.22304029964E+00
+ -8.08481040353E+00 -7.94890474063E+00 -7.81528420167E+00 -7.68391033890E+00
+ -7.55474535364E+00 -7.42775208543E+00 -7.30289400047E+00 -7.18013518108E+00
+ -7.05944031493E+00 -6.94077468488E+00 -6.82410415838E+00 -6.70939517791E+00
+ -6.59661475103E+00 -6.48573044083E+00 -6.37671035643E+00 -6.26952314389E+00
+ -6.16413797696E+00 -6.06052454838E+00 -5.95865306085E+00 -5.85849421871E+00
+ -5.76001921918E+00 -5.66319974441E+00 -5.56800795293E+00 -5.47441647188E+00
+ -5.38239838900E+00 -5.29192724496E+00 -5.20297702566E+00 -5.11552215470E+00
+ -5.02953748597E+00 -4.94499829674E+00 -4.86188027994E+00 -4.78015953778E+00
+ -4.69981257436E+00 -4.62081628924E+00 -4.54314797054E+00 -4.46678528859E+00
+ -4.39170628933E+00 -4.31788938816E+00 -4.24531336351E+00 -4.17395735088E+00
+ -4.10380083683E+00 -4.03482365291E+00 -3.96700597006E+00 -3.90032829274E+00
+ -3.83477145338E+00 -3.77031660684E+00 -3.70694522498E+00 -3.64463909138E+00
+ -3.58338029597E+00 -3.52315122996E+00 -3.46393458078E+00 -3.40571332702E+00
+ -3.34847073358E+00 -3.29219034685E+00 -3.23685598994E+00 -3.18245175806E+00
+ -3.12896201392E+00 -3.07637138318E+00 -3.02466475013E+00 -2.97382725320E+00
+ -2.92384428087E+00 -2.87470146723E+00 -2.82638468804E+00 -2.77888005657E+00
+ -2.73217391959E+00 -2.68625285350E+00 -2.64110366041E+00 -2.59671336440E+00
+ -2.55306920773E+00 -2.51015864716E+00 -2.46796935045E+00 -2.42648919264E+00
+ -2.38570625271E+00 -2.34560881004E+00 -2.30618534115E+00 -2.26742451628E+00
+ -2.22931519614E+00 -2.19184642884E+00 -2.15500744654E+00 -2.11878766247E+00
+ -2.08317666789E+00 -2.04816422906E+00 -2.01374028426E+00 -1.97989494102E+00
+ -1.94661847310E+00 -1.91390131787E+00 -1.88173407343E+00 -1.85010749596E+00
+ -1.81901249706E+00 -1.78844014114E+00 -1.75838164280E+00 -1.72882836440E+00
+ -1.69977181345E+00 -1.67120364030E+00 -1.64311563565E+00 -1.61549972820E+00
+ -1.58834798237E+00 -1.56165259598E+00 -1.53540589801E+00 -1.50960034642E+00
+ -1.48422852595E+00 -1.45928314600E+00 -1.43475703856E+00 -1.41064315610E+00
+ -1.38693456957E+00 -1.36362446641E+00 -1.34070614860E+00 -1.31817303070E+00
+ -1.29601863801E+00 -1.27423660462E+00 -1.25282067169E+00 -1.23176468559E+00
+ -1.21106259611E+00 -1.19070845477E+00 -1.17069641310E+00 -1.15102072090E+00
+ -1.13167572469E+00 -1.11265586599E+00 -1.09395567979E+00 -1.07556979291E+00
+ -1.05749292258E+00 -1.03971987467E+00 -1.02224554252E+00 -1.00506490527E+00
+ -9.88173026452E-01 -9.71565052577E-01 -9.55236211740E-01 -9.39181812284E-01
+ -9.23397241376E-01 -9.07877963746E-01 -8.92619520375E-01 -8.77617527156E-01
+ -8.62867673712E-01 -8.48365722118E-01 -8.34107505669E-01 -8.20088927718E-01
+ -8.06305960479E-01 -7.92754643856E-01 -7.79431084332E-01 -7.66331453836E-01
+ -7.53451988633E-01 -7.40788988275E-01 -7.28338814494E-01 -7.16097890186E-01
+ -7.04062698373E-01 -6.92229781188E-01 -6.80595738908E-01 -6.69157228928E-01
+ -6.57910964840E-01 -6.46853715486E-01 -6.35982304003E-01 -6.25293606930E-01
+ -6.14784553329E-01 -6.04452123840E-01 -5.94293349880E-01 -5.84305312760E-01
+ -5.74485142849E-01 -5.64830018746E-01 -5.55337166479E-01 -5.46003858697E-01
+ -5.36827413891E-01 -5.27805195628E-01 -5.18934611784E-01 -5.10213113806E-01
+ -5.01638195975E-01 -4.93207394691E-01 -4.84918287762E-01 -4.76768493707E-01
+ -4.68755671072E-01 -4.60877517762E-01 -4.53131770372E-01 -4.45516203539E-01
+ -4.38028629309E-01 -4.30666896496E-01 -4.23428890077E-01 -4.16312530576E-01
+ -4.09315773466E-01 -4.02436608585E-01 -3.95673059559E-01 -3.89023183231E-01
+ -3.82485069104E-01 -3.76056838791E-01 -3.69736645477E-01 -3.63522673391E-01
+ -3.57413137274E-01 -3.51406281879E-01 -3.45500381457E-01 -3.39693739265E-01
+ -3.33984687079E-01 -3.28371584713E-01 -3.22852819550E-01 -3.17426806073E-01
+ -3.12091985418E-01 -3.06846824919E-01 -3.01689817670E-01 -2.96619482094E-01
+ -2.91634361513E-01 -2.86733023733E-01 -2.81914060632E-01 -2.77176087755E-01
+ -2.72517743914E-01 -2.67937690800E-01 -2.63434612597E-01 -2.59007215606E-01
+ -2.54654227868E-01 -2.50374398806E-01 -2.46166498858E-01 -2.42029319131E-01
+ -2.37961671047E-01 -2.33962386007E-01 -2.30030315051E-01 -2.26164328531E-01
+ -2.22363315784E-01 -2.18626184816E-01 -2.14951861984E-01 -2.11339291690E-01
+ -2.07787436079E-01 -2.04295274739E-01 -2.00861804407E-01 -1.97486038682E-01
+ -1.94167007743E-01 -1.90903758066E-01 -1.87695352157E-01 -1.84540868274E-01
+ -1.81439400169E-01 -1.78390056826E-01 -1.75391962202E-01 -1.72444254979E-01
+ -1.69546088316E-01 -1.66696629603E-01 -1.63895060224E-01 -1.61140575323E-01
+ -1.58432383568E-01 -1.55769706930E-01 -1.53151780454E-01 -1.50577852044E-01
+ -1.48047182241E-01
+</PP_LOCAL>
+
+
+<PP_NONLOCAL>
+ <PP_BETA>
+ 1 0 Beta L
+ 519
+ 0.00000000000E+00 1.79929805083E-05 3.62879437081E-05 5.49080025961E-05
+ 7.38322146787E-05 9.30881011270E-05 1.12674615079E-04 1.32590088986E-04
+ 1.52848394379E-04 1.73451703794E-04 1.94417516687E-04 2.15717888733E-04
+ 2.37407887521E-04 2.59465500444E-04 2.81875907370E-04 3.04691697618E-04
+ 3.27898817823E-04 3.51492813606E-04 3.75489137670E-04 3.99907105680E-04
+ 4.24730767614E-04 4.49984180267E-04 4.75671916390E-04 5.01770600202E-04
+ 5.28379061951E-04 5.55379831259E-04 5.82867505968E-04 6.10828261169E-04
+ 6.39258837411E-04 6.68182869947E-04 6.97571543823E-04 7.27539310272E-04
+ 7.57905736099E-04 7.88913848472E-04 8.20352531851E-04 8.52366869258E-04
+ 8.84961113203E-04 9.18031968822E-04 9.51771199048E-04 9.85991350252E-04
+ 1.02085143464E-03 1.05629480367E-03 1.09235348336E-03 1.12898914834E-03
+ 1.16631202741E-03 1.20421271946E-03 1.24281615112E-03 1.28204153837E-03
+ 1.32194127656E-03 1.36253149065E-03 1.40381726843E-03 1.44582127187E-03
+ 1.48849984197E-03 1.53195311112E-03 1.57613683952E-03 1.62105847454E-03
+ 1.66676545814E-03 1.71323607914E-03 1.76053748252E-03 1.80862189726E-03
+ 1.85751306575E-03 1.90726338293E-03 1.95784694776E-03 2.00933139912E-03
+ 2.06165316203E-03 2.11489507800E-03 2.16903009708E-03 2.22409322631E-03
+ 2.28012751782E-03 2.33707004810E-03 2.39502890870E-03 2.45394486040E-03
+ 2.51390037970E-03 2.57485031445E-03 2.63687118949E-03 2.69992108574E-03
+ 2.76408158033E-03 2.82929761933E-03 2.89567735175E-03 2.96315322264E-03
+ 3.03180546939E-03 3.10160611246E-03 3.17264607525E-03 3.24483913761E-03
+ 3.31831052559E-03 3.39302841513E-03 3.46900860869E-03 3.54631315204E-03
+ 3.62491241090E-03 3.70488475186E-03 3.78617984745E-03 3.86890365281E-03
+ 3.95304738647E-03 4.03857569268E-03 4.12564838005E-03 4.21412172069E-03
+ 4.30416397506E-03 4.39572862157E-03 4.48886604279E-03 4.58357512370E-03
+ 4.67993912152E-03 4.77790625192E-03 4.87757930955E-03 4.97895130054E-03
+ 5.08204010205E-03 5.18691856480E-03 5.29356390026E-03 5.40203885886E-03
+ 5.51238182895E-03 5.62459902915E-03 5.73872552056E-03 5.85481380925E-03
+ 5.97290584717E-03 6.09297099758E-03 6.21514066378E-03 6.33934038455E-03
+ 6.46572692768E-03 6.59421564077E-03 6.72494254785E-03 6.85788128664E-03
+ 6.99310322734E-03 7.13063452173E-03 7.27051150377E-03 7.41277707962E-03
+ 7.55749965855E-03 7.70465103858E-03 7.85436254297E-03 8.00661116164E-03
+ 8.16145805299E-03 8.31895844196E-03 8.47916754997E-03 8.64208253986E-03
+ 8.80780355427E-03 8.97635900352E-03 9.14778035842E-03 9.32214811737E-03
+ 9.49949004161E-03 9.67984943424E-03 9.86332515245E-03 1.00499027009E-02
+ 1.02396951219E-02 1.04327087977E-02 1.06290432667E-02 1.08287155869E-02
+ 1.10318191428E-02 1.12383751900E-02 1.14484783582E-02 1.16621616524E-02
+ 1.18795130897E-02 1.21005531891E-02 1.23253995255E-02 1.25540694477E-02
+ 1.27866612563E-02 1.30232250358E-02 1.32638217187E-02 1.35085522784E-02
+ 1.37574466009E-02 1.40106027861E-02 1.42680910990E-02 1.45299748041E-02
+ 1.47963338485E-02 1.50672522433E-02 1.53427987125E-02 1.56230512204E-02
+ 1.59080980037E-02 1.61980171152E-02 1.64928950459E-02 1.67928059054E-02
+ 1.70978497920E-02 1.74081047406E-02 1.77236667058E-02 1.80446136830E-02
+ 1.83710605909E-02 1.87030800043E-02 1.90407660193E-02 1.93842449385E-02
+ 1.97335764653E-02 2.00888885882E-02 2.04502719227E-02 2.08178340341E-02
+ 2.11916745117E-02 2.15719093422E-02 2.19586492555E-02 2.23519846015E-02
+ 2.27520551287E-02 2.31589666237E-02 2.35728228922E-02 2.39937642754E-02
+ 2.44218890017E-02 2.48573432017E-02 2.53002398472E-02 2.57506982368E-02
+ 2.62088638887E-02 2.66748603627E-02 2.71488220177E-02 2.76308832126E-02
+ 2.81211862457E-02 2.86198706005E-02 2.91270802046E-02 2.96429569132E-02
+ 3.01676520643E-02 3.07013217497E-02 3.12441058271E-02 3.17961693597E-02
+ 3.23576764460E-02 3.29287754950E-02 3.35096369150E-02 3.41004292712E-02
+ 3.47013180890E-02 3.53124813679E-02 3.59340898805E-02 3.65663213894E-02
+ 3.72093625101E-02 3.78633998820E-02 3.85286071451E-02 3.92051906951E-02
+ 3.98933427971E-02 4.05932485806E-02 4.13051273094E-02 4.20291685344E-02
+ 4.27655903735E-02 4.35145972317E-02 4.42764083792E-02 4.50512383409E-02
+ 4.58393183638E-02 4.66408657198E-02 4.74561140345E-02 4.82853012332E-02
+ 4.91286565262E-02 4.99864322787E-02 5.08588668905E-02 5.17462174967E-02
+ 5.26487328167E-02 5.35666768683E-02 5.45003114861E-02 5.54499054879E-02
+ 5.64157279799E-02 5.73980646289E-02 5.83971876851E-02 5.94133929366E-02
+ 6.04469643630E-02 6.14982060700E-02 6.25674157006E-02 6.36548997635E-02
+ 6.47609776523E-02 6.58859537000E-02 6.70301666565E-02 6.81939330637E-02
+ 6.93775933581E-02 7.05814849116E-02 7.18059553714E-02 7.30513567088E-02
+ 7.43180440649E-02 7.56063811899E-02 7.69167432477E-02 7.82495000478E-02
+ 7.96050393569E-02 8.09837458789E-02 8.23860210140E-02 8.38122622654E-02
+ 8.52628842496E-02 8.67382982720E-02 8.82389319829E-02 8.97652155691E-02
+ 9.13175850640E-02 9.28964903789E-02 9.45023813533E-02 9.61357193971E-02
+ 9.77969753181E-02 9.94866274051E-02 1.01205155189E-01 1.02953058452E-01
+ 1.04730834397E-01 1.06538995765E-01 1.08378063166E-01 1.10248558504E-01
+ 1.12151027393E-01 1.14086007766E-01 1.16054062187E-01 1.18055748596E-01
+ 1.20091648151E-01 1.22162340290E-01 1.24268421742E-01 1.26410496971E-01
+ 1.28589178529E-01 1.30805094093E-01 1.33058878564E-01 1.35351177741E-01
+ 1.37682651098E-01 1.40053964858E-01 1.42465801130E-01 1.44918851334E-01
+ 1.47413818964E-01 1.49951418489E-01 1.52532378771E-01 1.55157438930E-01
+ 1.57827351227E-01 1.60542881038E-01 1.63304808031E-01 1.66113920245E-01
+ 1.68971025018E-01 1.71876941071E-01 1.74832496849E-01 1.77838543587E-01
+ 1.80895937277E-01 1.84005554686E-01 1.87168286959E-01 1.90385035262E-01
+ 1.93656722225E-01 1.96984281945E-01 2.00368664085E-01 2.03810838728E-01
+ 2.07311785045E-01 2.10872504690E-01 2.14494012516E-01 2.18177341520E-01
+ 2.21923542022E-01 2.25733681115E-01 2.29608842612E-01 2.33550131926E-01
+ 2.37558666511E-01 2.41635588189E-01 2.45782054841E-01 2.49999240205E-01
+ 2.54288344641E-01 2.58650578970E-01 2.63087180789E-01 2.67599403146E-01
+ 2.72188521323E-01 2.76855829547E-01 2.81602643448E-01 2.86430298571E-01
+ 2.91340152018E-01 2.96333581406E-01 3.01411986198E-01 3.06576785838E-01
+ 3.11829423483E-01 3.17171362562E-01 3.22604087141E-01 3.28129106796E-01
+ 3.33747949374E-01 3.39462166626E-01 3.45273331776E-01 3.51183040284E-01
+ 3.57192909509E-01 3.63304578996E-01 3.69519709732E-01 3.75839983853E-01
+ 3.82267106616E-01 3.88802802675E-01 3.95448818372E-01 4.02206920283E-01
+ 4.09078895656E-01 4.16066550076E-01 4.23171709171E-01 4.30396215841E-01
+ 4.37741931883E-01 4.45210733363E-01 4.52804513654E-01 4.60525180601E-01
+ 4.68374653461E-01 4.76354865321E-01 4.84467757149E-01 4.92715280893E-01
+ 5.01099392270E-01 5.09622052820E-01 5.18285226001E-01 5.27090873494E-01
+ 5.36040954710E-01 5.45137420541E-01 5.54382214437E-01 5.63777262168E-01
+ 5.73324474784E-01 5.83025738022E-01 5.92882911595E-01 6.02897821711E-01
+ 6.13072254795E-01 6.23407952697E-01 6.33906604928E-01 6.44569840160E-01
+ 6.55399220261E-01 6.66396227891E-01 6.77562260851E-01 6.88898617835E-01
+ 7.00406489600E-01 7.12086945225E-01 7.23940919629E-01 7.35969197929E-01
+ 7.48172401032E-01 7.60550968611E-01 7.73105139405E-01 7.85834934546E-01
+ 7.98740132628E-01 8.11820250762E-01 8.25074517128E-01 8.38501846268E-01
+ 8.52100809917E-01 8.65869607588E-01 8.79806032561E-01 8.93907438010E-01
+ 9.08170698969E-01 9.22592173109E-01 9.37167655858E-01 9.51892336632E-01
+ 9.66760748812E-01 9.81766717300E-01 9.96903304024E-01 1.01216274650E+00
+ 1.02753639737E+00 1.04301465524E+00 1.05858689505E+00 1.07424139184E+00
+ 1.08996524161E+00 1.10574427675E+00 1.12156297787E+00 1.13740437836E+00
+ 1.15324996906E+00 1.16907959107E+00 1.18487133123E+00 1.20060140577E+00
+ 1.21624404485E+00 1.23177136785E+00 1.24715325759E+00 1.26235722797E+00
+ 1.27734828845E+00 1.29208880568E+00 1.30653836063E+00 1.32065360525E+00
+ 1.33438811636E+00 1.34769224979E+00 1.36051299521E+00 1.37279383340E+00
+ 1.38447459768E+00 1.39549134101E+00 1.40577621169E+00 1.41525734133E+00
+ 1.42385874586E+00 1.43150024559E+00 1.43809740876E+00 1.44356152110E+00
+ 1.44779959079E+00 1.45071439276E+00 1.45220456096E+00 1.45216473848E+00
+ 1.45048579421E+00 1.44705511827E+00 1.44175701061E+00 1.43447317687E+00
+ 1.42508334947E+00 1.41346605556E+00 1.39949955158E+00 1.38306295603E+00
+ 1.36403760438E+00 1.34230866619E+00 1.31776706006E+00 1.29031171231E+00
+ 1.25985221088E+00 1.22631191023E+00 1.18963155491E+00 1.14977349467E+00
+ 1.10672657442E+00 1.06051179442E+00 1.01118884590E+00 9.58863640972E-01
+ 9.03696969622E-01 8.45914430941E-01 7.85817802283E-01 7.23798026105E-01
+ 6.60350013003E-01 5.96089474589E-01 5.31772022433E-01 4.68314781676E-01
+ 4.06820790542E-01 3.48606468807E-01 2.95232457352E-01 2.48538140894E-01
+ 2.10680183203E-01 1.84200713959E-01 1.61208872148E-01 1.40253925944E-01
+ 1.21325977571E-01 1.04373530524E-01 8.93014772047E-02 7.59571792178E-02
+ 6.41325261609E-02 5.36701520241E-02 4.41714302045E-02 3.52916667952E-02
+ 2.67535128974E-02 1.84277802576E-02 1.05151802637E-02 3.79039726657E-03
+ 2.54677826658E-04 -3.87358686504E-05 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_BETA>
+ <PP_BETA>
+ 2 0 Beta L
+ 519
+ 0.00000000000E+00 4.52637436143E-05 9.13117211121E-05 1.38124761351E-04
+ 1.85764600702E-04 2.34202639865E-04 2.83457819639E-04 3.33587804062E-04
+ 3.84545230604E-04 4.36394524760E-04 4.89097225077E-04 5.42758233203E-04
+ 5.97277575951E-04 6.52731332331E-04 7.09204829459E-04 7.66573133530E-04
+ 8.24930383262E-04 8.84298972528E-04 9.44698729690E-04 1.00608538690E-03
+ 1.06856785474E-03 1.13209262493E-03 1.19670058763E-03 1.26249093338E-03
+ 1.32922662921E-03 1.39728040212E-03 1.46642470249E-03 1.53674306813E-03
+ 1.60828392945E-03 1.68102718662E-03 1.75510201184E-03 1.83022060902E-03
+ 1.90694860299E-03 1.98463979401E-03 2.06393646192E-03 2.14449145041E-03
+ 2.22631864648E-03 2.30977672201E-03 2.39437543761E-03 2.48068052982E-03
+ 2.56831811015E-03 2.65747588084E-03 2.74813985627E-03 2.84046878944E-03
+ 2.93418462867E-03 3.02969880277E-03 3.12666910257E-03 3.22541192675E-03
+ 3.32583598311E-03 3.42794387336E-03 3.53180273231E-03 3.63739102361E-03
+ 3.74491403732E-03 3.85414342509E-03 3.96527714775E-03 4.07836063757E-03
+ 4.19332363526E-03 4.31030627408E-03 4.42917862975E-03 4.55016392006E-03
+ 4.67325412707E-03 4.79838457800E-03 4.92570011411E-03 5.05509362378E-03
+ 5.18681479652E-03 5.32071744909E-03 5.45695931955E-03 5.59551676101E-03
+ 5.73636057711E-03 5.87975285751E-03 6.02547497392E-03 6.17378065900E-03
+ 6.32453205141E-03 6.47794298144E-03 6.63389873710E-03 6.79260313665E-03
+ 6.95393475483E-03 7.11812992504E-03 7.28500158486E-03 7.45483318036E-03
+ 7.62749891491E-03 7.80319444704E-03 7.98175344908E-03 8.16354289308E-03
+ 8.34831569009E-03 8.53626845896E-03 8.72748161478E-03 8.92188721418E-03
+ 9.11969111366E-03 9.32079373656E-03 9.52545923274E-03 9.73351151706E-03
+ 9.94510381191E-03 1.01604647372E-02 1.03792716973E-02 1.06020719306E-02
+ 1.08285130115E-02 1.10588804617E-02 1.12931545733E-02 1.15314988912E-02
+ 1.17738114819E-02 1.20203887471E-02 1.22710948455E-02 1.25261000907E-02
+ 1.27855060428E-02 1.30492704395E-02 1.33176162996E-02 1.35905274514E-02
+ 1.38680668079E-02 1.41503821402E-02 1.44375500494E-02 1.47295904066E-02
+ 1.50265729979E-02 1.53287557338E-02 1.56359563472E-02 1.59485765980E-02
+ 1.62663530235E-02 1.65897287854E-02 1.69185128336E-02 1.72529801812E-02
+ 1.75931330086E-02 1.79391048570E-02 1.82910052614E-02 1.86489266124E-02
+ 1.90128918104E-02 1.93832071771E-02 1.97597224159E-02 2.01427371826E-02
+ 2.05323058398E-02 2.09285171952E-02 2.13314497096E-02 2.17413630683E-02
+ 2.21582212243E-02 2.25821956474E-02 2.30134617637E-02 2.34520506176E-02
+ 2.38981523513E-02 2.43519167064E-02 2.48133417585E-02 2.52827474943E-02
+ 2.57601021155E-02 2.62456801733E-02 2.67394939409E-02 2.72417947232E-02
+ 2.77526312822E-02 2.82722463447E-02 2.88006976489E-02 2.93382072499E-02
+ 2.98848579368E-02 3.04409234967E-02 3.10064107535E-02 3.15816155424E-02
+ 3.21666122718E-02 3.27616096089E-02 3.33668074394E-02 3.39822813039E-02
+ 3.46083264304E-02 3.52450440941E-02 3.58926256607E-02 3.65512872519E-02
+ 3.72212008816E-02 3.79025425667E-02 3.85955288382E-02 3.93003622705E-02
+ 4.00172254497E-02 4.07463309976E-02 4.14878820633E-02 4.22421174501E-02
+ 4.30092164999E-02 4.37894244169E-02 4.45829447060E-02 4.53900416826E-02
+ 4.62108826514E-02 4.70457577766E-02 4.78949154963E-02 4.87585117106E-02
+ 4.96369057432E-02 5.05302683434E-02 5.14388895129E-02 5.23630175428E-02
+ 5.33029322633E-02 5.42588796745E-02 5.52311275440E-02 5.62200109361E-02
+ 5.72257398819E-02 5.82486246117E-02 5.92889939805E-02 6.03470854944E-02
+ 6.14232640703E-02 6.25177717196E-02 6.36309538574E-02 6.47631528039E-02
+ 6.59146398723E-02 6.70857730773E-02 6.82768783460E-02 6.94883040435E-02
+ 7.07203810402E-02 7.19734655472E-02 7.32479116256E-02 7.45440916565E-02
+ 7.58623659006E-02 7.72030938518E-02 7.85666921818E-02 7.99535251092E-02
+ 8.13639679824E-02 8.27984583965E-02 8.42573846957E-02 8.57411554783E-02
+ 8.72502021604E-02 8.87849373953E-02 9.03458082157E-02 9.19332587796E-02
+ 9.35477227514E-02 9.51896507585E-02 9.68595470383E-02 9.85578386657E-02
+ 1.00285010534E-01 1.02041584096E-01 1.03828002917E-01 1.05644811331E-01
+ 1.07492490992E-01 1.09371582288E-01 1.11282598518E-01 1.13226090278E-01
+ 1.15202575609E-01 1.17212634276E-01 1.19256818510E-01 1.21335688898E-01
+ 1.23449851154E-01 1.25599865437E-01 1.27786353914E-01 1.30009906284E-01
+ 1.32271156929E-01 1.34570721305E-01 1.36909241044E-01 1.39287362448E-01
+ 1.41705753101E-01 1.44165057097E-01 1.46665981452E-01 1.49209188790E-01
+ 1.51795401589E-01 1.54425308645E-01 1.57099643286E-01 1.59819138278E-01
+ 1.62584516719E-01 1.65396570219E-01 1.68256020671E-01 1.71163675922E-01
+ 1.74120309937E-01 1.77126727618E-01 1.80183735663E-01 1.83292156416E-01
+ 1.86452831018E-01 1.89666608524E-01 1.92934331693E-01 1.96256890869E-01
+ 1.99635155458E-01 2.03070033902E-01 2.06562418554E-01 2.10113245546E-01
+ 2.13723432485E-01 2.17393940783E-01 2.21125716332E-01 2.24919732475E-01
+ 2.28776978185E-01 2.32698438771E-01 2.36685130115E-01 2.40738074996E-01
+ 2.44858300177E-01 2.49046848552E-01 2.53304793988E-01 2.57633189907E-01
+ 2.62033131952E-01 2.66505709220E-01 2.71052024726E-01 2.75673215036E-01
+ 2.80370386759E-01 2.85144706017E-01 2.89997306517E-01 2.94929373831E-01
+ 2.99942065193E-01 3.05036581459E-01 3.10214113196E-01 3.15475867566E-01
+ 3.20823067549E-01 3.26256933034E-01 3.31778700394E-01 3.37389616790E-01
+ 3.43090927733E-01 3.48883899222E-01 3.54769791194E-01 3.60749875746E-01
+ 3.66825430003E-01 3.72997737521E-01 3.79268080016E-01 3.85637747891E-01
+ 3.92108031716E-01 3.98680222183E-01 4.05355606053E-01 4.12135482601E-01
+ 4.19021132425E-01 4.26013837892E-01 4.33114888753E-01 4.40325543050E-01
+ 4.47647078103E-01 4.55080743872E-01 4.62627778777E-01 4.70289424073E-01
+ 4.78066886017E-01 4.85961365715E-01 4.93974045258E-01 5.02106071056E-01
+ 5.10358586566E-01 5.18732689646E-01 5.27229459058E-01 5.35849936819E-01
+ 5.44595128735E-01 5.53466003166E-01 5.62463488410E-01 5.71588456025E-01
+ 5.80841744639E-01 5.90224121506E-01 5.99736303007E-01 6.09378950316E-01
+ 6.19152636495E-01 6.29057885175E-01 6.39095123443E-01 6.49264705378E-01
+ 6.59566889669E-01 6.70001843295E-01 6.80569627228E-01 6.91270196519E-01
+ 7.02103387117E-01 7.13068912823E-01 7.24166354074E-01 7.35395154606E-01
+ 7.46754603903E-01 7.58243836583E-01 7.69861823528E-01 7.81607347135E-01
+ 7.93479012517E-01 8.05475219661E-01 8.17594159691E-01 8.29833799785E-01
+ 8.42191872267E-01 8.54665859163E-01 8.67252981667E-01 8.79950184576E-01
+ 8.92754116095E-01 9.05661121335E-01 9.18667218857E-01 9.31768086416E-01
+ 9.44959040731E-01 9.58235023913E-01 9.71590577787E-01 9.85019829648E-01
+ 9.98516464400E-01 1.01207371365E+00 1.02568432158E+00 1.03934052656E+00
+ 1.05303404192E+00 1.06675602004E+00 1.08049703906E+00 1.09424706191E+00
+ 1.10799542430E+00 1.12173079338E+00 1.13544114378E+00 1.14911372975E+00
+ 1.16273504760E+00 1.17629081265E+00 1.18976591392E+00 1.20314439872E+00
+ 1.21640941865E+00 1.22954321202E+00 1.24252705649E+00 1.25534123920E+00
+ 1.26796502142E+00 1.28037659776E+00 1.29255306102E+00 1.30447036835E+00
+ 1.31610329752E+00 1.32742542025E+00 1.33840905426E+00 1.34902523823E+00
+ 1.35924368911E+00 1.36903277307E+00 1.37835946950E+00 1.38718934419E+00
+ 1.39548651674E+00 1.40321363467E+00 1.41033185373E+00 1.41680080934E+00
+ 1.42257861042E+00 1.42762181602E+00 1.43188543640E+00 1.43532292583E+00
+ 1.43788618979E+00 1.43952559270E+00 1.44018998151E+00 1.43982670991E+00
+ 1.43838167754E+00 1.43579937580E+00 1.43202295339E+00 1.42699428401E+00
+ 1.42065405665E+00 1.41294188029E+00 1.40379640102E+00 1.39315544831E+00
+ 1.38095618818E+00 1.36713531230E+00 1.35162924125E+00 1.33437436088E+00
+ 1.31530728273E+00 1.29436513785E+00 1.27148590053E+00 1.24660875458E+00
+ 1.21967448328E+00 1.19062591965E+00 1.15940841779E+00 1.12597038997E+00
+ 1.09026387494E+00 1.05224517028E+00 1.01187550789E+00 9.69121791819E-01
+ 9.23957391091E-01 8.76362991375E-01 8.26327511582E-01 7.73849078563E-01
+ 7.18936069147E-01 6.61608213387E-01 6.01897761417E-01 5.39850710807E-01
+ 4.75528091625E-01 4.09007306481E-01 3.40383518598E-01 2.69771076319E-01
+ 1.97304972288E-01 1.23142317104E-01 4.74638117273E-02 -2.95247938385E-02
+ -1.07591289167E-01 -1.86475660039E-01 -2.65888849316E-01 -3.45511664155E-01
+ -4.24993872360E-01 -5.03953543236E-01 -5.81976698163E-01 -6.58617339532E-01
+ -7.33397941073E-01 -8.05810497430E-01 -8.75318228956E-01 -9.41358075641E-01
+ -1.00334409443E+00 -1.06067192312E+00 -1.11272446177E+00 -1.15887895152E+00
+ -1.19851564241E+00 -1.23102824957E+00 -1.25583641897E+00 -1.27240042548E+00
+ -1.28023833335E+00 -1.27894585719E+00 -1.26821915130E+00 -1.24788074905E+00
+ -1.21790885598E+00 -1.17847017143E+00 -1.12995637887E+00 -1.07302439497E+00
+ -1.00864041452E+00 -9.38127714667E-01 -8.63218125845E-01 -7.86106996166E-01
+ -7.09511440957E-01 -6.36731641666E-01 -5.71715016028E-01 -5.19123220994E-01
+ -4.84402273264E-01 -4.73913600872E-01 -4.70287663570E-01 -4.69927069119E-01
+ -4.72087795862E-01 -4.75501990154E-01 -4.78315344584E-01 -4.78029388478E-01
+ -4.71540734151E-01 -4.55532773690E-01 -4.26059133661E-01 -3.79774561440E-01
+ -3.14841462477E-01 -2.32494294294E-01 -1.39587923512E-01 -5.20434626569E-02
+ -3.12207308619E-03 3.30317636865E-04 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_BETA>
+ <PP_BETA>
+ 3 1 Beta L
+ 519
+ 0.00000000000E+00 -2.74697413111E-10 3.06010885430E-09 1.32386658486E-09
+ -5.47060885723E-10 -3.07138227976E-09 -6.22998977427E-09 -1.00615668566E-08
+ -1.45946329789E-08 -1.98678762301E-08 -2.59121306495E-08 -3.27663893676E-08
+ -4.04709357783E-08 -4.90609663359E-08 -5.85811984796E-08 -6.90713131296E-08
+ -8.05816271419E-08 -9.31498708649E-08 -1.06832127695E-07 -1.21673298030E-07
+ -1.37729340689E-07 -1.55047147579E-07 -1.73687942487E-07 -1.93714364911E-07
+ -2.15172484033E-07 -2.38135846664E-07 -2.62672977865E-07 -2.88830740723E-07
+ -3.16709591423E-07 -3.46352410226E-07 -3.77854026829E-07 -4.11282625007E-07
+ -4.46726090376E-07 -4.84263250332E-07 -5.23976388672E-07 -5.65972271340E-07
+ -6.10332508589E-07 -6.57151562701E-07 -7.06537422974E-07 -7.58599331880E-07
+ -8.13428220386E-07 -8.71158396267E-07 -9.31888098446E-07 -9.95752782660E-07
+ -1.06286489674E-06 -1.13336357108E-06 -1.20738923167E-06 -1.28505783927E-06
+ -1.36655037311E-06 -1.45198294069E-06 -1.54152997430E-06 -1.63535254741E-06
+ -1.73361575410E-06 -1.83648261212E-06 -1.94414962699E-06 -2.05680437807E-06
+ -2.17461531940E-06 -2.29782938457E-06 -2.42657992691E-06 -2.56117186573E-06
+ -2.70175986946E-06 -2.84859987197E-06 -3.00194184110E-06 -3.16201546820E-06
+ -3.32908743820E-06 -3.50340959350E-06 -3.68529237947E-06 -3.87497870060E-06
+ -4.07280009126E-06 -4.27905499459E-06 -4.49402246811E-06 -4.71810701479E-06
+ -4.95158786181E-06 -5.19483345940E-06 -5.44823749861E-06 -5.71212177706E-06
+ -5.98696745946E-06 -6.27306574363E-06 -6.57096461182E-06 -6.88099319117E-06
+ -7.20367574524E-06 -7.53943327142E-06 -7.88878020283E-06 -8.25221419043E-06
+ -8.63024133799E-06 -9.02343674807E-06 -9.43228989164E-06 -9.85744943509E-06
+ -1.02995032960E-05 -1.07590142878E-05 -1.12366830025E-05 -1.17331534135E-05
+ -1.22491176995E-05 -1.27853003244E-05 -1.33423803287E-05 -1.39212177836E-05
+ -1.45225275773E-05 -1.51471484420E-05 -1.57959553671E-05 -1.64697573554E-05
+ -1.71695982642E-05 -1.78962311651E-05 -1.86508028405E-05 -1.94342230478E-05
+ -2.02475563534E-05 -2.10919089607E-05 -2.19683923769E-05 -2.28781278549E-05
+ -2.38223283376E-05 -2.48023397884E-05 -2.58192223727E-05 -2.68745971383E-05
+ -2.79695499536E-05 -2.91057510389E-05 -3.02845127053E-05 -3.15074263365E-05
+ -3.27760958571E-05 -3.40921041840E-05 -3.54572222036E-05 -3.68730894241E-05
+ -3.83416512081E-05 -3.98646861064E-05 -4.14442053758E-05 -4.30821844779E-05
+ -4.47807267375E-05 -4.65419888258E-05 -4.83681985733E-05 -5.02616463344E-05
+ -5.22247800713E-05 -5.42600334757E-05 -5.63699543019E-05 -5.85572719439E-05
+ -6.08246064290E-05 -6.31749573777E-05 -6.56111019442E-05 -6.81361875034E-05
+ -7.07533528243E-05 -7.34658279730E-05 -7.62770083200E-05 -7.91903724153E-05
+ -8.22095152167E-05 -8.53382496416E-05 -8.85803454459E-05 -9.19398472466E-05
+ -9.54209766190E-05 -9.90278995650E-05 -1.02765093047E-04 -1.06637249073E-04
+ -1.10648915939E-04 -1.14805220523E-04 -1.19111131975E-04 -1.23571990704E-04
+ -1.28193142787E-04 -1.32980338993E-04 -1.37939368494E-04 -1.43076245231E-04
+ -1.48397289061E-04 -1.53908868642E-04 -1.59617826248E-04 -1.65530848661E-04
+ -1.71655422115E-04 -1.77998656530E-04 -1.84568402956E-04 -1.91372553592E-04
+ -1.98419334871E-04 -2.05717210673E-04 -2.13275003431E-04 -2.21101863455E-04
+ -2.29207089454E-04 -2.37600583132E-04 -2.46292248225E-04 -2.55292690838E-04
+ -2.64612586943E-04 -2.74263152187E-04 -2.84255965972E-04 -2.94602911966E-04
+ -3.05316473482E-04 -3.16409343994E-04 -3.27894853899E-04 -3.39786659697E-04
+ -3.52098955370E-04 -3.64846424474E-04 -3.78044228681E-04 -3.91708119391E-04
+ -4.05854289857E-04 -4.20499587967E-04 -4.35661416193E-04 -4.51357751409E-04
+ -4.67607259598E-04 -4.84429150727E-04 -5.01843408706E-04 -5.19870650357E-04
+ -5.38532197780E-04 -5.57850148838E-04 -5.77847340085E-04 -5.98547411590E-04
+ -6.19974782882E-04 -6.42154822712E-04 -6.65113627149E-04 -6.88878296308E-04
+ -7.13476895003E-04 -7.38938343239E-04 -7.65292641975E-04 -7.92570813636E-04
+ -8.20804985065E-04 -8.50028321440E-04 -8.80275176053E-04 -9.11581132817E-04
+ -9.43982846295E-04 -9.77518519773E-04 -1.01222731624E-03 -1.04815013093E-03
+ -1.08532889333E-03 -1.12380733280E-03 -1.16363040800E-03 -1.20484480660E-03
+ -1.24749876250E-03 -1.29164210925E-03 -1.33732655024E-03 -1.38460550098E-03
+ -1.43353410095E-03 -1.48416958910E-03 -1.53657110311E-03 -1.59079968866E-03
+ -1.64691875443E-03 -1.70499362773E-03 -1.76509209458E-03 -1.82728417015E-03
+ -1.89164225726E-03 -1.95824132034E-03 -2.02715895475E-03 -2.09847527378E-03
+ -2.17227316004E-03 -2.24863864919E-03 -2.32766024603E-03 -2.40942993373E-03
+ -2.49404258919E-03 -2.58159648581E-03 -2.67219328365E-03 -2.76593795317E-03
+ -2.86293936616E-03 -2.96330982278E-03 -3.06716581024E-03 -3.17462744336E-03
+ -3.28581929046E-03 -3.40087007690E-03 -3.51991276517E-03 -3.64308522584E-03
+ -3.77052978059E-03 -3.90239369806E-03 -4.03882942088E-03 -4.17999435565E-03
+ -4.32605161344E-03 -4.47716961468E-03 -4.63352273473E-03 -4.79529117914E-03
+ -4.96266143510E-03 -5.13582623848E-03 -5.31498503691E-03 -5.50034403451E-03
+ -5.69211642460E-03 -5.89052283593E-03 -6.09579112542E-03 -6.30815736052E-03
+ -6.52786517939E-03 -6.75516691336E-03 -6.99032322670E-03 -7.23360382208E-03
+ -7.48528738299E-03 -7.74566237664E-03 -8.01502670440E-03 -8.29368866410E-03
+ -8.58196691065E-03 -8.88019085442E-03 -9.18870124811E-03 -9.50785008463E-03
+ -9.83800168807E-03 -1.01795322738E-02 -1.05328310714E-02 -1.08983003506E-02
+ -1.12763559476E-02 -1.16674277238E-02 -1.20719601307E-02 -1.24904122991E-02
+ -1.29232591994E-02 -1.33709914383E-02 -1.38341161602E-02 -1.43131577247E-02
+ -1.48086576883E-02 -1.53211760542E-02 -1.58512914356E-02 -1.63996016442E-02
+ -1.69667246233E-02 -1.75532987592E-02 -1.81599837008E-02 -1.87874610887E-02
+ -1.94364349712E-02 -2.01076330512E-02 -2.08018066782E-02 -2.15197324098E-02
+ -2.22622121282E-02 -2.30300742358E-02 -2.38241743691E-02 -2.46453960903E-02
+ -2.54946520889E-02 -2.63728846848E-02 -2.72810670367E-02 -2.82202040083E-02
+ -2.91913329648E-02 -3.01955248497E-02 -3.12338855848E-02 -3.23075561607E-02
+ -3.34177148302E-02 -3.45655772265E-02 -3.57523982474E-02 -3.69794723187E-02
+ -3.82481357060E-02 -3.95597664245E-02 -4.09157863214E-02 -4.23176622034E-02
+ -4.37669065857E-02 -4.52650794415E-02 -4.68137896748E-02 -4.84146954447E-02
+ -5.00695069510E-02 -5.17799864491E-02 -5.35479506007E-02 -5.53752713463E-02
+ -5.72638773202E-02 -5.92157558716E-02 -6.12329535749E-02 -6.33175785513E-02
+ -6.54718013044E-02 -6.76978567860E-02 -6.99980452906E-02 -7.23747342515E-02
+ -7.48303599215E-02 -7.73674282967E-02 -7.99885171390E-02 -8.26962771958E-02
+ -8.54934335211E-02 -8.83827872968E-02 -9.13672167332E-02 -9.44496788867E-02
+ -9.76332107693E-02 -1.00920930536E-01 -1.04316039099E-01 -1.07821820964E-01
+ -1.11441645332E-01 -1.15178967604E-01 -1.19037329584E-01 -1.23020361227E-01
+ -1.27131780490E-01 -1.31375394846E-01 -1.35755101007E-01 -1.40274885875E-01
+ -1.44938826614E-01 -1.49751090341E-01 -1.54715934554E-01 -1.59837706368E-01
+ -1.65120842104E-01 -1.70569866382E-01 -1.76189391225E-01 -1.81984114512E-01
+ -1.87958818461E-01 -1.94118367326E-01 -2.00467705767E-01 -2.07011855026E-01
+ -2.13755910901E-01 -2.20705039318E-01 -2.27864472772E-01 -2.35239505435E-01
+ -2.42835488543E-01 -2.50657823816E-01 -2.58711958376E-01 -2.67003376739E-01
+ -2.75537593815E-01 -2.84320146250E-01 -2.93356583605E-01 -3.02652457913E-01
+ -3.12213313318E-01 -3.22044674110E-01 -3.32152032063E-01 -3.42540832714E-01
+ -3.53216460621E-01 -3.64184223392E-01 -3.75449334722E-01 -3.87016896100E-01
+ -3.98891876971E-01 -4.11079094348E-01 -4.23583190032E-01 -4.36408607260E-01
+ -4.49559565120E-01 -4.63040032181E-01 -4.76853697724E-01 -4.91003942178E-01
+ -5.05493804741E-01 -5.20325950552E-01 -5.35502634950E-01 -5.51025666572E-01
+ -5.66896367948E-01 -5.83115535099E-01 -5.99683393853E-01 -6.16599555349E-01
+ -6.33862968595E-01 -6.51471871614E-01 -6.69423739655E-01 -6.87715231810E-01
+ -7.06342135052E-01 -7.25299306325E-01 -7.44580611347E-01 -7.64178862097E-01
+ -7.84085750822E-01 -8.04291781981E-01 -8.24786200320E-01 -8.45556917849E-01
+ -8.66590434979E-01 -8.87871760738E-01 -9.09384327241E-01 -9.31109901379E-01
+ -9.53028490317E-01 -9.75118244162E-01 -9.97355349882E-01 -1.01971392159E+00
+ -1.04216588114E+00 -1.06468083208E+00 -1.08722592277E+00 -1.10976569953E+00
+ -1.13226194759E+00 -1.15467351744E+00 -1.17695613664E+00 -1.19906220352E+00
+ -1.22094056173E+00 -1.24253625311E+00 -1.26379024722E+00 -1.28463914484E+00
+ -1.30501485465E+00 -1.32484423981E+00 -1.34404873566E+00 -1.36254393572E+00
+ -1.38023914906E+00 -1.39703692856E+00 -1.41283257684E+00 -1.42751363301E+00
+ -1.44095935193E+00 -1.45304018788E+00 -1.46361730017E+00 -1.47254210437E+00
+ -1.47965590015E+00 -1.48478961249E+00 -1.48776369654E+00 -1.48838826478E+00
+ -1.48646350919E+00 -1.48178050749E+00 -1.47412251697E+00 -1.46326688054E+00
+ -1.44898768760E+00 -1.43105935607E+00 -1.40926132167E+00 -1.38338404420E+00
+ -1.35323655798E+00 -1.31865581448E+00 -1.27951807093E+00 -1.23575258500E+00
+ -1.18735786509E+00 -1.13442069722E+00 -1.07713812306E+00 -1.01584246639E+00
+ -9.51029392855E-01 -8.83388836025E-01 -8.13838422559E-01 -7.43558773143E-01
+ -6.74029755121E-01 -6.07066401036E-01 -5.44852827979E-01 -4.89972102531E-01
+ -4.45429672857E-01 -4.14693631863E-01 -3.90508289838E-01 -3.71840494811E-01
+ -3.58831312135E-01 -3.51161953136E-01 -3.47900269336E-01 -3.47333833238E-01
+ -3.46847385208E-01 -3.42991551775E-01 -3.31271178543E-01 -3.06854763253E-01
+ -2.65455547379E-01 -2.05046700556E-01 -1.28913946887E-01 -5.02968209394E-02
+ -3.12956200992E-03 3.01239782353E-04 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_BETA>
+ <PP_BETA>
+ 4 1 Beta L
+ 519
+ 0.00000000000E+00 2.55293962697E-11 -4.90037370685E-09 -3.71601500559E-09
+ -2.81865069328E-09 -1.56198412511E-09 6.35329496131E-12 1.90928609761E-09
+ 4.16052247700E-09 6.77879737339E-09 9.78135325159E-09 1.31848148894E-08
+ 1.70105411417E-08 2.12769333367E-08 2.60048151381E-08 3.12144972047E-08
+ 3.69302471817E-08 4.31722616107E-08 4.99673666903E-08 5.73371640488E-08
+ 6.53105594881E-08 7.39113625197E-08 8.31699754250E-08 9.31118074768E-08
+ 1.03770963120E-07 1.15176069277E-07 1.27357381906E-07 1.40353562257E-07
+ 1.54193093351E-07 1.68916883625E-07 1.84561184768E-07 2.01162427162E-07
+ 2.18762512167E-07 2.37404950627E-07 2.57129260694E-07 2.77983552171E-07
+ 3.00012429025E-07 3.23264332320E-07 3.47792586008E-07 3.73642595792E-07
+ 4.00877118355E-07 4.29541025110E-07 4.59704766491E-07 4.91420959973E-07
+ 5.24745363120E-07 5.59765685337E-07 5.96517484078E-07 6.35097392038E-07
+ 6.75563082454E-07 7.17990641880E-07 7.62465141077E-07 8.09054686033E-07
+ 8.57854708838E-07 9.08942417290E-07 9.62412823766E-07 1.01835647118E-06
+ 1.07686781106E-06 1.13804754980E-06 1.20200136504E-06 1.26883382446E-06
+ 1.33865393559E-06 1.41158286431E-06 1.48772741574E-06 1.56722733044E-06
+ 1.65019497190E-06 1.73677476872E-06 1.82709465982E-06 1.92130100336E-06
+ 2.01954163367E-06 2.12196457258E-06 2.22873971463E-06 2.34001068550E-06
+ 2.45596460613E-06 2.57676930077E-06 2.70260890107E-06 2.83367260027E-06
+ 2.97015212280E-06 3.11225033849E-06 3.26017939114E-06 3.41415595042E-06
+ 3.57439886376E-06 3.74115710612E-06 3.91464588678E-06 4.09513118366E-06
+ 4.28288069042E-06 4.47813384616E-06 4.68120042088E-06 4.89234242855E-06
+ 5.11186157887E-06 5.34008441328E-06 5.57730302283E-06 5.82386911206E-06
+ 6.08010964477E-06 6.34638222051E-06 6.62306446172E-06 6.91052280371E-06
+ 7.20914864705E-06 7.51936453390E-06 7.84157122705E-06 8.17622949351E-06
+ 8.52375934845E-06 8.88465695309E-06 9.25939064528E-06 9.64847180102E-06
+ 1.00524050038E-05 1.04717430637E-05 1.09070266874E-05 1.13588437719E-05
+ 1.18277933425E-05 1.23144682024E-05 1.28195485647E-05 1.33436380942E-05
+ 1.38874844291E-05 1.44517456409E-05 1.50371847062E-05 1.56445557750E-05
+ 1.62746234991E-05 1.69282348404E-05 1.76062008681E-05 1.83094262540E-05
+ 1.90387765989E-05 1.97952126084E-05 2.05796892655E-05 2.13932136705E-05
+ 2.22368114943E-05 2.31115667768E-05 2.40185767650E-05 2.49590087290E-05
+ 2.59340235170E-05 2.69448768541E-05 2.79928312455E-05 2.90791986801E-05
+ 3.02053654394E-05 3.13727013751E-05 3.25827144638E-05 3.38368961939E-05
+ 3.51368030520E-05 3.64840636696E-05 3.78803614436E-05 3.93274168429E-05
+ 4.08270349876E-05 4.23810705798E-05 4.39914572763E-05 4.56601581860E-05
+ 4.73892645215E-05 4.91808842017E-05 5.10372488007E-05 5.29606018606E-05
+ 5.49533553220E-05 5.70179085511E-05 5.91568270509E-05 6.13726946212E-05
+ 6.36682697983E-05 6.60462928328E-05 6.85097243254E-05 7.10615334359E-05
+ 7.37048451470E-05 7.64428588592E-05 7.92789096468E-05 8.22164657980E-05
+ 8.52590309417E-05 8.84103632003E-05 9.16742353055E-05 9.50545963803E-05
+ 9.85555583167E-05 1.02181325684E-04 1.05936297484E-04 1.09824969495E-04
+ 1.13852066842E-04 1.18022401633E-04 1.22341016107E-04 1.26813094500E-04
+ 1.31444015475E-04 1.36239314737E-04 1.41204781683E-04 1.46346342116E-04
+ 1.51670166867E-04 1.57182631583E-04 1.62890323335E-04 1.68800082199E-04
+ 1.74918954577E-04 1.81254261899E-04 1.87813566307E-04 1.94604666697E-04
+ 2.01635704245E-04 2.08915035068E-04 2.16451316803E-04 2.24253549013E-04
+ 2.32330992764E-04 2.40693270194E-04 2.49350306414E-04 2.58312416022E-04
+ 2.67590192290E-04 2.77194707910E-04 2.87137319924E-04 2.97429842453E-04
+ 3.08084461050E-04 3.19113816530E-04 3.30530984176E-04 3.42349459541E-04
+ 3.54583255732E-04 3.67246854890E-04 3.80355208597E-04 3.93923859869E-04
+ 4.07968833611E-04 4.22506718642E-04 4.37554727926E-04 4.53130597916E-04
+ 4.69252763217E-04 4.85940226331E-04 5.03212722571E-04 5.21090605328E-04
+ 5.39594985721E-04 5.58747690535E-04 5.78571323282E-04 5.99089241143E-04
+ 6.20325653390E-04 6.42305600104E-04 6.65054974183E-04 6.88600605327E-04
+ 7.12970235741E-04 7.38192595213E-04 7.64297362007E-04 7.91315367679E-04
+ 8.19278370932E-04 8.48219363438E-04 8.78172417159E-04 9.09172823869E-04
+ 9.41257108793E-04 9.74463066687E-04 1.00882981001E-03 1.04439785185E-03
+ 1.08120906721E-03 1.11930685544E-03 1.15873610376E-03 1.19954328490E-03
+ 1.24177649695E-03 1.28548551563E-03 1.33072188969E-03 1.37753895683E-03
+ 1.42599193613E-03 1.47613799046E-03 1.52803628823E-03 1.58174807658E-03
+ 1.63733678592E-03 1.69486801525E-03 1.75440981341E-03 1.81603240704E-03
+ 1.87980874968E-03 1.94581420957E-03 2.01412686453E-03 2.08482757532E-03
+ 2.15800000535E-03 2.23373088142E-03 2.31210990415E-03 2.39323001382E-03
+ 2.47718744803E-03 2.56408185124E-03 2.65401640644E-03 2.74709801093E-03
+ 2.84343732310E-03 2.94314897989E-03 3.04635172421E-03 3.15316848706E-03
+ 3.26372668737E-03 3.37815825370E-03 3.49659980211E-03 3.61919299220E-03
+ 3.74608446092E-03 3.87742616039E-03 4.01337552220E-03 4.15409568281E-03
+ 4.29975563167E-03 4.45053051763E-03 4.60660182288E-03 4.76815761000E-03
+ 4.93539279555E-03 5.10850938821E-03 5.28771675357E-03 5.47323193897E-03
+ 5.66527989243E-03 5.86409384539E-03 6.06991555212E-03 6.28299573457E-03
+ 6.50359424304E-03 6.73198066482E-03 6.96843438829E-03 7.21324533113E-03
+ 7.46671407954E-03 7.72915241202E-03 8.00088376078E-03 8.28224364148E-03
+ 8.57358013485E-03 8.87525437964E-03 9.18764110788E-03 9.51112919438E-03
+ 9.84612221094E-03 1.01930389804E-02 1.05523143113E-02 1.09243994805E-02
+ 1.13097630625E-02 1.17088915271E-02 1.21222899907E-02 1.25504830601E-02
+ 1.29940154877E-02 1.34534532055E-02 1.39293839305E-02 1.44224184088E-02
+ 1.49331910599E-02 1.54623611732E-02 1.60106138598E-02 1.65786611692E-02
+ 1.71672432372E-02 1.77771294410E-02 1.84091196516E-02 1.90640456136E-02
+ 1.97427721216E-02 2.04461986618E-02 2.11752607341E-02 2.19309314552E-02
+ 2.27142232047E-02 2.35261893061E-02 2.43679257565E-02 2.52405731621E-02
+ 2.61453186319E-02 2.70833977057E-02 2.80560967204E-02 2.90647547116E-02
+ 3.01107659554E-02 3.11955822395E-02 3.23207154404E-02 3.34877401259E-02
+ 3.46982963303E-02 3.59540922841E-02 3.72569075897E-02 3.86085961172E-02
+ 4.00110893958E-02 4.14663998477E-02 4.29766244097E-02 4.45439480394E-02
+ 4.61706476327E-02 4.78590958205E-02 4.96117651516E-02 5.14312322286E-02
+ 5.33201821523E-02 5.52814129392E-02 5.73178404099E-02 5.94325027065E-02
+ 6.16285655588E-02 6.39093272147E-02 6.62782237773E-02 6.87388345581E-02
+ 7.12948876555E-02 7.39502654758E-02 7.67090105958E-02 7.95753314803E-02
+ 8.25536084270E-02 8.56483995092E-02 8.88644464792E-02 9.22066808406E-02
+ 9.56802296199E-02 9.92904213486E-02 1.03042791695E-01 1.06943089026E-01
+ 1.10997279757E-01 1.15211553322E-01 1.19592326863E-01 1.24146249433E-01
+ 1.28880205586E-01 1.33801318425E-01 1.38916951847E-01 1.44234711803E-01
+ 1.49762446608E-01 1.55508246078E-01 1.61480439052E-01 1.67687589652E-01
+ 1.74138491427E-01 1.80842159679E-01 1.87807821276E-01 1.95044902044E-01
+ 2.02563011034E-01 2.10371921621E-01 2.18481548951E-01 2.26901923192E-01
+ 2.35643158223E-01 2.44715415644E-01 2.54128862545E-01 2.63893623841E-01
+ 2.74019727352E-01 2.84517041708E-01 2.95395205978E-01 3.06663550528E-01
+ 3.18331008112E-01 3.30406014375E-01 3.42896397109E-01 3.55809252798E-01
+ 3.69150810280E-01 3.82926279484E-01 3.97139685319E-01 4.11793684636E-01
+ 4.26889366002E-01 4.42426030617E-01 4.58400953741E-01 4.74809125428E-01
+ 4.91642969500E-01 5.08892040398E-01 5.26542696332E-01 5.44577749119E-01
+ 5.62976089507E-01 5.81712288359E-01 6.00756173700E-01 6.20072384174E-01
+ 6.39619900062E-01 6.59351553124E-01 6.79213518057E-01 6.99144787551E-01
+ 7.19076635902E-01 7.38932074863E-01 7.58625308443E-01 7.78061193461E-01
+ 7.97134714627E-01 8.15730484267E-01 8.33722279113E-01 8.50972627695E-01
+ 8.67332464951E-01 8.82640872548E-01 8.96724925720E-01 9.09399670745E-01
+ 9.20468259364E-01 9.29722269585E-01 9.36942245196E-01 9.41898489026E-01
+ 9.44352147834E-01 9.44056628877E-01 9.40759390293E-01 9.34204148771E-01
+ 9.24133548157E-01 9.10292332431E-01 8.92431063643E-01 8.70310421996E-01
+ 8.43706118500E-01 8.12414441688E-01 7.76258447204E-01 7.35094783028E-01
+ 6.88821121369E-01 6.37384142686E-01 5.80787983913E-01 5.19103025096E-01
+ 4.52474840843E-01 3.81133090195E-01 3.05400055388E-01 2.25698470209E-01
+ 1.42558201161E-01 5.66212605554E-02 -3.13554575204E-02 -1.20500416421E-01
+ -2.09831436007E-01 -2.98264312239E-01 -3.84626976790E-01 -4.67680145453E-01
+ -5.46145390202E-01 -6.18741495405E-01 -6.84229800328E-01 -7.41468963824E-01
+ -7.89479180088E-01 -8.27515292674E-01 -8.55147457529E-01 -8.72346955736E-01
+ -8.79573410085E-01 -8.77857984336E-01 -8.68875117449E-01 -8.54992967836E-01
+ -8.39290059255E-01 -8.25522731829E-01 -8.18025110285E-01 -8.21520748669E-01
+ -8.40823437499E-01 -8.80395499359E-01 -9.47583182282E-01 -1.04548806296E+00
+ -1.17407299736E+00 -1.32965723554E+00 -1.50378906775E+00 -1.68219362363E+00
+ -1.84402478486E+00 -1.96178586936E+00 -2.00265564177E+00 -1.93186220779E+00
+ -1.71970422577E+00 -1.35405768816E+00 -8.61441577693E-01 -3.38188525903E-01
+ -2.10911551514E-02 2.03660002132E-03 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_BETA>
+ <PP_DIJ>
+ 6 Number of nonzero Dij
+ 1 1 3.00417142302E+00
+ 1 2 7.60773300033E-01
+ 2 2 7.38433249862E-01
+ 3 3 4.99764466284E+01
+ 3 4 -3.48653147721E+01
+ 4 4 2.42194809872E+01
+ </PP_DIJ>
+ <PP_QIJ>
+ 8 nqf. If not zero, Qij's inside rinner are computed using qfcoef's
+ <PP_RINNER>
+ 1 7.00000000000E-01
+ 2 7.00000000000E-01
+ 3 7.00000000000E-01
+ </PP_RINNER>
+ 1 1 0 i j (l(j))
+ -2.29578003365E-01 Q_int
+ 0.00000000000E+00 -3.30647279128E-10 -1.34529354327E-09 -3.07901979718E-09
+ -5.56831314349E-09 -8.85111862328E-09 -1.29668929015E-08 -1.79566598617E-08
+ -2.38630681774E-08 -3.07304509282E-08 -3.86048873334E-08 -4.75342666766E-08
+ -5.75683544977E-08 -6.87588611318E-08 -8.11595126771E-08 -9.48261244765E-08
+ -1.09816677201E-07 -1.26191395626E-07 -1.44012830191E-07 -1.63345941449E-07
+ -1.84258187494E-07 -2.06819614481E-07 -2.31102950343E-07 -2.57183701807E-07
+ -2.85140254850E-07 -3.15053978679E-07 -3.47009333389E-07 -3.81093981412E-07
+ -4.17398902888E-07 -4.56018515105E-07 -4.97050796136E-07 -5.40597412837E-07
+ -5.86763853334E-07 -6.35659564179E-07 -6.87398092325E-07 -7.42097232084E-07
+ -7.99879177258E-07 -8.60870678601E-07 -9.25203206819E-07 -9.93013121279E-07
+ -1.06444184465E-06 -1.13963604366E-06 -1.21874781618E-06 -1.30193488492E-06
+ -1.38936079781E-06 -1.48119513552E-06 -1.57761372614E-06 -1.67879886748E-06
+ -1.78493955706E-06 -1.89623173018E-06 -2.01287850637E-06 -2.13509044436E-06
+ -2.26308580607E-06 -2.39709082975E-06 -2.53734001271E-06 -2.68407640390E-06
+ -2.83755190675E-06 -2.99802759255E-06 -3.16577402480E-06 -3.34107159484E-06
+ -3.52421086926E-06 -3.71549294937E-06 -3.91522984328E-06 -4.12374485087E-06
+ -4.34137296225E-06 -4.56846127012E-06 -4.80536939645E-06 -5.05246993407E-06
+ -5.31014890366E-06 -5.57880622662E-06 -5.85885621446E-06 -6.15072807516E-06
+ -6.45486643728E-06 -6.77173189217E-06 -7.10180155521E-06 -7.44556964643E-06
+ -7.80354809147E-06 -8.17626714334E-06 -8.56427602589E-06 -8.96814359960E-06
+ -9.38845905055E-06 -9.82583260337E-06 -1.02808962589E-05 -1.07543045576E-05
+ -1.12467353693E-05 -1.17588907107E-05 -1.22914975910E-05 -1.28453088869E-05
+ -1.34211042484E-05 -1.40196910354E-05 -1.46419052873E-05 -1.52886127261E-05
+ -1.59607097946E-05 -1.66591247300E-05 -1.73848186755E-05 -1.81387868298E-05
+ -1.89220596371E-05 -1.97357040180E-05 -2.05808246430E-05 -2.14585652506E-05
+ -2.23701100109E-05 -2.33166849362E-05 -2.42995593409E-05 -2.53200473519E-05
+ -2.63795094715E-05 -2.74793541936E-05 -2.86210396776E-05 -2.98060754785E-05
+ -3.10360243382E-05 -3.23125040380E-05 -3.36371893162E-05 -3.50118138511E-05
+ -3.64381723137E-05 -3.79181224902E-05 -3.94535874794E-05 -4.10465579652E-05
+ -4.26990945684E-05 -4.44133302790E-05 -4.61914729738E-05 -4.80358080204E-05
+ -4.99487009713E-05 -5.19326003520E-05 -5.39900405442E-05 -5.61236447699E-05
+ -5.83361281786E-05 -6.06303010403E-05 -6.30090720500E-05 -6.54754517462E-05
+ -6.80325560472E-05 -7.06836099099E-05 -7.34319511150E-05 -7.62810341836E-05
+ -7.92344344279E-05 -8.22958521433E-05 -8.54691169441E-05 -8.87581922500E-05
+ -9.21671799270E-05 -9.57003250887E-05 -9.93620210635E-05 -1.03156814533E-04
+ -1.07089410849E-04 -1.11164679532E-04 -1.15387659962E-04 -1.19763567263E-04
+ -1.24297798393E-04 -1.28995938443E-04 -1.33863767154E-04 -1.38907265657E-04
+ -1.44132623449E-04 -1.49546245605E-04 -1.55154760243E-04 -1.60965026246E-04
+ -1.66984141244E-04 -1.73219449881E-04 -1.79678552360E-04 -1.86369313285E-04
+ -1.93299870807E-04 -2.00478646085E-04 -2.07914353074E-04 -2.15616008650E-04
+ -2.23592943081E-04 -2.31854810861E-04 -2.40411601922E-04 -2.49273653219E-04
+ -2.58451660724E-04 -2.67956691835E-04 -2.77800198198E-04 -2.87994028989E-04
+ -2.98550444635E-04 -3.09482131018E-04 -3.20802214164E-04 -3.32524275439E-04
+ -3.44662367261E-04 -3.57231029357E-04 -3.70245305581E-04 -3.83720761303E-04
+ -3.97673501397E-04 -4.12120188851E-04 -4.27078064010E-04 -4.42564964483E-04
+ -4.58599345728E-04 -4.75200302351E-04 -4.92387590128E-04 -5.10181648782E-04
+ -5.28603625548E-04 -5.47675399534E-04 -5.67419606927E-04 -5.87859667053E-04
+ -6.09019809335E-04 -6.30925101170E-04 -6.53601476760E-04 -6.77075766930E-04
+ -7.01375729961E-04 -7.26530083481E-04 -7.52568537443E-04 -7.79521828228E-04
+ -8.07421753911E-04 -8.36301210732E-04 -8.66194230806E-04 -8.97136021126E-04
+ -9.29163003882E-04 -9.62312858164E-04 -9.96624563078E-04 -1.03213844233E-03
+ -1.06889621031E-03 -1.10694101978E-03 -1.14631751114E-03 -1.18707186338E-03
+ -1.22925184678E-03 -1.27290687733E-03 -1.31808807309E-03 -1.36484831237E-03
+ -1.41324229395E-03 -1.46332659925E-03 -1.51515975666E-03 -1.56880230805E-03
+ -1.62431687745E-03 -1.68176824216E-03 -1.74122340608E-03 -1.80275167570E-03
+ -1.86642473850E-03 -1.93231674403E-03 -2.00050438771E-03 -2.07106699742E-03
+ -2.14408662301E-03 -2.21964812876E-03 -2.29783928898E-03 -2.37875088673E-03
+ -2.46247681587E-03 -2.54911418648E-03 -2.63876343381E-03 -2.73152843079E-03
+ -2.82751660428E-03 -2.92683905522E-03 -3.02961068261E-03 -3.13595031173E-03
+ -3.24598082644E-03 -3.35982930591E-03 -3.47762716577E-03 -3.59951030393E-03
+ -3.72561925108E-03 -3.85609932615E-03 -3.99110079682E-03 -4.13077904515E-03
+ -4.27529473869E-03 -4.42481400700E-03 -4.57950862390E-03 -4.73955619551E-03
+ -4.90514035442E-03 -5.07645095990E-03 -5.25368430459E-03 -5.43704332770E-03
+ -5.62673783491E-03 -5.82298472528E-03 -6.02600822515E-03 -6.23604012948E-03
+ -6.45332005060E-03 -6.67809567473E-03 -6.91062302635E-03 -7.15116674080E-03
+ -7.40000034509E-03 -7.65740654731E-03 -7.92367753485E-03 -8.19911528148E-03
+ -8.48403186374E-03 -8.77874978665E-03 -9.08360231910E-03 -9.39893383908E-03
+ -9.72510018899E-03 -1.00624690412E-02 -1.04114202741E-02 -1.07723463591E-02
+ -1.11456527582E-02 -1.15317583326E-02 -1.19310957637E-02 -1.23441119840E-02
+ -1.27712686211E-02 -1.32130424531E-02 -1.36699258757E-02 -1.41424273824E-02
+ -1.46310720565E-02 -1.51364020755E-02 -1.56589772291E-02 -1.61993754484E-02
+ -1.67581933498E-02 -1.73360467904E-02 -1.79335714369E-02 -1.85514233473E-02
+ -1.91902795660E-02 -1.98508387312E-02 -2.05338216956E-02 -2.12399721592E-02
+ -2.19700573156E-02 -2.27248685092E-02 -2.35052219061E-02 -2.43119591753E-02
+ -2.51459481818E-02 -2.60080836907E-02 -2.68992880814E-02 -2.78205120716E-02
+ -2.87727354500E-02 -2.97569678181E-02 -3.07742493381E-02 -3.18256514882E-02
+ -3.29122778227E-02 -3.40352647355E-02 -3.51957822270E-02 -3.63950346716E-02
+ -3.76342615842E-02 -3.89147383848E-02 -4.02377771571E-02 -4.16047274018E-02
+ -4.30169767786E-02 -4.44759518376E-02 -4.59831187339E-02 -4.75399839250E-02
+ -4.91480948450E-02 -5.08090405535E-02 -5.25244523539E-02 -5.42960043772E-02
+ -5.61254141256E-02 -5.80144429715E-02 -5.99648966048E-02 -6.19786254238E-02
+ -6.40575248615E-02 -6.62035356402E-02 -6.84186439481E-02 -7.07048815265E-02
+ -7.30643256615E-02 -7.54990990682E-02 -7.80113696580E-02 -8.06033501775E-02
+ -8.32772977066E-02 -8.60355130030E-02 -8.88803396799E-02 -9.18141632007E-02
+ -9.48394096769E-02 -9.79585444505E-02 -1.01174070444E-01 -1.04488526261E-01
+ -1.07904484008E-01 -1.11424546836E-01 -1.15051346153E-01 -1.18787538505E-01
+ -1.22635802087E-01 -1.26598832871E-01 -1.30679340301E-01 -1.34880042553E-01
+ -1.39203661301E-01 -1.43652915985E-01 -1.48230517519E-01 -1.52939161430E-01
+ -1.57781520367E-01 -1.62760235963E-01 -1.67877910001E-01 -1.73137094839E-01
+ -1.78540283064E-01 -1.84089896327E-01 -1.89788273316E-01 -1.95637656821E-01
+ -2.01640179859E-01 -2.07797850798E-01 -2.14112537458E-01 -2.20585950131E-01
+ -2.27219623481E-01 -2.34014897302E-01 -2.40972896077E-01 -2.48094507315E-01
+ -2.55380358645E-01 -2.62830793630E-01 -2.70445846293E-01 -2.78225214337E-01
+ -2.86168231066E-01 -2.94273836000E-01 -3.02540544217E-01 -3.10966414432E-01
+ -3.19549015869E-01 -3.28285393976E-01 -3.37172035050E-01 -3.46204829869E-01
+ -3.55379036433E-01 -3.64689241943E-01 -3.74129324161E-01 -3.83692412328E-01
+ -3.93370847826E-01 -4.03156144800E-01 -4.13038950980E-01 -4.23009008955E-01
+ -4.33055118185E-01 -4.43165098041E-01 -4.53325752192E-01 -4.63522834655E-01
+ -4.73741017835E-01 -4.83963862891E-01 -4.94173792726E-01 -5.04352067913E-01
+ -5.14478765815E-01 -5.24532763116E-01 -5.34491721929E-01 -5.44332079568E-01
+ -5.54029041976E-01 -5.63556580700E-01 -5.72887433171E-01 -5.81993105914E-01
+ -5.90843880160E-01 -5.99408819168E-01 -6.07655776411E-01 -6.15551403634E-01
+ -6.23061157665E-01 -6.30149304779E-01 -6.36778921415E-01 -6.42911890106E-01
+ -6.48508889723E-01 -6.53529379501E-01 -6.57931576950E-01 -6.61672430637E-01
+ -6.64707590072E-01 -6.66991376589E-01 -6.68476761238E-01 -6.69115358396E-01
+ -6.68857447070E-01 -6.67652035759E-01 -6.65446991238E-01 -6.62189256704E-01
+ -6.57825190094E-01 -6.52301058949E-01 -6.45563733369E-01 -6.37561622753E-01
+ -6.28245904304E-01 -6.17572090231E-01 -6.05501974704E-01 -5.92005988554E-01
+ -5.77065966842E-01 -5.60678298408E-01 -5.42857373617E-01 -5.23639172665E-01
+ -5.03084738029E-01 -4.81283147855E-01 -4.58353451111E-01 -4.34444843409E-01
+ -4.09734164663E-01 -3.84419608766E-01 -3.58709393054E-01 -3.32804113725E-01
+ -3.06871730965E-01 -2.81014772038E-01 -2.55230702444E-01 -2.29368934648E-01
+ -2.03092279106E-01 -1.75857763850E-01 -1.46943074392E-01 -1.15562446114E-01
+ -8.11426222703E-02 -4.38696737362E-02 -5.67702013075E-03 2.80676994408E-02
+ 4.73707220405E-02 5.98920895865E-02 7.04225313216E-02 7.89892766708E-02
+ 8.56368074651E-02 9.04265792912E-02 9.34365691890E-02 9.47606548541E-02
+ 9.45078345900E-02 9.28012958120E-02 8.97773414917E-02 8.55841785770E-02
+ 8.03805695145E-02 7.43343370851E-02 6.76207038219E-02 6.04204303077E-02
+ 5.29177021755E-02 4.52976954250E-02 3.77437350797E-02 3.04339484404E-02
+ 2.35373141534E-02 1.72090223889E-02 1.15851048664E-02 6.77637275976E-03
+ 2.86183253230E-03 -1.18055747106E-04 -2.16764446028E-03 -3.34091433019E-03
+ -3.74347006599E-03 -3.52995337212E-03 -2.89484830923E-03 -2.05471040033E-03
+ -1.22067437821E-03 -5.62299473183E-04 -1.68431039121E-04 -1.94065271944E-05
+ -3.02260183716E-08 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+ <PP_QFCOEF>
+ -1.17872206478E+01 6.40482532012E+01 -2.92694328204E+00 -1.61516322860E+03
+ 9.85323580722E+03 -2.86409118457E+04 4.13016805035E+04 -2.35080449602E+04
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 1 2 0 i j (l(j))
+ -1.39469934802E-01 Q_int
+ 0.00000000000E+00 -2.10670599477E-10 -8.57148433150E-10 -1.96178522371E-09
+ -3.54782858351E-09 -5.63945504454E-09 -8.26180426390E-09 -1.14410144458E-08
+ -1.52042590228E-08 -1.95797846401E-08 -2.45969504888E-08 -3.02862690353E-08
+ -3.66794481951E-08 -4.38094350020E-08 -5.17104608254E-08 -6.04180881885E-08
+ -6.99692592446E-08 -8.04023459686E-08 -9.17572021240E-08 -1.04075217067E-07
+ -1.17399371454E-07 -1.31774294912E-07 -1.47246325751E-07 -1.63863572782E-07
+ -1.81675979317E-07 -2.00735389418E-07 -2.21095616498E-07 -2.42812514322E-07
+ -2.65944050523E-07 -2.90550382696E-07 -3.16693937178E-07 -3.44439490595E-07
+ -3.73854254283E-07 -4.05007961672E-07 -4.37972958744E-07 -4.72824297672E-07
+ -5.09639833741E-07 -5.48500325683E-07 -5.89489539524E-07 -6.32694356085E-07
+ -6.78204882244E-07 -7.26114566110E-07 -7.76520316229E-07 -8.29522624973E-07
+ -8.85225696248E-07 -9.43737577679E-07 -1.00517029742E-06 -1.06964000578E-06
+ -1.13726712173E-06 -1.20817648466E-06 -1.28249751134E-06 -1.36036435840E-06
+ -1.44191609052E-06 -1.52729685445E-06 -1.61665605919E-06 -1.71014856237E-06
+ -1.80793486321E-06 -1.91018130219E-06 -2.01706026771E-06 -2.12875040994E-06
+ -2.24543686216E-06 -2.36731146981E-06 -2.49457302751E-06 -2.62742752443E-06
+ -2.76608839809E-06 -2.91077679711E-06 -3.06172185311E-06 -3.21916096199E-06
+ -3.38334007518E-06 -3.55451400087E-06 -3.73294671582E-06 -3.91891168805E-06
+ -4.11269221068E-06 -4.31458174748E-06 -4.52488429040E-06 -4.74391472955E-06
+ -4.97199923607E-06 -5.20947565830E-06 -5.45669393174E-06 -5.71401650327E-06
+ -5.98181877014E-06 -6.26048953418E-06 -6.55043147183E-06 -6.85206162049E-06
+ -7.16581188183E-06 -7.49212954249E-06 -7.83147781296E-06 -8.18433638511E-06
+ -8.55120200914E-06 -8.93258909057E-06 -9.32903030786E-06 -9.74107725164E-06
+ -1.01693010860E-05 -1.06142932326E-05 -1.10766660792E-05 -1.15570537115E-05
+ -1.20561126719E-05 -1.25745227434E-05 -1.31129877611E-05 -1.36722364521E-05
+ -1.42530233040E-05 -1.48561294642E-05 -1.54823636696E-05 -1.61325632089E-05
+ -1.68075949187E-05 -1.75083562132E-05 -1.82357761505E-05 -1.89908165350E-05
+ -1.97744730587E-05 -2.05877764817E-05 -2.14317938537E-05 -2.23076297776E-05
+ -2.32164277170E-05 -2.41593713493E-05 -2.51376859650E-05 -2.61526399159E-05
+ -2.72055461133E-05 -2.82977635783E-05 -2.94306990450E-05 -3.06058086203E-05
+ -3.18245995001E-05 -3.30886317456E-05 -3.43995201205E-05 -3.57589359923E-05
+ -3.71686092989E-05 -3.86303305833E-05 -4.01459530992E-05 -4.17173949881E-05
+ -4.33466415336E-05 -4.50357474916E-05 -4.67868395026E-05 -4.86021185866E-05
+ -5.04838627241E-05 -5.24344295271E-05 -5.44562590013E-05 -5.65518764049E-05
+ -5.87238952050E-05 -6.09750201367E-05 -6.33080503683E-05 -6.57258827746E-05
+ -6.82315153245E-05 -7.08280505844E-05 -7.35186993439E-05 -7.63067843650E-05
+ -7.91957442620E-05 -8.21891375147E-05 -8.52906466204E-05 -8.85040823886E-05
+ -9.18333883845E-05 -9.52826455251E-05 -9.88560768347E-05 -1.02558052363E-04
+ -1.06393094275E-04 -1.10365882112E-04 -1.14481258241E-04 -1.18744233484E-04
+ -1.23159992949E-04 -1.27733902053E-04 -1.32471512761E-04 -1.37378570036E-04
+ -1.42461018511E-04 -1.47725009389E-04 -1.53176907586E-04 -1.58823299117E-04
+ -1.64670998730E-04 -1.70727057815E-04 -1.76998772576E-04 -1.83493692485E-04
+ -1.90219629030E-04 -1.97184664763E-04 -2.04397162656E-04 -2.11865775781E-04
+ -2.19599457324E-04 -2.27607470939E-04 -2.35899401462E-04 -2.44485165990E-04
+ -2.53375025341E-04 -2.62579595906E-04 -2.72109861913E-04 -2.81977188104E-04
+ -2.92193332853E-04 -3.02770461732E-04 -3.13721161539E-04 -3.25058454810E-04
+ -3.36795814828E-04 -3.48947181146E-04 -3.61526975640E-04 -3.74550119110E-04
+ -3.88032048455E-04 -4.01988734428E-04 -4.16436700004E-04 -4.31393039374E-04
+ -4.46875437582E-04 -4.62902190846E-04 -4.79492227556E-04 -4.96665130003E-04
+ -5.14441156841E-04 -5.32841266317E-04 -5.51887140293E-04 -5.71601209082E-04
+ -5.92006677140E-04 -6.13127549620E-04 -6.34988659835E-04 -6.57615697655E-04
+ -6.81035238867E-04 -7.05274775532E-04 -7.30362747373E-04 -7.56328574223E-04
+ -7.83202689580E-04 -8.11016575292E-04 -8.39802797420E-04 -8.69595043307E-04
+ -9.00428159908E-04 -9.32338193411E-04 -9.65362430188E-04 -9.99539439140E-04
+ -1.03490911545E-03 -1.07151272584E-03 -1.10939295530E-03 -1.14859395542E-03
+ -1.18916139437E-03 -1.23114250847E-03 -1.27458615559E-03 -1.31954287026E-03
+ -1.36606492064E-03 -1.41420636743E-03 -1.46402312466E-03 -1.51557302261E-03
+ -1.56891587272E-03 -1.62411353473E-03 -1.68122998600E-03 -1.74033139313E-03
+ -1.80148618598E-03 -1.86476513410E-03 -1.93024142567E-03 -1.99799074904E-03
+ -2.06809137700E-03 -2.14062425373E-03 -2.21567308465E-03 -2.29332442913E-03
+ -2.37366779633E-03 -2.45679574407E-03 -2.54280398091E-03 -2.63179147155E-03
+ -2.72386054562E-03 -2.81911701001E-03 -2.91767026470E-03 -3.01963342244E-03
+ -3.12512343210E-03 -3.23426120605E-03 -3.34717175153E-03 -3.46398430619E-03
+ -3.58483247785E-03 -3.70985438872E-03 -3.83919282405E-03 -3.97299538548E-03
+ -4.11141464906E-03 -4.25460832822E-03 -4.40273944169E-03 -4.55597648661E-03
+ -4.71449361684E-03 -4.87847082671E-03 -5.04809414031E-03 -5.22355580636E-03
+ -5.40505449901E-03 -5.59279552442E-03 -5.78699103354E-03 -5.98786024101E-03
+ -6.19562965037E-03 -6.41053328585E-03 -6.63281293060E-03 -6.86271837180E-03
+ -7.10050765245E-03 -7.34644733031E-03 -7.60081274378E-03 -7.86388828510E-03
+ -8.13596768075E-03 -8.41735427939E-03 -8.70836134722E-03 -9.00931237099E-03
+ -9.32054136866E-03 -9.64239320786E-03 -9.97522393208E-03 -1.03194010948E-02
+ -1.06753041013E-02 -1.10433245589E-02 -1.14238666342E-02 -1.18173474192E-02
+ -1.22241973041E-02 -1.26448603593E-02 -1.30797947236E-02 -1.35294730009E-02
+ -1.39943826637E-02 -1.44750264643E-02 -1.49719228526E-02 -1.54856064006E-02
+ -1.60166282335E-02 -1.65655564663E-02 -1.71329766467E-02 -1.77194922026E-02
+ -1.83257248941E-02 -1.89523152699E-02 -1.95999231266E-02 -2.02692279704E-02
+ -2.09609294809E-02 -2.16757479751E-02 -2.24144248716E-02 -2.31777231524E-02
+ -2.39664278228E-02 -2.47813463667E-02 -2.56233091958E-02 -2.64931700919E-02
+ -2.73918066396E-02 -2.83201206474E-02 -2.92790385554E-02 -3.02695118271E-02
+ -3.12925173222E-02 -3.23490576479E-02 -3.34401614856E-02 -3.45668838898E-02
+ -3.57303065546E-02 -3.69315380447E-02 -3.81717139870E-02 -3.94519972163E-02
+ -4.07735778724E-02 -4.21376734416E-02 -4.35455287368E-02 -4.49984158115E-02
+ -4.64976337983E-02 -4.80445086673E-02 -4.96403928952E-02 -5.12866650363E-02
+ -5.29847291881E-02 -5.47360143402E-02 -5.65419735973E-02 -5.84040832652E-02
+ -6.03238417880E-02 -6.23027685239E-02 -6.43424023465E-02 -6.64443000586E-02
+ -6.86100346014E-02 -7.08411930458E-02 -7.31393743469E-02 -7.55061868465E-02
+ -7.79432455021E-02 -8.04521688261E-02 -8.30345755119E-02 -8.56920807275E-02
+ -8.84262920527E-02 -9.12388050374E-02 -9.41311983570E-02 -9.71050285386E-02
+ -1.00161824233E-01 -1.03303080005E-01 -1.06530249617E-01 -1.09844738775E-01
+ -1.13247897308E-01 -1.16741010760E-01 -1.20325291357E-01 -1.24001868326E-01
+ -1.27771777537E-01 -1.31635950443E-01 -1.35595202293E-01 -1.39650219590E-01
+ -1.43801546782E-01 -1.48049572155E-01 -1.52394512925E-01 -1.56836399513E-01
+ -1.61375058997E-01 -1.66010097738E-01 -1.70740883191E-01 -1.75566524920E-01
+ -1.80485854819E-01 -1.85497406599E-01 -1.90599394562E-01 -1.95789691730E-01
+ -2.01065807386E-01 -2.06424864128E-01 -2.11863574512E-01 -2.17378217417E-01
+ -2.22964614258E-01 -2.28618105195E-01 -2.34333525519E-01 -2.40105182396E-01
+ -2.45926832177E-01 -2.51791658518E-01 -2.57692251538E-01 -2.63620588286E-01
+ -2.69568014793E-01 -2.75525229993E-01 -2.81482271796E-01 -2.87428505616E-01
+ -2.93352615613E-01 -2.99242598927E-01 -3.05085763124E-01 -3.10868727041E-01
+ -3.16577425170E-01 -3.22197115632E-01 -3.27712391705E-01 -3.33107196754E-01
+ -3.38364842302E-01 -3.43468028776E-01 -3.48398868346E-01 -3.53138909036E-01
+ -3.57669159097E-01 -3.61970110408E-01 -3.66021759458E-01 -3.69803624242E-01
+ -3.73294755225E-01 -3.76473738413E-01 -3.79318688492E-01 -3.81807230062E-01
+ -3.83916465204E-01 -3.85622926019E-01 -3.86902511458E-01 -3.87730408737E-01
+ -3.88081001067E-01 -3.87927765245E-01 -3.87243165143E-01 -3.85998550136E-01
+ -3.84164071309E-01 -3.81708632708E-01 -3.78599900127E-01 -3.74804395700E-01
+ -3.70287712848E-01 -3.65014892527E-01 -3.58951007736E-01 -3.52062008148E-01
+ -3.44315879422E-01 -3.35684170791E-01 -3.26143937937E-01 -3.15680133490E-01
+ -3.04288451567E-01 -2.91978591896E-01 -2.78777848936E-01 -2.64734847347E-01
+ -2.49923132758E-01 -2.34444182382E-01 -2.18429222582E-01 -2.02039033529E-01
+ -1.85460696577E-01 -1.68900023736E-01 -1.52568248873E-01 -1.36661540009E-01
+ -1.21332147225E-01 -1.06650746907E-01 -9.25611133904E-02 -7.88311489976E-02
+ -6.50092875786E-02 -5.04034685246E-02 -3.41128831421E-02 -1.51628749242E-02
+ 7.17589328343E-03 3.27567926489E-02 5.94195922408E-02 8.10501950151E-02
+ 8.62482444627E-02 8.43603402225E-02 8.11033839910E-02 7.65624454231E-02
+ 7.08378555513E-02 6.40447020117E-02 5.63121529442E-02 4.77826100901E-02
+ 3.86106890381E-02 2.89620217697E-02 1.90118687487E-02 8.94351977800E-03
+ -1.05355219344E-03 -1.07858342961E-02 -2.00582860004E-02 -2.86773104586E-02
+ -3.64542987957E-02 -4.32098737675E-02 -4.87789696633E-02 -5.30168700834E-02
+ -5.58062905920E-02 -5.70655083352E-02 -5.67574071755E-02 -5.48990887149E-02
+ -5.15713960127E-02 -4.69272780649E-02 -4.11974021884E-02 -3.46908107587E-02
+ -2.77877987485E-02 -2.09217185286E-02 -1.45464504541E-02 -9.08694325607E-03
+ -4.87315767505E-03 -2.06362381824E-03 -5.76063169913E-04 -6.25156993317E-05
+ -7.24635414939E-08 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+ <PP_QFCOEF>
+ -7.51018077812E+00 4.17412982079E+01 6.61000298364E+01 -1.93478518144E+03
+ 1.13408118417E+04 -3.28045620796E+04 4.72807153347E+04 -2.69181330193E+04
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 1 3 1 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 -4.42080906326E-15 -3.62810556281E-14 -1.25624125051E-13
+ -3.05520111553E-13 -6.12282109718E-13 -1.08569594044E-12 -1.76926408868E-12
+ -2.71046467356E-12 -3.96102631694E-12 -5.57721982475E-12 -7.62016764578E-12
+ -1.01561721263E-11 -1.32570636350E-11 -1.70005696920E-11 -2.14707062988E-11
+ -2.67581927309E-11 -3.29608911253E-11 -4.01842722681E-11 -4.85419090641E-11
+ -5.81559992523E-11 -6.91579190168E-11 -8.16888092322E-11 -9.59001961793E-11
+ -1.11954648666E-10 -1.30026473593E-10 -1.50302452122E-10 -1.72982618707E-10
+ -1.98281085391E-10 -2.26426913890E-10 -2.57665038118E-10 -2.92257239971E-10
+ -3.30483181321E-10 -3.72641495339E-10 -4.19050940433E-10 -4.70051620279E-10
+ -5.26006273581E-10 -5.87301637428E-10 -6.54349888302E-10 -7.27590165010E-10
+ -8.07490178066E-10 -8.94547910261E-10 -9.89293413449E-10 -1.09229070681E-09
+ -1.20413978218E-09 -1.32547872230E-09 -1.45698593812E-09 -1.59938253184E-09
+ -1.75343479227E-09 -1.91995683001E-09 -2.09981335995E-09 -2.29392263911E-09
+ -2.50325956831E-09 -2.72885896658E-09 -2.97181902776E-09 -3.23330496900E-09
+ -3.51455288187E-09 -3.81687379683E-09 -4.14165797269E-09 -4.49037942334E-09
+ -4.86460069447E-09 -5.26597790392E-09 -5.69626605981E-09 -6.15732467149E-09
+ -6.65112366923E-09 -7.17974964911E-09 -7.74541246083E-09 -8.35045215681E-09
+ -8.99734632213E-09 -9.68871780567E-09 -1.04273428743E-08 -1.12161598124E-08
+ -1.20582779913E-08 -1.29569874334E-08 -1.39157688975E-08 -1.49383045135E-08
+ -1.60284889962E-08 -1.71904414684E-08 -1.84285179273E-08 -1.97473243867E-08
+ -2.11517307335E-08 -2.26468853345E-08 -2.42382304355E-08 -2.59315183936E-08
+ -2.77328287881E-08 -2.96485864565E-08 -3.16855805056E-08 -3.38509843483E-08
+ -3.61523768228E-08 -3.85977644506E-08 -4.11956048935E-08 -4.39548316756E-08
+ -4.68848802354E-08 -4.99957153801E-08 -5.32978602161E-08 -5.68024266349E-08
+ -6.05211474367E-08 -6.44664101780E-08 -6.86512928371E-08 -7.30896013910E-08
+ -7.77959094078E-08 -8.27855997602E-08 -8.80749085734E-08 -9.36809715250E-08
+ -9.96218726229E-08 -1.05916695592E-07 -1.12585578006E-07 -1.19649768316E-07
+ -1.27131685921E-07 -1.35054984446E-07 -1.43444618399E-07 -1.52326913384E-07
+ -1.61729640053E-07 -1.71682092007E-07 -1.82215167842E-07 -1.93361457565E-07
+ -2.05155333618E-07 -2.17633046735E-07 -2.30832826904E-07 -2.44794989706E-07
+ -2.59562048291E-07 -2.75178831319E-07 -2.91692607158E-07 -3.09153214684E-07
+ -3.27613201023E-07 -3.47127966597E-07 -3.67755917880E-07 -3.89558628238E-07
+ -4.12601007315E-07 -4.36951479382E-07 -4.62682171148E-07 -4.89869109515E-07
+ -5.18592429806E-07 -5.48936595018E-07 -5.80990626681E-07 -6.14848347933E-07
+ -6.50608639447E-07 -6.88375708905E-07 -7.28259374705E-07 -7.70375364677E-07
+ -8.14845630575E-07 -8.61798679184E-07 -9.11369920923E-07 -9.63702036845E-07
+ -1.01894536502E-06 -1.07725830729E-06 -1.13880775752E-06 -1.20376955242E-06
+ -1.27232894613E-06 -1.34468110984E-06 -1.42103165777E-06 -1.50159720084E-06
+ -1.58660592950E-06 -1.67629822733E-06 -1.77092731686E-06 -1.87075993949E-06
+ -1.97607707113E-06 -2.08717467556E-06 -2.20436449741E-06 -2.32797489681E-06
+ -2.45835172806E-06 -2.59585926437E-06 -2.74088117135E-06 -2.89382153156E-06
+ -3.05510592295E-06 -3.22518255402E-06 -3.40452345850E-06 -3.59362575288E-06
+ -3.79301295994E-06 -4.00323640171E-06 -4.22487666566E-06 -4.45854514776E-06
+ -4.70488567649E-06 -4.96457622208E-06 -5.23833069542E-06 -5.52690084124E-06
+ -5.83107823058E-06 -6.15169635768E-06 -6.48963284677E-06 -6.84581177450E-06
+ -7.22120611400E-06 -7.61684030692E-06 -8.03379297025E-06 -8.47319974472E-06
+ -8.93625629237E-06 -9.42422145093E-06 -9.93842055329E-06 -1.04802489205E-05
+ -1.10511755377E-05 -1.16527469217E-05 -1.22865911913E-05 -1.29544223503E-05
+ -1.36580447935E-05 -1.43993580493E-05 -1.51803617691E-05 -1.60031609772E-05
+ -1.68699715954E-05 -1.77831262553E-05 -1.87450804141E-05 -1.97584187894E-05
+ -2.08258621294E-05 -2.19502743364E-05 -2.31346699610E-05 -2.43822220875E-05
+ -2.56962706295E-05 -2.70803310576E-05 -2.85381035819E-05 -3.00734828120E-05
+ -3.16905679193E-05 -3.33936733290E-05 -3.51873399667E-05 -3.70763470908E-05
+ -3.90657247390E-05 -4.11607668215E-05 -4.33670448946E-05 -4.56904226486E-05
+ -4.81370711479E-05 -5.07134848617E-05 -5.34264985259E-05 -5.62833048784E-05
+ -5.92914733145E-05 -6.24589695077E-05 -6.57941760456E-05 -6.93059141356E-05
+ -7.30034664308E-05 -7.68966010383E-05 -8.09955967664E-05 -8.53112696768E-05
+ -8.98550010069E-05 -9.46387665336E-05 -9.96751674505E-05 -1.04977462837E-04
+ -1.10559603800E-04 -1.16436269374E-04 -1.22622904266E-04 -1.29135758544E-04
+ -1.35991929364E-04 -1.43209404838E-04 -1.50807110158E-04 -1.58804956080E-04
+ -1.67223889895E-04 -1.76085949013E-04 -1.85414317283E-04 -1.95233384196E-04
+ -2.05568807116E-04 -2.16447576680E-04 -2.27898085541E-04 -2.39950200605E-04
+ -2.52635338959E-04 -2.65986547644E-04 -2.80038587498E-04 -2.94828021241E-04
+ -3.10393306034E-04 -3.26774890728E-04 -3.44015318023E-04 -3.62159331803E-04
+ -3.81253989879E-04 -4.01348782421E-04 -4.22495756348E-04 -4.44749645984E-04
+ -4.68168010257E-04 -4.92811376798E-04 -5.18743393240E-04 -5.46030986087E-04
+ -5.74744527521E-04 -6.04958010510E-04 -6.36749232637E-04 -6.70199989065E-04
+ -7.05396275058E-04 -7.42428498541E-04 -7.81391703147E-04 -8.22385802280E-04
+ -8.65515824675E-04 -9.10892172040E-04 -9.58630889302E-04 -1.00885394809E-03
+ -1.06168954402E-03 -1.11727240848E-03 -1.17574413553E-03 -1.23725352465E-03
+ -1.30195694003E-03 -1.37001868715E-03 -1.44161140756E-03 -1.51691649240E-03
+ -1.59612451583E-03 -1.67943568898E-03 -1.76706033558E-03 -1.85921938996E-03
+ -1.95614491864E-03 -2.05808066639E-03 -2.16528262787E-03 -2.27801964595E-03
+ -2.39657403786E-03 -2.52124225034E-03 -2.65233554495E-03 -2.79018071498E-03
+ -2.93512083502E-03 -3.08751604482E-03 -3.24774436853E-03 -3.41620257108E-03
+ -3.59330705294E-03 -3.77949478489E-03 -3.97522428443E-03 -4.18097663539E-03
+ -4.39725655239E-03 -4.62459349203E-03 -4.86354281242E-03 -5.11468698293E-03
+ -5.37863684617E-03 -5.65603293390E-03 -5.94754683905E-03 -6.25388264586E-03
+ -6.57577842008E-03 -6.91400776166E-03 -7.26938142182E-03 -7.64274898710E-03
+ -8.03500063240E-03 -8.44706894562E-03 -8.87993082635E-03 -9.33460946098E-03
+ -9.81217637699E-03 -1.03137535791E-02 -1.08405157697E-02 -1.13936926573E-02
+ -1.19745713548E-02 -1.25844988711E-02 -1.32248847001E-02 -1.38972035084E-02
+ -1.46029979277E-02 -1.53438814527E-02 -1.61215414508E-02 -1.69377422859E-02
+ -1.77943285609E-02 -1.86932284836E-02 -1.96364573607E-02 -2.06261212240E-02
+ -2.16644205955E-02 -2.27536543954E-02 -2.38962240009E-02 -2.50946374605E-02
+ -2.63515138727E-02 -2.76695879348E-02 -2.90517146714E-02 -3.05008743511E-02
+ -3.20201776002E-02 -3.36128707253E-02 -3.52823412548E-02 -3.70321237114E-02
+ -3.88659056298E-02 -4.07875338330E-02 -4.28010209818E-02 -4.49105524151E-02
+ -4.71204932980E-02 -4.94353960948E-02 -5.18600083891E-02 -5.43992810693E-02
+ -5.70583769024E-02 -5.98426795172E-02 -6.27578028214E-02 -6.58096008733E-02
+ -6.90041782333E-02 -7.23479008148E-02 -7.58474072580E-02 -7.95096208422E-02
+ -8.33417619551E-02 -8.73513611275E-02 -9.15462726414E-02 -9.59346887076E-02
+ -1.00525154203E-01 -1.05326581943E-01 -1.10348268453E-01 -1.15599910185E-01
+ -1.21091620097E-01 -1.26833944501E-01 -1.32837880046E-01 -1.39114890660E-01
+ -1.45676924260E-01 -1.52536428959E-01 -1.59706368463E-01 -1.67200236287E-01
+ -1.75032068355E-01 -1.83216453435E-01 -1.91768540829E-01 -2.00704044587E-01
+ -2.10039243439E-01 -2.19790975515E-01 -2.29976626788E-01 -2.40614112077E-01
+ -2.51721847274E-01 -2.63318711354E-01 -2.75423996582E-01 -2.88057345196E-01
+ -3.01238670762E-01 -3.14988062266E-01 -3.29325668982E-01 -3.44271564118E-01
+ -3.59845585290E-01 -3.76067149975E-01 -3.92955044303E-01 -4.10527183859E-01
+ -4.28800345608E-01 -4.47789870661E-01 -4.67509338401E-01 -4.87970213468E-01
+ -5.09181468359E-01 -5.31149185898E-01 -5.53876147579E-01 -5.77361415876E-01
+ -6.01599920930E-01 -6.26582064626E-01 -6.52293357863E-01 -6.78714109761E-01
+ -7.05819190452E-01 -7.33577891862E-01 -7.61953913209E-01 -7.90905499508E-01
+ -8.20385761808E-01 -8.50343206625E-01 -8.80722498491E-01 -9.11465472969E-01
+ -9.42512407032E-01 -9.73803538487E-01 -1.00528080513E+00 -1.03688974674E+00
+ -1.06858147778E+00 -1.10031459605E+00 -1.13205684147E+00 -1.16378626216E+00
+ -1.19549158303E+00 -1.22717141072E+00 -1.25883185389E+00 -1.29048210084E+00
+ -1.32212749183E+00 -1.35375967183E+00 -1.38534353796E+00 -1.41680093878E+00
+ -1.44799148100E+00 -1.47869139992E+00 -1.50857230187E+00 -1.53718273014E+00
+ -1.56393696126E+00 -1.58811717562E+00 -1.60889704620E+00 -1.62539657145E+00
+ -1.63677909792E+00 -1.64240095962E+00 -1.64202035350E+00 -1.63606227630E+00
+ -1.62591628092E+00 -1.61420679024E+00 -1.60491149768E+00 -1.60309650422E+00
+ -1.61386413765E+00 -1.63983656344E+00 -1.67607491430E+00 -1.70068617224E+00
+ -1.66596364494E+00 -1.60459747936E+00 -1.53912209474E+00 -1.46992755662E+00
+ -1.39743621876E+00 -1.32209875566E+00 -1.24438979216E+00 -1.16480328836E+00
+ -1.08384788045E+00 -1.00204240583E+00 -9.19911867342E-01 -8.37984089137E-01
+ -7.56787299086E-01 -6.76848808423E-01 -5.98694860962E-01 -5.22851560472E-01
+ -4.49846570995E-01 -3.80210997012E-01 -3.14480515617E-01 -2.53194449708E-01
+ -1.96891095603E-01 -1.46097296071E-01 -1.01310092167E-01 -6.29684184486E-02
+ -3.14134210687E-02 -6.83729504782E-03 1.07771831039E-02 2.17207797616E-02
+ 2.66151569794E-02 2.64471286414E-02 2.25573144505E-02 1.65562400787E-02
+ 1.01422743389E-02 4.81049325354E-03 1.48250051933E-03 1.75683501796E-04
+ 1.60666950574E-07 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -2.97557874570E+01 2.33357214113E+02 -2.94942184463E+03 2.57388954807E+04
+ -1.22901584147E+05 3.20170408248E+05 -4.28377198184E+05 2.30130808624E+05
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 1 4 1 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 3.35387409860E-15 2.75248469247E-14 9.53055183385E-14
+ 2.31784719596E-13 4.64511604248E-13 8.23669931167E-13 1.34226312945E-12
+ 2.05631076773E-12 3.00505708493E-12 4.23119227614E-12 5.78108726554E-12
+ 7.70504273878E-12 1.00575532502E-11 1.28975872650E-11 1.62888840441E-11
+ 2.03002683292E-11 2.50059838388E-11 3.04860466408E-11 3.68266195267E-11
+ 4.41204085728E-11 5.24670831408E-11 6.19737206369E-11 7.27552774217E-11
+ 8.49350873392E-11 9.86453894134E-11 1.14027886345E-10 1.31234335530E-10
+ 1.50427174421E-10 1.71780182132E-10 1.95479179326E-10 2.21722768498E-10
+ 2.50723116901E-10 2.82706784490E-10 3.17915599364E-10 3.56607583348E-10
+ 3.99057930485E-10 4.45560041352E-10 4.96426616289E-10 5.51990810789E-10
+ 6.12607456462E-10 6.78654351189E-10 7.50533622261E-10 8.28673166521E-10
+ 9.13528171710E-10 1.00558272350E-09 1.10535150285E-09 1.21338157873E-09
+ 1.33025430125E-09 1.45658730087E-09 1.59303659936E-09 1.74029883860E-09
+ 1.89911363373E-09 2.07026605727E-09 2.25458926150E-09 2.45296724645E-09
+ 2.66633778158E-09 2.89569548927E-09 3.14209509915E-09 3.40665488226E-09
+ 3.69056027501E-09 3.99506770306E-09 4.32150861595E-09 4.67129374398E-09
+ 5.04591758915E-09 5.44696316297E-09 5.87610698435E-09 6.33512435160E-09
+ 6.82589490337E-09 7.35040848397E-09 7.91077132960E-09 8.50921259259E-09
+ 9.14809122191E-09 9.82990321908E-09 1.05572892896E-08 1.13330429112E-08
+ 1.21601188411E-08 1.30416420859E-08 1.39809173593E-08 1.49814390527E-08
+ 1.60469017474E-08 1.71812112968E-08 1.83884965084E-08 1.96731214591E-08
+ 2.10396984768E-08 2.24931018231E-08 2.40384821170E-08 2.56812815358E-08
+ 2.74272498376E-08 2.92824612475E-08 3.12533322542E-08 3.33466403652E-08
+ 3.55695438720E-08 3.79296026786E-08 4.04348002505E-08 4.30935667434E-08
+ 4.59148033739E-08 4.89079080993E-08 5.20828026758E-08 5.54499611667E-08
+ 5.90204399805E-08 6.28059095179E-08 6.68186875133E-08 7.10717741620E-08
+ 7.55788891263E-08 8.03545105216E-08 8.54139159855E-08 9.07732259430E-08
+ 9.64494491808E-08 1.02460530856E-07 1.08825403069E-07 1.15564038125E-07
+ 1.22697504653E-07 1.30248026695E-07 1.38239045962E-07 1.46695287392E-07
+ 1.55642828210E-07 1.65109170652E-07 1.75123318571E-07 1.85715858101E-07
+ 1.96919042626E-07 2.08766882255E-07 2.21295238049E-07 2.34541921263E-07
+ 2.48546797843E-07 2.63351898482E-07 2.79001534506E-07 2.95542419912E-07
+ 3.13023799873E-07 3.31497586062E-07 3.51018499137E-07 3.71644218784E-07
+ 3.93435541700E-07 4.16456547946E-07 4.40774776096E-07 4.66461407670E-07
+ 4.93591461307E-07 5.22243997219E-07 5.52502332450E-07 5.84454267518E-07
+ 6.18192325024E-07 6.53814000886E-07 6.91422028821E-07 7.31124658812E-07
+ 7.73035950265E-07 8.17276080641E-07 8.63971670383E-07 9.13256124969E-07
+ 9.65269995018E-07 1.02016135538E-06 1.07808620423E-06 1.13920888314E-06
+ 1.20370251936E-06 1.27174949137E-06 1.34354191894E-06 1.41928217898E-06
+ 1.49918344865E-06 1.58347027690E-06 1.67237918624E-06 1.76615930608E-06
+ 1.86507303944E-06 1.96939676465E-06 2.07942157405E-06 2.19545405146E-06
+ 2.31781709052E-06 2.44685075608E-06 2.58291319078E-06 2.72638156929E-06
+ 2.87765310273E-06 3.03714609568E-06 3.20530105886E-06 3.38258188008E-06
+ 3.56947705671E-06 3.76650099278E-06 3.97419536420E-06 4.19313055547E-06
+ 4.42390717180E-06 4.66715763055E-06 4.92354783597E-06 5.19377894184E-06
+ 5.47858920638E-06 5.77875594436E-06 6.09509758148E-06 6.42847581633E-06
+ 6.77979789548E-06 7.15001900774E-06 7.54014480371E-06 7.95123404710E-06
+ 8.38440140487E-06 8.84082038315E-06 9.32172641686E-06 9.82842012071E-06
+ 1.03622707102E-05 1.09247196014E-05 1.15172841988E-05 1.21415618811E-05
+ 1.27992341947E-05 1.34920712672E-05 1.42219364498E-05 1.49907912035E-05
+ 1.58007002390E-05 1.66538369255E-05 1.75524889811E-05 1.84990644602E-05
+ 1.94960980531E-05 2.05462577131E-05 2.16523516297E-05 2.28173355647E-05
+ 2.40443205699E-05 2.53365811076E-05 2.66975635918E-05 2.81308953760E-05
+ 2.96403942066E-05 3.12300781687E-05 3.29041761486E-05 3.46671388399E-05
+ 3.65236503213E-05 3.84786402358E-05 4.05372966012E-05 4.27050792866E-05
+ 4.49877341867E-05 4.73913081316E-05 4.99221645694E-05 5.25870000610E-05
+ 5.53928616293E-05 5.83471650063E-05 6.14577138247E-05 6.47327198014E-05
+ 6.81808239656E-05 7.18111189823E-05 7.56331726301E-05 7.96570524900E-05
+ 8.38933519089E-05 8.83532173010E-05 9.30483768573E-05 9.79911707334E-05
+ 1.03194582791E-04 1.08672273976E-04 1.14438617405E-04 1.20508735264E-04
+ 1.26898537597E-04 1.33624763088E-04 1.40705021927E-04 1.48157840887E-04
+ 1.56002710693E-04 1.64260135831E-04 1.72951686889E-04 1.82100055583E-04
+ 1.91729112590E-04 2.01863968325E-04 2.12531036823E-04 2.23758102866E-04
+ 2.35574392535E-04 2.48010647334E-04 2.61099202088E-04 2.74874066783E-04
+ 2.89371012563E-04 3.04627662065E-04 3.20683584328E-04 3.37580394495E-04
+ 3.55361858538E-04 3.74074003255E-04 3.93765231808E-04 4.14486445056E-04
+ 4.36291168975E-04 4.59235688461E-04 4.83379187826E-04 5.08783898309E-04
+ 5.35515252932E-04 5.63642049083E-04 5.93236619154E-04 6.24375009662E-04
+ 6.57137169226E-04 6.91607145841E-04 7.27873293881E-04 7.66028491283E-04
+ 8.06170367414E-04 8.48401542097E-04 8.92829876332E-04 9.39568735249E-04
+ 9.88737263869E-04 1.04046067625E-03 1.09487055864E-03 1.15210518729E-03
+ 1.21230986158E-03 1.27563725312E-03 1.34224777164E-03 1.41230994830E-03
+ 1.48600083730E-03 1.56350643655E-03 1.64502212824E-03 1.73075314018E-03
+ 1.82091502885E-03 1.91573418510E-03 2.01544836335E-03 2.12030723549E-03
+ 2.23057297040E-03 2.34652084020E-03 2.46843985426E-03 2.59663342239E-03
+ 2.73142004800E-03 2.87313405283E-03 3.02212633433E-03 3.17876515696E-03
+ 3.34343697899E-03 3.51654731584E-03 3.69852164178E-03 3.88980633110E-03
+ 4.09086964053E-03 4.30220273434E-03 4.52432075372E-03 4.75776393208E-03
+ 5.00309875802E-03 5.26091918761E-03 5.53184790770E-03 5.81653765223E-03
+ 6.11567257324E-03 6.42996966850E-03 6.76018026771E-03 7.10709157925E-03
+ 7.47152829947E-03 7.85435428659E-03 8.25647430128E-03 8.67883581611E-03
+ 9.12243089607E-03 9.58829815234E-03 1.00775247716E-02 1.05912486234E-02
+ 1.11306604475E-02 1.16970061245E-02 1.22915890309E-02 1.29157724831E-02
+ 1.35709822710E-02 1.42587092850E-02 1.49805122397E-02 1.57380204954E-02
+ 1.65329369824E-02 1.73670412306E-02 1.82421925064E-02 1.91603330625E-02
+ 2.01234915023E-02 2.11337862634E-02 2.21934292242E-02 2.33047294374E-02
+ 2.44700969947E-02 2.56920470272E-02 2.69732038470E-02 2.83163052331E-02
+ 2.97242068697E-02 3.11998869392E-02 3.27464508786E-02 3.43671363032E-02
+ 3.60653181045E-02 3.78445137288E-02 3.97083886431E-02 4.16607619938E-02
+ 4.37056124656E-02 4.58470843465E-02 4.80894938037E-02 5.04373353776E-02
+ 5.28952886951E-02 5.54682254074E-02 5.81612163527E-02 6.09795389426E-02
+ 6.39286847669E-02 6.70143674122E-02 7.02425304789E-02 7.36193557802E-02
+ 7.71512716994E-02 8.08449616702E-02 8.47073727398E-02 8.87457241591E-02
+ 9.29675159305E-02 9.73805372309E-02 1.01992874603E-01 1.06812919789E-01
+ 1.11849377060E-01 1.17111269845E-01 1.22607946464E-01 1.28349084695E-01
+ 1.34344694884E-01 1.40605121259E-01 1.47141041041E-01 1.53963460899E-01
+ 1.61083710241E-01 1.68513430727E-01 1.76264561373E-01 1.84349318490E-01
+ 1.92780169644E-01 2.01569800751E-01 2.10731075329E-01 2.20276984850E-01
+ 2.30220589111E-01 2.40574945422E-01 2.51353025452E-01 2.62567618498E-01
+ 2.74231220021E-01 2.86355904311E-01 2.98953180314E-01 3.12033829790E-01
+ 3.25607727282E-01 3.39683641682E-01 3.54269019704E-01 3.69369752111E-01
+ 3.84989924303E-01 4.01131553735E-01 4.17794317694E-01 4.34975276148E-01
+ 4.52668595770E-01 4.70865282754E-01 4.89552933690E-01 5.08715515470E-01
+ 5.28333186945E-01 5.48382176652E-01 5.68834732323E-01 5.89659158858E-01
+ 6.10819961718E-01 6.32278112060E-01 6.53991447922E-01 6.75915222086E-01
+ 6.98002801280E-01 7.20206512674E-01 7.42478621656E-01 7.64772409005E-01
+ 7.87043295470E-01 8.09249937120E-01 8.31355185736E-01 8.53326775551E-01
+ 8.75137562203E-01 8.96765104396E-01 9.18190347315E-01 9.39395145611E-01
+ 9.60358361118E-01 9.81050298461E-01 1.00142531575E+00 1.02141258748E+00
+ 1.04090522615E+00 1.05974831534E+00 1.07772689693E+00 1.09455561404E+00
+ 1.10987254833E+00 1.12324079027E+00 1.13416237380E+00 1.14211023097E+00
+ 1.14658446362E+00 1.14719892537E+00 1.14380190609E+00 1.13662905855E+00
+ 1.12647513128E+00 1.11484972411E+00 1.10404526359E+00 1.09698378201E+00
+ 1.09660953464E+00 1.10443723230E+00 1.11762165232E+00 1.12354122753E+00
+ 1.09470340678E+00 1.05014711588E+00 1.00296808744E+00 9.53447508997E-01
+ 9.01888816108E-01 8.48614979613E-01 7.93965512456E-01 7.38293298522E-01
+ 6.81961371428E-01 6.25339788945E-01 5.68802761760E-01 5.12726192356E-01
+ 4.57485761927E-01 4.03455658318E-01 3.51007965401E-01 3.00512623564E-01
+ 2.52337722498E-01 2.06849697657E-01 1.64412778519E-01 1.25386793590E-01
+ 9.01222017022E-02 5.89510380610E-02 3.21724032431E-02 1.00312829065E-02
+ -7.31001129752E-03 -1.98074852423E-02 -2.75762267340E-02 -3.09318432953E-02
+ -3.04247781125E-02 -2.68556795441E-02 -2.12559656583E-02 -1.48150138809E-02
+ -8.73737539367E-03 -4.02521288166E-03 -1.21222585277E-03 -1.40991186319E-04
+ -1.41552308358E-07 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 2.25744119244E+01 -1.58325588976E+02 1.74469054465E+03 -1.48758777364E+04
+ 7.08246989823E+04 -1.84435922643E+05 2.46768727620E+05 -1.32577575055E+05
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 2 2 0 i j (l(j))
+ -1.41300557062E-01 Q_int
+ 0.00000000000E+00 -1.15160878180E-10 -4.68551219484E-10 -1.07238935920E-09
+ -1.93938336136E-09 -3.08274907421E-09 -4.51622882830E-09 -6.25411079955E-09
+ -8.31124906063E-09 -1.07030843448E-08 -1.34456655468E-08 -1.65556719875E-08
+ -2.00504364673E-08 -2.39479691382E-08 -2.82669822205E-08 -3.30269155959E-08
+ -3.82479633068E-08 -4.39511009927E-08 -5.01581142972E-08 -5.68916282803E-08
+ -6.41751378687E-08 -7.20330393830E-08 -8.04906631775E-08 -8.95743074323E-08
+ -9.93112731373E-08 -1.09729900311E-07 -1.20859605493E-07 -1.32730920565E-07
+ -1.45375532930E-07 -1.58826327110E-07 -1.73117427815E-07 -1.88284244515E-07
+ -2.04363517588E-07 -2.21393366090E-07 -2.39413337202E-07 -2.58464457417E-07
+ -2.78589285520E-07 -2.99831967435E-07 -3.22238292995E-07 -3.45855754702E-07
+ -3.70733608550E-07 -3.96922936983E-07 -4.24476714060E-07 -4.53449872900E-07
+ -4.83899375496E-07 -5.15884284969E-07 -5.49465840363E-07 -5.84707534044E-07
+ -6.21675191820E-07 -6.60437055859E-07 -7.01063870511E-07 -7.43628971131E-07
+ -7.88208376005E-07 -8.34880881494E-07 -8.83728160499E-07 -9.34834864373E-07
+ -9.88288728387E-07 -1.04418068088E-06 -1.10260495623E-06 -1.16365921174E-06
+ -1.22744464866E-06 -1.29406613737E-06 -1.36363234696E-06 -1.43625587933E-06
+ -1.51205340798E-06 -1.59114582160E-06 -1.67365837270E-06 -1.75972083141E-06
+ -1.84946764463E-06 -1.94303810074E-06 -2.04057650005E-06 -2.14223233115E-06
+ -2.24816045346E-06 -2.35852128610E-06 -2.47348100329E-06 -2.59321173667E-06
+ -2.71789178454E-06 -2.84770582844E-06 -2.98284515725E-06 -3.12350789912E-06
+ -3.26989926137E-06 -3.42223177884E-06 -3.58072557081E-06 -3.74560860687E-06
+ -3.91711698204E-06 -4.09549520139E-06 -4.28099647467E-06 -4.47388302103E-06
+ -4.67442638444E-06 -4.88290776000E-06 -5.09961833160E-06 -5.32485962130E-06
+ -5.55894385086E-06 -5.80219431579E-06 -6.05494577236E-06 -6.31754483813E-06
+ -6.59035040629E-06 -6.87373407438E-06 -7.16808058794E-06 -7.47378829951E-06
+ -7.79126964352E-06 -8.12095162770E-06 -8.46327634151E-06 -8.81870148217E-06
+ -9.18770089897E-06 -9.57076515640E-06 -9.96840211681E-06 -1.03811375433E-05
+ -1.08095157234E-05 -1.12541001146E-05 -1.17154740117E-05 -1.21942412380E-05
+ -1.26910268600E-05 -1.32064779266E-05 -1.37412642347E-05 -1.42960791204E-05
+ -1.48716402783E-05 -1.54686906086E-05 -1.60879990939E-05 -1.67303617063E-05
+ -1.73966023458E-05 -1.80875738110E-05 -1.88041588038E-05 -1.95472709683E-05
+ -2.03178559665E-05 -2.11168925900E-05 -2.19453939113E-05 -2.28044084742E-05
+ -2.36950215255E-05 -2.46183562895E-05 -2.55755752864E-05 -2.65678816961E-05
+ -2.75965207696E-05 -2.86627812885E-05 -2.97679970756E-05 -3.09135485575E-05
+ -3.21008643805E-05 -3.33314230837E-05 -3.46067548284E-05 -3.59284431883E-05
+ -3.72981270010E-05 -3.87175022834E-05 -4.01883242137E-05 -4.17124091813E-05
+ -4.32916369075E-05 -4.49279526398E-05 -4.66233694216E-05 -4.83799704399E-05
+ -5.01999114549E-05 -5.20854233126E-05 -5.40388145439E-05 -5.60624740547E-05
+ -5.81588739068E-05 -6.03305721964E-05 -6.25802160307E-05 -6.49105446077E-05
+ -6.73243924017E-05 -6.98246924591E-05 -7.24144798075E-05 -7.50968949816E-05
+ -7.78751876719E-05 -8.07527204976E-05 -8.37329729106E-05 -8.68195452331E-05
+ -9.00161628345E-05 -9.33266804519E-05 -9.67550866596E-05 -1.00305508492E-04
+ -1.03982216226E-04 -1.07789628325E-04 -1.11732316562E-04 -1.15815011302E-04
+ -1.20042606987E-04 -1.24420167790E-04 -1.28952933477E-04 -1.33646325462E-04
+ -1.38505953077E-04 -1.43537620050E-04 -1.48747331209E-04 -1.54141299416E-04
+ -1.59725952743E-04 -1.65507941883E-04 -1.71494147824E-04 -1.77691689787E-04
+ -1.84107933432E-04 -1.90750499341E-04 -1.97627271804E-04 -2.04746407894E-04
+ -2.12116346857E-04 -2.19745819827E-04 -2.27643859864E-04 -2.35819812347E-04
+ -2.44283345709E-04 -2.53044462554E-04 -2.62113511138E-04 -2.71501197254E-04
+ -2.81218596517E-04 -2.91277167067E-04 -3.01688762711E-04 -3.12465646505E-04
+ -3.23620504806E-04 -3.35166461797E-04 -3.47117094508E-04 -3.59486448350E-04
+ -3.72289053175E-04 -3.85539939879E-04 -3.99254657576E-04 -4.13449291346E-04
+ -4.28140480594E-04 -4.43345438019E-04 -4.59081969242E-04 -4.75368493080E-04
+ -4.92224062523E-04 -5.09668386404E-04 -5.27721851813E-04 -5.46405547263E-04
+ -5.65741286631E-04 -5.85751633917E-04 -6.06459928828E-04 -6.27890313223E-04
+ -6.50067758449E-04 -6.73018093592E-04 -6.96768034677E-04 -7.21345214844E-04
+ -7.46778215534E-04 -7.73096598716E-04 -8.00330940193E-04 -8.28512864012E-04
+ -8.57675078025E-04 -8.87851410631E-04 -9.19076848731E-04 -9.51387576953E-04
+ -9.84821018164E-04 -1.01941587533E-03 -1.05521217475E-03 -1.09225131071E-03
+ -1.13057609162E-03 -1.17023078765E-03 -1.21126117996E-03 -1.25371461146E-03
+ -1.29764003932E-03 -1.34308808913E-03 -1.39011111085E-03 -1.43876323654E-03
+ -1.48910044000E-03 -1.54118059829E-03 -1.59506355524E-03 -1.65081118703E-03
+ -1.70848746983E-03 -1.76815854960E-03 -1.82989281413E-03 -1.89376096732E-03
+ -1.95983610588E-03 -2.02819379835E-03 -2.09891216668E-03 -2.17207197029E-03
+ -2.24775669278E-03 -2.32605263135E-03 -2.40704898889E-03 -2.49083796898E-03
+ -2.57751487376E-03 -2.66717820477E-03 -2.75992976680E-03 -2.85587477496E-03
+ -2.95512196480E-03 -3.05778370585E-03 -3.16397611839E-03 -3.27381919365E-03
+ -3.38743691762E-03 -3.50495739822E-03 -3.62651299633E-03 -3.75224046031E-03
+ -3.88228106452E-03 -4.01678075149E-03 -4.15589027812E-03 -4.29976536584E-03
+ -4.44856685476E-03 -4.60246086197E-03 -4.76161894397E-03 -4.92621826325E-03
+ -5.09644175919E-03 -5.27247832318E-03 -5.45452297804E-03 -5.64277706182E-03
+ -5.83744841591E-03 -6.03875157750E-03 -6.24690797638E-03 -6.46214613614E-03
+ -6.68470187953E-03 -6.91481853827E-03 -7.15274716686E-03 -7.39874676069E-03
+ -7.65308447808E-03 -7.91603586626E-03 -8.18788509115E-03 -8.46892517079E-03
+ -8.75945821210E-03 -9.05979565101E-03 -9.37025849542E-03 -9.69117757096E-03
+ -1.00228937690E-02 -1.03657582969E-02 -1.07201329294E-02 -1.10863902617E-02
+ -1.14649139627E-02 -1.18560990288E-02 -1.22603520368E-02 -1.26780913951E-02
+ -1.31097475944E-02 -1.35557634534E-02 -1.40165943629E-02 -1.44927085233E-02
+ -1.49845871770E-02 -1.54927248340E-02 -1.60176294879E-02 -1.65598228232E-02
+ -1.71198404100E-02 -1.76982318860E-02 -1.82955611229E-02 -1.89124063764E-02
+ -1.95493604154E-02 -2.02070306308E-02 -2.08860391182E-02 -2.15870227351E-02
+ -2.23106331256E-02 -2.30575367135E-02 -2.38284146563E-02 -2.46239627593E-02
+ -2.54448913439E-02 -2.62919250662E-02 -2.71658026809E-02 -2.80672767461E-02
+ -2.89971132626E-02 -2.99560912417E-02 -3.09450021966E-02 -3.19646495487E-02
+ -3.30158479435E-02 -3.40994224668E-02 -3.52162077543E-02 -3.63670469855E-02
+ -3.75527907524E-02 -3.87742957940E-02 -4.00324235857E-02 -4.13280387734E-02
+ -4.26620074404E-02 -4.40351951955E-02 -4.54484650701E-02 -4.69026752108E-02
+ -4.83986763538E-02 -4.99373090679E-02 -5.15194007516E-02 -5.31457623676E-02
+ -5.48171849024E-02 -5.65344355332E-02 -5.82982534872E-02 -6.01093455779E-02
+ -6.19683814022E-02 -6.38759881838E-02 -6.58327452463E-02 -6.78391781041E-02
+ -6.98957521552E-02 -7.20028659659E-02 -7.41608441352E-02 -7.63699297310E-02
+ -7.86302762913E-02 -8.09419393873E-02 -8.33048677470E-02 -8.57188939442E-02
+ -8.81837246598E-02 -9.06989305289E-02 -9.32639355934E-02 -9.58780063848E-02
+ -9.85402406712E-02 -1.01249555910E-01 -1.04004677457E-01 -1.06804126592E-01
+ -1.09646208436E-01 -1.12528999838E-01 -1.15450337339E-01 -1.18407805305E-01
+ -1.21398724379E-01 -1.24420140365E-01 -1.27468813715E-01 -1.30541209780E-01
+ -1.33633490014E-01 -1.36741504315E-01 -1.39860784722E-01 -1.42986540687E-01
+ -1.46113656124E-01 -1.49236688495E-01 -1.52349870127E-01 -1.55447111989E-01
+ -1.58522010125E-01 -1.61567854917E-01 -1.64577643306E-01 -1.67544094074E-01
+ -1.70459666191E-01 -1.73316580184E-01 -1.76106842382E-01 -1.78822271741E-01
+ -1.81454528880E-01 -1.83995146736E-01 -1.86435562122E-01 -1.88767147245E-01
+ -1.90981240046E-01 -1.93069172005E-01 -1.95022291824E-01 -1.96831983210E-01
+ -1.98489674753E-01 -1.99986839812E-01 -2.01314984179E-01 -2.02465619362E-01
+ -2.03430219472E-01 -2.04200160047E-01 -2.04766637711E-01 -2.05120570472E-01
+ -2.05252479658E-01 -2.05152356189E-01 -2.04809516049E-01 -2.04212452571E-01
+ -2.03348696494E-01 -2.02204698845E-01 -2.00765756288E-01 -1.99016003945E-01
+ -1.96938506258E-01 -1.94515482377E-01 -1.91728707968E-01 -1.88560139881E-01
+ -1.84992812636E-01 -1.81012054966E-01 -1.76607068888E-01 -1.71772900764E-01
+ -1.66512810698E-01 -1.60841010095E-01 -1.54785683342E-01 -1.48392134238E-01
+ -1.41725796919E-01 -1.34874721363E-01 -1.27950984115E-01 -1.21090288753E-01
+ -1.14448818590E-01 -1.08196209212E-01 -1.02503364095E-01 -9.75238170335E-02
+ -9.33675727039E-02 -9.00670248810E-02 -8.75359599691E-02 -8.55252556538E-02
+ -8.35833588000E-02 -8.10369737849E-02 -7.70190733196E-02 -7.05894718237E-02
+ -6.10208126443E-02 -4.83642439436E-02 -3.44704341446E-02 -2.47315662480E-02
+ -2.92847504098E-02 -3.97317085992E-02 -5.09097066984E-02 -6.26898482671E-02
+ -7.49291286050E-02 -8.74710267830E-02 -1.00146263134E-01 -1.12773732366E-01
+ -1.25161629332E-01 -1.37108795800E-01 -1.48406330711E-01 -1.58839526948E-01
+ -1.68190220034E-01 -1.76239664288E-01 -1.82772079508E-01 -1.87579045228E-01
+ -1.90464940061E-01 -1.91253643500E-01 -1.89796701684E-01 -1.85983125203E-01
+ -1.79750879041E-01 -1.71099968685E-01 -1.60106737899E-01 -1.46938616258E-01
+ -1.31867978606E-01 -1.15283090191E-01 -9.76932021608E-02 -7.97239285824E-02
+ -6.20980625419E-02 -4.55965413130E-02 -3.09951454983E-02 -1.89718395542E-02
+ -9.98841901119E-03 -4.15971186571E-03 -1.14380316684E-03 -1.22466015315E-04
+ 1.77971419709E-08 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+ <PP_QFCOEF>
+ -4.10536171559E+00 2.18077333661E+01 9.42436209160E+01 -1.78395433045E+03
+ 1.02410672581E+04 -2.95400887050E+04 4.25469771526E+04 -2.42145474625E+04
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 2 3 1 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 -3.99904053856E-15 -3.28196513743E-14 -1.13638920298E-13
+ -2.76371879987E-13 -5.53867164170E-13 -9.82114816531E-13 -1.60046695554E-12
+ -2.45187203745E-12 -3.58312350105E-12 -5.04512362105E-12 -6.89316344295E-12
+ -9.18721972048E-12 -1.19922698277E-11 -1.53786256711E-11 -1.94222876851E-11
+ -2.42053200508E-11 -2.98162483450E-11 -3.63504808894E-11 -4.39107551407E-11
+ -5.26076105363E-11 -6.25598892883E-11 -7.38952666981E-11 -8.67508126528E-11
+ -1.01273586054E-10 -1.17621264022E-10 -1.35962807833E-10 -1.56479167623E-10
+ -1.79364028047E-10 -2.04824597158E-10 -2.33082440924E-10 -2.64374365912E-10
+ -2.98953352831E-10 -3.37089543733E-10 -3.79071285864E-10 -4.25206235296E-10
+ -4.75822523642E-10 -5.31269991339E-10 -5.91921491181E-10 -6.58174265955E-10
+ -7.30451404283E-10 -8.09203378954E-10 -8.94909672280E-10 -9.88080493272E-10
+ -1.08925859164E-09 -1.19902117396E-09 -1.31798192754E-09 -1.44679315800E-09
+ -1.58614804658E-09 -1.73678303392E-09 -1.89948033708E-09 -2.07507060713E-09
+ -2.26443573488E-09 -2.46851181294E-09 -2.68829226250E-09 -2.92483113382E-09
+ -3.17924658990E-09 -3.45272458314E-09 -3.74652273568E-09 -4.06197443419E-09
+ -4.40049315095E-09 -4.76357700326E-09 -5.15281356426E-09 -5.56988493864E-09
+ -6.01657311747E-09 -6.49476562741E-09 -7.00646149001E-09 -7.55377750789E-09
+ -8.13895489533E-09 -8.76436627195E-09 -9.43252303889E-09 -1.01460831581E-08
+ -1.09078593565E-08 -1.17208277773E-08 -1.25881371041E-08 -1.35131181800E-08
+ -1.44992941525E-08 -1.55503911684E-08 -1.66703496503E-08 -1.78633361863E-08
+ -1.91337560636E-08 -2.04862664825E-08 -2.19257904860E-08 -2.34575316439E-08
+ -2.50869895315E-08 -2.68199760447E-08 -2.86626325977E-08 -3.06214482487E-08
+ -3.27032788041E-08 -3.49153669531E-08 -3.72653634877E-08 -3.97613496659E-08
+ -4.24118607787E-08 -4.52259109856E-08 -4.82130194856E-08 -5.13832380946E-08
+ -5.47471803052E-08 -5.83160519053E-08 -6.21016832418E-08 -6.61165632128E-08
+ -7.03738750839E-08 -7.48875342224E-08 -7.96722278533E-08 -8.47434569430E-08
+ -9.01175803248E-08 -9.58118611835E-08 -1.01844516026E-07 -1.08234766266E-07
+ -1.15002892571E-07 -1.22170292101E-07 -1.29759538808E-07 -1.37794446953E-07
+ -1.46300138007E-07 -1.55303111118E-07 -1.64831317335E-07 -1.74914237782E-07
+ -1.85582965999E-07 -1.96870294659E-07 -2.08810806903E-07 -2.21440972533E-07
+ -2.34799249313E-07 -2.48926189662E-07 -2.63864553009E-07 -2.79659424118E-07
+ -2.96358337693E-07 -3.14011409602E-07 -3.32671475053E-07 -3.52394234112E-07
+ -3.73238404925E-07 -3.95265885069E-07 -4.18541921455E-07 -4.43135289225E-07
+ -4.69118480127E-07 -4.96567900870E-07 -5.25564081965E-07 -5.56191897630E-07
+ -5.88540797321E-07 -6.22705049512E-07 -6.58783998360E-07 -6.96882333943E-07
+ -7.37110376777E-07 -7.79584377362E-07 -8.24426831553E-07 -8.71766812583E-07
+ -9.21740320619E-07 -9.74490650759E-07 -1.03016878046E-06 -1.08893377738E-06
+ -1.15095322879E-06 -1.21640369352E-06 -1.28547117787E-06 -1.35835163650E-06
+ -1.43525149975E-06 -1.51638822873E-06 -1.60199089968E-06 -1.69230081908E-06
+ -1.78757217112E-06 -1.88807269931E-06 -1.99408442391E-06 -2.10590439714E-06
+ -2.22384549810E-06 -2.34823726948E-06 -2.47942679834E-06 -2.61777964313E-06
+ -2.76368080944E-06 -2.91753577704E-06 -3.07977158091E-06 -3.25083794901E-06
+ -3.43120849984E-06 -3.62138200287E-06 -3.82188370514E-06 -4.03326672752E-06
+ -4.25611353420E-06 -4.49103747930E-06 -4.73868443466E-06 -4.99973450294E-06
+ -5.27490382057E-06 -5.56494645527E-06 -5.87065640296E-06 -6.19286968937E-06
+ -6.53246658181E-06 -6.89037391669E-06 -7.26756754906E-06 -7.66507493037E-06
+ -8.08397782121E-06 -8.52541514603E-06 -8.99058599727E-06 -9.48075279669E-06
+ -9.99724462206E-06 -1.05414607079E-05 -1.11148741290E-05 -1.17190356772E-05
+ -1.23555779399E-05 -1.30262195924E-05 -1.37327699140E-05 -1.44771335406E-05
+ -1.52613154648E-05 -1.60874262978E-05 -1.69576878050E-05 -1.78744387314E-05
+ -1.88401409307E-05 -1.98573858134E-05 -2.09289011325E-05 -2.20575581215E-05
+ -2.32463790054E-05 -2.44985449030E-05 -2.58174041404E-05 -2.72064809978E-05
+ -2.86694849116E-05 -3.02103201558E-05 -3.18330960263E-05 -3.35421375561E-05
+ -3.53419967869E-05 -3.72374646270E-05 -3.92335833254E-05 -4.13356595942E-05
+ -4.35492784119E-05 -4.58803175443E-05 -4.83349628180E-05 -5.09197241874E-05
+ -5.36414526336E-05 -5.65073579411E-05 -5.95250273940E-05 -6.27024454420E-05
+ -6.60480143839E-05 -6.95705761221E-05 -7.32794350422E-05 -7.71843820763E-05
+ -8.12957200094E-05 -8.56242900938E-05 -9.01815000372E-05 -9.49793534363E-05
+ -1.00030480728E-04 -1.05348171735E-04 -1.10946409893E-04 -1.16839908235E-04
+ -1.23044147231E-04 -1.29575414574E-04 -1.36450847009E-04 -1.43688474315E-04
+ -1.51307265539E-04 -1.59327177610E-04 -1.67769206436E-04 -1.76655440625E-04
+ -1.86009117958E-04 -1.95854684740E-04 -2.06217858200E-04 -2.17125692060E-04
+ -2.28606645465E-04 -2.40690655420E-04 -2.53409212912E-04 -2.66795442915E-04
+ -2.80884188454E-04 -2.95712098941E-04 -3.11317722991E-04 -3.27741605942E-04
+ -3.45026392312E-04 -3.63216933430E-04 -3.82360400510E-04 -4.02506403420E-04
+ -4.23707115439E-04 -4.46017404283E-04 -4.69494969719E-04 -4.94200488074E-04
+ -5.20197763989E-04 -5.47553889751E-04 -5.76339412594E-04 -6.06628510324E-04
+ -6.38499175691E-04 -6.72033409920E-04 -7.07317425827E-04 -7.44441860998E-04
+ -7.83502001488E-04 -8.24598016546E-04 -8.67835204885E-04 -9.13324253034E-04
+ -9.61181506344E-04 -1.01152925322E-03 -1.06449602323E-03 -1.12021689964E-03
+ -1.17883384717E-03 -1.24049605556E-03 -1.30536029965E-03 -1.37359131688E-03
+ -1.44536220273E-03 -1.52085482515E-03 -1.60026025869E-03 -1.68377923917E-03
+ -1.77162263992E-03 -1.86401197037E-03 -1.96117989803E-03 -2.06337079494E-03
+ -2.17084130939E-03 -2.28386096425E-03 -2.40271278278E-03 -2.52769394325E-03
+ -2.65911646331E-03 -2.79730791559E-03 -2.94261217551E-03 -3.09539020273E-03
+ -3.25602085750E-03 -3.42490175320E-03 -3.60245014653E-03 -3.78910386665E-03
+ -3.98532228475E-03 -4.19158732550E-03 -4.40840452183E-03 -4.63630411456E-03
+ -4.87584219841E-03 -5.12760191583E-03 -5.39219470034E-03 -5.67026157080E-03
+ -5.96247447828E-03 -6.26953770694E-03 -6.59218933059E-03 -6.93120272643E-03
+ -7.28738814742E-03 -7.66159435481E-03 -8.05471031227E-03 -8.46766694293E-03
+ -8.90143895084E-03 -9.35704670785E-03 -9.83555820733E-03 -1.03380910857E-02
+ -1.08658147125E-02 -1.14199523507E-02 -1.20017833864E-02 -1.26126456304E-02
+ -1.32539376901E-02 -1.39271214128E-02 -1.46337244012E-02 -1.53753425985E-02
+ -1.61536429441E-02 -1.69703660993E-02 -1.78273292400E-02 -1.87264289162E-02
+ -1.96696439759E-02 -2.06590385498E-02 -2.16967650959E-02 -2.27850674976E-02
+ -2.39262842140E-02 -2.51228514754E-02 -2.63773065191E-02 -2.76922908599E-02
+ -2.90705535870E-02 -3.05149546798E-02 -3.20284683340E-02 -3.36141862868E-02
+ -3.52753211309E-02 -3.70152096036E-02 -3.88373158385E-02 -4.07452345630E-02
+ -4.27426942243E-02 -4.48335600267E-02 -4.70218368566E-02 -4.93116720737E-02
+ -5.17073581424E-02 -5.42133350744E-02 -5.68341926516E-02 -5.95746723951E-02
+ -6.24396692407E-02 -6.54342328797E-02 -6.85635687176E-02 -7.18330383983E-02
+ -7.52481598369E-02 -7.88146066964E-02 -8.25382072368E-02 -8.64249424591E-02
+ -9.04809434536E-02 -9.47124878564E-02 -9.91259953036E-02 -1.03728021761E-01
+ -1.08525252594E-01 -1.13524494226E-01 -1.18732664209E-01 -1.24156779532E-01
+ -1.29803942937E-01 -1.35681327021E-01 -1.41796155855E-01 -1.48155683833E-01
+ -1.54767171421E-01 -1.61637857450E-01 -1.68774927559E-01 -1.76185478344E-01
+ -1.83876476747E-01 -1.91854714134E-01 -2.00126754524E-01 -2.08698876319E-01
+ -2.17577006885E-01 -2.26766649269E-01 -2.36272800296E-01 -2.46099859249E-01
+ -2.56251526323E-01 -2.66730690000E-01 -2.77539302524E-01 -2.88678242638E-01
+ -3.00147164827E-01 -3.11944334351E-01 -3.24066447516E-01 -3.36508436748E-01
+ -3.49263260309E-01 -3.62321676748E-01 -3.75672004584E-01 -3.89299868159E-01
+ -4.03187931171E-01 -4.17315620074E-01 -4.31658840303E-01 -4.46189689216E-01
+ -4.60876170648E-01 -4.75681917146E-01 -4.90565927150E-01 -5.05482325727E-01
+ -5.20380158753E-01 -5.35203231745E-01 -5.49890005641E-01 -5.64373562748E-01
+ -5.78581656521E-01 -5.92436858703E-01 -6.05856816407E-01 -6.18754629614E-01
+ -6.31039356048E-01 -6.42616645138E-01 -6.53389495286E-01 -6.63259118802E-01
+ -6.72125886118E-01 -6.79890305220E-01 -6.86453973650E-01 -6.91720419205E-01
+ -6.95595722588E-01 -6.97988792199E-01 -6.98811140661E-01 -6.97975998295E-01
+ -6.95396596226E-01 -6.90983468633E-01 -6.84640669896E-01 -6.76260890759E-01
+ -6.65719603451E-01 -6.52868586456E-01 -6.37529493510E-01 -6.19488554051E-01
+ -5.98494031566E-01 -5.74258712408E-01 -5.46470407495E-01 -5.14814121792E-01
+ -4.79009982361E-01 -4.38870858759E-01 -3.94382254602E-01 -3.45803506312E-01
+ -2.93782020206E-01 -2.39458756291E-01 -1.84519661440E-01 -1.31108566733E-01
+ -8.14536701343E-02 -3.69594853059E-02 3.63952419468E-03 4.77056062791E-02
+ 1.12009012731E-01 1.84854270069E-01 2.57894822046E-01 3.30616436539E-01
+ 4.02484599132E-01 4.72947715972E-01 5.41439984949E-01 6.07383700894E-01
+ 6.70190768155E-01 7.29263227040E-01 7.83992679559E-01 8.33758624982E-01
+ 8.77925914110E-01 9.15841796697E-01 9.46833397874E-01 9.70206893880E-01
+ 9.85250181778E-01 9.91241392448E-01 9.87466160057E-01 9.73247004129E-01
+ 9.47988402339E-01 9.11240886169E-01 8.62786550558E-01 8.02746332867E-01
+ 7.31705921326E-01 6.50851705428E-01 5.62100456158E-01 4.68196244417E-01
+ 3.72735972052E-01 2.80072368411E-01 1.95034194362E-01 1.22405030595E-01
+ 6.61276610174E-02 2.82746686338E-02 7.98548016413E-03 8.78344260310E-04
+ 7.02955714610E-07 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -2.69169282346E+01 1.89695210144E+02 -1.33187980405E+03 9.85631956065E+03
+ -4.58567721162E+04 1.18854796769E+05 -1.58713344657E+05 8.51365891409E+04
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 2 4 1 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 2.86693109792E-15 2.35285634748E-14 8.14682800573E-14
+ 1.98132309431E-13 3.97069992676E-13 7.04082762560E-13 1.14738233920E-12
+ 1.75775867435E-12 2.56875820595E-12 3.61687301595E-12 4.94174151688E-12
+ 6.58636132781E-12 8.59731503623E-12 1.10250095814E-11 1.39239300352E-11
+ 1.73529085985E-11 2.13754096774E-11 2.60598319507E-11 3.14798283890E-11
+ 3.77146452402E-11 4.48494810510E-11 5.29758668520E-11 6.21920686974E-11
+ 7.26035138133E-11 8.43232416792E-11 9.74723814376E-11 1.12180657104E-10
+ 1.28586922132E-10 1.46839724963E-10 1.67097907298E-10 1.89531236897E-10
+ 2.14321076841E-10 2.41661093258E-10 2.71758003672E-10 3.04832368196E-10
+ 3.41119425957E-10 3.80869979246E-10 4.24351328024E-10 4.71848257558E-10
+ 5.23664082120E-10 5.80121747824E-10 6.41564997858E-10 7.08359603529E-10
+ 7.80894664734E-10 8.59583983662E-10 9.44867515737E-10 1.03721290202E-09
+ 1.13711708752E-09 1.24510803013E-09 1.36174650509E-09 1.48762801021E-09
+ 1.62338477734E-09 1.76968789589E-09 1.92724955438E-09 2.09682540668E-09
+ 2.27921706934E-09 2.47527475754E-09 2.68590006685E-09 2.91204890881E-09
+ 3.15473460876E-09 3.41503117451E-09 3.69407674522E-09 3.99307723020E-09
+ 4.31331014788E-09 4.65612867569E-09 5.02296592236E-09 5.41533943447E-09
+ 5.83485595003E-09 6.28321641226E-09 6.76222125760E-09 7.27377599274E-09
+ 7.81989707620E-09 8.40271812075E-09 9.02449643397E-09 9.68761991504E-09
+ 1.03946143270E-08 1.11481509642E-08 1.19510547368E-08 1.28063126943E-08
+ 1.37170830108E-08 1.46867044586E-08 1.57187063940E-08 1.68168192850E-08
+ 1.79849858074E-08 1.92273725419E-08 2.05483823027E-08 2.19526671323E-08
+ 2.34451419972E-08 2.50309992229E-08 2.67157237062E-08 2.85051089479E-08
+ 3.04052739483E-08 3.24226810115E-08 3.45641545079E-08 3.68369006448E-08
+ 3.92485282992E-08 4.18070709693E-08 4.45210099035E-08 4.73992984710E-08
+ 5.04513878377E-08 5.36872540189E-08 5.71174263808E-08 6.07530176668E-08
+ 6.46057556319E-08 6.86880163680E-08 7.30128594110E-08 7.75940647242E-08
+ 8.24461716564E-08 8.75845199811E-08 9.30252931243E-08 9.87855637000E-08
+ 1.04883341472E-07 1.11337623876E-07 1.18168449225E-07 1.25396952762E-07
+ 1.33045425682E-07 1.41137377310E-07 1.49697600572E-07 1.58752240962E-07
+ 1.68328869164E-07 1.78456557545E-07 1.89165960700E-07 2.00489400281E-07
+ 2.12460954335E-07 2.25116551370E-07 2.38494069426E-07 2.52633440392E-07
+ 2.67576759856E-07 2.83368402786E-07 3.00055145324E-07 3.17686293054E-07
+ 3.36313816044E-07 3.55992491053E-07 3.76780051252E-07 3.98737343883E-07
+ 4.21928496245E-07 4.46421090462E-07 4.72286347503E-07 4.99599320913E-07
+ 5.28439100790E-07 5.58889028544E-07 5.91036922990E-07 6.24975318387E-07
+ 6.60801715039E-07 6.98618843131E-07 7.38534940479E-07 7.80664044940E-07
+ 8.25126302239E-07 8.72048290033E-07 9.21563359059E-07 9.73811992264E-07
+ 1.02894218286E-06 1.08710983228E-06 1.14847916914E-06 1.21322319022E-06
+ 1.28152412468E-06 1.35357392273E-06 1.42957476995E-06 1.50973962879E-06
+ 1.59429280845E-06 1.68347056480E-06 1.77752173179E-06 1.87670838610E-06
+ 1.98130654674E-06 2.09160691136E-06 2.20791563133E-06 2.33055512740E-06
+ 2.45986494842E-06 2.59620267489E-06 2.73994487020E-06 2.89148808161E-06
+ 3.05124989389E-06 3.21967003817E-06 3.39721155902E-06 3.58436204268E-06
+ 3.78163490979E-06 3.98957077582E-06 4.20873888285E-06 4.43973860638E-06
+ 4.68320104114E-06 4.93979066994E-06 5.21020711993E-06 5.49518701086E-06
+ 5.79550590014E-06 6.11198032967E-06 6.44546997982E-06 6.79687993616E-06
+ 7.16716307474E-06 7.55732257213E-06 7.96841454680E-06 8.40155083852E-06
+ 8.85790193312E-06 9.33870004004E-06 9.84524233080E-06 1.03788943465E-05
+ 1.09410935835E-05 1.15333532660E-05 1.21572663161E-05 1.28145095304E-05
+ 1.35068479753E-05 1.42361396108E-05 1.50043401562E-05 1.58135082089E-05
+ 1.66658106307E-05 1.75635282140E-05 1.85090616439E-05 1.95049377709E-05
+ 2.05538162095E-05 2.16584962812E-05 2.28219243183E-05 2.40472013481E-05
+ 2.53375911765E-05 2.66965288919E-05 2.81276298117E-05 2.96346988934E-05
+ 3.12217406339E-05 3.28929694844E-05 3.46528208047E-05 3.65059623867E-05
+ 3.84573065755E-05 4.05120230187E-05 4.26755520776E-05 4.49536189324E-05
+ 4.73522484186E-05 4.98777806313E-05 5.25368873370E-05 5.53365892351E-05
+ 5.82842741112E-05 6.13877159292E-05 6.46550949090E-05 6.80950186422E-05
+ 7.17165442961E-05 7.55292019645E-05 7.95430192207E-05 8.37685469375E-05
+ 8.82168864352E-05 9.28997180280E-05 9.78293310381E-05 1.03018655353E-04
+ 1.08481294603E-04 1.14231561044E-04 1.20284512227E-04 1.26655989550E-04
+ 1.33362658785E-04 1.40422052673E-04 1.47852615710E-04 1.55673751209E-04
+ 1.63905870776E-04 1.72570446301E-04 1.81690064605E-04 1.91288484869E-04
+ 2.01390698985E-04 2.12022994972E-04 2.23213023616E-04 2.34989868487E-04
+ 2.47384119507E-04 2.60427950236E-04 2.74155199070E-04 2.88601454537E-04
+ 3.03804144894E-04 3.19802632235E-04 3.36638311333E-04 3.54354713449E-04
+ 3.72997615342E-04 3.92615153739E-04 4.13257945535E-04 4.34979213979E-04
+ 4.57834921167E-04 4.81883907110E-04 5.07188035713E-04 5.33812348001E-04
+ 5.61825222905E-04 5.91298546005E-04 6.22307886578E-04 6.54932683354E-04
+ 6.89256439383E-04 7.25366926438E-04 7.63356399406E-04 8.03321821110E-04
+ 8.45365098065E-04 8.89593327642E-04 9.36119057186E-04 9.85060555611E-04
+ 1.03654209804E-03 1.09069426407E-03 1.14765425028E-03 1.20756619760E-03
+ 1.27058153418E-03 1.33685933449E-03 1.40656669524E-03 1.47987912901E-03
+ 1.55698097616E-03 1.63806583595E-03 1.72333701751E-03 1.81300801169E-03
+ 1.90730298444E-03 2.00645729268E-03 2.11071802365E-03 2.22034455842E-03
+ 2.33560916084E-03 2.45679759261E-03 2.58420975564E-03 2.71816036263E-03
+ 2.85897963698E-03 3.00701404307E-03 3.16262704787E-03 3.32619991522E-03
+ 3.49813253366E-03 3.67884427899E-03 3.86877491277E-03 4.06838551782E-03
+ 4.27815947185E-03 4.49860346036E-03 4.73024853000E-03 4.97365118342E-03
+ 5.22939451672E-03 5.49808940067E-03 5.78037570657E-03 6.07692357794E-03
+ 6.38843474888E-03 6.71564391003E-03 7.05932012305E-03 7.42026828419E-03
+ 7.79933063789E-03 8.19738834077E-03 8.61536307655E-03 9.05421872224E-03
+ 9.51496306581E-03 9.99864957524E-03 1.05063792190E-02 1.10393023372E-02
+ 1.15986205634E-02 1.21855887959E-02 1.28015172167E-02 1.34477733584E-02
+ 1.41257842156E-02 1.48370383995E-02 1.55830883324E-02 1.63655524810E-02
+ 1.71861176220E-02 1.80465411390E-02 1.89486533435E-02 1.98943598175E-02
+ 2.08856437688E-02 2.19245683948E-02 2.30132792459E-02 2.41540065805E-02
+ 2.53490677027E-02 2.66008692712E-02 2.79119095692E-02 2.92847807209E-02
+ 3.07221708425E-02 3.22268661096E-02 3.38017527260E-02 3.54498187723E-02
+ 3.71741559166E-02 3.89779609604E-02 4.08645371971E-02 4.28372955532E-02
+ 4.48997554827E-02 4.70555455789E-02 4.93084038680E-02 5.16621777417E-02
+ 5.41208234841E-02 5.66884053422E-02 5.93690940854E-02 6.21671649922E-02
+ 6.50869951969E-02 6.81330603223E-02 7.13099303158E-02 7.46222643977E-02
+ 7.80748050225E-02 8.16723707399E-02 8.54198478357E-02 8.93221806136E-02
+ 9.33843601703E-02 9.76114114974E-02 1.02008378727E-01 1.06580308318E-01
+ 1.11332229969E-01 1.16269135000E-01 1.21395951948E-01 1.26717519085E-01
+ 1.32238553527E-01 1.37963616604E-01 1.43897075105E-01 1.50043058007E-01
+ 1.56405408249E-01 1.62987629094E-01 1.69792824609E-01 1.76823633748E-01
+ 1.84082157528E-01 1.91569878771E-01 1.99287573895E-01 2.07235216240E-01
+ 2.15411870455E-01 2.23815577524E-01 2.32443230092E-01 2.41290437836E-01
+ 2.50351382793E-01 2.59618664743E-01 2.69083136944E-01 2.78733732855E-01
+ 2.88557284780E-01 2.98538335824E-01 3.08658947010E-01 3.18898501976E-01
+ 3.29233512319E-01 3.39637427321E-01 3.50080452602E-01 3.60529382999E-01
+ 3.70947455832E-01 3.81294231486E-01 3.91525508956E-01 4.01593284598E-01
+ 4.11445762619E-01 4.21027425861E-01 4.30279174885E-01 4.39138542225E-01
+ 4.47539986659E-01 4.55415269313E-01 4.62693909072E-01 4.69303709029E-01
+ 4.75171338245E-01 4.80222943920E-01 4.84384758169E-01 4.87583651112E-01
+ 4.89747568551E-01 4.90805778902E-01 4.90688841886E-01 4.89328202950E-01
+ 4.86655315822E-01 4.82600205344E-01 4.77089409825E-01 4.70043293943E-01
+ 4.61372808889E-01 4.50975906157E-01 4.38733995961E-01 4.24509089983E-01
+ 4.08142585536E-01 3.89457028889E-01 3.68262613962E-01 3.44370569762E-01
+ 3.17615848579E-01 2.87891437992E-01 2.55195827358E-01 2.19693081783E-01
+ 1.81780687935E-01 1.42152392172E-01 1.01829437993E-01 6.21105736015E-02
+ 2.43539287445E-02 -1.05550861383E-02 -4.32872527195E-02 -7.80818887297E-02
+ -1.24699826456E-01 -1.76273692220E-01 -2.27865871441E-01 -2.79110999600E-01
+ -3.29628985896E-01 -3.79027169961E-01 -4.26902268743E-01 -4.72841962849E-01
+ -5.16425978750E-01 -5.57226549505E-01 -5.94808192426E-01 -6.28726832053E-01
+ -6.58528433247E-01 -6.83747495205E-01 -7.03906002344E-01 -7.18513727675E-01
+ -7.27071134945E-01 -7.29076502527E-01 -7.24039258779E-01 -7.11501808716E-01
+ -6.91072246700E-01 -6.62470152270E-01 -6.25586959920E-01 -5.80560950190E-01
+ -5.27864427254E-01 -4.68396853965E-01 -4.03572326187E-01 -3.35382756086E-01
+ -2.66409780088E-01 -1.99749970176E-01 -1.38812188085E-01 -8.69462001387E-02
+ -4.68818116726E-02 -2.00089934206E-02 -5.64122295862E-03 -6.19470123089E-04
+ -4.73201147903E-07 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 1.92968733054E+01 -1.31244306182E+02 8.27384491712E+02 -5.85971786729E+03
+ 2.70575461388E+04 -7.00319915910E+04 9.34758593219E+04 -5.01274210537E+04
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 3 3 1 i j (l(j))
+ 3.80724906053E+00 Q_int
+ 0.00000000000E+00 1.63658480302E-09 6.65871793888E-09 1.52400377357E-08
+ 2.75611422024E-08 4.38098456221E-08 6.41814442753E-08 8.88789916156E-08
+ 1.18113583226E-07 1.52104651901E-07 1.91080273204E-07 2.35277481873E-07
+ 2.84942599450E-07 3.40331573522E-07 4.01710328989E-07 4.69355131775E-07
+ 5.43552965414E-07 6.24601920960E-07 7.12811600696E-07 8.08503536111E-07
+ 9.12011620651E-07 1.02368255776E-06 1.14387632473E-06 1.27296665294E-06
+ 1.41134152504E-06 1.55940368964E-06 1.71757119417E-06 1.88627793651E-06
+ 2.06597423609E-06 2.25712742501E-06 2.46022246005E-06 2.67576255619E-06
+ 2.90426984243E-06 3.14628604062E-06 3.40237316818E-06 3.67311426559E-06
+ 3.95911414927E-06 4.26100019108E-06 4.57942312504E-06 4.91505788243E-06
+ 5.26860445623E-06 5.64078879576E-06 6.03236373280E-06 6.44410994010E-06
+ 6.87683692356E-06 7.33138404908E-06 7.80862160541E-06 8.30945190423E-06
+ 8.83481041874E-06 9.38566696206E-06 9.96302690690E-06 1.05679324478E-05
+ 1.12014639078E-05 1.18647410902E-05 1.25589246782E-05 1.32852176833E-05
+ 1.40448669438E-05 1.48391646765E-05 1.56694500816E-05 1.65371110046E-05
+ 1.74435856555E-05 1.83903643883E-05 1.93789915426E-05 2.04110673493E-05
+ 2.14882499028E-05 2.26122572021E-05 2.37848692630E-05 2.50079303037E-05
+ 2.62833510070E-05 2.76131108607E-05 2.89992605805E-05 3.04439246159E-05
+ 3.19493037449E-05 3.35176777578E-05 3.51514082353E-05 3.68529414224E-05
+ 3.86248112034E-05 4.04696421794E-05 4.23901528535E-05 4.43891589268E-05
+ 4.64695767083E-05 4.86344266442E-05 5.08868369698E-05 5.32300474878E-05
+ 5.56674134782E-05 5.82024097446E-05 6.08386348003E-05 6.35798152001E-05
+ 6.64298100229E-05 6.93926155097E-05 7.24723698624E-05 7.56733582101E-05
+ 7.90000177468E-05 8.24569430482E-05 8.60488915724E-05 8.97807893525E-05
+ 9.36577368857E-05 9.76850152270E-05 1.01868092295E-04 1.06212629396E-04
+ 1.10724487973E-04 1.15409736591E-04 1.20274658166E-04 1.25325757437E-04
+ 1.30569768708E-04 1.36013663847E-04 1.41664660574E-04 1.47530231026E-04
+ 1.53618110624E-04 1.59936307247E-04 1.66493110724E-04 1.73297102651E-04
+ 1.80357166555E-04 1.87682498403E-04 1.95282617481E-04 2.03167377643E-04
+ 2.11346978959E-04 2.19831979755E-04 2.28633309079E-04 2.37762279597E-04
+ 2.47230600927E-04 2.57050393447E-04 2.67234202576E-04 2.77795013540E-04
+ 2.88746266666E-04 3.00101873194E-04 3.11876231633E-04 3.24084244696E-04
+ 3.36741336809E-04 3.49863472228E-04 3.63467173788E-04 3.77569542293E-04
+ 3.92188276584E-04 4.07341694292E-04 4.23048753318E-04 4.39329074047E-04
+ 4.56202962337E-04 4.73691433298E-04 4.91816235894E-04 5.10599878395E-04
+ 5.30065654711E-04 5.50237671632E-04 5.71140877011E-04 5.92801088921E-04
+ 6.15245025821E-04 6.38500337755E-04 6.62595638645E-04 6.87560539682E-04
+ 7.13425683877E-04 7.40222781813E-04 7.67984648616E-04 7.96745242214E-04
+ 8.26539702910E-04 8.57404394328E-04 8.89376945764E-04 9.22496296004E-04
+ 9.56802738651E-04 9.92337969017E-04 1.02914513264E-03 1.06726887544E-03
+ 1.10675539569E-03 1.14765249765E-03 1.19000964718E-03 1.23387802918E-03
+ 1.27931060705E-03 1.32636218422E-03 1.37508946771E-03 1.42555113404E-03
+ 1.47780789720E-03 1.53192257920E-03 1.58796018283E-03 1.64598796707E-03
+ 1.70607552507E-03 1.76829486473E-03 1.83272049221E-03 1.89942949818E-03
+ 1.96850164708E-03 2.04001946949E-03 2.11406835762E-03 2.19073666414E-03
+ 2.27011580438E-03 2.35230036204E-03 2.43738819856E-03 2.52548056622E-03
+ 2.61668222518E-03 2.71110156448E-03 2.80885072723E-03 2.91004574014E-03
+ 3.01480664741E-03 3.12325764930E-03 3.23552724543E-03 3.35174838302E-03
+ 3.47205861013E-03 3.59660023434E-03 3.72552048665E-03 3.85897169121E-03
+ 3.99711144073E-03 4.14010277796E-03 4.28811438340E-03 4.44132076944E-03
+ 4.59990248111E-03 4.76404630375E-03 4.93394547779E-03 5.10979992087E-03
+ 5.29181645756E-03 5.48020905694E-03 5.67519907831E-03 5.87701552531E-03
+ 6.08589530872E-03 6.30208351821E-03 6.52583370342E-03 6.75740816458E-03
+ 6.99707825314E-03 7.24512468251E-03 7.50183784958E-03 7.76751816701E-03
+ 8.04247640698E-03 8.32703405658E-03 8.62152368532E-03 8.92628932513E-03
+ 9.24168686327E-03 9.56808444864E-03 9.90586291181E-03 1.02554161994E-02
+ 1.06171518231E-02 1.09914913241E-02 1.13788707529E-02 1.17797411657E-02
+ 1.21945691375E-02 1.26238372926E-02 1.30680448527E-02 1.35277082041E-02
+ 1.40033614833E-02 1.44955571829E-02 1.50048667780E-02 1.55318813730E-02
+ 1.60772123708E-02 1.66414921642E-02 1.72253748507E-02 1.78295369707E-02
+ 1.84546782712E-02 1.91015224948E-02 1.97708181944E-02 2.04633395763E-02
+ 2.11798873703E-02 2.19212897295E-02 2.26884031595E-02 2.34821134790E-02
+ 2.43033368118E-02 2.51530206119E-02 2.60321447225E-02 2.69417224697E-02
+ 2.78828017926E-02 2.88564664106E-02 2.98638370286E-02 3.09060725823E-02
+ 3.19843715237E-02 3.30999731493E-02 3.42541589711E-02 3.54482541319E-02
+ 3.66836288678E-02 3.79617000166E-02 3.92839325758E-02 4.06518413108E-02
+ 4.20669924148E-02 4.35310052215E-02 4.50455539733E-02 4.66123696454E-02
+ 4.82332418280E-02 4.99100206685E-02 5.16446188748E-02 5.34390137818E-02
+ 5.52952494827E-02 5.72154390272E-02 5.92017666880E-02 6.12564902979E-02
+ 6.33819436589E-02 6.55805390255E-02 6.78547696645E-02 7.02072124925E-02
+ 7.26405307937E-02 7.51574770194E-02 7.77608956727E-02 8.04537262777E-02
+ 8.32390064389E-02 8.61198749893E-02 8.90995752319E-02 9.21814582754E-02
+ 9.53689864662E-02 9.86657369198E-02 1.02075405152E-01 1.05601808813E-01
+ 1.09248891528E-01 1.13020726842E-01 1.16921522274E-01 1.20955623483E-01
+ 1.25127518546E-01 1.29441842349E-01 1.33903381096E-01 1.38517076932E-01
+ 1.43288032690E-01 1.48221516755E-01 1.53322968050E-01 1.58598001143E-01
+ 1.64052411485E-01 1.69692180762E-01 1.75523482380E-01 1.81552687073E-01
+ 1.87786368634E-01 1.94231309778E-01 2.00894508117E-01 2.07783182278E-01
+ 2.14904778122E-01 2.22266975103E-01 2.29877692738E-01 2.37745097190E-01
+ 2.45877607974E-01 2.54283904766E-01 2.62972934324E-01 2.71953917508E-01
+ 2.81236356393E-01 2.90830041478E-01 3.00745058978E-01 3.10991798186E-01
+ 3.21580958906E-01 3.32523558942E-01 3.43830941632E-01 3.55514783419E-01
+ 3.67587101436E-01 3.80060261108E-01 3.92946983732E-01 4.06260354036E-01
+ 4.20013827691E-01 4.34221238753E-01 4.48896807011E-01 4.64055145225E-01
+ 4.79711266215E-01 4.95880589776E-01 5.12578949389E-01 5.29822598692E-01
+ 5.47628217667E-01 5.66012918509E-01 5.84994251133E-01 6.04590208260E-01
+ 6.24819230044E-01 6.45700208176E-01 6.67252489402E-01 6.89495878397E-01
+ 7.12450639917E-01 7.36137500158E-01 7.60577647237E-01 7.85792730706E-01
+ 8.11804860010E-01 8.38636601774E-01 8.66310975826E-01 8.94851449815E-01
+ 9.24281932323E-01 9.54626764309E-01 9.85910708752E-01 1.01815893833E+00
+ 1.05139702096E+00 1.08565090304E+00 1.12094689011E+00 1.15731162491E+00
+ 1.19477206233E+00 1.23335544131E+00 1.27308925314E+00 1.31400120612E+00
+ 1.35611918617E+00 1.39947121297E+00 1.44408539156E+00 1.48998985867E+00
+ 1.53721272377E+00 1.58578200402E+00 1.63572555309E+00 1.68707098296E+00
+ 1.73984557856E+00 1.79407620441E+00 1.84978920297E+00 1.90701028383E+00
+ 1.96576440337E+00 2.02607563403E+00 2.08796702267E+00 2.15146043717E+00
+ 2.21657640071E+00 2.28333391285E+00 2.35175025670E+00 2.42184079154E+00
+ 2.49361872999E+00 2.56709489911E+00 2.64227748484E+00 2.71917175892E+00
+ 2.79777978805E+00 2.87810012463E+00 2.96012747889E+00 3.04385237218E+00
+ 3.12926077161E+00 3.21633370622E+00 3.30504686527E+00 3.39537017963E+00
+ 3.48726738756E+00 3.58069558646E+00 3.67560477304E+00 3.77193737451E+00
+ 3.86962777408E+00 3.96860183487E+00 4.06877642674E+00 4.17005896126E+00
+ 4.27234694067E+00 4.37552752744E+00 4.47947714105E+00 4.58406108949E+00
+ 4.68913324266E+00 4.79453575483E+00 4.90009884268E+00 5.00564062435E+00
+ 5.11096702316E+00 5.21587173730E+00 5.32013627316E+00 5.42353003600E+00
+ 5.52581046581E+00 5.62672319982E+00 5.72600223534E+00 5.82337005765E+00
+ 5.91853768829E+00 6.01120459937E+00 6.10105843017E+00 6.18777443501E+00
+ 6.27101458744E+00 6.35042626761E+00 6.42564047066E+00 6.49626949761E+00
+ 6.56190413184E+00 6.62211036993E+00 6.67642587148E+00 6.72435642678E+00
+ 6.76537292012E+00 6.79890949596E+00 6.82436391610E+00 6.84110142250E+00
+ 6.84846377153E+00 6.84578543928E+00 6.83241923329E+00 6.80777354897E+00
+ 6.77136305480E+00 6.72287332863E+00 6.66223735288E+00 6.58971698756E+00
+ 6.50597434671E+00 6.41210459629E+00 6.30958042803E+00 6.20002552267E+00
+ 6.08468421694E+00 5.96337951222E+00 5.83264043096E+00 5.68251691547E+00
+ 5.49459029043E+00 5.28697382910E+00 5.07048315270E+00 4.84601851398E+00
+ 4.61455733393E+00 4.37714563005E+00 4.13488794376E+00 3.88893608491E+00
+ 3.64047716280E+00 3.39072150708E+00 3.14089122608E+00 2.89221024111E+00
+ 2.64589669605E+00 2.40315859402E+00 2.16519337612E+00 1.93319184436E+00
+ 1.70834636384E+00 1.49186257987E+00 1.28497299375E+00 1.08894961794E+00
+ 9.05111668267E-01 7.34822900118E-01 5.79471967789E-01 4.40428323784E-01
+ 3.18966144544E-01 2.16150186325E-01 1.32681269672E-01 6.87064138329E-02
+ 2.36108101973E-02 -4.17319058040E-03 -1.72814662626E-02 -1.93741786158E-02
+ -1.48327205957E-02 -8.11370457520E-03 -2.76637660350E-03 -3.53805211459E-04
+ -3.26770609630E-07 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+ <PP_QFCOEF>
+ 5.83424918286E+01 -1.75448805309E+02 4.84393825041E+02 -3.46146935995E+03
+ 1.84416234073E+04 -5.28638937134E+04 7.62103597866E+04 -4.34644690586E+04
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 1.85933281746E+02 4.75631987084E+03 -9.71364323132E+04 7.95139358096E+05
+ -3.47591148631E+06 8.40911557344E+06 -1.05889368722E+07 5.40956733126E+06
+ </PP_QFCOEF>
+ 3 4 1 i j (l(j))
+ -1.96463730487E+00 Q_int
+ 0.00000000000E+00 -1.00938982984E-09 -4.10687069485E-09 -9.39953680833E-09
+ -1.69987748779E-08 -2.70204223631E-08 -3.95849313648E-08 -5.48175383439E-08
+ -7.28484398731E-08 -9.38129746324E-08 -1.17851811868E-07 -1.45111146540E-07
+ -1.75742901390E-07 -2.09904936179E-07 -2.47761264334E-07 -2.89482277273E-07
+ -3.35244976667E-07 -3.85233214931E-07 -4.39637944211E-07 -4.98657474181E-07
+ -5.62497738947E-07 -6.31372573384E-07 -7.05503999226E-07 -7.85122521258E-07
+ -8.70467433954E-07 -9.61787138934E-07 -1.05933947361E-06 -1.16339205141E-06
+ -1.27422261400E-06 -1.39211939589E-06 -1.51738150188E-06 -1.65031929783E-06
+ -1.79125481507E-06 -1.94052216917E-06 -2.09846799330E-06 -2.26545188693E-06
+ -2.44184688018E-06 -2.62803991459E-06 -2.82443234068E-06 -3.03144043303E-06
+ -3.24949592338E-06 -3.47904655245E-06 -3.72055664116E-06 -3.97450768178E-06
+ -4.24139894985E-06 -4.52174813753E-06 -4.81609200915E-06 -5.12498707967E-06
+ -5.44901031692E-06 -5.78875986839E-06 -6.14485581353E-06 -6.51794094222E-06
+ -6.90868156059E-06 -7.31776832495E-06 -7.74591710487E-06 -8.19386987648E-06
+ -8.66239564685E-06 -9.15229141081E-06 -9.66438314105E-06 -1.01995268129E-05
+ -1.07586094647E-05 -1.13425502956E-05 -1.19523018009E-05 -1.25888509478E-05
+ -1.32532203918E-05 -1.39464697353E-05 -1.46696968305E-05 -1.54240391274E-05
+ -1.62106750690E-05 -1.70308255349E-05 -1.78857553353E-05 -1.87767747570E-05
+ -1.97052411634E-05 -2.06725606500E-05 -2.16801897575E-05 -2.27296372446E-05
+ -2.38224659228E-05 -2.49602945544E-05 -2.61447998173E-05 -2.73777183373E-05
+ -2.86608487916E-05 -2.99960540855E-05 -3.13852636048E-05 -3.28304755458E-05
+ -3.43337593271E-05 -3.58972580850E-05 -3.75231912554E-05 -3.92138572456E-05
+ -4.09716361988E-05 -4.27989928544E-05 -4.46984795085E-05 -4.66727390760E-05
+ -4.87245082600E-05 -5.08566208304E-05 -5.30720110172E-05 -5.53737170207E-05
+ -5.77648846442E-05 -6.02487710521E-05 -6.28287486591E-05 -6.55083091537E-05
+ -6.82910676616E-05 -7.11807670532E-05 -7.41812824010E-05 -7.72966255908E-05
+ -8.05309500935E-05 -8.38885559019E-05 -8.73738946386E-05 -9.09915748412E-05
+ -9.47463674305E-05 -9.86432113680E-05 -1.02687219510E-04 -1.06883684664E-04
+ -1.11238085853E-04 -1.15756094805E-04 -1.20443582652E-04 -1.25306626877E-04
+ -1.30351518492E-04 -1.35584769469E-04 -1.41013120423E-04 -1.46643548566E-04
+ -1.52483275936E-04 -1.58539777909E-04 -1.64820792005E-04 -1.71334326998E-04
+ -1.78088672349E-04 -1.85092407955E-04 -1.92354414237E-04 -1.99883882589E-04
+ -2.07690326167E-04 -2.15783591073E-04 -2.24173867912E-04 -2.32871703751E-04
+ -2.41888014499E-04 -2.51234097700E-04 -2.60921645786E-04 -2.70962759776E-04
+ -2.81369963452E-04 -2.92156218025E-04 -3.03334937308E-04 -3.14920003413E-04
+ -3.26925782992E-04 -3.39367144036E-04 -3.52259473256E-04 -3.65618694065E-04
+ -3.79461285182E-04 -3.93804299873E-04 -4.08665385865E-04 -4.24062805940E-04
+ -4.40015459247E-04 -4.56542903339E-04 -4.73665376987E-04 -4.91403823765E-04
+ -5.09779916460E-04 -5.28816082318E-04 -5.48535529168E-04 -5.68962272439E-04
+ -5.90121163118E-04 -6.12037916662E-04 -6.34739142920E-04 -6.58252377075E-04
+ -6.82606111661E-04 -7.07829829681E-04 -7.33954038868E-04 -7.61010307122E-04
+ -7.89031299182E-04 -8.18050814543E-04 -8.48103826699E-04 -8.79226523721E-04
+ -9.11456350247E-04 -9.44832050911E-04 -9.79393715268E-04 -1.01518282427E-03
+ -1.05224229834E-03 -1.09061654711E-03 -1.13035152084E-03 -1.17149476366E-03
+ -1.21409546860E-03 -1.25820453451E-03 -1.30387462500E-03 -1.35116022933E-03
+ -1.40011772544E-03 -1.45080544513E-03 -1.50328374151E-03 -1.55761505872E-03
+ -1.61386400408E-03 -1.67209742272E-03 -1.73238447476E-03 -1.79479671516E-03
+ -1.85940817628E-03 -1.92629545332E-03 -1.99553779264E-03 -2.06721718316E-03
+ -2.14141845088E-03 -2.21822935663E-03 -2.29774069718E-03 -2.38004640983E-03
+ -2.46524368055E-03 -2.55343305591E-03 -2.64471855870E-03 -2.73920780767E-03
+ -2.83701214126E-03 -2.93824674563E-03 -3.04303078701E-03 -3.15148754863E-03
+ -3.26374457232E-03 -3.37993380496E-03 -3.50019174988E-03 -3.62465962352E-03
+ -3.75348351736E-03 -3.88681456545E-03 -4.02480911758E-03 -4.16762891844E-03
+ -4.31544129281E-03 -4.46841933711E-03 -4.62674211749E-03 -4.79059487459E-03
+ -4.96016923536E-03 -5.13566343203E-03 -5.31728252852E-03 -5.50523865459E-03
+ -5.69975124790E-03 -5.90104730430E-03 -6.10936163662E-03 -6.32493714221E-03
+ -6.54802507956E-03 -6.77888535429E-03 -7.01778681482E-03 -7.26500755800E-03
+ -7.52083524513E-03 -7.78556742858E-03 -8.05951188946E-03 -8.34298698671E-03
+ -8.63632201784E-03 -8.93985759197E-03 -9.25394601522E-03 -9.57895168921E-03
+ -9.91525152284E-03 -1.02632353579E-02 -1.06233064089E-02 -1.09958817177E-02
+ -1.13813926232E-02 -1.17802852469E-02 -1.21930209943E-02 -1.26200770735E-02
+ -1.30619470304E-02 -1.35191413025E-02 -1.39921877901E-02 -1.44816324473E-02
+ -1.49880398919E-02 -1.55119940358E-02 -1.60540987358E-02 -1.66149784666E-02
+ -1.71952790150E-02 -1.77956681970E-02 -1.84168365992E-02 -1.90594983434E-02
+ -1.97243918765E-02 -2.04122807865E-02 -2.11239546444E-02 -2.18602298733E-02
+ -2.26219506464E-02 -2.34099898131E-02 -2.42252498551E-02 -2.50686638734E-02
+ -2.59411966069E-02 -2.68438454827E-02 -2.77776417007E-02 -2.87436513525E-02
+ -2.97429765748E-02 -3.07767567400E-02 -3.18461696841E-02 -3.29524329720E-02
+ -3.40968052039E-02 -3.52805873604E-02 -3.65051241904E-02 -3.77718056414E-02
+ -3.90820683331E-02 -4.04373970767E-02 -4.18393264397E-02 -4.32894423581E-02
+ -4.47893837970E-02 -4.63408444606E-02 -4.79455745533E-02 -4.96053825923E-02
+ -5.13221372736E-02 -5.30977693923E-02 -5.49342738179E-02 -5.68337115271E-02
+ -5.87982116938E-02 -6.08299738382E-02 -6.29312700363E-02 -6.51044471904E-02
+ -6.73519293619E-02 -6.96762201682E-02 -7.20799052429E-02 -7.45656547628E-02
+ -7.71362260400E-02 -7.97944661825E-02 -8.25433148221E-02 -8.53858069114E-02
+ -8.83250755909E-02 -9.13643551252E-02 -9.45069839110E-02 -9.77564075556E-02
+ -1.01116182026E-01 -1.04589976873E-01 -1.08181578519E-01 -1.11894893626E-01
+ -1.15733952532E-01 -1.19702912752E-01 -1.23806062553E-01 -1.28047824604E-01
+ -1.32432759680E-01 -1.36965570443E-01 -1.41651105280E-01 -1.46494362211E-01
+ -1.51500492844E-01 -1.56674806402E-01 -1.62022773789E-01 -1.67550031718E-01
+ -1.73262386872E-01 -1.79165820117E-01 -1.85266490745E-01 -1.91570740745E-01
+ -1.98085099102E-01 -2.04816286108E-01 -2.11771217684E-01 -2.18957009695E-01
+ -2.26380982266E-01 -2.34050664065E-01 -2.41973796560E-01 -2.50158338232E-01
+ -2.58612468725E-01 -2.67344592925E-01 -2.76363344947E-01 -2.85677592022E-01
+ -2.95296438242E-01 -3.05229228174E-01 -3.15485550296E-01 -3.26075240236E-01
+ -3.37008383797E-01 -3.48295319729E-01 -3.59946642223E-01 -3.71973203092E-01
+ -3.84386113599E-01 -3.97196745910E-01 -4.10416734105E-01 -4.24057974725E-01
+ -4.38132626794E-01 -4.52653111273E-01 -4.67632109880E-01 -4.83082563231E-01
+ -4.99017668219E-01 -5.15450874581E-01 -5.32395880568E-01 -5.49866627641E-01
+ -5.67877294108E-01 -5.86442287606E-01 -6.05576236346E-01 -6.25293978989E-01
+ -6.45610553065E-01 -6.66541181798E-01 -6.88101259215E-01 -7.10306333392E-01
+ -7.33172087696E-01 -7.56714319860E-01 -7.80948918713E-01 -8.05891838389E-01
+ -8.31559069820E-01 -8.57966609297E-01 -8.85130423870E-01 -9.13066413374E-01
+ -9.41790368784E-01 -9.71317926672E-01 -1.00166451945E+00 -1.03284532107E+00
+ -1.06487518798E+00 -1.09776859477E+00 -1.13153956438E+00 -1.16620159236E+00
+ -1.20176756481E+00 -1.23824966961E+00 -1.27565930048E+00 -1.31400695349E+00
+ -1.35330211547E+00 -1.39355314396E+00 -1.43476713823E+00 -1.47694980082E+00
+ -1.52010528928E+00 -1.56423605761E+00 -1.60934268703E+00 -1.65542370574E+00
+ -1.70247539731E+00 -1.75049159757E+00 -1.79946347976E+00 -1.84937932807E+00
+ -1.90022429948E+00 -1.95198017436E+00 -2.00462509623E+00 -2.05813330139E+00
+ -2.11247483930E+00 -2.16761528520E+00 -2.22351544617E+00 -2.28013106295E+00
+ -2.33741250964E+00 -2.39530449401E+00 -2.45374576179E+00 -2.51266880836E+00
+ -2.57199960206E+00 -2.63165732342E+00 -2.69155412526E+00 -2.75159491857E+00
+ -2.81167718928E+00 -2.87169085105E+00 -2.93151813871E+00 -2.99103354627E+00
+ -3.05010381264E+00 -3.10858795625E+00 -3.16633735796E+00 -3.22319588880E+00
+ -3.27900007543E+00 -3.33357929229E+00 -3.38675596419E+00 -3.43834575757E+00
+ -3.48815773254E+00 -3.53599442147E+00 -3.58165179394E+00 -3.62491906307E+00
+ -3.66557828565E+00 -3.70340370917E+00 -3.73816082623E+00 -3.76960511105E+00
+ -3.79748043959E+00 -3.82151723632E+00 -3.84143045171E+00 -3.85691756023E+00
+ -3.86765688291E+00 -3.87330668542E+00 -3.87350568280E+00 -3.86787579179E+00
+ -3.85602819840E+00 -3.83757402483E+00 -3.81214103624E+00 -3.77939783703E+00
+ -3.73908672806E+00 -3.69106560586E+00 -3.63535763787E+00 -3.57220441937E+00
+ -3.50211312728E+00 -3.42587967946E+00 -3.34455640399E+00 -3.25931178625E+00
+ -3.17109799942E+00 -3.07999415334E+00 -2.98402245311E+00 -2.87713078175E+00
+ -2.74788827222E+00 -2.60747370078E+00 -2.46268524904E+00 -2.31418871868E+00
+ -2.16269787150E+00 -2.00896912215E+00 -1.85379559494E+00 -1.69800080071E+00
+ -1.54243226732E+00 -1.38795551744E+00 -1.23544883231E+00 -1.08579923907E+00
+ -9.39900108400E-01 -7.98650613015E-01 -6.62957067278E-01 -5.33735812896E-01
+ -4.11916830534E-01 -2.98446632860E-01 -1.94288252049E-01 -1.00415315685E-01
+ -1.77963934426E-02 5.26348660106E-02 1.10028595499E-01 1.53690990104E-01
+ 1.83182975020E-01 1.98445096882E-01 1.99942974406E-01 1.88818979109E-01
+ 1.67023370663E-01 1.37381902374E-01 1.03538732078E-01 6.96987531444E-02
+ 4.00945214477E-02 1.81446144920E-02 5.39577656346E-03 6.22096662744E-04
+ 5.30345429797E-07 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+ <PP_QFCOEF>
+ -3.59836641469E+01 1.16448402922E+02 -3.20223721849E+02 2.22149388407E+03
+ -1.18105312989E+04 3.38469475116E+04 -4.87601241769E+04 2.77809236355E+04
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -1.07018421106E+02 -2.92904351144E+03 5.96112793265E+04 -4.87992571701E+05
+ 2.13334623838E+06 -5.16125360421E+06 6.49931358765E+06 -3.32038329156E+06
+ </PP_QFCOEF>
+ 4 4 1 i j (l(j))
+ 9.29943154843E-01 Q_int
+ 0.00000000000E+00 6.21784831810E-10 2.52983518232E-09 5.79012116064E-09
+ 1.04712570552E-08 1.66445988205E-08 2.43843450331E-08 3.37676414385E-08
+ 4.48746892139E-08 5.77888570782E-08 7.25967973824E-08 8.93885663202E-08
+ 1.08257748403E-07 1.29301585350E-07 1.52621109540E-07 1.78321282200E-07
+ 2.06511136478E-07 2.37303925582E-07 2.70817276159E-07 3.07173347097E-07
+ 3.46498993940E-07 3.88925939107E-07 4.34590948130E-07 4.83636012103E-07
+ 5.36208536572E-07 5.92461537091E-07 6.52553841666E-07 7.16650300335E-07
+ 7.84922002132E-07 8.57546499689E-07 9.34708041749E-07 1.01659781385E-06
+ 1.10341418750E-06 1.19536297807E-06 1.29265771180E-06 1.39551990215E-06
+ 1.50417933590E-06 1.61887436923E-06 1.73985223430E-06 1.86736935646E-06
+ 2.00169168268E-06 2.14309502148E-06 2.29186539477E-06 2.44829940203E-06
+ 2.61270459723E-06 2.78539987898E-06 2.96671589434E-06 3.15699545678E-06
+ 3.35659397872E-06 3.56587991928E-06 3.78523524762E-06 4.01505592255E-06
+ 4.25575238891E-06 4.50775009120E-06 4.77149000533E-06 5.04742918881E-06
+ 5.33604135024E-06 5.63781743862E-06 5.95326625337E-06 6.28291507545E-06
+ 6.62731032071E-06 6.98701821592E-06 7.36262549839E-06 7.75474014006E-06
+ 8.16399209677E-06 8.59103408371E-06 9.03654237790E-06 9.50121764856E-06
+ 9.98578581654E-06 1.04909989436E-05 1.10176361528E-05 1.15665045806E-05
+ 1.21384403627E-05 1.27343096537E-05 1.33550096821E-05 1.40014698432E-05
+ 1.46746528282E-05 1.53755557942E-05 1.61052115740E-05 1.68646899284E-05
+ 1.76550988416E-05 1.84775858625E-05 1.93333394913E-05 2.02235906156E-05
+ 2.11496139960E-05 2.21127298028E-05 2.31143052065E-05 2.41557560240E-05
+ 2.52385484212E-05 2.63642006751E-05 2.75342849973E-05 2.87504294202E-05
+ 3.00143197494E-05 3.13277015836E-05 3.26923824041E-05 3.41102337378E-05
+ 3.55831933945E-05 3.71132677820E-05 3.87025343018E-05 4.03531438273E-05
+ 4.20673232688E-05 4.38473782268E-05 4.56956957371E-05 4.76147471123E-05
+ 4.96070908802E-05 5.16753758254E-05 5.38223441354E-05 5.60508346564E-05
+ 5.83637862613E-05 6.07642413353E-05 6.32553493809E-05 6.58403707493E-05
+ 6.85226805002E-05 7.13057723951E-05 7.41932630296E-05 7.71888961083E-05
+ 8.02965468676E-05 8.35202266525E-05 8.68640876508E-05 9.03324277914E-05
+ 9.39296958130E-05 9.76604965070E-05 1.01529596143E-04 1.05541928080E-04
+ 1.09702598576E-04 1.14016892793E-04 1.18490281014E-04 1.23128425072E-04
+ 1.27937185007E-04 1.32922625943E-04 1.38091025215E-04 1.43448879733E-04
+ 1.49002913602E-04 1.54760086015E-04 1.60727599404E-04 1.66912907882E-04
+ 1.73323725976E-04 1.79968037661E-04 1.86854105704E-04 1.93990481335E-04
+ 2.01386014245E-04 2.09049862942E-04 2.16991505450E-04 2.25220750388E-04
+ 2.33747748426E-04 2.42583004141E-04 2.51737388280E-04 2.61222150444E-04
+ 2.71048932215E-04 2.81229780733E-04 2.91777162742E-04 3.02703979120E-04
+ 3.14023579914E-04 3.25749779890E-04 3.37896874619E-04 3.50479657123E-04
+ 3.63513435091E-04 3.77014048688E-04 3.90997888982E-04 4.05481917003E-04
+ 4.20483683465E-04 4.36021349155E-04 4.52113706044E-04 4.68780199106E-04
+ 4.86040948905E-04 5.03916774949E-04 5.22429219857E-04 5.41600574350E-04
+ 5.61453903113E-04 5.82013071539E-04 6.03302773399E-04 6.25348559463E-04
+ 6.48176867107E-04 6.71815050938E-04 6.96291414474E-04 7.21635242914E-04
+ 7.47876837038E-04 7.75047548269E-04 8.03179814940E-04 8.32307199817E-04
+ 8.62464428902E-04 8.93687431577E-04 9.26013382122E-04 9.59480742667E-04
+ 9.94129307612E-04 1.03000024958E-03 1.06713616694E-03 1.10558113298E-03
+ 1.14538074672E-03 1.18658218556E-03 1.22923425964E-03 1.27338746808E-03
+ 1.31909405725E-03 1.36640808089E-03 1.41538546237E-03 1.46608405912E-03
+ 1.51856372917E-03 1.57288640006E-03 1.62911614005E-03 1.68731923179E-03
+ 1.74756424852E-03 1.80992213287E-03 1.87446627833E-03 1.94127261354E-03
+ 2.01041968946E-03 2.08198876950E-03 2.15606392270E-03 2.23273212017E-03
+ 2.31208333477E-03 2.39421064415E-03 2.47921033740E-03 2.56718202526E-03
+ 2.65822875411E-03 2.75245712382E-03 2.84997740965E-03 2.95090368828E-03
+ 3.05535396808E-03 3.16345032388E-03 3.27531903627E-03 3.39109073564E-03
+ 3.51090055106E-03 3.63488826435E-03 3.76319846914E-03 3.89598073555E-03
+ 4.03338978028E-03 4.17558564249E-03 4.32273386567E-03 4.47500568561E-03
+ 4.63257822467E-03 4.79563469266E-03 4.96436459448E-03 5.13896394471E-03
+ 5.31963548940E-03 5.50658893536E-03 5.70004118714E-03 5.90021659187E-03
+ 6.10734719236E-03 6.32167298872E-03 6.54344220856E-03 6.77291158634E-03
+ 7.01034665201E-03 7.25602202915E-03 7.51022174319E-03 7.77323953968E-03
+ 8.04537921325E-03 8.32695494737E-03 8.61829166540E-03 8.91972539312E-03
+ 9.23160363335E-03 9.55428575275E-03 9.88814338138E-03 1.02335608254E-02
+ 1.05909354930E-02 1.09606783349E-02 1.13432142980E-02 1.17389827955E-02
+ 1.21484381901E-02 1.25720502952E-02 1.30103048901E-02 1.34637042534E-02
+ 1.39327677126E-02 1.44180322119E-02 1.49200528972E-02 1.54394037214E-02
+ 1.59766780667E-02 1.65324893890E-02 1.71074718802E-02 1.77022811536E-02
+ 1.83175949489E-02 1.89541138607E-02 1.96125620881E-02 2.02936882094E-02
+ 2.09982659788E-02 2.17270951487E-02 2.24810023170E-02 2.32608417997E-02
+ 2.40674965307E-02 2.49018789874E-02 2.57649321456E-02 2.66576304615E-02
+ 2.75809808835E-02 2.85360238933E-02 2.95238345781E-02 3.05455237329E-02
+ 3.16022389952E-02 3.26951660122E-02 3.38255296406E-02 3.49945951805E-02
+ 3.62036696436E-02 3.74541030565E-02 3.87472897992E-02 4.00846699802E-02
+ 4.14677308483E-02 4.28980082420E-02 4.43770880758E-02 4.59066078661E-02
+ 4.74882582949E-02 4.91237848133E-02 5.08149892840E-02 5.25637316643E-02
+ 5.43719317285E-02 5.62415708310E-02 5.81746937098E-02 6.01734103299E-02
+ 6.22398977680E-02 6.43764021360E-02 6.65852405458E-02 6.88688031130E-02
+ 7.12295549990E-02 7.36700384929E-02 7.61928751296E-02 7.88007678453E-02
+ 8.14965031683E-02 8.42829534435E-02 8.71630790905E-02 9.01399308910E-02
+ 9.32166523068E-02 9.63964818226E-02 9.96827553141E-02 1.03078908436E-01
+ 1.06588479030E-01 1.10215109543E-01 1.13962549460E-01 1.17834657743E-01
+ 1.21835405264E-01 1.25968877247E-01 1.30239275685E-01 1.34650921752E-01
+ 1.39208258190E-01 1.43915851658E-01 1.48778395051E-01 1.53800709770E-01
+ 1.58987747925E-01 1.64344594483E-01 1.69876469328E-01 1.75588729228E-01
+ 1.81486869707E-01 1.87576526780E-01 1.93863478568E-01 2.00353646755E-01
+ 2.07053097869E-01 2.13968044378E-01 2.21104845577E-01 2.28470008234E-01
+ 2.36070186977E-01 2.43912184405E-01 2.52002950875E-01 2.60349583948E-01
+ 2.68959327461E-01 2.77839570184E-01 2.86997844031E-01 2.96441821774E-01
+ 3.06179314230E-01 3.16218266868E-01 3.26566755781E-01 3.37232982981E-01
+ 3.48225270948E-01 3.59552056379E-01 3.71221883073E-01 3.83243393871E-01
+ 3.95625321591E-01 4.08376478855E-01 4.21505746754E-01 4.35022062223E-01
+ 4.48934404054E-01 4.63251777425E-01 4.77983196845E-01 4.93137667383E-01
+ 5.08724164054E-01 5.24751609235E-01 5.41228847955E-01 5.58164620897E-01
+ 5.75567534968E-01 5.93446031237E-01 6.11808350070E-01 6.30662493261E-01
+ 6.50016182945E-01 6.69876817083E-01 6.90251421281E-01 7.11146596703E-01
+ 7.32568463833E-01 7.54522601817E-01 7.77013983118E-01 8.00046903208E-01
+ 8.23624905021E-01 8.47750697877E-01 8.72426070590E-01 8.97651798501E-01
+ 9.23427544144E-01 9.49751751313E-01 9.76621532282E-01 1.00403254800E+00
+ 1.03197888106E+00 1.06045290144E+00 1.08944512477E+00 1.11894406342E+00
+ 1.14893607031E+00 1.17940517585E+00 1.21033291828E+00 1.24169816797E+00
+ 1.27347694646E+00 1.30564224099E+00 1.33816381582E+00 1.37100802165E+00
+ 1.40413760467E+00 1.43751151743E+00 1.47108473346E+00 1.50480806842E+00
+ 1.53862801045E+00 1.57248656285E+00 1.60632110251E+00 1.64006425748E+00
+ 1.67364380741E+00 1.70698261029E+00 1.73999855902E+00 1.77260457063E+00
+ 1.80470861053E+00 1.83621375311E+00 1.86701827859E+00 1.89701580451E+00
+ 1.92609544766E+00 1.95414200979E+00 1.98103617729E+00 2.00665472111E+00
+ 2.03087067937E+00 2.05355350125E+00 2.07456912629E+00 2.09377997066E+00
+ 2.11104478969E+00 2.12621838664E+00 2.13915114204E+00 2.14968834702E+00
+ 2.15766934125E+00 2.16292648246E+00 2.16528401378E+00 2.16455695038E+00
+ 2.16055018025E+00 2.15305806898E+00 2.14186497489E+00 2.12674721687E+00
+ 2.10747718487E+00 2.08383042511E+00 2.05559663635E+00 2.02259552527E+00
+ 1.98469829822E+00 1.94185506916E+00 1.89412741935E+00 1.84172341731E+00
+ 1.78502909607E+00 1.72462494970E+00 1.66126737279E+00 1.59580156167E+00
+ 1.52895198221E+00 1.46090588469E+00 1.39055997331E+00 1.31423381532E+00
+ 1.22480549993E+00 1.12918392731E+00 1.03166253387E+00 9.32732610553E-01
+ 8.32915489120E-01 7.32759289408E-01 6.32835485032E-01 5.33735486394E-01
+ 4.36067476460E-01 3.40453753976E-01 2.47528834834E-01 1.57938518314E-01
+ 7.23400303998E-02 -8.59680767394E-03 -8.41876825882E-02 -1.53731800770E-01
+ -2.16510882973E-01 -2.71790743167E-01 -3.18827643079E-01 -3.56882211548E-01
+ -3.85244230438E-01 -4.03271873222E-01 -4.10448828648E-01 -4.06461863689E-01
+ -3.91299391239E-01 -3.65368038712E-01 -3.29618509190E-01 -2.85663682970E-01
+ -2.35860644577E-01 -1.83314679834E-01 -1.31749567246E-01 -8.51794253842E-02
+ -4.73269744615E-02 -2.07816720959E-02 -6.01943213567E-03 -6.78162316533E-04
+ -5.69369115339E-07 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+ <PP_QFCOEF>
+ 2.21659619487E+01 -7.77131948963E+01 2.13221341439E+02 -1.43720215757E+03
+ 7.62619098472E+03 -2.18499689595E+04 3.14522497376E+04 -1.78996034734E+04
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 6.03989622292E+01 1.80018832299E+03 -3.64927361697E+04 2.98763644601E+05
+ -1.30618335064E+06 3.16018724709E+06 -3.97958148169E+06 2.03315623071E+06
+ </PP_QFCOEF>
+ </PP_QIJ>
+</PP_NONLOCAL>
+
+
+<PP_PSWFC>
+2S 0 2.00 Wavefunction
+ 0.00000000000E+00 9.59131578646E-06 1.93465817261E-05 2.92686003198E-05
+ 3.93602219702E-05 4.96243458034E-05 6.00639205017E-05 7.06819451510E-05
+ 8.14814701023E-05 9.24655978479E-05 1.03637483913E-04 1.15000337761E-04
+ 1.26557423717E-04 1.38312061906E-04 1.50267629204E-04 1.62427560211E-04
+ 1.74795348235E-04 1.87374546299E-04 2.00168768158E-04 2.13181689340E-04
+ 2.26417048200E-04 2.39878646995E-04 2.53570352976E-04 2.67496099498E-04
+ 2.81659887152E-04 2.96065784913E-04 3.10717931309E-04 3.25620535608E-04
+ 3.40777879032E-04 3.56194315983E-04 3.71874275295E-04 3.87822261504E-04
+ 4.04042856148E-04 4.20540719076E-04 4.37320589793E-04 4.54387288816E-04
+ 4.71745719061E-04 4.89400867255E-04 5.07357805362E-04 5.25621692045E-04
+ 5.44197774145E-04 5.63091388192E-04 5.82307961931E-04 6.01853015891E-04
+ 6.21732164961E-04 6.41951120010E-04 6.62515689525E-04 6.83431781278E-04
+ 7.04705404027E-04 7.26342669237E-04 7.48349792842E-04 7.70733097023E-04
+ 7.93499012031E-04 8.16654078031E-04 8.40204946978E-04 8.64158384536E-04
+ 8.88521272011E-04 9.13300608337E-04 9.38503512081E-04 9.64137223488E-04
+ 9.90209106564E-04 1.01672665119E-03 1.04369747527E-03 1.07112932693E-03
+ 1.09903008672E-03 1.12740776991E-03 1.15627052876E-03 1.18562665491E-03
+ 1.21548458168E-03 1.24585288658E-03 1.27674029373E-03 1.30815567636E-03
+ 1.34010805937E-03 1.37260662193E-03 1.40566070012E-03 1.43927978957E-03
+ 1.47347354825E-03 1.50825179920E-03 1.54362453335E-03 1.57960191243E-03
+ 1.61619427184E-03 1.65341212366E-03 1.69126615962E-03 1.72976725424E-03
+ 1.76892646789E-03 1.80875505000E-03 1.84926444227E-03 1.89046628198E-03
+ 1.93237240533E-03 1.97499485080E-03 2.01834586266E-03 2.06243789446E-03
+ 2.10728361262E-03 2.15289590003E-03 2.19928785982E-03 2.24647281904E-03
+ 2.29446433256E-03 2.34327618692E-03 2.39292240428E-03 2.44341724651E-03
+ 2.49477521922E-03 2.54701107593E-03 2.60013982236E-03 2.65417672069E-03
+ 2.70913729395E-03 2.76503733050E-03 2.82189288853E-03 2.87972030069E-03
+ 2.93853617881E-03 2.99835741860E-03 3.05920120455E-03 3.12108501488E-03
+ 3.18402662648E-03 3.24804412013E-03 3.31315588557E-03 3.37938062686E-03
+ 3.44673736774E-03 3.51524545706E-03 3.58492457435E-03 3.65579473549E-03
+ 3.72787629841E-03 3.80118996899E-03 3.87575680695E-03 3.95159823194E-03
+ 4.02873602966E-03 4.10719235812E-03 4.18698975400E-03 4.26815113911E-03
+ 4.35069982700E-03 4.43465952960E-03 4.52005436408E-03 4.60690885972E-03
+ 4.69524796498E-03 4.78509705464E-03 4.87648193712E-03 4.96942886182E-03
+ 5.06396452670E-03 5.16011608594E-03 5.25791115770E-03 5.35737783205E-03
+ 5.45854467905E-03 5.56144075693E-03 5.66609562042E-03 5.77253932923E-03
+ 5.88080245667E-03 5.99091609843E-03 6.10291188145E-03 6.21682197307E-03
+ 6.33267909018E-03 6.45051650862E-03 6.57036807274E-03 6.69226820507E-03
+ 6.81625191620E-03 6.94235481484E-03 7.07061311798E-03 7.20106366128E-03
+ 7.33374390965E-03 7.46869196795E-03 7.60594659193E-03 7.74554719933E-03
+ 7.88753388114E-03 8.03194741312E-03 8.17882926746E-03 8.32822162464E-03
+ 8.48016738554E-03 8.63471018368E-03 8.79189439774E-03 8.95176516423E-03
+ 9.11436839045E-03 9.27975076759E-03 9.44795978406E-03 9.61904373916E-03
+ 9.79305175680E-03 9.97003379959E-03 1.01500406831E-02 1.03331240905E-02
+ 1.05193365871E-02 1.07087316355E-02 1.09013636109E-02 1.10972878168E-02
+ 1.12965605002E-02 1.14992388683E-02 1.17053811045E-02 1.19150463851E-02
+ 1.21282948961E-02 1.23451878505E-02 1.25657875056E-02 1.27901571809E-02
+ 1.30183612762E-02 1.32504652895E-02 1.34865358362E-02 1.37266406679E-02
+ 1.39708486915E-02 1.42192299890E-02 1.44718558375E-02 1.47287987292E-02
+ 1.49901323922E-02 1.52559318115E-02 1.55262732502E-02 1.58012342713E-02
+ 1.60808937592E-02 1.63653319430E-02 1.66546304183E-02 1.69488721712E-02
+ 1.72481416009E-02 1.75525245446E-02 1.78621083008E-02 1.81769816549E-02
+ 1.84972349037E-02 1.88229598810E-02 1.91542499840E-02 1.94912001990E-02
+ 1.98339071287E-02 2.01824690192E-02 2.05369857878E-02 2.08975590511E-02
+ 2.12642921534E-02 2.16372901961E-02 2.20166600671E-02 2.24025104705E-02
+ 2.27949519578E-02 2.31940969581E-02 2.36000598100E-02 2.40129567937E-02
+ 2.44329061630E-02 2.48600281791E-02 2.52944451433E-02 2.57362814318E-02
+ 2.61856635298E-02 2.66427200670E-02 2.71075818531E-02 2.75803819145E-02
+ 2.80612555307E-02 2.85503402718E-02 2.90477760367E-02 2.95537050920E-02
+ 3.00682721103E-02 3.05916242109E-02 3.11239110000E-02 3.16652846115E-02
+ 3.22158997487E-02 3.27759137270E-02 3.33454865165E-02 3.39247807854E-02
+ 3.45139619449E-02 3.51131981933E-02 3.57226605623E-02 3.63425229627E-02
+ 3.69729622314E-02 3.76141581794E-02 3.82662936393E-02 3.89295545151E-02
+ 3.96041298314E-02 4.02902117836E-02 4.09879957895E-02 4.16976805407E-02
+ 4.24194680552E-02 4.31535637305E-02 4.39001763977E-02 4.46595183762E-02
+ 4.54318055286E-02 4.62172573176E-02 4.70160968621E-02 4.78285509950E-02
+ 4.86548503216E-02 4.94952292786E-02 5.03499261935E-02 5.12191833456E-02
+ 5.21032470267E-02 5.30023676030E-02 5.39167995780E-02 5.48468016558E-02
+ 5.57926368045E-02 5.67545723216E-02 5.77328798989E-02 5.87278356889E-02
+ 5.97397203710E-02 6.07688192192E-02 6.18154221700E-02 6.28798238907E-02
+ 6.39623238492E-02 6.50632263827E-02 6.61828407693E-02 6.73214812974E-02
+ 6.84794673384E-02 6.96571234175E-02 7.08547792864E-02 7.20727699957E-02
+ 7.33114359684E-02 7.45711230729E-02 7.58521826967E-02 7.71549718205E-02
+ 7.84798530924E-02 7.98271949018E-02 8.11973714543E-02 8.25907628462E-02
+ 8.40077551383E-02 8.54487404310E-02 8.69141169381E-02 8.84042890610E-02
+ 8.99196674622E-02 9.14606691388E-02 9.30277174952E-02 9.46212424151E-02
+ 9.62416803335E-02 9.78894743073E-02 9.95650740849E-02 1.01268936175E-01
+ 1.03001523915E-01 1.04763307537E-01 1.06554764232E-01 1.08376378212E-01
+ 1.10228640778E-01 1.12112050370E-01 1.14027112631E-01 1.15974340462E-01
+ 1.17954254072E-01 1.19967381029E-01 1.22014256308E-01 1.24095422331E-01
+ 1.26211429013E-01 1.28362833795E-01 1.30550201676E-01 1.32774105243E-01
+ 1.35035124693E-01 1.37333847854E-01 1.39670870194E-01 1.42046794835E-01
+ 1.44462232547E-01 1.46917801748E-01 1.49414128492E-01 1.51951846447E-01
+ 1.54531596870E-01 1.57154028571E-01 1.59819797869E-01 1.62529568538E-01
+ 1.65284011742E-01 1.68083805962E-01 1.70929636912E-01 1.73822197436E-01
+ 1.76762187406E-01 1.79750313589E-01 1.82787289517E-01 1.85873835332E-01
+ 1.89010677615E-01 1.92198549203E-01 1.95438188987E-01 1.98730341689E-01
+ 2.02075757622E-01 2.05475192427E-01 2.08929406790E-01 2.12439166136E-01
+ 2.16005240298E-01 2.19628403161E-01 2.23309432276E-01 2.27049108452E-01
+ 2.30848215316E-01 2.34707538834E-01 2.38627866813E-01 2.42609988360E-01
+ 2.46654693304E-01 2.50762771581E-01 2.54935012587E-01 2.59172204476E-01
+ 2.63475133425E-01 2.67844582847E-01 2.72281332558E-01 2.76786157896E-01
+ 2.81359828780E-01 2.86003108724E-01 2.90716753784E-01 2.95501511452E-01
+ 3.00358119480E-01 3.05287304642E-01 3.10289781430E-01 3.15366250672E-01
+ 3.20517398078E-01 3.25743892709E-01 3.31046385359E-01 3.36425506862E-01
+ 3.41881866299E-01 3.47416049120E-01 3.53028615168E-01 3.58720096602E-01
+ 3.64490995715E-01 3.70341782651E-01 3.76272892997E-01 3.82284725272E-01
+ 3.88377638283E-01 3.94551948363E-01 4.00807926477E-01 4.07145795188E-01
+ 4.13565725491E-01 4.20067833493E-01 4.26652176950E-01 4.33318751645E-01
+ 4.40067487607E-01 4.46898245159E-01 4.53810810805E-01 4.60804892928E-01
+ 4.67880117311E-01 4.75036022476E-01 4.82272054816E-01 4.89587563539E-01
+ 4.96981795401E-01 5.04453889233E-01 5.12002870246E-01 5.19627644122E-01
+ 5.27326990871E-01 5.35099558461E-01 5.42943856211E-01 5.50858247942E-01
+ 5.58840944879E-01 5.66889998311E-01 5.75003291996E-01 5.83178534304E-01
+ 5.91413250117E-01 5.99704772459E-01 6.08050233878E-01 6.16446557565E-01
+ 6.24890448228E-01 6.33378382715E-01 6.41906600399E-01 6.50471093331E-01
+ 6.59067596181E-01 6.67691575974E-01 6.76338221647E-01 6.85002433450E-01
+ 6.93678812226E-01 7.02361648593E-01 7.11044912086E-01 7.19722240301E-01
+ 7.28386928100E-01 7.37031916956E-01 7.45649784494E-01 7.54232734356E-01
+ 7.62772586461E-01 7.71260767802E-01 7.79688303909E-01 7.88045811129E-01
+ 7.96323489901E-01 8.04511119221E-01 8.12598052487E-01 8.20573214995E-01
+ 8.28425103299E-01 8.36141786735E-01 8.43710911398E-01 8.51119706868E-01
+ 8.58354996016E-01 8.65403208222E-01 8.72250396324E-01 8.78882257628E-01
+ 8.85284159266E-01 8.91441168192E-01 8.97338086006E-01 9.02959488766E-01
+ 9.08289771827E-01 9.13313199635E-01 9.18013960249E-01 9.22376224161E-01
+ 9.26384206791E-01 9.30022233746E-01 9.33274807655E-01 9.36126675082E-01
+ 9.38562891646E-01 9.40568883187E-01 9.42130500442E-01 9.43234064474E-01
+ 9.43866399893E-01 9.44014852911E-01 9.43667291499E-01 9.42812085433E-01
+ 9.41438065049E-01 9.39534459033E-01 9.37090813913E-01 9.34096901034E-01
+ 9.30542621006E-01 9.26417920942E-01 9.21712746184E-01 9.16417055426E-01
+ 9.10520937233E-01 9.04014873289E-01 8.96890200169E-01 8.89139823915E-01
+ 8.80759236262E-01 8.71747862046E-01 8.62110725089E-01 8.51860341220E-01
+ 8.41018612456E-01 8.29618277164E-01 8.17703126728E-01 8.05325672063E-01
+ 7.92540152167E-01 7.79388585851E-01 7.65896106308E-01 7.52085262228E-01
+ 7.37978851145E-01 7.23599904541E-01 7.08971624156E-01 6.94117328720E-01
+ 6.79060401273E-01 6.63824236755E-01 6.48432190402E-01 6.32907526725E-01
+ 6.17273369493E-01 6.01552652589E-01 5.85768072043E-01 5.69942039197E-01
+ 5.54096635202E-01 5.38253566888E-01 5.22434124094E-01 5.06659138593E-01
+ 4.90948944589E-01 4.75323341013E-01 4.59801555486E-01 4.44402210268E-01
+ 4.29143289960E-01 4.14042111361E-01 3.99115295160E-01 3.84378739919E-01
+ 3.69847597992E-01 3.55536253841E-01 3.41458304363E-01 3.27626541738E-01
+ 3.14052938341E-01 3.00748634258E-01 2.87723926939E-01 2.74988263501E-01
+ 2.62550235227E-01 2.50417574740E-01 2.38597155409E-01 2.27094993428E-01
+ 2.15916252139E-01 2.05065248999E-01 1.94545464757E-01 1.84359555234E-01
+ 1.74509365237E-01 1.64995944972E-01 1.55819568515E-01 1.46979754620E-01
+ 1.38475289460E-01 1.30304251511E-01 1.22464038199E-01 1.14951394461E-01
+ 1.07762442844E-01 1.00892715255E-01 9.43371859935E-02 8.80903061213E-02
+ 8.21460388291E-02 7.64978958057E-02 7.11389742759E-02 6.60619946873E-02
+ 6.12593387212E-02 5.67230875794E-02 5.24450602412E-02 4.84168516176E-02
+ 4.46298703220E-02 4.10753759659E-02 3.77445157264E-02 3.46283600859E-02
+ 3.17179375188E-02 2.90042680273E-02 2.64783953319E-02 2.41314176260E-02
+ 2.19545167345E-02 1.99389856009E-02 1.80762539769E-02 1.63579122594E-02
+ 1.47757333853E-02 1.33216927526E-02 1.19879861144E-02 1.07670454394E-02
+ 9.65155272358E-03 8.63445176964E-03 7.70895795410E-03 6.86856602544E-03
+ 6.10705598061E-03 5.41849708919E-03 4.79725013751E-03 4.23796798249E-03
+ 3.73559450854E-03 3.28536209349E-03 2.88278769232E-03 2.52366765603E-03
+ 2.20407140414E-03 1.92033407426E-03 1.66904827165E-03 1.44705504265E-03
+ 1.25143419411E-03 1.07949407858E-03 9.28760961449E-04 7.96968081612E-04
+ 6.82044511732E-04 5.82103918124E-04 4.95433313168E-04 4.20481885955E-04
+ 3.55849988955E-04 3.00278350514E-04 2.52637574703E-04 2.11917981860E-04
+ 1.77219834951E-04 1.47743988917E-04 1.22782992455E-04 1.01712664317E-04
+ 8.39841592803E-05 6.91165324847E-05 5.66898049185E-05 4.63385274599E-05
+ 3.77458361141E-05 3.06379868970E-05 2.47793552337E-05 1.99678817351E-05
+ 1.60309437849E-05 1.28216304702E-05 1.02153970060E-05 8.10707388503E-06
+ 6.40820549018E-06 5.04469279906E-06 3.95471502467E-06 3.08690553843E-06
+ 2.39875812372E-06 1.85524039730E-06 1.42759320765E-06 1.09229370144E-06
+ 8.30163160022E-07 6.25600568404E-07 4.65923861298E-07 3.40801365984E-07
+ 2.41756064055E-07 1.61724730540E-07 9.46524550222E-08 3.51000211502E-08
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+2P 1 4.00 Wavefunction
+ 0.00000000000E+00 5.10988339972E-11 2.07904119605E-10 4.75837339566E-10
+ 8.60537277738E-10 1.36786803067E-09 2.00392730427E-09 2.77505500558E-09
+ 3.68784213994E-09 4.74914002428E-09 5.96606982761E-09 7.34603245001E-09
+ 8.89671875220E-09 1.06261201477E-08 1.25425395705E-08 1.46546028309E-08
+ 1.69712703739E-08 1.95018494535E-08 2.22560067370E-08 2.52437813565E-08
+ 2.84755984196E-08 3.19622829992E-08 3.57150746165E-08 3.97456422349E-08
+ 4.40660997836E-08 4.86890222281E-08 5.36274622078E-08 5.88949672596E-08
+ 6.45055976480E-08 7.04739448236E-08 7.68151505311E-08 8.35449265895E-08
+ 9.06795753686E-08 9.82360109850E-08 1.06231781243E-07 1.14685090349E-07
+ 1.23614822418E-07 1.33040565812E-07 1.42982638330E-07 1.53462113283E-07
+ 1.64500846480E-07 1.76121504167E-07 1.88347591938E-07 2.01203484669E-07
+ 2.14714457492E-07 2.28906717858E-07 2.43807438725E-07 2.59444792903E-07
+ 2.75847988605E-07 2.93047306243E-07 3.11074136506E-07 3.29961019778E-07
+ 3.49741686925E-07 3.70451101519E-07 3.92125503525E-07 4.14802454527E-07
+ 4.38520884524E-07 4.63321140370E-07 4.89245035895E-07 5.16335903786E-07
+ 5.44638649272E-07 5.74199805686E-07 6.05067591963E-07 6.37291972148E-07
+ 6.70924716972E-07 7.06019467586E-07 7.42631801508E-07 7.80819300869E-07
+ 8.20641623045E-07 8.62160573742E-07 9.05440182629E-07 9.50546781610E-07
+ 9.97549085817E-07 1.04651827742E-06 1.09752809238E-06 1.15065491015E-06
+ 1.20597784663E-06 1.26357885018E-06 1.32354280114E-06 1.38595761473E-06
+ 1.45091434750E-06 1.51850730757E-06 1.58883416860E-06 1.66199608783E-06
+ 1.73809782815E-06 1.81724788441E-06 1.89955861417E-06 1.98514637294E-06
+ 2.07413165417E-06 2.16663923404E-06 2.26279832135E-06 2.36274271254E-06
+ 2.46661095217E-06 2.57454649891E-06 2.68669789732E-06 2.80321895557E-06
+ 2.92426892940E-06 3.05001271233E-06 3.18062103262E-06 3.31627065696E-06
+ 3.45714460125E-06 3.60343234874E-06 3.75533007563E-06 3.91304088463E-06
+ 4.07677504649E-06 4.24675025001E-06 4.42319186062E-06 4.60633318804E-06
+ 4.79641576306E-06 4.99368962410E-06 5.19841361353E-06 5.41085568438E-06
+ 5.63129321758E-06 5.86001335031E-06 6.09731331559E-06 6.34350079372E-06
+ 6.59889427589E-06 6.86382344034E-06 7.13862954158E-06 7.42366581307E-06
+ 7.71929788386E-06 8.02590420964E-06 8.34387651871E-06 8.67362027342E-06
+ 9.01555514753E-06 9.37011552012E-06 9.73775098663E-06 1.01189268875E-05
+ 1.05141248552E-05 1.09238433800E-05 1.13485983956E-05 1.17889238850E-05
+ 1.22453725069E-05 1.27185162440E-05 1.32089470742E-05 1.37172776645E-05
+ 1.42441420886E-05 1.47901965702E-05 1.53561202512E-05 1.59426159869E-05
+ 1.65504111688E-05 1.71802585751E-05 1.78329372515E-05 1.85092534220E-05
+ 1.92100414312E-05 1.99361647192E-05 2.06885168303E-05 2.14680224561E-05
+ 2.22756385157E-05 2.31123552718E-05 2.39791974867E-05 2.48772256171E-05
+ 2.58075370509E-05 2.67712673869E-05 2.77695917577E-05 2.88037261993E-05
+ 2.98749290678E-05 3.09845025042E-05 3.21337939511E-05 3.33241977208E-05
+ 3.45571566179E-05 3.58341636178E-05 3.71567636035E-05 3.85265551616E-05
+ 3.99451924411E-05 4.14143870761E-05 4.29359101745E-05 4.45115943759E-05
+ 4.61433359799E-05 4.78330971487E-05 4.95829081846E-05 5.13948698871E-05
+ 5.32711559906E-05 5.52140156867E-05 5.72257762330E-05 5.93088456524E-05
+ 6.14657155252E-05 6.36989638774E-05 6.60112581688E-05 6.84053583842E-05
+ 7.08841202309E-05 7.34504984467E-05 7.61075502216E-05 7.88584387380E-05
+ 8.17064368321E-05 8.46549307826E-05 8.77074242286E-05 9.08675422238E-05
+ 9.41390354294E-05 9.75257844520E-05 1.01031804331E-04 1.04661249179E-04
+ 1.08418416986E-04 1.12307754584E-04 1.16333862786E-04 1.20501501698E-04
+ 1.24815596224E-04 1.29281241743E-04 1.33903710001E-04 1.38688455190E-04
+ 1.43641120246E-04 1.48767543356E-04 1.54073764700E-04 1.59566033409E-04
+ 1.65250814778E-04 1.71134797717E-04 1.77224902463E-04 1.83528288553E-04
+ 1.90052363074E-04 1.96804789197E-04 2.03793495003E-04 2.11026682611E-04
+ 2.18512837619E-04 2.26260738877E-04 2.34279468580E-04 2.42578422727E-04
+ 2.51167321920E-04 2.60056222547E-04 2.69255528342E-04 2.78776002344E-04
+ 2.88628779265E-04 2.98825378280E-04 3.09377716262E-04 3.20298121462E-04
+ 3.31599347662E-04 3.43294588815E-04 3.55397494179E-04 3.67922183975E-04
+ 3.80883265582E-04 3.94295850277E-04 4.08175570558E-04 4.22538598051E-04
+ 4.37401662036E-04 4.52782068598E-04 4.68697720436E-04 4.85167137352E-04
+ 5.02209477431E-04 5.19844558950E-04 5.38092883029E-04 5.56975657056E-04
+ 5.76514818914E-04 5.96733062023E-04 6.17653861246E-04 6.39301499665E-04
+ 6.61701096275E-04 6.84878634617E-04 7.08860992382E-04 7.33675972017E-04
+ 7.59352332381E-04 7.85919821458E-04 8.13409210191E-04 8.41852327453E-04
+ 8.71282096210E-04 9.01732570897E-04 9.33238976066E-04 9.65837746330E-04
+ 9.99566567663E-04 1.03446442009E-03 1.07057162180E-03 1.10792987479E-03
+ 1.14658231196E-03 1.18657354589E-03 1.22794971919E-03 1.27075855653E-03
+ 1.31504941847E-03 1.36087335703E-03 1.40828317319E-03 1.45733347619E-03
+ 1.50808074495E-03 1.56058339146E-03 1.61490182626E-03 1.67109852612E-03
+ 1.72923810403E-03 1.78938738135E-03 1.85161546255E-03 1.91599381225E-03
+ 1.98259633488E-03 2.05149945694E-03 2.12278221202E-03 2.19652632852E-03
+ 2.27281632029E-03 2.35173958028E-03 2.43338647715E-03 2.51785045511E-03
+ 2.60522813696E-03 2.69561943050E-03 2.78912763836E-03 2.88585957139E-03
+ 2.98592566574E-03 3.08944010359E-03 3.19652093789E-03 3.30729022099E-03
+ 3.42187413743E-03 3.54040314090E-03 3.66301209555E-03 3.78984042184E-03
+ 3.92103224685E-03 4.05673655945E-03 4.19710737017E-03 4.34230387622E-03
+ 4.49249063149E-03 4.64783772187E-03 4.80852094598E-03 4.97472200143E-03
+ 5.14662867669E-03 5.32443504897E-03 5.50834168786E-03 5.69855586528E-03
+ 5.89529177160E-03 6.09877073827E-03 6.30922146694E-03 6.52688026546E-03
+ 6.75199129061E-03 6.98480679807E-03 7.22558739938E-03 7.47460232650E-03
+ 7.73212970369E-03 7.99845682718E-03 8.27388045259E-03 8.55870709042E-03
+ 8.85325330955E-03 9.15784604910E-03 9.47282293867E-03 9.79853262710E-03
+ 1.01353351200E-02 1.04836021259E-02 1.08437174116E-02 1.12160771665E-02
+ 1.16010903758E-02 1.19991792034E-02 1.24107793839E-02 1.28363406239E-02
+ 1.32763270132E-02 1.37312174452E-02 1.42015060469E-02 1.46877026188E-02
+ 1.51903330843E-02 1.57099399485E-02 1.62470827669E-02 1.68023386235E-02
+ 1.73763026185E-02 1.79695883652E-02 1.85828284961E-02 1.92166751787E-02
+ 1.98718006396E-02 2.05488976975E-02 2.12486803048E-02 2.19718840974E-02
+ 2.27192669524E-02 2.34916095533E-02 2.42897159623E-02 2.51144141994E-02
+ 2.59665568278E-02 2.68470215445E-02 2.77567117770E-02 2.86965572831E-02
+ 2.96675147557E-02 3.06705684298E-02 3.17067306920E-02 3.27770426910E-02
+ 3.38825749489E-02 3.50244279717E-02 3.62037328575E-02 3.74216519025E-02
+ 3.86793792023E-02 3.99781412482E-02 4.13191975166E-02 4.27038410494E-02
+ 4.41333990253E-02 4.56092333197E-02 4.71327410506E-02 4.87053551102E-02
+ 5.03285446796E-02 5.20038157240E-02 5.37327114683E-02 5.55168128481E-02
+ 5.73577389369E-02 5.92571473448E-02 6.12167345880E-02 6.32382364248E-02
+ 6.53234281583E-02 6.74741248995E-02 6.96921817916E-02 7.19794941901E-02
+ 7.43379977967E-02 7.67696687445E-02 7.92765236297E-02 8.18606194877E-02
+ 8.45240537107E-02 8.72689639002E-02 9.00975276543E-02 9.30119622830E-02
+ 9.60145244473E-02 9.91075097191E-02 1.02293252055E-01 1.05574123176E-01
+ 1.08952531858E-01 1.12430923108E-01 1.16011777230E-01 1.19697608782E-01
+ 1.23490965385E-01 1.27394426404E-01 1.31410601468E-01 1.35542128827E-01
+ 1.39791673523E-01 1.44161925355E-01 1.48655596627E-01 1.53275419636E-01
+ 1.58024143899E-01 1.62904533055E-01 1.67919361430E-01 1.73071410213E-01
+ 1.78363463192E-01 1.83798302005E-01 1.89378700829E-01 1.95107420454E-01
+ 2.00987201646E-01 2.07020757723E-01 2.13210766235E-01 2.19559859636E-01
+ 2.26070614837E-01 2.32745541479E-01 2.39587068800E-01 2.46597530917E-01
+ 2.53779150343E-01 2.61134019557E-01 2.68664080409E-01 2.76371101149E-01
+ 2.84256650851E-01 2.92322070995E-01 3.00568443960E-01 3.08996558202E-01
+ 3.17606869872E-01 3.26399460662E-01 3.35373991677E-01 3.44529653180E-01
+ 3.53865110087E-01 3.63378443180E-01 3.73067086050E-01 3.82927757927E-01
+ 3.92956392658E-01 4.03148064241E-01 4.13496909550E-01 4.23996049034E-01
+ 4.34637506502E-01 4.45412129316E-01 4.56309510690E-01 4.67317916103E-01
+ 4.78424216240E-01 4.89613829245E-01 5.00870675494E-01 5.12177148492E-01
+ 5.23514105846E-01 5.34860884607E-01 5.46195345463E-01 5.57493950369E-01
+ 5.68731878061E-01 5.79883181558E-01 5.90920991026E-01 6.01817764295E-01
+ 6.12545585646E-01 6.23076511307E-01 6.33382957109E-01 6.43438120083E-01
+ 6.53216421181E-01 6.62693950886E-01 6.71848893208E-01 6.80661896610E-01
+ 6.89116353050E-01 6.97198538968E-01 7.04897565469E-01 7.12205080077E-01
+ 7.19114660704E-01 7.25620845700E-01 7.31717754425E-01 7.37397273545E-01
+ 7.42646818667E-01 7.47446732714E-01 7.51767455432E-01 7.55566696147E-01
+ 7.58786963037E-01 7.61353949312E-01 7.63176436802E-01 7.64148531513E-01
+ 7.64155155342E-01 7.63081716094E-01 7.60828652841E-01 7.57330927714E-01
+ 7.52581231353E-01 7.46653264889E-01 7.39717321617E-01 7.32033575488E-01
+ 7.23897611057E-01 7.15505635260E-01 7.06894361745E-01 6.98072315562E-01
+ 6.89047961898E-01 6.79830041201E-01 6.70427442057E-01 6.60849186529E-01
+ 6.51104415936E-01 6.41202376684E-01 6.31152406529E-01 6.20963920987E-01
+ 6.10646400164E-01 6.00209375800E-01 5.89662418694E-01 5.79015126406E-01
+ 5.68277111284E-01 5.57457988806E-01 5.46567366187E-01 5.35614831321E-01
+ 5.24609941913E-01 5.13562214968E-01 5.02481116379E-01 4.91376050877E-01
+ 4.80256352006E-01 4.69131272451E-01 4.58009974311E-01 4.46901519722E-01
+ 4.35814861352E-01 4.24758833238E-01 4.13742141431E-01 4.02773354982E-01
+ 3.91860896687E-01 3.81013034171E-01 3.70237870701E-01 3.59543336339E-01
+ 3.48937178824E-01 3.38426954795E-01 3.28020020755E-01 3.17723524398E-01
+ 3.07544395710E-01 2.97489338460E-01 2.87564821511E-01 2.77777070571E-01
+ 2.68132059818E-01 2.58635504028E-01 2.49292850650E-01 2.40109272444E-01
+ 2.31089660166E-01 2.22238615869E-01 2.13560446367E-01 2.05059157371E-01
+ 1.96738447906E-01 1.88601705466E-01 1.80652001553E-01 1.72892088028E-01
+ 1.65324393947E-01 1.57951023270E-01 1.50773753158E-01 1.43794033185E-01
+ 1.37012985229E-01 1.30431404319E-01 1.24049760221E-01 1.17868200014E-01
+ 1.11886551454E-01 1.06104327324E-01 1.00520730607E-01 9.51346606364E-02
+ 8.99447200594E-02 8.49492227521E-02 8.01462025255E-02 7.55334227215E-02
+ 7.11083865575E-02 6.68683482793E-02 6.28103249928E-02 5.89311092043E-02
+ 5.52272819461E-02 5.16952264926E-02 4.83311425485E-02 4.51310608933E-02
+ 4.20908583694E-02 3.92062731797E-02 3.64729203876E-02 3.38863075726E-02
+ 3.14418505400E-02 2.91348890288E-02 2.69607023227E-02 2.49145247037E-02
+ 2.29915606617E-02 2.11869997972E-02 1.94960313394E-02 1.79138582216E-02
+ 1.64357106432E-02 1.50568590675E-02 1.37726265958E-02 1.25784006742E-02
+ 1.14696440871E-02 1.04419052020E-02 9.49082743359E-03 8.61215790308E-03
+ 7.80175527250E-03 7.05559674310E-03 6.36978420998E-03 5.74054957370E-03
+ 5.16425921363E-03 4.63741763498E-03 4.15667030584E-03 3.71880570617E-03
+ 3.32075661532E-03 2.95960066891E-03 2.63256021994E-03 2.33700154232E-03
+ 2.07043341806E-03 1.83050515187E-03 1.61500405872E-03 1.42185247172E-03
+ 1.24910431825E-03 1.09494131322E-03 9.57668818129E-04 8.35711414191E-04
+ 7.27608237133E-04 6.32008120010E-04 5.47664588789E-04 4.73430753660E-04
+ 4.08254136835E-04 3.51171475239E-04 3.01303533875E-04 2.57849962917E-04
+ 2.20084226548E-04 1.87348618167E-04 1.59049460452E-04 1.34652387881E-04
+ 1.13677811757E-04 9.56965680154E-05 8.03257575409E-05 6.72247885051E-05
+ 5.60916276726E-05 4.66592651673E-05 3.86923949317E-05 3.19843110050E-05
+ 2.63540178360E-05 2.16435511211E-05 1.77155041322E-05 1.44507531602E-05
+ 1.17463745524E-05 9.51374485600E-06 7.67681477246E-06 6.17054698202E-06
+ 4.93950736919E-06 3.93659876121E-06 3.12192593425E-06 2.46178030865E-06
+ 1.92773238372E-06 1.49581947936E-06 1.14581565023E-06 8.60569577295E-07
+ 6.25394618026E-07 4.27492728564E-07 2.55390246081E-07 9.83579449783E-08
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+</PP_PSWFC>
+
+
+<PP_RHOATOM>
+ 0.00000000000E+00 3.46146286018E-10 1.40835383550E-09 3.22334806859E-09
+ 5.82932641564E-09 9.26601258803E-09 1.35747127804E-08 1.87983738719E-08
+ 2.49816436962E-08 3.21709334530E-08 4.04144823356E-08 4.97624244526E-08
+ 6.02668581231E-08 7.19819176292E-08 8.49638475108E-08 9.92710794933E-08
+ 1.14964312137E-07 1.32106593308E-07 1.50763405561E-07 1.71002754550E-07
+ 1.92895260555E-07 2.16514253243E-07 2.41935869782E-07 2.69239156412E-07
+ 2.98506173597E-07 3.29822104898E-07 3.63275369666E-07 3.98957739726E-07
+ 4.36964460153E-07 4.77394374317E-07 5.20350053318E-07 5.65937929983E-07
+ 6.14268437573E-07 6.65456153368E-07 7.19619947301E-07 7.76883135811E-07
+ 8.37373641108E-07 9.01224156023E-07 9.68572314653E-07 1.03956086899E-06
+ 1.11433787173E-06 1.19305686556E-06 1.27587707897E-06 1.36296362904E-06
+ 1.45448773129E-06 1.55062691682E-06 1.65156525720E-06 1.75749359708E-06
+ 1.86860979503E-06 1.98511897280E-06 2.10723377330E-06 2.23517462757E-06
+ 2.36917003111E-06 2.50945682991E-06 2.65628051640E-06 2.80989553579E-06
+ 2.97056560313E-06 3.13856403138E-06 3.31417407102E-06 3.49768926143E-06
+ 3.68941379462E-06 3.88966289158E-06 4.09876319182E-06 4.31705315647E-06
+ 4.54488348542E-06 4.78261754905E-06 5.03063183501E-06 5.28931641052E-06
+ 5.55907540085E-06 5.84032748439E-06 6.13350640510E-06 6.43906150265E-06
+ 6.75745826115E-06 7.08917887691E-06 7.43472284602E-06 7.79460757234E-06
+ 8.16936899669E-06 8.55956224788E-06 8.96576231647E-06 9.38856475186E-06
+ 9.82858638378E-06 1.02864660687E-05 1.07628654623E-05 1.12584698187E-05
+ 1.17739888178E-05 1.23101574209E-05 1.28677367561E-05 1.34475150351E-05
+ 1.40503085010E-05 1.46769624098E-05 1.53283520450E-05 1.60053837689E-05
+ 1.67089961086E-05 1.74401608815E-05 1.81998843587E-05 1.89892084688E-05
+ 1.98092120445E-05 2.06610121112E-05 2.15457652211E-05 2.24646688334E-05
+ 2.34189627424E-05 2.44099305550E-05 2.54389012196E-05 2.65072506080E-05
+ 2.76164031523E-05 2.87678335379E-05 2.99630684566E-05 3.12036884186E-05
+ 3.24913296292E-05 3.38276859291E-05 3.52145108026E-05 3.66536194555E-05
+ 3.81468909649E-05 3.96962705031E-05 4.13037716393E-05 4.29714787202E-05
+ 4.47015493339E-05 4.64962168585E-05 4.83577930994E-05 5.02886710177E-05
+ 5.22913275534E-05 5.43683265457E-05 5.65223217554E-05 5.87560599911E-05
+ 6.10723843440E-05 6.34742375350E-05 6.59646653768E-05 6.85468203570E-05
+ 7.12239653441E-05 7.39994774226E-05 7.68768518606E-05 7.98597062143E-05
+ 8.29517845752E-05 8.61569619639E-05 8.94792488759E-05 9.29227959850E-05
+ 9.64918990088E-05 1.00191003744E-04 1.04024711272E-04 1.07997783353E-04
+ 1.12115147994E-04 1.16381905223E-04 1.20803333053E-04 1.25384893654E-04
+ 1.30132239746E-04 1.35051221201E-04 1.40147891885E-04 1.45428516726E-04
+ 1.50899579035E-04 1.56567788078E-04 1.62440086904E-04 1.68523660451E-04
+ 1.74825943930E-04 1.81354631498E-04 1.88117685229E-04 1.95123344401E-04
+ 2.02380135097E-04 2.09896880142E-04 2.17682709385E-04 2.25747070333E-04
+ 2.34099739150E-04 2.42750832046E-04 2.51710817050E-04 2.60990526193E-04
+ 2.70601168114E-04 2.80554341101E-04 2.90862046577E-04 3.01536703064E-04
+ 3.12591160617E-04 3.24038715764E-04 3.35893126961E-04 3.48168630580E-04
+ 3.60879957450E-04 3.74042349971E-04 3.87671579814E-04 4.01783966243E-04
+ 4.16396395059E-04 4.31526338202E-04 4.47191874036E-04 4.63411708329E-04
+ 4.80205195957E-04 4.97592363361E-04 5.15593931783E-04 5.34231341294E-04
+ 5.53526775665E-04 5.73503188090E-04 5.94184327796E-04 6.15594767579E-04
+ 6.37759932287E-04 6.60706128287E-04 6.84460573953E-04 7.09051431203E-04
+ 7.34507838129E-04 7.60859942754E-04 7.88138937953E-04 8.16377097585E-04
+ 8.45607813869E-04 8.75865636052E-04 9.07186310415E-04 9.39606821662E-04
+ 9.73165435734E-04 1.00790174411E-03 1.04385670963E-03 1.08107271392E-03
+ 1.11959360640E-03 1.15946475510E-03 1.20073309908E-03 1.24344720280E-03
+ 1.28765731227E-03 1.33341541323E-03 1.38077529121E-03 1.42979259385E-03
+ 1.48052489516E-03 1.53303176223E-03 1.58737482401E-03 1.64361784268E-03
+ 1.70182678734E-03 1.76206991031E-03 1.82441782607E-03 1.88894359291E-03
+ 1.95572279739E-03 2.02483364179E-03 2.09635703448E-03 2.17037668351E-03
+ 2.24697919337E-03 2.32625416513E-03 2.40829430005E-03 2.49319550674E-03
+ 2.58105701205E-03 2.67198147584E-03 2.76607510958E-03 2.86344779924E-03
+ 2.96421323230E-03 3.06848902920E-03 3.17639687933E-03 3.28806268176E-03
+ 3.40361669077E-03 3.52319366653E-03 3.64693303087E-03 3.77497902853E-03
+ 3.90748089397E-03 4.04459302399E-03 4.18647515624E-03 4.33329255400E-03
+ 4.48521619738E-03 4.64242298103E-03 4.80509591885E-03 4.97342435566E-03
+ 5.14760418633E-03 5.32783808243E-03 5.51433572676E-03 5.70731405604E-03
+ 5.90699751201E-03 6.11361830121E-03 6.32741666383E-03 6.54864115190E-03
+ 6.77754891705E-03 7.01440600841E-03 7.25948768072E-03 7.51307871324E-03
+ 7.77547373971E-03 8.04697758981E-03 8.32790564246E-03 8.61858419145E-03
+ 8.91935082374E-03 9.23055481101E-03 9.55255751480E-03 9.88573280574E-03
+ 1.02304674974E-02 1.05871617955E-02 1.09562297620E-02 1.13380997968E-02
+ 1.17332151346E-02 1.21420343604E-02 1.25650319423E-02 1.30026987832E-02
+ 1.34555427918E-02 1.39240894733E-02 1.44088825413E-02 1.49104845504E-02
+ 1.54294775515E-02 1.59664637703E-02 1.65220663084E-02 1.70969298706E-02
+ 1.76917215168E-02 1.83071314400E-02 1.89438737727E-02 1.96026874206E-02
+ 2.02843369268E-02 2.09896133649E-02 2.17193352652E-02 2.24743495726E-02
+ 2.32555326383E-02 2.40637912473E-02 2.49000636813E-02 2.57653208198E-02
+ 2.66605672800E-02 2.75868425975E-02 2.85452224479E-02 2.95368199132E-02
+ 3.05627867920E-02 3.16243149568E-02 3.27226377600E-02 3.38590314894E-02
+ 3.50348168760E-02 3.62513606559E-02 3.75100771875E-02 3.88124301271E-02
+ 4.01599341647E-02 4.15541568213E-02 4.29967203118E-02 4.44893034744E-02
+ 4.60336437698E-02 4.76315393517E-02 4.92848512137E-02 5.09955054121E-02
+ 5.27654953703E-02 5.45968842663E-02 5.64918075072E-02 5.84524752931E-02
+ 6.04811752746E-02 6.25802753076E-02 6.47522263073E-02 6.69995652078E-02
+ 6.93249180289E-02 7.17310030557E-02 7.42206341341E-02 7.67967240872E-02
+ 7.94622882577E-02 8.22204481790E-02 8.50744353819E-02 8.80275953413E-02
+ 9.10833915669E-02 9.42454098450E-02 9.75173626354E-02 1.00903093630E-01
+ 1.04406582478E-01 1.08031949685E-01 1.11783461691E-01 1.15665536131E-01
+ 1.19682747290E-01 1.23839831759E-01 1.28141694286E-01 1.32593413845E-01
+ 1.37200249925E-01 1.41967649032E-01 1.46901251432E-01 1.52006898127E-01
+ 1.57290638072E-01 1.62758735643E-01 1.68417678359E-01 1.74274184864E-01
+ 1.80335213174E-01 1.86607969189E-01 1.93099915485E-01 1.99818780373E-01
+ 2.06772567238E-01 2.13969564155E-01 2.21418353779E-01 2.29127823506E-01
+ 2.37107175910E-01 2.45365939428E-01 2.53913979312E-01 2.62761508804E-01
+ 2.71919100548E-01 2.81397698198E-01 2.91208628211E-01 3.01363611790E-01
+ 3.11874776942E-01 3.22754670625E-01 3.34016270919E-01 3.45672999179E-01
+ 3.57738732112E-01 3.70227813700E-01 3.83155066889E-01 3.96535804968E-01
+ 4.10385842520E-01 4.24721505847E-01 4.39559642732E-01 4.54917631409E-01
+ 4.70813388582E-01 4.87265376325E-01 5.04292607684E-01 5.21914650776E-01
+ 5.40151631176E-01 5.59024232351E-01 5.78553693910E-01 5.98761807393E-01
+ 6.19670909329E-01 6.41303871287E-01 6.63684086609E-01 6.86835453533E-01
+ 7.10782354402E-01 7.35549630651E-01 7.61162553294E-01 7.87646788607E-01
+ 8.15028358787E-01 8.43333597333E-01 8.72589098981E-01 9.02821664060E-01
+ 9.34058237201E-01 9.66325840400E-01 9.99651500537E-01 1.03406217152E+00
+ 1.06958465135E+00 1.10624549454E+00 1.14407092028E+00 1.18308671713E+00
+ 1.22331814481E+00 1.26478983389E+00 1.30752568415E+00 1.35154876249E+00
+ 1.39688120083E+00 1.44354409466E+00 1.49155740220E+00 1.54093984376E+00
+ 1.59170880029E+00 1.64388020880E+00 1.69746845154E+00 1.75248623383E+00
+ 1.80894444384E+00 1.86685198505E+00 1.92621556966E+00 1.98703945824E+00
+ 2.04932512746E+00 2.11307084490E+00 2.17827112639E+00 2.24491604944E+00
+ 2.31299039426E+00 2.38247258537E+00 2.45333340932E+00 2.52553449263E+00
+ 2.59902653674E+00 2.67374732871E+00 2.74961957680E+00 2.82654866407E+00
+ 2.90442047050E+00 2.98309948903E+00 3.06242755116E+00 3.14222358455E+00
+ 3.22228493856E+00 3.30239092359E+00 3.38230928873E+00 3.46180636760E+00
+ 3.54066148349E+00 3.61868580919E+00 3.69574505276E+00 3.77178382382E+00
+ 3.84684693693E+00 3.92108865028E+00 3.99475408014E+00 4.06810655504E+00
+ 4.14125873451E+00 4.21384142275E+00 4.28440862969E+00 4.34942559190E+00
+ 4.40260651340E+00 4.44889403577E+00 4.49118833236E+00 4.52934837750E+00
+ 4.56324469395E+00 4.59276005462E+00 4.61779012769E+00 4.63824405709E+00
+ 4.65404497699E+00 4.66513045217E+00 4.67145284505E+00 4.67297960151E+00
+ 4.66969345828E+00 4.66159256469E+00 4.64869052347E+00 4.63101634419E+00
+ 4.60861431607E+00 4.58154379443E+00 4.54987890941E+00 4.51370819181E+00
+ 4.47313412664E+00 4.42827262935E+00 4.37925245703E+00 4.32621455227E+00
+ 4.26931132880E+00 4.20870589513E+00 4.14457122954E+00 4.07708930230E+00
+ 4.00645015852E+00 3.93285094078E+00 3.85649473927E+00 3.77758971647E+00
+ 3.69634813850E+00 3.61298537120E+00 3.52771890894E+00 3.44076745684E+00
+ 3.35235010069E+00 3.26268557176E+00 3.17199144867E+00 3.08048354003E+00
+ 2.98837319350E+00 2.89586845548E+00 2.80317264336E+00 2.71048364009E+00
+ 2.61799324090E+00 2.52588655116E+00 2.43434144027E+00 2.34352805037E+00
+ 2.25360836304E+00 2.16473582274E+00 2.07705501844E+00 1.99070142214E+00
+ 1.90580118408E+00 1.82247098358E+00 1.74081793359E+00 1.66093953807E+00
+ 1.58292369912E+00 1.50684877283E+00 1.43278366998E+00 1.36078800044E+00
+ 1.29091225672E+00 1.22319803567E+00 1.15767829294E+00 1.09437762964E+00
+ 1.03331260525E+00 9.74492076296E-01 9.17917554893E-01 8.63583586566E-01
+ 8.11478141599E-01 7.61583019419E-01 7.13874260431E-01 6.68322564961E-01
+ 6.24893714025E-01 5.83548991725E-01 5.44245604400E-01 5.06937096480E-01
+ 4.71573758671E-01 4.38103028561E-01 4.06469879828E-01 3.76617200286E-01
+ 3.48486155525E-01 3.22016538548E-01 2.97147102715E-01 2.73815878565E-01
+ 2.51960472392E-01 2.31518347264E-01 2.12427084917E-01 1.94624629342E-01
+ 1.78049510958E-01 1.62641052321E-01 1.48339554697E-01 1.35086466521E-01
+ 1.22824533453E-01 1.11497931107E-01 1.01052380486E-01 9.14352472195E-02
+ 8.25956248857E-02 7.44844035372E-02 6.70543238758E-02 6.02600181925E-02
+ 5.40580386468E-02 4.84068739612E-02 4.32669551864E-02 3.86006515594E-02
+ 3.43722571474E-02 3.05479692338E-02 2.70958591449E-02 2.39858363963E-02
+ 2.11896068391E-02 1.86806256044E-02 1.64340454876E-02 1.44266614889E-02
+ 1.26368521024E-02 1.10445179879E-02 9.63101856146E-03 8.37910705822E-03
+ 7.27286454494E-03 6.29763335832E-03 5.43995038449E-03 4.68748058386E-03
+ 4.02895111430E-03 3.45408638808E-03 2.95354435429E-03 2.51885427695E-03
+ 2.14235624081E-03 1.81714259303E-03 1.53700149536E-03 1.29636273655E-03
+ 1.09024592486E-03 9.14211156034E-04 7.64312225536E-04 6.37052430546E-04
+ 5.29342983965E-04 4.38464041707E-04 3.62028324344E-04 2.97947296345E-04
+ 2.44399849328E-04 1.99803421325E-04 1.62787470944E-04 1.32169214443E-04
+ 1.06931524453E-04 8.62028817925E-05 6.92392662100E-05 5.54078680557E-05
+ 4.41725006293E-05 3.50805922323E-05 2.77516375973E-05 2.18669902708E-05
+ 1.71608805189E-05 1.34125472628E-05 1.04393772827E-05 8.09095028989E-06
+ 6.24389431826E-06 4.79746208415E-06 3.66974537133E-06 2.79445100142E-06
+ 2.11816843687E-06 1.59806544176E-06 1.19995441430E-06 8.96677937948E-07
+ 6.66767723568E-07 4.93336393932E-07 3.63166466358E-07 2.65965404624E-07
+ 1.93759726478E-07 1.40404867458E-07 1.01190974090E-07 7.25274302285E-08
+ 5.16919448915E-08 3.66321060640E-08 2.58093369807E-08 1.80769165056E-08
+ 1.25851965084E-08 8.70839822463E-09 5.98842211511E-09 4.09198603732E-09
+ 2.77813632608E-09 1.87377274953E-09 1.25535603109E-09 8.35296857627E-10
+ 5.51909121778E-10 3.62045273737E-10 2.35733880948E-10 1.52302561946E-10
+ 9.75949076697E-11 6.19872236459E-11 3.89856763564E-11 2.42414430589E-11
+ 1.48646048367E-11 8.94990140963E-12 5.25157269725E-12 2.96231924486E-12
+ 1.56447331978E-12 7.30999948156E-13 2.60896645593E-13 3.86971316345E-14
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00
+</PP_RHOATOM>
diff --git a/clusters/user/QE/PW/Zr.vdb.UPF b/clusters/user/QE/PW/Zr.vdb.UPF
new file mode 100644
index 0000000..5a0552e
--- /dev/null
+++ b/clusters/user/QE/PW/Zr.vdb.UPF
@@ -0,0 +1,7768 @@
+<PP_INFO>
+Generated using Vanderbilt code, version 7 3 4
+Author: unknown Generation date: 18 6 2003
+Automatically converted from original format
+ 1 The Pseudo was generated with a Scalar-Relativistic Calculation
+ 1.70000000000E+00 Local Potential cutoff radius
+nl pn l occ Rcut Rcut US E pseu
+4S 4 0 2.00 10.00000000000 1.80000000000 -4.72836512000
+4P 4 1 6.00 10.00000000000 1.80000000000 -3.09666190300
+4D 4 2 1.00 10.00000000000 1.70000000000 -0.90140476700
+5S 5 0 2.00 10.00000000000 1.80000000000 -0.82716628300
+</PP_INFO>
+
+
+<PP_HEADER>
+ 0 Version Number
+ zi Element
+ US Ultrasoft pseudopotential
+ F Nonlinear Core Correction
+ SLA PZ NOGX NOGC PZ Exchange-Correlation functional
+ 12.00000000000 Z valence
+ -93.17642084320 Total energy
+ 0.0000000 0.0000000 Suggested cutoff for wfc and rho
+ 2 Max angular momentum component
+ 887 Number of points in mesh
+ 4 6 Number of Wavefunctions, Number of Projectors
+ Wavefunctions nl l occ
+ 4S 0 2.00
+ 4P 1 6.00
+ 4D 2 1.00
+ 5S 0 2.00
+</PP_HEADER>
+
+
+<PP_MESH>
+ <PP_R>
+ 0.00000000000E+00 1.05927022700E-06 2.13664720020E-06 3.23244042915E-06
+ 4.34696471405E-06 5.48054023615E-06 6.63349264977E-06 7.80615317582E-06
+ 8.99885869699E-06 1.02119518545E-05 1.14457811465E-05 1.27007010283E-05
+ 1.39770720141E-05 1.52752607806E-05 1.65956402723E-05 1.79385898086E-05
+ 1.93044951931E-05 2.06937488238E-05 2.21067498065E-05 2.35439040689E-05
+ 2.50056244778E-05 2.64923309570E-05 2.80044506087E-05 2.95424178355E-05
+ 3.11066744655E-05 3.26976698796E-05 3.43158611399E-05 3.59617131214E-05
+ 3.76356986456E-05 3.93382986160E-05 4.10700021568E-05 4.28313067528E-05
+ 4.46227183928E-05 4.64447517147E-05 4.82979301533E-05 5.01827860910E-05
+ 5.20998610105E-05 5.40497056502E-05 5.60328801628E-05 5.80499542759E-05
+ 6.01015074559E-05 6.21881290744E-05 6.43104185773E-05 6.64689856574E-05
+ 6.86644504292E-05 7.08974436073E-05 7.31686066873E-05 7.54785921305E-05
+ 7.78280635510E-05 8.02176959065E-05 8.26481756922E-05 8.51202011377E-05
+ 8.76344824082E-05 9.01917418081E-05 9.27927139885E-05 9.54381461584E-05
+ 9.81287982992E-05 1.00865443383E-04 1.03648867596E-04 1.06479870560E-04
+ 1.09359265570E-04 1.12287879819E-04 1.15266554641E-04 1.18296145752E-04
+ 1.21377523495E-04 1.24511573090E-04 1.27699194888E-04 1.30941304633E-04
+ 1.34238833720E-04 1.37592729464E-04 1.41003955374E-04 1.44473491432E-04
+ 1.48002334365E-04 1.51591497944E-04 1.55242013265E-04 1.58954929051E-04
+ 1.62731311951E-04 1.66572246846E-04 1.70478837162E-04 1.74452205188E-04
+ 1.78493492395E-04 1.82603859766E-04 1.86784488131E-04 1.91036578504E-04
+ 1.95361352427E-04 1.99760052325E-04 2.04233941859E-04 2.08784306290E-04
+ 2.13412452851E-04 2.18119711118E-04 2.22907433396E-04 2.27776995104E-04
+ 2.32729795174E-04 2.37767256448E-04 2.42890826093E-04 2.48101976010E-04
+ 2.53402203263E-04 2.58793030503E-04 2.64276006412E-04 2.69852706141E-04
+ 2.75524731769E-04 2.81293712760E-04 2.87161306429E-04 2.93129198423E-04
+ 2.99199103202E-04 3.05372764532E-04 3.11651955987E-04 3.18038481455E-04
+ 3.24534175664E-04 3.31140904700E-04 3.37860566548E-04 3.44695091637E-04
+ 3.51646443395E-04 3.58716618809E-04 3.65907649005E-04 3.73221599826E-04
+ 3.80660572429E-04 3.88226703886E-04 3.95922167802E-04 4.03749174933E-04
+ 4.11709973828E-04 4.19806851469E-04 4.28042133934E-04 4.36418187059E-04
+ 4.44937417123E-04 4.53602271535E-04 4.62415239540E-04 4.71378852934E-04
+ 4.80495686789E-04 4.89768360196E-04 4.99199537013E-04 5.08791926635E-04
+ 5.18548284771E-04 5.28471414233E-04 5.38564165745E-04 5.48829438758E-04
+ 5.59270182287E-04 5.69889395755E-04 5.80690129857E-04 5.91675487435E-04
+ 6.02848624369E-04 6.14212750486E-04 6.25771130479E-04 6.37527084847E-04
+ 6.49483990848E-04 6.61645283470E-04 6.74014456416E-04 6.86595063112E-04
+ 6.99390717722E-04 7.12405096189E-04 7.25641937293E-04 7.39105043722E-04
+ 7.52798283167E-04 7.66725589429E-04 7.80890963555E-04 7.95298474981E-04
+ 8.09952262709E-04 8.24856536487E-04 8.40015578024E-04 8.55433742220E-04
+ 8.71115458415E-04 8.87065231663E-04 9.03287644025E-04 9.19787355887E-04
+ 9.36569107295E-04 9.53637719322E-04 9.70998095451E-04 9.88655222982E-04
+ 1.00661417447E-03 1.02488010916E-03 1.04345827452E-03 1.06235400768E-03
+ 1.08157273703E-03 1.10111998374E-03 1.12100136336E-03 1.14122258740E-03
+ 1.16178946506E-03 1.18270790478E-03 1.20398391604E-03 1.22562361101E-03
+ 1.24763320637E-03 1.27001902505E-03 1.29278749805E-03 1.31594516633E-03
+ 1.33949868262E-03 1.36345481340E-03 1.38782044081E-03 1.41260256461E-03
+ 1.43780830423E-03 1.46344490080E-03 1.48951971920E-03 1.51604025023E-03
+ 1.54301411273E-03 1.57044905576E-03 1.59835296086E-03 1.62673384427E-03
+ 1.65559985927E-03 1.68495929852E-03 1.71482059640E-03 1.74519233149E-03
+ 1.77608322901E-03 1.80750216332E-03 1.83945816045E-03 1.87196040076E-03
+ 1.90501822150E-03 1.93864111956E-03 1.97283875413E-03 2.00762094954E-03
+ 2.04299769803E-03 2.07897916267E-03 2.11557568023E-03 2.15279776419E-03
+ 2.19065610772E-03 2.22916158680E-03 2.26832526330E-03 2.30815838820E-03
+ 2.34867240478E-03 2.38987895193E-03 2.43178986749E-03 2.47441719166E-03
+ 2.51777317045E-03 2.56187025919E-03 2.60672112611E-03 2.65233865602E-03
+ 2.69873595393E-03 2.74592634889E-03 2.79392339780E-03 2.84274088928E-03
+ 2.89239284764E-03 2.94289353694E-03 2.99425746503E-03 3.04649938780E-03
+ 3.09963431332E-03 3.15367750625E-03 3.20864449213E-03 3.26455106192E-03
+ 3.32141327650E-03 3.37924747128E-03 3.43807026090E-03 3.49789854402E-03
+ 3.55874950814E-03 3.62064063457E-03 3.68358970343E-03 3.74761479877E-03
+ 3.81273431376E-03 3.87896695598E-03 3.94633175278E-03 4.01484805677E-03
+ 4.08453555135E-03 4.15541425639E-03 4.22750453398E-03 4.30082709425E-03
+ 4.37540300136E-03 4.45125367953E-03 4.52840091918E-03 4.60686688322E-03
+ 4.68667411341E-03 4.76784553682E-03 4.85040447243E-03 4.93437463782E-03
+ 5.01978015600E-03 5.10664556232E-03 5.19499581153E-03 5.28485628495E-03
+ 5.37625279775E-03 5.46921160639E-03 5.56375941612E-03 5.65992338871E-03
+ 5.75773115020E-03 5.85721079887E-03 5.95839091330E-03 6.06130056058E-03
+ 6.16596930465E-03 6.27242721483E-03 6.38070487441E-03 6.49083338947E-03
+ 6.60284439780E-03 6.71677007798E-03 6.83264315868E-03 6.95049692797E-03
+ 7.07036524298E-03 7.19228253953E-03 7.31628384213E-03 7.44240477393E-03
+ 7.57068156705E-03 7.70115107292E-03 7.83385077291E-03 7.96881878907E-03
+ 8.10609389510E-03 8.24571552749E-03 8.38772379683E-03 8.53215949934E-03
+ 8.67906412861E-03 8.82847988750E-03 8.98044970025E-03 9.13501722487E-03
+ 9.29222686560E-03 9.45212378574E-03 9.61475392057E-03 9.78016399059E-03
+ 9.94840151491E-03 1.01195148249E-02 1.02935530781E-02 1.04705662724E-02
+ 1.06506052602E-02 1.08337217632E-02 1.10199683873E-02 1.12093986375E-02
+ 1.14020669334E-02 1.15980286250E-02 1.17973400082E-02 1.20000583414E-02
+ 1.22062418615E-02 1.24159498011E-02 1.26292424053E-02 1.28461809489E-02
+ 1.30668277542E-02 1.32912462086E-02 1.35195007834E-02 1.37516570515E-02
+ 1.39877817070E-02 1.42279425840E-02 1.44722086760E-02 1.47206501559E-02
+ 1.49733383962E-02 1.52303459893E-02 1.54917467685E-02 1.57576158293E-02
+ 1.60280295506E-02 1.63030656170E-02 1.65828030412E-02 1.68673221862E-02
+ 1.71567047890E-02 1.74510339834E-02 1.77503943247E-02 1.80548718132E-02
+ 1.83645539195E-02 1.86795296091E-02 1.89998893686E-02 1.93257252311E-02
+ 1.96571308029E-02 1.99942012905E-02 2.03370335276E-02 2.06857260033E-02
+ 2.10403788903E-02 2.14010940734E-02 2.17679751792E-02 2.21411276054E-02
+ 2.25206585516E-02 2.29066770496E-02 2.32992939951E-02 2.36986221794E-02
+ 2.41047763217E-02 2.45178731022E-02 2.49380311956E-02 2.53653713052E-02
+ 2.58000161977E-02 2.62420907380E-02 2.66917219255E-02 2.71490389307E-02
+ 2.76141731319E-02 2.80872581531E-02 2.85684299025E-02 2.90578266114E-02
+ 2.95555888741E-02 3.00618596879E-02 3.05767844948E-02 3.11005112226E-02
+ 3.16331903279E-02 3.21749748390E-02 3.27260204003E-02 3.32864853164E-02
+ 3.38565305980E-02 3.44363200082E-02 3.50260201092E-02 3.56258003104E-02
+ 3.62358329171E-02 3.68562931798E-02 3.74873593448E-02 3.81292127051E-02
+ 3.87820376529E-02 3.94460217321E-02 4.01213556924E-02 4.08082335443E-02
+ 4.15068526144E-02 4.22174136026E-02 4.29401206392E-02 4.36751813439E-02
+ 4.44228068855E-02 4.51832120424E-02 4.59566152642E-02 4.67432387347E-02
+ 4.75433084356E-02 4.83570542114E-02 4.91847098356E-02 5.00265130776E-02
+ 5.08827057713E-02 5.17535338840E-02 5.26392475881E-02 5.35401013318E-02
+ 5.44563539130E-02 5.53882685533E-02 5.63361129739E-02 5.73001594719E-02
+ 5.82806849994E-02 5.92779712424E-02 6.02923047019E-02 6.13239767762E-02
+ 6.23732838449E-02 6.34405273534E-02 6.45260139003E-02 6.56300553248E-02
+ 6.67529687966E-02 6.78950769071E-02 6.90567077617E-02 7.02381950747E-02
+ 7.14398782643E-02 7.26621025510E-02 7.39052190561E-02 7.51695849030E-02
+ 7.64555633194E-02 7.77635237422E-02 7.90938419230E-02 8.04469000364E-02
+ 8.18230867900E-02 8.32227975355E-02 8.46464343827E-02 8.60944063150E-02
+ 8.75671293067E-02 8.90650264425E-02 9.05885280394E-02 9.21380717699E-02
+ 9.37141027879E-02 9.53170738566E-02 9.69474454786E-02 9.86056860281E-02
+ 1.00292271886E-01 1.02007687574E-01 1.03752425900E-01 1.05526988093E-01
+ 1.07331883950E-01 1.09167631982E-01 1.11034759566E-01 1.12933803089E-01
+ 1.14865308111E-01 1.16829829516E-01 1.18827931672E-01 1.20860188597E-01
+ 1.22927184117E-01 1.25029512041E-01 1.27167776326E-01 1.29342591256E-01
+ 1.31554581611E-01 1.33804382855E-01 1.36092641311E-01 1.38420014351E-01
+ 1.40787170586E-01 1.43194790053E-01 1.45643564415E-01 1.48134197156E-01
+ 1.50667403789E-01 1.53243912053E-01 1.55864462131E-01 1.58529806855E-01
+ 1.61240711927E-01 1.63997956138E-01 1.66802331590E-01 1.69654643927E-01
+ 1.72555712563E-01 1.75506370919E-01 1.78507466661E-01 1.81559861946E-01
+ 1.84664433669E-01 1.87822073712E-01 1.91033689206E-01 1.94300202784E-01
+ 1.97622552853E-01 2.01001693859E-01 2.04438596565E-01 2.07934248326E-01
+ 2.11489653376E-01 2.15105833113E-01 2.18783826395E-01 2.22524689840E-01
+ 2.26329498125E-01 2.30199344297E-01 2.34135340089E-01 2.38138616235E-01
+ 2.42210322800E-01 2.46351629507E-01 2.50563726072E-01 2.54847822549E-01
+ 2.59205149677E-01 2.63636959231E-01 2.68144524384E-01 2.72729140072E-01
+ 2.77392123367E-01 2.82134813854E-01 2.86958574016E-01 2.91864789626E-01
+ 2.96854870144E-01 3.01930249125E-01 3.07092384626E-01 3.12342759629E-01
+ 3.17682882465E-01 3.23114287249E-01 3.28638534317E-01 3.34257210679E-01
+ 3.39971930472E-01 3.45784335424E-01 3.51696095327E-01 3.57708908515E-01
+ 3.63824502353E-01 3.70044633732E-01 3.76371089577E-01 3.82805687355E-01
+ 3.89350275602E-01 3.96006734451E-01 4.02776976174E-01 4.09662945731E-01
+ 4.16666621327E-01 4.23790014984E-01 4.31035173113E-01 4.38404177109E-01
+ 4.45899143944E-01 4.53522226777E-01 4.61275615572E-01 4.69161537728E-01
+ 4.77182258718E-01 4.85340082739E-01 4.93637353376E-01 5.02076454275E-01
+ 5.10659809827E-01 5.19389885862E-01 5.28269190364E-01 5.37300274183E-01
+ 5.46485731777E-01 5.55828201949E-01 5.65330368610E-01 5.74994961549E-01
+ 5.84824757217E-01 5.94822579522E-01 6.04991300647E-01 6.15333841867E-01
+ 6.25853174396E-01 6.36552320233E-01 6.47434353037E-01 6.58502399004E-01
+ 6.69759637771E-01 6.81209303323E-01 6.92854684928E-01 7.04699128080E-01
+ 7.16746035457E-01 7.28998867903E-01 7.41461145419E-01 7.54136448177E-01
+ 7.67028417546E-01 7.80140757139E-01 7.93477233878E-01 8.07041679073E-01
+ 8.20837989529E-01 8.34870128658E-01 8.49142127621E-01 8.63658086489E-01
+ 8.78422175415E-01 8.93438635836E-01 9.08711781690E-01 9.24246000658E-01
+ 9.40045755419E-01 9.56115584938E-01 9.72460105765E-01 9.89084013364E-01
+ 1.00599208346E+00 1.02318917342E+00 1.04068022364E+00 1.05847025894E+00
+ 1.07656439008E+00 1.09496781513E+00 1.11368582104E+00 1.13272378515E+00
+ 1.15208717668E+00 1.17178155837E+00 1.19181258803E+00 1.21218602018E+00
+ 1.23290770772E+00 1.25398360359E+00 1.27541976249E+00 1.29722234261E+00
+ 1.31939760740E+00 1.34195192740E+00 1.36489178202E+00 1.38822376145E+00
+ 1.41195456849E+00 1.43609102057E+00 1.46064005161E+00 1.48560871407E+00
+ 1.51100418097E+00 1.53683374794E+00 1.56310483531E+00 1.58982499025E+00
+ 1.61700188894E+00 1.64464333879E+00 1.67275728065E+00 1.70135179111E+00
+ 1.73043508482E+00 1.76001551685E+00 1.79010158508E+00 1.82070193266E+00
+ 1.85182535047E+00 1.88348077967E+00 1.91567731426E+00 1.94842420367E+00
+ 1.98173085546E+00 2.01560683797E+00 2.05006188313E+00 2.08510588920E+00
+ 2.12074892364E+00 2.15700122602E+00 2.19387321090E+00 2.23137547092E+00
+ 2.26951877972E+00 2.30831409516E+00 2.34777256237E+00 2.38790551702E+00
+ 2.42872448851E+00 2.47024120335E+00 2.51246758849E+00 2.55541577475E+00
+ 2.59909810031E+00 2.64352711427E+00 2.68871558022E+00 2.73467647992E+00
+ 2.78142301707E+00 2.82896862102E+00 2.87732695072E+00 2.92651189858E+00
+ 2.97653759448E+00 3.02741840983E+00 3.07916896171E+00 3.13180411705E+00
+ 3.18533899691E+00 3.23978898083E+00 3.29516971123E+00 3.35149709794E+00
+ 3.40878732270E+00 3.46705684390E+00 3.52632240125E+00 3.58660102058E+00
+ 3.64791001879E+00 3.71026700876E+00 3.77368990445E+00 3.83819692602E+00
+ 3.90380660510E+00 3.97053779008E+00 4.03840965154E+00 4.10744168774E+00
+ 4.17765373026E+00 4.24906594966E+00 4.32169886128E+00 4.39557333117E+00
+ 4.47071058201E+00 4.54713219930E+00 4.62486013747E+00 4.70391672628E+00
+ 4.78432467713E+00 4.86610708969E+00 4.94928745845E+00 5.03388967953E+00
+ 5.11993805751E+00 5.20745731242E+00 5.29647258685E+00 5.38700945316E+00
+ 5.47909392085E+00 5.57275244400E+00 5.66801192889E+00 5.76489974173E+00
+ 5.86344371651E+00 5.96367216302E+00 6.06561387493E+00 6.16929813814E+00
+ 6.27475473913E+00 6.38201397353E+00 6.49110665485E+00 6.60206412331E+00
+ 6.71491825484E+00 6.82970147024E+00 6.94644674452E+00 7.06518761634E+00
+ 7.18595819764E+00 7.30879318347E+00 7.43372786196E+00 7.56079812442E+00
+ 7.69004047568E+00 7.82149204456E+00 7.95519059455E+00 8.09117453466E+00
+ 8.22948293045E+00 8.37015551523E+00 8.51323270154E+00 8.65875559266E+00
+ 8.80676599451E+00 8.95730642761E+00 9.11042013932E+00 9.26615111625E+00
+ 9.42454409688E+00 9.58564458447E+00 9.74949886005E+00 9.91615399580E+00
+ 1.00856578685E+01 1.02580591734E+01 1.04334074379E+01 1.06117530363E+01
+ 1.07931472039E+01 1.09776420515E+01 1.11652905811E+01 1.13561467004E+01
+ 1.15502652388E+01 1.17477019626E+01 1.19485135916E+01 1.21527578153E+01
+ 1.23604933088E+01 1.25717797507E+01 1.27866778395E+01 1.30052493112E+01
+ 1.32275569571E+01 1.34536646420E+01 1.36836373222E+01 1.39175410644E+01
+ 1.41554430647E+01 1.43974116676E+01 1.46435163861E+01 1.48938279213E+01
+ 1.51484181829E+01 1.54073603097E+01 1.56707286907E+01 1.59385989867E+01
+ 1.62110481515E+01 1.64881544545E+01 1.67699975031E+01 1.70566582653E+01
+ 1.73482190931E+01 1.76447637463E+01 1.79463774166E+01 1.82531467516E+01
+ 1.85651598802E+01 1.88825064379E+01 1.92052775920E+01 1.95335660686E+01
+ 1.98674661785E+01 2.02070738448E+01 2.05524866301E+01 2.09038037650E+01
+ 2.12611261760E+01 2.16245565150E+01 2.19941991883E+01 2.23701603873E+01
+ 2.27525481183E+01 2.31414722339E+01 2.35370444645E+01 2.39393784502E+01
+ 2.43485897740E+01 2.47647959942E+01 2.51881166789E+01 2.56186734399E+01
+ 2.60565899679E+01 2.65019920677E+01 2.69550076949E+01 2.74157669919E+01
+ 2.78844023261E+01 2.83610483273E+01 2.88458419266E+01 2.93389223960E+01
+ 2.98404313878E+01 3.03505129760E+01 3.08693136970E+01 3.13969825923E+01
+ 3.19336712509E+01 3.24795338531E+01 3.30347272147E+01 3.35994108320E+01
+ 3.41737469277E+01 3.47579004973E+01 3.53520393570E+01 3.59563341913E+01
+ 3.65709586024E+01 3.71960891601E+01 3.78319054522E+01 3.84785901364E+01
+ 3.91363289928E+01 3.98053109770E+01 4.04857282746E+01 4.11777763563E+01
+ 4.18816540341E+01 4.25975635185E+01 4.33257104764E+01 4.40663040903E+01
+ 4.48195571185E+01 4.55856859559E+01 4.63649106966E+01 4.71574551967E+01
+ 4.79635471390E+01 4.87834180980E+01 4.96173036069E+01 5.04654432247E+01
+ 5.13280806057E+01 5.22054635687E+01 5.30978441691E+01 5.40054787703E+01
+ 5.49286281184E+01 5.58675574162E+01 5.68225364000E+01 5.77938394167E+01
+ 5.87817455030E+01 5.97865384650E+01 6.08085069604E+01 6.18479445810E+01
+ 6.29051499371E+01 6.39804267432E+01 6.50740839057E+01 6.61864356111E+01
+ 6.73178014164E+01 6.84685063413E+01 6.96388809609E+01 7.08292615012E+01
+ 7.20399899356E+01 7.32714140828E+01 7.45238877072E+01 7.57977706203E+01
+ 7.70934287839E+01 7.84112344156E+01 7.97515660955E+01 8.11148088748E+01
+ 8.25013543868E+01 8.39116009593E+01 8.53459537288E+01 8.68048247571E+01
+ 8.82886331496E+01 8.97978051758E+01 9.13327743915E+01 9.28939817637E+01
+ 9.44818757971E+01 9.60969126630E+01 9.77395563301E+01 9.94102786982E+01
+ 1.01109559733E+02 1.02837887606E+02 1.04595758832E+02 1.06383678414E+02
+ 1.08202159985E+02 1.10051725961E+02 1.11932907686E+02 1.13846245587E+02
+ 1.15792289329E+02 1.17771597973E+02 1.19784740136E+02 1.21832294155E+02
+ 1.23914848252E+02 1.26033000705E+02 1.28187360018E+02 1.30378545096E+02
+ 1.32607185426E+02 1.34873921252E+02 1.37179403763E+02 1.39524295280E+02
+ 1.41909269445E+02 1.44335011415E+02 1.46802218059E+02 1.49311598156E+02
+ 1.51863872605E+02 1.54459774623E+02 1.57100049963E+02 1.59785457126E+02
+ 1.62516767576E+02 1.65294765966E+02 1.68120250362E+02 1.70994032470E+02
+ 1.73916937873E+02 1.76889806264E+02 1.79913491692E+02 1.82988862802E+02
+ 1.86116803089E+02 1.89298211150E+02 1.92534000942E+02 1.95825102044E+02
+ 1.99172459927E+02 2.02577036221E+02 2.06039808995E+02
+ </PP_R>
+ <PP_RAB>
+ 1.05031871893E-06 1.06827245159E-06 1.08653307825E-06 1.10510584484E-06
+ 1.12399608696E-06 1.14320923140E-06 1.16275079774E-06 1.18262639987E-06
+ 1.20284174769E-06 1.22340264866E-06 1.24431500955E-06 1.26558483805E-06
+ 1.28721824459E-06 1.30922144402E-06 1.33160075744E-06 1.35436261399E-06
+ 1.37751355271E-06 1.40106022441E-06 1.42500939361E-06 1.44936794043E-06
+ 1.47414286262E-06 1.49934127752E-06 1.52497042416E-06 1.55103766529E-06
+ 1.57755048953E-06 1.60451651350E-06 1.63194348401E-06 1.65983928031E-06
+ 1.68821191631E-06 1.71706954293E-06 1.74642045040E-06 1.77627307067E-06
+ 1.80663597982E-06 1.83751790053E-06 1.86892770458E-06 1.90087441538E-06
+ 1.93336721063E-06 1.96641542486E-06 2.00002855219E-06 2.03421624903E-06
+ 2.06898833682E-06 2.10435480493E-06 2.14032581346E-06 2.17691169617E-06
+ 2.21412296349E-06 2.25197030549E-06 2.29046459498E-06 2.32961689063E-06
+ 2.36943844013E-06 2.40994068344E-06 2.45113525608E-06 2.49303399245E-06
+ 2.53564892924E-06 2.57899230889E-06 2.62307658314E-06 2.66791441653E-06
+ 2.71351869010E-06 2.75990250508E-06 2.80707918665E-06 2.85506228775E-06
+ 2.90386559299E-06 2.95350312263E-06 3.00398913656E-06 3.05533813845E-06
+ 3.10756487985E-06 3.16068436451E-06 3.21471185263E-06 3.26966286525E-06
+ 3.32555318875E-06 3.38239887933E-06 3.44021626765E-06 3.49902196353E-06
+ 3.55883286071E-06 3.61966614171E-06 3.68153928275E-06 3.74447005878E-06
+ 3.80847654860E-06 3.87357714004E-06 3.93979053523E-06 4.00713575601E-06
+ 4.07563214934E-06 4.14529939293E-06 4.21615750081E-06 4.28822682916E-06
+ 4.36152808210E-06 4.43608231766E-06 4.51191095382E-06 4.58903577469E-06
+ 4.66747893674E-06 4.74726297517E-06 4.82841081038E-06 4.91094575459E-06
+ 4.99489151848E-06 5.08027221805E-06 5.16711238152E-06 5.25543695639E-06
+ 5.34527131660E-06 5.43664126983E-06 5.52957306488E-06 5.62409339928E-06
+ 5.72022942688E-06 5.81800876570E-06 5.91745950586E-06 6.01861021763E-06
+ 6.12148995964E-06 6.22612828727E-06 6.33255526107E-06 6.44080145546E-06
+ 6.55089796747E-06 6.66287642570E-06 6.77676899940E-06 6.89260840769E-06
+ 7.01042792900E-06 7.13026141060E-06 7.25214327833E-06 7.37610854648E-06
+ 7.50219282789E-06 7.63043234412E-06 7.76086393590E-06 7.89352507372E-06
+ 8.02845386855E-06 8.16568908281E-06 8.30527014153E-06 8.44723714366E-06
+ 8.59163087355E-06 8.73849281273E-06 8.88786515181E-06 9.03979080255E-06
+ 9.19431341027E-06 9.35147736631E-06 9.51132782084E-06 9.67391069580E-06
+ 9.83927269810E-06 1.00074613331E-05 1.01785249180E-05 1.03525125962E-05
+ 1.05294743509E-05 1.07094610199E-05 1.08925243097E-05 1.10787168110E-05
+ 1.12680920133E-05 1.14607043204E-05 1.16566090660E-05 1.18558625299E-05
+ 1.20585219536E-05 1.22646455574E-05 1.24742925565E-05 1.26875231785E-05
+ 1.29043986803E-05 1.31249813662E-05 1.33493346052E-05 1.35775228498E-05
+ 1.38096116540E-05 1.40456676923E-05 1.42857587792E-05 1.45299538881E-05
+ 1.47783231716E-05 1.50309379814E-05 1.52878708888E-05 1.55491957057E-05
+ 1.58149875056E-05 1.60853226454E-05 1.63602787872E-05 1.66399349204E-05
+ 1.69243713849E-05 1.72136698939E-05 1.75079135571E-05 1.78071869051E-05
+ 1.81115759133E-05 1.84211680267E-05 1.87360521853E-05 1.90563188491E-05
+ 1.93820600246E-05 1.97133692909E-05 2.00503418266E-05 2.03930744376E-05
+ 2.07416655843E-05 2.10962154101E-05 2.14568257704E-05 2.18236002615E-05
+ 2.21966442506E-05 2.25760649062E-05 2.29619712283E-05 2.33544740804E-05
+ 2.37536862210E-05 2.41597223360E-05 2.45726990717E-05 2.49927350683E-05
+ 2.54199509941E-05 2.58544695799E-05 2.62964156545E-05 2.67459161805E-05
+ 2.72031002906E-05 2.76680993251E-05 2.81410468691E-05 2.86220787913E-05
+ 2.91113332829E-05 2.96089508972E-05 3.01150745901E-05 3.06298497612E-05
+ 3.11534242954E-05 3.16859486056E-05 3.22275756757E-05 3.27784611046E-05
+ 3.33387631512E-05 3.39086427792E-05 3.44882637041E-05 3.50777924399E-05
+ 3.56773983466E-05 3.62872536795E-05 3.69075336381E-05 3.75384164170E-05
+ 3.81800832565E-05 3.88327184952E-05 3.94965096224E-05 4.01716473325E-05
+ 4.08583255796E-05 4.15567416329E-05 4.22670961340E-05 4.29895931539E-05
+ 4.37244402520E-05 4.44718485356E-05 4.52320327208E-05 4.60052111938E-05
+ 4.67916060736E-05 4.75914432765E-05 4.84049525800E-05 4.92323676898E-05
+ 5.00739263061E-05 5.09298701924E-05 5.18004452449E-05 5.26859015630E-05
+ 5.35864935210E-05 5.45024798417E-05 5.54341236702E-05 5.63816926498E-05
+ 5.73454589986E-05 5.83256995880E-05 5.93226960224E-05 6.03367347193E-05
+ 6.13681069926E-05 6.24171091354E-05 6.34840425060E-05 6.45692136134E-05
+ 6.56729342065E-05 6.67955213627E-05 6.79372975796E-05 6.90985908675E-05
+ 7.02797348435E-05 7.14810688273E-05 7.27029379389E-05 7.39456931978E-05
+ 7.52096916234E-05 7.64952963380E-05 7.78028766711E-05 7.91328082650E-05
+ 8.04854731835E-05 8.18612600209E-05 8.32605640143E-05 8.46837871566E-05
+ 8.61313383122E-05 8.76036333345E-05 8.91010951856E-05 9.06241540571E-05
+ 9.21732474944E-05 9.37488205221E-05 9.53513257718E-05 9.69812236122E-05
+ 9.86389822816E-05 1.00325078022E-04 1.02039995216E-04 1.03784226525E-04
+ 1.05558273035E-04 1.07362644394E-04 1.09197858963E-04 1.11064443964E-04
+ 1.12962935631E-04 1.14893879363E-04 1.16857829883E-04 1.18855351396E-04
+ 1.20887017752E-04 1.22953412609E-04 1.25055129602E-04 1.27192772514E-04
+ 1.29366955449E-04 1.31578303006E-04 1.33827450463E-04 1.36115043957E-04
+ 1.38441740670E-04 1.40808209015E-04 1.43215128835E-04 1.45663191589E-04
+ 1.48153100560E-04 1.50685571049E-04 1.53261330588E-04 1.55881119140E-04
+ 1.58545689322E-04 1.61255806613E-04 1.64012249576E-04 1.66815810085E-04
+ 1.69667293548E-04 1.72567519141E-04 1.75517320043E-04 1.78517543675E-04
+ 1.81569051943E-04 1.84672721485E-04 1.87829443927E-04 1.91040126134E-04
+ 1.94305690472E-04 1.97627075075E-04 2.01005234112E-04 2.04441138064E-04
+ 2.07935773998E-04 2.11490145857E-04 2.15105274742E-04 2.18782199210E-04
+ 2.22521975570E-04 2.26325678187E-04 2.30194399793E-04 2.34129251795E-04
+ 2.38131364600E-04 2.42201887939E-04 2.46341991193E-04 2.50552863734E-04
+ 2.54835715265E-04 2.59191776165E-04 2.63622297847E-04 2.68128553114E-04
+ 2.72711836525E-04 2.77373464770E-04 2.82114777044E-04 2.86937135435E-04
+ 2.91841925312E-04 2.96830555726E-04 3.01904459816E-04 3.07065095214E-04
+ 3.12313944473E-04 3.17652515484E-04 3.23082341916E-04 3.28604983653E-04
+ 3.34222027243E-04 3.39935086354E-04 3.45745802237E-04 3.51655844199E-04
+ 3.57666910080E-04 3.63780726743E-04 3.69999050569E-04 3.76323667963E-04
+ 3.82756395864E-04 3.89299082272E-04 3.95953606772E-04 4.02721881082E-04
+ 4.09605849594E-04 4.16607489942E-04 4.23728813559E-04 4.30971866265E-04
+ 4.38338728849E-04 4.45831517667E-04 4.53452385253E-04 4.61203520935E-04
+ 4.69087151463E-04 4.77105541653E-04 4.85260995033E-04 4.93555854506E-04
+ 5.01992503026E-04 5.10573364277E-04 5.19300903377E-04 5.28177627576E-04
+ 5.37206086988E-04 5.46388875313E-04 5.55728630589E-04 5.65228035946E-04
+ 5.74889820381E-04 5.84716759536E-04 5.94711676502E-04 6.04877442624E-04
+ 6.15216978330E-04 6.25733253970E-04 6.36429290665E-04 6.47308161179E-04
+ 6.58372990802E-04 6.69626958246E-04 6.81073296557E-04 6.92715294046E-04
+ 7.04556295235E-04 7.16599701814E-04 7.28848973620E-04 7.41307629632E-04
+ 7.53979248982E-04 7.66867471980E-04 7.79976001163E-04 7.93308602357E-04
+ 8.06869105762E-04 8.20661407048E-04 8.34689468475E-04 8.48957320035E-04
+ 8.63469060605E-04 8.78228859126E-04 8.93240955805E-04 9.08509663325E-04
+ 9.24039368092E-04 9.39834531487E-04 9.55899691157E-04 9.72239462311E-04
+ 9.88858539049E-04 1.00576169571E-03 1.02295378824E-03 1.04043975560E-03
+ 1.05822462117E-03 1.07631349420E-03 1.09471157127E-03 1.11342413778E-03
+ 1.13245656951E-03 1.15181433409E-03 1.17150299265E-03 1.19152820134E-03
+ 1.21189571303E-03 1.23261137891E-03 1.25368115018E-03 1.27511107979E-03
+ 1.29690732413E-03 1.31907614486E-03 1.34162391063E-03 1.36455709900E-03
+ 1.38788229821E-03 1.41160620915E-03 1.43573564724E-03 1.46027754440E-03
+ 1.48523895104E-03 1.51062703808E-03 1.53644909905E-03 1.56271255211E-03
+ 1.58942494224E-03 1.61659394341E-03 1.64422736073E-03 1.67233313275E-03
+ 1.70091933373E-03 1.72999417591E-03 1.75956601195E-03 1.78964333725E-03
+ 1.82023479245E-03 1.85134916588E-03 1.88299539610E-03 1.91518257446E-03
+ 1.94791994772E-03 1.98121692068E-03 2.01508305893E-03 2.04952809154E-03
+ 2.08456191392E-03 2.12019459059E-03 2.15643635815E-03 2.19329762814E-03
+ 2.23078899010E-03 2.26892121456E-03 2.30770525619E-03 2.34715225688E-03
+ 2.38727354899E-03 2.42808065860E-03 2.46958530880E-03 2.51179942306E-03
+ 2.55473512870E-03 2.59840476030E-03 2.64282086331E-03 2.68799619761E-03
+ 2.73394374121E-03 2.78067669393E-03 2.82820848127E-03 2.87655275817E-03
+ 2.92572341301E-03 2.97573457158E-03 3.02660060110E-03 3.07833611441E-03
+ 3.13095597412E-03 3.18447529690E-03 3.23890945780E-03 3.29427409471E-03
+ 3.35058511283E-03 3.40785868921E-03 3.46611127745E-03 3.52535961239E-03
+ 3.58562071492E-03 3.64691189690E-03 3.70925076610E-03 3.77265523126E-03
+ 3.83714350727E-03 3.90273412036E-03 3.96944591344E-03 4.03729805152E-03
+ 4.10631002720E-03 4.17650166629E-03 4.24789313350E-03 4.32050493820E-03
+ 4.39435794036E-03 4.46947335653E-03 4.54587276590E-03 4.62357811655E-03
+ 4.70261173172E-03 4.78299631625E-03 4.86475496306E-03 4.94791115984E-03
+ 5.03248879574E-03 5.11851216829E-03 5.20600599035E-03 5.29499539718E-03
+ 5.38550595373E-03 5.47756366192E-03 5.57119496816E-03 5.66642677090E-03
+ 5.76328642841E-03 5.86180176658E-03 5.96200108697E-03 6.06391317490E-03
+ 6.16756730775E-03 6.27299326334E-03 6.38022132850E-03 6.48928230779E-03
+ 6.60020753231E-03 6.71302886873E-03 6.82777872845E-03 6.94449007687E-03
+ 7.06319644291E-03 7.18393192861E-03 7.30673121894E-03 7.43162959175E-03
+ 7.55866292794E-03 7.68786772172E-03 7.81928109113E-03 7.95294078869E-03
+ 8.08888521224E-03 8.22715341598E-03 8.36778512170E-03 8.51082073016E-03
+ 8.65630133273E-03 8.80426872316E-03 8.95476540963E-03 9.10783462691E-03
+ 9.26352034884E-03 9.42186730091E-03 9.58292097313E-03 9.74672763312E-03
+ 9.91333433934E-03 1.00827889547E-02 1.02551401602E-02 1.04304374690E-02
+ 1.06087312407E-02 1.07900726956E-02 1.09745139295E-02 1.11621079290E-02
+ 1.13529085860E-02 1.15469707140E-02 1.17443500633E-02 1.19451033370E-02
+ 1.21492882078E-02 1.23569633340E-02 1.25681883767E-02 1.27830240166E-02
+ 1.30015319720E-02 1.32237750160E-02 1.34498169946E-02 1.36797228454E-02
+ 1.39135586158E-02 1.41513914824E-02 1.43932897699E-02 1.46393229711E-02
+ 1.48895617664E-02 1.51440780447E-02 1.54029449236E-02 1.56662367706E-02
+ 1.59340292241E-02 1.62063992160E-02 1.64834249927E-02 1.67651861385E-02
+ 1.70517635978E-02 1.73432396988E-02 1.76396981770E-02 1.79412241991E-02
+ 1.82479043878E-02 1.85598268463E-02 1.88770811839E-02 1.91997585416E-02
+ 1.95279516184E-02 1.98617546979E-02 2.02012636751E-02 2.05465760845E-02
+ 2.08977911275E-02 2.12550097016E-02 2.16183344287E-02 2.19878696849E-02
+ 2.23637216306E-02 2.27459982408E-02 2.31348093361E-02 2.35302666144E-02
+ 2.39324836830E-02 2.43415760911E-02 2.47576613629E-02 2.51808590318E-02
+ 2.56112906742E-02 2.60490799448E-02 2.64943526120E-02 2.69472365941E-02
+ 2.74078619957E-02 2.78763611457E-02 2.83528686349E-02 2.88375213546E-02
+ 2.93304585361E-02 2.98318217908E-02 3.03417551506E-02 3.08604051095E-02
+ 3.13879206657E-02 3.19244533640E-02 3.24701573401E-02 3.30251893640E-02
+ 3.35897088858E-02 3.41638780810E-02 3.47478618972E-02 3.53418281017E-02
+ 3.59459473296E-02 3.65603931325E-02 3.71853420290E-02 3.78209735546E-02
+ 3.84674703140E-02 3.91250180333E-02 3.97938056132E-02 4.04740251834E-02
+ 4.11658721578E-02 4.18695452907E-02 4.25852467337E-02 4.33131820941E-02
+ 4.40535604935E-02 4.48065946284E-02 4.55725008309E-02 4.63514991310E-02
+ 4.71438133199E-02 4.79496710140E-02 4.87693037208E-02 4.96029469048E-02
+ 5.04508400556E-02 5.13132267565E-02 5.21903547544E-02 5.30824760314E-02
+ 5.39898468765E-02 5.49127279599E-02 5.58513844074E-02 5.68060858769E-02
+ 5.77771066357E-02 5.87647256391E-02 5.97692266110E-02 6.07908981252E-02
+ 6.18300336881E-02 6.28869318231E-02 6.39618961568E-02 6.50552355055E-02
+ 6.61672639645E-02 6.72983009980E-02 6.84486715312E-02 6.96187060431E-02
+ 7.08087406621E-02 7.20191172621E-02 7.32501835608E-02 7.45022932198E-02
+ 7.57758059460E-02 7.70710875949E-02 7.83885102759E-02 7.97284524590E-02
+ 8.10912990837E-02 8.24774416694E-02 8.38872784281E-02 8.53212143786E-02
+ 8.67796614630E-02 8.82630386648E-02 8.97717721297E-02 9.13062952875E-02
+ 9.28670489772E-02 9.44544815729E-02 9.60690491135E-02 9.77112154328E-02
+ 9.93814522935E-02 1.01080239522E-01 1.02808065148E-01 1.04565425541E-01
+ 1.06352825558E-01 1.08170778684E-01 1.10019807181E-01 1.11900442239E-01
+ 1.13813224130E-01 1.15758702357E-01 1.17737435819E-01 1.19749992968E-01
+ 1.21796951974E-01 1.23878900886E-01 1.25996437810E-01 1.28150171072E-01
+ 1.30340719398E-01 1.32568712091E-01 1.34834789209E-01 1.37139601754E-01
+ 1.39483811852E-01 1.41868092950E-01 1.44293130006E-01 1.46759619686E-01
+ 1.49268270565E-01 1.51819803329E-01 1.54414950985E-01 1.57054459069E-01
+ 1.59739085859E-01 1.62469602598E-01 1.65246793709E-01 1.68071457027E-01
+ 1.70944404022E-01 1.73866460037E-01 1.76838464521E-01 1.79861271274E-01
+ 1.82935748689E-01 1.86062780005E-01 1.89243263558E-01 1.92478113038E-01
+ 1.95768257755E-01 1.99114642905E-01 2.02518229838E-01 2.05979996340E-01
+ 2.09500936909E-01 2.13082063043E-01 2.16724403530E-01 2.20429004745E-01
+ 2.24196930948E-01 2.28029264590E-01 2.31927106627E-01 2.35891576835E-01
+ 2.39923814127E-01 2.44024976889E-01 2.48196243304E-01 2.52438811697E-01
+ 2.56753900876E-01 2.61142750482E-01 2.65606621348E-01 2.70146795855E-01
+ 2.74764578310E-01 2.79461295311E-01 2.84238296134E-01 2.89096953120E-01
+ 2.94038662066E-01 2.99064842630E-01 3.04176938735E-01 3.09376418990E-01
+ 3.14664777102E-01 3.20043532316E-01 3.25514229844E-01 3.31078441311E-01
+ 3.36737765208E-01 3.42493827349E-01 3.48348281338E-01 3.54302809048E-01
+ 3.60359121099E-01 3.66518957352E-01 3.72784087409E-01 3.79156311121E-01
+ 3.85637459104E-01 3.92229393266E-01 3.98934007343E-01 4.05753227441E-01
+ 4.12689012590E-01 4.19743355305E-01 4.26918282165E-01 4.34215854385E-01
+ 4.41638168419E-01 4.49187356552E-01 4.56865587520E-01 4.64675067131E-01
+ 4.72618038896E-01 4.80696784679E-01 4.88913625346E-01 4.97270921437E-01
+ 5.05771073841E-01 5.14416524487E-01 5.23209757047E-01 5.32153297645E-01
+ 5.41249715588E-01 5.50501624100E-01 5.59911681077E-01 5.69482589845E-01
+ 5.79217099940E-01 5.89118007901E-01 5.99188158065E-01 6.09430443392E-01
+ 6.19847806292E-01 6.30443239472E-01 6.41219786796E-01 6.52180544156E-01
+ 6.63328660367E-01 6.74667338065E-01 6.86199834635E-01 6.97929463138E-01
+ 7.09859593270E-01 7.21993652328E-01 7.34335126190E-01 7.46887560324E-01
+ 7.59654560802E-01 7.72639795334E-01 7.85846994329E-01 7.99279951958E-01
+ 8.12942527251E-01 8.26838645201E-01 8.40972297893E-01 8.55347545653E-01
+ 8.69968518212E-01 8.84839415891E-01 8.99964510811E-01 9.15348148121E-01
+ 9.30994747241E-01 9.46908803136E-01 9.63094887607E-01 9.79557650602E-01
+ 9.96301821555E-01 1.01333221074E+00 1.03065371066E+00 1.04827129745E+00
+ 1.06619003230E+00 1.08441506292E+00 1.10295162499E+00 1.12180504373E+00
+ 1.14098073534E+00 1.16048420865E+00 1.18032106660E+00 1.20049700797E+00
+ 1.22101782889E+00 1.24188942460E+00 1.26311779112E+00 1.28470902693E+00
+ 1.30666933479E+00 1.32900502347E+00 1.35172250956E+00 1.37482831938E+00
+ 1.39832909077E+00 1.42223157505E+00 1.44654263894E+00 1.47126926654E+00
+ 1.49641856133E+00 1.52199774821E+00 1.54801417560E+00 1.57447531750E+00
+ 1.60138877569E+00 1.62876228189E+00 1.65660369998E+00 1.68492102825E+00
+ 1.71372240173E+00 1.74301609450E+00 1.77281052205E+00 1.80311424377E+00
+ 1.83393596532E+00 1.86528454118E+00 1.89716897719E+00 1.92959843314E+00
+ 1.96258222538E+00 1.99612982952E+00 2.03025088313E+00 2.06495518853E+00
+ 2.10025271560E+00 2.13615360463E+00 2.17266816926E+00 2.20980689941E+00
+ 2.24758046432E+00 2.28599971560E+00 2.32507569037E+00 2.36481961439E+00
+ 2.40524290532E+00 2.44635717600E+00 2.48817423775E+00 2.53070610382E+00
+ 2.57396499277E+00 2.61796333206E+00 2.66271376156E+00 2.70822913719E+00
+ 2.75452253465E+00 2.80160725313E+00 2.84949681917E+00 2.89820499049E+00
+ 2.94774576003E+00 2.99813335988E+00 3.04938226544E+00 3.10150719951E+00
+ 3.15452313658E+00 3.20844530710E+00 3.26328920187E+00 3.31907057649E+00
+ 3.37580545586E+00 3.43351013880E+00 3.49220120277E+00
+ </PP_RAB>
+</PP_MESH>
+
+
+<PP_LOCAL>
+ -3.70581655263E+01 -3.70581655263E+01 -3.70581655263E+01 -3.70581655262E+01
+ -3.70581655260E+01 -3.70581655260E+01 -3.70581655257E+01 -3.70581655255E+01
+ -3.70581655252E+01 -3.70581655249E+01 -3.70581655245E+01 -3.70581655241E+01
+ -3.70581655236E+01 -3.70581655230E+01 -3.70581655223E+01 -3.70581655218E+01
+ -3.70581655209E+01 -3.70581655201E+01 -3.70581655192E+01 -3.70581655183E+01
+ -3.70581655172E+01 -3.70581655162E+01 -3.70581655149E+01 -3.70581655136E+01
+ -3.70581655123E+01 -3.70581655106E+01 -3.70581655091E+01 -3.70581655073E+01
+ -3.70581655057E+01 -3.70581655038E+01 -3.70581655017E+01 -3.70581654996E+01
+ -3.70581654973E+01 -3.70581654946E+01 -3.70581654922E+01 -3.70581654894E+01
+ -3.70581654865E+01 -3.70581654835E+01 -3.70581654803E+01 -3.70581654769E+01
+ -3.70581654734E+01 -3.70581654697E+01 -3.70581654658E+01 -3.70581654615E+01
+ -3.70581654572E+01 -3.70581654527E+01 -3.70581654478E+01 -3.70581654428E+01
+ -3.70581654375E+01 -3.70581654319E+01 -3.70581654261E+01 -3.70581654201E+01
+ -3.70581654136E+01 -3.70581654070E+01 -3.70581654000E+01 -3.70581653927E+01
+ -3.70581653850E+01 -3.70581653771E+01 -3.70581653685E+01 -3.70581653601E+01
+ -3.70581653508E+01 -3.70581653412E+01 -3.70581653312E+01 -3.70581653208E+01
+ -3.70581653099E+01 -3.70581652986E+01 -3.70581652871E+01 -3.70581652747E+01
+ -3.70581652617E+01 -3.70581652482E+01 -3.70581652345E+01 -3.70581652197E+01
+ -3.70581652048E+01 -3.70581651890E+01 -3.70581651726E+01 -3.70581651554E+01
+ -3.70581651375E+01 -3.70581651189E+01 -3.70581650996E+01 -3.70581650794E+01
+ -3.70581650584E+01 -3.70581650367E+01 -3.70581650141E+01 -3.70581649904E+01
+ -3.70581649659E+01 -3.70581649404E+01 -3.70581649138E+01 -3.70581648862E+01
+ -3.70581648575E+01 -3.70581648277E+01 -3.70581647966E+01 -3.70581647644E+01
+ -3.70581647309E+01 -3.70581646962E+01 -3.70581646600E+01 -3.70581646224E+01
+ -3.70581645833E+01 -3.70581645428E+01 -3.70581645006E+01 -3.70581644569E+01
+ -3.70581644114E+01 -3.70581643643E+01 -3.70581643155E+01 -3.70581642646E+01
+ -3.70581642115E+01 -3.70581641570E+01 -3.70581640998E+01 -3.70581640410E+01
+ -3.70581639795E+01 -3.70581639158E+01 -3.70581638500E+01 -3.70581637813E+01
+ -3.70581637104E+01 -3.70581636366E+01 -3.70581635600E+01 -3.70581634805E+01
+ -3.70581633981E+01 -3.70581633128E+01 -3.70581632242E+01 -3.70581631323E+01
+ -3.70581630368E+01 -3.70581629379E+01 -3.70581628355E+01 -3.70581627292E+01
+ -3.70581626187E+01 -3.70581625044E+01 -3.70581623859E+01 -3.70581622631E+01
+ -3.70581621356E+01 -3.70581620034E+01 -3.70581618663E+01 -3.70581617244E+01
+ -3.70581615772E+01 -3.70581614245E+01 -3.70581612664E+01 -3.70581611025E+01
+ -3.70581609324E+01 -3.70581607565E+01 -3.70581605739E+01 -3.70581603848E+01
+ -3.70581601887E+01 -3.70581599856E+01 -3.70581597750E+01 -3.70581595569E+01
+ -3.70581593309E+01 -3.70581590967E+01 -3.70581588542E+01 -3.70581586026E+01
+ -3.70581583422E+01 -3.70581580723E+01 -3.70581577928E+01 -3.70581575033E+01
+ -3.70581572031E+01 -3.70581568923E+01 -3.70581565704E+01 -3.70581562369E+01
+ -3.70581558913E+01 -3.70581555334E+01 -3.70581551628E+01 -3.70581547788E+01
+ -3.70581543812E+01 -3.70581539693E+01 -3.70581535428E+01 -3.70581531010E+01
+ -3.70581526434E+01 -3.70581521696E+01 -3.70581516789E+01 -3.70581511706E+01
+ -3.70581506442E+01 -3.70581500994E+01 -3.70581495349E+01 -3.70581489506E+01
+ -3.70581483456E+01 -3.70581477189E+01 -3.70581470698E+01 -3.70581463982E+01
+ -3.70581457023E+01 -3.70581449821E+01 -3.70581442361E+01 -3.70581434641E+01
+ -3.70581426646E+01 -3.70581418368E+01 -3.70581409798E+01 -3.70581400924E+01
+ -3.70581391739E+01 -3.70581382230E+01 -3.70581372383E+01 -3.70581362191E+01
+ -3.70581351639E+01 -3.70581340713E+01 -3.70581329405E+01 -3.70581317699E+01
+ -3.70581305579E+01 -3.70581293034E+01 -3.70581280047E+01 -3.70581266603E+01
+ -3.70581252688E+01 -3.70581238282E+01 -3.70581223372E+01 -3.70581207939E+01
+ -3.70581191964E+01 -3.70581175425E+01 -3.70581158309E+01 -3.70581140592E+01
+ -3.70581122254E+01 -3.70581103273E+01 -3.70581083627E+01 -3.70581063292E+01
+ -3.70581042247E+01 -3.70581020464E+01 -3.70580997919E+01 -3.70580974583E+01
+ -3.70580950433E+01 -3.70580925437E+01 -3.70580899568E+01 -3.70580872794E+01
+ -3.70580845083E+01 -3.70580816405E+01 -3.70580786726E+01 -3.70580756010E+01
+ -3.70580724221E+01 -3.70580691322E+01 -3.70580657276E+01 -3.70580622039E+01
+ -3.70580585575E+01 -3.70580547840E+01 -3.70580508787E+01 -3.70580468372E+01
+ -3.70580426550E+01 -3.70580383269E+01 -3.70580338481E+01 -3.70580292132E+01
+ -3.70580244167E+01 -3.70580194530E+01 -3.70580143168E+01 -3.70580090017E+01
+ -3.70580035014E+01 -3.70579978100E+01 -3.70579919203E+01 -3.70579858257E+01
+ -3.70579795190E+01 -3.70579729929E+01 -3.70579662398E+01 -3.70579592520E+01
+ -3.70579520212E+01 -3.70579445392E+01 -3.70579367969E+01 -3.70579287854E+01
+ -3.70579204958E+01 -3.70579119182E+01 -3.70579030425E+01 -3.70578938584E+01
+ -3.70578843555E+01 -3.70578745223E+01 -3.70578643479E+01 -3.70578538201E+01
+ -3.70578429270E+01 -3.70578316557E+01 -3.70578199933E+01 -3.70578079262E+01
+ -3.70577954402E+01 -3.70577825211E+01 -3.70577691541E+01 -3.70577553230E+01
+ -3.70577410124E+01 -3.70577262054E+01 -3.70577108850E+01 -3.70576950332E+01
+ -3.70576786321E+01 -3.70576616622E+01 -3.70576441042E+01 -3.70576259375E+01
+ -3.70576071413E+01 -3.70575876937E+01 -3.70575675722E+01 -3.70575467536E+01
+ -3.70575252136E+01 -3.70575029273E+01 -3.70574798693E+01 -3.70574560125E+01
+ -3.70574313293E+01 -3.70574057914E+01 -3.70573793693E+01 -3.70573520321E+01
+ -3.70573237484E+01 -3.70572944854E+01 -3.70572642096E+01 -3.70572328856E+01
+ -3.70572004775E+01 -3.70571669475E+01 -3.70571322572E+01 -3.70570963662E+01
+ -3.70570592335E+01 -3.70570208156E+01 -3.70569810687E+01 -3.70569399465E+01
+ -3.70568974017E+01 -3.70568533850E+01 -3.70568078458E+01 -3.70567607313E+01
+ -3.70567119873E+01 -3.70566615575E+01 -3.70566093837E+01 -3.70565554054E+01
+ -3.70564995606E+01 -3.70564417849E+01 -3.70563820115E+01 -3.70563201713E+01
+ -3.70562561935E+01 -3.70561900036E+01 -3.70561215258E+01 -3.70560506804E+01
+ -3.70559773868E+01 -3.70559015596E+01 -3.70558231119E+01 -3.70557419525E+01
+ -3.70556579886E+01 -3.70555711230E+01 -3.70554812556E+01 -3.70553882830E+01
+ -3.70552920981E+01 -3.70551925895E+01 -3.70550896432E+01 -3.70549831402E+01
+ -3.70548729580E+01 -3.70547589692E+01 -3.70546410432E+01 -3.70545190431E+01
+ -3.70543928295E+01 -3.70542622563E+01 -3.70541271735E+01 -3.70539874251E+01
+ -3.70538428507E+01 -3.70536932832E+01 -3.70535385511E+01 -3.70533784755E+01
+ -3.70532128728E+01 -3.70530415518E+01 -3.70528643159E+01 -3.70526809601E+01
+ -3.70524912747E+01 -3.70522950400E+01 -3.70520920315E+01 -3.70518820145E+01
+ -3.70516647483E+01 -3.70514399818E+01 -3.70512074578E+01 -3.70509669074E+01
+ -3.70507180553E+01 -3.70504606139E+01 -3.70501942885E+01 -3.70499187712E+01
+ -3.70496337470E+01 -3.70493388864E+01 -3.70490338523E+01 -3.70487182919E+01
+ -3.70483918445E+01 -3.70480541329E+01 -3.70477047712E+01 -3.70473433552E+01
+ -3.70469694727E+01 -3.70465826909E+01 -3.70461825680E+01 -3.70457686422E+01
+ -3.70453404405E+01 -3.70448974681E+01 -3.70444392193E+01 -3.70439651649E+01
+ -3.70434747635E+01 -3.70429674492E+01 -3.70424426423E+01 -3.70418997377E+01
+ -3.70413381150E+01 -3.70407571267E+01 -3.70401561092E+01 -3.70395343698E+01
+ -3.70388911984E+01 -3.70382258539E+01 -3.70375375769E+01 -3.70368255739E+01
+ -3.70360890329E+01 -3.70353271048E+01 -3.70345389212E+01 -3.70337235734E+01
+ -3.70328801323E+01 -3.70320076262E+01 -3.70311050607E+01 -3.70301713970E+01
+ -3.70292055707E+01 -3.70282064704E+01 -3.70271729582E+01 -3.70261038447E+01
+ -3.70249979129E+01 -3.70238538905E+01 -3.70226704756E+01 -3.70214463072E+01
+ -3.70201799929E+01 -3.70188700770E+01 -3.70175150701E+01 -3.70161134150E+01
+ -3.70146635192E+01 -3.70131637169E+01 -3.70116123045E+01 -3.70100075009E+01
+ -3.70083474839E+01 -3.70066303487E+01 -3.70048541465E+01 -3.70030168404E+01
+ -3.70011163460E+01 -3.69991504854E+01 -3.69971170294E+01 -3.69950136488E+01
+ -3.69928379603E+01 -3.69905874732E+01 -3.69882596388E+01 -3.69858517941E+01
+ -3.69833612140E+01 -3.69807850511E+01 -3.69781203915E+01 -3.69753641913E+01
+ -3.69725133350E+01 -3.69695645681E+01 -3.69665145598E+01 -3.69633598314E+01
+ -3.69600968218E+01 -3.69567218122E+01 -3.69532309956E+01 -3.69496203971E+01
+ -3.69458859471E+01 -3.69420233967E+01 -3.69380283962E+01 -3.69338964040E+01
+ -3.69296227706E+01 -3.69252026422E+01 -3.69206310493E+01 -3.69159028045E+01
+ -3.69110125957E+01 -3.69059548803E+01 -3.69007239803E+01 -3.68953139715E+01
+ -3.68897187869E+01 -3.68839320955E+01 -3.68779474124E+01 -3.68717579729E+01
+ -3.68653568465E+01 -3.68587368035E+01 -3.68518904375E+01 -3.68448100222E+01
+ -3.68374876420E+01 -3.68299150406E+01 -3.68220837571E+01 -3.68139849675E+01
+ -3.68056096285E+01 -3.67969483092E+01 -3.67879913417E+01 -3.67787286463E+01
+ -3.67691498856E+01 -3.67592442845E+01 -3.67490007892E+01 -3.67384078788E+01
+ -3.67274537305E+01 -3.67161260232E+01 -3.67044121089E+01 -3.66922988069E+01
+ -3.66797725826E+01 -3.66668193307E+01 -3.66534245616E+01 -3.66395731752E+01
+ -3.66252496524E+01 -3.66104378201E+01 -3.65951210482E+01 -3.65792820044E+01
+ -3.65629028559E+01 -3.65459650163E+01 -3.65284493490E+01 -3.65103359072E+01
+ -3.64916041388E+01 -3.64722326168E+01 -3.64521992476E+01 -3.64314809913E+01
+ -3.64100540713E+01 -3.63878936853E+01 -3.63649742150E+01 -3.63412689262E+01
+ -3.63167501794E+01 -3.62913891192E+01 -3.62651558828E+01 -3.62380192780E+01
+ -3.62099469913E+01 -3.61809052518E+01 -3.61508590394E+01 -3.61197717336E+01
+ -3.60876053208E+01 -3.60543200280E+01 -3.60198745315E+01 -3.59842255709E+01
+ -3.59473281644E+01 -3.59091352003E+01 -3.58695976640E+01 -3.58286642051E+01
+ -3.57862813827E+01 -3.57423932053E+01 -3.56969414102E+01 -3.56498649680E+01
+ -3.56011004151E+01 -3.55505813212E+01 -3.54982386973E+01 -3.54440004215E+01
+ -3.53877917536E+01 -3.53295347165E+01 -3.52691487549E+01 -3.52065500658E+01
+ -3.51416524470E+01 -3.50743665703E+01 -3.50046010681E+01 -3.49322617334E+01
+ -3.48572529012E+01 -3.47794765435E+01 -3.46988339986E+01 -3.46152249147E+01
+ -3.45285493685E+01 -3.44387065879E+01 -3.43455974854E+01 -3.42491230636E+01
+ -3.41491873728E+01 -3.40456954728E+01 -3.39385568105E+01 -3.38276825962E+01
+ -3.37129895881E+01 -3.35943967372E+01 -3.34718293766E+01 -3.33452150011E+01
+ -3.32144878818E+01 -3.30795838837E+01 -3.29404455499E+01 -3.27970159085E+01
+ -3.26492441078E+01 -3.24970782050E+01 -3.23404714747E+01 -3.21793742143E+01
+ -3.20137408818E+01 -3.18435209999E+01 -3.16686673268E+01 -3.14891259862E+01
+ -3.13048459440E+01 -3.11157685547E+01 -3.09218387055E+01 -3.07229940486E+01
+ -3.05191782655E+01 -3.03103303330E+01 -3.00964003678E+01 -2.98773393111E+01
+ -2.96531175630E+01 -2.94237153364E+01 -2.91891434506E+01 -2.89494340309E+01
+ -2.87046608071E+01 -2.84549280993E+01 -2.82003835814E+01 -2.79411986312E+01
+ -2.76775570371E+01 -2.74096062371E+01 -2.71373843266E+01 -2.68606859768E+01
+ -2.65788463586E+01 -2.62903923847E+01 -2.59938950133E+01 -2.56931480025E+01
+ -2.53887381943E+01 -2.50806477070E+01 -2.47688762944E+01 -2.44534563578E+01
+ -2.41344377557E+01 -2.38119062637E+01 -2.34859648976E+01 -2.31567551644E+01
+ -2.28244355688E+01 -2.24892049263E+01 -2.21512788260E+01 -2.18109142415E+01
+ -2.14683847891E+01 -2.11240058830E+01 -2.07781096619E+01 -2.04310699836E+01
+ -2.00832779011E+01 -1.97351658779E+01 -1.93871846786E+01 -1.90398263056E+01
+ -1.86936031270E+01 -1.83490691872E+01 -1.80068023310E+01 -1.76674237091E+01
+ -1.73315835738E+01 -1.69999789642E+01 -1.66733437425E+01 -1.63523146352E+01
+ -1.60379244565E+01 -1.57310257540E+01 -1.54325771297E+01 -1.51436118047E+01
+ -1.48652420294E+01 -1.45986708274E+01 -1.43452001357E+01 -1.41076979310E+01
+ -1.38704123711E+01 -1.36371432618E+01 -1.34078187133E+01 -1.31823688343E+01
+ -1.29607252799E+01 -1.27428214363E+01 -1.25285921463E+01 -1.23179737461E+01
+ -1.21109038629E+01 -1.19073214862E+01 -1.17071667949E+01 -1.15103811997E+01
+ -1.13169072174E+01 -1.11266884933E+01 -1.09396697099E+01 -1.07557965953E+01
+ -1.05750158557E+01 -1.03972751760E+01 -1.02225231680E+01 -1.00507093662E+01
+ -9.88178418694E+00 -9.71569892197E+00 -9.55240570483E+00 -9.39185750270E+00
+ -9.23400808917E+00 -9.07881203448E+00 -8.92622468284E+00 -8.77620214249E+00
+ -8.62870126576E+00 -8.48367963906E+00 -8.34109556576E+00 -8.20090805568E+00
+ -8.06307681019E+00 -7.92756221158E+00 -7.79432530970E+00 -7.66332781129E+00
+ -7.53453206792E+00 -7.40790106529E+00 -7.28339841226E+00 -7.16098832998E+00
+ -7.04063564200E+00 -6.92230576338E+00 -6.80596469134E+00 -6.69157899476E+00
+ -6.57911580515E+00 -6.46854280658E+00 -6.35982822685E+00 -6.25294082789E+00
+ -6.14784989708E+00 -6.04452523821E+00 -5.94293716281E+00 -5.84305648171E+00
+ -5.74485449640E+00 -5.64830299109E+00 -5.55337422406E+00 -5.46004092049E+00
+ -5.36827626359E+00 -5.27805388799E+00 -5.18934787097E+00 -5.10213272618E+00
+ -5.01638339520E+00 -4.93207524141E+00 -4.84918404174E+00 -4.76768598096E+00
+ -4.68755764353E+00 -4.60877600818E+00 -4.53131843995E+00 -4.45516268504E+00
+ -4.38028686305E+00 -4.30666946201E+00 -4.23428933095E+00 -4.16312567497E+00
+ -4.09315804818E+00 -4.02436634888E+00 -3.95673081275E+00 -3.89023200812E+00
+ -3.82485082952E+00 -3.76056849302E+00 -3.69736653005E+00 -3.63522678272E+00
+ -3.57413139816E+00 -3.51406282372E+00 -3.45500380162E+00 -3.39693736432E+00
+ -3.33984682930E+00 -3.28371579458E+00 -3.22852813374E+00 -3.17426799151E+00
+ -3.12091977903E+00 -3.06846816953E+00 -3.01689809379E+00 -2.96619473591E+00
+ -2.91634352896E+00 -2.86733015093E+00 -2.81914052043E+00 -2.77176079286E+00
+ -2.72517735620E+00 -2.67937682730E+00 -2.63434604791E+00 -2.59007208095E+00
+ -2.54654220679E+00 -2.50374391958E+00 -2.46166492364E+00 -2.42029313000E+00
+ -2.37961665285E+00 -2.33962380611E+00 -2.30030310021E+00 -2.26164323861E+00
+ -2.22363311463E+00 -2.18626180836E+00 -2.14951858331E+00 -2.11339288351E+00
+ -2.07787433037E+00 -2.04295271981E+00 -2.00861801917E+00 -1.97486036441E+00
+ -1.94167005737E+00 -1.90903756279E+00 -1.87695350570E+00 -1.84540866872E+00
+ -1.81439398941E+00 -1.78390055749E+00 -1.75391961269E+00 -1.72444254206E+00
+ -1.69546087653E+00 -1.66696629036E+00 -1.63895059741E+00 -1.61140574913E+00
+ -1.58432383221E+00 -1.55769706637E+00 -1.53151780208E+00 -1.50577851837E+00
+ -1.48047182069E+00 -1.45559043874E+00 -1.43112722442E+00 -1.40707514977E+00
+ -1.38342730498E+00 -1.36017689630E+00 -1.33731724421E+00 -1.31484178146E+00
+ -1.29274405114E+00 -1.27101770486E+00 -1.24965650097E+00 -1.22865430266E+00
+ -1.20800507632E+00 -1.18770288969E+00 -1.16774191027E+00 -1.14811640352E+00
+ -1.12882073133E+00 -1.10984935032E+00 -1.09119681030E+00 -1.07285775265E+00
+ -1.05482690883E+00 -1.03709909884E+00 -1.01966922975E+00 -1.00253229422E+00
+ -9.85683369044E-01 -9.69117613790E-01 -9.52830269363E-01 -9.36816656659E-01
+ -9.21072175199E-01 -9.05592301842E-01 -8.90372590828E-01 -8.75408668730E-01
+ -8.60696234770E-01 -8.46231063976E-01 -8.32009000166E-01 -8.18025956528E-01
+ -8.04277918519E-01 -7.90760935665E-01 -7.77471124330E-01 -7.64404666259E-01
+ -7.51557809042E-01 -7.38926861098E-01 -7.26508193757E-01 -7.14298239335E-01
+ -7.02293490110E-01 -6.90490497315E-01 -6.78885870137E-01 -6.67476274759E-01
+ -6.56258433391E-01 -6.45229123328E-01 -6.34385176034E-01 -6.23723476222E-01
+ -6.13240960960E-01 -6.02934618797E-01 -5.92801488891E-01 -5.82838660163E-01
+ -5.73043270461E-01 -5.63412505731E-01 -5.53943599219E-01 -5.44633830666E-01
+ -5.35480525534E-01 -5.26481054233E-01 -5.17632831368E-01 -5.08933314995E-01
+ -5.00380005892E-01 -4.91970446839E-01 -4.83702221913E-01 -4.75572955797E-01
+ -4.67580313092E-01 -4.59721997649E-01 -4.51995751910E-01 -4.44399356259E-01
+ -4.36930628383E-01 -4.29587422647E-01 -4.22367629475E-01 -4.15269174746E-01
+ -4.08290019200E-01 -4.01428157846E-01 -3.94681619393E-01 -3.88048465678E-01
+ -3.81526791113E-01 -3.75114722137E-01 -3.68810416675E-01 -3.62612063611E-01
+ -3.56517882269E-01 -3.50526121899E-01 -3.44635061173E-01 -3.38843007697E-01
+ -3.33148297514E-01 -3.27549294639E-01 -3.22044390576E-01 -3.16632003865E-01
+ -3.11310579625E-01 -3.06078589106E-01 -3.00934529251E-01 -2.95876922265E-01
+ -2.90904315188E-01 -2.86015279480E-01 -2.81208410609E-01 -2.76482327649E-01
+ -2.71835672881E-01 -2.67267111407E-01 -2.62775330760E-01 -2.58359040536E-01
+ -2.54016972012E-01 -2.49747877793E-01 -2.45550531444E-01 -2.41423727147E-01
+ -2.37366279345E-01 -2.33377022406E-01 -2.29454810291E-01 -2.25598516218E-01
+ -2.21807032349E-01 -2.18079269456E-01 -2.14414156624E-01 -2.10810640933E-01
+ -2.07267687158E-01 -2.03784277475E-01 -2.00359411163E-01 -1.96992104322E-01
+ -1.93681389588E-01 -1.90426315852E-01 -1.87225947992E-01 -1.84079366604E-01
+ -1.80985667729E-01 -1.77943962608E-01 -1.74953377414E-01 -1.72013053009E-01
+ -1.69122144690E-01 -1.66279821955E-01 -1.63485268256E-01 -1.60737680772E-01
+ -1.58036270170E-01 -1.55380260385E-01 -1.52768888397E-01 -1.50201404006E-01
+ -1.47677069622E-01 -1.45195160051E-01 -1.42754962286E-01 -1.40355775306E-01
+ -1.37996909867E-01 -1.35677688313E-01 -1.33397444373E-01 -1.31155522978E-01
+ -1.28951280065E-01 -1.26784082397E-01 -1.24653307377E-01 -1.22558342876E-01
+ -1.20498587048E-01 -1.18473448164E-01 -1.16482344441E-01
+</PP_LOCAL>
+
+
+<PP_NONLOCAL>
+ <PP_BETA>
+ 1 0 Beta L
+ 619
+ 0.00000000000E+00 2.02489573712E-06 4.07523121908E-06 6.18365068629E-06
+ 8.30419331312E-06 1.04705814663E-05 1.26693287705E-05 1.49307871207E-05
+ 1.71848971220E-05 1.95143572809E-05 2.18797724334E-05 2.42599609916E-05
+ 2.67119337141E-05 2.91977119766E-05 3.16980045302E-05 3.42901455606E-05
+ 3.68952142069E-05 3.95242775343E-05 4.22721147044E-05 4.49722737143E-05
+ 4.77972024837E-05 5.06220170889E-05 5.35101581485E-05 5.64761137605E-05
+ 5.94238172888E-05 6.25074704176E-05 6.55577682280E-05 6.87372650293E-05
+ 7.19211237897E-05 7.51853426389E-05 7.84794934847E-05 8.18633757265E-05
+ 8.52706115693E-05 8.87558462096E-05 9.23118822484E-05 9.59021770252E-05
+ 9.95662068860E-05 1.03285698351E-04 1.07114902581E-04 1.10917383244E-04
+ 1.14871130965E-04 1.18843668248E-04 1.22912038267E-04 1.27035180536E-04
+ 1.31220849550E-04 1.35506784051E-04 1.39821197995E-04 1.44267018130E-04
+ 1.48741537428E-04 1.53302326612E-04 1.57948961010E-04 1.62705526786E-04
+ 1.67464573485E-04 1.72382603970E-04 1.77338022864E-04 1.82401233371E-04
+ 1.87552749585E-04 1.92767311353E-04 1.98091426430E-04 2.03510602680E-04
+ 2.09003717854E-04 2.14609795823E-04 2.20287284115E-04 2.26107308110E-04
+ 2.31975126242E-04 2.37952835333E-04 2.44072086930E-04 2.50262105674E-04
+ 2.56553568292E-04 2.62979890186E-04 2.69480799407E-04 2.76128605453E-04
+ 2.82857139174E-04 2.89744915767E-04 2.96689282670E-04 3.03797951368E-04
+ 3.11039359585E-04 3.18328617676E-04 3.25847875150E-04 3.33421275214E-04
+ 3.41130901225E-04 3.49009816356E-04 3.56982967173E-04 3.65126499839E-04
+ 3.73385375275E-04 3.81785175335E-04 3.90337244884E-04 3.99047926354E-04
+ 4.07892695918E-04 4.16860107866E-04 4.26051668911E-04 4.35328922048E-04
+ 4.44807076202E-04 4.54441771858E-04 4.64221684076E-04 4.74192711415E-04
+ 4.84303535859E-04 4.94639252960E-04 5.05086673530E-04 5.15758163126E-04
+ 5.26603660200E-04 5.37628138939E-04 5.48835980388E-04 5.60246647810E-04
+ 5.71851756299E-04 5.83648821785E-04 5.95650354435E-04 6.07856378656E-04
+ 6.20267473423E-04 6.32898288978E-04 6.45743143404E-04 6.58800691594E-04
+ 6.72094961719E-04 6.85601124574E-04 6.99349686398E-04 7.13325490687E-04
+ 7.27546667823E-04 7.42002153185E-04 7.56717698871E-04 7.71668876880E-04
+ 7.86895566917E-04 8.02366821804E-04 8.18096567724E-04 8.34116502198E-04
+ 8.50392642147E-04 8.66960719659E-04 8.83803541851E-04 9.00930555351E-04
+ 9.18360298916E-04 9.36079272379E-04 9.54105919723E-04 9.72443226115E-04
+ 9.91087182816E-04 1.01005376408E-03 1.02934123804E-03 1.04896646233E-03
+ 1.06891611606E-03 1.08921770879E-03 1.10985371630E-03 1.13086096856E-03
+ 1.15220215304E-03 1.17393760950E-03 1.19601789855E-03 1.21848558504E-03
+ 1.24134902127E-03 1.26458362421E-03 1.28823117759E-03 1.31226989638E-03
+ 1.33672909455E-03 1.36160337937E-03 1.38690275604E-03 1.41263300913E-03
+ 1.43880597782E-03 1.46542841043E-03 1.49249174196E-03 1.52004119499E-03
+ 1.54804173558E-03 1.57653302145E-03 1.60549445019E-03 1.63497909738E-03
+ 1.66494013883E-03 1.69542883088E-03 1.72643320295E-03 1.75796808653E-03
+ 1.79004349723E-03 1.82266780275E-03 1.85584787993E-03 1.88959305869E-03
+ 1.92392032403E-03 1.95883274618E-03 1.99433697453E-03 2.03045546846E-03
+ 2.06718488692E-03 2.10454864614E-03 2.14254660982E-03 2.18119083302E-03
+ 2.22050494106E-03 2.26048270278E-03 2.30115084064E-03 2.34250663643E-03
+ 2.38457570278E-03 2.42736219120E-03 2.47087415491E-03 2.51513908044E-03
+ 2.56015673907E-03 2.60594003507E-03 2.65251328103E-03 2.69987817058E-03
+ 2.74805133893E-03 2.79705220218E-03 2.84688867466E-03 2.89757505463E-03
+ 2.94913170582E-03 3.00156460773E-03 3.05490050450E-03 3.10914034084E-03
+ 3.16431509542E-03 3.22042607150E-03 3.27750453384E-03 3.33554642616E-03
+ 3.39459363421E-03 3.45463788038E-03 3.51572142415E-03 3.57783796257E-03
+ 3.64102260848E-03 3.70528349458E-03 3.77064737395E-03 3.83712359631E-03
+ 3.90474079290E-03 3.97350889858E-03 4.04345613977E-03 4.11459936661E-03
+ 4.18695425294E-03 4.26055170320E-03 4.33540338136E-03 4.41153591437E-03
+ 4.48896916385E-03 4.56772662304E-03 4.64783006070E-03 4.72930277050E-03
+ 4.81216969911E-03 4.89644910464E-03 4.98217168863E-03 5.06936165088E-03
+ 5.15803900880E-03 5.24823266313E-03 5.33996836733E-03 5.43327325653E-03
+ 5.52817054916E-03 5.62469219364E-03 5.72286324333E-03 5.82271289103E-03
+ 5.92426640292E-03 6.02756123718E-03 6.13261437179E-03 6.23947096186E-03
+ 6.34814871236E-03 6.45868723585E-03 6.57111309967E-03 6.68546176810E-03
+ 6.80176595918E-03 6.92005563250E-03 7.04036940356E-03 7.16274111061E-03
+ 7.28719970783E-03 7.41379017321E-03 7.54254426115E-03 7.67349519101E-03
+ 7.80669065626E-03 7.94215723852E-03 8.07994308617E-03 8.22008239435E-03
+ 8.36261851027E-03 8.50758973154E-03 8.65503950366E-03 8.80501005408E-03
+ 8.95754379950E-03 9.11268541700E-03 9.27047829441E-03 9.43096850643E-03
+ 9.59420205836E-03 9.76022676149E-03 9.92908901409E-03 1.01008357211E-02
+ 1.02755206855E-02 1.04531925111E-02 1.06338969985E-02 1.08176949823E-02
+ 1.10046322636E-02 1.11947649987E-02 1.13881492700E-02 1.15848369250E-02
+ 1.17848898500E-02 1.19883588651E-02 1.21953078878E-02 1.24057947770E-02
+ 1.26198785010E-02 1.28376213482E-02 1.30590885298E-02 1.32843385908E-02
+ 1.35134402591E-02 1.37464582071E-02 1.39834591597E-02 1.42245108129E-02
+ 1.44696838125E-02 1.47190467403E-02 1.49726726542E-02 1.52306338358E-02
+ 1.54930042079E-02 1.57598605218E-02 1.60312767620E-02 1.63073339394E-02
+ 1.65881081707E-02 1.68736838956E-02 1.71641395188E-02 1.74595605526E-02
+ 1.77600319188E-02 1.80656386512E-02 1.83764692781E-02 1.86926138345E-02
+ 1.90141612092E-02 1.93412065702E-02 1.96738407874E-02 2.00121615103E-02
+ 2.03562653439E-02 2.07062514484E-02 2.10622187910E-02 2.14242721461E-02
+ 2.17925142552E-02 2.21670497545E-02 2.25479879751E-02 2.29354389297E-02
+ 2.33295098558E-02 2.37303203486E-02 2.41379791249E-02 2.45526079311E-02
+ 2.49743234404E-02 2.54032479090E-02 2.58395037434E-02 2.62832171504E-02
+ 2.67345142793E-02 2.71935269499E-02 2.76603844657E-02 2.81352226469E-02
+ 2.86181772785E-02 2.91093877724E-02 2.96089936892E-02 3.01171408907E-02
+ 3.06339726941E-02 3.11596393520E-02 3.16942918995E-02 3.22380827141E-02
+ 3.27911688274E-02 3.33537094662E-02 3.39258653052E-02 3.45078012882E-02
+ 3.50996844718E-02 3.57016848297E-02 3.63139752738E-02 3.69367317723E-02
+ 3.75701331377E-02 3.82143612614E-02 3.88696012963E-02 3.95360416030E-02
+ 4.02138734901E-02 4.09032910269E-02 4.16044935075E-02 4.23176814653E-02
+ 4.30430599769E-02 4.37808369906E-02 4.45312255646E-02 4.52944398597E-02
+ 4.60707001115E-02 4.68602285613E-02 4.76632528322E-02 4.84800025762E-02
+ 4.93107129840E-02 5.01556229011E-02 5.10149743788E-02 5.18890142163E-02
+ 5.27779943059E-02 5.36821690640E-02 5.46017987292E-02 5.55371469603E-02
+ 5.64884828985E-02 5.74560793935E-02 5.84402146215E-02 5.94411707445E-02
+ 6.04592358665E-02 6.14947017860E-02 6.25478663659E-02 6.36190313168E-02
+ 6.47085054704E-02 6.58166002577E-02 6.69436348969E-02 6.80899324553E-02
+ 6.92558225068E-02 7.04416395380E-02 7.16477241370E-02 7.28744225697E-02
+ 7.41220871362E-02 7.53910758395E-02 7.66817533415E-02 7.79944897887E-02
+ 7.93296624442E-02 8.06876540257E-02 8.20688554193E-02 8.34736620132E-02
+ 8.49024771972E-02 8.63557119146E-02 8.78337824632E-02 8.93371130884E-02
+ 9.08661357284E-02 9.24212886904E-02 9.40030185404E-02 9.56117789291E-02
+ 9.72480314931E-02 9.89122457703E-02 1.00604899134E-01 1.02326477069E-01
+ 1.04077473503E-01 1.05858390680E-01 1.07669738965E-01 1.09512038362E-01
+ 1.11385816637E-01 1.13291611162E-01 1.15229968460E-01 1.17201443678E-01
+ 1.19206602264E-01 1.21246018554E-01 1.23320277028E-01 1.25429971679E-01
+ 1.27575706915E-01 1.29758097372E-01 1.31977767540E-01 1.34235353050E-01
+ 1.36531500175E-01 1.38866865542E-01 1.41242117537E-01 1.43657935467E-01
+ 1.46115009866E-01 1.48614043283E-01 1.51155749678E-01 1.53740855304E-01
+ 1.56370098036E-01 1.59044228884E-01 1.61764010427E-01 1.64530218791E-01
+ 1.67343642439E-01 1.70205083164E-01 1.73115356023E-01 1.76075289381E-01
+ 1.79085725456E-01 1.82147520342E-01 1.85261543703E-01 1.88428680218E-01
+ 1.91649828336E-01 1.94925901254E-01 1.98257827379E-01 2.01646549360E-01
+ 2.05093025702E-01 2.08598229969E-01 2.12163151020E-01 2.15788793851E-01
+ 2.19476178926E-01 2.23226342998E-01 2.27040338838E-01 2.30919235522E-01
+ 2.34864118658E-01 2.38876090332E-01 2.42956269564E-01 2.47105791770E-01
+ 2.51325809644E-01 2.55617492689E-01 2.59982027352E-01 2.64420617462E-01
+ 2.68934483478E-01 2.73524863403E-01 2.78193012038E-01 2.82940201386E-01
+ 2.87767720149E-01 2.92676874199E-01 2.97668985723E-01 3.02745393659E-01
+ 3.07907453082E-01 3.13156535168E-01 3.18494026537E-01 3.23921329348E-01
+ 3.29439860316E-01 3.35051050808E-01 3.40756345589E-01 3.46557202666E-01
+ 3.52455092515E-01 3.58451496861E-01 3.64547908164E-01 3.70745828368E-01
+ 3.77046767877E-01 3.83452243974E-01 3.89963779757E-01 3.96582902398E-01
+ 4.03311141444E-01 4.10150026693E-01 4.17101086548E-01 4.24165845260E-01
+ 4.31345820736E-01 4.38642521437E-01 4.46057444025E-01 4.53592068866E-01
+ 4.61247858157E-01 4.69026250090E-01 4.76928656453E-01 4.84956456435E-01
+ 4.93110992839E-01 5.01393565749E-01 5.09805427243E-01 5.18347774679E-01
+ 5.27021743746E-01 5.35828401495E-01 5.44768737288E-01 5.53843655298E-01
+ 5.63053963945E-01 5.72400366726E-01 5.81883450491E-01 5.91503674326E-01
+ 6.01261356472E-01 6.11156661097E-01 6.21189583288E-01 6.31359934016E-01
+ 6.41667322717E-01 6.52111139852E-01 6.62690537475E-01 6.73404408817E-01
+ 6.84251366266E-01 6.95229718012E-01 7.06337443429E-01 7.17572166009E-01
+ 7.28931125770E-01 7.40411148856E-01 7.52008616088E-01 7.63719429114E-01
+ 7.75538975021E-01 7.87462088367E-01 7.99483012120E-01 8.11595355084E-01
+ 8.23792048775E-01 8.36065300537E-01 8.48406545953E-01 8.60806397611E-01
+ 8.73254593042E-01 8.85739939322E-01 8.98250256563E-01 9.10772318495E-01
+ 9.23291791905E-01 9.35793173886E-01 9.48259727303E-01 9.60673415664E-01
+ 9.73014835748E-01 9.85263150580E-01 9.97396020945E-01 1.00938953771E+00
+ 1.02121815397E+00 1.03285461867E+00 1.04426991161E+00 1.05543318108E+00
+ 1.06631168430E+00 1.07687073256E+00 1.08707364075E+00 1.09688168375E+00
+ 1.10625405976E+00 1.11514786281E+00 1.12351806512E+00 1.13131751176E+00
+ 1.13849692841E+00 1.14500494487E+00 1.15078813594E+00 1.15579108165E+00
+ 1.15995644968E+00 1.16322510154E+00 1.16553622611E+00 1.16682750187E+00
+ 1.16703529219E+00 1.16609487490E+00 1.16394071071E+00 1.16050675227E+00
+ 1.15572679809E+00 1.14953489367E+00 1.14186578406E+00 1.13265542016E+00
+ 1.12184152324E+00 1.10936420992E+00 1.09516668204E+00 1.07919598381E+00
+ 1.06140383033E+00 1.04174751023E+00 1.02019086575E+00 9.96705353713E-01
+ 9.71271189927E-01 9.43878580712E-01 9.14529043802E-01 8.83236822447E-01
+ 8.50030394740E-01 8.14954082211E-01 7.78069759895E-01 7.39458672325E-01
+ 6.99223358588E-01 6.57489692184E-01 6.14409041263E-01 5.70160558665E-01
+ 5.24953613352E-01 4.79030381919E-01 4.32668626253E-01 3.86184697878E-01
+ 3.39936828556E-01 2.94328796994E-01 2.49814105697E-01 2.06900865997E-01
+ 1.66157684326E-01 1.28220977806E-01 9.38043436015E-02 6.37108845255E-02
+ 3.88497908465E-02 2.02590356605E-02 9.13685079817E-03 8.07256579271E-03
+ 4.50738741049E-03 1.69460034717E-03 1.86071705096E-04 -8.36500508956E-05
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_BETA>
+ <PP_BETA>
+ 2 0 Beta L
+ 619
+ 0.00000000000E+00 5.55830142073E-06 1.12185420143E-05 1.69581654864E-05
+ 2.28136975680E-05 2.87677241052E-05 3.48141671485E-05 4.09517300163E-05
+ 4.72377848402E-05 5.35966540084E-05 6.00557437004E-05 6.66647748625E-05
+ 7.33464412490E-05 8.01504591216E-05 8.71284161530E-05 9.41140108309E-05
+ 1.01305302037E-04 1.08636874698E-04 1.15967037092E-04 1.23592246632E-04
+ 1.31208907209E-04 1.39041198723E-04 1.46979178292E-04 1.54994188817E-04
+ 1.63293103309E-04 1.71551857847E-04 1.80134368938E-04 1.88700240831E-04
+ 1.97513249418E-04 2.06432543384E-04 2.15548144814E-04 2.24756774988E-04
+ 2.34191311301E-04 2.43751214693E-04 2.53440110329E-04 2.63361908180E-04
+ 2.73422794908E-04 2.83663414051E-04 2.94000720326E-04 3.04685418598E-04
+ 3.15393010885E-04 3.26366680541E-04 3.37481648483E-04 3.48825554402E-04
+ 3.60346588567E-04 3.72048733812E-04 3.84015445918E-04 3.96066179398E-04
+ 4.08439676811E-04 4.20985410390E-04 4.33744313057E-04 4.46646370513E-04
+ 4.59940634691E-04 4.73293098380E-04 4.86976395121E-04 5.00853806411E-04
+ 5.14940518632E-04 5.29352985494E-04 5.43930695272E-04 5.58785397408E-04
+ 5.73910671747E-04 5.89266611399E-04 6.04923933795E-04 6.20769196716E-04
+ 6.36972752468E-04 6.53459713010E-04 6.70125017662E-04 6.87151835968E-04
+ 7.04480353251E-04 7.22048262741E-04 7.39991739795E-04 7.58159414798E-04
+ 7.76719590135E-04 7.95490113418E-04 8.14716927786E-04 8.34177300682E-04
+ 8.53951288984E-04 8.74207638747E-04 8.94602097162E-04 9.15498530868E-04
+ 9.36732453034E-04 9.58263032150E-04 9.80234666316E-04 1.00250871218E-03
+ 1.02522899176E-03 1.04831801504E-03 1.07180158849E-03 1.09565056843E-03
+ 1.11994095963E-03 1.14470335271E-03 1.16974188450E-03 1.19536416629E-03
+ 1.22132837193E-03 1.24775119683E-03 1.27465869036E-03 1.30199534072E-03
+ 1.32983890714E-03 1.35806837972E-03 1.38690483081E-03 1.41614927307E-03
+ 1.44589988048E-03 1.47618176000E-03 1.50698644797E-03 1.53829903887E-03
+ 1.57013859204E-03 1.60254841159E-03 1.63549875312E-03 1.66901141559E-03
+ 1.70311381327E-03 1.73777185351E-03 1.77303840075E-03 1.80891144463E-03
+ 1.84537335932E-03 1.88249229616E-03 1.92021930892E-03 1.95861201557E-03
+ 1.99764023220E-03 2.03735793517E-03 2.07772705097E-03 2.11882176889E-03
+ 2.16057262566E-03 2.20307355099E-03 2.24631137235E-03 2.29024756254E-03
+ 2.33496376702E-03 2.38042452657E-03 2.42667331132E-03 2.47372597118E-03
+ 2.52155719515E-03 2.57022831326E-03 2.61971714790E-03 2.67004990757E-03
+ 2.72125947086E-03 2.77332712613E-03 2.82630018957E-03 2.88016009949E-03
+ 2.93496314553E-03 2.99067629736E-03 3.04737601773E-03 3.10500257412E-03
+ 3.16365961070E-03 3.22327077700E-03 3.28394952910E-03 3.34564128801E-03
+ 3.40837000440E-03 3.47220893980E-03 3.53710618780E-03 3.60314004787E-03
+ 3.67028262509E-03 3.73857961999E-03 3.80804444631E-03 3.87869649865E-03
+ 3.95055980007E-03 4.02363371225E-03 4.09799600733E-03 4.17357763797E-03
+ 4.25049172287E-03 4.32869674308E-03 4.40827200451E-03 4.48915098706E-03
+ 4.57146671321E-03 4.65516047712E-03 4.74029678452E-03 4.82688137251E-03
+ 4.91495009412E-03 5.00451882124E-03 5.09562288392E-03 5.18828914731E-03
+ 5.28252854396E-03 5.37838342017E-03 5.47588392223E-03 5.57503713965E-03
+ 5.67590211548E-03 5.77847040360E-03 5.88280839726E-03 5.98893128476E-03
+ 6.09685290120E-03 6.20663395718E-03 6.31827765014E-03 6.43184673429E-03
+ 6.54734085328E-03 6.66481507175E-03 6.78431057344E-03 6.90582395216E-03
+ 7.02942977960E-03 7.15515123162E-03 7.28300854479E-03 7.41306016863E-03
+ 7.54533747884E-03 7.67986769042E-03 7.81669953316E-03 7.95587867568E-03
+ 8.09742237916E-03 8.24140126742E-03 8.38782468293E-03 8.53676810982E-03
+ 8.68824009913E-03 8.84231674368E-03 8.99900932089E-03 9.15840478841E-03
+ 9.32049771496E-03 9.48538845532E-03 9.65306761865E-03 9.82363838156E-03
+ 9.99711102659E-03 1.01735557292E-02 1.03530085008E-02 1.05355371827E-02
+ 1.07211766564E-02 1.09100001335E-02 1.11020415661E-02 1.12973673161E-02
+ 1.14960382962E-02 1.16980940186E-02 1.19036120805E-02 1.21126380951E-02
+ 1.23252401185E-02 1.25414729190E-02 1.27614036764E-02 1.29850922667E-02
+ 1.32126006509E-02 1.34440076463E-02 1.36793615456E-02 1.39187367010E-02
+ 1.41622064720E-02 1.44098390156E-02 1.46617015315E-02 1.49178674276E-02
+ 1.51784156431E-02 1.54434128721E-02 1.57129400100E-02 1.59870735839E-02
+ 1.62658958101E-02 1.65494743860E-02 1.68379132845E-02 1.71312671499E-02
+ 1.74296445302E-02 1.77331145081E-02 1.80417764666E-02 1.83557104264E-02
+ 1.86750077832E-02 1.89997668872E-02 1.93300718408E-02 1.96660184568E-02
+ 2.00077165364E-02 2.03552439647E-02 2.07087128771E-02 2.10682270005E-02
+ 2.14338740516E-02 2.18057814685E-02 2.21840357063E-02 2.25687576743E-02
+ 2.29600499647E-02 2.33580323581E-02 2.37628137818E-02 2.41745105831E-02
+ 2.45932435956E-02 2.50191292436E-02 2.54522936341E-02 2.58928589591E-02
+ 2.63409514185E-02 2.67966980092E-02 2.72602324440E-02 2.77316895637E-02
+ 2.82111967534E-02 2.86988950449E-02 2.91949322264E-02 2.96994357622E-02
+ 3.02125621668E-02 3.07344549679E-02 3.12652591520E-02 3.18051358253E-02
+ 3.23542279195E-02 3.29127065236E-02 3.34807203185E-02 3.40584356877E-02
+ 3.46460205296E-02 3.52436419041E-02 3.58514653122E-02 3.64696755629E-02
+ 3.70984406740E-02 3.77379434744E-02 3.83883674157E-02 3.90498995435E-02
+ 3.97227252900E-02 4.04070431278E-02 4.11030426793E-02 4.18109270710E-02
+ 4.25308976367E-02 4.32631579891E-02 4.40079224698E-02 4.47653977961E-02
+ 4.55358076584E-02 4.63193630889E-02 4.71162965196E-02 4.79268308619E-02
+ 4.87511975603E-02 4.95896342157E-02 5.04423791677E-02 5.13096737442E-02
+ 5.21917695695E-02 5.30889127419E-02 5.40013647377E-02 5.49293818230E-02
+ 5.58732296402E-02 5.68331769686E-02 5.78094986115E-02 5.88024698330E-02
+ 5.98123744222E-02 6.08395023019E-02 6.18841424518E-02 6.29465904036E-02
+ 6.40271568125E-02 6.51261352488E-02 6.62438515838E-02 6.73806131021E-02
+ 6.85367479743E-02 6.97125815001E-02 7.09084491982E-02 7.21246879341E-02
+ 7.33616451056E-02 7.46196665362E-02 7.58991136924E-02 7.72003446268E-02
+ 7.85237294579E-02 7.98696393068E-02 8.12384589485E-02 8.26305690984E-02
+ 8.40463682729E-02 8.54862517849E-02 8.69506253372E-02 8.84399034564E-02
+ 8.99545038921E-02 9.14948512586E-02 9.30613806206E-02 9.46545299856E-02
+ 9.62747469810E-02 9.79224853290E-02 9.95982067257E-02 1.01302379517E-01
+ 1.03035480361E-01 1.04797993136E-01 1.06590409516E-01 1.08413228214E-01
+ 1.10266957683E-01 1.12152113303E-01 1.14069217595E-01 1.16018803089E-01
+ 1.18001409901E-01 1.20017587366E-01 1.22067890257E-01 1.24152887234E-01
+ 1.26273150882E-01 1.28429265782E-01 1.30621822821E-01 1.32851425511E-01
+ 1.35118683023E-01 1.37424214871E-01 1.39768651339E-01 1.42152631412E-01
+ 1.44576801330E-01 1.47041820849E-01 1.49548356457E-01 1.52097086347E-01
+ 1.54688697127E-01 1.57323886185E-01 1.60003360916E-01 1.62727839388E-01
+ 1.65498048098E-01 1.68314726048E-01 1.71178620564E-01 1.74090491910E-01
+ 1.77051106516E-01 1.80061247122E-01 1.83121701783E-01 1.86233272321E-01
+ 1.89396769289E-01 1.92613015427E-01 1.95882842891E-01 1.99207095222E-01
+ 2.02586626258E-01 2.06022300731E-01 2.09514993357E-01 2.13065590873E-01
+ 2.16674988193E-01 2.20344093967E-01 2.24073822691E-01 2.27865104412E-01
+ 2.31718876254E-01 2.35636084653E-01 2.39617688729E-01 2.43664656231E-01
+ 2.47777963275E-01 2.51958597649E-01 2.56207554643E-01 2.60525839674E-01
+ 2.64914466464E-01 2.69374456932E-01 2.73906841744E-01 2.78512659156E-01
+ 2.83192954672E-01 2.87948780994E-01 2.92781198312E-01 2.97691271029E-01
+ 3.02680071151E-01 3.07748675030E-01 3.12898162920E-01 3.18129620617E-01
+ 3.23444135242E-01 3.28842797878E-01 3.34326700411E-01 3.39896936464E-01
+ 3.45554599049E-01 3.51300779899E-01 3.57136570273E-01 3.63063056923E-01
+ 3.69081322736E-01 3.75192446291E-01 3.81397498012E-01 3.87697541066E-01
+ 3.94093629288E-01 4.00586804810E-01 4.07178097609E-01 4.13868522707E-01
+ 4.20659079627E-01 4.27550748256E-01 4.34544489975E-01 4.41641241742E-01
+ 4.48841917082E-01 4.56147401505E-01 4.63558550729E-01 4.71076188124E-01
+ 4.78701101202E-01 4.86434038792E-01 4.94275708967E-01 5.02226772975E-01
+ 5.10287844710E-01 5.18459485301E-01 5.26742198545E-01 5.35136429196E-01
+ 5.43642555513E-01 5.52260886858E-01 5.60991658474E-01 5.69835025306E-01
+ 5.78791057965E-01 5.87859736300E-01 5.97040943852E-01 6.06334461714E-01
+ 6.15739961705E-01 6.25256999998E-01 6.34885009349E-01 6.44623292830E-01
+ 6.54471014482E-01 6.64427192339E-01 6.74490689450E-01 6.84660204473E-01
+ 6.94934263644E-01 7.05311209266E-01 7.15789190993E-01 7.26366154216E-01
+ 7.37039829864E-01 7.47807721607E-01 7.58667095386E-01 7.69614965325E-01
+ 7.80648081816E-01 7.91762917158E-01 8.02955652283E-01 8.14222161079E-01
+ 8.25557996370E-01 8.36958372803E-01 8.48418152030E-01 8.59931824665E-01
+ 8.71493493051E-01 8.83096853608E-01 8.94735178061E-01 9.06401293530E-01
+ 9.18087563870E-01 9.29785868363E-01 9.41487581560E-01 9.53183550744E-01
+ 9.64864075202E-01 9.76518882771E-01 9.88137107336E-01 9.99707264948E-01
+ 1.01121723056E+00 1.02265421334E+00 1.03400473188E+00 1.04525459078E+00
+ 1.05638885325E+00 1.06739181881E+00 1.07824699551E+00 1.08893707692E+00
+ 1.09944391583E+00 1.10974850042E+00 1.11983092950E+00 1.12967038939E+00
+ 1.13924513062E+00 1.14853244570E+00 1.15750864928E+00 1.16614905692E+00
+ 1.17442796861E+00 1.18231865123E+00 1.18979332535E+00 1.19682315275E+00
+ 1.20337822757E+00 1.20942757018E+00 1.21493912471E+00 1.21987975968E+00
+ 1.22421527411E+00 1.22791040728E+00 1.23092885393E+00 1.23323328576E+00
+ 1.23478537852E+00 1.23554584661E+00 1.23547448424E+00 1.23453021630E+00
+ 1.23267115636E+00 1.22985467559E+00 1.22603748136E+00 1.22117570706E+00
+ 1.21522501393E+00 1.20814070597E+00 1.19987785727E+00 1.19039145593E+00
+ 1.17963656088E+00 1.16756847736E+00 1.15414294732E+00 1.13931636002E+00
+ 1.12304597954E+00 1.10529019358E+00 1.08600878157E+00 1.06516320506E+00
+ 1.04271691905E+00 1.01863570623E+00 9.92888034527E-01 9.65445436529E-01
+ 9.36282914116E-01 9.05379364614E-01 8.72718031582E-01 8.38286977048E-01
+ 8.02079576512E-01 7.64095034162E-01 7.24338917811E-01 6.82823711240E-01
+ 6.39569382183E-01 5.94603962365E-01 5.47964137689E-01 4.99695843275E-01
+ 4.49854860264E-01 3.98507408144E-01 3.45730727846E-01 2.91613647936E-01
+ 2.36257127792E-01 1.79774768342E-01 1.22293281992E-01 6.39529118001E-02
+ 4.90778824468E-03 -5.46737871698E-02 -1.14609145782E-01 -1.74701154855E-01
+ -2.34738237199E-01 -2.94494519770E-01 -3.53730130698E-01 -4.12191658932E-01
+ -4.69612796511E-01 -5.25715179377E-01 -5.80209446864E-01 -6.32796536210E-01
+ -6.83169231821E-01 -7.31013984727E-01 -7.76013020213E-01 -8.17846746523E-01
+ -8.56196478876E-01 -8.90747487671E-01 -9.21192377615E-01 -9.47234801088E-01
+ -9.68593501665E-01 -9.85006681177E-01 -9.96236673064E-01 -1.00207490089E+00
+ -1.00234708782E+00 -9.96918677825E-01 -9.85700414443E-01 -9.68654017347E-01
+ -9.45797882885E-01 -9.17212730892E-01 -8.83047111762E-01 -8.43522692749E-01
+ -7.98939249824E-01 -7.49679320042E-01 -6.96212513140E-01 -6.39099562585E-01
+ -5.78996317769E-01 -5.16658068618E-01 -4.52944872584E-01 -3.88828956711E-01
+ -3.25405847895E-01 -2.63911698735E-01 -2.05750422717E-01 -1.52535839232E-01
+ -1.06156226790E-01 -6.88716897686E-02 -4.34589419126E-02 -3.58317467779E-02
+ -2.15248626477E-02 -8.58077584647E-03 -8.25381288730E-04 2.15276589236E-04
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_BETA>
+ <PP_BETA>
+ 3 1 Beta L
+ 619
+ 0.00000000000E+00 3.69203086040E-12 -1.82053316087E-09 -1.62082384556E-09
+ -1.61155411748E-09 -1.57397354092E-09 -1.52943437340E-09 -1.47481199966E-09
+ -1.41065766871E-09 -1.33566176404E-09 -1.24983682622E-09 -1.15271105155E-09
+ -1.04329296781E-09 -9.21118335726E-10 -7.86247739212E-10 -6.37106858646E-10
+ -4.73834730312E-10 -2.95420686926E-10 -1.01033777719E-10 1.09439275889E-10
+ 3.37771881867E-10 5.83115902480E-10 8.48235021943E-10 1.13213773431E-09
+ 1.43682375817E-09 1.76325874477E-09 2.11120923740E-09 2.48295916468E-09
+ 2.87824801446E-09 3.29943508996E-09 3.74635341972E-09 4.22152922424E-09
+ 4.72383248410E-09 5.25813701213E-09 5.82023234220E-09 6.41795907965E-09
+ 7.04674261837E-09 7.71209173652E-09 8.41330094505E-09 9.15106108442E-09
+ 9.93213292037E-09 1.07486186707E-08 1.16127838260E-08 1.25202919314E-08
+ 1.34707301202E-08 1.44731036908E-08 1.55242408755E-08 1.66262739817E-08
+ 1.77833551763E-08 1.89967989446E-08 2.02675229349E-08 2.16004467228E-08
+ 2.29938439309E-08 2.44558502738E-08 2.59839604331E-08 2.75834904351E-08
+ 2.92556135473E-08 3.10073684510E-08 3.28315729985E-08 3.47444692177E-08
+ 3.67403556793E-08 3.88260588424E-08 4.10018910870E-08 4.32742452975E-08
+ 4.56469247313E-08 4.81218426689E-08 5.07046999790E-08 5.33968484649E-08
+ 5.62058987347E-08 5.91339907684E-08 6.21871037908E-08 6.53671161826E-08
+ 6.86831487168E-08 7.21357625106E-08 7.57333176630E-08 7.94817236332E-08
+ 8.33824765773E-08 8.74441969940E-08 9.16740719371E-08 9.60769046505E-08
+ 1.00655514182E-07 1.05426279531E-07 1.10382352049E-07 1.15546101938E-07
+ 1.20909777740E-07 1.26493506162E-07 1.32300421713E-07 1.38333480072E-07
+ 1.44611770610E-07 1.51134199098E-07 1.57918144581E-07 1.64965460014E-07
+ 1.72291391108E-07 1.79904812652E-07 1.87811342587E-07 1.96033443328E-07
+ 2.04567524492E-07 2.13437423298E-07 2.22650109525E-07 2.32214456826E-07
+ 2.42151300682E-07 2.52467359977E-07 2.63184247792E-07 2.74300776730E-07
+ 2.85855030883E-07 2.97839727062E-07 3.10282845841E-07 3.23202152423E-07
+ 3.36603789535E-07 3.50524237276E-07 3.64954231494E-07 3.79945132294E-07
+ 3.95486241680E-07 4.11620920437E-07 4.28356314712E-07 4.45719310666E-07
+ 4.63730621925E-07 4.82416243171E-07 5.01795676328E-07 5.21905105822E-07
+ 5.42748244513E-07 5.64376754308E-07 5.86799629887E-07 6.10059767502E-07
+ 6.34171895867E-07 6.59181963948E-07 6.85108496773E-07 7.11988000063E-07
+ 7.39868329551E-07 7.68760904382E-07 7.98717035772E-07 8.29776565179E-07
+ 8.61968887831E-07 8.95333993521E-07 9.29927683932E-07 9.65776542571E-07
+ 1.00293898990E-06 1.04144798442E-06 1.08136340798E-06 1.12273040994E-06
+ 1.16559324790E-06 1.21001770399E-06 1.25605243019E-06 1.30374899751E-06
+ 1.35317713337E-06 1.40438570000E-06 1.45745662031E-06 1.51242833908E-06
+ 1.56939068534E-06 1.62840330303E-06 1.68954238981E-06 1.75287897467E-06
+ 1.81849534322E-06 1.88646592188E-06 1.95687555305E-06 2.02981661995E-06
+ 2.10536679976E-06 2.18362532642E-06 2.26468456108E-06 2.34864635627E-06
+ 2.43560771874E-06 2.52567301308E-06 2.61896040268E-06 2.71557039275E-06
+ 2.81563105884E-06 2.91925314445E-06 3.02656963483E-06 3.13770293556E-06
+ 3.25279621681E-06 3.37197596094E-06 3.49539328446E-06 3.62319740762E-06
+ 3.75553455132E-06 3.89256814586E-06 4.03446583656E-06 4.18138795905E-06
+ 4.33352439692E-06 4.49103750034E-06 4.65413774652E-06 4.82299699452E-06
+ 4.99783750246E-06 5.17885629920E-06 5.36627271856E-06 5.56029884827E-06
+ 5.76118826519E-06 5.96916218177E-06 6.18447215703E-06 6.40737404192E-06
+ 6.63813157306E-06 6.87702670791E-06 7.12432488465E-06 7.38034582907E-06
+ 7.64536022370E-06 7.91970689177E-06 8.20371217805E-06 8.49768316371E-06
+ 8.80200384164E-06 9.11700625639E-06 9.44307950941E-06 9.78060111417E-06
+ 1.01299629520E-05 1.04915964985E-05 1.08659064406E-05 1.12533436936E-05
+ 1.16543766469E-05 1.20694479912E-05 1.24990819631E-05 1.29437426226E-05
+ 1.34040020798E-05 1.38803549955E-05 1.43733917751E-05 1.48836774004E-05
+ 1.54118188523E-05 1.59584239706E-05 1.65241516566E-05 1.71096514300E-05
+ 1.77156141470E-05 1.83427500183E-05 1.89917970747E-05 1.96635071284E-05
+ 2.03586802451E-05 2.10781167839E-05 2.18226634912E-05 2.25931939558E-05
+ 2.33906077084E-05 2.42158338035E-05 2.50698417247E-05 2.59536299932E-05
+ 2.68682229661E-05 2.78146909847E-05 2.87941531748E-05 2.98077335039E-05
+ 3.08566215690E-05 3.19420481007E-05 3.30652617755E-05 3.42275992225E-05
+ 3.54303828224E-05 3.66750446330E-05 3.79630120947E-05 3.92957960838E-05
+ 4.06749514199E-05 4.21020733909E-05 4.35788271818E-05 4.51069461153E-05
+ 4.66881800199E-05 4.83243906393E-05 5.00174807322E-05 5.17693960031E-05
+ 5.35822008082E-05 5.54579880232E-05 5.73989417236E-05 5.94073128091E-05
+ 6.14854386985E-05 6.36357264891E-05 6.58606858210E-05 6.81628850337E-05
+ 7.05450062091E-05 7.30098096559E-05 7.55601581534E-05 7.81990064705E-05
+ 8.09294245982E-05 8.37545673972E-05 8.66777181038E-05 8.97022689792E-05
+ 9.28317115728E-05 9.60696983049E-05 9.94199522237E-05 1.02886377156E-04
+ 1.06472983839E-04 1.10183922001E-04 1.14023490497E-04 1.17996146654E-04
+ 1.22106471814E-04 1.26359235595E-04 1.30759374485E-04 1.35311953550E-04
+ 1.40022253402E-04 1.44895735099E-04 1.49938021166E-04 1.55154955596E-04
+ 1.60552573247E-04 1.66137105321E-04 1.71915016328E-04 1.77892998069E-04
+ 1.84077941246E-04 1.90477020637E-04 1.97097602608E-04 2.03947364587E-04
+ 2.11034214911E-04 2.18366341212E-04 2.25952206169E-04 2.33800598451E-04
+ 2.41920551994E-04 2.50321469608E-04 2.59013044185E-04 2.68005314066E-04
+ 2.77308666324E-04 2.86933826310E-04 2.96891935134E-04 3.07194460061E-04
+ 3.17853299962E-04 3.28880772261E-04 3.40289581238E-04 3.52092897049E-04
+ 3.64304353536E-04 3.76938020850E-04 3.90008471942E-04 4.03530806352E-04
+ 4.17520594004E-04 4.31993978803E-04 4.46967661536E-04 4.62458886716E-04
+ 4.78485538076E-04 4.95066071508E-04 5.12219618413E-04 5.29965937066E-04
+ 5.48325485881E-04 5.67319430688E-04 5.86969650518E-04 6.07298788562E-04
+ 6.28330272755E-04 6.50088330447E-04 6.72598017428E-04 6.95885282423E-04
+ 7.19976931250E-04 7.44900705333E-04 7.70685323112E-04 7.97360461145E-04
+ 8.24956836878E-04 8.53506229101E-04 8.83041487222E-04 9.13596619553E-04
+ 9.45206793668E-04 9.77908380752E-04 1.01173903006E-03 1.04673763625E-03
+ 1.08294451319E-03 1.12040127065E-03 1.15915101672E-03 1.19923833210E-03
+ 1.24070930124E-03 1.28361162199E-03 1.32799464567E-03 1.37390936722E-03
+ 1.42140861304E-03 1.47054694574E-03 1.52138088007E-03 1.57396882030E-03
+ 1.62837121047E-03 1.68465053734E-03 1.74287149866E-03 1.80310095191E-03
+ 1.86540808075E-03 1.92986445834E-03 1.99654409539E-03 2.06552356646E-03
+ 2.13688204974E-03 2.21070147843E-03 2.28706657545E-03 2.36606497580E-03
+ 2.44778733650E-03 2.53232741904E-03 2.61978220368E-03 2.71025199253E-03
+ 2.80384055119E-03 2.90065518119E-03 3.00080687793E-03 3.10441046036E-03
+ 3.21158463368E-03 3.32245223186E-03 3.43714026602E-03 3.55578011269E-03
+ 3.67850762783E-03 3.80546336673E-03 3.93679264855E-03 4.07264579818E-03
+ 4.21317826961E-03 4.35855086721E-03 4.50892985164E-03 4.66448719627E-03
+ 4.82540077577E-03 4.99185448082E-03 5.16403856444E-03 5.34214972295E-03
+ 5.52639137918E-03 5.71697392676E-03 5.91411490930E-03 6.11803930615E-03
+ 6.32897977270E-03 6.54717685986E-03 6.77287937923E-03 7.00634454338E-03
+ 7.24783838783E-03 7.49763594113E-03 7.75602162431E-03 8.02328951822E-03
+ 8.29974369259E-03 8.58569853728E-03 8.88147912072E-03 9.18742153420E-03
+ 9.50387326734E-03 9.83119358031E-03 1.01697538900E-02 1.05199381945E-02
+ 1.08821434616E-02 1.12567800827E-02 1.16442723101E-02 1.20450587103E-02
+ 1.24595925932E-02 1.28883426378E-02 1.33317931726E-02 1.37904449260E-02
+ 1.42648153667E-02 1.47554394091E-02 1.52628698171E-02 1.57876779748E-02
+ 1.63304542808E-02 1.68918089889E-02 1.74723726088E-02 1.80727967806E-02
+ 1.86937548000E-02 1.93359423732E-02 2.00000783333E-02 2.06869053742E-02
+ 2.13971907495E-02 2.21317271924E-02 2.28913335444E-02 2.36768556784E-02
+ 2.44891673696E-02 2.53291710618E-02 2.61977988357E-02 2.70960133234E-02
+ 2.80248086295E-02 2.89852112579E-02 2.99782811903E-02 3.10051128336E-02
+ 3.20668360736E-02 3.31646173374E-02 3.42996607110E-02 3.54732090146E-02
+ 3.66865450001E-02 3.79409924305E-02 3.92379173991E-02 4.05787294236E-02
+ 4.19648827575E-02 4.33978776784E-02 4.48792617440E-02 4.64106310780E-02
+ 4.79936318245E-02 4.96299614044E-02 5.13213699544E-02 5.30696617322E-02
+ 5.48766965279E-02 5.67443911476E-02 5.86747208185E-02 6.06697207642E-02
+ 6.27314875765E-02 6.48621808207E-02 6.70640245388E-02 6.93393086926E-02
+ 7.16903907928E-02 7.41196973534E-02 7.66297254554E-02 7.92230442150E-02
+ 8.19022963406E-02 8.46701995993E-02 8.75295482374E-02 9.04832145023E-02
+ 9.35341499873E-02 9.66853869635E-02 9.99400398425E-02 1.03301306195E-01
+ 1.06772468191E-01 1.10356893542E-01 1.14058036631E-01 1.17879439363E-01
+ 1.21824732118E-01 1.25897634265E-01 1.30101954982E-01 1.34441593348E-01
+ 1.38920538970E-01 1.43542871632E-01 1.48312761524E-01 1.53234468541E-01
+ 1.58312341930E-01 1.63550819156E-01 1.68954424890E-01 1.74527769275E-01
+ 1.80275546326E-01 1.86202531242E-01 1.92313578169E-01 1.98613616581E-01
+ 2.05107648010E-01 2.11800741491E-01 2.18698029018E-01 2.25804700031E-01
+ 2.33125995182E-01 2.40667199708E-01 2.48433635545E-01 2.56430653033E-01
+ 2.64663621240E-01 2.73137917869E-01 2.81858917402E-01 2.90831978856E-01
+ 3.00062431613E-01 3.09555560607E-01 3.19316589489E-01 3.29350662942E-01
+ 3.39662826763E-01 3.50258006954E-01 3.61140986308E-01 3.72316379805E-01
+ 3.83788607350E-01 3.95561864855E-01 4.07640092905E-01 4.20026942789E-01
+ 4.32725740616E-01 4.45739448015E-01 4.59070620830E-01 4.72721364166E-01
+ 4.86693285054E-01 5.00987441245E-01 5.15604287345E-01 5.30543616740E-01
+ 5.45804500663E-01 5.61385222737E-01 5.77283210405E-01 5.93494961590E-01
+ 6.10015967997E-01 6.26840633440E-01 6.43962188658E-01 6.61372600923E-01
+ 6.79062479958E-01 6.97020978950E-01 7.15235691089E-01 7.33692541995E-01
+ 7.52375677296E-01 7.71267346327E-01 7.90347781255E-01 8.09595072627E-01
+ 8.28985040704E-01 8.48491103896E-01 8.68084143470E-01 8.87732366264E-01
+ 9.07401164701E-01 9.27052975860E-01 9.46647139270E-01 9.66139755386E-01
+ 9.85483544652E-01 1.00462770937E+00 1.02351779878E+00 1.04209557975E+00
+ 1.06029891418E+00 1.07806164577E+00 1.09531349815E+00 1.11197998734E+00
+ 1.12798235189E+00 1.14323750394E+00 1.15765800620E+00 1.17115207892E+00
+ 1.18362364360E+00 1.19497240896E+00 1.20509400787E+00 1.21388019293E+00
+ 1.22121910193E+00 1.22699560332E+00 1.23109173635E+00 1.23338725912E+00
+ 1.23376032256E+00 1.23208828773E+00 1.22824870790E+00 1.22212049662E+00
+ 1.21358530634E+00 1.20252914183E+00 1.18884423356E+00 1.17243119596E+00
+ 1.15320149179E+00 1.13108022186E+00 1.10600924976E+00 1.07795066364E+00
+ 1.04689055953E+00 1.01284311344E+00 9.75854879822E-01 9.36009223264E-01
+ 8.93430744690E-01 8.48289515370E-01 8.00804869825E-01 7.51248444947E-01
+ 6.99946081144E-01 6.47278138050E-01 5.93677725995E-01 5.39626341913E-01
+ 4.85646447603E-01 4.32290690008E-01 3.80127801350E-01 3.29725829347E-01
+ 2.81634379185E-01 2.36369195846E-01 1.94404971307E-01 1.56186123285E-01
+ 1.22171036527E-01 9.29336559463E-02 6.93586151044E-02 5.43907368522E-02
+ 3.38828781618E-02 1.40533134564E-02 1.41610600862E-03 -2.55503988480E-04
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_BETA>
+ <PP_BETA>
+ 4 1 Beta L
+ 619
+ 0.00000000000E+00 7.63472647939E-12 -1.95080661991E-09 -1.70326131607E-09
+ -1.64839959682E-09 -1.54871335239E-09 -1.42636169414E-09 -1.27741495141E-09
+ -1.10173409804E-09 -8.97031187679E-10 -6.62156862064E-10 -3.96604734528E-10
+ -9.72961530250E-11 2.35872014675E-10 6.05922738207E-10 1.01212108371E-09
+ 1.45974031912E-09 1.94692795740E-09 2.47836238228E-09 3.05395702271E-09
+ 3.67715671931E-09 4.34982774794E-09 5.07257774575E-09 5.85017248751E-09
+ 6.68315362944E-09 7.57396098051E-09 8.52655302803E-09 9.54181251412E-09
+ 1.06236798503E-08 1.17741237771E-08 1.29971638074E-08 1.42935397844E-08
+ 1.56707234392E-08 1.71256857500E-08 1.86688086787E-08 2.02973498123E-08
+ 2.20206445227E-08 2.38352455875E-08 2.57544793021E-08 2.77745655214E-08
+ 2.99007080170E-08 3.21439626599E-08 3.44992849183E-08 3.69781345353E-08
+ 3.95826452597E-08 4.23206264433E-08 4.51917083561E-08 4.82061411037E-08
+ 5.13705627698E-08 5.46842296116E-08 5.81626227401E-08 6.18001992038E-08
+ 6.56181013109E-08 6.96070153006E-08 7.37883571300E-08 7.81595613160E-08
+ 8.27321137994E-08 8.75133787801E-08 9.25107191804E-08 9.77362089886E-08
+ 1.03191126315E-07 1.08890705460E-07 1.14840881194E-07 1.21056551042E-07
+ 1.27537733403E-07 1.34305813888E-07 1.41363856740E-07 1.48726713678E-07
+ 1.56403059487E-07 1.64409684558E-07 1.72752466568E-07 1.81449173670E-07
+ 1.90512513257E-07 1.99951532924E-07 2.09787264280E-07 2.20029261273E-07
+ 2.30697101723E-07 2.41800612112E-07 2.53362548830E-07 2.65393757232E-07
+ 2.77921412166E-07 2.90948837149E-07 3.04512526573E-07 3.18609717129E-07
+ 3.33293473099E-07 3.48542673631E-07 3.64418586511E-07 3.80918992656E-07
+ 3.98071401315E-07 4.15912416689E-07 4.34445448033E-07 4.53719090284E-07
+ 4.73743449729E-07 4.94551293969E-07 5.16177493332E-07 5.38639828681E-07
+ 5.61979602988E-07 5.86221296070E-07 6.11400267375E-07 6.37560435480E-07
+ 6.64713203231E-07 6.92924018197E-07 7.22200228292E-07 7.52619473914E-07
+ 7.84174208593E-07 8.16953371824E-07 8.50969370680E-07 8.86274197408E-07
+ 9.22933280486E-07 9.60951234823E-07 1.00043905570E-06 1.04138312434E-06
+ 1.08389209248E-06 1.12798553003E-06 1.17373462227E-06 1.22120523188E-06
+ 1.27044150250E-06 1.32151929908E-06 1.37450570662E-06 1.42945094895E-06
+ 1.48645788244E-06 1.54556830653E-06 1.60687527704E-06 1.67044744223E-06
+ 1.73637177403E-06 1.80473102031E-06 1.87561085431E-06 1.94910887875E-06
+ 2.02529276090E-06 2.10429312460E-06 2.18618451351E-06 2.27107618505E-06
+ 2.35908561659E-06 2.45030202539E-06 2.54486147516E-06 2.64286747270E-06
+ 2.74444705589E-06 2.84972568390E-06 2.95884027213E-06 3.07191526087E-06
+ 3.18909731927E-06 3.31053776654E-06 3.43637387363E-06 3.56676561695E-06
+ 3.70188167222E-06 3.84188521401E-06 3.98692990740E-06 4.13722845369E-06
+ 4.29293753069E-06 4.45426177657E-06 4.62138957573E-06 4.79453116431E-06
+ 4.97390558872E-06 5.15970769247E-06 5.35219687021E-06 5.55157838483E-06
+ 5.75811492641E-06 5.97204462217E-06 6.19363642519E-06 6.42315233627E-06
+ 6.66087186082E-06 6.90709096873E-06 7.16210132949E-06 7.42619816344E-06
+ 7.69972860703E-06 7.98299722327E-06 8.27636293466E-06 8.58016768239E-06
+ 8.89477999259E-06 9.22058690585E-06 9.55796482305E-06 9.90733031370E-06
+ 1.02691065893E-05 1.06437004132E-05 1.10316033611E-05 1.14332356081E-05
+ 1.18491144888E-05 1.22797156700E-05 1.27255515306E-05 1.31871802441E-05
+ 1.36651212433E-05 1.41599547922E-05 1.46722852622E-05 1.52027039048E-05
+ 1.57518492312E-05 1.63203753055E-05 1.69089542830E-05 1.75182929515E-05
+ 1.81491083828E-05 1.88021459611E-05 1.94781914304E-05 2.01780352731E-05
+ 2.09025069113E-05 2.16524838874E-05 2.24288112386E-05 2.32324635679E-05
+ 2.40643390101E-05 2.49254570207E-05 2.58168110082E-05 2.67394645431E-05
+ 2.76945150106E-05 2.86830658029E-05 2.97062975008E-05 3.07654269895E-05
+ 3.18616639063E-05 3.29963486005E-05 3.41707698292E-05 3.53863575360E-05
+ 3.66444820531E-05 3.79466801772E-05 3.92944453629E-05 4.06893813027E-05
+ 4.21330975731E-05 4.36273280720E-05 4.51737994453E-05 4.67743191626E-05
+ 4.84307979471E-05 5.01451388153E-05 5.19193746847E-05 5.37555780747E-05
+ 5.56558838035E-05 5.76225487977E-05 5.96578328458E-05 6.17641612277E-05
+ 6.39439557049E-05 6.61997961246E-05 6.85343016934E-05 7.09501993834E-05
+ 7.34503226600E-05 7.60375892428E-05 7.87149939781E-05 8.14857105266E-05
+ 8.43529141362E-05 8.73199934706E-05 9.03904015052E-05 9.35676858998E-05
+ 9.68555985131E-05 1.00257918595E-04 1.03778659726E-04 1.07421888086E-04
+ 1.11191855303E-04 1.15092956345E-04 1.19129729079E-04 1.23306854121E-04
+ 1.27629223084E-04 1.32101832849E-04 1.36729908219E-04 1.41518798525E-04
+ 1.46474109385E-04 1.51601571995E-04 1.56907150073E-04 1.62397012404E-04
+ 1.68077522184E-04 1.73955300821E-04 1.80037139649E-04 1.86330117188E-04
+ 1.92841542214E-04 1.99578950933E-04 2.06550174993E-04 2.13763300451E-04
+ 2.21226674605E-04 2.28948971902E-04 2.36939144354E-04 2.45206422224E-04
+ 2.53760437967E-04 2.62611067304E-04 2.71768555390E-04 2.81243549483E-04
+ 2.91046984810E-04 3.01190244335E-04 3.11685044635E-04 3.22543550920E-04
+ 3.33778333379E-04 3.45402391327E-04 3.57429149914E-04 3.69872568557E-04
+ 3.82747019094E-04 3.96067381096E-04 4.09849075574E-04 4.24108036468E-04
+ 4.38860730296E-04 4.54124243223E-04 4.69916194250E-04 4.86254835364E-04
+ 5.03159046926E-04 5.20648369374E-04 5.38742987894E-04 5.57463820889E-04
+ 5.76832472149E-04 5.96871317917E-04 6.17603503257E-04 6.39052921596E-04
+ 6.61244393439E-04 6.84203476798E-04 7.07956689174E-04 7.32531440729E-04
+ 7.57956064685E-04 7.84259925833E-04 8.11473305133E-04 8.39627637712E-04
+ 8.68755374043E-04 8.98890074971E-04 9.30066500919E-04 9.62320592336E-04
+ 9.95689488173E-04 1.03021169091E-03 1.06592691676E-03 1.10287635664E-03
+ 1.14110256130E-03 1.18064954262E-03 1.22156285000E-03 1.26388959870E-03
+ 1.30767849278E-03 1.35297997351E-03 1.39984613938E-03 1.44833095230E-03
+ 1.49849018883E-03 1.55038154118E-03 1.60406470973E-03 1.65960144475E-03
+ 1.71705557789E-03 1.77649318968E-03 1.83798261192E-03 1.90159448075E-03
+ 1.96740194873E-03 2.03548057748E-03 2.10590861673E-03 2.17876694172E-03
+ 2.25413921827E-03 2.33211199520E-03 2.41277478686E-03 2.49622017255E-03
+ 2.58254390641E-03 2.67184504579E-03 2.76422600163E-03 2.85979276701E-03
+ 2.95865487064E-03 3.06092569203E-03 3.16672244096E-03 3.27616631741E-03
+ 3.38938275493E-03 3.50650139267E-03 3.62765635427E-03 3.75298635520E-03
+ 3.88263481999E-03 4.01675009855E-03 4.15548563552E-03 4.29900005920E-03
+ 4.44745747117E-03 4.60102757123E-03 4.75988578899E-03 4.92421362125E-03
+ 5.09419872703E-03 5.27003513582E-03 5.45192351312E-03 5.64007135990E-03
+ 5.83469326128E-03 6.03601104943E-03 6.24425415568E-03 6.45965980632E-03
+ 6.68247326200E-03 6.91294813039E-03 7.15134663492E-03 7.39793989219E-03
+ 7.65300822286E-03 7.91684138579E-03 8.18973907440E-03 8.47201098234E-03
+ 8.76397741814E-03 9.06596939869E-03 9.37832919298E-03 9.70141059691E-03
+ 1.00355793559E-02 1.03812134992E-02 1.07387038408E-02 1.11084542968E-02
+ 1.14908824002E-02 1.18864196531E-02 1.22955120818E-02 1.27186206600E-02
+ 1.31562217335E-02 1.36088076950E-02 1.40768872508E-02 1.45609862190E-02
+ 1.50616478235E-02 1.55794334762E-02 1.61149231791E-02 1.66687162462E-02
+ 1.72414318068E-02 1.78337095980E-02 1.84462103549E-02 1.90796167940E-02
+ 1.97346339780E-02 2.04119903089E-02 2.11124380348E-02 2.18367540823E-02
+ 2.25857408400E-02 2.33602268831E-02 2.41610678214E-02 2.49891470958E-02
+ 2.58453768233E-02 2.67306986850E-02 2.76460847934E-02 2.85925386104E-02
+ 2.95710958317E-02 3.05828254676E-02 3.16288306204E-02 3.27102496324E-02
+ 3.38282571128E-02 3.49840647551E-02 3.61789227700E-02 3.74141205415E-02
+ 3.86909881152E-02 4.00108969856E-02 4.13752615328E-02 4.27855399090E-02
+ 4.42432354867E-02 4.57498977396E-02 4.73071238307E-02 4.89165594664E-02
+ 5.05799004012E-02 5.22988935938E-02 5.40753384504E-02 5.59110881589E-02
+ 5.78080509372E-02 5.97681913150E-02 6.17935314635E-02 6.38861524759E-02
+ 6.60481955777E-02 6.82818635672E-02 7.05894219759E-02 7.29732003284E-02
+ 7.54355934351E-02 7.79790626523E-02 8.06061369441E-02 8.33194141887E-02
+ 8.61215622139E-02 8.90153199490E-02 9.20034983943E-02 9.50889816314E-02
+ 9.82747276757E-02 1.01563769451E-01 1.04959215280E-01 1.08464249844E-01
+ 1.12082134434E-01 1.15816207600E-01 1.19669885278E-01 1.23646661104E-01
+ 1.27750106229E-01 1.31983869258E-01 1.36351675860E-01 1.40857328121E-01
+ 1.45504703803E-01 1.50297755233E-01 1.55240508000E-01 1.60337059261E-01
+ 1.65591575930E-01 1.71008292228E-01 1.76591507071E-01 1.82345581083E-01
+ 1.88274932923E-01 1.94384035432E-01 2.00677411086E-01 2.07159626958E-01
+ 2.13835289180E-01 2.20709036506E-01 2.27785533643E-01 2.35069463370E-01
+ 2.42565518265E-01 2.50278391453E-01 2.58212766321E-01 2.66373305751E-01
+ 2.74764639762E-01 2.83391352438E-01 2.92257967917E-01 3.01368934413E-01
+ 3.10728608037E-01 3.20341234122E-01 3.30210928153E-01 3.40341654312E-01
+ 3.50737203048E-01 3.61401166502E-01 3.72336912536E-01 3.83547556400E-01
+ 3.95035931023E-01 4.06804554469E-01 4.18855596096E-01 4.31190839489E-01
+ 4.43811643785E-01 4.56718902002E-01 4.69912997036E-01 4.83393754677E-01
+ 4.97160394230E-01 5.11211475685E-01 5.25544844353E-01 5.40157572127E-01
+ 5.55045895490E-01 5.70205150671E-01 5.85629704678E-01 6.01312883861E-01
+ 6.17246898162E-01 6.33422762416E-01 6.49830213851E-01 6.66457626264E-01
+ 6.83291920464E-01 7.00318471603E-01 7.17521012733E-01 7.34881535581E-01
+ 7.52380187797E-01 7.69995167635E-01 7.87702615755E-01 8.05476504853E-01
+ 8.23288527086E-01 8.41107980141E-01 8.58901652041E-01 8.76633705528E-01
+ 8.94265562605E-01 9.11755789929E-01 9.29059986104E-01 9.46130671545E-01
+ 9.62917182428E-01 9.79365569527E-01 9.95418503680E-01 1.01101518922E+00
+ 1.02609128714E+00 1.04057884983E+00 1.05440626964E+00 1.06749824320E+00
+ 1.07977575444E+00 1.09115607862E+00 1.10155281052E+00 1.11087592012E+00
+ 1.11903183882E+00 1.12592358032E+00 1.13145089996E+00 1.13551049681E+00
+ 1.13799626272E+00 1.13879958377E+00 1.13780969832E+00 1.13491411756E+00
+ 1.12999911354E+00 1.12295028056E+00 1.11365317557E+00 1.10199404338E+00
+ 1.08786063240E+00 1.07114310676E+00 1.05173506020E+00 1.02953463686E+00
+ 1.00444576366E+00 9.76379498221E-01 9.45255495236E-01 9.11003593255E-01
+ 8.73565522033E-01 8.32896728850E-01 7.88968320043E-01 7.41769110755E-01
+ 6.91307773035E-01 6.37615068035E-01 5.80746143608E-01 5.20782872964E-01
+ 4.57836203781E-01 3.92048480028E-01 3.23595690069E-01 2.52689586457E-01
+ 1.79579610953E-01 1.04554549421E-01 2.79438266724E-02 -4.98816584096E-02
+ -1.28509272805E-01 -2.07485089632E-01 -2.86315168519E-01 -3.64467823541E-01
+ -4.41377035556E-01 -5.16447167222E-01 -5.89059135924E-01 -6.58578188695E-01
+ -7.24363397427E-01 -7.85778956735E-01 -8.42207305705E-01 -8.93064016724E-01
+ -9.37814280241E-01 -9.75990673774E-01 -1.00721171562E+00 -1.03120048018E+00
+ -1.04780227451E+00 -1.05700006062E+00 -1.05892594698E+00 -1.05386669534E+00
+ -1.04226081031E+00 -1.02468446230E+00 -1.00182330346E+00 -9.74427306812E-01
+ -9.43246255997E-01 -9.08944714048E-01 -8.71997575572E-01 -8.32571200742E-01
+ -7.90401408030E-01 -7.44689319775E-01 -6.94050699837E-01 -6.36576020040E-01
+ -5.70089867868E-01 -4.92743220891E-01 -4.04136521433E-01 -3.09165178559E-01
+ -1.94186913198E-01 -8.08919345373E-02 -8.11612801804E-03 9.87201682731E-04
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_BETA>
+ <PP_BETA>
+ 5 2 Beta L
+ 619
+ 0.00000000000E+00 -5.00083155414E-18 2.22427550073E-12 2.04909336063E-12
+ 2.11087218156E-12 2.14993487424E-12 2.19182609821E-12 2.23398734966E-12
+ 2.27663819166E-12 2.31970288386E-12 2.36314288197E-12 2.40690695089E-12
+ 2.45094655279E-12 2.49517026827E-12 2.53953782729E-12 2.58398182231E-12
+ 2.62838072620E-12 2.67269786716E-12 2.71676694980E-12 2.76060616970E-12
+ 2.80392994818E-12 2.84675695639E-12 2.88893154435E-12 2.93021328301E-12
+ 2.97057213181E-12 3.00978585333E-12 3.04765903700E-12 3.08395794223E-12
+ 3.11872787411E-12 3.15124763294E-12 3.18190288781E-12 3.20988436697E-12
+ 3.23523379168E-12 3.25751049750E-12 3.27657985907E-12 3.29174634499E-12
+ 3.30315996233E-12 3.31011841537E-12 3.31196045338E-12 3.30872007627E-12
+ 3.29996495199E-12 3.28441179115E-12 3.26270374779E-12 3.23319891063E-12
+ 3.19581162777E-12 3.15010847197E-12 3.09458929459E-12 3.02960105744E-12
+ 2.95316483125E-12 2.86595831810E-12 2.76555755881E-12 2.65139694742E-12
+ 2.52358931165E-12 2.37950021006E-12 2.21983051789E-12 2.04059343962E-12
+ 1.84445931768E-12 1.62499283549E-12 1.38681060568E-12 1.12284836513E-12
+ 8.34073791212E-13 5.19855186777E-13 1.75940687008E-13 -1.98204986601E-13
+ -6.04432396896E-13 -1.04666937508E-12 -1.52429816817E-12 -2.04248624134E-12
+ -2.60221613592E-12 -3.20622707766E-12 -3.85887209124E-12 -4.56189233358E-12
+ -5.31755558224E-12 -6.13213788833E-12 -7.00738669187E-12 -7.94635149338E-12
+ -8.95549634850E-12 -1.00378334192E-11 -1.11948191490E-11 -1.24388181326E-11
+ -1.37680209722E-11 -1.51877182555E-11 -1.67131659500E-11 -1.83348866530E-11
+ -2.00719850271E-11 -2.19277653537E-11 -2.39048020910E-11 -2.60181261519E-11
+ -2.82676867055E-11 -3.06681557321E-11 -3.32253212128E-11 -3.59493454466E-11
+ -3.88510713222E-11 -4.19375836982E-11 -4.52255582262E-11 -4.87184709367E-11
+ -5.24397582589E-11 -5.63866490752E-11 -6.05958785581E-11 -6.50526551483E-11
+ -6.97989330294E-11 -7.48364534987E-11 -8.01850250884E-11 -8.58643236125E-11
+ -9.18913901932E-11 -9.82841637217E-11 -1.05069835807E-10 -1.12269602803E-10
+ -1.19899488528E-10 -1.27993603408E-10 -1.36571480901E-10 -1.45663668913E-10
+ -1.55302232209E-10 -1.65512179829E-10 -1.76324812406E-10 -1.87786146593E-10
+ -1.99920071314E-10 -2.12761697685E-10 -2.26373266215E-10 -2.40768028135E-10
+ -2.56010155075E-10 -2.72146663339E-10 -2.89211893444E-10 -3.07271229043E-10
+ -3.26381908495E-10 -3.46586501969E-10 -3.67968845521E-10 -3.90571042537E-10
+ -4.14477749672E-10 -4.39753960714E-10 -4.66469276827E-10 -4.94728058049E-10
+ -5.24576517495E-10 -5.56136730956E-10 -5.89492868537E-10 -6.24721967099E-10
+ -6.61960252507E-10 -7.01303960882E-10 -7.42864704694E-10 -7.86766692611E-10
+ -8.33134142892E-10 -8.82115397966E-10 -9.33842358540E-10 -9.88459402386E-10
+ -1.04613558045E-09 -1.10703989484E-09 -1.17133599862E-09 -1.23920634786E-09
+ -1.31087379521E-09 -1.38651049046E-09 -1.46634179266E-09 -1.55060681669E-09
+ -1.63954817255E-09 -1.73338809577E-09 -1.83242336684E-09 -1.93692995290E-09
+ -2.04718503727E-09 -2.16352962662E-09 -2.28626501558E-09 -2.41574645763E-09
+ -2.55234050249E-09 -2.69642977836E-09 -2.84842733301E-09 -3.00871699335E-09
+ -3.17780598853E-09 -3.35611612495E-09 -3.54419118113E-09 -3.74249904716E-09
+ -3.95162542575E-09 -4.17217822293E-09 -4.40468199925E-09 -4.64987383746E-09
+ -4.90838843503E-09 -5.18089089198E-09 -5.46826656622E-09 -5.77115413562E-09
+ -6.09051198553E-09 -6.42710142069E-09 -6.78196059832E-09 -7.15598656465E-09
+ -7.55024589143E-09 -7.96576173491E-09 -8.40373362781E-09 -8.86532757199E-09
+ -9.35180892272E-09 -9.86449215301E-09 -1.04047967431E-08 -1.09741441468E-08
+ -1.15741510673E-08 -1.22064214644E-08 -1.28726050922E-08 -1.35746387485E-08
+ -1.43142690587E-08 -1.50936362664E-08 -1.59147895073E-08 -1.67799190494E-08
+ -1.76913957679E-08 -1.86516906058E-08 -1.96633699123E-08 -2.07291508538E-08
+ -2.18519395691E-08 -2.30347165042E-08 -2.42806753400E-08 -2.55931908851E-08
+ -2.69757261618E-08 -2.84320827127E-08 -2.99660495402E-08 -3.15818086666E-08
+ -3.32837317361E-08 -3.50762515281E-08 -3.69642434183E-08 -3.89527736059E-08
+ -4.10470812297E-08 -4.32528065712E-08 -4.55758345278E-08 -4.80223732467E-08
+ -5.05988454378E-08 -5.33123193588E-08 -5.61697303588E-08 -5.91790108642E-08
+ -6.23478897241E-08 -6.56850153462E-08 -6.91989742198E-08 -7.28994277301E-08
+ -7.67960015867E-08 -8.08990832034E-08 -8.52195648268E-08 -8.97687967258E-08
+ -9.45590608051E-08 -9.96028695397E-08 -1.04913621291E-07 -1.10505354409E-07
+ -1.16392943392E-07 -1.22591887455E-07 -1.29118605366E-07 -1.35990272422E-07
+ -1.43225206608E-07 -1.50842313579E-07 -1.58861909692E-07 -1.67304989057E-07
+ -1.76193911047E-07 -1.85552027739E-07 -1.95404187826E-07 -2.05776182683E-07
+ -2.16695328895E-07 -2.28190601077E-07 -2.40292101571E-07 -2.53031543994E-07
+ -2.66442677650E-07 -2.80560861724E-07 -2.95422843079E-07 -3.11067999740E-07
+ -3.27537455687E-07 -3.44874207240E-07 -3.63124167977E-07 -3.82334953433E-07
+ -4.02557143153E-07 -4.23843879935E-07 -4.46250689527E-07 -4.69836889167E-07
+ -4.94663825326E-07 -5.20796902695E-07 -5.48304437996E-07 -5.77258743160E-07
+ -6.07735422565E-07 -6.39814557370E-07 -6.73579886370E-07 -7.09120180642E-07
+ -7.46528084847E-07 -7.85901835799E-07 -8.27344200200E-07 -8.70963832325E-07
+ -9.16874656611E-07 -9.65196824726E-07 -1.01605664809E-06 -1.06958705236E-06
+ -1.12592787968E-06 -1.18522678988E-06 -1.24763782693E-06 -1.31332517559E-06
+ -1.38245924944E-06 -1.45522144051E-06 -1.53180120460E-06 -1.61239872991E-06
+ -1.69722411595E-06 -1.78649905283E-06 -1.88045593514E-06 -1.97934076573E-06
+ -2.08341009641E-06 -2.19293698152E-06 -2.30820534881E-06 -2.42951711750E-06
+ -2.55718751796E-06 -2.69154982058E-06 -2.83295396810E-06 -2.98176844038E-06
+ -3.13838097899E-06 -3.30319939047E-06 -3.47665312489E-06 -3.65919381752E-06
+ -3.85129641458E-06 -4.05346173492E-06 -4.26621549089E-06 -4.49011174828E-06
+ -4.72573276664E-06 -4.97369232171E-06 -5.23463484462E-06 -5.50923960269E-06
+ -5.79822104020E-06 -6.10233036175E-06 -6.42235842124E-06 -6.75913813159E-06
+ -7.11354389759E-06 -7.48649835963E-06 -7.87896998833E-06 -8.29197935870E-06
+ -8.72659973975E-06 -9.18396045047E-06 -9.66525006060E-06 -1.01717185975E-05
+ -1.07046820939E-05 -1.12655248712E-05 -1.18557034169E-05 -1.24767502416E-05
+ -1.31302789176E-05 -1.38179842418E-05 -1.45416544048E-05 -1.53031657896E-05
+ -1.61044959367E-05 -1.69477242726E-05 -1.78350395890E-05 -1.87687440061E-05
+ -1.97512598888E-05 -2.07851366515E-05 -2.18730566090E-05 -2.30178406086E-05
+ -2.42224591944E-05 -2.54900350011E-05 -2.68238565877E-05 -2.82273801272E-05
+ -2.97042475702E-05 -3.12582842575E-05 -3.28935206149E-05 -3.46141943730E-05
+ -3.64247643571E-05 -3.83299232061E-05 -4.03346068102E-05 -4.24440090893E-05
+ -4.46635951587E-05 -4.69991139492E-05 -4.94566149405E-05 -5.20424615111E-05
+ -5.47633521792E-05 -5.76263292622E-05 -6.06388075135E-05 -6.38085831402E-05
+ -6.71438629919E-05 -7.06532778729E-05 -7.43459103592E-05 -7.82313153684E-05
+ -8.23195458279E-05 -8.66211777679E-05 -9.11473381665E-05 -9.59097333849E-05
+ -1.00920680546E-04 -1.06193134873E-04 -1.11740729447E-04 -1.17577804914E-04
+ -1.23719449967E-04 -1.30181535369E-04 -1.36980762373E-04 -1.44134695055E-04
+ -1.51661818386E-04 -1.59581574295E-04 -1.67914413885E-04 -1.76681857910E-04
+ -1.85906542426E-04 -1.95612278581E-04 -2.05824119786E-04 -2.16568416260E-04
+ -2.27872894656E-04 -2.39766712988E-04 -2.52280551355E-04 -2.65446682348E-04
+ -2.79299049055E-04 -2.93873363994E-04 -3.09207191065E-04 -3.25340039004E-04
+ -3.42313474810E-04 -3.60171217482E-04 -3.78959252079E-04 -3.98725953594E-04
+ -4.19522199079E-04 -4.41401509178E-04 -4.64420170928E-04 -4.88637394294E-04
+ -5.14115452065E-04 -5.40919843514E-04 -5.69119455870E-04 -5.98786744612E-04
+ -6.29997914512E-04 -6.62833107268E-04 -6.97376612746E-04 -7.33717078961E-04
+ -7.71947723044E-04 -8.12166597273E-04 -8.54476797147E-04 -8.98986752051E-04
+ -9.45810479233E-04 -9.95067881427E-04 -1.04688503785E-03 -1.10139452955E-03
+ -1.15873576371E-03 -1.21905532468E-03 -1.28250734171E-03 -1.34925387524E-03
+ -1.41946530662E-03 -1.49332078361E-03 -1.57100864823E-03 -1.65272691007E-03
+ -1.73868373402E-03 -1.82909795783E-03 -1.92419963813E-03 -2.02423059205E-03
+ -2.12944502844E-03 -2.24011014150E-03 -2.35650678409E-03 -2.47893013781E-03
+ -2.60769045752E-03 -2.74311379602E-03 -2.88554281757E-03 -3.03533763924E-03
+ -3.19287665182E-03 -3.35855750748E-03 -3.53279799294E-03 -3.71603711296E-03
+ -3.90873607625E-03 -4.11137943735E-03 -4.32447622518E-03 -4.54856116343E-03
+ -4.78419593254E-03 -5.03197048489E-03 -5.29250444178E-03 -5.56644854345E-03
+ -5.85448613648E-03 -6.15733481313E-03 -6.47574801643E-03 -6.81051681653E-03
+ -7.16247168587E-03 -7.53248443630E-03 -7.92147015829E-03 -8.33038930848E-03
+ -8.76024987772E-03 -9.21210960004E-03 -9.68707837900E-03 -1.01863206517E-02
+ -1.07110580003E-02 -1.12625718295E-02 -1.18422060693E-02 -1.24513701564E-02
+ -1.30915419680E-02 -1.37642710060E-02 -1.44711816176E-02 -1.52139764046E-02
+ -1.59944397252E-02 -1.68144413492E-02 -1.76759402459E-02 -1.85809885055E-02
+ -1.95317354394E-02 -2.05304317476E-02 -2.15794339289E-02 -2.26812087526E-02
+ -2.38383379525E-02 -2.50535230014E-02 -2.63295901118E-02 -2.76694952763E-02
+ -2.90763296254E-02 -3.05533247066E-02 -3.21038581348E-02 -3.37314591889E-02
+ -3.54398147124E-02 -3.72327749232E-02 -3.91143596686E-02 -4.10887643526E-02
+ -4.31603664306E-02 -4.53337315952E-02 -4.76136202910E-02 -5.00049941423E-02
+ -5.25130225137E-02 -5.51430889305E-02 -5.79007977306E-02 -6.07919803680E-02
+ -6.38227019633E-02 -6.69992674134E-02 -7.03282276745E-02 -7.38163856229E-02
+ -7.74708017168E-02 -8.12987995129E-02 -8.53079705491E-02 -8.95061791420E-02
+ -9.39015663402E-02 -9.85025536846E-02 -1.03317845875E-01 -1.08356433191E-01
+ -1.13627592578E-01 -1.19140888129E-01 -1.24906170346E-01 -1.30933574124E-01
+ -1.37233515569E-01 -1.43816687241E-01 -1.50694051601E-01 -1.57876832963E-01
+ -1.65376507054E-01 -1.73204788726E-01 -1.81373617004E-01 -1.89895137588E-01
+ -1.98781682586E-01 -2.08045746923E-01 -2.17699961629E-01 -2.27757063157E-01
+ -2.38229859206E-01 -2.49131189713E-01 -2.60473883871E-01 -2.72270711813E-01
+ -2.84534331295E-01 -2.97277228571E-01 -3.10511653592E-01 -3.24249548456E-01
+ -3.38502469456E-01 -3.53281501618E-01 -3.68597165982E-01 -3.84459318427E-01
+ -4.00877040476E-01 -4.17858520736E-01 -4.35410927041E-01 -4.53540268822E-01
+ -4.72251248725E-01 -4.91547103497E-01 -5.11429433184E-01 -5.31898018294E-01
+ -5.52950624016E-01 -5.74582791486E-01 -5.96787614100E-01 -6.19555500125E-01
+ -6.42873918243E-01 -6.66727127903E-01 -6.91095890911E-01 -7.15957165350E-01
+ -7.41283779215E-01 -7.67044083608E-01 -7.93201583308E-01 -8.19714544506E-01
+ -8.46535577230E-01 -8.73611192305E-01 -9.00881330996E-01 -9.28278866801E-01
+ -9.55729079261E-01 -9.83149099186E-01 -1.01044732760E+00 -1.03752282957E+00
+ -1.06426470823E+00 -1.09055146412E+00 -1.11625035064E+00 -1.14121673701E+00
+ -1.16529349827E+00 -1.18831045408E+00 -1.21008388918E+00 -1.23041619185E+00
+ -1.24909566245E+00 -1.26589654968E+00 -1.28057938993E+00 -1.29289173544E+00
+ -1.30256937443E+00 -1.30933815916E+00 -1.31291657244E+00 -1.31301917461E+00
+ -1.30936107630E+00 -1.30166358384E+00 -1.28966114509E+00 -1.27310969604E+00
+ -1.25179644918E+00 -1.22555108130E+00 -1.19425814973E+00 -1.15787039420E+00
+ -1.11642234818E+00 -1.07004339323E+00 -1.01896903151E+00 -9.63548747234E-01
+ -9.04248394552E-01 -8.41644658597E-01 -7.76408883392E-01 -7.09277640505E-01
+ -6.41008114205E-01 -5.72318174938E-01 -5.03814634574E-01 -4.35919707840E-01
+ -3.68816816602E-01 -3.02454971640E-01 -2.36679656813E-01 -1.71602609575E-01
+ -1.08390649519E-01 -5.07559512955E-02 -7.57919264261E-03 -3.35384048910E-06
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_BETA>
+ <PP_BETA>
+ 6 2 Beta L
+ 619
+ 0.00000000000E+00 -5.07691018482E-18 -4.46456798481E-12 -4.11292907814E-12
+ -4.23690335280E-12 -4.31526317042E-12 -4.39927248057E-12 -4.48379113144E-12
+ -4.56925480975E-12 -4.65549945487E-12 -4.74243801364E-12 -4.82997757977E-12
+ -4.91793853357E-12 -5.00625027761E-12 -5.09472199030E-12 -5.18321393277E-12
+ -5.27152233824E-12 -5.35948529430E-12 -5.44688936674E-12 -5.53343209082E-12
+ -5.61901556890E-12 -5.70324196738E-12 -5.78584223346E-12 -5.86661652533E-12
+ -5.94505943783E-12 -6.02088310094E-12 -6.09377193623E-12 -6.16325876904E-12
+ -6.22870229972E-12 -6.29011052689E-12 -6.34622356276E-12 -6.39729512383E-12
+ -6.44210068813E-12 -6.48033777047E-12 -6.51117871390E-12 -6.53406479565E-12
+ -6.54784603391E-12 -6.55198943025E-12 -6.54567965197E-12 -6.52793174410E-12
+ -6.49697988037E-12 -6.45337057486E-12 -6.39394546764E-12 -6.31890947810E-12
+ -6.22704719865E-12 -6.11517694283E-12 -5.98428982460E-12 -5.83086880979E-12
+ -5.65438884161E-12 -5.45168047453E-12 -5.22242166520E-12 -4.96453401545E-12
+ -4.67394477580E-12 -4.35081350388E-12 -3.98970912628E-12 -3.59239231308E-12
+ -3.15091659986E-12 -2.66776136491E-12 -2.13489225358E-12 -1.55188512414E-12
+ -9.15857415115E-13 -2.19625367731E-13 5.36472177924E-13 1.35995187633E-12
+ 2.25321557442E-12 3.22132561200E-12 4.27062794694E-12 5.40367392264E-12
+ 6.62837217587E-12 7.95068115906E-12 9.37413316697E-12 1.09077201855E-11
+ 1.25595430125E-11 1.43325315415E-11 1.62379983503E-11 1.82855129258E-11
+ 2.04794672096E-11 2.28306297670E-11 2.53539783374E-11 2.80505382392E-11
+ 3.09376781822E-11 3.40304127023E-11 3.73249391695E-11 4.08568672323E-11
+ 4.46242905530E-11 4.86414488899E-11 5.29361137650E-11 5.75081043014E-11
+ 6.23890158398E-11 6.75881972240E-11 7.31265708670E-11 7.90267975789E-11
+ 8.53056343336E-11 9.19903398788E-11 9.90995947939E-11 1.06668025437E-10
+ 1.14705358402E-10 1.23262685035E-10 1.32339300430E-10 1.42005047405E-10
+ 1.52253944557E-10 1.63145539597E-10 1.74707784110E-10 1.86982385593E-10
+ 2.00005827811E-10 2.13831198950E-10 2.28490045571E-10 2.44035535038E-10
+ 2.60529283434E-10 2.78006899908E-10 2.96540478700E-10 3.16179774048E-10
+ 3.36987733895E-10 3.59036239881E-10 3.82397414916E-10 4.07132585859E-10
+ 4.33326513462E-10 4.61074333569E-10 4.90430666427E-10 5.21523871557E-10
+ 5.54424593849E-10 5.89235600135E-10 6.26083967708E-10 6.65065848831E-10
+ 7.06290018294E-10 7.49917900722E-10 7.96037347042E-10 8.44827218457E-10
+ 8.96405659431E-10 9.50945774398E-10 1.00860490223E-09 1.06954011690E-09
+ 1.13397693816E-09 1.20204130301E-09 1.27398961950E-09 1.35002666978E-09
+ 1.43035323623E-09 1.51520928274E-09 1.60486655889E-09 1.69956727821E-09
+ 1.79959511456E-09 1.90523807126E-09 2.01680487257E-09 2.13461619511E-09
+ 2.25902561854E-09 2.39036602740E-09 2.52904410304E-09 2.67545183239E-09
+ 2.82997716685E-09 2.99311299539E-09 3.16529866182E-09 3.34701796334E-09
+ 3.53880441011E-09 3.74118832019E-09 3.95476793040E-09 4.18011982103E-09
+ 4.41790934396E-09 4.66876851689E-09 4.93344659218E-09 5.21266881288E-09
+ 5.50721123294E-09 5.81791710095E-09 6.14564057714E-09 6.49131654854E-09
+ 6.85589715722E-09 7.24040289136E-09 7.64589749775E-09 8.07352022350E-09
+ 8.52447614698E-09 8.99993860529E-09 9.50134270025E-09 1.00299722447E-08
+ 1.05873414662E-08 1.11749998014E-08 1.17944933929E-08 1.24476286688E-08
+ 1.31361073977E-08 1.38619308106E-08 1.46269635659E-08 1.54333992932E-08
+ 1.62833875487E-08 1.71793254488E-08 1.81236007841E-08 1.91187651627E-08
+ 2.01676301064E-08 2.12729751789E-08 2.24378352152E-08 2.36654079362E-08
+ 2.49589672165E-08 2.63220519621E-08 2.77584136450E-08 2.92718589328E-08
+ 3.08665491704E-08 3.25467819170E-08 3.43170608239E-08 3.61822616781E-08
+ 3.81473409999E-08 4.02176223441E-08 4.23986888768E-08 4.46964280276E-08
+ 4.71169957365E-08 4.96669572822E-08 5.23530857996E-08 5.51826724068E-08
+ 5.81632983462E-08 6.13028887290E-08 6.46099934135E-08 6.80933873887E-08
+ 7.17623327204E-08 7.56268016805E-08 7.96970660965E-08 8.39839400940E-08
+ 8.84989340120E-08 9.32541350211E-08 9.82621792702E-08 1.03536377806E-07
+ 1.09091005041E-07 1.14940481385E-07 1.21100862116E-07 1.27588053398E-07
+ 1.34419684389E-07 1.41613688149E-07 1.49189374058E-07 1.57166708662E-07
+ 1.65566874010E-07 1.74412278340E-07 1.83726275219E-07 1.93533751928E-07
+ 2.03860356810E-07 2.14733716049E-07 2.26182566228E-07 2.38237290822E-07
+ 2.50929469726E-07 2.64293064084E-07 2.78363150428E-07 2.93177104399E-07
+ 3.08773828251E-07 3.25194724405E-07 3.42482980750E-07 3.60684323908E-07
+ 3.79846730209E-07 4.00020810141E-07 4.21259546503E-07 4.43619113241E-07
+ 4.67158448734E-07 4.91939196319E-07 5.18027039374E-07 5.45490326021E-07
+ 5.74401607849E-07 6.04836475482E-07 6.36875533090E-07 6.70602629016E-07
+ 7.06106285468E-07 7.43480371966E-07 7.82822333930E-07 8.24236002755E-07
+ 8.67829879228E-07 9.13718309012E-07 9.62022095570E-07 1.01286730452E-06
+ 1.06638786655E-06 1.12272377437E-06 1.18202297226E-06 1.24444039755E-06
+ 1.31014017012E-06 1.37929402369E-06 1.45208311025E-06 1.52869795092E-06
+ 1.60933946865E-06 1.69421826062E-06 1.78355670360E-06 1.87758836344E-06
+ 1.97655929520E-06 2.08072823823E-06 2.19036754090E-06 2.30576392987E-06
+ 2.42721897912E-06 2.55504956392E-06 2.68959069131E-06 2.83119248066E-06
+ 2.98022598630E-06 3.13707946624E-06 3.30216283191E-06 3.47590691429E-06
+ 3.65876513176E-06 3.85121467439E-06 4.05375760616E-06 4.26692181823E-06
+ 4.49126461622E-06 4.72736907426E-06 4.97585278900E-06 5.23736177097E-06
+ 5.51257904019E-06 5.80222089338E-06 6.10704263172E-06 6.42783820916E-06
+ 6.76544328956E-06 7.12073736656E-06 7.49464554343E-06 7.88814144794E-06
+ 8.30225019336E-06 8.73804879523E-06 9.19667232936E-06 9.67931404334E-06
+ 1.01872303371E-05 1.07217423685E-05 1.12842404853E-05 1.18761888306E-05
+ 1.24991260508E-05 1.31546725983E-05 1.38445337173E-05 1.45705014769E-05
+ 1.53344652282E-05 1.61384089980E-05 1.69844237032E-05 1.78747072270E-05
+ 1.88115733103E-05 1.97974561813E-05 2.08349168387E-05 2.19266509001E-05
+ 2.30754933778E-05 2.42844281285E-05 2.55565948261E-05 2.68952966591E-05
+ 2.83040088140E-05 2.97863894437E-05 3.13462846927E-05 3.29877447808E-05
+ 3.47150289119E-05 3.65326194706E-05 3.84452321009E-05 4.04578288169E-05
+ 4.25756314644E-05 4.48041321680E-05 4.71491109496E-05 4.96166495457E-05
+ 5.22131455416E-05 5.49453320580E-05 5.78202905578E-05 6.08454762635E-05
+ 6.40287264605E-05 6.73782948487E-05 7.09028592080E-05 7.46115522107E-05
+ 7.85139839670E-05 8.26202607746E-05 8.69410228326E-05 9.14874581621E-05
+ 9.62713410671E-05 1.01305059284E-04 1.06601645291E-04 1.12174812052E-04
+ 1.18038982953E-04 1.24209339046E-04 1.30701845233E-04 1.37533304324E-04
+ 1.44721388348E-04 1.52284694427E-04 1.60242784493E-04 1.68616241334E-04
+ 1.77426716955E-04 1.86696992691E-04 1.96451033955E-04 2.06714053917E-04
+ 2.17512577272E-04 2.28874508548E-04 2.40829206001E-04 2.53407551789E-04
+ 2.66642035171E-04 2.80566837148E-04 2.95217911071E-04 3.10633087678E-04
+ 3.26852151785E-04 3.43916966391E-04 3.61871567861E-04 3.80762275016E-04
+ 4.00637816743E-04 4.21549455052E-04 4.43551106968E-04 4.66699496530E-04
+ 4.91054283133E-04 5.16678232572E-04 5.43637358977E-04 5.72001103488E-04
+ 6.01842510156E-04 6.33238409887E-04 6.66269612071E-04 7.01021124836E-04
+ 7.37582346821E-04 7.76047317878E-04 8.16514945553E-04 8.59089254111E-04
+ 9.03879657676E-04 9.51001225192E-04 1.00057498549E-03 1.05272821713E-03
+ 1.10759478465E-03 1.16531546490E-03 1.22603831344E-03 1.28991902443E-03
+ 1.35712133018E-03 1.42781741455E-03 1.50218833981E-03 1.58042449968E-03
+ 1.66272610947E-03 1.74930368423E-03 1.84037858892E-03 1.93618357335E-03
+ 2.03696336271E-03 2.14297525976E-03 2.25448979229E-03 2.37179137406E-03
+ 2.49517902286E-03 2.62496708891E-03 2.76148603822E-03 2.90508325952E-03
+ 3.05612394037E-03 3.21499193144E-03 3.38209071903E-03 3.55784439547E-03
+ 3.74269870170E-03 3.93712211494E-03 4.14160696988E-03 4.35667069878E-03
+ 4.58285701931E-03 4.82073731239E-03 5.07091194727E-03 5.33401176145E-03
+ 5.61069953504E-03 5.90167161771E-03 6.20765954986E-03 6.52943179561E-03
+ 6.86779561755E-03 7.22359888630E-03 7.59773217737E-03 7.99113075387E-03
+ 8.40477682703E-03 8.83970178067E-03 9.29698859307E-03 9.77777430101E-03
+ 1.02832526168E-02 1.08146766517E-02 1.13733617413E-02 1.19606884220E-02
+ 1.25781055341E-02 1.32271334318E-02 1.39093673672E-02 1.46264809851E-02
+ 1.53802300109E-02 1.61724560136E-02 1.70050904243E-02 1.78801586319E-02
+ 1.87997842695E-02 1.97661937304E-02 2.07817207019E-02 2.18488110927E-02
+ 2.29700279553E-02 2.41480566322E-02 2.53857102250E-02 2.66859350092E-02
+ 2.80518162764E-02 2.94865841829E-02 3.09936199171E-02 3.25764619550E-02
+ 3.42388125983E-02 3.59845445916E-02 3.78177080161E-02 3.97425372966E-02
+ 4.17634583575E-02 4.38850960184E-02 4.61122814255E-02 4.84500597013E-02
+ 5.09036976348E-02 5.34786914989E-02 5.61807749746E-02 5.90159269787E-02
+ 6.19903796961E-02 6.51106263580E-02 6.83834292214E-02 7.18158270856E-02
+ 7.54151430183E-02 7.91889915268E-02 8.31452856012E-02 8.72922433495E-02
+ 9.16383941660E-02 9.61925842119E-02 1.00963981546E-01 1.05962079969E-01
+ 1.11196702490E-01 1.16678003215E-01 1.22416468371E-01 1.28422915575E-01
+ 1.34708491781E-01 1.41284669040E-01 1.48163238389E-01 1.55356301233E-01
+ 1.62876257952E-01 1.70735793710E-01 1.78947860517E-01 1.87525655843E-01
+ 1.96482596657E-01 2.05832288973E-01 2.15588492016E-01 2.25765076584E-01
+ 2.36375976887E-01 2.47435135537E-01 2.58956440060E-01 2.70953651701E-01
+ 2.83440323623E-01 2.96429709660E-01 3.09934660994E-01 3.23967510831E-01
+ 3.38539945142E-01 3.53662858941E-01 3.69346196489E-01 3.85598773964E-01
+ 4.02428083890E-01 4.19840078889E-01 4.37838934432E-01 4.56426787963E-01
+ 4.75603453841E-01 4.95366111884E-01 5.15708968570E-01 5.36622888814E-01
+ 5.58094998061E-01 5.80108252139E-01 6.02640975276E-01 6.25666364433E-01
+ 6.49151960627E-01 6.73059086276E-01 6.97342250304E-01 7.21948521274E-01
+ 7.46816871438E-01 7.71877494512E-01 7.97051101165E-01 8.22248198546E-01
+ 8.47368360029E-01 8.72299495597E-01 8.96917132413E-01 9.21083721043E-01
+ 9.44647981991E-01 9.67444313306E-01 9.89292281656E-01 1.00999622339E+00
+ 1.02934498715E+00 1.04711185246E+00 1.06305466499E+00 1.07691623314E+00
+ 1.08842503536E+00 1.09729629392E+00 1.10323347319E+00 1.10593026689E+00
+ 1.10507313989E+00 1.10034449369E+00 1.09142652325E+00 1.07800583139E+00
+ 1.05977886101E+00 1.03645819532E+00 1.00777976198E+00 9.73510955222E-01
+ 9.33459662189E-01 8.87484141407E-01 8.35503654124E-01 7.77509689364E-01
+ 7.13577551197E-01 6.43877990569E-01 5.68688462122E-01 4.88403473193E-01
+ 4.03543361076E-01 3.14760698985E-01 2.22843385274E-01 1.28713330028E-01
+ 3.34195247805E-02 -6.18758170680E-02 -1.55919409318E-01 -2.47398660759E-01
+ -3.34984242985E-01 -4.17384335020E-01 -4.93410897234E-01 -5.62057529316E-01
+ -6.22587313494E-01 -6.74627467116E-01 -7.18265546106E-01 -7.54139298239E-01
+ -7.83509028633E-01 -8.08297550561E-01 -8.31078587523E-01 -8.54990193766E-01
+ -8.83545953832E-01 -9.20314425883E-01 -9.68438128400E-01 -1.02996989062E+00
+ -1.10502044646E+00 -1.19074250439E+00 -1.28023162064E+00 -1.36151524451E+00
+ -1.41694586780E+00 -1.42353721447E+00 -1.35511912380E+00 -1.18768721425E+00
+ -9.10052710758E-01 -5.42994221810E-01 -1.71312279520E-01 -7.76369107803E-04
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_BETA>
+ <PP_DIJ>
+ 9 Number of nonzero Dij
+ 1 1 7.81523499781E-01
+ 1 2 -2.06569483168E+00
+ 2 2 -2.63866575262E+00
+ 3 3 5.70367540645E+00
+ 3 4 5.00684715787E+00
+ 4 4 5.97546698988E+00
+ 5 5 1.43062453981E+01
+ 5 6 -1.17889360408E+01
+ 6 6 1.11435870780E+01
+ </PP_DIJ>
+ <PP_QIJ>
+ 8 nqf. If not zero, Qij's inside rinner are computed using qfcoef's
+ <PP_RINNER>
+ 1 9.00000000000E-01
+ 2 9.00000000000E-01
+ 3 9.00000000000E-01
+ 4 9.00000000000E-01
+ 5 9.00000000000E-01
+ </PP_RINNER>
+ 1 1 0 i j (l(j))
+ -4.75378786835E-01 Q_int
+ 0.00000000000E+00 -6.30676062385E-12 -2.56601063601E-11 -5.87291717394E-11
+ -1.06209911210E-10 -1.68826087948E-10 -2.47330297860E-10 -3.42505029999E-10
+ -4.55163764686E-10 -5.86152110639E-10 -7.36348982484E-10 -9.06667820059E-10
+ -1.09805785097E-09 -1.31150539791E-09 -1.54803523232E-09 -1.80871197597E-09
+ -2.09464155223E-09 -2.40697268858E-09 -2.74689847241E-09 -3.11565796171E-09
+ -3.51453785277E-09 -3.94487420675E-09 -4.40805423718E-09 -4.90551816067E-09
+ -5.43876111280E-09 -6.00933513163E-09 -6.61885121114E-09 -7.26898142701E-09
+ -7.96146113735E-09 -8.69809126082E-09 -9.48074063505E-09 -1.03113484580E-08
+ -1.11919268151E-08 -1.21245632956E-08 -1.31114237004E-08 -1.41547548454E-08
+ -1.52568874632E-08 -1.64202392067E-08 -1.76473177580E-08 -1.89407240471E-08
+ -2.03031555824E-08 -2.17374098987E-08 -2.32463881264E-08 -2.48330986852E-08
+ -2.65006611073E-08 -2.82523099948E-08 -3.00913991160E-08 -3.20214056441E-08
+ -3.40459345455E-08 -3.61687231206E-08 -3.83936457047E-08 -4.07247185317E-08
+ -4.31661047696E-08 -4.57221197306E-08 -4.83972362646E-08 -5.11960903400E-08
+ -5.41234868203E-08 -5.71844054420E-08 -6.03840070018E-08 -6.37276397589E-08
+ -6.72208460621E-08 -7.08693692065E-08 -7.46791605314E-08 -7.86563867638E-08
+ -8.28074376198E-08 -8.71389336699E-08 -9.16577344787E-08 -9.63709470292E-08
+ -1.01285934439E-07 -1.06410324983E-07 -1.11752021426E-07 -1.17319210686E-07
+ -1.23120373828E-07 -1.29164296412E-07 -1.35460079196E-07 -1.42017149215E-07
+ -1.48845271244E-07 -1.55954559658E-07 -1.63355490709E-07 -1.71058915230E-07
+ -1.79076071774E-07 -1.87418600216E-07 -1.96098555831E-07 -2.05128423851E-07
+ -2.14521134537E-07 -2.24290078772E-07 -2.34449124196E-07 -2.45012631900E-07
+ -2.55995473704E-07 -2.67413050029E-07 -2.79281308397E-07 -2.91616762568E-07
+ -3.04436512344E-07 -3.17758264060E-07 -3.31600351786E-07 -3.45981759268E-07
+ -3.60922142622E-07 -3.76441853828E-07 -3.92561965031E-07 -4.09304293685E-07
+ -4.26691428571E-07 -4.44746756722E-07 -4.63494491275E-07 -4.82959700291E-07
+ -5.03168336576E-07 -5.24147268538E-07 -5.45924312106E-07 -5.68528263766E-07
+ -5.91988934734E-07 -6.16337186316E-07 -6.41604966497E-07 -6.67825347794E-07
+ -6.95032566420E-07 -7.23262062809E-07 -7.52550523543E-07 -7.82935924731E-07
+ -8.14457576891E-07 -8.47156171389E-07 -8.81073828481E-07 -9.16254147026E-07
+ -9.52742255914E-07 -9.90584867281E-07 -1.02983033156E-06 -1.07052869444E-06
+ -1.11273175582E-06 -1.15649313073E-06 -1.20186831248E-06 -1.24891473788E-06
+ -1.29769185478E-06 -1.34826119194E-06 -1.40068643130E-06 -1.45503348278E-06
+ -1.51137056160E-06 -1.56976826841E-06 -1.63029967203E-06 -1.69304039516E-06
+ -1.75806870304E-06 -1.82546559514E-06 -1.89531490004E-06 -1.96770337364E-06
+ -2.04272080065E-06 -2.12046009972E-06 -2.20101743215E-06 -2.28449231430E-06
+ -2.37098773400E-06 -2.46061027092E-06 -2.55347022108E-06 -2.64968172576E-06
+ -2.74936290471E-06 -2.85263599416E-06 -2.95962748941E-06 -3.07046829250E-06
+ -3.18529386490E-06 -3.30424438550E-06 -3.42746491405E-06 -3.55510556029E-06
+ -3.68732165885E-06 -3.82427395030E-06 -3.96612876833E-06 -4.11305823351E-06
+ -4.26524045367E-06 -4.42285973127E-06 -4.58610677785E-06 -4.75517893596E-06
+ -4.93028040876E-06 -5.11162249747E-06 -5.29942384713E-06 -5.49391070079E-06
+ -5.69531716245E-06 -5.90388546918E-06 -6.11986627255E-06 -6.34351892982E-06
+ -6.57511180518E-06 -6.81492258138E-06 -7.06323858218E-06 -7.32035710585E-06
+ -7.58658577024E-06 -7.86224286978E-06 -8.14765774476E-06 -8.44317116341E-06
+ -8.74913571711E-06 -9.06591622933E-06 -9.39389017866E-06 -9.73344813635E-06
+ -1.00849942191E-05 -1.04489465575E-05 -1.08257377804E-05 -1.12158155163E-05
+ -1.16196429117E-05 -1.20376991679E-05 -1.24704800958E-05 -1.29184986900E-05
+ -1.33822857229E-05 -1.38623903589E-05 -1.43593807903E-05 -1.48738448950E-05
+ -1.54063909166E-05 -1.59576481681E-05 -1.65282677604E-05 -1.71189233550E-05
+ -1.77303119435E-05 -1.83631546537E-05 -1.90181975835E-05 -1.96962126632E-05
+ -2.03979985487E-05 -2.11243815438E-05 -2.18762165564E-05 -2.26543880855E-05
+ -2.34598112441E-05 -2.42934328162E-05 -2.51562323508E-05 -2.60492232939E-05
+ -2.69734541586E-05 -2.79300097363E-05 -2.89200123501E-05 -2.99446231501E-05
+ -3.10050434546E-05 -3.21025161373E-05 -3.32383270615E-05 -3.44138065653E-05
+ -3.56303309965E-05 -3.68893243014E-05 -3.81922596683E-05 -3.95406612270E-05
+ -4.09361058080E-05 -4.23802247613E-05 -4.38747058386E-05 -4.54212951403E-05
+ -4.70217991293E-05 -4.86780867149E-05 -5.03920914078E-05 -5.21658135497E-05
+ -5.40013226202E-05 -5.59007596226E-05 -5.78663395523E-05 -5.99003539502E-05
+ -6.20051735442E-05 -6.41832509818E-05 -6.64371236565E-05 -6.87694166323E-05
+ -7.11828456684E-05 -7.36802203486E-05 -7.62644473183E-05 -7.89385336330E-05
+ -8.17055902226E-05 -8.45688354745E-05 -8.75315989408E-05 -9.05973251728E-05
+ -9.37695776877E-05 -9.70520430722E-05 -1.00448535227E-04 -1.03962999760E-04
+ -1.07599518523E-04 -1.11362314318E-04 -1.15255755753E-04 -1.19284362272E-04
+ -1.23452809354E-04 -1.27765933898E-04 -1.32228739783E-04 -1.36846403630E-04
+ -1.41624280757E-04 -1.46567911337E-04 -1.51683026775E-04 -1.56975556295E-04
+ -1.62451633766E-04 -1.68117604748E-04 -1.73980033798E-04 -1.80045712008E-04
+ -1.86321664822E-04 -1.92815160105E-04 -1.99533716501E-04 -2.06485112076E-04
+ -2.13677393251E-04 -2.21118884056E-04 -2.28818195690E-04 -2.36784236413E-04
+ -2.45026221787E-04 -2.53553685253E-04 -2.62376489085E-04 -2.71504835717E-04
+ -2.80949279456E-04 -2.90720738600E-04 -3.00830507974E-04 -3.11290271894E-04
+ -3.22112117577E-04 -3.33308549016E-04 -3.44892501321E-04 -3.56877355565E-04
+ -3.69276954133E-04 -3.82105616597E-04 -3.95378156139E-04 -4.09109896536E-04
+ -4.23316689731E-04 -4.38014934000E-04 -4.53221592751E-04 -4.68954213958E-04
+ -4.85230950270E-04 -5.02070579805E-04 -5.19492527656E-04 -5.37516888140E-04
+ -5.56164447798E-04 -5.75456709193E-04 -5.95415915520E-04 -6.16065076056E-04
+ -6.37427992484E-04 -6.59529286117E-04 -6.82394426049E-04 -7.06049758276E-04
+ -7.30522535811E-04 -7.55840949819E-04 -7.82034161829E-04 -8.09132337038E-04
+ -8.37166678753E-04 -8.66169464011E-04 -8.96174080413E-04 -9.27215064212E-04
+ -9.59328139705E-04 -9.92550259958E-04 -1.02691964893E-03 -1.06247584503E-03
+ -1.09925974612E-03 -1.13731365614E-03 -1.17668133321E-03 -1.21740803941E-03
+ -1.25954059230E-03 -1.30312741812E-03 -1.34821860682E-03 -1.39486596894E-03
+ -1.44312309448E-03 -1.49304541368E-03 -1.54469025990E-03 -1.59811693463E-03
+ -1.65338677470E-03 -1.71056322173E-03 -1.76971189395E-03 -1.83090066043E-03
+ -1.89419971785E-03 -1.95968166979E-03 -2.02742160871E-03 -2.09749720075E-03
+ -2.16998877328E-03 -2.24497940542E-03 -2.32255502168E-03 -2.40280448856E-03
+ -2.48581971458E-03 -2.57169575349E-03 -2.66053091102E-03 -2.75242685516E-03
+ -2.84748873009E-03 -2.94582527395E-03 -3.04754894048E-03 -3.15277602471E-03
+ -3.26162679278E-03 -3.37422561613E-03 -3.49070111006E-03 -3.61118627684E-03
+ -3.73581865361E-03 -3.86474046506E-03 -3.99809878116E-03 -4.13604568005E-03
+ -4.27873841626E-03 -4.42633959437E-03 -4.57901734838E-03 -4.73694552690E-03
+ -4.90030388428E-03 -5.06927827802E-03 -5.24406087243E-03 -5.42485034895E-03
+ -5.61185212315E-03 -5.80527856869E-03 -6.00534924846E-03 -6.21229115302E-03
+ -6.42633894664E-03 -6.64773522113E-03 -6.87673075759E-03 -7.11358479654E-03
+ -7.35856531629E-03 -7.61194932019E-03 -7.87402313266E-03 -8.14508270446E-03
+ -8.42543392729E-03 -8.71539295807E-03 -9.01528655318E-03 -9.32545241267E-03
+ -9.64623953507E-03 -9.97800858273E-03 -1.03211322581E-02 -1.06759956913E-02
+ -1.10429968388E-02 -1.14225468943E-02 -1.18150707111E-02 -1.22210072371E-02
+ -1.26408099616E-02 -1.30749473761E-02 -1.35239034465E-02 -1.39881780998E-02
+ -1.44682877238E-02 -1.49647656804E-02 -1.54781628331E-02 -1.60090480889E-02
+ -1.65580089538E-02 -1.71256521039E-02 -1.77126039705E-02 -1.83195113409E-02
+ -1.89470419735E-02 -1.95958852289E-02 -2.02667527160E-02 -2.09603789540E-02
+ -2.16775220493E-02 -2.24189643887E-02 -2.31855133478E-02 -2.39780020152E-02
+ -2.47972899323E-02 -2.56442638482E-02 -2.65198384903E-02 -2.74249573500E-02
+ -2.83605934827E-02 -2.93277503230E-02 -3.03274625136E-02 -3.13607967482E-02
+ -3.24288526273E-02 -3.35327635269E-02 -3.46736974786E-02 -3.58528580612E-02
+ -3.70714853023E-02 -3.83308565887E-02 -3.96322875855E-02 -4.09771331611E-02
+ -4.23667883179E-02 -4.38026891268E-02 -4.52863136631E-02 -4.68191829431E-02
+ -4.84028618575E-02 -5.00389601017E-02 -5.17291330978E-02 -5.34750829071E-02
+ -5.52785591302E-02 -5.71413597898E-02 -5.90653321943E-02 -6.10523737769E-02
+ -6.31044329071E-02 -6.52235096679E-02 -6.74116565969E-02 -6.96709793814E-02
+ -7.20036375062E-02 -7.44118448432E-02 -7.68978701800E-02 -7.94640376760E-02
+ -8.21127272409E-02 -8.48463748257E-02 -8.76674726154E-02 -9.05785691164E-02
+ -9.35822691241E-02 -9.66812335614E-02 -9.98781791741E-02 -1.03175878070E-01
+ -1.06577157089E-01 -1.10084896981E-01 -1.13702031387E-01 -1.17431545597E-01
+ -1.21276475062E-01 -1.25239903650E-01 -1.29324961616E-01 -1.33534823262E-01
+ -1.37872704270E-01 -1.42341858667E-01 -1.46945575406E-01 -1.51687174521E-01
+ -1.56570002836E-01 -1.61597429176E-01 -1.66772839054E-01 -1.72099628793E-01
+ -1.77581199035E-01 -1.83220947593E-01 -1.89022261595E-01 -1.94988508881E-01
+ -2.01123028576E-01 -2.07429120796E-01 -2.13910035431E-01 -2.20568959915E-01
+ -2.27409005937E-01 -2.34433195014E-01 -2.41644442840E-01 -2.49045542341E-01
+ -2.56639145348E-01 -2.64427742789E-01 -2.72413643333E-01 -2.80598950355E-01
+ -2.88985537154E-01 -2.97575020302E-01 -3.06368731030E-01 -3.15367684536E-01
+ -3.24572547115E-01 -3.33983600999E-01 -3.43600706805E-01 -3.53423263486E-01
+ -3.63450165686E-01 -3.73679758417E-01 -3.84109788966E-01 -3.94737355974E-01
+ -4.05558855639E-01 -4.16569925007E-01 -4.27765382354E-01 -4.39139164690E-01
+ -4.50684262455E-01 -4.62392651514E-01 -4.74255222629E-01 -4.86261708630E-01
+ -4.98400609592E-01 -5.10659116402E-01 -5.23023033183E-01 -5.35476699173E-01
+ -5.48002910737E-01 -5.60582844332E-01 -5.73195981398E-01 -5.85820036250E-01
+ -5.98430888237E-01 -6.11002519562E-01 -6.23506960317E-01 -6.35914242431E-01
+ -6.48192364363E-01 -6.60307268470E-01 -6.72222833043E-01 -6.83900881058E-01
+ -6.95301207602E-01 -7.06381627839E-01 -7.17098047136E-01 -7.27404554615E-01
+ -7.37253540920E-01 -7.46595840271E-01 -7.55380896102E-01 -7.63556948474E-01
+ -7.71071240275E-01 -7.77870237811E-01 -7.83899859865E-01 -7.89105707792E-01
+ -7.93433287702E-01 -7.96828214678E-01 -7.99236388306E-01 -8.00604129176E-01
+ -8.00878267722E-01 -8.00006180597E-01 -7.97935776380E-01 -7.94615442757E-01
+ -7.89993982371E-01 -7.84020585389E-01 -7.76644914333E-01 -7.67817411563E-01
+ -7.57489981584E-01 -7.45617247576E-01 -7.32158629952E-01 -7.17081536144E-01
+ -7.00365970620E-01 -6.82010847851E-01 -6.62042179302E-01 -6.40523046901E-01
+ -6.17564775911E-01 -5.93337838068E-01 -5.68079541334E-01 -5.42093187727E-01
+ -5.15729657946E-01 -4.89336666226E-01 -4.63152298658E-01 -4.37106591669E-01
+ -4.10475970334E-01 -3.81307740058E-01 -3.47388927468E-01 -3.13876762582E-01
+ -2.81792798104E-01 -2.51276069994E-01 -2.22443362183E-01 -1.95388536762E-01
+ -1.70182223216E-01 -1.46871837341E-01 -1.25481950629E-01 -1.06014983679E-01
+ -8.84522149888E-02 -7.27550831441E-02 -5.88667448861E-02 -4.67138730106E-02
+ -3.62086313168E-02 -2.72508178302E-02 -1.97300946431E-02 -1.35283039492E-02
+ -8.52177815278E-03 -4.58365271135E-03 -1.58608841319E-03 5.97579042692E-04
+ 2.09084797340E-03 3.01219206085E-03 3.47340616902E-03 3.57812529517E-03
+ 3.42057298266E-03 3.08450868239E-03 2.64241871239E-03 2.15493113031E-03
+ 1.67045665531E-03 1.22524643523E-03 8.43551390666E-04 5.38396257309E-04
+ 3.12574638328E-04 1.60259462505E-04 6.91196058770E-05 2.29819806309E-05
+ 4.91633326800E-06 4.17193757083E-07 5.39568132470E-09 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ -5.62073119360E+00 1.25803238937E+01 -1.53142859076E+01 5.76921966039E+01
+ -2.07213998111E+02 3.78451314788E+02 -3.37820392614E+02 1.18096746994E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 1 2 0 i j (l(j))
+ -3.66428685768E-01 Q_int
+ 0.00000000000E+00 -8.82078032601E-12 -3.58888143760E-11 -8.21399690794E-11
+ -1.48547622318E-10 -2.36124045900E-10 -3.45921837749E-10 -4.79035405033E-10
+ -6.36602500018E-10 -8.19805810481E-10 -1.02987460661E-09 -1.26808644634E-09
+ -1.53576894120E-09 -1.83430158478E-09 -2.16511764593E-09 -2.52970612913E-09
+ -2.92961380417E-09 -3.36644730770E-09 -3.84187531914E-09 -4.35763081343E-09
+ -4.91551339356E-09 -5.51739170530E-09 -6.16520593736E-09 -6.86097040974E-09
+ -7.60677625337E-09 -8.40479418427E-09 -9.25727737560E-09 -1.01665644308E-08
+ -1.11350824614E-08 -1.21653502737E-08 -1.32599816668E-08 -1.44216888473E-08
+ -1.56532859643E-08 -1.69576927677E-08 -1.83379383964E-08 -1.97971652985E-08
+ -2.13386332900E-08 -2.29657237557E-08 -2.46819439973E-08 -2.64909317349E-08
+ -2.83964597653E-08 -3.04024407851E-08 -3.25129323815E-08 -3.47321421990E-08
+ -3.70644332866E-08 -3.95143296330E-08 -4.20865218948E-08 -4.47858733263E-08
+ -4.76174259155E-08 -5.05864067364E-08 -5.36982345224E-08 -5.69585264701E-08
+ -6.03731052810E-08 -6.39480064495E-08 -6.76894858050E-08 -7.16040273187E-08
+ -7.56983511820E-08 -7.99794221679E-08 -8.44544582837E-08 -8.91309397267E-08
+ -9.40166181514E-08 -9.91195262612E-08 -1.04447987734E-07 -1.10010627494E-07
+ -1.15816382344E-07 -1.21874511962E-07 -1.28194610293E-07 -1.34786617321E-07
+ -1.41660831272E-07 -1.48827921221E-07 -1.56298940154E-07 -1.64085338480E-07
+ -1.72198978007E-07 -1.80652146417E-07 -1.89457572236E-07 -1.98628440325E-07
+ -2.08178407918E-07 -2.18121621208E-07 -2.28472732516E-07 -2.39246918057E-07
+ -2.50459896325E-07 -2.62127947110E-07 -2.74267931186E-07 -2.86897310676E-07
+ -3.00034170134E-07 -3.13697238343E-07 -3.27905910894E-07 -3.42680273527E-07
+ -3.58041126295E-07 -3.74010008570E-07 -3.90609224907E-07 -4.07861871814E-07
+ -4.25791865448E-07 -4.44423970279E-07 -4.63783828738E-07 -4.83897991904E-07
+ -5.04793951251E-07 -5.26500171502E-07 -5.49046124613E-07 -5.72462324946E-07
+ -5.96780365661E-07 -6.22032956363E-07 -6.48253962065E-07 -6.75478443493E-07
+ -7.03742698797E-07 -7.33084306702E-07 -7.63542171156E-07 -7.95156567534E-07
+ -8.27969190427E-07 -8.62023203109E-07 -8.97363288698E-07 -9.34035703103E-07
+ -9.72088329803E-07 -1.01157073652E-06 -1.05253423386E-06 -1.09503193599E-06
+ -1.13911882340E-06 -1.18485180786E-06 -1.23228979960E-06 -1.28149377687E-06
+ -1.33252685783E-06 -1.38545437500E-06 -1.44034395225E-06 -1.49726558446E-06
+ -1.55629171996E-06 -1.61749734579E-06 -1.68096007595E-06 -1.74676024264E-06
+ -1.81498099077E-06 -1.88570837560E-06 -1.95903146388E-06 -2.03504243842E-06
+ -2.11383670630E-06 -2.19551301084E-06 -2.28017354740E-06 -2.36792408323E-06
+ -2.45887408146E-06 -2.55313682934E-06 -2.65082957097E-06 -2.75207364458E-06
+ -2.85699462459E-06 -2.96572246853E-06 -3.07839166914E-06 -3.19514141158E-06
+ -3.31611573625E-06 -3.44146370710E-06 -3.57133958582E-06 -3.70590301206E-06
+ -3.84531918983E-06 -3.98975908044E-06 -4.13939960197E-06 -4.29442383578E-06
+ -4.45502124006E-06 -4.62138787079E-06 -4.79372661035E-06 -4.97224740401E-06
+ -5.15716750461E-06 -5.34871172569E-06 -5.54711270336E-06 -5.75261116721E-06
+ -5.96545622062E-06 -6.18590563074E-06 -6.41422612842E-06 -6.65069371863E-06
+ -6.89559400149E-06 -7.14922250445E-06 -7.41188502595E-06 -7.68389799088E-06
+ -7.96558881843E-06 -8.25729630255E-06 -8.55937100559E-06 -8.87217566557E-06
+ -9.19608561741E-06 -9.53148922884E-06 -9.87878835125E-06 -1.02383987862E-05
+ -1.06107507681E-05 -1.09962894630E-05 -1.13954754859E-05 -1.18087854341E-05
+ -1.22367124407E-05 -1.26797667463E-05 -1.31384762901E-05 -1.36133873227E-05
+ -1.41050650385E-05 -1.46140942314E-05 -1.51410799717E-05 -1.56866483078E-05
+ -1.62514469908E-05 -1.68361462251E-05 -1.74414394446E-05 -1.80680441151E-05
+ -1.87167025656E-05 -1.93881828471E-05 -2.00832796219E-05 -2.08028150829E-05
+ -2.15476399053E-05 -2.23186342306E-05 -2.31167086846E-05 -2.39428054313E-05
+ -2.47978992618E-05 -2.56829987221E-05 -2.65991472788E-05 -2.75474245259E-05
+ -2.85289474325E-05 -2.95448716340E-05 -3.05963927673E-05 -3.16847478531E-05
+ -3.28112167246E-05 -3.39771235067E-05 -3.51838381450E-05 -3.64327779888E-05
+ -3.77254094275E-05 -3.90632495846E-05 -4.04478680691E-05 -4.18808887878E-05
+ -4.33639918204E-05 -4.48989153585E-05 -4.64874577121E-05 -4.81314793849E-05
+ -4.98329052215E-05 -5.15937266284E-05 -5.34160038717E-05 -5.53018684538E-05
+ -5.72535255723E-05 -5.92732566637E-05 -6.13634220343E-05 -6.35264635826E-05
+ -6.57649076148E-05 -6.80813677575E-05 -7.04785479716E-05 -7.29592456686E-05
+ -7.55263549356E-05 -7.81828698706E-05 -8.09318880336E-05 -8.37766140156E-05
+ -8.67203631314E-05 -8.97665652391E-05 -9.29187686913E-05 -9.61806444232E-05
+ -9.95559901800E-05 -1.03048734891E-04 -1.06662943195E-04 -1.10402820120E-04
+ -1.14272715923E-04 -1.18277131103E-04 -1.22420721576E-04 -1.26708304039E-04
+ -1.31144861511E-04 -1.35735549070E-04 -1.40485699779E-04 -1.45400830831E-04
+ -1.50486649889E-04 -1.55749061657E-04 -1.61194174666E-04 -1.66828308305E-04
+ -1.72658000087E-04 -1.78690013164E-04 -1.84931344104E-04 -1.91389230935E-04
+ -1.98071161464E-04 -2.04984881884E-04 -2.12138405676E-04 -2.19540022816E-04
+ -2.27198309301E-04 -2.35122137001E-04 -2.43320683846E-04 -2.51803444374E-04
+ -2.60580240627E-04 -2.69661233435E-04 -2.79056934076E-04 -2.88778216343E-04
+ -2.98836329027E-04 -3.09242908821E-04 -3.20009993677E-04 -3.31150036612E-04
+ -3.42675919993E-04 -3.54600970312E-04 -3.66938973466E-04 -3.79704190565E-04
+ -3.92911374274E-04 -4.06575785726E-04 -4.20713212004E-04 -4.35339984234E-04
+ -4.50472996285E-04 -4.66129724118E-04 -4.82328245798E-04 -4.99087262187E-04
+ -5.16426118346E-04 -5.34364825672E-04 -5.52924084790E-04 -5.72125309230E-04
+ -5.91990649913E-04 -6.12543020469E-04 -6.33806123430E-04 -6.55804477308E-04
+ -6.78563444606E-04 -7.02109260776E-04 -7.26469064175E-04 -7.51670927034E-04
+ -7.77743887492E-04 -8.04717982711E-04 -8.32624283129E-04 -8.61494927874E-04
+ -8.91363161389E-04 -9.22263371290E-04 -9.54231127533E-04 -9.87303222889E-04
+ -1.02151771481E-03 -1.05691396872E-03 -1.09353270275E-03 -1.13141603401E-03
+ -1.17060752645E-03 -1.21115224030E-03 -1.25309678319E-03 -1.29648936304E-03
+ -1.34137984270E-03 -1.38781979644E-03 -1.43586256837E-03 -1.48556333280E-03
+ -1.53697915667E-03 -1.59016906403E-03 -1.64519410275E-03 -1.70211741346E-03
+ -1.76100430075E-03 -1.82192230685E-03 -1.88494128767E-03 -1.95013349154E-03
+ -2.01757364042E-03 -2.08733901392E-03 -2.15950953613E-03 -2.23416786530E-03
+ -2.31139948653E-03 -2.39129280755E-03 -2.47393925768E-03 -2.55943339007E-03
+ -2.64787298729E-03 -2.73935917052E-03 -2.83399651223E-03 -2.93189315262E-03
+ -3.03316091995E-03 -3.13791545473E-03 -3.24627633805E-03 -3.35836722411E-03
+ -3.47431597705E-03 -3.59425481227E-03 -3.71832044239E-03 -3.84665422784E-03
+ -3.97940233249E-03 -4.11671588415E-03 -4.25875114043E-03 -4.40566965973E-03
+ -4.55763847794E-03 -4.71483029063E-03 -4.87742364116E-03 -5.04560311471E-03
+ -5.21955953853E-03 -5.39949018852E-03 -5.58559900227E-03 -5.77809679884E-03
+ -5.97720150549E-03 -6.18313839131E-03 -6.39614030832E-03 -6.61644793988E-03
+ -6.84431005684E-03 -7.07998378152E-03 -7.32373485974E-03 -7.57583794119E-03
+ -7.83657686820E-03 -8.10624497322E-03 -8.38514538528E-03 -8.67359134540E-03
+ -8.97190653152E-03 -9.28042539285E-03 -9.59949349396E-03 -9.92946786899E-03
+ -1.02707173859E-02 -1.06236231210E-02 -1.09885787446E-02 -1.13659909169E-02
+ -1.17562796950E-02 -1.21598789515E-02 -1.25772368041E-02 -1.30088160569E-02
+ -1.34550946536E-02 -1.39165661425E-02 -1.43937401537E-02 -1.48871428881E-02
+ -1.53973176200E-02 -1.59248252104E-02 -1.64702446344E-02 -1.70341735208E-02
+ -1.76172287041E-02 -1.82200467897E-02 -1.88432847319E-02 -1.94876204245E-02
+ -2.01537533043E-02 -2.08424049670E-02 -2.15543197963E-02 -2.22902656044E-02
+ -2.30510342860E-02 -2.38374424830E-02 -2.46503322615E-02 -2.54905718003E-02
+ -2.63590560900E-02 -2.72567076421E-02 -2.81844772091E-02 -2.91433445124E-02
+ -3.01343189799E-02 -3.11584404905E-02 -3.22167801257E-02 -3.33104409270E-02
+ -3.44405586579E-02 -3.56083025687E-02 -3.68148761641E-02 -3.80615179708E-02
+ -3.93495023039E-02 -4.06801400298E-02 -4.20547793250E-02 -4.34748064260E-02
+ -4.49416463707E-02 -4.64567637268E-02 -4.80216633050E-02 -4.96378908535E-02
+ -5.13070337309E-02 -5.30307215536E-02 -5.48106268138E-02 -5.66484654634E-02
+ -5.85459974598E-02 -6.05050272682E-02 -6.25274043150E-02 -6.46150233869E-02
+ -6.67698249691E-02 -6.89937955157E-02 -7.12889676461E-02 -7.36574202584E-02
+ -7.61012785526E-02 -7.86227139548E-02 -8.12239439315E-02 -8.39072316864E-02
+ -8.66748857266E-02 -8.95292592888E-02 -9.24727496112E-02 -9.55077970405E-02
+ -9.86368839584E-02 -1.01862533513E-01 -1.05187308143E-01 -1.08613807870E-01
+ -1.12144668354E-01 -1.15782558680E-01 -1.19530178867E-01 -1.23390257074E-01
+ -1.27365546483E-01 -1.31458821827E-01 -1.35672875564E-01 -1.40010513638E-01
+ -1.44474550824E-01 -1.49067805629E-01 -1.53793094703E-01 -1.58653226747E-01
+ -1.63650995878E-01 -1.68789174420E-01 -1.74070505089E-01 -1.79497692528E-01
+ -1.85073394168E-01 -1.90800210369E-01 -1.96680673801E-01 -2.02717238026E-01
+ -2.08912265251E-01 -2.15268013185E-01 -2.21786620988E-01 -2.28470094238E-01
+ -2.35320288902E-01 -2.42338894242E-01 -2.49527414629E-01 -2.56887150210E-01
+ -2.64419176399E-01 -2.72124322133E-01 -2.80003146872E-01 -2.88055916288E-01
+ -2.96282576620E-01 -3.04682727655E-01 -3.13255594315E-01 -3.21999996816E-01
+ -3.30914319388E-01 -3.39996477546E-01 -3.49243883905E-01 -3.58653412537E-01
+ -3.68221361898E-01 -3.77943416345E-01 -3.87814606275E-01 -3.97829266952E-01
+ -4.07980996080E-01 -4.18262610217E-01 -4.28666100138E-01 -4.39182585272E-01
+ -4.49802267378E-01 -4.60514383632E-01 -4.71307159353E-01 -4.82167760607E-01
+ -4.93082246975E-01 -5.04035524808E-01 -5.15011301343E-01 -5.25992040093E-01
+ -5.36958917970E-01 -5.47891784673E-01 -5.58769124913E-01 -5.69568024117E-01
+ -5.80264138323E-01 -5.90831669039E-01 -6.01243343911E-01 -6.11470404139E-01
+ -6.21482599620E-01 -6.31248192918E-01 -6.40733973205E-01 -6.49905281401E-01
+ -6.58726047840E-01 -6.67158843791E-01 -6.75164948309E-01 -6.82704431839E-01
+ -6.89736258110E-01 -6.96218405791E-01 -7.02108011416E-01 -7.07361534986E-01
+ -7.11934949589E-01 -7.15783956212E-01 -7.18864224744E-01 -7.21131661850E-01
+ -7.22542706107E-01 -7.23054650310E-01 -7.22625990362E-01 -7.21216799528E-01
+ -7.18789126103E-01 -7.15307411746E-01 -7.10738926832E-01 -7.05054218193E-01
+ -6.98227563704E-01 -6.90237427193E-01 -6.81066906404E-01 -6.70704166169E-01
+ -6.59142848828E-01 -6.46382454372E-01 -6.32428684118E-01 -6.17293744111E-01
+ -6.00996608381E-01 -5.83563247766E-01 -5.65026837826E-01 -5.45427969299E-01
+ -5.24814896815E-01 -5.03243875518E-01 -4.80779649690E-01 -4.57496169919E-01
+ -4.33477621423E-01 -4.08819838331E-01 -3.83632145216E-01 -3.58039589107E-01
+ -3.32185374109E-01 -3.06233043453E-01 -2.80367506429E-01 -2.54793286342E-01
+ -2.29727234191E-01 -2.05381214614E-01 -1.81927644715E-01 -1.59436852841E-01
+ -1.37769457794E-01 -1.16398553552E-01 -9.47361878922E-02 -7.45408619325E-02
+ -5.61581498225E-02 -3.96291015619E-02 -2.49719603106E-02 -1.21821970009E-02
+ -1.23291259348E-03 7.92438897576E-03 1.53586684608E-02 2.11578724363E-02
+ 2.54271323158E-02 2.82866734382E-02 2.98694656424E-02 3.03186687752E-02
+ 2.97849032285E-02 2.84234202093E-02 2.63911911419E-02 2.38440101087E-02
+ 2.09336093387E-02 1.78048972681E-02 1.45932941050E-02 1.14222863775E-02
+ 8.40115053142E-03 5.62297779250E-03 3.16293483066E-03 1.07690766939E-03
+ -5.99531058288E-04 -1.85165610357E-03 -2.68564687491E-03 -3.12794597567E-03
+ -3.22361077902E-03 -3.03447343790E-03 -2.63486438342E-03 -2.10742942274E-03
+ -1.53612351603E-03 -9.98438353438E-04 -5.56256064445E-04 -2.46585735160E-04
+ -7.41822508192E-05 -9.77023352496E-06 -2.50796858065E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ -7.86128380121E+00 2.98990632880E+01 -5.30340567955E+01 7.07481038233E+01
+ -1.01822986782E+02 1.34276515166E+02 -1.08701802819E+02 3.68097016125E+01
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 1 3 1 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 -1.51336486113E-17 -1.24200059227E-16 -4.30046025927E-16
+ -1.04587960293E-15 -2.09601053072E-15 -3.71663665216E-15 -6.05667897961E-15
+ -9.27866822229E-15 -1.35596857386E-14 -1.90923620435E-14 -2.60859361732E-14
+ -3.47673793934E-14 -4.53825869303E-14 -5.81976416037E-14 -7.35001534610E-14
+ -9.16006797309E-14 -1.12834229658E-13 -1.37561859027E-13 -1.66172359454E-13
+ -1.99084047788E-13 -2.36746661289E-13 -2.79643364511E-13 -3.28292874197E-13
+ -3.83251708798E-13 -4.45116569601E-13 -5.14526860844E-13 -5.92167356581E-13
+ -6.78771022497E-13 -7.75122001307E-13 -8.82058770849E-13 -1.00047748449E-12
+ -1.13133550393E-12 -1.27565513520E-12 -1.43452757887E-12 -1.60911710667E-12
+ -1.80066547671E-12 -2.01049660066E-12 -2.24002147685E-12 -2.49074340368E-12
+ -2.76426348911E-12 -3.06228647224E-12 -3.38662687433E-12 -3.73921549715E-12
+ -4.12210628792E-12 -4.53748359078E-12 -4.98766980595E-12 -5.47513347898E-12
+ -6.00249784354E-12 -6.57254984243E-12 -7.18824965303E-12 -7.85274074466E-12
+ -8.56936049672E-12 -9.34165140822E-12 -1.01733729309E-11 -1.10685139596E-11
+ -1.20313060161E-11 -1.30662371631E-11 -1.41780666891E-11 -1.53718406048E-11
+ -1.66529079964E-11 -1.80269382800E-11 -1.94999394084E-11 -2.10782770794E-11
+ -2.27686950017E-11 -2.45783362737E-11 -2.65147659367E-11 -2.85859947647E-11
+ -3.08005043582E-11 -3.31672736115E-11 -3.56958066282E-11 -3.83961621624E-11
+ -4.12789846668E-11 -4.43555370358E-11 -4.76377351332E-11 -5.11381842004E-11
+ -5.48702172465E-11 -5.88479355265E-11 -6.30862512190E-11 -6.76009324215E-11
+ -7.24086505875E-11 -7.75270305357E-11 -8.29747031694E-11 -8.87713610507E-11
+ -9.49378169815E-11 -1.01496065753E-10 -1.08469349232E-10 -1.15882224963E-10
+ -1.23760638473E-10 -1.32131999474E-10 -1.41025262179E-10 -1.50471009940E-10
+ -1.60501544445E-10 -1.71150979717E-10 -1.82455341167E-10 -1.94452669972E-10
+ -2.07183133061E-10 -2.20689139008E-10 -2.35015460143E-10 -2.50209361217E-10
+ -2.66320734965E-10 -2.83402244926E-10 -3.01509475931E-10 -3.20701092627E-10
+ -3.41039006501E-10 -3.62588551833E-10 -3.85418671051E-10 -4.09602110003E-10
+ -4.35215623653E-10 -4.62340192765E-10 -4.91061252149E-10 -5.21468931089E-10
+ -5.53658306595E-10 -5.87729670153E-10 -6.23788808693E-10 -6.61947300523E-10
+ -7.02322827031E-10 -7.45039500966E-10 -7.90228212202E-10 -8.38026991888E-10
+ -8.88581395968E-10 -9.42044909079E-10 -9.98579369932E-10 -1.05835541927E-09
+ -1.12155297163E-09 -1.18836171216E-09 -1.25898161978E-09 -1.33362351812E-09
+ -1.41250965567E-09 -1.49587431673E-09 -1.58396446469E-09 -1.67704041945E-09
+ -1.77537657072E-09 -1.87926212910E-09 -1.98900191691E-09 -2.10491720093E-09
+ -2.22734656922E-09 -2.35664685428E-09 -2.49319410508E-09 -2.63738461052E-09
+ -2.78963597699E-09 -2.95038826285E-09 -3.12010517295E-09 -3.29927531622E-09
+ -3.48841352969E-09 -3.68806227245E-09 -3.89879309323E-09 -4.12120817543E-09
+ -4.35594196376E-09 -4.60366287661E-09 -4.86507510892E-09 -5.14092052999E-09
+ -5.43198068151E-09 -5.73907888087E-09 -6.06308243540E-09 -6.40490497332E-09
+ -6.76550889749E-09 -7.14590796850E-09 -7.54717002388E-09 -7.97041984040E-09
+ -8.41684214730E-09 -8.88768479803E-09 -9.38426210906E-09 -9.90795837442E-09
+ -1.04602315652E-08 -1.10426172238E-08 -1.16567325628E-08 -1.23042807801E-08
+ -1.29870556002E-08 -1.37069460549E-08 -1.44659415151E-08 -1.52661369876E-08
+ -1.61097386895E-08 -1.69990699165E-08 -1.79365772193E-08 -1.89248369042E-08
+ -1.99665618756E-08 -2.10646088382E-08 -2.22219858770E-08 -2.34418604359E-08
+ -2.47275677146E-08 -2.60826195076E-08 -2.75107135060E-08 -2.90157430884E-08
+ -3.06018076258E-08 -3.22732233267E-08 -3.40345346521E-08 -3.58905263290E-08
+ -3.78462359943E-08 -3.99069675028E-08 -4.20783049317E-08 -4.43661273217E-08
+ -4.67766241894E-08 -4.93163118545E-08 -5.19920506225E-08 -5.48110628689E-08
+ -5.77809520705E-08 -6.09097228359E-08 -6.42058019843E-08 -6.76780607309E-08
+ -7.13358380331E-08 -7.51889651621E-08 -7.92477915605E-08 -8.35232120556E-08
+ -8.80266954983E-08 -9.27703149022E-08 -9.77667791617E-08 -1.03029466431E-07
+ -1.08572459253E-07 -1.14410581524E-07 -1.20559437399E-07 -1.27035452233E-07
+ -1.33855915662E-07 -1.41039026944E-07 -1.48603942673E-07 -1.56570826990E-07
+ -1.64960904420E-07 -1.73796515481E-07 -1.83101175196E-07 -1.92899634671E-07
+ -2.03217945897E-07 -2.14083529939E-07 -2.25525248695E-07 -2.37573480412E-07
+ -2.50260199145E-07 -2.63619058384E-07 -2.77685479046E-07 -2.92496742071E-07
+ -3.08092085871E-07 -3.24512808860E-07 -3.41802377360E-07 -3.60006539143E-07
+ -3.79173442907E-07 -3.99353764014E-07 -4.20600836781E-07 -4.42970793706E-07
+ -4.66522711965E-07 -4.91318767564E-07 -5.17424397560E-07 -5.44908470748E-07
+ -5.73843467279E-07 -6.04305667664E-07 -6.36375351655E-07 -6.70137007517E-07
+ -7.05679552239E-07 -7.43096563253E-07 -7.82486522256E-07 -8.23953071778E-07
+ -8.67605285143E-07 -9.13557950549E-07 -9.61931869973E-07 -1.01285417370E-06
+ -1.06645865129E-06 -1.12288609978E-06 -1.18228469016E-06 -1.24481035291E-06
+ -1.31062718371E-06 -1.37990787033E-06 -1.45283414179E-06 -1.52959724101E-06
+ -1.61039842209E-06 -1.69544947360E-06 -1.78497326916E-06 -1.87920434677E-06
+ -1.97838951835E-06 -2.08278851118E-06 -2.19267464268E-06 -2.30833553055E-06
+ -2.43007383987E-06 -2.55820806923E-06 -2.69307337787E-06 -2.83502245598E-06
+ -2.98442644036E-06 -3.14167587796E-06 -3.30718173954E-06 -3.48137648633E-06
+ -3.66471519221E-06 -3.85767672454E-06 -4.06076498649E-06 -4.27451022410E-06
+ -4.49947040168E-06 -4.73623264870E-06 -4.98541478228E-06 -5.24766690893E-06
+ -5.52367310989E-06 -5.81415321422E-06 -6.11986466436E-06 -6.44160447884E-06
+ -6.78021131735E-06 -7.13656765335E-06 -7.51160205988E-06 -7.90629161441E-06
+ -8.32166442906E-06 -8.75880231245E-06 -9.21884357031E-06 -9.70298595181E-06
+ -1.02124897494E-05 -1.07486810598E-05 -1.13129552153E-05 -1.19067803929E-05
+ -1.25317014114E-05 -1.31893437272E-05 -1.38814176361E-05 -1.46097226953E-05
+ -1.53761523744E-05 -1.61826989491E-05 -1.70314586485E-05 -1.79246370705E-05
+ -1.88645548791E-05 -1.98536537966E-05 -2.08945029087E-05 -2.19898052960E-05
+ -2.31424050106E-05 -2.43552944148E-05 -2.56316219013E-05 -2.69747000134E-05
+ -2.83880139877E-05 -2.98752307396E-05 -3.14402083148E-05 -3.30870058320E-05
+ -3.48198939402E-05 -3.66433658188E-05 -3.85621487482E-05 -4.05812162797E-05
+ -4.27058010356E-05 -4.49414081734E-05 -4.72938295461E-05 -4.97691585967E-05
+ -5.23738060225E-05 -5.51145162509E-05 -5.79983847664E-05 -6.10328763349E-05
+ -6.42258441683E-05 -6.75855500810E-05 -7.11206856868E-05 -7.48403946902E-05
+ -7.87542963286E-05 -8.28725100242E-05 -8.72056813070E-05 -9.17650090742E-05
+ -9.65622742544E-05 -1.01609869949E-04 -1.06920833122E-04 -1.12508877929E-04
+ -1.18388430747E-04 -1.24574667018E-04 -1.31083549979E-04 -1.37931871381E-04
+ -1.45137294300E-04 -1.52718398140E-04 -1.60694725951E-04 -1.69086834158E-04
+ -1.77916344849E-04 -1.87206000731E-04 -1.96979722893E-04 -2.07262671527E-04
+ -2.18081309747E-04 -2.29463470654E-04 -2.41438427834E-04 -2.54036969432E-04
+ -2.67291476004E-04 -2.81236002322E-04 -2.95906363333E-04 -3.11340224484E-04
+ -3.27577196616E-04 -3.44658935672E-04 -3.62629247440E-04 -3.81534197596E-04
+ -4.01422227286E-04 -4.22344274552E-04 -4.44353901851E-04 -4.67507429995E-04
+ -4.91864078818E-04 -5.17486114881E-04 -5.44439006588E-04 -5.72791587041E-04
+ -6.02616225028E-04 -6.33989004535E-04 -6.66989913176E-04 -7.01703039987E-04
+ -7.38216783020E-04 -7.76624067209E-04 -8.17022572985E-04 -8.59514976163E-04
+ -9.04209199618E-04 -9.51218677308E-04 -1.00066263122E-03 -1.05266636183E-03
+ -1.10736155274E-03 -1.16488659005E-03 -1.22538689728E-03 -1.28901528643E-03
+ -1.35593232592E-03 -1.42630672630E-03 -1.50031574430E-03 -1.57814560624E-03
+ -1.65999195155E-03 -1.74606029732E-03 -1.83656652473E-03 -1.93173738839E-03
+ -2.03181104953E-03 -2.13703763401E-03 -2.24767981626E-03 -2.36401343023E-03
+ -2.48632810831E-03 -2.61492794962E-03 -2.75013221862E-03 -2.89227607527E-03
+ -3.04171133819E-03 -3.19880728175E-03 -3.36395146868E-03 -3.53755061935E-03
+ -3.72003151909E-03 -3.91184196505E-03 -4.11345175375E-03 -4.32535371094E-03
+ -4.54806476511E-03 -4.78212706608E-03 -5.02810915004E-03 -5.28660715264E-03
+ -5.55824607139E-03 -5.84368107885E-03 -6.14359888806E-03 -6.45871917145E-03
+ -6.78979603465E-03 -7.13761954651E-03 -7.50301732638E-03 -7.88685619000E-03
+ -8.29004385492E-03 -8.71353070641E-03 -9.15831162481E-03 -9.62542787479E-03
+ -1.01159690573E-02 -1.06310751244E-02 -1.11719384572E-02 -1.17398060065E-02
+ -1.23359814965E-02 -1.29618276899E-02 -1.36187687145E-02 -1.43082924489E-02
+ -1.50319529663E-02 -1.57913730336E-02 -1.65882466635E-02 -1.74243417162E-02
+ -1.83015025462E-02 -1.92216526908E-02 -2.01867975937E-02 -2.11990273581E-02
+ -2.22605195222E-02 -2.33735418498E-02 -2.45404551250E-02 -2.57637159432E-02
+ -2.70458794844E-02 -2.83896022584E-02 -2.97976448059E-02 -3.12728743394E-02
+ -3.28182673082E-02 -3.44369118655E-02 -3.61320102177E-02 -3.79068808319E-02
+ -3.97649604749E-02 -4.17098060563E-02 -4.37450962434E-02 -4.58746328143E-02
+ -4.81023417130E-02 -5.04322737639E-02 -5.28686050042E-02 -5.54156365852E-02
+ -5.80777941911E-02 -6.08596269199E-02 -6.37658055661E-02 -6.68011202405E-02
+ -6.99704772565E-02 -7.32788952084E-02 -7.67315001614E-02 -8.03335198659E-02
+ -8.40902769045E-02 -8.80071806717E-02 -9.20897180830E-02 -9.63434428979E-02
+ -1.00773963540E-01 -1.05386929286E-01 -1.10188014689E-01 -1.15182902095E-01
+ -1.20377262100E-01 -1.25776731793E-01 -1.31386890613E-01 -1.37213233656E-01
+ -1.43261142238E-01 -1.49535851530E-01 -1.56042415072E-01 -1.62785665953E-01
+ -1.69770174463E-01 -1.77000201981E-01 -1.84479650907E-01 -1.92212010399E-01
+ -2.00200297709E-01 -2.08446994891E-01 -2.16953980686E-01 -2.25722457372E-01
+ -2.34752872403E-01 -2.44044834664E-01 -2.53597025218E-01 -2.63407102428E-01
+ -2.73471601406E-01 -2.83785827785E-01 -2.94343745866E-01 -3.05137861313E-01
+ -3.16159098609E-01 -3.27396673659E-01 -3.38837962034E-01 -3.50468363519E-01
+ -3.62271163826E-01 -3.74227394528E-01 -3.86315692562E-01 -3.98512160878E-01
+ -4.10790232166E-01 -4.23120537923E-01 -4.35470785509E-01 -4.47805646255E-01
+ -4.60086658095E-01 -4.72272146665E-01 -4.84317169246E-01 -4.96173486335E-01
+ -5.07789566024E-01 -5.19110626656E-01 -5.30078723416E-01 -5.40632884512E-01
+ -5.50709302396E-01 -5.60241584974E-01 -5.69161070822E-01 -5.77397211142E-01
+ -5.84878019238E-01 -5.91530585816E-01 -5.97281655179E-01 -6.02058253481E-01
+ -6.05788355547E-01 -6.08401571565E-01 -6.09829829371E-01 -6.10008022479E-01
+ -6.08874589180E-01 -6.06371984787E-01 -6.02447008827E-01 -5.97050953516E-01
+ -5.90139551437E-01 -5.81672721990E-01 -5.71614151234E-01 -5.59930791948E-01
+ -5.46592443701E-01 -5.31571668987E-01 -5.14844421066E-01 -4.96391896969E-01
+ -4.76204270686E-01 -4.54287076586E-01 -4.30671045161E-01 -4.05426044277E-01
+ -3.78679286395E-01 -3.50636863371E-01 -3.21605552655E-01 -2.92008064072E-01
+ -2.62378493777E-01 -2.33314260569E-01 -2.05344044816E-01 -1.78645022453E-01
+ -1.52502285761E-01 -1.24341931594E-01 -9.07113732134E-02 -5.81495773123E-02
+ -2.80104952496E-02 -4.59926461991E-04 2.43736336796E-02 4.64001059582E-02
+ 6.55682987409E-02 8.18657702951E-02 9.53180388613E-02 1.05987173900E-01
+ 1.13969778733E-01 1.19394400516E-01 1.22418432636E-01 1.23224547713E-01
+ 1.22016776096E-01 1.19016268077E-01 1.14456892274E-01 1.08580703428E-01
+ 1.01633450519E-01 9.38601450996E-02 8.55008549860E-02 7.67867189981E-02
+ 6.79363167482E-02 5.91523551462E-02 5.06187552496E-02 4.24980660343E-02
+ 3.49292370248E-02 2.80256617222E-02 2.18735045250E-02 1.65302664007E-02
+ 1.20236306847E-02 8.35085370029E-03 5.47863459653E-03 3.34424685940E-03
+ 1.85809319819E-03 9.08608842233E-04 3.70039621657E-04 1.13530263888E-04
+ 2.11927656146E-05 1.30408366240E-06 -2.62091236235E-08 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -1.27327833262E+01 5.13165001874E+01 -1.19886263253E+02 2.98468869241E+02
+ -6.89548564405E+02 1.03293374725E+03 -8.28505204426E+02 2.69769754743E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 1 4 1 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 -1.40723729105E-17 -1.15490295422E-16 -3.99888235872E-16
+ -9.72535319790E-16 -1.94902383224E-15 -3.45600048502E-15 -5.63194292315E-15
+ -8.62798408273E-15 -1.26087871574E-14 -1.77534740831E-14 -2.42566106132E-14
+ -3.23292512249E-14 -4.22000472764E-14 -5.41164220273E-14 -6.83458163265E-14
+ -8.51770089903E-14 -1.04921516107E-13 -1.27915073741E-13 -1.54519208762E-13
+ -1.85122902759E-13 -2.20144354315E-13 -2.60032845158E-13 -3.05270716038E-13
+ -3.56375458496E-13 -4.13901929012E-13 -4.78444692393E-13 -5.50640501618E-13
+ -6.31170921765E-13 -7.20765106056E-13 -8.20202732484E-13 -9.30317109961E-13
+ -1.05199846340E-12 -1.18619740766E-12 -1.33392862083E-12 -1.49627472787E-12
+ -1.67439040623E-12 -1.86950672580E-12 -2.08293573594E-12 -2.31607531343E-12
+ -2.57041428548E-12 -2.84753784313E-12 -3.14913326089E-12 -3.47699593940E-12
+ -3.83303578893E-12 -4.21928397232E-12 -4.63790002708E-12 -5.09117938731E-12
+ -5.58156132741E-12 -6.11163735054E-12 -6.68416004600E-12 -7.30205244133E-12
+ -7.96841787585E-12 -8.68655042407E-12 -9.45994589902E-12 -1.02923134667E-11
+ -1.11875879053E-11 -1.21499425436E-11 -1.31838029158E-11 -1.42938611717E-11
+ -1.54850912823E-11 -1.67627650852E-11 -1.81324692140E-11 -1.96001229597E-11
+ -2.11719971155E-11 -2.28547338564E-11 -2.46553677105E-11 -2.65813476810E-11
+ -2.86405605798E-11 -3.08413556389E-11 -3.31925704684E-11 -3.57035584328E-11
+ -3.83842175220E-11 -4.12450207983E-11 -4.42970485022E-11 -4.75520219083E-11
+ -5.10223390227E-11 -5.47211122223E-11 -5.86622079403E-11 -6.28602885056E-11
+ -6.73308562535E-11 -7.20903000279E-11 -7.71559442037E-11 -8.25461003634E-11
+ -8.82801217704E-11 -9.43784607879E-11 -1.00862729401E-10 -1.07755763009E-10
+ -1.15081687656E-10 -1.22865990895E-10 -1.31135596466E-10 -1.39918943004E-10
+ -1.49246066976E-10 -1.59148690092E-10 -1.69660311409E-10 -1.80816304390E-10
+ -1.92654019176E-10 -2.05212890356E-10 -2.18534550511E-10 -2.32662949854E-10
+ -2.47644482290E-10 -2.63528118223E-10 -2.80365544482E-10 -2.98211311736E-10
+ -3.17122989802E-10 -3.37161331259E-10 -3.58390443805E-10 -3.80877971834E-10
+ -4.04695287710E-10 -4.29917693249E-10 -4.56624631967E-10 -4.84899912644E-10
+ -5.14831944812E-10 -5.46513986803E-10 -5.80044407013E-10 -6.15526959084E-10
+ -6.53071071741E-10 -6.92792154060E-10 -7.34811916978E-10 -7.79258711908E-10
+ -8.26267887362E-10 -8.75982164531E-10 -9.28552032825E-10 -9.84136166425E-10
+ -1.04290186296E-09 -1.10502550547E-09 -1.17069304890E-09 -1.24010053240E-09
+ -1.31345461876E-09 -1.39097316256E-09 -1.47288580830E-09 -1.55943462034E-09
+ -1.65087474616E-09 -1.74747511476E-09 -1.84951917208E-09 -1.95730565528E-09
+ -2.07114940810E-09 -2.19138223928E-09 -2.31835382642E-09 -2.45243266767E-09
+ -2.59400708370E-09 -2.74348627266E-09 -2.90130142090E-09 -3.06790687236E-09
+ -3.24378135977E-09 -3.42942930082E-09 -3.62538216285E-09 -3.83219989952E-09
+ -4.05047246333E-09 -4.28082139798E-09 -4.52390151475E-09 -4.78040265722E-09
+ -5.05105155921E-09 -5.33661380057E-09 -5.63789586613E-09 -5.95574731316E-09
+ -6.29106305310E-09 -6.64478575344E-09 -7.01790836623E-09 -7.41147678972E-09
+ -7.82659267015E-09 -8.26441635116E-09 -8.72616997840E-09 -9.21314076760E-09
+ -9.72668444460E-09 -1.02682288665E-08 -1.08392778332E-08 -1.14414150995E-08
+ -1.20763085985E-08 -1.27457148866E-08 -1.34514838224E-08 -1.41955634922E-08
+ -1.49800053935E-08 -1.58069698915E-08 -1.66787319624E-08 -1.75976872383E-08
+ -1.85663583696E-08 -1.95874017222E-08 -2.06636144258E-08 -2.17979417927E-08
+ -2.29934851265E-08 -2.42535099404E-08 -2.55814546070E-08 -2.69809394628E-08
+ -2.84557763893E-08 -3.00099788989E-08 -3.16477727482E-08 -3.33736071093E-08
+ -3.51921663273E-08 -3.71083822938E-08 -3.91274474705E-08 -4.12548285955E-08
+ -4.34962811079E-08 -4.58578643300E-08 -4.83459574447E-08 -5.09672763110E-08
+ -5.37288911612E-08 -5.66382452255E-08 -5.97031743333E-08 -6.29319275413E-08
+ -6.63331888435E-08 -6.99161000181E-08 -7.36902846721E-08 -7.76658735457E-08
+ -8.18535311418E-08 -8.62644837517E-08 -9.09105489479E-08 -9.58041666220E-08
+ -1.00958431648E-07 -1.06387128257E-07 -1.12104766212E-07 -1.18126618874E-07
+ -1.24468763265E-07 -1.31148122229E-07 -1.38182508794E-07 -1.45590672864E-07
+ -1.53392350351E-07 -1.61608314877E-07 -1.70260432186E-07 -1.79371717403E-07
+ -1.88966395283E-07 -1.99069963624E-07 -2.09709259985E-07 -2.20912531906E-07
+ -2.32709510796E-07 -2.45131489686E-07 -2.58211405050E-07 -2.71983922906E-07
+ -2.86485529425E-07 -3.01754626266E-07 -3.17831630912E-07 -3.34759082244E-07
+ -3.52581751635E-07 -3.71346759858E-07 -3.91103700104E-07 -4.11904767427E-07
+ -4.33804894967E-07 -4.56861897281E-07 -4.81136621176E-07 -5.06693104422E-07
+ -5.33598742761E-07 -5.61924465643E-07 -5.91744921148E-07 -6.23138670571E-07
+ -6.56188393173E-07 -6.90981101635E-07 -7.27608368763E-07 -7.66166566041E-07
+ -8.06757114647E-07 -8.49486749579E-07 -8.94467797583E-07 -9.41818469590E-07
+ -9.91663168435E-07 -1.04413281265E-06 -1.09936517714E-06 -1.15750525169E-06
+ -1.21870561819E-06 -1.28312684750E-06 -1.35093791708E-06 -1.42231665046E-06
+ -1.49745017959E-06 -1.57653543132E-06 -1.65977963936E-06 -1.74740088285E-06
+ -1.83962865314E-06 -1.93670445007E-06 -2.03888240943E-06 -2.14642996311E-06
+ -2.25962853374E-06 -2.37877426555E-06 -2.50417879335E-06 -2.63617005167E-06
+ -2.77509312606E-06 -2.92131114882E-06 -3.07520624146E-06 -3.23718050626E-06
+ -3.40765706963E-06 -3.58708117978E-06 -3.77592136170E-06 -3.97467063228E-06
+ -4.18384777891E-06 -4.40399870454E-06 -4.63569784305E-06 -4.87954964825E-06
+ -5.13619016053E-06 -5.40628865515E-06 -5.69054937645E-06 -5.98971336228E-06
+ -6.30456036370E-06 -6.63591086442E-06 -6.98462820566E-06 -7.35162082150E-06
+ -7.73784459071E-06 -8.14430531105E-06 -8.57206130233E-06 -9.02222614504E-06
+ -9.49597156148E-06 -9.99453044684E-06 -1.05192000580E-05 -1.10713453684E-05
+ -1.16524025971E-05 -1.22638829218E-05 -1.29073763845E-05 -1.35845560009E-05
+ -1.42971820831E-05 -1.50471067864E-05 -1.58362788940E-05 -1.66667488486E-05
+ -1.75406740466E-05 -1.84603244071E-05 -1.94280882297E-05 -2.04464783570E-05
+ -2.15181386569E-05 -2.26458508417E-05 -2.38325416401E-05 -2.50812903430E-05
+ -2.63953367389E-05 -2.77780894625E-05 -2.92331347755E-05 -3.07642458020E-05
+ -3.23753922441E-05 -3.40707505993E-05 -3.58547149084E-05 -3.77319080592E-05
+ -3.97071936760E-05 -4.17856886239E-05 -4.39727761610E-05 -4.62741197697E-05
+ -4.86956777046E-05 -5.12437182909E-05 -5.39248360147E-05 -5.67459684437E-05
+ -5.97144140221E-05 -6.28378507832E-05 -6.61243560286E-05 -6.95824270218E-05
+ -7.32210027485E-05 -7.70494867987E-05 -8.10777714270E-05 -8.53162628519E-05
+ -8.97759078572E-05 -9.44682217609E-05 -9.94053178224E-05 -1.04599938161E-04
+ -1.10065486261E-04 -1.15816061147E-04 -1.21866493307E-04 -1.28232382468E-04
+ -1.34930137291E-04 -1.41977017112E-04 -1.49391175810E-04 -1.57191707923E-04
+ -1.65398697113E-04 -1.74033267115E-04 -1.83117635272E-04 -1.92675168810E-04
+ -2.02730443971E-04 -2.13309308158E-04 -2.24438945235E-04 -2.36147944149E-04
+ -2.48466371024E-04 -2.61425844922E-04 -2.75059617424E-04 -2.89402656246E-04
+ -3.04491733077E-04 -3.20365515844E-04 -3.37064665631E-04 -3.54631938476E-04
+ -3.73112292276E-04 -3.92552999074E-04 -4.13003762956E-04 -4.34516843857E-04
+ -4.57147187561E-04 -4.80952562168E-04 -5.05993701377E-04 -5.32334454883E-04
+ -5.60041946243E-04 -5.89186738557E-04 -6.19843008352E-04 -6.52088728038E-04
+ -6.86005857350E-04 -7.21680544202E-04 -7.59203335387E-04 -7.98669397575E-04
+ -8.40178749106E-04 -8.83836503057E-04 -9.29753122108E-04 -9.78044685746E-04
+ -1.02883317037E-03 -1.08224674286E-03 -1.13842006825E-03 -1.19749463211E-03
+ -1.25961907825E-03 -1.32494956254E-03 -1.39365012338E-03 -1.46589306967E-03
+ -1.54185938700E-03 -1.62173916282E-03 -1.70573203134E-03 -1.79404763910E-03
+ -1.88690613198E-03 -1.98453866448E-03 -2.08718793235E-03 -2.19510872922E-03
+ -2.30856852847E-03 -2.42784809110E-03 -2.55324210063E-03 -2.68505982616E-03
+ -2.82362581447E-03 -2.96928061232E-03 -3.12238151990E-03 -3.28330337664E-03
+ -3.45243938038E-03 -3.63020194100E-03 -3.81702356962E-03 -4.01335780446E-03
+ -4.21968017448E-03 -4.43648920174E-03 -4.66430744380E-03 -4.90368257683E-03
+ -5.15518852080E-03 -5.41942660743E-03 -5.69702679194E-03 -5.98864890938E-03
+ -6.29498397640E-03 -6.61675553899E-03 -6.95472106698E-03 -7.30967339551E-03
+ -7.68244221404E-03 -8.07389560293E-03 -8.48494161765E-03 -8.91652992035E-03
+ -9.36965345851E-03 -9.84535018982E-03 -1.03447048525E-02 -1.08688507797E-02
+ -1.14189717563E-02 -1.19963039164E-02 -1.26021376788E-02 -1.32378197171E-02
+ -1.39047549625E-02 -1.46044086335E-02 -1.53383082891E-02 -1.61080458992E-02
+ -1.69152799271E-02 -1.77617374166E-02 -1.86492160755E-02 -1.95795863477E-02
+ -2.05547934628E-02 -2.15768594525E-02 -2.26478851225E-02 -2.37700519640E-02
+ -2.49456239913E-02 -2.61769494882E-02 -2.74664626437E-02 -2.88166850583E-02
+ -3.02302270957E-02 -3.17097890587E-02 -3.32581621584E-02 -3.48782292504E-02
+ -3.65729653044E-02 -3.83454375713E-02 -4.01988054123E-02 -4.21363197460E-02
+ -4.41613220704E-02 -4.62772430117E-02 -4.84876003466E-02 -5.07959964434E-02
+ -5.32061150609E-02 -5.57217174405E-02 -5.83466376229E-02 -6.10847769143E-02
+ -6.39400974246E-02 -6.69166145925E-02 -7.00183886093E-02 -7.32495146451E-02
+ -7.66141117802E-02 -8.01163105339E-02 -8.37602388811E-02 -8.75500066406E-02
+ -9.14896881127E-02 -9.55833028414E-02 -9.98347943677E-02 -1.04248006841E-01
+ -1.08826659345E-01 -1.13574317801E-01 -1.18494364300E-01 -1.23589963713E-01
+ -1.28864027438E-01 -1.34319174137E-01 -1.39957687312E-01 -1.45781469588E-01
+ -1.51791993564E-01 -1.57990249103E-01 -1.64376686962E-01 -1.70951158642E-01
+ -1.77712852389E-01 -1.84660225286E-01 -1.91790931398E-01 -1.99101745962E-01
+ -2.06588485670E-01 -2.14245925111E-01 -2.22067709495E-01 -2.30046263850E-01
+ -2.38172698926E-01 -2.46436714138E-01 -2.54826497927E-01 -2.63328626052E-01
+ -2.71927958391E-01 -2.80607534958E-01 -2.89348471963E-01 -2.98129858887E-01
+ -3.06928657673E-01 -3.15719605304E-01 -3.24475121226E-01 -3.33165221211E-01
+ -3.41757439513E-01 -3.50216761317E-01 -3.58505567717E-01 -3.66583595691E-01
+ -3.74407915728E-01 -3.81932930009E-01 -3.89110394250E-01 -3.95889466525E-01
+ -4.02216786559E-01 -4.08036589167E-01 -4.13290855624E-01 -4.17919506843E-01
+ -4.21860642262E-01 -4.25050828291E-01 -4.27425440034E-01 -4.28919059788E-01
+ -4.29465935431E-01 -4.29000501337E-01 -4.27457963828E-01 -4.24774952322E-01
+ -4.20890236385E-01 -4.15745507710E-01 -4.09286224711E-01 -4.01462515940E-01
+ -3.92230136913E-01 -3.81551473285E-01 -3.69396581696E-01 -3.55744258118E-01
+ -3.40583122408E-01 -3.23912707061E-01 -3.05744538242E-01 -2.86103198078E-01
+ -2.65027359207E-01 -2.42570785691E-01 -2.18803298271E-01 -1.93811705965E-01
+ -1.67700708451E-01 -1.40593771475E-01 -1.12633965536E-01 -8.39847271721E-02
+ -5.48304382996E-02 -2.53765993719E-02 4.15083806979E-03 3.35077680164E-02
+ 6.24372224611E-02 9.06799480139E-02 1.17993996444E-01 1.44189278848E-01
+ 1.69186407854E-01 1.93114226565E-01 2.16005083151E-01 2.36177841698E-01
+ 2.53283107682E-01 2.67241575018E-01 2.78015606373E-01 2.85609692367E-01
+ 2.90070196873E-01 2.91484398635E-01 2.89978809282E-01 2.85716795469E-01
+ 2.78895531360E-01 2.69742331785E-01 2.58510435879E-01 2.45474316802E-01
+ 2.30924621654E-01 2.15162840970E-01 1.98495829955E-01 1.81230297493E-01
+ 1.63667380709E-01 1.46097424514E-01 1.28795053668E-01 1.12014642697E-01
+ 9.59862172768E-02 8.09118627780E-02 6.69626084041E-02 5.42758312321E-02
+ 4.29531003810E-02 3.30585044972E-02 2.46173990488E-02 1.76156972158E-02
+ 1.19999832733E-02 7.67795045409E-03 4.52115928853E-03 2.36863457004E-03
+ 1.03421918420E-03 3.16915521109E-04 1.55487722118E-05 -5.26167750180E-05
+ -3.10612910039E-05 -5.83704485134E-06 -2.25828562876E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -1.18398728394E+01 5.27408086245E+01 -1.00570730846E+02 1.20700504681E+02
+ -1.18355043210E+02 1.05655389492E+02 -6.90778329062E+01 2.12253099278E+01
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 1 5 2 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 1.76424832717E-23 2.92054514458E-22 1.52987085611E-21
+ 5.00353694630E-21 1.26423012149E-20 2.71332402622E-20 5.20332469358E-20
+ 9.18929896584E-20 1.52393935898E-19 2.40499623906E-19 3.64622465289E-19
+ 5.34807467182E-19 7.62934377335E-19 1.06293987896E-18 1.45106159535E-18
+ 1.94610580792E-18 2.56974094604E-18 3.34681907377E-18 4.30572777856E-18
+ 5.47877506021E-18 6.90261002741E-18 8.61868243342E-18 1.06737443247E-17
+ 1.31203973366E-17 1.60176894506E-17 1.94317653304E-17 2.34365746766E-17
+ 2.81146433935E-17 3.35579127335E-17 3.98686519936E-17 4.71604507695E-17
+ 5.55592972471E-17 6.52047495099E-17 7.62512073864E-17 8.88692929428E-17
+ 1.03247348355E-16 1.19593060565E-16 1.38135222855E-16 1.59125644248E-16
+ 1.82841218486E-16 2.09586165227E-16 2.39694457082E-16 2.73532447144E-16
+ 3.11501712780E-16 3.54042132652E-16 4.01635215238E-16 4.54807698482E-16
+ 5.14135441723E-16 5.80247632611E-16 6.53831333485E-16 7.35636393463E-16
+ 8.26480754557E-16 9.27256182162E-16 1.03893445263E-15 1.16257403301E-15
+ 1.29932729081E-15 1.45044827416E-15 1.61730110626E-15 1.80136904069E-15
+ 2.00426422821E-15 2.22773824890E-15 2.47369346794E-15 2.74419527746E-15
+ 3.04148529143E-15 3.36799556574E-15 3.72636392077E-15 4.11945044967E-15
+ 4.55035530150E-15 5.02243783499E-15 5.53933724608E-15 6.10499477940E-15
+ 6.72367764253E-15 7.40000475027E-15 8.13897443568E-15 8.94599427447E-15
+ 9.82691318045E-15 1.07880559409E-14 1.18362603732E-14 1.29789172979E-14
+ 1.42240135360E-14 1.55801781567E-14 1.70567322131E-14 1.86637422274E-14
+ 2.04120776999E-14 2.23134729398E-14 2.43805935369E-14 2.66271078156E-14
+ 2.90677636381E-14 3.17184709501E-14 3.45963904911E-14 3.77200291221E-14
+ 4.11093422557E-14 4.47858439093E-14 4.87727249404E-14 5.30949800612E-14
+ 5.77795442764E-14 6.28554394310E-14 6.83539316081E-14 7.43087001663E-14
+ 8.07560192667E-14 8.77349527995E-14 9.52875636852E-14 1.03459138596E-13
+ 1.12298429221E-13 1.21857911272E-13 1.32194062527E-13 1.43367661282E-13
+ 1.55444106700E-13 1.68493762643E-13 1.82592326687E-13 1.97821226133E-13
+ 2.14268042996E-13 2.32026970029E-13 2.51199300063E-13 2.71893951039E-13
+ 2.94228029330E-13 3.18327434106E-13 3.44327505705E-13 3.72373721184E-13
+ 4.02622440450E-13 4.35241706608E-13 4.70412104436E-13 5.08327681174E-13
+ 5.49196934091E-13 5.93243869658E-13 6.40709139439E-13 6.91851258248E-13
+ 7.46947910453E-13 8.06297350755E-13 8.70219906241E-13 9.39059586948E-13
+ 1.01318581273E-12 1.09299526478E-12 1.17891387066E-12 1.27139893257E-12
+ 1.37094140884E-12 1.47806835993E-12 1.59334557042E-12 1.71738035973E-12
+ 1.85082459509E-12 1.99437792103E-12 2.14879122110E-12 2.31487032820E-12
+ 2.49348000141E-12 2.68554818819E-12 2.89207059255E-12 3.11411557070E-12
+ 3.35282937786E-12 3.60944179096E-12 3.88527213425E-12 4.18173573641E-12
+ 4.50035084994E-12 4.84274606568E-12 5.21066825783E-12 5.60599109710E-12
+ 6.03072417250E-12 6.48702276502E-12 6.97719831965E-12 7.50372966517E-12
+ 8.06927503522E-12 8.67668494725E-12 9.32901600052E-12 1.00295456583E-11
+ 1.07817880845E-11 1.15895111089E-11 1.24567544019E-11 1.33878489441E-11
+ 1.43874378832E-11 1.54604988755E-11 1.66123680185E-11 1.78487654872E-11
+ 1.91758229941E-11 2.06001132033E-11 2.21286812366E-11 2.37690784194E-11
+ 2.55293984267E-11 2.74183159973E-11 2.94451283991E-11 3.16197998412E-11
+ 3.39530090387E-11 3.64562001573E-11 3.91416373732E-11 4.20224633064E-11
+ 4.51127616014E-11 4.84276239474E-11 5.19832218534E-11 5.57968835142E-11
+ 5.98871761268E-11 6.42739940432E-11 6.89786531721E-11 7.40239920713E-11
+ 7.94344802030E-11 8.52363338599E-11 9.14576403024E-11 9.81284906879E-11
+ 1.05281122413E-10 1.12950071535E-10 1.21172335982E-10 1.29987550312E-10
+ 1.39438172850E-10 1.49569686052E-10 1.60430811054E-10 1.72073737393E-10
+ 1.84554368979E-10 1.97932587459E-10 2.12272534198E-10 2.27642912204E-10
+ 2.44117309390E-10 2.61774544682E-10 2.80699038587E-10 3.00981209950E-10
+ 3.22717900731E-10 3.46012830804E-10 3.70977084864E-10 3.97729633730E-10
+ 4.26397892464E-10 4.57118317885E-10 4.90037048281E-10 5.25310588269E-10
+ 5.63106542003E-10 6.03604398122E-10 6.46996370094E-10 6.93488295858E-10
+ 7.43300600933E-10 7.96669329480E-10 8.53847248084E-10 9.15105027396E-10
+ 9.80732507109E-10 1.05104005014E-09 1.12635999229E-09 1.20704819414E-09
+ 1.29348570230E-09 1.38608052783E-09 1.48526954997E-09 1.59152055407E-09
+ 1.70533441310E-09 1.82724742297E-09 1.95783380230E-09 2.09770836841E-09
+ 2.24752940174E-09 2.40800171218E-09 2.57987992121E-09 2.76397197545E-09
+ 2.96114290741E-09 3.17231886130E-09 3.39849140220E-09 3.64072212869E-09
+ 3.90014761026E-09 4.17798467228E-09 4.47553605309E-09 4.79419645922E-09
+ 5.13545904690E-09 5.50092235974E-09 5.89229775458E-09 6.31141735009E-09
+ 6.76024253455E-09 7.24087307235E-09 7.75555685119E-09 8.30670031504E-09
+ 8.89687963112E-09 9.52885264233E-09 1.02055716605E-08 1.09301971596E-08
+ 1.17061124315E-08 1.25369392734E-08 1.34265547776E-08 1.43791093022E-08
+ 1.53990457055E-08 1.64911199331E-08 1.76604230516E-08 1.89124048321E-08
+ 2.02528989913E-08 2.16881502071E-08 2.32248430328E-08 2.48701328440E-08
+ 2.66316789604E-08 2.85176800950E-08 3.05369122952E-08 3.26987695497E-08
+ 3.50133072482E-08 3.74912886958E-08 4.01442348946E-08 4.29844778227E-08
+ 4.60252174568E-08 4.92805827998E-08 5.27656971951E-08 5.64967482294E-08
+ 6.04910625435E-08 6.47671858987E-08 6.93449688652E-08 7.42456585277E-08
+ 7.94919966304E-08 8.51083246135E-08 9.11206960240E-08 9.75569968182E-08
+ 1.04447074110E-07 1.11822873956E-07 1.19718588813E-07 1.28170815346E-07
+ 1.37218723308E-07 1.46904236277E-07 1.57272225073E-07 1.68370714742E-07
+ 1.80251106076E-07 1.92968412662E-07 2.06581514567E-07 2.21153429819E-07
+ 2.36751604928E-07 2.53448225790E-07 2.71320550388E-07 2.90451264831E-07
+ 3.10928864360E-07 3.32848061064E-07 3.56310220189E-07 3.81423827028E-07
+ 4.08304986547E-07 4.37077958026E-07 4.67875727179E-07 5.00840618364E-07
+ 5.36124949693E-07 5.73891734051E-07 6.14315429225E-07 6.57582740587E-07
+ 7.03893479997E-07 7.53461484875E-07 8.06515601625E-07 8.63300737939E-07
+ 9.24078988766E-07 9.89130841121E-07 1.05875646323E-06 1.13327708388E-06
+ 1.21303646838E-06 1.29840249767E-06 1.38976885806E-06 1.48755684904E-06
+ 1.59221731766E-06 1.70423272810E-06 1.82411937600E-06 1.95242975759E-06
+ 2.08975510443E-06 2.23672809532E-06 2.39402575769E-06 2.56237257170E-06
+ 2.74254379127E-06 2.93536899687E-06 3.14173589659E-06 3.36259439247E-06
+ 3.59896093068E-06 3.85192315526E-06 4.12264488663E-06 4.41237144726E-06
+ 4.72243535883E-06 5.05426243655E-06 5.40937830834E-06 5.78941538818E-06
+ 6.19612033543E-06 6.63136203355E-06 7.09714012442E-06 7.59559413673E-06
+ 8.12901324951E-06 8.69984673492E-06 9.31071512721E-06 9.96442216811E-06
+ 1.06639675824E-05 1.14125607410E-05 1.22136352727E-05 1.30708646902E-05
+ 1.39881791006E-05 1.49697830748E-05 1.60201747555E-05 1.71441662897E-05
+ 1.83469056764E-05 1.96339001261E-05 2.10110410384E-05 2.24846307048E-05
+ 2.40614108597E-05 2.57485932015E-05 2.75538920232E-05 2.94855590929E-05
+ 3.15524209408E-05 3.37639187154E-05 3.61301507848E-05 3.86619182695E-05
+ 4.13707737075E-05 4.42690730624E-05 4.73700313042E-05 5.06877818024E-05
+ 5.42374397913E-05 5.80351701824E-05 6.20982600169E-05 6.64451958717E-05
+ 7.10957465526E-05 7.60710514290E-05 8.13937147897E-05 8.70879066228E-05
+ 9.31794702485E-05 9.96960372626E-05 1.06667150278E-04 1.14124393982E-04
+ 1.22101535058E-04 1.30634671567E-04 1.39762392396E-04 1.49525947460E-04
+ 1.59969429339E-04 1.71139967119E-04 1.83087933213E-04 1.95867164035E-04
+ 2.09535195395E-04 2.24153513587E-04 2.39787823176E-04 2.56508332555E-04
+ 2.74390058407E-04 2.93513150283E-04 3.13963236557E-04 3.35831793131E-04
+ 3.59216536293E-04 3.84221841259E-04 4.10959187982E-04 4.39547635930E-04
+ 4.70114329588E-04 5.02795036594E-04 5.37734720461E-04 5.75088149986E-04
+ 6.15020547528E-04 6.57708278479E-04 7.03339584327E-04 7.52115361880E-04
+ 8.04249991287E-04 8.59972215679E-04 9.19526075312E-04 9.83171899286E-04
+ 1.05118735800E-03 1.12386857966E-03 1.20153133425E-03 1.28451228854E-03
+ 1.37317033587E-03 1.46788800438E-03 1.56907294775E-03 1.67715952237E-03
+ 1.79261045509E-03 1.91591860577E-03 2.04760882884E-03 2.18823993817E-03
+ 2.33840677967E-03 2.49874241578E-03 2.66992042634E-03 2.85265732981E-03
+ 3.04771512917E-03 3.25590398620E-03 3.47808502804E-03 3.71517328928E-03
+ 3.96814079270E-03 4.23801977127E-03 4.52590603337E-03 4.83296247273E-03
+ 5.16042272362E-03 5.50959496109E-03 5.88186584481E-03 6.27870460405E-03
+ 6.70166725969E-03 7.15240097769E-03 7.63264854661E-03 8.14425296943E-03
+ 8.68916215792E-03 9.26943371474E-03 9.88723978566E-03 1.05448719608E-02
+ 1.12447462005E-02 1.19894077555E-02 1.27815360500E-02 1.36239494866E-02
+ 1.45196101301E-02 1.54716282190E-02 1.64832664475E-02 1.75579439534E-02
+ 1.86992399391E-02 1.99108968445E-02 2.11968229809E-02 2.25610945266E-02
+ 2.40079567711E-02 2.55418244885E-02 2.71672813036E-02 2.88890779063E-02
+ 3.07121289546E-02 3.26415084944E-02 3.46824437112E-02 3.68403068141E-02
+ 3.91206048413E-02 4.15289671622E-02 4.40711304384E-02 4.67529207960E-02
+ 4.95802329514E-02 5.25590060239E-02 5.56951957630E-02 5.89947429161E-02
+ 6.24635374605E-02 6.61073784308E-02 6.99319290780E-02 7.39426671159E-02
+ 7.81448298243E-02 8.25433538120E-02 8.71428092709E-02 9.19473285984E-02
+ 9.69605293119E-02 1.02185431239E-01 1.07624368033E-01 1.13278893130E-01
+ 1.19149680351E-01 1.25236419434E-01 1.31537706855E-01 1.38050932396E-01
+ 1.44772161990E-01 1.51696017428E-01 1.58815553596E-01 1.66122133887E-01
+ 1.73605304482E-01 1.81252668095E-01 1.89049757715E-01 1.96979910692E-01
+ 2.05024143301E-01 2.13161025605E-01 2.21366556056E-01 2.29614034824E-01
+ 2.37873934317E-01 2.46113764829E-01 2.54297932665E-01 2.62387587668E-01
+ 2.70340456720E-01 2.78110659770E-01 2.85648505356E-01 2.92900263622E-01
+ 2.99807916817E-01 3.06308890386E-01 3.12335772436E-01 3.17816035939E-01
+ 3.22671786814E-01 3.26819572345E-01 3.30170298412E-01 3.32629320598E-01
+ 3.34096792955E-01 3.34468377909E-01 3.33636439506E-01 3.31491856634E-01
+ 3.27926598211E-01 3.22837191477E-01 3.16129178017E-01 3.07722577545E-01
+ 2.97558251529E-01 2.85604860120E-01 2.71865819083E-01 2.56385274875E-01
+ 2.39251624158E-01 2.20596532652E-01 2.00586829996E-01 1.79406231577E-01
+ 1.57223871584E-01 1.34147672496E-01 1.10163562612E-01 8.50680360424E-02
+ 5.84140325783E-02 2.95125634163E-02 -2.42889345388E-03 -3.78859352756E-02
+ -7.60649759741E-02 -1.13002935184E-01 -1.41404750853E-01 -1.66172989339E-01
+ -1.88383134875E-01 -2.07876979255E-01 -2.24533327300E-01 -2.38269536230E-01
+ -2.49042348111E-01 -2.56848033897E-01 -2.61721785155E-01 -2.63736388579E-01
+ -2.63000201868E-01 -2.59654492805E-01 -2.53870253699E-01 -2.45844583154E-01
+ -2.35796834718E-01 -2.23964642082E-01 -2.10600074251E-01 -1.95966009179E-01
+ -1.80332963576E-01 -1.63976373567E-01 -1.47174442018E-01 -1.30206353369E-01
+ -1.13350728655E-01 -9.68838376746E-02 -8.10771259095E-02 -6.61933017673E-02
+ -5.24803345985E-02 -4.01626189043E-02 -2.94289366924E-02 -2.04172469768E-02
+ -1.31972346742E-02 -7.75294824963E-03 -3.96888821340E-03 -1.62551440538E-03
+ -4.10630467836E-04 4.60093801831E-05 1.10953318661E-04 6.31028428353E-05
+ 2.20287866264E-05 3.27885658659E-06 9.16805623579E-08 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 1.40130493513E+01 -4.31829104459E+01 -7.02400432697E+01 7.57071786715E+02
+ -2.22021314448E+03 3.32761731110E+03 -2.55288647984E+03 7.91147881833E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 1 6 2 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 -1.17436226715E-23 -1.94404493092E-22 -1.01835018312E-21
+ -3.33057705178E-21 -8.41527878387E-21 -1.80610932486E-20 -3.46356467517E-20
+ -6.11680668852E-20 -1.01440191453E-19 -1.60087261676E-19 -2.42708953417E-19
+ -3.55991670839E-19 -5.07843103180E-19 -7.07540127543E-19 -9.65891229235E-19
+ -1.29541470683E-18 -1.71053403204E-18 -2.22779184569E-18 -2.86608419039E-18
+ -3.64691670988E-18 -4.59468468334E-18 -5.73697891279E-18 -7.10491964283E-18
+ -8.73352086494E-18 -1.06620875459E-17 -1.29346485199E-17 -1.56004280018E-17
+ -1.87143589096E-17 -2.23376414362E-17 -2.65383505812E-17 -3.13920966394E-17
+ -3.69827429594E-17 -4.34031856184E-17 -5.07562000198E-17 -5.91553598118E-17
+ -6.87260339364E-17 -7.96064680742E-17 -9.19489572259E-17 -1.05921116695E-16
+ -1.21707259292E-16 -1.39509887173E-16 -1.59551307386E-16 -1.82075380872E-16
+ -2.07349415417E-16 -2.35666213855E-16 -2.67346289681E-16 -3.02740263140E-16
+ -3.42231451864E-16 -3.86238671186E-16 -4.35219260411E-16 -4.89672352525E-16
+ -5.50142406173E-16 -6.17223020140E-16 -6.91561052064E-16 -7.73861064788E-16
+ -8.64890125464E-16 -9.65482984423E-16 -1.07654766285E-15 -1.19907148043E-15
+ -1.33412755656E-15 -1.48288182100E-15 -1.64660057281E-15 -1.82665862905E-15
+ -2.02454810789E-15 -2.24188789412E-15 -2.48043383858E-15 -2.74208974679E-15
+ -3.02891921613E-15 -3.34315838556E-15 -3.68722966613E-15 -4.06375652600E-15
+ -4.47557940879E-15 -4.92577287017E-15 -5.41766402348E-15 -5.95485239228E-15
+ -6.54123127446E-15 -7.18101073049E-15 -7.87874231665E-15 -8.63934569269E-15
+ -9.46813724308E-15 -1.03708608611E-14 -1.13537210556E-14 -1.24234185530E-14
+ -1.35871885775E-14 -1.48528420092E-14 -1.62288096298E-14 -1.77241896861E-14
+ -1.93487990135E-14 -2.11132279820E-14 -2.30288995461E-14 -2.51081326988E-14
+ -2.73642106538E-14 -2.98114541020E-14 -3.24652999139E-14 -3.53423856864E-14
+ -3.84606405621E-14 -4.18393827778E-14 -4.54994244355E-14 -4.94631840217E-14
+ -5.37548072394E-14 -5.84002967605E-14 -6.34276515456E-14 -6.88670164291E-14
+ -7.47508427156E-14 -8.11140605869E-14 -8.79942641785E-14 -9.54319102444E-14
+ -1.03470531395E-13 -1.12156964969E-13 -1.21541598659E-13 -1.31678634126E-13
+ -1.42626369882E-13 -1.54447504845E-13 -1.67209464063E-13 -1.80984748200E-13
+ -1.95851308510E-13 -2.11892949128E-13 -2.29199758655E-13 -2.47868573150E-13
+ -2.68003472785E-13 -2.89716314599E-13 -3.13127303932E-13 -3.38365607347E-13
+ -3.65570010001E-13 -3.94889620670E-13 -4.26484627865E-13 -4.60527110679E-13
+ -4.97201908328E-13 -5.36707552576E-13 -5.79257267565E-13 -6.25080041883E-13
+ -6.74421778048E-13 -7.27546524953E-13 -7.84737799225E-13 -8.46300001846E-13
+ -9.12559936884E-13 -9.83868439601E-13 -1.06060212181E-12 -1.14316524282E-12
+ -1.23199171496E-12 -1.32754725337E-12 -1.43033168017E-12 -1.54088139434E-12
+ -1.65977201875E-12 -1.78762123745E-12 -1.92509183629E-12 -2.07289496179E-12
+ -2.23179361365E-12 -2.40260638746E-12 -2.58621148563E-12 -2.78355101559E-12
+ -2.99563559559E-12 -3.22354929021E-12 -3.46845489894E-12 -3.73159962290E-12
+ -4.01432113677E-12 -4.31805409461E-12 -4.64433710051E-12 -4.99482017707E-12
+ -5.37127276717E-12 -5.77559230682E-12 -6.20981340976E-12 -6.67611770730E-12
+ -7.17684438974E-12 -7.71450149949E-12 -8.29177802898E-12 -8.91155688057E-12
+ -9.57692874981E-12 -1.02912069972E-11 -1.10579435790E-11 -1.18809461116E-11
+ -1.27642961509E-11 -1.37123687712E-11 -1.47298535375E-11 -1.58217769689E-11
+ -1.69935265981E-11 -1.82508767428E-11 -1.96000161065E-11 -2.10475773410E-11
+ -2.26006687093E-11 -2.42669079956E-11 -2.60544588240E-11 -2.79720695546E-11
+ -3.00291149405E-11 -3.22356407399E-11 -3.46024114934E-11 -3.71409616905E-11
+ -3.98636505634E-11 -4.27837207665E-11 -4.59153612151E-11 -4.92737743785E-11
+ -5.28752483403E-11 -5.67372339656E-11 -6.08784275331E-11 -6.53188592211E-11
+ -7.00799878582E-11 -7.51848023837E-11 -8.06579304893E-11 -8.65257549515E-11
+ -9.28165381961E-11 -9.95605556768E-11 -1.06790238690E-10 -1.14540327293E-10
+ -1.22848034033E-10 -1.31753219263E-10 -1.41298578846E-10 -1.51529845132E-10
+ -1.62496002142E-10 -1.74249515964E-10 -1.86846581423E-10 -2.00347386188E-10
+ -2.14816393534E-10 -2.30322645086E-10 -2.46940084936E-10 -2.64747906661E-10
+ -2.83830924840E-10 -3.04279972809E-10 -3.26192328493E-10 -3.49672170299E-10
+ -3.74831065194E-10 -4.01788491225E-10 -4.30672396914E-10 -4.61619800128E-10
+ -4.94777429199E-10 -5.30302409281E-10 -5.68362997112E-10 -6.09139367614E-10
+ -6.52824455963E-10 -6.99624859044E-10 -7.49761800474E-10 -8.03472163661E-10
+ -8.61009597704E-10 -9.22645701243E-10 -9.88671289769E-10 -1.05939775225E-09
+ -1.13515850335E-09 -1.21631053806E-09 -1.30323609577E-09 -1.39634444164E-09
+ -1.49607377354E-09 -1.60289326320E-09 -1.71730524129E-09 -1.83984753623E-09
+ -1.97109597796E-09 -2.11166707781E-09 -2.26222089724E-09 -2.42346411858E-09
+ -2.59615333187E-09 -2.78109855327E-09 -2.97916699105E-09 -3.19128707676E-09
+ -3.41845278016E-09 -3.66172822784E-09 -3.92225264689E-09 -4.20124565662E-09
+ -4.50001293250E-09 -4.81995226883E-09 -5.16256006789E-09 -5.52943828575E-09
+ -5.92230186674E-09 -6.34298670094E-09 -6.79345814146E-09 -7.27582012087E-09
+ -7.79232490889E-09 -8.34538355638E-09 -8.93757707387E-09 -9.57166839626E-09
+ -1.02506151889E-08 -1.09775835542E-08 -1.17559627022E-08 -1.25893806522E-08
+ -1.34817210390E-08 -1.44371411001E-08 -1.54600909277E-08 -1.65553340741E-08
+ -1.77279696056E-08 -1.89834557060E-08 -2.03276349399E-08 -2.17667612910E-08
+ -2.33075291009E-08 -2.49571040412E-08 -2.67231562630E-08 -2.86138958742E-08
+ -3.06381109114E-08 -3.28052079781E-08 -3.51252557392E-08 -3.76090314706E-08
+ -4.02680708790E-08 -4.31147214216E-08 -4.61621993708E-08 -4.94246508873E-08
+ -5.29172173827E-08 -5.66561054727E-08 -6.06586618430E-08 -6.49434533729E-08
+ -6.95303528845E-08 -7.44406309143E-08 -7.96970539273E-08 -8.53239894276E-08
+ -9.13475184477E-08 -9.77955559360E-08 -1.04697979594E-07 -1.12086767759E-07
+ -1.19996146962E-07 -1.28462749848E-07 -1.37525784173E-07 -1.47227213663E-07
+ -1.57611951573E-07 -1.68728067813E-07 -1.80627010622E-07 -1.93363843787E-07
+ -2.06997500507E-07 -2.21591055069E-07 -2.37212013578E-07 -2.53932625084E-07
+ -2.71830214532E-07 -2.90987539057E-07 -3.11493169276E-07 -3.33441897316E-07
+ -3.56935173445E-07 -3.82081573333E-07 -4.08997298061E-07 -4.37806709190E-07
+ -4.68642901333E-07 -5.01648314872E-07 -5.36975391607E-07 -5.74787276366E-07
+ -6.15258567774E-07 -6.58576121636E-07 -7.04939910604E-07 -7.54563944076E-07
+ -8.07677252534E-07 -8.64524940827E-07 -9.25369315228E-07 -9.90491089420E-07
+ -1.06019067493E-06 -1.13478956192E-06 -1.21463179661E-06 -1.30008556218E-06
+ -1.39154487030E-06 -1.48943137099E-06 -1.59419628920E-06 -1.70632249683E-06
+ -1.82632672972E-06 -1.95476195975E-06 -2.09221993273E-06 -2.23933388388E-06
+ -2.39678144308E-06 -2.56528774323E-06 -2.74562874589E-06 -2.93863479928E-06
+ -3.14519444493E-06 -3.36625849018E-06 -3.60284436514E-06 -3.85604078397E-06
+ -4.12701273151E-06 -4.41700679795E-06 -4.72735688598E-06 -5.05949031587E-06
+ -5.41493435665E-06 -5.79532321264E-06 -6.20240549710E-06 -6.63805222687E-06
+ -7.10426537409E-06 -7.60318701370E-06 -8.13710910797E-06 -8.70848397240E-06
+ -9.31993546998E-06 -9.97427098443E-06 -1.06744942262E-05 -1.14238189293E-05
+ -1.22256834992E-05 -1.30837666800E-05 -1.40020043087E-05 -1.49846072327E-05
+ -1.60360804716E-05 -1.71612437073E-05 -1.83652531957E-05 -1.96536251960E-05
+ -2.10322610240E-05 -2.25074738394E-05 -2.40860172865E-05 -2.57751161165E-05
+ -2.75824989259E-05 -2.95164331559E-05 -3.15857625092E-05 -3.37999469468E-05
+ -3.61691054434E-05 -3.87040616874E-05 -4.14163929272E-05 -4.43184821778E-05
+ -4.74235740149E-05 -5.07458342013E-05 -5.43004134031E-05 -5.81035152745E-05
+ -6.21724692046E-05 -6.65258080402E-05 -7.11833511205E-05 -7.61662929794E-05
+ -8.14972980954E-05 -8.72006020937E-05 -9.33021198302E-05 -9.98295608168E-05
+ -1.06812552474E-04 -1.14282771731E-04 -1.22274085522E-04 -1.30822700768E-04
+ -1.39967324463E-04 -1.49749334530E-04 -1.60212962149E-04 -1.71405486295E-04
+ -1.83377441289E-04 -1.96182838194E-04 -2.09879400941E-04 -2.24528818143E-04
+ -2.40197011569E-04 -2.56954422359E-04 -2.74876316086E-04 -2.94043107836E-04
+ -3.14540708566E-04 -3.36460894051E-04 -3.59901697798E-04 -3.84967829401E-04
+ -4.11771119861E-04 -4.40430995500E-04 -4.71074982150E-04 -5.03839241417E-04
+ -5.38869140869E-04 -5.76319860107E-04 -6.16357034749E-04 -6.59157440466E-04
+ -7.04909719264E-04 -7.53815150320E-04 -8.06088467750E-04 -8.61958727761E-04
+ -9.21670227734E-04 -9.85483479837E-04 -1.05367624184E-03 -1.12654460784E-03
+ -1.20440416168E-03 -1.28759119584E-03 -1.37646399860E-03 -1.47140421224E-03
+ -1.57281826513E-03 -1.68113888026E-03 -1.79682666295E-03 -1.92037177014E-03
+ -2.05229566356E-03 -2.19315294889E-03 -2.34353330263E-03 -2.50406348830E-03
+ -2.67540946272E-03 -2.85827857313E-03 -3.05342184499E-03 -3.26163635963E-03
+ -3.48376772023E-03 -3.72071260344E-03 -3.97342139310E-03 -4.24290089102E-03
+ -4.53021709836E-03 -4.83649805966E-03 -5.16293675941E-03 -5.51079405916E-03
+ -5.88140166054E-03 -6.27616507709E-03 -6.69656659454E-03 -7.14416819598E-03
+ -7.62061442454E-03 -8.12763515209E-03 -8.66704821780E-03 -9.24076189554E-03
+ -9.85077714347E-03 -1.04991895832E-02 -1.11881911495E-02 -1.19200713441E-02
+ -1.26972180203E-02 -1.35221176169E-02 -1.43973547492E-02 -1.53256110607E-02
+ -1.63096632241E-02 -1.73523799732E-02 -1.84567180377E-02 -1.96257168407E-02
+ -2.08624918096E-02 -2.21702261396E-02 -2.35521608416E-02 -2.50115828938E-02
+ -2.65518113100E-02 -2.81761809310E-02 -2.98880237378E-02 -3.16906474845E-02
+ -3.35873114469E-02 -3.55811990864E-02 -3.76753874351E-02 -3.98728130191E-02
+ -4.21762341557E-02 -4.45881894807E-02 -4.71109525943E-02 -4.97464827510E-02
+ -5.24963715656E-02 -5.53617857625E-02 -5.83434060619E-02 -6.14413623693E-02
+ -6.46551655206E-02 -6.79836359293E-02 -7.14248295801E-02 -7.49759619253E-02
+ -7.86333303459E-02 -8.23922359539E-02 -8.62469056114E-02 -9.01904151380E-02
+ -9.42146147462E-02 -9.83100577892E-02 -1.02465933901E-01 -1.06670007555E-01
+ -1.10908562943E-01 -1.15166355863E-01 -1.19426572977E-01 -1.23670798393E-01
+ -1.27878986918E-01 -1.32029442637E-01 -1.36098800601E-01 -1.40062008393E-01
+ -1.43892303204E-01 -1.47561178842E-01 -1.51038335865E-01 -1.54291606865E-01
+ -1.57286848069E-01 -1.59987787900E-01 -1.62355823412E-01 -1.64349756772E-01
+ -1.65925466661E-01 -1.67035514123E-01 -1.67628689518E-01 -1.67649517376E-01
+ -1.67037749795E-01 -1.65727896916E-01 -1.63648865289E-01 -1.60723801433E-01
+ -1.56870267861E-01 -1.52000910389E-01 -1.46024805571E-01 -1.38849700261E-01
+ -1.30385363801E-01 -1.20548255787E-01 -1.09267653581E-01 -9.64932637088E-02
+ -8.22041358091E-02 -6.64183793143E-02 -4.92027240732E-02 -3.06803462517E-02
+ -1.10345994097E-02 9.49461042886E-03 3.06259652353E-02 5.20681811425E-02
+ 7.35724070015E-02 9.50084012970E-02 1.16462276135E-01 1.38342801764E-01
+ 1.61462615272E-01 1.87023692212E-01 2.16373022708E-01 2.50289048554E-01
+ 2.87388414277E-01 3.20970285975E-01 3.39235651402E-01 3.52460749233E-01
+ 3.62900616040E-01 3.70483111863E-01 3.75172330571E-01 3.76969422248E-01
+ 3.75912725073E-01 3.72077209372E-01 3.65573194543E-01 3.56544368802E-01
+ 3.45165143288E-01 3.31637411246E-01 3.16186821537E-01 2.99058683883E-01
+ 2.80513683037E-01 2.60823554749E-01 2.40266932561E-01 2.19125514514E-01
+ 1.97680719924E-01 1.76210906942E-01 1.54989177197E-01 1.34281656960E-01
+ 1.14346020768E-01 9.54298737953E-02 7.77684369409E-02 6.15808925508E-02
+ 4.70646396474E-02 3.43868498380E-02 2.36728961514E-02 1.49918634628E-02
+ 8.34032795452E-03 3.62598210794E-03 6.56530017047E-04 -8.62456152140E-04
+ -1.31152828778E-03 -1.11762968178E-03 -6.86040203547E-04 -3.09981070468E-04
+ -9.43343650345E-05 -1.25919150028E-05 -3.22120004060E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -9.32770979709E+00 1.98334571961E+01 1.95372622955E+02 -1.29984348253E+03
+ 3.63062863228E+03 -5.39307629507E+03 4.13290206416E+03 -1.28207766544E+03
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 2 2 0 i j (l(j))
+ -3.22173994820E-01 Q_int
+ 0.00000000000E+00 -9.10017357562E-12 -3.70255723614E-11 -8.47417063444E-11
+ -1.53252784602E-10 -2.43603142082E-10 -3.56878717153E-10 -4.94208581714E-10
+ -6.56766525690E-10 -8.45772697827E-10 -1.06249530475E-09 -1.30825237032E-09
+ -1.58441355742E-09 -1.89240205430E-09 -2.23369652780E-09 -2.60983314578E-09
+ -3.02240767108E-09 -3.47307762965E-09 -3.96356455538E-09 -4.49565631423E-09
+ -5.07120951056E-09 -5.69215197846E-09 -6.36048536100E-09 -7.07828778061E-09
+ -7.84771660359E-09 -8.67101130219E-09 -9.55049641750E-09 -1.04885846269E-08
+ -1.14877799193E-08 -1.25506808827E-08 -1.36799841068E-08 -1.48784877059E-08
+ -1.61490949654E-08 -1.74948181168E-08 -1.89187822451E-08 -2.04242293338E-08
+ -2.20145224515E-08 -2.36931500864E-08 -2.54637306320E-08 -2.73300170310E-08
+ -2.92959015816E-08 -3.13654209123E-08 -3.35427611323E-08 -3.58322631607E-08
+ -3.82384282435E-08 -4.07659236640E-08 -4.34195886527E-08 -4.62044405044E-08
+ -4.91256809091E-08 -5.21887025053E-08 -5.53990956615E-08 -5.87626554957E-08
+ -6.22853891398E-08 -6.59735232587E-08 -6.98335118317E-08 -7.38720442055E-08
+ -7.80960534297E-08 -8.25127248819E-08 -8.71295051955E-08 -9.19541114983E-08
+ -9.69945409737E-08 -1.02259080756E-07 -1.07756318170E-07 -1.13495151329E-07
+ -1.19484800103E-07 -1.25734817466E-07 -1.32255101242E-07 -1.39055906260E-07
+ -1.46147856935E-07 -1.53541960277E-07 -1.61249619369E-07 -1.69282647304E-07
+ -1.77653281604E-07 -1.86374199156E-07 -1.95458531653E-07 -2.04919881577E-07
+ -2.14772338746E-07 -2.25030497422E-07 -2.35709474030E-07 -2.46824925482E-07
+ -2.58393068140E-07 -2.70430697447E-07 -2.82955208229E-07 -2.95984615711E-07
+ -3.09537577258E-07 -3.23633414876E-07 -3.38292138495E-07 -3.53534470055E-07
+ -3.69381868437E-07 -3.85856555253E-07 -4.02981541538E-07 -4.20780655362E-07
+ -4.39278570409E-07 -4.58500835541E-07 -4.78473905392E-07 -4.99225172025E-07
+ -5.20782997682E-07 -5.43176748679E-07 -5.66436830473E-07 -5.90594723940E-07
+ -6.15683022923E-07 -6.41735473076E-07 -6.68787012052E-07 -6.96873811094E-07
+ -7.26033318059E-07 -7.56304301940E-07 -7.87726898931E-07 -8.20342660085E-07
+ -8.54194600629E-07 -8.89327250986E-07 -9.25786709562E-07 -9.63620697374E-07
+ -1.00287861455E-06 -1.04361159883E-06 -1.08587258600E-06 -1.12971637257E-06
+ -1.17519968047E-06 -1.22238122406E-06 -1.27132177951E-06 -1.32208425646E-06
+ -1.37473377224E-06 -1.42933772871E-06 -1.48596589163E-06 -1.54469047286E-06
+ -1.60558621544E-06 -1.66873048150E-06 -1.73420334334E-06 -1.80208767759E-06
+ -1.87246926260E-06 -1.94543687933E-06 -2.02108241554E-06 -2.09950097379E-06
+ -2.18079098301E-06 -2.26505431403E-06 -2.35239639907E-06 -2.44292635536E-06
+ -2.53675711305E-06 -2.63400554754E-06 -2.73479261641E-06 -2.83924350102E-06
+ -2.94748775308E-06 -3.05965944624E-06 -3.17589733299E-06 -3.29634500687E-06
+ -3.42115107040E-06 -3.55046930876E-06 -3.68445886949E-06 -3.82328444840E-06
+ -3.96711648191E-06 -4.11613134605E-06 -4.27051156227E-06 -4.43044601051E-06
+ -4.59613014946E-06 -4.76776624457E-06 -4.94556360386E-06 -5.12973882194E-06
+ -5.32051603239E-06 -5.51812716892E-06 -5.72281223556E-06 -5.93481958611E-06
+ -6.15440621336E-06 -6.38183804819E-06 -6.61739026908E-06 -6.86134762229E-06
+ -7.11400475309E-06 -7.37566654844E-06 -7.64664849153E-06 -7.92727702851E-06
+ -8.21788994795E-06 -8.51883677340E-06 -8.83047916944E-06 -9.15319136184E-06
+ -9.48736057217E-06 -9.83338746748E-06 -1.01916866254E-05 -1.05626870155E-05
+ -1.09468324971E-05 -1.13445823340E-05 -1.17564117280E-05 -1.21828123694E-05
+ -1.26242930077E-05 -1.30813800415E-05 -1.35546181286E-05 -1.40445708175E-05
+ -1.45518212008E-05 -1.50769725904E-05 -1.56206492173E-05 -1.61834969541E-05
+ -1.67661840634E-05 -1.73694019719E-05 -1.79938660709E-05 -1.86403165447E-05
+ -1.93095192277E-05 -2.00022664904E-05 -2.07193781569E-05 -2.14617024534E-05
+ -2.22301169899E-05 -2.30255297752E-05 -2.38488802675E-05 -2.47011404610E-05
+ -2.55833160099E-05 -2.64964473911E-05 -2.74416111079E-05 -2.84199209335E-05
+ -2.94325291994E-05 -3.04806281265E-05 -3.15654512034E-05 -3.26882746117E-05
+ -3.38504186999E-05 -3.50532495097E-05 -3.62981803531E-05 -3.75866734453E-05
+ -3.89202415932E-05 -4.03004499425E-05 -4.17289177846E-05 -4.32073204263E-05
+ -4.47373911236E-05 -4.63209230826E-05 -4.79597715290E-05 -4.96558558488E-05
+ -5.14111618038E-05 -5.32277438220E-05 -5.51077273683E-05 -5.70533113963E-05
+ -5.90667708843E-05 -6.11504594597E-05 -6.33068121126E-05 -6.55383480044E-05
+ -6.78476733716E-05 -7.02374845311E-05 -7.27105709881E-05 -7.52698186515E-05
+ -7.79182131601E-05 -8.06588433234E-05 -8.34949046808E-05 -8.64297031834E-05
+ -8.94666590033E-05 -9.26093104730E-05 -9.58613181612E-05 -9.92264690892E-05
+ -1.02708681092E-04 -1.06312007330E-04 -1.10040640955E-04 -1.13898919938E-04
+ -1.17891332066E-04 -1.22022520102E-04 -1.26297287133E-04 -1.30720602096E-04
+ -1.35297605497E-04 -1.40033615323E-04 -1.44934133162E-04 -1.50004850531E-04
+ -1.55251655424E-04 -1.60680639082E-04 -1.66298102996E-04 -1.72110566158E-04
+ -1.78124772549E-04 -1.84347698897E-04 -1.90786562694E-04 -1.97448830490E-04
+ -2.04342226475E-04 -2.11474741354E-04 -2.18854641523E-04 -2.26490478570E-04
+ -2.34391099095E-04 -2.42565654869E-04 -2.51023613339E-04 -2.59774768505E-04
+ -2.68829252156E-04 -2.78197545500E-04 -2.87890491194E-04 -2.97919305781E-04
+ -3.08295592564E-04 -3.19031354906E-04 -3.30139010006E-04 -3.41631403128E-04
+ -3.53521822333E-04 -3.65824013710E-04 -3.78552197125E-04 -3.91721082520E-04
+ -4.05345886760E-04 -4.19442351065E-04 -4.34026759036E-04 -4.49115955294E-04
+ -4.64727364765E-04 -4.80879012621E-04 -4.97589544903E-04 -5.14878249848E-04
+ -5.32765079949E-04 -5.51270674767E-04 -5.70416384521E-04 -5.90224294490E-04
+ -6.10717250239E-04 -6.31918883711E-04 -6.53853640215E-04 -6.76546806324E-04
+ -7.00024538731E-04 -7.24313894088E-04 -7.49442859860E-04 -7.75440386230E-04
+ -8.02336419093E-04 -8.30161934167E-04 -8.58948972272E-04 -8.88730675800E-04
+ -9.19541326431E-04 -9.51416384124E-04 -9.84392527437E-04 -1.01850769521E-03
+ -1.05380112967E-03 -1.09031342097E-03 -1.12808655328E-03 -1.16716395240E-03
+ -1.20759053501E-03 -1.24941275955E-03 -1.29267867883E-03 -1.33743799448E-03
+ -1.38374211311E-03 -1.43164420449E-03 -1.48119926158E-03 -1.53246416267E-03
+ -1.58549773555E-03 -1.64036082384E-03 -1.69711635558E-03 -1.75582941406E-03
+ -1.81656731111E-03 -1.87939966273E-03 -1.94439846731E-03 -2.01163818648E-03
+ -2.08119582861E-03 -2.15315103508E-03 -2.22758616947E-03 -2.30458640967E-03
+ -2.38423984304E-03 -2.46663756476E-03 -2.55187377936E-03 -2.64004590569E-03
+ -2.73125468528E-03 -2.82560429425E-03 -2.92320245900E-03 -3.02416057556E-03
+ -3.12859383292E-03 -3.23662134038E-03 -3.34836625901E-03 -3.46395593746E-03
+ -3.58352205208E-03 -3.70720075164E-03 -3.83513280671E-03 -3.96746376386E-03
+ -4.10434410476E-03 -4.24592941044E-03 -4.39238053080E-03 -4.54386375947E-03
+ -4.70055101424E-03 -4.86262002325E-03 -5.03025451698E-03 -5.20364442637E-03
+ -5.38298608703E-03 -5.56848244997E-03 -5.76034329873E-03 -5.95878547339E-03
+ -6.16403310133E-03 -6.37631783524E-03 -6.59587909829E-03 -6.82296433678E-03
+ -7.05782928045E-03 -7.30073821069E-03 -7.55196423661E-03 -7.81178957954E-03
+ -8.08050586577E-03 -8.35841442802E-03 -8.64582661561E-03 -8.94306411373E-03
+ -9.25045927179E-03 -9.56835544126E-03 -9.89710732298E-03 -1.02370813243E-02
+ -1.05886559261E-02 -1.09522220598E-02 -1.13281834954E-02 -1.17169572385E-02
+ -1.21189739394E-02 -1.25346783126E-02 -1.29645295664E-02 -1.34090018446E-02
+ -1.38685846789E-02 -1.43437834524E-02 -1.48351198753E-02 -1.53431324705E-02
+ -1.58683770726E-02 -1.64114273370E-02 -1.69728752611E-02 -1.75533317173E-02
+ -1.81534269969E-02 -1.87738113661E-02 -1.94151556327E-02 -2.00781517247E-02
+ -2.07635132791E-02 -2.14719762425E-02 -2.22042994811E-02 -2.29612654021E-02
+ -2.37436805839E-02 -2.45523764162E-02 -2.53882097490E-02 -2.62520635499E-02
+ -2.71448475688E-02 -2.80674990097E-02 -2.90209832090E-02 -3.00062943180E-02
+ -3.10244559904E-02 -3.20765220727E-02 -3.31635772955E-02 -3.42867379666E-02
+ -3.54471526613E-02 -3.66460029113E-02 -3.78845038872E-02 -3.91639050762E-02
+ -4.04854909491E-02 -4.18505816168E-02 -4.32605334730E-02 -4.47167398190E-02
+ -4.62206314699E-02 -4.77736773366E-02 -4.93773849813E-02 -5.10333011421E-02
+ -5.27430122224E-02 -5.45081447411E-02 -5.63303657378E-02 -5.82113831284E-02
+ -6.01529460055E-02 -6.21568448766E-02 -6.42249118346E-02 -6.63590206526E-02
+ -6.85610867968E-02 -7.08330673474E-02 -7.31769608211E-02 -7.55948068844E-02
+ -7.80886859483E-02 -8.06607186344E-02 -8.33130651006E-02 -8.60479242143E-02
+ -8.88675325617E-02 -9.17741632781E-02 -9.47701246861E-02 -9.78577587259E-02
+ -1.01039439162E-01 -1.04317569549E-01 -1.07694580940E-01 -1.11172929314E-01
+ -1.14755092710E-01 -1.18443568040E-01 -1.22240867559E-01 -1.26149514977E-01
+ -1.30172041173E-01 -1.34310979505E-01 -1.38568860668E-01 -1.42948207093E-01
+ -1.47451526836E-01 -1.52081306949E-01 -1.56840006283E-01 -1.61730047697E-01
+ -1.66753809643E-01 -1.71913617082E-01 -1.77211731707E-01 -1.82650341427E-01
+ -1.88231549072E-01 -1.93957360287E-01 -1.99829670579E-01 -2.05850251457E-01
+ -2.12020735653E-01 -2.18342601358E-01 -2.24817155446E-01 -2.31445515651E-01
+ -2.38228591639E-01 -2.45167064958E-01 -2.52261367818E-01 -2.59511660664E-01
+ -2.66917808527E-01 -2.74479356102E-01 -2.82195501549E-01 -2.90065068979E-01
+ -2.98086479630E-01 -3.06257721704E-01 -3.14576318887E-01 -3.23039297532E-01
+ -3.31643152553E-01 -3.40383812036E-01 -3.49256600611E-01 -3.58256201656E-01
+ -3.67376618374E-01 -3.76611133860E-01 -3.85952270244E-01 -3.95391747046E-01
+ -4.04920438892E-01 -4.14528332764E-01 -4.24204484999E-01 -4.33936978251E-01
+ -4.43712878707E-01 -4.53518193837E-01 -4.63337831036E-01 -4.73155557526E-01
+ -4.82953961949E-01 -4.92714418121E-01 -5.02417051462E-01 -5.12040708675E-01
+ -5.21562931298E-01 -5.30959933797E-01 -5.40206586957E-01 -5.49276407331E-01
+ -5.58141553638E-01 -5.66772830977E-01 -5.75139703870E-01 -5.83210319116E-01
+ -5.90951539568E-01 -5.98328989944E-01 -6.05307115850E-01 -6.11849257222E-01
+ -6.17917737437E-01 -6.23473969346E-01 -6.28478579495E-01 -6.32891551791E-01
+ -6.36672391862E-01 -6.39780313270E-01 -6.42174446715E-01 -6.43814073257E-01
+ -6.44658882430E-01 -6.44669256026E-01 -6.43806578064E-01 -6.42033571291E-01
+ -6.39314660243E-01 -6.35616360587E-01 -6.30907694111E-01 -6.25160628282E-01
+ -6.18350538821E-01 -6.10456693220E-01 -6.01462752515E-01 -5.91357287969E-01
+ -5.80134308585E-01 -5.67793794598E-01 -5.54342231172E-01 -5.39793135629E-01
+ -5.24167570468E-01 -5.07494633320E-01 -4.89811913772E-01 -4.71165905654E-01
+ -4.51612361950E-01 -4.31216577953E-01 -4.10053586591E-01 -3.88208248122E-01
+ -3.65775214535E-01 -3.42858747258E-01 -3.19572365160E-01 -2.96038298739E-01
+ -2.72386726214E-01 -2.48754768764E-01 -2.25285226487E-01 -2.02125045619E-01
+ -1.79423523789E-01 -1.57330287590E-01 -1.35993121387E-01 -1.15555796608E-01
+ -9.61561590835E-02 -7.79248960947E-02 -6.09856497638E-02 -4.54575050121E-02
+ -3.14614086852E-02 -1.91328418758E-02 -8.62861239605E-03 -2.18628250806E-07
+ 6.76524629535E-03 1.17031431602E-02 1.48733171421E-02 1.63595894775E-02
+ 1.62688237701E-02 1.47295662512E-02 1.18902669375E-02 7.91709784944E-03
+ 2.99139208096E-03 -2.69326656756E-03 -8.93426292946E-03 -1.55234434653E-02
+ -2.22508257353E-02 -2.89084957957E-02 -3.52946178156E-02 -4.12175491740E-02
+ -4.64999607350E-02 -5.09829910912E-02 -5.45302958551E-02 -5.70320618685E-02
+ -5.84087817971E-02 -5.86148878977E-02 -5.76419293384E-02 -5.55213806639E-02
+ -5.23265882578E-02 -4.81738587105E-02 -4.32219414241E-02 -3.76697382016E-02
+ -3.17528120572E-02 -2.57320433668E-02 -1.98852724748E-02 -1.44852764995E-02
+ -9.78021358203E-03 -5.96486899152E-03 -3.15039093590E-03 -1.33539069231E-03
+ -3.87305587281E-04 -4.95318501175E-05 -3.72499979911E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ -8.11028553872E+00 3.51419884961E+01 -6.60789494013E+01 7.14731395107E+01
+ -4.70643166974E+01 1.52753889185E+01 1.47433152274E+00 -2.11904238069E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 2 3 1 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 -1.57344693728E-17 -1.29130923955E-16 -4.47119276891E-16
+ -1.08740205370E-15 -2.17922421404E-15 -3.86419078932E-15 -6.29713510285E-15
+ -9.64704049312E-15 -1.40980186230E-14 -1.98503476285E-14 -2.71215735417E-14
+ -3.61476786115E-14 -4.71843203465E-14 -6.05081453166E-14 -7.64181819713E-14
+ -9.52373169673E-14 -1.17313859746E-13 -1.43023200363E-13 -1.72769565843E-13
+ -2.06987880628E-13 -2.46145736988E-13 -2.90745481587E-13 -3.41326424733E-13
+ -3.98467179206E-13 -4.62788135923E-13 -5.34954084099E-13 -6.15676983992E-13
+ -7.05718900747E-13 -8.05895108315E-13 -9.17077372928E-13 -1.04019742612E-12
+ -1.17625063781E-12 -1.32629990056E-12 -1.49147973669E-12 -1.67300064066E-12
+ -1.87215366959E-12 -2.09031529576E-12 -2.32895253550E-12 -2.58962836965E-12
+ -2.87400747172E-12 -3.18386226064E-12 -3.52107929592E-12 -3.88766603407E-12
+ -4.28575796605E-12 -4.71762615657E-12 -5.18568520743E-12 -5.69250166787E-12
+ -6.24080291650E-12 -6.83348654047E-12 -7.47363023912E-12 -8.16450228057E-12
+ -8.90957254145E-12 -9.71252416146E-12 -1.05772658462E-11 -1.15079448537E-11
+ -1.25089607011E-11 -1.35849796316E-11 -1.47409498821E-11 -1.59821177951E-11
+ -1.73140448203E-11 -1.87426254556E-11 -2.02741061750E-11 -2.19151054009E-11
+ -2.36726345738E-11 -2.55541203800E-11 -2.75674282004E-11 -2.97208868444E-11
+ -3.20233146403E-11 -3.44840469532E-11 -3.71129652090E-11 -3.99205275038E-11
+ -4.29178008856E-11 -4.61164953966E-11 -4.95289999717E-11 -5.31684202927E-11
+ -5.70486187020E-11 -6.11842562882E-11 -6.55908372574E-11 -7.02847557160E-11
+ -7.52833449901E-11 -8.06049296207E-11 -8.62688801758E-11 -9.22956710310E-11
+ -9.87069412763E-11 -1.05525558917E-10 -1.12775688545E-10 -1.20482862662E-10
+ -1.28674056856E-10 -1.37377769033E-10 -1.46624102914E-10 -1.56444856039E-10
+ -1.66873612505E-10 -1.77945840692E-10 -1.89698996255E-10 -2.02172630640E-10
+ -2.15408505442E-10 -2.29450712894E-10 -2.44345802831E-10 -2.60142916458E-10
+ -2.76893927296E-10 -2.94653589679E-10 -3.13479695202E-10 -3.33433237557E-10
+ -3.54578586173E-10 -3.76983669158E-10 -4.00720166020E-10 -4.25863710683E-10
+ -4.52494105352E-10 -4.80695545801E-10 -5.10556858678E-10 -5.42171751482E-10
+ -5.75639075864E-10 -6.11063104972E-10 -6.48553825569E-10 -6.88227245723E-10
+ -7.30205718875E-10 -7.74618285158E-10 -8.21601030889E-10 -8.71297467173E-10
+ -9.23858928648E-10 -9.79444993426E-10 -1.03822392535E-09 -1.10037313974E-09
+ -1.16607969391E-09 -1.23554080364E-09 -1.30896438720E-09 -1.38656963807E-09
+ -1.46858762821E-09 -1.55526194318E-09 -1.64684935102E-09 -1.74362050654E-09
+ -1.84586069294E-09 -1.95387060270E-09 -2.06796715981E-09 -2.18848438562E-09
+ -2.31577431037E-09 -2.45020793307E-09 -2.59217623213E-09 -2.74209122939E-09
+ -2.90038711053E-09 -3.06752140453E-09 -3.24397622566E-09 -3.43025958095E-09
+ -3.62690674681E-09 -3.83448171832E-09 -4.05357873506E-09 -4.28482388751E-09
+ -4.52887680823E-09 -4.78643245224E-09 -5.05822297143E-09 -5.34501968775E-09
+ -5.64763517055E-09 -5.96692542337E-09 -6.30379218614E-09 -6.65918535856E-09
+ -7.03410555140E-09 -7.42960677205E-09 -7.84679925167E-09 -8.28685242121E-09
+ -8.75099804415E-09 -9.24053351426E-09 -9.75682532689E-09 -1.03013127331E-08
+ -1.08755115858E-08 -1.14810183891E-08 -1.21195145593E-08 -1.27927709119E-08
+ -1.35026523824E-08 -1.42511229979E-08 -1.50402511076E-08 -1.58722148903E-08
+ -1.67493081505E-08 -1.76739464189E-08 -1.86486733743E-08 -1.96761676026E-08
+ -2.07592497106E-08 -2.19008898141E-08 -2.31042154188E-08 -2.43725197158E-08
+ -2.57092703119E-08 -2.71181184192E-08 -2.86029085262E-08 -3.01676885779E-08
+ -3.18167206888E-08 -3.35544924194E-08 -3.53857286441E-08 -3.73154040413E-08
+ -3.93487562398E-08 -4.14912996542E-08 -4.37488400464E-08 -4.61274898509E-08
+ -4.86336843038E-08 -5.12741984175E-08 -5.40561648459E-08 -5.69870926860E-08
+ -6.00748872654E-08 -6.33278709670E-08 -6.67548051456E-08 -7.03649131926E-08
+ -7.41679048105E-08 -7.81740015583E-08 -8.23939637368E-08 -8.68391186811E-08
+ -9.15213905371E-08 -9.64533315965E-08 -1.01648155274E-07 -1.07119770811E-07
+ -1.12882819798E-07 -1.18952714610E-07 -1.25345678854E-07 -1.32078789929E-07
+ -1.39170023831E-07 -1.46638302279E-07 -1.54503542335E-07 -1.62786708597E-07
+ -1.71509868142E-07 -1.80696248336E-07 -1.90370297674E-07 -2.00557749795E-07
+ -2.11285690863E-07 -2.22582630458E-07 -2.34478576183E-07 -2.47005112178E-07
+ -2.60195481733E-07 -2.74084674235E-07 -2.88709516645E-07 -3.04108769783E-07
+ -3.20323229626E-07 -3.37395833921E-07 -3.55371774369E-07 -3.74298614669E-07
+ -3.94226414740E-07 -4.15207861444E-07 -4.37298406132E-07 -4.60556409392E-07
+ -4.85043293354E-07 -5.10823701968E-07 -5.37965669652E-07 -5.66540798759E-07
+ -5.96624446320E-07 -6.28295920541E-07 -6.61638687583E-07 -6.96740589131E-07
+ -7.33694071344E-07 -7.72596425765E-07 -8.13550042817E-07 -8.56662678546E-07
+ -9.02047735299E-07 -9.49824557061E-07 -1.00011874023E-06 -1.05306246061E-06
+ -1.10879481749E-06 -1.16746219573E-06 -1.22921864668E-06 -1.29422628903E-06
+ -1.36265573068E-06 -1.43468651244E-06 -1.51050757512E-06 -1.59031775084E-06
+ -1.67432628008E-06 -1.76275335567E-06 -1.85583069526E-06 -1.95380214355E-06
+ -2.05692430605E-06 -2.16546721592E-06 -2.27971503552E-06 -2.39996679468E-06
+ -2.52653716742E-06 -2.65975728924E-06 -2.79997561704E-06 -2.94755883391E-06
+ -3.10289280108E-06 -3.26638355963E-06 -3.43845838431E-06 -3.61956689249E-06
+ -3.81018221078E-06 -4.01080220262E-06 -4.22195075980E-06 -4.44417916142E-06
+ -4.67806750355E-06 -4.92422620363E-06 -5.18329758308E-06 -5.45595753259E-06
+ -5.74291726408E-06 -6.04492515403E-06 -6.36276868288E-06 -6.69727647542E-06
+ -7.04932044758E-06 -7.41981806501E-06 -7.80973471930E-06 -8.22008622803E-06
+ -8.65194146499E-06 -9.10642512739E-06 -9.58472064716E-06 -1.00880732538E-05
+ -1.06177931967E-05 -1.11752591353E-05 -1.17619217055E-05 -1.23793072718E-05
+ -1.30290218746E-05 -1.37127553831E-05 -1.44322858638E-05 -1.51894841767E-05
+ -1.59863188102E-05 -1.68248609676E-05 -1.77072899179E-05 -1.86358986247E-05
+ -1.96130996680E-05 -2.06414314736E-05 -2.17235648654E-05 -2.28623099597E-05
+ -2.40606234159E-05 -2.53216160646E-05 -2.66485609318E-05 -2.80449016792E-05
+ -2.95142614827E-05 -3.10604523715E-05 -3.26874850523E-05 -3.43995792419E-05
+ -3.62011745362E-05 -3.80969418429E-05 -4.00917954061E-05 -4.21909054544E-05
+ -4.43997115038E-05 -4.67239363497E-05 -4.91696007831E-05 -5.17430390689E-05
+ -5.44509152242E-05 -5.73002401394E-05 -6.02983895837E-05 -6.34531231425E-05
+ -6.67726041318E-05 -7.02654205424E-05 -7.39406070653E-05 -7.78076682530E-05
+ -8.18766028770E-05 -8.61579295409E-05 -9.06627136134E-05 -9.54025955501E-05
+ -1.00389820673E-04 -1.05637270483E-04 -1.11158495584E-04 -1.16967750303E-04
+ -1.23080029082E-04 -1.29511104747E-04 -1.36277568741E-04 -1.43396873414E-04
+ -1.50887376496E-04 -1.58768387834E-04 -1.67060218531E-04 -1.75784232602E-04
+ -1.84962901268E-04 -1.94619860022E-04 -2.04779968619E-04 -2.15469374122E-04
+ -2.26715577160E-04 -2.38547501567E-04 -2.50995567569E-04 -2.64091768681E-04
+ -2.77869752527E-04 -2.92364905753E-04 -3.07614443250E-04 -3.23657501896E-04
+ -3.40535239048E-04 -3.58290936003E-04 -3.76970106692E-04 -3.96620611857E-04
+ -4.17292778971E-04 -4.39039528199E-04 -4.61916504689E-04 -4.85982217489E-04
+ -5.11298185440E-04 -5.37929090356E-04 -5.65942937859E-04 -5.95411226235E-04
+ -6.26409123697E-04 -6.59015654458E-04 -6.93313894031E-04 -7.29391174206E-04
+ -7.67339298155E-04 -8.07254766138E-04 -8.49239012332E-04 -8.93398653274E-04
+ -9.39845748488E-04 -9.88698073846E-04 -1.04007940826E-03 -1.09411983429E-03
+ -1.15095605341E-03 -1.21073171639E-03 -1.27359776974E-03 -1.33971281874E-03
+ -1.40924350786E-03 -1.48236491941E-03 -1.55926099105E-03 -1.64012495324E-03
+ -1.72515978729E-03 -1.81457870487E-03 -1.90860565020E-03 -2.00747582547E-03
+ -2.11143624077E-03 -2.22074628942E-03 -2.33567834977E-03 -2.45651841447E-03
+ -2.58356674850E-03 -2.71713857686E-03 -2.85756480322E-03 -3.00519276070E-03
+ -3.16038699599E-03 -3.32353008795E-03 -3.49502350213E-03 -3.67528848232E-03
+ -3.86476698049E-03 -4.06392262645E-03 -4.27324173845E-03 -4.49323437621E-03
+ -4.72443543748E-03 -4.96740579960E-03 -5.22273350737E-03 -5.49103500834E-03
+ -5.77295643698E-03 -6.06917494881E-03 -6.38040010576E-03 -6.70737531370E-03
+ -7.05087931342E-03 -7.41172772580E-03 -7.79077465215E-03 -8.18891433039E-03
+ -8.60708284776E-03 -9.04625991033E-03 -9.50747066978E-03 -9.99178760734E-03
+ -1.05003324749E-02 -1.10342782924E-02 -1.15948514018E-02 -1.21833335750E-02
+ -1.28010641756E-02 -1.34494423722E-02 -1.41299294012E-02 -1.48440508749E-02
+ -1.55933991341E-02 -1.63796356386E-02 -1.72044933925E-02 -1.80697793981E-02
+ -1.89773771330E-02 -1.99292490418E-02 -2.09274390353E-02 -2.19740749884E-02
+ -2.30713712239E-02 -2.42216309739E-02 -2.54272488025E-02 -2.66907129769E-02
+ -2.80146077702E-02 -2.94016156776E-02 -3.08545195263E-02 -3.23762044566E-02
+ -3.39696597501E-02 -3.56379804785E-02 -3.73843689432E-02 -3.92121358739E-02
+ -4.11247013514E-02 -4.31255954165E-02 -4.52184583225E-02 -4.74070403882E-02
+ -4.96952014011E-02 -5.20869095186E-02 -5.45862396112E-02 -5.71973709849E-02
+ -5.99245844191E-02 -6.27722584477E-02 -6.57448648095E-02 -6.88469629867E-02
+ -7.20831937467E-02 -7.54582715951E-02 -7.89769760446E-02 -8.26441415988E-02
+ -8.64646463417E-02 -9.04433990231E-02 -9.45853245206E-02 -9.88953475565E-02
+ -1.03378374543E-01 -1.08039273425E-01 -1.12882851382E-01 -1.17913830259E-01
+ -1.23136819577E-01 -1.28556286995E-01 -1.34176526065E-01 -1.40001621164E-01
+ -1.46035409446E-01 -1.52281439700E-01 -1.58742927977E-01 -1.65422709886E-01
+ -1.72323189455E-01 -1.79446284465E-01 -1.86793368201E-01 -1.94365207583E-01
+ -2.02161897645E-01 -2.10182792404E-01 -2.18426432150E-01 -2.26890467278E-01
+ -2.35571578791E-01 -2.44465395679E-01 -2.53566409435E-01 -2.62867886026E-01
+ -2.72361775728E-01 -2.82038621286E-01 -2.91887464963E-01 -3.01895755125E-01
+ -3.12049253108E-01 -3.22331941194E-01 -3.32725932637E-01 -3.43211384796E-01
+ -3.53766416487E-01 -3.64367030826E-01 -3.74987044881E-01 -3.85598027579E-01
+ -3.96169247371E-01 -4.06667631252E-01 -4.17057736789E-01 -4.27301738868E-01
+ -4.37359432897E-01 -4.47188256266E-01 -4.56743329861E-01 -4.65977521465E-01
+ -4.74841532915E-01 -4.83284012933E-01 -4.91251697642E-01 -4.98689580900E-01
+ -5.05541116855E-01 -5.11748457429E-01 -5.17252727935E-01 -5.21994344738E-01
+ -5.25913379730E-01 -5.28949977603E-01 -5.31044833309E-01 -5.32139738867E-01
+ -5.32178210634E-01 -5.31106210319E-01 -5.28872975145E-01 -5.25431974390E-01
+ -5.20742010652E-01 -5.14768483877E-01 -5.07484833599E-01 -4.98874168756E-01
+ -4.88931083254E-01 -4.77663637186E-01 -4.65095455976E-01 -4.51267860089E-01
+ -4.36241883823E-01 -4.20099971150E-01 -4.02947049190E-01 -3.84910578624E-01
+ -3.66139074011E-01 -3.46798494569E-01 -3.27065863528E-01 -3.07119544528E-01
+ -2.87125891812E-01 -2.67222667290E-01 -2.47500950210E-01 -2.27989669980E-01
+ -2.08651003882E-01 -1.89401654540E-01 -1.70185881707E-01 -1.51143213923E-01
+ -1.32940093482E-01 -1.17374805426E-01 -1.07073836989E-01 -9.94610516304E-02
+ -9.39713151726E-02 -9.05532129211E-02 -8.91194983708E-02 -8.95480748056E-02
+ -9.16836786043E-02 -9.53402642363E-02 -1.00304062859E-01 -1.06337277783E-01
+ -1.13182356042E-01 -1.20566757810E-01 -1.28208142146E-01 -1.35819851561E-01
+ -1.43116613802E-01 -1.49820315719E-01 -1.55665795945E-01 -1.60406504643E-01
+ -1.63820036930E-01 -1.65713407211E-01 -1.65928154707E-01 -1.64345182904E-01
+ -1.60889502123E-01 -1.55534794501E-01 -1.48307982475E-01 -1.39293641567E-01
+ -1.28638277104E-01 -1.16554009986E-01 -1.03321215653E-01 -8.92890127097E-02
+ -7.48720469642E-02 -6.05424154057E-02 -4.68123805928E-02 -3.42073489442E-02
+ -2.32240174337E-02 -1.42738754309E-02 -7.61279154978E-03 -3.26483114636E-03
+ -9.59869907779E-04 -1.24723169388E-04 -6.64625050241E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -1.32382873702E+01 5.54066018726E+01 -8.37863475822E+01 -2.34655341498E+01
+ 3.38283177499E+02 -6.33804221646E+02 5.36604534735E+02 -1.77172249069E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 2 4 1 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 -1.24166663118E-17 -1.01902107742E-16 -3.52838772709E-16
+ -8.58110186469E-16 -1.71970844666E-15 -3.04937945212E-15 -4.96930804836E-15
+ -7.61284539428E-15 -1.11252809831E-14 -1.56646618850E-14 -2.14026619215E-14
+ -2.85255036316E-14 -3.72349360478E-14 -4.77492714669E-14 -6.03044845748E-14
+ -7.51553774736E-14 -9.25768143485E-14 -1.12865029724E-13 -1.36339014470E-13
+ -1.63341983952E-13 -1.94242932957E-13 -2.29438282282E-13 -2.69353622138E-13
+ -3.14445557806E-13 -3.65203663275E-13 -4.22152548918E-13 -4.85854049567E-13
+ -5.56909539716E-13 -6.35962382947E-13 -7.23700523043E-13 -8.20859224678E-13
+ -9.28223971989E-13 -1.04663353379E-12 -1.17698320465E-12 -1.32022823164E-12
+ -1.47738743687E-12 -1.64954704680E-12 -1.83786473962E-12 -2.04357392277E-12
+ -2.26798825320E-12 -2.51250641390E-12 -2.77861716047E-12 -3.06790465295E-12
+ -3.38205408819E-12 -3.72285764945E-12 -4.09222079053E-12 -4.49216887272E-12
+ -4.92485417385E-12 -5.39256328977E-12 -5.89772494969E-12 -6.44291826786E-12
+ -7.03088145542E-12 -7.66452101751E-12 -8.34692146188E-12 -9.08135554696E-12
+ -9.87129509851E-12 -1.07204224259E-11 -1.16326423704E-11 -1.26120950196E-11
+ -1.36631691243E-11 -1.47905162560E-11 -1.59990657443E-11 -1.72940404370E-11
+ -1.86809733274E-11 -2.01657250951E-11 -2.17545026102E-11 -2.34538784518E-11
+ -2.52708114968E-11 -2.72126686355E-11 -2.92872476754E-11 -3.15028014965E-11
+ -3.38680635253E-11 -3.63922745999E-11 -3.90852112982E-11 -4.19572158100E-11
+ -4.50192274347E-11 -4.82828157926E-11 -5.17602158401E-11 -5.54643647872E-11
+ -5.94089410181E-11 -6.36084051218E-11 -6.80780431472E-11 -7.28340121992E-11
+ -7.78933885030E-11 -8.32742180675E-11 -8.89955700864E-11 -9.50775932239E-11
+ -1.01541574938E-10 -1.08410004003E-10 -1.15706636407E-10 -1.23456564790E-10
+ -1.31686291635E-10 -1.40423806382E-10 -1.49698666706E-10 -1.59542084150E-10
+ -1.69987014366E-10 -1.81068252206E-10 -1.92822531902E-10 -2.05288632639E-10
+ -2.18507489774E-10 -2.32522312021E-10 -2.47378704915E-10 -2.63124800880E-10
+ -2.79811396268E-10 -2.97492095715E-10 -3.16223464230E-10 -3.36065187399E-10
+ -3.57080240158E-10 -3.79335064570E-10 -4.02899757098E-10 -4.27848265869E-10
+ -4.54258598451E-10 -4.82213040722E-10 -5.11798387387E-10 -5.43106184789E-10
+ -5.76232986644E-10 -6.11280623389E-10 -6.48356485868E-10 -6.87573824104E-10
+ -7.29052061965E-10 -7.72917128552E-10 -8.19301807202E-10 -8.68346103032E-10
+ -9.20197630000E-10 -9.75012018520E-10 -1.03295334470E-09 -1.09419458239E-09
+ -1.15891807915E-09 -1.22731605751E-09 -1.29959114279E-09 -1.37595691885E-09
+ -1.45663851340E-09 -1.54187321415E-09 -1.63191111773E-09 -1.72701581293E-09
+ -1.82746510000E-09 -1.93355174818E-09 -2.04558429318E-09 -2.16388787689E-09
+ -2.28880513147E-09 -2.42069711016E-09 -2.55994426738E-09 -2.70694749047E-09
+ -2.86212918605E-09 -3.02593442370E-09 -3.19883214007E-09 -3.38131640651E-09
+ -3.57390776366E-09 -3.77715462644E-09 -3.99163476317E-09 -4.21795685270E-09
+ -4.45676212373E-09 -4.70872608047E-09 -4.97456031938E-09 -5.25501444157E-09
+ -5.55087806609E-09 -5.86298294922E-09 -6.19220521549E-09 -6.53946770608E-09
+ -6.90574245109E-09 -7.29205327182E-09 -7.69947852016E-09 -8.12915396209E-09
+ -8.58227581306E-09 -9.06010393297E-09 -9.56396518937E-09 -1.00952569975E-08
+ -1.06554510464E-08 -1.12460972217E-08 -1.18688277333E-08 -1.25253614616E-08
+ -1.32175085312E-08 -1.39471751254E-08 -1.47163685535E-08 -1.55272025846E-08
+ -1.63819030619E-08 -1.72828138110E-08 -1.82324028596E-08 -1.92332689834E-08
+ -2.02881485954E-08 -2.13999229983E-08 -2.25716260155E-08 -2.38064520251E-08
+ -2.51077644135E-08 -2.64791044745E-08 -2.79242007740E-08 -2.94469790068E-08
+ -3.10515723708E-08 -3.27423324848E-08 -3.45238408794E-08 -3.64009210907E-08
+ -3.83786513882E-08 -4.04623781700E-08 -4.26577300609E-08 -4.49706327489E-08
+ -4.74073246007E-08 -4.99743730943E-08 -5.26786921145E-08 -5.55275601541E-08
+ -5.85286394688E-08 -6.16899962364E-08 -6.50201217725E-08 -6.85279548569E-08
+ -7.22229052309E-08 -7.61148783245E-08 -8.02143012795E-08 -8.45321503355E-08
+ -8.90799796503E-08 -9.38699516295E-08 -9.89148688443E-08 -1.04228207621E-07
+ -1.09824153388E-07 -1.15717637877E-07 -1.21924378265E-07 -1.28460918373E-07
+ -1.35344672015E-07 -1.42593968621E-07 -1.50228101242E-07 -1.58267377072E-07
+ -1.66733170615E-07 -1.75647979627E-07 -1.85035483989E-07 -1.94920607666E-07
+ -2.05329583897E-07 -2.16290023799E-07 -2.27830988568E-07 -2.39983065441E-07
+ -2.52778447645E-07 -2.66251018520E-07 -2.80436440040E-07 -2.95372245972E-07
+ -3.11097939897E-07 -3.27655098357E-07 -3.45087479403E-07 -3.63441136808E-07
+ -3.82764540257E-07 -4.03108701819E-07 -4.24527309027E-07 -4.47076864916E-07
+ -4.70816835384E-07 -4.95809804245E-07 -5.22121636393E-07 -5.49821649490E-07
+ -5.78982794627E-07 -6.09681846419E-07 -6.41999603037E-07 -6.76021096695E-07
+ -7.11835815117E-07 -7.49537934594E-07 -7.89226565198E-07 -8.31006008816E-07
+ -8.74986030650E-07 -9.21282144908E-07 -9.70015915404E-07 -1.02131527187E-06
+ -1.07531484275E-06 -1.13215630544E-06 -1.19198875473E-06 -1.25496909054E-06
+ -1.32126242589E-06 -1.39104251612E-06 -1.46449221059E-06 -1.54180392790E-06
+ -1.62318015595E-06 -1.70883397804E-06 -1.79898962648E-06 -1.89388306509E-06
+ -1.99376260206E-06 -2.09888953478E-06 -2.20953882835E-06 -2.32599982950E-06
+ -2.44857701765E-06 -2.57759079525E-06 -2.71337831932E-06 -2.85629437631E-06
+ -3.00671230264E-06 -3.16502495319E-06 -3.33164572032E-06 -3.50700960602E-06
+ -3.69157434993E-06 -3.88582161617E-06 -4.09025824204E-06 -4.30541755178E-06
+ -4.53186073881E-06 -4.77017832003E-06 -5.02099166579E-06 -5.28495460967E-06
+ -5.56275514211E-06 -5.85511719218E-06 -6.16280250226E-06 -6.48661260024E-06
+ -6.82739087449E-06 -7.18602475682E-06 -7.56344801915E-06 -7.96064318961E-06
+ -8.37864409454E-06 -8.81853853264E-06 -9.28147108834E-06 -9.76864609154E-06
+ -1.02813307313E-05 -1.08208583314E-05 -1.13886317966E-05 -1.19861272373E-05
+ -1.26148977837E-05 -1.32765775974E-05 -1.39728860918E-05 -1.47056323719E-05
+ -1.54767199046E-05 -1.62881514314E-05 -1.71420341369E-05 -1.80405850851E-05
+ -1.89861369379E-05 -1.99811439712E-05 -2.10281884017E-05 -2.21299870440E-05
+ -2.32893983107E-05 -2.45094295778E-05 -2.57932449302E-05 -2.71441733096E-05
+ -2.85657170843E-05 -3.00615610633E-05 -3.16355819769E-05 -3.32918584484E-05
+ -3.50346814821E-05 -3.68685654934E-05 -3.87982599109E-05 -4.08287613765E-05
+ -4.29653265785E-05 -4.52134857460E-05 -4.75790568417E-05 -5.00681604870E-05
+ -5.26872356583E-05 -5.54430561924E-05 -5.83427481442E-05 -6.13938080387E-05
+ -6.46041220645E-05 -6.79819862553E-05 -7.15361277111E-05 -7.52757269115E-05
+ -7.92104411769E-05 -8.33504293359E-05 -8.77063776609E-05 -9.22895271347E-05
+ -9.71117021179E-05 -1.02185340486E-04 -1.07523525314E-04 -1.13140018179E-04
+ -1.19049294174E-04 -1.25266578714E-04 -1.31807886214E-04 -1.38690060756E-04
+ -1.45930818827E-04 -1.53548794234E-04 -1.61563585314E-04 -1.69995804544E-04
+ -1.78867130684E-04 -1.88200363559E-04 -1.98019481632E-04 -2.08349702496E-04
+ -2.19217546437E-04 -2.30650903204E-04 -2.42679102175E-04 -2.55332986047E-04
+ -2.68644988267E-04 -2.82649214348E-04 -2.97381527291E-04 -3.12879637293E-04
+ -3.29183195972E-04 -3.46333895299E-04 -3.64375571498E-04 -3.83354314137E-04
+ -4.03318580656E-04 -4.24319316612E-04 -4.46410081899E-04 -4.69647183243E-04
+ -4.94089813251E-04 -5.19800196354E-04 -5.46843741947E-04 -5.75289205070E-04
+ -6.05208855003E-04 -6.36678652113E-04 -6.69778433367E-04 -7.04592106899E-04
+ -7.41207856050E-04 -7.79718353313E-04 -8.20220984648E-04 -8.62818084620E-04
+ -9.07617182864E-04 -9.54731262379E-04 -1.00427903017E-03 -1.05638520080E-03
+ -1.11118079343E-03 -1.16880344284E-03 -1.22939772525E-03 -1.29311549929E-03
+ -1.36011626302E-03 -1.43056752748E-03 -1.50464520764E-03 -1.58253403129E-03
+ -1.66442796672E-03 -1.75053066988E-03 -1.84105595188E-03 -1.93622826749E-03
+ -2.03628322558E-03 -2.14146812229E-03 -2.25204249770E-03 -2.36827871699E-03
+ -2.49046257690E-03 -2.61889393836E-03 -2.75388738623E-03 -2.89577291701E-03
+ -3.04489665549E-03 -3.20162160119E-03 -3.36632840556E-03 -3.53941618069E-03
+ -3.72130334068E-03 -3.91242847626E-03 -4.11325126370E-03 -4.32425340867E-03
+ -4.54593962601E-03 -4.77883865596E-03 -5.02350431758E-03 -5.28051660004E-03
+ -5.55048279216E-03 -5.83403865078E-03 -6.13184960815E-03 -6.44461201864E-03
+ -6.77305444479E-03 -7.11793898258E-03 -7.48006262578E-03 -7.86025866865E-03
+ -8.25939814658E-03 -8.67839131344E-03 -9.11818915470E-03 -9.57978493442E-03
+ -1.00642157745E-02 -1.05725642637E-02 -1.11059600938E-02 -1.16655817199E-02
+ -1.22526580405E-02 -1.28684700937E-02 -1.35143527647E-02 -1.41916964980E-02
+ -1.49019490094E-02 -1.56466169888E-02 -1.64272677880E-02 -1.72455310817E-02
+ -1.81031004941E-02 -1.90017351784E-02 -1.99432613363E-02 -2.09295736653E-02
+ -2.19626367165E-02 -2.30444861473E-02 -2.41772298496E-02 -2.53630489336E-02
+ -2.66041985444E-02 -2.79030084865E-02 -2.92618836310E-02 -3.06833040742E-02
+ -3.21698250177E-02 -3.37240763352E-02 -3.53487617874E-02 -3.70466578479E-02
+ -3.88206120931E-02 -4.06735411122E-02 -4.26084278861E-02 -4.46283185815E-02
+ -4.67363187026E-02 -4.89355885401E-02 -5.12293378509E-02 -5.36208197004E-02
+ -5.61133233932E-02 -5.87101664162E-02 -6.14146853108E-02 -6.42302253907E-02
+ -6.71601292147E-02 -7.02077237229E-02 -7.33763059386E-02 -7.66691271392E-02
+ -8.00893753917E-02 -8.36401563512E-02 -8.73244722174E-02 -9.11451987436E-02
+ -9.51050601943E-02 -9.92066021490E-02 -1.03452162053E-01 -1.07843837423E-01
+ -1.12383451613E-01 -1.17072517080E-01 -1.21912196054E-01 -1.26903258593E-01
+ -1.32046037955E-01 -1.37340383301E-01 -1.42785609713E-01 -1.48380445579E-01
+ -1.54122977404E-01 -1.60010592161E-01 -1.66039917316E-01 -1.72206758737E-01
+ -1.78506036712E-01 -1.84931720388E-01 -1.91476760994E-01 -1.98133024274E-01
+ -2.04891222636E-01 -2.11740847583E-01 -2.18670103109E-01 -2.25665840769E-01
+ -2.32713497279E-01 -2.39797035535E-01 -2.46898890062E-01 -2.53999917953E-01
+ -2.61079356474E-01 -2.68114788530E-01 -2.75082117294E-01 -2.81955551309E-01
+ -2.88707601433E-01 -2.95309090982E-01 -3.01729180449E-01 -3.07935408140E-01
+ -3.13893748013E-01 -3.19568685964E-01 -3.24923315731E-01 -3.29919455496E-01
+ -3.34517786227E-01 -3.38678012722E-01 -3.42359048386E-01 -3.45519224787E-01
+ -3.48116527307E-01 -3.50108858507E-01 -3.51454331419E-01 -3.52111595784E-01
+ -3.52040201381E-01 -3.51201004102E-01 -3.49556622263E-01 -3.47071952989E-01
+ -3.43714761065E-01 -3.39456355630E-01 -3.34272372915E-01 -3.28143685910E-01
+ -3.21057463500E-01 -3.13008401637E-01 -3.04000146273E-01 -2.94046920507E-01
+ -2.83175354748E-01 -2.71426496076E-01 -2.58857938570E-01 -2.45545966724E-01
+ -2.31587536229E-01 -2.17101827728E-01 -2.02230999571E-01 -1.87139638671E-01
+ -1.72012276195E-01 -1.57048221389E-01 -1.42452919144E-01 -1.28425135887E-01
+ -1.15139659638E-01 -1.02726082537E-01 -9.12459629058E-02 -8.06737736325E-02
+ -7.08923491710E-02 -6.17222720860E-02 -5.30186210053E-02 -4.48904366053E-02
+ -3.81321104569E-02 -3.50074269377E-02 -3.87689357237E-02 -4.56112209917E-02
+ -5.46614570640E-02 -6.57662301145E-02 -7.87322968342E-02 -9.33284163386E-02
+ -1.09287999226E-01 -1.26312565645E-01 -1.44075978111E-01 -1.62229398625E-01
+ -1.80406896036E-01 -1.98231611820E-01 -2.15322380070E-01 -2.31300680816E-01
+ -2.45797810915E-01 -2.58462148671E-01 -2.68966411220E-01 -2.77014816187E-01
+ -2.82350089548E-01 -2.84760307815E-01 -2.84085574074E-01 -2.80224614494E-01
+ -2.73141324425E-01 -2.62871410462E-01 -2.49529069211E-01 -2.33313748607E-01
+ -2.14516575481E-01 -1.93526047776E-01 -1.70831757027E-01 -1.47024748876E-01
+ -1.22793150770E-01 -9.89053547023E-02 -7.61856798311E-02 -5.54659100072E-02
+ -3.75213968455E-02 -2.29804573795E-02 -1.22145508445E-02 -5.22107419049E-03
+ -1.53020465887E-03 -1.98236457704E-04 -8.70996482516E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -1.04468344576E+01 4.74631333194E+01 -6.91490528133E+01 -6.71394131215E+01
+ 4.56357338800E+02 -8.20412204163E+02 6.88881007197E+02 -2.27065903973E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 2 5 2 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 1.22885055400E-23 2.03424510236E-22 1.06559979122E-21
+ 3.48510980787E-21 8.80573251114E-21 1.88990953350E-20 3.62426781670E-20
+ 6.40061546455E-20 1.06146833014E-19 1.67515021311E-19 2.53970210239E-19
+ 3.72509041032E-19 5.31406105422E-19 7.40368710846E-19 1.01070683680E-18
+ 1.35551960830E-18 1.78989972008E-18 2.33115736161E-18 2.99906531776E-18
+ 3.81612705529E-18 4.80786975025E-18 6.00316436806E-18 7.43457507645E-18
+ 9.13874045289E-18 1.11567891436E-17 1.35347928413E-17 1.63242596755E-17
+ 1.95826713522E-17 2.33740676432E-17 2.77696821049E-17 3.28486332134E-17
+ 3.86986754255E-17 4.54170150285E-17 5.31111960194E-17 6.19000616586E-17
+ 7.19147977811E-17 8.33000644176E-17 9.62152227826E-17 1.10835665228E-16
+ 1.27354256344E-16 1.45982894025E-16 1.66954199964E-16 1.90523349811E-16
+ 2.16970053951E-16 2.46600700744E-16 2.79750674934E-16 3.16786864913E-16
+ 3.58110373562E-16 4.04159448494E-16 4.55412648734E-16 5.12392266140E-16
+ 5.75668021264E-16 6.45861054804E-16 7.23648237435E-16 8.09766822450E-16
+ 9.05019467539E-16 1.01027965395E-15 1.12649753343E-15 1.25470623553E-15
+ 1.39602867045E-15 1.55168486502E-15 1.72299987230E-15 1.91141229841E-15
+ 2.11848349313E-15 2.34590745462E-15 2.59552150206E-15 2.86931777415E-15
+ 3.16945561551E-15 3.49827491796E-15 3.85831048812E-15 4.25230751840E-15
+ 4.68323824395E-15 5.15431987436E-15 5.66903389514E-15 6.23114684135E-15
+ 6.84473265299E-15 7.51419672991E-15 8.24430181253E-15 9.04019582414E-15
+ 9.90744182007E-15 1.08520502001E-14 1.18805133514E-14 1.29998429022E-14
+ 1.42176097787E-14 1.55419872717E-14 1.69817973367E-14 1.85465603632E-14
+ 2.02465486706E-14 2.20928440036E-14 2.40973993218E-14 2.62731051982E-14
+ 2.86338611645E-14 3.11946523668E-14 3.39716319198E-14 3.69822093761E-14
+ 4.02451457597E-14 4.37806556404E-14 4.76105167660E-14 5.17581878024E-14
+ 5.62489347720E-14 6.11099668264E-14 6.63705820304E-14 7.20623238878E-14
+ 7.82191493887E-14 8.48776094167E-14 9.20770424119E-14 9.98597822539E-14
+ 1.08271381394E-13 1.17360850344E-13 1.27180914704E-13 1.37788291003E-13
+ 1.49243982705E-13 1.61613597858E-13 1.74967689920E-13 1.89382123469E-13
+ 2.04938466572E-13 2.21724411739E-13 2.39834227539E-13 2.59369243070E-13
+ 2.80438367659E-13 3.03158648334E-13 3.27655867776E-13 3.54065185674E-13
+ 3.82531826600E-13 4.13211817752E-13 4.46272780139E-13 4.81894777064E-13
+ 5.20271224005E-13 5.61609864303E-13 6.06133815383E-13 6.54082690568E-13
+ 7.05713801894E-13 7.61303449741E-13 8.21148305502E-13 8.85566893936E-13
+ 9.54901182359E-13 1.02951828430E-12 1.10981228586E-12 1.19620620341E-12
+ 1.28915408226E-12 1.38914324608E-12 1.49669670813E-12 1.61237575558E-12
+ 1.73678271951E-12 1.87056394371E-12 2.01441296651E-12 2.16907393078E-12
+ 2.33534523848E-12 2.51408346712E-12 2.70620756672E-12 2.91270335744E-12
+ 3.13462834914E-12 3.37311690587E-12 3.62938577981E-12 3.90474004100E-12
+ 4.20057943094E-12 4.51840517029E-12 4.85982725302E-12 5.22657226134E-12
+ 5.62049173882E-12 6.04357116100E-12 6.49793954618E-12 6.98587975177E-12
+ 7.50983950496E-12 8.07244321973E-12 8.67650465616E-12 9.32504048172E-12
+ 1.00212847987E-11 1.07687047060E-11 1.15710169691E-11 1.24322058768E-11
+ 1.33565423676E-11 1.43486045185E-11 1.54132994893E-11 1.65558870287E-11
+ 1.77820046510E-11 1.90976946019E-11 2.05094327411E-11 2.20241594766E-11
+ 2.36493128959E-11 2.53928642505E-11 2.72633559597E-11 2.92699423110E-11
+ 3.14224330507E-11 3.37313400662E-11 3.62079273801E-11 3.88642646908E-11
+ 4.17132847094E-11 4.47688445622E-11 4.80457915449E-11 5.15600335389E-11
+ 5.53286144154E-11 5.93697947832E-11 6.37031384563E-11 6.83496050449E-11
+ 7.33316491045E-11 7.86733263031E-11 8.44004071060E-11 9.05404985063E-11
+ 9.71231743698E-11 1.04180115004E-10 1.11745256599E-10 1.19854951244E-10
+ 1.28548138257E-10 1.37866527629E-10 1.47854796449E-10 1.58560799202E-10
+ 1.70035792941E-10 1.82334678377E-10 1.95516257997E-10 2.09643512425E-10
+ 2.24783896316E-10 2.41009655139E-10 2.58398164349E-10 2.77032292501E-10
+ 2.97000790020E-10 3.18398705408E-10 3.41327830850E-10 3.65897179260E-10
+ 3.92223495020E-10 4.20431800746E-10 4.50655982656E-10 4.83039417236E-10
+ 5.17735642119E-10 5.54909074299E-10 5.94735779009E-10 6.37404292828E-10
+ 6.83116504845E-10 7.32088599963E-10 7.84552068717E-10 8.40754788296E-10
+ 9.00962179783E-10 9.65458446969E-10 1.03454790249E-09 1.10855638746E-09
+ 1.18783279110E-09 1.27275067754E-09 1.36371002717E-09 1.46113910075E-09
+ 1.56549643483E-09 1.67727297777E-09 1.79699437618E-09 1.92522342245E-09
+ 2.06256267470E-09 2.20965726115E-09 2.36719788211E-09 2.53592402327E-09
+ 2.71662739525E-09 2.91015561542E-09 3.11741614880E-09 3.33938052648E-09
+ 3.57708886100E-09 3.83165467949E-09 4.10427009706E-09 4.39621135429E-09
+ 4.70884474436E-09 5.04363295739E-09 5.40214187111E-09 5.78604781940E-09
+ 6.19714537225E-09 6.63735566302E-09 7.10873530155E-09 7.61348591435E-09
+ 8.15396435571E-09 8.73269363724E-09 9.35237462598E-09 1.00158985653E-08
+ 1.07263604765E-08 1.14870735024E-08 1.23015842602E-08 1.31736892735E-08
+ 1.41074525597E-08 1.51072244539E-08 1.61776617566E-08 1.73237492972E-08
+ 1.85508230138E-08 1.98645946553E-08 2.12711782200E-08 2.27771182517E-08
+ 2.43894201256E-08 2.61155824621E-08 2.79636318187E-08 2.99421598196E-08
+ 3.20603628948E-08 3.43280848114E-08 3.67558621927E-08 3.93549732367E-08
+ 4.21374898559E-08 4.51163334816E-08 4.83053347871E-08 5.17192976071E-08
+ 5.53740673469E-08 5.92866041963E-08 6.34750614859E-08 6.79588695472E-08
+ 7.27588254609E-08 7.78971891096E-08 8.33977859742E-08 8.92861171491E-08
+ 9.55894770825E-08 1.02337079583E-07 1.09560192676E-07 1.17292282919E-07
+ 1.25569169862E-07 1.34429191338E-07 1.43913380365E-07 1.54065654458E-07
+ 1.64933018234E-07 1.76565780235E-07 1.89017784967E-07 2.02346661223E-07
+ 2.16614087830E-07 2.31886078050E-07 2.48233283924E-07 2.65731321986E-07
+ 2.84461121809E-07 3.04509299017E-07 3.25968554459E-07 3.48938101380E-07
+ 3.73524122559E-07 3.99840259505E-07 4.28008135962E-07 4.58157918126E-07
+ 4.90428914146E-07 5.24970215662E-07 5.61941384315E-07 6.01513186399E-07
+ 6.43868379001E-07 6.89202551257E-07 7.37725024566E-07 7.89659815901E-07
+ 8.45246668626E-07 9.04742155549E-07 9.68420859264E-07 1.03657663519E-06
+ 1.10952396308E-06 1.18759939326E-06 1.27116309407E-06 1.36060050775E-06
+ 1.45632412230E-06 1.55877536734E-06 1.66842664278E-06 1.78578348946E-06
+ 1.91138691175E-06 2.04581586270E-06 2.18968990312E-06 2.34367204676E-06
+ 2.50847180443E-06 2.68484844122E-06 2.87361446143E-06 3.07563933729E-06
+ 3.29185349840E-06 3.52325260005E-06 3.77090208996E-06 4.03594209415E-06
+ 4.31959264430E-06 4.62315927026E-06 4.94803898330E-06 5.29572667719E-06
+ 5.66782197629E-06 6.06603656172E-06 6.49220200895E-06 6.94827817221E-06
+ 7.43636215408E-06 7.95869790052E-06 8.51768646519E-06 9.11589698930E-06
+ 9.75607844682E-06 1.04411722080E-05 1.11743254784E-05 1.19589056733E-05
+ 1.27985157936E-05 1.36970108709E-05 1.46585155579E-05 1.56874429416E-05
+ 1.67885146640E-05 1.79667824427E-05 1.92276510849E-05 2.05769031014E-05
+ 2.20207250276E-05 2.35657355721E-05 2.52190157166E-05 2.69881409035E-05
+ 2.88812154527E-05 3.09069093622E-05 3.30744976564E-05 3.53939024552E-05
+ 3.78757379531E-05 4.05313585045E-05 4.33729100306E-05 4.64133849722E-05
+ 4.96666810330E-05 5.31476639694E-05 5.68722347044E-05 6.08574010577E-05
+ 6.51213544071E-05 6.96835516141E-05 7.45648025715E-05 7.97873637513E-05
+ 8.53750381592E-05 9.13532821260E-05 9.77493193966E-05 1.04592263005E-04
+ 1.11913245456E-04 1.19745557771E-04 1.28124797989E-04 1.37089029741E-04
+ 1.46678951582E-04 1.56938077784E-04 1.67912931333E-04 1.79653249963E-04
+ 1.92212206045E-04 2.05646641259E-04 2.20017317006E-04 2.35389181574E-04
+ 2.51831655140E-04 2.69418933761E-04 2.88230313557E-04 3.08350536381E-04
+ 3.29870158324E-04 3.52885942509E-04 3.77501277665E-04 4.03826624124E-04
+ 4.31979988886E-04 4.62087431575E-04 4.94283603135E-04 5.28712319260E-04
+ 5.65527170613E-04 6.04892172029E-04 6.46982452976E-04 6.91984991660E-04
+ 7.40099395274E-04 7.91538728998E-04 8.46530396458E-04 9.05317074466E-04
+ 9.68157704962E-04 1.03532854719E-03 1.10712429320E-03 1.18385924999E-03
+ 1.26586859136E-03 1.35350968314E-03 1.44716348490E-03 1.54723603187E-03
+ 1.65416000037E-03 1.76839636023E-03 1.89043611778E-03 2.02080215267E-03
+ 2.16005115177E-03 2.30877564338E-03 2.46760613465E-03 2.63721335477E-03
+ 2.81831060649E-03 3.01165622771E-03 3.21805616472E-03 3.43836665796E-03
+ 3.67349704039E-03 3.92441264797E-03 4.19213784050E-03 4.47775913022E-03
+ 4.78242841406E-03 5.10736630417E-03 5.45386554947E-03 5.82329453908E-03
+ 6.21710087657E-03 6.63681501096E-03 7.08405390829E-03 7.56052474402E-03
+ 8.06802859331E-03 8.60846409224E-03 9.18383103915E-03 9.79623390015E-03
+ 1.04478851783E-02 1.11411085998E-02 1.18783420654E-02 1.26621403075E-02
+ 1.34951771877E-02 1.43802475609E-02 1.53202686256E-02 1.63182806699E-02
+ 1.73774471150E-02 1.85010537498E-02 1.96925070388E-02 2.09553313782E-02
+ 2.22931651642E-02 2.37097555309E-02 2.52089516025E-02 2.67946961016E-02
+ 2.84710151446E-02 3.02420060525E-02 3.21118229996E-02 3.40846603243E-02
+ 3.61647333248E-02 3.83562563707E-02 4.06634181683E-02 4.30903540341E-02
+ 4.56411150491E-02 4.83196339937E-02 5.11296879973E-02 5.40748578771E-02
+ 5.71584841912E-02 6.03836200915E-02 6.37529811300E-02 6.72688922509E-02
+ 7.09332322910E-02 7.47473764036E-02 7.87121369307E-02 8.28277033540E-02
+ 8.70935820659E-02 9.15085368158E-02 9.60705307810E-02 1.00776671306E-01
+ 1.05623158408E-01 1.10605238190E-01 1.15717162252E-01 1.20952154171E-01
+ 1.26302383881E-01 1.31758950614E-01 1.37311874645E-01 1.42950097596E-01
+ 1.48661490438E-01 1.54432867484E-01 1.60250003738E-01 1.66097651815E-01
+ 1.71959553391E-01 1.77818438781E-01 1.83656006872E-01 1.89452876298E-01
+ 1.95188497739E-01 2.00841016551E-01 2.06387075069E-01 2.11801545105E-01
+ 2.17057183813E-01 2.22124210806E-01 2.26969811652E-01 2.31557583339E-01
+ 2.35846951507E-01 2.39792607790E-01 2.43344038648E-01 2.46445244549E-01
+ 2.49034779401E-01 2.51046272860E-01 2.52409629214E-01 2.53053120412E-01
+ 2.52906599283E-01 2.51906040270E-01 2.49999553020E-01 2.47154888275E-01
+ 2.43368240258E-01 2.38673816545E-01 2.33153166800E-01 2.26942614683E-01
+ 2.20236322768E-01 2.13281583426E-01 2.06361998856E-01 1.99763570831E-01
+ 1.93718898812E-01 1.88326634738E-01 1.83448683339E-01 1.78599040134E-01
+ 1.72859930732E-01 1.64899862791E-01 1.53234931099E-01 1.36985539952E-01
+ 1.17560454908E-01 1.01986218009E-01 1.02522472616E-01 1.07547803235E-01
+ 1.14415229289E-01 1.23013401894E-01 1.33194899914E-01 1.44777502655E-01
+ 1.57546155427E-01 1.71255581917E-01 1.85633453340E-01 2.00384006245E-01
+ 2.15191970263E-01 2.29726653583E-01 2.43646052439E-01 2.56600847870E-01
+ 2.68238264606E-01 2.78205783101E-01 2.86154941454E-01 2.91745499687E-01
+ 2.94650631272E-01 2.94563825689E-01 2.91208662021E-01 2.84352489045E-01
+ 2.73825397212E-01 2.59545307811E-01 2.41549792972E-01 2.20033731112E-01
+ 1.95390468943E-01 1.68251082219E-01 1.39513121631E-01 1.10345554579E-01
+ 8.21522859981E-02 5.64747057205E-02 3.48114661824E-02 1.83491280959E-02
+ 7.61979027076E-03 2.16738265480E-03 4.17320834962E-04 1.53473196621E-04
+ 5.32420304825E-05 7.90451229845E-06 6.75496182227E-08 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 9.76049867430E+00 -1.70408392109E+01 -2.09807361743E+02 1.36177774426E+03
+ -3.79744242767E+03 5.64325469027E+03 -4.32725348235E+03 1.34320957410E+03
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 2 6 2 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 -6.04495613590E-24 -1.00068493874E-22 -5.24189371560E-22
+ -1.71439365424E-21 -4.33171198913E-21 -9.29683450454E-21 -1.78284819962E-20
+ -3.14858788998E-20 -5.22157025127E-20 -8.24039141917E-20 -1.24932911978E-19
+ -1.83244480492E-19 -2.61409053194E-19 -3.64201844408E-19 -4.97186454186E-19
+ -6.66806598237E-19 -8.80486668209E-19 -1.14674188475E-18 -1.47529886735E-18
+ -1.87722751131E-18 -2.36508513367E-18 -2.95307392683E-18 -3.65721284162E-18
+ -4.49552511072E-18 -5.48824271940E-18 -6.65802923420E-18 -8.03022251119E-18
+ -9.63309892559E-18 -1.14981608933E-17 -1.36604495939E-17 -1.61588849527E-17
+ -1.90366351031E-17 -2.23415177187E-17 -2.61264357949E-17 -3.04498506554E-17
+ -3.53762951780E-17 -4.09769304610E-17 -4.73301494022E-17 -5.45222309298E-17
+ -6.26480489083E-17 -7.18118400553E-17 -8.21280355324E-17 -9.37221612322E-17
+ -1.06731812164E-16 -1.21307706756E-16 -1.37614827323E-16 -1.55833653443E-16
+ -1.76161495469E-16 -1.98813935974E-16 -2.24026387507E-16 -2.52055775649E-16
+ -2.83182357086E-16 -3.17711683082E-16 -3.55976719564E-16 -3.98340135853E-16
+ -4.45196774974E-16 -4.96976319446E-16 -5.54146167504E-16 -6.17214535797E-16
+ -6.86733805830E-16 -7.63304132675E-16 -8.47577335875E-16 -9.40261093934E-16
+ -1.04212346538E-15 -1.15399776107E-15 -1.27678779429E-15 -1.41147353705E-15
+ -1.55911721327E-15 -1.72086986156E-15 -1.89797840293E-15 -2.09179325130E-15
+ -2.30377650736E-15 -2.53551077952E-15 -2.78870867873E-15 -3.06522303737E-15
+ -3.36705790636E-15 -3.69638038822E-15 -4.05553336831E-15 -4.44704921100E-15
+ -4.87366449227E-15 -5.33833584560E-15 -5.84425700358E-15 -6.39487712364E-15
+ -6.99392049280E-15 -7.64540771324E-15 -8.35367847790E-15 -9.12341605320E-15
+ -9.95967359464E-15 -1.08679024300E-14 -1.18539824548E-14 -1.29242547949E-14
+ -1.40855569030E-14 -1.53452602669E-14 -1.67113109210E-14 -1.81922729664E-14
+ -1.97973753194E-14 -2.15365619245E-14 -2.34205456841E-14 -2.54608663773E-14
+ -2.76699528576E-14 -3.00611898422E-14 -3.26489896259E-14 -3.54488690792E-14
+ -3.84775323145E-14 -4.17529594315E-14 -4.52945017842E-14 -4.91229842427E-14
+ -5.32608149560E-14 -5.77321031617E-14 -6.25627856232E-14 -6.77807623202E-14
+ -7.34160420629E-14 -7.95008987449E-14 -8.60700390079E-14 -9.31607821379E-14
+ -1.00813253080E-13 -1.09070589516E-13 -1.17979164023E-13 -1.27588822390E-13
+ -1.37953139275E-13 -1.49129692432E-13 -1.61180356859E-13 -1.74171620290E-13
+ -1.88174921577E-13 -2.03267013601E-13 -2.19530352471E-13 -2.37053514911E-13
+ -2.55931645846E-13 -2.76266938368E-13 -2.98169148388E-13 -3.21756146485E-13
+ -3.47154509590E-13 -3.74500155385E-13 -4.03939022466E-13 -4.35627799542E-13
+ -4.69734707193E-13 -5.06440335933E-13 -5.45938544625E-13 -5.88437423537E-13
+ -6.34160326691E-13 -6.83346978428E-13 -7.36254659513E-13 -7.93159478445E-13
+ -8.54357734064E-13 -9.20167375968E-13 -9.90929569715E-13 -1.06701037430E-12
+ -1.14880253987E-12 -1.23672743435E-12 -1.33123710797E-12 -1.43281650581E-12
+ -1.54198583859E-12 -1.65930312323E-12 -1.78536690510E-12 -1.92081917496E-12
+ -2.06634849448E-12 -2.22269334509E-12 -2.39064571607E-12 -2.57105494900E-12
+ -2.76483185658E-12 -2.97295313551E-12 -3.19646609427E-12 -3.43649371812E-12
+ -3.69424009532E-12 -3.97099623018E-12 -4.26814627050E-12 -4.58717417866E-12
+ -4.92967087798E-12 -5.29734190797E-12 -5.69201562466E-12 -6.11565198463E-12
+ -6.57035195403E-12 -7.05836758711E-12 -7.58211282155E-12 -8.14417504138E-12
+ -8.74732746209E-12 -9.39454239584E-12 -1.00890054595E-11 -1.08341307918E-11
+ -1.16335773517E-11 -1.24912663742E-11 -1.34114000645E-11 -1.43984816209E-11
+ -1.54573366772E-11 -1.65931362669E-11 -1.78114214174E-11 -1.91181294872E-11
+ -2.05196223719E-11 -2.20227167097E-11 -2.36347162276E-11 -2.53634463809E-11
+ -2.72172914473E-11 -2.92052342481E-11 -3.13368986847E-11 -3.36225952866E-11
+ -3.60733699855E-11 -3.87010563425E-11 -4.15183314727E-11 -4.45387759280E-11
+ -4.77769378183E-11 -5.12484014689E-11 -5.49698609366E-11 -5.89591987249E-11
+ -6.32355700679E-11 -6.78194931731E-11 -7.27329458469E-11 -7.79994689498E-11
+ -8.36442771658E-11 -8.96943776003E-11 -9.61786967603E-11 -1.03128216506E-10
+ -1.10576119610E-10 -1.18557945595E-10 -1.27111757587E-10 -1.36278320943E-10
+ -1.46101294500E-10 -1.56627435330E-10 -1.67906817944E-10 -1.79993068977E-10
+ -1.92943618433E-10 -2.06819968674E-10 -2.21687982376E-10 -2.37618190822E-10
+ -2.54686123932E-10 -2.72972663588E-10 -2.92564421879E-10 -3.13554146030E-10
+ -3.36041151882E-10 -3.60131787958E-10 -3.85939932237E-10 -4.13587523969E-10
+ -4.43205132977E-10 -4.74932569103E-10 -5.08919534602E-10 -5.45326322538E-10
+ -5.84324564388E-10 -6.26098030342E-10 -6.70843486000E-10 -7.18771609428E-10
+ -7.70107972838E-10 -8.25094093423E-10 -8.83988558220E-10 -9.47068228219E-10
+ -1.01462952728E-09 -1.08698982182E-09 -1.16448889771E-09 -1.24749054111E-09
+ -1.33638423068E-09 -1.43158694893E-09 -1.53354512110E-09 -1.64273669050E-09
+ -1.75967334006E-09 -1.88490287014E-09 -2.01901174382E-09 -2.16262781127E-09
+ -2.31642322586E-09 -2.48111756560E-09 -2.65748117411E-09 -2.84633873681E-09
+ -3.04857310862E-09 -3.26512941116E-09 -3.49701941800E-09 -3.74532624864E-09
+ -4.01120939256E-09 -4.29591008676E-09 -4.60075707155E-09 -4.92717275121E-09
+ -5.27667978794E-09 -5.65090815961E-09 -6.05160271380E-09 -6.48063125317E-09
+ -6.93999318934E-09 -7.43182880529E-09 -7.95842916914E-09 -8.52224674480E-09
+ -9.12590674887E-09 -9.77221930580E-09 -1.04641924577E-08 -1.12050460885E-08
+ -1.19982268276E-08 -1.28474240000E-08 -1.37565866987E-08 -1.47299420565E-08
+ -1.57720148018E-08 -1.68876481896E-08 -1.80820264026E-08 -1.93606985273E-08
+ -2.07296042143E-08 -2.21951011424E-08 -2.37639944120E-08 -2.54435680041E-08
+ -2.72416184495E-08 -2.91664908640E-08 -3.12271175145E-08 -3.34330590954E-08
+ -3.57945489038E-08 -3.83225401192E-08 -4.10287564027E-08 -4.39257460521E-08
+ -4.70269399601E-08 -5.03467136432E-08 -5.39004536274E-08 -5.77046284971E-08
+ -6.17768649321E-08 -6.61360290867E-08 -7.08023136816E-08 -7.57973312126E-08
+ -8.11442137051E-08 -8.68677194711E-08 -9.29943473644E-08 -9.95524590563E-08
+ -1.06572409897E-07 -1.14086688963E-07 -1.22130068940E-07 -1.30739766524E-07
+ -1.39955614081E-07 -1.49820243366E-07 -1.60379282123E-07 -1.71681564499E-07
+ -1.83779356217E-07 -1.96728595559E-07 -2.10589151253E-07 -2.25425098469E-07
+ -2.41305014177E-07 -2.58302293231E-07 -2.76495486638E-07 -2.95968663555E-07
+ -3.16811798689E-07 -3.39121186879E-07 -3.62999886764E-07 -3.88558195571E-07
+ -4.15914157212E-07 -4.45194106030E-07 -4.76533248675E-07 -5.10076286800E-07
+ -5.45978083423E-07 -5.84404376035E-07 -6.25532539706E-07 -6.69552403709E-07
+ -7.16667125404E-07 -7.67094125398E-07 -8.21066088270E-07 -8.78832033453E-07
+ -9.40658461187E-07 -1.00683057881E-06 -1.07765361298E-06 -1.15345421390E-06
+ -1.23458195795E-06 -1.32141095557E-06 -1.41434157187E-06 -1.51380226780E-06
+ -1.62025157023E-06 -1.73418018015E-06 -1.85611322843E-06 -1.98661268970E-06
+ -2.12627996516E-06 -2.27575864631E-06 -2.43573747223E-06 -2.60695349378E-06
+ -2.79019545943E-06 -2.98630743801E-06 -3.19619269496E-06 -3.42081783992E-06
+ -3.66121726440E-06 -3.91849788994E-06 -4.19384424837E-06 -4.48852391732E-06
+ -4.80389333584E-06 -5.14140402653E-06 -5.50260925256E-06 -5.88917113996E-06
+ -6.30286829751E-06 -6.74560396884E-06 -7.21941475400E-06 -7.72647993981E-06
+ -8.26913148169E-06 -8.84986468196E-06 -9.47134961323E-06 -1.01364433385E-05
+ -1.08482029835E-05 -1.16098997199E-05 -1.24250337234E-05 -1.32973501734E-05
+ -1.42308563670E-05 -1.52298400242E-05 -1.62988888669E-05 -1.74429115593E-05
+ -1.86671601045E-05 -1.99772537968E-05 -2.13792048384E-05 -2.28794457330E-05
+ -2.44848585816E-05 -2.62028064076E-05 -2.80411666543E-05 -3.00083670008E-05
+ -3.21134236571E-05 -3.43659823070E-05 -3.67763618802E-05 -3.93556013461E-05
+ -4.21155097363E-05 -4.50687196132E-05 -4.82287442217E-05 -5.16100385702E-05
+ -5.52280647097E-05 -5.90993614918E-05 -6.32416191090E-05 -6.76737587371E-05
+ -7.24160176227E-05 -7.74900399789E-05 -8.29189740758E-05 -8.87275759389E-05
+ -9.49423200902E-05 -1.01591517799E-04 -1.08705443336E-04 -1.16316468748E-04
+ -1.24459207724E-04 -1.33170669122E-04 -1.42490420795E-04 -1.52460764378E-04
+ -1.63126921720E-04 -1.74537233721E-04 -1.86743372345E-04 -1.99800566628E-04
+ -2.13767843568E-04 -2.28708284800E-04 -2.44689300023E-04 -2.61782918203E-04
+ -2.80066097602E-04 -2.99621055758E-04 -3.20535620589E-04 -3.42903603826E-04
+ -3.66825198065E-04 -3.92407398748E-04 -4.19764452463E-04 -4.49018332972E-04
+ -4.80299246449E-04 -5.13746167443E-04 -5.49507407110E-04 -5.87741215304E-04
+ -6.28616418151E-04 -6.72313092723E-04 -7.19023280452E-04 -7.68951740932E-04
+ -8.22316747712E-04 -8.79350927662E-04 -9.40302145443E-04 -1.00543443452E-03
+ -1.07502897605E-03 -1.14938512686E-03 -1.22882149755E-03 -1.31367708149E-03
+ -1.40431243530E-03 -1.50111091108E-03 -1.60447994016E-03 -1.71485236790E-03
+ -1.83268783839E-03 -1.95847422731E-03 -2.09272912069E-03 -2.23600133618E-03
+ -2.38887248292E-03 -2.55195855466E-03 -2.72591154986E-03 -2.91142111106E-03
+ -3.10921617424E-03 -3.32006661728E-03 -3.54478489461E-03 -3.78422764318E-03
+ -4.03929724230E-03 -4.31094330754E-03 -4.60016409587E-03 -4.90800779603E-03
+ -5.23557367499E-03 -5.58401304727E-03 -5.95453003022E-03 -6.34838204390E-03
+ -6.76688000973E-03 -7.21138819708E-03 -7.68332366224E-03 -8.18415521850E-03
+ -8.71540187103E-03 -9.27863064453E-03 -9.87545372619E-03 -1.05075248411E-02
+ -1.11765347720E-02 -1.18842059310E-02 -1.26322858859E-02 -1.34225397412E-02
+ -1.42567412716E-02 -1.51366627043E-02 -1.60640630482E-02 -1.70406748721E-02
+ -1.80681894355E-02 -1.91482400919E-02 -2.02823838889E-02 -2.14720813131E-02
+ -2.27186741437E-02 -2.40233614110E-02 -2.53871734848E-02 -2.68109443601E-02
+ -2.82952822538E-02 -2.98405386795E-02 -3.14467762320E-02 -3.31137353811E-02
+ -3.48408006525E-02 -3.66269666582E-02 -3.84708045280E-02 -4.03704293862E-02
+ -4.23234696134E-02 -4.43270387211E-02 -4.63777107535E-02 -4.84715001979E-02
+ -5.06038474329E-02 -5.27696107640E-02 -5.49630660700E-02 -5.71779150075E-02
+ -5.94073025795E-02 -6.16438446460E-02 -6.38796656330E-02 -6.61064462624E-02
+ -6.83154805632E-02 -7.04977407272E-02 -7.26439475334E-02 -7.47446430917E-02
+ -7.67902615549E-02 -7.87711922703E-02 -8.06778286229E-02 -8.25005946736E-02
+ -8.42299407188E-02 -8.58562982864E-02 -8.73699850438E-02 -8.87610509269E-02
+ -9.00190588436E-02 -9.11327969864E-02 -9.20899255638E-02 -9.28765691357E-02
+ -9.34768771993E-02 -9.38725906255E-02 -9.40426702158E-02 -9.39630659146E-02
+ -9.36067303938E-02 -9.29440072949E-02 -9.19435495922E-02 -9.05739428723E-02
+ -8.88062150319E-02 -8.66173983744E-02 -8.39952592243E-02 -8.09442070436E-02
+ -7.74922189427E-02 -7.36983430489E-02 -6.96599522877E-02 -6.55183917340E-02
+ -6.14609981782E-02 -5.77167071100E-02 -5.45417068499E-02 -5.21910820314E-02
+ -5.08725474555E-02 -5.06799887882E-02 -5.15089271268E-02 -5.29654015506E-02
+ -5.42976474330E-02 -5.44119200057E-02 -5.20885650675E-02 -4.66053419189E-02
+ -3.91224052367E-02 -3.54179399427E-02 -4.55090273038E-02 -5.95411996228E-02
+ -7.52342353591E-02 -9.24193222153E-02 -1.10894042474E-01 -1.30424177774E-01
+ -1.50746176573E-01 -1.71570226522E-01 -1.92583835004E-01 -2.13455798950E-01
+ -2.33840418320E-01 -2.53381797056E-01 -2.71718088291E-01 -2.88485558437E-01
+ -3.03322429449E-01 -3.15872528217E-01 -3.25788953480E-01 -3.32738110197E-01
+ -3.36404732472E-01 -3.36498707704E-01 -3.32764790018E-01 -3.24996424091E-01
+ -3.13054945407E-01 -2.96895214015E-01 -2.76598093267E-01 -2.52409116492E-01
+ -2.24780667172E-01 -1.94412429910E-01 -1.62280923229E-01 -1.29644805022E-01
+ -9.80089264868E-02 -6.90215624099E-02 -4.42929737964E-02 -2.51137400947E-02
+ -1.21038531614E-02 -4.86403192761E-03 -1.83213591204E-03 -7.53908756549E-04
+ -2.27999536420E-04 -3.03559928200E-05 -2.37335840189E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -4.80138013192E+00 3.62204078819E+00 1.85941115781E+02 -1.12544166951E+03
+ 3.11246769553E+03 -4.61926206156E+03 3.54175886958E+03 -1.09961446049E+03
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 3 3 1 i j (l(j))
+ 1.72903153624E-01 Q_int
+ 0.00000000000E+00 3.47452601530E-13 1.41366879785E-12 3.23551260591E-12
+ 5.85132560749E-12 9.30098142482E-12 1.36259421348E-11 1.88693166898E-11
+ 2.50759214148E-11 3.22923426548E-11 4.05670016457E-11 4.99502216884E-11
+ 6.04942977056E-11 7.22535682648E-11 8.52844901534E-11 9.96457155958E-11
+ 1.15398172204E-10 1.32605145759E-10 1.51332365918E-10 1.71648094951E-10
+ 1.93623219621E-10 2.17331346299E-10 2.42848899448E-10 2.70255223574E-10
+ 2.99632688780E-10 3.31066800043E-10 3.64646310338E-10 4.00463337756E-10
+ 4.38613486740E-10 4.79195973597E-10 5.22313756422E-10 5.68073669603E-10
+ 6.16586563044E-10 6.67967446296E-10 7.22335637749E-10 7.79814919065E-10
+ 8.40533695043E-10 9.04625159086E-10 9.72227464492E-10 1.04348390174E-09
+ 1.11854308203E-09 1.19755912717E-09 1.28069186629E-09 1.36810703925E-09
+ 1.45997650733E-09 1.55647847121E-09 1.65779769667E-09 1.76412574810E-09
+ 1.87566123022E-09 1.99261003831E-09 2.11518561712E-09 2.24360922886E-09
+ 2.37811023061E-09 2.51892636134E-09 2.66630403903E-09 2.82049866815E-09
+ 2.98177495790E-09 3.15040725154E-09 3.32667986721E-09 3.51088745070E-09
+ 3.70333534049E-09 3.90433994556E-09 4.11422913633E-09 4.33334264930E-09
+ 4.56203250580E-09 4.80066344525E-09 5.04961337364E-09 5.30927382761E-09
+ 5.58005045463E-09 5.86236351003E-09 6.15664837124E-09 6.46335607004E-09
+ 6.78295384321E-09 7.11592570252E-09 7.46277302443E-09 7.82401516038E-09
+ 8.20019006829E-09 8.59185496607E-09 8.99958700783E-09 9.42398398364E-09
+ 9.86566504358E-09 1.03252714470E-08 1.08034673380E-08 1.13009405474E-08
+ 1.18184034230E-08 1.23565936889E-08 1.29162753339E-08 1.34982395314E-08
+ 1.41033055913E-08 1.47323219444E-08 1.53861671617E-08 1.60657510085E-08
+ 1.67720155353E-08 1.75059362069E-08 1.82685230702E-08 1.90608219628E-08
+ 1.98839157635E-08 2.07389256861E-08 2.16270126184E-08 2.25493785072E-08
+ 2.35072677918E-08 2.45019688867E-08 2.55348157165E-08 2.66071893031E-08
+ 2.77205194085E-08 2.88762862348E-08 3.00760221823E-08 3.13213136693E-08
+ 3.26138030148E-08 3.39551903861E-08 3.53472358146E-08 3.67917612802E-08
+ 3.82906528697E-08 3.98458630085E-08 4.14594127700E-08 4.31333942654E-08
+ 4.48699731159E-08 4.66713910108E-08 4.85399683534E-08 5.04781070000E-08
+ 5.24882930921E-08 5.45730999879E-08 5.67351912944E-08 5.89773240052E-08
+ 6.13023517466E-08 6.37132281356E-08 6.62130102551E-08 6.88048622483E-08
+ 7.14920590382E-08 7.42779901758E-08 7.71661638206E-08 8.01602108602E-08
+ 8.32638891709E-08 8.64810880268E-08 8.98158326612E-08 9.32722889849E-08
+ 9.68547684690E-08 1.00567733196E-07 1.04415801083E-07 1.08403751294E-07
+ 1.12536529825E-07 1.16819255298E-07 1.21257224942E-07 1.25855920791E-07
+ 1.30621016089E-07 1.35558381920E-07 1.40674094064E-07 1.45974440098E-07
+ 1.51465926729E-07 1.57155287395E-07 1.63049490115E-07 1.69155745623E-07
+ 1.75481515770E-07 1.82034522231E-07 1.88822755497E-07 1.95854484190E-07
+ 2.03138264694E-07 2.10682951120E-07 2.18497705613E-07 2.26592009019E-07
+ 2.34975671917E-07 2.43658846031E-07 2.52652036042E-07 2.61966111802E-07
+ 2.71612320968E-07 2.81602302081E-07 2.91948098087E-07 3.02662170329E-07
+ 3.13757413023E-07 3.25247168230E-07 3.37145241347E-07 3.49465917132E-07
+ 3.62223976283E-07 3.75434712586E-07 3.89113950657E-07 4.03278064298E-07
+ 4.17943995476E-07 4.33129273974E-07 4.48852037699E-07 4.65131053711E-07
+ 4.81985739960E-07 4.99436187781E-07 5.17503185165E-07 5.36208240826E-07
+ 5.55573609106E-07 5.75622315731E-07 5.96378184458E-07 6.17865864640E-07
+ 6.40110859742E-07 6.63139556834E-07 6.86979257107E-07 7.11658207436E-07
+ 7.37205633032E-07 7.63651771216E-07 7.91027906358E-07 8.19366406020E-07
+ 8.48700758340E-07 8.79065610704E-07 9.10496809752E-07 9.43031442756E-07
+ 9.76707880428E-07 1.01156582119E-06 1.04764633698E-06 1.08499192063E-06
+ 1.12364653486E-06 1.16365566298E-06 1.20506636132E-06 1.24792731344E-06
+ 1.29228888628E-06 1.33820318814E-06 1.38572412873E-06 1.43490748124E-06
+ 1.48581094654E-06 1.53849421963E-06 1.59301905834E-06 1.64944935435E-06
+ 1.70785120674E-06 1.76829299796E-06 1.83084547250E-06 1.89558181820E-06
+ 1.96257775035E-06 2.03191159869E-06 2.10366439742E-06 2.17791997823E-06
+ 2.25476506657E-06 2.33428938116E-06 2.41658573700E-06 2.50175015183E-06
+ 2.58988195621E-06 2.68108390749E-06 2.77546230753E-06 2.87312712454E-06
+ 2.97419211906E-06 3.07877497423E-06 3.18699743051E-06 3.29898542503E-06
+ 3.41486923567E-06 3.53478363005E-06 3.65886801961E-06 3.78726661895E-06
+ 3.92012861059E-06 4.05760831531E-06 4.19986536840E-06 4.34706490173E-06
+ 4.49937773217E-06 4.65698055633E-06 4.82005615196E-06 4.98879358613E-06
+ 5.16338843052E-06 5.34404298404E-06 5.53096650289E-06 5.72437543854E-06
+ 5.92449368365E-06 6.13155282641E-06 6.34579241338E-06 6.56746022129E-06
+ 6.79681253796E-06 7.03411445273E-06 7.27964015662E-06 7.53367325269E-06
+ 7.79650707673E-06 8.06844502883E-06 8.34980091600E-06 8.64089930632E-06
+ 8.94207589497E-06 9.25367788250E-06 9.57606436570E-06 9.90960674165E-06
+ 1.02546891251E-05 1.06117087799E-05 1.09810765645E-05 1.13632173929E-05
+ 1.17585707100E-05 1.21675909836E-05 1.25907482117E-05 1.30285284477E-05
+ 1.34814343422E-05 1.39499857025E-05 1.44347200711E-05 1.49361933227E-05
+ 1.54549802810E-05 1.59916753557E-05 1.65468932001E-05 1.71212693902E-05
+ 1.77154611260E-05 1.83301479551E-05 1.89660325206E-05 1.96238413318E-05
+ 2.03043255614E-05 2.10082618665E-05 2.17364532373E-05 2.24897298721E-05
+ 2.32689500804E-05 2.40750012150E-05 2.49088006326E-05 2.57712966860E-05
+ 2.66634697462E-05 2.75863332576E-05 2.85409348252E-05 2.95283573359E-05
+ 3.05497201147E-05 3.16061801164E-05 3.26989331532E-05 3.38292151608E-05
+ 3.49983035020E-05 3.62075183101E-05 3.74582238727E-05 3.87518300562E-05
+ 4.00897937735E-05 4.14736204939E-05 4.29048657983E-05 4.43851369785E-05
+ 4.59160946834E-05 4.74994546123E-05 4.91369892556E-05 5.08305296853E-05
+ 5.25819673952E-05 5.43932561913E-05 5.62664141349E-05 5.82035255375E-05
+ 6.02067430089E-05 6.22782895603E-05 6.44204607609E-05 6.66356269511E-05
+ 6.89262355108E-05 7.12948131847E-05 7.37439684647E-05 7.62763940290E-05
+ 7.88948692390E-05 8.16022626945E-05 8.44015348453E-05 8.72957406613E-05
+ 9.02880323595E-05 9.33816621879E-05 9.65799852650E-05 9.98864624755E-05
+ 1.03304663419E-04 1.06838269413E-04 1.10491076546E-04 1.14266998781E-04
+ 1.18170071105E-04 1.22204452723E-04 1.26374430298E-04 1.30684421222E-04
+ 1.35138976931E-04 1.39742786240E-04 1.44500678711E-04 1.49417628041E-04
+ 1.54498755460E-04 1.59749333142E-04 1.65174787611E-04 1.70780703144E-04
+ 1.76572825154E-04 1.82557063549E-04 1.88739496052E-04 1.95126371470E-04
+ 2.01724112905E-04 2.08539320882E-04 2.15578776393E-04 2.22849443821E-04
+ 2.30358473746E-04 2.38113205596E-04 2.46121170129E-04 2.54390091724E-04
+ 2.62927890444E-04 2.71742683859E-04 2.80842788583E-04 2.90236721503E-04
+ 2.99933200652E-04 3.09941145705E-04 3.20269678036E-04 3.30928120301E-04
+ 3.41925995505E-04 3.53273025476E-04 3.64979128719E-04 3.77054417562E-04
+ 3.89509194545E-04 4.02353947970E-04 4.15599346540E-04 4.29256232997E-04
+ 4.43335616681E-04 4.57848664902E-04 4.72806693022E-04 4.88221153148E-04
+ 5.04103621293E-04 5.20465782909E-04 5.37319416611E-04 5.54676375987E-04
+ 5.72548569304E-04 5.90947936949E-04 6.09886426422E-04 6.29375964691E-04
+ 6.49428427678E-04 6.70055606670E-04 6.91269171408E-04 7.13080629586E-04
+ 7.35501282491E-04 7.58542176486E-04 7.82214050018E-04 8.06527275802E-04
+ 8.31491797840E-04 8.57117062857E-04 8.83411945765E-04 9.10384668700E-04
+ 9.38042713155E-04 9.66392724717E-04 9.95440409854E-04 1.02519042419E-03
+ 1.05564625164E-03 1.08681007380E-03 1.11868262878E-03 1.15126305892E-03
+ 1.18454874639E-03 1.21853513604E-03 1.25321554447E-03 1.28858095436E-03
+ 1.32461979321E-03 1.36131769523E-03 1.39865724536E-03 1.43661770418E-03
+ 1.47517471247E-03 1.51429997392E-03 1.55396091487E-03 1.59412031913E-03
+ 1.63473593673E-03 1.67576006453E-03 1.71713909720E-03 1.75881304641E-03
+ 1.80071502657E-03 1.84277070465E-03 1.88489771230E-03 1.92700501760E-03
+ 1.96899225423E-03 2.01074900556E-03 2.05215404083E-03 2.09307450085E-03
+ 2.13336503026E-03 2.17286685335E-03 2.21140679039E-03 2.24879621121E-03
+ 2.28482992279E-03 2.31928498736E-03 2.35191946756E-03 2.38247109514E-03
+ 2.41065585941E-03 2.43616651196E-03 2.45867098374E-03 2.47781071095E-03
+ 2.49319886597E-03 2.50441848971E-03 2.51102052189E-03 2.51252172585E-03
+ 2.50840250474E-03 2.49810460613E-03 2.48102871256E-03 2.45653191568E-03
+ 2.42392507253E-03 2.38247004279E-03 2.33137680668E-03 2.26980046405E-03
+ 2.19683811632E-03 2.11152563386E-03 2.01283431304E-03 1.89966742861E-03
+ 1.77085668897E-03 1.62515860397E-03 1.46125077717E-03 1.27772813746E-03
+ 1.07309912763E-03 8.45781871365E-04 5.94100343593E-04 3.16280573963E-04
+ 1.04469176668E-05 -3.25381566422E-04 -6.93294584426E-04 -1.09549387034E-03
+ -1.53429618308E-03 -2.01213596966E-03 -2.53156761723E-03 -3.09526720743E-03
+ -3.70603367539E-03 -4.36678926468E-03 -5.08057915662E-03 -5.85057013960E-03
+ -6.68004816923E-03 -7.57241465553E-03 -8.53118129711E-03 -9.55996326565E-03
+ -1.06624705268E-02 -1.18424970654E-02 -1.31039077657E-02 -1.44506226781E-02
+ -1.58865983862E-02 -1.74158061723E-02 -1.90422066621E-02 -2.07697206158E-02
+ -2.26021955209E-02 -2.45433676359E-02 -2.65968191261E-02 -2.87659299392E-02
+ -3.10538240731E-02 -3.34633099047E-02 -3.59968142782E-02 -3.86563100829E-02
+ -4.14432371072E-02 -4.43584160159E-02 -4.74019553865E-02 -5.05731518373E-02
+ -5.38703834100E-02 -5.72909965115E-02 -6.08311868981E-02 -6.44858753789E-02
+ -6.82485791449E-02 -7.21112798825E-02 -7.60642901055E-02 -8.00961194439E-02
+ -8.41933429399E-02 -8.83404737334E-02 -9.25198428421E-02 -9.67114890531E-02
+ -1.00893062224E-01 -1.05039743513E-01 -1.09124186193E-01 -1.13116480734E-01
+ -1.16984147697E-01 -1.20692161641E-01 -1.24203008669E-01 -1.27476779315E-01
+ -1.30471297253E-01 -1.33142282611E-01 -1.35443546589E-01 -1.37327211465E-01
+ -1.38743947067E-01 -1.39643211300E-01 -1.39973478646E-01 -1.39682436719E-01
+ -1.38717127510E-01 -1.37024007253E-01 -1.34548897660E-01 -1.31236802649E-01
+ -1.27031569810E-01 -1.21875386431E-01 -1.15708117974E-01 -1.08466524749E-01
+ -1.00083432907E-01 -9.04869914946E-02 -7.96002205863E-02 -6.73411479333E-02
+ -5.36239425860E-02 -3.83615790735E-02 -2.14706940625E-02 -2.87940728862E-03
+ 1.74610685221E-02 3.95602725043E-02 6.33673325812E-02 8.87450124297E-02
+ 1.15440502124E-01 1.43056809663E-01 1.71032495235E-01 1.98643747243E-01
+ 2.25052607619E-01 2.49440212467E-01 2.71286652620E-01 2.90892932196E-01
+ 3.10290396284E-01 3.34755783373E-01 3.70297321976E-01 4.03651101870E-01
+ 4.32292134490E-01 4.56006809591E-01 4.74650619580E-01 4.88150589721E-01
+ 4.96506495643E-01 4.99790873281E-01 4.98147715800E-01 4.91789877129E-01
+ 4.80995175139E-01 4.66101238575E-01 4.47499199592E-01 4.25626307252E-01
+ 4.00957669170E-01 3.73997226795E-01 3.45268255143E-01 3.15303508528E-01
+ 2.84635344302E-01 2.53785931885E-01 2.23257859325E-01 1.93525186912E-01
+ 1.65025172534E-01 1.38150619575E-01 1.13242937782E-01 9.05857661292E-02
+ 7.03991378075E-02 5.28340280546E-02 3.79673181890E-02 2.57972683211E-02
+ 1.62399216210E-02 9.12737449785E-03 4.20900277781E-03 1.15794556972E-03
+ -4.14937774947E-04 -9.36692299543E-04 -8.35459142024E-04 -4.91376323528E-04
+ -1.80587913261E-04 -2.77926154781E-05 -1.67387066062E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 3.09657808860E-01 -9.93853815912E+00 2.29122660278E+01 8.96007039330E+01
+ -5.01869182464E+02 9.75320471092E+02 -8.83295050336E+02 3.10162539508E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -1.95744752499E+01 6.12272031056E+01 1.25525476941E+02 -1.24022961471E+03
+ 3.61684016429E+03 -5.41587520698E+03 4.15392191994E+03 -1.28714685267E+03
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 3 4 1 i j (l(j))
+ 1.71481138859E-01 Q_int
+ 0.00000000000E+00 -2.55983401303E-12 -1.04151111729E-11 -2.38374246843E-11
+ -4.31092536156E-11 -6.85243642445E-11 -1.00388225687E-10 -1.39018440307E-10
+ -1.84745189432E-10 -2.37911694894E-10 -2.98874696971E-10 -3.68004949287E-10
+ -4.45687731263E-10 -5.32323378748E-10 -6.28327833443E-10 -7.34133211798E-10
+ -8.50188394045E-10 -9.76959634074E-10 -1.11493119088E-09 -1.26460598237E-09
+ -1.42650626220E-09 -1.60117432059E-09 -1.78917320991E-09 -1.99108749574E-09
+ -2.20752403461E-09 -2.43911277903E-09 -2.68650761097E-09 -2.95038720468E-09
+ -3.23145591994E-09 -3.53044472673E-09 -3.84811216246E-09 -4.18524532290E-09
+ -4.54266088796E-09 -4.92120618350E-09 -5.32176028056E-09 -5.74523513311E-09
+ -6.19257675583E-09 -6.66476644324E-09 -7.16282203164E-09 -7.68779920530E-09
+ -8.24079284852E-09 -8.82293844512E-09 -9.43541352690E-09 -1.00794391731E-08
+ -1.07562815619E-08 -1.14672535774E-08 -1.22137164711E-08 -1.29970815833E-08
+ -1.38188121239E-08 -1.46804250156E-08 -1.55834928013E-08 -1.65296456194E-08
+ -1.75205732464E-08 -1.85580272125E-08 -1.96438229904E-08 -2.07798422602E-08
+ -2.19680352548E-08 -2.32104231854E-08 -2.45091007535E-08 -2.58662387490E-08
+ -2.72840867402E-08 -2.87649758572E-08 -3.03113216723E-08 -3.19256271810E-08
+ -3.36104858871E-08 -3.53685849953E-08 -3.72027087148E-08 -3.91157416787E-08
+ -4.11106724820E-08 -4.31905973432E-08 -4.53587238932E-08 -4.76183750963E-08
+ -4.99729933081E-08 -5.24261444740E-08 -5.49815224745E-08 -5.76429536214E-08
+ -6.04144013106E-08 -6.32999708366E-08 -6.63039143751E-08 -6.94306361381E-08
+ -7.26846977092E-08 -7.60708235633E-08 -7.95939067795E-08 -8.32590149519E-08
+ -8.70713963054E-08 -9.10364860256E-08 -9.51599128070E-08 -9.94475056294E-08
+ -1.03905300770E-07 -1.08539549060E-07 -1.13356723390E-07 -1.18363526479E-07
+ -1.23566898912E-07 -1.28974027458E-07 -1.34592353678E-07 -1.40429582821E-07
+ -1.46493693049E-07 -1.52792944962E-07 -1.59335891464E-07 -1.66131387971E-07
+ -1.73188602973E-07 -1.80517028953E-07 -1.88126493704E-07 -1.96027172017E-07
+ -2.04229597791E-07 -2.12744676553E-07 -2.21583698417E-07 -2.30758351490E-07
+ -2.40280735744E-07 -2.50163377368E-07 -2.60419243618E-07 -2.71061758181E-07
+ -2.82104817071E-07 -2.93562805079E-07 -3.05450612789E-07 -3.17783654184E-07
+ -3.30577884866E-07 -3.43849820900E-07 -3.57616558318E-07 -3.71895793295E-07
+ -3.86705843022E-07 -4.02065667304E-07 -4.17994890907E-07 -4.34513826679E-07
+ -4.51643499465E-07 -4.69405670857E-07 -4.87822864798E-07 -5.06918394076E-07
+ -5.26716387726E-07 -5.47241819388E-07 -5.68520536647E-07 -5.90579291383E-07
+ -6.13445771174E-07 -6.37148631783E-07 -6.61717530778E-07 -6.87183162302E-07
+ -7.13577293054E-07 -7.40932799513E-07 -7.69283706452E-07 -7.98665226775E-07
+ -8.29113802746E-07 -8.60667148630E-07 -8.93364294818E-07 -9.27245633476E-07
+ -9.62352965765E-07 -9.98729550706E-07 -1.03642015573E-06 -1.07547110895E-06
+ -1.11593035332E-06 -1.15784750254E-06 -1.20127389901E-06 -1.24626267374E-06
+ -1.29286880830E-06 -1.34114919898E-06 -1.39116272311E-06 -1.44297030770E-06
+ -1.49663500043E-06 -1.55222204314E-06 -1.60979894777E-06 -1.66943557507E-06
+ -1.73120421584E-06 -1.79517967516E-06 -1.86143935940E-06 -1.93006336630E-06
+ -2.00113457815E-06 -2.07473875817E-06 -2.15096465026E-06 -2.22990408215E-06
+ -2.31165207213E-06 -2.39630693948E-06 -2.48397041871E-06 -2.57474777772E-06
+ -2.66874794008E-06 -2.76608361150E-06 -2.86687141068E-06 -2.97123200469E-06
+ -3.07929024900E-06 -3.19117533238E-06 -3.30702092676E-06 -3.42696534231E-06
+ -3.55115168782E-06 -3.67972803668E-06 -3.81284759855E-06 -3.95066889695E-06
+ -4.09335595302E-06 -4.24107847558E-06 -4.39401205780E-06 -4.55233838058E-06
+ -4.71624542306E-06 -4.88592768028E-06 -5.06158638846E-06 -5.24342975795E-06
+ -5.43167321432E-06 -5.62653964771E-06 -5.82825967078E-06 -6.03707188562E-06
+ -6.25322315977E-06 -6.47696891191E-06 -6.70857340726E-06 -6.94831006325E-06
+ -7.19646176574E-06 -7.45332119613E-06 -7.71919116974E-06 -7.99438498594E-06
+ -8.27922679021E-06 -8.57405194889E-06 -8.87920743667E-06 -9.19505223758E-06
+ -9.52195775973E-06 -9.86030826439E-06 -1.02105013099E-05 -1.05729482108E-05
+ -1.09480745129E-05 -1.13363204846E-05 -1.17381416255E-05 -1.21540091919E-05
+ -1.25844107410E-05 -1.30298506939E-05 -1.34908509173E-05 -1.39679513263E-05
+ -1.44617105069E-05 -1.49727063610E-05 -1.55015367725E-05 -1.60488202977E-05
+ -1.66151968784E-05 -1.72013285800E-05 -1.78079003549E-05 -1.84356208326E-05
+ -1.90852231368E-05 -1.97574657301E-05 -2.04531332889E-05 -2.11730376076E-05
+ -2.19180185344E-05 -2.26889449389E-05 -2.34867157136E-05 -2.43122608096E-05
+ -2.51665423078E-05 -2.60505555274E-05 -2.69653301723E-05 -2.79119315172E-05
+ -2.88914616344E-05 -2.99050606625E-05 -3.09539081198E-05 -3.20392242621E-05
+ -3.31622714871E-05 -3.43243557879E-05 -3.55268282561E-05 -3.67710866364E-05
+ -3.80585769354E-05 -3.93907950852E-05 -4.07692886645E-05 -4.21956586786E-05
+ -4.36715614012E-05 -4.51987102795E-05 -4.67788779039E-05 -4.84138980469E-05
+ -5.01056677711E-05 -5.18561496099E-05 -5.36673738238E-05 -5.55414407332E-05
+ -5.74805231322E-05 -5.94868687856E-05 -6.15628030106E-05 -6.37107313486E-05
+ -6.59331423275E-05 -6.82326103203E-05 -7.06117985004E-05 -7.30734619000E-05
+ -7.56204505719E-05 -7.82557128613E-05 -8.09822987890E-05 -8.38033635514E-05
+ -8.67221711399E-05 -8.97420980851E-05 -9.28666373293E-05 -9.60994022319E-05
+ -9.94441307115E-05 -1.02904689532E-04 -1.06485078731E-04 -1.10189436209E-04
+ -1.14022042464E-04 -1.17987325498E-04 -1.22089865887E-04 -1.26334402025E-04
+ -1.30725835548E-04 -1.35269236948E-04 -1.39969851366E-04 -1.44833104602E-04
+ -1.49864609312E-04 -1.55070171432E-04 -1.60455796810E-04 -1.66027698074E-04
+ -1.71792301724E-04 -1.77756255479E-04 -1.83926435863E-04 -1.90309956059E-04
+ -1.96914174020E-04 -2.03746700872E-04 -2.10815409586E-04 -2.18128443960E-04
+ -2.25694227898E-04 -2.33521475006E-04 -2.41619198521E-04 -2.49996721567E-04
+ -2.58663687767E-04 -2.67630072216E-04 -2.76906192818E-04 -2.86502722021E-04
+ -2.96430698936E-04 -3.06701541876E-04 -3.17327061318E-04 -3.28319473301E-04
+ -3.39691413276E-04 -3.51455950435E-04 -3.63626602504E-04 -3.76217351059E-04
+ -3.89242657336E-04 -4.02717478594E-04 -4.16657285010E-04 -4.31078077159E-04
+ -4.45996404069E-04 -4.61429381892E-04 -4.77394713190E-04 -4.93910706883E-04
+ -5.10996298849E-04 -5.28671073223E-04 -5.46955284402E-04 -5.65869879792E-04
+ -5.85436523303E-04 -6.05677619634E-04 -6.26616339361E-04 -6.48276644861E-04
+ -6.70683317094E-04 -6.93861983271E-04 -7.17839145441E-04 -7.42642210014E-04
+ -7.68299518265E-04 -7.94840377838E-04 -8.22295095283E-04 -8.50695009665E-04
+ -8.80072527270E-04 -9.10461157440E-04 -9.41895549589E-04 -9.74411531410E-04
+ -1.00804614833E-03 -1.04283770423E-03 -1.07882580352E-03 -1.11605139451E-03
+ -1.15455681421E-03 -1.19438583461E-03 -1.23558371031E-03 -1.27819722785E-03
+ -1.32227475643E-03 -1.36786630037E-03 -1.41502355316E-03 -1.46379995321E-03
+ -1.51425074141E-03 -1.56643302042E-03 -1.62040581584E-03 -1.67623013926E-03
+ -1.73396905332E-03 -1.79368773863E-03 -1.85545356293E-03 -1.91933615219E-03
+ -1.98540746396E-03 -2.05374186291E-03 -2.12441619861E-03 -2.19750988569E-03
+ -2.27310498631E-03 -2.35128629509E-03 -2.43214142655E-03 -2.51576090507E-03
+ -2.60223825741E-03 -2.69167010796E-03 -2.78415627663E-03 -2.87979987952E-03
+ -2.97870743244E-03 -3.08098895719E-03 -3.18675809091E-03 -3.29613219821E-03
+ -3.40923248649E-03 -3.52618412415E-03 -3.64711636206E-03 -3.77216265797E-03
+ -3.90146080433E-03 -4.03515305906E-03 -4.17338627976E-03 -4.31631206109E-03
+ -4.46408687540E-03 -4.61687221670E-03 -4.77483474792E-03 -4.93814645144E-03
+ -5.10698478293E-03 -5.28153282847E-03 -5.46197946490E-03 -5.64851952342E-03
+ -5.84135395628E-03 -6.04069000669E-03 -6.24674138169E-03 -6.45972842801E-03
+ -6.67987831075E-03 -6.90742519485E-03 -7.14261042913E-03 -7.38568273275E-03
+ -7.63689838401E-03 -7.89652141115E-03 -8.16482378501E-03 -8.44208561332E-03
+ -8.72859533626E-03 -9.02464992303E-03 -9.33055506905E-03 -9.64662539346E-03
+ -9.97318463645E-03 -1.03105658560E-02 -1.06591116232E-02 -1.10191742167E-02
+ -1.13911158135E-02 -1.17753086783E-02 -1.21721353477E-02 -1.25819888113E-02
+ -1.30052726860E-02 -1.34424013852E-02 -1.38938002801E-02 -1.43599058525E-02
+ -1.48411658384E-02 -1.53380393602E-02 -1.58509970470E-02 -1.63805211406E-02
+ -1.69271055869E-02 -1.74912561089E-02 -1.80734902617E-02 -1.86743374656E-02
+ -1.92943390163E-02 -1.99340480693E-02 -2.05940295959E-02 -2.12748603085E-02
+ -2.19771285518E-02 -2.27014341571E-02 -2.34483882564E-02 -2.42186130518E-02
+ -2.50127415378E-02 -2.58314171712E-02 -2.66752934846E-02 -2.75450336384E-02
+ -2.84413099068E-02 -2.93648030916E-02 -3.03162018587E-02 -3.12962019905E-02
+ -3.23055055474E-02 -3.33448199318E-02 -3.44148568467E-02 -3.55163311404E-02
+ -3.66499595287E-02 -3.78164591855E-02 -3.90165461914E-02 -4.02509338297E-02
+ -4.15203307186E-02 -4.28254387662E-02 -4.41669509372E-02 -4.55455488148E-02
+ -4.69618999450E-02 -4.84166549457E-02 -4.99104443637E-02 -5.14438752620E-02
+ -5.30175275159E-02 -5.46319497992E-02 -5.62876552352E-02 -5.79851166910E-02
+ -5.97247616864E-02 -6.15069668923E-02 -6.33320521869E-02 -6.52002742393E-02
+ -6.71118195852E-02 -6.90667971603E-02 -7.10652302503E-02 -7.31070478177E-02
+ -7.51920751610E-02 -7.73200238584E-02 -7.94904809468E-02 -8.17028972822E-02
+ -8.39565750253E-02 -8.62506541928E-02 -8.85840982107E-02 -9.09556784038E-02
+ -9.33639573516E-02 -9.58072710384E-02 -9.82837097212E-02 -1.00791097439E-01
+ -1.03326970084E-01 -1.05888551950E-01 -1.08472730686E-01 -1.11076030560E-01
+ -1.13694583977E-01 -1.16324101149E-01 -1.18959837882E-01 -1.21596561390E-01
+ -1.24228514115E-01 -1.26849375512E-01 -1.29452221785E-01 -1.32029483603E-01
+ -1.34572901833E-01 -1.37073481384E-01 -1.39521443295E-01 -1.41906175260E-01
+ -1.44216180838E-01 -1.46439027709E-01 -1.48561295372E-01 -1.50568522848E-01
+ -1.52445157025E-01 -1.54174502437E-01 -1.55738673431E-01 -1.57118549827E-01
+ -1.58293737372E-01 -1.59242534490E-01 -1.59941907055E-01 -1.60367473107E-01
+ -1.60493499707E-01 -1.60292914311E-01 -1.59737333299E-01 -1.58797110446E-01
+ -1.57441408330E-01 -1.55638295726E-01 -1.53354874083E-01 -1.50557436098E-01
+ -1.47211659159E-01 -1.43282836067E-01 -1.38736144821E-01 -1.33536958406E-01
+ -1.27651194393E-01 -1.21045702643E-01 -1.13688687627E-01 -1.05550159603E-01
+ -9.66024063361E-02 -8.68204741064E-02 -7.61826435939E-02 -6.46708829657E-02
+ -5.22712574087E-02 -3.89742717964E-02 -2.47751216846E-02 -9.67382811037E-03
+ 6.32476534822E-03 2.32111479051E-02 4.09714517063E-02 5.95878998574E-02
+ 7.90393470798E-02 9.93018283890E-02 1.20348979063E-01 1.42152123169E-01
+ 1.64679748440E-01 1.87895995472E-01 2.11757696912E-01 2.36209422998E-01
+ 2.61175951191E-01 2.86551625932E-01 3.12186284280E-01 3.37867910777E-01
+ 3.63303128522E-01 3.88098301147E-01 4.11746809825E-01 4.33632563962E-01
+ 4.53066851350E-01 4.69386454467E-01 4.82157301629E-01 4.91552268755E-01
+ 4.99007611887E-01 5.08314833525E-01 5.23788987352E-01 5.35828860401E-01
+ 5.42695392010E-01 5.44354204745E-01 5.40847131991E-01 5.32293046573E-01
+ 5.18887288746E-01 5.00899672336E-01 4.78671008927E-01 4.52608173529E-01
+ 4.23177744629E-01 3.90898302268E-01 3.56331511824E-01 3.20072144311E-01
+ 2.82737240182E-01 2.44954626205E-01 2.07351034673E-01 1.70540063811E-01
+ 1.35110212244E-01 1.01613205252E-01 7.05527582927E-02 4.23739168231E-02
+ 1.74529745147E-02 -3.91199723358E-03 -2.15101359967E-02 -3.52262922163E-02
+ -4.50491381065E-02 -5.10786469510E-02 -5.35325686422E-02 -5.27508830136E-02
+ -4.91965316311E-02 -4.34506175903E-02 -3.61972447276E-02 -2.81954895974E-02
+ -2.02319420884E-02 -1.30512481632E-02 -7.26332253689E-03 -3.23431912856E-03
+ -9.83120862344E-04 -1.31578357894E-04 -6.82284582394E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ -2.28138338295E+00 9.78908472344E+00 -2.08388504259E+01 1.07513874387E+02
+ -3.91780512598E+02 7.15779354334E+02 -6.39283469382E+02 2.23576315164E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -1.39852505819E+01 3.08338522975E+01 3.06306855747E+02 -2.05394216985E+03
+ 5.75036711203E+03 -8.54698437983E+03 6.55009808830E+03 -2.03158302752E+03
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 3 5 2 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 8.69297310002E-18 7.13421992012E-17 2.47024272275E-16
+ 6.00767434697E-16 1.20397688805E-15 2.13488652121E-15 3.47903858424E-15
+ 5.32979292167E-15 7.78886746839E-15 1.09669118056E-14 1.49841156746E-14
+ 1.99708544497E-14 2.60683736848E-14 3.34295149615E-14 4.22194853925E-14
+ 5.26166732633E-14 6.48135124283E-14 7.90173982284E-14 9.54516578407E-14
+ 1.14356578139E-13 1.35990494304E-13 1.60630942609E-13 1.88575880988E-13
+ 2.20144981185E-13 2.55680996512E-13 2.95551209434E-13 3.40148963453E-13
+ 3.89895283998E-13 4.45240593276E-13 5.06666524324E-13 5.74687839784E-13
+ 6.49854461203E-13 7.32753615008E-13 8.24012101612E-13 9.24298694466E-13
+ 1.03432667625E-12 1.15485651979E-12 1.28669872163E-12 1.43071679673E-12
+ 1.58783044320E-12 1.75901888628E-12 1.94532441154E-12 2.14785609768E-12
+ 2.36779375978E-12 2.60639211470E-12 2.86498518055E-12 3.14499092333E-12
+ 3.44791616393E-12 3.77536176003E-12 4.12902807755E-12 4.51072076780E-12
+ 4.92235686662E-12 5.36597123337E-12 5.84372334794E-12 6.35790448546E-12
+ 6.91094528919E-12 7.50542376301E-12 8.14407370647E-12 8.82979361637E-12
+ 9.56565607993E-12 1.03549176863E-11 1.12010294847E-11 1.21076480178E-11
+ 1.30786469628E-11 1.41181294117E-11 1.52304408263E-11 1.64201827030E-11
+ 1.76922269873E-11 1.90517312772E-11 2.05041548576E-11 2.20552756122E-11
+ 2.37112078577E-11 2.54784211522E-11 2.73637601279E-11 2.93744654047E-11
+ 3.15181956421E-11 3.38030507902E-11 3.62375966043E-11 3.88308904910E-11
+ 4.15925087565E-11 4.45325753326E-11 4.76617920596E-11 5.09914706083E-11
+ 5.45335661303E-11 5.83007127275E-11 6.23062608383E-11 6.65643166439E-11
+ 7.10897836003E-11 7.58984062116E-11 8.10068161625E-11 8.64325809370E-11
+ 9.21942550538E-11 9.83114340604E-11 1.04804811430E-10 1.11696238519E-10
+ 1.19008787743E-10 1.26766819146E-10 1.34996050547E-10 1.43723631442E-10
+ 1.52978220873E-10 1.62790069472E-10 1.73191105895E-10 1.84215027884E-10
+ 1.95897398210E-10 2.08275745736E-10 2.21389671894E-10 2.35280962848E-10
+ 2.49993707649E-10 2.65574422698E-10 2.82072182861E-10 2.99538759565E-10
+ 3.18028766272E-10 3.37599811708E-10 3.58312661245E-10 3.80231406897E-10
+ 4.03423646363E-10 4.27960671591E-10 4.53917667396E-10 4.81373920626E-10
+ 5.10413040463E-10 5.41123190425E-10 5.73597332709E-10 6.07933485508E-10
+ 6.44234993990E-10 6.82610815674E-10 7.23175820945E-10 7.66051109514E-10
+ 8.11364343672E-10 8.59250099206E-10 9.09850234924E-10 9.63314281764E-10
+ 1.01979985252E-09 1.07947307326E-09 1.14250903762E-09 1.20909228511E-09
+ 1.27941730474E-09 1.35368906536E-09 1.43212357395E-09 1.51494846353E-09
+ 1.60240361210E-09 1.69474179429E-09 1.79222936755E-09 1.89514699446E-09
+ 2.00379040328E-09 2.11847118867E-09 2.23951765465E-09 2.36727570210E-09
+ 2.50210976307E-09 2.64440378446E-09 2.79456226348E-09 2.95301133788E-09
+ 3.12019993356E-09 3.29660097273E-09 3.48271264582E-09 3.67905975034E-09
+ 3.88619510034E-09 4.10470101017E-09 4.33519085637E-09 4.57831072181E-09
+ 4.83474112649E-09 5.10519884939E-09 5.39043884630E-09 5.69125626856E-09
+ 6.00848858808E-09 6.34301783417E-09 6.69577294804E-09 7.06773226118E-09
+ 7.45992610412E-09 7.87343955234E-09 8.30941531658E-09 8.76905678515E-09
+ 9.25363122613E-09 9.76447315792E-09 1.03029878968E-08 1.08706552913E-08
+ 1.14690336519E-08 1.20997638886E-08 1.27645738641E-08 1.34652829773E-08
+ 1.42038069859E-08 1.49821630839E-08 1.58024752440E-08 1.66669798420E-08
+ 1.75780315750E-08 1.85381096914E-08 1.95498245473E-08 2.06159245068E-08
+ 2.17393032046E-08 2.29230071895E-08 2.41702439694E-08 2.54843904767E-08
+ 2.68690019801E-08 2.83278214611E-08 2.98647894843E-08 3.14840545843E-08
+ 3.31899841967E-08 3.49871761632E-08 3.68804708390E-08 3.88749638346E-08
+ 4.09760194263E-08 4.31892846686E-08 4.55207042460E-08 4.79765361040E-08
+ 5.05633678974E-08 5.32881343017E-08 5.61581352304E-08 5.91810550067E-08
+ 6.23649825396E-08 6.57184325557E-08 6.92503679439E-08 7.29702232691E-08
+ 7.68879295177E-08 8.10139401379E-08 8.53592584439E-08 8.99354664539E-08
+ 9.47547552379E-08 9.98299568536E-08 1.05174577954E-07 1.10802835151E-07
+ 1.16729692238E-07 1.22970899345E-07 1.29543034159E-07 1.36463545286E-07
+ 1.43750797896E-07 1.51424121740E-07 1.59503861692E-07 1.68011430924E-07
+ 1.76969366872E-07 1.86401390119E-07 1.96332466363E-07 2.06788871623E-07
+ 2.17798260855E-07 2.29389740157E-07 2.41593942742E-07 2.54443108891E-07
+ 2.67971170082E-07 2.82213837513E-07 2.97208695254E-07 3.12995298270E-07
+ 3.29615275561E-07 3.47112438698E-07 3.65532896023E-07 3.84925172820E-07
+ 4.05340337766E-07 4.26832135982E-07 4.49457129040E-07 4.73274842280E-07
+ 4.98347919824E-07 5.24742287684E-07 5.52527325387E-07 5.81776046568E-07
+ 6.12565288985E-07 6.44975914467E-07 6.79093019286E-07 7.15006155528E-07
+ 7.52809564008E-07 7.92602419352E-07 8.34489087865E-07 8.78579398862E-07
+ 9.24988930155E-07 9.73839308449E-07 1.02525852540E-06 1.07938127016E-06
+ 1.13634927932E-06 1.19631170502E-06 1.25942550235E-06 1.32585583691E-06
+ 1.39577651364E-06 1.46937042802E-06 1.54683004078E-06 1.62835787741E-06
+ 1.71416705365E-06 1.80448182842E-06 1.89953818556E-06 1.99958444594E-06
+ 2.10488191136E-06 2.21570554213E-06 2.33234466993E-06 2.45510374773E-06
+ 2.58430313889E-06 2.72027994734E-06 2.86338889094E-06 3.01400322042E-06
+ 3.17251568612E-06 3.33933955508E-06 3.51490968110E-06 3.69968363049E-06
+ 3.89414286644E-06 4.09879399500E-06 4.31417007593E-06 4.54083200177E-06
+ 4.77936994858E-06 5.03040490226E-06 5.29459026415E-06 5.57261354019E-06
+ 5.86519811788E-06 6.17310513560E-06 6.49713544916E-06 6.83813170048E-06
+ 7.19698049376E-06 7.57461468475E-06 7.97201578890E-06 8.39021651455E-06
+ 8.83030342765E-06 9.29341975483E-06 9.78076833193E-06 1.02936147055E-05
+ 1.08332903952E-05 1.14011963254E-05 1.19988064349E-05 1.26276714732E-05
+ 1.32894229943E-05 1.39857775568E-05 1.47185411419E-05 1.54896138000E-05
+ 1.63009945378E-05 1.71547864587E-05 1.80532021686E-05 1.89985694617E-05
+ 1.99933372999E-05 2.10400821019E-05 2.21415143563E-05 2.33004855771E-05
+ 2.45199956179E-05 2.58032003633E-05 2.71534198180E-05 2.85741466118E-05
+ 3.00690549441E-05 3.16420099883E-05 3.32970777813E-05 3.50385356213E-05
+ 3.68708830011E-05 3.87988531032E-05 4.08274248860E-05 4.29618357904E-05
+ 4.52075950993E-05 4.75704979815E-05 5.00566402570E-05 5.26724339178E-05
+ 5.54246234440E-05 5.83203029548E-05 6.13669342364E-05 6.45723656914E-05
+ 6.79448522557E-05 7.14930763311E-05 7.52261697864E-05 7.91537370774E-05
+ 8.32858795452E-05 8.76332209491E-05 9.22069342969E-05 9.70187700373E-05
+ 1.02081085681E-04 1.07406876922E-04 1.13009810335E-04 1.18904257724E-04
+ 1.25105332204E-04 1.31628926106E-04 1.38491750783E-04 1.45711378429E-04
+ 1.53306285986E-04 1.61295901267E-04 1.69700651373E-04 1.78542013547E-04
+ 1.87842568557E-04 1.97626056745E-04 2.07917436863E-04 2.18742947831E-04
+ 2.30130173566E-04 2.42108111008E-04 2.54707241516E-04 2.67959605781E-04
+ 2.81898882422E-04 2.96560470448E-04 3.11981575750E-04 3.28201301829E-04
+ 3.45260744936E-04 3.63203093849E-04 3.82073734484E-04 4.01920359559E-04
+ 4.22793083555E-04 4.44744563201E-04 4.67830123732E-04 4.92107891176E-04
+ 5.17638930945E-04 5.44487392996E-04 5.72720663852E-04 6.02409525786E-04
+ 6.33628323460E-04 6.66455138359E-04 7.00971971318E-04 7.37264933509E-04
+ 7.75424446218E-04 8.15545449778E-04 8.57727622023E-04 9.02075606652E-04
+ 9.48699251880E-04 9.97713859780E-04 1.04924044673E-03 1.10340601538E-03
+ 1.16034383853E-03 1.22019375545E-03 1.28310248095E-03 1.34922392772E-03
+ 1.41871954243E-03 1.49175865594E-03 1.56851884817E-03 1.64918632802E-03
+ 1.73395632885E-03 1.82303351993E-03 1.91663243433E-03 2.01497791373E-03
+ 2.11830557043E-03 2.22686226721E-03 2.34090661519E-03 2.46070949028E-03
+ 2.58655456839E-03 2.71873887989E-03 2.85757338344E-03 3.00338355955E-03
+ 3.15651002405E-03 3.31730916158E-03 3.48615377912E-03 3.66343377976E-03
+ 3.84955685642E-03 4.04494920550E-03 4.25005626019E-03 4.46534344295E-03
+ 4.69129693687E-03 4.92842447505E-03 5.17725614745E-03 5.43834522399E-03
+ 5.71226899308E-03 5.99962961392E-03 6.30105498123E-03 6.61719960048E-03
+ 6.94874547165E-03 7.29640297899E-03 7.66091178422E-03 8.04304172008E-03
+ 8.44359368084E-03 8.86340050584E-03 9.30332785192E-03 9.76427504990E-03
+ 1.02471759398E-02 1.07529996792E-02 1.12827515175E-02 1.18374735303E-02
+ 1.24182453051E-02 1.30261845692E-02 1.36624477524E-02 1.43282304720E-02
+ 1.50247679305E-02 1.57533352126E-02 1.65152474693E-02 1.73118599734E-02
+ 1.81445680322E-02 1.90148067392E-02 1.99240505463E-02 2.08738126382E-02
+ 2.18656440852E-02 2.29011327533E-02 2.39819019453E-02 2.51096087460E-02
+ 2.62859420436E-02 2.75126201947E-02 2.87913883006E-02 3.01240150578E-02
+ 3.15122891457E-02 3.29580151078E-02 3.44630086847E-02 3.60290915491E-02
+ 3.76580853933E-02 3.93518053137E-02 4.11120524347E-02 4.29406057087E-02
+ 4.48392128263E-02 4.68095801638E-02 4.88533616927E-02 5.09721467678E-02
+ 5.31674467081E-02 5.54406800742E-02 5.77931565437E-02 6.02260592765E-02
+ 6.27404256551E-02 6.53371262769E-02 6.80168420682E-02 7.07800393786E-02
+ 7.36269429082E-02 7.65575063078E-02 7.95713802833E-02 8.26678780264E-02
+ 8.58459377825E-02 8.91040823573E-02 9.24403753541E-02 9.58523739270E-02
+ 9.93370778250E-02 1.02890874502E-01 1.06509480063E-01 1.10187875814E-01
+ 1.13920240208E-01 1.17699875962E-01 1.21519132181E-01 1.25369321321E-01
+ 1.29240630891E-01 1.33122029847E-01 1.37001169712E-01 1.40864280551E-01
+ 1.44696062080E-01 1.48479570306E-01 1.52196100351E-01 1.55825066281E-01
+ 1.59343879108E-01 1.62727824418E-01 1.65949941492E-01 1.68980906241E-01
+ 1.71788920775E-01 1.74339612994E-01 1.76595950259E-01 1.78518171840E-01
+ 1.80063745595E-01 1.81187355083E-01 1.81840924011E-01 1.81973685656E-01
+ 1.81532305441E-01 1.80461065272E-01 1.78702118382E-01 1.76195823203E-01
+ 1.72881164055E-01 1.68696265060E-01 1.63579001475E-01 1.57467709424E-01
+ 1.50301990597E-01 1.42023602674E-01 1.32577418951E-01 1.21912431772E-01
+ 1.09982763966E-01 9.67486408759E-02 8.21772632351E-02 6.62435090303E-02
+ 4.89303821769E-02 3.02291194145E-02 1.01388675085E-02 -1.13341452207E-02
+ -3.41779903717E-02 -5.83769691275E-02 -8.39140016874E-02 -1.10773264216E-01
+ -1.38942688538E-01 -1.68415712416E-01 -1.99191385518E-01 -2.31271609498E-01
+ -2.64653952561E-01 -2.99318198570E-01 -3.35204697220E-01 -3.72182899706E-01
+ -4.10009567496E-01 -4.48278633401E-01 -4.86369523873E-01 -5.23409387894E-01
+ -5.58279358368E-01 -5.89719063097E-01 -6.16622118583E-01 -6.38675682717E-01
+ -6.57590155363E-01 -6.79306576456E-01 -7.12026134678E-01 -7.42099145141E-01
+ -7.66705265762E-01 -7.85576506044E-01 -7.98518560489E-01 -8.05415277835E-01
+ -8.06231819964E-01 -8.01016456127E-01 -7.89900812335E-01 -7.73098554050E-01
+ -7.50902464775E-01 -7.23679964600E-01 -6.91867208365E-01 -6.55961894599E-01
+ -6.16515103137E-01 -5.74122365085E-01 -5.29414402785E-01 -4.83047737736E-01
+ -4.35695581772E-01 -3.88039043712E-01 -3.40758818848E-01 -2.94527007797E-01
+ -2.49998738365E-01 -2.07802682222E-01 -1.68529562114E-01 -1.32717326233E-01
+ -1.00831934362E-01 -7.32428930931E-02 -5.01937519894E-02 -3.17692188373E-02
+ -1.78630059307E-02 -8.15374638543E-03 -2.09929584310E-03 1.03685572920E-03
+ 2.11448590883E-03 1.99547560021E-03 1.39021708704E-03 7.38705422055E-04
+ 2.58795064984E-04 3.89066568438E-05 2.32218213030E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 7.31388350461E+00 -4.38404029646E+01 1.56403667480E+02 -5.70097329161E+02
+ 1.51695770055E+03 -2.35777640193E+03 1.90932646205E+03 -6.23083635889E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -1.22827142281E+00 2.50812945893E+02 -2.61321795292E+03 1.19315556530E+04
+ -2.94757323196E+04 4.07484032179E+04 -2.96070322212E+04 8.79781646579E+03
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 3 6 2 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 -1.02010744673E-17 -8.37190082539E-17 -2.89879304550E-16
+ -7.04991637309E-16 -1.41284894714E-15 -2.50525753750E-15 -4.08259996483E-15
+ -6.25443261631E-15 -9.14011997359E-15 -1.28695076724E-14 -1.75836365839E-14
+ -2.34355002685E-14 -3.05908482799E-14 -3.92290379378E-14 -4.95439373288E-14
+ -6.17448824488E-14 -7.60576915605E-14 -9.27257400072E-14 -1.12011098906E-13
+ -1.34195741323E-13 -1.59582819748E-13 -1.88498018863E-13 -2.21290987866E-13
+ -2.58336856788E-13 -3.00037841536E-13 -3.46824942612E-13 -3.99159742761E-13
+ -4.57536309050E-13 -5.22483205232E-13 -5.94565620505E-13 -6.74387621161E-13
+ -7.62594531947E-13 -8.59875454331E-13 -9.66965929260E-13 -1.08465075242E-12
+ -1.21376695042E-12 -1.35520692679E-12 -1.50992178715E-12 -1.67892485346E-12
+ -1.86329537775E-12 -2.06418246624E-12 -2.28280922555E-12 -2.52047714301E-12
+ -2.77857071405E-12 -3.05856233021E-12 -3.36201744189E-12 -3.69060001106E-12
+ -4.04607826962E-12 -4.43033080019E-12 -4.84535295689E-12 -5.29326364462E-12
+ -5.77631247641E-12 -6.29688732941E-12 -6.85752232110E-12 -7.46090622878E-12
+ -8.10989137607E-12 -8.80750301215E-12 -9.55694921012E-12 -1.03616313128E-11
+ -1.12251549555E-11 -1.21513416972E-11 -1.31442412927E-11 -1.42081446403E-11
+ -1.53475974427E-11 -1.65674146173E-11 -1.78726954986E-11 -1.92688398744E-11
+ -2.07615649001E-11 -2.23569229400E-11 -2.40613203839E-11 -2.58815374921E-11
+ -2.78247493245E-11 -2.98985478111E-11 -3.21109650258E-11 -3.44704977284E-11
+ -3.69861332418E-11 -3.96673767369E-11 -4.25242800001E-11 -4.55674717632E-11
+ -4.88081896790E-11 -5.22583140308E-11 -5.59304032690E-11 -5.98377314709E-11
+ -6.39943278290E-11 -6.84150182739E-11 -7.31154693466E-11 -7.81122344406E-11
+ -8.34228025399E-11 -8.90656495858E-11 -9.50602926130E-11 -1.01427346802E-10
+ -1.08188585606E-10 -1.15367004107E-10 -1.22986885789E-10 -1.31073872894E-10
+ -1.39655040556E-10 -1.48758974928E-10 -1.58415855486E-10 -1.68657541760E-10
+ -1.79517664711E-10 -1.91031723005E-10 -2.03237184444E-10 -2.16173592830E-10
+ -2.29882680543E-10 -2.44408487149E-10 -2.59797484339E-10 -2.76098707555E-10
+ -2.93363894643E-10 -3.11647631910E-10 -3.31007507981E-10 -3.51504275856E-10
+ -3.73202023624E-10 -3.96168354266E-10 -4.20474575047E-10 -4.46195896993E-10
+ -4.73411644998E-10 -5.02205479108E-10 -5.32665627586E-10 -5.64885132372E-10
+ -5.98962107599E-10 -6.35000011850E-10 -6.73107934884E-10 -7.13400899595E-10
+ -7.56000180006E-10 -8.01033636152E-10 -8.48636066724E-10 -8.98949580441E-10
+ -9.52123987108E-10 -1.00831720942E-09 -1.06769571658E-09 -1.13043498094E-09
+ -1.19671995877E-09 -1.26674559657E-09 -1.34071736411E-09 -1.41885181577E-09
+ -1.50137718156E-09 -1.58853398937E-09 -1.68057572020E-09 -1.77776949804E-09
+ -1.88039681616E-09 -1.98875430188E-09 -2.10315452173E-09 -2.22392682910E-09
+ -2.35141825674E-09 -2.48599445639E-09 -2.62804068797E-09 -2.77796286107E-09
+ -2.93618863134E-09 -3.10316855479E-09 -3.27937730296E-09 -3.46531494223E-09
+ -3.66150828052E-09 -3.86851228512E-09 -4.08691157516E-09 -4.31732199280E-09
+ -4.56039225723E-09 -4.81680570581E-09 -5.08728212688E-09 -5.37257968925E-09
+ -5.67349697316E-09 -5.99087510825E-09 -6.32560002409E-09 -6.67860481916E-09
+ -7.05087225452E-09 -7.44343737868E-09 -7.85739029060E-09 -8.29387904804E-09
+ -8.75411272885E-09 -9.23936465331E-09 -9.75097577587E-09 -1.02903582552E-08
+ -1.08589992121E-08 -1.14584646844E-08 -1.20904037906E-08 -1.27565531113E-08
+ -1.34587413016E-08 -1.41988939454E-08 -1.49790386648E-08 -1.58013104981E-08
+ -1.66679575596E-08 -1.75813469972E-08 -1.85439712627E-08 -1.95584547107E-08
+ -2.06275605448E-08 -2.17541981275E-08 -2.29414306743E-08 -2.41924833514E-08
+ -2.55107517980E-08 -2.68998110959E-08 -2.83634252098E-08 -2.99055569226E-08
+ -3.15303782914E-08 -3.32422816525E-08 -3.50458912031E-08 -3.69460751900E-08
+ -3.89479587380E-08 -4.10569373499E-08 -4.32786911149E-08 -4.56191996612E-08
+ -4.80847578926E-08 -5.06819925493E-08 -5.34178796366E-08 -5.62997627672E-08
+ -5.93353724637E-08 -6.25328464730E-08 -6.59007511438E-08 -6.94481039251E-08
+ -7.31843970417E-08 -7.71196224106E-08 -8.12642978611E-08 -8.56294947287E-08
+ -9.02268668934E-08 -9.50686813375E-08 -1.00167850305E-07 -1.05537965140E-07
+ -1.11193331905E-07 -1.17149008852E-07 -1.23420845861E-07 -1.30025525945E-07
+ -1.36980608920E-07 -1.44304577364E-07 -1.52016884981E-07 -1.60138007492E-07
+ -1.68689496189E-07 -1.77694034297E-07 -1.87175496272E-07 -1.97159010210E-07
+ -2.07671023514E-07 -2.18739372001E-07 -2.30393352619E-07 -2.42663799962E-07
+ -2.55583166794E-07 -2.69185608780E-07 -2.83507073640E-07 -2.98585394975E-07
+ -3.14460390987E-07 -3.31173968365E-07 -3.48770231598E-07 -3.67295598003E-07
+ -3.86798918760E-07 -4.07331606278E-07 -4.28947768210E-07 -4.51704348471E-07
+ -4.75661275629E-07 -5.00881619043E-07 -5.27431753154E-07 -5.55381530370E-07
+ -5.84804462968E-07 -6.15777914503E-07 -6.48383301212E-07 -6.82706303938E-07
+ -7.18837091116E-07 -7.56870553406E-07 -7.96906550574E-07 -8.39050171262E-07
+ -8.83412006322E-07 -9.30108436418E-07 -9.79261934635E-07 -1.03100138489E-06
+ -1.08546241694E-06 -1.14278775894E-06 -1.20312760827E-06 -1.26664002185E-06
+ -1.33349132675E-06 -1.40385655221E-06 -1.47791988422E-06 -1.55587514384E-06
+ -1.63792629041E-06 -1.72428795102E-06 -1.81518597766E-06 -1.91085803331E-06
+ -2.01155420869E-06 -2.11753767109E-06 -2.22908534709E-06 -2.34648864082E-06
+ -2.47005418965E-06 -2.60010465935E-06 -2.73697958057E-06 -2.88103622899E-06
+ -3.03265055130E-06 -3.19221813944E-06 -3.36015525550E-06 -3.53689991019E-06
+ -3.72291299724E-06 -3.91867948711E-06 -4.12470968262E-06 -4.34154054016E-06
+ -4.56973705953E-06 -4.80989374622E-06 -5.06263614967E-06 -5.32862248170E-06
+ -5.60854531907E-06 -5.90313339461E-06 -6.21315348156E-06 -6.53941237580E-06
+ -6.88275898129E-06 -7.24408650381E-06 -7.62433475879E-06 -8.02449259905E-06
+ -8.44560046873E-06 -8.88875308984E-06 -9.35510228842E-06 -9.84585996745E-06
+ -1.03623012341E-05 -1.09057676892E-05 -1.14776708880E-05 -1.20794959795E-05
+ -1.27128055357E-05 -1.33792435785E-05 -1.40805398160E-05 -1.48185140985E-05
+ -1.55950811048E-05 -1.64122552719E-05 -1.72721559799E-05 -1.81770130054E-05
+ -1.91291722571E-05 -2.01311018086E-05 -2.11853982428E-05 -2.22947933251E-05
+ -2.34621610208E-05 -2.46905248765E-05 -2.59830657814E-05 -2.73431301307E-05
+ -2.87742384098E-05 -3.02800942218E-05 -3.18645937809E-05 -3.35318358948E-05
+ -3.52861324626E-05 -3.71320195126E-05 -3.90742688094E-05 -4.11179000581E-05
+ -4.32681937362E-05 -4.55307045859E-05 -4.79112757997E-05 -5.04160539346E-05
+ -5.30515045918E-05 -5.58244289016E-05 -5.87419808531E-05 -6.18116855122E-05
+ -6.50414581725E-05 -6.84396244865E-05 -7.20149416263E-05 -7.57766205257E-05
+ -7.97343492585E-05 -8.38983176093E-05 -8.82792428971E-05 -9.28883971156E-05
+ -9.77376354530E-05 -1.02839426264E-04 -1.08206882564E-04 -1.13853795122E-04
+ -1.19794667231E-04 -1.26044751239E-04 -1.32620086933E-04 -1.39537541857E-04
+ -1.46814853670E-04 -1.54470674639E-04 -1.62524618369E-04 -1.70997308889E-04
+ -1.79910432203E-04 -1.89286790422E-04 -1.99150358612E-04 -2.09526344485E-04
+ -2.20441251066E-04 -2.31922942492E-04 -2.44000713077E-04 -2.56705359818E-04
+ -2.70069258487E-04 -2.84126443497E-04 -2.98912691711E-04 -3.14465610380E-04
+ -3.30824729412E-04 -3.48031598171E-04 -3.66129887006E-04 -3.85165493755E-04
+ -4.05186655432E-04 -4.26244065340E-04 -4.48390995869E-04 -4.71683427223E-04
+ -4.96180182358E-04 -5.21943068394E-04 -5.49037024813E-04 -5.77530278722E-04
+ -6.07494507503E-04 -6.39005009175E-04 -6.72140880801E-04 -7.06985205278E-04
+ -7.43625246885E-04 -7.82152655943E-04 -8.22663682976E-04 -8.65259402768E-04
+ -9.10045948718E-04 -9.57134757910E-04 -1.00664282733E-03 -1.05869298167E-03
+ -1.11341415317E-03 -1.17094167394E-03 -1.23141758125E-03 -1.29499093635E-03
+ -1.36181815705E-03 -1.43206336494E-03 -1.50589874738E-03 -1.58350493504E-03
+ -1.66507139533E-03 -1.75079684232E-03 -1.84088966367E-03 -1.93556836496E-03
+ -2.03506203217E-03 -2.13961081247E-03 -2.24946641413E-03 -2.36489262585E-03
+ -2.48616585598E-03 -2.61357569208E-03 -2.74742548128E-03 -2.88803293169E-03
+ -3.03573073536E-03 -3.19086721285E-03 -3.35380697991E-03 -3.52493163627E-03
+ -3.70464047660E-03 -3.89335122390E-03 -4.09150078502E-03 -4.29954602820E-03
+ -4.51796458247E-03 -4.74725565834E-03 -4.98794088931E-03 -5.24056519345E-03
+ -5.50569765419E-03 -5.78393241923E-03 -6.07588961615E-03 -6.38221628335E-03
+ -6.70358731428E-03 -7.04070641304E-03 -7.39430705877E-03 -7.76515347599E-03
+ -8.15404160789E-03 -8.56180008870E-03 -8.98929121120E-03 -9.43741188469E-03
+ -9.90709457830E-03 -1.03993082438E-02 -1.09150592113E-02 -1.14553920516E-02
+ -1.20213903953E-02 -1.26141777023E-02 -1.32349179701E-02 -1.38848163712E-02
+ -1.45651198072E-02 -1.52771173677E-02 -1.60221406786E-02 -1.68015641250E-02
+ -1.76168049325E-02 -1.84693230864E-02 -1.93606210715E-02 -2.02922434080E-02
+ -2.12657759622E-02 -2.22828450044E-02 -2.33451159871E-02 -2.44542920138E-02
+ -2.56121119655E-02 -2.68203482493E-02 -2.80808041330E-02 -2.93953106243E-02
+ -3.07657228507E-02 -3.21939158952E-02 -3.36817800364E-02 -3.52312153409E-02
+ -3.68441255509E-02 -3.85224112069E-02 -4.02679619407E-02 -4.20826478723E-02
+ -4.39683100364E-02 -4.59267497641E-02 -4.79597169393E-02 -5.00688970448E-02
+ -5.22558969098E-02 -5.45222290663E-02 -5.68692946171E-02 -5.92983645153E-02
+ -6.18105591505E-02 -6.44068261335E-02 -6.70879161690E-02 -6.98543569019E-02
+ -7.27064246221E-02 -7.56441137087E-02 -7.86671036975E-02 -8.17747238521E-02
+ -8.49659151227E-02 -8.82391893786E-02 -9.15925858044E-02 -9.50236243564E-02
+ -9.85292561843E-02 -1.02105810932E-01 -1.05748940847E-01 -1.09453561644E-01
+ -1.13213790088E-01 -1.17022878287E-01 -1.20873144713E-01 -1.24755902010E-01
+ -1.28661381679E-01 -1.32578655792E-01 -1.36495555930E-01 -1.40398589609E-01
+ -1.44272854547E-01 -1.48101951187E-01 -1.51867894010E-01 -1.55551022280E-01
+ -1.59129910984E-01 -1.62581282891E-01 -1.65879922793E-01 -1.68998595215E-01
+ -1.71907967026E-01 -1.74576536670E-01 -1.76970571955E-01 -1.79054058591E-01
+ -1.80788662023E-01 -1.82133705350E-01 -1.83046166508E-01 -1.83480698224E-01
+ -1.83389674602E-01 -1.82723268564E-01 -1.81429564714E-01 -1.79454712499E-01
+ -1.76743124800E-01 -1.73237727299E-01 -1.68880264000E-01 -1.63611664264E-01
+ -1.57372476426E-01 -1.50103372561E-01 -1.41745728180E-01 -1.32242279426E-01
+ -1.21537858777E-01 -1.09580208136E-01 -9.63208655585E-02 -8.17161186606E-02
+ -6.57280139625E-02 -4.83254071424E-02 -2.94850345319E-02 -9.19258143586E-03
+ 1.25562815680E-02 3.57549266953E-02 6.03848954158E-02 8.64151560325E-02
+ 1.13801519260E-01 1.42486226392E-01 1.72397703672E-01 2.03450444337E-01
+ 2.35544934176E-01 2.68567475576E-01 3.02389688994E-01 3.36867382848E-01
+ 3.71838392611E-01 4.07118917209E-01 4.42497862926E-01 4.77728806252E-01
+ 5.12519514596E-01 5.46519689968E-01 5.79308996979E-01 6.10389922039E-01
+ 6.39194223568E-01 6.65118633358E-01 6.87616485504E-01 7.06389190040E-01
+ 7.21748020895E-01 7.35257043045E-01 7.49027137872E-01 7.58388769996E-01
+ 7.62386492106E-01 7.60930791430E-01 7.54004983509E-01 7.41667967249E-01
+ 7.24055636181E-01 7.01380876592E-01 6.73932022242E-01 6.42069750179E-01
+ 6.06222416498E-01 5.66879907263E-01 5.24586157825E-01 4.79930527155E-01
+ 4.33538324978E-01 3.86060769087E-01 3.38164743830E-01 2.90522637334E-01
+ 2.43802546640E-01 1.98658952100E-01 1.55723835237E-01 1.15597933422E-01
+ 7.88415555920E-02 4.59640870165E-02 1.74110273867E-02 -6.45266668504E-03
+ -2.53641068591E-02 -3.91894036957E-02 -4.79555107596E-02 -5.18844594520E-02
+ -5.14246211376E-02 -4.72707518706E-02 -4.03586311653E-02 -3.18200807068E-02
+ -2.28809480398E-02 -1.46964099948E-02 -8.14122917609E-03 -3.62875406559E-03
+ -1.10824388757E-03 -1.49414682552E-04 -8.15899573478E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -8.58273336603E+00 5.09164251574E+01 -1.24787678470E+02 2.52705254579E+02
+ -4.94264974944E+02 6.97192346865E+02 -5.49012627480E+02 1.77730221107E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 8.99554531051E+00 -2.65768781659E+02 2.52757134629E+03 -1.13922438294E+04
+ 2.80830202939E+04 -3.88158591135E+04 2.82102984903E+04 -8.38618056678E+03
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 4 4 1 i j (l(j))
+ 1.15777584383E-02 Q_int
+ 0.00000000000E+00 -3.85797086280E-12 -1.56967972271E-11 -3.59258019881E-11
+ -6.49707143174E-11 -1.03274274538E-10 -1.51296860526E-10 -2.09517136389E-10
+ -2.78432724209E-10 -3.58560899645E-10 -4.50439312242E-10 -5.54626731301E-10
+ -6.71703818212E-10 -8.02273926166E-10 -9.46963928214E-10 -1.10642507465E-09
+ -1.28133388075E-09 -1.47239304596E-09 -1.68033240551E-09 -1.90590991580E-09
+ -2.14991267449E-09 -2.41315797672E-09 -2.69649440855E-09 -3.00080297908E-09
+ -3.32699829241E-09 -3.67602976103E-09 -4.04888286192E-09 -4.44658043695E-09
+ -4.87018403911E-09 -5.32079532605E-09 -5.79955750282E-09 -6.30765681524E-09
+ -6.84632409591E-09 -7.41683636450E-09 -8.02051848435E-09 -8.65874487724E-09
+ -9.33294129847E-09 -1.00445866742E-08 -1.07952150033E-08 -1.15864173260E-08
+ -1.24198437615E-08 -1.32972056174E-08 -1.42202775725E-08 -1.51908999364E-08
+ -1.62109809887E-08 -1.72824993995E-08 -1.84075067350E-08 -1.95881300507E-08
+ -2.08265745757E-08 -2.21251264905E-08 -2.34861558021E-08 -2.49121193202E-08
+ -2.64055637365E-08 -2.79691288126E-08 -2.96055506787E-08 -3.13176652478E-08
+ -3.31084117495E-08 -3.49808363865E-08 -3.69380961193E-08 -3.89834625831E-08
+ -4.11203261414E-08 -4.33522000803E-08 -4.56827249506E-08 -4.81156730599E-08
+ -5.06549531226E-08 -5.33046150709E-08 -5.60688550346E-08 -5.89520204936E-08
+ -6.19586156107E-08 -6.50933067498E-08 -6.83609281862E-08 -7.17664880165E-08
+ -7.53151742733E-08 -7.90123612538E-08 -8.28636160680E-08 -8.68747054155E-08
+ -9.10516025974E-08 -9.54004947727E-08 -9.99277904672E-08 -1.04640127343E-07
+ -1.09544380240E-07 -1.14647669493E-07 -1.19957369545E-07 -1.25481117850E-07
+ -1.31226824097E-07 -1.37202679744E-07 -1.43417167891E-07 -1.49879073489E-07
+ -1.56597493912E-07 -1.63581849891E-07 -1.70841896824E-07 -1.78387736491E-07
+ -1.86229829162E-07 -1.94379006133E-07 -2.02846482699E-07 -2.11643871571E-07
+ -2.20783196760E-07 -2.30276907952E-07 -2.40137895367E-07 -2.50379505143E-07
+ -2.61015555255E-07 -2.72060351978E-07 -2.83528706930E-07 -2.95435954702E-07
+ -3.07797971095E-07 -3.20631192000E-07 -3.33952632921E-07 -3.47779909186E-07
+ -3.62131256845E-07 -3.77025554310E-07 -3.92482344727E-07 -4.08521859137E-07
+ -4.25165040430E-07 -4.42433568138E-07 -4.60349884078E-07 -4.78937218889E-07
+ -4.98219619489E-07 -5.18221977478E-07 -5.38970058529E-07 -5.60490532795E-07
+ -5.82811006371E-07 -6.05960053842E-07 -6.29967251963E-07 -6.54863214498E-07
+ -6.80679628274E-07 -7.07449290475E-07 -7.35206147230E-07 -7.63985333539E-07
+ -7.93823214578E-07 -8.24757428435E-07 -8.56826930323E-07 -8.90072038323E-07
+ -9.24534480713E-07 -9.60257444934E-07 -9.97285628244E-07 -1.03566529013E-06
+ -1.07544430654E-06 -1.11667222596E-06 -1.15940032750E-06 -1.20368168087E-06
+ -1.24957120858E-06 -1.29712575017E-06 -1.34640412870E-06 -1.39746721958E-06
+ -1.45037802170E-06 -1.50520173110E-06 -1.56200581714E-06 -1.62086010129E-06
+ -1.68183683871E-06 -1.74501080258E-06 -1.81045937137E-06 -1.87826261914E-06
+ -1.94850340897E-06 -2.02126748954E-06 -2.09664359518E-06 -2.17472354925E-06
+ -2.25560237118E-06 -2.33937838716E-06 -2.42615334468E-06 -2.51603253100E-06
+ -2.60912489577E-06 -2.70554317781E-06 -2.80540403633E-06 -2.90882818665E-06
+ -3.01594054064E-06 -3.12687035195E-06 -3.24175136636E-06 -3.36072197722E-06
+ -3.48392538629E-06 -3.61150977018E-06 -3.74362845249E-06 -3.88044008190E-06
+ -4.02210881642E-06 -4.16880451403E-06 -4.32070292982E-06 -4.47798592007E-06
+ -4.64084165320E-06 -4.80946482820E-06 -4.98405690044E-06 -5.16482631538E-06
+ -5.35198875025E-06 -5.54576736422E-06 -5.74639305704E-06 -5.95410473673E-06
+ -6.16914959644E-06 -6.39178340093E-06 -6.62227078287E-06 -6.86088554939E-06
+ -7.10791099927E-06 -7.36364025097E-06 -7.62837658206E-06 -7.90243378036E-06
+ -8.18613650713E-06 -8.47982067288E-06 -8.78383382610E-06 -9.09853555540E-06
+ -9.42429790553E-06 -9.76150580780E-06 -1.01105575252E-05 -1.04718651133E-05
+ -1.08458548961E-05 -1.12329679597E-05 -1.16336606618E-05 -1.20484051590E-05
+ -1.24776899531E-05 -1.29220204551E-05 -1.33819195695E-05 -1.38579282982E-05
+ -1.43506063657E-05 -1.48605328654E-05 -1.53883069287E-05 -1.59345484165E-05
+ -1.64998986353E-05 -1.70850210775E-05 -1.76906021870E-05 -1.83173521522E-05
+ -1.89660057251E-05 -1.96373230695E-05 -2.03320906380E-05 -2.10511220795E-05
+ -2.17952591778E-05 -2.25653728226E-05 -2.33623640140E-05 -2.41871649014E-05
+ -2.50407398587E-05 -2.59240865962E-05 -2.68382373105E-05 -2.77842598747E-05
+ -2.87632590689E-05 -2.97763778542E-05 -3.08247986888E-05 -3.19097448914E-05
+ -3.30324820501E-05 -3.41943194803E-05 -3.53966117334E-05 -3.66407601562E-05
+ -3.79282145052E-05 -3.92604746157E-05 -4.06390921290E-05 -4.20656722780E-05
+ -4.35418757358E-05 -4.50694205264E-05 -4.66500840020E-05 -4.82857048883E-05
+ -4.99781854001E-05 -5.17294934293E-05 -5.35416648086E-05 -5.54168056532E-05
+ -5.73570947825E-05 -5.93647862253E-05 -6.14422118114E-05 -6.35917838522E-05
+ -6.58159979130E-05 -6.81174356811E-05 -7.04987679324E-05 -7.29627575997E-05
+ -7.55122629466E-05 -7.81502408504E-05 -8.08797501976E-05 -8.37039553965E-05
+ -8.66261300097E-05 -8.96496605118E-05 -9.27780501760E-05 -9.60149230939E-05
+ -9.93640283334E-05 -1.02829244239E-04 -1.06414582881E-04 -1.10124194655E-04
+ -1.13962373037E-04 -1.17933559513E-04 -1.22042348660E-04 -1.26293493416E-04
+ -1.30691910524E-04 -1.35242686161E-04 -1.39951081763E-04 -1.44822540049E-04
+ -1.49862691251E-04 -1.55077359553E-04 -1.60472569761E-04 -1.66054554184E-04
+ -1.71829759768E-04 -1.77804855462E-04 -1.83986739841E-04 -1.90382548986E-04
+ -1.96999664636E-04 -2.03845722615E-04 -2.10928621551E-04 -2.18256531884E-04
+ -2.25837905193E-04 -2.33681483830E-04 -2.41796310887E-04 -2.50191740500E-04
+ -2.58877448506E-04 -2.67863443463E-04 -2.77160078039E-04 -2.86778060793E-04
+ -2.96728468356E-04 -3.07022758021E-04 -3.17672780763E-04 -3.28690794704E-04
+ -3.40089479024E-04 -3.51881948352E-04 -3.64081767638E-04 -3.76702967535E-04
+ -3.89760060290E-04 -4.03268056181E-04 -4.17242480502E-04 -4.31699391124E-04
+ -4.46655396643E-04 -4.62127675148E-04 -4.78133993605E-04 -4.94692727908E-04
+ -5.11822883589E-04 -5.29544117230E-04 -5.47876758591E-04 -5.66841833476E-04
+ -5.86461087364E-04 -6.06757009826E-04 -6.27752859765E-04 -6.49472691481E-04
+ -6.71941381617E-04 -6.95184656991E-04 -7.19229123356E-04 -7.44102295106E-04
+ -7.69832625973E-04 -7.96449540727E-04 -8.23983467930E-04 -8.52465873763E-04
+ -8.81929296961E-04 -9.12407384903E-04 -9.43934930874E-04 -9.76547912546E-04
+ -1.01028353172E-03 -1.04518025534E-03 -1.08127785789E-03 -1.11861746508E-03
+ -1.15724159903E-03 -1.19719422484E-03 -1.23852079872E-03 -1.28126831761E-03
+ -1.32548537041E-03 -1.37122219086E-03 -1.41853071205E-03 -1.46746462274E-03
+ -1.51807942533E-03 -1.57043249583E-03 -1.62458314553E-03 -1.68059268473E-03
+ -1.73852448840E-03 -1.79844406386E-03 -1.86041912060E-03 -1.92451964219E-03
+ -1.99081796043E-03 -2.05938883177E-03 -2.13030951596E-03 -2.20365985720E-03
+ -2.27952236761E-03 -2.35798231325E-03 -2.43912780266E-03 -2.52304987803E-03
+ -2.60984260902E-03 -2.69960318928E-03 -2.79243203581E-03 -2.88843289113E-03
+ -2.98771292832E-03 -3.09038285905E-03 -3.19655704465E-03 -3.30635361017E-03
+ -3.41989456160E-03 -3.53730590626E-03 -3.65871777645E-03 -3.78426455623E-03
+ -3.91408501168E-03 -4.04832242440E-03 -4.18712472842E-03 -4.33064465053E-03
+ -4.47903985411E-03 -4.63247308632E-03 -4.79111232892E-03 -4.95513095245E-03
+ -5.12470787405E-03 -5.30002771865E-03 -5.48128098378E-03 -5.66866420776E-03
+ -5.86238014135E-03 -6.06263792283E-03 -6.26965325639E-03 -6.48364859376E-03
+ -6.70485331916E-03 -6.93350393715E-03 -7.16984426365E-03 -7.41412561966E-03
+ -7.66660702774E-03 -7.92755541098E-03 -8.19724579427E-03 -8.47596150768E-03
+ -8.76399439163E-03 -9.06164500364E-03 -9.36922282623E-03 -9.68704647582E-03
+ -1.00154439120E-02 -1.03547526468E-02 -1.07053199537E-02 -1.10675030758E-02
+ -1.14416694316E-02 -1.18281968202E-02 -1.22274736219E-02 -1.26398989968E-02
+ -1.30658830775E-02 -1.35058471579E-02 -1.39602238748E-02 -1.44294573824E-02
+ -1.49140035186E-02 -1.54143299612E-02 -1.59309163738E-02 -1.64642545383E-02
+ -1.70148484741E-02 -1.75832145413E-02 -1.81698815266E-02 -1.87753907096E-02
+ -1.94002959078E-02 -2.00451634974E-02 -2.07105724083E-02 -2.13971140903E-02
+ -2.21053924475E-02 -2.28360237383E-02 -2.35896364375E-02 -2.43668710577E-02
+ -2.51683799251E-02 -2.59948269075E-02 -2.68468870885E-02 -2.77252463852E-02
+ -2.86306011031E-02 -2.95636574245E-02 -3.05251308234E-02 -3.15157454038E-02
+ -3.25362331513E-02 -3.35873330965E-02 -3.46697903782E-02 -3.57843552032E-02
+ -3.69317816928E-02 -3.81128266083E-02 -3.93282479465E-02 -4.05788033971E-02
+ -4.18652486507E-02 -4.31883355484E-02 -4.45488100617E-02 -4.59474100907E-02
+ -4.73848630701E-02 -4.88618833684E-02 -5.03791694683E-02 -5.19374009141E-02
+ -5.35372350111E-02 -5.51793032612E-02 -5.68642075200E-02 -5.85925158570E-02
+ -6.03647581019E-02 -6.21814210590E-02 -6.40429433697E-02 -6.59497100039E-02
+ -6.79020463593E-02 -6.99002119477E-02 -7.19443936443E-02 -7.40346984802E-02
+ -7.61711459512E-02 -7.83536598208E-02 -8.05820593919E-02 -8.28560502212E-02
+ -8.51752142509E-02 -8.75389993313E-02 -8.99467081072E-02 -9.23974862414E-02
+ -9.48903099485E-02 -9.74239728118E-02 -9.99970718567E-02 -1.02607992854E-01
+ -1.05254894832E-01 -1.07935693759E-01 -1.10648045400E-01 -1.13389327294E-01
+ -1.16156619855E-01 -1.18946686578E-01 -1.21755953327E-01 -1.24580486698E-01
+ -1.27415971470E-01 -1.30257687113E-01 -1.33100483390E-01 -1.35938755053E-01
+ -1.38766415654E-01 -1.41576870521E-01 -1.44362988920E-01 -1.47117075494E-01
+ -1.49830841021E-01 -1.52495372616E-01 -1.55101103460E-01 -1.57637782233E-01
+ -1.60094442374E-01 -1.62459371402E-01 -1.64720080514E-01 -1.66863274726E-01
+ -1.68874823900E-01 -1.70739735004E-01 -1.72442126049E-01 -1.73965202188E-01
+ -1.75291234555E-01 -1.76401542486E-01 -1.77276479858E-01 -1.77895426401E-01
+ -1.78236784908E-01 -1.78277985433E-01 -1.77995497658E-01 -1.77364852767E-01
+ -1.76360676304E-01 -1.74956733653E-01 -1.73125989907E-01 -1.70840686090E-01
+ -1.68072433808E-01 -1.64792330566E-01 -1.60971098114E-01 -1.56579246265E-01
+ -1.51587264687E-01 -1.45965845191E-01 -1.39686136915E-01 -1.32720036702E-01
+ -1.25040516626E-01 -1.16621990227E-01 -1.07440718414E-01 -9.74752551829E-02
+ -8.67069322509E-02 -7.51203804430E-02 -6.27040840366E-02 -4.94509624136E-02
+ -3.53589711683E-02 -2.04317123640E-02 -4.67904095210E-03 1.18823484110E-02
+ 2.92283726376E-02 4.73270704625E-02 6.61381942980E-02 8.56129068774E-02
+ 1.05693604643E-01 1.26313885974E-01 1.47398674895E-01 1.68864498591E-01
+ 1.90619898696E-01 2.12565930377E-01 2.34596668599E-01 2.56599596833E-01
+ 2.78455699987E-01 3.00039022732E-01 3.21215391731E-01 3.41839946122E-01
+ 3.61753093431E-01 3.80774539197E-01 3.98695178085E-01 4.15266960813E-01
+ 4.30191485041E-01 4.43109180344E-01 4.53592836154E-01 4.61152250886E-01
+ 4.65261532792E-01 4.65427883238E-01 4.61331721093E-01 4.53084440718E-01
+ 4.41674307886E-01 4.29706325749E-01 4.20149580728E-01 4.06560081819E-01
+ 3.87925318041E-01 3.64428147917E-01 3.36334495738E-01 3.03992154042E-01
+ 2.67827944572E-01 2.28343213487E-01 1.86107639635E-01 1.41751402035E-01
+ 9.59557843007E-02 4.94423453637E-02 2.96082964105E-03 -4.27239753494E-02
+ -8.68461908559E-02 -1.28653352444E-01 -1.67421207964E-01 -2.02468565930E-01
+ -2.33171989118E-01 -2.58980189100E-01 -2.79428047781E-01 -2.94150291305E-01
+ -3.02894896328E-01 -3.05536407594E-01 -3.02089271706E-01 -2.92721288372E-01
+ -2.77766884203E-01 -2.57739627210E-01 -2.33342429629E-01 -2.05473106245E-01
+ -1.75222216998E-01 -1.43854205287E-01 -1.12771386469E-01 -8.34429420571E-02
+ -5.73001904351E-02 -3.55853015938E-02 -1.91592422738E-02 -8.28755243373E-03
+ -2.45571967787E-03 -3.21366909230E-04 -1.29038922383E-06 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ -3.43831302089E+00 2.07027587398E+01 -4.66799156870E+01 1.09759589202E+02
+ -2.89725851959E+02 4.94249596812E+02 -4.34638345209E+02 1.51369313718E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -8.28354365113E+00 6.38913453282E+00 3.82855104910E+02 -2.31321719839E+03
+ 6.38951717751E+03 -9.47474778587E+03 7.25979513910E+03 -2.25256097351E+03
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 4 5 2 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 1.06037700852E-17 8.70238834280E-17 3.01322523205E-16
+ 7.32821749113E-16 1.46862229547E-15 2.60415459338E-15 4.24376388141E-15
+ 6.50133137321E-15 9.50093355930E-15 1.33775418362E-14 1.82777647771E-14
+ 2.43606354858E-14 3.17984466130E-14 4.07776357527E-14 5.14997240901E-14
+ 6.41823113277E-14 7.90601300853E-14 9.63861631436E-14 1.16432827087E-13
+ 1.39493226096E-13 1.65882479846E-13 1.95939129686E-13 2.30026627494E-13
+ 2.68534911861E-13 3.11882076490E-13 3.60516135974E-13 4.14916894404E-13
+ 4.75597922543E-13 5.43108649621E-13 6.18036576130E-13 7.01009614365E-13
+ 7.92698563784E-13 8.93819728683E-13 1.00513768608E-12 1.12746821210E-12
+ 1.26168137564E-12 1.40870480857E-12 1.56952716216E-12 1.74520176008E-12
+ 1.93685045869E-12 2.14566772609E-12 2.37292495200E-12 2.61997500099E-12
+ 2.88825702257E-12 3.17930153210E-12 3.49473577737E-12 3.83628940658E-12
+ 4.20580045397E-12 4.60522166071E-12 5.03662714910E-12 5.50221946948E-12
+ 6.00433704014E-12 6.54546200156E-12 7.12822850751E-12 7.75543147687E-12
+ 8.43003583101E-12 9.15518624317E-12 9.93421742766E-12 1.07706649980E-11
+ 1.16682769247E-11 1.26310256259E-11 1.36631207234E-11 1.47690225024E-11
+ 1.59534561104E-11 1.72214265375E-11 1.85782344185E-11 2.00294927019E-11
+ 2.15811442322E-11 2.32394802956E-11 2.50111601789E-11 2.69032317984E-11
+ 2.89231534551E-11 3.10788167759E-11 3.33785709074E-11 3.58312480251E-11
+ 3.84461902334E-11 4.12332779270E-11 4.42029596940E-11 4.73662838436E-11
+ 5.07349316431E-11 5.43212523591E-11 5.81383001959E-11 6.21998732351E-11
+ 6.65205544818E-11 7.11157551309E-11 7.60017601718E-11 8.11957764552E-11
+ 8.67159833554E-11 9.25815861648E-11 9.88128723671E-11 1.05431270942E-10
+ 1.12459414865E-10 1.19921206965E-10 1.27841889333E-10 1.36248116457E-10
+ 1.45168032283E-10 1.54631351418E-10 1.64669444696E-10 1.75315429323E-10
+ 1.86604263865E-10 1.98572848321E-10 2.11260129559E-10 2.24707212400E-10
+ 2.38957476637E-10 2.54056700325E-10 2.70053189654E-10 2.86997915773E-10
+ 3.04944658911E-10 3.23950160203E-10 3.44074281619E-10 3.65380174422E-10
+ 3.87934456616E-10 4.11807399850E-10 4.37073126282E-10 4.63809815938E-10
+ 4.92099925106E-10 5.22030416359E-10 5.53693000817E-10 5.87184393300E-10
+ 6.22606581048E-10 6.60067106724E-10 6.99679366458E-10 7.41562923729E-10
+ 7.85843839910E-10 8.32655022368E-10 8.82136591034E-10 9.34436264428E-10
+ 9.89709766162E-10 1.04812125299E-09 1.10984376555E-09 1.17505970304E-09
+ 1.24396132293E-09 1.31675126730E-09 1.39364311692E-09 1.47486197471E-09
+ 1.56064508012E-09 1.65124245593E-09 1.74691758940E-09 1.84794814926E-09
+ 1.95462674081E-09 2.06726170078E-09 2.18617793429E-09 2.31171779601E-09
+ 2.44424201786E-09 2.58413068569E-09 2.73178426758E-09 2.88762469641E-09
+ 3.05209650953E-09 3.22566804863E-09 3.40883272289E-09 3.60211033873E-09
+ 3.80604849977E-09 4.02122408052E-09 4.24824477784E-09 4.48775074411E-09
+ 4.74041630653E-09 5.00695177696E-09 5.28810535714E-09 5.58466514429E-09
+ 5.89746124223E-09 6.22736798378E-09 6.57530627010E-09 6.94224603318E-09
+ 7.32920882794E-09 7.73727056070E-09 8.16756436126E-09 8.62128360602E-09
+ 9.09968510015E-09 9.60409242705E-09 1.01358994740E-08 1.06965741433E-08
+ 1.12876622578E-08 1.19107916733E-08 1.25676766047E-08 1.32601221821E-08
+ 1.39900292440E-08 1.47593993839E-08 1.55703402611E-08 1.64250711910E-08
+ 1.73259290281E-08 1.82753743594E-08 1.92759980210E-08 2.03305279589E-08
+ 2.14418364480E-08 2.26129476914E-08 2.38470458178E-08 2.51474832989E-08
+ 2.65177898079E-08 2.79616815434E-08 2.94830710418E-08 3.10860775051E-08
+ 3.27750376694E-08 3.45545172444E-08 3.64293229516E-08 3.84045151947E-08
+ 4.04854213940E-08 4.26776500189E-08 4.49871053573E-08 4.74200030584E-08
+ 4.99828864896E-08 5.26826439516E-08 5.55265267946E-08 5.85221684841E-08
+ 6.16776046654E-08 6.50012942792E-08 6.85021417835E-08 7.21895205386E-08
+ 7.60732974179E-08 8.01638587066E-08 8.44721373567E-08 8.90096416698E-08
+ 9.37884854805E-08 9.88214199208E-08 1.04121866847E-07 1.09703954015E-07
+ 1.15582552100E-07 1.21773313650E-07 1.28292714081E-07 1.35158094812E-07
+ 1.42387708666E-07 1.50000767639E-07 1.58017493167E-07 1.66459169032E-07
+ 1.75348197026E-07 1.84708155532E-07 1.94563861165E-07 2.04941433641E-07
+ 2.15868364036E-07 2.27373586614E-07 2.39487554414E-07 2.52242318785E-07
+ 2.65671613081E-07 2.79810940734E-07 2.94697667927E-07 3.10371121114E-07
+ 3.26872689637E-07 3.44245933704E-07 3.62536698016E-07 3.81793231323E-07
+ 4.02066312237E-07 4.23409381614E-07 4.45878681854E-07 4.69533403475E-07
+ 4.94435839355E-07 5.20651547017E-07 5.48249519406E-07 5.77302364573E-07
+ 6.07886494754E-07 6.40082325315E-07 6.73974484096E-07 7.09652031678E-07
+ 7.47208693157E-07 7.86743102015E-07 8.28359056726E-07 8.72165790762E-07
+ 9.18278256682E-07 9.66817425061E-07 1.01791059902E-06 1.07169174515E-06
+ 1.12830184177E-06 1.18788924524E-06 1.25061007554E-06 1.31662862183E-06
+ 1.38611776923E-06 1.45925944788E-06 1.53624510540E-06 1.61727620397E-06
+ 1.70256474339E-06 1.79233381137E-06 1.88681816251E-06 1.98626482755E-06
+ 2.09093375426E-06 2.20109848183E-06 2.31704685040E-06 2.43908174754E-06
+ 2.56752189364E-06 2.70270266827E-06 2.84497697956E-06 2.99471617887E-06
+ 3.15231102313E-06 3.31817268727E-06 3.49273382949E-06 3.67644971184E-06
+ 3.86979937927E-06 4.07328690005E-06 4.28744267073E-06 4.51282478903E-06
+ 4.75002049824E-06 4.99964770670E-06 5.26235658640E-06 5.53883125470E-06
+ 5.82979154360E-06 6.13599486093E-06 6.45823814840E-06 6.79735994140E-06
+ 7.15424253593E-06 7.52981426810E-06 7.92505191214E-06 8.34098320292E-06
+ 8.77868948963E-06 9.23930852715E-06 9.72403741249E-06 1.02341356736E-05
+ 1.07709285185E-05 1.13358102531E-05 1.19302478762E-05 1.25557848613E-05
+ 1.32140451341E-05 1.39067372563E-05 1.46356588268E-05 1.54027011100E-05
+ 1.62098539049E-05 1.70592106656E-05 1.79529738876E-05 1.88934607719E-05
+ 1.98831091833E-05 2.09244839166E-05 2.20202832861E-05 2.31733460568E-05
+ 2.43866587332E-05 2.56633632246E-05 2.70067649068E-05 2.84203410991E-05
+ 2.99077499792E-05 3.14728399581E-05 3.31196595379E-05 3.48524676777E-05
+ 3.66757446938E-05 3.85942037206E-05 4.06128027617E-05 4.27367573606E-05
+ 4.49715539228E-05 4.73229637222E-05 4.97970576277E-05 5.24002215840E-05
+ 5.51391728879E-05 5.80209772980E-05 6.10530670212E-05 6.42432596197E-05
+ 6.75997778861E-05 7.11312707330E-05 7.48468351510E-05 7.87560392868E-05
+ 8.28689466987E-05 8.71961418480E-05 9.17487568882E-05 9.65384998173E-05
+ 1.01577684061E-04 1.06879259556E-04 1.12456845417E-04 1.18324764247E-04
+ 1.24498078197E-04 1.30992626839E-04 1.37825066962E-04 1.45012914365E-04
+ 1.52574587763E-04 1.60529454899E-04 1.68897880976E-04 1.77701279519E-04
+ 1.86962165782E-04 1.96704212834E-04 2.06952310442E-04 2.17732626895E-04
+ 2.29072673904E-04 2.41001374730E-04 2.53549135696E-04 2.66747921232E-04
+ 2.80631332644E-04 2.95234690756E-04 3.10595122630E-04 3.26751652544E-04
+ 3.43745297427E-04 3.61619166964E-04 3.80418568587E-04 4.00191117567E-04
+ 4.20986852458E-04 4.42858356120E-04 4.65860882587E-04 4.90052490041E-04
+ 5.15494180155E-04 5.42250044107E-04 5.70387415544E-04 5.99977030809E-04
+ 6.31093196749E-04 6.63813966425E-04 6.98221323071E-04 7.34401372641E-04
+ 7.72444545323E-04 8.12445806373E-04 8.54504876670E-04 8.98726463381E-04
+ 9.45220501142E-04 9.94102404175E-04 1.04549332977E-03 1.09952045358E-03
+ 1.15631725715E-03 1.21602382819E-03 1.27878717396E-03 1.34476154845E-03
+ 1.41410879348E-03 1.48699869466E-03 1.56360935229E-03 1.64412756794E-03
+ 1.72874924717E-03 1.81767981878E-03 1.91113467121E-03 2.00933960649E-03
+ 2.11253131232E-03 2.22095785261E-03 2.33487917701E-03 2.45456764995E-03
+ 2.58030859942E-03 2.71240088601E-03 2.85115749254E-03 2.99690613457E-03
+ 3.14998989204E-03 3.31076786233E-03 3.47961583482E-03 3.65692698708E-03
+ 3.84311260271E-03 4.03860281067E-03 4.24384734607E-03 4.45931633194E-03
+ 4.68550108179E-03 4.92291492216E-03 5.17209403462E-03 5.43359831632E-03
+ 5.70801225791E-03 5.99594583759E-03 6.29803542990E-03 6.61494472716E-03
+ 6.94736567180E-03 7.29601939703E-03 7.66165717314E-03 8.04506135637E-03
+ 8.44704633680E-03 8.86845948131E-03 9.31018206716E-03 9.77313020128E-03
+ 1.02582557195E-02 1.07665470598E-02 1.12990301027E-02 1.18567689706E-02
+ 1.24408667787E-02 1.30524663277E-02 1.36927507272E-02 1.43629439408E-02
+ 1.50643112384E-02 1.57981595436E-02 1.65658376607E-02 1.73687363666E-02
+ 1.82082883487E-02 1.90859679708E-02 2.00032908456E-02 2.09618131936E-02
+ 2.19631309605E-02 2.30088786718E-02 2.41007279915E-02 2.52403859592E-02
+ 2.64295928687E-02 2.76701197565E-02 2.89637654596E-02 3.03123532048E-02
+ 3.17177266833E-02 3.31817455671E-02 3.47062804155E-02 3.62932069202E-02
+ 3.79443994327E-02 3.96617237143E-02 4.14470288443E-02 4.33021382215E-02
+ 4.52288395862E-02 4.72288739882E-02 4.93039236224E-02 5.14555984483E-02
+ 5.36854215065E-02 5.59948128403E-02 5.83850719284E-02 6.08573585271E-02
+ 6.34126718198E-02 6.60518277663E-02 6.87754345411E-02 7.15838659460E-02
+ 7.44772326800E-02 7.74553513477E-02 8.05177110836E-02 8.36634376705E-02
+ 8.68912550290E-02 9.01994439552E-02 9.35857979880E-02 9.70475762881E-02
+ 1.00581453418E-01 1.04183465922E-01 1.07848955604E-01 1.11572509439E-01
+ 1.15347896037E-01 1.19167998631E-01 1.23024744562E-01 1.26909031285E-01
+ 1.30810648951E-01 1.34718199653E-01 1.38619013516E-01 1.42499061830E-01
+ 1.46342867559E-01 1.50133413597E-01 1.53852049305E-01 1.57478395950E-01
+ 1.60990251856E-01 1.64363498214E-01 1.67572006744E-01 1.70587550593E-01
+ 1.73379720152E-01 1.75915845757E-01 1.78160929576E-01 1.80077589387E-01
+ 1.81626017319E-01 1.82763957141E-01 1.83446704108E-01 1.83627131944E-01
+ 1.83255752023E-01 1.82280810366E-01 1.80648428578E-01 1.78302795293E-01
+ 1.75186415077E-01 1.71240421981E-01 1.66404964936E-01 1.60619671990E-01
+ 1.53824199774E-01 1.45958873514E-01 1.36965421322E-01 1.26787804130E-01
+ 1.15373139536E-01 1.02672713705E-01 8.86430704096E-02 7.32471600473E-02
+ 5.64555242821E-02 3.82474837730E-02 1.86122877577E-02 -2.44982447416E-03
+ -2.49267079914E-02 -4.87936058436E-02 -7.40127166095E-02 -1.00533095232E-01
+ -1.28290931045E-01 -1.57210217192E-01 -1.87203776735E-01 -2.18174537259E-01
+ -2.50016842460E-01 -2.82617452061E-01 -3.15855710120E-01 -3.49602162961E-01
+ -3.83714701259E-01 -4.18031127943E-01 -4.52356992844E-01 -4.86447722783E-01
+ -5.19984739281E-01 -5.52546762280E-01 -5.83580425066E-01 -6.12379567416E-01
+ -6.38091493455E-01 -6.59783129149E-01 -6.76623447511E-01 -6.88275259276E-01
+ -6.95646103676E-01 -7.02234138705E-01 -7.12951329019E-01 -7.19553621541E-01
+ -7.20390118956E-01 -7.15391988573E-01 -7.04573107827E-01 -6.88032862976E-01
+ -6.65957496914E-01 -6.38619957840E-01 -6.06378162682E-01 -5.69671698008E-01
+ -5.29017002308E-01 -4.85001140557E-01 -4.38274334240E-01 -3.89541422710E-01
+ -3.39552465653E-01 -2.89092635434E-01 -2.38971498736E-01 -1.90011633611E-01
+ -1.43036338469E-01 -9.88559539886E-02 -5.82519927109E-02 -2.19580537457E-02
+ 9.36380772863E-03 3.51524947714E-02 5.49841700975E-02 6.86155625990E-02
+ 7.60330586260E-02 7.75036399229E-02 7.36203374272E-02 6.53299382935E-02
+ 5.39253587546E-02 4.09812423874E-02 2.82072510967E-02 1.72041700250E-02
+ 9.12729858762E-03 4.32144829911E-03 2.10180491118E-03 1.06251268535E-03
+ 3.72449936037E-04 5.60366361574E-05 2.53555033332E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 8.92154366754E+00 -5.60888216840E+01 1.62774961929E+02 -4.30874283196E+02
+ 9.90424535166E+02 -1.47240246879E+03 1.17593622292E+03 -3.81787751097E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -9.48558136921E+00 2.80986969497E+02 -2.66626762450E+03 1.20115185627E+04
+ -2.96045071596E+04 4.09132685364E+04 -2.97303904894E+04 8.83668225832E+03
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 4 6 2 i j (l(j))
+ 0.00000000000E+00 Q_int
+ 0.00000000000E+00 -9.61631317731E-18 -7.89199417026E-17 -2.73262408298E-16
+ -6.64579049337E-16 -1.33185950081E-15 -2.36164740754E-15 -3.84857104651E-15
+ -5.89590664931E-15 -8.61617630773E-15 -1.21317824511E-14 -1.65756809944E-14
+ -2.20920953713E-14 -2.88372737910E-14 -3.69802921837E-14 -4.67039054387E-14
+ -5.82054496796E-14 -7.16977984755E-14 -8.74103760432E-14 -1.05590230665E-13
+ -1.26503171725E-13 -1.50434973948E-13 -1.77692652632E-13 -2.08605813855E-13
+ -2.43528083884E-13 -2.82838622199E-13 -3.26943722845E-13 -3.76278509024E-13
+ -4.31308726149E-13 -4.92532638845E-13 -5.60483037685E-13 -6.35729361763E-13
+ -7.18879943548E-13 -8.10584382796E-13 -9.11536056667E-13 -1.02247477361E-12
+ -1.14418957892E-12 -1.27752172043E-12 -1.42336778306E-12 -1.58268300158E-12
+ -1.75648476151E-12 -1.94585629828E-12 -2.15195060572E-12 -2.37599456534E-12
+ -2.61929330844E-12 -2.88323482387E-12 -3.16929482494E-12 -3.47904188946E-12
+ -3.81414288804E-12 -4.17636871635E-12 -4.56760034777E-12 -4.98983522412E-12
+ -5.44519400268E-12 -5.93592767907E-12 -6.46442510622E-12 -7.03322093122E-12
+ -7.64500397245E-12 -8.30262606112E-12 -9.00911137224E-12 -9.76766627164E-12
+ -1.05816897069E-11 -1.14547841717E-11 -1.23907672745E-11 -1.33936839442E-11
+ -1.44678193077E-11 -1.56177122742E-11 -1.68481698663E-11 -1.81642823368E-11
+ -1.95714391134E-11 -2.10753456174E-11 -2.26820410015E-11 -2.43979168575E-11
+ -2.62297369450E-11 -2.81846579977E-11 -3.02702516623E-11 -3.24945276340E-11
+ -3.48659580502E-11 -3.73935032113E-11 -4.00866386993E-11 -4.29553839689E-11
+ -4.60103324905E-11 -4.92626835267E-11 -5.27242756322E-11 -5.64076219665E-11
+ -6.03259475182E-11 -6.44932283418E-11 -6.89242329156E-11 -7.36345657325E-11
+ -7.86407132444E-11 -8.39600922847E-11 -8.96111011005E-11 -9.56131731354E-11
+ -1.01986833707E-10 -1.08753759738E-10 -1.15936842691E-10 -1.23560254902E-10
+ -1.31649519459E-10 -1.40231583850E-10 -1.49334897553E-10 -1.58989493792E-10
+ -1.69227075675E-10 -1.80081106953E-10 -1.91586907634E-10 -2.03781754721E-10
+ -2.16704988339E-10 -2.30398123538E-10 -2.44904968078E-10 -2.60271746503E-10
+ -2.76547230850E-10 -2.93782878332E-10 -3.12032976372E-10 -3.31354795377E-10
+ -3.51808749660E-10 -3.73458566939E-10 -3.96371466869E-10 -4.20618349089E-10
+ -4.46273991280E-10 -4.73417257766E-10 -5.02131319220E-10 -5.32503884050E-10
+ -5.64627442097E-10 -5.98599521286E-10 -6.34522957914E-10 -6.72506181300E-10
+ -7.12663513550E-10 -7.55115485239E-10 -7.99989167849E-10 -8.47418523842E-10
+ -8.97544775306E-10 -9.50516792148E-10 -1.00649150087E-09 -1.06563431499E-09
+ -1.12811958832E-09 -1.19413109218E-09 -1.26386251794E-09 -1.33751800615E-09
+ -1.41531270367E-09 -1.49747335028E-09 -1.58423889634E-09 -1.67586115308E-09
+ -1.77260547733E-09 -1.87475149239E-09 -1.98259384704E-09 -2.09644301460E-09
+ -2.21662613432E-09 -2.34348789705E-09 -2.47739147779E-09 -2.61871951744E-09
+ -2.76787515638E-09 -2.92528312254E-09 -3.09139087695E-09 -3.26666981968E-09
+ -3.45161655938E-09 -3.64675424979E-09 -3.85263399664E-09 -4.06983633883E-09
+ -4.29897280752E-09 -4.54068756751E-09 -4.79565914501E-09 -5.06460224642E-09
+ -5.34826967291E-09 -5.64745433586E-09 -5.96299137828E-09 -6.29576040805E-09
+ -6.64668784859E-09 -7.01674941327E-09 -7.40697270997E-09 -7.81843998274E-09
+ -8.25229099754E-09 -8.70972607986E-09 -9.19200931201E-09 -9.70047189852E-09
+ -1.02365157084E-08 -1.08016170038E-08 -1.13973303641E-08 -1.20252928172E-08
+ -1.26872281864E-08 -1.33849516673E-08 -1.41203746436E-08 -1.48955097572E-08
+ -1.57124762431E-08 -1.65735055457E-08 -1.74809472295E-08 -1.84372751998E-08
+ -1.94450942503E-08 -2.05071469541E-08 -2.16263209166E-08 -2.28056564088E-08
+ -2.40483544012E-08 -2.53577850188E-08 -2.67374964402E-08 -2.81912242633E-08
+ -2.97229013615E-08 -3.13366682580E-08 -3.30368840431E-08 -3.48281378640E-08
+ -3.67152610177E-08 -3.87033396768E-08 -4.07977282831E-08 -4.30040636428E-08
+ -4.53282797603E-08 -4.77766234499E-08 -5.03556707647E-08 -5.30723442865E-08
+ -5.59339313224E-08 -5.89481030529E-08 -6.21229346844E-08 -6.54669266568E-08
+ -6.89890269611E-08 -7.26986546270E-08 -7.66057244388E-08 -8.07206729471E-08
+ -8.50544858406E-08 -8.96187267524E-08 -9.44255675731E-08 -9.94878203509E-08
+ -1.04818970862E-07 -1.10433213936E-07 -1.16345490633E-07 -1.22571527364E-07
+ -1.29127877056E-07 -1.36031962478E-07 -1.43302121824E-07 -1.50957656691E-07
+ -1.59018882557E-07 -1.67507181905E-07 -1.76445060127E-07 -1.85856204345E-07
+ -1.95765545314E-07 -2.06199322560E-07 -2.17185152925E-07 -2.28752102690E-07
+ -2.40930763483E-07 -2.53753332137E-07 -2.67253694734E-07 -2.81467515044E-07
+ -2.96432327577E-07 -3.12187635506E-07 -3.28775013704E-07 -3.46238217167E-07
+ -3.64623295104E-07 -3.83978710985E-07 -4.04355468861E-07 -4.25807246290E-07
+ -4.48390534199E-07 -4.72164784054E-07 -4.97192562726E-07 -5.23539715431E-07
+ -5.51275537192E-07 -5.80472953249E-07 -6.11208708895E-07 -6.43563569216E-07
+ -6.77622529271E-07 -7.13475035241E-07 -7.51215217115E-07 -7.90942133537E-07
+ -8.32760029427E-07 -8.76778607041E-07 -9.23113311196E-07 -9.71885629357E-07
+ -1.02322340741E-06 -1.07726118187E-06 -1.13414052951E-06 -1.19401043508E-06
+ -1.25702767838E-06 -1.32335724139E-06 -1.39317273674E-06 -1.46665685841E-06
+ -1.54400185605E-06 -1.62541003396E-06 -1.71109427611E-06 -1.80127859853E-06
+ -1.89619873052E-06 -1.99610272610E-06 -2.10125160738E-06 -2.21192004145E-06
+ -2.32839705254E-06 -2.45098677127E-06 -2.58000922296E-06 -2.71580115698E-06
+ -2.85871691934E-06 -3.00912937072E-06 -3.16743085224E-06 -3.33403420159E-06
+ -3.50937382209E-06 -3.69390680730E-06 -3.88811412422E-06 -4.09250185815E-06
+ -4.30760252217E-06 -4.53397643485E-06 -4.77221316966E-06 -5.02293307970E-06
+ -5.28678890172E-06 -5.56446744364E-06 -5.85669135972E-06 -6.16422101801E-06
+ -6.48785646492E-06 -6.82843949181E-06 -7.18685580896E-06 -7.56403733255E-06
+ -7.96096459027E-06 -8.37866925193E-06 -8.81823679147E-06 -9.28080928708E-06
+ -9.76758836660E-06 -1.02798383058E-05 -1.08188892874E-05 -1.13861408289E-05
+ -1.19830653883E-05 -1.26112121566E-05 -1.32722110470E-05 -1.39677768903E-05
+ -1.46997138484E-05 -1.54699200551E-05 -1.62803924984E-05 -1.71332321543E-05
+ -1.80306493872E-05 -1.89749696282E-05 -1.99686393484E-05 -2.10142323399E-05
+ -2.21144563212E-05 -2.32721598845E-05 -2.44903398004E-05 -2.57721487005E-05
+ -2.71209031557E-05 -2.85400921710E-05 -3.00333861178E-05 -3.16046461269E-05
+ -3.32579339641E-05 -3.49975224147E-05 -3.68279062016E-05 -3.87538134649E-05
+ -4.07802178307E-05 -4.29123511001E-05 -4.51557165891E-05 -4.75161031520E-05
+ -4.99995999248E-05 -5.26126118221E-05 -5.53618758280E-05 -5.82544781205E-05
+ -6.12978720701E-05 -6.44998971584E-05 -6.78687988614E-05 -7.14132495472E-05
+ -7.51423704382E-05 -7.90657546907E-05 -8.31934916488E-05 -8.75361923301E-05
+ -9.21050162056E-05 -9.69116993367E-05 -1.01968583938E-04 -1.07288649437E-04
+ -1.12885545101E-04 -1.18773624313E-04 -1.24967980575E-04 -1.31484485330E-04
+ -1.38339827673E-04 -1.45551556071E-04 -1.53138122169E-04 -1.61118926788E-04
+ -1.69514368228E-04 -1.78345892979E-04 -1.87636048964E-04 -1.97408541428E-04
+ -2.07688291601E-04 -2.18501498281E-04 -2.29875702452E-04 -2.41839855100E-04
+ -2.54424388373E-04 -2.67661290238E-04 -2.81584182803E-04 -2.96228404477E-04
+ -3.11631096138E-04 -3.27831291504E-04 -3.44870011892E-04 -3.62790365574E-04
+ -3.81637651931E-04 -4.01459470624E-04 -4.22305836017E-04 -4.44229297065E-04
+ -4.67285062940E-04 -4.91531134615E-04 -5.17028442691E-04 -5.43840991725E-04
+ -5.72036011346E-04 -6.01684114441E-04 -6.32859462714E-04 -6.65639939927E-04
+ -7.00107333134E-04 -7.36347522250E-04 -7.74450678270E-04 -8.14511470501E-04
+ -8.56629283157E-04 -9.00908441676E-04 -9.47458449133E-04 -9.96394233131E-04
+ -1.04783640355E-03 -1.10191152155E-03 -1.15875238024E-03 -1.21849829738E-03
+ -1.28129542057E-03 -1.34729704529E-03 -1.41666394625E-03 -1.48956472243E-03
+ -1.56617615618E-03 -1.64668358689E-03 -1.73128129949E-03 -1.82017292833E-03
+ -1.91357187664E-03 -2.01170175204E-03 -2.11479681840E-03 -2.22310246442E-03
+ -2.33687568915E-03 -2.45638560466E-03 -2.58191395627E-03 -2.71375566032E-03
+ -2.85221935964E-03 -2.99762799685E-03 -3.15031940546E-03 -3.31064691862E-03
+ -3.47897999543E-03 -3.65570486451E-03 -3.84122518450E-03 -4.03596272087E-03
+ -4.24035803866E-03 -4.45487121000E-03 -4.67998253591E-03 -4.91619328079E-03
+ -5.16402641869E-03 -5.42402738942E-03 -5.69676486298E-03 -5.98283151004E-03
+ -6.28284477617E-03 -6.59744765712E-03 -6.92730947192E-03 -7.27312663055E-03
+ -7.63562339209E-03 -8.01555260910E-03 -8.41369645316E-03 -8.83086711638E-03
+ -9.26790748259E-03 -9.72569176163E-03 -1.02051260792E-02 -1.07071490143E-02
+ -1.12327320748E-02 -1.17828801018E-02 -1.23586315911E-02 -1.29610589209E-02
+ -1.35912684713E-02 -1.42504006226E-02 -1.49396296159E-02 -1.56601632597E-02
+ -1.64132424635E-02 -1.72001405785E-02 -1.80221625242E-02 -1.88806436764E-02
+ -1.97769484923E-02 -2.07124688445E-02 -2.16886220341E-02 -2.27068484518E-02
+ -2.37686088528E-02 -2.48753812078E-02 -2.60286570914E-02 -2.72299375661E-02
+ -2.84807285164E-02 -2.97825353856E-02 -3.11368572631E-02 -3.25451802704E-02
+ -3.40089701855E-02 -3.55296642472E-02 -3.71086620746E-02 -3.87473156331E-02
+ -4.04469181785E-02 -4.22086921021E-02 -4.40337756014E-02 -4.59232080947E-02
+ -4.78779142956E-02 -4.98986868618E-02 -5.19861675274E-02 -5.41408266295E-02
+ -5.63629409337E-02 -5.86525696664E-02 -6.10095286572E-02 -6.34333624984E-02
+ -6.59233146274E-02 -6.84782952406E-02 -7.10968469521E-02 -7.37771081132E-02
+ -7.65167737182E-02 -7.93130538271E-02 -8.21626294499E-02 -8.50616058482E-02
+ -8.80054632265E-02 -9.09890048052E-02 -9.40063022896E-02 -9.70506387759E-02
+ -1.00114449167E-01 -1.03189258210E-01 -1.06265616296E-01 -1.09333033241E-01
+ -1.12379910280E-01 -1.15393470605E-01 -1.18359688832E-01 -1.21263219866E-01
+ -1.24087327712E-01 -1.26813814907E-01 -1.29422953338E-01 -1.31893417331E-01
+ -1.34202220064E-01 -1.36324654488E-01 -1.38234240104E-01 -1.39902677141E-01
+ -1.41299809881E-01 -1.42393601078E-01 -1.43150119659E-01 -1.43533544148E-01
+ -1.43506184491E-01 -1.43028525259E-01 -1.42059293465E-01 -1.40555554510E-01
+ -1.38472840066E-01 -1.35765311933E-01 -1.32385966190E-01 -1.28286882102E-01
+ -1.23419520439E-01 -1.17735075869E-01 -1.11184888079E-01 -1.03720916072E-01
+ -9.52962797240E-02 -8.58658721022E-02 -7.53870452140E-02 -6.38203706697E-02
+ -5.11304752333E-02 -3.72869492768E-02 -2.22653237542E-02 -6.04810841569E-03
+ 1.13741194009E-02 3.00015899021E-02 4.98241985961E-02 7.08203697671E-02
+ 9.29559530547E-02 1.16183184307E-01 1.40439744533E-01 1.65647951502E-01
+ 1.91714116218E-01 2.18528089875E-01 2.45963014243E-01 2.73875268164E-01
+ 3.02104573046E-01 3.30474179708E-01 3.58791007304E-01 3.86845544296E-01
+ 4.14411257417E-01 4.41243200095E-01 4.67075491045E-01 4.91617388911E-01
+ 5.14547890670E-01 5.35509244176E-01 5.54100669018E-01 5.69875204015E-01
+ 5.82345369794E-01 5.91007892511E-01 5.95405035596E-01 5.95251542621E-01
+ 5.90673875897E-01 5.82635355571E-01 5.72552865250E-01 5.57743820603E-01
+ 5.37757544859E-01 5.12705145551E-01 4.82777819772E-01 4.48247839688E-01
+ 4.09468057764E-01 3.66869890921E-01 3.20959740346E-01 2.72313892125E-01
+ 2.21571980593E-01 1.69429158663E-01 1.16627165949E-01 6.39445041306E-02
+ 1.21859384627E-02 -3.78285110080E-02 -8.52750095155E-02 -1.29337863859E-01
+ -1.69222300041E-01 -2.04168647775E-01 -2.33468844127E-01 -2.56486477746E-01
+ -2.72681832624E-01 -2.81643433746E-01 -2.83127258001E-01 -2.77103931691E-01
+ -2.63812470722E-01 -2.43816476495E-01 -2.18054551275E-01 -1.87871671907E-01
+ -1.55012938770E-01 -1.21551458975E-01 -8.97295242375E-02 -6.16830737802E-02
+ -3.90617738452E-02 -2.25985626254E-02 -1.18097709888E-02 -5.21939749134E-03
+ -1.59495068063E-03 -2.15199579762E-04 -8.90866572652E-07 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -8.09074105183E+00 5.31764320277E+01 -1.32779076327E+02 2.34867723392E+02
+ -3.86935316011E+02 5.00245552687E+02 -3.80745699664E+02 1.21439921422E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 1.41774278525E+01 -2.51111903454E+02 2.20150849314E+03 -9.79647162885E+03
+ 2.40941370262E+04 -3.32887108115E+04 2.41928473978E+04 -7.19250631659E+03
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ </PP_QFCOEF>
+ 5 5 2 i j (l(j))
+ 7.70959055788E-01 Q_int
+ 0.00000000000E+00 5.35507197107E-12 2.17880025163E-11 4.98669539265E-11
+ 9.01828612904E-11 1.43350272094E-10 2.10008215699E-10 2.90821103746E-10
+ 3.86479662567E-10 4.97701898721E-10 6.25234098820E-10 7.69851864842E-10
+ 9.32361186163E-10 1.11359954961E-09 1.31443708883E-09 1.53577777443E-09
+ 1.77856064616E-09 2.04376108879E-09 2.33239215307E-09 2.64550592342E-09
+ 2.98419493391E-09 3.34959363436E-09 3.74287990806E-09 4.16527664322E-09
+ 4.61805335975E-09 5.10252789348E-09 5.62006813970E-09 6.17209385818E-09
+ 6.76007854180E-09 7.38555135093E-09 8.05009911592E-09 8.75536841005E-09
+ 9.50306769547E-09 1.02949695445E-08 1.11329129389E-08 1.20188056505E-08
+ 1.29546267047E-08 1.39424289308E-08 1.49843416021E-08 1.60825731685E-08
+ 1.72394140846E-08 1.84572397378E-08 1.97385134779E-08 2.10857897544E-08
+ 2.25017173623E-08 2.39890428027E-08 2.55506137601E-08 2.71893827028E-08
+ 2.89084106077E-08 3.07108708168E-08 3.26000530281E-08 3.45793674260E-08
+ 3.66523489563E-08 3.88226617506E-08 4.10941037056E-08 4.34706112218E-08
+ 4.59562641085E-08 4.85552906596E-08 5.12720729072E-08 5.41111520575E-08
+ 5.70772341181E-08 6.01751957202E-08 6.34100901449E-08 6.67871535592E-08
+ 7.03118114695E-08 7.39896854008E-08 7.78265998079E-08 8.18285892280E-08
+ 8.60019056823E-08 9.03530263362E-08 9.48886614250E-08 9.96157624573E-08
+ 1.04541530703E-07 1.09673425977E-07 1.15019175728E-07 1.20586784448E-07
+ 1.26384543401E-07 1.32421040699E-07 1.38705171721E-07 1.45246149901E-07
+ 1.52053517889E-07 1.59137159094E-07 1.66507309641E-07 1.74174570731E-07
+ 1.82149921438E-07 1.90444731949E-07 1.99070777265E-07 2.08040251374E-07
+ 2.17365781923E-07 2.27060445394E-07 2.37137782810E-07 2.47611815984E-07
+ 2.58497064339E-07 2.69808562299E-07 2.81561877300E-07 2.93773128411E-07
+ 3.06459005614E-07 3.19636789742E-07 3.33324373118E-07 3.47540280905E-07
+ 3.62303693199E-07 3.77634467884E-07 3.93553164288E-07 4.10081067650E-07
+ 4.27240214443E-07 4.45053418571E-07 4.63544298476E-07 4.82737305185E-07
+ 5.02657751324E-07 5.23331841148E-07 5.44786701604E-07 5.67050414469E-07
+ 5.90152049611E-07 6.14121699392E-07 6.38990514268E-07 6.64790739627E-07
+ 6.91555753890E-07 7.19320107947E-07 7.48119565947E-07 7.77991147508E-07
+ 8.08973171383E-07 8.41105300646E-07 8.74428589434E-07 9.08985531312E-07
+ 9.44820109311E-07 9.81977847699E-07 1.02050586554E-06 1.06045293213E-06
+ 1.10186952430E-06 1.14480788575E-06 1.18932208843E-06 1.23546809603E-06
+ 1.28330382966E-06 1.33288923583E-06 1.38428635676E-06 1.43755940313E-06
+ 1.49277482934E-06 1.55000141141E-06 1.60931032750E-06 1.67077524127E-06
+ 1.73447238814E-06 1.80048066446E-06 1.86888171987E-06 1.93976005272E-06
+ 2.01320310891E-06 2.08930138408E-06 2.16814852938E-06 2.24984146080E-06
+ 2.33448047245E-06 2.42216935355E-06 2.51301550964E-06 2.60713008790E-06
+ 2.70462810676E-06 2.80562859009E-06 2.91025470597E-06 3.01863391023E-06
+ 3.13089809502E-06 3.24718374247E-06 3.36763208363E-06 3.49238926300E-06
+ 3.62160650861E-06 3.75544030813E-06 3.89405259091E-06 4.03761091643E-06
+ 4.18628866918E-06 4.34026526034E-06 4.49972633636E-06 4.66486399478E-06
+ 4.83587700752E-06 5.01297105184E-06 5.19635894931E-06 5.38626091301E-06
+ 5.58290480330E-06 5.78652639237E-06 5.99736963799E-06 6.21568696666E-06
+ 6.44173956655E-06 6.67579769057E-06 6.91814096990E-06 7.16905873834E-06
+ 7.42885036784E-06 7.69782561564E-06 7.97630498339E-06 8.26462008866E-06
+ 8.56311404926E-06 8.87214188086E-06 9.19207090831E-06 9.52328119116E-06
+ 9.86616596388E-06 1.02211320912E-05 1.05886005394E-05 1.09690068634E-05
+ 1.13628017112E-05 1.17704513455E-05 1.21924381830E-05 1.26292613529E-05
+ 1.30814372742E-05 1.35495002532E-05 1.40340031016E-05 1.45355177754E-05
+ 1.50546360368E-05 1.55919701382E-05 1.61481535297E-05 1.67238415919E-05
+ 1.73197123928E-05 1.79364674718E-05 1.85748326502E-05 1.92355588697E-05
+ 1.99194230598E-05 2.06272290356E-05 2.13598084259E-05 2.21180216335E-05
+ 2.29027588289E-05 2.37149409778E-05 2.45555209045E-05 2.54254843918E-05
+ 2.63258513184E-05 2.72576768361E-05 2.82220525874E-05 2.92201079648E-05
+ 3.02530114139E-05 3.13219717814E-05 3.24282397087E-05 3.35731090750E-05
+ 3.47579184890E-05 3.59840528322E-05 3.72529448557E-05 3.85660768319E-05
+ 3.99249822630E-05 4.13312476480E-05 4.27865143117E-05 4.42924802953E-05
+ 4.58509023130E-05 4.74635977759E-05 4.91324468854E-05 5.08593947985E-05
+ 5.26464538683E-05 5.44957059608E-05 5.64093048523E-05 5.83894787086E-05
+ 6.04385326502E-05 6.25588514051E-05 6.47529020533E-05 6.70232368661E-05
+ 6.93724962421E-05 7.18034117450E-05 7.43188092459E-05 7.69216121732E-05
+ 7.96148448748E-05 8.24016360953E-05 8.52852225735E-05 8.82689527633E-05
+ 9.13562906819E-05 9.45508198913E-05 9.78562476163E-05 1.01276409003E-04
+ 1.04815271526E-04 1.08476939543E-04 1.12265659012E-04 1.16185822363E-04
+ 1.20241973542E-04 1.24438813231E-04 1.28781204235E-04 1.33274177071E-04
+ 1.37922935733E-04 1.42732863664E-04 1.47709529933E-04 1.52858695617E-04
+ 1.58186320410E-04 1.63698569450E-04 1.69401820390E-04 1.75302670704E-04
+ 1.81407945242E-04 1.87724704052E-04 1.94260250463E-04 2.01022139442E-04
+ 2.08018186251E-04 2.15256475382E-04 2.22745369810E-04 2.30493520558E-04
+ 2.38509876590E-04 2.46803695042E-04 2.55384551801E-04 2.64262352445E-04
+ 2.73447343562E-04 2.82950124450E-04 2.92781659211E-04 3.02953289274E-04
+ 3.13476746326E-04 3.24364165694E-04 3.35628100183E-04 3.47281534381E-04
+ 3.59337899451E-04 3.71811088432E-04 3.84715472047E-04 3.98065915068E-04
+ 4.11877793214E-04 4.26167010641E-04 4.40950018015E-04 4.56243831201E-04
+ 4.72066050586E-04 4.88434881050E-04 5.05369152623E-04 5.22888341832E-04
+ 5.41012593771E-04 5.59762744920E-04 5.79160346727E-04 5.99227689994E-04
+ 6.19987830073E-04 6.41464612919E-04 6.63682702018E-04 6.86667606214E-04
+ 7.10445708474E-04 7.35044295619E-04 7.60491589045E-04 7.86816776480E-04
+ 8.14050044794E-04 8.42222613911E-04 8.71366771848E-04 9.01515910921E-04
+ 9.32704565159E-04 9.64968448956E-04 9.98344497010E-04 1.03287090558E-03
+ 1.06858717511E-03 1.10553415427E-03 1.14375408543E-03 1.18329065164E-03
+ 1.22418902517E-03 1.26649591763E-03 1.31025963170E-03 1.35553011462E-03
+ 1.40235901337E-03 1.45079973164E-03 1.50090748872E-03 1.55273938022E-03
+ 1.60635444078E-03 1.66181370884E-03 1.71918029344E-03 1.77851944320E-03
+ 1.83989861748E-03 1.90338755984E-03 1.96905837383E-03 2.03698560116E-03
+ 2.10724630239E-03 2.17992014010E-03 2.25508946475E-03 2.33283940315E-03
+ 2.41325794976E-03 2.49643606074E-03 2.58246775101E-03 2.67145019423E-03
+ 2.76348382586E-03 2.85867244936E-03 2.95712334564E-03 3.05894738582E-03
+ 3.16425914730E-03 3.27317703341E-03 3.38582339654E-03 3.50232466495E-03
+ 3.62281147322E-03 3.74741879662E-03 3.87628608926E-03 4.00955742625E-03
+ 4.14738164992E-03 4.28991252017E-03 4.43730886895E-03 4.58973475916E-03
+ 4.74735964779E-03 4.91035855359E-03 5.07891222915E-03 5.25320733766E-03
+ 5.43343663422E-03 5.61979915190E-03 5.81250039255E-03 6.01175252237E-03
+ 6.21777457240E-03 6.43079264385E-03 6.65104011834E-03 6.87875787308E-03
+ 7.11419450106E-03 7.35760653610E-03 7.60925868291E-03 7.86942405204E-03
+ 8.13838439972E-03 8.41643037257E-03 8.70386175705E-03 9.00098773357E-03
+ 9.30812713529E-03 9.62560871125E-03 9.95377139393E-03 1.02929645709E-02
+ 1.06435483603E-02 1.10058938904E-02 1.13803835822E-02 1.17674114354E-02
+ 1.21673833172E-02 1.25807172536E-02 1.30078437226E-02 1.34492059490E-02
+ 1.39052602010E-02 1.43764760857E-02 1.48633368463E-02 1.53663396577E-02
+ 1.58859959201E-02 1.64228315512E-02 1.69773872748E-02 1.75502189048E-02
+ 1.81418976247E-02 1.87530102599E-02 1.93841595427E-02 2.00359643688E-02
+ 2.07090600419E-02 2.14040985077E-02 2.21217485734E-02 2.28626961112E-02
+ 2.36276442450E-02 2.44173135166E-02 2.52324420303E-02 2.60737855723E-02
+ 2.69421177033E-02 2.78382298211E-02 2.87629311897E-02 2.97170489320E-02
+ 3.07014279829E-02 3.17169309986E-02 3.27644382178E-02 3.38448472723E-02
+ 3.49590729395E-02 3.61080468355E-02 3.72927170409E-02 3.85140476552E-02
+ 3.97730182742E-02 4.10706233836E-02 4.24078716631E-02 4.37857851942E-02
+ 4.52053985640E-02 4.66677578581E-02 4.81739195347E-02 4.97249491718E-02
+ 5.13219200777E-02 5.29659117579E-02 5.46580082270E-02 5.63992961571E-02
+ 5.81908628516E-02 6.00337940349E-02 6.19291714462E-02 6.38780702266E-02
+ 6.58815560879E-02 6.79406822520E-02 7.00564861473E-02 7.22299858519E-02
+ 7.44621762705E-02 7.67540250317E-02 7.91064680960E-02 8.15204050599E-02
+ 8.39966941466E-02 8.65361468700E-02 8.91395223629E-02 9.18075213593E-02
+ 9.45407798209E-02 9.73398622012E-02 1.00205254341E-01 1.03137355989E-01
+ 1.06136472950E-01 1.09202808856E-01 1.12336456564E-01 1.15537389189E-01
+ 1.18805450786E-01 1.22140346688E-01 1.25541633524E-01 1.29008708946E-01
+ 1.32540801095E-01 1.36136957840E-01 1.39796035852E-01 1.43516689555E-01
+ 1.47297360033E-01 1.51136263966E-01 1.55031382685E-01 1.58980451461E-01
+ 1.62980949135E-01 1.67030088234E-01 1.71124805728E-01 1.75261754598E-01
+ 1.79437296408E-01 1.83647495108E-01 1.87888112296E-01 1.92154604213E-01
+ 1.96442120759E-01 2.00745506853E-01 2.05059306480E-01 2.09377769803E-01
+ 2.13694863754E-01 2.18004286525E-01 2.22299486435E-01 2.26573685656E-01
+ 2.30819909324E-01 2.35031020553E-01 2.39199761936E-01 2.43318804073E-01
+ 2.47380801716E-01 2.51378458101E-01 2.55304598011E-01 2.59152250112E-01
+ 2.62914739054E-01 2.66585787753E-01 2.70159630226E-01 2.73631135218E-01
+ 2.76995940768E-01 2.80250599662E-01 2.83392735595E-01 2.86421209586E-01
+ 2.89336296005E-01 2.92139867217E-01 2.94835585584E-01 2.97429101182E-01
+ 2.99928253213E-01 3.02343272681E-01 3.04686983488E-01 3.06974998668E-01
+ 3.09225908054E-01 3.11461453321E-01 3.13706685991E-01 3.15990103777E-01
+ 3.18343760534E-01 3.20803345136E-01 3.23408224925E-01 3.26201449888E-01
+ 3.29229714640E-01 3.32543276535E-01 3.36195829900E-01 3.40244338509E-01
+ 3.44748830974E-01 3.49772166660E-01 3.55379782983E-01 3.61639438221E-01
+ 3.68620967074E-01 3.76396068529E-01 3.85038146574E-01 3.94622222944E-01
+ 4.05224936208E-01 4.16924631568E-01 4.29801528800E-01 4.43937929635E-01
+ 4.59418387975E-01 4.76329714149E-01 4.94760615613E-01 5.14800689699E-01
+ 5.36538379929E-01 5.60057390255E-01 5.85430932021E-01 6.12713077320E-01
+ 6.41926446738E-01 6.73045531272E-01 7.05975236923E-01 7.40524901856E-01
+ 7.76379307832E-01 8.13070447774E-01 8.49957550335E-01 8.86228878411E-01
+ 9.20948241973E-01 9.53183624528E-01 9.82277146159E-01 1.00834808476E+00
+ 1.03316853061E+00 1.06162103996E+00 1.09924591022E+00 1.13291638739E+00
+ 1.15998347805E+00 1.18004933780E+00 1.19279616026E+00 1.19799420712E+00
+ 1.19550846638E+00 1.18530376303E+00 1.16744799610E+00 1.14211337266E+00
+ 1.10957551289E+00 1.07021043357E+00 1.02448958411E+00 9.72973157915E-01
+ 9.16302200351E-01 8.55189953138E-01 7.90413217154E-01 7.22804221483E-01
+ 6.53243723576E-01 5.82655446689E-01 5.12001914574E-01 4.42280712784E-01
+ 3.74519771083E-01 3.09768898922E-01 2.49084167787E-01 1.93500572784E-01
+ 1.43988427679E-01 1.01389436432E-01 6.63311238676E-02 3.91232178490E-02
+ 1.96481988486E-02 7.27060416038E-03 8.03949291401E-04 -1.41199010966E-03
+ -1.27134757272E-03 -4.81014562491E-04 -4.69808518210E-05 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ 4.77256421594E+00 -2.83816834913E+01 7.05352022077E+01 1.23593119418E+01
+ -4.11898692511E+02 8.93043728029E+02 -8.31374660180E+02 2.94747648242E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -1.10650759471E+01 5.99986608516E+01 -7.57403210588E+01 -1.27859232941E+02
+ 6.13749568323E+02 -9.90476445743E+02 7.69093804658E+02 -2.37380392823E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 6.78750547722E+01 -1.26238445056E+03 1.00208920125E+04 -4.11283348062E+04
+ 9.49893061014E+04 -1.24709893740E+05 8.68593895368E+04 -2.49096449903E+04
+ </PP_QFCOEF>
+ 5 6 2 i j (l(j))
+ -5.25406702434E-01 Q_int
+ 0.00000000000E+00 -5.47748006232E-13 -2.22860402298E-12 -5.10068300438E-12
+ -9.22442923921E-12 -1.46627022300E-11 -2.14808656284E-11 -2.97468793336E-11
+ -3.95313948650E-11 -5.09078541227E-11 -6.39525916558E-11 -7.87449405597E-11
+ -9.53673421307E-11 -1.13905459407E-10 -1.34448294737E-10 -1.57088311507E-10
+ -1.81921560182E-10 -2.09047808807E-10 -2.38570678123E-10 -2.70597781464E-10
+ -3.05240869589E-10 -3.42615980644E-10 -3.82843595404E-10 -4.26048798012E-10
+ -4.72361442370E-10 -5.21916324415E-10 -5.74853360459E-10 -6.31317771815E-10
+ -6.91460275933E-10 -7.55437284254E-10 -8.23411107047E-10 -8.95550165435E-10
+ -9.72029210892E-10 -1.05302955245E-09 -1.13873929192E-09 -1.22935356731E-09
+ -1.32507480488E-09 -1.42611298000E-09 -1.53268588717E-09 -1.64501941952E-09
+ -1.76334785812E-09 -1.88791417144E-09 -2.01897032528E-09 -2.15677760363E-09
+ -2.30160694070E-09 -2.45373926464E-09 -2.61346585325E-09 -2.78108870219E-09
+ -2.95692090606E-09 -3.14128705277E-09 -3.33452363184E-09 -3.53697945682E-09
+ -3.74901610259E-09 -3.97100835790E-09 -4.20334469379E-09 -4.44642774826E-09
+ -4.70067482800E-09 -4.96651842760E-09 -5.24440676684E-09 -5.53480434680E-09
+ -5.83819252538E-09 -6.15507011287E-09 -6.48595398834E-09 -6.83137973749E-09
+ -7.19190231277E-09 -7.56809671655E-09 -7.96055870803E-09 -8.36990553488E-09
+ -8.79677669031E-09 -9.24183469656E-09 -9.70576591565E-09 -1.01892813884E-08
+ -1.06931177027E-08 -1.12180378920E-08 -1.17648323648E-08 -1.23343198672E-08
+ -1.29273484780E-08 -1.35447966394E-08 -1.41875742226E-08 -1.48566236316E-08
+ -1.55529209440E-08 -1.62774770927E-08 -1.70313390881E-08 -1.78155912830E-08
+ -1.86313566811E-08 -1.94797982914E-08 -2.03621205296E-08 -2.12795706680E-08
+ -2.22334403359E-08 -2.32250670721E-08 -2.42558359314E-08 -2.53271811467E-08
+ -2.64405878491E-08 -2.75975938472E-08 -2.87997914691E-08 -3.00488294671E-08
+ -3.13464149899E-08 -3.26943156218E-08 -3.40943614940E-08 -3.55484474681E-08
+ -3.70585353959E-08 -3.86266564578E-08 -4.02549135815E-08 -4.19454839453E-08
+ -4.37006215682E-08 -4.55226599893E-08 -4.74140150402E-08 -4.93771877146E-08
+ -5.14147671353E-08 -5.35294336262E-08 -5.57239618894E-08 -5.80012242927E-08
+ -6.03641942715E-08 -6.28159498479E-08 -6.53596772719E-08 -6.79986747896E-08
+ -7.07363565403E-08 -7.35762565901E-08 -7.65220331045E-08 -7.95774726654E-08
+ -8.27464947382E-08 -8.60331562927E-08 -8.94416565852E-08 -9.29763421046E-08
+ -9.66417116914E-08 -1.00442421833E-07 -1.04383292141E-07 -1.08469311022E-07
+ -1.12705641540E-07 -1.17097627487E-07 -1.21650799653E-07 -1.26370882332E-07
+ -1.31263800031E-07 -1.36335684427E-07 -1.41592881560E-07 -1.47041959271E-07
+ -1.52689714902E-07 -1.58543183264E-07 -1.64609644872E-07 -1.70896634474E-07
+ -1.77411949871E-07 -1.84163661041E-07 -1.91160119581E-07 -1.98409968473E-07
+ -2.05922152192E-07 -2.13705927157E-07 -2.21770872549E-07 -2.30126901501E-07
+ -2.38784272672E-07 -2.47753602227E-07 -2.57045876229E-07 -2.66672463451E-07
+ -2.76645128647E-07 -2.86976046267E-07 -2.97677814655E-07 -3.08763470732E-07
+ -3.20246505189E-07 -3.32140878207E-07 -3.44461035715E-07 -3.57221926217E-07
+ -3.70439018190E-07 -3.84128318095E-07 -3.98306389003E-07 -4.12990369863E-07
+ -4.28197995442E-07 -4.43947616949E-07 -4.60258223373E-07 -4.77149463558E-07
+ -4.94641669039E-07 -5.12755877672E-07 -5.31513858069E-07 -5.50938134892E-07
+ -5.71052015007E-07 -5.91879614549E-07 -6.13445886918E-07 -6.35776651745E-07
+ -6.58898624853E-07 -6.82839449260E-07 -7.07627727242E-07 -7.33293053517E-07
+ -7.59866049560E-07 -7.87378399110E-07 -8.15862884908E-07 -8.45353426689E-07
+ -8.75885120500E-07 -9.07494279365E-07 -9.40218475361E-07 -9.74096583140E-07
+ -1.00916882496E-06 -1.04547681725E-06 -1.08306361882E-06 -1.12197378071E-06
+ -1.16225339774E-06 -1.20395016189E-06 -1.24711341747E-06 -1.29179421823E-06
+ -1.33804538641E-06 -1.38592157386E-06 -1.43547932526E-06 -1.48677714350E-06
+ -1.53987555731E-06 -1.59483719130E-06 -1.65172683828E-06 -1.71061153422E-06
+ -1.77156063572E-06 -1.83464590011E-06 -1.89994156841E-06 -1.96752445109E-06
+ -2.03747401683E-06 -2.10987248424E-06 -2.18480491689E-06 -2.26235932152E-06
+ -2.34262674963E-06 -2.42570140265E-06 -2.51168074063E-06 -2.60066559480E-06
+ -2.69276028389E-06 -2.78807273455E-06 -2.88671460585E-06 -2.98880141816E-06
+ -3.09445268635E-06 -3.20379205773E-06 -3.31694745458E-06 -3.43405122175E-06
+ -3.55524027922E-06 -3.68065627998E-06 -3.81044577338E-06 -3.94476037398E-06
+ -4.08375693639E-06 -4.22759773601E-06 -4.37645065600E-06 -4.53048938078E-06
+ -4.68989359610E-06 -4.85484919604E-06 -5.02554849716E-06 -5.20219045994E-06
+ -5.38498091798E-06 -5.57413281494E-06 -5.76986644976E-06 -5.97240973027E-06
+ -6.18199843550E-06 -6.39887648704E-06 -6.62329622983E-06 -6.85551872242E-06
+ -7.09581403740E-06 -7.34446157206E-06 -7.60175036976E-06 -7.86797945241E-06
+ -8.14345816426E-06 -8.42850652766E-06 -8.72345561093E-06 -9.02864790897E-06
+ -9.34443773687E-06 -9.67119163711E-06 -1.00092888007E-05 -1.03591215030E-05
+ -1.07210955541E-05 -1.10956307648E-05 -1.14831614293E-05 -1.18841368233E-05
+ -1.22990217199E-05 -1.27282969232E-05 -1.31724598200E-05 -1.36320249507E-05
+ -1.41075245994E-05 -1.45995094046E-05 -1.51085489906E-05 -1.56352326208E-05
+ -1.61801698731E-05 -1.67439913390E-05 -1.73273493457E-05 -1.79309187038E-05
+ -1.85553974804E-05 -1.92015077986E-05 -1.98699966641E-05 -2.05616368207E-05
+ -2.12772276344E-05 -2.20175960084E-05 -2.27835973289E-05 -2.35761164433E-05
+ -2.43960686722E-05 -2.52444008556E-05 -2.61220924348E-05 -2.70301565716E-05
+ -2.79696413054E-05 -2.89416307497E-05 -2.99472463301E-05 -3.09876480632E-05
+ -3.20640358805E-05 -3.31776509965E-05 -3.43297773238E-05 -3.55217429358E-05
+ -3.67549215800E-05 -3.80307342422E-05 -3.93506507638E-05 -4.07161915144E-05
+ -4.21289291210E-05 -4.35904902556E-05 -4.51025574839E-05 -4.66668711765E-05
+ -4.82852314844E-05 -4.99595003824E-05 -5.16916037799E-05 -5.34835337051E-05
+ -5.53373505614E-05 -5.72551854608E-05 -5.92392426354E-05 -6.12918019308E-05
+ -6.34152213831E-05 -6.56119398823E-05 -6.78844799262E-05 -7.02354504656E-05
+ -7.26675498459E-05 -7.51835688467E-05 -7.77863938234E-05 -8.04790099543E-05
+ -8.32645045953E-05 -8.61460707473E-05 -8.91270106390E-05 -9.22107394288E-05
+ -9.54007890302E-05 -9.87008120640E-05 -1.02114585941E-04 -1.05646017082E-04
+ -1.09299145274E-04 -1.13078148174E-04 -1.16987345957E-04 -1.21031206123E-04
+ -1.25214348455E-04 -1.29541550145E-04 -1.34017751084E-04 -1.38648059332E-04
+ -1.43437756753E-04 -1.48392304849E-04 -1.53517350772E-04 -1.58818733537E-04
+ -1.64302490434E-04 -1.69974863644E-04 -1.75842307076E-04 -1.81911493415E-04
+ -1.88189321397E-04 -1.94682923324E-04 -2.01399672806E-04 -2.08347192761E-04
+ -2.15533363658E-04 -2.22966332028E-04 -2.30654519235E-04 -2.38606630530E-04
+ -2.46831664379E-04 -2.55338922089E-04 -2.64138017727E-04 -2.73238888344E-04
+ -2.82651804521E-04 -2.92387381226E-04 -3.02456589009E-04 -3.12870765535E-04
+ -3.23641627463E-04 -3.34781282681E-04 -3.46302242908E-04 -3.58217436663E-04
+ -3.70540222624E-04 -3.83284403373E-04 -3.96464239544E-04 -4.10094464370E-04
+ -4.24190298663E-04 -4.38767466202E-04 -4.53842209569E-04 -4.69431306422E-04
+ -4.85552086216E-04 -5.02222447393E-04 -5.19460875024E-04 -5.37286458945E-04
+ -5.55718912359E-04 -5.74778590938E-04 -5.94486512414E-04 -6.14864376684E-04
+ -6.35934586410E-04 -6.57720268144E-04 -6.80245293972E-04 -7.03534303671E-04
+ -7.27612727411E-04 -7.52506808971E-04 -7.78243629492E-04 -8.04851131771E-04
+ -8.32358145075E-04 -8.60794410499E-04 -8.90190606843E-04 -9.20578377028E-04
+ -9.51990355017E-04 -9.84460193267E-04 -1.01802259068E-03 -1.05271332104E-03
+ -1.08856926197E-03 -1.12562842430E-03 -1.16392998198E-03 -1.20351430231E-03
+ -1.24442297672E-03 -1.28669885183E-03 -1.33038606094E-03 -1.37553005585E-03
+ -1.42217763898E-03 -1.47037699576E-03 -1.52017772722E-03 -1.57163088288E-03
+ -1.62478899365E-03 -1.67970610493E-03 -1.73643780967E-03 -1.79504128151E-03
+ -1.85557530777E-03 -1.91810032233E-03 -1.98267843828E-03 -2.04937348036E-03
+ -2.11825101689E-03 -2.18937839143E-03 -2.26282475379E-03 -2.33866109047E-03
+ -2.41696025435E-03 -2.49779699362E-03 -2.58124797977E-03 -2.66739183453E-03
+ -2.75630915580E-03 -2.84808254223E-03 -2.94279661656E-03 -3.04053804751E-03
+ -3.14139557015E-03 -3.24546000460E-03 -3.35282427307E-03 -3.46358341513E-03
+ -3.57783460099E-03 -3.69567714304E-03 -3.81721250527E-03 -3.94254431089E-03
+ -4.07177834779E-03 -4.20502257232E-03 -4.34238711106E-03 -4.48398426099E-03
+ -4.62992848811E-03 -4.78033642481E-03 -4.93532686627E-03 -5.09502076630E-03
+ -5.25954123318E-03 -5.42901352600E-03 -5.60356505231E-03 -5.78332536803E-03
+ -5.96842618050E-03 -6.15900135610E-03 -6.35518693383E-03 -6.55712114657E-03
+ -6.76494445198E-03 -6.97879957550E-03 -7.19883156797E-03 -7.42518788107E-03
+ -7.65801846400E-03 -7.89747588568E-03 -8.14371548689E-03 -8.39689556771E-03
+ -8.65717761640E-03 -8.92472658631E-03 -9.19971122884E-03 -9.48230449093E-03
+ -9.77268398716E-03 -1.00710325575E-02 -1.03775389232E-02 -1.06923984549E-02
+ -1.10158140691E-02 -1.13479972695E-02 -1.16891693549E-02 -1.20395628136E-02
+ -1.23994229299E-02 -1.27690096309E-02 -1.31485996016E-02 -1.35384887045E-02
+ -1.39389947394E-02 -1.43504605851E-02 -1.47732577686E-02 -1.52077905117E-02
+ -1.56545003107E-02 -1.61138711083E-02 -1.65864351255E-02 -1.70727794251E-02
+ -1.75735532850E-02 -1.80894764681E-02 -1.86213484808E-02 -1.91700589213E-02
+ -1.97365990246E-02 -2.03220745216E-02 -2.09277199355E-02 -2.15549144484E-02
+ -2.22051994768E-02 -2.28802981058E-02 -2.35821365339E-02 -2.43128676909E-02
+ -2.50748971946E-02 -2.58709118144E-02 -2.67039106133E-02 -2.75772389391E-02
+ -2.84946254292E-02 -2.94602221887E-02 -3.04786482879E-02 -3.15550367064E-02
+ -3.26950848311E-02 -3.39051085786E-02 -3.51921001766E-02 -3.65637895864E-02
+ -3.80287094881E-02 -3.95962636740E-02 -4.12767986084E-02 -4.30816778051E-02
+ -4.50233585518E-02 -4.71154703691E-02 -4.93728944283E-02 -5.18118429684E-02
+ -5.44499375504E-02 -5.73062847548E-02 -6.04015476833E-02 -6.37580113597E-02
+ -6.73996398369E-02 -7.13521225299E-02 -7.56429069922E-02 -8.03012150617E-02
+ -8.53580390308E-02 -9.08461142476E-02 -9.67998643703E-02 -1.03255315379E-01
+ -1.10249974433E-01 -1.17822669784E-01 -1.26013348233E-01 -1.34862827113E-01
+ -1.44412498510E-01 -1.54703984425E-01 -1.65778742925E-01 -1.77677626953E-01
+ -1.90440399467E-01 -2.04105210845E-01 -2.18708047075E-01 -2.34282159842E-01
+ -2.50857492299E-01 -2.68460116447E-01 -2.87111699542E-01 -3.06829016987E-01
+ -3.27623527076E-01 -3.49501017788E-01 -3.72461326279E-01 -3.96498116462E-01
+ -4.21598677408E-01 -4.47743673649E-01 -4.74906736298E-01 -5.03053730333E-01
+ -5.32141468707E-01 -5.62115570804E-01 -5.92907087695E-01 -6.24427452617E-01
+ -6.56561285220E-01 -6.89156621189E-01 -7.22012317075E-01 -7.54862791268E-01
+ -7.87361054977E-01 -8.19062386590E-01 -8.49413341725E-01 -8.77754558370E-01
+ -9.03351721452E-01 -9.25478116820E-01 -9.43585893877E-01 -9.57623548952E-01
+ -9.68587178072E-01 -9.79436864022E-01 -9.93603179701E-01 -1.00301478076E+00
+ -1.00606766760E+00 -1.00257793992E+00 -9.92443665172E-01 -9.75650815689E-01
+ -9.52277798749E-01 -9.22498424586E-01 -8.86583089954E-01 -8.44898103397E-01
+ -7.97903116541E-01 -7.46146744532E-01 -6.90260585013E-01 -6.30951913328E-01
+ -5.68995486449E-01 -5.05224854719E-01 -4.40523652514E-01 -3.75817116929E-01
+ -3.12063922300E-01 -2.50247912018E-01 -1.91368789144E-01 -1.36430027156E-01
+ -8.64214399587E-02 -4.22930410835E-02 -4.91622437054E-03 2.49715902745E-02
+ 4.68416617423E-02 6.04677763162E-02 6.60337511981E-02 6.42402220001E-02
+ 5.63839395253E-02 4.43684553931E-02 3.05879717705E-02 1.76247493719E-02
+ 7.71907036851E-03 2.06101289520E-03 1.61952615186E-04 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ -4.88165714302E-01 2.94882582058E+00 -1.74499995970E+01 -3.01017856240E+01
+ 2.67827079921E+02 -5.62422227494E+02 5.22265563208E+02 -1.85167102686E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 8.29128084244E+00 -3.62023932037E+01 -1.08958064583E+02 1.01112121574E+03
+ -2.95885149412E+03 4.44335239308E+03 -3.41466645283E+03 1.05983702828E+03
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -5.94401803950E+01 9.64301827366E+02 -7.46541451021E+03 3.05121674503E+04
+ -7.04269345206E+04 9.24690218396E+04 -6.44192923115E+04 1.84798001792E+04
+ </PP_QFCOEF>
+ 6 6 2 i j (l(j))
+ 2.93254935545E-01 Q_int
+ 0.00000000000E+00 -1.15097776304E-12 -4.68294479190E-12 -1.07180174962E-11
+ -1.93832068945E-11 -3.08105990715E-11 -4.51375420569E-11 -6.25068393510E-11
+ -8.30669503301E-11 -1.06972197772E-10 -1.34382982750E-10 -1.65466007155E-10
+ -2.00394504110E-10 -2.39348476558E-10 -2.82514944296E-10 -3.30088199773E-10
+ -3.82270072932E-10 -4.39270205430E-10 -5.01306334562E-10 -5.68604587212E-10
+ -6.41399784207E-10 -7.19935755410E-10 -8.04465665949E-10 -8.95252353953E-10
+ -9.92568680212E-10 -1.09669789016E-09 -1.20793398863E-09 -1.32658212781E-09
+ -1.45295900884E-09 -1.58739329763E-09 -1.73022605521E-09 -1.88181118331E-09
+ -2.04251588554E-09 -2.21272114489E-09 -2.39282221788E-09 -2.58322914620E-09
+ -2.78436728623E-09 -2.99667785724E-09 -3.22061850875E-09 -3.45666390784E-09
+ -3.70530634713E-09 -3.96705637395E-09 -4.24244344166E-09 -4.53201658384E-09
+ -4.83634511196E-09 -5.15601933768E-09 -5.49165132028E-09 -5.84387564036E-09
+ -6.21335020059E-09 -6.60075705453E-09 -7.00680326433E-09 -7.43222178860E-09
+ -7.87777240118E-09 -8.34424264209E-09 -8.83244880178E-09 -9.34323693964E-09
+ -9.87748393823E-09 -1.04360985942E-08 -1.10200227476E-08 -1.16302324499E-08
+ -1.22677391739E-08 -1.29335910648E-08 -1.36288742357E-08 -1.43547141074E-08
+ -1.51122767963E-08 -1.59027705493E-08 -1.67274472292E-08 -1.75876038527E-08
+ -1.84845841804E-08 -1.94197803640E-08 -2.03946346492E-08 -2.14106411390E-08
+ -2.24693476184E-08 -2.35723574418E-08 -2.47213314869E-08 -2.59179901766E-08
+ -2.71641155707E-08 -2.84615535307E-08 -2.98122159602E-08 -3.12180831227E-08
+ -3.26812060406E-08 -3.42037089769E-08 -3.57877920040E-08 -3.74357336611E-08
+ -3.91498937045E-08 -4.09327159532E-08 -4.27867312334E-08 -4.47145604255E-08
+ -4.67189176168E-08 -4.88026133636E-08 -5.09685580670E-08 -5.32197654655E-08
+ -5.55593562492E-08 -5.79905617994E-08 -6.05167280577E-08 -6.31413195301E-08
+ -6.58679234292E-08 -6.87002539612E-08 -7.16421567605E-08 -7.46976134791E-08
+ -7.78707465348E-08 -8.11658240241E-08 -8.45872648057E-08 -8.81396437599E-08
+ -9.18276972312E-08 -9.56563286585E-08 -9.96306144017E-08 -1.03755809769E-07
+ -1.08037355255E-07 -1.12480882992E-07 -1.17092223430E-07 -1.21877412240E-07
+ -1.26842697466E-07 -1.31994546919E-07 -1.37339655827E-07 -1.42884954753E-07
+ -1.48637617787E-07 -1.54605071017E-07 -1.60795001299E-07 -1.67215365330E-07
+ -1.73874399031E-07 -1.80780627260E-07 -1.87942873857E-07 -1.95370272043E-07
+ -2.03072275170E-07 -2.11058667850E-07 -2.19339577467E-07 -2.27925486090E-07
+ -2.36827242792E-07 -2.46056076403E-07 -2.55623608697E-07 -2.65541868042E-07
+ -2.75823303519E-07 -2.86480799528E-07 -2.97527690903E-07 -3.08977778547E-07
+ -3.20845345607E-07 -3.33145174215E-07 -3.45892562800E-07 -3.59103344003E-07
+ -3.72793903208E-07 -3.86981197723E-07 -4.01682776613E-07 -4.16916801222E-07
+ -4.32702066412E-07 -4.49058022527E-07 -4.66004798120E-07 -4.83563223465E-07
+ -5.01754854885E-07 -5.20601999918E-07 -5.40127743350E-07 -5.60355974154E-07
+ -5.81311413359E-07 -6.03019642876E-07 -6.25507135326E-07 -6.48801284900E-07
+ -6.72930439279E-07 -6.97923932666E-07 -7.23812119947E-07 -7.50626412046E-07
+ -7.78399312492E-07 -8.07164455251E-07 -8.36956643870E-07 -8.67811891968E-07
+ -8.99767465124E-07 -9.32861924221E-07 -9.67135170276E-07 -1.00262849083E-06
+ -1.03938460793E-06 -1.07744772776E-06 -1.11686359204E-06 -1.15767953109E-06
+ -1.19994451886E-06 -1.24370922977E-06 -1.28902609752E-06 -1.33594937598E-06
+ -1.38453520211E-06 -1.43484166115E-06 -1.48692885396E-06 -1.54085896672E-06
+ -1.59669634309E-06 -1.65450755878E-06 -1.71436149874E-06 -1.77632943700E-06
+ -1.84048511927E-06 -1.90690484841E-06 -1.97566757280E-06 -2.04685497781E-06
+ -2.12055158040E-06 -2.19684482700E-06 -2.27582519475E-06 -2.35758629624E-06
+ -2.44222498788E-06 -2.52984148199E-06 -2.62053946277E-06 -2.71442620623E-06
+ -2.81161270436E-06 -2.91221379344E-06 -3.01634828691E-06 -3.12413911273E-06
+ -3.23571345555E-06 -3.35120290368E-06 -3.47074360130E-06 -3.59447640570E-06
+ -3.72254705014E-06 -3.85510631224E-06 -3.99231018813E-06 -4.13432007272E-06
+ -4.28130294605E-06 -4.43343156624E-06 -4.59088466889E-06 -4.75384717350E-06
+ -4.92251039699E-06 -5.09707227449E-06 -5.27773758785E-06 -5.46471820196E-06
+ -5.65823330923E-06 -5.85850968253E-06 -6.06578193678E-06 -6.28029279961E-06
+ -6.50229339133E-06 -6.73204351452E-06 -6.96981195367E-06 -7.21587678507E-06
+ -7.47052569737E-06 -7.73405632328E-06 -8.00677658258E-06 -8.28900503699E-06
+ -8.58107125731E-06 -8.88331620311E-06 -9.19609261558E-06 -9.51976542381E-06
+ -9.85471216521E-06 -1.02013234202E-05 -1.05600032621E-05 -1.09311697223E-05
+ -1.13152552714E-05 -1.17127073173E-05 -1.21239887199E-05 -1.25495783240E-05
+ -1.29899715100E-05 -1.34456807641E-05 -1.39172362678E-05 -1.44051865076E-05
+ -1.49100989060E-05 -1.54325604736E-05 -1.59731784845E-05 -1.65325811743E-05
+ -1.71114184617E-05 -1.77103626963E-05 -1.83301094303E-05 -1.89713782184E-05
+ -1.96349134439E-05 -2.03214851737E-05 -2.10318900430E-05 -2.17669521694E-05
+ -2.25275240998E-05 -2.33144877879E-05 -2.41287556076E-05 -2.49712713988E-05
+ -2.58430115507E-05 -2.67449861217E-05 -2.76782399976E-05 -2.86438540897E-05
+ -2.96429465740E-05 -3.06766741723E-05 -3.17462334784E-05 -3.28528623283E-05
+ -3.39978412182E-05 -3.51824947709E-05 -3.64081932523E-05 -3.76763541396E-05
+ -3.89884437438E-05 -4.03459788866E-05 -4.17505286354E-05 -4.32037160981E-05
+ -4.47072202773E-05 -4.62627779903E-05 -4.78721858523E-05 -4.95373023293E-05
+ -5.12600498595E-05 -5.30424170478E-05 -5.48864609350E-05 -5.67943093441E-05
+ -5.87681633068E-05 -6.08102995724E-05 -6.29230732020E-05 -6.51089202512E-05
+ -6.73703605435E-05 -6.97100005389E-05 -7.21305362983E-05 -7.46347565502E-05
+ -7.72255458606E-05 -7.99058879097E-05 -8.26788688811E-05 -8.55476809648E-05
+ -8.85156259783E-05 -9.15861191114E-05 -9.47626927963E-05 -9.80490007090E-05
+ -1.01448821906E-04 -1.04966065098E-04 -1.08604773073E-04 -1.12369127262E-04
+ -1.16263452460E-04 -1.20292221712E-04 -1.24460061350E-04 -1.28771756211E-04
+ -1.33232255027E-04 -1.37846675987E-04 -1.42620312497E-04 -1.47558639123E-04
+ -1.52667317741E-04 -1.57952203879E-04 -1.63419353285E-04 -1.69075028698E-04
+ -1.74925706861E-04 -1.80978085747E-04 -1.87239092039E-04 -1.93715888850E-04
+ -2.00415883700E-04 -2.07346736754E-04 -2.14516369332E-04 -2.21932972695E-04
+ -2.29605017126E-04 -2.37541261299E-04 -2.45750761957E-04 -2.54242883912E-04
+ -2.63027310353E-04 -2.72114053507E-04 -2.81513465632E-04 -2.91236250367E-04
+ -3.01293474451E-04 -3.11696579816E-04 -3.22457396061E-04 -3.33588153335E-04
+ -3.45101495618E-04 -3.57010494434E-04 -3.69328662989E-04 -3.82069970757E-04
+ -3.95248858526E-04 -4.08880253908E-04 -4.22979587343E-04 -4.37562808587E-04
+ -4.52646403716E-04 -4.68247412654E-04 -4.84383447234E-04 -5.01072709807E-04
+ -5.18334012424E-04 -5.36186796587E-04 -5.54651153595E-04 -5.73747845497E-04
+ -5.93498326669E-04 -6.13924766013E-04 -6.35050069826E-04 -6.56897905310E-04
+ -6.79492724776E-04 -7.02859790531E-04 -7.27025200473E-04 -7.52015914404E-04
+ -7.77859781075E-04 -8.04585565982E-04 -8.32222979906E-04 -8.60802708241E-04
+ -8.90356441090E-04 -9.20916904158E-04 -9.52517890449E-04 -9.85194292775E-04
+ -1.01898213708E-03 -1.05391861661E-03 -1.09004212688E-03 -1.12739230152E-03
+ -1.16601004895E-03 -1.20593758988E-03 -1.24721849568E-03 -1.28989772758E-03
+ -1.33402167668E-03 -1.37963820485E-03 -1.42679668641E-03 -1.47554805059E-03
+ -1.52594482485E-03 -1.57804117892E-03 -1.63189296960E-03 -1.68755778625E-03
+ -1.74509499709E-03 -1.80456579593E-03 -1.86603324976E-03 -1.92956234668E-03
+ -1.99522004445E-03 -2.06307531948E-03 -2.13319921612E-03 -2.20566489628E-03
+ -2.28054768929E-03 -2.35792514176E-03 -2.43787706755E-03 -2.52048559753E-03
+ -2.60583522913E-03 -2.69401287544E-03 -2.78510791384E-03 -2.87921223376E-03
+ -2.97642028362E-03 -3.07682911660E-03 -3.18053843497E-03 -3.28765063293E-03
+ -3.39827083741E-03 -3.51250694679E-03 -3.63046966707E-03 -3.75227254509E-03
+ -3.87803199866E-03 -4.00786734285E-03 -4.14190081230E-03 -4.28025757883E-03
+ -4.42306576397E-03 -4.57045644575E-03 -4.72256365923E-03 -4.87952438994E-03
+ -5.04147855969E-03 -5.20856900386E-03 -5.38094143933E-03 -5.55874442222E-03
+ -5.74212929439E-03 -5.93125011762E-03 -6.12626359445E-03 -6.32732897435E-03
+ -6.53460794395E-03 -6.74826449990E-03 -6.96846480281E-03 -7.19537701072E-03
+ -7.42917109020E-03 -7.67001860332E-03 -7.91809246835E-03 -8.17356669208E-03
+ -8.43661607132E-03 -8.70741586120E-03 -8.98614140740E-03 -9.27296773949E-03
+ -9.56806912232E-03 -9.87161856198E-03 -1.01837872628E-02 -1.05047440318E-02
+ -1.08346546257E-02 -1.11736810371E-02 -1.15219807148E-02 -1.18797057118E-02
+ -1.22470017587E-02 -1.26240072525E-02 -1.30108521586E-02 -1.34076568168E-02
+ -1.38145306446E-02 -1.42315707313E-02 -1.46588603129E-02 -1.50964671210E-02
+ -1.55444415948E-02 -1.60028149470E-02 -1.64715970729E-02 -1.69507742907E-02
+ -1.74403069019E-02 -1.79401265572E-02 -1.84501334158E-02 -1.89701930815E-02
+ -1.95001333013E-02 -2.00397404080E-02 -2.05887554904E-02 -2.11468702707E-02
+ -2.17137226685E-02 -2.22888920312E-02 -2.28718940052E-02 -2.34621750251E-02
+ -2.40591063938E-02 -2.46619779261E-02 -2.52699911253E-02 -2.58822518629E-02
+ -2.64977625267E-02 -2.71154136041E-02 -2.77339746616E-02 -2.83520846832E-02
+ -2.89682417257E-02 -2.95807918493E-02 -3.01879172766E-02 -3.07876237355E-02
+ -3.13777269354E-02 -3.19558381277E-02 -3.25193486985E-02 -3.30654137394E-02
+ -3.35909345444E-02 -3.40925399763E-02 -3.45665666500E-02 -3.50090378783E-02
+ -3.54156413270E-02 -3.57817053327E-02 -3.61021738346E-02 -3.63715798810E-02
+ -3.65840176776E-02 -3.67331131527E-02 -3.68119930252E-02 -3.68132523788E-02
+ -3.67289207593E-02 -3.65504268364E-02 -3.62685616959E-02 -3.58734408583E-02
+ -3.53544651584E-02 -3.47002806618E-02 -3.38987378458E-02 -3.29368503294E-02
+ -3.18007535075E-02 -3.04756635198E-02 -2.89458370750E-02 -2.71945327529E-02
+ -2.52039745183E-02 -2.29553183122E-02 -2.04286227219E-02 -1.76028248940E-02
+ -1.44557230195E-02 -1.09639669066E-02 -7.10305835545E-03 -2.84736325169E-03
+ 1.82986248489E-03 6.95643074553E-03 1.25611603043E-02 1.86737943446E-02
+ 2.53248934850E-02 3.25457011941E-02 4.03679783823E-02 4.88238039130E-02
+ 5.79453378225E-02 6.77645441873E-02 7.83128708669E-02 8.96208837943E-02
+ 1.01717854133E-01 1.14631297477E-01 1.28386465373E-01 1.43005790833E-01
+ 1.58508291124E-01 1.74908933059E-01 1.92217968110E-01 2.10440246983E-01
+ 2.29574525570E-01 2.49612776365E-01 2.70539521094E-01 2.92331201252E-01
+ 3.14955602712E-01 3.38371348222E-01 3.62527466341E-01 3.87363036461E-01
+ 4.12806895743E-01 4.38777374161E-01 4.65181997081E-01 4.91917060568E-01
+ 5.18866942692E-01 5.45902966375E-01 5.72881579693E-01 5.99641576431E-01
+ 6.26000057873E-01 6.51746861367E-01 6.76637292411E-01 7.00383258177E-01
+ 7.22643408444E-01 7.43013790710E-01 7.61022036643E-01 7.76130535026E-01
+ 7.87757874374E-01 7.95333722852E-01 7.98411207727E-01 7.96874117269E-01
+ 7.91295792205E-01 7.83535098750E-01 7.75845080944E-01 7.63351515756E-01
+ 7.45150124333E-01 7.21245012901E-01 6.91721598910E-01 6.56750541303E-01
+ 6.16590254435E-01 5.71587892419E-01 5.22178677977E-01 4.68883572536E-01
+ 4.12305343291E-01 3.53123188612E-01 2.92086180412E-01 2.30005837647E-01
+ 1.67748205244E-01 1.06225746847E-01 4.63892622954E-02 -1.07802537016E-02
+ -6.42802877066E-02 -1.13097111612E-01 -1.56219553126E-01 -1.92658952824E-01
+ -2.21478893332E-01 -2.41838945019E-01 -2.53056774860E-01 -2.54692064576E-01
+ -2.46653044849E-01 -2.29321433730E-01 -2.03683032679E-01 -1.71438937297E-01
+ -1.35056667055E-01 -9.76981826048E-02 -6.29564480774E-02 -3.43203408752E-02
+ -1.43519861547E-02 -3.68508069001E-03 -2.80016655144E-04 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ <PP_QFCOEF>
+ -1.02577805021E+00 7.46774929625E+00 -5.98676125926E+00 3.19251736125E+01
+ -1.76381595911E+02 3.64684629930E+02 -3.39663175539E+02 1.20653702112E+02
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ -4.44337162713E+00 2.04649142222E+01 1.38164320643E+02 -1.06377145500E+03
+ 3.06175186965E+03 -4.58758011266E+03 3.52636156684E+03 -1.09544958557E+03
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 4.53756850031E+01 -5.96273354918E+02 4.40002760736E+03 -1.78310485540E+04
+ 4.10972044537E+04 -5.39546630772E+04 3.75961816135E+04 -1.07885619176E+04
+ </PP_QFCOEF>
+ </PP_QIJ>
+</PP_NONLOCAL>
+
+
+<PP_PSWFC>
+4S 0 2.00 Wavefunction
+ 0.00000000000E+00 2.34092202191E-06 4.72185883871E-06 7.14349444750E-06
+ 9.60652453732E-06 1.21116566890E-05 1.46596105786E-05 1.72511181839E-05
+ 1.98869239949E-05 2.25677852275E-05 2.52944720413E-05 2.80677677606E-05
+ 3.08884690996E-05 3.37573863912E-05 3.66753438198E-05 3.96431796579E-05
+ 4.26617465075E-05 4.57319115443E-05 4.88545567673E-05 5.20305792519E-05
+ 5.52608914079E-05 5.85464212415E-05 6.18881126218E-05 6.52869255518E-05
+ 6.87438364449E-05 7.22598384044E-05 7.58359415097E-05 7.94731731059E-05
+ 8.31725780991E-05 8.69352192568E-05 9.07621775128E-05 9.46545522782E-05
+ 9.86134617566E-05 1.02640043266E-04 1.06735453566E-04 1.10900869187E-04
+ 1.15137486774E-04 1.19446523423E-04 1.23829217039E-04 1.28286826683E-04
+ 1.32820632941E-04 1.37431938287E-04 1.42122067460E-04 1.46892367843E-04
+ 1.51744209850E-04 1.56678987323E-04 1.61698117925E-04 1.66803043558E-04
+ 1.71995230765E-04 1.77276171163E-04 1.82647381863E-04 1.88110405908E-04
+ 1.93666812721E-04 1.99318198548E-04 2.05066186924E-04 2.10912429133E-04
+ 2.16858604687E-04 2.22906421807E-04 2.29057617914E-04 2.35313960126E-04
+ 2.41677245768E-04 2.48149302890E-04 2.54731990787E-04 2.61427200537E-04
+ 2.68236855543E-04 2.75162912088E-04 2.82207359892E-04 2.89372222687E-04
+ 2.96659558800E-04 3.04071461741E-04 3.11610060803E-04 3.19277521680E-04
+ 3.27076047084E-04 3.35007877379E-04 3.43075291225E-04 3.51280606233E-04
+ 3.59626179629E-04 3.68114408933E-04 3.76747732649E-04 3.85528630960E-04
+ 3.94459626448E-04 4.03543284813E-04 4.12782215611E-04 4.22179073007E-04
+ 4.31736556535E-04 4.41457411870E-04 4.51344431625E-04 4.61400456147E-04
+ 4.71628374334E-04 4.82031124465E-04 4.92611695047E-04 5.03373125669E-04
+ 5.14318507879E-04 5.25450986070E-04 5.36773758383E-04 5.48290077627E-04
+ 5.60003252214E-04 5.71916647108E-04 5.84033684791E-04 5.96357846249E-04
+ 6.08892671970E-04 6.21641762961E-04 6.34608781782E-04 6.47797453602E-04
+ 6.61211567264E-04 6.74854976376E-04 6.88731600419E-04 7.02845425869E-04
+ 7.17200507347E-04 7.31800968783E-04 7.46651004596E-04 7.61754880906E-04
+ 7.77116936753E-04 7.92741585348E-04 8.08633315338E-04 8.24796692099E-04
+ 8.41236359043E-04 8.57957038955E-04 8.74963535349E-04 8.92260733848E-04
+ 9.09853603585E-04 9.27747198636E-04 9.45946659468E-04 9.64457214414E-04
+ 9.83284181180E-04 1.00243296837E-03 1.02190907704E-03 1.04171810227E-03
+ 1.06186573479E-03 1.08235776260E-03 1.10320007263E-03 1.12439865246E-03
+ 1.14595959200E-03 1.16788908524E-03 1.19019343209E-03 1.21287904011E-03
+ 1.23595242640E-03 1.25942021947E-03 1.28328916111E-03 1.30756610837E-03
+ 1.33225803550E-03 1.35737203597E-03 1.38291532449E-03 1.40889523911E-03
+ 1.43531924330E-03 1.46219492810E-03 1.48953001432E-03 1.51733235473E-03
+ 1.54560993635E-03 1.57437088269E-03 1.60362345616E-03 1.63337606038E-03
+ 1.66363724260E-03 1.69441569618E-03 1.72572026311E-03 1.75755993646E-03
+ 1.78994386307E-03 1.82288134609E-03 1.85638184773E-03 1.89045499190E-03
+ 1.92511056703E-03 1.96035852887E-03 1.99620900334E-03 2.03267228944E-03
+ 2.06975886221E-03 2.10747937574E-03 2.14584466623E-03 2.18486575511E-03
+ 2.22455385219E-03 2.26492035890E-03 2.30597687155E-03 2.34773518464E-03
+ 2.39020729431E-03 2.43340540172E-03 2.47734191659E-03 2.52202946077E-03
+ 2.56748087182E-03 2.61370920677E-03 2.66072774580E-03 2.70854999609E-03
+ 2.75718969570E-03 2.80666081749E-03 2.85697757318E-03 2.90815441738E-03
+ 2.96020605178E-03 3.01314742934E-03 3.06699375863E-03 3.12176050814E-03
+ 3.17746341077E-03 3.23411846833E-03 3.29174195613E-03 3.35035042766E-03
+ 3.40996071935E-03 3.47058995538E-03 3.53225555266E-03 3.59497522574E-03
+ 3.65876699197E-03 3.72364917665E-03 3.78964041828E-03 3.85675967394E-03
+ 3.92502622470E-03 3.99445968118E-03 4.06507998919E-03 4.13690743542E-03
+ 4.20996265330E-03 4.28426662891E-03 4.35984070699E-03 4.43670659711E-03
+ 4.51488637987E-03 4.59440251324E-03 4.67527783903E-03 4.75753558942E-03
+ 4.84119939364E-03 4.92629328478E-03 5.01284170664E-03 5.10086952078E-03
+ 5.19040201365E-03 5.28146490386E-03 5.37408434953E-03 5.46828695584E-03
+ 5.56409978261E-03 5.66155035213E-03 5.76066665703E-03 5.86147716831E-03
+ 5.96401084350E-03 6.06829713500E-03 6.17436599851E-03 6.28224790165E-03
+ 6.39197383266E-03 6.50357530932E-03 6.61708438802E-03 6.73253367289E-03
+ 6.84995632521E-03 6.96938607290E-03 7.09085722020E-03 7.21440465751E-03
+ 7.34006387141E-03 7.46787095480E-03 7.59786261731E-03 7.73007619577E-03
+ 7.86454966495E-03 8.00132164846E-03 8.14043142978E-03 8.28191896359E-03
+ 8.42582488714E-03 8.57219053198E-03 8.72105793577E-03 8.87246985431E-03
+ 9.02646977386E-03 9.18310192352E-03 9.34241128798E-03 9.50444362035E-03
+ 9.66924545531E-03 9.83686412243E-03 1.00073477597E-02 1.01807453274E-02
+ 1.03571066220E-02 1.05364822906E-02 1.07189238451E-02 1.09044836774E-02
+ 1.10932150741E-02 1.12851722317E-02 1.14804102724E-02 1.16789852597E-02
+ 1.18809542143E-02 1.20863751306E-02 1.22953069935E-02 1.25078097946E-02
+ 1.27239445502E-02 1.29437733179E-02 1.31673592153E-02 1.33947664370E-02
+ 1.36260602736E-02 1.38613071305E-02 1.41005745461E-02 1.43439312120E-02
+ 1.45914469919E-02 1.48431929419E-02 1.50992413308E-02 1.53596656605E-02
+ 1.56245406873E-02 1.58939424428E-02 1.61679482560E-02 1.64466367750E-02
+ 1.67300879897E-02 1.70183832545E-02 1.73116053112E-02 1.76098383132E-02
+ 1.79131678487E-02 1.82216809656E-02 1.85354661961E-02 1.88546135818E-02
+ 1.91792146994E-02 1.95093626867E-02 1.98451522691E-02 2.01866797865E-02
+ 2.05340432204E-02 2.08873422221E-02 2.12466781407E-02 2.16121540522E-02
+ 2.19838747879E-02 2.23619469651E-02 2.27464790165E-02 2.31375812215E-02
+ 2.35353657368E-02 2.39399466285E-02 2.43514399042E-02 2.47699635458E-02
+ 2.51956375427E-02 2.56285839259E-02 2.60689268018E-02 2.65167923880E-02
+ 2.69723090480E-02 2.74356073279E-02 2.79068199926E-02 2.83860820637E-02
+ 2.88735308568E-02 2.93693060201E-02 2.98735495738E-02 3.03864059498E-02
+ 3.09080220317E-02 3.14385471963E-02 3.19781333549E-02 3.25269349961E-02
+ 3.30851092283E-02 3.36528158238E-02 3.42302172632E-02 3.48174787800E-02
+ 3.54147684071E-02 3.60222570229E-02 3.66401183985E-02 3.72685292461E-02
+ 3.79076692672E-02 3.85577212024E-02 3.92188708816E-02 3.98913072751E-02
+ 4.05752225451E-02 4.12708120984E-02 4.19782746401E-02 4.26978122274E-02
+ 4.34296303244E-02 4.41739378586E-02 4.49309472768E-02 4.57008746032E-02
+ 4.64839394972E-02 4.72803653128E-02 4.80903791586E-02 4.89142119587E-02
+ 4.97520985142E-02 5.06042775663E-02 5.14709918594E-02 5.23524882055E-02
+ 5.32490175497E-02 5.41608350362E-02 5.50882000756E-02 5.60313764124E-02
+ 5.69906321943E-02 5.79662400419E-02 5.89584771192E-02 5.99676252054E-02
+ 6.09939707672E-02 6.20378050325E-02 6.30994240645E-02 6.41791288368E-02
+ 6.52772253099E-02 6.63940245077E-02 6.75298425960E-02 6.86850009608E-02
+ 6.98598262880E-02 7.10546506441E-02 7.22698115577E-02 7.35056521011E-02
+ 7.47625209742E-02 7.60407725874E-02 7.73407671471E-02 7.86628707404E-02
+ 8.00074554219E-02 8.13748993000E-02 8.27655866248E-02 8.41799078763E-02
+ 8.56182598534E-02 8.70810457632E-02 8.85686753111E-02 9.00815647917E-02
+ 9.16201371794E-02 9.31848222204E-02 9.47760565244E-02 9.63942836567E-02
+ 9.80399542311E-02 9.97135260024E-02 1.01415463959E-01 1.03146240418E-01
+ 1.04906335113E-01 1.06696235294E-01 1.08516435815E-01 1.10367439227E-01
+ 1.12249755874E-01 1.14163903978E-01 1.16110409738E-01 1.18089807414E-01
+ 1.20102639418E-01 1.22149456405E-01 1.24230817360E-01 1.26347289679E-01
+ 1.28499449263E-01 1.30687880593E-01 1.32913176816E-01 1.35175939821E-01
+ 1.37476780321E-01 1.39816317925E-01 1.42195181210E-01 1.44614007791E-01
+ 1.47073444387E-01 1.49574146885E-01 1.52116780400E-01 1.54702019327E-01
+ 1.57330547394E-01 1.60003057709E-01 1.62720252801E-01 1.65482844654E-01
+ 1.68291554740E-01 1.71147114041E-01 1.74050263068E-01 1.77001751870E-01
+ 1.80002340037E-01 1.83052796693E-01 1.86153900487E-01 1.89306439564E-01
+ 1.92511211534E-01 1.95769023428E-01 1.99080691646E-01 2.02447041884E-01
+ 2.05868909064E-01 2.09347137230E-01 2.12882579454E-01 2.16476097701E-01
+ 2.20128562703E-01 2.23840853795E-01 2.27613858750E-01 2.31448473582E-01
+ 2.35345602335E-01 2.39306156854E-01 2.43331056525E-01 2.47421227999E-01
+ 2.51577604889E-01 2.55801127434E-01 2.60092742148E-01 2.64453401427E-01
+ 2.68884063134E-01 2.73385690144E-01 2.77959249862E-01 2.82605713698E-01
+ 2.87326056508E-01 2.92121255993E-01 2.96992292058E-01 3.01940146120E-01
+ 3.06965800381E-01 3.12070237038E-01 3.17254437454E-01 3.22519381262E-01
+ 3.27866045427E-01 3.33295403231E-01 3.38808423214E-01 3.44406068031E-01
+ 3.50089293256E-01 3.55859046098E-01 3.61716264060E-01 3.67661873497E-01
+ 3.73696788113E-01 3.79821907355E-01 3.86038114720E-01 3.92346275974E-01
+ 3.98747237266E-01 4.05241823136E-01 4.11830834420E-01 4.18515046044E-01
+ 4.25295204690E-01 4.32172026353E-01 4.39146193760E-01 4.46218353660E-01
+ 4.53389113977E-01 4.60659040817E-01 4.68028655325E-01 4.75498430391E-01
+ 4.83068787188E-01 4.90740091549E-01 4.98512650169E-01 5.06386706628E-01
+ 5.14362437225E-01 5.22439946624E-01 5.30619263306E-01 5.38900334806E-01
+ 5.47283022748E-01 5.55767097660E-01 5.64352233569E-01 5.73038002363E-01
+ 5.81823867919E-01 5.90709179996E-01 5.99693167871E-01 6.08774933737E-01
+ 6.17953445835E-01 6.27227531331E-01 6.36595868925E-01 6.46056981193E-01
+ 6.55609226664E-01 6.65250791612E-01 6.74979681590E-01 6.84793712671E-01
+ 6.94690502432E-01 7.04667460655E-01 7.14721779760E-01 7.24850424976E-01
+ 7.35050124251E-01 7.45317357907E-01 7.55648348056E-01 7.66039047784E-01
+ 7.76485130109E-01 7.86981976752E-01 7.97524666709E-01 8.08107964665E-01
+ 8.18726309273E-01 8.29373801317E-01 8.40044191797E-01 8.50730869967E-01
+ 8.61426851365E-01 8.72124765885E-01 8.82816845924E-01 8.93494914674E-01
+ 9.04150374605E-01 9.14774196204E-01 9.25356907047E-01 9.35888581266E-01
+ 9.46358829509E-01 9.56756789467E-01 9.67071117074E-01 9.77289978477E-01
+ 9.87401042895E-01 9.97391476474E-01 1.00724793727E+00 1.01695657153E+00
+ 1.02650301129E+00 1.03587237370E+00 1.04504926186E+00 1.05401776777E+00
+ 1.06276147716E+00 1.07126347674E+00 1.07950636380E+00 1.08747225851E+00
+ 1.09514281910E+00 1.10249926013E+00 1.10952237408E+00 1.11619255643E+00
+ 1.12248983464E+00 1.12839390100E+00 1.13388414982E+00 1.13893971910E+00
+ 1.14353953686E+00 1.14766237247E+00 1.15128689304E+00 1.15439172526E+00
+ 1.15695552267E+00 1.15895703868E+00 1.16037520529E+00 1.16118921782E+00
+ 1.16137862550E+00 1.16092342798E+00 1.15980417773E+00 1.15800208815E+00
+ 1.15549914715E+00 1.15227823594E+00 1.14832325252E+00 1.14361923940E+00
+ 1.13815251489E+00 1.13191080697E+00 1.12488338890E+00 1.11706121545E+00
+ 1.10843705812E+00 1.09900563814E+00 1.08876375533E+00 1.07771041092E+00
+ 1.06584692238E+00 1.05317702791E+00 1.03970697857E+00 1.02544561554E+00
+ 1.01040443075E+00 9.94597608726E-01 9.78042048692E-01 9.60757366008E-01
+ 9.42765873618E-01 9.24092545216E-01 9.04764963764E-01 8.84813261175E-01
+ 8.64270057583E-01 8.43170411573E-01 8.21551795829E-01 7.99454115492E-01
+ 7.76919788491E-01 7.53993907152E-01 7.30724496879E-01 7.07162878078E-01
+ 6.83364118088E-01 6.59387525072E-01 6.35297077609E-01 6.11161590795E-01
+ 5.87054273727E-01 5.63051085304E-01 5.39227054852E-01 5.15649448905E-01
+ 4.92373124262E-01 4.69447678066E-01 4.46919224847E-01 4.24830367171E-01
+ 4.03220128594E-01 3.82123915855E-01 3.61573501744E-01 3.41597030550E-01
+ 3.22219043271E-01 3.03460524083E-01 2.85338965031E-01 2.67868449921E-01
+ 2.51059754239E-01 2.34920461551E-01 2.19455093173E-01 2.04665251061E-01
+ 1.90549770833E-01 1.77104884437E-01 1.64324389626E-01 1.52199825480E-01
+ 1.40720651463E-01 1.29874429128E-01 1.19647004349E-01 1.10022689187E-01
+ 1.00984441676E-01 9.25140426966E-02 8.45922686248E-02 7.71990590086E-02
+ 7.03136783220E-02 6.39148711558E-02 5.79810101854E-02 5.24902363972E-02
+ 4.74205911489E-02 4.27501396700E-02 3.84570857685E-02 3.45198774813E-02
+ 3.09173035909E-02 2.76285808835E-02 2.46334322030E-02 2.19121553144E-02
+ 1.94456827508E-02 1.72156327875E-02 1.52043518231E-02 1.33949484333E-02
+ 1.17713194658E-02 1.03181685496E-02 9.02101745579E-03 7.86621077043E-03
+ 6.84091436814E-03 5.93310820373E-03 5.13157394515E-03 4.42587799364E-03
+ 3.80635042544E-03 3.26406040493E-03 2.79078859183E-03 2.37899707249E-03
+ 2.02179730630E-03 1.71291657651E-03 1.44666338848E-03 1.21789224756E-03
+ 1.02196819892E-03 8.54731493217E-04 7.12462691758E-04 5.91848500613E-04
+ 4.89948575059E-04 4.04163508452E-04 3.32204175469E-04 2.72062571714E-04
+ 2.21984252844E-04 1.80442449995E-04 1.46113905555E-04 1.17856450227E-04
+ 9.46883161331E-05 7.57691619618E-05 6.03827665316E-05 4.79213332505E-05
+ 3.78713345432E-05 2.98008162798E-05 2.33480743831E-05 1.82116112270E-05
+ 1.41412762430E-05 1.09304943773E-05 8.40948651798E-06 6.43938818152E-06
+ 4.90717588110E-06 3.72131482521E-06 2.80804643725E-06 2.10823962606E-06
+ 1.57473546258E-06 1.17012085271E-06 8.64872737658E-07 6.35820221948E-07
+ 4.64877697891E-07 3.38007444471E-07 2.44375256552E-07 1.75667374131E-07
+ 1.25541300387E-07 8.91870132714E-08 6.29785863124E-08 4.41993511543E-08
+ 3.08264732875E-08 2.13631966995E-08 1.47090689585E-08 1.00602145554E-08
+ 6.83321092361E-09 4.60736820157E-09 3.08124914185E-09 2.04011642869E-09
+ 1.33168525145E-09 8.48110149953E-10 5.12563372773E-10 2.69077836011E-10
+ 7.45332492043E-11 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+4P 1 6.00 Wavefunction
+ 0.00000000000E+00 1.97074367425E-12 8.01829898198E-12 1.83517578363E-11
+ 3.31885928686E-11 5.27549664130E-11 7.72860504875E-11 1.07026358155E-10
+ 1.42230086666E-10 1.83161472785E-10 2.30095160749E-10 2.83316583270E-10
+ 3.43122356063E-10 4.09820686359E-10 4.83731795895E-10 5.65188358890E-10
+ 6.54535955522E-10 7.52133541459E-10 8.58353933998E-10 9.73584315385E-10
+ 1.09822675393E-09 1.23269874354E-09 1.37743376228E-09 1.53288185066E-09
+ 1.69951021034E-09 1.87780382394E-09 2.06826609669E-09 2.27141952069E-09
+ 2.48780636263E-09 2.71798937561E-09 2.96255253615E-09 3.22210180703E-09
+ 3.49726592701E-09 3.78869722834E-09 4.09707248297E-09 4.42309377850E-09
+ 4.76748942490E-09 5.13101489313E-09 5.51445378659E-09 5.91861884683E-09
+ 6.34435299436E-09 6.79253040612E-09 7.26405763065E-09 7.75987474237E-09
+ 8.28095653631E-09 8.82831376471E-09 9.40299441689E-09 1.00060850440E-08
+ 1.06387121301E-08 1.13020435112E-08 1.19972898441E-08 1.27257061261E-08
+ 1.34885932689E-08 1.42872997263E-08 1.51232231796E-08 1.59978122818E-08
+ 1.69125684620E-08 1.78690477944E-08 1.88688629307E-08 1.99136851012E-08
+ 2.10052461857E-08 2.21453408558E-08 2.33358287931E-08 2.45786369838E-08
+ 2.58757620941E-08 2.72292729276E-08 2.86413129695E-08 3.01141030183E-08
+ 3.16499439099E-08 3.32512193368E-08 3.49203987646E-08 3.66600404513E-08
+ 3.84727945708E-08 4.03614064454E-08 4.23287198914E-08 4.43776806801E-08
+ 4.65113401203E-08 4.87328587648E-08 5.10455102463E-08 5.34526852461E-08
+ 5.59578956016E-08 5.85647785562E-08 6.12771011568E-08 6.40987648051E-08
+ 6.70338099656E-08 7.00864210389E-08 7.32609314030E-08 7.65618286306E-08
+ 7.99937598871E-08 8.35615375169E-08 8.72701448227E-08 9.11247420465E-08
+ 9.51306725573E-08 9.92934692548E-08 1.03618861194E-07 1.08112780442E-07
+ 1.12781369170E-07 1.17630986993E-07 1.22668218563E-07 1.27899881430E-07
+ 1.33333034169E-07 1.38974984794E-07 1.44833299460E-07 1.50915811473E-07
+ 1.57230630603E-07 1.63786152731E-07 1.70591069820E-07 1.77654380241E-07
+ 1.84985399448E-07 1.92593771030E-07 2.00489478144E-07 2.08682855342E-07
+ 2.17184600811E-07 2.26005789037E-07 2.35157883902E-07 2.44652752245E-07
+ 2.54502677883E-07 2.64720376123E-07 2.75319008776E-07 2.86312199690E-07
+ 2.97714050821E-07 3.09539158861E-07 3.21802632443E-07 3.34520109938E-07
+ 3.47707777872E-07 3.61382389977E-07 3.75561286908E-07 3.90262416633E-07
+ 4.05504355537E-07 4.21306330251E-07 4.37688240241E-07 4.54670681175E-07
+ 4.72274969097E-07 4.90523165449E-07 5.09438102937E-07 5.29043412319E-07
+ 5.49363550094E-07 5.70423827167E-07 5.92250438499E-07 6.14870493778E-07
+ 6.38312049160E-07 6.62604140103E-07 6.87776815333E-07 7.13861171991E-07
+ 7.40889391996E-07 7.68894779653E-07 7.97911800581E-07 8.27976121969E-07
+ 8.59124654234E-07 8.91395594115E-07 9.24828469262E-07 9.59464184356E-07
+ 9.95345068837E-07 1.03251492627E-06 1.07101908541E-06 1.11090445309E-06
+ 1.15221956881E-06 1.19501466139E-06 1.23934170738E-06 1.28525449170E-06
+ 1.33280867019E-06 1.38206183440E-06 1.43307357869E-06 1.48590556949E-06
+ 1.54062161709E-06 1.59728774986E-06 1.65597229100E-06 1.71674593801E-06
+ 1.77968184486E-06 1.84485570699E-06 1.91234584929E-06 1.98223331709E-06
+ 2.05460197029E-06 2.12953858076E-06 2.20713293306E-06 2.28747792874E-06
+ 2.37066969407E-06 2.45680769171E-06 2.54599483603E-06 2.63833761255E-06
+ 2.73394620144E-06 2.83293460531E-06 2.93542078139E-06 3.04152677833E-06
+ 3.15137887762E-06 3.26510774001E-06 3.38284855690E-06 3.50474120701E-06
+ 3.63093041843E-06 3.76156593624E-06 3.89680269602E-06 4.03680100319E-06
+ 4.18172671872E-06 4.33175145108E-06 4.48705275496E-06 4.64781433675E-06
+ 4.81422626717E-06 4.98648520121E-06 5.16479460566E-06 5.34936499454E-06
+ 5.54041417259E-06 5.73816748719E-06 5.94285808902E-06 6.15472720163E-06
+ 6.37402440039E-06 6.60100790102E-06 6.83594485812E-06 7.07911167394E-06
+ 7.33079431787E-06 7.59128865693E-06 7.86090079764E-06 8.13994743974E-06
+ 8.42875624207E-06 8.72766620107E-06 9.03702804243E-06 9.35720462609E-06
+ 9.68857136541E-06 1.00315166606E-05 1.03864423474E-05 1.07537641607E-05
+ 1.11339122150E-05 1.15273315003E-05 1.19344823965E-05 1.23558412043E-05
+ 1.27919006949E-05 1.32431706789E-05 1.37101785946E-05 1.41934701164E-05
+ 1.46936097846E-05 1.52111816566E-05 1.57467899807E-05 1.63010598929E-05
+ 1.68746381386E-05 1.74681938177E-05 1.80824191569E-05 1.87180303077E-05
+ 1.93757681724E-05 2.00563992580E-05 2.07607165605E-05 2.14895404788E-05
+ 2.22437197605E-05 2.30241324805E-05 2.38316870529E-05 2.46673232781E-05
+ 2.55320134263E-05 2.64267633574E-05 2.73526136806E-05 2.83106409533E-05
+ 2.93019589218E-05 3.03277198045E-05 3.13891156189E-05 3.24873795559E-05
+ 3.36237873992E-05 3.47996589959E-05 3.60163597765E-05 3.72753023271E-05
+ 3.85779480170E-05 3.99258086815E-05 4.13204483627E-05 4.27634851108E-05
+ 4.42565928472E-05 4.58015032918E-05 4.74000079569E-05 4.90539602097E-05
+ 5.07652774062E-05 5.25359430978E-05 5.43680093151E-05 5.62635989299E-05
+ 5.82249080981E-05 6.02542087877E-05 6.23538513934E-05 6.45262674414E-05
+ 6.67739723874E-05 6.90995685112E-05 7.15057479105E-05 7.39952955990E-05
+ 7.65710927095E-05 7.92361198094E-05 8.19934603287E-05 8.48463041071E-05
+ 8.77979510630E-05 9.08518149890E-05 9.40114274777E-05 9.72804419836E-05
+ 1.00662638024E-04 1.04161925526E-04 1.07782349319E-04 1.11528093791E-04
+ 1.15403487694E-04 1.19413009122E-04 1.23561290660E-04 1.27853124707E-04
+ 1.32293468986E-04 1.36887452242E-04 1.41640380133E-04 1.46557741332E-04
+ 1.51645213830E-04 1.56908671460E-04 1.62354190650E-04 1.67988057398E-04
+ 1.73816774496E-04 1.79847068999E-04 1.86085899952E-04 1.92540466381E-04
+ 1.99218215561E-04 2.06126851568E-04 2.13274344123E-04 2.20668937744E-04
+ 2.28319161209E-04 2.36233837349E-04 2.44422093168E-04 2.52893370325E-04
+ 2.61657435966E-04 2.70724393928E-04 2.80104696338E-04 2.89809155597E-04
+ 2.99848956785E-04 3.10235670493E-04 3.20981266085E-04 3.32098125431E-04
+ 3.43599057096E-04 3.55497311029E-04 3.67806593747E-04 3.80541084049E-04
+ 3.93715449254E-04 4.07344862020E-04 4.21445017713E-04 4.36032152395E-04
+ 4.51123061411E-04 4.66735118627E-04 4.82886296317E-04 4.99595185739E-04
+ 5.16881018410E-04 5.34763688117E-04 5.53263773670E-04 5.72402562449E-04
+ 5.92202074747E-04 6.12685088946E-04 6.33875167559E-04 6.55796684162E-04
+ 6.78474851241E-04 7.01935748999E-04 7.26206355145E-04 7.51314575691E-04
+ 7.77289276821E-04 8.04160317824E-04 8.31958585172E-04 8.60716027746E-04
+ 8.90465693270E-04 9.21241765987E-04 9.53079605615E-04 9.86015787630E-04
+ 1.02008814493E-03 1.05533581090E-03 1.09179926396E-03 1.12952037361E-03
+ 1.16854244805E-03 1.20891028342E-03 1.25067021471E-03 1.29387016838E-03
+ 1.33855971678E-03 1.38479013444E-03 1.43261445619E-03 1.48208753734E-03
+ 1.53326611583E-03 1.58620887650E-03 1.64097651753E-03 1.69763181915E-03
+ 1.75623971459E-03 1.81686736353E-03 1.87958422792E-03 1.94446215043E-03
+ 2.01157543548E-03 2.08100093301E-03 2.15281812509E-03 2.22710921537E-03
+ 2.30395922160E-03 2.38345607118E-03 2.46569069994E-03 2.55075715419E-03
+ 2.63875269621E-03 2.72977791321E-03 2.82393682995E-03 2.92133702504E-03
+ 3.02208975119E-03 3.12631005937E-03 3.23411692709E-03 3.34563339091E-03
+ 3.46098668335E-03 3.58030837428E-03 3.70373451697E-03 3.83140579887E-03
+ 3.96346769745E-03 4.10007064101E-03 4.24137017478E-03 4.38752713245E-03
+ 4.53870781322E-03 4.69508416464E-03 4.85683397131E-03 5.02414104970E-03
+ 5.19719544923E-03 5.37619365977E-03 5.56133882583E-03 5.75284096754E-03
+ 5.95091720869E-03 6.15579201200E-03 6.36769742178E-03 6.58687331431E-03
+ 6.81356765603E-03 7.04803676980E-03 7.29054560954E-03 7.54136804327E-03
+ 7.80078714502E-03 8.06909549564E-03 8.34659549287E-03 8.63359967089E-03
+ 8.93043102953E-03 9.23742337339E-03 9.55492166128E-03 9.88328236594E-03
+ 1.02228738446E-02 1.05740767201E-02 1.09372842742E-02 1.13129028505E-02
+ 1.17013522714E-02 1.21030662647E-02 1.25184929041E-02 1.29480950611E-02
+ 1.33923508703E-02 1.38517542066E-02 1.43268151769E-02 1.48180606238E-02
+ 1.53260346441E-02 1.58512991196E-02 1.63944342638E-02 1.69560391810E-02
+ 1.75367324404E-02 1.81371526653E-02 1.87579591361E-02 1.93998324080E-02
+ 2.00634749445E-02 2.07496117647E-02 2.14589911065E-02 2.21923851039E-02
+ 2.29505904805E-02 2.37344292564E-02 2.45447494713E-02 2.53824259217E-02
+ 2.62483609127E-02 2.71434850241E-02 2.80687578908E-02 2.90251689967E-02
+ 3.00137384816E-02 3.10355179618E-02 3.20915913621E-02 3.31830757598E-02
+ 3.43111222397E-02 3.54769167591E-02 3.66816810221E-02 3.79266733616E-02
+ 3.92131896291E-02 4.05425640893E-02 4.19161703198E-02 4.33354221131E-02
+ 4.48017743793E-02 4.63167240487E-02 4.78818109704E-02 4.94986188067E-02
+ 5.11687759185E-02 5.28939562413E-02 5.46758801471E-02 5.65163152898E-02
+ 5.84170774304E-02 6.03800312383E-02 6.24070910648E-02 6.45002216838E-02
+ 6.66614389957E-02 6.88928106886E-02 7.11964568521E-02 7.35745505375E-02
+ 7.60293182571E-02 7.85630404175E-02 8.11780516782E-02 8.38767412286E-02
+ 8.66615529738E-02 8.95349856219E-02 9.24995926620E-02 9.55579822234E-02
+ 9.87128168044E-02 1.01966812861E-01 1.05322740239E-01 1.08783421446E-01
+ 1.12351730734E-01 1.16030592993E-01 1.19822982436E-01 1.23731921047E-01
+ 1.27760476803E-01 1.31911761610E-01 1.36188928982E-01 1.40595171398E-01
+ 1.45133717351E-01 1.49807828041E-01 1.54620793711E-01 1.59575929575E-01
+ 1.64676571342E-01 1.69926070287E-01 1.75327787851E-01 1.80885089736E-01
+ 1.86601339475E-01 1.92479891428E-01 1.98524083194E-01 2.04737227387E-01
+ 2.11122602746E-01 2.17683444556E-01 2.24422934324E-01 2.31344188687E-01
+ 2.38450247516E-01 2.45744061159E-01 2.53228476809E-01 2.60906223940E-01
+ 2.68779898778E-01 2.76851947773E-01 2.85124650017E-01 2.93600098593E-01
+ 3.02280180795E-01 3.11166557202E-01 3.20260639556E-01 3.29563567421E-01
+ 3.39076183595E-01 3.48799008238E-01 3.58732211700E-01 3.68875586037E-01
+ 3.79228515186E-01 3.89789943802E-01 4.00558344756E-01 4.11531685298E-01
+ 4.22707391898E-01 4.34082313801E-01 4.45652685321E-01 4.57414086936E-01
+ 4.69361405233E-01 4.81488791809E-01 4.93789621194E-01 5.06256447948E-01
+ 5.18880963047E-01 5.31653949748E-01 5.44565239102E-01 5.57603665372E-01
+ 5.70757021580E-01 5.84012015514E-01 5.97354226512E-01 6.10768063406E-01
+ 6.24236724079E-01 6.37742157097E-01 6.51265025977E-01 6.64784676695E-01
+ 6.78279109111E-01 6.91724953053E-01 7.05097449890E-01 7.18370440493E-01
+ 7.31516360567E-01 7.44506244420E-01 7.57309738321E-01 7.69895124661E-01
+ 7.82229358222E-01 7.94278115915E-01 8.06005861369E-01 8.17375925815E-01
+ 8.28350606662E-01 8.38891285151E-01 8.48958564336E-01 8.58512428523E-01
+ 8.67512425032E-01 8.75917868842E-01 8.83688070239E-01 8.90782585029E-01
+ 8.97161486217E-01 9.02785655178E-01 9.07617089388E-01 9.11619222650E-01
+ 9.14757252444E-01 9.16998467695E-01 9.18312568835E-01 9.18671970666E-01
+ 9.18052077386E-01 9.16431518363E-01 9.13792333113E-01 9.10120094777E-01
+ 9.05403963690E-01 8.99636666751E-01 8.92814404993E-01 8.84936701465E-01
+ 8.76006214957E-01 8.66028562524E-01 8.55012215261E-01 8.42968556477E-01
+ 8.29912217247E-01 8.15861826858E-01 8.00841327037E-01 7.84881985544E-01
+ 7.68025184966E-01 7.50325921805E-01 7.31856676303E-01 7.12710824597E-01
+ 6.93003941206E-01 6.72869992491E-01 6.52447361817E-01 6.31847489671E-01
+ 6.11134674706E-01 5.90360788517E-01 5.69576073683E-01 5.48829182049E-01
+ 5.28166972609E-01 5.07634378074E-01 4.87274282722E-01 4.67127415149E-01
+ 4.47232253516E-01 4.27624946672E-01 4.08339248565E-01 3.89406468889E-01
+ 3.70855437232E-01 3.52712483120E-01 3.35001429119E-01 3.17743598762E-01
+ 3.00957836499E-01 2.84660540781E-01 2.68865707639E-01 2.53584985334E-01
+ 2.38827737693E-01 2.24601116302E-01 2.10910139537E-01 1.97757778311E-01
+ 1.85145046939E-01 1.73071098813E-01 1.61533325680E-01 1.50527460117E-01
+ 1.40047680319E-01 1.30086716739E-01 1.20635959950E-01 1.11685569209E-01
+ 1.03224581277E-01 9.52410189407E-02 8.77219988983E-02 8.06538384302E-02
+ 7.40221605719E-02 6.78119972276E-02 6.20078899490E-02 5.65939878585E-02
+ 5.15541424476E-02 4.68719987847E-02 4.25310828757E-02 3.85148847838E-02
+ 3.48069372775E-02 3.13908897006E-02 2.82505768696E-02 2.53700827927E-02
+ 2.27337990658E-02 2.03264778425E-02 1.81332792965E-02 1.61398135748E-02
+ 1.43321772285E-02 1.26969842174E-02 1.12213915462E-02 9.89311971199E-03
+ 8.70046809555E-03 7.63232554311E-03 6.67817633726E-03 5.82810185929E-03
+ 5.07277819461E-03 4.40347002234E-03 3.81202108082E-03 3.29084157160E-03
+ 2.83289281789E-03 2.43166954505E-03 2.08118010707E-03 1.77592501615E-03
+ 1.51087409140E-03 1.28144255982E-03 1.08346640375E-03 9.13177252385E-04
+ 7.67177078501E-04 6.42412954206E-04 5.36152085157E-04 4.45957328367E-04
+ 3.69663366490E-04 3.05353692995E-04 2.51338533210E-04 2.06133806101E-04
+ 1.68441205532E-04 1.37129460166E-04 1.11216808810E-04 8.98547105108E-05
+ 7.23127905196E-05 5.79650087629E-05 4.62770236098E-05 3.67947127971E-05
+ 2.91338036878E-05 2.29705577671E-05 1.80334484176E-05 1.40957671132E-05
+ 1.09690906148E-05 8.49754071750E-06 6.55276819840E-06 5.02959382799E-06
+ 3.84224136585E-06 2.92110026353E-06 2.20995914044E-06 1.66365486457E-06
+ 1.24608610167E-06 9.28544387545E-07 6.88320012417E-07 5.07544199806E-07
+ 3.72233136262E-07 2.71503305887E-07 1.96931257579E-07 1.42034352333E-07
+ 1.01852181425E-07 7.26112039175E-08 5.14577217594E-08 3.62465981765E-08
+ 2.53751412024E-08 1.76533341992E-08 1.22031174310E-08 8.38072927363E-09
+ 5.71722355967E-09 3.87321205669E-09 2.60465882337E-09 1.73719575380E-09
+ 1.14695408843E-09 7.46330726002E-10 4.73446224016E-10 2.84311198956E-10
+ 1.46909865961E-10 3.65331891377E-11 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+4D 2 1.00 Wavefunction
+ 0.00000000000E+00 1.16346032073E-18 9.54838086006E-18 3.30615240488E-17
+ 8.04062160089E-17 1.61139269808E-16 2.85731444371E-16 4.65631643642E-16
+ 7.13335071948E-16 1.04245557352E-15 1.46780239675E-15 2.00546163717E-15
+ 2.67288262707E-15 3.48896955454E-15 4.47417861050E-15 5.65062097838E-15
+ 7.04217199883E-15 8.67458685998E-15 1.05756231829E-14 1.27751708927E-14
+ 1.53053897860E-14 1.82008552304E-14 2.14987124519E-14 2.52388398944E-14
+ 2.94640221609E-14 3.42201330722E-14 3.95563294111E-14 4.55252559483E-14
+ 5.21832623808E-14 5.95906328464E-14 6.78118287154E-14 7.69157453970E-14
+ 8.69759839400E-14 9.80711382479E-14 1.10285098774E-13 1.23707373611E-13
+ 1.38433427928E-13 1.54565042787E-13 1.72210694383E-13 1.91485954857E-13
+ 2.12513915852E-13 2.35425636077E-13 2.60360614186E-13 2.87467288371E-13
+ 3.16903564128E-13 3.48837371742E-13 3.83447255121E-13 4.20922993686E-13
+ 4.61466259133E-13 5.05291308962E-13 5.52625718784E-13 6.03711155517E-13
+ 6.58804193707E-13 7.18177177301E-13 7.82119129364E-13 8.50936712338E-13
+ 9.24955241583E-13 1.00451975509E-12 1.08999614244E-12 1.18177233615E-12
+ 1.28025956888E-12 1.38589369996E-12 1.49913661512E-12 1.62047770317E-12
+ 1.75043541407E-12 1.88955890247E-12 2.03842976160E-12 2.19766385221E-12
+ 2.36791323176E-12 2.54986818919E-12 2.74425939106E-12 2.95186014494E-12
+ 3.17348878636E-12 3.41001119612E-12 3.66234345467E-12 3.93145464120E-12
+ 4.21836978501E-12 4.52417297748E-12 4.85001065303E-12 5.19709504835E-12
+ 5.56670784936E-12 5.96020403582E-12 6.37901593438E-12 6.82465749108E-12
+ 7.29872877499E-12 7.80292072549E-12 8.33902015604E-12 8.90891502824E-12
+ 9.51460001052E-12 1.01581823367E-11 1.08418879804E-11 1.15680681621E-11
+ 1.23392062064E-11 1.31579247689E-11 1.40269934507E-11 1.49493368237E-11
+ 1.59280428855E-11 1.69663719697E-11 1.80677661336E-11 1.92358590496E-11
+ 2.04744864272E-11 2.17876969935E-11 2.31797640619E-11 2.46551977196E-11
+ 2.62187576685E-11 2.78754667518E-11 2.96306252048E-11 3.14898256663E-11
+ 3.34589689932E-11 3.55442809187E-11 3.77523295995E-11 4.00900441005E-11
+ 4.25647338636E-11 4.51841092163E-11 4.79563029717E-11 5.08898931802E-11
+ 5.39939270925E-11 5.72779463983E-11 6.07520138080E-11 6.44267410487E-11
+ 6.83133183484E-11 7.24235454889E-11 7.67698645071E-11 8.13653941354E-11
+ 8.62239660702E-11 9.13601631661E-11 9.67893596572E-11 1.02527763514E-10
+ 1.08592461043E-10 1.15001463858E-10 1.21773758335E-10 1.28929357693E-10
+ 1.36489356830E-10 1.44475990067E-10 1.52912691949E-10 1.61824161265E-10
+ 1.71236428456E-10 1.81176926588E-10 1.91674566086E-10 2.02759813411E-10
+ 2.14464773908E-10 2.26823279024E-10 2.39870978142E-10 2.53645435266E-10
+ 2.68186230809E-10 2.83535068767E-10 2.99735889542E-10 3.16834988727E-10
+ 3.34881142162E-10 3.53925737585E-10 3.74022913230E-10 3.95229703743E-10
+ 4.17606193783E-10 4.41215679731E-10 4.66124839921E-10 4.92403913846E-10
+ 5.20126890805E-10 5.49371708494E-10 5.80220462061E-10 6.12759624166E-10
+ 6.47080276639E-10 6.83278354327E-10 7.21454901792E-10 7.61716343512E-10
+ 8.04174768300E-10 8.48948228707E-10 8.96161056158E-10 9.45944192680E-10
+ 9.98435540079E-10 1.05378032747E-09 1.11213149816E-09 1.17365011681E-09
+ 1.23850579812E-09 1.30687715789E-09 1.37895228795E-09 1.45492925591E-09
+ 1.53501663126E-09 1.61943403906E-09 1.70841274275E-09 1.80219625757E-09
+ 1.90104099614E-09 2.00521694800E-09 2.11500839483E-09 2.23071466321E-09
+ 2.35265091682E-09 2.48114899039E-09 2.61655826724E-09 2.75924660298E-09
+ 2.90960129765E-09 3.06803011886E-09 3.23496237860E-09 3.41085006656E-09
+ 3.59616904288E-09 3.79142029345E-09 3.99713125102E-09 4.21385718566E-09
+ 4.44218266805E-09 4.68272310950E-09 4.93612638273E-09 5.20307452760E-09
+ 5.48428554622E-09 5.78051529216E-09 6.09255945868E-09 6.42125567113E-09
+ 6.76748568895E-09 7.13217772312E-09 7.51630887494E-09 7.92090770264E-09
+ 8.34705692233E-09 8.79589625055E-09 9.26862539558E-09 9.76650720546E-09
+ 1.02908709809E-08 1.08431159615E-08 1.14247149947E-08 1.20372183969E-08
+ 1.26822580162E-08 1.33615515084E-08 1.40769068369E-08 1.48302270072E-08
+ 1.56235150505E-08 1.64588792668E-08 1.73385387441E-08 1.82648291641E-08
+ 1.92402089141E-08 2.02672655169E-08 2.13487223983E-08 2.24874460077E-08
+ 2.36864533119E-08 2.49489196811E-08 2.62781871864E-08 2.76777733324E-08
+ 2.91513802460E-08 3.07029043458E-08 3.23364465178E-08 3.40563228223E-08
+ 3.58670757613E-08 3.77734861353E-08 3.97805855196E-08 4.18936693931E-08
+ 4.41183109539E-08 4.64603756567E-08 4.89260365105E-08 5.15217901761E-08
+ 5.42544739051E-08 5.71312833639E-08 6.01597913903E-08 6.33479677297E-08
+ 6.67041998033E-08 7.02373145615E-08 7.39566014798E-08 7.78718367559E-08
+ 8.19933087720E-08 8.63318448874E-08 9.08988396310E-08 9.57062843671E-08
+ 1.00766798512E-07 1.06093662378E-07 1.11700851743E-07 1.17603074212E-07
+ 1.23815807489E-07 1.30355339648E-07 1.37238811501E-07 1.44484261184E-07
+ 1.52110671073E-07 1.60138017148E-07 1.68587320934E-07 1.77480704163E-07
+ 1.86841446280E-07 1.96694044958E-07 2.07064279777E-07 2.17979279222E-07
+ 2.29467591184E-07 2.41559257137E-07 2.54285890201E-07 2.67680757264E-07
+ 2.81778865409E-07 2.96617052839E-07 3.12234084561E-07 3.28670753060E-07
+ 3.45969984227E-07 3.64176948825E-07 3.83339179767E-07 4.03506695519E-07
+ 4.24732129946E-07 4.47070868931E-07 4.70581194136E-07 4.95324434253E-07
+ 5.21365124162E-07 5.48771172388E-07 5.77614037302E-07 6.07968912516E-07
+ 6.39914921954E-07 6.73535325102E-07 7.08917732974E-07 7.46154335340E-07
+ 7.85342139815E-07 8.26583223424E-07 8.69984997294E-07 9.15660485152E-07
+ 9.63728616354E-07 1.01431453421E-06 1.06754992038E-06 1.12357333620E-06
+ 1.18253058182E-06 1.24457507407E-06 1.30986824403E-06 1.37857995533E-06
+ 1.45088894431E-06 1.52698328309E-06 1.60706086677E-06 1.69132992614E-06
+ 1.78000956700E-06 1.87333033769E-06 1.97153482619E-06 2.07487828832E-06
+ 2.18362930872E-06 2.29807049634E-06 2.41849921605E-06 2.54522835855E-06
+ 2.67858715029E-06 2.81892200567E-06 2.96659742363E-06 3.12199693097E-06
+ 3.28552407485E-06 3.45760346699E-06 3.63868188227E-06 3.82922941459E-06
+ 4.02974069297E-06 4.24073616095E-06 4.46276342267E-06 4.69639865909E-06
+ 4.94224811793E-06 5.20094968122E-06 5.47317451448E-06 5.75962880182E-06
+ 6.06105557132E-06 6.37823661548E-06 6.71199451165E-06 7.06319474759E-06
+ 7.43274795776E-06 7.82161227585E-06 8.23079580988E-06 8.66135924599E-06
+ 9.11441858775E-06 9.59114803794E-06 1.00927830302E-05 1.06206234186E-05
+ 1.11760368324E-05 1.17604622065E-05 1.23754134939E-05 1.30224835723E-05
+ 1.37033483533E-05 1.44197711052E-05 1.51736070004E-05 1.59668078992E-05
+ 1.68014273817E-05 1.76796260418E-05 1.86036770549E-05 1.95759720361E-05
+ 2.05990272014E-05 2.16754898491E-05 2.28081451776E-05 2.39999234565E-05
+ 2.52539075704E-05 2.65733409529E-05 2.79616359329E-05 2.94223825129E-05
+ 3.09593576026E-05 3.25765347309E-05 3.42780942602E-05 3.60684341310E-05
+ 3.79521811617E-05 3.99342029333E-05 4.20196202897E-05 4.42138204840E-05
+ 4.65224710049E-05 4.89515341175E-05 5.15072821560E-05 5.41963136061E-05
+ 5.70255700183E-05 6.00023537936E-05 6.31343468877E-05 6.64296304803E-05
+ 6.98967056572E-05 7.35445151603E-05 7.73824662567E-05 8.14204547863E-05
+ 8.56688904469E-05 9.01387233804E-05 9.48414721258E-05 9.97892530099E-05
+ 1.04994811046E-04 1.10471552423E-04 1.16233578654E-04 1.22295722486E-04
+ 1.28673585643E-04 1.35383578504E-04 1.42442961816E-04 1.49869890533E-04
+ 1.57683459903E-04 1.65903753906E-04 1.74551896168E-04 1.83650103463E-04
+ 1.93221741956E-04 2.03291386294E-04 2.13884881717E-04 2.25029409317E-04
+ 2.36753554619E-04 2.49087379634E-04 2.62062498570E-04 2.75712157374E-04
+ 2.90071317300E-04 3.05176742697E-04 3.21067093229E-04 3.37783020742E-04
+ 3.55367271014E-04 3.73864790614E-04 3.93322839133E-04 4.13791107042E-04
+ 4.35321839452E-04 4.57969966063E-04 4.81793237603E-04 5.06852369071E-04
+ 5.33211190102E-04 5.60936802813E-04 5.90099747471E-04 6.20774176371E-04
+ 6.53038036299E-04 6.86973259999E-04 7.22665967064E-04 7.60206674694E-04
+ 7.99690518782E-04 8.41217485811E-04 8.84892656067E-04 9.30826458685E-04
+ 9.79134939071E-04 1.02994003928E-03 1.08336989191E-03 1.13955912819E-03
+ 1.19864920078E-03 1.26078872210E-03 1.32613381871E-03 1.39484850263E-03
+ 1.46710506018E-03 1.54308445916E-03 1.62297677525E-03 1.70698163832E-03
+ 1.79530869958E-03 1.88817812041E-03 1.98582108384E-03 2.08848032946E-03
+ 2.19641071300E-03 2.30987979125E-03 2.42916843358E-03 2.55457146105E-03
+ 2.68639831404E-03 2.82497374984E-03 2.97063857090E-03 3.12375038528E-03
+ 3.28468440025E-03 3.45383425033E-03 3.63161286095E-03 3.81845334904E-03
+ 4.01480996175E-03 4.22115905455E-03 4.43800011010E-03 4.66585679902E-03
+ 4.90527808399E-03 5.15683936844E-03 5.42114369100E-03 5.69882296713E-03
+ 5.99053927908E-03 6.29698621549E-03 6.61889026164E-03 6.95701224178E-03
+ 7.31214881432E-03 7.68513402121E-03 8.07684089221E-03 8.48818310509E-03
+ 8.92011670252E-03 9.37364186624E-03 9.84980474909E-03 1.03496993653E-02
+ 1.08744695392E-02 1.14253109128E-02 1.20034730107E-02 1.26102613647E-02
+ 1.32470396937E-02 1.39152321417E-02 1.46163255701E-02 1.53518719036E-02
+ 1.61234905281E-02 1.69328707375E-02 1.77817742278E-02 1.86720376331E-02
+ 1.96055751026E-02 2.05843809114E-02 2.16105321023E-02 2.26861911512E-02
+ 2.38136086511E-02 2.49951260069E-02 2.62331781326E-02 2.75302961427E-02
+ 2.88891100274E-02 3.03123513008E-02 3.18028556097E-02 3.33635652898E-02
+ 3.49975318544E-02 3.67079184002E-02 3.84980019109E-02 4.03711754408E-02
+ 4.23309501568E-02 4.43809572152E-02 4.65249494486E-02 4.87668028355E-02
+ 5.11105177226E-02 5.35602197672E-02 5.61201605653E-02 5.87947179254E-02
+ 6.15883957480E-02 6.45058234647E-02 6.75517549873E-02 7.07310671145E-02
+ 7.40487573373E-02 7.75099409799E-02 8.11198476084E-02 8.48838166320E-02
+ 8.88072920154E-02 9.28958160159E-02 9.71550218477E-02 1.01590625172E-01
+ 1.06208414296E-01 1.11014238966E-01 1.16013997614E-01 1.21213622922E-01
+ 1.26619065541E-01 1.32236275812E-01 1.38071183295E-01 1.44129673925E-01
+ 1.50417564588E-01 1.56940574902E-01 1.63704295976E-01 1.70714155902E-01
+ 1.77975381749E-01 1.85492957786E-01 1.93271579704E-01 2.01315604558E-01
+ 2.09628996206E-01 2.18215266009E-01 2.27077408595E-01 2.36217832514E-01
+ 2.45638285693E-01 2.55339775632E-01 2.65322484398E-01 2.75585678583E-01
+ 2.86127614524E-01 2.96945439262E-01 3.08035087912E-01 3.19391178365E-01
+ 3.31006904514E-01 3.42873929503E-01 3.54982280869E-01 3.67320249817E-01
+ 3.79874297274E-01 3.92628969825E-01 4.05566829009E-01 4.18668397902E-01
+ 4.31912129219E-01 4.45274399439E-01 4.58729533525E-01 4.72249864720E-01
+ 4.85805833479E-01 4.99366128836E-01 5.12897874223E-01 5.26366858002E-01
+ 5.39737806404E-01 5.52974693405E-01 5.66041077942E-01 5.78900454051E-01
+ 5.91516593863E-01 6.03853857292E-01 6.15877435958E-01 6.27553493158E-01
+ 6.38849157417E-01 6.49732325718E-01 6.60171235866E-01 6.70133777876E-01
+ 6.79586534931E-01 6.88493578710E-01 6.96815095393E-01 7.04505990712E-01
+ 7.11514716669E-01 7.17782677167E-01 7.23244696295E-01 7.27831150638E-01
+ 7.31472434991E-01 7.34106375221E-01 7.35688896700E-01 7.36207493947E-01
+ 7.35695495081E-01 7.34242253189E-01 7.31989425282E-01 7.29095197872E-01
+ 7.25650857949E-01 7.21675182680E-01 7.17180642534E-01 7.12180423784E-01
+ 7.06688417371E-01 7.00719171453E-01 6.94287840124E-01 6.87410131498E-01
+ 6.80102252325E-01 6.72380853030E-01 6.64262970065E-01 6.55765969976E-01
+ 6.46907491932E-01 6.37705393399E-01 6.28177695636E-01 6.18342533724E-01
+ 6.08218107760E-01 5.97822639692E-01 5.87174332395E-01 5.76291334980E-01
+ 5.65191710948E-01 5.53893412504E-01 5.42414257756E-01 5.30771913336E-01
+ 5.18983879403E-01 5.07067478836E-01 4.95039847939E-01 4.82917929825E-01
+ 4.70718468299E-01 4.58458002914E-01 4.46152863591E-01 4.33819165094E-01
+ 4.21472800360E-01 4.09129432709E-01 3.96804486484E-01 3.84513135962E-01
+ 3.72270292553E-01 3.60090590022E-01 3.47988368089E-01 3.35977654081E-01
+ 3.24072143247E-01 3.12285177359E-01 3.00629722359E-01 2.89118344706E-01
+ 2.77763187190E-01 2.66575943964E-01 2.55567835488E-01 2.44749583258E-01
+ 2.34131384904E-01 2.23722889662E-01 2.13533174658E-01 2.03570722161E-01
+ 1.93843398075E-01 1.84358431973E-01 1.75122398788E-01 1.66141202581E-01
+ 1.57420062340E-01 1.48963500356E-01 1.40775332973E-01 1.32858664321E-01
+ 1.25215882720E-01 1.17848660393E-01 1.10757956062E-01 1.03944021067E-01
+ 9.74064085022E-02 9.11439859405E-02 8.51549512105E-02 7.94368516942E-02
+ 7.39866065687E-02 6.88005323648E-02 6.38743712324E-02 5.92033221691E-02
+ 5.47820745911E-02 5.06048443826E-02 4.66654118037E-02 4.29571612826E-02
+ 3.94731224863E-02 3.62060126010E-02 3.31482792445E-02 3.02921438676E-02
+ 2.76296451117E-02 2.51526819295E-02 2.28530559912E-02 2.07225131637E-02
+ 1.87527836495E-02 1.69356205788E-02 1.52628367137E-02 1.37263390875E-02
+ 1.23181613164E-02 1.10304934497E-02 9.85570917936E-03 8.78639032906E-03
+ 7.81534852404E-03 6.93564402140E-03 6.14060167900E-03 5.42382409984E-03
+ 4.77920199848E-03 4.20092187947E-03 3.68347113062E-03 3.22164066554E-03
+ 2.81052526170E-03 2.44552176148E-03 2.12232531220E-03 1.83692383336E-03
+ 1.58559090302E-03 1.36487726009E-03 1.17160111791E-03 1.00283748292E-03
+ 8.55906666616E-04 7.28362171933E-04 6.17978126165E-04 5.22736421911E-04
+ 4.40813715561E-04 3.70568420102E-04 3.10527815434E-04 2.59375385568E-04
+ 2.15938477999E-04 1.79176366670E-04 1.48168786340E-04 1.22104993079E-04
+ 1.00273393177E-04 8.20517711258E-05 6.68981365475E-05 5.43422004676E-05
+ 4.39774837999E-05 3.54540419422E-05 2.84718093855E-05 2.27745332801E-05
+ 1.81442751658E-05 1.43964540793E-05 1.13754009854E-05 8.95039244930E-06
+ 7.01213019452E-06 5.46963258139E-06 4.24750402612E-06 3.28354886847E-06
+ 2.52669711370E-06 1.93521074123E-06 1.47514081510E-06 1.11900738293E-06
+ 8.44676046062E-07 6.34407070037E-07 4.74054929417E-07 3.52398203873E-07
+ 2.60581725405E-07 1.91654791309E-07 1.40191080152E-07 1.01977621325E-07
+ 7.37617604166E-08 5.30465251456E-08 3.79261265483E-08 2.69545275329E-08
+ 1.90410787513E-08 1.33681652160E-08 9.32663316595E-09 6.46548357795E-09
+ 4.45293543869E-09 3.04648784614E-09 2.07005470666E-09 1.39661852910E-09
+ 9.35159482468E-10 6.20870771213E-10 4.07879043035E-10 2.63855653842E-10
+ 1.66036844609E-10 9.82724930225E-11 4.87971553311E-11 8.46369000746E-12
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+5S 0 2.00 Wavefunction
+ 0.00000000000E+00 1.10096811891E-06 2.22075575125E-06 3.35968459037E-06
+ 4.51808182846E-06 5.69628025063E-06 6.89461833047E-06 8.11344032732E-06
+ 9.35309638513E-06 1.06139426331E-05 1.18963412879E-05 1.32006607579E-05
+ 1.45272757488E-05 1.58765673714E-05 1.72489232510E-05 1.86447376389E-05
+ 2.00644115256E-05 2.15083527559E-05 2.29769761460E-05 2.44707036031E-05
+ 2.59899642461E-05 2.75351945292E-05 2.91068383671E-05 3.07053472626E-05
+ 3.23311804363E-05 3.39848049587E-05 3.56666958839E-05 3.73773363867E-05
+ 3.91172179009E-05 4.08868402608E-05 4.26867118445E-05 4.45173497202E-05
+ 4.63792797948E-05 4.82730369646E-05 5.01991652694E-05 5.21582180483E-05
+ 5.41507580994E-05 5.61773578407E-05 5.82385994749E-05 6.03350751569E-05
+ 6.24673871634E-05 6.46361480662E-05 6.68419809082E-05 6.90855193825E-05
+ 7.13674080139E-05 7.36883023449E-05 7.60488691233E-05 7.84497864941E-05
+ 8.08917441941E-05 8.33754437503E-05 8.59015986815E-05 8.84709347027E-05
+ 9.10841899342E-05 9.37421151135E-05 9.64454738107E-05 9.91950426482E-05
+ 1.01991611524E-04 1.04835983837E-04 1.07728976720E-04 1.10671421275E-04
+ 1.13664162808E-04 1.16708061075E-04 1.19803990528E-04 1.22952840569E-04
+ 1.26155515801E-04 1.29412936289E-04 1.32726037826E-04 1.36095772203E-04
+ 1.39523107477E-04 1.43009028257E-04 1.46554535977E-04 1.50160649194E-04
+ 1.53828403873E-04 1.57558853689E-04 1.61353070326E-04 1.65212143788E-04
+ 1.69137182713E-04 1.73129314686E-04 1.77189686569E-04 1.81319464827E-04
+ 1.85519835864E-04 1.89792006364E-04 1.94137203637E-04 1.98556675975E-04
+ 2.03051693003E-04 2.07623546052E-04 2.12273548525E-04 2.17003036276E-04
+ 2.21813367993E-04 2.26705925591E-04 2.31682114603E-04 2.36743364590E-04
+ 2.41891129550E-04 2.47126888333E-04 2.52452145069E-04 2.57868429598E-04
+ 2.63377297912E-04 2.68980332598E-04 2.74679143298E-04 2.80475367164E-04
+ 2.86370669338E-04 2.92366743422E-04 2.98465311967E-04 3.04668126971E-04
+ 3.10976970377E-04 3.17393654590E-04 3.23920022994E-04 3.30557950484E-04
+ 3.37309344002E-04 3.44176143087E-04 3.51160320431E-04 3.58263882448E-04
+ 3.65488869847E-04 3.72837358220E-04 3.80311458637E-04 3.87913318256E-04
+ 3.95645120935E-04 4.03509087863E-04 4.11507478197E-04 4.19642589709E-04
+ 4.27916759450E-04 4.36332364417E-04 4.44891822240E-04 4.53597591874E-04
+ 4.62452174305E-04 4.71458113270E-04 4.80617995988E-04 4.89934453900E-04
+ 4.99410163429E-04 5.09047846747E-04 5.18850272557E-04 5.28820256887E-04
+ 5.38960663903E-04 5.49274406727E-04 5.59764448276E-04 5.70433802114E-04
+ 5.81285533317E-04 5.92322759352E-04 6.03548650974E-04 6.14966433137E-04
+ 6.26579385921E-04 6.38390845471E-04 6.50404204960E-04 6.62622915558E-04
+ 6.75050487429E-04 6.87690490737E-04 7.00546556670E-04 7.13622378485E-04
+ 7.26921712570E-04 7.40448379519E-04 7.54206265233E-04 7.68199322036E-04
+ 7.82431569807E-04 7.96907097138E-04 8.11630062510E-04 8.26604695481E-04
+ 8.41835297907E-04 8.57326245176E-04 8.73081987463E-04 8.89107051011E-04
+ 9.05406039427E-04 9.21983635010E-04 9.38844600092E-04 9.55993778405E-04
+ 9.73436096477E-04 9.91176565041E-04 1.00922028048E-03 1.02757242628E-03
+ 1.04623827455E-03 1.06522318748E-03 1.08453261894E-03 1.10417211600E-03
+ 1.12414732057E-03 1.14446397097E-03 1.16512790362E-03 1.18614505468E-03
+ 1.20752146179E-03 1.22926326579E-03 1.25137671245E-03 1.27386815433E-03
+ 1.29674405256E-03 1.32001097869E-03 1.34367561661E-03 1.36774476445E-03
+ 1.39222533652E-03 1.41712436531E-03 1.44244900353E-03 1.46820652612E-03
+ 1.49440433238E-03 1.52104994806E-03 1.54815102755E-03 1.57571535605E-03
+ 1.60375085185E-03 1.63226556854E-03 1.66126769738E-03 1.69076556963E-03
+ 1.72076765893E-03 1.75128258374E-03 1.78231910985E-03 1.81388615281E-03
+ 1.84599278061E-03 1.87864821617E-03 1.91186184006E-03 1.94564319315E-03
+ 1.98000197939E-03 2.01494806857E-03 2.05049149914E-03 2.08664248112E-03
+ 2.12341139903E-03 2.16080881484E-03 2.19884547103E-03 2.23753229367E-03
+ 2.27688039555E-03 2.31690107937E-03 2.35760584097E-03 2.39900637266E-03
+ 2.44111456656E-03 2.48394251799E-03 2.52750252899E-03 2.57180711179E-03
+ 2.61686899247E-03 2.66270111454E-03 2.70931664271E-03 2.75672896662E-03
+ 2.80495170472E-03 2.85399870816E-03 2.90388406476E-03 2.95462210306E-03
+ 3.00622739642E-03 3.05871476721E-03 3.11209929105E-03 3.16639630113E-03
+ 3.22162139263E-03 3.27779042718E-03 3.33491953738E-03 3.39302513148E-03
+ 3.45212389802E-03 3.51223281068E-03 3.57336913308E-03 3.63555042378E-03
+ 3.69879454129E-03 3.76311964918E-03 3.82854422131E-03 3.89508704708E-03
+ 3.96276723686E-03 4.03160422743E-03 4.10161778758E-03 4.17282802373E-03
+ 4.24525538572E-03 4.31892067264E-03 4.39384503883E-03 4.47004999988E-03
+ 4.54755743882E-03 4.62638961237E-03 4.70656915732E-03 4.78811909702E-03
+ 4.87106284791E-03 4.95542422629E-03 5.04122745508E-03 5.12849717075E-03
+ 5.21725843042E-03 5.30753671893E-03 5.39935795621E-03 5.49274850462E-03
+ 5.58773517654E-03 5.68434524197E-03 5.78260643636E-03 5.88254696854E-03
+ 5.98419552870E-03 6.08758129668E-03 6.19273395019E-03 6.29968367339E-03
+ 6.40846116538E-03 6.51909764904E-03 6.63162487991E-03 6.74607515521E-03
+ 6.86248132307E-03 6.98087679189E-03 7.10129553981E-03 7.22377212445E-03
+ 7.34834169267E-03 7.47503999062E-03 7.60390337389E-03 7.73496881784E-03
+ 7.86827392810E-03 8.00385695126E-03 8.14175678574E-03 8.28201299281E-03
+ 8.42466580783E-03 8.56975615164E-03 8.71732564218E-03 8.86741660627E-03
+ 9.02007209160E-03 9.17533587891E-03 9.33325249436E-03 9.49386722216E-03
+ 9.65722611733E-03 9.82337601871E-03 9.99236456220E-03 1.01642401942E-02
+ 1.03390521852E-02 1.05168506437E-02 1.06976865305E-02 1.08816116726E-02
+ 1.10686787782E-02 1.12589414513E-02 1.14524542068E-02 1.16492724858E-02
+ 1.18494526709E-02 1.20530521025E-02 1.22601290942E-02 1.24707429497E-02
+ 1.26849539790E-02 1.29028235152E-02 1.31244139318E-02 1.33497886599E-02
+ 1.35790122058E-02 1.38121501692E-02 1.40492692609E-02 1.42904373218E-02
+ 1.45357233414E-02 1.47851974767E-02 1.50389310719E-02 1.52969966779E-02
+ 1.55594680722E-02 1.58264202793E-02 1.60979295911E-02 1.63740735878E-02
+ 1.66549311595E-02 1.69405825270E-02 1.72311092643E-02 1.75265943205E-02
+ 1.78271220423E-02 1.81327781967E-02 1.84436499946E-02 1.87598261138E-02
+ 1.90813967232E-02 1.94084535068E-02 1.97410896882E-02 2.00794000559E-02
+ 2.04234809879E-02 2.07734304777E-02 2.11293481603E-02 2.14913353381E-02
+ 2.18594950080E-02 2.22339318880E-02 2.26147524451E-02 2.30020649226E-02
+ 2.33959793682E-02 2.37966076627E-02 2.42040635489E-02 2.46184626602E-02
+ 2.50399225510E-02 2.54685627259E-02 2.59045046703E-02 2.63478718810E-02
+ 2.67987898970E-02 2.72573863311E-02 2.77237909015E-02 2.81981354637E-02
+ 2.86805540429E-02 2.91711828670E-02 2.96701603990E-02 3.01776273712E-02
+ 3.06937268181E-02 3.12186041109E-02 3.17524069917E-02 3.22952856079E-02
+ 3.28473925472E-02 3.34088828726E-02 3.39799141581E-02 3.45606465242E-02
+ 3.51512426736E-02 3.57518679274E-02 3.63626902615E-02 3.69838803432E-02
+ 3.76156115671E-02 3.82580600930E-02 3.89114048816E-02 3.95758277326E-02
+ 4.02515133209E-02 4.09386492340E-02 4.16374260092E-02 4.23480371704E-02
+ 4.30706792655E-02 4.38055519029E-02 4.45528577885E-02 4.53128027624E-02
+ 4.60855958349E-02 4.68714492231E-02 4.76705783862E-02 4.84832020616E-02
+ 4.93095422991E-02 5.01498244961E-02 5.10042774308E-02 5.18731332965E-02
+ 5.27566277334E-02 5.36549998608E-02 5.45684923082E-02 5.54973512451E-02
+ 5.64418264103E-02 5.74021711398E-02 5.83786423932E-02 5.93715007794E-02
+ 6.03810105803E-02 6.14074397731E-02 6.24510600511E-02 6.35121468424E-02
+ 6.45909793266E-02 6.56878404495E-02 6.68030169357E-02 6.79367992984E-02
+ 6.90894818465E-02 7.02613626894E-02 7.14527437381E-02 7.26639307040E-02
+ 7.38952330930E-02 7.51469641969E-02 7.64194410809E-02 7.77129845658E-02
+ 7.90279192074E-02 8.03645732698E-02 8.17232786944E-02 8.31043710630E-02
+ 8.45081895561E-02 8.59350769040E-02 8.73853793326E-02 8.88594465016E-02
+ 9.03576314358E-02 9.18802904493E-02 9.34277830603E-02 9.50004718990E-02
+ 9.65987226051E-02 9.82229037164E-02 9.98733865474E-02 1.01550545057E-01
+ 1.03254755703E-01 1.04986397291E-01 1.06745850802E-01 1.08533499213E-01
+ 1.10349727300E-01 1.12194921430E-01 1.14069469335E-01 1.15973759868E-01
+ 1.17908182743E-01 1.19873128262E-01 1.21868987013E-01 1.23896149554E-01
+ 1.25955006078E-01 1.28045946046E-01 1.30169357811E-01 1.32325628199E-01
+ 1.34515142085E-01 1.36738281920E-01 1.38995427249E-01 1.41286954183E-01
+ 1.43613234850E-01 1.45974636809E-01 1.48371522428E-01 1.50804248226E-01
+ 1.53273164179E-01 1.55778612982E-01 1.58320929275E-01 1.60900438817E-01
+ 1.63517457619E-01 1.66172291028E-01 1.68865232761E-01 1.71596563884E-01
+ 1.74366551737E-01 1.77175448801E-01 1.80023491505E-01 1.82910898971E-01
+ 1.85837871691E-01 1.88804590136E-01 1.91811213293E-01 1.94857877134E-01
+ 1.97944692992E-01 2.01071745877E-01 2.04239092686E-01 2.07446760342E-01
+ 2.10694743837E-01 2.13983004172E-01 2.17311466216E-01 2.20680016446E-01
+ 2.24088500590E-01 2.27536721162E-01 2.31024434879E-01 2.34551349962E-01
+ 2.38117123318E-01 2.41721357596E-01 2.45363598113E-01 2.49043329645E-01
+ 2.52759973091E-01 2.56512881982E-01 2.60301338857E-01 2.64124551484E-01
+ 2.67981648936E-01 2.71871677501E-01 2.75793596448E-01 2.79746273617E-01
+ 2.83728480855E-01 2.87738889279E-01 2.91776064378E-01 2.95838460930E-01
+ 2.99924417763E-01 3.04032152330E-01 3.08159755121E-01 3.12305183893E-01
+ 3.16466257733E-01 3.20640650951E-01 3.24825886803E-01 3.29019331052E-01
+ 3.33218185366E-01 3.37419480571E-01 3.41620069744E-01 3.45816621184E-01
+ 3.50005611241E-01 3.54183317037E-01 3.58345809078E-01 3.62488943787E-01
+ 3.66608355956E-01 3.70699451152E-01 3.74757398099E-01 3.78777121046E-01
+ 3.82753292164E-01 3.86680323999E-01 3.90552362006E-01 3.94363277210E-01
+ 3.98106659031E-01 4.01775808321E-01 4.05363730651E-01 4.08863129914E-01
+ 4.12266402291E-01 4.15565630646E-01 4.18752579415E-01 4.21818690063E-01
+ 4.24755077183E-01 4.27552525315E-01 4.30201486587E-01 4.32692079260E-01
+ 4.35014087272E-01 4.37156960904E-01 4.39109818665E-01 4.40861450517E-01
+ 4.42400322567E-01 4.43714583355E-01 4.44792071868E-01 4.45620327431E-01
+ 4.46186601608E-01 4.46477872280E-01 4.46480860045E-01 4.46182047093E-01
+ 4.45567698742E-01 4.44623887765E-01 4.43336521708E-01 4.41691373331E-01
+ 4.39674114354E-01 4.37270352659E-01 4.34465673093E-01 4.31245682022E-01
+ 4.27596055762E-01 4.23502592997E-01 4.18951271285E-01 4.13928307720E-01
+ 4.08420223797E-01 4.02413914474E-01 3.95896721428E-01 3.88856510393E-01
+ 3.81281752476E-01 3.73161609238E-01 3.64486021288E-01 3.55245800030E-01
+ 3.45432722139E-01 3.35039626231E-01 3.24060511087E-01 3.12490634663E-01
+ 3.00326613032E-01 2.87566518234E-01 2.74209973919E-01 2.60258247537E-01
+ 2.45714337734E-01 2.30583055515E-01 2.14871097718E-01 1.98587111353E-01
+ 1.81741747418E-01 1.64347703060E-01 1.46419751190E-01 1.27974757218E-01
+ 1.09031683225E-01 8.96115807938E-02 6.97375749595E-02 4.94348431390E-02
+ 2.87305946943E-02 7.65405869994E-03 -1.37635104596E-02 -3.54887981708E-02
+ -5.74863525751E-02 -7.97184527001E-02 -1.02144911393E-01 -1.24722809197E-01
+ -1.47406168390E-01 -1.70145599781E-01 -1.92887993885E-01 -2.15576390952E-01
+ -2.38150258820E-01 -2.60546506197E-01 -2.82701912267E-01 -3.04557675123E-01
+ -3.26062317701E-01 -3.47167013112E-01 -3.67824310189E-01 -3.87988255868E-01
+ -4.07614525172E-01 -4.26660534465E-01 -4.45085544135E-01 -4.62850752821E-01
+ -4.79919380829E-01 -4.96256745646E-01 -5.11830327178E-01 -5.26609826270E-01
+ -5.40567214183E-01 -5.53676776967E-01 -5.65915152431E-01 -5.77261363738E-01
+ -5.87696847257E-01 -5.97205478458E-01 -6.05773593371E-01 -6.13390008851E-01
+ -6.20046039071E-01 -6.25735510750E-01 -6.30454774539E-01 -6.34202714261E-01
+ -6.36980751595E-01 -6.38792847137E-01 -6.39645495762E-01 -6.39547716582E-01
+ -6.38511035918E-01 -6.36549463075E-01 -6.33679457931E-01 -6.29919889774E-01
+ -6.25291987023E-01 -6.19819277038E-01 -6.13527516239E-01 -6.06444609640E-01
+ -5.98600520516E-01 -5.90027169322E-01 -5.80758322953E-01 -5.70829473597E-01
+ -5.60277708502E-01 -5.49141570146E-01 -5.37460908228E-01 -5.25276723312E-01
+ -5.12631003499E-01 -4.99566554394E-01 -4.86126823605E-01 -4.72355720511E-01
+ -4.58297432347E-01 -4.43996237811E-01 -4.29496319029E-01 -4.14841573529E-01
+ -4.00075426810E-01 -3.85240647565E-01 -3.70379165901E-01 -3.55531896919E-01
+ -3.40738569762E-01 -3.26037564700E-01 -3.11465758124E-01 -2.97058378098E-01
+ -2.82848870126E-01 -2.68868775713E-01 -2.55147623165E-01 -2.41712833027E-01
+ -2.28589637390E-01 -2.15801015144E-01 -2.03367642231E-01 -1.91307858540E-01
+ -1.79637650323E-01 -1.68370649298E-01 -1.57518147119E-01 -1.47089125900E-01
+ -1.37090303292E-01 -1.27526192310E-01 -1.18399174269E-01 -1.09709584579E-01
+ -1.01455809653E-01 -9.36343942988E-02 -8.62401577917E-02 -7.92663177158E-02
+ -7.27046197729E-02 -6.65454724521E-02 -6.07780848328E-02 -5.53906063253E-02
+ -5.03702667483E-02 -4.57035155617E-02 -4.13761588348E-02 -3.73734928683E-02
+ -3.36804332760E-02 -3.02816386105E-02 -2.71616275983E-02 -2.43048892819E-02
+ -2.16959854071E-02 -1.93196445928E-02 -1.71608478950E-02 -1.52049055459E-02
+ -1.34375247374E-02 -1.18448684595E-02 -1.04136054943E-02 -9.13095177607E-03
+ -7.98470341039E-03 -6.96326172712E-03 -6.05565080612E-03 -5.25152797208E-03
+ -4.54118779625E-03 -3.91556017730E-03 -3.36620309313E-03 -2.88529062784E-03
+ -2.46559687856E-03 -2.10047633985E-03 -1.78384134776E-03 -1.51013714361E-03
+ -1.27431508913E-03 -1.07180453161E-03 -8.98483780831E-04 -7.50650619719E-04
+ -6.24992728867E-04 -5.18558362463E-04 -4.28727570072E-04 -3.53184218067E-04
+ -2.89889031613E-04 -2.37053765387E-04 -1.93116747130E-04 -1.56719813829E-04
+ -1.26686724611E-04 -1.02003091040E-04 -8.17978370308E-05 -6.53261780358E-05
+ -5.19540897611E-05 -4.11442204615E-05 -3.24431876012E-05 -2.54701892729E-05
+ -1.99068529875E-05 -1.54882390751E-05 -1.19949127224E-05 -9.24599736785E-06
+ -7.09312251242E-06 -5.41518074008E-06 -4.11381162351E-06 -3.10953398256E-06
+ -2.33845245178E-06 -1.74946929373E-06 -1.30193769108E-06 -9.63698203079E-07
+ -7.09445546521E-07 -5.19378243631E-07 -3.78088878389E-07 -2.73657645750E-07
+ -1.96916512600E-07 -1.40855598203E-07 -1.00147303846E-07 -7.07672675078E-08
+ -4.96943913058E-08 -3.46749976749E-08 -2.40386316607E-08 -1.65551634066E-08
+ -1.13246821009E-08 -7.69323755865E-09 -5.18880615706E-09 -3.47296163843E-09
+ -2.30464523237E-09 -1.51317655917E-09 -9.78252865136E-10 -6.15163277987E-10
+ -3.63815325589E-10 -1.80440659903E-10 -3.10164867256E-11 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+</PP_PSWFC>
+
+
+<PP_RHOATOM>
+ 0.00000000000E+00 6.80622641809E-12 2.76922661582E-11 6.33802460593E-11
+ 1.14621236889E-10 1.82196320461E-10 2.66917694736E-10 3.69629818219E-10
+ 4.91210595040E-10 6.32572602145E-10 7.94664360056E-10 9.78471648742E-10
+ 1.18501887016E-09 1.41537045910E-09 1.67063234408E-09 1.95195345988E-09
+ 2.26052731377E-09 2.59759360702E-09 2.96443991390E-09 3.36240341993E-09
+ 3.79287272166E-09 4.25728968994E-09 4.75715139906E-09 5.29401212394E-09
+ 5.86948540779E-09 6.48524620272E-09 7.14303308575E-09 7.84465055302E-09
+ 8.59197139471E-09 9.38693915366E-09 1.02315706705E-08 1.11279587184E-08
+ 1.20782747304E-08 1.30847716227E-08 1.41497867172E-08 1.52757447670E-08
+ 1.64651610874E-08 1.77206447976E-08 1.90449021765E-08 2.04407401347E-08
+ 2.19110698103E-08 2.34589102895E-08 2.50873924580E-08 2.67997629876E-08
+ 2.85993884624E-08 3.04897596491E-08 3.24744959180E-08 3.45573498174E-08
+ 3.67422118092E-08 3.90331151699E-08 4.14342410625E-08 4.39499237870E-08
+ 4.65846562135E-08 4.93430954057E-08 5.22300684405E-08 5.52505784319E-08
+ 5.84098107644E-08 6.17131395446E-08 6.51661342780E-08 6.87745667790E-08
+ 7.25444183218E-08 7.64818870414E-08 8.05933955923E-08 8.48855990748E-08
+ 8.93653932371E-08 9.40399229645E-08 9.89165910634E-08 1.04003067352E-07
+ 1.09307298069E-07 1.14837515607E-07 1.20602248589E-07 1.26610332291E-07
+ 1.32870919435E-07 1.39393491348E-07 1.46187869519E-07 1.53264227553E-07
+ 1.60633103540E-07 1.68305412857E-07 1.76292461420E-07 1.84605959382E-07
+ 1.93258035328E-07 2.02261250946E-07 2.11628616217E-07 2.21373605131E-07
+ 2.31510171951E-07 2.42052768039E-07 2.53016359269E-07 2.64416444044E-07
+ 2.76269071942E-07 2.88590863004E-07 3.01399027695E-07 3.14711387565E-07
+ 3.28546396610E-07 3.42923163395E-07 3.57861473931E-07 3.73381815351E-07
+ 3.89505400409E-07 4.06254192825E-07 4.23650933514E-07 4.41719167726E-07
+ 4.60483273117E-07 4.79968488810E-07 5.00200945450E-07 5.21207696308E-07
+ 5.43016749465E-07 5.65657101107E-07 5.89158769978E-07 6.13552833026E-07
+ 6.38871462285E-07 6.65147963036E-07 6.92416813290E-07 7.20713704639E-07
+ 7.50075584525E-07 7.80540699967E-07 8.12148642814E-07 8.44940396554E-07
+ 8.78958384754E-07 9.14246521171E-07 9.50850261602E-07 9.88816657531E-07
+ 1.02819441163E-06 1.06903393519E-06 1.11138740751E-06 1.15530883741E-06
+ 1.20085412680E-06 1.24808113648E-06 1.29704975422E-06 1.34782196521E-06
+ 1.40046192491E-06 1.45503603446E-06 1.51161301866E-06 1.57026400671E-06
+ 1.63106261569E-06 1.69408503689E-06 1.75941012529E-06 1.82711949191E-06
+ 1.89729759956E-06 1.97003186176E-06 2.04541274516E-06 2.12353387546E-06
+ 2.20449214702E-06 2.28838783626E-06 2.37532471894E-06 2.46541019157E-06
+ 2.55875539695E-06 2.65547535406E-06 2.75568909252E-06 2.85951979155E-06
+ 2.96709492389E-06 3.07854640460E-06 3.19401074502E-06 3.31362921207E-06
+ 3.43754799305E-06 3.56591836611E-06 3.69889687667E-06 3.83664551988E-06
+ 3.97933192940E-06 4.12712957273E-06 4.28021795323E-06 4.43878281922E-06
+ 4.60301638019E-06 4.77311753056E-06 4.94929208116E-06 5.13175299863E-06
+ 5.32072065325E-06 5.51642307514E-06 5.71909621945E-06 5.92898424066E-06
+ 6.14633977638E-06 6.37142424086E-06 6.60450812878E-06 6.84587132944E-06
+ 7.09580345179E-06 7.35460416075E-06 7.62258352509E-06 7.90006237737E-06
+ 8.18737268621E-06 8.48485794158E-06 8.79287355321E-06 9.11178726291E-06
+ 9.44197957099E-06 9.78384417755E-06 1.01377884389E-05 1.05042338396E-05
+ 1.08836164812E-05 1.12763875877E-05 1.16830140277E-05 1.21039788561E-05
+ 1.25397818731E-05 1.29909402032E-05 1.34579888938E-05 1.39414815350E-05
+ 1.44419909002E-05 1.49601096093E-05 1.54964508142E-05 1.60516489086E-05
+ 1.66263602620E-05 1.72212639786E-05 1.78370626835E-05 1.84744833346E-05
+ 1.91342780640E-05 1.98172250468E-05 2.05241294015E-05 2.12558241202E-05
+ 2.20131710318E-05 2.27970617976E-05 2.36084189419E-05 2.44481969179E-05
+ 2.53173832101E-05 2.62169994754E-05 2.71481027228E-05 2.81117865342E-05
+ 2.91091823272E-05 3.01414606616E-05 3.12098325906E-05 3.23155510589E-05
+ 3.34599123488E-05 3.46442575765E-05 3.58699742394E-05 3.71384978173E-05
+ 3.84513134285E-05 3.98099575431E-05 4.12160197551E-05 4.26711446162E-05
+ 4.41770335319E-05 4.57354467239E-05 4.73482052592E-05 4.90171931499E-05
+ 5.07443595249E-05 5.25317208766E-05 5.43813633847E-05 5.62954453208E-05
+ 5.82761995348E-05 6.03259360278E-05 6.24470446134E-05 6.46419976702E-05
+ 6.69133529897E-05 6.92637567219E-05 7.16959464225E-05 7.42127542051E-05
+ 7.68171100015E-05 7.95120449346E-05 8.23006948077E-05 8.51863037128E-05
+ 8.81722277644E-05 9.12619389611E-05 9.44590291800E-05 9.77672143085E-05
+ 1.01190338519E-04 1.04732378690E-04 1.08397448979E-04 1.12189805553E-04
+ 1.16113851482E-04 1.20174141800E-04 1.24375388742E-04 1.28722467158E-04
+ 1.33220420113E-04 1.37874464685E-04 1.42689997956E-04 1.47672603210E-04
+ 1.52828056348E-04 1.58162332516E-04 1.63681612971E-04 1.69392292170E-04
+ 1.75300985114E-04 1.81414534938E-04 1.87740020761E-04 1.94284765807E-04
+ 2.01056345810E-04 2.08062597692E-04 2.15311628559E-04 2.22811824986E-04
+ 2.30571862636E-04 2.38600716199E-04 2.46907669671E-04 2.55502326996E-04
+ 2.64394623059E-04 2.73594835062E-04 2.83113594290E-04 2.92961898281E-04
+ 3.03151123402E-04 3.13693037871E-04 3.24599815211E-04 3.35884048170E-04
+ 3.47558763115E-04 3.59637434921E-04 3.72134002361E-04 3.85062884029E-04
+ 3.98438994801E-04 4.12277762861E-04 4.26595147307E-04 4.41407656353E-04
+ 4.56732366155E-04 4.72586940281E-04 4.88989649833E-04 5.05959394268E-04
+ 5.23515722913E-04 5.41678857221E-04 5.60469713780E-04 5.79909928099E-04
+ 6.00021879211E-04 6.20828715098E-04 6.42354378988E-04 6.64623636540E-04
+ 6.87662103941E-04 7.11496276969E-04 7.36153561024E-04 7.61662302182E-04
+ 7.88051819292E-04 8.15352437162E-04 8.43595520856E-04 8.72813511153E-04
+ 9.03039961191E-04 9.34309574354E-04 9.66658243419E-04 1.00012309103E-03
+ 1.03474251150E-03 1.07055621408E-03 1.10760526758E-03 1.14593214655E-03
+ 1.18558077900E-03 1.22659659568E-03 1.26902658099E-03 1.31291932567E-03
+ 1.35832508111E-03 1.40529581559E-03 1.45388527226E-03 1.50414902918E-03
+ 1.55614456118E-03 1.60993130390E-03 1.66557071986E-03 1.72312636670E-03
+ 1.78266396774E-03 1.84425148473E-03 1.90795919306E-03 1.97385975941E-03
+ 2.04202832190E-03 2.11254257288E-03 2.18548284438E-03 2.26093219630E-03
+ 2.33897650752E-03 2.41970456984E-03 2.50320818504E-03 2.58958226495E-03
+ 2.67892493477E-03 2.77133763966E-03 2.86692525475E-03 2.96579619854E-03
+ 3.06806254994E-03 3.17384016901E-03 3.28324882141E-03 3.39641230674E-03
+ 3.51345859092E-03 3.63451994264E-03 3.75973307395E-03 3.88923928524E-03
+ 4.02318461462E-03 4.16171999180E-03 4.30500139670E-03 4.45319002269E-03
+ 4.60645244486E-03 4.76496079318E-03 4.92889293083E-03 5.09843263770E-03
+ 5.27376979932E-03 5.45510060115E-03 5.64262772857E-03 5.83656057245E-03
+ 6.03711544059E-03 6.24451577507E-03 6.45899237564E-03 6.68078362922E-03
+ 6.91013574567E-03 7.14730299989E-03 7.39254798036E-03 7.64614184421E-03
+ 7.90836457895E-03 8.17950527081E-03 8.45986237995E-03 8.74974402242E-03
+ 9.04946825908E-03 9.35936339141E-03 9.67976826433E-03 1.00110325759E-02
+ 1.03535171944E-02 1.07075944816E-02 1.10736486240E-02 1.14520759703E-02
+ 1.18432853761E-02 1.22476985549E-02 1.26657504365E-02 1.30978895315E-02
+ 1.35445783019E-02 1.40062935388E-02 1.44835267451E-02 1.49767845243E-02
+ 1.54865889752E-02 1.60134780907E-02 1.65580061619E-02 1.71207441869E-02
+ 1.77022802819E-02 1.83032200974E-02 1.89241872354E-02 1.95658236696E-02
+ 2.02287901667E-02 2.09137667073E-02 2.16214529077E-02 2.23525684391E-02
+ 2.31078534449E-02 2.38880689542E-02 2.46939972905E-02 2.55264424740E-02
+ 2.63862306163E-02 2.72742103058E-02 2.81912529817E-02 2.91382532956E-02
+ 3.01161294575E-02 3.11258235658E-02 3.21683019164E-02 3.32445552911E-02
+ 3.43555992214E-02 3.55024742239E-02 3.66862460064E-02 3.79080056399E-02
+ 3.91688696933E-02 4.04699803280E-02 4.18125053471E-02 4.31976381965E-02
+ 4.46265979128E-02 4.61006290134E-02 4.76210013243E-02 4.91890097406E-02
+ 5.08059739143E-02 5.24732378629E-02 5.41921694953E-02 5.59641600464E-02
+ 5.77906234164E-02 5.96729954061E-02 6.16127328439E-02 6.36113125964E-02
+ 6.56702304550E-02 6.77909998935E-02 6.99751506877E-02 7.22242273909E-02
+ 7.45397876576E-02 7.69234004094E-02 7.93766438355E-02 8.19011032215E-02
+ 8.44983686013E-02 8.71700322255E-02 8.99176858432E-02 9.27429177911E-02
+ 9.56473098899E-02 9.86324341445E-02 1.01699849249E-01 1.04851096900E-01
+ 1.08087697917E-01 1.11411148189E-01 1.14822914442E-01 1.18324429847E-01
+ 1.21917089499E-01 1.25602245765E-01 1.29381203546E-01 1.33255215484E-01
+ 1.37225477152E-01 1.41293122273E-01 1.45459218031E-01 1.49724760540E-01
+ 1.54090670549E-01 1.58557789468E-01 1.63126875837E-01 1.67798602337E-01
+ 1.72573553500E-01 1.77452224269E-01 1.82435019584E-01 1.87522255200E-01
+ 1.92714159974E-01 1.98010879858E-01 2.03412483913E-01 2.08918972645E-01
+ 2.14530289036E-01 2.20246332663E-01 2.26066977349E-01 2.31992092838E-01
+ 2.38021571029E-01 2.44155357356E-01 2.50393487966E-01 2.56736133399E-01
+ 2.63183649516E-01 2.69736636530E-01 2.76396006991E-01 2.83163063709E-01
+ 2.90039588605E-01 2.97027943572E-01 3.04131184472E-01 3.11353189460E-01
+ 3.18698802835E-01 3.26173995708E-01 3.33786044724E-01 3.41543730156E-01
+ 3.49457554594E-01 3.57539983467E-01 3.65805708527E-01 3.74271935328E-01
+ 3.82958695561E-01 3.91889184930E-01 4.01090126966E-01 4.10592162880E-01
+ 4.20430267132E-01 4.30644187968E-01 4.41278911576E-01 4.52385147910E-01
+ 4.64019835485E-01 4.76246661627E-01 4.89136593746E-01 5.02768416221E-01
+ 5.17229266416E-01 5.32615162232E-01 5.49031512489E-01 5.66593600311E-01
+ 5.85427028651E-01 6.05668116192E-01 6.27464231188E-01 6.50974050436E-01
+ 6.76367730632E-01 7.03826980013E-01 7.33545019507E-01 7.65726424840E-01
+ 8.00586844277E-01 8.38352591087E-01 8.79260115506E-01 9.23555368046E-01
+ 9.71493074367E-01 1.02333595145E+00 1.07935390515E+00 1.13982325969E+00
+ 1.20502607914E+00 1.27524964827E+00 1.35078618263E+00 1.43193283301E+00
+ 1.51899203330E+00 1.61227220847E+00 1.71208880513E+00 1.81876552346E+00
+ 1.93263550876E+00 2.05404209500E+00 2.18333847470E+00 2.32088539437E+00
+ 2.46704564515E+00 2.62217374655E+00 2.78659884110E+00 2.96059849282E+00
+ 3.14436092847E+00 3.33793346911E+00 3.54115578007E+00 3.75357860317E+00
+ 3.97437256429E+00 4.20223858528E+00 4.43534301838E+00 4.67131928527E+00
+ 4.90740705263E+00 5.14084487696E+00 5.36970004532E+00 5.59442032313E+00
+ 5.82054105514E+00 6.06319803145E+00 6.33965186712E+00 6.60969574988E+00
+ 6.86496466638E+00 7.10389373283E+00 7.32505033214E+00 7.52714662868E+00
+ 7.70905034910E+00 7.86979397010E+00 8.00858198777E+00 8.12479632683E+00
+ 8.21799976225E+00 8.28793731251E+00 8.33453569947E+00 8.35790072460E+00
+ 8.35831288566E+00 8.33622097151E+00 8.29223417571E+00 8.22711236093E+00
+ 8.14175520123E+00 8.03718974377E+00 7.91455725862E+00 7.77509885075E+00
+ 7.62014078963E+00 7.45107899173E+00 7.26936363849E+00 7.07648335789E+00
+ 6.87394992085E+00 6.66328290473E+00 6.44599519216E+00 6.22357881052E+00
+ 5.99749041045E+00 5.76914206821E+00 5.53988611322E+00 5.31100933541E+00
+ 5.08372121338E+00 4.85914750492E+00 4.63832387131E+00 4.42219107047E+00
+ 4.21159147560E+00 4.00726654345E+00 3.80985575249E+00 3.61989671006E+00
+ 3.43782626752E+00 3.26398256117E+00 3.09860758442E+00 2.94185211360E+00
+ 2.79378010946E+00 2.65437422496E+00 2.52354185800E+00 2.40112167084E+00
+ 2.28689043536E+00 2.18057012811E+00 2.08183514133E+00 1.99031954100E+00
+ 1.90562425214E+00 1.82732411320E+00 1.75497469833E+00 1.68811886317E+00
+ 1.62629293395E+00 1.56903251027E+00 1.51587782312E+00 1.46637863292E+00
+ 1.42009862963E+00 1.37661933287E+00 1.33554347245E+00 1.29649785812E+00
+ 1.25913573490E+00 1.22313864113E+00 1.18821777898E+00 1.15411492083E+00
+ 1.12060287168E+00 1.08748551588E+00 1.05459747608E+00 1.02180341591E+00
+ 9.88997020203E-01 9.56099685944E-01 9.23058961427E-01 8.89846767627E-01
+ 8.56457440794E-01 8.22905629962E-01 7.89224088117E-01 7.55461389325E-01
+ 7.21679608550E-01 6.87951994103E-01 6.54360665844E-01 6.20994365849E-01
+ 5.87946289720E-01 5.55312021204E-01 5.23187592373E-01 4.91667687300E-01
+ 4.60844004893E-01 4.30803793619E-01 4.01628566890E-01 3.73393006380E-01
+ 3.46164055262E-01 3.20000203140E-01 2.94950958389E-01 2.71056504457E-01
+ 2.48347530350E-01 2.26845227281E-01 2.06561437260E-01 1.87498941933E-01
+ 1.69651874326E-01 1.53006239219E-01 1.37540523129E-01 1.23226378315E-01
+ 1.10029361550E-01 9.79097120620E-02 8.68231505136E-02 7.67216846176E-02
+ 6.75544055511E-02 5.92682629647E-02 5.18088058957E-02 4.51208803170E-02
+ 3.91492742674E-02 3.38393046131E-02 2.91373401476E-02 2.49912584194E-02
+ 2.13508345307E-02 1.81680623354E-02 1.53974093034E-02 1.29960079664E-02
+ 1.09237875262E-02 9.14355031968E-03 7.62099823766E-03 6.32471480624E-03
+ 5.22610875544E-03 4.29932508177E-03 3.52112945815E-03 2.87077169595E-03
+ 2.32983359863E-03 1.88206617037E-03 1.51322064357E-03 1.21087728699E-03
+ 9.64275401049E-04 7.64147367940E-04 6.02559081360E-04 4.72758573658E-04
+ 3.69034179051E-04 2.86583141404E-04 2.21391190388E-04 1.70123279534E-04
+ 1.30025400651E-04 9.88371628587E-05 7.47146468103E-05 5.61629130165E-05
+ 4.19774521815E-05 3.11938106424E-05 2.30445996806E-05 1.69230985934E-05
+ 1.23526827231E-05 8.96134445342E-06 6.46062313518E-06 4.62831522167E-06
+ 3.29439532211E-06 2.32963973685E-06 1.63650417260E-06 1.14186510811E-06
+ 7.91288497193E-07 5.44539366005E-07 3.72090922877E-07 2.52431871489E-07
+ 1.70005733183E-07 1.13646240409E-07 7.53989830530E-08 4.96409999940E-08
+ 3.24283458467E-08 2.10165700842E-08 1.35112048403E-08 8.61514951716E-09
+ 5.44763808320E-09 3.41561892888E-09 2.12316728921E-09 1.30824595294E-09
+ 7.98951729991E-10 4.83517313946E-10 2.89932606851E-10 1.72229530370E-10
+ 1.01338497637E-10 5.90509806091E-11 3.40717029538E-11 1.94626349291E-11
+ 1.10046492947E-11 6.15803213092E-12 3.40974532113E-12 1.86783242381E-12
+ 1.01206922168E-12 5.42322770571E-13 2.87341488699E-13 1.50503926151E-13
+ 7.79149777364E-14 3.98594037152E-14 2.01459999386E-14 1.00578392006E-14
+ 4.95890572936E-15 2.41399787720E-15 1.15999956735E-15 5.50098749864E-16
+ 2.57371997561E-16 1.18757577140E-16 5.40139151373E-17 2.41926036327E-17
+ 1.06503733883E-17 4.58907522415E-18 1.91634315178E-18 7.56925189123E-19
+ 2.64723825049E-19 6.51178216066E-20 1.92404956942E-21 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+ 0.00000000000E+00 0.00000000000E+00 0.00000000000E+00
+</PP_RHOATOM>
diff --git a/clusters/user/QE/PW/generate-pw-test b/clusters/user/QE/PW/generate-pw-test
new file mode 100755
index 0000000..565ea53
--- /dev/null
+++ b/clusters/user/QE/PW/generate-pw-test
@@ -0,0 +1,155 @@
+#!/bin/sh
+
+#edit here
+PSEUDO_DIR=$BENCH_DIR/PW
+
+for ncpu in `cat ../../cores.txt`; do
+#edit next line
+TMP_DIR=$SCRATCH_DIR/pw$ncpu
+mkdir $TMP_DIR
+
+mkdir pw$ncpu
+
+cd pw$ncpu
+
+PREFIX='para'$ncpu
+
+cat > para.scf.in << EOF
+&CONTROL
+ calculation = 'scf',
+ outdir = '$TMP_DIR',
+ pseudo_dir = '$PSEUDO_DIR',
+ prefix = '$PREFIX',
+/
+&SYSTEM
+ ibrav = 6,
+ celldm(1) = 18.862,
+ celldm(3) = 1.0125,
+ nat = 95,
+ ntyp = 2,
+ ecutwfc = 70.0,
+ ecutrho = 400.0,
+! nbnd = 760,
+ occupations = "smearing",
+ smearing = "m-p",
+ degauss = 0.02D0,
+/
+&ELECTRONS
+ electron_maxstep = 4,
+ conv_thr = 1.D-8,
+ mixing_beta = 0.4D0,
+ diago_david_ndim = 3,
+/
+ATOMIC_SPECIES
+O 15.999 O.vdb.UPF
+Zr 91.224 Zr.vdb.UPF
+ATOMIC_POSITIONS
+O 0.125773159 0.125773159 0.104156164
+O 0.126750357 0.126750357 0.359129139
+O 0.120591035 0.376245832 0.138023835
+O 0.376245832 0.120591035 0.138023835
+O 0.150262866 0.382649341 0.390818365
+O 0.382649341 0.150262866 0.390818365
+O 0.374996125 0.374996125 0.124185015
+Zr 0.000612655 0.000612655 -0.005751244
+Zr -0.000628808 0.247570077 0.246340868
+Zr 0.247570077 -0.000628808 0.246340868
+Zr 0.250474512 0.250474512 -0.004062341
+O 0.625578479 0.124421921 0.100277109
+O 0.630711659 0.119286087 0.353548454
+O 0.629400194 0.373754706 0.138024894
+O 0.875850411 0.124855180 0.140884972
+O 0.599732982 0.367345973 0.390819736
+O 0.877045779 0.126367141 0.394385811
+O 0.874995036 0.375005779 0.100289514
+O 0.874995360 0.374997301 0.353660411
+Zr 0.496992170 -0.000616018 -0.008236449
+Zr 0.512569122 0.237428520 0.236775183
+Zr 0.752691814 -0.002688371 0.246191095
+Zr 0.750615376 0.253008645 -0.008236940
+O 0.124421921 0.625578479 0.100277109
+O 0.119286087 0.630711659 0.353548454
+O 0.124855180 0.875850411 0.140884972
+O 0.373754706 0.629400194 0.138024894
+O 0.126367141 0.877045779 0.394385811
+O 0.367345973 0.599732982 0.390819736
+O 0.375005779 0.874995036 0.100289514
+O 0.374997301 0.874995360 0.353660411
+Zr -0.000616018 0.496992170 -0.008236449
+Zr -0.002688371 0.752691814 0.246191095
+Zr 0.237428520 0.512569122 0.236775183
+Zr 0.253008645 0.750615376 -0.008236940
+O 0.117884435 0.117884435 0.614354071
+O 0.126069055 0.126069055 0.864018630
+O 0.124099418 0.368979378 0.647565656
+O 0.368979378 0.124099418 0.647565656
+O 0.126482390 0.375125238 0.899728723
+O 0.375125238 0.126482390 0.899728723
+O 0.375000951 0.375000951 0.593148822
+O 0.374997145 0.374997145 0.863141532
+Zr -0.002539837 -0.002539837 0.499407769
+Zr -0.003201395 0.246975842 0.755124067
+Zr 0.246975842 -0.003201395 0.755124067
+Zr 0.240704574 0.240704574 0.511492014
+O 0.132784953 0.617216670 0.604991051
+O 0.125707105 0.624300377 0.858705885
+O 0.127805173 0.867401069 0.645972832
+O 0.381021601 0.625906817 0.647563983
+O 0.124853419 0.875495228 0.900313336
+O 0.374877404 0.623514622 0.899728498
+O 0.374996064 0.875003084 0.604972655
+O 0.374998620 0.874997623 0.860749908
+Zr 0.003035758 0.498755513 0.499877266
+Zr 0.000142706 0.749856693 0.755068667
+Zr 0.250044786 0.499958505 0.751725045
+Zr 0.251245380 0.746965185 0.499875748
+O 0.617216670 0.132784953 0.604991051
+O 0.624300377 0.125707105 0.858705885
+O 0.625906817 0.381021601 0.647563983
+O 0.867401069 0.127805173 0.645972832
+O 0.623514622 0.374877404 0.899728498
+O 0.875495228 0.124853419 0.900313336
+O 0.875003084 0.374996064 0.604972655
+O 0.874997623 0.374998620 0.860749908
+Zr 0.498755513 0.003035758 0.499877266
+Zr 0.499958505 0.250044786 0.751725045
+Zr 0.749856693 0.000142706 0.755068667
+Zr 0.746965185 0.251245380 0.499875748
+O 0.624227310 0.624227310 0.104153807
+O 0.623248856 0.623248856 0.359128804
+O 0.625156988 0.874144577 0.140886290
+O 0.874144577 0.625156988 0.140886290
+O 0.623630068 0.872954337 0.394385672
+O 0.872954337 0.623630068 0.394385672
+O 0.875003741 0.875003741 0.100670052
+O 0.874997882 0.874997882 0.355700396
+Zr 0.499523586 0.499523586 -0.004057943
+Zr 0.502431262 0.750629301 0.246337395
+Zr 0.750629301 0.502431262 0.246337395
+Zr 0.749391052 0.749391052 -0.005749174
+O 0.632117549 0.632117549 0.614355011
+O 0.623937346 0.623937346 0.864019975
+O 0.622189105 0.882600474 0.645973009
+O 0.882600474 0.622189105 0.645973009
+O 0.625148824 0.874507899 0.900313581
+O 0.874507899 0.625148824 0.900313581
+O 0.874997550 0.874997550 0.609292757
+O 0.874998968 0.874998968 0.860732671
+Zr 0.509296679 0.509296679 0.511490822
+Zr 0.503026576 0.753201014 0.755126269
+Zr 0.753201014 0.503026576 0.755126269
+Zr 0.752538644 0.752538644 0.499403990
+K_POINTS automatic
+2 2 2 1 1 1
+
+EOF
+
+cat > runme << EOF
+mpirun -np $ncpu $ESPRESSO_DIR/pw.x < para.scf.in > para.scf.out
+
+EOF
+
+cd ..
+
+done
+
diff --git a/clusters/user/QE/make.sys b/clusters/user/QE/make.sys
new file mode 100644
index 0000000..58dc1d7
--- /dev/null
+++ b/clusters/user/QE/make.sys
@@ -0,0 +1,145 @@
+# make.sys. Generated from make.sys.in by configure.
+
+# compilation rules
+
+.SUFFIXES :
+.SUFFIXES : .o .c .f .f90
+
+# most fortran compilers can directly preprocess c-like directives: use
+# $(MPIF90) $(F90FLAGS) -c $<
+# if explicit preprocessing by the C preprocessor is needed, use:
+# $(CPP) $(CPPFLAGS) $< -o $*.F90
+# $(MPIF90) $(F90FLAGS) -c $*.F90 -o $*.o
+# remember the tabulator in the first column !!!
+
+.f90.o:
+ $(MPIF90) $(F90FLAGS) -c $<
+
+# .f.o and .c.o: do not modify
+
+.f.o:
+ $(F77) $(FFLAGS) -c $<
+
+.c.o:
+ $(CC) $(CFLAGS) -c $<
+
+
+# DFLAGS = precompilation options (possible arguments to -D and -U)
+# used by the C compiler and preprocessor
+# FDFLAGS = as DFLAGS, for the f90 compiler
+# See include/defs.h.README for a list of options and their meaning
+# With the exception of IBM xlf, FDFLAGS = $(DFLAGS)
+# For IBM xlf, FDFLAGS is the same as DFLAGS with separating commas
+
+DFLAGS = -D__INTEL -D__FFTW -D__MPI -D__PARA
+FDFLAGS = $(DFLAGS)
+
+# IFLAGS = how to locate directories where files to be included are
+# In most cases, IFLAGS = -I../include
+
+IFLAGS = -I../include
+
+# MOD_FLAGS = flag used by f90 compiler to locate modules
+# Each Makefile defines the list of needed modules in MODFLAGS
+
+MOD_FLAG = -I
+
+# Compilers: fortran-90, fortran-77, C
+# If a parallel compilation is desired, MPIF90 should be a fortran-90
+# compiler that produces executables for parallel execution using MPI
+# (such as for instance mpif90, mpf90, mpxlf90,...);
+# otherwise, an ordinary fortran-90 compiler (f90, g95, xlf90, ifort,...)
+# If you have a parallel machine but no suitable candidate for MPIF90,
+# try to specify the directory containing "mpif.h" in IFLAGS
+# and to specify the location of MPI libraries in MPI_LIBS
+
+MPIF90 = mpiifort
+#F90 = ifort
+CC = icc
+F77 = ifort
+
+# C preprocessor and preprocessing flags - for explicit preprocessing,
+# if needed (see the compilation rules above)
+# preprocessing flags must include DFLAGS and IFLAGS
+
+CPP = cpp
+CPPFLAGS = -P -traditional $(DFLAGS) $(IFLAGS)
+
+# compiler flags: C, F90, F77
+# C flags must include DFLAGS and IFLAGS
+# F90 flags must include MODFLAGS, IFLAGS, and FDFLAGS with appropriate syntax
+
+CFLAGS = -O3 $(DFLAGS) $(IFLAGS)
+F90FLAGS = $(FFLAGS) -nomodule -fpp $(FDFLAGS) $(IFLAGS) $(MODFLAGS)
+FFLAGS = -O2 -assume byterecl -g -traceback -par-report0 -vec-report0
+
+# compiler flags without optimization for fortran-77
+# the latter is NEEDED to properly compile dlamch.f, used by lapack
+
+FFLAGS_NOOPT = -O0 -assume byterecl -g -traceback
+
+# compiler flag needed by some compilers when the main is not fortran
+# Currently used for Yambo
+
+FFLAGS_NOMAIN = -nofor_main
+
+# Linker, linker-specific flags (if any)
+# Typically LD coincides with F90 or MPIF90, LD_LIBS is empty
+
+LD = mpiifort
+LDFLAGS = -static-intel
+LD_LIBS =
+
+# External Libraries (if any) : blas, lapack, fft, MPI
+
+# If you have nothing better, use the local copy :
+# BLAS_LIBS = /your/path/to/espresso/BLAS/blas.a
+# BLAS_LIBS_SWITCH = internal
+
+BLAS_LIBS = -L/opt/intel/12.1.2/mkl/lib/intel64 -lmkl_intel_lp64 -lmkl_sequential -lmkl_core
+BLAS_LIBS_SWITCH = external
+
+# If you have nothing better, use the local copy :
+# LAPACK_LIBS = /your/path/to/espresso/lapack-3.2/lapack.a
+# LAPACK_LIBS_SWITCH = internal
+# For IBM machines with essl (-D__ESSL): load essl BEFORE lapack !
+# remember that LAPACK_LIBS precedes BLAS_LIBS in loading order
+
+LAPACK_LIBS =
+LAPACK_LIBS_SWITCH = external
+
+SCALAPACK_LIBS =
+
+# nothing needed here if the the internal copy of FFTW is compiled
+# (needs -D__FFTW in DFLAGS)
+
+FFT_LIBS =
+
+# For parallel execution, the correct path to MPI libraries must
+# be specified in MPI_LIBS (except for IBM if you use mpxlf)
+
+MPI_LIBS =
+
+# IBM-specific: MASS libraries, if available and if -D__MASS is defined in FDFLAGS
+
+MASS_LIBS =
+
+# ar command and flags - for most architectures: AR = ar, ARFLAGS = ruv
+
+AR = ar
+ARFLAGS = ruv
+
+# ranlib command. If ranlib is not needed (it isn't in most cases) use
+# RANLIB = echo
+
+RANLIB = ranlib
+
+# all internal and external libraries - do not modify
+
+FLIB_TARGETS = all
+
+LIBOBJS = ../flib/ptools.a ../flib/flib.a ../clib/clib.a ../iotk/src/libiotk.a
+LIBS = $(SCALAPACK_LIBS) $(LAPACK_LIBS) $(FFT_LIBS) $(BLAS_LIBS) $(MPI_LIBS) $(MASS_LIBS) $(LD_LIBS)
+
+# topdir for linking espresso libs with plugins
+TOPDIR = /home/cepellot/espresso-4.3.2
diff --git a/clusters/user/QE/post.sh b/clusters/user/QE/post.sh
new file mode 120000
index 0000000..68de8c9
--- /dev/null
+++ b/clusters/user/QE/post.sh
@@ -0,0 +1 @@
+../Results/QE/post.sh
\ No newline at end of file
diff --git a/clusters/user/QE/runme.sh b/clusters/user/QE/runme.sh
new file mode 100644
index 0000000..5d1b58f
--- /dev/null
+++ b/clusters/user/QE/runme.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+export BENCH_DIR=`pwd`
+export ESPRESSO_DIR=/scratch/rezzonic/scitas-benchmarks/clusters/user/espresso-5.3.0/bin
+export SCRATCH_DIR=/scratch/rezzonic
+
+cd PW
+./generate-pw-test
+for i in `cat ../../cores.txt`; do
+ cd pw$i
+ sh runme
+ cd ..
+done
+
+cd ../CP
+./generate-cp-test
+for i in `cat ../../cores.txt`; do
+ cd carp$i
+ sh runme
+ cd ..
+done
+
+cd ..
+
+
diff --git a/clusters/user/QE/runme_slurm.sh b/clusters/user/QE/runme_slurm.sh
new file mode 100644
index 0000000..4b02413
--- /dev/null
+++ b/clusters/user/QE/runme_slurm.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+
+corespnode=`cat ../../cores_per_node.txt`
+cp1=`echo "$corespnode-1" | bc`
+
+
+export BENCH_DIR=`pwd`
+export ESPRESSO_DIR=/scratch/rezzonic/scitas-benchmarks/clusters/user/espresso-5.3.0/bin
+
+export SCRATCH_DIR=/scratch/rezzonic
+
+
+cd PW
+./generate-pw-test
+for i in `cat ../../cores.txt`; do
+ cd pw$i
+ nodes=`echo "($i+$cp1)/$corespnode" | bc`
+ sed "s/--NODES--/$nodes/;s/--NP--/$i/;s/--NAME--/PW$i/" ../../template.job > sub-$i.job
+ cat ../../../../cluster.job >> sub-$i.job
+ echo '( while [ 1 ]; do ps -C pw.x -o %cpu,%mem,cmd >> mem_$SLURM_JOBID.txt; sleep 1; done )&' >> sub-$i.job
+ echo "srun $ESPRESSO_DIR/pw.x < para.scf.in > para.scf.out" >> sub-$i.job
+ sbatch sub-$i.job
+ cd ..
+done
+
+cd ../CP
+./generate-cp-test
+for i in `cat ../../cores.txt`; do
+ cd carp$i
+ nodes=`echo "($i+$cp1)/$corespnode" | bc`
+ sed "s/--NODES--/$nodes/;s/--NP--/$i/;s/--NAME--/CP$i/" ../../template.job > sub-$i.job
+ cat ../../../../cluster.job >> sub-$i.job
+ echo '( while [ 1 ]; do ps -C cp.x -o %cpu,%mem,cmd >> mem_$SLURM_JOBID.txt; sleep 1; done )&' >> sub-$i.job
+ echo "srun $ESPRESSO_DIR/cp.x < h2o-64-1.in > h2o-64-1.out" >> sub-$i.job
+ echo "srun $ESPRESSO_DIR/cp.x < h2o-64-2.in > h2o-64-2.out" >> sub-$i.job
+ sbatch sub-$i.job
+ cd ..
+done
+
+cd ..
+
diff --git a/clusters/user/QE/template.job b/clusters/user/QE/template.job
new file mode 100644
index 0000000..af39632
--- /dev/null
+++ b/clusters/user/QE/template.job
@@ -0,0 +1,10 @@
+#!/bin/bash -l
+
+#SBATCH --nodes --NODES--
+#SBATCH --ntasks --NP--
+#SBATCH --cpus-per-task 1
+#SBATCH --time 00:55:00
+#SBATCH --job-name QE_--NAME--
+#SBATCH --exclusive
+
+# follow cluster-specific content and run command
diff --git a/clusters/user/Readme.md b/clusters/user/Readme.md
new file mode 100644
index 0000000..1f920b6
--- /dev/null
+++ b/clusters/user/Readme.md
@@ -0,0 +1,188 @@
+SCITAS users benchmarks
+=======================
+
+
+This page describes the users benchmakrs than SCITAS runs on their machines and when testing new architectures. These benchmarks are also used for tenders.
+
+You need Intel Compilers and MKL, as well as Intel MPI to run these benchmarks.
+
+### Settings, general
+
+Settings are recorded in the file `cores.txt`. List there on how many cores you want to run.
+
+### Settings, scheduler
+
+Settings for the scheduler can be found in `../cluster.job`. Put in this file what is between the SLURM directives and the actual run command. An example is provided.
+
+
+
+Quantum Espresso
+----------------
+
+Quantum Espresso (hereafter abbreviated by QE) stands for opEn Source Package for Research in Electronic Structure, Simulation, and Optimization. It is an integrated suite of computer codes for electronic-structure calculations and materials modeling at the nanoscale. It is based on Density-Functional Theory (DFT), using a Plane-Wave basis set and pseudo-potentials.
+
+More details can be found at http://www.quantum-espresso.org
+
+The code is written in Fortran 95.
+
+Two kinds of simulation are performed in this benchmark :
+
+* Car-Parrinello Molecular Dynamics (CP package)
+* Born-Oppenheimer Molecular Dynamics (PWscf package)
+
+### How to compile
+
+* Enter working directory and configure
+
+ cd espresso-5.3.0/
+ ./configure MPIF90=mpiifort F90=ifort --enable-parallel --with-scalapack=intel
+
+It is important to be sure that the program finds the MKL libraries. Have a look at the make.sys file.
+
+* You can compile only the parts of Quantum Espresso which are needed for this benchmark with
+
+ make cp pw
+
+* After the compilation successfully exits, you can find the binaries in the `espresso-5.3.0/bin` directory
+
+### Execution
+
+* Go to the QE directory
+
+ cd ../QE
+
+* if you want to change the input of the program (problem size for example), you should modify `PW/generate-pw-test` and `CP/generate-cp-test`. For example, you can change the size of the problem by setting the `ecutwfc` to 70.0 for a run using 64 GB of RAM.
+
+* have a look at the `runme.sh` (for interactive runs) or `runme_slurm.sh` (for runs with the SLURM scheduler). The only part you should want to edit are the environment variables at the top.
+
+* depending if you are on a cluster of on a machine in interactive mode, run `runme.sh` or `runme_slurm.sh`.
+
+GEAR
+----
+
+GEAR is a fully parallel code for cosmological N-body simulations. It is based on the freely available code GADGET-2 (version 2.0) that it supplements with the complex treatment of the baryon physics (Y. Revaz and P. Jablonka, Astronomy & Astrophysics, 2012). It computes gravitational forces with a hierarchical tree algorithm (optionally in combination with a particle-mesh scheme for long-range gravitational forces) and represents fluids by means of smoothed particle hydrodynamics (SPH).
+
+It is written in C and parallelized with the MPI communication interface.
+
+For this benchmark, higher CPU frequency provides higher performance. Our test cases produce a large amount of data. Performances also depend on the speed of the storage.
+
+Please note that the GEAR benchmark depends on the FFTW and GSL libraries.
+
+### Compiling
+
+We will use in this example the `gsl-1.15` and `fftw-2.1.5` libraries. In order to compile these pre-requisites, do the following:
+
+* pick a prefix where to install the libraries
+
+```
+export PREFIX=/opt
+```
+
+* configure, compile, install
+
+```
+export CC=icc
+export CPP="icpc -E"
+export F77=ifort
+export I_MPI_CC=icc
+export MPICH_CC=icc
+export MPICC=mpiicc
+wget http://www.fftw.org/fftw-2.1.5.tar.gz
+tar -zxf fftw-2.1.5.tar.gz
+cd fftw-2.1.5
+./configure --prefix=$PREFIX/fftw-2.1.5 --enable-type-prefix --enable-mpi --enable-float CFLAGS="-O3 -xHost" FFLAGS="-O3 -xHost"
+make
+sudo make install
+cd ..
+wget http://mirror.switch.ch/ftp/mirror/gnu/gsl/gsl-1.15.tar.gz
+tar -zxf gsl-1.15.tar.gz
+cd gsl-1.15/
+./configure --prefix=$PREFIX/gsl-1.15 CFLAGS="-O3 -xHost" FFLAGS="-O3 -xHost"
+make
+sudo make install
+```
+
+Now, you can compile GEAR. Enter the GEAR directory. In the src directory, edit the `Makefile` in the following way:
+
+* look for the string `modify to suit your machine` and verify the variables
+* type make
+* you should end up with a binary called `Gadget2`
+
+### Execution
+
+* choose the input file. A small problem (32 GB of RAM) is available here: http://scitas-data.epfl.ch/benchmarks/inputs/snap-118.dat.bz2. A larger problem (64 GB of RAM) is available here: http://scitas-data.epfl.ch/benchmarks/inputs/snap-284.dat.bz2. Download the input file to the GEAR directory, decompress it and rename it (or link it to) `snap.dat`.
+
+* have a look at the `runme.sh` (for interactive runs) or `runme_slurm.sh` (for runs with the SLURM scheduler). The only part you should want to edit are the environment variables at the top.
+
+* make sure the GEAR directory is clean. No `dIrr-*` directory from previous runs must be present
+
+* execute `runme.sh` or `runme_slurm.sh`
+
+CPMD
+----
+
+CPMD (Car-Parrinello Molecular Dynamics) is an ab-initio molecular dynamics simulation software that provides a way to perform molecular dynamic simulations from first principles, using a plane wave/pseudopotential implementation of Density Functional Theory. Its development is coordinated by the CPMD consortium (http://www.cpmd.org/).
+
+It is written in Fortran 90 and parallelized with MPI.
+
+The CPMD kernel can perform:
+
+* Car-Parrinello Molecular Dynamics
+* Ab-initio Molecular Dynamics
+* Response calculations
+* Metadynamics
+* QM/MM
+
+This code is memory bound.
+
+### Compilation
+
+* Enter the CPMD directory
+* Type `make`
+
+### Execution
+
+* have a look at the `runme.sh` (for interactive runs) or `runme_slurm.sh` (for runs with the SLURM scheduler). The only part you should want to edit are the environment variables at the top.
+
+* execute `runme.sh` or `runme_slurm.sh`
+
+MiniFE
+------
+
+MiniFE is a Finite Element mini-application which implements a couple of kernels representative of implicit finite-element applications. It assembles a sparse linear-system from the steady-state conduction equation on a brick-shaped problem domain of linear 8-node hex elements. It then solves the linear-system using a simple un-preconditioned conjugate-gradient algorithm.
+
+MiniFE contains kernels responsible for :
+
+* computation of element-operators (diffusion matrix, source vector)
+* assembly (scattering element-operators into sparse matrix and vector)
+* sparse matrix-vector product (during CG solve)
+* vector operations (level-1 blas: axpy, dot, norm)
+
+More details can be found at http://www.nersc.gov/users/computational-systems/cori/nersc-8-procurement/trinity-nersc-8-rfp/nersc-8-trinity-benchmarks/minife
+
+The code is written in C++ and parallelized with MPI.
+
+### Compilation
+
+Enter the `miniFE-1.4` directory and compile with:
+
+ make -f makefile.intel.mpi
+
+### Execution
+
+The problem sizes you want to run must be specified in the `../miniFE-sizes.txt` file. Then, you can have a look at the `runme.sh` (for interactive runs) or `runme_slurm.sh` (for runs with the SLURM scheduler), and run with either `runme.sh` or `runme_slurm.sh`.
+
+Post-processing
+---------------
+
+A post-processing script `post.sh` is available in each benchmark directory. A post-processing script `post.sh` in this directory takes care of calling all post-processing scripts in the benchmarks directories. This means, that after you have completed all the benchmarks, you can come back here and run
+
+ sh post.sh
+
+This will generate all the data needed to plot graphs and will copy all the results files to the `Results` directory. If you need to take home only the final results, you can copy over only this directory. You can find there a `onecluster.R` file, which takes care of reading all the data and outputting to the `user.Rdata` file.
+
+About this file
+---------------
+
+Convert to HTML with
+ pandoc Readme.md -f markdown -t html -s -o Readme.html
diff --git a/clusters/user/Results/CPMD/post.sh b/clusters/user/Results/CPMD/post.sh
new file mode 100755
index 0000000..3c18107
--- /dev/null
+++ b/clusters/user/Results/CPMD/post.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+# Author: Vittoria.Rezzonico@epfl.ch
+
+# filename: res-cpmd.sh
+
+begin="NFI TEMPP EKS ECLASSIC DIS TCPU"
+end=" RESTART INFORMATION WRITTEN ON FILE"
+
+echo "cores value" > res_cpmd.txt
+for i in `cat ../cores.txt`; do
+ if [ "$i" -lt 4 ]
+ then
+ continue
+ fi
+ dir=BO$i
+ echo -n "$i " >> res_cpmd.txt
+ sed -n "/$begin/,/$end/p" $dir/*.log \
+ | sed '/^ [[:digit:]]/d;/^ [[:digit:]]/d;/^$/d;/I/d' \
+ | awk '{ sum[5] += $5 } END { printf "%s\n", sum[5]/NR }' >> res_cpmd.txt
+ [ -d ../Results/CPMD ] && (mkdir -p ../Results/CPMD/BO$i; cp BO$i/*.log ../Results/CPMD/BO$i/)
+
+
+done
+
+[ -d ../Results/CPMD ] && cp res_cpmd.txt ../Results/CPMD/
+
diff --git a/clusters/user/Results/GEAR/post.sh b/clusters/user/Results/GEAR/post.sh
new file mode 100755
index 0000000..19c8d10
--- /dev/null
+++ b/clusters/user/Results/GEAR/post.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+n=`grep -c ^ ../cores.txt`
+echo "cores value" > res_gear.txt
+bin/extract.py dIrr-*/snap/cpu.txt | sed '1,3d' | head -$n | sort -k 1 -n | awk '{ print $1 " " $4 }' >> res_gear.txt
+
+[ -d ../Results/GEAR ] && cp res_gear.txt ../Results/GEAR/
+
+for i in `cat ../cores.txt`; do
+ dir=dIrr-$i/snap
+ [ -d ../Results/GEAR ] && (mkdir -p ../Results/GEAR/$dir; cp $dir/cpu.txt ../Results/GEAR/$dir/)
+done
+
diff --git a/clusters/user/Results/QE/post.sh b/clusters/user/Results/QE/post.sh
new file mode 100755
index 0000000..1d543f1
--- /dev/null
+++ b/clusters/user/Results/QE/post.sh
@@ -0,0 +1,40 @@
+#!/bin/bash
+
+# filename: post.sh
+echo "cores start end" > ./qe-pw.txt
+
+
+echo "#cores fftw celterg cdiaghg davcio total start end" > qe-pw_full.txt
+for i in `cat ../cores.txt`; do
+ dir=PW/pw$i
+ fftw=`grep fftw $dir/para.scf.out | awk '{ print $5 }' | sed 's/s//'`
+ cegterg=`grep cegterg $dir/para.scf.out | awk '{ print $5 }' | sed 's/s//'`
+ cdiaghg=`grep cdiaghg $dir/para.scf.out | awk '{ print $5 }' | sed 's/s//'`
+ davcio=`grep davcio $dir/para.scf.out | awk '{ print $5 }' | sed 's/s//'`
+ total=`grep PWSCF $dir/para.scf.out | grep WALL | sed 's/m \([[:digit:]]\)/m0\1/g;s/h \([[:digit:]]\)/h0\1/g' | awk '{ print $5 }'`
+ start=`grep starts $dir/para.scf.out | sed 's/^.* on //;s/ at /,/;s/ $//;s/ /0/g' `
+ end=`grep terminated $dir/para.scf.out | sed 's/^.* on: //;s/ at /,/;s/ *$//;s/^ *//;s/ /,/;s/ /0/g' `
+ echo "$i $start $end" >> ./qe-pw.txt
+ echo "$i $fftw $cegterg $cdiaghg $davcio $total $start $end" >> qe-pw_full.txt
+ [ -d ../Results/QE ] && (mkdir -p ../Results/QE/$dir; cp $dir/para.scf.out ../Results/QE/$dir)
+
+done
+
+for j in 1 2; do
+ echo "#cores fftw ortho dforce total start end" > qe-cp-${j}_full.txt
+ echo "cores start end" > ./qe-cp-$j.txt
+ for i in `cat ../cores.txt`; do
+ file=CP/carp$i/h2o-64-$j.out
+ fftw=`grep fftw $file | awk '{ print $5 }' | sed 's/s//'`
+ ortho=`grep ortho $file | grep WALL | grep -v iter | awk '{ print $5 }' | sed 's/s//'`
+ dforce=`grep dforce $file | awk '{ print $5 }' | sed 's/s//'`
+ total=`grep "CP " $file | grep WALL | sed 's/m \([[:digit:]]\)/m0\1/g;s/h \([[:digit:]]\)/h0\1/g' | awk '{ print $5 }'`
+ start=`grep starts $file | sed 's/^.* on //;s/ at /,/;s/ $//;s/ /0/g' `
+ end=`grep terminated $file | sed 's/^.* on: //;s/ at /,/;s/ *$//;s/^ *//;s/ /,/;s/ /0/g' `
+ echo "$i $start $end" >> ./qe-cp-$j.txt
+ echo "$i $fftw $ortho $dforce $total $start $end" >> qe-cp-${j}_full.txt
+ done
+ [ -d ../Results/QE ] && (mkdir -p ../Results/QE/CP/carp$i; cp $file ../Results/QE/CP/carp$i/)
+done
+[ -d ../Results/QE ] && cp qe-pw_full.txt qe-pw.txt qe-cp-?_full.txt qe-cp-?.txt ../Results/QE/
+
diff --git a/clusters/user/Results/cores.txt b/clusters/user/Results/cores.txt
new file mode 100644
index 0000000..79bc42a
--- /dev/null
+++ b/clusters/user/Results/cores.txt
@@ -0,0 +1,4 @@
+1
+4
+8
+16
diff --git a/clusters/user/Results/generate-graphs.sh b/clusters/user/Results/generate-graphs.sh
new file mode 100644
index 0000000..20ce038
--- /dev/null
+++ b/clusters/user/Results/generate-graphs.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+./onecluster.sh
+R --no-save < report.R
diff --git a/clusters/user/Results/miniFE-1.4/post.sh b/clusters/user/Results/miniFE-1.4/post.sh
new file mode 100755
index 0000000..5962bc6
--- /dev/null
+++ b/clusters/user/Results/miniFE-1.4/post.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# filename: post.sh
+# outputs grid size, cores, total program time to miniFE.txt
+# outputs all the values to miniFE-all.txt
+# copies itself to ../Results/miniFE-1.4
+# copies used files to ../Results/miniFE-1.4
+
+
+echo "size cores Total_Program_Time" > res_miniFE.txt
+echo "size cores Mat-struc-gen FE_assembly WAXPY_Time DOT_Time MATVEC_Time Total_CG_Time Total_Program_Time" > res_miniFE-complete.txt
+for size in `cat ../miniFE-sizes.txt`; do
+ for i in `cat ../cores.txt`; do
+ file=miniFE.$size.P$i.*.yaml
+ matstruc=`grep "Mat-struc-gen" $file | awk '{ print $3 }'`
+ fe=`grep "FE assembly " $file | awk '{ print $4 }'`
+ waxpy=`grep "WAXPY Time" $file | awk '{ print $3 }'`
+ dot=`grep "DOT Time" $file | awk '{ print $3 }'`
+ matvec=`grep "MATVEC Time" $file | awk '{ print $3 }'`
+ cg=`grep "Total CG Time" $file | awk '{ print $4 }'`
+ total=`grep "Total Program Time" $file | awk '{ print $4 }'`
+ echo "$size $i $matstruc $fe $waxpy $dot $matvec $cg $total" >> res_miniFE-complete.txt
+ echo "$size $i $total" >> res_miniFE.txt
+ [ -d ../Results/miniFE-1.4 ] && cp $file ../Results/miniFE-1.4/
+ done
+done
+[ -d ../Results/miniFE-1.4 ] && cp res_miniFE.txt res_miniFE-complete.txt ../Results/miniFE-1.4
diff --git a/clusters/user/Results/miniFE-sizes.txt b/clusters/user/Results/miniFE-sizes.txt
new file mode 100644
index 0000000..192d53d
--- /dev/null
+++ b/clusters/user/Results/miniFE-sizes.txt
@@ -0,0 +1,2 @@
+300x450x600
+500x500x600
diff --git a/clusters/user/Results/onemachine.R b/clusters/user/Results/onemachine.R
new file mode 100755
index 0000000..c788281
--- /dev/null
+++ b/clusters/user/Results/onemachine.R
@@ -0,0 +1,60 @@
+#!/usr/bin/Rscript
+
+args <- commandArgs(trailingOnly = TRUE)
+
+if (length(args) != 1) stop("Please specify a name for the platform the benchmakrs were run on")
+
+# GEAR
+gear <- read.table('GEAR/res_gear.txt', header=T)
+
+# CPMD
+cpmd <- read.table('CPMD/res_cpmd.txt', header=T)
+
+# QE
+qepw <- read.table('QE/qe-pw.txt', comment.char='', header=T)
+# transform total
+qstart <- strptime(as.character(qepw$start), format="%d%b%Y,%H:%M:%S")
+qend <- strptime(as.character(qepw$end), format="%H:%M:%S,%d%b%Y")
+qepw$total=as.integer(difftime(qend,qstart,units="secs"))
+qepw$start=NULL
+qepw$end=NULL
+
+qecp1 <- read.table('QE/qe-cp-1.txt', comment.char='', header=T)
+# transform total
+qstart <- strptime(as.character(qecp1$start), format="%d%b%Y,%H:%M:%S")
+qend <- strptime(as.character(qecp1$end), format="%H:%M:%S,%d%b%Y")
+qecp1$total=as.integer(difftime(qend,qstart,units="secs"))
+qecp1$start=NULL
+qecp1$end=NULL
+
+
+# transform total
+
+qecp2 <- read.table('QE/qe-cp-2.txt', comment.char='', header=T)
+qstart <- strptime(as.character(qecp2$start), format="%d%b%Y,%H:%M:%S")
+qend <- strptime(as.character(qecp2$end), format="%H:%M:%S,%d%b%Y")
+qecp2$total=as.integer(difftime(qend,qstart,units="secs"))
+qecp2$start=NULL
+qecp2$end=NULL
+
+qepw$bench="PW"
+qecp1$bench="CP1"
+qecp2$bench="CP2"
+
+qe=rbind(qepw,qecp1,qecp2)
+rm(qepw)
+rm(qecp1)
+rm(qecp2)
+rm(qstart)
+rm(qend)
+
+# MiniFE
+
+miniFE <- read.table('miniFE-1.4/res_miniFE.txt', header=T, comment.char="")
+
+cpmd$machine=args[1]
+gear$machine=args[1]
+miniFE$machine=args[1]
+qe$machine=args[1]
+
+save.image(file = "user.Rdata", version = 2, ascii = FALSE, safe = TRUE)
diff --git a/clusters/user/Results/post.sh b/clusters/user/Results/post.sh
new file mode 100755
index 0000000..6236f40
--- /dev/null
+++ b/clusters/user/Results/post.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+
+for b in CPMD GEAR miniFE-1.4 QE; do
+ cd $b
+ ./post.sh
+ cd ..
+done
diff --git a/clusters/user/Results/report.R b/clusters/user/Results/report.R
new file mode 100644
index 0000000..2c171c6
--- /dev/null
+++ b/clusters/user/Results/report.R
@@ -0,0 +1,146 @@
+load('user.Rdata')
+library(ggplot2)
+
+rougeflash="#E3051A"
+rougesc="#AE0010"
+ltgray="#8E938F"
+dkgray="#49423A"
+#mycol = "#552683"
+mycol = rougeflash
+col4=rougesc
+col3=ltgray
+col2=dkgray
+#bgcol="#E2E2E3"
+bgcol="#ffffff"
+
+
+pcpmd = ggplot(data=cpmd,
+ aes(x=cores,
+ y=value
+ )
+) + geom_point() + geom_line(color=mycol)+ scale_x_log10(breaks=2^(0:8)) +
+ scale_y_log10(breaks=2^(2:5)) + ggtitle("CPMD average iteration time")
+
+
+pgear = ggplot(data=gear,
+ aes(x=cores,
+ y=value
+ )
+) + geom_point() + geom_line(color=mycol)+ scale_x_log10(breaks=2^(0:8)) +
+ scale_y_log10(breaks=c(0.025,0.05,0.1,0.2)) + ggtitle("GEAR number of steps per unit of time")
+
+pminiFE = ggplot(data=miniFE,
+ aes(x=cores,
+ y=Total_Program_Time,
+ group=size, shape=size
+ )
+) + geom_point() + geom_line(color=mycol,aes(linetype=size))+
+ scale_x_log10(breaks=2^(0:8)) + scale_y_log10(breaks=10*2^(1:5)) + ggtitle("MiniFE time to solution")
+
+pqe = ggplot(data=qe,
+ aes(x=cores,
+ y=total,
+ group=bench, shape=bench
+ )
+) + geom_point() + geom_line(color=mycol,aes(linetype=bench))+ scale_x_log10(breaks=2^(0:8)) +
+ scale_y_log10(breaks=100*2^(-1:6)) + ggtitle("Quantum Espresso time to solution")
+
+
+
+
+library(extrafont)
+font_import() # Import all fonts
+fonts() # Print list of all fonts
+
+# Configure Theme
+kobe_theme <- function() {
+ theme(
+ plot.background = element_rect(fill = bgcol, colour = bgcol),
+ panel.background = element_rect(fill = bgcol),
+ panel.background = element_rect(fill = "white"),
+ axis.text = element_text(colour = col2, family = "Impact"),
+ plot.title = element_text(colour = mycol, face = "bold", size = 18, vjust = 1, family = "Impact"),
+ axis.title = element_text(colour = mycol, face = "bold", size = 13, family = "Impact"),
+ panel.grid.major.x = element_line(colour = col2),
+ panel.grid.minor.x = element_blank(),
+ panel.grid.major.y = element_blank(),
+ panel.grid.minor.y = element_blank(),
+ strip.text = element_text(family = "Impact", colour = "white"),
+ strip.background = element_rect(fill = col2),
+ axis.ticks = element_line(colour = col2)
+ )
+}
+
+x_id <- rep(12:1, 3) # use this index for reordering the x ticks
+
+kobe_theme2 <- function() {
+ theme(
+ legend.position = "bottom", legend.title = element_text(family = "Impact", colour = mycol, size = 10),
+ legend.background = element_rect(fill = bgcol),
+ legend.key = element_rect(fill = bgcol, colour = bgcol),
+ legend.text = element_text(family = "Impact", colour = col2, size = 10),
+ plot.background = element_rect(fill = bgcol, colour = bgcol),
+ panel.background = element_rect(fill = bgcol),
+ panel.background = element_rect(fill = "white"),
+ axis.text = element_text(colour = col2, family = "Impact"),
+ plot.title = element_text(colour = mycol, face = "bold", size = 18, vjust = 1, family = "Impact"),
+ axis.title = element_text(colour = mycol, face = "bold", size = 13, family = "Impact"),
+ panel.grid.major.y = element_line(colour = col2),
+ panel.grid.minor.y = element_blank(),
+ panel.grid.major.x = element_blank(),
+ panel.grid.minor.x = element_blank(),
+ strip.text = element_text(family = "Impact", colour = "white"),
+ strip.background = element_rect(fill = col2),
+ axis.ticks = element_line(colour = col2)
+ )
+}
+
+p0 <- pcpmd + kobe_theme2()
+p1 <- pgear + kobe_theme2()
+p2 <- pminiFE + kobe_theme2()
+p3 <- pqe + kobe_theme2()
+
+require(useful)
+
+
+library(grid)
+pdf("report.pdf", width = 10, height = 25)
+grid.newpage()
+pushViewport(viewport(layout = grid.layout(5, 3)))
+grid.rect(gp = gpar(fill = bgcol, col = bgcol))
+# grid.text: y=unit(%height,"npc")
+grid.text("BENCHMARKS", y = unit(1, "npc"), x = unit(0.5, "npc"), vjust = 1, hjust = .5, gp = gpar(fontfamily = "Impact", col = col3, cex = 11.2, alpha = 0.3))
+grid.text("TEXT", y = unit(0.95, "npc"), gp = gpar(fontfamily = "Impact", col = col4, cex = 6.4))
+grid.text("SOME TEXT", vjust = 0, y = unit(0.936, "npc"), gp = gpar(fontfamily = "Impact", col = mycol, cex = 0.8))
+grid.text("SOME OTHER TEXT", vjust = 0, y = unit(0.930, "npc"), gp = gpar(fontfamily = "Impact", col = mycol, cex = 0.8))
+grid.text("maybe.an.url", vjust = 0, y = unit(0.924, "npc"), gp = gpar(fontfamily = "Impact", col = mycol, cex = 0.8))
+grid.text("Benchmarks for the evaluation of some stuff", vjust = 0, hjust = 0, x = unit(0.01, "npc"), y = unit(0.905, "npc"), gp = gpar(fontfamily = "Impact", col = mycol, cex = 1.2))
+# version intelMPI et icc.
+# orange rect for "APPLICATIONS"
+grid.rect(gp = gpar(fill = col2, col = col2), x = unit(0.5, "npc"), y = unit(0.854, "npc"), width = unit(1, "npc"), height = unit(0.085, "npc"))
+grid.text("APPLICATIONS", y = unit(0.854, "npc"), x = unit(0.5, "npc"), vjust = .5, hjust = .5, gp = gpar(fontfamily = "Impact", col = col3, cex = 10.9, alpha = 0.3))
+grid.text("MACHINE INFO", vjust = 0, hjust = 0, x = unit(0.01, "npc"), y = unit(0.885, "npc"), gp = gpar(fontfamily = "Impact", col = "white", cex = 1.2))
+grid.text(paste(
+ "Machine ID",
+ "Number of nodes",
+ "Sockets per node",
+ "CPU model",
+ "Cores per socket",
+ "Frequency",
+ "Temporal Date", sep = "\n"), vjust = 0, hjust = 0, x = unit(0.01, "npc"), y = unit(0.83, "npc"), gp = gpar(fontfamily = "Impact", col = mycol, cex = 0.8))
+grid.text(paste(
+ args,
+ 1,
+ 2,
+ "Intel(R) Xeon(R) CPU E5-2660 v4@ 2.00GHz",
+ 14,
+ "2.0 GHz",
+ "April 7, 2016", sep = "\n"), vjust = 0, hjust = 0, x = unit(0.15, "npc"), y = unit(0.83, "npc"), gp = gpar(fontfamily = "Impact", col = mycol, cex = 0.8))
+
+
+print(p0, vp = vplayout(5, 1:3))
+print(p3, vp = vplayout(4, 1:3))
+print(p1, vp = vplayout(3, 1:3))
+print(p2, vp = vplayout(2, 1:3))
+dev.off()
+
diff --git a/clusters/user/cores.txt b/clusters/user/cores.txt
new file mode 120000
index 0000000..86ff064
--- /dev/null
+++ b/clusters/user/cores.txt
@@ -0,0 +1 @@
+Results/cores.txt
\ No newline at end of file
diff --git a/clusters/user/miniFE-1.4/makefile.intel.mpi b/clusters/user/miniFE-1.4/makefile.intel.mpi
new file mode 100644
index 0000000..40d3e3d
--- /dev/null
+++ b/clusters/user/miniFE-1.4/makefile.intel.mpi
@@ -0,0 +1,32 @@
+#-----------------------------------------------------------------------
+
+MINIFE_TYPES = \
+ -DMINIFE_SCALAR=double \
+ -DMINIFE_LOCAL_ORDINAL=int \
+ -DMINIFE_GLOBAL_ORDINAL=int
+
+#-----------------------------------------------------------------------
+
+CFLAGS = -O3 -xHost
+CXXFLAGS = -O3 -xHost
+
+# For debugging, the macro MINIFE_DEBUG will cause miniFE to dump a log file
+# from each proc containing various information.
+# This macro will also enable a somewhat expensive range-check on indices in
+# the exchange_externals function.
+
+# CPPFLAGS = -I. $(MINIFE_TYPES) -DMINIFE_DEBUG -DHAVE_MPI -DMPICH_IGNORE_CXX_SEEK
+CPPFLAGS = -I. $(MINIFE_TYPES) -DHAVE_MPI -DMPICH_IGNORE_CXX_SEEK
+
+LDFLAGS=
+LIBS=
+
+# The MPICH_IGNORE_CXX_SEEK macro is required for some mpich versions,
+# such as the one on my cygwin machine.
+
+CXX=mpiicpc
+CC=mpiicc
+
+include make_targets
+# include ./optional/make_targets
+
diff --git a/clusters/user/miniFE-1.4/post.sh b/clusters/user/miniFE-1.4/post.sh
new file mode 100755
index 0000000..5962bc6
--- /dev/null
+++ b/clusters/user/miniFE-1.4/post.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+# filename: post.sh
+# outputs grid size, cores, total program time to miniFE.txt
+# outputs all the values to miniFE-all.txt
+# copies itself to ../Results/miniFE-1.4
+# copies used files to ../Results/miniFE-1.4
+
+
+echo "size cores Total_Program_Time" > res_miniFE.txt
+echo "size cores Mat-struc-gen FE_assembly WAXPY_Time DOT_Time MATVEC_Time Total_CG_Time Total_Program_Time" > res_miniFE-complete.txt
+for size in `cat ../miniFE-sizes.txt`; do
+ for i in `cat ../cores.txt`; do
+ file=miniFE.$size.P$i.*.yaml
+ matstruc=`grep "Mat-struc-gen" $file | awk '{ print $3 }'`
+ fe=`grep "FE assembly " $file | awk '{ print $4 }'`
+ waxpy=`grep "WAXPY Time" $file | awk '{ print $3 }'`
+ dot=`grep "DOT Time" $file | awk '{ print $3 }'`
+ matvec=`grep "MATVEC Time" $file | awk '{ print $3 }'`
+ cg=`grep "Total CG Time" $file | awk '{ print $4 }'`
+ total=`grep "Total Program Time" $file | awk '{ print $4 }'`
+ echo "$size $i $matstruc $fe $waxpy $dot $matvec $cg $total" >> res_miniFE-complete.txt
+ echo "$size $i $total" >> res_miniFE.txt
+ [ -d ../Results/miniFE-1.4 ] && cp $file ../Results/miniFE-1.4/
+ done
+done
+[ -d ../Results/miniFE-1.4 ] && cp res_miniFE.txt res_miniFE-complete.txt ../Results/miniFE-1.4
diff --git a/clusters/user/miniFE-1.4/run_one_test b/clusters/user/miniFE-1.4/run_one_test
new file mode 100755
index 0000000..de4b188
--- /dev/null
+++ b/clusters/user/miniFE-1.4/run_one_test
@@ -0,0 +1,60 @@
+#!/bin/bash
+
+if [ $# != 4 ]; then
+echo "usage: run_one_test <np> <nx> <ny> <nz>"
+exit 1
+fi
+
+np=$1
+nx=$2
+ny=$3
+nz=$4
+
+echo " "
+echo "running miniFE test for np=${np}, nx=${nx} ny=${ny} nz=${nz}..."
+
+if [ ! -x miniFE.x ]; then
+echo "miniFE.x doesn't exist or isn't executable. Aborting."
+exit -1
+fi
+
+mpirun -np ${np} miniFE.x nx=${nx} ny=${ny} nz=${nz} >& miniFE_run.out
+rm miniFE_run.out
+
+if [ ! -f A.mtx.${np}.0 ]; then
+echo "matrix file A.mtx.${np}.0 doesn't exist. build miniFE with -DMINIFE_DEBUG."
+fi
+
+p=0
+while [ $p -lt ${np} ]; do
+diff A.mtx.${np}.$p gold_files/1x1x2_A.mtx.${np}.$p >& diff.A.$p.txt
+diff b.vec.${np}.$p gold_files/1x1x2_b.vec.${np}.$p >& diff.b.$p.txt
+diff x.vec.${np}.$p gold_files/1x1x2_x.vec.${np}.$p >& diff.x.$p.txt
+
+test_result="passed"
+if [ -s diff.A.$p.txt ]; then
+echo "TEST FAILED: see diff.A.${p}.txt"
+test_result="failed"
+fi
+
+if [ -s diff.b.$p.txt ]; then
+echo "TEST FAILED: see diff.b.${p}.txt"
+test_result="failed"
+fi
+
+if [ -s diff.x.$p.txt ]; then
+echo "TEST FAILED: see diff.x.${p}.txt"
+test_result="failed"
+fi
+
+if [ $test_result != "passed" ]; then
+echo "test failed"
+exit 1
+fi
+
+let p=p+1
+rm diff.*.txt
+done
+
+echo "tests passed"
+
diff --git a/clusters/user/miniFE-1.4/run_tests b/clusters/user/miniFE-1.4/run_tests
new file mode 100755
index 0000000..5e03399
--- /dev/null
+++ b/clusters/user/miniFE-1.4/run_tests
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+echo " "
+echo "running miniFE tests..."
+
+if [ ! -x miniFE.x ]; then
+echo "miniFE.x doesn't exist or isn't executable. Aborting."
+exit -1
+fi
+
+./run_one_test 1 1 1 2
+if [ $? != 0 ]; then
+echo "test failed"
+exit $?
+fi
+
+./run_one_test 2 1 1 2
+if [ $? != 0 ]; then
+echo "test failed"
+exit $?
+fi
+
diff --git a/clusters/user/miniFE-1.4/runme.sh b/clusters/user/miniFE-1.4/runme.sh
new file mode 100644
index 0000000..99da02d
--- /dev/null
+++ b/clusters/user/miniFE-1.4/runme.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+for i in `cat ../cores.txt`; do
+
+ if [ "$i" -eq 1 ]
+ then
+ continue
+ fi
+
+ for s in `cat ../miniFE-sizes.txt`; do
+ NX=`echo $s | cut -dx -f1`
+ NY=`echo $s | cut -dx -f2`
+ NZ=`echo $s | cut -dx -f3`
+ mpirun -np $i ./miniFE.x nx=$NX ny=$NY nz=$NZ
+ done
+done
+
diff --git a/clusters/user/miniFE-1.4/runme_slurm.sh b/clusters/user/miniFE-1.4/runme_slurm.sh
new file mode 100644
index 0000000..c8a016b
--- /dev/null
+++ b/clusters/user/miniFE-1.4/runme_slurm.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+# Author: Vittoria.Rezzonico@epfl.ch
+
+corespnode=`cat ../../cores_per_node.txt`
+cp1=`echo "$corespnode-1" | bc`
+
+for i in `cat ../cores.txt`; do
+
+ if [ "$i" -eq 1 ]
+ then
+ continue
+ fi
+
+ nodes=`echo "($i+$cp1)/$corespnode" | bc`
+ sed "s/--NODES--/$nodes/;s/--NP--/$i/" template.job > sub-$i.job
+ cat ../../cluster.job >> sub-$i.job
+ for s in `cat ../miniFE-sizes.txt`; do
+ NX=`echo $s | cut -dx -f1`
+ NY=`echo $s | cut -dx -f2`
+ NZ=`echo $s | cut -dx -f3`
+ echo "srun ./miniFE.x nx=$NX ny=$NY nz=$NZ" >> sub-$i.job
+ done
+ sbatch sub-$i.job
+done
+
diff --git a/clusters/user/miniFE-1.4/template.job b/clusters/user/miniFE-1.4/template.job
new file mode 100644
index 0000000..fb10d3d
--- /dev/null
+++ b/clusters/user/miniFE-1.4/template.job
@@ -0,0 +1,11 @@
+#!/bin/bash -l
+
+#SBATCH --nodes --NODES--
+#SBATCH --ntasks --NP--
+#SBATCH --cpus-per-task 1
+#SBATCH --time 00:55:00
+#SBATCH --job-name miniFE_--NP--
+#SBATCH --exclusive
+
+# follow cluster-specific content and run command
+
diff --git a/clusters/user/miniFE-sizes.txt b/clusters/user/miniFE-sizes.txt
new file mode 120000
index 0000000..46c75e8
--- /dev/null
+++ b/clusters/user/miniFE-sizes.txt
@@ -0,0 +1 @@
+Results/miniFE-sizes.txt
\ No newline at end of file
diff --git a/clusters/user/post.sh b/clusters/user/post.sh
new file mode 120000
index 0000000..9bc857d
--- /dev/null
+++ b/clusters/user/post.sh
@@ -0,0 +1 @@
+Results/post.sh
\ No newline at end of file
diff --git a/local-configs/aries.job b/local-configs/aries.job
new file mode 100644
index 0000000..a904d5d
--- /dev/null
+++ b/local-configs/aries.job
@@ -0,0 +1,2 @@
+module purge
+module load intel/15.0.0 intelmpi/5.0.1 mkl/11.2.2
diff --git a/local-configs/bellatrix.job b/local-configs/bellatrix.job
new file mode 100644
index 0000000..f5ff466
--- /dev/null
+++ b/local-configs/bellatrix.job
@@ -0,0 +1,10 @@
+module purge
+module load intel/15.0.2.164 intelmpi/5.0.1 mkl/11.2.2
+
+export OMP_NUM_THREADS=1
+
+unset I_MPI_PMI_LIBRARY
+
+export I_MPI_DEBUG=4
+--EXPORT_CPU_MASK--
+
diff --git a/local-configs/castor.job b/local-configs/castor.job
new file mode 100644
index 0000000..e054efb
--- /dev/null
+++ b/local-configs/castor.job
@@ -0,0 +1,3 @@
+#SBATCH --mem 58000
+module purge
+module load intel/15.0.2.164 intelmpi/5.0.1 mkl/11.2.2
diff --git a/local-configs/deneb.job b/local-configs/deneb.job
new file mode 100644
index 0000000..2b6b15d
--- /dev/null
+++ b/local-configs/deneb.job
@@ -0,0 +1,7 @@
+#SBATCH --constraint E5v2
+
+module purge
+module load intel/15.0.2.164 intelmpi/5.0.1 mkl/11.2.2
+
+export OMP_NUM_THREADS=1
+
diff --git a/local-configs/eltanin.job b/local-configs/eltanin.job
new file mode 100644
index 0000000..9415830
--- /dev/null
+++ b/local-configs/eltanin.job
@@ -0,0 +1,7 @@
+#SBATCH --constraint E5v3
+
+module purge
+module load intel/15.0.2.164 intelmpi/5.0.1 mkl/11.2.2
+
+export OMP_NUM_THREADS=1
+
diff --git a/local-configs/miniFE-model.job b/local-configs/miniFE-model.job
new file mode 100644
index 0000000..d823bda
--- /dev/null
+++ b/local-configs/miniFE-model.job
@@ -0,0 +1,11 @@
+#/bin/bash -l
+# Author: Vittoria.Rezzonico@epfl.ch
+#PBS -l select=--NODES--:ncpus=16
+#PBS -l walltime=10:00:00
+#PBS -N miniFE_--NP--
+
+module load intel/mpi/4.0.1 intel/12.1.2
+
+export OMP_NUM_THREADS=1
+cd $PBS_O_WORKDIR
+

Event Timeline