From c84ab03705eca6f7da88cf76a9e165c0fca1fed9 Mon Sep 17 00:00:00 2001 From: David A Minton Date: Mon, 12 Jul 2021 17:34:51 -0400 Subject: [PATCH] More maintenence on initial conditions generator and fixes to i/o problems --- .../9pl_18tp_encounters/cb.swiftest.in | 1 + .../9pl_18tp_encounters/init_cond.py | 30 ++++++-- .../9pl_18tp_encounters/param.swifter.in | 6 +- .../9pl_18tp_encounters/param.swiftest.in | 1 + .../9pl_18tp_encounters/pl.swifter.in | 56 +++++++-------- .../9pl_18tp_encounters/pl.swiftest.in | 38 +++++----- .../9pl_18tp_encounters/tp.in | 72 +++++++++---------- .../whm_gr_test/swiftest_relativity.ipynb | 8 +-- python/swiftest/swiftest/io.py | 3 + src/io/io.f90 | 16 ++++- src/modules/swiftest_classes.f90 | 1 + src/rmvs/rmvs_step.f90 | 1 - 12 files changed, 128 insertions(+), 105 deletions(-) mode change 100644 => 100755 examples/rmvs_swifter_comparison/9pl_18tp_encounters/init_cond.py diff --git a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/cb.swiftest.in b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/cb.swiftest.in index 689d47628..0e35c1909 100644 --- a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/cb.swiftest.in +++ b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/cb.swiftest.in @@ -1,4 +1,5 @@ 0.0002959122081920778 +0.0002959122081920778 0.004650467260962157 4.7535806948127355e-12 -2.2473967953572827e-18 diff --git a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/init_cond.py b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/init_cond.py old mode 100644 new mode 100755 index 314e59420..5b5a95bf6 --- a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/init_cond.py +++ b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/init_cond.py @@ -1,4 +1,6 @@ +#!/usr/bin/env python3 import numpy as np +import swiftest import swiftest.io as swio import astropy.constants as const import sys @@ -68,21 +70,39 @@ print(f'EXTRA_FORCE no') print(f'BIG_DISCARD no') print(f'ROTATION no') +print(f'RHILL_PRESENT no') print(f'GR no') print(f'MU2KG {MU2KG}') print(f'DU2M {DU2M}') print(f'TU2S {TU2S}') sys.stdout = sys.__stdout__ -param = swio.read_swiftest_param(swiftest_input) +sim = swiftest.Simulation(param_file=swiftest_input) +param = sim.param # Dates to fetch planet ephemerides from JPL Horizons tstart = '2021-06-15' -ds = swio.solar_system_pl(param, tstart) + +bodyid = { + "Sun": 0, + "Mercury": 1, + "Venus": 2, + "Earth": 3, + "Mars": 4, + "Jupiter": 5, + "Saturn": 6, + "Uranus": 7, + "Neptune": 8, +} + +for name, id in bodyid.items(): + sim.add(name, idval=id) + +ds = sim.ds cb = ds.sel(id=0) pl = ds.where(ds.id > 0, drop=True) npl = pl.id.size -ntp = 18 +ntp = 16 dims = ['time', 'id', 'vec'] tp = [] t = np.array([0.0]) @@ -167,8 +187,8 @@ print(f"OUT_TYPE REAL8") print(f"OUT_FORM XV") print(f"OUT_STAT UNKNOWN") -print(f"J2 {param['J2']}") -print(f"J4 {param['J4']}") +print(f"J2 {swiftest.J2Sun}") +print(f"J4 {swiftest.J4Sun}") print(f"CHK_CLOSE yes") print(f"CHK_RMIN {rmin}") print(f"CHK_RMAX {rmax}") diff --git a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/param.swifter.in b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/param.swifter.in index ec31caa63..d6a50fc37 100644 --- a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/param.swifter.in +++ b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/param.swifter.in @@ -1,4 +1,4 @@ -! Swifter input file generated using init_cond.py +! VERSION Swifter input file generated using init_cond.py T0 0 TSTOP 365.25 DT 1.0 @@ -11,8 +11,8 @@ BIN_OUT bin.swifter.dat OUT_TYPE REAL8 OUT_FORM XV OUT_STAT UNKNOWN -J2 4.7535806948127355e-12 -J4 -2.2473967953572827e-18 +J2 2.198e-07 +J4 -4.805e-09 CHK_CLOSE yes CHK_RMIN 0.004650467260962157 CHK_RMAX 1000.0 diff --git a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/param.swiftest.in b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/param.swiftest.in index fff05bacf..34f9a5c88 100644 --- a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/param.swiftest.in +++ b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/param.swiftest.in @@ -23,6 +23,7 @@ ENC_OUT enc.swiftest.dat EXTRA_FORCE no BIG_DISCARD no ROTATION no +RHILL_PRESENT no GR no MU2KG 1.988409870698051e+30 DU2M 149597870700.0 diff --git a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/pl.swifter.in b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/pl.swifter.in index f02f6bc6f..5bed331a6 100644 --- a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/pl.swifter.in +++ b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/pl.swifter.in @@ -1,40 +1,36 @@ -10 -0 0.00029591220819207776388 +9 +0 0.00029591220819207775568 0.0 0.0 0.0 0.0 0.0 0.0 -1 4.9125474498983625e-11 0.0014751258227142052 +1 4.9125474498983625e-11 0.0014751244996981092 1.6306381826061646e-05 -0.008059842448018334 -0.4616051037329109 -0.03846017738329229 -0.02248719132054853 0.001934639213990692 -0.001904656977422976 -2 7.243452483873647e-10 0.006759134232034941 +0.3424231950105548 0.04541859803875346 -0.02769885218647143 +-0.009135456552973951 0.02914778346055028 0.003219860945895814 +2 7.243452483873647e-10 0.00675910592748785 4.0453784346544176e-05 --0.5115875215389065 0.5030818749037324 0.03642547299277956 --0.01425515725454357 -0.01452868630179309 0.0006232072038298823 -3 8.997011382166019e-10 0.010044625087011915 +-0.7187409324847692 0.008460121607685698 0.04159114061029223 +-0.000355507214371255 -0.02031492463311098 -0.0002582876464863964 +3 8.997011382166019e-10 0.010044781409779763 4.25875607065041e-05 --0.1090020607540907 -1.009893805009766 4.823302918632528e-05 -0.01682491922568941 -0.001910549762056979 3.992660742687128e-08 -4 9.549535102761465e-11 0.0072467897902424765 +0.3408913444637776 -0.9577324614296441 4.435598231277718e-05 +0.01592829229600895 0.005704842145070232 -3.222239146362505e-07 +4 9.549535102761465e-11 0.007246745952808949 2.2657408050928896e-05 --1.342897929331636 0.9778655112682739 0.05343398538723887 --0.007712315645393206 -0.01011917844182223 -2.287744801261131e-05 -5 2.825345908631355e-07 0.3552720805286442 +-1.518194954784943 0.6839686166809457 0.05157497542651887 +-0.005224888295856506 -0.01156432042916445 -0.0001141828894241638 +5 2.825345908631355e-07 0.3552712944567904 0.0004673261703049093 -3.923184193414315 -3.168419770483168 -0.0746147877972047 -0.004655552638985802 0.006232623300954468 -0.0001300429201057457 -6 8.459715183006416e-08 0.4376460836930155 +4.04554302433205 -2.997516585076586 -0.07806209765007878 +0.004406596292841761 0.006425243736188545 -0.0001252737469736559 +6 8.459715183006416e-08 0.43765252895139073 0.00038925687730393614 -6.185794462795267 -7.804174837804826 -0.110498432926239 -0.004066833203985018 0.003458637040736611 -0.0002219310939327014 -7 1.2920249163736674e-08 0.46946272948265794 +6.294914485420795 -7.709936089816689 -0.1164782091116569 +0.004015969235853927 0.003521900151979878 -0.000221006899984545 +7 1.2920249163736674e-08 0.46953353749301263 0.00016953449859497232 -14.9290976575471 12.92949673572929 -0.1454099139559955 --0.002599557960646664 0.002795888198858545 4.391864857782088e-05 -8 1.5243589003230834e-08 0.78119478483336 +14.85869768503949 13.00480689249104 -0.1442220329069338 +-0.002615247360000599 0.002782629142130045 4.407243103045647e-05 +8 1.5243589003230834e-08 0.7812837944287938 0.00016458790412449367 -29.54416169025338 -4.716921603714237 -0.5838030174427992 -0.0004792636209523189 0.00312573757291745 -7.53264045199501e-05 -9 2.1919422829042796e-12 0.05379680851617536 -7.943294877391593e-06 -14.54448346259197 -31.05223519593471 -0.8828000265625595 -0.002923077617691739 0.0006625916902153526 -0.0009142553677224461 +29.55697963607957 -4.6325049341728 -0.5858344271811813 +0.0004702098511244648 0.0031273464291932 -7.514820514613305e-05 diff --git a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/pl.swiftest.in b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/pl.swiftest.in index 0920f9b2e..7aed2bd36 100644 --- a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/pl.swiftest.in +++ b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/pl.swiftest.in @@ -1,37 +1,33 @@ -9 +8 1 4.9125474498983625056e-11 1.6306381826061645943e-05 -0.008059842448018333591 -0.46160510373291091524 -0.038460177383292291908 -0.02248719132054852949 0.0019346392139906921279 -0.0019046569774229759606 +0.3424231950105547928 0.045418598038753463242 -0.027698852186471431547 +-0.0091354565529739517565 0.029147783460550279367 0.0032198609458958141984 2 7.243452483873647106e-10 4.0453784346544178454e-05 --0.51158752153890652004 0.5030818749037323512 0.036425472992779560355 --0.01425515725454356988 -0.014528686301793089943 0.00062320720382988232425 +-0.7187409324847692238 0.008460121607685697903 0.041591140610292232083 +-0.00035550721437125499377 -0.02031492463311097901 -0.0002582876464863963815 3 8.997011382166018993e-10 4.25875607065040958e-05 --0.109002060754090704386 -1.0098938050097661101 4.8233029186325282966e-05 -0.016824919225689409317 -0.0019105497620569790936 3.9926607426871282392e-08 +0.34089134446377761245 -0.95773246142964407746 4.435598231277717939e-05 +0.015928292296008950611 0.0057048421450702319388 -3.2222391463625049515e-07 4 9.549535102761465872e-11 2.265740805092889601e-05 --1.3428979293316360977 0.97786551126827392366 0.053433985387238869258 --0.007712315645393206092 -0.0101191784418222296525 -2.2877448012611311785e-05 +-1.5181949547849429294 0.68396861668094566244 0.051574975426518870902 +-0.0052248882958565065657 -0.011564320429164450312 -0.000114182889424163797216 5 2.8253459086313549713e-07 0.00046732617030490929307 -3.923184193414314791 -3.1684197704831680298 -0.07461478779720470689 -0.0046555526389858022113 0.006232623300954467766 -0.00013004292010574569365 +4.0455430243320495975 -2.9975165850765859155 -0.07806209765007877943 +0.004406596292841760992 0.0064252437361885449665 -0.00012527374697365591187 6 8.45971518300641563e-08 0.00038925687730393611812 -6.1857944627952665684 -7.804174837804826126 -0.11049843292623899582 -0.0040668332039850179674 0.0034586370407366113193 -0.00022193109393270141328 +6.29491448542079457 -7.7099360898166890976 -0.11647820911165690516 +0.0040159692358539270963 0.003521900151979878124 -0.00022100689998454500264 7 1.2920249163736673984e-08 0.00016953449859497231466 -14.929097657547099942 12.9294967357292893695 -0.14540991395599550673 --0.0025995579606466640267 0.0027958881988585450113 4.391864857782088156e-05 +14.8586976850394894 13.004806892491039605 -0.14422203290693380584 +-0.0026152473600005990854 0.0027826291421300452348 4.4072431030456473482e-05 8 1.5243589003230834746e-08 0.000164587904124493665 -29.544161690253378794 -4.7169216037142369657 -0.58380301744279916587 -0.00047926362095231893815 0.00312573757291745008 -7.532640451995010825e-05 -9 2.1919422829042797324e-12 -7.943294877391593783e-06 -14.544483462591969669 -31.052235195934709822 -0.88280002656255951443 -0.0029230776176917390448 0.0006625916902153525834 -0.0009142553677224461557 +29.55697963607957135 -4.6325049341728004038 -0.5858344271811812831 +0.00047020985112446483607 0.0031273464291932002029 -7.514820514613305391e-05 diff --git a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/tp.in b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/tp.in index 6ae12da23..eeccf8904 100644 --- a/examples/rmvs_swifter_comparison/9pl_18tp_encounters/tp.in +++ b/examples/rmvs_swifter_comparison/9pl_18tp_encounters/tp.in @@ -1,55 +1,49 @@ -18 +16 101 -0.0080829031543499848395 -0.46158204302657929174 -0.038460177383292291908 -0.025090740792557679473 0.00193463921399069207 -0.0019046569774229759036 +0.3424462557168864163 0.04544165874508511449 -0.027698852186471431547 +-0.006531907080964799092 0.029147783460550278495 0.003219860945895814102 102 -0.008036781741686682343 -0.46162816443924253873 -0.038460177383292291908 -0.01988364184853937816 0.00193463921399069207 -0.0019046569774229759036 +0.3424001343042231693 0.045395537332421811993 -0.027698852186471431547 +-0.0117390060249831038736 0.029147783460550278495 0.003219860945895814102 103 --0.51153031124843428845 0.50313908519420458276 0.036425472992779560355 --0.007907923549198175514 -0.014528686301793089508 0.0006232072038298823056 +-0.7186837221942969922 0.0085173318981578965275 0.041591140610292232083 +0.0059917264909741391188 -0.020314924633110978403 -0.00025828764648639637377 104 --0.5116447318293787516 0.5030246646132601196 0.036425472992779560355 --0.020602390959888965127 -0.014528686301793089508 0.0006232072038298823056 +-0.7187981427752414554 0.008402911317213499279 0.041591140610292232083 +-0.0067027409197166487598 -0.020314924633110978403 -0.00025828764648639637377 105 --0.10894183284815117663 -1.0098335771038264852 4.8233029186325282966e-05 -0.023719359459963285097 -0.0019105497620569790364 3.9926607426871281197e-08 +0.34095157236971712633 -0.9576722335237045636 4.435598231277717939e-05 +0.022822732530282826419 0.005704842145070231768 -3.222239146362504855e-07 106 --0.109062288660030232146 -1.009954032915705735 4.8233029186325282966e-05 -0.00993047899141553253 -0.0019105497620569790364 3.9926607426871281197e-08 +0.34083111655783809857 -0.95779268933558359134 4.435598231277717939e-05 +0.009033852061735073852 0.005704842145070231768 -3.222239146362504855e-07 107 --1.3428658869178822233 0.97789755368202779806 0.053433985387238869258 --0.0046328365471693128824 -0.01011917844182222935 -2.28774480126113111e-05 +-1.518162912371189055 0.68400065909469953684 0.051574975426518870902 +-0.0021454091976326134308 -0.011564320429164449966 -0.0001141828894241637938 108 --1.3429299717453899721 0.97783346885452004926 0.053433985387238869258 --0.0107917947436170988396 -0.01011917844182222935 -2.28774480126113111e-05 +-1.5182269971986968038 0.68393657426719178805 0.051574975426518870902 +-0.008304367394080400255 -0.011564320429164449966 -0.0001141828894241637938 109 -3.9238450924224119731 -3.1677588714750708476 -0.07461478779720470689 -0.041537769840633231855 0.0062326233009544675795 -0.00013004292010574568976 +4.0462039233401467797 -2.9968556860684887333 -0.07806209765007877943 +0.041288813494489193245 0.006425243736188544774 -0.00012527374697365590813 110 -3.9225232944062176088 -3.169080669491265212 -0.07461478779720470689 --0.03222666456266162771 0.0062326233009544675795 -0.00013004292010574568976 +4.0448821253239524154 -2.9981774840846830976 -0.07806209765007877943 +-0.03247562090880566632 0.006425243736188544774 -0.00012527374697365590813 111 -6.1863449551503970625 -7.8036243454496956318 -0.11049843292623899582 -0.026180002087518607773 0.0034586370407366112158 -0.00022193109393270140663 +6.295464977775925064 -7.7093855974615586035 -0.11647820911165690516 +0.026129138119387516903 0.0035219001519798780186 -0.00022100689998454499602 112 -6.1852439704401360743 -7.80472533015995662 -0.11049843292623899582 --0.018046335679548570347 0.0034586370407366112158 -0.00022193109393270140663 +6.2943639930656640757 -7.7104865821718195917 -0.11647820911165690516 +-0.018097199647679661216 0.0035219001519798780186 -0.00022100689998454499602 113 -14.92933741553430238 12.9297364937164918075 -0.14540991395599550673 -0.010495205578015229936 0.0027958881988585449277 4.3918648577820880246e-05 +14.858937443026691838 13.005046650478242043 -0.14422203290693380584 +0.0104795161786612953114 0.0027826291421300451516 4.4072431030456472162e-05 114 -14.928857899559897504 12.9292569777420869315 -0.14540991395599550673 --0.015694321499308556966 0.0027958881988585449277 4.3918648577820880246e-05 +14.858457927052286962 13.004567134503837167 -0.14422203290693380584 +-0.01571001089866249159 0.0027826291421300451516 4.4072431030456472162e-05 115 -29.544394452699595632 -4.7166888412680219034 -0.58380301744279916587 -0.014914899434230450767 0.0031257375729174499863 -7.532640451995010599e-05 +29.557212398525788188 -4.6322721717265853414 -0.5858344271811812831 +0.01490584566440259634 0.0031273464291932001093 -7.514820514613305166e-05 116 -29.543928927807161955 -4.717154366160452028 -0.58380301744279916587 --0.013956372192325811402 0.0031257375729174499863 -7.532640451995010599e-05 -117 -14.544494696107316045 -31.052223962419365222 -0.88280002656255951443 -0.0037110399802695879026 0.00066259169021535256356 -0.0009142553677224461283 -118 -14.544472229076623293 -31.052246429450054421 -0.88280002656255951443 -0.002135115255113890012 0.00066259169021535256356 -0.0009142553677224461283 +29.556746873633354511 -4.632737696619015466 -0.5858344271811812831 +-0.013965425962153665829 0.0031273464291932001093 -7.514820514613305166e-05 diff --git a/examples/whm_gr_test/swiftest_relativity.ipynb b/examples/whm_gr_test/swiftest_relativity.ipynb index 4026960a7..90f48b315 100644 --- a/examples/whm_gr_test/swiftest_relativity.ipynb +++ b/examples/whm_gr_test/swiftest_relativity.ipynb @@ -116,15 +116,15 @@ "Mean precession rate for Mercury long. peri. (arcsec/100 y)\n", "JPL Horizons : 573.8351991142854\n", "Swifter GR : 579.6804682138315\n", - "Swiftest GR : 579.4895342016788\n", + "Swiftest GR : 579.6804681921402\n", "Obs - Swifter : -5.845269099546055\n", - "Obs - Swiftest : -5.654335087393189\n", - "Swiftest - Swifter: -0.19093401215286576\n" + "Obs - Swiftest : -5.845269077854606\n", + "Swiftest - Swifter: -2.169144863728434e-08\n" ] }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZIAAAEGCAYAAABPdROvAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABCrElEQVR4nO3dd3iURdfA4d/ZFFIooYROCKFDgACRItKLUkRBRUFfxQbYy2fBhr5YXlRQbKCIAooiIlJERRClCdJ7M3RC6BBaCCTZ8/2xC8YQMEvKppz7uriyO087E5I9eWbmmRFVxRhjjLlSDm8HYIwxJm+zRGKMMSZTLJEYY4zJFEskxhhjMsUSiTHGmEzx9XYA3lCqVCkNDw/3dhjGGJOnrFix4rCqhqYtL5CJJDw8nOXLl3s7DGOMyVNEZFd65da0ZYwxJlMskRhjjMkUSyTGGGMypUD2kaQnKSmJ2NhYEhMTvR1KgRQQEEDFihXx8/PzdijGGA9ZInGLjY2lSJEihIeHIyLeDqdAUVWOHDlCbGwsVapU8XY4xhgPWdOWW2JiIiVLlrQk4gUiQsmSJe1u0Jg8yhJJKpZEvMe+98bkXZZIjDGmADhxfA+vf9ONkyf2Zvm5LZHkIoULF2bnzp0EBgYSFRVFnTp1GDBgAE6nk507dxIZGXnZ41955RWGDh36j7Lw8HAOHz7sURxdunQhPj7e0/CNMbnU2g0TuWVyZ75L3MmUBZ9l+fmtsz0Xqlq1KqtXryY5OZl27doxdepUGjVqlO3XVVVUlZ9++inbr2WMyX7OlGTG/tSPD44spaRTiTzei+tvGZjl17E7klzM19eXq6++mq1bt2bJ+d555x0iIyOJjIxk+PDhAOzcuZPatWvz4IMP0qhRI/bs2XPhLubjjz8mKiqKqKgoqlSpQtu2bQGYMGEC9erVIzIykmefffbC+QsXLswLL7xAgwYNaNasGQcOHABg0qRJREZG0qBBA1q1apUldTHGXN6ePYu598tmvHt0GXUTAjm3/yXeuOtpigf7Z/m17I4kHf/9YQMb405k6TnrlC/Ky9fX9eiYhIQE5syZw+DBgzN8zLvvvsv48eMvvI+LiwNgxYoVjBkzhiVLlqCqNG3alNatW1O8eHG2bNnCmDFjGDFixD/ONWDAAAYMGEBSUhLt2rXjySefJC4ujmeffZYVK1ZQvHhxOnXqxNSpU7nxxhs5ffo0zZo14/XXX+eZZ57h008/5cUXX2Tw4MH88ssvVKhQwZrMjMlm6nQyafYTDI2bgw9wzYlGzDt8G9/2b0GlEkHZck27I8mFtm3bRlRUFC1atKBr16507tw5w8c+8cQTrF69+sK/8uXLA7Bw4UJ69OhBcHAwhQsXpmfPnixYsACAypUr06xZs0ue87HHHqNdu3Zcf/31LFu2jDZt2hAaGoqvry+333478+fPB8Df359u3boB0LhxY3bu3AlAixYt6Nu3L59++ikpKSlX8i0xxmTQpF+f5NX9vxHlCKJvuSH8HHcrH/ZpTGSFYtl2TbsjSYendw5Z7XwfSVZS1UtuCw4OvuS2sWPHsmvXLj788MN/PY+fn9+FYbw+Pj4kJycD8PHHH7NkyRJ+/PFHoqKiWL16NSVLlrySahhjLiP+2A7e3/srTSSAj/+zmA7DF9AwzI92tcpk63XtjqSAaNWqFVOnTiUhIYHTp08zZcoUWrZsedljVqxYwdChQxk/fjwOh+tHpWnTpsybN4/Dhw+TkpLChAkTaN269WXPs23bNpo2bcrgwYMpVaoUe/bsybJ6GWP+9v4vD3BK4LmWb/DnjmNsP3SaO5pWzvbr2h1JLpGcnEyhQoUuu8+WLVuoWLHihffvvvsut9xyS4bO36hRI/r27UuTJk0AuO+++2jYsOGF5qf0fPjhhxw9evRCJ3t0dDSjR4/mf//7H23btkVV6dKlCzfccMNlr/30008TExODqtK+fXsaNGiQoZiNMRm3YfP3fJcYyx3BValWtRPvfLWCkCA/utYvl+3Xlss1VeRX0dHRmnZhq02bNlG7dm0vRQRr1qzh/vvvZ+nSpV6Lwdu8/X9gTF7lTEnmP19cxV5N4oebf+EMJbl6yG/c3SKcF7rWybLriMgKVY1OW25NW7nAxx9/TO/evXnttde8HYoxJo9Rp5PhU25hrSOZJ8O7U6RoBb5Ztodkp9InB5q1wJq2coXzw2yNMSatmK0zmbpqJEX9i1I8IJQiQRF0aHI3foWCSUk+x6uTujH53D56FarA9W1eIznFyYSlu2lZvRRVSl16IE1WyrFEIiI1gYmpiiKAQUBzoKa7LASIV9WodI4PAUYDkYAC96jq4lTbnwLeBkJV1bM5QYwxJhfatWsB9y14ihMCyQl/T2xaJGYkVzvKcM5xlt/1BPcXqc0jN36DOByMnreNfccTc3T0aY4lElXdAkQBiIgPsBeYoqrDz+8jIsOA45c4xXvATFW9WUT8gaBUx1UCOgK7syV4Y4zJYYcPbaL/nAdxAg1OPciiuNJElz1Ow9LbWX9sDgsCD5CgDu4OaMyjPccC8MXinQz5eTNd6pWlU53sHfKbmreattoD21R11/kCcT2A0Atol3ZnESkKtAL6AqjqOeBcql3eBZ4BpmVfyMYYkzNOndzHAzNu46goobE92OiowRs316Jnwwo4HEKK8zVmrtnCZ78t5v1Dpdmlq6hXoRiv/biJDrXL8N5tDXE4cm5pBm8lktuACWnKWgIHVDUmnf0jgEPAGBFpAKwAHlPV0yLSHdirqmsut6aFiPQD+gGEhYVlQRWMMSZ7DP/pPrZKCpVj21CkfDe+uDWKkoX/fjzAxyF0bViLDvWqM+L3bYyYu5Vpq+NoXSOUj25viJ9Pzo6jyvFRW+5mqe7ApDSbenNxcjnPF2gEjFTVhsBpYKCIBAEv4OpruSxVHaWq0aoaHRoaesXxZ6fXX3+dunXrUr9+faKioliyZEmGjhs0aBC//vorAAsWLKBu3bpERUWxePHiLJnJ98CBA/Tp04eIiAgaN25M8+bNmTJlCgBz586lWLFiNGzYkFq1avHUU09l+nrGFGSnTu7jh4Sd1D1ZmFZNH2Xs3U3+kURSK+TrwxMda/Djoy155rqafPKfxhTy9cnhiL0z/LczsFJVD5wvEBFfoCf/7IxPLRaIVdXzn6zf4UosVYEqwBoR2QlUBFaKSNlsij3bLF68mBkzZrBy5UrWrl3Lr7/+SqVKlTJ07ODBg+nQoQMAX331FU899RSrV69my5YtHieS89OanKeq3HjjjbRq1Yrt27ezYsUKvvnmG2JjYy/s07JlS1atWsWqVauYMWMGf/zxh0fXNMb87ZOfXiDB4aBxuTt5smMNfDLQRFWjTBEebFONAL+cTyLgnUSS3p1HB2Czqsamsz+quh/Y4x75Ba4+lo2quk5VS6tquKqG40o4jdz75yn79u2jVKlSF55uL1WqFOXLl2fp0qX07NkTgGnTphEYGMi5c+dITEwkIiICgL59+/Ldd98xevRovv32WwYPHkzv3r0ZNGgQEydOJCoqiokTJ3L69GnuuecerrrqKho2bMi0aa4upbFjx3LLLbdw/fXX06lTp3/E9dtvv+Hv7/+P4cmVK1fmkUceuagO5xfk2rs361dgM6YgOHD8NLNPLKX6WeGRHnnnkYAc7SNxN0V1BPqn2XRRn4mIlAdGq2oXd9EjwFfuprHtwN3ZFujPA2H/uqw9Z9l60HnIJTd36tSJwYMHU6NGDTp06MCtt95K69atadSoEatWrQJczVaRkZEsW7aM5ORkmjZt+o9z3HfffSxcuJBu3bpx8803M3bsWJYvX35hwsXnn3+edu3a8fnnnxMfH0+TJk0u3MksXryYtWvXUqJEiX+cc8OGDRleVOvYsWPExMTYmiPGXAFV5e2Jb7C3kPBs6HX45nA/R2bkaCJR1QTgomlfVbVvOmVxQJdU71cDFz2an+aY8MzG6C2FCxdmxYoVLFiwgN9//51bb72VIUOG0LdvX6pVq8amTZtYunQpTz75JPPnzyclJeVfJ11Ma9asWUyfPv3CcryJiYns3u0aMd2xY8eLkkh6HnroIRYuXIi/vz/Lli0DXAmufv36bNmyhYEDB1K2bJ5rWTTG66au3kts0kyK+zrp1f4lb4fjEXuyPT2XuXPITj4+PrRp04Y2bdpQr149xo0bR9++fWnZsiU///wzfn5+dOjQgb59+5KSknLR+uz/RlWZPHkyNWvW/Ef5kiVLLjmVfN26dZk8efKF9x999BGHDx8mOvrvnN6yZUtmzJjBX3/9xTXXXEOPHj2IioryKDZjCrLDp84y8qdp7K9wlvuK1sW/UBFvh+SRvHPvlM9t2bKFmJi/Rz6vXr2aypVd8+S0atWK4cOH07x5c0JDQzly5AibN2+mbt3LP7lapEgRTp48eeH9tddeywcffHBhTZHzTWaX065dOxITExk5cuSFsoSEhHT3rVGjBs899xxvvvnmv57XGPO3V6ZvoGyRr3EAvZo/5+1wPGZ3JLnEqVOneOSRR4iPj8fX15dq1aoxatQowLUGyIEDBy70PdSvX5/SpUtzuedmANq2bcuQIUOIioriueee46WXXuLxxx+nfv36qCrh4eHMmDHjsucQEaZOncoTTzzBW2+9RWhoKMHBwZdMFgMGDGDo0KHs2LGDKlWqXMF3wpi86/DhzSxY8znrDq1l/Zn9OIDGhSsTGtiYkmVvpHPDyIv6PmZvPEDcjlHEVDzBf4KqUrZcQ+8Enwk2jbybTWHuffZ/YPKyhFMH6fFte+J8oIhTqesI5ExyCpsc5zjnEIqlOKl5vBFXN36F6xtWoHAhX5KSlV7vfcHpMu9QVnz5us/CXN2sdalp5O2OxBhjssCIn/sR5wMjat9Pi8YP0nfcShbGHKJeWR96VF/Pr/u/YmmJ1Rzb2JMpczuyK7EBp5xFia78AUdFeKvNu7k6iVyOJRJjjMmkTVumMf70Vm4OqEDLJo+ydMdR5v91iP/rWIOH21VD5Dr6pjzO1N8H8s6enzle+RfgF8qnONns4+Dl8p2IqHLRNIN5hiUSY4zJhJTkcwxe9AohCo93/hSAD36LoVRhf+5rGXGhL9Ph40vPDkNpH/8wKzZ+y44jm9hxcg+lA0pwU3vPRmDmNpZIjDEmEyb++gTrHcm8FX4zxYqFsWr3MRbEHGZg51oE+l88ZUmxkHDaXf2MFyLNPjb81xhjrtDpU/v5aN88mhPIdS1dc8d+8NtWQoL8uKNZzixzmxtYIjHGmCv07dwXOOEQHr3qacThYP3e4/y2+SD3tqhC4UIFp8HHEkkukpumkY+Pj2fEiBGX3G5Ty5uCLvHMMcYdXEJzAomscwsA782JoUiAL3e1CPducDnMEkkukVumkT/vconEppY3BqbOG8QRH+H++q45aBfEHGL2xgP0bxVB0QA/L0eXsyyR5BLenEZ+w4YNNGnShKioKOrXr09MTAwDBw5k27ZtREVF8fTTT/8jVpta3hQEKU5l5vp9LNp6mKQU5z+2JSUlMCZuLlHqR3SDuzmX7OTl6RuoXDKI+1pGeCli7yk4jXgeeHPpm2w+ujlLz1mrRC2ebfLsJbd7cxr5jz/+mMcee4zbb7+dc+fOkZKSwpAhQ1i/fj2rV6++KFabWt7kd4u2Hea16avwOf0ThxOrcNq3Jm1rlaZF1VI0DAth/frXiPOBF2r9B3E4+Gz+NrYfOs2Yu6/y2uJS3mSJJJfw5jTyzZs35/XXXyc2NpaePXtSvXp1j85rU8ub/MLpVJ7/8hPijn3NiWJHOF7CgY8qzc+FsG3HDWzeEk/pkPnEFD1KRIoPZ4NvY/eRBN6fE0PHOmVoW7O0t6vgFZZI0nG5O4fs5K1p5GvXrk3Tpk358ccfufbaaxk9evSFZrP02NTyJr+a/MdsfnV+iDMEWvsUp0uVLqzc9yeTdTtnyn8BwBGn0jCpKPsO38z941fiEPDzcTCoWx3vBu9FOZZI3Mvkpl6TPQIYBDQHzn+yhQDxqhqVzvEhwGggElDgHlVdLCJvA9cD54BtwN2qGp8tlchGW7ZsweFwXLgbSDuN/J133smdd955YRr5/fv3X/E08h988AEiwqpVq2jYsCHbt28nIiKCRx99lO3bt7N27VoaNGjwj2NTa9euHc8//zwjR47kgQceADI2tfyECWlXWDYm90hxKjPXvkZKMExt9ymVw5oDriVd+x3dxpQ/XicksAQdmzxBkaIVSEpxMv+vQ/ywJo6rq5WiUokg71bAi3Kss11Vt6hqlDtJNAYSgCmqemuq8snA95c4xXvATFWtBTQANrnLZwORqlof+AvIe5P545pG/q677qJOnTrUr1+fjRs38sorrwDpTyNfv379DE0jv3Hjxgud7S+99BJJSUnUr1+fyMhIXnrJtQrbxIkTiYyMJCoqis2bN3PnnXdSsmRJWrRoQWRk5EWd7eenlp83bx5VqlShSZMm3HXXXZedWn7+/Pns2LEjk98lY7LPdwtnszL4KB2l7IUkcl7xElW55/rP6dlhKEWKVgBcdyHta5dh+G0N6RWdsRGW+ZVXppEXkU7Ay6raIlWZALuBdqoak2b/osAaIEIvE7CI9ABuVtXbL3d9m0Y+d7L/A+MtKU6l38jWrAw+yoyOY6lQ4bKrehdYl5pG3lvDf28D0rZztAQOpE0ibhHAIWCMiKwSkdEikt7asPcAP6d3QRHpJyLLRWT5oUOHMhO7MSaf+W7BrAt3I5ZEPJfjiURE/IHuwKQ0m3pzcXI5zxdoBIxU1YbAaWBgmvO+ACQDX6V3AlUdparRqhodGhqaiRoYY/KTFKcya/3rADzWYYiXo8mbvHFH0hlYqaoHzheIiC/Qk392xqcWC8Sq6vk5Q77DlVjOH38X0A24/XJNX/+mIK4WmVvY9954y8S501gZfJROdjdyxbyRSNK78+gAbFbV2HT2R1X3A3vcI78A2gMbAUTkOuBZoLuqpj90KAMCAgI4cuSIfaB5gapy5MgRAgICvB2KKWBSnMpPW17DX5Unrxvu7XDyrBx9jkREgnCNpuufZtNFfSYiUh4Yrapd3EWPAF+5m8a2A3e7yz8ECgGz3aOY/lTVAXioYsWKxMbGYv0n3hEQEEDFihW9HYYpYMb8+CZrgs5yu18DypSJ9HY4eZZXRm15W3qjtowxeVdyUiJ/rBhBpTJRhIe1wuHz738jJ549Tc8vmpIsMP32RQQEFs2BSPO2S43asifbjTF53rtTb+WLhO2wBYo6lfqOwrQs05j2DftTpkx91Olk954/+GvPAkoUqUB4heZ8PvsN9vgLj4T0tCSSSZZIjDF52sz5/+WLhO3c5F+OBqENWHVwDcvP7GPhgfn8b+Z8qqc4OCApnHCkeoB3tetL3URf7u06yCtx5yeWSIwxedbWbbMYtG0SUeLPCz2ncCBBGDFmGTEHT1G50DrCis7nTFAc9R0luLpSIxpVacmWuO38sn4JZ/QQPaOfwce34M3Wm9UskRhj8qRTJ/fxxLz/IwgY1uULthxO5u6xy0hMSuHr+5pSqURbth66h8XbjjB20U7mxgrdTpdj2pogigc1ZPitDWletaS3q5EvWCIxxuRJX855ip0+8HmDJzmYXIlenyymeJA/X93XlBpligBQqUQQbWuW5j/NKvPGT5uYtCKWtjVDGXpLA0oWLuTlGuQflkiMMXlOQsJhvj62htY+Rahd+066vb+AYoF+fP/g1ZQpevHzSJVKBDHyjsbExZ+hbNEAHI7LT3hqPGOJxBiT50yZN4h4h3Bv1EO8PG0Du48mMOH+ZukmkdTKhwTmUIQFi63ZbozJU5KSEhi3bz4N1Z/dzrZMXhnLw+2q0zTC+ju8xRKJMSbXyMgD0jMXvsE+H6Fz2Z68MGU90ZWL82i7ajkQnbkUa9oyxuQKI+du491f/6JRWAhXVy1F6xqhNKgU8o99nCnJfLZjOuFOeH5uJOVD/Bh+WxS+PvY3sTdZIjHGeN3uIwm8++tf1ChTmJOJybz761+8M/svrgovzsPtqtOqeik27jvBlDkD2eaj1D3YgHuuqc6THWsQXMg+xrzN/geMMV6lqrzywwaqBaykVZkV1CpVi8odW7PycDijFsZy1+dLKRrgS0XHHPaHLaD2OV+eue1tGoWX83boxs0SiTHGq2ZvPMD2HbNJrvw1X55xwJ4Y2PMDxZ3KvXWvIrDEY6zZtppFKT9S3ung015TKRZiSSQ3sURijPGaM+dS+HDGFCTsK/wRfmw7kqSkM2zY9Ts/7ZnDe8eWU+LIHQSoICKMaD+SYiHh3g7bpGGJxBjjNaNnzyax5Eecc8DYlkMJC7sGgKpVO9IdWL3uKz5cOZy1zjN80njghe0md/E4kYhIMJCoqikeHleTfy6lGwEMApoD51c+DAHiVTUqneNDgNFAJKDAPaq6WERKuM8bDuwEeqnqMU9iM8bkvHNJySzc8xzHCsFnTQZRvdp1F+0TVe92Rte7nXNnT+JfqIgXojQZ8a9j5kTEISJ9RORHETkIbAb2icgGEXlbRKpn5EKqukVVo9xJojGQAExR1VtTlU8Gvr/EKd4DZqpqLaABsMldPhCYo6rVgTnu98aYXG709GfZGJhMn+Cm1K9762X3tSSSu2Vk8PXvQFXgOaCsqlZS1dJAS+BPYIiI3OHhddsD21R11/kCca2T24uL13NHRIoCrYDPAFT1nKrGuzffAIxzvx4H3OhhLMaYHHY8ficTjs+k2lnhoRtHeDsck0kZadrqoKpJaQtV9SiuO4jJIuLn4XUvWqMdV2I6oKox6ewfARwCxohIA2AF8JiqngbKqOo+d0z7RKR0ehcUkX5AP4CwsDAPwzXGZKX//XAPpxzCLaUfx9/fZuHN6/71jiS9JHIl+5wnIv5Ad2BSmk29SeduxM0XaASMVNWGwGk8bMJS1VGqGq2q0aGhoZ4caozJQvOXvMuPzkPUjy/D7R1u93Y4JgtkuLNdRJ5Mp/g4sEJVV3twzc7ASlU9kOrcvkBPXH0n6YkFYlV1ifv9d/ydSA6ISDn33Ug54KAHsRhjcsjx47sZ/vP9fHc2jornlFKlB9maIPmEJxPURAMDgAruf/2ANsCnIvKMB+dJ786jA7BZVWPTO0BV9wN73CO/wNXHstH9ejpwl/v1XcA0D2IxxmTSjp1z2fLXjMvuM2vBa9wwuQvfJ+6lq1Zk1/bn6dOifg5FaLKbJ8N/SwKNVPUUgIi8jOvOoBWuPou3/u0EIhIEdAT6p9l0UZ+JiJQHRqtqF3fRI8BX7qax7cDd7vIhwLcici+wG7jFgzoZYzJhycpRPLLmfc44hGsWv0b/xo8SFdnnwvbjx3fzxow7+Sn5CHXElzejXqL/9CLUrVyYRmEh3gvcZCnJyLTNACKyCWigqufc7wsBq1W1toiscvdd5AnR0dG6fPlyb4dhTJ7226K3ePqvLwhzOri2ZH2+PrqaYw4hIkWo6BtMGf9izEuI5agD+oU04P6un/HYtxuZvfEAPz12DdVK25DevEZEVqhqdNpyT+5Ivgb+FJHzTUfXAxPcDyhuvPRhxpj85sufnmfYwenUSPHl0WZj8QmoRLEDsWz660326TYOJiewNuUkZcSH95sOom7tm5i5fh8/rtvH09fWtCSSz2T4jgRARBoD1wACLFTVPPlnvd2RGHPlduz9i96zelDurA9/7X6W086QC9scAk4Ffx8H10aW5bq6ZSkXEkDRAF9uG7WEMkULMfWhFvjZ+iF5UqbvSNwPDNYGiqnqYBEJE5Emqro0KwM1xuRuH/z4BAn+wr31XiSsWyeOnD6Hn8NBpRKBlA8JZPuh00xYupvvV8byw5q4C8f5OoRx91xlSSQf8qRpawTgBNoBg4GTuB5IvCob4jLG5EIL1q9god9OmiUVo1uLXunuU7NsEV7pXpeBnWux7dApDpxIZP/xs5QPCaBu+WI5HLHJCZ4kkqaq2khEVgGo6jH3CCpjTAGQ4lTGz3uWs8HCo61f+df9A/x8qFu+mCWPAsCTe8wkEfHBNfMuIhKK6w7FGFMAfPH7b6wI2k8bLUFkjU7eDsfkIp4kkveBKUAZEXkdWAi8kS1RGWNylQMnEpm34VWSBZ5o95q3wzG5TIabtlT1KxFZgeupcoAbVXXT5Y4xxuQNCeeSCfTzwTWm5mJDJn3FmqKH6exbhvDKrXI4OpPb/WsiucQcWwCdRaSzqr6TxTEZY3LI8TNJfDxvG58v3EHDsBA+7NOIUmnmv/p53T72JY7AP0h5stP7XorU5GYZadoq4v4XDTzA33NtDQDqZF9oxpjs9MW8P+ny9neMnBvDNdVKsWp3PN3eX8jK3X8vMHo8IYkvZw5lQ+Fz3FcymtDSdb0YscmtPJkiZRZwk6qedL8vAkxS1YvXx8zl7IFEU1AtWTmKOTHTWHJ6D9t9XL/7vqoUd0LrQpVZsPdedh0PoEW1UgT5+xB37ARnCz2C+gjT+iykUICNwCrIsmKKlDDgXKr353Ctk26MyQPWbZjEfes+INCp1EguROP4slxTrRynkuLZc+YAk5N2EVpqELeU7MCWk+04k7yHUN8f+dNfGF79Dksi5pI8SSRfAktFZAquIcA9+HuJW2NMLqZOJ8OXvUkJVT7r9APXfbSJu64O575uf7dOr9swicFLX+MHnzlQbM6F8mYE0q7Z094I2+QRnozael1Efsa1JC7A3aq6KnvCMsZkpcUrP2apnGVgmZZ8uyYRBe5uEf6PferVvYUJNa7nh3kvEZ94lJJBZShRuBzR9e5AHDatibm0jIzaEnV3pKjqSmDl5fYxxuQuzpRkhq8bRQWFa69+nTbvLKNrvXJULB500b6+fgH06PC2F6I0eVlG/sz4XUQeEZGw1IUi4i8i7URkHH+vUGiMyWVm/fEGmxwpPFSlO9+vOcaps8nc3zLC22GZfCQjTVvXAffgWnukChAPBOJKQrOAdzOyZrt7mdyJqYoigEFAc+D8ErohQLyqRqVz/E5cE0WmAMnnRw6ISBTwMRAAJAMP2ozExrgkJSXw4dZJVBMH7Zu/SPt3F9E8oiT1KlrHuck6/5pIVDUR18y/I0TEDygFnFHVeE8upKpbgCgA95xde4Epqjr8/D4iMgw4fpnTtFXVw2nK3gL+q6o/i0gX9/s2nsRmTH71zewn2OUDH9Xqy4Tl+9l3PJG3bra10k3W8qgHTVWTVHWfp0kkHe2Bbaq663yBe72TXqRZuz0jYQFF3a+LAXGX2deYAuPI4b8YceAPWhBE/cgH+eC3GFpWL0XL6qHeDs3kM54M/81Kt3FxwmgJHFDVmEsco8AsEVHgE1Ud5S5/HPhFRIbiSoxXp3ewiPQD+gGEhYWlt4sx+coHsx8mUeDZ1m8ycv52jp9JYmDnWt4Oy+RDOT6mz72GSXdgUppNvbn83UgLVW0EdAYeEpHzM8c9ADyhqpWAJ4DP0jtYVUeparSqRoeG2l9kJm86fiaJT+Zt4+DJxMvut2Hz93x/No7bg6vhH9KUMX/spEfDCrY2iMkWniy1e6+qpvsh7aHOwEpVPZDq3L5AT6DxpQ5S1Tj314PuhyKbAPNxjRh7zL3bJGB0FsRoTK6T4lSe/Go2SSeH8tvGeOILneOoQNeA8gxo8yZlyzUE4MCBtbyx+DVKKAy4biSDft4CwP91qnm50xtzxTxp2homIrfjGhm1FJigqhuu4Jrp3Xl0ADaramx6B4hIMOBQ1ZPu151wLfcLrj6R1sBcXMsAX6ppzJg8bdisLZw98yrrip8kPEkolRBEuL8/0ySOH375D10LlWXH2aOsliRwwDOhXXn8+1h+3XSQ/q0jqBAS6O0qmHzKk0RyBHgN8Mc1+upbEXlfVT/J6AlEJAjoCPRPs+miPhMRKQ+MVtUuQBlginutBF/ga1Wd6d71fuA9911NIu5+EGPyk5/W7WPR8g/ZVukU9xepzYDuE/ngtxhGzN1GGd8YIkK/YTr7qZwktHdWJcXRmUELKlKk0FGevramPTdispUns/+udPdRnH8fCCxR1Tw3ltBm/zV5yY7Dp7nlg2kUC3udwuLDt30WXJhA8djpc6yOjWfNnng2xB7m2Bk4mZjMmaQUutUvR/9WVSkW5OflGpj8Iitm/z1/omdxPUtSDNcDgsaYbPTx3G3UKTmC1T7CO9HP/2MW3uLB/rStWZq2NUsDNbwXpCnQrmTU1mRgK1ARW7PdmGx1+NRZNm8ez6pix/lPcFUaRN7m7ZCMuYgndyTFRaSSqm4FtorIp8Aq4MfsCc0YM37Rdgj9mdIpykNds2LQpDFZz5NEUhSYKyKHgY245sVKyY6gjDGQmJTCqrVvsz0UXq3YlaCgUt4OyZh0eZJI2gLrgaa4JllU7G7EmAxTp9OjdT2mLo9hb8gSqiX7cH3rV7MxMmMyJ8M/1aq6VlWdqrpYVceq6rh0JlA0xqRj6KQb6Ti2Ppu3TM/Q/qrKvOUvcMDPwVP1++Pj65/NERpz5WzZM2Oy2dQ5zzIuYRvHHHDPoudZtXb8vx4zafES1gRvJjo5gBZXPZQDURpz5SyRGJONNmyazKt7fqQpAUzrMJqSKvRbMYTpc4eSmJR+F+M38+fwxfr7OeMQnmrxcg5HbIznPHkg8WHgK1U9lr0hZT97INHkhKNHt3Lr1BsRYOKN0yheoiqHD2/h3qm3sN1PqXcyAD3bm5Ll2hBduThNqpRk0ZofmbD3NU76wJu1+tO2+aPeroYxF2TFA4llgWUishL4HPjF1mk35tKG/zKAow74stlrFC9RFYDvN/qybfszdI74hvnBOzhT+HPqHB/PL6sd/LJa2RWYiJ8DPm3yKg3q9vRyDYzJGE86218EquOapr0vECMib4hI1WyKzZg868TxPfycuJ/uARWoU+tGABZtO8yQnzfTqm5t3rr3B2beMJ2+RWpwplAyCYHnOBOQRA0NZGz70ZZETJ7i0RQpqqoish/Yj2sW4OLAdyIyW1WfyY4AjcmLflz8JokO4eYo1/yk+46f4ZGvVxERWpi3bm6AiFC8RFWevOl7nvRyrMZklifrkTyKa+2Pw7jW/HhaVZNExIFr6nZLJMbgel5k0r4F1MGHurV64nQqT05cQ2JSCh/f0ZjChby1MKkx2SNDP9Hu9dQbAD1Tr7MOoKpOEemWHcEZkxet2zSJGIeTQeU6APD10t0s3n6E//WsR7XShb0cnTFZL0N9JO5O9YZpk0iq7ZuyNCpj8rBJaz4l0Kl0ufpZ9hxN4H8/baJl9VLcdlUlb4dmTLbw5B57sYhcparLruRCIlITmJiqKAIYBDTHNeUKuObvilfVqHSO34lr2voUIDn1EDQReQR4GFe/zY/WX2O85eSJvcw8u5+uAeUJCi5Dv2+WICIMuak+7oXZjMl3PJ1ra4D7A/00ILhuVjK0sJWqbsG1siIi4gPsBaao6vDz+4jIMOD45WJIOy2LiLQFbgDqq+pZESmd0QoZk9V+WPQGiQ6hZ4P+DJv1F39sPcIbPerZMrcmX/MkkXTOwuu2B7albipz98P0wrXuuiceAIao6lkAVT2YZVEa44GdO+fxwb55NFB/XphThnV7t3JjVHl6N7EmLZO/eZJI7rpE+eAruO5Fa7QDLYEDqhpziWMUmCUiCnyiqqPc5TWAliLyOq41259Kr/lNRPrhXs89LCzsCkI2BdnJxCTemrmFE4lJ3HtNFepXDPnH9oSEwzzx2yP4oOzYeQ9n/c/wUZ9GdKlX1pq0TL7nSSI5nep1ANAN8LiTXUT8ge7Ac2k29ebi5JJaC1WNczddzRaRzao6H1cdigPNgKuAb0UkIu1T9+7EMwpcU6R4GrcpuNbGxvPIhFXsOXqKIv4wbXUcLaqV5I6mlWkWUZKQQF9e+u4mtjmcVIntQHidFrxyfV2KB9uMvaZgyHAiUdVhqd+LyFAgY3Ni/1NnYKWqHkh1Ll+gJ9D4MtePc389KCJTgCbAfCAW+N6dOJaKiBPXmvKHriA2Y/5hwtLdDJq2njpFt1Gi+qfsdDhpmOzA92wwE34N5Gufs6T4J7Iu8BzRxypzU/dn6Va/vLfDNiZHZebJqCBcI688ld6dRwdgs6rGpneAiAQDDlU96X7dib+b1Kbi6leZKyI1AH9cD00akym7jyTw8rQNdKm4gOUBPyBA7+CqbE/YzxbHSU4GnSRYlSCn0CqxNC/0nUj54vaciCl4PHmyfR2ufgoAHyAUD/tHRCQI6Aj0T7Ppoj4TESkPjFbVLkAZYIq7rdkX+FpVZ7p3/Rz4XETWA+eAu2wySZMVhszcRPMSo5gbGENV9eH9jp9QsWIzb4dlTK7jyR1J6qfXk3F1jCd7cjFVTQBKplPeN52yOKCL+/V2XE/Wp3fOc8AdnsRhzL9Zsm0/pw49yapSR2nnKMb/ekwhqLCNLDcmPZ70kaT7VLsx+U3C6aN8NLs7q4qf4fbAKjxz0/c4fGx+LGMuJcPTyIvIOBEJSfW+uIh8ni1RGeMlGzZ/z3++acvqgATu8GvIwF7TLYkY8y88+Q2pr6rx59+o6jERaZj1IRmT804c38OHMwcw8cwuiqG0ONmOpx9639thGZMneJJIHCJS/PxSuyJSwsPjjcmVThzfQ+/JXYh1KC3PlWbB7rt56IHuOBz2IKExGeFJIhgGLBKR73CN3uoFvJ4tURmTQ9TpZND024hzKE+VvZeX5tbg0fbViaxQzNuhGZNneLIeye/AclzPbAiutUk2ZmNsxlwxdTrZ+NdUflg7hnmndtIyOIynbvwG/0JF/rHf1788xBznCR4t0ZT3V9SjdrlCPNy2mpeiNiZvylAicS+xO1VVGwOWPEyulpBwmPsndmStIxk/Veo7ApiQuJt1X7di2LWfUr68awWCdRsmMfTAAlpJEf482o9jp48w9u6r8PfN8BgUYwyeNW39mZn1SIzJKV/9+iRrHck8HdqcG1q8SLFiYcz5Ywgv/jWeXr/0pY4jiLiUM+x1KKVSYG3cg+xNOMwLXetQt7w1aRnjqRxbj8SYnHA8fidjjqykjU9R7uwy6kJ5iyZP8/DZGszY+iqHSKREciClk4uw9fB1lK9QjU+ur0ud8kW9GLkxeZe31iMxJlt8NudJTgk8evUgAJJSnHzw21bG/7mLo6cLEV7yHepWKIa/jwM/H+GWtqW5LtKmejcmMzxJJLuB24EIVR0sImFAWcCeeDe5woEDa/n6xF908y9N9WrXcSIxiYe+WsmCmMN0rFOGu5qHc3XVkjas15gs5kkiGQE4cY3aGoxr/fTJuNYAMcbrPv79aVIEHmz9BnuOJnDP2GXsOHyat26uT69oW6XQmOziSSJpqqqNRGQVXHiy3VbuMbnClpgfmZK4l1sCKvPjtlA+nreQFKfyxb1NuLpqKW+HZ0y+5kkiSRIRH9xTyYtIKK47FGO8KiX5HK8sfJGiqvwScxu7V2+mZfVSvNK9LlVDbX0QY7KbJ4nkfWAKUMa9PvrNwEvZEpUxHhj/y8OsdyRTO+4qAivUZHiH6jQKK+7tsIwpMDyZRv4rEVkBtHcX3aCqm7MnLGMyZs+exXx4cBF1zvhTLvxR3r2toY3AMiaH/WsiEZG067Kf/y29VkRQ1e4ZuZCI1AQmpiqKAAYBzYGa7rIQIF5Vo9I5fieuDv4UIFlVo9Nsfwp4GwhVVVtqtwBIST7HK78+igPFN/kxhtzcwJKIMV6QkTuS5sAeXEvhLuHvROIRVd0CRAG4+1r2AlNUdfj5fURkGHD8Mqdpm16SEJFKuJbw3X0lsZnc7WxyCst2HCMiNJjyIYEA7D+0leen92aZbyJXHYnktXt6EeDn4+VIjSmYMpJIyuL6kO4N9AF+BCao6oZMXLc9sC31qovuiSF74Rpe7Kl3gWeAaZmIyeQyZ5NT+HZ5LCN+38q+44kAhJUIIrrEStbwOcd8hSZH6/PgTR9eSDDGmJz3r4lEVVOAmcBMESmEK6HMFZHBqvrBFV73Nlx3OKm1xLUOfMylQgFmiYgCn6jqKAAR6Q7sVdU1l2vWEJF+QD+AsLCwKwzb5JSNcSe4/4vl7I0/Q+PKxXmpWx12bJvK6gPjmet7nOIpwouV/48b7uyLjz1gaIxXZXQa+UJAV1xJJBzXCK7vr+SC7mdPugPPpdnUm4uTS2otVDVOREoDs0VkM65p7V8AOv3bdd2JZxRAdHS0XknsJmfsO36Ge8a65gYde1cUZw9/zrjl37POkUyQv3JTYBgPdHyfEiVsundjcoOMdLaPAyKBn4H/qur6TF6zM7BSVQ+kuoYv0BNofKmDVDXO/fWgiEwBmgDHgCrA+buRisBKEWmiqvszGafJAefOnmTJmjHUrdaFEiWqcTIxibvHLMORFMt9DVcwbPHj7PSBMIXnyrSie4sXKVyknLfDNsakkpE7kv/gmu23BvBoquaj87P/ejplanp3Hh2Azaoam94BIhIMOFT1pPt1J2Cwqq4DSqfabycQbaO28gZ1OnlxUjd+TjmKbBxFbfWl2Nki+AbFc7I4vHsMaosPwyJupn3zZ/DxtYkUjMmNMtJHkmWr/IhIEK6O+/5pNl3UZyIi5YHRqtoFKANMcScxX+BrVZ2ZVXEZ7/ji5/78nHKUO4MiKOpflN8PrWdtoaPUcAbQvXgdmkZ0pX6dXojDFpoyJjfz5Mn2TFPVBKBkOuV90ymLA7q4X28HGmTg/OGZDtLkiEXLR/DOocV09AnhqZum8Ptfh/jf4uXc3jSM13vU83Z4xhgP2J96Jsft2rWAZ9aNIMLp4LUe37P/5Fn+79s11C5XlJe61fF2eMYYD1kiMTlq4+ap3PnbAwjwXocR+AeW4tEJqziX7OSjPg3toUJj8iBLJCbH/LniE+5e/CKFFMa1eZ+Q0k3p/+UKlu08xhs96xFhM/UakyflaB+JKVgOH97MH2vHsuPYVnYm7GNeynHC8eHjrl+S4FOVHh/9wa4jCbx6Q11uiKrg7XCNMVfIEonJcjFbZ/LlsqHMOLufJBF8VanodNAloDTPdB3L2oOBPPTVQnx9HHx5b1OaV71o/IUxJg+xRGKyjNOpPDf2en7y2UWAU+kZFMYtjR4iIrwtfn5BAExYupsXpy6jeunCfHpnNJVKBHk5amNMZlkiMVni9NlkXhrTm9mBu2h4oghbjz1As5s7UbN6GQCSU5wMnfUXH8/bRqsaoXzUpyFFAvy8HLUxJitYIjGZFnssgde+fJg/im3mmuQiDOw9k4cmrOG+L5bTpV5Z9h9PZOO+EyQmOenTNIzB3evi62PjPIzJLyyRmExJcSqvjv8vS4supVFKAO/d8Qv+hYrw3YCrGTxjIz+t20f10oXp06QyzSJK0LFOGVt8yph8xhKJyZQxv81lU9AMwlJ8+KjXD/gXKgJAgJ8Pb/Soxxv2lLox+Z4lEnPFYo+eZs5fT3E6UBjd8i2bldeYAsoaqs0VUVXe/fYB1gefo1/xZtSodp23QzLGeIklEnNFvp07hfmFVtIwyZ/7r//Y2+EYY7zImraMx2Ys/IZPtr+Kn8CQLp/h8LEfI2MKMvsEMB6Z8MurvBv3DcHAu43/S/nyUd4OyRjjZTmWSESkJjAxVVEEMAhoDtR0l4UA8aoalc7xO4GTQAqQrKrR7vK3geuBc8A24G5Vjc+OOhRkJxOTGDXtPsadWUFEkg9DOo6jVpWG3g7LGJML5FgiUdUtQBSAiPgAe4Epqjr8/D4iMgw4fpnTtE1nGd3ZwHOqmiwibwLPAc9mYegFVmJSCh/9vpUZa/dSyec1VpU4RFRCEK/0mErVcuW9HZ4xJpfwVtNWe2Cbqu46XyCup9R6Ae08OZGqzkr19k/g5iyJsIBbtPUwz09Zx+4jJ+gYPoxFgcfoKmUZeNdUQoKDvR2eMSYX8VYiuWiNdqAlcEBVYy5xjAKzRESBT1R1VDr73MM/m88uEJF+QD+AsLCwKwo6v5mz6E0W75lHbOIR9qacIdy3MPc1foqJf1Xn6yW7uTp0FZVrTGWRz1nuL1KLR26caOunG2MuIqqasxcU8QfigLqqeiBV+Uhgq6oOu8Rx5VU1TkRK42rOekRV56fa/gIQDfTUf6lUdHS0Ll++PAtqkzelJJ9j+NRbGXt6K0WcSkV8KecbzPLk45xwCJGnChHs78MS/wSKOZVHK3SgV6fh3g7bGONlIrLifP90at64I+kMrEyTRHyBnkDjSx2kqnHurwdFZArQBJjvPv4uoBvQ/t+SSEF3+tR+nv2+B/P0FH0CK/N0j+9w+BTi+1V7+fOHBVwVMpYNxfYiwIPF6vOf9sPsiXVjzGV5I5H05uJmrQ7AZlWNTe8AEQkGHKp60v26EzDYve06XJ3rrVU1IfvCzvvij+3gvqk3slVSeLFcO3p1eo85mw4ydNYWNu8/SePKlXmt91RCfE8CEFS4tJcjNsbkBTmaSEQkCOgI9E+z6aI+ExEpD4xW1S5AGWCKe9ZYX+BrVZ3p3vVDoBAw2739T1UdkG2VyKOOH99Nv6k92CEpfFinP0XL/4ebP17Mil3HCC8ZxHu3RXF9/fI4HAIEejtcY0wekuN9JLlBQesjOXliL/0md2OLJPFG1Xv47UB7Jq2IpWRwIf6vUw1ublwRP1sfxBjzL3JTH4nJQWs3TOS1pf8jRpJ5Oex2Xppfn/iEvfRrGcHD7arZKoXGmEyzRJJP7dq1gPfmP89sZzwlUN6IuINhy5tzNimRaQ9dQ53yRb0dojEmn7BEkg+cOZfCD2vjmLZ6L7dFV+T0/jd5e//v+Cg8EFKP29oOY8DEXew+Es+X9zaxJGKMyVKWSPIwp1MZNnsL4//czfEzSZQJOMqEsw+zrvBZrpHCDO7yGUWK1+LJb1ezdMdR3u/dkKYRJb0dtjEmn7Ee1jxszKKdfPT7NppFlGB454OEhL3JpuBEoo9E8MS1MznjU4WbRi7ip3X7ebFrbbo3sPmxjDFZz+5I8qiYAyd5c+Zm2tcqRfsy4xm841dKAcPrDOT/ZpWh75gVnDqbDMBnd0XTvnYZ7wZsjMm3LJHkQUkpTp74djUlCiUS6vscr+47RAsJZkiPbwgpXoXR5eK5bdRiqpUuzMjbG1OpRJC3QzbG5GOWSPKgD37bytFDKylf+XN+THEyoGgkA64fh4+vPwBRlUL449l2FA30s+dDjDHZzhJJHvPH1sPMX/oREv4r+0X4sOY9tG725EX7lSxcyAvRGWMKIkskecj2gyf57Ie+7KiwkwinD++1H0FY2DXeDssYU8BZIskj9h2K5eXJPVhdIpEOUpzXb55skyoaY3IFSyR5QNz+ddw/ow97A5V7gxrz2E1jbIEpY0yuYZ9GudzR+D0MmNGHQz5OHih+J4/fMs6SiDEmV7FPpFzsdMIxHpzUnT2+yu2F+9D/hme8HZIxxlzEEkkudeZsAg+Pv5YN/sn08e/AY7e84O2QjDEmXZZIvESdTlasGccz41vT8fNIvv/1qQvbjp44woCxbVhe6Ay9HA15us9w7wVqjDH/Isc620WkJjAxVVEEMAhoDtR0l4UA8aoalc7xO4GTQAqQfH5xFREp4T5vOLAT6KWqx7KhCllm4+apvLj4ZWIcToo4lYriy8t7f2HDN+u5o+X7PDfjVjYEJHO7X2MG9hnr7XCNMeayvLJCooj4AHuBpqq6K1X5MOC4qg5O55idQLSqHk5T/hZwVFWHiMhAoLiqPnu563tzhcTV67/mwWVvEKzwYFhnrrv6Ofz8gnh/eh/GnIqhkFNJFuhftCMP9HzXKzEaY0x6ctsKie2BbWmSiAC9gHYenusGoI379ThgLnDZROItS1eN5uHVwwlVYfR1YylXvvGFbb3ajWf9mMfZV2QR/6nUiz7XDfJipMYYk3HeSiS3ARPSlLUEDqhqzCWOUWCWiCjwiaqOcpeXUdV9AKq6T0TSfUpPRPoB/QDCwsIyG79H1Olk6u8DeX33T1RUB592m0Bo6boXtsfFn6H3p38Sn3ATX/d6m3oVi+VofMYYkxk53rQlIv5AHFBXVQ+kKh8JbFXVYZc4rryqxrkTxWzgEVWdLyLxqhqSar9jqlr8cjHkZNPW/v2r+e8vA1jIaWomOpDE5wgsEkHxID98REBg6Y6jHE9IYvx9TWlQKSRH4jLGGE/lpqatzsDKNEnEF+gJNL7UQaoa5/56UESmAE2A+cABESnnvhspBxzM1ug9MPfPYTy/aQxJQIPDNTgV+BjFiwZy9PQ5dh4+jVMVVSgS4MsHvRtaEjHG5EneSCS9ubhZqwOwWVVj0ztARIIBh6qedL/uBJzvkJ8O3AUMcX+dli1Re2j6b88zaPd0wpMdHNrTlwYtuvBkx5r4OMTboRljTJbK0UQiIkFAR6B/mk0X9ZmISHlgtKp2AcoAU1z98fgCX6vqTPeuQ4BvReReYDdwS/bVIGO+/Kk/bx1aRO1EX7btG8hrt7Smc71y3g7LGGOyRY4mElVNAEqmU943nbI4oIv79XagwSXOeQTXKLBc4dPpd/L+sVXUO12I3cdeYly/NkRWsM5zY0z+ZbP/XiFVZffRBPbGn2FffCJx8WeI3fEiP/ltpMHJII4kvc6kh1tQrligt0M1xphsZYnkChw9fY5HJ6xi4da/n41sUfIz1paOodGZICqW+4iRXRtQJMDPi1EaY0zOsETiofV7j9P/yxUcOnWWgZ1rUb9CMbZs+i/vHI2hrRRl2L2z8fML8naYxhiTYyyReGDKqlgGTl5HyWB/vhvQnPoVQ/hm5iO8c3QuraQwQ2+daUnEGFPg2Oy/Hti7ZzYdyi1mbJ+S1CtflK9+fpDXD8yljRTh3Vtn4V+oiLdDNMaYHGd3JB44cvob5heOY/7cKQQ5lQSH0N5RlLd7zcKvULC3wzPGGK+wROKBB9oNo+Pueew8spFdJ3ZR1K8I/bp9Zs1ZxpgCzRKJB0qXiaR0mUiu9nYgxhiTi1gfiTHGmEyxRGKMMSZTLJEYY4zJFEskxhhjMsUSiTHGmEyxRGKMMSZTLJEYY4zJFEskxhhjMkVU1dsx5DgROQTsusLDSwGH/3Wv/MXqXDBYnQuGzNS5sqqGpi0skIkkM0RkuapGezuOnGR1LhiszgVDdtTZmraMMcZkiiUSY4wxmWKJxHOjvB2AF1idCwarc8GQ5XW2PhJjjDGZYnckxhhjMsUSiTHGmEyxROIBEblORLaIyFYRGejteLKaiFQSkd9FZJOIbBCRx9zlJURktojEuL8W93asWU1EfERklYjMcL/P13UWkRAR+U5ENrv/v5sXgDo/4f65Xi8iE0QkIL/VWUQ+F5GDIrI+Vdkl6ygiz7k/z7aIyLVXel1LJBkkIj7AR0BnoA7QW0TqeDeqLJcM/J+q1gaaAQ+56zgQmKOq1YE57vf5zWPAplTv83ud3wNmqmotoAGuuufbOotIBeBRIFpVIwEf4DbyX53HAtelKUu3ju7f7duAuu5jRrg/5zxmiSTjmgBbVXW7qp4DvgFu8HJMWUpV96nqSvfrk7g+XCrgquc4927jgBu9EmA2EZGKQFdgdKrifFtnESkKtAI+A1DVc6oaTz6us5svECgivkAQEEc+q7OqzgeOpim+VB1vAL5R1bOqugPYiutzzmOWSDKuArAn1ftYd1m+JCLhQENgCVBGVfeBK9kApb0YWnYYDjwDOFOV5ec6RwCHgDHu5rzRIhJMPq6zqu4FhgK7gX3AcVWdRT6ucyqXqmOWfaZZIsk4SacsX46dFpHCwGTgcVU94e14spOIdAMOquoKb8eSg3yBRsBIVW0InCbvN+lclrtf4AagClAeCBaRO7wblddl2WeaJZKMiwUqpXpfEdetcb4iIn64kshXqvq9u/iAiJRzby8HHPRWfNmgBdBdRHbiaq5sJyLjyd91jgViVXWJ+/13uBJLfq5zB2CHqh5S1STge+Bq8nedz7tUHbPsM80SScYtA6qLSBUR8cfVSTXdyzFlKRERXO3mm1T1nVSbpgN3uV/fBUzL6diyi6o+p6oVVTUc1//pb6p6B/m7zvuBPSJS013UHthIPq4zriatZiIS5P45b4+rDzA/1/m8S9VxOnCbiBQSkSpAdWDplVzAnmz3gIh0wdWe7gN8rqqvezeirCUi1wALgHX83V/wPK5+km+BMFy/kLeoatoOvTxPRNoAT6lqNxEpST6us4hE4Rpc4A9sB+7G9Ydlfq7zf4FbcY1OXAXcBxQmH9VZRCYAbXBNFX8AeBmYyiXqKCIvAPfg+p48rqo/X9F1LZEYY4zJDGvaMsYYkymWSIwxxmSKJRJjjDGZYonEGGNMplgiMcYYkymWSIzJBBEpKSKr3f/2i8he9+tTIjIim675uIjc+S/7fCMi1bPj+sakZcN/jckiIvIKcEpVh2bjNXyBlUAjVU2+zH6tgTtU9f7sisWY8+yOxJhsICJtUq1t8oqIjBORWSKyU0R6ishbIrJORGa6p6VBRBqLyDwRWSEiv5yf1iKNdsBKVU0WkaoisjLVNauLyPk5wxYAHdyJx5hsZYnEmJxRFddU9TcA44HfVbUecAbo6k4mHwA3q2pj4HMgvZkTWgArAFR1G3Dc/ZQ6uJ5OH+ve5sQ1LXiDbKqPMRfYXyvG5IyfVTVJRNbhmmJnprt8HRAO1AQigdmuqaDwwTXdeVrl+OcCXKOBu0XkSVzTf6ReT+IgrpluC9LMxsYLLJEYkzPOgutOQUSS9O/OSSeu30MBNqhq8385zxkgINX7ybjmU/oNWKGqR1JtC3Dvb0y2sqYtY3KHLUCoiDQH13T+IlI3nf02AdXOv1HVROAXYCQwJs2+NYAN2ROuMX+zRGJMLuBevvlm4E0RWQOsxrVeRlo/41omN7WvcC1INOt8gYiUAc6cXxnPmOxkw3+NyWNEZArwjKrGuN8/BRRT1ZdS7fMEcEJVP/NSmKYAsT4SY/Kegbg63WPcSaUqrmHBqcUDX+ZwXKaAsjsSY4wxmWJ9JMYYYzLFEokxxphMsURijDEmUyyRGGOMyRRLJMYYYzLl/wFeaAdkiqK5SQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] diff --git a/python/swiftest/swiftest/io.py b/python/swiftest/swiftest/io.py index 189bfac18..14f137838 100644 --- a/python/swiftest/swiftest/io.py +++ b/python/swiftest/swiftest/io.py @@ -659,6 +659,7 @@ def swiftest_xr2infile(ds, param, framenum=-1): # Swiftest Central body file cbfile = open(param['CB_IN'], 'w') print(GMSun, file=cbfile) + print(GMSun, file=cbfile) print(RSun, file=cbfile) print(J2, file=cbfile) print(J4, file=cbfile) @@ -687,6 +688,8 @@ def swiftest_xr2infile(ds, param, framenum=-1): # Now make Swiftest files cbfile = FortranFile(param['CB_IN'], 'w') MSun = np.double(1.0) + cbid = 0 + cbfile.write_record(cbid) cbfile.write_record(np.double(GMSun)) cbfile.write_record(np.double(rmin)) cbfile.write_record(np.double(J2)) diff --git a/src/io/io.f90 b/src/io/io.f90 index 245c6a052..12fe2cdab 100644 --- a/src/io/io.f90 +++ b/src/io/io.f90 @@ -105,6 +105,9 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) case ("BIG_DISCARD") call util_toupper(param_value) if (param_value == "YES" .or. param_value == 'T' ) self%lbig_discard = .true. + case ("RHILL_PRESENT") + call util_toupper(param_value) + if (param_value == "YES" .or. param_value == 'T' ) self%lrhill_present = .true. case ("MU2KG") read(param_value, *) self%MU2KG case ("TU2S") @@ -213,6 +216,7 @@ module subroutine io_param_reader(self, unit, iotype, v_list, iostat, iomsg) write(*,*) "ENC_OUT = ",trim(adjustl(self%encounter_file)) write(*,*) "EXTRA_FORCE = ",self%lextra_force write(*,*) "BIG_DISCARD = ",self%lbig_discard + write(*,*) "RHILL_PRESENT = ",self%lrhill_present write(*,*) "ENERGY = ",self%lenergy write(*,*) "MU2KG = ",self%MU2KG write(*,*) "TU2S = ",self%TU2S @@ -315,6 +319,7 @@ module subroutine io_param_writer(self, unit, iotype, v_list, iostat, iomsg) write(param_name, Afmt) "MU2KG"; write(param_value, Rfmt) param%MU2KG; write(unit, Afmt) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "TU2S"; write(param_value, Rfmt) param%TU2S ; write(unit, Afmt) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "DU2M"; write(param_value, Rfmt) param%DU2M; write(unit, Afmt) adjustl(param_name), adjustl(param_value) + write(param_name, Afmt) "RHILL_PRESENT"; write(param_value, Lfmt) param%lrhill_present; write(unit, Afmt) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "EXTRA_FORCE"; write(param_value, Lfmt) param%lextra_force; write(unit, Afmt) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "BIG_DISCARD"; write(param_value, Lfmt) param%lbig_discard; write(unit, Afmt) adjustl(param_name), adjustl(param_value) write(param_name, Afmt) "CHK_CLOSE"; write(param_value, Lfmt) param%lclose; write(unit, Afmt) adjustl(param_name), adjustl(param_value) @@ -592,10 +597,15 @@ module subroutine io_read_body_in(self, param) select type(self) class is (swiftest_pl) read(iu, *, iostat = ierr) self%id(i), val - self%mass(i) = real(val / param%GU, kind=DP) self%Gmass(i) = real(val, kind=DP) + self%mass(i) = real(val / param%GU, kind=DP) + if (param%lclose) then - read(iu, *, iostat = ierr) self%radius(i) + if (param%lrhill_present) then + read(iu, *, iostat = ierr) self%radius(i), self%rhill(i) + else + read(iu, *, iostat = ierr) self%radius(i) + end if if (ierr /= 0 ) exit else self%radius(i) = 0.0_DP @@ -623,6 +633,7 @@ module subroutine io_read_body_in(self, param) ierr = -1 end select close(iu) + if (ierr /= 0 ) then write(*,*) 'Error reading in initial conditions from ',trim(adjustl(infile)) call util_exit(FAILURE) @@ -932,6 +943,7 @@ module subroutine io_read_initialize_system(self, param) call self%cb%initialize(param) call self%pl%initialize(param) + if (.not.param%lrhill_present) call self%pl%set_rhill(self%cb) call self%tp%initialize(param) call self%set_msys() call self%pl%set_mu(self%cb) diff --git a/src/modules/swiftest_classes.f90 b/src/modules/swiftest_classes.f90 index b0a804610..e4d967d19 100644 --- a/src/modules/swiftest_classes.f90 +++ b/src/modules/swiftest_classes.f90 @@ -61,6 +61,7 @@ module swiftest_classes real(DP) :: inv_c2 = -1.0_DP !! Inverse speed of light squared in the system units !Logical flags to turn on or off various features of the code + logical :: lrhill_present = .false. !! Hill radii are given as an input rather than calculated by the code (can be used to inflate close encounter regions manually) logical :: lextra_force = .false. !! User defined force function turned on logical :: lbig_discard = .false. !! Save big bodies on every discard logical :: lclose = .false. !! Turn on close encounters diff --git a/src/rmvs/rmvs_step.f90 b/src/rmvs/rmvs_step.f90 index 035783901..82f3a4101 100644 --- a/src/rmvs/rmvs_step.f90 +++ b/src/rmvs/rmvs_step.f90 @@ -29,7 +29,6 @@ module subroutine rmvs_step_system(self, param, t, dt) associate(system => self, ntp => tp%nbody, npl => pl%nbody) allocate(xbeg, source=pl%xh) allocate(vbeg, source=pl%vh) - call pl%set_rhill(cb) call pl%set_beg_end(xbeg = xbeg, vbeg = vbeg) ! ****** Check for close encounters ***** ! system%rts = RHSCALE