diff --git a/doc/solps/ELM_cycles.eps b/doc/solps/ELM_cycles.eps new file mode 100644 index 000000000..95d6accfc --- /dev/null +++ b/doc/solps/ELM_cycles.eps @@ -0,0 +1,1933 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: cairo 1.16.0 (https://cairographics.org) +%%CreationDate: Tue Jul 8 08:35:00 2025 +%%Pages: 1 +%%DocumentData: Clean7Bit +%%LanguageLevel: 2 +%%BoundingBox: 0 1 848 648 +%%EndComments +%%BeginProlog +50 dict begin +/q { gsave } bind def +/Q { grestore } bind def +/cm { 6 array astore concat } bind def +/w { setlinewidth } bind def +/J { setlinecap } bind def +/j { setlinejoin } bind def +/M { setmiterlimit } bind def +/d { setdash } bind def +/m { moveto } bind def +/l { lineto } bind def +/c { curveto } bind def +/h { closepath } bind def +/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto + 0 exch rlineto 0 rlineto closepath } bind def +/S { stroke } bind def +/f { fill } bind def +/f* { eofill } bind def +/n { newpath } bind def +/W { clip } bind def +/W* { eoclip } bind def +/BT { } bind def +/ET { } bind def +/BDC { mark 3 1 roll /BDC pdfmark } bind def +/EMC { mark /EMC pdfmark } bind def +/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def +/Tj { show currentpoint cairo_store_point } bind def +/TJ { + { + dup + type /stringtype eq + { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse + } forall + currentpoint cairo_store_point +} bind def +/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore + cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def +/Tf { pop /cairo_font exch def /cairo_font_matrix where + { pop cairo_selectfont } if } bind def +/Td { matrix translate cairo_font_matrix matrix concatmatrix dup + /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point + /cairo_font where { pop cairo_selectfont } if } bind def +/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def + cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def +/g { setgray } bind def +/rg { setrgbcolor } bind def +/d1 { setcachedevice } bind def +/cairo_data_source { + CairoDataIndex CairoData length lt + { CairoData CairoDataIndex get /CairoDataIndex CairoDataIndex 1 add def } + { () } ifelse +} def +/cairo_flush_ascii85_file { cairo_ascii85_file status { cairo_ascii85_file flushfile } if } def +/cairo_image { image cairo_flush_ascii85_file } def +/cairo_imagemask { imagemask cairo_flush_ascii85_file } def +%%EndProlog +%%BeginSetup +%%BeginResource: font DejaVuSans +11 dict begin +/FontType 42 def +/FontName /DejaVuSans def +/PaintType 0 def +/FontMatrix [ 1 0 0 1 0 0 ] def +/FontBBox [ 0 0 0 0 ] def +/Encoding 256 array def +0 1 255 { Encoding exch /.notdef put } for +Encoding 32 /space put +Encoding 40 /parenleft put +Encoding 41 /parenright put +Encoding 44 /comma put +Encoding 45 /hyphen put +Encoding 46 /period put +Encoding 48 /zero put +Encoding 49 /one put +Encoding 50 /two put +Encoding 51 /three put +Encoding 52 /four put +Encoding 53 /five put +Encoding 54 /six put +Encoding 56 /eight put +Encoding 61 /equal put +Encoding 65 /A put +Encoding 66 /B put +Encoding 67 /C put +Encoding 68 /D put +Encoding 69 /E put +Encoding 70 /F put +Encoding 71 /G put +Encoding 72 /H put +Encoding 73 /I put +Encoding 76 /L put +Encoding 77 /M put +Encoding 78 /N put +Encoding 79 /O put +Encoding 80 /P put +Encoding 82 /R put +Encoding 83 /S put +Encoding 84 /T put +Encoding 85 /U put +Encoding 86 /V put +Encoding 89 /Y put +Encoding 95 /underscore put +Encoding 105 /i put +Encoding 107 /k put +Encoding 114 /r put +Encoding 115 /s put +/CharStrings 41 dict dup begin +/.notdef 0 def +/zero 1 def +/period 2 def +/five 3 def +/one 4 def +/two 5 def +/hyphen 6 def +/three 7 def +/four 8 def +/six 9 def +/eight 10 def +/E 11 def +/L 12 def +/M 13 def +/underscore 14 def +/T 15 def +/I 16 def +/P 17 def +/R 18 def +/O 19 def +/D 20 def +/equal 21 def +/B 22 def +/G 23 def +/N 24 def +/space 25 def +/A 26 def +/U 27 def +/C 28 def +/V 29 def +/Y 30 def +/S 31 def +/H 32 def +/F 33 def +/parenleft 34 def +/comma 35 def +/i 36 def +/r 37 def +/k 38 def +/s 39 def +/parenright 40 def +end readonly def +/sfnts [ +<0001000000090080000300106376742000691d3900001814000001fe6670676d7134766a0000 +1a14000000ab676c7966307fd0080000009c00001778686561641e15fe9c00001ac000000036 +686865610d9f079600001af800000024686d7478c272170100001b1c000000a46c6f63610001 +e00800001bc0000000a86d6178700496067100001c6800000020707265703b07f10000001c88 +0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec +310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f272062900020087 +ffe3048f05f0000b00170023401306a01200a00c91128c18091c0f1e031c151b1810fcecf4ec +310010e4f4ec10ee30012202111012333212111002273200111000232200111000028b9c9d9d +9c9d9d9d9dfb0109fef7fbfbfef701090550fecdfeccfecdfecd0133013301340133a0fe73fe +86fe87fe73018d0179017a018d00000100db000001ae00fe00030011b7008302011900180410 +fcec31002fec3037331523dbd3d3fefe0001009effe3046405d5001d005e4023041a07118610 +1d1aa00714a010890d02a000810d8c07a41e171c010a031c000a10061e10fc014bb016544bb0 +14545b58b90010ffc038594bb00f5458b9001000403859c4d4ec10c4ee310010e4e4f4ec10e6 +ee10fec410ee1112393013211521113e0133320015140021222627351e013332363534262322 +0607dd0319fda02c582cfa0124fed4feef5ec3685ac06badcacaad51a15405d5aafe920f0ffe +eeeaf1fef52020cb3130b69c9cb624260000000100e10000045a05d5000a004040154203a004 +02a005810700a009081f061c03001f010b10d44bb00f5458b9000100403859ecc4fcec31002f +ec32f4ecd4ec304b5358592201b40f030f04025d3721110535253311211521fe014afe990165 +ca014afca4aa047348b848fad5aa0000000100960000044a05f0001c009e4027191a1b03181c +11050400110505044210a111940da014910400a00200100a02010a1c171003061d10fc4bb015 +544bb016545b4bb014545b58b90003ffc03859c4d4ecc0c011123931002fec32f4ecf4ec304b +5358071005ed0705ed01b01c1011173959220140325504560556077a047a05761b8719070400 +0419041a041b051c74007606751a731b741c82008619821a821b821ca800a81b115d005d2521 +1521353600373e0135342623220607353e01333204151406070600018902c1fc4c73018d3361 +4da7865fd3787ad458e80114455b19fef4aaaaaa7701913a6d974977964243cc3132e8c25ca5 +701dfeeb00000001006401df027f028300030011b6009c020401000410dccc310010d4ec3013 +21152164021bfde50283a4000001009cffe3047305f000280070402e0015130a86091f862013 +a0150da00993061ca020932391068c15a329161c13000314191c2620101c03141f09062910fc +4bb016544bb014545b58b90009ffc03859c4c4d4ecf4ec11173939310010ece4f4e4ec10e6ee +10ee10ee10ee11123930014009641e611f6120642104005d011e0115140421222627351e0133 +32363534262b013533323635342623220607353e01333204151406033f91a3fed0fee85ec76a +54c86dbec7b9a5aeb6959ea39853be7273c959e6010c8e03251fc490ddf22525c33132968f84 +95a67770737b2426b42020d1b27cab0000020064000004a405d50002000d0081401d010d030d +0003030d4200030b07a00501038109010c0a001c0608040c0e10dc4bb00b544bb00d545b58b9 +000cffc03859d43cc4ec32113931002fe4d43cec321239304b5358071004c9071005c9592201 +402a0b002a0048005900690077008a000716012b0026012b0336014e014f0c4f0d5601660175 +017a0385010d5d005d09012103331133152311231121350306fe0201fe35fed5d5c9fd5e0525 +fce303cdfc33a8fea00160c300000002008fffe3049605f0000b0024005840241306000d860c +00a01606a01c16a510a00c8922911c8c250c22091c191e131c03211f1b2510fcececf4ece431 +0010e4f4e4fce410ee10ee10ee111239304014cb00cb01cd02cd03cd04cb05cb0607a41eb21e +025d015d01220615141633323635342601152e01232202033e01333200151400232000111000 +21321602a4889f9f88889f9f01094c9b4cc8d30f3bb26be10105fef0e2fefdfeee0150011b4c +9b033bbaa2a1bbbba1a2ba0279b82426fef2feef575dfeefebe6feea018d0179016201a51e00 +00000003008bffe3048b05f0000b0023002f00434025180c00a02706a01e2da012911e8c27a3 +30180c242a1c15241c0f091c151b1e031c0f211b3010fcc4ecf4c4ec10ee10ee113939310010 +ece4f4ec10ee10ee393930012206151416333236353426252e01353424333216151406071e01 +151404232224353436131416333236353426232206028b90a5a59090a6a5fea5829100ffdedf +fe918192a3fef7f7f7fef7a448918382939382839102c59a87879a9b86879a5620b280b3d0d0 +b380b22022c68fd9e8e8d98fc60161748282747482820000000100c90000048b05d5000b002e +401506950402950081089504ad0a05010907031c00040c10fcec32d4c4c431002fececf4ec10 +ee30b21f0d01015d132115211121152111211521c903b0fd1a02c7fd3902f8fc3e05d5aafe46 +aafde3aa0000000100c90000046a05d500050025400c0295008104011c033a00040610fcecec +31002fe4ec304009300750078003800404015d133311211521c9ca02d7fc5f05d5fad5aa0001 +00c90000061f05d5000c00bf403403110708070211010208080702110302090a0901110a0a09 +420a070203080300af080b050908030201050a061c043e0a1c00040d10fcecfcec1117393100 +2f3cc4ec32111739304b5358071005ed071008ed071008ed071005ed5922b2700e01015d4056 +03070f080f09020a15021407130a260226072007260a200a3407350a69027c027b07790a8002 +8207820a90021604010b0313011b0323012c032708280934013c035608590965086a09760879 +0981018d0395019b03145d005d13210901211123110123011123c9012d017d017f012dc5fe7f +cbfe7fc405d5fc0803f8fa2b051ffc000400fae100000001ffecfe1d0414feac0003000fb500 +a90100020410c4c43100d4ec30011521350414fbd8feac8f8f0000000001fffa000004e905d5 +0007004a400e0602950081040140031c0040050810d4e4fce431002ff4ec3230014bb00a5458 +bd00080040000100080008ffc03811373859401300091f00100110021f071009400970099f09 +095d03211521112311210604effdeecbfdee05d5aafad5052b00000100c90000019305d50003 +002eb700af02011c00040410fc4bb0105458b9000000403859ec31002fec3001400d30054005 +500560058f059f05065d13331123c9caca05d5fa2b00000200c90000048d05d500080013003a +40180195100095098112100a0802040005190d3f11001c09041410fcec32fcec11173931002f +f4ecd4ec30400b0f151f153f155f15af1505015d011133323635342623252132041514042b01 +11230193fe8d9a9a8dfe3801c8fb0101fefffbfeca052ffdcf92878692a6e3dbdde2fda80002 +00c90000055405d50013001c00b14035090807030a0611030403051104040342060400150304 +15950914950d810b040506031109001c160e050a191904113f140a1c0c041d10fcec32fcc4ec +1117391139393931002f3cf4ecd4ec123912391239304b5358071005ed071005ed1117395922 +b2401e01015d40427a1301050005010502060307041500150114021603170425002501250226 +032706260726082609201e3601360246014602680575047505771388068807980698071f5d00 +5d011e01171323032e012b01112311212016151406011133323635342623038d417b3ecdd9bf +4a8b78dcca01c80100fc83fd89fe9295959202bc16907efe68017f9662fd8905d5d6d88dba02 +4ffdee878383850000020073ffe305d905f0000b00170023401306951200950c91128c180919 +0f33031915101810fcecfcec310010e4f4ec10ee300122001110003332001110002720001110 +002120001110000327dcfefd0103dcdc0101feffdc013a0178fe88fec6fec5fe870179054cfe +b8fee5fee6feb80148011a011b0148a4fe5bfe9efe9ffe5b01a40162016201a50000000200c9 +000005b005d500080011002e4015009509810195100802100a0005190d32001c09041210fcec +f4ec113939393931002fecf4ec30b2601301015d011133200011100021252120001110002901 +0193f40135011ffee1fecbfe42019f01b20196fe68fe50fe61052ffb770118012e012c0117a6 +fe97fe80fe7efe960000000200d9016005db03a200030007001c400d009c02069c0408050104 +00230810fc3cc432310010d4ecd4ec301321152115211521d90502fafe0502fafe03a2a8f0aa +0000000300c9000004ec05d5000800110020004340231900950a0995128101950aad1f110b08 +0213191f05000e1c1605191c2e09001c12042110fcec32fcecd4ec111739393931002fececf4 +ec10ee3930b20f2201015d01112132363534262301112132363534262325213216151406071e +01151404232101930144a39d9da3febc012b94919194fe0b0204e7fa807c95a5fef0fbfde802 +c9fddd878b8c850266fe3e6f727170a6c0b189a21420cb98c8da00010073ffe3058b05f0001d +0039402000051b0195031b950812a111ae15950e91088c1e02001c1134043318190b101e10fc +ecfce4fcc4310010e4f4ecf4ec10fed4ee113939302511213521110604232000111000213204 +17152e0123200011100021323604c3feb6021275fee6a0fea2fe75018b015e9201076f70fc8b +feeefeed011301126ba8d50191a6fd7f53550199016d016e01994846d75f60fecefed1fed2fe +ce250000000100c90000053305d500090079401e071101020102110607064207020300af0805 +060107021c0436071c00040a10fcecfcec11393931002f3cec323939304b5358071004ed0710 +04ed5922b21f0b01015d40303602380748024707690266078002070601090615011a06460149 +065701580665016906790685018a0695019a069f0b105d005d13210111331121011123c90110 +0296c4fef0fd6ac405d5fb1f04e1fa2b04e1fb1f000200100000056805d50002000a00c24041 +00110100040504021105050401110a030a0011020003030a0711050406110505040911030a08 +110a030a4200030795010381090509080706040302010009050a0b10d4c4173931002f3ce4d4 +ec1239304b5358071005ed0705ed071005ed0705ed071008ed071005ed071005ed071008ed59 +22b2200c01015d40420f010f020f070f080f005800760070008c000907010802060309041601 +190256015802500c67016802780176027c0372047707780887018802800c980299039604175d +005d090121013301230321032302bcfeee0225fe7be50239d288fd5f88d5050efd1903aefa2b +017ffe810000000100b2ffe3052905d50011004040160802110b0005950e8c09008112081c0a +38011c00411210fc4bb0105458b90000ffc03859ecfcec310010e432f4ec11393939393001b6 +1f138f139f13035d133311141633323635113311100021200011b2cbaec3c2aecbfedffee6fe +e5fedf05d5fc75f0d3d3f0038bfc5cfedcfed6012a01240000010073ffe3052705f000190036 +401a0da10eae0a951101a100ae04951791118c1a07190d003014101a10fcec32ec310010e4f4 +ecf4ec10eef6ee30b40f1b1f1b02015d01152e0123200011100021323637150e012320001110 +00213216052766e782ff00fef00110010082e7666aed84feadfe7a0186015386ed0562d55f5e +fec7fed8fed9fec75e5fd34848019f01670168019f470000000100100000056805d5000600b7 +402704110506050311020306060503110403000100021101010042030401af00060403020005 +05010710d4c4173931002fec3239304b5358071005ed071008ed071008ed071005ed5922b250 +0801015d406200032a03470447055a037d038303070600070208040906150114021a041a052a +002601260229042905250620083800330133023c043c05370648004501450249044905470659 +0056066602690469057a0076017602790479057506800898009706295d005d21013309013301 +024afdc6d301d901dad2fdc705d5fb1704e9fa2b0001fffc000004e705d50008009440280311 +0405040211010205050402110302080008011100000842020300af0602070440051c00400709 +10d4e4fce4123931002fec3239304b5358071005ed071008ed071008ed071005ed5922b2000a +01015d403c050214023502300230053008460240024005400851025105510865028402930210 +16011a031f0a2601290337013803400a670168037803700a9f0a0d5d005d0333090133011123 +1104d9019e019bd9fdf0cb05d5fd9a0266fcf2fd3902c700000000010087ffe304a205f00027 +007e403c0d0c020e0b021e1f1e080902070a021f1f1e420a0b1e1f0415010015a11494189511 +049500942591118c281e0a0b1f1b0700221b190e2d071914222810dcc4ecfcece41112393939 +39310010e4f4e4ec10eef6ee10c6111739304b535807100eed11173907100eed1117395922b2 +0f2901015db61f292f294f29035d01152e012322061514161f011e0115140421222627351e01 +3332363534262f012e01353424333216044873cc5fa5b377a67ae2d7feddfee76aef807bec72 +adbc879a7be2ca0117f569da05a4c53736807663651f192bd9b6d9e0302fd04546887e6e7c1f +182dc0abc6e42600000100c90000053b05d5000b002c4014089502ad0400810a0607031c0538 +09011c00040c10fcec32fcec3231002f3ce432fcec30b2500d01015d13331121113311231121 +1123c9ca02decacafd22ca05d5fd9c0264fa2b02c7fd3900000100c90000042305d500090029 +40120695040295008104ad08050107031c00040a10fcec32d4c431002fecf4ec10ee30b20f0b +01015d13211521112115211123c9035afd700250fdb0ca05d5aafe48aafd3700000100b0fef2 +027b0612000d0037400f069800970e0d070003120600130a0e10dc4bb0135458b9000affc038 +594bb00f5458b9000a00403859e432ec113939310010fcec3001060215141217232602353412 +37027b86828385a0969594970612e6fe3ee7e7fe3be5eb01c6e0df01c4ec0001009eff1201c3 +00fe00050019400c039e0083060304011900180610fcecd4cc310010fcec30373315032313f0 +d3a48152feacfec00140000200c100000179061400030007002b400e06be04b100bc02050108 +0400460810fc3cec3231002fe4fcec30400b1009400950096009700905015d13331123113315 +23c1b8b8b8b80460fba00614e900000100ba0000034a047b001100304014060b0700110b0387 +0eb809bc070a06080008461210fcc4ec3231002fe4f4ecc4d4cc11123930b450139f1302015d +012e012322061511231133153e0133321617034a1f492c9ca7b9b93aba85132e1c03b41211cb +befdb20460ae666305050000000100ba0000049c0614000a00bc402908110506050711060605 +03110405040211050504420805020303bc009709060501040608010800460b10fcec32d4c411 +3931002f3cece41739304b5358071004ed071005ed071005ed071004ed5922b2100c01015d40 +5f04020a081602270229052b0856026602670873027705820289058e08930296059708a30212 +09050906020b030a072803270428052b062b07400c6803600c8903850489058d068f079a0397 +07aa03a705b607c507d607f703f003f704f0041a5d71005d1333110133090123011123bab902 +25ebfdae026bf0fdc7b90614fc6901e3fdf4fdac0223fddd0001006fffe303c7047b002700e7 +403c0d0c020e0b531f1e080902070a531f1f1e420a0b1e1f041500860189041486158918b911 +04b925b8118c281e0a0b1f1b0700521b080e07081422452810fcc4ecd4ece411123939393931 +0010e4f4ec10fef5ee10f5ee121739304b535807100eed111739070eed1117395922b2002701 +015d406d1c0a1c0b1c0c2e092c0a2c0b2c0c3b093b0a3b0b3b0c0b200020012402280a280b2a +132f142f152a16281e281f292029212427860a860b860c860d12000000010202060a060b030c +030d030e030f03100319031a031b031c041d09272f293f295f297f2980299029a029f029185d +005d7101152e012322061514161f011e0115140623222627351e013332363534262f012e0135 +3436333216038b4ea85a898962943fc4a5f7d85ac36c66c661828c65ab40ab98e0ce66b4043f +ae282854544049210e2a99899cb62323be353559514b50250f2495829eac1e000000000100a4 +fef2026f0612000d001f400f079800970e0701000b12041308000e10dc3cf4ec113939310010 +fcec301333161215140207233612353402a4a096959596a08583830612ecfe3cdfe0fe3aebe5 +01c5e7e701c20000013500b800cb00cb00c100aa009c01a600b800660000007100cb00a002b2 +0085007500b800c301cb0189022d00cb00a600f000d300aa008700cb03aa0400014a003300cb +000000d9050200f4015400b4009c01390114013907060400044e04b4045204b804e704cd0037 +047304cd04600473013303a2055605a60556053903c5021200c9001f00b801df007300ba03e9 +033303bc0444040e00df03cd03aa00e503aa0404000000cb008f00a4007b00b80014016f007f +027b0252008f00c705cd009a009a006f00cb00cd019e01d300f000ba018300d5009803040248 +009e01d500c100cb00f600830354027f00000333026600d300c700a400cd008f009a00730400 +05d5010a00fe022b00a400b4009c00000062009c0000001d032d05d505d505d505f0007f007b +005400a406b80614072301d300b800cb00a601c301ec069300a000d3035c037103db01850423 +04a80448008f0139011401390360008f05d5019a0614072306660179046004600460047b009c +00000277046001aa00e904600762007b00c5007f027b000000b4025205cd006600bc00660077 +061000cd013b01850389008f007b0000001d00cd074a042f009c009c0000077d006f0000006f +0335006a006f007b00ae00b2002d0396008f027b00f600830354063705f6008f009c04e10266 +008f018d02f600cd03440029006604ee00730000140000960000b707060504030201002c2010 +b002254964b040515820c859212d2cb002254964b040515820c859212d2c20100720b00050b0 +0d7920b8ffff5058041b0559b0051cb0032508b0042523e120b00050b00d7920b8ffff505804 +1b0559b0051cb0032508e12d2c4b505820b0fd454459212d2cb002254560442d2c4b5358b002 +25b0022545445921212d2c45442d2cb00225b0022549b00525b005254960b0206368208a108a +233a8a10653a2d000001000000025eb85d0833745f0f3cf5001f080000000000dc592a5f0000 +0000dc592a5ff7d6fc4c0e5909dc00000008000200010000000000010000076dfe1d00000efe +f7d6fa510e5900010000000000000000000000000000002904cd006605170087028b00db0517 +009e051700e10517009602e300640517009c051700640517008f0517008b050e00c9047500c9 +06e700c90400ffec04e3fffa025c00c904d300c9058f00c9064c0073062900c906b400d9057d +00c90633007305fc00c9028b00000579001005db00b2059600730579001004e3fffc05140087 +060400c9049a00c9031f00b0028b009e023900c1034a00ba04a200ba042b006f031f00a40000 +000000000044000000c8000000f0000001b000000220000003200000034c00000434000004f0 +000005c80000069c000006fc000007400000083c00000868000008d800000920000009a00000 +0ab400000b4000000bc000000c0400000cb400000d5c00000e0400000e0400000f0000000f84 +0000101c000010fc000011c0000012b80000131400001368000013d800001410000014600000 +14d0000015c000001720000017780001000000290354002b0068000c00020010009900080000 +0415021600080004b8028040fffbfe03fa1403f92503f83203f79603f60e03f5fe03f4fe03f3 +2503f20e03f19603f02503ef8a4105effe03ee9603ed9603ecfa03ebfa03eafe03e93a03e842 +03e7fe03e63203e5e45305e59603e48a4105e45303e3e22f05e3fa03e22f03e1fe03e0fe03df +3203de1403dd9603dcfe03db1203da7d03d9bb03d8fe03d68a4105d67d03d5d44705d57d03d4 +4703d3d21b05d3fe03d21b03d1fe03d0fe03cffe03cefe03cd9603cccb1e05ccfe03cb1e03ca +3203c9fe03c6851105c61c03c51603c4fe03c3fe03c2fe03c1fe03c0fe03bffe03befe03bdfe +03bcfe03bbfe03ba1103b9862505b9fe03b8b7bb05b8fe03b7b65d05b7bb03b78004b6b52505 +b65d40ff03b64004b52503b4fe03b39603b2fe03b1fe03b0fe03affe03ae6403ad0e03acab25 +05ac6403abaa1205ab2503aa1203a98a4105a9fa03a8fe03a7fe03a6fe03a51203a4fe03a3a2 +0e05a33203a20e03a16403a08a4105a096039ffe039e9d0c059efe039d0c039c9b19059c6403 +9b9a10059b19039a1003990a0398fe0397960d0597fe03960d03958a410595960394930e0594 +2803930e0392fa039190bb0591fe03908f5d0590bb039080048f8e25058f5d038f40048e2503 +8dfe038c8b2e058cfe038b2e038a8625058a410389880b05891403880b038786250587640386 +85110586250385110384fe038382110583fe0382110381fe0380fe037ffe0340ff7e7d7d057e +fe037d7d037c64037b5415057b25037afe0379fe03780e03770c03760a0375fe0374fa0373fa +0372fa0371fa0370fe036ffe036efe036c21036bfe036a1142056a530369fe03687d03671142 +0566fe0365fe0364fe0363fe0362fe03613a0360fa035e0c035dfe035bfe035afe0359580a05 +59fa03580a035716190557320356fe035554150555420354150353011005531803521403514a +130551fe03500b034ffe034e4d10054efe034d10034cfe034b4a13054bfe034a4910054a1303 +491d0d05491003480d0347fe0346960345960344fe0343022d0543fa0342bb03414b0340fe03 +3ffe033e3d12053e14033d3c0f053d12033c3b0d053c40ff0f033b0d033afe0339fe03383714 +0538fa033736100537140336350b05361003350b03341e03330d0332310b0532fe03310b0330 +2f0b05300d032f0b032e2d09052e10032d09032c32032b2a25052b64032a2912052a25032912 +032827250528410327250326250b05260f03250b0324fe0323fe03220f032101100521120320 +64031ffa031e1d0d051e64031d0d031c1142051cfe031bfa031a42031911420519fe03186403 +1716190517fe031601100516190315fe0314fe0313fe031211420512fe0311022d0511420310 +7d030f64030efe030d0c16050dfe030c0110050c16030bfe030a100309fe0308022d0508fe03 +0714030664030401100504fe03401503022d0503fe0302011005022d0301100300fe0301b801 +64858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b +2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d00> +] def +/f-0-0 currentdict end definefont pop +%%EndResource +%%EndSetup +%%Page: 1 1 +%%BeginPageSetup +%%PageBoundingBox: 0 1 848 648 +%%EndPageSetup +q 0 1 848 647 rectclip +1 0 0 -1 0 648 cm q +Q q +0.059 0 847.941 646.941 re W n +q +0 0 848 647 re W n + q +1 g +0 0 848 647 re f + Q +Q +Q q +0.059 111.527 293.637 200 re W n +q +0 111 294 201 re W n + q +1 g +0.059 111.527 293.637 200 re f + Q +Q +q +0 111 294 201 re W n + q +1 g +0.059 111.527 293.637 200 re f + Q +Q +1 g +32.695 126.527 232.5 150.5 re f +0.14902 g +0.5 w +2 J +1 j +[] 0.0 d +10 M q 1 0 0 -1 0 0 cm +32.695 -277.027 m 265.195 -277.027 l S Q +q 1 0 0 -1 0 0 cm +32.695 -126.527 m 265.195 -126.527 l S Q +q 1 0 0 -1 0 0 cm +32.695 -277.027 m 32.695 -274.703 l S Q +q 1 0 0 -1 0 0 cm +90.82 -277.027 m 90.82 -274.703 l S Q +q 1 0 0 -1 0 0 cm +148.945 -277.027 m 148.945 -274.703 l S Q +q 1 0 0 -1 0 0 cm +207.07 -277.027 m 207.07 -274.703 l S Q +q 1 0 0 -1 0 0 cm +265.195 -277.027 m 265.195 -274.703 l S Q +q 1 0 0 -1 0 0 cm +32.695 -126.527 m 32.695 -128.852 l S Q +q 1 0 0 -1 0 0 cm +90.82 -126.527 m 90.82 -128.852 l S Q +q 1 0 0 -1 0 0 cm +148.945 -126.527 m 148.945 -128.852 l S Q +q 1 0 0 -1 0 0 cm +207.07 -126.527 m 207.07 -128.852 l S Q +q 1 0 0 -1 0 0 cm +265.195 -126.527 m 265.195 -128.852 l S Q +BT +10 0 0 -10 29.696401 291.026399 Tm +/f-0-0 1 Tf +[(0)-4856(0.5)-4823(1)]TJ +17.397893 0 Td +[(1.5)-4822(2)]TJ +ET +126.379 306.488 m 126.379 305.988 l 126.848 305.988 127.301 305.961 127.738 + 305.91 c 128.184 305.855 128.41 305.738 128.41 305.547 c 128.41 297.863 + l 128.41 297.664 128.352 297.539 128.238 297.488 c 128.133 297.434 127.957 + 297.41 127.707 297.41 c 127.113 297.41 l 126.34 297.41 125.793 297.582 +125.473 297.922 c 125.305 298.09 125.184 298.363 125.113 298.738 c 125.039 + 299.102 124.977 299.562 124.926 300.129 c 124.52 300.129 l 124.785 296.922 + l 133.348 296.922 l 133.613 300.129 l 133.207 300.129 l 133.145 299.523 + 133.082 299.047 133.02 298.707 c 132.957 298.352 132.836 298.09 132.66 +297.922 c 132.336 297.582 131.789 297.41 131.02 297.41 c 130.426 297.41 +l 130.258 297.41 130.129 297.418 130.035 297.438 c 129.941 297.449 129.863 + 297.492 129.801 297.562 c 129.746 297.629 129.723 297.727 129.723 297.863 + c 129.723 305.547 l 129.723 305.738 129.941 305.855 130.379 305.91 c 130.824 + 305.961 131.277 305.988 131.738 305.988 c 131.738 306.488 l 126.379 306.488 + l f +134.566 306.488 m 134.566 305.988 l 134.879 305.988 135.141 305.965 135.348 + 305.922 c 135.559 305.871 135.66 305.746 135.66 305.547 c 135.66 301.719 + l 135.66 301.367 135.59 301.148 135.441 301.062 c 135.309 300.98 135.035 + 300.938 134.629 300.938 c 134.629 300.457 l 136.645 300.297 l 136.645 305.547 + l 136.645 305.746 136.734 305.871 136.91 305.922 c 137.09 305.965 137.324 + 305.988 137.613 305.988 c 137.613 306.488 l h +135.16 297.891 m 135.16 297.684 135.234 297.508 135.379 297.363 c 135.535 + 297.207 135.719 297.129 135.926 297.129 c 136.051 297.129 136.176 297.164 + 136.301 297.238 c 136.426 297.301 136.52 297.391 136.582 297.516 c 136.656 + 297.633 136.691 297.758 136.691 297.891 c 136.691 298.09 136.613 298.266 + 136.457 298.422 c 136.301 298.582 136.125 298.66 135.926 298.66 c 135.719 + 298.66 135.535 298.582 135.379 298.422 c 135.234 298.266 135.16 298.09 +135.16 297.891 c f +138.441 306.488 m 138.441 305.988 l 138.754 305.988 139.012 305.965 139.223 + 305.922 c 139.43 305.871 139.535 305.746 139.535 305.547 c 139.535 301.719 + l 139.535 301.469 139.492 301.293 139.41 301.188 c 139.336 301.074 139.227 + 301.008 139.082 300.988 c 138.945 300.957 138.73 300.938 138.441 300.938 + c 138.441 300.457 l 140.473 300.297 l 140.473 301.672 l 140.66 301.266 +140.934 300.938 141.301 300.688 c 141.664 300.43 142.066 300.297 142.504 + 300.297 c 143.578 300.297 144.207 300.738 144.395 301.613 c 144.582 301.215 + 144.852 300.898 145.207 300.66 c 145.57 300.418 145.965 300.297 146.395 + 300.297 c 146.82 300.297 147.176 300.367 147.457 300.504 c 147.746 300.637 + 147.965 300.848 148.113 301.129 c 148.258 301.41 148.332 301.762 148.332 + 302.188 c 148.332 305.547 l 148.332 305.746 148.434 305.871 148.645 305.922 + c 148.852 305.965 149.113 305.988 149.426 305.988 c 149.426 306.488 l 146.223 + 306.488 l 146.223 305.988 l 146.543 305.988 146.805 305.965 147.004 305.922 + c 147.211 305.871 147.316 305.746 147.316 305.547 c 147.316 302.219 l 147.316 + 301.75 147.246 301.375 147.113 301.094 c 146.988 300.805 146.715 300.66 + 146.301 300.66 c 145.77 300.66 145.328 300.879 144.973 301.312 c 144.617 + 301.742 144.441 302.23 144.441 302.785 c 144.441 305.547 l 144.441 305.746 + 144.543 305.871 144.754 305.922 c 144.961 305.965 145.223 305.988 145.535 + 305.988 c 145.535 306.488 l 142.332 306.488 l 142.332 305.988 l 142.656 + 305.988 142.914 305.965 143.113 305.922 c 143.32 305.871 143.426 305.746 + 143.426 305.547 c 143.426 302.219 l 143.426 301.773 143.355 301.402 143.223 + 301.113 c 143.098 300.809 142.828 300.66 142.41 300.66 c 141.867 300.66 + 141.418 300.879 141.066 301.312 c 140.723 301.742 140.551 302.23 140.551 + 302.785 c 140.551 305.547 l 140.551 305.746 140.652 305.871 140.863 305.922 + c 141.07 305.965 141.332 305.988 141.645 305.988 c 141.645 306.488 l 138.441 + 306.488 l f +153.168 306.641 m 152.598 306.641 152.07 306.496 151.59 306.207 c 151.121 + 305.902 150.754 305.504 150.48 305.004 c 150.211 304.504 150.078 303.977 + 150.078 303.422 c 150.078 302.871 150.203 302.352 150.453 301.863 c 150.703 + 301.371 151.047 300.977 151.48 300.672 c 151.93 300.363 152.426 300.207 + 152.965 300.207 c 153.402 300.207 153.777 300.277 154.09 300.422 c 154.406 + 300.57 154.664 300.773 154.871 301.035 c 155.082 301.285 155.238 301.582 + 155.34 301.922 c 155.445 302.266 155.496 302.648 155.496 303.062 c 155.496 + 303.191 155.449 303.254 155.355 303.254 c 151.293 303.254 l 151.293 303.41 + l 151.293 304.18 151.449 304.848 151.762 305.41 c 152.078 305.961 152.586 + 306.238 153.293 306.238 c 153.586 306.238 153.852 306.172 154.09 306.047 + c 154.332 305.914 154.539 305.734 154.715 305.516 c 154.902 305.289 155.027 + 305.043 155.09 304.785 c 155.102 304.754 155.117 304.727 155.137 304.707 + c 155.168 304.676 155.203 304.66 155.23 304.66 c 155.355 304.66 l 155.449 + 304.66 155.496 304.715 155.496 304.832 c 155.363 305.363 155.074 305.801 + 154.637 306.141 c 154.203 306.477 153.711 306.641 153.168 306.641 c h +151.309 302.91 m 154.496 302.91 l 154.496 302.555 154.449 302.199 154.355 + 301.844 c 154.262 301.48 154.102 301.18 153.871 300.938 c 153.645 300.699 + 153.34 300.582 152.965 300.582 c 152.445 300.582 152.039 300.832 151.746 + 301.332 c 151.457 301.82 151.309 302.348 151.309 302.91 c f +162.23 309.988 m 162.23 295.988 l 164.137 295.988 l 164.137 296.547 l 162.793 + 296.547 l 162.793 309.422 l 164.137 309.422 l 164.137 309.988 l 162.23 +309.988 l f +164.93 306.535 m 164.93 304.238 l 164.93 304.164 164.973 304.129 165.055 + 304.129 c 165.227 304.129 l 165.281 304.129 165.316 304.164 165.34 304.238 + c 165.598 305.59 166.223 306.266 167.215 306.266 c 167.66 306.266 168.031 + 306.168 168.324 305.969 c 168.625 305.773 168.773 305.465 168.773 305.047 + c 168.773 304.746 168.656 304.492 168.418 304.285 c 168.188 304.066 167.918 + 303.918 167.602 303.844 c 166.668 303.66 l 166.352 303.586 166.066 303.48 + 165.805 303.344 c 165.547 303.199 165.332 303.012 165.168 302.785 c 165.008 + 302.543 164.93 302.266 164.93 301.957 c 164.93 301.547 165.035 301.215 +165.246 300.957 c 165.465 300.695 165.746 300.508 166.09 300.391 c 166.441 + 300.266 166.816 300.207 167.215 300.207 c 167.691 300.207 168.109 300.336 + 168.465 300.594 c 168.871 300.254 l 168.871 300.223 168.895 300.207 168.949 + 300.207 c 169.043 300.207 l 169.074 300.207 169.098 300.223 169.121 300.254 + c 169.141 300.273 169.148 300.301 169.148 300.332 c 169.148 302.16 l 169.148 + 302.242 169.113 302.285 169.043 302.285 c 168.871 302.285 l 168.785 302.285 + 168.746 302.242 168.746 302.16 c 168.746 301.668 168.609 301.277 168.34 + 300.988 c 168.066 300.684 167.688 300.535 167.199 300.535 c 166.781 300.535 + 166.418 300.613 166.102 300.766 c 165.801 300.926 165.648 301.188 165.648 + 301.562 c 165.648 301.824 165.758 302.039 165.977 302.207 c 166.207 302.371 + 166.469 302.492 166.762 302.562 c 167.715 302.754 l 168.023 302.824 168.316 + 302.949 168.59 303.129 c 168.871 303.293 169.09 303.512 169.246 303.785 + c 169.41 304.043 169.496 304.34 169.496 304.672 c 169.496 305.008 169.438 + 305.297 169.324 305.547 c 169.207 305.797 169.047 306.008 168.84 306.172 + c 168.629 306.332 168.383 306.445 168.102 306.516 c 167.824 306.602 167.523 + 306.641 167.215 306.641 c 166.629 306.641 166.137 306.445 165.727 306.047 + c 165.215 306.613 l 165.215 306.633 165.188 306.641 165.137 306.641 c 165.055 + 306.641 l 164.973 306.641 164.93 306.605 164.93 306.535 c f +170.297 309.988 m 170.297 309.422 l 171.656 309.422 l 171.656 296.547 l + 170.297 296.547 l 170.297 295.988 l 172.219 295.988 l 172.219 309.988 l + 170.297 309.988 l f +239.164 307.246 m 239.164 307.195 239.18 307.141 239.211 307.09 c 241.289 + 305.027 l 239.211 302.949 l 239.18 302.918 239.164 302.871 239.164 302.809 + c 239.164 302.766 239.188 302.723 239.227 302.684 c 239.27 302.641 239.316 + 302.621 239.367 302.621 c 239.41 302.621 239.461 302.641 239.523 302.684 + c 241.586 304.746 l 243.648 302.684 l 243.703 302.641 243.75 302.621 243.789 + 302.621 c 243.852 302.621 243.898 302.641 243.93 302.684 c 243.973 302.715 + 243.992 302.754 243.992 302.809 c 243.992 302.871 243.977 302.918 243.945 + 302.949 c 241.867 305.027 l 243.945 307.09 l 243.977 307.141 243.992 307.195 + 243.992 307.246 c 243.992 307.297 243.973 307.344 243.93 307.387 c 243.898 + 307.418 243.852 307.434 243.789 307.434 c 243.75 307.434 243.703 307.41 + 243.648 307.371 c 241.586 305.309 l 239.523 307.371 l 239.473 307.41 239.422 + 307.434 239.367 307.434 c 239.316 307.434 239.27 307.41 239.227 307.371 + c 239.188 307.328 239.164 307.285 239.164 307.246 c f +BT +10 0 0 -10 245.69641 307.526399 Tm +/f-0-0 1 Tf +(10)Tj +8 0 0 -8 257.696411 302.526396 Tm +(-3)Tj +ET +q 1 0 0 -1 0 0 cm +32.695 -277.027 m 32.695 -126.527 l S Q +q 1 0 0 -1 0 0 cm +265.195 -277.027 m 265.195 -126.527 l S Q +q 1 0 0 -1 0 0 cm +32.695 -277.027 m 35.02 -277.027 l S Q +q 1 0 0 -1 0 0 cm +32.695 -251.945 m 35.02 -251.945 l S Q +q 1 0 0 -1 0 0 cm +32.695 -226.859 m 35.02 -226.859 l S Q +q 1 0 0 -1 0 0 cm +32.695 -201.777 m 35.02 -201.777 l S Q +q 1 0 0 -1 0 0 cm +32.695 -176.695 m 35.02 -176.695 l S Q +q 1 0 0 -1 0 0 cm +32.695 -151.609 m 35.02 -151.609 l S Q +q 1 0 0 -1 0 0 cm +32.695 -126.527 m 35.02 -126.527 l S Q +q 1 0 0 -1 0 0 cm +265.195 -277.027 m 262.871 -277.027 l S Q +q 1 0 0 -1 0 0 cm +265.195 -251.945 m 262.871 -251.945 l S Q +q 1 0 0 -1 0 0 cm +265.195 -226.859 m 262.871 -226.859 l S Q +q 1 0 0 -1 0 0 cm +265.195 -201.777 m 262.871 -201.777 l S Q +q 1 0 0 -1 0 0 cm +265.195 -176.695 m 262.871 -176.695 l S Q +q 1 0 0 -1 0 0 cm +265.195 -151.609 m 262.871 -151.609 l S Q +q 1 0 0 -1 0 0 cm +265.195 -126.527 m 262.871 -126.527 l S Q +BT +10 0 0 -10 22.696401 280.526399 Tm +/f-0-0 1 Tf +(0)Tj +0 2.508 Td +(2)Tj +0 2.508 Td +(4)Tj +0 2.508 Td +(6)Tj +0 2.508 Td +(8)Tj +-0.6 2.508 Td +(10)Tj +0 2.507999 Td +(12)Tj +ET +0 0.447059 0.741176 rg +1.5 w +0 J +q 1 0 0 -1 0 0 cm +33.859 -260.371 m 35.02 -260.371 l 41.223 -260.371 47.422 -260.371 53.621 + -260.371 c 54.785 -260.371 l 55.945 -146.984 l 57.109 -146.984 l 71.445 + -146.984 85.785 -146.984 100.121 -146.984 c 101.285 -146.984 l 102.445 +-260.371 l 103.609 -260.371 l 125.695 -260.371 147.785 -260.371 169.871 +-260.371 c 171.035 -260.371 l 172.195 -146.984 l 173.359 -146.984 l 187.695 + -146.984 202.035 -146.984 216.371 -146.984 c 217.535 -146.984 l 218.695 + -260.371 l 219.859 -260.371 l 234.586 -260.371 249.309 -260.371 264.035 + -260.371 c 265.195 -260.371 l S Q +Q q +1 g +272.047 111.527 300 200 re f +272.047 111.527 300 200 re f +311.047 126.527 232.5 150.5 re f +0.14902 g +0.5 w +2 J +1 j +[] 0.0 d +10 M q 1 0 0 -1 0 0 cm +311.047 -277.027 m 543.547 -277.027 l S Q +q 1 0 0 -1 0 0 cm +311.047 -126.527 m 543.547 -126.527 l S Q +q 1 0 0 -1 0 0 cm +311.047 -277.027 m 311.047 -274.703 l S Q +q 1 0 0 -1 0 0 cm +369.172 -277.027 m 369.172 -274.703 l S Q +q 1 0 0 -1 0 0 cm +427.297 -277.027 m 427.297 -274.703 l S Q +q 1 0 0 -1 0 0 cm +485.422 -277.027 m 485.422 -274.703 l S Q +q 1 0 0 -1 0 0 cm +543.547 -277.027 m 543.547 -274.703 l S Q +q 1 0 0 -1 0 0 cm +311.047 -126.527 m 311.047 -128.852 l S Q +q 1 0 0 -1 0 0 cm +369.172 -126.527 m 369.172 -128.852 l S Q +q 1 0 0 -1 0 0 cm +427.297 -126.527 m 427.297 -128.852 l S Q +q 1 0 0 -1 0 0 cm +485.422 -126.527 m 485.422 -128.852 l S Q +q 1 0 0 -1 0 0 cm +543.547 -126.527 m 543.547 -128.852 l S Q +BT +10 0 0 -10 308.046816 291.026399 Tm +/f-0-0 1 Tf +[(0)-4856(0.5)-4823(1)]TJ +17.397893 0 Td +[(1.5)-4822(2)]TJ +ET +404.73 306.488 m 404.73 305.988 l 405.199 305.988 405.652 305.961 406.086 + 305.91 c 406.535 305.855 406.762 305.738 406.762 305.547 c 406.762 297.863 + l 406.762 297.664 406.703 297.539 406.586 297.488 c 406.484 297.434 406.309 + 297.41 406.059 297.41 c 405.461 297.41 l 404.691 297.41 404.145 297.582 + 403.82 297.922 c 403.656 298.09 403.535 298.363 403.461 298.738 c 403.391 + 299.102 403.328 299.562 403.273 300.129 c 402.867 300.129 l 403.137 296.922 + l 411.695 296.922 l 411.961 300.129 l 411.559 300.129 l 411.492 299.523 + 411.434 299.047 411.367 298.707 c 411.305 298.352 411.188 298.09 411.012 + 297.922 c 410.688 297.582 410.141 297.41 409.367 297.41 c 408.773 297.41 + l 408.609 297.41 408.477 297.418 408.387 297.438 c 408.289 297.449 408.211 + 297.492 408.148 297.562 c 408.098 297.629 408.07 297.727 408.07 297.863 + c 408.07 305.547 l 408.07 305.738 408.289 305.855 408.73 305.91 c 409.176 + 305.961 409.629 305.988 410.086 305.988 c 410.086 306.488 l 404.73 306.488 + l f +412.918 306.488 m 412.918 305.988 l 413.23 305.988 413.492 305.965 413.699 + 305.922 c 413.906 305.871 414.012 305.746 414.012 305.547 c 414.012 301.719 + l 414.012 301.367 413.938 301.148 413.793 301.062 c 413.656 300.98 413.387 + 300.938 412.98 300.938 c 412.98 300.457 l 414.996 300.297 l 414.996 305.547 + l 414.996 305.746 415.086 305.871 415.262 305.922 c 415.438 305.965 415.672 + 305.988 415.965 305.988 c 415.965 306.488 l h +413.512 297.891 m 413.512 297.684 413.586 297.508 413.73 297.363 c 413.887 + 297.207 414.07 297.129 414.277 297.129 c 414.402 297.129 414.527 297.164 + 414.652 297.238 c 414.777 297.301 414.871 297.391 414.934 297.516 c 415.004 + 297.633 415.043 297.758 415.043 297.891 c 415.043 298.09 414.965 298.266 + 414.809 298.422 c 414.652 298.582 414.477 298.66 414.277 298.66 c 414.07 + 298.66 413.887 298.582 413.73 298.422 c 413.586 298.266 413.512 298.09 +413.512 297.891 c f +416.789 306.488 m 416.789 305.988 l 417.105 305.988 417.363 305.965 417.57 + 305.922 c 417.781 305.871 417.887 305.746 417.887 305.547 c 417.887 301.719 + l 417.887 301.469 417.844 301.293 417.762 301.188 c 417.688 301.074 417.578 + 301.008 417.434 300.988 c 417.297 300.957 417.082 300.938 416.789 300.938 + c 416.789 300.457 l 418.82 300.297 l 418.82 301.672 l 419.012 301.266 419.285 + 300.938 419.648 300.688 c 420.016 300.43 420.414 300.297 420.855 300.297 + c 421.926 300.297 422.559 300.738 422.742 301.613 c 422.93 301.215 423.203 + 300.898 423.559 300.66 c 423.922 300.418 424.316 300.297 424.742 300.297 + c 425.172 300.297 425.527 300.367 425.809 300.504 c 426.098 300.637 426.316 + 300.848 426.461 301.129 c 426.609 301.41 426.684 301.762 426.684 302.188 + c 426.684 305.547 l 426.684 305.746 426.785 305.871 426.992 305.922 c 427.203 + 305.965 427.461 305.988 427.773 305.988 c 427.773 306.488 l 424.57 306.488 + l 424.57 305.988 l 424.895 305.988 425.156 305.965 425.355 305.922 c 425.562 + 305.871 425.664 305.746 425.664 305.547 c 425.664 302.219 l 425.664 301.75 + 425.598 301.375 425.461 301.094 c 425.336 300.805 425.066 300.66 424.648 + 300.66 c 424.117 300.66 423.676 300.879 423.32 301.312 c 422.969 301.742 + 422.789 302.23 422.789 302.785 c 422.789 305.547 l 422.789 305.746 422.895 + 305.871 423.105 305.922 c 423.312 305.965 423.57 305.988 423.887 305.988 + c 423.887 306.488 l 420.684 306.488 l 420.684 305.988 l 421.004 305.988 + 421.266 305.965 421.461 305.922 c 421.672 305.871 421.773 305.746 421.773 + 305.547 c 421.773 302.219 l 421.773 301.773 421.707 301.402 421.57 301.113 + c 421.445 300.809 421.176 300.66 420.762 300.66 c 420.219 300.66 419.77 + 300.879 419.414 301.312 c 419.07 301.742 418.898 302.23 418.898 302.785 + c 418.898 305.547 l 418.898 305.746 419.004 305.871 419.211 305.922 c 419.422 + 305.965 419.68 305.988 419.992 305.988 c 419.992 306.488 l 416.789 306.488 + l f +431.52 306.641 m 430.945 306.641 430.422 306.496 429.941 306.207 c 429.473 + 305.902 429.105 305.504 428.832 305.004 c 428.562 304.504 428.426 303.977 + 428.426 303.422 c 428.426 302.871 428.551 302.352 428.801 301.863 c 429.051 + 301.371 429.395 300.977 429.832 300.672 c 430.281 300.363 430.777 300.207 + 431.316 300.207 c 431.754 300.207 432.129 300.277 432.441 300.422 c 432.754 + 300.57 433.016 300.773 433.223 301.035 c 433.434 301.285 433.586 301.582 + 433.691 301.922 c 433.797 302.266 433.848 302.648 433.848 303.062 c 433.848 + 303.191 433.801 303.254 433.707 303.254 c 429.645 303.254 l 429.645 303.41 + l 429.645 304.18 429.801 304.848 430.113 305.41 c 430.426 305.961 430.938 + 306.238 431.645 306.238 c 431.938 306.238 432.203 306.172 432.441 306.047 + c 432.684 305.914 432.891 305.734 433.066 305.516 c 433.254 305.289 433.379 + 305.043 433.441 304.785 c 433.453 304.754 433.469 304.727 433.488 304.707 + c 433.52 304.676 433.551 304.66 433.582 304.66 c 433.707 304.66 l 433.801 + 304.66 433.848 304.715 433.848 304.832 c 433.711 305.363 433.426 305.801 + 432.988 306.141 c 432.551 306.477 432.062 306.641 431.52 306.641 c h +429.66 302.91 m 432.848 302.91 l 432.848 302.555 432.801 302.199 432.707 + 301.844 c 432.613 301.48 432.453 301.18 432.223 300.938 c 431.992 300.699 + 431.691 300.582 431.316 300.582 c 430.797 300.582 430.391 300.832 430.098 + 301.332 c 429.809 301.82 429.66 302.348 429.66 302.91 c f +440.582 309.988 m 440.582 295.988 l 442.488 295.988 l 442.488 296.547 l + 441.145 296.547 l 441.145 309.422 l 442.488 309.422 l 442.488 309.988 l + 440.582 309.988 l f +443.281 306.535 m 443.281 304.238 l 443.281 304.164 443.324 304.129 443.406 + 304.129 c 443.578 304.129 l 443.629 304.129 443.668 304.164 443.688 304.238 + c 443.949 305.59 444.574 306.266 445.562 306.266 c 446.012 306.266 446.383 + 306.168 446.672 305.969 c 446.977 305.773 447.125 305.465 447.125 305.047 + c 447.125 304.746 447.004 304.492 446.766 304.285 c 446.539 304.066 446.266 + 303.918 445.953 303.844 c 445.016 303.66 l 444.703 303.586 444.418 303.48 + 444.156 303.344 c 443.898 303.199 443.684 303.012 443.516 302.785 c 443.359 + 302.543 443.281 302.266 443.281 301.957 c 443.281 301.547 443.387 301.215 + 443.594 300.957 c 443.812 300.695 444.094 300.508 444.438 300.391 c 444.793 + 300.266 445.168 300.207 445.562 300.207 c 446.043 300.207 446.457 300.336 + 446.812 300.594 c 447.219 300.254 l 447.219 300.223 447.246 300.207 447.297 + 300.207 c 447.391 300.207 l 447.422 300.207 447.449 300.223 447.469 300.254 + c 447.492 300.273 447.5 300.301 447.5 300.332 c 447.5 302.16 l 447.5 302.242 + 447.465 302.285 447.391 302.285 c 447.219 302.285 l 447.137 302.285 447.094 + 302.242 447.094 302.16 c 447.094 301.668 446.961 301.277 446.688 300.988 + c 446.418 300.684 446.035 300.535 445.547 300.535 c 445.129 300.535 444.766 + 300.613 444.453 300.766 c 444.152 300.926 444 301.188 444 301.562 c 444 + 301.824 444.109 302.039 444.328 302.207 c 444.559 302.371 444.82 302.492 + 445.109 302.562 c 446.062 302.754 l 446.375 302.824 446.668 302.949 446.938 + 303.129 c 447.219 303.293 447.438 303.512 447.594 303.785 c 447.762 304.043 + 447.844 304.34 447.844 304.672 c 447.844 305.008 447.789 305.297 447.672 + 305.547 c 447.559 305.797 447.398 306.008 447.188 306.172 c 446.98 306.332 + 446.734 306.445 446.453 306.516 c 446.172 306.602 445.875 306.641 445.562 + 306.641 c 444.98 306.641 444.484 306.445 444.078 306.047 c 443.562 306.613 + l 443.562 306.633 443.539 306.641 443.484 306.641 c 443.406 306.641 l 443.324 + 306.641 443.281 306.605 443.281 306.535 c f +448.648 309.988 m 448.648 309.422 l 450.008 309.422 l 450.008 296.547 l + 448.648 296.547 l 448.648 295.988 l 450.57 295.988 l 450.57 309.988 l 448.648 + 309.988 l f +517.516 307.246 m 517.516 307.195 517.531 307.141 517.562 307.09 c 519.641 + 305.027 l 517.562 302.949 l 517.531 302.918 517.516 302.871 517.516 302.809 + c 517.516 302.766 517.535 302.723 517.578 302.684 c 517.621 302.641 517.668 + 302.621 517.719 302.621 c 517.758 302.621 517.812 302.641 517.875 302.684 + c 519.938 304.746 l 522 302.684 l 522.051 302.641 522.098 302.621 522.141 + 302.621 c 522.203 302.621 522.25 302.641 522.281 302.684 c 522.324 302.715 + 522.344 302.754 522.344 302.809 c 522.344 302.871 522.328 302.918 522.297 + 302.949 c 520.219 305.027 l 522.297 307.09 l 522.328 307.141 522.344 307.195 + 522.344 307.246 c 522.344 307.297 522.324 307.344 522.281 307.387 c 522.25 + 307.418 522.203 307.434 522.141 307.434 c 522.098 307.434 522.051 307.41 + 522 307.371 c 519.938 305.309 l 517.875 307.371 l 517.824 307.41 517.77 + 307.434 517.719 307.434 c 517.668 307.434 517.621 307.41 517.578 307.371 + c 517.535 307.328 517.516 307.285 517.516 307.246 c f +BT +10 0 0 -10 524.046825 307.526399 Tm +/f-0-0 1 Tf +(10)Tj +8 0 0 -8 536.046825 302.526396 Tm +(-3)Tj +ET +q 1 0 0 -1 0 0 cm +311.047 -277.027 m 311.047 -126.527 l S Q +q 1 0 0 -1 0 0 cm +543.547 -277.027 m 543.547 -126.527 l S Q +q 1 0 0 -1 0 0 cm +311.047 -277.027 m 313.371 -277.027 l S Q +q 1 0 0 -1 0 0 cm +311.047 -251.945 m 313.371 -251.945 l S Q +q 1 0 0 -1 0 0 cm +311.047 -226.859 m 313.371 -226.859 l S Q +q 1 0 0 -1 0 0 cm +311.047 -201.777 m 313.371 -201.777 l S Q +q 1 0 0 -1 0 0 cm +311.047 -176.695 m 313.371 -176.695 l S Q +q 1 0 0 -1 0 0 cm +311.047 -151.609 m 313.371 -151.609 l S Q +q 1 0 0 -1 0 0 cm +311.047 -126.527 m 313.371 -126.527 l S Q +q 1 0 0 -1 0 0 cm +543.547 -277.027 m 541.223 -277.027 l S Q +q 1 0 0 -1 0 0 cm +543.547 -251.945 m 541.223 -251.945 l S Q +q 1 0 0 -1 0 0 cm +543.547 -226.859 m 541.223 -226.859 l S Q +q 1 0 0 -1 0 0 cm +543.547 -201.777 m 541.223 -201.777 l S Q +q 1 0 0 -1 0 0 cm +543.547 -176.695 m 541.223 -176.695 l S Q +q 1 0 0 -1 0 0 cm +543.547 -151.609 m 541.223 -151.609 l S Q +q 1 0 0 -1 0 0 cm +543.547 -126.527 m 541.223 -126.527 l S Q +BT +10 0 0 -10 301.04681 280.526399 Tm +/f-0-0 1 Tf +(0)Tj +0 2.508 Td +(2)Tj +0 2.508 Td +(4)Tj +0 2.508 Td +(6)Tj +0 2.508 Td +(8)Tj +-0.6 2.508 Td +(10)Tj +0 2.507999 Td +(12)Tj +ET +0 0.447059 0.741176 rg +1.5 w +0 J +q 1 0 0 -1 0 0 cm +312.207 -260.371 m 313.371 -260.371 l 319.57 -260.371 325.773 -260.371 +331.973 -260.371 c 333.137 -260.371 l 334.297 -146.984 l 335.457 -146.984 + l 342.434 -146.984 349.41 -146.984 356.387 -146.984 c 357.547 -146.984 +l 358.707 -152.656 l 365.684 -186.668 372.66 -220.688 379.637 -254.703 c + 380.797 -260.371 l 381.957 -260.371 l 404.047 -260.371 426.133 -260.371 + 448.223 -260.371 c 449.383 -260.371 l 450.547 -146.984 l 451.711 -146.984 + l 458.684 -146.984 465.66 -146.984 472.633 -146.984 c 473.797 -146.984 +l 474.961 -152.656 l 481.934 -186.672 488.91 -220.684 495.883 -254.703 c + 497.047 -260.371 l 498.211 -260.371 l 512.934 -260.371 527.66 -260.371 +542.383 -260.371 c 543.547 -260.371 l S Q +Q q +550.398 111.527 297.602 200 re W n +q +550 111 298 201 re W n + q +1 g +550.398 111.527 297.602 200 re f + Q +Q +q +550 111 298 201 re W n + q +1 g +550.398 111.527 297.602 200 re f + Q +Q +1 g +589.398 126.527 232.5 150.5 re f +0.14902 g +0.5 w +2 J +1 j +[] 0.0 d +10 M q 1 0 0 -1 0 0 cm +589.398 -277.027 m 821.898 -277.027 l S Q +q 1 0 0 -1 0 0 cm +589.398 -126.527 m 821.898 -126.527 l S Q +q 1 0 0 -1 0 0 cm +589.398 -277.027 m 589.398 -274.703 l S Q +q 1 0 0 -1 0 0 cm +647.523 -277.027 m 647.523 -274.703 l S Q +q 1 0 0 -1 0 0 cm +705.648 -277.027 m 705.648 -274.703 l S Q +q 1 0 0 -1 0 0 cm +763.773 -277.027 m 763.773 -274.703 l S Q +q 1 0 0 -1 0 0 cm +821.898 -277.027 m 821.898 -274.703 l S Q +q 1 0 0 -1 0 0 cm +589.398 -126.527 m 589.398 -128.852 l S Q +q 1 0 0 -1 0 0 cm +647.523 -126.527 m 647.523 -128.852 l S Q +q 1 0 0 -1 0 0 cm +705.648 -126.527 m 705.648 -128.852 l S Q +q 1 0 0 -1 0 0 cm +763.773 -126.527 m 763.773 -128.852 l S Q +q 1 0 0 -1 0 0 cm +821.898 -126.527 m 821.898 -128.852 l S Q +BT +10 0 0 -10 586.397222 291.026399 Tm +/f-0-0 1 Tf +[(0)-4856(0.5)-4823(1)]TJ +17.397893 0 Td +[(1.5)-4822(2)]TJ +ET +683.078 306.488 m 683.078 305.988 l 683.547 305.988 684 305.961 684.438 + 305.91 c 684.887 305.855 685.109 305.738 685.109 305.547 c 685.109 297.863 + l 685.109 297.664 685.055 297.539 684.938 297.488 c 684.836 297.434 684.656 + 297.41 684.406 297.41 c 683.812 297.41 l 683.043 297.41 682.496 297.582 + 682.172 297.922 c 682.004 298.09 681.887 298.363 681.812 298.738 c 681.742 + 299.102 681.68 299.562 681.625 300.129 c 681.219 300.129 l 681.484 296.922 + l 690.047 296.922 l 690.312 300.129 l 689.906 300.129 l 689.844 299.523 + 689.781 299.047 689.719 298.707 c 689.656 298.352 689.539 298.09 689.359 + 297.922 c 689.039 297.582 688.492 297.41 687.719 297.41 c 687.125 297.41 + l 686.957 297.41 686.828 297.418 686.734 297.438 c 686.641 297.449 686.562 + 297.492 686.5 297.562 c 686.449 297.629 686.422 297.727 686.422 297.863 + c 686.422 305.547 l 686.422 305.738 686.641 305.855 687.078 305.91 c 687.527 + 305.961 687.98 305.988 688.438 305.988 c 688.438 306.488 l 683.078 306.488 + l f +691.27 306.488 m 691.27 305.988 l 691.582 305.988 691.84 305.965 692.051 + 305.922 c 692.258 305.871 692.363 305.746 692.363 305.547 c 692.363 301.719 + l 692.363 301.367 692.289 301.148 692.145 301.062 c 692.008 300.98 691.738 + 300.938 691.332 300.938 c 691.332 300.457 l 693.348 300.297 l 693.348 305.547 + l 693.348 305.746 693.434 305.871 693.613 305.922 c 693.789 305.965 694.023 + 305.988 694.316 305.988 c 694.316 306.488 l h +691.863 297.891 m 691.863 297.684 691.934 297.508 692.082 297.363 c 692.238 + 297.207 692.418 297.129 692.629 297.129 c 692.754 297.129 692.879 297.164 + 693.004 297.238 c 693.129 297.301 693.223 297.391 693.285 297.516 c 693.355 + 297.633 693.395 297.758 693.395 297.891 c 693.395 298.09 693.316 298.266 + 693.16 298.422 c 693.004 298.582 692.824 298.66 692.629 298.66 c 692.418 + 298.66 692.238 298.582 692.082 298.422 c 691.934 298.266 691.863 298.09 + 691.863 297.891 c f +695.141 306.488 m 695.141 305.988 l 695.453 305.988 695.715 305.965 695.922 + 305.922 c 696.133 305.871 696.234 305.746 696.234 305.547 c 696.234 301.719 + l 696.234 301.469 696.191 301.293 696.109 301.188 c 696.039 301.074 695.926 + 301.008 695.781 300.988 c 695.648 300.957 695.434 300.938 695.141 300.938 + c 695.141 300.457 l 697.172 300.297 l 697.172 301.672 l 697.359 301.266 + 697.637 300.938 698 300.688 c 698.367 300.43 698.766 300.297 699.203 300.297 + c 700.277 300.297 700.906 300.738 701.094 301.613 c 701.281 301.215 701.551 + 300.898 701.906 300.66 c 702.273 300.418 702.668 300.297 703.094 300.297 + c 703.52 300.297 703.875 300.367 704.156 300.504 c 704.449 300.637 704.668 + 300.848 704.812 301.129 c 704.961 301.41 705.031 301.762 705.031 302.188 + c 705.031 305.547 l 705.031 305.746 705.137 305.871 705.344 305.922 c 705.555 + 305.965 705.812 305.988 706.125 305.988 c 706.125 306.488 l 702.922 306.488 + l 702.922 305.988 l 703.246 305.988 703.508 305.965 703.703 305.922 c 703.914 + 305.871 704.016 305.746 704.016 305.547 c 704.016 302.219 l 704.016 301.75 + 703.949 301.375 703.812 301.094 c 703.688 300.805 703.418 300.66 703 300.66 + c 702.469 300.66 702.027 300.879 701.672 301.312 c 701.316 301.742 701.141 + 302.23 701.141 302.785 c 701.141 305.547 l 701.141 305.746 701.246 305.871 + 701.453 305.922 c 701.664 305.965 701.922 305.988 702.234 305.988 c 702.234 + 306.488 l 699.031 306.488 l 699.031 305.988 l 699.355 305.988 699.617 305.965 + 699.812 305.922 c 700.02 305.871 700.125 305.746 700.125 305.547 c 700.125 + 302.219 l 700.125 301.773 700.059 301.402 699.922 301.113 c 699.797 300.809 + 699.527 300.66 699.109 300.66 c 698.566 300.66 698.121 300.879 697.766 +301.312 c 697.422 301.742 697.25 302.23 697.25 302.785 c 697.25 305.547 +l 697.25 305.746 697.355 305.871 697.562 305.922 c 697.77 305.965 698.031 + 305.988 698.344 305.988 c 698.344 306.488 l 695.141 306.488 l f +709.871 306.641 m 709.297 306.641 708.77 306.496 708.293 306.207 c 707.824 + 305.902 707.453 305.504 707.184 305.004 c 706.914 304.504 706.777 303.977 + 706.777 303.422 c 706.777 302.871 706.902 302.352 707.152 301.863 c 707.402 + 301.371 707.746 300.977 708.184 300.672 c 708.633 300.363 709.125 300.207 + 709.668 300.207 c 710.105 300.207 710.48 300.277 710.793 300.422 c 711.105 + 300.57 711.367 300.773 711.574 301.035 c 711.781 301.285 711.938 301.582 + 712.043 301.922 c 712.145 302.266 712.199 302.648 712.199 303.062 c 712.199 + 303.191 712.152 303.254 712.059 303.254 c 707.996 303.254 l 707.996 303.41 + l 707.996 304.18 708.152 304.848 708.465 305.41 c 708.777 305.961 709.289 + 306.238 709.996 306.238 c 710.289 306.238 710.555 306.172 710.793 306.047 + c 711.031 305.914 711.242 305.734 711.418 305.516 c 711.605 305.289 711.73 + 305.043 711.793 304.785 c 711.805 304.754 711.816 304.727 711.84 304.707 + c 711.871 304.676 711.902 304.66 711.934 304.66 c 712.059 304.66 l 712.152 + 304.66 712.199 304.715 712.199 304.832 c 712.062 305.363 711.777 305.801 + 711.34 306.141 c 710.902 306.477 710.414 306.641 709.871 306.641 c h +708.012 302.91 m 711.199 302.91 l 711.199 302.555 711.152 302.199 711.059 + 301.844 c 710.965 301.48 710.801 301.18 710.574 300.938 c 710.344 300.699 + 710.043 300.582 709.668 300.582 c 709.145 300.582 708.742 300.832 708.449 + 301.332 c 708.156 301.82 708.012 302.348 708.012 302.91 c f +718.93 309.988 m 718.93 295.988 l 720.836 295.988 l 720.836 296.547 l 719.496 + 296.547 l 719.496 309.422 l 720.836 309.422 l 720.836 309.988 l 718.93 +309.988 l f +721.633 306.535 m 721.633 304.238 l 721.633 304.164 721.676 304.129 721.758 + 304.129 c 721.93 304.129 l 721.98 304.129 722.02 304.164 722.039 304.238 + c 722.301 305.59 722.926 306.266 723.914 306.266 c 724.363 306.266 724.73 + 306.168 725.023 305.969 c 725.324 305.773 725.477 305.465 725.477 305.047 + c 725.477 304.746 725.355 304.492 725.117 304.285 c 724.887 304.066 724.617 + 303.918 724.305 303.844 c 723.367 303.66 l 723.055 303.586 722.77 303.48 + 722.508 303.344 c 722.246 303.199 722.035 303.012 721.867 302.785 c 721.711 + 302.543 721.633 302.266 721.633 301.957 c 721.633 301.547 721.734 301.215 + 721.945 300.957 c 722.164 300.695 722.445 300.508 722.789 300.391 c 723.145 + 300.266 723.52 300.207 723.914 300.207 c 724.395 300.207 724.809 300.336 + 725.164 300.594 c 725.57 300.254 l 725.57 300.223 725.598 300.207 725.648 + 300.207 c 725.742 300.207 l 725.773 300.207 725.801 300.223 725.82 300.254 + c 725.84 300.273 725.852 300.301 725.852 300.332 c 725.852 302.16 l 725.852 + 302.242 725.816 302.285 725.742 302.285 c 725.57 302.285 l 725.488 302.285 + 725.445 302.242 725.445 302.16 c 725.445 301.668 725.309 301.277 725.039 + 300.988 c 724.77 300.684 724.387 300.535 723.898 300.535 c 723.48 300.535 + 723.117 300.613 722.805 300.766 c 722.504 300.926 722.352 301.188 722.352 + 301.562 c 722.352 301.824 722.461 302.039 722.68 302.207 c 722.91 302.371 + 723.168 302.492 723.461 302.562 c 724.414 302.754 l 724.727 302.824 725.02 + 302.949 725.289 303.129 c 725.57 303.293 725.789 303.512 725.945 303.785 + c 726.113 304.043 726.195 304.34 726.195 304.672 c 726.195 305.008 726.137 + 305.297 726.023 305.547 c 725.91 305.797 725.746 306.008 725.539 306.172 + c 725.332 306.332 725.086 306.445 724.805 306.516 c 724.523 306.602 724.227 + 306.641 723.914 306.641 c 723.332 306.641 722.836 306.445 722.43 306.047 + c 721.914 306.613 l 721.914 306.633 721.887 306.641 721.836 306.641 c 721.758 + 306.641 l 721.676 306.641 721.633 306.605 721.633 306.535 c f +727 309.988 m 727 309.422 l 728.359 309.422 l 728.359 296.547 l 727 296.547 + l 727 295.988 l 728.922 295.988 l 728.922 309.988 l 727 309.988 l f +795.867 307.246 m 795.867 307.195 795.883 307.141 795.914 307.09 c 797.992 + 305.027 l 795.914 302.949 l 795.883 302.918 795.867 302.871 795.867 302.809 + c 795.867 302.766 795.887 302.723 795.93 302.684 c 795.969 302.641 796.016 + 302.621 796.07 302.621 c 796.109 302.621 796.164 302.641 796.227 302.684 + c 798.289 304.746 l 800.352 302.684 l 800.402 302.641 800.449 302.621 800.492 + 302.621 c 800.555 302.621 800.602 302.641 800.633 302.684 c 800.672 302.715 + 800.695 302.754 800.695 302.809 c 800.695 302.871 800.68 302.918 800.648 + 302.949 c 798.57 305.027 l 800.648 307.09 l 800.68 307.141 800.695 307.195 + 800.695 307.246 c 800.695 307.297 800.672 307.344 800.633 307.387 c 800.602 + 307.418 800.555 307.434 800.492 307.434 c 800.449 307.434 800.402 307.41 + 800.352 307.371 c 798.289 305.309 l 796.227 307.371 l 796.172 307.41 796.121 + 307.434 796.07 307.434 c 796.016 307.434 795.969 307.41 795.93 307.371 +c 795.887 307.328 795.867 307.285 795.867 307.246 c f +BT +10 0 0 -10 802.397209 307.526399 Tm +/f-0-0 1 Tf +(10)Tj +8 0 0 -8 814.39721 302.526396 Tm +(-3)Tj +ET +q 1 0 0 -1 0 0 cm +589.398 -277.027 m 589.398 -126.527 l S Q +q 1 0 0 -1 0 0 cm +821.898 -277.027 m 821.898 -126.527 l S Q +q 1 0 0 -1 0 0 cm +589.398 -277.027 m 591.723 -277.027 l S Q +q 1 0 0 -1 0 0 cm +589.398 -251.945 m 591.723 -251.945 l S Q +q 1 0 0 -1 0 0 cm +589.398 -226.859 m 591.723 -226.859 l S Q +q 1 0 0 -1 0 0 cm +589.398 -201.777 m 591.723 -201.777 l S Q +q 1 0 0 -1 0 0 cm +589.398 -176.695 m 591.723 -176.695 l S Q +q 1 0 0 -1 0 0 cm +589.398 -151.609 m 591.723 -151.609 l S Q +q 1 0 0 -1 0 0 cm +589.398 -126.527 m 591.723 -126.527 l S Q +q 1 0 0 -1 0 0 cm +821.898 -277.027 m 819.574 -277.027 l S Q +q 1 0 0 -1 0 0 cm +821.898 -251.945 m 819.574 -251.945 l S Q +q 1 0 0 -1 0 0 cm +821.898 -226.859 m 819.574 -226.859 l S Q +q 1 0 0 -1 0 0 cm +821.898 -201.777 m 819.574 -201.777 l S Q +q 1 0 0 -1 0 0 cm +821.898 -176.695 m 819.574 -176.695 l S Q +q 1 0 0 -1 0 0 cm +821.898 -151.609 m 819.574 -151.609 l S Q +q 1 0 0 -1 0 0 cm +821.898 -126.527 m 819.574 -126.527 l S Q +BT +10 0 0 -10 579.397322 280.526399 Tm +/f-0-0 1 Tf +(0)Tj +0 2.508 Td +(2)Tj +0 2.508 Td +(4)Tj +0 2.508 Td +(6)Tj +0 2.508 Td +(8)Tj +-0.6 2.508 Td +(10)Tj +0 2.507999 Td +(12)Tj +ET +0 0.447059 0.741176 rg +1.5 w +0 J +q 1 0 0 -1 0 0 cm +590.559 -260.371 m 591.723 -260.371 l 598.309 -260.371 604.898 -260.371 + 611.484 -260.371 c 612.648 -260.371 l 613.809 -232.086 l 616.098 -200.207 + 620.039 -170.555 645.199 -148.934 c 646.359 -147.945 l 647.523 -260.371 + l 648.684 -260.371 l 675.035 -260.371 701.383 -260.371 727.734 -260.371 + c 728.898 -260.371 l 730.059 -232.086 l 732.344 -200.207 736.293 -170.555 + 761.449 -148.934 c 762.609 -147.945 l 763.773 -260.371 l 764.934 -260.371 + l 783.535 -260.371 802.133 -260.371 820.734 -260.371 c 821.898 -260.371 + l S Q +Q q +0.059 428.316 293.637 200 re W n +q +0 428 294 201 re W n + q +1 g +0.059 428.316 293.637 200 re f + Q +Q +q +0 428 294 201 re W n + q +1 g +0.059 428.316 293.637 200 re f + Q +Q +1 g +32.695 443.316 232.5 150.5 re f +0.14902 g +0.5 w +2 J +1 j +[] 0.0 d +10 M q 1 0 0 -1 0 0 cm +32.695 -593.816 m 265.195 -593.816 l S Q +q 1 0 0 -1 0 0 cm +32.695 -443.316 m 265.195 -443.316 l S Q +q 1 0 0 -1 0 0 cm +32.695 -593.816 m 32.695 -591.492 l S Q +q 1 0 0 -1 0 0 cm +90.82 -593.816 m 90.82 -591.492 l S Q +q 1 0 0 -1 0 0 cm +148.945 -593.816 m 148.945 -591.492 l S Q +q 1 0 0 -1 0 0 cm +207.07 -593.816 m 207.07 -591.492 l S Q +q 1 0 0 -1 0 0 cm +265.195 -593.816 m 265.195 -591.492 l S Q +q 1 0 0 -1 0 0 cm +32.695 -443.316 m 32.695 -445.641 l S Q +q 1 0 0 -1 0 0 cm +90.82 -443.316 m 90.82 -445.641 l S Q +q 1 0 0 -1 0 0 cm +148.945 -443.316 m 148.945 -445.641 l S Q +q 1 0 0 -1 0 0 cm +207.07 -443.316 m 207.07 -445.641 l S Q +q 1 0 0 -1 0 0 cm +265.195 -443.316 m 265.195 -445.641 l S Q +BT +10 0 0 -10 29.696501 607.817098 Tm +/f-0-0 1 Tf +[(0)-4856(0.5)-4823(1)]TJ +17.397893 0 Td +[(1.5)-4822(2)]TJ +ET +126.379 623.277 m 126.379 622.777 l 126.848 622.777 127.301 622.75 127.738 + 622.699 c 128.184 622.648 128.41 622.527 128.41 622.34 c 128.41 614.652 + l 128.41 614.453 128.352 614.328 128.238 614.277 c 128.133 614.227 127.957 + 614.199 127.707 614.199 c 127.113 614.199 l 126.34 614.199 125.793 614.371 + 125.473 614.715 c 125.305 614.883 125.184 615.152 125.113 615.527 c 125.039 + 615.891 124.977 616.355 124.926 616.918 c 124.52 616.918 l 124.785 613.715 + l 133.348 613.715 l 133.613 616.918 l 133.207 616.918 l 133.145 616.312 + 133.082 615.84 133.02 615.496 c 132.957 615.141 132.836 614.883 132.66 +614.715 c 132.336 614.371 131.789 614.199 131.02 614.199 c 130.426 614.199 + l 130.258 614.199 130.129 614.211 130.035 614.23 c 129.941 614.242 129.863 + 614.281 129.801 614.355 c 129.746 614.418 129.723 614.516 129.723 614.652 + c 129.723 622.34 l 129.723 622.527 129.941 622.648 130.379 622.699 c 130.824 + 622.75 131.277 622.777 131.738 622.777 c 131.738 623.277 l 126.379 623.277 + l f +134.566 623.277 m 134.566 622.777 l 134.879 622.777 135.141 622.758 135.348 + 622.715 c 135.559 622.66 135.66 622.535 135.66 622.34 c 135.66 618.512 +l 135.66 618.156 135.59 617.938 135.441 617.855 c 135.309 617.773 135.035 + 617.73 134.629 617.73 c 134.629 617.246 l 136.645 617.09 l 136.645 622.34 + l 136.645 622.535 136.734 622.66 136.91 622.715 c 137.09 622.758 137.324 + 622.777 137.613 622.777 c 137.613 623.277 l h +135.16 614.684 m 135.16 614.477 135.234 614.297 135.379 614.152 c 135.535 + 613.996 135.719 613.918 135.926 613.918 c 136.051 613.918 136.176 613.953 + 136.301 614.027 c 136.426 614.09 136.52 614.184 136.582 614.309 c 136.656 + 614.422 136.691 614.547 136.691 614.684 c 136.691 614.883 136.613 615.059 + 136.457 615.215 c 136.301 615.371 136.125 615.449 135.926 615.449 c 135.719 + 615.449 135.535 615.371 135.379 615.215 c 135.234 615.059 135.16 614.883 + 135.16 614.684 c f +138.441 623.277 m 138.441 622.777 l 138.754 622.777 139.012 622.758 139.223 + 622.715 c 139.43 622.66 139.535 622.535 139.535 622.34 c 139.535 618.512 + l 139.535 618.262 139.492 618.086 139.41 617.98 c 139.336 617.863 139.227 + 617.797 139.082 617.777 c 138.945 617.746 138.734 617.73 138.441 617.73 + c 138.441 617.246 l 140.473 617.09 l 140.473 618.465 l 140.66 618.059 140.934 + 617.73 141.301 617.48 c 141.664 617.219 142.066 617.09 142.504 617.09 c + 143.578 617.09 144.207 617.527 144.395 618.402 c 144.582 618.008 144.852 + 617.688 145.207 617.449 c 145.57 617.211 145.965 617.09 146.395 617.09 +c 146.82 617.09 147.176 617.156 147.457 617.293 c 147.746 617.43 147.965 + 617.637 148.113 617.918 c 148.258 618.199 148.332 618.555 148.332 618.98 + c 148.332 622.34 l 148.332 622.535 148.434 622.66 148.645 622.715 c 148.852 + 622.758 149.113 622.777 149.426 622.777 c 149.426 623.277 l 146.223 623.277 + l 146.223 622.777 l 146.543 622.777 146.805 622.758 147.004 622.715 c 147.211 + 622.66 147.316 622.535 147.316 622.34 c 147.316 619.012 l 147.316 618.543 + 147.246 618.168 147.113 617.887 c 146.988 617.594 146.715 617.449 146.301 + 617.449 c 145.77 617.449 145.328 617.668 144.973 618.105 c 144.617 618.531 + 144.441 619.023 144.441 619.574 c 144.441 622.34 l 144.441 622.535 144.543 + 622.66 144.754 622.715 c 144.961 622.758 145.223 622.777 145.535 622.777 + c 145.535 623.277 l 142.332 623.277 l 142.332 622.777 l 142.656 622.777 + 142.914 622.758 143.113 622.715 c 143.32 622.66 143.426 622.535 143.426 + 622.34 c 143.426 619.012 l 143.426 618.562 143.355 618.191 143.223 617.902 + c 143.098 617.602 142.828 617.449 142.41 617.449 c 141.867 617.449 141.418 + 617.668 141.066 618.105 c 140.723 618.531 140.551 619.023 140.551 619.574 + c 140.551 622.34 l 140.551 622.535 140.652 622.66 140.863 622.715 c 141.07 + 622.758 141.332 622.777 141.645 622.777 c 141.645 623.277 l 138.441 623.277 + l f +153.168 623.434 m 152.598 623.434 152.07 623.289 151.59 622.996 c 151.121 + 622.695 150.754 622.293 150.484 621.793 c 150.211 621.293 150.078 620.766 + 150.078 620.215 c 150.078 619.66 150.203 619.141 150.453 618.652 c 150.703 + 618.164 151.047 617.766 151.484 617.465 c 151.93 617.152 152.426 616.996 + 152.965 616.996 c 153.402 616.996 153.777 617.07 154.09 617.215 c 154.406 + 617.359 154.664 617.562 154.871 617.824 c 155.082 618.074 155.238 618.371 + 155.34 618.715 c 155.445 619.059 155.496 619.438 155.496 619.855 c 155.496 + 619.98 155.449 620.043 155.359 620.043 c 151.293 620.043 l 151.293 620.199 + l 151.293 620.969 151.449 621.637 151.762 622.199 c 152.078 622.75 152.586 + 623.027 153.293 623.027 c 153.586 623.027 153.852 622.965 154.09 622.84 + c 154.332 622.703 154.539 622.527 154.715 622.309 c 154.902 622.078 155.027 + 621.836 155.09 621.574 c 155.102 621.543 155.117 621.516 155.137 621.496 + c 155.168 621.465 155.203 621.449 155.234 621.449 c 155.359 621.449 l 155.449 + 621.449 155.496 621.508 155.496 621.621 c 155.363 622.152 155.074 622.59 + 154.637 622.934 c 154.203 623.266 153.711 623.434 153.168 623.434 c h +151.309 619.699 m 154.496 619.699 l 154.496 619.344 154.449 618.992 154.359 + 618.637 c 154.262 618.27 154.102 617.969 153.871 617.73 c 153.645 617.492 + 153.34 617.371 152.965 617.371 c 152.445 617.371 152.039 617.621 151.746 + 618.121 c 151.457 618.609 151.309 619.137 151.309 619.699 c f +162.23 626.777 m 162.23 612.777 l 164.137 612.777 l 164.137 613.34 l 162.793 + 613.34 l 162.793 626.215 l 164.137 626.215 l 164.137 626.777 l 162.23 626.777 + l f +164.93 623.324 m 164.93 621.027 l 164.93 620.953 164.973 620.918 165.055 + 620.918 c 165.227 620.918 l 165.281 620.918 165.316 620.953 165.34 621.027 + c 165.598 622.383 166.223 623.059 167.215 623.059 c 167.66 623.059 168.031 + 622.961 168.324 622.762 c 168.625 622.562 168.777 622.254 168.777 621.84 + c 168.777 621.535 168.656 621.281 168.418 621.074 c 168.188 620.855 167.918 + 620.711 167.602 620.637 c 166.668 620.449 l 166.352 620.375 166.066 620.27 + 165.805 620.137 c 165.547 619.992 165.332 619.805 165.168 619.574 c 165.008 + 619.336 164.93 619.059 164.93 618.746 c 164.93 618.34 165.035 618.008 165.246 + 617.746 c 165.465 617.484 165.746 617.297 166.09 617.184 c 166.441 617.059 + 166.816 616.996 167.215 616.996 c 167.691 616.996 168.109 617.125 168.465 + 617.387 c 168.871 617.043 l 168.871 617.012 168.895 616.996 168.949 616.996 + c 169.043 616.996 l 169.074 616.996 169.098 617.012 169.121 617.043 c 169.141 + 617.062 169.152 617.09 169.152 617.121 c 169.152 618.949 l 169.152 619.031 + 169.113 619.074 169.043 619.074 c 168.871 619.074 l 168.785 619.074 168.746 + 619.031 168.746 618.949 c 168.746 618.461 168.609 618.066 168.34 617.777 + c 168.066 617.477 167.688 617.324 167.199 617.324 c 166.781 617.324 166.418 + 617.402 166.102 617.559 c 165.801 617.715 165.652 617.98 165.652 618.355 + c 165.652 618.617 165.758 618.828 165.977 618.996 c 166.207 619.164 166.469 + 619.281 166.762 619.355 c 167.715 619.543 l 168.027 619.617 168.316 619.742 + 168.59 619.918 c 168.871 620.086 169.09 620.305 169.246 620.574 c 169.41 + 620.836 169.496 621.129 169.496 621.465 c 169.496 621.797 169.438 622.09 + 169.324 622.34 c 169.207 622.59 169.047 622.797 168.84 622.965 c 168.629 + 623.121 168.383 623.234 168.102 623.309 c 167.824 623.391 167.527 623.434 + 167.215 623.434 c 166.629 623.434 166.137 623.234 165.727 622.84 c 165.215 + 623.402 l 165.215 623.422 165.188 623.434 165.137 623.434 c 165.055 623.434 + l 164.973 623.434 164.93 623.398 164.93 623.324 c f +170.297 626.777 m 170.297 626.215 l 171.656 626.215 l 171.656 613.34 l +170.297 613.34 l 170.297 612.777 l 172.219 612.777 l 172.219 626.777 l 170.297 + 626.777 l f +239.164 624.035 m 239.164 623.984 239.18 623.934 239.211 623.879 c 241.289 + 621.816 l 239.211 619.738 l 239.18 619.707 239.164 619.66 239.164 619.598 + c 239.164 619.559 239.188 619.516 239.227 619.473 c 239.27 619.434 239.316 + 619.41 239.367 619.41 c 239.41 619.41 239.461 619.434 239.523 619.473 c + 241.586 621.535 l 243.648 619.473 l 243.703 619.434 243.75 619.41 243.789 + 619.41 c 243.852 619.41 243.898 619.434 243.93 619.473 c 243.973 619.504 + 243.992 619.547 243.992 619.598 c 243.992 619.66 243.977 619.707 243.945 + 619.738 c 241.867 621.816 l 243.945 623.879 l 243.977 623.934 243.992 623.984 + 243.992 624.035 c 243.992 624.09 243.973 624.133 243.93 624.176 c 243.898 + 624.207 243.852 624.223 243.789 624.223 c 243.75 624.223 243.703 624.203 + 243.648 624.16 c 241.586 622.098 l 239.523 624.16 l 239.473 624.203 239.422 + 624.223 239.367 624.223 c 239.316 624.223 239.27 624.203 239.227 624.16 + c 239.188 624.117 239.164 624.078 239.164 624.035 c f +BT +10 0 0 -10 245.696508 624.317098 Tm +/f-0-0 1 Tf +(10)Tj +8 0 0 -8 257.696411 619.317095 Tm +(-3)Tj +ET +q 1 0 0 -1 0 0 cm +32.695 -593.816 m 32.695 -443.316 l S Q +q 1 0 0 -1 0 0 cm +265.195 -593.816 m 265.195 -443.316 l S Q +q 1 0 0 -1 0 0 cm +32.695 -593.816 m 35.023 -593.816 l S Q +q 1 0 0 -1 0 0 cm +32.695 -568.734 m 35.023 -568.734 l S Q +q 1 0 0 -1 0 0 cm +32.695 -543.648 m 35.023 -543.648 l S Q +q 1 0 0 -1 0 0 cm +32.695 -518.566 m 35.023 -518.566 l S Q +q 1 0 0 -1 0 0 cm +32.695 -493.484 m 35.023 -493.484 l S Q +q 1 0 0 -1 0 0 cm +32.695 -468.398 m 35.023 -468.398 l S Q +q 1 0 0 -1 0 0 cm +32.695 -443.316 m 35.023 -443.316 l S Q +q 1 0 0 -1 0 0 cm +265.195 -593.816 m 262.871 -593.816 l S Q +q 1 0 0 -1 0 0 cm +265.195 -568.734 m 262.871 -568.734 l S Q +q 1 0 0 -1 0 0 cm +265.195 -543.648 m 262.871 -543.648 l S Q +q 1 0 0 -1 0 0 cm +265.195 -518.566 m 262.871 -518.566 l S Q +q 1 0 0 -1 0 0 cm +265.195 -493.484 m 262.871 -493.484 l S Q +q 1 0 0 -1 0 0 cm +265.195 -468.398 m 262.871 -468.398 l S Q +q 1 0 0 -1 0 0 cm +265.195 -443.316 m 262.871 -443.316 l S Q +BT +10 0 0 -10 22.696501 597.317098 Tm +/f-0-0 1 Tf +(0)Tj +0 2.508 Td +(2)Tj +0 2.508 Td +(4)Tj +0 2.508 Td +(6)Tj +0 2.508 Td +(8)Tj +-0.6 2.508 Td +(10)Tj +0 2.507999 Td +(12)Tj +ET +0 0.447059 0.741176 rg +1.5 w +0 J +q 1 0 0 -1 0 0 cm +33.859 -577.16 m 35.023 -577.16 l 41.609 -577.16 48.195 -577.16 54.785 +-577.16 c 55.945 -577.16 l 57.109 -571.492 l 64.086 -537.477 71.059 -503.461 + 78.035 -469.445 c 79.195 -463.773 l 80.359 -469.445 l 87.336 -503.461 94.309 + -537.477 101.285 -571.492 c 102.445 -577.16 l 103.609 -577.16 l 126.082 + -577.16 148.559 -577.16 171.035 -577.16 c 172.195 -577.16 l 173.359 -571.492 + l 180.332 -537.477 187.309 -503.461 194.285 -469.445 c 195.445 -463.773 + l 196.609 -469.445 l 203.582 -503.461 210.559 -537.477 217.535 -571.492 + c 218.695 -577.16 l 219.859 -577.16 l 234.586 -577.16 249.309 -577.16 264.035 + -577.16 c 265.195 -577.16 l S Q +Q q +1 g +272.047 428.316 300 200 re f +272.047 428.316 300 200 re f +311.047 443.316 232.5 150.5 re f +0.14902 g +0.5 w +2 J +1 j +[] 0.0 d +10 M q 1 0 0 -1 0 0 cm +311.047 -593.816 m 543.547 -593.816 l S Q +q 1 0 0 -1 0 0 cm +311.047 -443.316 m 543.547 -443.316 l S Q +q 1 0 0 -1 0 0 cm +311.047 -593.816 m 311.047 -591.492 l S Q +q 1 0 0 -1 0 0 cm +369.172 -593.816 m 369.172 -591.492 l S Q +q 1 0 0 -1 0 0 cm +427.297 -593.816 m 427.297 -591.492 l S Q +q 1 0 0 -1 0 0 cm +485.422 -593.816 m 485.422 -591.492 l S Q +q 1 0 0 -1 0 0 cm +543.547 -593.816 m 543.547 -591.492 l S Q +q 1 0 0 -1 0 0 cm +311.047 -443.316 m 311.047 -445.641 l S Q +q 1 0 0 -1 0 0 cm +369.172 -443.316 m 369.172 -445.641 l S Q +q 1 0 0 -1 0 0 cm +427.297 -443.316 m 427.297 -445.641 l S Q +q 1 0 0 -1 0 0 cm +485.422 -443.316 m 485.422 -445.641 l S Q +q 1 0 0 -1 0 0 cm +543.547 -443.316 m 543.547 -445.641 l S Q +BT +10 0 0 -10 308.046816 607.817098 Tm +/f-0-0 1 Tf +[(0)-4856(0.5)-4823(1)]TJ +17.397893 0 Td +[(1.5)-4822(2)]TJ +ET +404.73 623.277 m 404.73 622.777 l 405.199 622.777 405.652 622.75 406.086 + 622.699 c 406.535 622.648 406.762 622.527 406.762 622.34 c 406.762 614.652 + l 406.762 614.453 406.703 614.328 406.586 614.277 c 406.484 614.227 406.309 + 614.199 406.059 614.199 c 405.461 614.199 l 404.691 614.199 404.145 614.371 + 403.82 614.715 c 403.656 614.883 403.535 615.152 403.461 615.527 c 403.391 + 615.891 403.328 616.355 403.273 616.918 c 402.867 616.918 l 403.137 613.715 + l 411.695 613.715 l 411.961 616.918 l 411.559 616.918 l 411.492 616.312 + 411.434 615.84 411.367 615.496 c 411.305 615.141 411.188 614.883 411.012 + 614.715 c 410.688 614.371 410.141 614.199 409.367 614.199 c 408.773 614.199 + l 408.609 614.199 408.477 614.211 408.387 614.23 c 408.289 614.242 408.211 + 614.281 408.148 614.355 c 408.098 614.418 408.07 614.516 408.07 614.652 + c 408.07 622.34 l 408.07 622.527 408.289 622.648 408.73 622.699 c 409.176 + 622.75 409.629 622.777 410.086 622.777 c 410.086 623.277 l 404.73 623.277 + l f +412.918 623.277 m 412.918 622.777 l 413.23 622.777 413.492 622.758 413.699 + 622.715 c 413.906 622.66 414.012 622.535 414.012 622.34 c 414.012 618.512 + l 414.012 618.156 413.938 617.938 413.793 617.855 c 413.656 617.773 413.387 + 617.73 412.98 617.73 c 412.98 617.246 l 414.996 617.09 l 414.996 622.34 + l 414.996 622.535 415.086 622.66 415.262 622.715 c 415.438 622.758 415.672 + 622.777 415.965 622.777 c 415.965 623.277 l h +413.512 614.684 m 413.512 614.477 413.586 614.297 413.73 614.152 c 413.887 + 613.996 414.07 613.918 414.277 613.918 c 414.402 613.918 414.527 613.953 + 414.652 614.027 c 414.777 614.09 414.871 614.184 414.934 614.309 c 415.004 + 614.422 415.043 614.547 415.043 614.684 c 415.043 614.883 414.965 615.059 + 414.809 615.215 c 414.652 615.371 414.477 615.449 414.277 615.449 c 414.07 + 615.449 413.887 615.371 413.73 615.215 c 413.586 615.059 413.512 614.883 + 413.512 614.684 c f +416.789 623.277 m 416.789 622.777 l 417.105 622.777 417.363 622.758 417.57 + 622.715 c 417.781 622.66 417.887 622.535 417.887 622.34 c 417.887 618.512 + l 417.887 618.262 417.844 618.086 417.762 617.98 c 417.688 617.863 417.578 + 617.797 417.434 617.777 c 417.297 617.746 417.082 617.73 416.789 617.73 + c 416.789 617.246 l 418.82 617.09 l 418.82 618.465 l 419.012 618.059 419.285 + 617.73 419.648 617.48 c 420.016 617.219 420.414 617.09 420.855 617.09 c + 421.926 617.09 422.559 617.527 422.742 618.402 c 422.93 618.008 423.203 + 617.688 423.559 617.449 c 423.922 617.211 424.316 617.09 424.742 617.09 + c 425.172 617.09 425.527 617.156 425.809 617.293 c 426.098 617.43 426.316 + 617.637 426.461 617.918 c 426.609 618.199 426.684 618.555 426.684 618.98 + c 426.684 622.34 l 426.684 622.535 426.785 622.66 426.992 622.715 c 427.203 + 622.758 427.461 622.777 427.773 622.777 c 427.773 623.277 l 424.57 623.277 + l 424.57 622.777 l 424.895 622.777 425.156 622.758 425.355 622.715 c 425.562 + 622.66 425.664 622.535 425.664 622.34 c 425.664 619.012 l 425.664 618.543 + 425.598 618.168 425.461 617.887 c 425.336 617.594 425.066 617.449 424.648 + 617.449 c 424.117 617.449 423.676 617.668 423.32 618.105 c 422.969 618.531 + 422.789 619.023 422.789 619.574 c 422.789 622.34 l 422.789 622.535 422.895 + 622.66 423.105 622.715 c 423.312 622.758 423.57 622.777 423.887 622.777 + c 423.887 623.277 l 420.684 623.277 l 420.684 622.777 l 421.004 622.777 + 421.266 622.758 421.461 622.715 c 421.672 622.66 421.773 622.535 421.773 + 622.34 c 421.773 619.012 l 421.773 618.562 421.707 618.191 421.57 617.902 + c 421.445 617.602 421.176 617.449 420.762 617.449 c 420.219 617.449 419.77 + 617.668 419.414 618.105 c 419.07 618.531 418.898 619.023 418.898 619.574 + c 418.898 622.34 l 418.898 622.535 419.004 622.66 419.211 622.715 c 419.422 + 622.758 419.68 622.777 419.992 622.777 c 419.992 623.277 l 416.789 623.277 + l f +431.52 623.434 m 430.945 623.434 430.422 623.285 429.941 622.996 c 429.473 + 622.695 429.105 622.293 428.832 621.793 c 428.562 621.293 428.426 620.766 + 428.426 620.215 c 428.426 619.66 428.551 619.141 428.801 618.652 c 429.051 + 618.164 429.395 617.766 429.832 617.465 c 430.281 617.152 430.777 616.996 + 431.316 616.996 c 431.754 616.996 432.129 617.07 432.441 617.215 c 432.754 + 617.359 433.016 617.562 433.223 617.824 c 433.434 618.074 433.586 618.371 + 433.691 618.715 c 433.797 619.059 433.848 619.438 433.848 619.855 c 433.848 + 619.98 433.801 620.043 433.707 620.043 c 429.645 620.043 l 429.645 620.199 + l 429.645 620.969 429.801 621.637 430.113 622.199 c 430.426 622.75 430.938 + 623.027 431.645 623.027 c 431.938 623.027 432.203 622.965 432.441 622.84 + c 432.684 622.703 432.891 622.527 433.066 622.309 c 433.254 622.078 433.379 + 621.836 433.441 621.574 c 433.453 621.543 433.469 621.516 433.488 621.496 + c 433.52 621.465 433.551 621.449 433.582 621.449 c 433.707 621.449 l 433.801 + 621.449 433.848 621.508 433.848 621.621 c 433.711 622.152 433.426 622.59 + 432.988 622.934 c 432.551 623.266 432.062 623.434 431.52 623.434 c h +429.66 619.699 m 432.848 619.699 l 432.848 619.344 432.801 618.992 432.707 + 618.637 c 432.613 618.27 432.453 617.969 432.223 617.73 c 431.992 617.492 + 431.691 617.371 431.316 617.371 c 430.797 617.371 430.391 617.621 430.098 + 618.121 c 429.809 618.609 429.66 619.137 429.66 619.699 c f +440.582 626.777 m 440.582 612.777 l 442.488 612.777 l 442.488 613.34 l +441.145 613.34 l 441.145 626.215 l 442.488 626.215 l 442.488 626.777 l 440.582 + 626.777 l f +443.281 623.324 m 443.281 621.027 l 443.281 620.953 443.324 620.918 443.406 + 620.918 c 443.578 620.918 l 443.629 620.918 443.668 620.953 443.688 621.027 + c 443.949 622.383 444.574 623.059 445.562 623.059 c 446.012 623.059 446.383 + 622.961 446.672 622.762 c 446.977 622.562 447.125 622.258 447.125 621.84 + c 447.125 621.535 447.004 621.281 446.766 621.074 c 446.539 620.855 446.266 + 620.711 445.953 620.637 c 445.016 620.449 l 444.703 620.375 444.418 620.27 + 444.156 620.137 c 443.898 619.992 443.684 619.805 443.516 619.574 c 443.359 + 619.336 443.281 619.059 443.281 618.746 c 443.281 618.34 443.387 618.008 + 443.594 617.746 c 443.812 617.484 444.094 617.297 444.438 617.184 c 444.793 + 617.059 445.168 616.996 445.562 616.996 c 446.043 616.996 446.457 617.125 + 446.812 617.387 c 447.219 617.043 l 447.219 617.012 447.246 616.996 447.297 + 616.996 c 447.391 616.996 l 447.422 616.996 447.449 617.012 447.469 617.043 + c 447.492 617.062 447.5 617.09 447.5 617.121 c 447.5 618.949 l 447.5 619.031 + 447.465 619.074 447.391 619.074 c 447.219 619.074 l 447.137 619.074 447.094 + 619.031 447.094 618.949 c 447.094 618.461 446.961 618.066 446.688 617.777 + c 446.418 617.477 446.035 617.324 445.547 617.324 c 445.129 617.324 444.766 + 617.402 444.453 617.559 c 444.152 617.715 444 617.98 444 618.355 c 444 +618.617 444.109 618.828 444.328 618.996 c 444.559 619.164 444.82 619.281 + 445.109 619.355 c 446.062 619.543 l 446.375 619.617 446.668 619.742 446.938 + 619.918 c 447.219 620.086 447.438 620.305 447.594 620.574 c 447.762 620.836 + 447.844 621.133 447.844 621.465 c 447.844 621.797 447.789 622.09 447.672 + 622.34 c 447.559 622.59 447.398 622.797 447.188 622.965 c 446.98 623.121 + 446.734 623.234 446.453 623.309 c 446.172 623.391 445.875 623.434 445.562 + 623.434 c 444.98 623.434 444.484 623.234 444.078 622.84 c 443.562 623.402 + l 443.562 623.422 443.539 623.434 443.484 623.434 c 443.406 623.434 l 443.324 + 623.434 443.281 623.398 443.281 623.324 c f +448.648 626.777 m 448.648 626.215 l 450.008 626.215 l 450.008 613.34 l +448.648 613.34 l 448.648 612.777 l 450.57 612.777 l 450.57 626.777 l 448.648 + 626.777 l f +517.516 624.035 m 517.516 623.984 517.531 623.934 517.562 623.879 c 519.641 + 621.816 l 517.562 619.738 l 517.531 619.707 517.516 619.66 517.516 619.598 + c 517.516 619.559 517.535 619.516 517.578 619.473 c 517.621 619.434 517.668 + 619.41 517.719 619.41 c 517.758 619.41 517.812 619.434 517.875 619.473 +c 519.938 621.535 l 522 619.473 l 522.051 619.434 522.098 619.41 522.141 + 619.41 c 522.203 619.41 522.25 619.434 522.281 619.473 c 522.324 619.504 + 522.344 619.547 522.344 619.598 c 522.344 619.66 522.328 619.707 522.297 + 619.738 c 520.219 621.816 l 522.297 623.879 l 522.328 623.934 522.344 623.984 + 522.344 624.035 c 522.344 624.09 522.324 624.137 522.281 624.176 c 522.25 + 624.207 522.203 624.223 522.141 624.223 c 522.098 624.223 522.051 624.203 + 522 624.16 c 519.938 622.098 l 517.875 624.16 l 517.824 624.203 517.77 +624.223 517.719 624.223 c 517.668 624.223 517.621 624.203 517.578 624.16 + c 517.535 624.117 517.516 624.078 517.516 624.035 c f +BT +10 0 0 -10 524.046825 624.317098 Tm +/f-0-0 1 Tf +(10)Tj +8 0 0 -8 536.046825 619.317095 Tm +(-3)Tj +ET +q 1 0 0 -1 0 0 cm +311.047 -593.816 m 311.047 -443.316 l S Q +q 1 0 0 -1 0 0 cm +543.547 -593.816 m 543.547 -443.316 l S Q +q 1 0 0 -1 0 0 cm +311.047 -593.816 m 313.371 -593.816 l S Q +q 1 0 0 -1 0 0 cm +311.047 -568.734 m 313.371 -568.734 l S Q +q 1 0 0 -1 0 0 cm +311.047 -543.648 m 313.371 -543.648 l S Q +q 1 0 0 -1 0 0 cm +311.047 -518.566 m 313.371 -518.566 l S Q +q 1 0 0 -1 0 0 cm +311.047 -493.484 m 313.371 -493.484 l S Q +q 1 0 0 -1 0 0 cm +311.047 -468.398 m 313.371 -468.398 l S Q +q 1 0 0 -1 0 0 cm +311.047 -443.316 m 313.371 -443.316 l S Q +q 1 0 0 -1 0 0 cm +543.547 -593.816 m 541.223 -593.816 l S Q +q 1 0 0 -1 0 0 cm +543.547 -568.734 m 541.223 -568.734 l S Q +q 1 0 0 -1 0 0 cm +543.547 -543.648 m 541.223 -543.648 l S Q +q 1 0 0 -1 0 0 cm +543.547 -518.566 m 541.223 -518.566 l S Q +q 1 0 0 -1 0 0 cm +543.547 -493.484 m 541.223 -493.484 l S Q +q 1 0 0 -1 0 0 cm +543.547 -468.398 m 541.223 -468.398 l S Q +q 1 0 0 -1 0 0 cm +543.547 -443.316 m 541.223 -443.316 l S Q +BT +10 0 0 -10 301.04681 597.317098 Tm +/f-0-0 1 Tf +(0)Tj +0 2.508 Td +(2)Tj +0 2.508 Td +(4)Tj +0 2.508 Td +(6)Tj +0 2.508 Td +(8)Tj +-0.6 2.508 Td +(10)Tj +0 2.507999 Td +(12)Tj +ET +0 0.447059 0.741176 rg +1.5 w +0 J +q 1 0 0 -1 0 0 cm +312.207 -577.16 m 313.371 -577.16 l 319.961 -577.16 326.547 -577.16 333.137 + -577.16 c 334.297 -577.16 l 335.457 -573.383 l 345.922 -539.367 356.383 + -505.352 366.848 -471.336 c 368.012 -467.555 l 369.172 -577.16 l 370.332 + -577.16 l 396.684 -577.16 423.035 -577.16 449.383 -577.16 c 450.547 -577.16 + l 451.711 -573.383 l 462.172 -539.367 472.633 -505.352 483.098 -471.336 + c 484.262 -467.555 l 485.422 -577.16 l 486.582 -577.16 l 505.184 -577.16 + 523.785 -577.16 542.383 -577.16 c 543.547 -577.16 l S Q +Q q +550.398 428.316 297.602 200 re W n +q +550 428 298 201 re W n + q +1 g +550.398 428.316 297.602 200 re f + Q +Q +q +550 428 298 201 re W n + q +1 g +550.398 428.316 297.602 200 re f + Q +Q +1 g +589.398 443.316 232.5 150.5 re f +0.14902 g +0.5 w +2 J +1 j +[] 0.0 d +10 M q 1 0 0 -1 0 0 cm +589.398 -593.816 m 821.898 -593.816 l S Q +q 1 0 0 -1 0 0 cm +589.398 -443.316 m 821.898 -443.316 l S Q +q 1 0 0 -1 0 0 cm +589.398 -593.816 m 589.398 -591.492 l S Q +q 1 0 0 -1 0 0 cm +647.523 -593.816 m 647.523 -591.492 l S Q +q 1 0 0 -1 0 0 cm +705.648 -593.816 m 705.648 -591.492 l S Q +q 1 0 0 -1 0 0 cm +763.773 -593.816 m 763.773 -591.492 l S Q +q 1 0 0 -1 0 0 cm +821.898 -593.816 m 821.898 -591.492 l S Q +q 1 0 0 -1 0 0 cm +589.398 -443.316 m 589.398 -445.641 l S Q +q 1 0 0 -1 0 0 cm +647.523 -443.316 m 647.523 -445.641 l S Q +q 1 0 0 -1 0 0 cm +705.648 -443.316 m 705.648 -445.641 l S Q +q 1 0 0 -1 0 0 cm +763.773 -443.316 m 763.773 -445.641 l S Q +q 1 0 0 -1 0 0 cm +821.898 -443.316 m 821.898 -445.641 l S Q +BT +10 0 0 -10 586.397222 607.817098 Tm +/f-0-0 1 Tf +[(0)-4856(0.5)-4823(1)]TJ +17.397893 0 Td +[(1.5)-4822(2)]TJ +ET +683.078 623.277 m 683.078 622.777 l 683.547 622.777 684 622.75 684.438 +622.699 c 684.887 622.648 685.109 622.527 685.109 622.34 c 685.109 614.652 + l 685.109 614.453 685.055 614.328 684.938 614.277 c 684.836 614.227 684.656 + 614.199 684.406 614.199 c 683.812 614.199 l 683.043 614.199 682.496 614.371 + 682.172 614.715 c 682.004 614.883 681.887 615.152 681.812 615.527 c 681.742 + 615.891 681.68 616.355 681.625 616.918 c 681.219 616.918 l 681.484 613.715 + l 690.047 613.715 l 690.312 616.918 l 689.906 616.918 l 689.844 616.312 + 689.781 615.84 689.719 615.496 c 689.656 615.141 689.539 614.883 689.359 + 614.715 c 689.039 614.371 688.492 614.199 687.719 614.199 c 687.125 614.199 + l 686.957 614.199 686.828 614.211 686.734 614.23 c 686.641 614.242 686.562 + 614.281 686.5 614.355 c 686.449 614.418 686.422 614.516 686.422 614.652 + c 686.422 622.34 l 686.422 622.527 686.641 622.648 687.078 622.699 c 687.527 + 622.75 687.98 622.777 688.438 622.777 c 688.438 623.277 l 683.078 623.277 + l f +691.27 623.277 m 691.27 622.777 l 691.582 622.777 691.84 622.758 692.051 + 622.715 c 692.258 622.66 692.363 622.535 692.363 622.34 c 692.363 618.512 + l 692.363 618.156 692.289 617.938 692.145 617.855 c 692.008 617.773 691.738 + 617.73 691.332 617.73 c 691.332 617.246 l 693.348 617.09 l 693.348 622.34 + l 693.348 622.535 693.434 622.66 693.613 622.715 c 693.789 622.758 694.023 + 622.777 694.316 622.777 c 694.316 623.277 l h +691.863 614.684 m 691.863 614.477 691.934 614.297 692.082 614.152 c 692.238 + 613.996 692.418 613.918 692.629 613.918 c 692.754 613.918 692.879 613.953 + 693.004 614.027 c 693.129 614.09 693.223 614.184 693.285 614.309 c 693.355 + 614.422 693.395 614.547 693.395 614.684 c 693.395 614.883 693.316 615.059 + 693.16 615.215 c 693.004 615.371 692.824 615.449 692.629 615.449 c 692.418 + 615.449 692.238 615.371 692.082 615.215 c 691.934 615.059 691.863 614.883 + 691.863 614.684 c f +695.141 623.277 m 695.141 622.777 l 695.453 622.777 695.715 622.758 695.922 + 622.715 c 696.133 622.66 696.234 622.535 696.234 622.34 c 696.234 618.512 + l 696.234 618.262 696.191 618.086 696.109 617.98 c 696.039 617.863 695.926 + 617.797 695.781 617.777 c 695.648 617.746 695.434 617.73 695.141 617.73 + c 695.141 617.246 l 697.172 617.09 l 697.172 618.465 l 697.359 618.059 +697.637 617.73 698 617.48 c 698.367 617.219 698.766 617.09 699.203 617.09 + c 700.277 617.09 700.906 617.527 701.094 618.402 c 701.281 618.008 701.551 + 617.688 701.906 617.449 c 702.273 617.211 702.668 617.09 703.094 617.09 + c 703.52 617.09 703.875 617.156 704.156 617.293 c 704.449 617.43 704.668 + 617.637 704.812 617.918 c 704.961 618.199 705.031 618.555 705.031 618.98 + c 705.031 622.34 l 705.031 622.535 705.137 622.66 705.344 622.715 c 705.555 + 622.758 705.812 622.777 706.125 622.777 c 706.125 623.277 l 702.922 623.277 + l 702.922 622.777 l 703.246 622.777 703.508 622.758 703.703 622.715 c 703.914 + 622.66 704.016 622.535 704.016 622.34 c 704.016 619.012 l 704.016 618.543 + 703.949 618.168 703.812 617.887 c 703.688 617.594 703.418 617.449 703 617.449 + c 702.469 617.449 702.027 617.668 701.672 618.105 c 701.316 618.531 701.141 + 619.023 701.141 619.574 c 701.141 622.34 l 701.141 622.535 701.246 622.66 + 701.453 622.715 c 701.664 622.758 701.922 622.777 702.234 622.777 c 702.234 + 623.277 l 699.031 623.277 l 699.031 622.777 l 699.355 622.777 699.617 622.758 + 699.812 622.715 c 700.02 622.66 700.125 622.535 700.125 622.34 c 700.125 + 619.012 l 700.125 618.562 700.059 618.191 699.922 617.902 c 699.797 617.602 + 699.527 617.449 699.109 617.449 c 698.566 617.449 698.121 617.668 697.766 + 618.105 c 697.422 618.531 697.25 619.023 697.25 619.574 c 697.25 622.34 + l 697.25 622.535 697.355 622.66 697.562 622.715 c 697.77 622.758 698.031 + 622.777 698.344 622.777 c 698.344 623.277 l 695.141 623.277 l f +709.871 623.434 m 709.297 623.434 708.77 623.289 708.293 622.996 c 707.824 + 622.695 707.453 622.293 707.184 621.793 c 706.914 621.293 706.777 620.766 + 706.777 620.215 c 706.777 619.66 706.902 619.141 707.152 618.652 c 707.402 + 618.164 707.746 617.766 708.184 617.465 c 708.633 617.152 709.125 616.996 + 709.668 616.996 c 710.105 616.996 710.48 617.07 710.793 617.215 c 711.105 + 617.359 711.367 617.562 711.574 617.824 c 711.781 618.074 711.938 618.371 + 712.043 618.715 c 712.145 619.059 712.199 619.438 712.199 619.855 c 712.199 + 619.98 712.152 620.043 712.059 620.043 c 707.996 620.043 l 707.996 620.199 + l 707.996 620.969 708.152 621.637 708.465 622.199 c 708.777 622.75 709.289 + 623.027 709.996 623.027 c 710.289 623.027 710.555 622.965 710.793 622.84 + c 711.031 622.703 711.242 622.527 711.418 622.309 c 711.605 622.078 711.73 + 621.836 711.793 621.574 c 711.805 621.543 711.816 621.516 711.84 621.496 + c 711.871 621.465 711.902 621.449 711.934 621.449 c 712.059 621.449 l 712.152 + 621.449 712.199 621.508 712.199 621.621 c 712.062 622.152 711.777 622.59 + 711.34 622.934 c 710.902 623.266 710.414 623.434 709.871 623.434 c h +708.012 619.699 m 711.199 619.699 l 711.199 619.344 711.152 618.992 711.059 + 618.637 c 710.965 618.27 710.801 617.969 710.574 617.73 c 710.344 617.492 + 710.043 617.371 709.668 617.371 c 709.145 617.371 708.742 617.621 708.449 + 618.121 c 708.156 618.609 708.012 619.137 708.012 619.699 c f +718.93 626.777 m 718.93 612.777 l 720.836 612.777 l 720.836 613.34 l 719.496 + 613.34 l 719.496 626.215 l 720.836 626.215 l 720.836 626.777 l 718.93 626.777 + l f +721.633 623.324 m 721.633 621.027 l 721.633 620.953 721.676 620.918 721.758 + 620.918 c 721.93 620.918 l 721.98 620.918 722.02 620.953 722.039 621.027 + c 722.301 622.383 722.926 623.059 723.914 623.059 c 724.363 623.059 724.73 + 622.961 725.023 622.762 c 725.324 622.562 725.477 622.254 725.477 621.84 + c 725.477 621.535 725.355 621.281 725.117 621.074 c 724.887 620.855 724.617 + 620.711 724.305 620.637 c 723.367 620.449 l 723.055 620.375 722.77 620.27 + 722.508 620.137 c 722.246 619.992 722.035 619.805 721.867 619.574 c 721.711 + 619.336 721.633 619.059 721.633 618.746 c 721.633 618.34 721.734 618.008 + 721.945 617.746 c 722.164 617.484 722.445 617.297 722.789 617.184 c 723.145 + 617.059 723.52 616.996 723.914 616.996 c 724.395 616.996 724.809 617.125 + 725.164 617.387 c 725.57 617.043 l 725.57 617.012 725.598 616.996 725.648 + 616.996 c 725.742 616.996 l 725.773 616.996 725.801 617.012 725.82 617.043 + c 725.84 617.062 725.852 617.09 725.852 617.121 c 725.852 618.949 l 725.852 + 619.031 725.816 619.074 725.742 619.074 c 725.57 619.074 l 725.488 619.074 + 725.445 619.031 725.445 618.949 c 725.445 618.461 725.309 618.066 725.039 + 617.777 c 724.77 617.477 724.387 617.324 723.898 617.324 c 723.48 617.324 + 723.117 617.402 722.805 617.559 c 722.504 617.715 722.352 617.98 722.352 + 618.355 c 722.352 618.617 722.461 618.828 722.68 618.996 c 722.91 619.164 + 723.168 619.281 723.461 619.355 c 724.414 619.543 l 724.727 619.617 725.02 + 619.742 725.289 619.918 c 725.57 620.086 725.789 620.305 725.945 620.574 + c 726.113 620.836 726.195 621.129 726.195 621.465 c 726.195 621.797 726.137 + 622.09 726.023 622.34 c 725.91 622.59 725.746 622.797 725.539 622.965 c + 725.332 623.121 725.086 623.234 724.805 623.309 c 724.523 623.391 724.227 + 623.434 723.914 623.434 c 723.332 623.434 722.836 623.234 722.43 622.84 + c 721.914 623.402 l 721.914 623.422 721.887 623.434 721.836 623.434 c 721.758 + 623.434 l 721.676 623.434 721.633 623.398 721.633 623.324 c f +727 626.777 m 727 626.215 l 728.359 626.215 l 728.359 613.34 l 727 613.34 + l 727 612.777 l 728.922 612.777 l 728.922 626.777 l 727 626.777 l f +795.867 624.035 m 795.867 623.984 795.883 623.934 795.914 623.879 c 797.992 + 621.816 l 795.914 619.738 l 795.883 619.707 795.867 619.66 795.867 619.598 + c 795.867 619.559 795.887 619.516 795.93 619.473 c 795.969 619.434 796.016 + 619.41 796.07 619.41 c 796.109 619.41 796.164 619.434 796.227 619.473 c + 798.289 621.535 l 800.352 619.473 l 800.402 619.434 800.449 619.41 800.492 + 619.41 c 800.555 619.41 800.602 619.434 800.633 619.473 c 800.672 619.504 + 800.695 619.547 800.695 619.598 c 800.695 619.66 800.68 619.707 800.648 + 619.738 c 798.57 621.816 l 800.648 623.879 l 800.68 623.934 800.695 623.984 + 800.695 624.035 c 800.695 624.09 800.672 624.133 800.633 624.176 c 800.602 + 624.207 800.555 624.223 800.492 624.223 c 800.449 624.223 800.402 624.203 + 800.352 624.16 c 798.289 622.098 l 796.227 624.16 l 796.172 624.203 796.121 + 624.223 796.07 624.223 c 796.016 624.223 795.969 624.203 795.93 624.16 +c 795.887 624.117 795.867 624.078 795.867 624.035 c f +BT +10 0 0 -10 802.397209 624.317098 Tm +/f-0-0 1 Tf +(10)Tj +8 0 0 -8 814.39721 619.317095 Tm +(-3)Tj +ET +q 1 0 0 -1 0 0 cm +589.398 -593.816 m 589.398 -443.316 l S Q +q 1 0 0 -1 0 0 cm +821.898 -593.816 m 821.898 -443.316 l S Q +q 1 0 0 -1 0 0 cm +589.398 -593.816 m 591.723 -593.816 l S Q +q 1 0 0 -1 0 0 cm +589.398 -568.734 m 591.723 -568.734 l S Q +q 1 0 0 -1 0 0 cm +589.398 -543.648 m 591.723 -543.648 l S Q +q 1 0 0 -1 0 0 cm +589.398 -518.566 m 591.723 -518.566 l S Q +q 1 0 0 -1 0 0 cm +589.398 -493.484 m 591.723 -493.484 l S Q +q 1 0 0 -1 0 0 cm +589.398 -468.398 m 591.723 -468.398 l S Q +q 1 0 0 -1 0 0 cm +589.398 -443.316 m 591.723 -443.316 l S Q +q 1 0 0 -1 0 0 cm +821.898 -593.816 m 819.574 -593.816 l S Q +q 1 0 0 -1 0 0 cm +821.898 -568.734 m 819.574 -568.734 l S Q +q 1 0 0 -1 0 0 cm +821.898 -543.648 m 819.574 -543.648 l S Q +q 1 0 0 -1 0 0 cm +821.898 -518.566 m 819.574 -518.566 l S Q +q 1 0 0 -1 0 0 cm +821.898 -493.484 m 819.574 -493.484 l S Q +q 1 0 0 -1 0 0 cm +821.898 -468.398 m 819.574 -468.398 l S Q +q 1 0 0 -1 0 0 cm +821.898 -443.316 m 819.574 -443.316 l S Q +BT +10 0 0 -10 579.397322 597.317098 Tm +/f-0-0 1 Tf +(0)Tj +0 2.508 Td +(2)Tj +0 2.508 Td +(4)Tj +0 2.508 Td +(6)Tj +0 2.508 Td +(8)Tj +-0.6 2.508 Td +(10)Tj +0 2.507999 Td +(12)Tj +ET +0 0.447059 0.741176 rg +1.5 w +0 J +q 1 0 0 -1 0 0 cm +590.559 -577.16 m 591.723 -577.16 l 597.922 -577.16 604.121 -577.16 610.324 + -577.16 c 611.484 -577.16 l 612.648 -463.773 l 613.809 -477.188 l 614.973 + -489.027 l 616.137 -499.473 l 617.297 -508.691 l 619.34 -523.195 621.668 + -538.602 626.598 -552.461 c 627.762 -555.453 l 628.922 -558.094 l 631.363 + -563.297 634.59 -568.184 639.383 -571.488 c 640.547 -572.246 l 641.711 +-572.914 l 642.871 -573.504 l 650.488 -577.004 659.043 -577.359 667.285 +-577.16 c 670.773 -577.16 l 688.984 -577.16 707.199 -577.16 725.41 -577.16 + c 727.734 -577.16 l 728.898 -463.773 l 730.059 -477.188 l 731.223 -489.027 + l 732.387 -499.473 l 734.969 -517.656 738.219 -552.438 750.984 -567.313 + c 752.148 -568.559 l 753.309 -569.66 l 758.859 -574.637 765.887 -576.168 + 773.074 -576.941 c 774.234 -577.059 l 775.398 -577.16 l 776.559 -577.16 + l 790.898 -577.16 805.234 -577.16 819.57 -577.16 c 821.898 -577.16 l S Q +Q q +0 g +BT +15.5 0 0 -15.5 32.778001 26.031 Tm +/f-0-0 1 Tf +(ELM_TIME_PERIOD=0.001)Tj +0 -1.2 Td +(ELM_TIME_BEGIN=0.0002 )Tj +0 -1.2 Td +[(ELM_TIME_PL)-23(A)76(TEAU=0.0002 )]TJ +0 -1.2 Td +[(ELM_TIME_RECO)18(VER)61(Y=0.0006 )]TJ +0 -1.2 Td +(ELM_TIME_END=0.0006)Tj +17.958388 4.8 Td +(ELM_TIME_PERIOD=0.001)Tj +0 -1.2 Td +(ELM_TIME_BEGIN=0.0002 )Tj +0 -1.2 Td +[(ELM_TIME_PL)-23(A)76(TEAU=0.0002 )]TJ +0 -1.2 Td +[(ELM_TIME_RECO)18(VER)61(Y=0.0004 )]TJ +0 -1.2 Td +(ELM_TIME_END=0.0006)Tj +17.958388 4.8 Td +(ELM_TIME_PERIOD=0.001)Tj +0 -1.2 Td +(ELM_TIME_BEGIN=0.0002 )Tj +0 -1.2 Td +[(ELM_TIME_PL)-23(A)76(TEAU=0.0005 )]TJ +0 -1.2 Td +[(ELM_TIME_RECO)18(VER)61(Y=0.0005 )]TJ +0 -1.2 Td +(ELM_TIME_END=0.0005 )Tj +0 -1.2 Td +[(ELM_CR)41(ASH_F)88(A)17(CTOR=50.0)]TJ +-35.915807 -14.423226 Td +(ELM_TIME_PERIOD=0.001)Tj +0 -1.2 Td +(ELM_TIME_BEGIN=0.0002 )Tj +0 -1.2 Td +[(ELM_TIME_PL)-23(A)76(TEAU=0.0004 )]TJ +0 -1.2 Td +[(ELM_TIME_RECO)18(VER)61(Y=0.0004 )]TJ +0 -1.2 Td +(ELM_TIME_END=0.0006)Tj +17.958388 4.8 Td +(ELM_TIME_PERIOD=0.001)Tj +0 -1.2 Td +(ELM_TIME_BEGIN=0.0002 )Tj +0 -1.2 Td +[(ELM_TIME_PL)-23(A)76(TEAU=0.0005 )]TJ +0 -1.2 Td +[(ELM_TIME_RECO)18(VER)61(Y=0.0005 )]TJ +0 -1.2 Td +(ELM_TIME_END=0.0005)Tj +17.958388 4.8 Td +(ELM_TIME_PERIOD=0.001)Tj +0 -1.2 Td +(ELM_TIME_BEGIN=0.0002 )Tj +0 -1.2 Td +[(ELM_TIME_PL)-23(A)76(TEAU=0.0002 )]TJ +0 -1.2 Td +[(ELM_TIME_RECO)18(VER)61(Y=0.0002 )]TJ +0 -1.2 Td +(ELM_TIME_END=0.0006 )Tj +0 -1.2 Td +[(ELM_RECO)18(VER)61(Y_F)88(A)18(CTOR=5.0)]TJ +ET +0.0823529 0.376471 0.509804 rg +95.543 147.387 m 95.543 144.18 98.09 141.578 101.23 141.578 c 104.375 141.578 + 106.922 144.18 106.922 147.387 c 106.922 150.59 104.375 153.191 101.23 +153.191 c 98.09 153.191 95.543 150.59 95.543 147.387 c h +95.543 147.387 m f* +0.0156863 0.141176 0.2 rg +1.5 w +0 J +0 j +[] 0.0 d +8 M q 1 0 0 -1 0 0 cm +95.543 -147.387 m 95.543 -144.18 98.09 -141.578 101.23 -141.578 c 104.375 + -141.578 106.922 -144.18 106.922 -147.387 c 106.922 -150.59 104.375 -153.191 + 101.23 -153.191 c 98.09 -153.191 95.543 -150.59 95.543 -147.387 c h +95.543 -147.387 m S Q +0.0823529 0.376471 0.509804 rg +96.793 259.102 m 96.793 255.898 99.34 253.297 102.48 253.297 c 105.625 +253.297 108.172 255.898 108.172 259.102 c 108.172 262.309 105.625 264.91 + 102.48 264.91 c 99.34 264.91 96.793 262.309 96.793 259.102 c h +96.793 259.102 m f* +0.0156863 0.141176 0.2 rg +q 1 0 0 -1 0 0 cm +96.793 -259.102 m 96.793 -255.898 99.34 -253.297 102.48 -253.297 c 105.625 + -253.297 108.172 -255.898 108.172 -259.102 c 108.172 -262.309 105.625 -264.91 + 102.48 -264.91 c 99.34 -264.91 96.793 -262.309 96.793 -259.102 c h +96.793 -259.102 m S Q +0 g +128.758 166.566 m 112.512 155.859 l 113.34 154.609 l 129.586 165.316 l +h +112.109 158.289 m 108.75 152.484 l 115.41 153.281 l h +112.109 158.289 m f +136.402 245.27 m 115.453 251.211 l 115.863 252.656 l 136.809 246.715 l +h +115.805 248.773 m 110.848 253.297 l 117.441 254.547 l h +115.805 248.773 m f +BT +13 0 0 -13 105.959007 179.010997 Tm +/f-0-0 1 Tf +[(TD)18(A)77(T)78(A\(3,ir,ik,is\))]TJ +1.153077 -4.731231 Td +[(TD)18(A)77(T)78(A\(2,ir,ik,is\))]TJ +ET +Q Q +showpage +%%Trailer +end +%%EOF diff --git a/doc/solps/ELM_cycles.pdf b/doc/solps/ELM_cycles.pdf new file mode 100644 index 000000000..cbad72cfa Binary files /dev/null and b/doc/solps/ELM_cycles.pdf differ diff --git a/doc/solps/b2.transport.inputfile.ELMs b/doc/solps/b2.transport.inputfile.ELMs new file mode 100644 index 000000000..7a60616d3 --- /dev/null +++ b/doc/solps/b2.transport.inputfile.ELMs @@ -0,0 +1,28 @@ + &TRANSPORT + ndata(1, 1 , 1 )= 6 , + tdata(1, 1 , 1 , 1 )= -4.00E-02 , tdata(2, 1 , 1 , 1 )= 1.30 , tdata(3, 1 , 1 , 1 )= 10.00 , + tdata(1, 2 , 1 , 1 )= -1.50E-02 , tdata(2, 2 , 1 , 1 )= 1.30 , tdata(3, 2 , 1 , 1 )= 10.00 , + tdata(1, 3 , 1 , 1 )= -1.40E-02 , tdata(2, 3 , 1 , 1 )= 0.05 , tdata(3, 3 , 1 , 1 )= 10.00 , + tdata(1, 4 , 1 , 1 )= 5.00E-03 , tdata(2, 4 , 1 , 1 )= 0.05 , tdata(3, 4 , 1 , 1 )= 10.00 , + tdata(1, 5 , 1 , 1 )= 5.50E-03 , tdata(2, 5 , 1 , 1 )= 1.30 , tdata(3, 5 , 1 , 1 )= 10.00 , + tdata(1, 6 , 1 , 1 )= 2.50E-02 , tdata(2, 6 , 1 , 1 )= 1.30 , tdata(3, 6 , 1 , 1 )= 10.00 , + ndata(1, 3 , 1 )= 6 , + tdata(1, 1 , 3 , 1 )= -4.00E-02 , tdata(2, 1 , 3 , 1 )= 2.00 , tdata(3, 1 , 3 , 1 )= 10.00 , + tdata(1, 2 , 3 , 1 )= -1.50E-02 , tdata(2, 2 , 3 , 1 )= 2.00 , tdata(3, 2 , 3 , 1 )= 10.00 , + tdata(1, 3 , 3 , 1 )= -1.40E-02 , tdata(2, 3 , 3 , 1 )= 0.07 , tdata(3, 3 , 3 , 1 )= 10.00 , + tdata(1, 4 , 3 , 1 )= 5.00E-03 , tdata(2, 4 , 3 , 1 )= 0.07 , tdata(3, 4 , 3 , 1 )= 10.00 , + tdata(1, 5 , 3 , 1 )= 5.50E-03 , tdata(2, 5 , 3 , 1 )= 2.00 , tdata(3, 5 , 3 , 1 )= 10.00 , + tdata(1, 6 , 3 , 1 )= 2.50E-02 , tdata(2, 6 , 3 , 1 )= 2.00 , tdata(3, 6 , 3 , 1 )= 10.00 , + ndata(1, 4 , 1 )= 6 , + tdata(1, 1 , 4 , 1 )= -4.00E-02 , tdata(2, 1 , 4 , 1 )= 2.00 , tdata(3, 1 , 4 , 1 )= 10.00 , + tdata(1, 2 , 4 , 1 )= -1.50E-02 , tdata(2, 2 , 4 , 1 )= 2.00 , tdata(3, 2 , 4 , 1 )= 10.00 , + tdata(1, 3 , 4 , 1 )= -1.40E-02 , tdata(2, 3 , 4 , 1 )= 0.07 , tdata(3, 3 , 4 , 1 )= 10.00 , + tdata(1, 4 , 4 , 1 )= 5.00E-03 , tdata(2, 4 , 4 , 1 )= 0.07 , tdata(3, 4 , 4 , 1 )= 10.00 , + tdata(1, 5 , 4 , 1 )= 5.50E-03 , tdata(2, 5 , 4 , 1 )= 2.00 , tdata(3, 5 , 4 , 1 )= 10.00 , + tdata(1, 6 , 4 , 1 )= 2.50E-02 , tdata(2, 6 , 4 , 1 )= 2.00 , tdata(3, 6 , 4 , 1 )= 10.00 , + ELM_TIME_PERIOD=0.001, + ELM_TIME_BEGIN=0.0002, + ELM_TIME_PLATEAU=0.0002, + ELM_TIME_RECOVERY=0.0006, + ELM_TIME_END=0.0006, + / diff --git a/doc/solps/solps.tex b/doc/solps/solps.tex index badee1f2b..594902b65 100644 --- a/doc/solps/solps.tex +++ b/doc/solps/solps.tex @@ -1370,7 +1370,7 @@ \section{runs} \item[res\_D+O]\index{res\_D+O} non-species dependent residuals for a $D+O$ case \item[res\_D+C+He]\index{res\_D+C+He} non-species dependent residuals for a $D+C+He$ case \item[res\_D+C+Ar+Ne+He]\index{res\_D+C+Ar+Ne+He} non-species dependent residuals for a $D+C+Ar+Ne+He$ case - \item[resco]\index{resco} continuity residuals + \item[resco]\index{resco} continuity residuals per species \item[resco\_reg]\index{resco\_reg} continuity residuals per region \item[resco\_reg\_region \#1]\index{resco\_reg\_region} continuity residuals per region for species \#1 (default 0) \item[resco\_D+C]\index{resco\_D+C} continuity residuals for a $D+C$ case @@ -1383,7 +1383,9 @@ \section{runs} \item[resmo\_D+O]\index{resmo\_D+O} parallel momentum residuals for a $D+O$ case \item[resmo\_D+C+He]\index{resmo\_D+C+He} parallel momentum residuals for a $D+C+He$ case \item[resmt\_reg]\index{resmt\_reg} residuals of the total parallel momentum equation + \item[reshe]\index{reshe} residuals of the electron heat equation \item[reshe\_reg]\index{reshe\_reg} residuals of the electron heat equation per region + \item[reshi]\index{reshe} residuals of the ion heat equation \item[reshi\_reg]\index{reshi\_reg} residuals of the ion heat equation per region \item[respo] \index{respo} residuals of the potential equation, including the internal iterations \item[respo\_num] \index{respo\_num} the number of internal potential equation iterations @@ -1464,7 +1466,7 @@ \section{runs} \begin{verbatim} setenv GNUPLOT_BATCH yes setenv GNUPLOT_POSTSCRIPT_OPTIONS 'color solid' -setenv PRINT_PLOT b2time2d.ps +setenv PRINT_PLOT b2time2d_time_traces.ps rm -f GNUPLOT_COUNT gnuplot.cmd echo 0 > GNUPLOT_COUNT @@ -1543,16 +1545,45 @@ \section{runs} \end{description} \item Detailed run diagnostics (Many of these invoke the {\tt plot} command described above and can be toggled to use a logarithmic $y$ scale by use of an additional {\tt l} argument while {\tt L} also plots the absolute values of negative quantities on the same scale and {\tt M} the absolute values of negative quantities in a separate plot) \begin{description} - \item[2d]\index{2d} plots time-dependent quantities from {\tt b2time.nc} (Appendix \ref{cha:b2time}), 2$^{nd}$, 3$^{rd}$ {\it etc.\ versus} the 1$^{st}$ argument. - \item[2da]\index{2da} prints time-dependent quantities from {\tt b2time.nc} (Appendix \ref{cha:b2time}), 2$^{nd}$, 3$^{rd}$ {\it etc.\ versus} the 1$^{st}$ argument. - \item[2dt]\index{2dt} plots time-dependent quantities from {\tt b2time.nc} (Appendix \ref{cha:b2time}) versus time. A python version of this script also exists (Python 2.7 and 3.5 compatible). + \item[2d]\index{2d} plots time-dependent quantities from {\tt b2time.nc} (Appendix \ref{cha:b2time}), 2$^{nd}$, 3$^{rd}$ {\it etc.\ versus} the 1$^{st}$ argument. Multi-species quantities should be called as {\tt \$\{name\}\allowbreak\$\{is\}}, where {\tt \$\{is\}} is the {\tt B2.5} species index (the species names can be retrieved using the {\bf species} command). E.g.: + \begin{verbatim} + > 2d timesa nesepm + > 2d timesa tesepm tisepm + > 2d timesa nasepm1 nasepm9 + \end{verbatim} + \item[2da]\index{2da} prints time-dependent quantities from {\tt b2time.nc} (Appendix \ref{cha:b2time}), 2$^{nd}$, 3$^{rd}$ {\it etc.\ versus} the 1$^{st}$ argument. Multi-species quantities should be called as {\tt \$\{name\}\allowbreak\$\{is\}}, where {\tt \$\{is\}} is the {\tt B2.5} species index (the species names can be retrieved using the {\bf species} command). E.g.: + \begin{verbatim} + > 2da timesa nesepm + > 2da timesa tesepm tisepm + > 2da timesa nasepm1 nasepm9 + \end{verbatim} + \item[2dds]\index{2dds} prints profiles from {\tt b2time.nc} (Appendix \ref{cha:b2time}) versus the corresponding space coordinate. Multi-species quantities should be called as {\tt \$\{name\}\allowbreak\$\{is\}}, where {\tt \$\{is\}} is the {\tt B2.5} species index (the species names can be retrieved using the {\bf species} command). E.g.: + \begin{verbatim} + > 2dds ne3da + > 2dds te3da ti3da + > 2dds na3da1 na3da9 + \end{verbatim} + By default, the plotted profiles will be averaged over the last 10 snapshots. If the number of available snapshots is less than 10, the default will be to average over all the snapshots available. The averaging limits can be adjusted with the two further arguments which should be added at end of the command (default values are 10 and 0 respectively). + \item[2dt]\index{2dt} plots time-dependent quantities from {\tt b2time.nc} (Appendix \ref{cha:b2time}) versus time. Multi-species quantities should be called as {\tt \$\{name\}\allowbreak\$\{is\}}, where {\tt \$\{is\}} is the {\tt B2.5} species index (the species names can be retrieved using the {\bf species} command). E.g.: + \begin{verbatim} + > 2dt nesepm + > 2dt tesepm tisepm + > 2dt nasepm1 nasepm9 + \end{verbatim} + A python version of this script also exists (Python 2.7 and 3.5 compatible). \item[2dt\_tallies.py]\index{2dt\_tallies.py} plots time-dependent quantities from {\tt b2tallies.nc} (Appendix \ref{cha:b2tallies}) versus time (Python 3.5 compatible). - \item[2dt\_av]\index{2dt\_av} plots averaged time-dependent quantities from {\tt b2time.nc} (Appendix \ref{cha:b2time}) versus time. + \item[2dt\_tracing]\index{2dt\_tracing} plots time-dependent quantities from the run tracing files {\tt tracing/*.trc}. + \item[2dt\_av]\index{2dt\_av} plots averaged time-dependent quantities from {\tt b2time.nc} (Appendix \ref{cha:b2time}) versus time. Multi-species quantities should be called as {\tt \$\{name\}\allowbreak\$\{is\}}, where {\tt \$\{is\}} is the {\tt B2.5} species index (the species names can be retrieved using the {\bf species} command). E.g.: + \begin{verbatim} + > 2dt_av nesepm + > 2dt_av tesepm tisepm + > 2dt_av nasepm1 nasepm9 + \end{verbatim} \item[2dvi]\index{2dvi} prepares a \btwoplot command file {\tt TDV/contr.b2p} for production of input files to start a {\tt DIVIMP} run. - \item[2d\_plots]\label{script:2dplots}\index{2d\_plots} prepares {\tt b2time2d.ps} from {\tt b2time.nc} (Appendix \ref{cha:b2time}). This uses the batch feature of the {\tt plot} command. - \item[2d\_plots\_av]\index{2d\_plots\_av} prepares {\tt b2time2d\_av.ps} from averaged values in {\tt b2time.nc} (Appendix \ref{cha:b2time}). This uses the batch feature of the {\tt plot} command. - \item[2d\_profiles]\index{2d\_profiles} creates {\tt *.last10} files for plotting. When processing fluxes, divides them by the area of contact to the neighbouring cell. By default, the profiles will be averaged over the last 10 snapshots. If the number of available snapshots is less than 10, the default will be to average over all the snapshots available. The averaging limits can be adjusted with the \#1 and \#2 arguments (default values are 10 and 0 respectively). - \item[2d\_profiles\_extended]\index{2d\_profiles\_extended} creates {\tt *.last10} files for plotting. When processing fluxes, divides them by the area of contact to the neighbouring cell. The flux files ending in {\tt P.last10} are divided by the perpendicular area of the cell face. By default, the profiles will be averaged over the last 10 snapshots. If the number of available snapshots is less than 10, the default will be to average over all the snapshots available. The averaging number can be adjusted with the \#1 argument (default value is 10). + \item[2d\_plots]\label{script:2dplots}\index{2d\_plots} prepares {\tt b2time2d\_time\_traces.ps} from {\tt b2time.nc} (Appendix \ref{cha:b2time}) containing several relevant time traces. + \item[2d\_plots\_av]\index{2d\_plots\_av} prepares {\tt b2time2d\_time\_traces\_av.ps} from averaged values in {\tt b2time.nc} (Appendix \ref{cha:b2time}) containing several relevant time traces. This uses the batch feature of the {\tt plot} command. + \item[2d\_profiles]\index{2d\_profiles} creates {\tt *.last10} files containing several relevant plasma profiles at relevant locations (inner/outer midplane and divertor targets), and plots the important ones on {\tt b2time2d\_profiles.ps}. When processing fluxes, divides them by the area of contact to the neighbouring cell. By default, the printed profiles will be averaged over the last 10 snapshots. If the number of available snapshots is less than 10, the default will be to average over all the snapshots available. The averaging limits can be adjusted with the \#1 and \#2 arguments (default values are 10 and 0 respectively). + \item[2d\_profiles\_extended]\index{2d\_profiles\_extended} creates {\tt *.last10} files containing several relevant plasma profiles at relevant locations (inner/outer midplane and divertor targets). When processing fluxes, divides them by the area of contact to the neighbouring cell. The flux files ending in {\tt P.last10} are divided by the perpendicular area of the cell face. By default, the printed profiles will be averaged over the last 10 snapshots. If the number of available snapshots is less than 10, the default will be to average over all the snapshots available. The averaging number can be adjusted with the \#1 argument (default value is 10). \item[2d.summarize]\index{2d.summarize} Outputs the time-dependent quantities from the last time point in {\tt b2time.nc}. \item[b2favere\_OK]\index{b2favere\_OK} Checks that the {\tt b2favere} file is of correct size and content. \item[b2fstate\_OK]\index{b2fstate\_OK} Checks that the {\tt b2fstate} file is of correct size and content. @@ -1582,6 +1613,7 @@ \section{runs} \item[energy\_balance\_core\_extended]\index{energy\_balance\_core\_extended} Plots an extended version including volumetric sources of the energy balance for the core plasma. \item[energy\_balance\_coupled]\index{energy\_balance\_coupled} Plots the energy balance, including sources from {\tt Eirene}. \item[energy\_balance\_extended]\index{energy\_balance\_extended} Plots an extended version including volumetric sources of the energy balance. + \item[energy\_balance\_tracing]\index{energy\_balance\_tracing} prepares the {\tt energy\_balance.ps} file from {\tt tracing/blne.trc} containing the full energy balance of the run (in order: total energy balance, decomposition of radiation terms, decomposition of the energy load onto the inner target, decomposition of the energy load onto the outer target, decomposition of the energy load onto the main wall). \item[fchxreg]\index{fchxreg} Plots the electric current flow across important $x$-directed surfaces in {\tt B2.5}. \item[fchyreg]\index{fchyreg} Plots the electric current flow across important $y$-directed surfaces in {\tt B2.5}. \item[fhexreg]\index{fhexreg} Plots the electron energy flow across important $x$-directed surfaces in {\tt B2.5}. @@ -1599,6 +1631,7 @@ \section{runs} \item[fluid\_fluxes \#1 \#2]\index{fluid\_fluxes} Plots the sum of fluid fluxes for species numbers varying from \#1 to \#2 (respective defaults are 0 and 1). Also exists as a Python script. Fluxes into the domain are shown as negative values, fluxes out of the domain as positive values. \item[fluxt \#1]\index{fluxt}\index{b2mod\_dimensions.F} Gives the flux strength for the first \#1 {\tt Eirene} strata. The default value is all the strata, as read from the {\tt b2.neutrals.parameters} file, or if not present, the {\tt \$\{SOLPSTOP\}/modules/B2.5/src\allowbreak/modules.local/b2mod\_dimensions.F} file, or if not present, the {\tt \$\{SOLPSTOP\}/modules/B2.5\allowbreak /src/modules/b2mod\_dimensions.F} file. \item[get\_solps\_fluids]\index{get\_solps\_fluids} A utility script to obtain the list of fluid species labels from the {\tt run.log} file. + \item[groups\_species]\index{groups\_species} Obtains the ordered numbers of species contained in each isonuclear sequence. \item[internal\_energy\_balance]\index{internal\_energy\_balance} Outputs the energy balance tallies. \item[internal\_energy\_balance\_coupled]\index{internal\_energy\_balance\_coupled} Outputs the energy balance tallies for a coupled run. \item[joule\_heating]\index{joule\_heating} Plots the amount of Joule heating per region. @@ -1614,7 +1647,9 @@ \section{runs} \item[nesepm\_feedback\_by\_pfr]\index{nesepm\_feedback\_by\_pfr} Plots in {\tt feedback.ps} the parameters of the {\em nesepm\_pfr} feedback scheme. \item[nesepm\_feedback\_fluid]\index{nesepm\_feedback\_fluid} Plots in {\tt feedback.ps} the parameters of the {\em nesepm\_sol} feedback scheme for fluid runs. \item[nireg]\index{nireg} Shows averaged total ion density per region. + \item[particle\_balance\_tracing]\index{particle\_balance\_tracing} prepares the {\tt particle\_balance.ps} file from {\tt tracing/blnn\_SPb.trc} containing the full particle balance of the run (in order: total particle balance and ion balance, both for all fluid species). \item[particle\_conservation\_coupled]\index{particle\_conservation\_coupled} Plots the particle balance for multi-species coupled runs + \item[plot\_residuals]\index{plot\_residuals} prepares the {\tt residuals.ps} containing the time traces of all the run residuals. \item[print\_species]\index{print\_species} Prints the list of species included in the run. \item[reflection]\index{reflection} Shows reflected particle fluxes (for {\tt B2.5} standalone runs). \item[reflection\_energy]\index{reflection\_energy} Shows reflected energy fluxes (for {\tt B2.5} standalone runs). @@ -1674,6 +1709,7 @@ \section{runs} \item[plot\_trc]\index{plot\_trc} Produces {\tt trc.pdf} file (or {\tt trc.ps} if {\tt PLOT\_TRC\_FMT} environment variable is set to {\tt ps}) containing desired figures based on the data from {\tt tracing/*.trc} and {\tt b2time.nc} (potentially other similarly formatted files as well) according to {\tt plot\_trc.cmd} file (default example of this file can be found in {\tt \$SOLPSTOP/scripts/commands}). Read the script header for further details. \item[plot\_trg]\index{plot\_trg} Produces {\tt trg.pdf} file (or {\tt trg.pdf} if {\tt PLOT\_TRC\_FMT} environment variable is set to {\tt ps}) containing desired figures based on the data from {\tt ld\_tg\_*.dat} and {\tt fp\_tg\_*.dat} (potentially other similarly formatted files as well) according to {\tt plot\_trg.cmd} file (default example of this file can be found in {\tt \$SOLPSTOP/scripts/commands}). Also produces {\tt trg\_sum.dat} file containing some integral, peak and average quantities at the targets. Read the script header for further details. \item[quote\_pwd]\index{quote\_pwd} Returns the current working directory as a string with quotes (c.f.\ {\tt noquote\_pwd}). + \item[replace\_links]\index{replace\_links} This script recursively replaces all symbolic links in a directory and subdirectories (in the current directory if called without arguments, or in a directory specified as argument) with the real file or folder to which they are linked, keeping the same name of the original link (if the real linked file/folder currently exists). \item[rlndr]\index{rlndr} Replaces a link address by another. \item[saveb2]\index{saveb2} Workflow script used to backup and save current run data. Intended usage would be running {\tt saveb2 -l} whenever the run is stopped for the diagnostic purpose. This will create {\tt backup.date} directory, copy all the important files there and move tracing files there as well (this allows to keep the whole run history and simultaneously limit the size of current tracing files for faster plotting and better space management). After that {\tt b2mndr\_stime} switch should be set to the current timestamp (can be done by running {\tt STIME -l} script) and run can be continued. After the run is converged {\tt saveb2 -s run\_name} can be used to copy all the necessary files to {\tt run\_name.save} directory and the current {\tt run\_name} directory can be safely deleted to clean-up the space. The script can also be used to setup a workspace on scratch, copy results back and clean-up the workspace. \item[STIME]\index{STIME} Auxiliary script to handle {\tt b2mndr\_stime} with {\tt saveb2} workflow, run {\tt STIME -h} for details. @@ -3357,6 +3393,67 @@ \subsection{b2.transport.inputfile} \VerbatimInput[fontsize=\footnotesize]{b2.transport.inputfile} +\subsubsection{ELM model} +\index{ELM\_model}\index{ELMs}\label{lab:elm:model} + +A simplified model is available to emulate ELM events through a periodic increase +of the anomalous transport coefficients declared in {\tt b2.transport.inputfile}. +This is done by declaring further variables {\tt tdata(3,m,i,j)} corresponding to +the values of the coefficients at the plateau of the ELM events. The values declared +by {\tt tdata(2,m,i,j)} will correspond, in this case, to the inter-ELM coefficients.\\ +The characteristics of the ELM dynamics are controlled through the following variables +(see also Appendix \ref{lis:b2cdcn}): + +\begin{description} + \item[elm\_period]\index{elm\_period} is a real number indicating the period (in seconds) of the simulated ELMs. + \item[elm\_time\_begin]\index{elm\_time\_begin} is an array of 9 reals determining the times (in seconds), within + an ELM cycle, at which the overall ELM phase begins (i.e.\ the transport coefficients + start to ramp up from the {\tt tdata(2,m,i,j)} values to the {\tt tdata(3,m,i,j)} values). + \item[elm\_time\_plateau]\index{elm\_time\_plateau} is an array of 9 reals determining the times (in seconds), within + an ELM cycle, at which the ELM phase reaches its plateau (i.e.\ the transport coefficients + start keeping constant values equal to the {\tt tdata(3,m,i,j)}). + \item[elm\_time\_recovery]\index{elm\_time\_recovery} is an array of 9 reals determining the times (in seconds), within + an ELM cycle, at which the ELM plateau phase ends (i.e.\ the transport coefficients + start to ramp down from the {\tt tdata(3,m,i,j)} values to the {\tt tdata(2,m,i,j)} values). + \item[elm\_time\_end]\index{elm\_time\_end} is an array of 9 reals determining the times (in seconds), within + an ELM cycle, at which the overall ELM phase ends (i.e.\ the transport coefficients + start again keeping costant values equal to the {\tt tdata(2,m,i,j)}). + \item[elm\_crash\_factor]\index{elm\_crash\_factor} is an array of 9 reals determining the factors describing + a logarithmic-type increase of the transport coefficients from the {\tt tdata(2,m,i,j)} values + to the {\tt tdata(3,m,i,j)} values during the ELM crash phase. By default (very low values) the increase is linear in time. + For higher values, the increase is faster at the beginning and slower towards the end of the crash phase. + \item[elm\_recovery\_factor]\index{elm\_recovery\_factor} is an array of 9 reals determining the factors describing + an exponential-type decrease of the transport coefficients from the {\tt tdata(3,m,i,j)} values + to the {\tt tdata(2,m,i,j)} values during the ELM recovery phase. By default (very low values) the decrease is linear in time. + For higher values, the decrease is faster at the beginning and slower towards the end of the recovery phase. + \item[elm\_ballooning\_exp]\index{elm\_ballooning\_exp} is an array of 9 reals determining the exponents of a ballooning-type + cosine distribution describing a poloidal dependence of the ELM profiles, with default peaking at the outer midplane. + See Appendix \ref{lis:b2cdcn} for further details. + \item[elm\_dynamics\_multiple]\index{elm\_dynamics\_multiple} is a logical determining whether all the 9 types + of transport coefficients have the same dynamics for the ELM phases. If true, then the 9 different values of the + above-mentioned variables are applied to the 9 types of transport coefficients. If false, then the first value + of the above-mentioned variables is applied to all the 9 types of transport coefficients. +\end{description} + +The following contains an example where the ELM model is used, simulating +ELM events at a repetition rate of 1000 $Hz$, through a step increase of the transport +coefficients for a duration of 0.4 $ms$. + +\VerbatimInput[fontsize=\footnotesize]{b2.transport.inputfile.ELMs} + +Examples of the resulting shapes of the transport coefficients at a given radial location, +simulating repetitive ELM events, are shown in Fig.~\ref{fig:elm-cycles}. + +\begin{figure}[hbtp] +\ifpdf + \centerline{\includegraphics[height=12cm]{ELM_cycles.pdf}} +\else + \centerline{\includegraphics[height=12cm]{ELM_cycles.eps}} +\fi + \caption{Examples of different dynamics for the transport coefficients during ELM cycles.} + \label{fig:elm-cycles} +\end{figure} + \subsection{b2.sources.profile} \index{b2.sources.profile}\index{b2sral}\index{b2sral\_inputfile}\index{sources}\label{lab:b2:sources:profile} @@ -14947,32 +15044,66 @@ \chapter{Quantities stored in b2time.nc} feixap \index{feixap}\index{b2time.nc, feixap} & integrated poloidal ion energy flux, Eastern edge & $W$ \\ fetxap \index{fetxap}\index{b2time.nc, fetxap} & integrated poloidal total internal energy flux, Eastern edge & $W$ \\ fchxap \index{fchxap}\index{b2time.nc, fchxap} & integrated poloidal current, Eastern edge & $A$ \\ +nasepi \index{nasepi}\index{b2time.nc, nasepi} & separatrix fluid species density & \\ + & \hspace{1cm} (for each fluid species), Western edge & $m^{-3}$ \\ nesepi \index{nesepi}\index{b2time.nc, nesepi} & separatrix electron density, Western edge & $m^{-3}$ \\ tesepi \index{tesepi}\index{b2time.nc, tesepi} & separatrix electron temperature, Western edge & $eV$ \\ tisepi \index{tisepi}\index{b2time.nc, tisepi} & separatrix ion temperature, Western edge & $eV$ \\ +dabsepi \index{dabsepi}\index{b2time.nc, dabsepi} & separatrix {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Western edge & $m^{-3}$ \\ +dmbsepi \index{dmbsepi}\index{b2time.nc, dmbsepi} & separatrix {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Western edge & $m^{-3}$ \\ +tabsepi \index{tabsepi}\index{b2time.nc, tabsepi} & separatrix {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Western edge & $eV$ \\ +tmbsepi \index{tmbsepi}\index{b2time.nc, tmbsepi} & separatrix {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Western edge & $eV$ \\ tpsepi \index{tpsepi}\index{b2time.nc, tpsepi} & separatrix target temperature, Western edge & $K$ \\ posepi \index{posepi}\index{b2time.nc, posepi} & separatrix potential, Western edge & $V $ \\ +nasepm \index{nasepm}\index{b2time.nc, nasepm} & separatrix fluid species density & \\ + & \hspace{1cm} (for each fluid species), outer midplane & $m^{-3}$ \\ nesepm \index{nesepm}\index{b2time.nc, nesepm} & separatrix electron density, outer midplane & $m^{-3}$ \\ tesepm \index{tesepm}\index{b2time.nc, tesepm} & separatrix electron temperature, outer midplane & $eV$ \\ tisepm \index{tisepm}\index{b2time.nc, tisepm} & separatrix ion temperature, outer midplane & $eV$ \\ +dabsepm \index{dabsepm}\index{b2time.nc, dabsepm} & separatrix {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), outer midplane & $m^{-3}$ \\ +dmbsepm \index{dmbsepm}\index{b2time.nc, dmbsepm} & separatrix {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), outer midplane & $m^{-3}$ \\ +tabsepm \index{tabsepm}\index{b2time.nc, tabsepm} & separatrix {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), outer midplane & $eV$ \\ +tmbsepm \index{tmbsepm}\index{b2time.nc, tmbsepm} & separatrix {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), outer midplane & $eV$ \\ posepm \index{posepm}\index{b2time.nc, posepm} & separatrix potential, outer midplane & $V$ \\ -dnsepm \index{dnsepm}\index{b2time.nc, dnsepm} & main ion density diffusion coefficient, outer midplane & $m^2.s^{-1}$ \\ -dpsepm \index{dpsepm}\index{b2time.nc, dpsepm} & main neutral pressure diffusion coefficient, outer midplane & $m^2.s^{-1}$ \\ -kesepm \index{kesepm}\index{b2time.nc, kesepm} & electron thermal diffusivity, outer midplane & $m^2.s^{-1}$ \\ -kisepm \index{kisepm}\index{b2time.nc, kisepm} & ion thermal diffusivity, outer midplane & $m^2.s^{-1}$ \\ -vxsepm \index{vxsepm}\index{b2time.nc, vxsepm} & main ion poloidal pinch velocity, outer midplane & $m.s^{-1}$ \\ -vysepm \index{vysepm}\index{b2time.nc, vysepm} & main ion radial pinch velocity, outer midplane & $m.s^{-1}$ \\ -vssepm \index{vssepm}\index{b2time.nc, vssepm} & main ion particle viscosity, outer midplane & $m^2.s^{-1}$ \\ +dnsepm \index{dnsepm}\index{b2time.nc, dnsepm} & separatrix main ion density diffusion coefficient, outer midplane & $m^2.s^{-1}$ \\ +dpsepm \index{dpsepm}\index{b2time.nc, dpsepm} & separatrix main neutral pressure diffusion coefficient, outer midplane & $m^2.s^{-1}$ \\ +kesepm \index{kesepm}\index{b2time.nc, kesepm} & separatrix electron thermal diffusivity, outer midplane & $m^2.s^{-1}$ \\ +kisepm \index{kisepm}\index{b2time.nc, kisepm} & separatrix ion thermal diffusivity, outer midplane & $m^2.s^{-1}$ \\ +vxsepm \index{vxsepm}\index{b2time.nc, vxsepm} & separatrix main ion poloidal pinch velocity, outer midplane & $m.s^{-1}$ \\ +vysepm \index{vysepm}\index{b2time.nc, vysepm} & separatrix main ion radial pinch velocity, outer midplane & $m.s^{-1}$ \\ +vssepm \index{vssepm}\index{b2time.nc, vssepm} & separatrix main ion particle viscosity, outer midplane & $m^2.s^{-1}$ \\ +nasepa \index{nasepa}\index{b2time.nc, nasepa} & separatrix fluid species density & \\ + & \hspace{1cm} (for each fluid species), Eastern edge & $m^{-3}$ \\ nesepa \index{nesepa}\index{b2time.nc, nesepa} & separatrix electron density, Eastern edge & $m^{-3}$ \\ tesepa \index{tesepa}\index{b2time.nc, tesepa} & separatrix electron temperature, Eastern edge & $eV$ \\ tisepa \index{tisepa}\index{b2time.nc, tisepa} & separatrix ion temperature, Eastern edge & $eV$ \\ +dabsepa \index{dabsepa}\index{b2time.nc, dabsepa} & separatrix {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Eastern edge & $m^{-3}$ \\ +dmbsepa \index{dmbsepa}\index{b2time.nc, dmbsepa} & separatrix {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Eastern edge & $m^{-3}$ \\ +tabsepa \index{tabsepa}\index{b2time.nc, tabsepa} & separatrix {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Eastern edge & $eV$ \\ +tmbsepa \index{tmbsepa}\index{b2time.nc, tmbsepa} & separatrix {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Eastern edge & $eV$ \\ tpsepa \index{tpsepa}\index{b2time.nc, tpsepa} & separatrix target temperature, Eastern edge & $K$ \\ posepa \index{posepa}\index{b2time.nc, posepa} & separatrix potential, Eastern edge & $V $ \\ +namxip \index{namxip}\index{b2time.nc, namxip} & maximum fluid species density & \\ + & \hspace{1cm} (for each fluid species), Western edge & $m^{-3}$ \\ nemxip \index{nemxip}\index{b2time.nc, nemxip} & maximum electron density, Western edge & $m^{-3}$ \\ temxip \index{temxip}\index{b2time.nc, temxip} & maximum electron temperature, Western edge & $eV$ \\ timxip \index{timxip}\index{b2time.nc, timxip} & maximum ion temperature, Western edge & $eV$ \\ tpmxip \index{tpmxip}\index{b2time.nc, tpmxip} & maximum target temperature, Western edge & $K$ \\ pomxip \index{pomxip}\index{b2time.nc, pomxip} & maximum potential, Western edge & $V$ \\ +namxap \index{namxap}\index{b2time.nc, namxap} & maximum fluid species density & \\ + & \hspace{1cm} (for each fluid species), Eastern edge & $m^{-3}$ \\ nemxap \index{nemxap}\index{b2time.nc, nemxap} & maximum electron density, Eastern edge & $m^{-3}$ \\ temxap \index{temxap}\index{b2time.nc, temxap} & maximum electron temperature, Eastern edge & $eV$ \\ timxap \index{timxap}\index{b2time.nc, timxap} & maximum ion temperature, Eastern edge & $eV$ \\ @@ -15052,13 +15183,16 @@ \chapter{Quantities stored in b2time.nc} \multicolumn{3}{|l|}{\small\it continued on next page} \\ \hline \endfoot \endlastfoot -fn3dl \index{fn3dl}\index{b2time.nc, fn3dl} & poloidal particle flux of main ion, Western edge & $s^{-1}.m^{-2}$ \\ +fn3dl \index{fn3dl}\index{b2time.nc, fn3dl} & poloidal particle flux & \\ + & \hspace{1cm} (for each fluid species), Western edge & $s^{-1}.m^{-2}$ \\ fl3dl \index{fl3dl}\index{b2time.nc, fl3dl} & poloidal electron flux, Western edge & $s^{-1}.m^{-2}$ \\ fo3dl \index{fo3dl}\index{b2time.nc, fo3dl} & poloidal total ion flux, Western edge & $s^{-1}.m^{-2}$ \\ fe3dl \index{fe3dl}\index{b2time.nc, fe3dl} & poloidal electron energy flux, Western edge & $W.m^{-2}$ \\ fi3dl \index{fi3dl}\index{b2time.nc, fi3dl} & poloidal ion energy flux, Western edge & $W.m^{-2}$ \\ ft3dl \index{ft3dl}\index{b2time.nc, ft3dl} & poloidal total internal energy flux, Western edge & $W.m^{-2}$ \\ fc3dl \index{fc3dl}\index{b2time.nc, fc3dl} & poloidal current, Western edge & $A.m^{-2}$ \\ +na3dl \index{ne3dl}\index{b2time.nc, ne3dl} & fluid species density & \\ + & \hspace{1cm} (for each fluid species), Western edge & $m^{-3}$ \\ ne3dl \index{ne3dl}\index{b2time.nc, ne3dl} & electron density, Western edge & $m^{-3}$ \\ te3dl \index{te3dl}\index{b2time.nc, te3dl} & electron temperature, Western edge & $eV$ \\ ti3dl \index{ti3dl}\index{b2time.nc, ti3dl} & ion temperature, Western edge & $eV$ \\ @@ -15066,32 +15200,72 @@ \chapter{Quantities stored in b2time.nc} po3dl \index{po3dl}\index{b2time.nc, po3dl} & potential, Western edge & $V$ \\ an3dl \index{an3dl}\index{b2time.nc, an3dl} & atom density of main neutral, Western edge & $m^{-3}$ \\ mn3dl \index{mn3dl}\index{b2time.nc, mn3dl} & molecule density of $1^{st}$ molecule, Western edge & $m^{-3}$ \\ +dab3dl \index{dab3dl}\index{b2time.nc, dab3dl} & {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Western edge & $m^{-3}$ \\ +dmb3dl \index{dmb3dl}\index{b2time.nc, dmb3dl} & {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Western edge & $m^{-3}$ \\ +tab3dl \index{tab3dl}\index{b2time.nc, tab3dl} & {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Western edge & $eV$ \\ +tmb3dl \index{tmb3dl}\index{b2time.nc, tmb3dl} & {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Western edge & $eV$ \\ +na3di \index{na3di}\index{b2time.nc, na3di} & fluid species density & \\ + & \hspace{1cm} (for each fluid species), inboard midplane & $m^{-3}$ \\ ne3di \index{ne3di}\index{b2time.nc, ne3di} & electron density, inboard midplane & $m^{-3}$ \\ te3di \index{te3di}\index{b2time.nc, te3di} & electron temperature, inboard midplane & $eV$ \\ ti3di \index{ti3di}\index{b2time.nc, ti3di} & ion temperature, inboard midplane & $eV$ \\ po3di \index{po3di}\index{b2time.nc, po3di} & potential, inboard midplane & $V$ \\ an3di \index{an3di}\index{b2time.nc, an3di} & atom density of main neutral, inboard midplane & $m^{-3}$ \\ mn3di \index{mn3di}\index{b2time.nc, mn3di} & molecule density of $1^{st}$ molecule, inboard midplane & $m^{-3}$ \\ -dn3di \index{dn3di}\index{b2time.nc, dn3di} & particle density diffusivity, inboard midplane & $m^2.s^{-1}$ \\ -dp3di \index{dp3di}\index{b2time.nc, dp3di} & particle pressure diffusivity, inboard midplane & $m^2.s^{-1}$ \\ +dab3di \index{dab3di}\index{b2time.nc, dab3di} & {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), inboard midplane & $m^{-3}$ \\ +dmb3di \index{dmb3di}\index{b2time.nc, dmb3di} & {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), inboard midplane & $m^{-3}$ \\ +tab3di \index{tab3di}\index{b2time.nc, tab3di} & {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), inboard midplane & $eV$ \\ +tmb3di \index{tmb3di}\index{b2time.nc, tmb3di} & {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), inboard midplane & $eV$ \\ +dn3di \index{dn3di}\index{b2time.nc, dn3di} & particle density diffusivities & \\ + & \hspace{1cm} (for each fluid species), inboard midplane & $m^2.s^{-1}$ \\ +dp3di \index{dp3di}\index{b2time.nc, dp3di} & particle pressure diffusivities & \\ + & \hspace{1cm} (for each fluid species), inboard midplane & $m^2.s^{-1}$ \\ ke3di \index{ke3di}\index{b2time.nc, ke3di} & electron heat diffusivity, inboard midplane & $m^2.s^{-1}$ \\ ki3di \index{ki3di}\index{b2time.nc, ki3di} & ion heat diffusivity, inboard midplane & $m^2.s^{-1}$ \\ -vs3di \index{vs3di}\index{b2time.nc, vs3di} & main ion viscosity, inboard midplane & $m^2.s^{-1}$ \\ -vx3di \index{vx3di}\index{b2time.nc, vx3di} & main ion poloidal pinch velocity, inboard midplane & $m.s^{-1}$ \\ -vy3di \index{vy3di}\index{b2time.nc, vy3di} & main ion radial pinch velocity, inboard midplane & $m.s^{-1}$ \\ +vs3di \index{vs3di}\index{b2time.nc, vs3di} & viscosities & \\ + & \hspace{1cm} (for each fluid species), inboard midplane & $m^2.s^{-1}$ \\ +vx3di \index{vx3di}\index{b2time.nc, vx3di} & poloidal pinch velocities & \\ + & \hspace{1cm} (for each fluid species), inboard midplane & $m.s^{-1}$ \\ +vy3di \index{vy3di}\index{b2time.nc, vy3di} & radial pinch velocities & \\ + & \hspace{1cm} (for each fluid species), inboard midplane & $m.s^{-1}$ \\ +na3da \index{na3da}\index{b2time.nc, na3da} & fluid species density & \\ + & \hspace{1cm} (for each fluid species), outboard midplane & $m^{-3}$ \\ ne3da \index{ne3da}\index{b2time.nc, ne3da} & electron density, outboard midplane & $m^{-3}$ \\ te3da \index{te3da}\index{b2time.nc, te3da} & electron temperature, outboard midplane & $eV$ \\ ti3da \index{ti3da}\index{b2time.nc, ti3da} & ion temperature, outboard midplane & $eV$ \\ po3da \index{po3da}\index{b2time.nc, po3da} & potential, outboard midplane & $V$ \\ an3da \index{an3da}\index{b2time.nc, an3da} & atom density of main neutral, outboard midplane & $m^{-3}$ \\ mn3da \index{mn3da}\index{b2time.nc, mn3da} & molecule density of $1^{st}$ molecule, outboard midplane & $m^{-3}$ \\ -dn3da \index{dn3da}\index{b2time.nc, dn3da} & particle density diffusivity, outboard midplane & $m^2.s^{-1}$ \\ -dp3da \index{dp3da}\index{b2time.nc, dp3da} & particle pressure diffusivity, outboard midplane & $m^2.s^{-1}$ \\ +dab3da \index{dab3da}\index{b2time.nc, dab3da} & {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), outboard midplane & $m^{-3}$ \\ +dmb3da \index{dmb3da}\index{b2time.nc, dmb3da} & {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), outboard midplane & $m^{-3}$ \\ +tab3da \index{tab3da}\index{b2time.nc, tab3da} & {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), outboard midplane & $eV$ \\ +tmb3da \index{tmb3da}\index{b2time.nc, tmb3da} & {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), outboard midplane & $eV$ \\ +dn3da \index{dn3da}\index{b2time.nc, dn3da} & particle density diffusivities & \\ + & \hspace{1cm} (for each fluid species), outboard midplane & $m^2.s^{-1}$ \\ +dp3da \index{dp3da}\index{b2time.nc, dp3da} & particle pressure diffusivities & \\ + & \hspace{1cm} (for each fluid species), outboard midplane & $m^2.s^{-1}$ \\ ke3da \index{ke3da}\index{b2time.nc, ke3da} & electron heat diffusivity, outboard midplane & $m^2.s^{-1}$ \\ ki3da \index{ki3da}\index{b2time.nc, ki3da} & ion heat diffusivity, outboard midplane & $m^2.s^{-1}$ \\ -vs3da \index{vs3da}\index{b2time.nc, vs3da} & main ion viscosity, outboard midplane & $m^2.s^{-1}$ \\ -vx3da \index{vx3da}\index{b2time.nc, vx3da} & main ion poloidal pinch velocity, outboard midplane & $m.s^{-1}$ \\ -vy3da \index{vy3da}\index{b2time.nc, vy3da} & main ion radial pinch velocity, outboard midplane & $m.s^{-1}$ \\ +vs3da \index{vs3da}\index{b2time.nc, vs3da} & viscosities & \\ + & \hspace{1cm} (for each fluid species), outboard midplane & $m^2.s^{-1}$ \\ +vx3da \index{vx3da}\index{b2time.nc, vx3da} & poloidal pinch velocities & \\ + & \hspace{1cm} (for each fluid species), outboard midplane & $m.s^{-1}$ \\ +vy3da \index{vy3da}\index{b2time.nc, vy3da} & radial pinch velocities & \\ + & \hspace{1cm} (for each fluid species), outboard midplane & $m.s^{-1}$ \\ +na3dr \index{na3dr}\index{b2time.nc, na3dr} & fluid species density & \\ + & \hspace{1cm} (for each fluid species), Eastern edge & $m^{-3}$ \\ ne3dr \index{ne3dr}\index{b2time.nc, ne3dr} & electron density, Eastern edge & $m^{-3}$ \\ te3dr \index{te3dr}\index{b2time.nc, te3dr} & electron temperature, Eastern edge & $eV$ \\ ti3dr \index{ti3dr}\index{b2time.nc, ti3dr} & ion temperature, Eastern edge & $eV$ \\ @@ -15099,7 +15273,16 @@ \chapter{Quantities stored in b2time.nc} po3dr \index{po3dr}\index{b2time.nc, po3dr} & potential, Eastern edge & $V$ \\ an3dr \index{an3dr}\index{b2time.nc, an3dr} & atom density of main neutral, Eastern edge & $m^{-3}$ \\ mn3dr \index{mn3dr}\index{b2time.nc, mn3dr} & molecule density of $1^{st}$ molecule, Eastern edge & $m^{-3}$ \\ -fn3dr \index{fn3dr}\index{b2time.nc, fn3dr} & poloidal particle flux of main ion, Eastern edge & $s^{-1}.m^{-2}$ \\ +dab3dr \index{dab3dr}\index{b2time.nc, dab3dr} & {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Eastern edge & $m^{-3}$ \\ +dmb3dr \index{dmb3dr}\index{b2time.nc, dmb3dr} & {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Eastern edge & $m^{-3}$ \\ +tab3dr \index{tab3dr}\index{b2time.nc, tab3dr} & {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Eastern edge & $eV$ \\ +tmb3dr \index{tmb3dr}\index{b2time.nc, tmb3dr} & {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Eastern edge & $eV$ \\ +fn3dr \index{fn3dr}\index{b2time.nc, fn3dr} & poloidal particle flux & \\ + & \hspace{1cm} (for each fluid species), Eastern edge & $s^{-1}.m^{-2}$ \\ fe3dr \index{fe3dr}\index{b2time.nc, fe3dr} & poloidal electron energy flux, Eastern edge & $W.m^{-2}$ \\ fi3dr \index{fi3dr}\index{b2time.nc, fi3dr} & poloidal ion energy flux, Eastern edge & $W.m^{-2}$ \\ ft3dr \index{ft3dr}\index{b2time.nc, ft3dr} & poloidal total internal energy flux, Eastern edge & $W.m^{-2}$ \\ @@ -15133,6 +15316,8 @@ \chapter{Quantities stored in b2time.nc} \multicolumn{3}{|l|}{\small\it continued on next page} \\ \hline \endfoot \endlastfoot +na3dtl \index{na3dtl}\index{b2time.nc, na3dtl} & fluid species density & \\ + & \hspace{1cm} (for each fluid species), inboard top divertor & $m^{-3}$ \\ ne3dtl \index{ne3dtl}\index{b2time.nc, ne3dtl} & electron density, inboard top divertor & $m^{-3}$ \\ te3dtl \index{te3dtl}\index{b2time.nc, te3dtl} & electron temperature, inboard top divertor & $eV$ \\ ti3dtl \index{ti3dtl}\index{b2time.nc, ti3dtl} & ion temperature, inboard top divertor & $eV$ \\ @@ -15140,13 +15325,24 @@ \chapter{Quantities stored in b2time.nc} po3dtl \index{po3dtl}\index{b2time.nc, po3dtl} & potential, inboard top divertor & $V $ \\ an3dtl \index{an3dtl}\index{b2time.nc, an3dtl} & atom density of main neutral, inboard top divertor & $m^{-3}$ \\ mn3dtl \index{mn3dtl}\index{b2time.nc, mn3dtl} & molecule density of $1^{st}$ molecule, inboard top divertor & $m^{-3}$ \\ -fn3dtl \index{fn3dtl}\index{b2time.nc, fn3dtl} & poloidal particle flux of main ion, inboard top divertor & $s^{-1}$ \\ +dab3dtl \index{dab3dtl}\index{b2time.nc, dab3dtl} & {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), inboard top divertor & $m^{-3}$ \\ +dmb3dtl \index{dmb3dtl}\index{b2time.nc, dmb3dtl} & {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), inboard top divertor & $m^{-3}$ \\ +tab3dtl \index{tab3dtl}\index{b2time.nc, tab3dtl} & {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), inboard top divertor & $eV$ \\ +tmb3dtl \index{tmb3dtl}\index{b2time.nc, tmb3dtl} & {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), inboard top divertor & $eV$ \\ +fn3dtl \index{fn3dtl}\index{b2time.nc, fn3dtl} & poloidal particle flux & \\ + & \hspace{1cm} (for each fluid species), inboard top divertor & $s^{-1}$ \\ fe3dtl \index{fe3dtl}\index{b2time.nc, fe3dtl} & poloidal electron energy flux, inboard top divertor & $W$ \\ fi3dtl \index{fi3dtl}\index{b2time.nc, fi3dtl} & poloidal ion energy flux, inboard top divertor & $W$ \\ ft3dtl \index{ft3dtl}\index{b2time.nc, ft3dtl} & poloidal total internal energy flux, inboard top divertor & $W$ \\ fc3dtl \index{fc3dtl}\index{b2time.nc, fc3dtl} & poloidal current, inboard top divertor & $A$ \\ fl3dtl \index{fl3dtl}\index{b2time.nc, fl3dtl} & poloidal electron flux, inboard top divertor & $s^{-1}$ \\ fo3dtl \index{fo3dtl}\index{b2time.nc, fo3dtl} & poloidal total ion flux, inboard top divertor & $s^{-1}$ \\ +na3dtr \index{na3dtr}\index{b2time.nc, na3dtr} & fluid species density & \\ + & \hspace{1cm} (for each fluid species), outboard top divertor & $m^{-3}$ \\ ne3dtr \index{ne3dtr}\index{b2time.nc, ne3dtr} & electron density, outboard top divertor & $m^{-3}$ \\ te3dtr \index{te3dtr}\index{b2time.nc, te3dtr} & electron temperature, outboard top divertor & $eV$ \\ ti3dtr \index{ti3dtr}\index{b2time.nc, ti3dtr} & ion temperature, outboard top divertor & $eV$ \\ @@ -15154,7 +15350,16 @@ \chapter{Quantities stored in b2time.nc} po3dtr \index{po3dtr}\index{b2time.nc, po3dtr} & potential, outboard top divertor & $V $ \\ an3dtr \index{an3dtr}\index{b2time.nc, an3dtr} & atom density of main neutral, outboard top divertor & $m^{-3}$ \\ mn3dtr \index{mn3dtr}\index{b2time.nc, mn3dtr} & molecule density of $1^{st}$ molecule, outboard top divertor & $m^{-3}$ \\ -fn3dtr \index{fn3dtr}\index{b2time.nc, fn3dtr} & poloidal particle flux of main ion, outboard top divertor & $s^{-1}$ \\ +dab3dtr \index{dab3dtr}\index{b2time.nc, dab3dtr} & {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), outboard top divertor & $m^{-3}$ \\ +dmb3dtr \index{dmb3dtr}\index{b2time.nc, dmb3dtr} & {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), outboard top divertor & $m^{-3}$ \\ +tab3dtr \index{tab3dtr}\index{b2time.nc, tab3dtr} & {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), outboard top divertor & $eV$ \\ +tmb3dtr \index{tmb3dtr}\index{b2time.nc, tmb3dtr} & {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), outboard top divertor & $eV$ \\ +fn3dtr \index{fn3dtr}\index{b2time.nc, fn3dtr} & poloidal particle flux & \\ + & \hspace{1cm} (for each fluid species), outboard top divertor & $s^{-1}$ \\ fe3dtr \index{fe3dtr}\index{b2time.nc, fe3dtr} & poloidal electron energy flux, outboard top divertor & $W$ \\ fi3dtr \index{fi3dtr}\index{b2time.nc, fi3dtr} & poloidal ion energy flux, outboard top divertor & $W$ \\ ft3dtr \index{ft3dtr}\index{b2time.nc, ft3dtr} & poloidal total internal energy flux, outboard top divertor & $W$ \\ @@ -15186,6 +15391,7 @@ \chapter{Quantities stored in b2time.nc} \endlastfoot \multicolumn{3}{|c|}{If {\tt b2mwti\_2dwrite} $\ge$ 1} \\ \hline + na2d \index{na2d}\index{b2time.nc, na2d} & fluid species density (for each fluid species) & $m^{-3}$ \\ ne2d \index{ne2d}\index{b2time.nc, ne2d} & electron density & $m^{-3}$ \\ te2d \index{te2d}\index{b2time.nc, te2d} & electron temperature & $eV$ \\ ti2d \index{ti2d}\index{b2time.nc, ti2d} & ion temperature & $eV$ \\ @@ -15235,42 +15441,110 @@ \chapter{Quantities stored in b2time.nc} \endlastfoot nastep \index{nastep}\index{b2time.nc, nastep} & timestep index & $ $ \\ batchsa \index{batchsa}\index{b2time.nc, batchsa} & time stamp for averaged batch & $s$ \\ +nasepi\_av \index{nasepi\_av}\index{b2time.nc, nasepi\_av} & averaged separatrix fluid species density & \\ + & \hspace{1cm} (for each fluid species), Western edge & $m^{-3}$ \\ nesepi\_av \index{nesepi\_av}\index{b2time.nc, nesepi\_av} & averaged separatrix electron density, Western edge & $m^{-3}$ \\ tesepi\_av \index{tesepi\_av}\index{b2time.nc, tesepi\_av} & averaged separatrix electron temperature, Western edge & $eV$ \\ tisepi\_av \index{tisepi\_av}\index{b2time.nc, tisepi\_av} & averaged separatrix ion temperature, Western edge & $eV$ \\ +dabsepi\_av \index{dabsepi\_av}\index{b2time.nc, dabsepi\_av} & averaged separatrix {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Western edge & $m^{-3}$ \\ +dmbsepi\_av \index{dmbsepi\_av}\index{b2time.nc, dmbsepi\_av} & averaged separatrix {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Western edge & $m^{-3}$ \\ +tabsepi\_av \index{tabsepi\_av}\index{b2time.nc, tabsepi\_av} & averaged separatrix {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Western edge & $eV$ \\ +tmbsepi\_av \index{tmbsepi\_av}\index{b2time.nc, tmbsepi\_av} & averaged separatrix {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Western edge & $eV$ \\ posepi\_av \index{posepi\_av}\index{b2time.nc, posepi\_av} & averaged separatrix potential, Western edge & $V$ \\ +nasepm\_av \index{nasepm\_av}\index{b2time.nc, nasepm\_av} & averaged separatrix fluid species density & \\ + & \hspace{1cm} (for each fluid species), outer midplane & $m^{-3}$ \\ nesepm\_av \index{nesepm\_av}\index{b2time.nc, nesepm\_av} & averaged separatrix electron density, outer midplane & $m^{-3}$ \\ tesepm\_av \index{tesepm\_av}\index{b2time.nc, tesepm\_av} & averaged separatrix electron temperature, outer midplane & $eV$ \\ tisepm\_av \index{tisepm\_av}\index{b2time.nc, tisepm\_av} & averaged separatrix ion temperature, outer midplane & $eV$ \\ +dabsepm\_av \index{dabsepm\_av}\index{b2time.nc, dabsepm\_av} & averaged separatrix {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), outer midplane & $m^{-3}$ \\ +dmbsepm\_av \index{dmbsepm\_av}\index{b2time.nc, dmbsepm\_av} & averaged separatrix {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), outer midplane & $m^{-3}$ \\ +tabsepm\_av \index{tabsepm\_av}\index{b2time.nc, tabsepm\_av} & averaged separatrix {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), outer midplane & $eV$ \\ +tmbsepm\_av \index{tmbsepm\_av}\index{b2time.nc, tmbsepm\_av} & averaged separatrix {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), outer midplane & $eV$ \\ posepm\_av \index{posepm\_av}\index{b2time.nc, posepm\_av} & averaged separatrix potential, outer midplane & $V$ \\ +nasepa\_av \index{nasepa\_av}\index{b2time.nc, nasepa\_av} & averaged separatrix fluid species density & \\ + & \hspace{1cm} (for each fluid species), Eastern edge & $m^{-3}$ \\ nesepa\_av \index{nesepa\_av}\index{b2time.nc, nesepa\_av} & averaged separatrix electron density, Eastern edge & $m^{-3}$ \\ tesepa\_av \index{tesepa\_av}\index{b2time.nc, tesepa\_av} & averaged separatrix electron temperature, Eastern edge & $eV$ \\ tisepa\_av \index{tisepa\_av}\index{b2time.nc, tisepa\_av} & averaged separatrix ion temperature, Eastern edge & $eV$ \\ +dabsepa\_av \index{dabsepa\_av}\index{b2time.nc, dabsepa\_av} & averaged separatrix {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Eastern edge & $m^{-3}$ \\ +dmbsepa\_av \index{dmbsepa\_av}\index{b2time.nc, dmbsepa\_av} & averaged separatrix {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Eastern edge & $m^{-3}$ \\ +tabsepa\_av \index{tabsepa\_av}\index{b2time.nc, tabsepa\_av} & averaged separatrix {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Eastern edge & $eV$ \\ +tmbsepa\_av \index{tmbsepa\_av}\index{b2time.nc, tmbsepa\_av} & averaged separatrix {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Eastern edge & $eV$ \\ posepa\_av \index{posepa\_av}\index{b2time.nc, posepa\_av} & averaged separatrix potential, Eastern edge & $V$ \\ +namxip\_av \index{namxip\_av}\index{b2time.nc, namxip\_av} & averaged maximum fluid species density & \\ + & \hspace{1cm} (for each fluid species), Western edge & $m^{-3}$ \\ nemxip\_av \index{nemxip\_av}\index{b2time.nc, nemxip\_av} & averaged maximum electron density, Western edge & $m^{-3}$ \\ temxip\_av \index{temxip\_av}\index{b2time.nc, temxip\_av} & averaged maximum electron temperature, Western edge & $eV$ \\ timxip\_av \index{timxip\_av}\index{b2time.nc, timxip\_av} & averaged maximum ion temperature, Western edge & $eV$ \\ pomxip\_av \index{pomxip\_av}\index{b2time.nc, pomxip\_av} & averaged maximum potential, Western edge & $V$ \\ +namxap\_av \index{namxap\_av}\index{b2time.nc, namxap\_av} & averaged maximum fluid species density & \\ + & \hspace{1cm} (for each fluid species), Eastern edge & $m^{-3}$ \\ nemxap\_av \index{nemxap\_av}\index{b2time.nc, nemxap\_av} & averaged maximum electron density, Eastern edge & $m^{-3}$ \\ temxap\_av \index{temxap\_av}\index{b2time.nc, temxap\_av} & averaged maximum electron temperature, Eastern edge & $eV$ \\ timxap\_av \index{timxap\_av}\index{b2time.nc, timxap\_av} & averaged maximum ion temperature, Eastern edge & $eV$ \\ pomxap\_av \index{pomxap\_av}\index{b2time.nc, pomxap\_av} & averaged maximum potential, Eastern edge & $ $ \\ -nesepi\_std \index{nesepi\_std}\index{b2time.nc, nesepi\_std} & averaged separatrix electron density, Western edge & $m^{-3}$ \\ -tesepi\_std \index{tesepi\_std}\index{b2time.nc, tesepi\_std} & averaged separatrix electron temperature, Western edge & $eV$ \\ -tisepi\_std \index{tisepi\_std}\index{b2time.nc, tisepi\_std} & averaged separatrix ion temperature, Western edge & $eV$ \\ -posepi\_std \index{posepi\_std}\index{b2time.nc, posepi\_std} & averaged separatrix potential, Western edge & $V$ \\ +nasepi\_std \index{nasepi\_std}\index{b2time.nc, nasepi\_std} & variance for separatrix fluid species density & \\ + & \hspace{1cm} (for each fluid species), Western edge & $m^{-3}$ \\ +nesepi\_std \index{nesepi\_std}\index{b2time.nc, nesepi\_std} & variance for separatrix electron density, Western edge & $m^{-3}$ \\ +tesepi\_std \index{tesepi\_std}\index{b2time.nc, tesepi\_std} & variance for separatrix electron temperature, Western edge & $eV$ \\ +tisepi\_std \index{tisepi\_std}\index{b2time.nc, tisepi\_std} & variance for separatrix ion temperature, Western edge & $eV$ \\ +dabsepi\_std \index{dabsepi\_std}\index{b2time.nc, dabsepi\_std} & variance for separatrix {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Western edge & $m^{-3}$ \\ +dmbsepi\_std \index{dmbsepi\_std}\index{b2time.nc, dmbsepi\_std} & variance for separatrix {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Western edge & $m^{-3}$ \\ +tabsepi\_std \index{tabsepi\_std}\index{b2time.nc, tabsepi\_std} & variance for separatrix {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Western edge & $eV$ \\ +tmbsepi\_std \index{tmbsepi\_std}\index{b2time.nc, tmbsepi\_std} & variance for separatrix {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Western edge & $eV$ \\ +posepi\_std \index{posepi\_std}\index{b2time.nc, posepi\_std} & variance for separatrix potential, Western edge & $V$ \\ +nasepm\_std \index{nasepm\_std}\index{b2time.nc, nasepm\_std} & variance for separatrix fluid species density & \\ + & \hspace{1cm} (for each fluid species), outer midplane & $m^{-3}$ \\ nesepm\_std \index{nesepm\_std}\index{b2time.nc, nesepm\_std} & variance for separatrix electron density, outer midplane & $m^{-3}$ \\ tesepm\_std \index{tesepm\_std}\index{b2time.nc, tesepm\_std} & variance for separatrix electron temperature, outer midplane & $eV$ \\ tisepm\_std \index{tisepm\_std}\index{b2time.nc, tisepm\_std} & variance for separatrix ion temperature, outer midplane & $eV$ \\ +dabsepm\_std \index{dabsepm\_std}\index{b2time.nc, dabsepm\_std} & variance for separatrix {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), outer midplane & $m^{-3}$ \\ +dmbsepm\_std \index{dmbsepm\_std}\index{b2time.nc, dmbsepm\_std} & variance for separatrix {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), outer midplane & $m^{-3}$ \\ +tabsepm\_std \index{tabsepm\_std}\index{b2time.nc, tabsepm\_std} & variance for separatrix {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), outer midplane & $eV$ \\ +tmbsepm\_std \index{tmbsepm\_std}\index{b2time.nc, tmbsepm\_std} & variance for separatrix {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), outer midplane & $eV$ \\ posepm\_std \index{posepm\_std}\index{b2time.nc, posepm\_std} & variance for separatrix potential, outer midplane & $V $ \\ +nasepa\_std \index{nasepa\_std}\index{b2time.nc, nasepa\_std} & variance for separatrix fluid species density & \\ + & \hspace{1cm} (for each fluid species), Eastern edge & $m^{-3}$ \\ nesepa\_std \index{nesepa\_std}\index{b2time.nc, nesepa\_std} & variance for separatrix electron density, Eastern edge & $m^{-3}$ \\ tesepa\_std \index{tesepa\_std}\index{b2time.nc, tesepa\_std} & variance for separatrix electron temperature, Eastern edge & $eV$ \\ tisepa\_std \index{tisepa\_std}\index{b2time.nc, tisepa\_std} & variance for separatrix ion temperature, Eastern edge & $eV$ \\ +dabsepa\_std \index{dabsepa\_std}\index{b2time.nc, dabsepa\_std} & variance for separatrix {\tt Eirene} atom density & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Eastern edge & $m^{-3}$ \\ +dmbsepa\_std \index{dmbsepa\_std}\index{b2time.nc, dmbsepa\_std} & variance for separatrix {\tt Eirene} molecule density & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Eastern edge & $m^{-3}$ \\ +tabsepa\_std \index{tabsepa\_std}\index{b2time.nc, tabsepa\_std} & variance for separatrix {\tt Eirene} atom temperature & \\ + & \hspace{1cm} (for each atom species, if {\tt Eirene} is used), Eastern edge & $eV$ \\ +tmbsepa\_std \index{tmbsepa\_std}\index{b2time.nc, tmbsepa\_std} & variance for separatrix {\tt Eirene} molecule temperature & \\ + & \hspace{1cm} (for each molecule species, if {\tt Eirene} is used), Eastern edge & $eV$ \\ posepa\_std \index{posepa\_std}\index{b2time.nc, posepa\_std} & variance for separatrix potential, Eastern edge & $V$ \\ +namxip\_std \index{namxip\_std}\index{b2time.nc, namxip\_std} & variance for maximum fluid species density & \\ + & \hspace{1cm} (for each fluid species), Western edge & $m^{-3}$ \\ nemxip\_std \index{nemxip\_std}\index{b2time.nc, nemxip\_std} & variance for maximum electron density, Western edge & $m^{-3}$ \\ temxip\_std \index{temxip\_std}\index{b2time.nc, temxip\_std} & variance for maximum electron temperature, Western edge & $eV$ \\ timxip\_std \index{timxip\_std}\index{b2time.nc, timxip\_std} & variance for maximum ion temperature, Western edge & $eV$ \\ pomxip\_std \index{pomxip\_std}\index{b2time.nc, pomxip\_std} & variance for maximum potential, Western edge & $V$ \\ +namxap\_std \index{namxap\_std}\index{b2time.nc, namxap\_std} & variance for maximum fluid species density & \\ + & \hspace{1cm} (for each fluid species), Eastern edge & $m^{-3}$ \\ nemxap\_std \index{nemxap\_std}\index{b2time.nc, nemxap\_std} & variance for maximum electron density, Eastern edge & $m^{-3}$ \\ temxap\_std \index{temxap\_std}\index{b2time.nc, temxap\_std} & variance for maximum electron temperature, Eastern edge & $eV$ \\ timxap\_std \index{timxap\_std}\index{b2time.nc, timxap\_std} & variance for maximum ion temperature, Eastern edge & $eV$ \\ @@ -15311,6 +15585,7 @@ \chapter{Quantities stored in b2movies.nc and eirenemovies.nc} \hline na \index{na}\index{b2movies.nc, na} & Density of fluid species (for each species) & $m^{-3}$ \\ ne \index{ne}\index{b2movies.nc, ne} & Electron density & $m^{-3}$ \\ + ua \index{ua}\index{b2movies.nc, ua} & Parallel velocity of fluid species (for each species) & $m s^{-1}$ \\ te \index{te}\index{b2movies.nc, te} & Electron temperature & $eV$ \\ ti \index{ti}\index{b2movies.nc, ti} & Ion temperature & $eV$ \\ po \index{po}\index{b2movies.nc, po} & Electric potential & $V$ \\ @@ -15342,6 +15617,16 @@ \chapter{Quantities stored in b2movies.nc and eirenemovies.nc} rqrad \index{rqrad}\index{b2movies.nc, rqrad} & Volumetric line radiation rate (for each fluid species) & $W m^{-3}$ \\ rqahesum \index{rqahesum}\index{b2movies.nc, rqahesum} & Total volumetric line radiation rate & $W m^{-3}$ \\ \hline + \multicolumn{3}{|c|}{If {\tt cdfmovie\_b25\_transport} $\ge$ 1} \\ + \hline + dna \index{dna}\index{b2movies.nc, dna} & Particle density-driven diffusivity (for each fluid species) & $m^{-2} s^{-1}$ \\ + dpa \index{dna}\index{b2movies.nc, dpa} & Particle pressure-driven diffusivity (for each fluid species) & $m^{-2} s^{-1}$ \\ + hci \index{hci}\index{b2movies.nc, hci} & Ion thermal anomalous diffusivity & $m^{-2} s^{-1}$ \\ + hce \index{hce}\index{b2movies.nc, hce} & Electron thermal anomalous diffusivity & $m^{-2} s^{-1}$ \\ + vlax \index{vlax}\index{b2movies.nc, vlax} & Poloidal anomalous pinch velocity (for each fluid species) & $m s^{-1}$ \\ + vlay \index{vlay}\index{b2movies.nc, vlay} & Radial anomalous pinch velocity (for each fluid species) & $m s^{-1}$ \\ + vsa \index{vsa}\index{b2movies.nc, vsa} & Anomalous viscosity (for each fluid species) & $m kg^{-1} s^{-1}$ \\ + \hline \multicolumn{3}{|c|}{If {\tt cdfmovie\_eirene\_state\_variables} $\ge$ 1 (if {\tt Eirene} is used)} \\ \hline dab2 \index{dab2}\index{b2movies.nc, dab2} & Atom density (for each atom species) & $m^{-3}$ \\ @@ -15391,6 +15676,7 @@ \chapter{Quantities stored in b2movies.nc and eirenemovies.nc} \item If {\tt cdfmovie\_b25\_state\_variables} $\ge$ 1: 40 kB per {\tt B2.5} fluid species per outputted timestep. \item If {\tt cdfmovie\_b25\_fluxes} $\ge$ 1: 75 kB per {\tt B2.5} fluid species per outputted timestep. \item If {\tt cdfmovie\_b25\_sources} $\ge$ 1: 250 kB per {\tt B2.5} fluid species per outputted timestep. +\item If {\tt cdfmovie\_b25\_transport} $\ge$ 1: 160 kB per {\tt B2.5} fluid species per outputted timestep. \item If {\tt cdfmovie\_eirene\_state\_variables} $\ge$ 1: 60 kB per {\tt Eirene} atom/molecule species per outputted timestep. \item If {\tt cdfmovie\_eirene\_fluxes} $\ge$ 1: 120 kB per {\tt Eirene} atom/molecule species per outputted timestep. \item If {\tt cdfmovie\_eirene\_sources} $\ge$ 1: 100 kB per {\tt B2.5} fluid species + 45 kB per {\tt Eirene} atom/molecule species per outputted timestep. @@ -15400,11 +15686,12 @@ \chapter{Quantities stored in b2movies.nc and eirenemovies.nc} \item Setting the switch {\tt cdfmovie\_b25\_state\_variables} $\ge$ 1 will cause additional 480 MB of filesize. \item Setting the switch {\tt cdfmovie\_b25\_fluxes} $\ge$ 1 will cause additional 900 MB of filesize. \item Setting the switch {\tt cdfmovie\_b25\_sources} $\ge$ 1 will cause additional 3.0 GB of filesize. +\item Setting the switch {\tt cdfmovie\_b25\_transport} $\ge$ 1 will cause additional 1.9 GB of filesize. \item Setting the switch {\tt cdfmovie\_eirene\_state\_variables} $\ge$ 1 will cause additional 240 MB of filesize. \item Setting the switch {\tt cdfmovie\_eirene\_fluxes} $\ge$ 1 will cause additional 480 MB of filesize. \item Setting the switch {\tt cdfmovie\_eirene\_sources} $\ge$ 1 will cause additional 1.4 GB of filesize. \end{itemize} -If all the aforementioned switches are $\ge$ 1, then a filesize of roughly 6.5 GB can be expected after 1000 outputted timesteps. +If all the aforementioned switches are $\ge$ 1, then a filesize of roughly 8.4 GB can be expected after 1000 outputted timesteps. The arrays outputted to {\tt eirenemovies.nc} are, instead, described in the below Table \ref{tab:eirenemoviesarrays}. The file is created, in case of couples runs, only if the switch {\tt cdfmovie\_triangles} $\ge$ 1. diff --git a/modules/B2.5 b/modules/B2.5 index 8e142a8f9..b7e55e10d 160000 --- a/modules/B2.5 +++ b/modules/B2.5 @@ -1 +1 @@ -Subproject commit 8e142a8f946a7f597f05158bf853c847cf68d291 +Subproject commit b7e55e10d63af95a6facbb1383a36cf22d33caf6 diff --git a/runs/Makefile b/runs/Makefile index a5e492288..152765048 100644 --- a/runs/Makefile +++ b/runs/Makefile @@ -278,6 +278,7 @@ endif -[ -s b2mn.exe.dir/b2time.nc ] && mv b2mn.exe.dir/b2time.nc . || echo > /dev/null -[ -s b2mn.exe.dir/b2batch.nc ] && mv b2mn.exe.dir/b2batch.nc . || echo > /dev/null -[ -s b2mn.exe.dir/b2wall.nc ] && mv b2mn.exe.dir/b2wall.nc . || echo > /dev/null + -[ -s b2mn.exe.dir/b2neo.nc ] && mv b2mn.exe.dir/b2neo.nc . || echo > /dev/null -[ -s b2mn.exe.dir/b2movies.nc ] && mv b2mn.exe.dir/b2movies.nc . || echo > /dev/null -[ -s b2mn.exe.dir/eirenemovies.nc ] && mv b2mn.exe.dir/eirenemovies.nc . || echo > /dev/null -[ -s b2mn.exe.dir/b2tallies.nc ] && mv b2mn.exe.dir/b2tallies.nc . || echo > /dev/null @@ -378,6 +379,7 @@ endif -[ -s b2mn.exe.dir/b2time.nc ] && mv b2mn.exe.dir/b2time.nc . || echo > /dev/null -[ -s b2mn.exe.dir/b2batch.nc ] && mv b2mn.exe.dir/b2batch.nc . || echo > /dev/null -[ -s b2mn.exe.dir/b2wall.nc ] && mv b2mn.exe.dir/b2wall.nc . || echo > /dev/null + -[ -s b2mn.exe.dir/b2neo.nc ] && mv b2mn.exe.dir/b2neo.nc . || echo > /dev/null -[ -s b2mn.exe.dir/b2movies.nc ] && mv b2mn.exe.dir/b2movies.nc . || echo > /dev/null -[ -s b2mn.exe.dir/eirenemovies.nc ] && mv b2mn.exe.dir/eirenemovies.nc . || echo > /dev/null -[ -s b2mn.exe.dir/b2tallies.nc ] && mv b2mn.exe.dir/b2tallies.nc . || echo > /dev/null diff --git a/scripts/2d b/scripts/2d index 1418218e7..f293987d6 100755 --- a/scripts/2d +++ b/scripts/2d @@ -1,16 +1,24 @@ #! /bin/csh -f + if ("X$1" == "X-lx") then set lx="l" shift else set lx="" endif + if ("X$1" == "X-ly") then set ly="l" shift else set ly="" endif + +if ( $#argv < 2 ) then + echo "Error: You must provide at least two arguments (2nd, 3rd, etc. arguments will be plotted vs. the 1st one)." + exit 1 +endif + set x=$1 shift set source=b2mn.exe.dir/b2time.nc @@ -36,23 +44,92 @@ endif cp /dev/null ${tmpdir}gnuplot.data.tmp if ($no_nc2text == 1) then - ncdump $source -f f -v $x | \ - awk 'BEGIN {ORS="";} /data:/{found1=1;next;} /$x/{if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}} END {print "\n";}' | \ - sed 's/,/ /g' | sed 's/;//g' >> ${tmpdir}gnuplot.data.tmp + if ("$x" =~ *[0-9]) then + # Multi-species quantities, called as $x = $name$is (e.g. $x = 'nasepm1') + echo "Error: Plotting multi-species arrays from b2time.nc not yet implemented for $no_nc2text == 1." + exit 1 + else + # Time, called as $x = 'timesa', or single species quantities, called as $x = $name (e.g. $x = 'nesepm') + ncdump $source -f f -v $x | \ + awk 'BEGIN {ORS="";} /data:/{found1=1;next;} /$x/{if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}} END {print "\n";}' | \ + sed 's/,/ /g' | sed 's/;//g' >> ${tmpdir}gnuplot.data.tmp + endif +else + if ("$x" =~ *[0-9]) then + # Multi-species quantities, called as $x = $name$is (e.g. $x = 'nasepm1') + set is = `echo "$x" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$x" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + echo `nc2text -n 9999999 $source "$name(:,$is_plus_1)"` >> ${tmpdir}gnuplot.data.tmp + else + # Time, called as $x = 'timesa', or single species quantities, called as $x = $name (e.g. $x = 'nesepm') + echo `nc2text -n 9999999 $source $x` >> ${tmpdir}gnuplot.data.tmp + endif +endif + +set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` +if (-s $solps_fluids) then + setenv SOLPS_FLUIDS `cat $solps_fluids` else - echo `nc2text -n 9999999 $source $x` >> ${tmpdir}gnuplot.data.tmp + setenv SOLPS_FLUIDS "`get_solps_fluids`" endif +set species_names = ( $SOLPS_FLUIDS ) +set neutral_species_names = () +foreach name ($species_names) + set last_char = `echo "$name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + set neutral_species_names = ($neutral_species_names $name) + endif +end + start: if ($no_nc2text == 1) then - ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}} END {print "\n";}' | \ - sed 's/,/ /g' | sed 's/;//g' >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + echo "Error: Plotting multi-species arrays from b2time.nc not yet implemented for $no_nc2text == 1." + exit 1 + else + # Time, called as $1 = 'timesa', or single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}} END {print "\n";}' | \ + sed 's/,/ /g' | sed 's/;//g' >> ${tmpdir}gnuplot.data.tmp + endif else - echo `nc2text -n 9999999 $source $1` >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + set is = `echo "$1" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$1" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + echo `nc2text -n 9999999 $source "$name(:,$is_plus_1)"` >> ${tmpdir}gnuplot.data.tmp + else + # Time, called as $1 = 'timesa', or single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + echo `nc2text -n 9999999 $source $1` >> ${tmpdir}gnuplot.data.tmp + endif endif shift if ("X$1X" != "XX") goto start -awk.transpose < ${tmpdir}gnuplot.data.tmp | awk 'NR==1{saveNF=NF}NF==saveNF{print $0}' | plot ${lx}x${ly}yplot$nargs $args $x '' $PWD +# Find species names, in case of multi-species array +set args_plot="" +set field_names = ( $args ) +foreach i ($field_names) + if ("$i" =~ *[0-9]) then + # Multi-species quantities, called as $i = $name$is (e.g. $i = 'nasepm1') + set is = `echo "$i" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$i" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + if ("$name" =~ dab* || "$name" =~ dmb* || "$name" =~ tab* || "$name" =~ tmb*) then + setenv species_name $neutral_species_names[$is_plus_1] + else + setenv species_name $species_names[$is_plus_1] + endif + set args_plot="$args_plot $name($species_name)" + else + set args_plot="$args_plot $i" + endif +end + +awk.transpose < ${tmpdir}gnuplot.data.tmp | awk 'NR==1{saveNF=NF}NF==saveNF{print $0}' | plot ${lx}x${ly}yplot$nargs $args_plot $x '' $PWD rm ${tmpdir}gnuplot.data.tmp if ($netcdf4 == 1) then diff --git a/scripts/2d_plots b/scripts/2d_plots index 0345d5c32..16913eb47 100755 --- a/scripts/2d_plots +++ b/scripts/2d_plots @@ -7,18 +7,31 @@ else endif setenv GNUPLOT_BATCH yes setenv GNUPLOT_POSTSCRIPT_OPTIONS 'color solid noenhanced' -setenv PRINT_PLOT b2time2d.ps +setenv PRINT_PLOT b2time2d_time_traces.ps rm -f ${tmpdir}GNUPLOT_COUNT ${tmpdir}gnuplot.cmd echo 0 > ${tmpdir}GNUPLOT_COUNT +set source=b2mn.exe.dir/b2time.nc +if (! -s $source) set source=b2time.nc +set ns = `ncdump -h $source | grep -w "ns =" | sed -E 's/.*= *([0-9]+) *;.*/\1/'` + +set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` +if (-s $solps_fluids) then + setenv SOLPS_FLUIDS `cat $solps_fluids` +else + setenv SOLPS_FLUIDS "`get_solps_fluids`" +endif +set species_names = ( $SOLPS_FLUIDS ) +set neutral_species_index = -1 + set nreg=`climb_and_look_for NREG` set nnreg=`pipe_run.log | grep -a ^nnreg | head -1` if (-s $nreg) then setenv NREG `cat $nreg` - echo Set NREG to $NREG "(based on $nreg)" + #echo Set NREG to $NREG "(based on $nreg)" else set NREG=$nnreg[2] - echo Set NREG to $NREG "(based on log file)" + #echo Set NREG to $NREG "(based on log file)" endif if (! $?NREG) set NREG = 4 if ("X$nnreg" != "X") then @@ -29,8 +42,110 @@ if ("X$nnreg" != "X") then endif 2dt nesepm +set na_dens="" +set neutral_species_index = -1 +foreach is (`seq 1 $ns`) + @ is_minus_1 = $is - 1 + setenv species_name $species_names[$is] + set last_char = `echo "$species_name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$species_name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + # neutral species: call dabsepm if run with Eirene, nasepm if standalone run + if (`ncdump -h $source | grep -w dabsepm | wc -l` > 0) then + # dabsepm fields exist --> coupled run --> call dabsepm + @ neutral_species_index = $neutral_species_index + 1 + set na_dens="$na_dens dabsepm$neutral_species_index " + else + # dabsepm fields do not exist --> standalone run --> call nasepm + set na_dens="$na_dens nasepm$is_minus_1 " + endif + else + # ion species: always call nasepm + set na_dens="$na_dens nasepm$is_minus_1 " + endif +end +set counts = (`groups_species`) +set na_dens_list = (`echo $na_dens`) +set offset = 1 +foreach c ($counts) + @ end = $offset + $c - 1 + set group = "" + foreach i (`seq $offset $end`) + set group = "$group $na_dens_list[$i]" + end + 2dt $group + @ offset = $end + 1 +end 2dt tesepm tisepm 2dt nesepi nemxip nesepa nemxap +set na_dens="" +set neutral_species_index = -1 +foreach is (`seq 1 $ns`) + @ is_minus_1 = $is - 1 + setenv species_name $species_names[$is] + set last_char = `echo "$species_name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$species_name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + # neutral species: call dabsepi if run with Eirene, nasepi if standalone run + if (`ncdump -h $source | grep -w dabsepm | wc -l` > 0) then + # dabsepi fields exist --> coupled run --> call dabsepi + @ neutral_species_index = $neutral_species_index + 1 + set na_dens="$na_dens dabsepi$neutral_species_index " + else + # dabsepi fields do not exist --> standalone run --> call nasepi + set na_dens="$na_dens nasepi$is_minus_1 " + endif + else + # ion species: always call nasepi + set na_dens="$na_dens nasepi$is_minus_1 " + endif +end +set counts = (`groups_species`) +set na_dens_list = (`echo $na_dens`) +set offset = 1 +foreach c ($counts) + @ end = $offset + $c - 1 + set group = "" + foreach i (`seq $offset $end`) + set group = "$group $na_dens_list[$i]" + end + 2dt $group + @ offset = $end + 1 +end +set na_dens="" +set neutral_species_index = -1 +foreach is (`seq 1 $ns`) + @ is_minus_1 = $is - 1 + setenv species_name $species_names[$is] + set last_char = `echo "$species_name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$species_name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + # neutral species: call dabsepa if run with Eirene, nasepa if standalone run + if (`ncdump -h $source | grep -w dabsepm | wc -l` > 0) then + # dabsepa fields exist --> coupled run --> call dabsepa + @ neutral_species_index = $neutral_species_index + 1 + set na_dens="$na_dens dabsepa$neutral_species_index " + else + # dabsepa fields do not exist --> standalone run --> call nasepa + set na_dens="$na_dens nasepa$is_minus_1 " + endif + else + # ion species: always call nasepa + set na_dens="$na_dens nasepa$is_minus_1 " + endif +end +set counts = (`groups_species`) +set na_dens_list = (`echo $na_dens`) +set offset = 1 +foreach c ($counts) + @ end = $offset + $c - 1 + set group = "" + foreach i (`seq $offset $end`) + set group = "$group $na_dens_list[$i]" + end + 2dt $group + @ offset = $end + 1 +end 2dt tesepi temxip tesepa temxap 2dt tisepi timxip tisepa timxap 2dt fnixip fnixap diff --git a/scripts/2d_plots_av b/scripts/2d_plots_av index 1d32ec790..6919bc54d 100755 --- a/scripts/2d_plots_av +++ b/scripts/2d_plots_av @@ -1,4 +1,3 @@ -### eval '(exit $?0)' && eval 'exec tcsh $0 ${1+"$@"}' && eval 'exec tcsh $0 $argv:q' #! /bin/tcsh -f if($?GNUPLOT_TMP) then @@ -8,12 +7,25 @@ else endif setenv GNUPLOT_BATCH yes setenv GNUPLOT_POSTSCRIPT_OPTIONS 'color solid noenhanced' -setenv PRINT_PLOT b2time2d_av.ps +setenv PRINT_PLOT b2time2d_time_traces_av.ps rm -f ${tmpdir}GNUPLOT_COUNT ${tmpdir}gnuplot.cmd echo 0 > ${tmpdir}GNUPLOT_COUNT +set source=b2mn.exe.dir/b2time.nc +if (! -s $source) set source=b2time.nc +set ns = `ncdump -h $source | grep -w "ns =" | sed -E 's/.*= *([0-9]+) *;.*/\1/'` + +set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` +if (-s $solps_fluids) then + setenv SOLPS_FLUIDS `cat $solps_fluids` +else + setenv SOLPS_FLUIDS "`get_solps_fluids`" +endif +set species_names = ( $SOLPS_FLUIDS ) +set neutral_species_index = -1 + set nreg=`climb_and_look_for NREG` -set nnreg=`pipe_run.log | grep ^nnreg | head -1` +set nnreg=`pipe_run.log | grep -a ^nnreg | head -1` if (-s $nreg) then setenv NREG `cat $nreg` echo Set NREG to $NREG "(based on $nreg)" @@ -30,8 +42,110 @@ if ("X$nnreg" != "X") then endif 2dt_av nesepm +set na_dens="" +set neutral_species_index = -1 +foreach is (`seq 1 $ns`) + @ is_minus_1 = $is - 1 + setenv species_name $species_names[$is] + set last_char = `echo "$species_name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$species_name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + # neutral species: call dabsepm if run with Eirene, nasepm if standalone run + if (`ncdump -h $source | grep -w dabsepm | wc -l` > 0) then + # dabsepm fields exist --> coupled run --> call dabsepm + @ neutral_species_index = $neutral_species_index + 1 + set na_dens="$na_dens dabsepm$neutral_species_index " + else + # dabsepm fields do not exist --> standalone run --> call nasepm + set na_dens="$na_dens nasepm$is_minus_1 " + endif + else + # ion species: always call nasepm + set na_dens="$na_dens nasepm$is_minus_1 " + endif +end +set counts = (`groups_species`) +set na_dens_list = (`echo $na_dens`) +set offset = 1 +foreach c ($counts) + @ end = $offset + $c - 1 + set group = "" + foreach i (`seq $offset $end`) + set group = "$group $na_dens_list[$i]" + end + 2dt_av $group + @ offset = $end + 1 +end 2dt_av tesepm tisepm 2dt_av nesepi nemxip nesepa nemxap +set na_dens="" +set neutral_species_index = -1 +foreach is (`seq 1 $ns`) + @ is_minus_1 = $is - 1 + setenv species_name $species_names[$is] + set last_char = `echo "$species_name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$species_name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + # neutral species: call dabsepi if run with Eirene, nasepi if standalone run + if (`ncdump -h $source | grep -w dabsepm | wc -l` > 0) then + # dabsepi fields exist --> coupled run --> call dabsepi + @ neutral_species_index = $neutral_species_index + 1 + set na_dens="$na_dens dabsepi$neutral_species_index " + else + # dabsepi fields do not exist --> standalone run --> call nasepi + set na_dens="$na_dens nasepi$is_minus_1 " + endif + else + # ion species: always call nasepi + set na_dens="$na_dens nasepi$is_minus_1 " + endif +end +set counts = (`groups_species`) +set na_dens_list = (`echo $na_dens`) +set offset = 1 +foreach c ($counts) + @ end = $offset + $c - 1 + set group = "" + foreach i (`seq $offset $end`) + set group = "$group $na_dens_list[$i]" + end + 2dt_av $group + @ offset = $end + 1 +end +set na_dens="" +set neutral_species_index = -1 +foreach is (`seq 1 $ns`) + @ is_minus_1 = $is - 1 + setenv species_name $species_names[$is] + set last_char = `echo "$species_name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$species_name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + # neutral species: call dabsepa if run with Eirene, nasepa if standalone run + if (`ncdump -h $source | grep -w dabsepm | wc -l` > 0) then + # dabsepa fields exist --> coupled run --> call dabsepa + @ neutral_species_index = $neutral_species_index + 1 + set na_dens="$na_dens dabsepa$neutral_species_index " + else + # dabsepa fields do not exist --> standalone run --> call nasepa + set na_dens="$na_dens nasepa$is_minus_1 " + endif + else + # ion species: always call nasepa + set na_dens="$na_dens nasepa$is_minus_1 " + endif +end +set counts = (`groups_species`) +set na_dens_list = (`echo $na_dens`) +set offset = 1 +foreach c ($counts) + @ end = $offset + $c - 1 + set group = "" + foreach i (`seq $offset $end`) + set group = "$group $na_dens_list[$i]" + end + 2dt_av $group + @ offset = $end + 1 +end 2dt_av tesepi temxip tesepa temxap 2dt_av tisepi timxip tisepa timxap 2dt_av fnixip fnixap diff --git a/scripts/2d_profiles b/scripts/2d_profiles index 09539a39e..56a9418e7 100755 --- a/scripts/2d_profiles +++ b/scripts/2d_profiles @@ -4,31 +4,38 @@ if ("X$1X" != "XX") set NUM=$1 set END=-0 if ("X$2X" != "XX") set END=$2 @ NUM = 1 + $END - $NUM -echo $NUM $END +#echo $NUM $END set nreg=`climb_and_look_for NREG` if (-s $nreg) then setenv NREG `cat $nreg` - echo Set NREG to $NREG "(based on $nreg)" + #echo Set NREG to $NREG "(based on $nreg)" else set nnreg=`pipe_run.log | grep -a ^nnreg | head -1` set NREG=$nnreg[2] - echo Set NREG to $NREG "(based on log file)" + #echo Set NREG to $NREG "(based on log file)" endif -set usual="fn3dl fe3dl fi3dl fc3dl fl3dl fo3dl ft3dl ne3dl te3dl ti3dl po3dl an3dl mn3dl ne3di te3di ti3di po3di an3di mn3di ne3da te3da ti3da po3da an3da mn3da ne3dr te3dr ti3dr po3dr an3dr mn3dr fn3dr fe3dr fi3dr fc3dr fl3dr fo3dr ft3dr dn3di dn3da dp3di dp3da ke3di ke3da ki3di ki3da vx3di vx3da vy3di vy3da vs3di vs3da tp3dl tp3dr" +set usual="fe3dl fi3dl fc3dl fl3dl fo3dl ft3dl ne3dl te3dl ti3dl po3dl an3dl mn3dl ne3di te3di ti3di po3di an3di mn3di ne3da te3da ti3da po3da an3da mn3da ne3dr te3dr ti3dr po3dr an3dr mn3dr fe3dr fi3dr fc3dr fl3dr fo3dr ft3dr ke3di ke3da ki3di ki3da tp3dl tp3dr" +set usual_multi="fn3dl na3dl na3di na3da fn3dr na3dr dn3di dn3da dp3di dp3da vx3di vx3da vy3di vy3da vs3di vs3da" set extra="" +set extra_multi="" if ($?NREG) then if ($NREG == 8) then - set extra="fn3dtl fe3dtl fi3dtl fc3dtl fl3dtl fo3dtl ft3dtl ne3dtl te3dtl ti3dtl po3dtl an3dtl mn3dtl ne3dtr te3dtr ti3dtr po3dtr an3dtr mn3dtr fn3dtr fe3dtr fi3dtr fc3dtr fl3dtr fo3dtr ft3dtr tp3dtl tp3dtr" + set extra="fe3dtl fi3dtl fc3dtl fl3dtl fo3dtl ft3dtl ne3dtl te3dtl ti3dtl po3dtl an3dtl mn3dtl ne3dtr te3dtr ti3dtr po3dtr an3dtr mn3dtr fe3dtr fi3dtr fc3dtr fl3dtr fo3dtr ft3dtr tp3dtl tp3dtr" + set extra_multi="fn3dtl na3dtl fn3dtr na3dtr" endif if ($NREG == 7) then - set extra="fn3dtl fe3dtl fi3dtl fc3dtl fl3dtl fo3dtl ft3dtl ne3dtl te3dtl ti3dtl po3dtl an3dtl mn3dtl ne3dtr te3dtr ti3dtr po3dtr an3dtr mn3dtr fn3dtr fe3dtr fi3dtr fc3dtr fl3dtr fo3dtr ft3dtr tp3dtl tp3dtr" + set extra="fe3dtl fi3dtl fc3dtl fl3dtl fo3dtl ft3dtl ne3dtl te3dtl ti3dtl po3dtl an3dtl mn3dtl ne3dtr te3dtr ti3dtr po3dtr an3dtr mn3dtr fe3dtr fi3dtr fc3dtr fl3dtr fo3dtr ft3dtr tp3dtl tp3dtr" + set extra_multi="fn3dtl na3dtl fn3dtr na3dtr" endif endif if($?GNUPLOT_TMP) then set tmpdir="$GNUPLOT_TMP/" else - set tmpdir="" + set tmpdir="2d_profiles/" + if (! -d 2d_profiles) then + mkdir 2d_profiles + endif endif set source=b2mn.exe.dir/b2time.nc if (! -s $source) set source=b2time.nc @@ -60,6 +67,8 @@ if ($no_nc2text == 1) then # echo $jstart $jend else set nt = `nc2text $source "ntstep" | awk '{printf "%d", $1}'` + set ns = `ncdump -h $source | grep -w "ns =" | sed -E 's/.*= *([0-9]+) *;.*/\1/'` + @ ns_minus_1 = $ns - 1 # echo "nt $nt" @ jstart = $nt + $NUM if ($jstart < 0) then @@ -114,21 +123,253 @@ foreach i ($usual $extra) ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste $dsfile - $dsFILEP | awk '{print $1,$2/$3}' >! ${tmpdir}$i'P'.last10 endif else + nc2text -n 9999999 $source "ds${suffix}" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsfile + if ("$suffix" != "a" && "$suffix" != "i") then + nc2text -n 9999999 $source "ds${SUFFIX}T" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsFILET + nc2text -n 9999999 $source "ds${SUFFIXP}" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsFILEP + endif if ($prefix == "f" && -s $dsFILE) then - nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste $dsfile - $dsFILE | awk '{print $1,$2/$3}' >! ${tmpdir}$i.last10 + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - ${tmpdir}dsFILET | awk '{print $1,$2/$3}' >! ${tmpdir}$i.last10 else if ($prefix == "t" && $pr2fix != "p") then - nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1/1.602176634e-19}' | paste $dsfile - >! ${tmpdir}$i.last10 + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1/1.602176634e-19}' | paste ${tmpdir}dsfile - >! ${tmpdir}$i.last10 else if ($prefix == "t" && $pr2fix == "p") then - nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste $dsfile - >! ${tmpdir}$i.last10 + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - >! ${tmpdir}$i.last10 else - nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste $dsfile - >! ${tmpdir}$i.last10 + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - >! ${tmpdir}$i.last10 endif if ($prefix == "f" && -s $dsFILEP) then - nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste $dsfile - $dsFILEP | awk '{print $1,$2/$3}' >! ${tmpdir}$i'P'.last10 + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - ${tmpdir}dsFILEP | awk '{print $1,$2/$3}' >! ${tmpdir}$i'P'.last10 endif endif end +foreach i ($usual_multi $extra_multi) + set prefix=`echo $i | cut -c1` + set pr2fix=`echo $i | cut -c2` + set suffix=`echo $i | cut -c5-` + set SUFFIX=`echo $suffix | tr 'a-z' 'A-Z'` + set SUFFIXP=`echo $suffix | tr 'a-z' 'A-Z'`P + set dsfile=b2mn.exe.dir/ds$suffix + if (! -s $dsfile) set dsfile=ds$suffix + set dsFILE=b2mn.exe.dir/ds$SUFFIX + if (! -s $dsFILE) set dsFILE=ds$SUFFIX + set dsFILEP=b2mn.exe.dir/ds$SUFFIXP + if (! -s $dsFILEP) set dsFILEP=ds$SUFFIXP +# echo $i $prefix $pr2fix $suffix $SUFFIX $SUFFIXP $dsfile $dsFILE $dsFILEP + if ($no_nc2text == 1) then + # TODO + else + nc2text -n 9999999 $source "ds${suffix}" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsfile + if ("$suffix" != "a" && "$suffix" != "i") then + nc2text -n 9999999 $source "ds${SUFFIX}T" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsFILET + nc2text -n 9999999 $source "ds${SUFFIXP}" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsFILEP + endif + if ($prefix == "f" && -s $dsFILE) then + foreach is (`seq 1 $ns`) + @ is_minus_1 = $is - 1 + nc2text -n 9999999 $source "$i(:,$is,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - ${tmpdir}dsFILET | awk '{print $1,$2/$3}' >! ${tmpdir}$i$is_minus_1.last10 + end + else + foreach is (`seq 1 $ns`) + @ is_minus_1 = $is - 1 + nc2text -n 9999999 $source "$i(:,$is,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - >! ${tmpdir}$i$is_minus_1.last10 + end + endif + if ($prefix == "f" && -s $dsFILEP) then + foreach is (`seq 1 $ns`) + @ is_minus_1 = $is - 1 + nc2text -n 9999999 $source "$i(:,$is,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - ${tmpdir}dsFILEP | awk '{print $1,$2/$3}' >! ${tmpdir}$i'P'$is_minus_1.last10 + end + endif + endif +end + +[ -f "${tmpdir}dsfile" ] && rm "${tmpdir}dsfile" +[ -f "${tmpdir}dsFILET" ] && rm "${tmpdir}dsFILET" +[ -f "${tmpdir}dsFILEP" ] && rm "${tmpdir}dsFILEP" + +if($?GNUPLOT_TMP) then + set tmpdir="$GNUPLOT_TMP/" +else + set tmpdir="" +endif +setenv GNUPLOT_BATCH yes +setenv GNUPLOT_POSTSCRIPT_OPTIONS 'color solid noenhanced' +setenv PRINT_PLOT b2time2d_profiles.ps +rm -f ${tmpdir}GNUPLOT_COUNT ${tmpdir}gnuplot.cmd +echo 0 > ${tmpdir}GNUPLOT_COUNT + +set nreg=`climb_and_look_for NREG` +set nnreg=`pipe_run.log | grep -a ^nnreg | head -1` +if (-s $nreg) then + setenv NREG `cat $nreg` + #echo Set NREG to $NREG "(based on $nreg)" +else + set NREG=$nnreg[2] + #echo Set NREG to $NREG "(based on log file)" +endif +if (! $?NREG) set NREG = 4 +if ("X$nnreg" != "X") then + if ($NREG != $nnreg[2]) then + echo "NREG in file ($nnreg[2]) does not match $NREG" + exit + endif +endif + +set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` +if (-s $solps_fluids) then + setenv SOLPS_FLUIDS `cat $solps_fluids` +else + setenv SOLPS_FLUIDS "`get_solps_fluids`" +endif +set species_names = ( $SOLPS_FLUIDS ) + +if ( $NUM < 0 ) then + @ abs_num = -1 * $NUM +else + @ abs_num = $NUM +endif +@ NUM = $abs_num + 1 +if ( $END < 0 ) then + @ abs_end = -1 * $END +else + @ abs_end = $END +endif +@ END = $abs_end + +2dds ne3da $NUM $END +set na_dens="" +set neutral_species_index = -1 +foreach is (`seq 1 $ns`) + @ is_minus_1 = $is - 1 + setenv species_name $species_names[$is] + set last_char = `echo "$species_name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$species_name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + # neutral species: call dab3da* if run with Eirene, na3da* if standalone run + if (`ncdump -h $source | grep -w dabsepm | wc -l` > 0) then + # dab3da* fields exist --> coupled run --> call dab3da* + @ neutral_species_index = $neutral_species_index + 1 + set na_dens="$na_dens dab3da$neutral_species_index " + else + # dab3da* fields do not exist --> standalone run --> call na3da* + set na_dens="$na_dens na3da$is_minus_1 " + endif + else + # ion species: always call na3da* + set na_dens="$na_dens na3da$is_minus_1 " + endif +end +set counts = (`groups_species`) +set na_dens_list = (`echo $na_dens`) +set offset = 1 +foreach c ($counts) + @ end = $offset + $c - 1 + set group = "" + foreach i (`seq $offset $end`) + set group = "$group $na_dens_list[$i]" + end + 2dds $group $NUM $END + @ offset = $end + 1 +end +2dds te3da ti3da $NUM $END +2dds ne3dl $NUM $END +set na_dens="" +set neutral_species_index = -1 +foreach is (`seq 1 $ns`) + @ is_minus_1 = $is - 1 + setenv species_name $species_names[$is] + set last_char = `echo "$species_name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$species_name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + # neutral species: call dab3dl* if run with Eirene, na3dl* if standalone run + if (`ncdump -h $source | grep -w dabsepm | wc -l` > 0) then + # dab3dl* fields exist --> coupled run --> call dab3dl* + @ neutral_species_index = $neutral_species_index + 1 + set na_dens="$na_dens dab3dl$neutral_species_index " + else + # dab3dl* fields do not exist --> standalone run --> call na3dl* + set na_dens="$na_dens na3dl$is_minus_1 " + endif + else + # ion species: always call na3dl* + set na_dens="$na_dens na3dl$is_minus_1 " + endif +end +set counts = (`groups_species`) +set na_dens_list = (`echo $na_dens`) +set offset = 1 +foreach c ($counts) + @ end = $offset + $c - 1 + set group = "" + foreach i (`seq $offset $end`) + set group = "$group $na_dens_list[$i]" + end + 2dds $group $NUM $END + @ offset = $end + 1 +end +2dds te3dl ti3dl $NUM $END +2dds ne3dr $NUM $END +set na_dens="" +set neutral_species_index = -1 +foreach is (`seq 1 $ns`) + @ is_minus_1 = $is - 1 + setenv species_name $species_names[$is] + set last_char = `echo "$species_name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$species_name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + # neutral species: call dab3dr* if run with Eirene, na3dr* if standalone run + if (`ncdump -h $source | grep -w dabsepm | wc -l` > 0) then + # dab3dr* fields exist --> coupled run --> call dab3dr* + @ neutral_species_index = $neutral_species_index + 1 + set na_dens="$na_dens dab3dr$neutral_species_index " + else + # dab3dr* fields do not exist --> standalone run --> call na3dr* + set na_dens="$na_dens na3dr$is_minus_1 " + endif + else + # ion species: always call na3dl* + set na_dens="$na_dens na3dr$is_minus_1 " + endif +end +set counts = (`groups_species`) +set na_dens_list = (`echo $na_dens`) +set offset = 1 +foreach c ($counts) + @ end = $offset + $c - 1 + set group = "" + foreach i (`seq $offset $end`) + set group = "$group $na_dens_list[$i]" + end + 2dds $group $NUM $END + @ offset = $end + 1 +end +2dds te3dr ti3dr $NUM $END +2dds fo3dl $NUM $END +2dds ft3dl $NUM $END +2dds fo3dr $NUM $END +2dds ft3dr $NUM $END +switch ($NREG) + case "8": + 2dds fo3dtl $NUM $END + 2dds ft3dtl $NUM $END + 2dds fo3dtr $NUM $END + 2dds ft3dtr $NUM $END + breaksw + case "7": + 2dds fo3dtl $NUM $END + 2dds ft3dtl $NUM $END + 2dds fo3dtr $NUM $END + 2dds ft3dtr $NUM $END + breaksw +endsw + +gnuplot ${tmpdir}gnuplot.cmd +rm ${tmpdir}GNUPLOT_COUNT ${tmpdir}gnuplot.*data ${tmpdir}gnuplot.cmd +[ -f "${tmpdir}dsfile" ] && rm "${tmpdir}dsfile" +[ -f "${tmpdir}dsFILET" ] && rm "${tmpdir}dsFILET" +[ -f "${tmpdir}dsFILEP" ] && rm "${tmpdir}dsFILEP" + if ($netcdf4 == 1) then rm $source endif diff --git a/scripts/2da b/scripts/2da index f67264e76..4d41192d5 100755 --- a/scripts/2da +++ b/scripts/2da @@ -1,4 +1,5 @@ #! /bin/csh -f + set source=b2mn.exe.dir/b2time.nc if (! -s $source) set source=b2time.nc if ("X$1" == "X-s") then @@ -26,41 +27,125 @@ else set netcdf4=0 endif +set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` +if (-s $solps_fluids) then + setenv SOLPS_FLUIDS `cat $solps_fluids` +else + setenv SOLPS_FLUIDS "`get_solps_fluids`" +endif +set species_names = ( $SOLPS_FLUIDS ) +set neutral_species_names = () +foreach name ($species_names) + set last_char = `echo "$name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + set neutral_species_names = ($neutral_species_names $name) + endif +end + /bin/cp /dev/null ${tmpdir}gnuplot.data.tmp start: set count=`echo "$1" | sed -e 's:[^()]::g' | wc -c` if ($count == "1") then if ($no_nc2text == 1) then - set check=`ncdump $source -v $1 | sed -n 'x;$p' | sed 's/;//g'` + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + echo "Error: Printing multi-species arrays from b2time.nc not yet implemented for $no_nc2text == 1." + exit 1 + else + # Time, called as $1 = 'timesa', or single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + set check=`ncdump $source -v $1 | sed -n 'x;$p' | sed 's/;//g'` + endif else - set check=`nc2text -n 999999 $source "$1(1)"` + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + set is = `echo "$1" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$1" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + set check=`nc2text -n 999999 $source "$name(1,$is_plus_1)"` + # There is currently a bug when calling nc2text -n 999999 $source "$name(1,$is_plus_1)" + # for multi-species quantities: all time values are printed instead of only the first one + # Probably a mistake while adding additional dimensions to nc2text + # Temporary fix: + set check = ( $check[1] ) + else + # Time, called as $1 = 'timesa', or single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + set check=`nc2text -n 999999 $source "$1(1)"` + endif endif else set check="1" endif if ($#check == 1) then if ($no_nc2text == 1) then - ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}} END {print "\n";}' | \ - sed 's/,/ /g' | sed 's/;//g' >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + echo "Error: Printing multi-species arrays from b2time.nc not yet implemented for $no_nc2text == 1." + exit 1 + else + # Time, called as $1 = 'timesa', or single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}} END {print "\n";}' | \ + sed 's/,/ /g' | sed 's/;//g' >> ${tmpdir}gnuplot.data.tmp + set args="$args $1" + endif else - echo `nc2text -n 9999999 $source $1` >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + set is = `echo "$1" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$1" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + echo `nc2text -n 9999999 $source "$name(:,$is_plus_1)"` >> ${tmpdir}gnuplot.data.tmp + if ("$name" =~ dab* || "$name" =~ dmb* || "$name" =~ tab* || "$name" =~ tmb*) then + setenv species_name $neutral_species_names[$is_plus_1] + else + setenv species_name $species_names[$is_plus_1] + endif + set args="$args $name($species_name)" + else + # Time, called as $1 = 'timesa', or single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + echo `nc2text -n 9999999 $source $1` >> ${tmpdir}gnuplot.data.tmp + set args="$args $1" + endif endif - set args="$args $1" else if ($no_nc2text == 1) then - ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}}' | \ - awk 'BEGIN {FS=","} {for (i=1;i<=NF;i++) if (i%2==1) {ORS=" ";print $i;}}' | sed 's/;//g' | \ - awk.transpose >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + echo "Error: Printing multi-species arrays from b2time.nc not yet implemented for $no_nc2text == 1." + exit 1 + else + # Time, called as $1 = 'timesa', or single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}}' | \ + awk 'BEGIN {FS=","} {for (i=1;i<=NF;i++) if (i%2==1) {ORS=" ";print $i;}}' | sed 's/;//g' | \ + awk.transpose >> ${tmpdir}gnuplot.data.tmp + set args="$args `count -p $1. 1 $#check`" + endif else - nc2text -n 9999999 $source $1 | awk.transpose >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + set is = `echo "$1" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$1" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + nc2text -n 9999999 $source "$name(:,$is_plus_1)" | awk.transpose >> ${tmpdir}gnuplot.data.tmp + if ("$name" =~ dab* || "$name" =~ dmb* || "$name" =~ tab* || "$name" =~ tmb*) then + setenv species_name $neutral_species_names[$is_plus_1] + else + setenv species_name $species_names[$is_plus_1] + endif + set args="$args `count -p $name($species_name). 1 $#check`" + else + # Time, called as $1 = 'timesa', or single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + nc2text -n 9999999 $source $1 | awk.transpose >> ${tmpdir}gnuplot.data.tmp + set args="$args `count -p $1. 1 $#check`" + endif endif - set args="$args `count -p $1. 1 $#check`" endif shift if ("X$1X" != "XX") goto start echo "# $args" awk.transpose < ${tmpdir}gnuplot.data.tmp +rm ${tmpdir}gnuplot.data.tmp if ($netcdf4 == 1) then rm $source diff --git a/scripts/2dds b/scripts/2dds new file mode 100755 index 000000000..d18054464 --- /dev/null +++ b/scripts/2dds @@ -0,0 +1,286 @@ +#! /bin/csh -f + +nc2text -n 9999999 b2time.nc "dsl" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! dsfile + +set x=$1 +if ("X$1" == "X-lx") then + set lx="l" + shift +else + set lx="" +endif + +if ("X$1" == "X-ly") then + set ly="l" + shift +else + set ly="" +endif + +if ( $#argv < 1 ) then + echo "Error: You must provide at least one argument (1st, 2nd, etc. arguments will be plotted vs. ds*)." + exit 1 +endif + +set source=b2mn.exe.dir/b2time.nc +if (! -s $source) set source=b2time.nc + +set args = ( $argv ) +set nargs=$#argv + +set last = $argv[$nargs] +@ second_last_index = $nargs - 1 +set second_last = $argv[$second_last_index] + +set test_last = `echo $last | grep '^[0-9]*$'` +set test_second_last = `echo $second_last | grep '^[0-9]*$'` + +set NUM=10 +if ((($test_last) || ($test_last == 0)) && !(($test_second_last) || ($test_second_last == 0)) ) then + set NUM=$last + @ n = $#args - 1 + set args = ( $args[1-$n] ) + set nargs=$#args +endif +set END=-0 +if ((($test_last) || ($test_last == 0)) && (($test_second_last) || ($test_second_last == 0)) ) then + set NUM=$second_last + set END=$last + @ n = $#args - 2 + set args = ( $args[1-$n] ) + set nargs=$#args +endif +@ NUM = 1 + $END - $NUM + +if($?GNUPLOT_TMP) then + set tmpdir="$GNUPLOT_TMP/" +else + set tmpdir="" +endif + +which nc2text > /dev/null && set no_nc2text=0 || set no_nc2text=1 +if (-e b2mn.exe.dir/.netcdf4) then + ln -sf $source ${tmpdir}b2time.nc.tmp + set source=${tmpdir}b2time.nc.tmp + gtfl $source + set netcdf4=1 +else + set netcdf4=0 +endif + +set nt = `nc2text $source "ntstep" | awk '{printf "%d", $1}'` +set ns = `ncdump -h $source | grep -w "ns =" | sed -E 's/.*= *([0-9]+) *;.*/\1/'` +@ jstart = $nt + $NUM +if ($jstart < 0) then + @ NUM = -$nt + 1 +endif +@ jend = $nt + $END +if ($jend > $nt) then + set END = -0 +endif + +set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` +if (-s $solps_fluids) then + setenv SOLPS_FLUIDS `cat $solps_fluids` +else + setenv SOLPS_FLUIDS "`get_solps_fluids`" +endif +set species_names = ( $SOLPS_FLUIDS ) +set neutral_species_names = () +foreach name ($species_names) + set last_char = `echo "$name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + set neutral_species_names = ($neutral_species_names $name) + endif +end + +set is_first = 1 + +set labels="" + +set neutral_species_index = -1 + +foreach i ($args) + +if ($is_first) then + + if ("$i" !~ *[0-9]) then + + set prefix=`echo $i | cut -c1` + set pr2fix=`echo $i | cut -c2` + set suffix=`echo $i | cut -c5-` + set SUFFIX=`echo $suffix | tr 'a-z' 'A-Z'` + set SUFFIXP=`echo $suffix | tr 'a-z' 'A-Z'`P + set dsfile=b2mn.exe.dir/ds$suffix + if (! -s $dsfile) set dsfile=ds$suffix + set dsFILE=b2mn.exe.dir/ds$SUFFIX + if (! -s $dsFILE) set dsFILE=ds$SUFFIX + set dsFILEP=b2mn.exe.dir/ds$SUFFIXP + if (! -s $dsFILEP) set dsFILEP=ds$SUFFIXP + nc2text -n 9999999 $source "ds${suffix}" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsfile + if ("$suffix" != "a" && "$suffix" != "i") then + nc2text -n 9999999 $source "ds${SUFFIX}T" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsFILET + nc2text -n 9999999 $source "ds${SUFFIXP}" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsFILEP + endif + + set labels="$labels $i" + + if ($prefix == "f" && -s $dsFILE) then + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - ${tmpdir}dsFILET | awk '{print $1,$2/$3}' >! ${tmpdir}gnuplot.data.tmp + else if ($prefix == "t" && $pr2fix != "p") then + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1/1.602176634e-19}' | paste ${tmpdir}dsfile - >! ${tmpdir}gnuplot.data.tmp + else if ($prefix == "t" && $pr2fix == "p") then + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - >! ${tmpdir}gnuplot.data.tmp + else + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - >! ${tmpdir}gnuplot.data.tmp + endif + if ($prefix == "f" && -s $dsFILEP) then + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - ${tmpdir}dsFILEP | awk '{print $1,$2/$3}' >! ${tmpdir}gnuplot.data.tmp + endif + + else + + set is = `echo "$i" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$i" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + + if ("$i" =~ dab* || "$i" =~ dmb* || "$i" =~ tab* || "$i" =~ tmb*) then + set prefix=`echo $name | cut -c2` + set pr2fix=`echo $name | cut -c3` + set suffix=`echo $name | cut -c6-` + else + set prefix=`echo $name | cut -c1` + set pr2fix=`echo $name | cut -c2` + set suffix=`echo $name | cut -c5-` + endif + set SUFFIX=`echo $suffix | tr 'a-z' 'A-Z'` + set SUFFIXP=`echo $suffix | tr 'a-z' 'A-Z'`P + set dsfile=b2mn.exe.dir/ds$suffix + if (! -s $dsfile) set dsfile=ds$suffix + set dsFILE=b2mn.exe.dir/ds$SUFFIX + if (! -s $dsFILE) set dsFILE=ds$SUFFIX + set dsFILEP=b2mn.exe.dir/ds$SUFFIXP + if (! -s $dsFILEP) set dsFILEP=ds$SUFFIXP + nc2text -n 9999999 $source "ds${suffix}" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsfile + if ("$suffix" != "a" && "$suffix" != "i") then + nc2text -n 9999999 $source "ds${SUFFIX}T" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsFILET + nc2text -n 9999999 $source "ds${SUFFIXP}" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsFILEP + endif + + if ("$name" =~ dab* || "$name" =~ dmb* || "$name" =~ tab* || "$name" =~ tmb*) then + setenv species_name $neutral_species_names[$is_plus_1] + else + setenv species_name $species_names[$is_plus_1] + endif + set labels="$labels $name($species_name)" + + if ($prefix == "f" && -s $dsFILE) then + nc2text -n 9999999 $source "$name(:,$is_plus_1,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - ${tmpdir}dsFILET | awk '{print $1,$2/$3}' >! ${tmpdir}gnuplot.data.tmp + else + nc2text -n 9999999 $source "$name(:,$is_plus_1,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - >! ${tmpdir}gnuplot.data.tmp + endif + if ($prefix == "f" && -s $dsFILEP) then + nc2text -n 9999999 $source "$name(:,$is_plus_1,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - ${tmpdir}dsFILEP | awk '{print $1,$2/$3}' >! ${tmpdir}gnuplot.data.tmp + endif + + endif + +set is_first = 0 + +else + + if ("$i" !~ *[0-9]) then + + set prefix=`echo $i | cut -c1` + set pr2fix=`echo $i | cut -c2` + set suffix=`echo $i | cut -c5-` + set SUFFIX=`echo $suffix | tr 'a-z' 'A-Z'` + set SUFFIXP=`echo $suffix | tr 'a-z' 'A-Z'`P + set dsfile=b2mn.exe.dir/ds$suffix + if (! -s $dsfile) set dsfile=ds$suffix + set dsFILE=b2mn.exe.dir/ds$SUFFIX + if (! -s $dsFILE) set dsFILE=ds$SUFFIX + set dsFILEP=b2mn.exe.dir/ds$SUFFIXP + if (! -s $dsFILEP) set dsFILEP=ds$SUFFIXP + nc2text -n 9999999 $source "ds${suffix}" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsfile + if ("$suffix" != "a" && "$suffix" != "i") then + nc2text -n 9999999 $source "ds${SUFFIX}T" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsFILET + nc2text -n 9999999 $source "ds${SUFFIXP}" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsFILEP + endif + + set labels="$labels $i" + + if ($prefix == "f" && -s $dsFILE) then + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - ${tmpdir}dsFILET | awk '{print $2/$3}' >! ${tmpdir}gnuplot.data.tmp.tmp + else if ($prefix == "t" && $pr2fix != "p") then + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1/1.602176634e-19}' | paste ${tmpdir}dsfile - | awk '{print $2}' >! ${tmpdir}gnuplot.data.tmp.tmp + else if ($prefix == "t" && $pr2fix == "p") then + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - | awk '{print $2}' >! ${tmpdir}gnuplot.data.tmp.tmp + else + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - | awk '{print $2}' >! ${tmpdir}gnuplot.data.tmp.tmp + endif + if ($prefix == "f" && -s $dsFILEP) then + nc2text -n 9999999 $source "$i(:,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - ${tmpdir}dsFILEP | awk '{print $2/$3}' >! ${tmpdir}gnuplot.data.tmp.tmp + endif + + else + + set is = `echo "$i" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$i" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + + if ("$name" =~ dab* || "$name" =~ dmb* || "$name" =~ tab* || "$name" =~ tmb*) then + set prefix=`echo $name | cut -c2` + set pr2fix=`echo $name | cut -c3` + set suffix=`echo $name | cut -c6-` + else + set prefix=`echo $name | cut -c1` + set pr2fix=`echo $name | cut -c2` + set suffix=`echo $name | cut -c5-` + endif + set SUFFIX=`echo $suffix | tr 'a-z' 'A-Z'` + set SUFFIXP=`echo $suffix | tr 'a-z' 'A-Z'`P + set dsfile=b2mn.exe.dir/ds$suffix + if (! -s $dsfile) set dsfile=ds$suffix + set dsFILE=b2mn.exe.dir/ds$SUFFIX + if (! -s $dsFILE) set dsFILE=ds$SUFFIX + set dsFILEP=b2mn.exe.dir/ds$SUFFIXP + if (! -s $dsFILEP) set dsFILEP=ds$SUFFIXP + nc2text -n 9999999 $source "ds${suffix}" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsfile + if ("$suffix" != "a" && "$suffix" != "i") then + nc2text -n 9999999 $source "ds${SUFFIX}T" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsFILET + nc2text -n 9999999 $source "ds${SUFFIXP}" | ave.awk | tr ' ' '\n' | awk 'NF>0 { printf(" % .16E\n", $1) }' >! ${tmpdir}dsFILEP + endif + + if ("$name" =~ dab* || "$name" =~ dmb* || "$name" =~ tab* || "$name" =~ tmb*) then + setenv species_name $neutral_species_names[$is_plus_1] + else + setenv species_name $species_names[$is_plus_1] + endif + set labels="$labels $name($species_name)" + + if ($prefix == "f" && -s $dsFILE) then + nc2text -n 9999999 $source "$name(:,$is_plus_1,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - ${tmpdir}dsFILET | awk '{print $2/$3}' >! ${tmpdir}gnuplot.data.tmp.tmp + else + nc2text -n 9999999 $source "$name(:,$is_plus_1,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - | awk '{print $2}' >! ${tmpdir}gnuplot.data.tmp.tmp + endif + if ($prefix == "f" && -s $dsFILEP) then + nc2text -n 9999999 $source "$name(:,$is_plus_1,${NUM}:${END})" | ave.awk | tr ' ' '\n' | awk 'NF>0{print $1}' | paste ${tmpdir}dsfile - ${tmpdir}dsFILEP | awk '{print $2/$3}' >! ${tmpdir}gnuplot.data.tmp.tmp + endif + + endif + + paste ${tmpdir}gnuplot.data.tmp ${tmpdir}gnuplot.data.tmp.tmp >! ${tmpdir}gnuplot.data.tmp.tmp.tmp + mv ${tmpdir}gnuplot.data.tmp.tmp.tmp ${tmpdir}gnuplot.data.tmp + rm ${tmpdir}gnuplot.data.tmp.tmp + +endif + +end + +awk 'NR==1{saveNF=NF} NF==saveNF{print $0}' ${tmpdir}gnuplot.data.tmp | plot ${lx}x${ly}yplot$nargs $labels $dsfile '' `chop_pwd 60` +rm ${tmpdir}gnuplot.data.tmp +[ -f "${tmpdir}dsfile" ] && rm "${tmpdir}dsfile" +[ -f "${tmpdir}dsFILET" ] && rm "${tmpdir}dsFILET" +[ -f "${tmpdir}dsFILEP" ] && rm "${tmpdir}dsFILEP" diff --git a/scripts/2dt b/scripts/2dt index 0cf89b395..34340b415 100755 --- a/scripts/2dt +++ b/scripts/2dt @@ -1,4 +1,5 @@ #! /bin/csh -f + set x=$1 if ("X$1" == "X-lx") then set lx="l" @@ -6,12 +7,19 @@ if ("X$1" == "X-lx") then else set lx="" endif + if ("X$1" == "X-ly") then set ly="l" shift else set ly="" endif + +if ( $#argv < 1 ) then + echo "Error: You must provide at least one argument (1st, 2nd, etc. arguments will be plotted vs. time)." + exit 1 +endif + set source=b2mn.exe.dir/b2time.nc if (! -s $source) set source=b2time.nc @@ -46,42 +54,125 @@ else nc2text -n 9999999 $source timesa >> ${tmpdir}gnuplot.data.tmp endif +set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` +if (-s $solps_fluids) then + setenv SOLPS_FLUIDS `cat $solps_fluids` +else + setenv SOLPS_FLUIDS "`get_solps_fluids`" +endif +set species_names = ( $SOLPS_FLUIDS ) +set neutral_species_names = () +foreach name ($species_names) + set last_char = `echo "$name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + set neutral_species_names = ($neutral_species_names $name) + endif +end + start: if ($no_nc2text == 1) then # Here just dump variable and check how many entries are on the second to last line. # Works for two, did not have any cases to confirm this works for more. # Could break if there are enough columns that it extends across multiple lines. - set check=`ncdump $source -v $1 | sed -n 'x;$p' | sed 's/;//g'` + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + echo "Error: Plotting multi-species arrays from b2time.nc not yet implemented for $no_nc2text == 1." + exit 1 + else + # Single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + set check=`ncdump $source -v $1 | sed -n 'x;$p' | sed 's/;//g'` + endif else - set check=`nc2text -n 999999 $source "$1(1)"` + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + set is = `echo "$1" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$1" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + set check=`nc2text -n 999999 $source "$name(1,$is_plus_1)"` + # There is currently a bug when calling nc2text -n 999999 $source "$name(1,$is_plus_1)" + # for multi-species quantities: all time values are printed instead of only the first one + # Probably a mistake while adding additional dimensions to nc2text + # Temporary fix: + set check = ( $check[1] ) + else + # Single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + set check=`nc2text -n 999999 $source "$1(1)"` + endif endif @ nargs += $#check if ($#check == 1) then if ($no_nc2text == 1) then # Same as timesa except we pass the variable name as string - ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}} END {print "\n";}' | \ - sed 's/,/ /g' | sed 's/;//g' >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + echo "Error: Plotting multi-species arrays from b2time.nc not yet implemented for $no_nc2text == 1." + exit 1 + else + # Single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}} END {print "\n";}' | \ + sed 's/,/ /g' | sed 's/;//g' >> ${tmpdir}gnuplot.data.tmp + set args="$args $1" + endif else - echo `nc2text -n 9999999 $source $1` >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + set is = `echo "$1" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$1" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + echo `nc2text -n 9999999 $source "$name(:,$is_plus_1)"` >> ${tmpdir}gnuplot.data.tmp + if ("$name" =~ dab* || "$name" =~ dmb* || "$name" =~ tab* || "$name" =~ tmb*) then + setenv species_name $neutral_species_names[$is_plus_1] + else + setenv species_name $species_names[$is_plus_1] + endif + set args="$args $name($species_name)" + else + # Single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + echo `nc2text -n 9999999 $source $1` >> ${tmpdir}gnuplot.data.tmp + set args="$args $1" + endif endif - set args="$args $1" else if ($no_nc2text == 1) then # If the data has more than one column we dump as before, # then assemble data into columns to be processed by awk.transpose - ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}}' | \ - awk 'BEGIN {FS=","} {for (i=1;i<=NF;i++) if (i%2==1) {ORS=" ";print $i;}}' | sed 's/;//g' | \ - awk.transpose >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + echo "Error: Plotting multi-species arrays from b2time.nc not yet implemented for $no_nc2text == 1." + exit 1 + else + # Single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}}' | \ + awk 'BEGIN {FS=","} {for (i=1;i<=NF;i++) if (i%2==1) {ORS=" ";print $i;}}' | sed 's/;//g' | \ + awk.transpose >> ${tmpdir}gnuplot.data.tmp + set args="$args `count -p $1 1 $#check`" + endif else - nc2text -n 9999999 $source $1 | awk.transpose >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + set is = `echo "$1" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$1" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + nc2text -n 9999999 $source "$name(:,$is_plus_1)" | awk.transpose >> ${tmpdir}gnuplot.data.tmp + if ("$name" =~ dab* || "$name" =~ dmb* || "$name" =~ tab* || "$name" =~ tmb*) then + setenv species_name $neutral_species_names[$is_plus_1] + else + setenv species_name $species_names[$is_plus_1] + endif + set args="$args `count -p $name($species_name) 1 $#check`" + else + # Single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + nc2text -n 9999999 $source $1 | awk.transpose >> ${tmpdir}gnuplot.data.tmp + set args="$args `count -p $1 1 $#check`" + endif endif - set args="$args `count -p $1 1 $#check`" endif shift if ("X$1X" != "XX") goto start awk.transpose < ${tmpdir}gnuplot.data.tmp | awk 'NR==1{saveNF=NF}NF==saveNF{print $0}' | plot ${lx}x${ly}yplot$nargs $args time '' `chop_pwd 60` -/bin/rm ${tmpdir}gnuplot.data.tmp +rm ${tmpdir}gnuplot.data.tmp if ($netcdf4 == 1) then rm $source diff --git a/scripts/2dt_av b/scripts/2dt_av index c5a90b07c..717d8effb 100755 --- a/scripts/2dt_av +++ b/scripts/2dt_av @@ -1,4 +1,5 @@ #! /bin/csh -f + set x=$1 if ("X$1" == "X-lx") then set lx="l" @@ -6,12 +7,19 @@ if ("X$1" == "X-lx") then else set lx="" endif + if ("X$1" == "X-ly") then set ly="l" shift else set ly="" endif + +if ( $#argv < 1 ) then + echo "Error: You must provide at least one argument (1st, 2nd, etc. arguments will be plotted vs. time)." + exit 1 +endif + set source=b2mn.exe.dir/b2batch.nc if (! -s $source) then set source=b2batch.nc @@ -52,36 +60,119 @@ else nc2text -n 9999999 $source batchsa >> ${tmpdir}gnuplot.data.tmp endif +set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` +if (-s $solps_fluids) then + setenv SOLPS_FLUIDS `cat $solps_fluids` +else + setenv SOLPS_FLUIDS "`get_solps_fluids`" +endif +set species_names = ( $SOLPS_FLUIDS ) +set neutral_species_names = () +foreach name ($species_names) + set last_char = `echo "$name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + set neutral_species_names = ($neutral_species_names $name) + endif +end + start: if ($no_nc2text == 1) then # Here just dump variable and check how many entries are on the second to last line. # Works for two, did not have any cases to confirm this works for more. # Could break if there are enough columns that it extends across multiple lines. - set check=`ncdump $source -v $1 | sed -n 'x;$p' | sed 's/;//g'` + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + echo "Error: Plotting multi-species arrays from b2time.nc not yet implemented for $no_nc2text == 1." + exit 1 + else + # Single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + set check=`ncdump $source -v $1 | sed -n 'x;$p' | sed 's/;//g'` + endif else - set check=`nc2text -n 999999 $source "$1(1)"` + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + set is = `echo "$1" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$1" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + set check=`nc2text -n 999999 $source "$name(1,$is_plus_1)"` + # There is currently a bug when calling nc2text -n 999999 $source "$name(1,$is_plus_1)" + # for multi-species quantities: all time values are printed instead of only the first one + # Probably a mistake while adding additional dimensions to nc2text + # Temporary fix: + set check = ( $check[1] ) + else + # Single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + set check=`nc2text -n 999999 $source "$1(1)"` + endif endif @ nargs += $#check if ($#check == 1) then if ($no_nc2text == 1) then # Same as batchsa except we pass the variable name as string - ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}} END {print "\n";}' | \ - sed 's/,/ /g' | sed 's/;//g' >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + echo "Error: Plotting multi-species arrays from b2time.nc not yet implemented for $no_nc2text == 1." + exit 1 + else + # Single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}} END {print "\n";}' | \ + sed 's/,/ /g' | sed 's/;//g' >> ${tmpdir}gnuplot.data.tmp + set args="$args $1" + endif else - echo `nc2text -n 9999999 $source $1` >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + set is = `echo "$1" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$1" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + echo `nc2text -n 9999999 $source "$name(:,$is_plus_1)"` >> ${tmpdir}gnuplot.data.tmp + if ("$name" =~ dab* || "$name" =~ dmb* || "$name" =~ tab* || "$name" =~ tmb*) then + setenv species_name $neutral_species_names[$is_plus_1] + else + setenv species_name $species_names[$is_plus_1] + endif + set args="$args $name($species_name)" + else + # Single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + echo `nc2text -n 9999999 $source $1` >> ${tmpdir}gnuplot.data.tmp + set args="$args $1" + endif endif - set args="$args $1" else if ($no_nc2text == 1) then # If the data has more than one column we dump as before, # then assemble data into columns to be processed by awk.transpose - ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}}' | \ - awk 'BEGIN {FS=","} {for (i=1;i<=NF;i++) if (i%2==1) {ORS=" ";print $i;}}' | sed 's/;//g' | \ - awk.transpose >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + echo "Error: Plotting multi-species arrays from b2time.nc not yet implemented for $no_nc2text == 1." + exit 1 + else + # Single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + ncdump $source -f f -v $1 | awk -v string="$1" 'BEGIN {ORS="";} /data:/{found1=1;next;} $0 ~ string {if (found1==1) {if (found2==1) print $1; else {print $3;found2=1;}}}' | \ + awk 'BEGIN {FS=","} {for (i=1;i<=NF;i++) if (i%2==1) {ORS=" ";print $i;}}' | sed 's/;//g' | \ + awk.transpose >> ${tmpdir}gnuplot.data.tmp + set args="$args `count -p $1 1 $#check`" + endif else - nc2text -n 9999999 $source $1 | awk.transpose >> ${tmpdir}gnuplot.data.tmp + if ("$1" =~ *[0-9]) then + # Multi-species quantities, called as $1 = $name$is (e.g. $1 = 'nasepm1') + set is = `echo "$1" | sed -E 's/.*[^0-9]([0-9]+)$/\1/'` + set name = `echo "$1" | sed -E 's/([0-9]+)$//'` + @ is_plus_1 = $is + 1 + nc2text -n 9999999 $source "$name(:,$is_plus_1)" | awk.transpose >> ${tmpdir}gnuplot.data.tmp + if ("$name" =~ dab* || "$name" =~ dmb* || "$name" =~ tab* || "$name" =~ tmb*) then + setenv species_name $neutral_species_names[$is_plus_1] + else + setenv species_name $species_names[$is_plus_1] + endif + set args="$args `count -p $name($species_name) 1 $#check`" + else + # Single species quantities, called as $1 = $name (e.g. $1 = 'nesepm') + nc2text -n 9999999 $source $1 | awk.transpose >> ${tmpdir}gnuplot.data.tmp + set args="$args `count -p $1 1 $#check`" + endif endif - set args="$args `count -p $1 1 $#check`" endif shift if ("X$1X" != "XX") goto start diff --git a/scripts/2dt_tracing b/scripts/2dt_tracing new file mode 100755 index 000000000..9b1d63dd8 --- /dev/null +++ b/scripts/2dt_tracing @@ -0,0 +1,99 @@ +#! /bin/csh -f + +set x=$1 +if ("X$1" == "X-lx") then + set lx="l" + shift +else + set lx="" +endif + +if ("X$1" == "X-ly") then + set ly="l" + shift +else + set ly="" +endif + +if ( $#argv < 1 ) then + echo "Error: You must provide at least one argument (1st, 2nd, etc. arguments will be plotted vs. time)." + exit 1 +endif + +set args="" +set nargs=0 + +if($?GNUPLOT_TMP) then + set tmpdir="$GNUPLOT_TMP/" +else + set tmpdir="" +endif + +/bin/cp /dev/null ${tmpdir}gnuplot.data.tmp + +set source=b2mn.exe.dir/tracing/blnn_SPb.trc +if (! -s $source) set source=tracing/blnn_SPb.trc + +echo `awk 'NR==3 {sub(/^# */, ""); for(i=1;i<=NF;i++) if($i=="time") col=i; next} NR>3 && col {print $col}' $source` >> ${tmpdir}gnuplot.data.tmp + +set groups_blnn_SPb="ion_core ntr_targ_tot ntr_targ_rec ntr_targ_spt ntr_targ_pmp ion_wall ntr_wall_tot ntr_wall_rec ntr_wall_spt ntr_wall_pmp src_ioniz ntr_puff flux_tot src_ext ion_dn/dt" + +set groups_blne="pwr_totl pwr_tscl tot_core tot_targ tot_wall tot_rad heat_cor ptnt_cor ntrl_cor plsm_trg ntrl_trg plsm_wll ntrl_wll brms_rad ntrl_rad imp_rad tot_enrg tot_enre tot_enri imp_rad pwr_totl_il pwr_plsm_il pwr_neut_il pwr_ionz_il pwr_diss_il pwr_totl_ol pwr_plsm_ol pwr_neut_ol pwr_ionz_ol pwr_diss_ol pwr_totl_wl pwr_plsm_wl pwr_neut_wl pwr_ionz_wl pwr_diss_wl" + +set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` +if (-s $solps_fluids) then + setenv SOLPS_FLUIDS `cat $solps_fluids` +else + setenv SOLPS_FLUIDS "`get_solps_fluids`" +endif +set species_names = ( $SOLPS_FLUIDS ) +set neutral_species_names = () +foreach name ($species_names) + set last_char = `echo "$name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + set neutral_species_names = ($neutral_species_names $name) + endif +end +set isonuclear_species_names = () +foreach name ($neutral_species_names) + set name = `echo $name | sed 's/0$//'` + set isonuclear_species_names = ($isonuclear_species_names $name) +end + +start: + foreach species ($isonuclear_species_names) + if ("$1" =~ "*_$species") then + set var = `echo "$1" | sed "s/_"$species"//g"` + break + else + set var = "$1" + endif + end + foreach item ($groups_blnn_SPb) + if ("$var" == "$item") then + set source=b2mn.exe.dir/tracing/blnn_SPb.trc + if (! -s $source) set source=tracing/blnn_SPb.trc + break + endif + end + foreach item ($groups_blne) + if ("$var" == "$item") then + set source=b2mn.exe.dir/tracing/blne.trc + if (! -s $source) set source=tracing/blne.trc + break + endif + end + set check=`awk -v field="$1" 'NR==3 {sub(/^# */, ""); for(i=1;i<=NF;i++) if($i==field) col=i; next} NR>3 && col && seen != 1 {print $col; seen=1}' $source` + @ nargs += $#check + if ($#check == 1) then + echo `awk -v field="$1" 'NR==3 {sub(/^# */, ""); for(i=1;i<=NF;i++) if($i==field) col=i; next} NR>3 && col {print $col}' $source` >> ${tmpdir}gnuplot.data.tmp + set args="$args $1" + else + set args="$args `count -p $1 1 $#check`" + endif + shift + if ("X$1X" != "XX") goto start + +awk.transpose < ${tmpdir}gnuplot.data.tmp | awk 'NR==1{saveNF=NF}NF==saveNF{print $0}' | plot ${lx}x${ly}yplot$nargs $args time '' `chop_pwd 60` +rm ${tmpdir}gnuplot.data.tmp diff --git a/scripts/darwinsubmit b/scripts/darwinsubmit index e2c94b36f..800b6dc7c 100755 --- a/scripts/darwinsubmit +++ b/scripts/darwinsubmit @@ -2,6 +2,7 @@ set standalone='no' set compress='no' +set PAR_STRING = "" echo Started SOLPS-ITER run @@ -47,7 +48,7 @@ EOF set PROCS="$1" echo Asking for MPI run with a total of $PROCS processors shift - set PAR_STRING = '-m "mpiexec -np '$PROCS'"' + set PAR_STRING = `echo $PAR_STRING -m \"mpiexec -np $PROCS\"` goto argloop endif if ("X${1}X" == "X-tX") then @@ -59,7 +60,7 @@ EOF set THREADS="$1" echo Asking for OpenMP run with $THREADS threads shift - set PAR_STRING = '-t '$THREADS'' + set PAR_STRING = "$PAR_STRING -t $THREADS" goto argloop endif @@ -73,13 +74,13 @@ if (-s fort.1 && ${standalone} == "no") then if (${compress} == "-gz") then (b2run $PAR_STRING b2mn < fort.1 | gzip -9 >& run.log.gz) & else - (b2run $PAR_STRING b2mn < fort.1 >& run.log) & + (b2run $PAR_STRING b2mn < fort.1 >& run.log && [ -e run.log ] && gzip -9 -f run.log) & endif else if ($standalone == "no") echo No fort.1 file found: reverting to a standalone run if (${compress} == "-gz") then (b2run $PAR_STRING -s b2mn | gzip -9 >& run.log.gz) & else - (b2run $PAR_STRING -s b2mn >& run.log) & + (b2run $PAR_STRING -s b2mn >& run.log && [ -e run.log ] && gzip -9 -f run.log) & endif endif diff --git a/scripts/energy_balance_tracing b/scripts/energy_balance_tracing new file mode 100755 index 000000000..284d74a14 --- /dev/null +++ b/scripts/energy_balance_tracing @@ -0,0 +1,48 @@ +#! /bin/tcsh -f + +if($?GNUPLOT_TMP) then + set tmpdir="$GNUPLOT_TMP/" +else + set tmpdir="" +endif +setenv GNUPLOT_BATCH yes +setenv GNUPLOT_POSTSCRIPT_OPTIONS 'color solid noenhanced' +setenv PRINT_PLOT energy_balance.ps +rm -f ${tmpdir}GNUPLOT_COUNT ${tmpdir}gnuplot.cmd +echo 0 > ${tmpdir}GNUPLOT_COUNT + +set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` +if (-s $solps_fluids) then + setenv SOLPS_FLUIDS `cat $solps_fluids` +else + setenv SOLPS_FLUIDS "`get_solps_fluids`" +endif +set species_names = ( $SOLPS_FLUIDS ) +set neutral_species_names = () +foreach name ($species_names) + set last_char = `echo "$name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + set neutral_species_names = ($neutral_species_names $name) + endif +end +set isonuclear_species_names = () +foreach name ($neutral_species_names) + set name = `echo $name | sed 's/0$//'` + set isonuclear_species_names = ($isonuclear_species_names $name) +end + +set impurity_names = ($isonuclear_species_names[2-]) + +2dt_tracing tot_core pwr_totl_il pwr_totl_ol pwr_totl_wl tot_rad pwr_totl +set imp_rad = "" +foreach species ($impurity_names) + set imp_rad="$imp_rad imp_rad_$species " +end +2dt_tracing brms_rad ntrl_rad $imp_rad +2dt_tracing pwr_plsm_il pwr_neut_il pwr_ionz_il pwr_diss_il +2dt_tracing pwr_plsm_ol pwr_neut_ol pwr_ionz_ol pwr_diss_ol +2dt_tracing pwr_plsm_wl pwr_neut_wl pwr_ionz_wl pwr_diss_wl + +gnuplot ${tmpdir}gnuplot.cmd +rm ${tmpdir}GNUPLOT_COUNT ${tmpdir}gnuplot.*data ${tmpdir}gnuplot.cmd diff --git a/scripts/get_solps_fluids b/scripts/get_solps_fluids index a960e12d0..5424cba0c 100755 --- a/scripts/get_solps_fluids +++ b/scripts/get_solps_fluids @@ -3,5 +3,5 @@ set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` if (-s $solps_fluids) then echo `cat $solps_fluids` else - pipe_run.log | egrep -a -m 1 '^species' | awk '{for (j=3;j<=NF;j++) {printf $j; print "\t"}}' | awk.transpose + pipe_run.log |& grep -a -m 1 '^species' | awk '{for (j=3;j<=NF;j++) {printf $j; print "\t"}}' | awk.transpose endif diff --git a/scripts/groups_species b/scripts/groups_species new file mode 100755 index 000000000..260f5f6d5 --- /dev/null +++ b/scripts/groups_species @@ -0,0 +1,32 @@ +#! /bin/tcsh -f + +set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` +if (-s $solps_fluids) then + setenv SOLPS_FLUIDS `cat $solps_fluids` +else + setenv SOLPS_FLUIDS "`get_solps_fluids`" +endif +set species_names = ( $SOLPS_FLUIDS ) +set neutral_species_index = -1 + +set na_dens = "$1" + +set bases = () +foreach s ($species_names) + set base = `echo $s | sed 's/[+0-9].*//'` + set bases = ($bases $base) +end +set counts = () +set prev = "" +set count = 0 +foreach b ($bases) + if ("$b" == "$prev") then + @ count++ + else + if ("$prev" != "") set counts = ($counts $count) + set count = 1 + set prev = $b + endif +end +set counts = ($counts $count) +echo $counts \ No newline at end of file diff --git a/scripts/move_save_files b/scripts/move_save_files index 28be8f4e6..9b5e8c90e 100755 --- a/scripts/move_save_files +++ b/scripts/move_save_files @@ -10,6 +10,9 @@ if ($?B2FSTATE_ONLY) then foreach i (`echo $PLASMASTATE:t | sed -e 's:plasmastate:b2wall.nc:'`) [ -e $i ] && rm $i || echo > /dev/null end + foreach i (`echo $PLASMASTATE:t | sed -e 's:plasmastate:b2neo.nc:'`) + [ -e $i ] && rm $i || echo > /dev/null + end foreach i (`echo $PLASMASTATE:t | sed -e 's:plasmastate:b2movies.nc:'`) [ -e $i ] && rm $i || echo > /dev/null end @@ -104,6 +107,9 @@ end foreach i (`echo $PLASMASTATE:t | sed -e 's:plasmastate:b2wall.nc:'`) [ -s $i ] && mv -v $i ../b2wall.nc || echo > /dev/null end +foreach i (`echo $PLASMASTATE:t | sed -e 's:plasmastate:b2neo.nc:'`) + [ -s $i ] && mv -v $i ../b2neo.nc || echo > /dev/null +end foreach i (`echo $PLASMASTATE:t | sed -e 's:plasmastate:b2movies.nc:'`) [ -s $i ] && mv -v $i ../b2movies.nc || echo > /dev/null end diff --git a/scripts/nc2text_simple/nc2text_simple.F90 b/scripts/nc2text_simple/nc2text_simple.F90 index 272599cdd..5dff9d0c5 100644 --- a/scripts/nc2text_simple/nc2text_simple.F90 +++ b/scripts/nc2text_simple/nc2text_simple.F90 @@ -14,10 +14,10 @@ Program nc2text_simple Integer, Parameter :: I8 = Selected_int_kind(8) Integer :: ncid, iret, varid, nvdims, vartyp, dimids(MAXVDIMS), numcmdarg - Integer(I8) :: i, j, i1=1, i2=0, j1=1, j2=0, itmp + Integer(I8) :: i, j, k, i1=1, i2=0, j1=1, j2=0, k1=1, k2=0, itmp Logical :: use_index = .false. Integer, Allocatable :: dimlen(:) - Real(R8), Allocatable :: rdata(:,:) + Real(R8), Allocatable :: rdata(:,:,:) Character(LEN = 20) :: hlp_frm Character(Len = 256) :: filename, varname Character(Len = MAXNCNAM) :: dimnam @@ -59,23 +59,31 @@ Program nc2text_simple Case (NCDOUBLE) Select Case (nvdims) Case (0) - Allocate(rdata(1,1)) + Allocate(rdata(1,1,1)) i1 = 1 i2 = 1 j1 = 1 j2 = 1 + k1 = 1 + k2 = 1 Case (1) - Allocate(rdata(dimlen(1),1)) + Allocate(rdata(dimlen(1),1,1)) itmp = i1 i1 = j1 j1 = itmp itmp = i2 i2 = j2 j2 = itmp + k1 = 1 + k2 = 1 Case (2) - Allocate(rdata(dimlen(1),dimlen(2))) + Allocate(rdata(dimlen(1),dimlen(2),1)) + k1 = 1 + k2 = 1 + Case (3) + Allocate(rdata(dimlen(1),dimlen(2),dimlen(3))) Case Default - Write(0,*) "Error: Only scalars, 1-, or 2-dimensional arrays supported" + Write(0,*) "Error: Only scalars, 1-, 2-, or 3-dimensional arrays supported" Stop End Select iret = NF_GET_VAR_DOUBLE(ncid,varid,rdata) @@ -93,28 +101,35 @@ Program nc2text_simple If (i2 .le. 0) i2 = Size(rdata,1) + i2 If (j1 .le. 0) j1 = Size(rdata,2) + j1 If (j2 .le. 0) j2 = Size(rdata,2) + j2 + If (k1 .le. 0) k1 = Size(rdata,3) + k1 + If (k2 .le. 0) k2 = Size(rdata,3) + k2 itmp = i1 i1 = Min(i1,i2) i2 = Max(itmp,i2) itmp = j1 j1 = Min(j1,j2) j2 = Max(itmp,j2) - If (debug) Write(0,'(a,i0,a,i0,a,i0,a,i0,a)') ' Subscripts processed to (',i1,':',i2,',',j1,':',j2,')' + itmp = k1 + k1 = Min(k1,k2) + k2 = Max(itmp,k2) + If (debug) Write(0,'(a,i0,a,i0,a,i0,a,i0,a,i0,a,i0,a)') ' Subscripts processed to (',i1,':',i2,',',j1,':',j2,',',k1,':',k2,')' ! Check dimensions - If( (i2 .gt. Size(rdata,1)) .OR. (j2 .gt. Size(rdata,2)) .OR. & - (i1 .le. 0) .OR. (j1 .le. 0) ) Then + If( (i2 .gt. Size(rdata,1)) .OR. (j2 .gt. Size(rdata,2)) .OR. (k2 .gt. Size(rdata,3)) .OR. & + (i1 .le. 0) .OR. (j1 .le. 0) .OR. (k1 .le. 0) ) Then Write(0,*) "Error: index out of bounds" Write(0,*) "Size is ",dimlen - Write(0,'(a,i0,a,i0,a,i0,a,i0,a)') ' Subscripts processed to (',i1,':',i2,',',j1,':',j2,')' + Write(0,'(a,i0,a,i0,a,i0,a,i0,a)') ' Subscripts processed to (',i1,':',i2,',',j1,':',j2,',',k1,':',k2,')' Stop Endif ! Output Write(hlp_frm,'(a,i8,a)') '(1p,',i2-i1+1,'e18.10)' - Do j = j1,j2 - Write(*,hlp_frm) (rdata(i,j),i=i1,i2) - Enddo + Do k = k1, k2 + Do j = j1, j2 + Write(*,hlp_frm) (rdata(i,j,k), i=i1, i2) + End Do + End Do Deallocate(rdata) Deallocate(dimlen) @@ -197,10 +212,11 @@ Function handle_cmd_arg() Result(ierr) Endif i1 = 1 i2 = 0 - Else + + ElseIf (CountOccurrences(varname, ',') == 1) Then - ! There is a comma, look for two dimensions - If (debug) Write(0,*) "--Found a ',', attempting to get two dimensions" + ! There is one comma, look for two dimensions + If (debug) Write(0,*) "--Found one ',', attempting to get two dimensions" ! Check for semicolon in first dimension temp = varname(Index(varname,'(')+1:Index(varname,',')-1) @@ -234,6 +250,59 @@ Function handle_cmd_arg() Result(ierr) If (debug) Write(0,*) "--Range found:",j1,j2 Endif + ElseIf (CountOccurrences(varname, ',') == 2) Then + + ! There are two commas, look for three dimensions + If (debug) Write(0,*) "--Found two ',', attempting to get three dimensions" + + ! Check for semicolon in first dimension + temp = varname(Index(varname,'(')+1:Index(varname,',')-1) + If (Index(temp,':') .eq. 0) Then + If (debug) Write(0,*) "--Single value identified in dim1" + If (Len(Trim(temp)) .ne. 0) Read(temp,'(I10)') i1 + If (debug) Write(0,*) "--Single subscript found:",i1 + i2 = i1 + Else + If (debug) Write(0,*) "--Range identified in dim1" + temp2 = temp(1:Index(temp,':')-1) + If (Len(Trim(temp2)) .ne. 0) Read(temp2,'(I10)') i1 + temp2 = temp(Index(temp,':')+1:) + If (Len(Trim(temp2)) .ne. 0) Read(temp2,'(I10)') i2 + If (debug) Write(0,*) "--Range found:",i1,i2 + Endif + + ! Check for semicolon in second dimension + temp = varname(Index(varname,',')+1:Index(varname,',')+Index(varname(Index(varname,',')+1:),',')-1) + If (Index(temp,':') .eq. 0) Then + If (debug) Write(0,*) "--Single value identified in dim2" + If (Len(Trim(temp)) .ne. 0) Read(temp,'(I10)') j1 + If (debug) Write(0,*) "--Single subscript found:",j1 + j2 = j1 + Else + If (debug) Write(0,*) "--Range identified in dim2" + temp2 = temp(1:Index(temp,':')-1) + If (Len(Trim(temp2)) .ne. 0) Read(temp2,'(I10)') j1 + temp2 = temp(Index(temp,':')+1:) + If (Len(Trim(temp2)) .ne. 0) Read(temp2,'(I10)') j2 + If (debug) Write(0,*) "--Range found:",j1,j2 + Endif + + ! Check for semicolon in third dimension + temp = varname(Index(varname,',')+Index(varname(Index(varname,',')+1:),',')+1:Index(varname,')')-1) + If (Index(temp,':') .eq. 0) Then + If (debug) Write(0,*) "--Single value identified in dim3" + If (Len(Trim(temp)) .ne. 0) Read(temp,'(I10)') k1 + If (debug) Write(0,*) "--Single subscript found:",k1 + k2 = k1 + Else + If (debug) Write(0,*) "--Range identified in dim3" + temp2 = temp(1:Index(temp,':')-1) + If (Len(Trim(temp2)) .ne. 0) Read(temp2,'(I10)') k1 + temp2 = temp(Index(temp,':')+1:) + If (Len(Trim(temp2)) .ne. 0) Read(temp2,'(I10)') k2 + If (debug) Write(0,*) "--Range found:",k1,k2 + Endif + Endif varname = varname(1:Index(varname,'(')-1) Endif @@ -242,27 +311,42 @@ Function handle_cmd_arg() Result(ierr) End Function handle_cmd_arg !----------------------------------------------------------------------------- + function CountOccurrences(string, char) result(count) + character(len=*) :: string + character(len=1) :: char + integer :: count, i + + count = 0 + do i = 1, len(string) + if (string(i:i) == char) then + count = count + 1 + end if + end do + end function CountOccurrences + !----------------------------------------------------------------------------- + Subroutine Print_help() Write(0,'(a)') ' ' - Write(0,'(a)') 'usage: nc2text_simple [OPTIONS] filename variable(i1:i2,j1:j2)' + Write(0,'(a)') 'usage: nc2text_simple [OPTIONS] filename variable(i1:i2,j1:j2,k1:k2)' Write(0,'(a)') ' ' Write(0,'(a)') 'Outputs variable from netcdf file' Write(0,'(a)') ' ' Write(0,'(a)') ' OPTION -n #, number of columns to display data in. This arg accepted but ignored for compatibility' Write(0,'(a)') ' ' - Write(0,'(a)') " Optional syntax 'variable(i1:i2,j1:j2)' can return a range" + Write(0,'(a)') " Optional syntax 'variable(i1:i2,j1:j2,k1:k2)' can return a range" Write(0,'(a)') ' ' Write(0,'(a)') ' Missing i1..j2 will evaluate as array bounds' Write(0,'(a)') ' Ranges start from 1' Write(0,'(a)') ' Zero or regative subscripts count from end of array' Write(0,'(a)') ' ' - Write(0,'(a)') 'Current restrictions: only scalars, 1D and 2D arrays of type double supported' + Write(0,'(a)') 'Current restrictions: only scalars, 1D, 2D and 3D arrays of type double supported' Write(0,'(a)') ' ' Write(0,'(a)') 'Examples:' Write(0,'(a)') ' nc2text_simple b2time.nc tesepa' Write(0,'(a)') ' nc2text_simple -n 999999 b2time.nc tesepa' Write(0,'(a)') " nc2text_simple b2time.nc 'tesepa(1)'" - Write(0,'(a)') " nc2text_simple b2time.nc 'fn3dl(-9:-0,:)'" + Write(0,'(a)') " nc2text_simple b2time.nc 'ne3da(:,-9:-0)'" + Write(0,'(a)') " nc2text_simple b2time.nc 'fn3dl(:,2,-9:-0)'" Return End Subroutine Print_help diff --git a/scripts/obtain_tracing_files b/scripts/obtain_tracing_files index 3af188645..1b8a2bf06 100755 --- a/scripts/obtain_tracing_files +++ b/scripts/obtain_tracing_files @@ -49,9 +49,9 @@ typeset -i nfiles } rm $NAME -( ls -l b2mn.exe.dir/b2time.nc b2mn.exe.dir/b2batch.nc b2mn.exe.dir/b2wall.nc b2mn.exe.dir/b2tallies.nc b2mn.exe.dir/b2movies.nc b2mn.exe.dir/eirenemovies.nc | grep -v 'total ' | grep -v ' 0 ' | wc -l > $NAME ) 2> /dev/null +( ls -l b2mn.exe.dir/b2time.nc b2mn.exe.dir/b2batch.nc b2mn.exe.dir/b2wall.nc b2mn.exe.dir/b2tallies.nc b2mn.exe.dir/b2neo.nc b2mn.exe.dir/b2movies.nc b2mn.exe.dir/eirenemovies.nc | grep -v 'total ' | grep -v ' 0 ' | wc -l > $NAME ) 2> /dev/null nfiles=`cat $NAME` -ncfiles=`ls -l b2mn.exe.dir/b2time.nc b2mn.exe.dir/b2batch.nc b2mn.exe.dir/b2wall.nc b2mn.exe.dir/b2tallies.nc b2mn.exe.dir/b2movies.nc b2mn.exe.dir/eirenemovies.nc | grep -v 'total ' | grep -v ' 0 ' | awk '{printf "%s ",$NF,"\n"}'` +ncfiles=`ls -l b2mn.exe.dir/b2time.nc b2mn.exe.dir/b2batch.nc b2mn.exe.dir/b2wall.nc b2mn.exe.dir/b2tallies.nc b2mn.exe.dir/b2neo.nc b2mn.exe.dir/b2movies.nc b2mn.exe.dir/eirenemovies.nc | grep -v 'total ' | grep -v ' 0 ' | awk '{printf "%s ",$NF,"\n"}'` [ $nfiles -ne 1 ] && { echo "Found" $nfiles "non-empty NetCDF tracing files in b2mn.exe.dir" } || { @@ -59,7 +59,7 @@ ncfiles=`ls -l b2mn.exe.dir/b2time.nc b2mn.exe.dir/b2batch.nc b2mn.exe.dir/b2wal } [ $nfiles -gt 0 ] && { - filelist=`ls -1s b2mn.exe.dir/b2time.nc b2mn.exe.dir/b2batch.nc b2mn.exe.dir/b2wall.nc b2mn.exe.dir/b2tallies.nc b2mn.exe.dir/b2movies.nc b2mn.exe.dir/eirenemovies.nc | grep -v ' 0 ' | grep -v '^0 ' | awk '{printf "%s ",$NF,"\n"}'` + filelist=`ls -1s b2mn.exe.dir/b2time.nc b2mn.exe.dir/b2batch.nc b2mn.exe.dir/b2wall.nc b2mn.exe.dir/b2tallies.nc b2mn.exe.dir/b2neo.nc b2mn.exe.dir/b2movies.nc b2mn.exe.dir/eirenemovies.nc | grep -v ' 0 ' | grep -v '^0 ' | awk '{printf "%s ",$NF,"\n"}'` set -A f -- $filelist i=0 for z in $filelist; do { @@ -67,16 +67,16 @@ ncfiles=`ls -l b2mn.exe.dir/b2time.nc b2mn.exe.dir/b2batch.nc b2mn.exe.dir/b2wal ((i+=1)) }; done } || { - ( ls -l b2time.nc b2batch.nc b2wall.nc b2tallies.nc b2movies.nc eirenemovies.nc | grep -v 'total ' | grep -v ' 0 ' | wc -l > $NAME ) 2> /dev/null + ( ls -l b2time.nc b2batch.nc b2wall.nc b2tallies.nc b2neo.nc b2movies.nc eirenemovies.nc | grep -v 'total ' | grep -v ' 0 ' | wc -l > $NAME ) 2> /dev/null n2files=`cat $NAME` - ncfiles=`ls -l b2time.nc b2batch.nc b2wall.nc b2tallies.nc b2movies.nc eirenemovies.nc | grep -v 'total ' | grep -v ' 0 ' | awk '{printf "%s ",$NF,"\n"}'` + ncfiles=`ls -l b2time.nc b2batch.nc b2wall.nc b2tallies.nc b2neo.nc b2movies.nc eirenemovies.nc | grep -v 'total ' | grep -v ' 0 ' | awk '{printf "%s ",$NF,"\n"}'` [ $n2files -ne 1 ] && { echo "Found" $n2files "non-empty NetCDF tracing files in run directory" } || { echo "Found" $n2files "non-empty NetCDF tracing file in run directory" } [ $n2files -gt 0 ] && { - filelist=`ls -1s b2time.nc b2batch.nc b2wall.nc b2tallies.nc b2movies.nc eirenemovies.nc | grep -v ' 0 ' | grep -v '^0 ' | awk '{printf "%s ",$NF,"\n"}'` + filelist=`ls -1s b2time.nc b2batch.nc b2wall.nc b2tallies.nc b2neo.nc b2movies.nc eirenemovies.nc | grep -v ' 0 ' | grep -v '^0 ' | awk '{printf "%s ",$NF,"\n"}'` set -A f -- $filelist i=0 for z in $filelist; do { diff --git a/scripts/particle_balance_tracing b/scripts/particle_balance_tracing new file mode 100755 index 000000000..1dd28c15d --- /dev/null +++ b/scripts/particle_balance_tracing @@ -0,0 +1,41 @@ +#! /bin/tcsh -f + +if($?GNUPLOT_TMP) then + set tmpdir="$GNUPLOT_TMP/" +else + set tmpdir="" +endif +setenv GNUPLOT_BATCH yes +setenv GNUPLOT_POSTSCRIPT_OPTIONS 'color solid noenhanced' +setenv PRINT_PLOT particle_balance.ps +rm -f ${tmpdir}GNUPLOT_COUNT ${tmpdir}gnuplot.cmd +echo 0 > ${tmpdir}GNUPLOT_COUNT + +set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` +if (-s $solps_fluids) then + setenv SOLPS_FLUIDS `cat $solps_fluids` +else + setenv SOLPS_FLUIDS "`get_solps_fluids`" +endif +set species_names = ( $SOLPS_FLUIDS ) +set neutral_species_names = () +foreach name ($species_names) + set last_char = `echo "$name" | awk '{print substr($0,length($0),1)}'` + set second_last_char = `echo "$name" | awk '{print substr($0,length($0)-1,1)}'` + if ("$last_char" == "0" && "$second_last_char" !~ [0-9]) then + set neutral_species_names = ($neutral_species_names $name) + endif +end +set isonuclear_species_names = () +foreach name ($neutral_species_names) + set name = `echo $name | sed 's/0$//'` + set isonuclear_species_names = ($isonuclear_species_names $name) +end + +foreach is ($isonuclear_species_names) + 2dt_tracing ntr_puff_$is ntr_core_$is ion_core_$is ntr_targ_pmp_$is ntr_wall_pmp_$is ntr_targ_spt_$is ntr_wall_spt_$is + 2dt_tracing ion_core_$is ion_targ_$is ion_wall_$is src_ioniz_$is ion_dn/dt_$is +end + +gnuplot ${tmpdir}gnuplot.cmd +rm ${tmpdir}GNUPLOT_COUNT ${tmpdir}gnuplot.*data ${tmpdir}gnuplot.cmd diff --git a/scripts/plot_residuals b/scripts/plot_residuals new file mode 100755 index 000000000..1b444cbf7 --- /dev/null +++ b/scripts/plot_residuals @@ -0,0 +1,20 @@ +#! /bin/tcsh -f + +if($?GNUPLOT_TMP) then + set tmpdir="$GNUPLOT_TMP/" +else + set tmpdir="" +endif +setenv GNUPLOT_BATCH yes +setenv GNUPLOT_POSTSCRIPT_OPTIONS 'color solid noenhanced' +setenv PRINT_PLOT residuals.ps +rm -f ${tmpdir}GNUPLOT_COUNT ${tmpdir}gnuplot.cmd +echo 0 > ${tmpdir}GNUPLOT_COUNT + +resco +resmo +reshe +reshi + +gnuplot ${tmpdir}gnuplot.cmd +rm ${tmpdir}GNUPLOT_COUNT ${tmpdir}gnuplot.*data ${tmpdir}gnuplot.cmd diff --git a/scripts/replace_links b/scripts/replace_links new file mode 100755 index 000000000..7ea72ed99 --- /dev/null +++ b/scripts/replace_links @@ -0,0 +1,63 @@ +#!/bin/tcsh + +# Recursively replace all symbolic links in the specified directory and subdirectories +# with the real file or folder to which they are linked, keeping the same name of the original link. +# Only works if the real linked file/folder currently exists. + +if ( $#argv >= 1 ) then + set dir = "$argv[1]" +else + set dir = "$cwd" +endif + +echo "Do you want to recursively replace ALL the symbolic links in the directory" +echo "$dir" +echo -n "and subdirectories with the original files/folder? (y/n) [n]" +set REPLACE_LINKS = $< + +if ( "$REPLACE_LINKS" == "" ) then + set REPLACE_LINKS = "n" +endif + +if ( "$REPLACE_LINKS" == "y" ) then + + set links = (`find $dir -type l`) + + if ( $#links == 0 ) then + + echo "No symbolic links recursively found in the directory." + echo "$dir" + echo + + else + + foreach link ($links) + if ( -d "$link" ) then + set target = `realpath $link` + if ( -e "$target" ) then + rm "$link" + cp -a "$target" "$link" + echo "Replaced link $link with folder $target" + endif + endif + end + + foreach link ($links) + if ( ! -d "$link" ) then + set target = `realpath $link` + if ( -e "$target" ) then + rm "$link" + cp -p "$target" "$link" + echo "Replaced link $link with file $target" + endif + endif + end + + endif + + echo "All symbolic links recursively found in the directory" + echo "$dir" + echo "were replaced, if the original linked file/folder existed." + echo + +endif diff --git a/scripts/resco b/scripts/resco index 585e78fba..fe27233f6 100755 --- a/scripts/resco +++ b/scripts/resco @@ -7,13 +7,13 @@ endif set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` if (-s $solps_fluids) then setenv SOLPS_FLUIDS "`cat $solps_fluids`" - echo Set SOLPS_FLUIDS to $SOLPS_FLUIDS "(based on $solps_fluids)" + #echo Set SOLPS_FLUIDS to $SOLPS_FLUIDS "(based on $solps_fluids)" else setenv SOLPS_FLUIDS "`get_solps_fluids`" - echo Set SOLPS_FLUIDS to $SOLPS_FLUIDS "(based on log file)" + #echo Set SOLPS_FLUIDS to $SOLPS_FLUIDS "(based on log file)" endif set n=`echo $SOLPS_FLUIDS | wc -w` -echo $n +#echo $n if (-X zcat) then set ZCAT="zcat --force" else @@ -29,4 +29,4 @@ $ZCAT $FILE | \ awk 'BEGIN{ig=0}/data/&&ig==0{ig=1}/data/&&ig==2{printf "\n"}/^[^*]/&&ig>0{ig=2;printf "%s",$0}' | \ resopt $argv | \ awk '{printf "%s",$2; for (i=1;i<='$n';i++) printf " %s",$(i+2);printf "\n"}' >! ${tmpdir}PLOT_FROM_FILE - plot xlyplot$n $SOLPS_FLUIDS iteration 'norm of residual of continuity equation' `noquote_pwd 3` + plot xlyplot$n $SOLPS_FLUIDS iteration 'norm of residuals of continuity equation' $PWD diff --git a/scripts/reshe b/scripts/reshe new file mode 100755 index 000000000..e3d5f9fc1 --- /dev/null +++ b/scripts/reshe @@ -0,0 +1,23 @@ +#! /bin/tcsh -f +if (-s b2mn.exe.dir/b2ftrace) then + set FILE=b2mn.exe.dir/b2ftrace +else + set FILE=b2ftrace +endif +if (-X zcat) then + set ZCAT="zcat --force" +else + set ZCAT="gzip --decompress --force --stdout" +endif +if($?GNUPLOT_TMP) then + set tmpdir="$GNUPLOT_TMP/" +else + set tmpdir="" +endif + +setenv PLOT_FROM_FILE "gnuplot.temp" +$ZCAT $FILE | \ + awk 'BEGIN{ig=0}/data/&&ig==0{ig=1}/data/&&ig==2{printf "\n"}/^[^*]/&&ig>0{ig=2;printf "%s",$0}' | \ + resopt $argv | \ + awk '{print $2,$8}' >! ${tmpdir}PLOT_FROM_FILE +plot xlyplot '' iteration 'norm of residual of electron energy equation' $PWD diff --git a/scripts/reshi b/scripts/reshi new file mode 100755 index 000000000..964d65f24 --- /dev/null +++ b/scripts/reshi @@ -0,0 +1,23 @@ +#! /bin/tcsh -f +if (-s b2mn.exe.dir/b2ftrace) then + set FILE=b2mn.exe.dir/b2ftrace +else + set FILE=b2ftrace +endif +if (-X zcat) then + set ZCAT="zcat --force" +else + set ZCAT="gzip --decompress --force --stdout" +endif +if($?GNUPLOT_TMP) then + set tmpdir="$GNUPLOT_TMP/" +else + set tmpdir="" +endif + +setenv PLOT_FROM_FILE "gnuplot.temp" +$ZCAT $FILE | \ + awk 'BEGIN{ig=0}/data/&&ig==0{ig=1}/data/&&ig==2{printf "\n"}/^[^*]/&&ig>0{ig=2;printf "%s",$0}' | \ + resopt $argv | \ + awk '{print $2,$9}' >! ${tmpdir}PLOT_FROM_FILE +plot xlyplot '' iteration 'norm of residual of ion energy equation' $PWD diff --git a/scripts/resmo b/scripts/resmo index dfd1a35c6..018793021 100755 --- a/scripts/resmo +++ b/scripts/resmo @@ -1,4 +1,4 @@ -#! /bin/csh -f +#! /bin/tcsh -f if (-s b2mn.exe.dir/b2ftrace) then set FILE=b2mn.exe.dir/b2ftrace else @@ -7,13 +7,13 @@ endif set solps_fluids=`climb_and_look_for SOLPS_FLUIDS` if (-s $solps_fluids) then setenv SOLPS_FLUIDS "`cat $solps_fluids`" - echo Set SOLPS_FLUIDS to $SOLPS_FLUIDS "(based on $solps_fluids)" + #echo Set SOLPS_FLUIDS to $SOLPS_FLUIDS "(based on $solps_fluids)" else setenv SOLPS_FLUIDS "`get_solps_fluids`" - echo Set SOLPS_FLUIDS to $SOLPS_FLUIDS "(based on log file)" + #echo Set SOLPS_FLUIDS to $SOLPS_FLUIDS "(based on log file)" endif set n=`echo $SOLPS_FLUIDS | wc -w` -echo $n +#echo $n if (-X zcat) then set ZCAT="zcat --force" else @@ -26,7 +26,7 @@ else endif setenv PLOT_FROM_FILE "gnuplot.temp" $ZCAT $FILE | \ - awk 'BEGIN{ig=0}/data/&&ig==0{ig=1}/data/&&ig==2{printf "\n"}/^[^*]/&&ig>0{ig=2;printf "%s",$0}' | \ - resopt $argv | \ - awk '{printf "%s",$2; for (i=1;i<='$n';i++) printf " %s",$(i+'$n'+2);printf "\n"}' >! ${tmpdir}PLOT_FROM_FILE -plot xlyplot$n $SOLPS_FLUIDS iteration 'norm of residual of momentum equation' $PWD + awk 'BEGIN{ig=0}/data/&&ig==0{ig=1}/data/&&ig==2{printf "\n"}/^[^*]/&&ig>0{ig=2;printf "%s",$0}' | \ + resopt $argv | \ + awk '{printf "%s",$2; for (i=1;i<='$n';i++) printf " %s",$(i+'$n'+2);printf "\n"}' >! ${tmpdir}PLOT_FROM_FILE + plot xlyplot$n $SOLPS_FLUIDS iteration 'norm of residuals of momentum equation' $PWD diff --git a/scripts/save_initial_files b/scripts/save_initial_files index 24d29282c..f944e261f 100755 --- a/scripts/save_initial_files +++ b/scripts/save_initial_files @@ -8,6 +8,7 @@ [ -s b2time.nc ] && cp b2time.nc b2time.nc.i || echo > /dev/null [ -s b2batch.nc ] && cp b2batch.nc b2batch.nc.i || echo > /dev/null [ -s b2wall.nc ] && cp b2wall.nc b2wall.nc.i || echo > /dev/null +[ -s b2neo.nc ] && cp b2neo.nc b2neo.nc.i || echo > /dev/null [ -s b2movies.nc ] && cp b2movies.nc b2movies.nc.i || echo > /dev/null [ -s eirenemovies.nc ] && cp eirenemovies.nc eirenemovies.nc.i || echo > /dev/null [ -s b2tallies.nc ] && cp b2tallies.nc b2tallies.nc.i || echo > /dev/null diff --git a/scripts/summarize_run b/scripts/summarize_run index 0c0553b96..3e17af615 100755 --- a/scripts/summarize_run +++ b/scripts/summarize_run @@ -1,12 +1,6 @@ #! /bin/tcsh -f -setenv GNUPLOT_POSTSCRIPT_OPTIONS 'color solid noenhanced' -setenv PRINT_PLOT resrest.ps ; resrest && rm -f gnuplot.data gnuplot.cmd -setenv PRINT_PLOT resco.ps ; resco && rm -f gnuplot.data gnuplot.cmd PLOT_FROM_FILE -setenv PRINT_PLOT resmo.ps ; resmo && rm -f gnuplot.data gnuplot.cmd PLOT_FROM_FILE -setenv PRINT_PLOT rqahereg.ps ; rqahereg && rm -f gnuplot.data gnuplot.cmd PLOT_FROM_FILE -setenv PRINT_PLOT energy_analysis_total.ps ; energy_analysis_total && rm -f gnuplot.data gnuplot.cmd PLOT_FROM_FILE -setenv PRINT_PLOT density.ps ; density l && rm -f gnuplot.data gnuplot.cmd PLOT_FROM_FILE 2d_profiles 2d_plots +plot_residuals last10