Package evaluation of PALEOocean on Julia 1.11.4 (a71dd056e0*) started at 2025-04-08T19:11:03.490 ################################################################################ # Set-up # Installing PkgEval dependencies (TestEnv)... Set-up completed after 9.01s ################################################################################ # Installation # Installing PALEOocean... Resolving package versions... Updating `~/.julia/environments/v1.11/Project.toml` [41de04b1] + PALEOocean v0.4.9 Updating `~/.julia/environments/v1.11/Manifest.toml` [79e6a3ab] + Adapt v4.3.0 [ec485272] + ArnoldiMethod v0.4.0 [a9b6321e] + Atomix v1.1.1 [13072b0f] + AxisAlgorithms v1.1.0 [6e4b80f9] + BenchmarkTools v1.6.0 [e1450e63] + BufferedStreams v1.2.2 ⌅ [179af706] + CFTime v0.1.4 [d360d2e6] + ChainRulesCore v1.25.1 [da1fd8a2] + CodeTracking v1.3.9 [944b1d66] + CodecZlib v0.7.8 [1fbeeb36] + CommonDataModel v0.3.8 [34da2185] + Compat v4.16.0 [187b0558] + ConstructionBase v1.5.8 [a8cc5b0e] + Crayons v4.1.1 [9a962f9c] + DataAPI v1.16.0 [a93c6f00] + DataFrames v1.7.0 [864edb3b] + DataStructures v0.18.22 [e2d170a0] + DataValueInterfaces v1.0.0 [3c3547ce] + DiskArrays v0.4.12 [ffbed154] + DocStringExtensions v0.9.4 [e2ba6199] + ExprTools v0.1.10 [86223c79] + Graphs v1.12.1 [f67ccb44] + HDF5 v0.17.2 [5903a43b] + Infiltrator v1.8.7 [d25df0c9] + Inflate v0.1.5 [842dd82b] + InlineStrings v1.4.3 [a98d9a8b] + Interpolations v0.15.1 [41ab1584] + InvertedIndices v1.3.1 [92d709cd] + IrrationalConstants v0.2.4 [82899510] + IteratorInterfaceExtensions v1.0.0 [692b3bcd] + JLLWrappers v1.7.0 [682c06a0] + JSON v0.21.4 [aa1ae85d] + JuliaInterpreter v0.9.42 [8ac3fa9e] + LRUCache v1.6.2 [b964fa9f] + LaTeXStrings v1.4.0 [2ab3a3ac] + LogExpFunctions v0.3.29 [6f1432cf] + LoweredCodeUtils v3.1.0 [23992714] + MAT v0.10.7 [3da0fdf6] + MPIPreferences v0.1.11 [1914dd2f] + MacroTools v0.5.15 [e1d29d7a] + Missings v1.2.0 [85f8d34a] + NCDatasets v0.14.7 [6fe1bfb0] + OffsetArrays v1.16.0 [bac558e1] + OrderedCollections v1.8.0 [673cec3b] + PALEOaqchem v0.3.19 [804b410e] + PALEOboxes v0.22.4 [41de04b1] + PALEOocean v0.4.9 [69de0a69] + Parsers v2.8.1 [2dfb63ee] + PooledArrays v1.4.3 ⌅ [aea7be01] + PrecompileTools v1.2.1 [21216c6a] + Preferences v1.4.3 [08abe8d2] + PrettyTables v2.4.0 [c84ed2f1] + Ratios v0.4.5 [189a3867] + Reexport v1.2.2 [ae029012] + Requires v1.3.1 [295af30f] + Revise v3.7.3 [fdea26ae] + SIMD v3.7.1 [91c51154] + SentinelArrays v1.4.8 [699a6c99] + SimpleTraits v0.9.4 [66db9d55] + SnoopPrecompile v1.0.3 [a2af1166] + SortingAlgorithms v1.2.1 [276daf66] + SpecialFunctions v2.5.0 [90137ffa] + StaticArrays v1.9.13 [1e83bf80] + StaticArraysCore v1.4.3 [10745b16] + Statistics v1.11.1 [69024149] + StringEncodings v0.3.7 [892a3eda] + StringManipulation v0.4.1 [09ab397b] + StructArrays v0.7.1 [3783bdb8] + TableTraits v1.0.1 [bd369af6] + Tables v1.12.0 [1e6cf692] + TestEnv v1.102.0 [a759f4b9] + TimerOutputs v0.5.28 [3bb67fe8] + TranscodingStreams v0.11.3 [013be700] + UnsafeAtomics v0.3.0 [efce3f68] + WoodburyMatrices v1.0.0 ⌅ [ddb6d928] + YAML v0.4.12 [0b7ba130] + Blosc_jll v1.21.7+0 [6e34b625] + Bzip2_jll v1.0.9+0 [0234f1f7] + HDF5_jll v1.14.6+0 [e33a78d0] + Hwloc_jll v2.12.0+0 [94ce4f54] + Libiconv_jll v1.18.0+0 [5ced341a] + Lz4_jll v1.10.1+0 [7cb0a576] + MPICH_jll v4.3.0+1 [f1f71cc9] + MPItrampoline_jll v5.5.3+0 [9237b28f] + MicrosoftMPI_jll v10.1.4+3 [7243133f] + NetCDF_jll v401.900.300+0 [fe0851c0] + OpenMPI_jll v5.0.7+2 [458c3c95] + OpenSSL_jll v3.0.16+0 [efe28fd5] + OpenSpecFun_jll v0.5.6+0 [63e82ce6] + SLEEF_jll v3.7.0+0 [02c8fc9c] + XML2_jll v2.13.6+1 [ffd25f8a] + XZ_jll v5.8.1+0 [3161d3a3] + Zstd_jll v1.5.7+1 [477f73a3] + libaec_jll v1.1.3+0 [337d8026] + libzip_jll v1.11.3+0 [0dad84c5] + ArgTools v1.1.2 [56f22d72] + Artifacts v1.11.0 [2a0f44e3] + Base64 v1.11.0 [ade2ca70] + Dates v1.11.0 [8ba89e20] + Distributed v1.11.0 [f43a241f] + Downloads v1.6.0 [7b1f6079] + FileWatching v1.11.0 [9fa8497b] + Future v1.11.0 [b77e0a4c] + InteractiveUtils v1.11.0 [4af54fe1] + LazyArtifacts v1.11.0 [b27032c2] + LibCURL v0.6.4 [76f85450] + LibGit2 v1.11.0 [8f399da3] + Libdl v1.11.0 [37e2e46d] + LinearAlgebra v1.11.0 [56ddb016] + Logging v1.11.0 [d6f4376e] + Markdown v1.11.0 [a63ad114] + Mmap v1.11.0 [ca575930] + NetworkOptions v1.2.0 [44cfe95a] + Pkg v1.11.0 [de0858da] + Printf v1.11.0 [9abbd945] + Profile v1.11.0 [3fa0cd96] + REPL v1.11.0 [9a3f8284] + Random v1.11.0 [ea8e919c] + SHA v0.7.0 [9e88b42a] + Serialization v1.11.0 [1a1011a3] + SharedArrays v1.11.0 [6462fe0b] + Sockets v1.11.0 [2f01184e] + SparseArrays v1.11.0 [f489334b] + StyledStrings v1.11.0 [fa267f1f] + TOML v1.0.3 [a4e569a6] + Tar v1.10.0 [cf7118a7] + UUIDs v1.11.0 [4ec0a83e] + Unicode v1.11.0 [e66e0078] + CompilerSupportLibraries_jll v1.1.1+0 [781609d7] + GMP_jll v6.3.0+0 [deac9b47] + LibCURL_jll v8.6.0+0 [e37daf67] + LibGit2_jll v1.7.2+0 [29816b5a] + LibSSH2_jll v1.11.0+1 [3a97d323] + MPFR_jll v4.2.1+0 [c8ffd9c3] + MbedTLS_jll v2.28.6+0 [14a3606d] + MozillaCACerts_jll v2023.12.12 [4536629a] + OpenBLAS_jll v0.3.27+1 [05823500] + OpenLibm_jll v0.8.5+0 [bea87d4a] + SuiteSparse_jll v7.7.0+0 [83775a58] + Zlib_jll v1.2.13+1 [8e850b90] + libblastrampoline_jll v5.11.0+0 [8e850ede] + nghttp2_jll v1.59.0+0 [3f19e933] + p7zip_jll v17.4.0+2 Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m` Installation completed after 9.73s ################################################################################ # Precompilation # Precompiling PkgEval dependencies... Precompiling package dependencies... Precompilation completed after 875.53s ################################################################################ # Testing # Testing PALEOocean Status `/tmp/jl_x7umSd/Project.toml` [a93c6f00] DataFrames v1.7.0 [2b5f629d] DiffEqBase v6.167.2 [e30172f5] Documenter v1.10.1 [5903a43b] Infiltrator v1.8.7 [a98d9a8b] Interpolations v0.15.1 [23992714] MAT v0.10.7 [85f8d34a] NCDatasets v0.14.7 [673cec3b] PALEOaqchem v0.3.19 [804b410e] PALEOboxes v0.22.4 [4a6ed817] PALEOcopse v0.4.11 [bf7b4fbe] PALEOmodel v0.16.5 [41de04b1] PALEOocean v0.4.9 [91a5bcdd] Plots v1.40.11 [21216c6a] Preferences v1.4.3 [fdea26ae] SIMD v3.7.1 [66db9d55] SnoopPrecompile v1.0.3 [47a9eef4] SparseDiffTools v2.24.0 [276daf66] SpecialFunctions v2.5.0 [c3572dad] Sundials v4.27.0 [1e6cf692] TestEnv v1.102.0 [a5390f91] ZipFile v0.10.1 [f43a241f] Downloads v1.6.0 [37e2e46d] LinearAlgebra v1.11.0 [56ddb016] Logging v1.11.0 [de0858da] Printf v1.11.0 [2f01184e] SparseArrays v1.11.0 [8dfed614] Test v1.11.0 Status `/tmp/jl_x7umSd/Manifest.toml` [47edcb42] ADTypes v1.14.0 [a4c015fc] ANSIColoredPrinters v0.0.1 [1520ce14] AbstractTrees v0.4.5 [7d9f7c33] Accessors v0.1.42 [79e6a3ab] Adapt v4.3.0 [66dad0bd] AliasTables v1.1.3 [dce04be8] ArgCheck v2.5.0 [ec485272] ArnoldiMethod v0.4.0 [4fba245c] ArrayInterface v7.18.0 [a9b6321e] Atomix v1.1.1 [13072b0f] AxisAlgorithms v1.1.0 [6e4b80f9] BenchmarkTools v1.6.0 [d1d4a3ce] BitFlags v0.1.9 [62783981] BitTwiddlingConvenienceFunctions v0.1.6 [e1450e63] BufferedStreams v1.2.2 [fa961155] CEnum v0.5.0 ⌅ [179af706] CFTime v0.1.4 [2a0fbf3d] CPUSummary v0.2.6 [d360d2e6] ChainRulesCore v1.25.1 [fb6a15b2] CloseOpenIntervals v0.1.13 [da1fd8a2] CodeTracking v1.3.9 [6309b1aa] CodecInflate64 v0.1.3 [944b1d66] CodecZlib v0.7.8 [35d6a980] ColorSchemes v3.29.0 [3da002f7] ColorTypes v0.12.1 [c3611d14] ColorVectorSpace v0.11.0 [5ae59095] Colors v0.13.0 [1fbeeb36] CommonDataModel v0.3.8 [38540f10] CommonSolve v0.2.4 [bbf7d656] CommonSubexpressions v0.3.1 [f70d9fcc] CommonWorldInvalidations v1.0.0 [34da2185] Compat v4.16.0 [a33af91c] CompositionsBase v0.1.2 [2569d6c7] ConcreteStructs v0.2.3 [f0e56b4a] ConcurrentUtilities v2.5.0 [187b0558] ConstructionBase v1.5.8 [d38c429a] Contour v0.6.3 [adafc99b] CpuId v0.3.1 [a8cc5b0e] Crayons v4.1.1 [9a962f9c] DataAPI v1.16.0 [a93c6f00] DataFrames v1.7.0 [864edb3b] DataStructures v0.18.22 [e2d170a0] DataValueInterfaces v1.0.0 [8bb1440f] DelimitedFiles v1.9.1 [2b5f629d] DiffEqBase v6.167.2 [163ba53b] DiffResults v1.1.0 [b552c78f] DiffRules v1.15.1 [a0c0ee7d] DifferentiationInterface v0.6.50 [3c3547ce] DiskArrays v0.4.12 [b4f34e82] Distances v0.10.12 [ffbed154] DocStringExtensions v0.9.4 [e30172f5] Documenter v1.10.1 [4e289a0a] EnumX v1.0.5 [f151be2c] EnzymeCore v0.8.8 [460bff9d] ExceptionUnwrapping v0.1.11 [e2ba6199] ExprTools v0.1.10 [55351af7] ExproniconLite v0.10.14 [8f5d6c58] EzXML v1.2.1 [c87230d0] FFMPEG v0.4.2 [7034ab61] FastBroadcast v0.3.5 [9aa1b823] FastClosures v0.3.2 [a4df4552] FastPower v1.1.2 [5789e2e9] FileIO v1.17.0 [6a86dc24] FiniteDiff v2.27.0 [53c48c17] FixedPointNumbers v0.8.5 [1fa38f19] Format v1.3.7 ⌅ [f6369f11] ForwardDiff v0.10.38 [069b7b12] FunctionWrappers v1.1.3 [77dc65aa] FunctionWrappersWrappers v0.1.3 [46192b85] GPUArraysCore v0.2.0 [28b8d3ca] GR v0.73.13 [d7ba0133] Git v1.3.1 [86223c79] Graphs v1.12.1 [42e2da0e] Grisu v1.0.2 [f67ccb44] HDF5 v0.17.2 [cd3eb016] HTTP v1.10.15 [b5f81e59] IOCapture v0.2.5 [615f187c] IfElse v0.1.1 [5903a43b] Infiltrator v1.8.7 [d25df0c9] Inflate v0.1.5 [842dd82b] InlineStrings v1.4.3 [0c81fc1b] InputBuffers v1.0.1 [a98d9a8b] Interpolations v0.15.1 [3587e190] InverseFunctions v0.1.17 [41ab1584] InvertedIndices v1.3.1 [92d709cd] IrrationalConstants v0.2.4 [82899510] IteratorInterfaceExtensions v1.0.0 [1019f520] JLFzf v0.1.10 [692b3bcd] JLLWrappers v1.7.0 [682c06a0] JSON v0.21.4 [ae98c720] Jieko v0.2.1 [aa1ae85d] JuliaInterpreter v0.9.42 [8ac3fa9e] LRUCache v1.6.2 [b964fa9f] LaTeXStrings v1.4.0 [23fbe1c1] Latexify v0.16.7 [10f19ff3] LayoutPointers v0.1.17 [0e77f7df] LazilyInitializedFields v1.3.0 [d3d80556] LineSearches v7.3.0 [2ab3a3ac] LogExpFunctions v0.3.29 [e6f89c97] LoggingExtras v1.1.0 [6f1432cf] LoweredCodeUtils v3.1.0 [23992714] MAT v0.10.7 [3da0fdf6] MPIPreferences v0.1.11 [1914dd2f] MacroTools v0.5.15 [d125e4d3] ManualMemory v0.1.8 [d0879d2d] MarkdownAST v0.1.2 [739be429] MbedTLS v1.1.9 [442fdcdd] Measures v0.3.2 [e1d29d7a] Missings v1.2.0 [2e0e35c7] Moshi v0.3.5 [46d2c3a1] MuladdMacro v0.2.4 [bdf0d083] MultiFloats v2.3.0 [85f8d34a] NCDatasets v0.14.7 [d41bc354] NLSolversBase v7.9.1 [2774e3e8] NLsolve v4.5.1 [77ba4419] NaNMath v1.1.3 [6fe1bfb0] OffsetArrays v1.16.0 [4d8831e6] OpenSSL v1.4.3 [bac558e1] OrderedCollections v1.8.0 [673cec3b] PALEOaqchem v0.3.19 [804b410e] PALEOboxes v0.22.4 [4a6ed817] PALEOcopse v0.4.11 [bf7b4fbe] PALEOmodel v0.16.5 [41de04b1] PALEOocean v0.4.9 [65ce6f38] PackageExtensionCompat v1.0.2 [d96e819e] Parameters v0.12.3 [69de0a69] Parsers v2.8.1 [ccf2f8ad] PlotThemes v3.3.0 [995b91a9] PlotUtils v1.4.3 [91a5bcdd] Plots v1.40.11 [f517fe37] Polyester v0.7.16 [1d0040c9] PolyesterWeave v0.2.2 [2dfb63ee] PooledArrays v1.4.3 ⌅ [aea7be01] PrecompileTools v1.2.1 [21216c6a] Preferences v1.4.3 [08abe8d2] PrettyTables v2.4.0 [43287f4e] PtrArrays v1.3.0 [c84ed2f1] Ratios v0.4.5 [3cdcf5f2] RecipesBase v1.3.4 [01d81517] RecipesPipeline v0.6.12 [731186ca] RecursiveArrayTools v3.31.2 [189a3867] Reexport v1.2.2 [2792f1a3] RegistryInstances v0.1.0 [05181044] RelocatableFolders v1.0.1 [ae029012] Requires v1.3.1 [295af30f] Revise v3.7.3 [f2b01f46] Roots v2.2.7 [7e49a35a] RuntimeGeneratedFunctions v0.5.13 [fdea26ae] SIMD v3.7.1 [94e857df] SIMDTypes v0.1.0 [0bca4576] SciMLBase v2.82.1 [c0aeaf25] SciMLOperators v0.3.13 [53ae85a6] SciMLStructures v1.7.0 [6c6a2e73] Scratch v1.2.1 [91c51154] SentinelArrays v1.4.8 [efcf1570] Setfield v1.1.2 [992d4aef] Showoff v1.0.3 [777ac1f9] SimpleBufferStream v1.2.0 [699a6c99] SimpleTraits v0.9.4 [66db9d55] SnoopPrecompile v1.0.3 [a2af1166] SortingAlgorithms v1.2.1 [47a9eef4] SparseDiffTools v2.24.0 [06eadbd4] SparsityTracing v0.2.6 [e56a9233] Sparspak v0.3.9 [276daf66] SpecialFunctions v2.5.0 [860ef19b] StableRNGs v1.0.2 [aedffcd0] Static v1.2.0 [0d7ed370] StaticArrayInterface v1.8.0 [90137ffa] StaticArrays v1.9.13 [1e83bf80] StaticArraysCore v1.4.3 [10745b16] Statistics v1.11.1 [82ae8749] StatsAPI v1.7.0 [2913bbd2] StatsBase v0.34.4 [7792a7ef] StrideArraysCore v0.5.7 [69024149] StringEncodings v0.3.7 [892a3eda] StringManipulation v0.4.1 [09ab397b] StructArrays v0.7.1 [c3572dad] Sundials v4.27.0 [2efcf032] SymbolicIndexingInterface v0.3.38 [3783bdb8] TableTraits v1.0.1 [bd369af6] Tables v1.12.0 [62fd8b95] TensorCore v0.1.1 [1e6cf692] TestEnv v1.102.0 [8290d209] ThreadingUtilities v0.5.2 [a759f4b9] TimerOutputs v0.5.28 [3bb67fe8] TranscodingStreams v0.11.3 [781d530d] TruncatedStacktraces v1.4.0 [5c2747f8] URIs v1.5.2 [3a884ed6] UnPack v1.0.2 [1cfade01] UnicodeFun v0.4.1 [1986cc42] Unitful v1.22.0 [45397f5d] UnitfulLatexify v1.6.4 [013be700] UnsafeAtomics v0.3.0 [41fe7b60] Unzip v0.2.0 [19fa3120] VertexSafeGraphs v0.2.0 [efce3f68] WoodburyMatrices v1.0.0 [fdbf4ff8] XLSX v0.10.4 ⌅ [ddb6d928] YAML v0.4.12 [49080126] ZipArchives v2.4.1 [a5390f91] ZipFile v0.10.1 [0b7ba130] Blosc_jll v1.21.7+0 [6e34b625] Bzip2_jll v1.0.9+0 [83423d85] Cairo_jll v1.18.4+0 [ee1fde0b] Dbus_jll v1.16.2+0 [2702e6a9] EpollShim_jll v0.0.20230411+1 [2e619515] Expat_jll v2.6.5+0 ⌅ [b22a6f82] FFMPEG_jll v4.4.4+1 [a3f928ae] Fontconfig_jll v2.16.0+0 [d7e528f0] FreeType2_jll v2.13.4+0 [559328eb] FriBidi_jll v1.0.17+0 [0656b61e] GLFW_jll v3.4.0+2 [d2c73de3] GR_jll v0.73.13+0 [78b55507] Gettext_jll v0.21.0+0 [f8c6e375] Git_jll v2.49.0+0 ⌃ [7746bdde] Glib_jll v2.82.4+0 [3b182d85] Graphite2_jll v1.3.15+0 [0234f1f7] HDF5_jll v1.14.6+0 [2e76f6c2] HarfBuzz_jll v8.5.0+0 [e33a78d0] Hwloc_jll v2.12.0+0 [aacddb02] JpegTurbo_jll v3.1.1+0 [c1c5ebd0] LAME_jll v3.100.2+0 [88015f11] LERC_jll v4.0.1+0 [1d63c593] LLVMOpenMP_jll v18.1.7+0 [dd4b983a] LZO_jll v2.10.3+0 ⌅ [e9f186c6] Libffi_jll v3.2.2+2 [d4300ac3] Libgcrypt_jll v1.11.1+0 [7e76a0d4] Libglvnd_jll v1.7.0+0 [7add5ba3] Libgpg_error_jll v1.51.1+0 [94ce4f54] Libiconv_jll v1.18.0+0 [4b2f31a3] Libmount_jll v2.41.0+0 [89763e89] Libtiff_jll v4.7.1+0 [38a345b3] Libuuid_jll v2.41.0+0 [5ced341a] Lz4_jll v1.10.1+0 [7cb0a576] MPICH_jll v4.3.0+1 [f1f71cc9] MPItrampoline_jll v5.5.3+0 [9237b28f] MicrosoftMPI_jll v10.1.4+3 [7243133f] NetCDF_jll v401.900.300+0 [e7412a2a] Ogg_jll v1.3.5+1 [fe0851c0] OpenMPI_jll v5.0.7+2 [458c3c95] OpenSSL_jll v3.0.16+0 [efe28fd5] OpenSpecFun_jll v0.5.6+0 [91d4177d] Opus_jll v1.3.3+0 [36c8627f] Pango_jll v1.56.1+0 [30392449] Pixman_jll v0.44.2+0 ⌅ [c0090381] Qt6Base_jll v6.7.1+1 ⌅ [629bc702] Qt6Declarative_jll v6.7.1+2 ⌅ [ce943373] Qt6ShaderTools_jll v6.7.1+1 ⌃ [e99dba38] Qt6Wayland_jll v6.7.1+1 [63e82ce6] SLEEF_jll v3.7.0+0 ⌅ [fb77eaff] Sundials_jll v5.2.3+0 [a44049a8] Vulkan_Loader_jll v1.3.243+0 ⌃ [a2964d1f] Wayland_jll v1.21.0+2 [2381bf8a] Wayland_protocols_jll v1.36.0+0 [02c8fc9c] XML2_jll v2.13.6+1 [aed1982a] XSLT_jll v1.1.43+0 [ffd25f8a] XZ_jll v5.8.1+0 [f67eecfb] Xorg_libICE_jll v1.1.2+0 [c834827a] Xorg_libSM_jll v1.2.4+0 [4f6342f7] Xorg_libX11_jll v1.8.6+3 [0c0b7dd1] Xorg_libXau_jll v1.0.12+0 [935fb764] Xorg_libXcursor_jll v1.2.3+0 [a3789734] Xorg_libXdmcp_jll v1.1.5+0 [1082639a] Xorg_libXext_jll v1.3.6+3 [d091e8ba] Xorg_libXfixes_jll v6.0.0+0 [a51aa0fd] Xorg_libXi_jll v1.8.2+0 [d1454406] Xorg_libXinerama_jll v1.1.5+0 [ec84b674] Xorg_libXrandr_jll v1.5.4+0 [ea2f1a96] Xorg_libXrender_jll v0.9.11+1 [14d82f49] Xorg_libpthread_stubs_jll v0.1.2+0 [c7cfdc94] Xorg_libxcb_jll v1.17.0+3 [cc61e674] Xorg_libxkbfile_jll v1.1.2+1 [e920d4aa] Xorg_xcb_util_cursor_jll v0.1.4+0 [12413925] Xorg_xcb_util_image_jll v0.4.0+1 [2def613f] Xorg_xcb_util_jll v0.4.0+1 [975044d2] Xorg_xcb_util_keysyms_jll v0.4.0+1 [0d47668e] Xorg_xcb_util_renderutil_jll v0.3.9+1 [c22f9ab0] Xorg_xcb_util_wm_jll v0.4.1+1 [35661453] Xorg_xkbcomp_jll v1.4.6+1 [33bec58e] Xorg_xkeyboard_config_jll v2.39.0+0 [c5fb5394] Xorg_xtrans_jll v1.6.0+0 [3161d3a3] Zstd_jll v1.5.7+1 [35ca27e7] eudev_jll v3.2.9+0 [214eeab7] fzf_jll v0.56.3+0 [1a1c6b14] gperf_jll v3.1.1+1 [477f73a3] libaec_jll v1.1.3+0 [a4ae2306] libaom_jll v3.11.0+0 [0ac62f75] libass_jll v0.15.2+0 [1183f4f0] libdecor_jll v0.2.2+0 [2db6ffa8] libevdev_jll v1.11.0+0 [f638f0a6] libfdk_aac_jll v2.0.3+0 [36db933b] libinput_jll v1.18.0+0 [b53b4c65] libpng_jll v1.6.47+0 [f27f6e37] libvorbis_jll v1.3.7+2 [337d8026] libzip_jll v1.11.3+0 [009596ad] mtdev_jll v1.1.6+0 ⌅ [1270edf5] x264_jll v2021.5.5+0 ⌅ [dfaa095f] x265_jll v3.5.0+0 [d8fb68d0] xkbcommon_jll v1.4.1+2 [0dad84c5] ArgTools v1.1.2 [56f22d72] Artifacts v1.11.0 [2a0f44e3] Base64 v1.11.0 [ade2ca70] Dates v1.11.0 [8ba89e20] Distributed v1.11.0 [f43a241f] Downloads v1.6.0 [7b1f6079] FileWatching v1.11.0 [9fa8497b] Future v1.11.0 [b77e0a4c] InteractiveUtils v1.11.0 [4af54fe1] LazyArtifacts v1.11.0 [b27032c2] LibCURL v0.6.4 [76f85450] LibGit2 v1.11.0 [8f399da3] Libdl v1.11.0 [37e2e46d] LinearAlgebra v1.11.0 [56ddb016] Logging v1.11.0 [d6f4376e] Markdown v1.11.0 [a63ad114] Mmap v1.11.0 [ca575930] NetworkOptions v1.2.0 [44cfe95a] Pkg v1.11.0 [de0858da] Printf v1.11.0 [9abbd945] Profile v1.11.0 [3fa0cd96] REPL v1.11.0 [9a3f8284] Random v1.11.0 [ea8e919c] SHA v0.7.0 [9e88b42a] Serialization v1.11.0 [1a1011a3] SharedArrays v1.11.0 [6462fe0b] Sockets v1.11.0 [2f01184e] SparseArrays v1.11.0 [f489334b] StyledStrings v1.11.0 [fa267f1f] TOML v1.0.3 [a4e569a6] Tar v1.10.0 [8dfed614] Test v1.11.0 [cf7118a7] UUIDs v1.11.0 [4ec0a83e] Unicode v1.11.0 [e66e0078] CompilerSupportLibraries_jll v1.1.1+0 [781609d7] GMP_jll v6.3.0+0 [deac9b47] LibCURL_jll v8.6.0+0 [e37daf67] LibGit2_jll v1.7.2+0 [29816b5a] LibSSH2_jll v1.11.0+1 [3a97d323] MPFR_jll v4.2.1+0 [c8ffd9c3] MbedTLS_jll v2.28.6+0 [14a3606d] MozillaCACerts_jll v2023.12.12 [4536629a] OpenBLAS_jll v0.3.27+1 [05823500] OpenLibm_jll v0.8.5+0 [efcefdf7] PCRE2_jll v10.42.0+1 [bea87d4a] SuiteSparse_jll v7.7.0+0 [83775a58] Zlib_jll v1.2.13+1 [8e850b90] libblastrampoline_jll v5.11.0+0 [8e850ede] nghttp2_jll v1.59.0+0 [3f19e933] p7zip_jll v17.4.0+2 Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. Testing Running tests... Precompiling Plots... 126574.8 ms ✓ Plots 16593.7 ms ✓ Plots → UnitfulExt 2 dependencies successfully precompiled in 145 seconds. 184 already precompiled. Precompiling PALEOboxes... 32785.0 ms ✓ PrettyTables 6650.1 ms ✓ MAT 8023.1 ms ✓ NCDatasets 84563.9 ms ✓ DataFrames Info Given PALEOboxes was explicitly requested, output will be shown live  [ Info: PALEOboxes.SIMDutils defining USE_SLEEF = false in LocalPreferences.toml 113090.7 ms ✓ PALEOboxes 5 dependencies successfully precompiled in 249 seconds. 139 already precompiled. 1 dependency had output during precompilation: ┌ PALEOboxes │ [Output was shown above] └ Precompiling PALEOocean... 30698.7 ms ✓ PALEOaqchem Info Given PALEOocean was explicitly requested, output will be shown live  ┌ Warning: `LinearInterpolation(args...; kwargs...)` is deprecated, use `linear_interpolation(args...; kwargs...)` instead. │ caller = top-level scope at Burial.jl:291 └ @ Core ~/.julia/packages/PALEOocean/Cpquk/src/oceanfloor/Burial.jl:291 37043.4 ms ✓ PALEOocean 2 dependencies successfully precompiled in 70 seconds. 152 already precompiled. 1 dependency had output during precompilation: ┌ PALEOocean │ [Output was shown above] └ [ Info: OceanTransportTMM adding default TMMDir => /home/pkgeval/.julia/packages/PALEOocean/TMM to [PALEOocean.Ocean.OceanTransportTMM] LocalPreferences.toml (modify for your local setup) [ Info: OceanTransportTMM adding default TMMDir => /home/pkgeval/.julia/packages/PALEOocean/TMM to [PALEOboxes] LocalPreferences.toml (modify for your local setup) Precompiling PALEOmodel... 4616.3 ms ✓ SparsityTracing 7353.9 ms ✓ ForwardDiff 2370.3 ms ✓ ForwardDiff → ForwardDiffStaticArraysExt 1937.4 ms ✓ DifferentiationInterface → DifferentiationInterfaceForwardDiffExt 1744.5 ms ✓ FastPower → FastPowerForwardDiffExt 2011.1 ms ✓ RecursiveArrayTools → RecursiveArrayToolsForwardDiffExt 4376.5 ms ✓ DiffEqBase → DiffEqBaseForwardDiffExt 6792.6 ms ✓ SparseDiffTools 2437.3 ms ✓ NLSolversBase 4856.4 ms ✓ SparseDiffTools → SparseDiffToolsPolyesterExt 5026.4 ms ✓ LineSearches 3293.5 ms ✓ NLsolve 35154.6 ms ✓ PALEOmodel 13 dependencies successfully precompiled in 86 seconds. 248 already precompiled. Precompiling FileIOExt... 5375.1 ms ✓ FileIO → HTTPExt 18349.7 ms ✓ Plots → FileIOExt 2 dependencies successfully precompiled in 25 seconds. 187 already precompiled. ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel test_airsea_CO2 │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/test/configocean3box.yaml └ ================================================================================ ┌ Info: Model.parameters: └ CIsotope = IsotopeLinear ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 68 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: global.total_C classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.CO2", "ocean.DIC"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.reservoir_DIC classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_TAlk classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.H_primary_species classname ReactionConstraintReservoir │ set parameters: [config.yaml] primary_total_stoich=0.0 │ set parameters: [Default] primary_other_components=String[] │ set parameters: [config.yaml] primary_variable =p_concentration └ set parameters: [config.yaml] constraint_variable =amount ┌ Info: create_reaction_from_config: ocean.transport3box classname ReactionOceanTransport3box │ set parameters: [Default] circT =2.0e7 │ set parameters: [Default] circfhd =6.0e7 │ set parameters: [Default] temp =[21.5, 2.5, 2.5] └ set parameters: [Default] temp_trackglobal =false ┌ Info: create_reaction_from_config: ocean.carbchem classname ReactionCO2SYS │ set parameters: [Default] WhichKs =10 │ set parameters: [Default] WhoseKSO4 =1 │ set parameters: [config.yaml] components =["Ci", "B", "S", "F", "Omega"] │ set parameters: [config.yaml] defaultconcs =["TS", "TF", "TB", "Ca"] │ set parameters: [config.yaml] outputs =["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR"] │ set parameters: [Default] output_pHtot =true │ set parameters: [config.yaml] solve_pH =speciationTAlk │ set parameters: [Default] pHtol =2.220446049250313e-14 └ set parameters: [Default] simd_width =1 ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=3 └ ================================================================================ ┌ Info: create_reaction_from_config: oceansurface.airsea_CO2 classname ReactionAirSeaCO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [Default] moistair =true │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =3.0 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=4 └ ================================================================================ ┌ Warning: create_domain_from_config Domain 'oceanfloor' empty 'reactions:' key in .yaml file └ @ PALEOboxes ~/.julia/packages/PALEOboxes/k4QWy/src/Domain.jl:349 ┌ Info: │ ================================================================================ │ creating domain 'fluxAtmtoOceansurface' ID=5 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtmtoOceansurface.fluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["CO2::CIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'atm' ID=6 └ ================================================================================ ┌ Info: create_reaction_from_config: atm.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: create_reaction_from_config: atm.reservoir_CO2 classname ReactionReservoirAtm │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: set ocean.oceansurface Subdomain size=2 [ Info: set ocean.oceanfloor Subdomain size=3 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["oceansurface", "oceanfloor"]) [ Info: fluxAtmtoOceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ ┌ Info: register_methods: global.total_C PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.CO2 └ add 1 * ocean.DIC ┌ Info: register_methods! ocean.carbchem ReactionCO2SYS │ modern default concentration Variables ["TS_conc", "TF_conc", "TB_conc", "Ca_conc"] │ adding input concentration Variables ["TCi_conc", "TB_conc", "TS_conc", "TF_conc", "Ca_conc"] │ adding additional output Variable %reaction%pCO2 (atm) 'CO2 partial pressure (fugacity corrected)' │ adding additional output Variable %reaction%xCO2dryinp () 'mixing ratio of CO2 in dry air at 1 atm (always > pCO2 due to H2O vapour pressure)' │ adding additional output Variable %reaction%CO2 (mol m-3) 'CO2 concentration' │ adding additional output Variable %reaction%CO3 (mol m-3) 'carbonate ion CO3-- concentration' │ adding additional output Variable %reaction%OmegaCA () 'calcite saturation' │ adding additional output Variable %reaction%OmegaAR () 'aragonite saturation' └ outputs ["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR"] at indices [16, 17, 11, 13, 36, 37] in res (pHfree = 1, H = 2, OH = 3, TA = 4, dTAdpH = 5, TS = 6, HSO4 = 7, TF = 8, HF = 9, TCi = 10, CO2 = 11, HCO3 = 12, CO3 = 13, CAlk = 14, fCO2 = 15, pCO2 = 16, xCO2dryinp = 17, TB = 18, BAlk = 19, TP = 20, H3PO4 = 21, H2PO4 = 22, HPO4 = 23, PO4 = 24, PengCorrection = 25, PAlk = 26, TSi = 27, SiAlk = 28, TH2S = 29, H2S = 30, HSAlk = 31, TNH3 = 32, NH4 = 33, NH3Alk = 34, Ca = 35, OmegaCA = 36, OmegaAR = 37) [ Info: oceansurface.airsea_CO2 IsotopeType=PALEOboxes.IsotopeLinear from isotope_name=CIsotope in external_parameters [ Info: register_methods! ReactionReservoirAtm atm.reservoir_CO2 field_data=PALEOboxes.IsotopeLinear ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ [ Info: Reaction global.total_C Variable global.total_C adding data=PALEOboxes.IsotopeLinear ┌ Info: _configure_variables: ReactionSum global.total_C variable_links: └ set variable_links: sum -> total_C ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_links: │ set variable_links: R -> DIC │ set variable_links: R_sms -> DIC_sms │ set variable_links: R_total -> DIC_total │ set variable_links: R_conc -> DIC_conc │ set variable_links: R_delta -> DIC_delta │ _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_attributes: │ set attribute: R :initial_value = 2.0 └ set attribute: R :initial_delta = -1.0 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_links: │ set variable_links: R -> TAlk │ set variable_links: R_sms -> TAlk_sms │ set variable_links: R_total -> TAlk_total │ set variable_links: R_conc -> TAlk_conc │ _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_attributes: └ set attribute: R :initial_value = 2.0 ┌ Info: _configure_variables: ReactionConstraintReservoir ocean.H_primary_species variable_links: │ set variable_links: R_constraint -> TAlk_constraint │ set variable_links: R_calc -> TAlk_calc │ set variable_links: R -> TAlk │ set variable_links: Primary_conc -> H_conc │ set variable_links: Primary_pconc -> pHfree │ _configure_variables: ReactionConstraintReservoir ocean.H_primary_species variable_attributes: │ set attribute: R_constraint :norm_value = 1.0 │ set attribute: Primary_pconc :initial_value = 8.0 └ set attribute: Primary_pconc :norm_value = 1.0 [ Info: find_transport_vars Domain ocean length(transport_vars)=2 num_components=3 ┌ Info: _configure_variables: ReactionCO2SYS ocean.carbchem variable_links: │ set variable_links: CO2 -> CO2_conc │ set variable_links: Ca_conc -> Ca_conc │ set variable_links: OmegaAR -> OmegaAR │ set variable_links: TCi_conc -> DIC_conc └ set variable_links: pCO2 -> pCO2 ┌ Info: _configure_variables: ReactionAirSea oceansurface.airsea_CO2 variable_links: │ set variable_links: Xatm_delta -> atm.CO2_delta └ set variable_links: Xocean_delta -> ocean.oceansurface.DIC_delta ┌ Info: _configure_variables: ReactionFluxTransfer oceansurface.transfer_AtmtoOceansurface variable_links: └ set variable_links: output_CO2 -> ocean.oceansurface.DIC_sms ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_links: │ set variable_links: R -> CO2 │ set variable_links: R_sms -> CO2_sms │ set variable_links: R_delta -> CO2_delta │ set variable_links: pRatm -> pCO2atm │ set variable_links: pRnorm -> pCO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_attributes: │ set attribute: R :norm_value = 4.956e16 └ set attribute: R :initial_value = 4.956e16 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ └ optional ocean.transport3box TEMP -| global.TEMP ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 1 variables (hostdep=nothing) [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 37 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain fluxAtmtoOceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain atm data dimensions PALEOboxes.NamedDimension[] allocating 5 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 0 0 0 0 │ ocean 0 2 0 1 0 1 0 │ oceansurface 0 0 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ fluxAtmtoOceansurface 0 0 0 0 0 0 0 │ atm 0 1 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 3 0 1 0 1 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 4 (stateexplicit 3 + statetotal 0 + state 1) │ n_equations 4 (stateexplicit 3 + total 0 + constraint 1) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): Any[] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ [ Info: prepare_do_carbchem: ocean.carbchem simd_width=1 using BufType Float64 ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> ocean.DIC_sms └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> atm.CO2_sms └ using Distribute transfer matrix size (input, output) (2, 1) * -1.0 ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.pHfree = 1.0 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.CO2 = 4.956e16, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.DIC = 1.0 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk = 1.0 * volume [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk_constraint = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.pHfree = 8.0 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.CO2 = 4.956e16, delta=0.0 [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.DIC = 2.0 * volume, delta=-1.0 [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk = 2.0 * volume [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk_constraint = 0.0 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: │ tspan: (0, 100000.0) │ algorithm: IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ Jacobian: ForwardDiffSparse │ using 1 BLAS threads └ ================================================================================ [ Info: DAEfunction: using Jacobian ForwardDiffSparse [ Info: jac_config_dae: jac_ad=ForwardDiffSparse [ Info: using ForwardDiff sparse Jacobian with sparsity calculated at t=0 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(14, 14) nnz=61 non-zero=55 at time=0 [ Info: fill_sparse_jac: initial_jac nnz 61 (31.1%) non-zero 55 [ Info: fill_sparse_jac: after filling diagonal nnz 61 [ Info: jac_prototype nnz=61 num colors=9 [ Info: add_arrays_data! (arrays_eltype=ForwardDiff.Dual{Nothing, Float64, 9}, arrays_tagname=jac_ad) [ Info: calling get_inconsistent_initial_deriv 16.345991 seconds (5.85 M allocations: 304.664 MiB, 0.76% gc time, 99.96% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 253 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 90 │ Number of linear solves: 0 │ Number of Jacobians created: 90 │ Number of nonlinear solver iterations: 251 │ Number of nonlinear solver convergence failures: 0 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 177 │ Number of rejected steps: 6 │ length(sol.t) 184 │ size(sol) (14, 184) └ ================================================================================ [ Info: ODE.calc_output_sol!: 184 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: done └ ================================================================================ global variables after integrate to steady-state: global.total_C = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=2.716940720545254e18, v_moldelta=-2.667380720545285e18, ‰=-0.9817588953541752)] atm variables after integrate to steady-state: atm.CO2_delta = [-10.188650897889271] atm.CO2_sms = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=-106.75, v_moldelta=1852.5, ‰=-17.353629976580795)] atm.pCO2PAL = [2.32828733489923] atm.pCO2atm = [0.0006519204537717844] atm.CO2 = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=1.1538992031760584e17, v_moldelta=-1.1756676152513462e18, ‰=-10.188650897889271)] ocean variables after integrate to steady-state: ocean.zmid = [-50.0, -125.0, -1891.0977226008872] ocean.TAlk_calc = [6.12000000000001e16, 2.700000000000004e16, 2.5791807205452826e18] ocean.TAlk_transport_input = [1.2622760000000025e15, 5.049104000000009e15, 5.049104000000008e15] ocean.DIC_conc = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=1.8575836674954582, v_moldelta=-3.1563586025290555, ‰=-1.6991743940043944), (v=1.9528260031560323, v_moldelta=-1.07063069038877, ‰=-0.5482468426057853), (v=1.952826003155967, v_moldelta=-1.0706306903879201, ‰=-0.5482468426053684)] ocean.TS_conc = [28.99779085444735, 28.99779085444735, 28.99779085444735] ocean.rho_ref = [1027.0, 1027.0, 1027.0] ocean.volume_total = [1.3336903602726387e18] ocean.CO2_conc = [0.020421357393033114, 0.03680774333075374, 0.036075208575780116] ocean.zupper = [0.0, 0.0, -100.0] ocean.TAlk_constraint = [0.0, 4.0, -512.0] ocean.TB_conc = [0.4269239, 0.4269239, 0.4269239] ocean.TAlk_conc = [2.000000000000003, 2.000000000000003, 2.0000000000000036] ocean.Ca_conc = [10.562253082772667, 10.562253082772667, 10.562253082772667] ocean.temp = [294.65, 275.65, 275.65] ocean.carbchem/OmegaCA = [2.434653129605657, 1.168537785500463, 0.7812108531250572] ocean.DIC_transport_input = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=1.2325026979798508e15, v_moldelta=-6.757157126700511e14, ‰=-0.5482468426053684), (v=4.869899734675301e15, v_moldelta=-4.0192449936931365e15, ‰=-0.8253239722934703), (v=4.930010791919568e15, v_moldelta=-2.70286285068235e15, ‰=-0.5482468426057853)] ocean.DIC_sms = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=-43.75, v_moldelta=258.0, ‰=-5.897142857142857), (v=-14.25, v_moldelta=35.0, ‰=-2.456140350877193), (v=165.0, v_moldelta=-2145.0, ‰=-13.0)] ocean.sal = [35.0, 35.0, 35.0] ocean.TAlk_total = [2.667380720545282e18] ocean.pressure = [50.0, 125.0, 1891.0977226008872] ocean.TAlk = [6.12000000000001e16, 2.7000000000000044e16, 2.579180720545282e18] ocean.DIC = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=5.684206022536102e16, v_moldelta=-9.65845732373891e16, ‰=-1.6991743940043944), (v=2.6363151042606436e16, v_moldelta=-1.4453514320248394e16, ‰=-0.5482468426057853), (v=2.5183455889596805e18, v_moldelta=-1.3806750177363018e18, ‰=-0.5482468426053684)] ocean.pCO2 = [0.0006413755380092524, 0.0006299214662906545, 0.0006173849909404717] ocean.TAlk_sms = [0.5, 1.0, -1.0] ocean.OmegaAR = [1.5895874300791224, 0.7369659679521006, 0.5034350327448417] ocean.rho = [1027.0, 1027.0, 1027.0] ocean.Abox = [3.06e14, 5.4e13, 3.6e14] ocean.carbchem/xCO2dryinp = [0.0006576943717955395, 0.0006344103064993362, 0.0006217844958309615] ocean.volume = [3.06e16, 1.35e16, 1.2895903602726387e18] ocean.TF_conc = [0.0701706373599532, 0.0701706373599532, 0.0701706373599532] ocean.pHtot = [7.804078767297969, 7.781280312812855, 7.706987620167616] ocean.DIC_delta = [-1.6991743940043944, -0.5482468426057853, -0.5482468426053684] ocean.H_conc = [1.2932605222307388e-5, 1.5310924215762746e-5, 1.8397011594876633e-5] ocean.DIC_total = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=2.601550800227648e18, v_moldelta=-1.4917131052939392e18, ‰=-0.5733938023287523)] ocean.zlower = [-100.0, -250.0, -3682.1954452017744] ocean.carbchem/CO3 = [0.10517298183893958, 0.05150150492897657, 0.049207619675444604] ocean.pHfree = [7.899884422993516, 7.8265690367206195, 7.746823161525789] GKS: Possible loss of precision in routine SET_WINDOW ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel test_reminO2 │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/test/configocean3box.yaml └ ================================================================================ ┌ Info: Model.parameters: └ CIsotope = IsotopeLinear ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 68 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.reservoir_DIC classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_TAlk classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.bioprod classname ReactionBioProdPrest │ set parameters: [config.yaml] bioprod =[1, 2, 0] │ set parameters: [config.yaml] bioprodval =[0.0, 0.18, NaN] │ set parameters: [Default] rCorgPO4 =106.0 │ set parameters: [Default] rNPO4 =16.0 │ set parameters: [config.yaml] rCcarbCorg =0.2 │ set parameters: [Default] trest =0.1 └ set parameters: [config.yaml] CIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.reservoir_O2 classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.const_cisotopes classname ReactionScalarConst └ set parameters: [config.yaml] constnames =["D_mccb_DIC", "D_B_mccb_mocb"] ┌ Info: create_reaction_from_config: ocean.export classname ReactionExportDirect │ set parameters: [config.yaml] fluxlist =["P", "N", "Corg::CIsotope", "Ccarb::CIsotope"] │ set parameters: [config.yaml] transportocean =[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] │ set parameters: [Default] transportfloor =Vector{Float64}[] └ set parameters: [Default] conserv_errthresh =1.0e-5 ┌ Info: create_reaction_from_config: ocean.remin classname ReactionReminO2 └ set parameters: [config.yaml] CIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.transport3box classname ReactionOceanTransport3box │ set parameters: [Default] circT =2.0e7 │ set parameters: [Default] circfhd =6.0e7 │ set parameters: [Default] temp =[21.5, 2.5, 2.5] └ set parameters: [Default] temp_trackglobal =false ┌ Info: create_reaction_from_config: ocean.reservoir_P classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=3 └ ================================================================================ ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=4 └ ================================================================================ ┌ Warning: create_domain_from_config Domain 'oceanfloor' empty 'reactions:' key in .yaml file └ @ PALEOboxes ~/.julia/packages/PALEOboxes/k4QWy/src/Domain.jl:349 ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: set ocean.oceansurface Subdomain size=2 [ Info: set ocean.oceanfloor Subdomain size=3 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["oceansurface", "oceanfloor"]) [ Info: oceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ [ Info: register_methods! ocean.export add ocean fluxlist=["P", "N", "Corg::CIsotope", "Ccarb::CIsotope"] [ Info: ocean.export add ocean fluxlist=["P", "N", "Corg::CIsotope", "Ccarb::CIsotope"] ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_links: │ set variable_links: R -> DIC │ set variable_links: R_sms -> DIC_sms │ set variable_links: R_total -> DIC_total │ set variable_links: R_conc -> DIC_conc │ set variable_links: R_delta -> DIC_delta │ _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_attributes: │ set attribute: R :initial_value = 2.0 └ set attribute: R :initial_delta = -1.0 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_links: │ set variable_links: R -> TAlk │ set variable_links: R_sms -> TAlk_sms │ set variable_links: R_total -> TAlk_total │ set variable_links: R_conc -> TAlk_conc │ _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_attributes: └ set attribute: R :initial_value = 2.0 ┌ Info: _configure_variables: ReactionBioProdPrest ocean.bioprod variable_links: │ set variable_links: prod_P -> export_P │ set variable_links: prod_N -> export_N │ set variable_links: prod_Corg -> export_Corg └ set variable_links: prod_Ccarb -> export_Ccarb ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: R_total -> O2_total │ set variable_links: R_conc -> O2_conc │ _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_attributes: └ set attribute: R :initial_value = 0.3 ┌ Info: _configure_variables: ReactionConst ocean.const_cisotopes variable_attributes: │ set attribute: D_mccb_DIC :initial_value = 0.0 └ set attribute: D_B_mccb_mocb :initial_value = 25.0 ┌ Info: _configure_variables: ReactionReminO2 ocean.remin variable_links: │ set variable_links: soluteflux_P -> P_sms │ set variable_links: soluteflux_TNH3 -> TNH3_sms │ set variable_links: soluteflux_DIC -> DIC_sms │ set variable_links: soluteflux_TAlk -> TAlk_sms └ set variable_links: soluteflux_O2 -> O2_sms [ Info: find_transport_vars Domain ocean length(transport_vars)=4 num_components=5 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_P variable_links: │ set variable_links: R -> P │ set variable_links: R_sms -> P_sms │ set variable_links: R_total -> P_total │ set variable_links: R_conc -> P_conc │ _configure_variables: ReactionReservoir ocean.reservoir_P variable_attributes: └ set attribute: R :initial_value = 0.002208 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ │ optional ocean.bioprod enable_bioprod -| global.enable_bioprod │ optional ocean.bioprod PELCALC -| global.PELCALC │ optional ocean.remin soluteflux_TNH3 -| TNH3_sms └ optional ocean.transport3box TEMP -| global.TEMP ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 0 variables (hostdep=nothing) [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 48 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 0 0 0 0 │ ocean 0 4 0 0 0 0 0 │ oceansurface 0 0 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 4 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 4 (stateexplicit 4 + statetotal 0 + state 0) │ n_equations 4 (stateexplicit 4 + total 0 + constraint 0) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): Any[] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: ocean.const_cisotopes.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.D_mccb_DIC = 0.0 [ Info: init_values! :initial_value ocean.D_B_mccb_mocb = 25.0 [ Info: setup_export_direct: ocean.export ocean vertical transport from Parameter 'transportocean' = [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.DIC = 1.0 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk = 1.0 * volume [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.O2 = 1.0 * volume [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.P = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.DIC = 2.0 * volume, delta=-1.0 [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk = 2.0 * volume [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.O2 = 0.3 * volume [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.P = 0.002208 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ state, sms variables after check model derivative: ocean.P [6.75648e13, 2.9808e13, 2.847415515481986e15] ocean.P_sms [-6.75648e14, -1.00335794688e12, 6.7665135794688e14] ocean.DIC PALEOboxes.IsotopeLinear{Float64, Float64}[(v=6.12e16, v_moldelta=-6.12e16, ‰=-1.0), (v=2.7e16, v_moldelta=-2.7e16, ‰=-1.0), (v=2.5791807205452774e18, v_moldelta=-2.5791807205452774e18, ‰=-1.0)] ocean.DIC_sms PALEOboxes.IsotopeLinear{Float64, Float64}[(v=-8.59424256e16, v_moldelta=1.8764096256e18, ‰=-21.833333333333332), (v=-1.276271308431355e14, v_moldelta=2.7865256900751355e15, ‰=-21.833333333333414), (v=8.607005273084314e16, v_moldelta=-1.8791961512900751e18, ‰=-21.833333333333332)] ocean.O2 [9.18e15, 4.05e15, 3.868771080817916e17] ocean.O2_sms [9.3239424e16, 1.3846339666944e14, -9.337788739666944e16] ocean.TAlk [6.12e16, 2.7e16, 2.5791807205452774e18] ocean.TAlk_sms [-1.71614592e16, -2.54852918507515e13, 1.7186944491850752e16] ocean model created variables after check model derivative: ocean.zmid = [-50.0, -125.0, -1891.0977226008872] ocean.TAlk_transport_input = [1.262276e15, 5.049104e15, 5.049104e15] ocean.DIC_conc = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=2.0, v_moldelta=-2.0, ‰=-1.0), (v=2.0, v_moldelta=-2.0, ‰=-1.0), (v=2.0, v_moldelta=-2.0, ‰=-1.0)] ocean.Prod_Corg_total = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=7.172504394236928e16, v_moldelta=-1.8648511425016013e18, ‰=-26.0)] ocean.rho_ref = [1027.0, 1027.0, 1027.0] ocean.P_total = [2.944788315481986e15] ocean.volume_total = [1.3336903602726387e18] ocean.zupper = [0.0, 0.0, -100.0] ocean.O2_conc = [0.3, 0.3, 0.3] ocean.D_B_mccb_mocb = [25.0] ocean.reminOrgOxO2_total = [-9.337788739666944e16] ocean.TAlk_conc = [2.0, 2.0, 2.0] ocean.temp = [294.65, 275.65, 275.65] ocean.P_conc = [0.002208, 0.002208, 0.002208] ocean.DIC_transport_input = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=1.262276e15, v_moldelta=-1.262276e15, ‰=-1.0), (v=5.049104e15, v_moldelta=-5.049104e15, ‰=-1.0), (v=5.049104e15, v_moldelta=-5.049104e15, ‰=-1.0)] ocean.remin_P = [0.0, 0.0, 6.7665135794688e14] ocean.sal = [35.0, 35.0, 35.0] ocean.O2_transport_input = [1.893414e14, 7.573656e14, 7.573656e14] ocean.TAlk_total = [2.6673807205452774e18] ocean.export_P = [6.75648e14, 1.00335794688e12, 0.0] ocean.O2_total = [4.001071080817916e17] ocean.pressure = [50.0, 125.0, 1891.0977226008872] ocean.export_Corg = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=7.1618688e16, v_moldelta=-1.862085888e18, ‰=-26.0), (v=1.0635594236928e14, v_moldelta=-2.76525450160128e15, ‰=-26.0), (v=0.0, v_moldelta=0.0, ‰=NaN)] ocean.D_mccb_DIC = [0.0] ocean.bioprod/Prod_Corg = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=7.1618688e16, v_moldelta=-1.862085888e18, ‰=-26.0), (v=1.0635594236928e14, v_moldelta=-2.76525450160128e15, ‰=-26.0), (v=0.0, v_moldelta=-0.0, ‰=NaN)] ocean.remin_Ccarb = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=0.0, v_moldelta=0.0, ‰=NaN), (v=0.0, v_moldelta=0.0, ‰=NaN), (v=1.4345008788473856e16, v_moldelta=-1.4345008788473856e16, ‰=-1.0)] ocean.Prod_Ccarb_total = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=1.4345008788473856e16, v_moldelta=-1.4345008788473856e16, ‰=-1.0)] ocean.rho = [1027.0, 1027.0, 1027.0] ocean.Abox = [3.06e14, 5.4e13, 3.6e14] ocean.remin_Corg = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=0.0, v_moldelta=0.0, ‰=NaN), (v=0.0, v_moldelta=0.0, ‰=NaN), (v=7.172504394236928e16, v_moldelta=-1.8648511425016013e18, ‰=-26.0)] ocean.volume = [3.06e16, 1.35e16, 1.2895903602726387e18] ocean.export_N = [1.0810368e16, 1.605372715008e13, 0.0] ocean.bioprod/Prod_Ccarb = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=1.43237376e16, v_moldelta=-1.43237376e16, ‰=-1.0), (v=2.1271188473856e13, v_moldelta=-2.1271188473856e13, ‰=-1.0), (v=0.0, v_moldelta=-0.0, ‰=NaN)] ocean.remin_N = [0.0, 0.0, 1.082642172715008e16] ocean.reminOrgOxO2 = [-0.0, -0.0, -9.337788739666944e16] ocean.DIC_delta = [-1.0, -1.0, -1.0] ocean.DIC_total = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=2.6673807205452774e18, v_moldelta=-2.6673807205452774e18, ‰=-1.0)] ocean.zlower = [-100.0, -250.0, -3682.1954452017744] ocean.export_Ccarb = PALEOboxes.IsotopeLinear{Float64, Float64}[(v=1.43237376e16, v_moldelta=-1.43237376e16, ‰=-1.0), (v=2.1271188473856e13, v_moldelta=-2.1271188473856e13, ‰=-1.0), (v=0.0, v_moldelta=0.0, ‰=NaN)] ocean.P_transport_input = [1.393552704e12, 5.574210816e12, 5.574210816e12] check conservation: sum(P_sms)=0.0 check conservation: sum(O2_sms)=0.0 ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: │ tspan: (0, 100000.0) │ algorithm: CVODE_BDF{:Newton, :Dense, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ Jacobian: NoJacobian │ steadystate: false │ using 1 BLAS threads └ ================================================================================ [ Info: ODEfunction: using Jacobian NoJacobian [ Info: jac_config_ode: jac_ad=NoJacobian 3.193708 seconds (1.74 M allocations: 97.602 MiB, 1.94% gc time, 99.92% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=CVODE_BDF{:Newton, :Dense, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 174 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 37 │ Number of linear solves: 0 │ Number of Jacobians created: 3 │ Number of nonlinear solver iterations: 171 │ Number of nonlinear solver convergence failures: 0 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 132 │ Number of rejected steps: 4 │ length(sol.t) 137 │ size(sol) (15, 137) └ ================================================================================ [ Info: ODE.calc_output_sol!: 137 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: done └ ================================================================================ ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel test_reminPonly │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/test/configocean3box.yaml └ ================================================================================ ┌ Info: Model.parameters: └ CIsotope = ScalarData ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 68 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.bioprod classname ReactionBioProdPrest │ set parameters: [config.yaml] bioprod =[1, 2, 0] │ set parameters: [config.yaml] bioprodval =[0.0, 0.18, NaN] │ set parameters: [Default] rCorgPO4 =106.0 │ set parameters: [Default] rNPO4 =16.0 │ set parameters: [Default] rCcarbCorg =0.0 │ set parameters: [Default] trest =0.1 └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: ocean.export classname ReactionExportDirect │ set parameters: [config.yaml] fluxlist =["P"] │ set parameters: [config.yaml] transportocean =[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] │ set parameters: [Default] transportfloor =Vector{Float64}[] └ set parameters: [Default] conserv_errthresh =1.0e-5 ┌ Info: create_reaction_from_config: ocean.remin classname ReactionReminPonly └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: ocean.transport3box classname ReactionOceanTransport3box │ set parameters: [Default] circT =2.0e7 │ set parameters: [Default] circfhd =6.0e7 │ set parameters: [Default] temp =[21.5, 2.5, 2.5] └ set parameters: [Default] temp_trackglobal =false ┌ Info: create_reaction_from_config: ocean.reservoir_P classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=3 └ ================================================================================ ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=4 └ ================================================================================ ┌ Warning: create_domain_from_config Domain 'oceanfloor' empty 'reactions:' key in .yaml file └ @ PALEOboxes ~/.julia/packages/PALEOboxes/k4QWy/src/Domain.jl:349 ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: set ocean.oceansurface Subdomain size=2 [ Info: set ocean.oceanfloor Subdomain size=3 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["oceansurface", "oceanfloor"]) [ Info: oceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ [ Info: register_methods! ocean.export add ocean fluxlist=["P"] [ Info: ocean.export add ocean fluxlist=["P"] ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ ┌ Info: _configure_variables: ReactionBioProdPrest ocean.bioprod variable_links: │ set variable_links: prod_P -> export_P │ set variable_links: prod_N -> export_N │ set variable_links: prod_Corg -> export_Corg └ set variable_links: prod_Ccarb -> export_Ccarb ┌ Info: _configure_variables: ReactionReminPonly ocean.remin variable_links: │ set variable_links: soluteflux_P -> P_sms │ set variable_links: soluteflux_TNH3 -> TNH3_sms │ set variable_links: soluteflux_DIC -> DIC_sms └ set variable_links: soluteflux_TAlk -> TAlk_sms [ Info: find_transport_vars Domain ocean length(transport_vars)=1 num_components=1 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_P variable_links: │ set variable_links: R -> P │ set variable_links: R_sms -> P_sms │ set variable_links: R_total -> P_total │ set variable_links: R_conc -> P_conc │ _configure_variables: ReactionReservoir ocean.reservoir_P variable_attributes: └ set attribute: R :initial_value = 0.002208 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ │ optional ocean.bioprod O2_sms -| O2_sms │ optional ocean.bioprod TAlk_sms -| TAlk_sms │ optional ocean.bioprod DIC_sms -| DIC_sms │ optional ocean.bioprod enable_bioprod -| global.enable_bioprod │ optional ocean.bioprod PELCALC -| global.PELCALC │ optional ocean.bioprod prod_N -| export_N │ optional ocean.bioprod prod_Corg -| export_Corg │ optional ocean.bioprod prod_Ccarb -| export_Ccarb │ optional ocean.remin soluteflux_TNH3 -| TNH3_sms │ optional ocean.remin soluteflux_DIC -| DIC_sms │ optional ocean.remin soluteflux_TAlk -| TAlk_sms └ optional ocean.transport3box TEMP -| global.TEMP ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 0 variables (hostdep=nothing) [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 25 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 0 0 0 0 │ ocean 0 1 0 0 0 0 0 │ oceansurface 0 0 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 1 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 1 (stateexplicit 1 + statetotal 0 + state 0) │ n_equations 1 (stateexplicit 1 + total 0 + constraint 0) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): Any[] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: setup_export_direct: ocean.export ocean vertical transport from Parameter 'transportocean' = [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.P = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.P = 0.002208 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ state, sms variables after check model derivative: ocean.P [6.75648e13, 2.9808e13, 2.847415515481986e15] ocean.P_sms [-6.75648e14, -1.00335794688e12, 6.7665135794688e14] ocean model created variables after check model derivative: ocean.zmid = [-50.0, -125.0, -1891.0977226008872] ocean.Prod_Corg_total = [7.172504394236928e16] ocean.rho_ref = [1027.0, 1027.0, 1027.0] ocean.volume_total = [1.3336903602726387e18] ocean.P_total = [2.944788315481986e15] ocean.zupper = [0.0, 0.0, -100.0] ocean.temp = [294.65, 275.65, 275.65] ocean.P_conc = [0.002208, 0.002208, 0.002208] ocean.export_P = [6.75648e14, 1.00335794688e12, 0.0] ocean.remin_P = [0.0, 0.0, 6.7665135794688e14] ocean.sal = [35.0, 35.0, 35.0] ocean.pressure = [50.0, 125.0, 1891.0977226008872] ocean.bioprod/Prod_Corg = [7.1618688e16, 1.0635594236928e14, 0.0] ocean.remin_Ccarb = [0.0, 0.0, 0.0] ocean.Prod_Ccarb_total = [0.0] ocean.rho = [1027.0, 1027.0, 1027.0] ocean.remin_Corg = [0.0, 0.0, 0.0] ocean.Abox = [3.06e14, 5.4e13, 3.6e14] ocean.volume = [3.06e16, 1.35e16, 1.2895903602726387e18] ocean.bioprod/Prod_Ccarb = [0.0, 0.0, 0.0] ocean.remin_N = [0.0, 0.0, 0.0] ocean.zlower = [-100.0, -250.0, -3682.1954452017744] ocean.P_transport_input = [1.393552704e12, 5.574210816e12, 5.574210816e12] check conservation: sum(P_sms)=0.0 ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: │ tspan: (0, 100000.0) │ algorithm: CVODE_BDF{:Newton, :Dense, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ Jacobian: NoJacobian │ steadystate: false │ using 1 BLAS threads └ ================================================================================ [ Info: ODEfunction: using Jacobian NoJacobian [ Info: jac_config_ode: jac_ad=NoJacobian 2.723818 seconds (1.71 M allocations: 96.348 MiB, 2.49% gc time, 99.96% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=CVODE_BDF{:Newton, :Dense, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 139 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 30 │ Number of linear solves: 0 │ Number of Jacobians created: 3 │ Number of nonlinear solver iterations: 136 │ Number of nonlinear solver convergence failures: 0 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 104 │ Number of rejected steps: 4 │ length(sol.t) 109 │ size(sol) (3, 109) └ ================================================================================ [ Info: ODE.calc_output_sol!: 109 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: done └ ================================================================================ ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel test_bioprodPrest │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/test/configocean3box.yaml └ ================================================================================ ┌ Info: Model.parameters: └ CIsotope = ScalarData ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 68 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.bioprod classname ReactionBioProdPrest │ set parameters: [config.yaml] bioprod =[1, 2, 0] │ set parameters: [config.yaml] bioprodval =[0.0, 0.18, NaN] │ set parameters: [Default] rCorgPO4 =106.0 │ set parameters: [Default] rNPO4 =16.0 │ set parameters: [Default] rCcarbCorg =0.0 │ set parameters: [Default] trest =0.1 └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: ocean.export classname ReactionExportDirect │ set parameters: [config.yaml] fluxlist =["P"] │ set parameters: [config.yaml] transportocean =[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] │ set parameters: [Default] transportfloor =Vector{Float64}[] └ set parameters: [Default] conserv_errthresh =1.0e-5 ┌ Info: create_reaction_from_config: ocean.transport3box classname ReactionOceanTransport3box │ set parameters: [Default] circT =2.0e7 │ set parameters: [Default] circfhd =6.0e7 │ set parameters: [Default] temp =[21.5, 2.5, 2.5] └ set parameters: [Default] temp_trackglobal =false ┌ Info: create_reaction_from_config: ocean.reservoir_P classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=3 └ ================================================================================ ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=4 └ ================================================================================ ┌ Warning: create_domain_from_config Domain 'oceanfloor' empty 'reactions:' key in .yaml file └ @ PALEOboxes ~/.julia/packages/PALEOboxes/k4QWy/src/Domain.jl:349 ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: set ocean.oceansurface Subdomain size=2 [ Info: set ocean.oceanfloor Subdomain size=3 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["oceansurface", "oceanfloor"]) [ Info: oceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ [ Info: register_methods! ocean.export add ocean fluxlist=["P"] [ Info: ocean.export add ocean fluxlist=["P"] ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ ┌ Info: _configure_variables: ReactionBioProdPrest ocean.bioprod variable_links: │ set variable_links: prod_P -> export_P │ set variable_links: prod_N -> export_N │ set variable_links: prod_Corg -> export_Corg └ set variable_links: prod_Ccarb -> export_Ccarb ┌ Info: _configure_variables: ReactionExportDirect ocean.export variable_links: └ set variable_links: remin_P -> P_sms [ Info: find_transport_vars Domain ocean length(transport_vars)=1 num_components=1 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_P variable_links: │ set variable_links: R -> P │ set variable_links: R_sms -> P_sms │ set variable_links: R_total -> P_total │ set variable_links: R_conc -> P_conc │ _configure_variables: ReactionReservoir ocean.reservoir_P variable_attributes: └ set attribute: R :initial_value = 0.002208 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ │ optional ocean.bioprod O2_sms -| O2_sms │ optional ocean.bioprod TAlk_sms -| TAlk_sms │ optional ocean.bioprod DIC_sms -| DIC_sms │ optional ocean.bioprod enable_bioprod -| global.enable_bioprod │ optional ocean.bioprod PELCALC -| global.PELCALC │ optional ocean.bioprod prod_N -| export_N │ optional ocean.bioprod prod_Corg -| export_Corg │ optional ocean.bioprod prod_Ccarb -| export_Ccarb └ optional ocean.transport3box TEMP -| global.TEMP ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 0 variables (hostdep=nothing) [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 21 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 0 0 0 0 │ ocean 0 1 0 0 0 0 0 │ oceansurface 0 0 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 1 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 1 (stateexplicit 1 + statetotal 0 + state 0) │ n_equations 1 (stateexplicit 1 + total 0 + constraint 0) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): Any[] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: setup_export_direct: ocean.export ocean vertical transport from Parameter 'transportocean' = [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.P = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.P = 0.002208 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ state, sms variables after check model derivative: ocean.P [6.75648e13, 2.9808e13, 2.847415515481986e15] ocean.P_sms [-6.75648e14, -1.00335794688e12, 6.7665135794688e14] ocean model created variables after check model derivative: ocean.P_transport_input = [1.393552704e12, 5.574210816e12, 5.574210816e12] ocean.zmid = [-50.0, -125.0, -1891.0977226008872] ocean.pressure = [50.0, 125.0, 1891.0977226008872] ocean.Prod_Corg_total = [7.172504394236928e16] ocean.rho_ref = [1027.0, 1027.0, 1027.0] ocean.volume_total = [1.3336903602726387e18] ocean.P_total = [2.944788315481986e15] ocean.bioprod/Prod_Corg = [7.1618688e16, 1.0635594236928e14, 0.0] ocean.Prod_Ccarb_total = [0.0] ocean.rho = [1027.0, 1027.0, 1027.0] ocean.zupper = [0.0, 0.0, -100.0] ocean.Abox = [3.06e14, 5.4e13, 3.6e14] ocean.volume = [3.06e16, 1.35e16, 1.2895903602726387e18] ocean.bioprod/Prod_Ccarb = [0.0, 0.0, 0.0] ocean.temp = [294.65, 275.65, 275.65] ocean.P_conc = [0.002208, 0.002208, 0.002208] ocean.zlower = [-100.0, -250.0, -3682.1954452017744] ocean.export_P = [6.75648e14, 1.00335794688e12, 0.0] ocean.sal = [35.0, 35.0, 35.0] check conservation: sum(P_sms)=0.0 ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: │ tspan: (0, 100000.0) │ algorithm: CVODE_BDF{:Newton, :Dense, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ Jacobian: NoJacobian │ steadystate: false │ using 1 BLAS threads └ ================================================================================ [ Info: ODEfunction: using Jacobian NoJacobian [ Info: jac_config_ode: jac_ad=NoJacobian 0.000812 seconds (2.31 k allocations: 76.969 KiB) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=CVODE_BDF{:Newton, :Dense, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 139 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 30 │ Number of linear solves: 0 │ Number of Jacobians created: 3 │ Number of nonlinear solver iterations: 136 │ Number of nonlinear solver convergence failures: 0 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 104 │ Number of rejected steps: 4 │ length(sol.t) 109 │ size(sol) (3, 109) └ ================================================================================ [ Info: ODE.calc_output_sol!: 109 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: done └ ================================================================================ ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel test_airsea_O2 │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/test/configocean3box.yaml └ ================================================================================ ┌ Warning: empty Model.parameters └ @ PALEOboxes ~/.julia/packages/PALEOboxes/k4QWy/src/Model.jl:261 [ Info: ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 68 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: global.total_O2 classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.O", "ocean.O2"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.reservoir_scalar classname ReactionReservoirScalar │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] const =false └ set parameters: [Default] state_norm =false ┌ Info: create_reaction_from_config: ocean.reservoir_O2 classname ReactionReservoir │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =false │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_tracer classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.transport3box classname ReactionOceanTransport3box │ set parameters: [Default] circT =2.0e7 │ set parameters: [Default] circfhd =6.0e7 │ set parameters: [Default] temp =[21.5, 2.5, 2.5] └ set parameters: [Default] temp_trackglobal =false ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=3 └ ================================================================================ ┌ Info: create_reaction_from_config: oceansurface.airsea_O2 classname ReactionAirSeaO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [Default] moistair =true │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =3.0 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=4 └ ================================================================================ ┌ Warning: create_domain_from_config Domain 'oceanfloor' empty 'reactions:' key in .yaml file └ @ PALEOboxes ~/.julia/packages/PALEOboxes/k4QWy/src/Domain.jl:349 ┌ Info: │ ================================================================================ │ creating domain 'fluxAtmtoOceansurface' ID=5 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtmtoOceansurface.fluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["O2"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'atm' ID=6 └ ================================================================================ ┌ Info: create_reaction_from_config: atm.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: create_reaction_from_config: atm.reservoir_O classname ReactionReservoirAtm │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: set ocean.oceansurface Subdomain size=2 [ Info: set ocean.oceanfloor Subdomain size=3 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["oceansurface", "oceanfloor"]) [ Info: fluxAtmtoOceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ ┌ Info: register_methods: global.total_O2 PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.O └ add 1 * ocean.O2 [ Info: register_methods! ReactionReservoirAtm atm.reservoir_O field_data=PALEOboxes.ScalarData ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ [ Info: Reaction global.total_O2 Variable global.total_O2 adding data=PALEOboxes.ScalarData ┌ Info: _configure_variables: ReactionSum global.total_O2 variable_links: └ set variable_links: sum -> total_O2 ┌ Info: _configure_variables: ReactionReservoirScalar ocean.reservoir_scalar variable_links: │ set variable_links: R -> Scalar │ set variable_links: R_sms -> Scalar_sms │ set variable_links: R_norm -> Scalar_norm │ _configure_variables: ReactionReservoirScalar ocean.reservoir_scalar variable_attributes: └ set attribute: R :initial_value = 1.0 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: R_conc -> O2_conc │ _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_attributes: └ set attribute: R :initial_value = 0.001 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_tracer variable_links: │ set variable_links: R -> Tracer │ set variable_links: R_sms -> Tracer_sms │ set variable_links: R_total -> Tracer_total │ set variable_links: R_conc -> Tracer_conc │ _configure_variables: ReactionReservoir ocean.reservoir_tracer variable_attributes: └ set attribute: R :initial_value = 1.0 [ Info: find_transport_vars Domain ocean length(transport_vars)=2 num_components=2 ┌ Info: _configure_variables: ReactionFluxTransfer atm.transfer_AtmtoOceansurface variable_links: └ set variable_links: output_O2 -> O_sms ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_O variable_links: │ set variable_links: R -> O │ set variable_links: R_sms -> O_sms │ set variable_links: pRatm -> pO2atm │ set variable_links: pRnorm -> pO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_O variable_attributes: │ set attribute: R :norm_value = 3.7e19 └ set attribute: R :initial_value = 3.7e19 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ └ optional ocean.transport3box TEMP -| global.TEMP ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 1 variables (hostdep=nothing) [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 23 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain fluxAtmtoOceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain atm data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 0 0 0 0 │ ocean 0 3 0 0 0 0 0 │ oceansurface 0 0 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ fluxAtmtoOceansurface 0 0 0 0 0 0 0 │ atm 0 1 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 4 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 4 (stateexplicit 4 + statetotal 0 + state 0) │ n_equations 4 (stateexplicit 4 + total 0 + constraint 0) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): Any[] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ O2 fluxAtmtoOceansurface.flux_O2 -> ocean.O2_sms └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ O2 fluxAtmtoOceansurface.flux_O2 -> atm.O_sms └ using Distribute transfer matrix size (input, output) (2, 1) * -1.0 ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: init_values! :norm_value ocean.Scalar = 1.0 [ Info: atm.reservoir_O.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.O = 3.7e19 [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.O2 = 1.0 * volume [ Info: ocean.reservoir_tracer.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.Tracer = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: init_values! :initial_value ocean.Scalar = 1.0 [ Info: atm.reservoir_O.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.O = 3.7e19 [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.O2 = 0.001 * volume [ Info: ocean.reservoir_tracer.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.Tracer = 1.0 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ocean model created variables after initialize!: ocean.O2_transport_input = [NaN, NaN, NaN] ocean.zmid = [-50.0, -125.0, -1891.0977226008872] ocean.pressure = [50.0, 125.0, 1891.0977226008872] ocean.Scalar_norm = [NaN] ocean.rho_ref = [1027.0, 1027.0, 1027.0] ocean.volume_total = [1.3336903602726387e18] ocean.Tracer_transport_input = [NaN, NaN, NaN] ocean.rho = [1027.0, 1027.0, 1027.0] ocean.zupper = [0.0, 0.0, -100.0] ocean.Tracer_conc = [NaN, NaN, NaN] ocean.Abox = [3.06e14, 5.4e13, 3.6e14] ocean.volume = [3.06e16, 1.35e16, 1.2895903602726387e18] ocean.O2_conc = [NaN, NaN, NaN] ocean.temp = [NaN, NaN, NaN] ocean.Tracer_total = [NaN] ocean.zlower = [-100.0, -250.0, -3682.1954452017744] ocean.sal = [35.0, 35.0, 35.0] state, sms variables after check model derivative: ocean.Tracer [1.0, 0.0, 0.0] ocean.Tracer_sms [-0.02062542483660131, 0.02062542483660131, 0.0] ocean.O2 [3.06e13, 1.35e13, 1.2895903602726388e15] ocean.O2_sms [7.47272142034417e16, 1.9820872245380964e16, 0.0] ocean.Scalar [1.0] ocean.Scalar_sms [0.0] atm.O [3.7e19] atm.O_sms [-9.454808644882266e16] check conservation: sum(Tracer_sms)=0.0 ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: │ tspan: (0, 100000.0) │ algorithm: CVODE_BDF{:Newton, :Dense, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ Jacobian: NoJacobian │ steadystate: false │ using 1 BLAS threads └ ================================================================================ [ Info: ODEfunction: using Jacobian NoJacobian [ Info: jac_config_ode: jac_ad=NoJacobian 3.032835 seconds (1.82 M allocations: 102.937 MiB, 2.11% gc time, 99.95% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=CVODE_BDF{:Newton, :Dense, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 141 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 31 │ Number of linear solves: 0 │ Number of Jacobians created: 3 │ Number of nonlinear solver iterations: 138 │ Number of nonlinear solver convergence failures: 0 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 113 │ Number of rejected steps: 1 │ length(sol.t) 115 │ size(sol) (8, 115) └ ================================================================================ [ Info: ODE.calc_output_sol!: 115 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: done └ ================================================================================ ┌ Warning: No strict ticks found └ @ PlotUtils ~/.julia/packages/PlotUtils/dVEMd/src/ticks.jl:194 ┌ Warning: No strict ticks found └ @ PlotUtils ~/.julia/packages/PlotUtils/dVEMd/src/ticks.jl:194 ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel example_advect │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/transport_examples/TransportExamples_cfg.yaml └ ================================================================================ [ Info: Model.parameters: ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 71 Reactions ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.reservoir_T classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.grid_2column classname ReactionOceanColumnGrid │ set parameters: [config.yaml] area =[2.0e14, 2.0e13] │ set parameters: [config.yaml] depth =2000.0 └ set parameters: [config.yaml] nlayers =[100, 100] ┌ Info: create_reaction_from_config: ocean.transport_advect classname ReactionTransportAdvectExample └ set parameters: [config.yaml] T =2.0e7 ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=2 └ ================================================================================ ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=3 └ ================================================================================ ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: set_model_geometry: ocean.grid_2column columns=2, areas=[2.0e14, 2.0e13], depth=2000.0, nlayers=[100, 100] [ Info: set ocean.oceansurface Subdomain size=2 [ Info: set ocean.oceanfloor Subdomain size=2 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=200 grid=UnstructuredColumnGrid(ncells=200, columns: 2, columnnames=[:a, :b], subdomains: ["oceansurface", "oceanfloor"]) [ Info: oceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:a => 1, :b => 2), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:a => 1, :b => 2), subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_T variable_links: │ set variable_links: R -> T │ set variable_links: R_sms -> T_sms │ set variable_links: R_total -> T_total │ set variable_links: R_conc -> T_conc │ _configure_variables: ReactionReservoir ocean.reservoir_T variable_attributes: │ set attribute: R :norm_value = 1.0 └ set attribute: R :initial_value = 0.0 [ Info: find_transport_vars Domain ocean length(transport_vars)=1 num_components=1 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: └ ================================================================================ ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 13 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 1 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ ocean 0 1 0 0 0 0 0 │ oceansurface 0 0 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 1 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 1 (stateexplicit 1 + statetotal 0 + state 0) │ n_equations 1 (stateexplicit 1 + total 0 + constraint 0) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): Any[] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: do_setup_grid: ocean.grid_2column creating 2 ocean columns, depth=2000.0 (m), area=[2.0e14, 2.0e13] (m^2) [ Info: do_setup_advect: ocean.transport_advect adding advective flux 2.0e7 (m^3 s-1) around loop [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 200, 199, 198, 197, 196, 195, 194, 193, 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, 171, 170, 169, 168, 167, 166, 165, 164, 163, 162, 161, 160, 159, 158, 157, 156, 155, 154, 153, 152, 151, 150, 149, 148, 147, 146, 145, 144, 143, 142, 141, 140, 139, 138, 137, 136, 135, 134, 133, 132, 131, 130, 129, 128, 127, 126, 125, 124, 123, 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, 110, 109, 108, 107, 106, 105, 104, 103, 102, 101, 1] ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: ocean.reservoir_T.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.T = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: ocean.reservoir_T.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.T = 0.0 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: │ tspan: (0.0, 5000.0) │ algorithm: CVODE_BDF{:Newton, :KLU, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ Jacobian: ForwardDiffSparse │ steadystate: false │ using 1 BLAS threads └ ================================================================================ [ Info: ODEfunction: using Jacobian ForwardDiffSparse [ Info: jac_config_ode: jac_ad=ForwardDiffSparse [ Info: using ForwardDiff sparse Jacobian with sparsity calculated at t=0.0 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(200, 200) nnz=400 non-zero=400 at time=0.0 [ Info: fill_sparse_jac: initial_jac nnz 400 (1.0%) non-zero 400 [ Info: fill_sparse_jac: after filling diagonal nnz 400 [ Info: add_arrays_data! (arrays_eltype=ForwardDiff.Dual{Nothing, Float64, 2}, arrays_tagname=jac_ad) [ Info: jac_prototype nnz=400 num colors=2 chunksize=2) 6.180816 seconds (2.88 M allocations: 167.538 MiB, 1.04% gc time, 99.04% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=CVODE_BDF{:Newton, :KLU, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 1825 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 133 │ Number of linear solves: 0 │ Number of Jacobians created: 30 │ Number of nonlinear solver iterations: 1824 │ Number of nonlinear solver convergence failures: 0 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 1749 │ Number of rejected steps: 8 │ length(sol.t) 1758 │ size(sol) (200, 1758) └ ================================================================================ [ Info: ODE.calc_output_sol!: 1758 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: done └ ================================================================================ conservation checks: check ocean.T_total 4.0e16 3.9999999999999976e16 1.0e-14 ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel example_diffuse │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/transport_examples/TransportExamples_cfg.yaml └ ================================================================================ [ Info: Model.parameters: ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 71 Reactions ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.transport_diffuse classname ReactionTransportDiffuseExample └ set parameters: [config.yaml] Kz =1.0e-5 ┌ Info: create_reaction_from_config: ocean.reservoir_T classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.grid_2column classname ReactionOceanColumnGrid │ set parameters: [config.yaml] area =[2.0e14, 2.0e14] │ set parameters: [config.yaml] depth =2000.0 └ set parameters: [config.yaml] nlayers =[100, 10] ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=2 └ ================================================================================ ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=3 └ ================================================================================ ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: set_model_geometry: ocean.grid_2column columns=2, areas=[2.0e14, 2.0e14], depth=2000.0, nlayers=[100, 10] [ Info: set ocean.oceansurface Subdomain size=2 [ Info: set ocean.oceanfloor Subdomain size=2 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=110 grid=UnstructuredColumnGrid(ncells=110, columns: 2, columnnames=[:a, :b], subdomains: ["oceansurface", "oceanfloor"]) [ Info: oceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:a => 1, :b => 2), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:a => 1, :b => 2), subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ [ Info: find_transport_vars Domain ocean length(transport_vars)=1 num_components=1 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_T variable_links: │ set variable_links: R -> T │ set variable_links: R_sms -> T_sms │ set variable_links: R_total -> T_total │ set variable_links: R_conc -> T_conc │ _configure_variables: ReactionReservoir ocean.reservoir_T variable_attributes: │ set attribute: R :norm_value = 1.0 └ set attribute: R :initial_value = 0.0 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: └ ================================================================================ ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 13 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 1 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ ocean 0 1 0 0 0 0 0 │ oceansurface 0 0 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 1 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 1 (stateexplicit 1 + statetotal 0 + state 0) │ n_equations 1 (stateexplicit 1 + total 0 + constraint 0) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): Any[] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: do_setup_grid: ocean.grid_2column creating 2 ocean columns, depth=2000.0 (m), area=[2.0e14, 2.0e14] (m^2) [ Info: do_setup_diffuse: ocean.transport_diffuse adding constant diffusive flux for Kz=1.0e-5 (m^2 s-1) ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: ocean.reservoir_T.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.T = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: ocean.reservoir_T.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.T = 0.0 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: │ tspan: (0.0, 1.0e6) │ algorithm: CVODE_BDF{:Newton, :KLU, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ Jacobian: ForwardDiffSparse │ steadystate: false │ using 1 BLAS threads └ ================================================================================ [ Info: ODEfunction: using Jacobian ForwardDiffSparse [ Info: jac_config_ode: jac_ad=ForwardDiffSparse [ Info: using ForwardDiff sparse Jacobian with sparsity calculated at t=0.0 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(110, 110) nnz=326 non-zero=326 at time=0.0 [ Info: fill_sparse_jac: initial_jac nnz 326 (2.69%) non-zero 326 [ Info: fill_sparse_jac: after filling diagonal nnz 326 [ Info: add_arrays_data! (arrays_eltype=ForwardDiff.Dual{Nothing, Float64, 3}, arrays_tagname=jac_ad) [ Info: jac_prototype nnz=326 num colors=3 chunksize=3) 5.034005 seconds (2.57 M allocations: 144.248 MiB, 1.05% gc time, 99.63% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=CVODE_BDF{:Newton, :KLU, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 766 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 85 │ Number of linear solves: 0 │ Number of Jacobians created: 13 │ Number of nonlinear solver iterations: 765 │ Number of nonlinear solver convergence failures: 0 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 705 │ Number of rejected steps: 5 │ length(sol.t) 711 │ size(sol) (110, 711) └ ================================================================================ [ Info: ODE.calc_output_sol!: 711 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: done └ ================================================================================ conservation checks: check ocean.T_total 8.0e15 7.999999999999994e15 1.0e-14 check values at end of run: check ocean.T_conc [0.009999999999073268, 0.009999999999074114, 0.009999999999075805, 0.009999999999078338, 0.009999999999081716, 0.009999999999085933, 0.009999999999090988, 0.009999999999096879, 0.009999999999103596, 0.00999999999911114, 0.009999999999119507, 0.009999999999128683, 0.00999999999913867, 0.009999999999149458, 0.009999999999161041, 0.009999999999173411, 0.009999999999186555, 0.009999999999200468, 0.009999999999215138, 0.009999999999230557, 0.00999999999924671, 0.00999999999926359, 0.00999999999928118, 0.009999999999299469, 0.00999999999931844, 0.009999999999338084, 0.009999999999358385, 0.009999999999379323, 0.009999999999400884, 0.009999999999423055, 0.00999999999944581, 0.00999999999946914, 0.009999999999493017, 0.009999999999517428, 0.009999999999542347, 0.00999999999956776, 0.009999999999593641, 0.009999999999619967, 0.009999999999646719, 0.009999999999673867, 0.009999999999701395, 0.009999999999729274, 0.009999999999757479, 0.009999999999785984, 0.009999999999814763, 0.009999999999843794, 0.00999999999987304, 0.009999999999902481, 0.009999999999932086, 0.009999999999961826, 0.00999999999999167, 0.010000000000021594, 0.010000000000051567, 0.010000000000081553, 0.010000000000111527, 0.010000000000141456, 0.010000000000171315, 0.010000000000201065, 0.010000000000230675, 0.010000000000260119, 0.010000000000289366, 0.010000000000318381, 0.010000000000347129, 0.010000000000375585, 0.010000000000403719, 0.010000000000431492, 0.010000000000458881, 0.010000000000485853, 0.010000000000512373, 0.010000000000538418, 0.010000000000563954, 0.010000000000588951, 0.010000000000613385, 0.010000000000637221, 0.010000000000660435, 0.010000000000683, 0.01000000000070489, 0.010000000000726077, 0.010000000000746537, 0.010000000000766247, 0.010000000000785178, 0.010000000000803312, 0.010000000000820627, 0.010000000000837101, 0.010000000000852712, 0.010000000000867443, 0.010000000000881278, 0.010000000000894198, 0.010000000000906183, 0.010000000000917223, 0.010000000000927307, 0.010000000000936416, 0.010000000000944543, 0.010000000000951676, 0.010000000000957805, 0.010000000000962926, 0.010000000000967029, 0.010000000000970113, 0.01000000000097217, 0.010000000000973197, 0.00999999998983062, 0.009999999990817859, 0.009999999992698837, 0.009999999995294506, 0.009999999998355848, 0.010000000001586346, 0.010000000004669767, 0.010000000007301156, 0.010000000009217852, 0.01000000001022717] [0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01, 0.01] 1.0e-5 Precompiling PALEOcopse... 11264.3 ms ✓ ZipArchives 2908.3 ms ✓ XLSX 149317.1 ms ✓ PALEOcopse 3 dependencies successfully precompiled in 166 seconds. 160 already precompiled. Precompiling RootsForwardDiffExt... 1810.0 ms ✓ Roots → RootsForwardDiffExt 1 dependency successfully precompiled in 2 seconds. 31 already precompiled. WARNING: replacing module AtmReservoirTODO. ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel ocean3box_oaonly_abiotic_base │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/ocean3box/PALEO_examples_ocean3box_cfg.yaml └ ================================================================================ ┌ Info: Model.parameters: └ CIsotope = IsotopeLinear ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 97 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: global.total_C classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.CO2", "ocean.DIC"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.reservoir_DIC classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_TAlk classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.H_primary_species classname ReactionConstraintReservoir │ set parameters: [config.yaml] primary_total_stoich=0.0 │ set parameters: [Default] primary_other_components=String[] │ set parameters: [config.yaml] primary_variable =p_concentration └ set parameters: [config.yaml] constraint_variable =amount ┌ Info: create_reaction_from_config: ocean.transport3box classname ReactionOceanTransport3box │ set parameters: [Default] circT =2.0e7 │ set parameters: [Default] circfhd =6.0e7 │ set parameters: [config.yaml] temp =[21.5, 2.0, 2.0] └ set parameters: [Default] temp_trackglobal =false ┌ Info: create_reaction_from_config: ocean.carbchem classname ReactionCO2SYS │ set parameters: [Default] WhichKs =10 │ set parameters: [Default] WhoseKSO4 =1 │ set parameters: [config.yaml] components =["Ci", "B", "S", "F", "Omega"] │ set parameters: [config.yaml] defaultconcs =["TS", "TF", "TB", "Ca"] │ set parameters: [config.yaml] outputs =["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR"] │ set parameters: [Default] output_pHtot =true │ set parameters: [config.yaml] solve_pH =speciationTAlk │ set parameters: [Default] pHtol =2.220446049250313e-14 └ set parameters: [Default] simd_width =1 ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=3 └ ================================================================================ ┌ Info: create_reaction_from_config: oceansurface.airsea_CO2 classname ReactionAirSeaCO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [config.yaml] moistair =false │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =3.12 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=4 └ ================================================================================ ┌ Warning: create_domain_from_config Domain 'oceanfloor' empty 'reactions:' key in .yaml file └ @ PALEOboxes ~/.julia/packages/PALEOboxes/k4QWy/src/Domain.jl:349 ┌ Info: │ ================================================================================ │ creating domain 'fluxAtmtoOceansurface' ID=5 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtmtoOceansurface.fluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["CO2::CIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'atm' ID=6 └ ================================================================================ ┌ Info: create_reaction_from_config: atm.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: create_reaction_from_config: atm.reservoir_CO2 classname ReactionReservoirAtm │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: set ocean.oceansurface Subdomain size=2 [ Info: set ocean.oceanfloor Subdomain size=3 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["oceansurface", "oceanfloor"]) [ Info: fluxAtmtoOceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ ┌ Info: register_methods: global.total_C PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.CO2 └ add 1 * ocean.DIC ┌ Info: register_methods! ocean.carbchem ReactionCO2SYS │ modern default concentration Variables ["TS_conc", "TF_conc", "TB_conc", "Ca_conc"] │ adding input concentration Variables ["TCi_conc", "TB_conc", "TS_conc", "TF_conc", "Ca_conc"] │ adding additional output Variable %reaction%pCO2 (atm) 'CO2 partial pressure (fugacity corrected)' │ adding additional output Variable %reaction%xCO2dryinp () 'mixing ratio of CO2 in dry air at 1 atm (always > pCO2 due to H2O vapour pressure)' │ adding additional output Variable %reaction%CO2 (mol m-3) 'CO2 concentration' │ adding additional output Variable %reaction%CO3 (mol m-3) 'carbonate ion CO3-- concentration' │ adding additional output Variable %reaction%OmegaCA () 'calcite saturation' │ adding additional output Variable %reaction%OmegaAR () 'aragonite saturation' └ outputs ["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR"] at indices [16, 17, 11, 13, 36, 37] in res (pHfree = 1, H = 2, OH = 3, TA = 4, dTAdpH = 5, TS = 6, HSO4 = 7, TF = 8, HF = 9, TCi = 10, CO2 = 11, HCO3 = 12, CO3 = 13, CAlk = 14, fCO2 = 15, pCO2 = 16, xCO2dryinp = 17, TB = 18, BAlk = 19, TP = 20, H3PO4 = 21, H2PO4 = 22, HPO4 = 23, PO4 = 24, PengCorrection = 25, PAlk = 26, TSi = 27, SiAlk = 28, TH2S = 29, H2S = 30, HSAlk = 31, TNH3 = 32, NH4 = 33, NH3Alk = 34, Ca = 35, OmegaCA = 36, OmegaAR = 37) [ Info: oceansurface.airsea_CO2 IsotopeType=PALEOboxes.IsotopeLinear from isotope_name=CIsotope in external_parameters [ Info: register_methods! ReactionReservoirAtm atm.reservoir_CO2 field_data=PALEOboxes.IsotopeLinear ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ [ Info: Reaction global.total_C Variable global.total_C adding data=PALEOboxes.IsotopeLinear ┌ Info: _configure_variables: ReactionSum global.total_C variable_links: └ set variable_links: sum -> total_C ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_links: │ set variable_links: R -> DIC │ set variable_links: R_sms -> DIC_sms │ set variable_links: R_total -> DIC_total │ set variable_links: R_conc -> DIC_conc │ set variable_links: R_delta -> DIC_delta │ _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_attributes: │ set attribute: R :norm_value = 1.0 │ set attribute: R :initial_value = 2.2081 └ set attribute: R :initial_delta = -1.0 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_links: │ set variable_links: R -> TAlk │ set variable_links: R_sms -> TAlk_sms │ set variable_links: R_total -> TAlk_total │ set variable_links: R_conc -> TAlk_conc │ _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_attributes: │ set attribute: R :norm_value = 1.0 └ set attribute: R :initial_value = 2.4032 ┌ Info: _configure_variables: ReactionConstraintReservoir ocean.H_primary_species variable_links: │ set variable_links: R_constraint -> TAlk_constraint │ set variable_links: R_calc -> TAlk_calc │ set variable_links: R -> TAlk │ set variable_links: Primary_conc -> H_conc │ set variable_links: Primary_pconc -> pHfree │ _configure_variables: ReactionConstraintReservoir ocean.H_primary_species variable_attributes: │ set attribute: R_constraint :norm_value = 1.0 │ set attribute: Primary_pconc :initial_value = 8.0 └ set attribute: Primary_pconc :norm_value = 1.0 [ Info: find_transport_vars Domain ocean length(transport_vars)=2 num_components=3 ┌ Info: _configure_variables: ReactionCO2SYS ocean.carbchem variable_links: │ set variable_links: CO2 -> CO2_conc │ set variable_links: TCi_conc -> DIC_conc └ set variable_links: pCO2 -> pCO2 ┌ Info: _configure_variables: ReactionAirSea oceansurface.airsea_CO2 variable_links: │ set variable_links: Xatm_delta -> atm.CO2_delta └ set variable_links: Xocean_delta -> ocean.oceansurface.DIC_delta ┌ Info: _configure_variables: ReactionFluxTransfer oceansurface.transfer_AtmtoOceansurface variable_links: └ set variable_links: output_CO2 -> ocean.oceansurface.DIC_sms ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_links: │ set variable_links: R -> CO2 │ set variable_links: R_sms -> CO2_sms │ set variable_links: R_delta -> CO2_delta │ set variable_links: pRatm -> pCO2atm │ set variable_links: pRnorm -> pCO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_attributes: │ set attribute: R :norm_value = 4.956e16 └ set attribute: R :initial_value = 4.956e16 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ └ optional ocean.transport3box TEMP -| global.TEMP ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ Add expt: baseline ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 1 variables (hostdep=nothing) [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 37 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain fluxAtmtoOceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain atm data dimensions PALEOboxes.NamedDimension[] allocating 5 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 0 0 0 0 │ ocean 0 2 0 1 0 1 0 │ oceansurface 0 0 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ fluxAtmtoOceansurface 0 0 0 0 0 0 0 │ atm 0 1 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 3 0 1 0 1 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 4 (stateexplicit 3 + statetotal 0 + state 1) │ n_equations 4 (stateexplicit 3 + total 0 + constraint 1) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): Any[] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ [ Info: prepare_do_carbchem: ocean.carbchem simd_width=1 using BufType Float64 ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> ocean.DIC_sms └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> atm.CO2_sms └ using Distribute transfer matrix size (input, output) (2, 1) * -1.0 ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.pHfree = 1.0 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.CO2 = 4.956e16, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.DIC = 1.0 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk = 1.0 * volume [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk_constraint = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.pHfree = 8.0 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.CO2 = 4.956e16, delta=0.0 [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.DIC = 2.2081 * volume, delta=-1.0 [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk = 2.4032 * volume [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk_constraint = 0.0 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: │ tspan: (0, 10000.0) │ algorithm: IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ Jacobian: ForwardDiffSparse │ using 1 BLAS threads └ ================================================================================ [ Info: DAEfunction: using Jacobian ForwardDiffSparse [ Info: jac_config_dae: jac_ad=ForwardDiffSparse [ Info: using ForwardDiff sparse Jacobian with sparsity calculated at t=0 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(14, 14) nnz=61 non-zero=55 at time=0 [ Info: fill_sparse_jac: initial_jac nnz 61 (31.1%) non-zero 55 [ Info: fill_sparse_jac: after filling diagonal nnz 61 [ Info: jac_prototype nnz=61 num colors=9 [ Info: add_arrays_data! (arrays_eltype=ForwardDiff.Dual{Nothing, Float64, 9}, arrays_tagname=jac_ad) [ Info: calling get_inconsistent_initial_deriv 3.269149 seconds (825.15 k allocations: 43.966 MiB, 99.88% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 160 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 39 │ Number of linear solves: 0 │ Number of Jacobians created: 39 │ Number of nonlinear solver iterations: 158 │ Number of nonlinear solver convergence failures: 0 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 95 │ Number of rejected steps: 5 │ length(sol.t) 101 │ size(sol) (14, 101) └ ================================================================================ [ Info: ODE.calc_output_sol!: 101 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: done └ ================================================================================ conservation checks: check global.total_C 2.9944816845180134e18 2.994481684518014e18 1.0e-6 check global.total_C -2.9449216845180134e18 -2.9449216845180175e18 1.0e-6 check ocean.TAlk_total 3.2051246738072054e18 3.2051246738072054e18 1.0e-6 check values at end of run: check ocean.pHfree [8.236714539086941, 8.223525104749044, 8.149122544874372] [8.236714539086925, 8.22352510474905, 8.149122544874377] 0.0001 check atm.pCO2atm 0.00030121447865789913 0.000301244 0.0001 check atm.CO2_delta -10.160981937500651 -10.161 0.0001 ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel ocean3box_oaonly_base │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/ocean3box/PALEO_examples_ocean3box_cfg.yaml └ ================================================================================ ┌ Info: Model.parameters: │ CIsotope = IsotopeLinear └ SIsotope = IsotopeLinear ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 97 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: global.force_enable_bioprod classname ReactionForceInterp │ set parameters: [config.yaml] force_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] force_values =[1.0, 1.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN └ set parameters: [Default] extrapolate_after =NaN ┌ Info: create_reaction_from_config: global.total_O2 classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.O2", "ocean.O2"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: create_reaction_from_config: global.total_C classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.CO2", "ocean.DIC", "ocean.CH4"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: create_reaction_from_config: global.total_S classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["ocean.SO4", "ocean.H2S"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.reservoir_TAlk classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.export classname ReactionExportDirect │ set parameters: [config.yaml] fluxlist =["P", "N", "Corg::CIsotope", "Ccarb::CIsotope"] │ set parameters: [config.yaml] transportocean =[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] │ set parameters: [Default] transportfloor =Vector{Float64}[] └ set parameters: [Default] conserv_errthresh =1.0e-5 ┌ Info: create_reaction_from_config: ocean.const_cisotopes classname ReactionScalarConst └ set parameters: [config.yaml] constnames =["D_mccb_DIC", "D_B_mccb_mocb"] ┌ Info: create_reaction_from_config: ocean.reservoir_P classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_DIC classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.bioprod classname ReactionBioProdPrest │ set parameters: [config.yaml] bioprod =[1, 2, 0] │ set parameters: [config.yaml] bioprodval =[0.0, 0.18, NaN] │ set parameters: [Default] rCorgPO4 =106.0 │ set parameters: [Default] rNPO4 =16.0 │ set parameters: [config.yaml] rCcarbCorg =0.2 │ set parameters: [Default] trest =0.1 └ set parameters: [config.yaml] CIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.remin classname ReactionReminO2_SO4_CH4 │ set parameters: [Default] oxreminlimit =0.008 │ set parameters: [config.yaml] SO4reminlimit =1.0 │ set parameters: [config.yaml] CIsotope =IsotopeLinear └ set parameters: [config.yaml] SIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.redox_CH4_O2 classname ReactionRedoxCH4_O2 │ set parameters: [config.yaml] R_CH4_O2 =1000.0 └ set parameters: [config.yaml] CIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.reservoir_CH4 classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.carbchem classname ReactionCO2SYS │ set parameters: [Default] WhichKs =10 │ set parameters: [Default] WhoseKSO4 =1 │ set parameters: [config.yaml] components =["Ci", "B", "S", "F", "Omega", "H2S"] │ set parameters: [config.yaml] defaultconcs =["TF", "TB", "Ca"] │ set parameters: [config.yaml] outputs =["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR"] │ set parameters: [Default] output_pHtot =true │ set parameters: [config.yaml] solve_pH =speciationTAlk │ set parameters: [Default] pHtol =2.220446049250313e-14 └ set parameters: [Default] simd_width =1 ┌ Info: create_reaction_from_config: ocean.reservoir_O2 classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.redox_H2S_O2 classname ReactionRedoxH2S_O2 │ set parameters: [config.yaml] R_H2S_O2 =3650.0 └ set parameters: [config.yaml] SIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.transport3box classname ReactionOceanTransport3box │ set parameters: [Default] circT =2.0e7 │ set parameters: [Default] circfhd =6.0e7 │ set parameters: [config.yaml] temp =[21.5, 2.0, 2.0] └ set parameters: [Default] temp_trackglobal =false ┌ Info: create_reaction_from_config: ocean.reservoir_H2S classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%SIsotope │ expandvalue: external%SIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_SO4 classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%SIsotope │ expandvalue: external%SIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.H_primary_species classname ReactionConstraintReservoir │ set parameters: [config.yaml] primary_total_stoich=0.0 │ set parameters: [Default] primary_other_components=String[] │ set parameters: [config.yaml] primary_variable =p_concentration └ set parameters: [config.yaml] constraint_variable =amount ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=3 └ ================================================================================ ┌ Info: create_reaction_from_config: oceansurface.airsea_O2 classname ReactionAirSeaO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [config.yaml] moistair =false │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =3.12 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.airsea_CO2 classname ReactionAirSeaCO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [config.yaml] moistair =false │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =3.12 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=4 └ ================================================================================ ┌ Warning: create_domain_from_config Domain 'oceanfloor' empty 'reactions:' key in .yaml file └ @ PALEOboxes ~/.julia/packages/PALEOboxes/k4QWy/src/Domain.jl:349 ┌ Info: │ ================================================================================ │ creating domain 'fluxAtmtoOceansurface' ID=5 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtmtoOceansurface.fluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["CO2::CIsotope", "O2"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'atm' ID=6 └ ================================================================================ ┌ Info: create_reaction_from_config: atm.reservoir_O2 classname ReactionReservoirAtm │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: create_reaction_from_config: atm.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: create_reaction_from_config: atm.reservoir_CO2 classname ReactionReservoirAtm │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: set ocean.oceansurface Subdomain size=2 [ Info: set ocean.oceanfloor Subdomain size=3 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["oceansurface", "oceanfloor"]) [ Info: fluxAtmtoOceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ [ Info: ReactionForceInterp.register_methods! global.force_enable_bioprod ┌ Info: register_methods: global.total_O2 PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.O2 └ add 1 * ocean.O2 ┌ Info: register_methods: global.total_C PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.CO2 │ add 1 * ocean.DIC └ add 1 * ocean.CH4 ┌ Info: register_methods: global.total_S PALEOboxes.VariableStats.ReactionSum │ add 1 * ocean.SO4 └ add 1 * ocean.H2S [ Info: register_methods! ocean.export add ocean fluxlist=["P", "N", "Corg::CIsotope", "Ccarb::CIsotope"] [ Info: ocean.export add ocean fluxlist=["P", "N", "Corg::CIsotope", "Ccarb::CIsotope"] [ Info: register_methods! ocean.remin CIsotopeType=PALEOboxes.IsotopeLinear, SIsotopeType=PALEOboxes.IsotopeLinear [ Info: register_methods! ocean.redox_CH4_O2 CIsotopeType=PALEOboxes.IsotopeLinear ┌ Info: register_methods! ocean.carbchem ReactionCO2SYS │ modern default concentration Variables ["TF_conc", "TB_conc", "Ca_conc"] │ adding input concentration Variables ["TCi_conc", "TB_conc", "TS_conc", "TF_conc", "Ca_conc", "TH2S_conc"] │ adding additional output Variable %reaction%pCO2 (atm) 'CO2 partial pressure (fugacity corrected)' │ adding additional output Variable %reaction%xCO2dryinp () 'mixing ratio of CO2 in dry air at 1 atm (always > pCO2 due to H2O vapour pressure)' │ adding additional output Variable %reaction%CO2 (mol m-3) 'CO2 concentration' │ adding additional output Variable %reaction%CO3 (mol m-3) 'carbonate ion CO3-- concentration' │ adding additional output Variable %reaction%OmegaCA () 'calcite saturation' │ adding additional output Variable %reaction%OmegaAR () 'aragonite saturation' └ outputs ["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR"] at indices [16, 17, 11, 13, 36, 37] in res (pHfree = 1, H = 2, OH = 3, TA = 4, dTAdpH = 5, TS = 6, HSO4 = 7, TF = 8, HF = 9, TCi = 10, CO2 = 11, HCO3 = 12, CO3 = 13, CAlk = 14, fCO2 = 15, pCO2 = 16, xCO2dryinp = 17, TB = 18, BAlk = 19, TP = 20, H3PO4 = 21, H2PO4 = 22, HPO4 = 23, PO4 = 24, PengCorrection = 25, PAlk = 26, TSi = 27, SiAlk = 28, TH2S = 29, H2S = 30, HSAlk = 31, TNH3 = 32, NH4 = 33, NH3Alk = 34, Ca = 35, OmegaCA = 36, OmegaAR = 37) [ Info: register_methods! ocean.redox_H2S_O2 SIsotopeType=PALEOboxes.IsotopeLinear [ Info: oceansurface.airsea_CO2 IsotopeType=PALEOboxes.IsotopeLinear from isotope_name=CIsotope in external_parameters [ Info: register_methods! ReactionReservoirAtm atm.reservoir_O2 field_data=PALEOboxes.ScalarData [ Info: register_methods! ReactionReservoirAtm atm.reservoir_CO2 field_data=PALEOboxes.IsotopeLinear ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ ┌ Info: _configure_variables: ReactionForceInterp global.force_enable_bioprod variable_links: └ set variable_links: F -> enable_bioprod [ Info: Reaction global.total_O2 Variable global.total_O2 adding data=PALEOboxes.ScalarData ┌ Info: _configure_variables: ReactionSum global.total_O2 variable_links: └ set variable_links: sum -> total_O2 [ Info: Reaction global.total_C Variable global.total_C adding data=PALEOboxes.IsotopeLinear ┌ Info: _configure_variables: ReactionSum global.total_C variable_links: └ set variable_links: sum -> total_C [ Info: Reaction global.total_S Variable global.total_S adding data=PALEOboxes.IsotopeLinear ┌ Info: _configure_variables: ReactionSum global.total_S variable_links: └ set variable_links: sum -> total_S ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_links: │ set variable_links: R -> TAlk │ set variable_links: R_sms -> TAlk_sms │ set variable_links: R_total -> TAlk_total │ set variable_links: R_conc -> TAlk_conc │ _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_attributes: │ set attribute: R :norm_value = 1.0 └ set attribute: R :initial_value = 2.4032 ┌ Info: _configure_variables: ReactionConst ocean.const_cisotopes variable_attributes: │ set attribute: D_mccb_DIC :initial_value = 0.0 └ set attribute: D_B_mccb_mocb :initial_value = 25.0 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_P variable_links: │ set variable_links: R -> P │ set variable_links: R_sms -> P_sms │ set variable_links: R_total -> P_total │ set variable_links: R_conc -> P_conc │ _configure_variables: ReactionReservoir ocean.reservoir_P variable_attributes: │ set attribute: R :norm_value = 0.001 └ set attribute: R :initial_value = 0.002208 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_links: │ set variable_links: R -> DIC │ set variable_links: R_sms -> DIC_sms │ set variable_links: R_total -> DIC_total │ set variable_links: R_conc -> DIC_conc │ set variable_links: R_delta -> DIC_delta │ _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_attributes: │ set attribute: R :initial_value = 2.2081 └ set attribute: R :initial_delta = -1.0 ┌ Info: _configure_variables: ReactionBioProdPrest ocean.bioprod variable_links: │ set variable_links: prod_P -> export_P │ set variable_links: prod_N -> export_N │ set variable_links: prod_Corg -> export_Corg └ set variable_links: prod_Ccarb -> export_Ccarb ┌ Info: _configure_variables: ReactionReminO2_SO4_CH4 ocean.remin variable_links: │ set variable_links: soluteflux_P -> P_sms │ set variable_links: soluteflux_TNH3 -> TNH3_sms │ set variable_links: soluteflux_DIC -> DIC_sms │ set variable_links: soluteflux_TAlk -> TAlk_sms │ set variable_links: soluteflux_O2 -> O2_sms │ set variable_links: soluteflux_SO4 -> SO4_sms │ set variable_links: soluteflux_H2S -> H2S_sms └ set variable_links: soluteflux_CH4 -> CH4_sms ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_CH4 variable_links: │ set variable_links: R -> CH4 │ set variable_links: R_sms -> CH4_sms │ set variable_links: R_total -> CH4_total │ set variable_links: R_conc -> CH4_conc │ set variable_links: R_delta -> CH4_delta │ _configure_variables: ReactionReservoir ocean.reservoir_CH4 variable_attributes: │ set attribute: R :norm_value = 0.001 │ set attribute: R :initial_value = 1.0e-6 └ set attribute: R :initial_delta = 0.0 ┌ Info: _configure_variables: ReactionCO2SYS ocean.carbchem variable_links: │ set variable_links: CO2 -> CO2_conc │ set variable_links: TCi_conc -> DIC_conc │ set variable_links: TH2S_conc -> H2S_conc │ set variable_links: TS_conc -> SO4_conc └ set variable_links: pCO2 -> pCO2 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: R_total -> O2_total │ set variable_links: R_conc -> O2_conc │ _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_attributes: │ set attribute: R :norm_value = 0.1 └ set attribute: R :initial_value = 0.3 [ Info: find_transport_vars Domain ocean length(transport_vars)=7 num_components=11 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_H2S variable_links: │ set variable_links: R -> H2S │ set variable_links: R_sms -> H2S_sms │ set variable_links: R_total -> H2S_total │ set variable_links: R_conc -> H2S_conc │ set variable_links: R_delta -> H2S_delta │ _configure_variables: ReactionReservoir ocean.reservoir_H2S variable_attributes: │ set attribute: R :norm_value = 0.001 │ set attribute: R :initial_value = 1.0e-6 └ set attribute: R :initial_delta = 0.0 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_SO4 variable_links: │ set variable_links: R -> SO4 │ set variable_links: R_sms -> SO4_sms │ set variable_links: R_total -> SO4_total │ set variable_links: R_conc -> SO4_conc │ set variable_links: R_delta -> SO4_delta │ _configure_variables: ReactionReservoir ocean.reservoir_SO4 variable_attributes: │ set attribute: R :norm_value = 1.0 │ set attribute: R :initial_value = 28.756 └ set attribute: R :initial_delta = 0.0 ┌ Info: _configure_variables: ReactionConstraintReservoir ocean.H_primary_species variable_links: │ set variable_links: R_constraint -> TAlk_constraint │ set variable_links: R_calc -> TAlk_calc │ set variable_links: R -> TAlk │ set variable_links: Primary_conc -> H_conc │ set variable_links: Primary_pconc -> pHfree │ _configure_variables: ReactionConstraintReservoir ocean.H_primary_species variable_attributes: │ set attribute: R_constraint :norm_value = 1.0 │ set attribute: Primary_pconc :initial_value = 8.0 └ set attribute: Primary_pconc :norm_value = 1.0 ┌ Info: _configure_variables: ReactionAirSea oceansurface.airsea_CO2 variable_links: │ set variable_links: Xatm_delta -> atm.CO2_delta └ set variable_links: Xocean_delta -> ocean.oceansurface.DIC_delta ┌ Info: _configure_variables: ReactionFluxTransfer oceansurface.transfer_AtmtoOceansurface variable_links: └ set variable_links: output_CO2 -> ocean.oceansurface.DIC_sms ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: pRatm -> pO2atm │ set variable_links: pRnorm -> pO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_attributes: │ set attribute: R :norm_value = 3.71e19 └ set attribute: R :initial_value = 3.71e19 ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_links: │ set variable_links: R -> CO2 │ set variable_links: R_sms -> CO2_sms │ set variable_links: R_delta -> CO2_delta │ set variable_links: pRatm -> pCO2atm │ set variable_links: pRnorm -> pCO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_attributes: │ set attribute: R :norm_value = 4.956e16 └ set attribute: R :initial_value = 4.956e16 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ │ optional ocean.bioprod PELCALC -| global.PELCALC │ optional ocean.remin soluteflux_TNH3 -| TNH3_sms └ optional ocean.transport3box TEMP -| global.TEMP ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ Add expt: baseline ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 5 variables (hostdep=nothing) [ Info: set :field_data=PALEOboxes.ScalarData for host-dependent Variable global.tforce [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 89 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain fluxAtmtoOceansurface data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: Domain atm data dimensions PALEOboxes.NamedDimension[] allocating 9 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 0 0 0 1 │ ocean 0 7 0 1 0 1 0 │ oceansurface 0 0 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ fluxAtmtoOceansurface 0 0 0 0 0 0 0 │ atm 0 2 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 9 0 1 0 1 1 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 10 (stateexplicit 9 + statetotal 0 + state 1) │ n_equations 10 (stateexplicit 9 + total 0 + constraint 1) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): ["global.tforce"] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ [ Info: prepare_do_carbchem: ocean.carbchem simd_width=1 using BufType Float64 ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> ocean.DIC_sms │ O2 fluxAtmtoOceansurface.flux_O2 -> ocean.O2_sms └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> atm.CO2_sms │ O2 fluxAtmtoOceansurface.flux_O2 -> atm.O2_sms └ using Distribute transfer matrix size (input, output) (2, 1) * -1.0 ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: setup_export_direct: ocean.export ocean vertical transport from Parameter 'transportocean' = [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] [ Info: ocean.const_cisotopes.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.D_mccb_DIC = 0.0 [ Info: init_values! :initial_value ocean.D_B_mccb_mocb = 25.0 ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.pHfree = 1.0 [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.O2 = 3.71e19 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.CO2 = 4.956e16, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk = 1.0 * volume [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.P = 0.001 * volume [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.DIC = 1.0 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_CH4.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.CH4 = 0.001 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.O2 = 0.1 * volume [ Info: ocean.reservoir_H2S.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.H2S = 0.001 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_SO4.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.SO4 = 1.0 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk_constraint = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.pHfree = 8.0 [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.O2 = 3.71e19 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.CO2 = 4.956e16, delta=0.0 [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk = 2.4032 * volume [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.P = 0.002208 * volume [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.DIC = 2.2081 * volume, delta=-1.0 [ Info: ocean.reservoir_CH4.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.CH4 = 1.0e-6 * volume, delta=0.0 [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.O2 = 0.3 * volume [ Info: ocean.reservoir_H2S.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.H2S = 1.0e-6 * volume, delta=0.0 [ Info: ocean.reservoir_SO4.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.SO4 = 28.756 * volume, delta=0.0 [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk_constraint = 0.0 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: │ tspan: (0, 10000.0) │ algorithm: IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ Jacobian: ForwardDiffSparse │ using 1 BLAS threads └ ================================================================================ [ Info: DAEfunction: using Jacobian ForwardDiffSparse [ Info: jac_config_dae: jac_ad=ForwardDiffSparse [ Info: using ForwardDiff sparse Jacobian with sparsity calculated at t=0 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(39, 39) nnz=272 non-zero=211 at time=0 [ Info: fill_sparse_jac: initial_jac nnz 272 (17.9%) non-zero 211 [ Info: fill_sparse_jac: after filling diagonal nnz 272 [ Info: jac_prototype nnz=272 num colors=20 [ Info: add_arrays_data! (arrays_eltype=ForwardDiff.Dual{Nothing, Float64, 10}, arrays_tagname=jac_ad) [ Info: calling get_inconsistent_initial_deriv 16.416591 seconds (5.78 M allocations: 300.152 MiB, 0.38% gc time, 99.90% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 301 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 72 │ Number of linear solves: 0 │ Number of Jacobians created: 72 │ Number of nonlinear solver iterations: 299 │ Number of nonlinear solver convergence failures: 12 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 178 │ Number of rejected steps: 4 │ length(sol.t) 183 │ size(sol) (39, 183) └ ================================================================================ [ Info: ODE.calc_output_sol!: 183 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: done └ ================================================================================ conservation checks: check global.total_C 2.994483018208374e18 2.994483018208368e18 1.0e-6 check global.total_C -2.9449216845180134e18 -2.944921684518012e18 1.0e-6 check global.total_O2 3.7500107108081795e19 3.7500101801997386e19 1.0e-6 check global.total_S 3.835160133369036e19 3.835160133369027e19 1.0e-6 check global.total_S 0.0 0.00054931640625 1.0 check ocean.TAlk_total 3.2051246738072054e18 3.2051220318735324e18 1.0e-6 check values at end of run: check ocean.pHfree [8.389330138913854, 8.368277043536466, 8.107629478051521] [8.38933, 8.368277, 8.107629] 0.0001 check atm.pCO2atm 0.0001907304503622103 0.00019073 0.0001 check atm.CO2_delta -8.195239875578189 -8.1952 0.0001 check atm.pO2atm 0.2101888599588025 0.2102 0.0001 ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel ocean3box_oaopencarb_base │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/ocean3box/PALEO_examples_ocean3box_cfg.yaml └ ================================================================================ ┌ Info: Model.parameters: │ Senabled = false │ CIsotope = IsotopeLinear └ SIsotope = IsotopeLinear ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 97 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: global.force_enable_bioprod classname ReactionForceInterp │ set parameters: [config.yaml] force_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] force_values =[1.0, 1.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN └ set parameters: [Default] extrapolate_after =NaN ┌ Info: create_reaction_from_config: global.total_O2 classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.O2", "ocean.O2"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: create_reaction_from_config: global.total_C classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.CO2", "ocean.DIC"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: create_reaction_from_config: global.tforce_constant classname ReactionScalarConst └ set parameters: [config.yaml] constnames =["tforce_constant"] [ Info: create_reaction_from_config: global.force_UDWE classname ReactionForce_UDWEbergman2004 [ Info: create_reaction_from_config: global.force_CPlandrel classname ReactionForce_CPlandrelbergman2004 ┌ Info: create_reaction_from_config: global.temp_CK_1992 classname ReactionGlobalTemperatureCK1992 │ set parameters: [Default] fixed_albedo =NaN │ set parameters: [Default] tempcorrect =0.194 └ set parameters: [config.yaml] temp_DAE =true ┌ Info: create_reaction_from_config: global.CIsotopes classname ReactionCIsotopes │ set parameters: [Default] do_D_mccb_DIC =true │ set parameters: [Default] do_D_B_mccb_mocb =true │ set parameters: [Default] do_D_P_CO2_locb =true └ set parameters: [config.yaml] f_cisotopefrac =fixed ┌ Info: create_reaction_from_config: global.total_S classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["ocean.SO4", "ocean.H2S"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false [ Info: create_reaction_from_config: global.force_solar classname ReactionForce_CK_Solar ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.reservoir_TAlk classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.exportCarb classname ReactionExportDirect │ set parameters: [config.yaml] fluxlist =["Ccarb::CIsotope"] │ set parameters: [Default] transportocean =Vector{Float64}[] │ set parameters: [config.yaml] transportfloor =[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] └ set parameters: [Default] conserv_errthresh =1.0e-5 ┌ Info: create_reaction_from_config: ocean.bioprod classname ReactionBioProdPrest │ set parameters: [config.yaml] bioprod =[1, 2, 0] │ set parameters: [config.yaml] bioprodval =[0.0, 0.18, NaN] │ set parameters: [Default] rCorgPO4 =106.0 │ set parameters: [Default] rNPO4 =16.0 │ set parameters: [config.yaml] rCcarbCorg =0.2 │ set parameters: [Default] trest =0.1 └ set parameters: [config.yaml] CIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.reservoir_DIC classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_P classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.remin classname ReactionReminO2_SO4 │ set parameters: [Default] oxreminlimit =0.008 │ set parameters: [config.yaml] CIsotope =IsotopeLinear └ set parameters: [config.yaml] SIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.carbchem classname ReactionCO2SYS │ set parameters: [Default] WhichKs =10 │ set parameters: [Default] WhoseKSO4 =1 │ set parameters: [config.yaml] components =["Ci", "B", "S", "F", "Omega", "H2S"] │ set parameters: [config.yaml] defaultconcs =["TF", "TB", "Ca"] │ set parameters: [config.yaml] outputs =["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR"] │ set parameters: [Default] output_pHtot =true │ set parameters: [config.yaml] solve_pH =speciationTAlk │ set parameters: [Default] pHtol =2.220446049250313e-14 └ set parameters: [Default] simd_width =1 ┌ Info: create_reaction_from_config: ocean.reservoir_O2 classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.redox_H2S_O2 classname ReactionRedoxH2S_O2 │ set parameters: [config.yaml] R_H2S_O2 =3650.0 └ set parameters: [config.yaml] SIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.exportOrg classname ReactionExportDirect │ set parameters: [config.yaml] fluxlist =["P", "N", "Corg::CIsotope"] │ set parameters: [config.yaml] transportocean =[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] │ set parameters: [Default] transportfloor =Vector{Float64}[] └ set parameters: [Default] conserv_errthresh =1.0e-5 ┌ Info: create_reaction_from_config: ocean.transport3box classname ReactionOceanTransport3box │ set parameters: [Default] circT =2.0e7 │ set parameters: [Default] circfhd =6.0e7 │ set parameters: [config.yaml] temp =[21.5, 2.0, 2.0] └ set parameters: [config.yaml] temp_trackglobal =true ┌ Info: create_reaction_from_config: ocean.reservoir_H2S classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%SIsotope │ expandvalue: external%SIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_SO4 classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%SIsotope │ expandvalue: external%SIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.H_primary_species classname ReactionConstraintReservoir │ set parameters: [config.yaml] primary_total_stoich=0.0 │ set parameters: [Default] primary_other_components=String[] │ set parameters: [config.yaml] primary_variable =p_concentration └ set parameters: [config.yaml] constraint_variable =amount ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=3 └ ================================================================================ ┌ Info: create_reaction_from_config: oceanfloor.shelfcarb classname ReactionShelfCarb │ set parameters: [config.yaml] carbsedshallow =1.4355e12 │ set parameters: [config.yaml] shelfareanorm =[1.0, 0.0, 0.0] └ set parameters: [config.yaml] CIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: oceanfloor.deepcarb classname ReactionBurialEffCarb │ set parameters: [Default] burial_eff_function =Caldeira1993 │ set parameters: [Default] k0 =26.0 │ set parameters: [Default] k1 =0.11 │ set parameters: [Default] m0 =10.0 │ set parameters: [Default] m1 =1.0 │ set parameters: [config.yaml] hascarbseddeep =Bool[0, 0, 1] └ set parameters: [config.yaml] CIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: oceanfloor.transfer_particulatefluxOceanfloor classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxOceanfloor.particulateflux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =particulateflux_$fluxname$ │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceanfloor.transfer_solutefluxOceanfloor classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxOceanfloor.soluteflux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceanfloor.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: │ ================================================================================ │ creating domain 'land' ID=4 └ ================================================================================ ┌ Info: create_reaction_from_config: land.land_Bergman2004 classname ReactionLandBergman2004 │ set parameters: [config.yaml] k5_locb =0.0 │ set parameters: [Default] k11_landfrac =0.10345 │ set parameters: [config.yaml] k14_carbw =1.335e13 │ set parameters: [Default] k15_plantenhance =0.15 │ set parameters: [Default] k_fire =100.0 │ set parameters: [Default] k16_PANtoO =3.762 │ set parameters: [config.yaml] k_silw =6.7e12 │ set parameters: [config.yaml] k10_phosw =0.0 │ set parameters: [config.yaml] k17_oxidw =0.0 │ set parameters: [config.yaml] enableS =external%Senabled │ expandvalue: external%Senabled -> false │ after substitution enableS=false │ set parameters: [Default] k21_pyrw =5.3e11 │ set parameters: [Default] k22_gypw =1.0e12 │ set parameters: [Default] f_carbwC =Cindep │ set parameters: [Default] f_oxwO =PowerO2 │ set parameters: [Default] f_oxw_a =0.5 │ set parameters: [Default] f_landbiota =Dynamic │ set parameters: [Default] f_locb =original │ set parameters: [Default] dic_runoff =true │ set parameters: [config.yaml] CIsotope =IsotopeLinear └ set parameters: [config.yaml] SIsotope =IsotopeLinear ┌ Info: │ ================================================================================ │ creating domain 'fluxRtoOcean' ID=5 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxRtoOcean.target classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["DIC::CIsotope", "TAlk", "Ca", "P", "SO4::SIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [Default] flux_totals =false └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxAtmtoOceansurface' ID=6 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtmtoOceansurface.fluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["CO2::CIsotope", "O2"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'sedcrust' ID=7 └ ================================================================================ ┌ Info: create_reaction_from_config: sedcrust.reservoir_G classname ReactionReservoirScalar │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] const =false └ set parameters: [Default] state_norm =false ┌ Info: create_reaction_from_config: sedcrust.reservoir_C classname ReactionReservoirScalar │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] const =false └ set parameters: [Default] state_norm =false ┌ Info: │ ================================================================================ │ creating domain 'fluxOceanfloor' ID=8 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxOceanfloor.solutefluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["DIC::CIsotope", "TAlk", "Ca"] │ set parameters: [config.yaml] target_prefix =soluteflux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: create_reaction_from_config: fluxOceanfloor.particulatefluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["P", "N", "Corg::CIsotope", "Ccarb::CIsotope"] │ set parameters: [config.yaml] target_prefix =particulateflux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxOceanBurial' ID=9 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxOceanBurial.target classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["Ccarb::CIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxLandtoSedCrust' ID=10 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxLandtoSedCrust.target classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["Ccarb::CIsotope", "Corg::CIsotope", "PYR::SIsotope", "GYP::SIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [Default] flux_totals =false └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'atm' ID=11 └ ================================================================================ ┌ Info: create_reaction_from_config: atm.reservoir_O2 classname ReactionReservoirAtm │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: create_reaction_from_config: atm.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: create_reaction_from_config: atm.reservoir_CO2 classname ReactionReservoirAtm │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: create_reaction_from_config: atm.constant_degassing classname ReactionFluxPerturb │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [config.yaml] perturb_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] perturb_totals =[6.7e12, 6.7e12] │ set parameters: [config.yaml] perturb_deltas =[0.0, 0.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN │ set parameters: [Default] extrapolate_before_delta=NaN │ set parameters: [Default] extrapolate_after =NaN └ set parameters: [Default] extrapolate_after_delta=NaN ┌ Info: create_reaction_from_config: atm.transfer_AtoLand classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtoLand.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [Default] transfer_matrix =Identity ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=12 └ ================================================================================ ┌ Info: create_reaction_from_config: oceansurface.airsea_O2 classname ReactionAirSeaO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [config.yaml] moistair =false │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =3.12 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.airsea_CO2 classname ReactionAirSeaCO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [config.yaml] moistair =false │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =3.12 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.transfer_fluxAtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceansurface.transfer_RtoOcean classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxRtoOcean.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: │ ================================================================================ │ creating domain 'fluxAtoLand' ID=13 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtoLand.target classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["O2", "CO2::CIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [Default] flux_totals =false └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: set ocean.oceansurface Subdomain size=2 [ Info: set ocean.oceanfloor Subdomain size=3 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["oceansurface", "oceanfloor"]) [ Info: fluxAtmtoOceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: fluxOceanfloor Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) [ Info: fluxOceanBurial Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ [ Info: ReactionForceInterp.register_methods! global.force_enable_bioprod ┌ Info: register_methods: global.total_O2 PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.O2 └ add 1 * ocean.O2 ┌ Info: register_methods: global.total_C PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.CO2 └ add 1 * ocean.DIC [ Info: ReactionForce_UDWEbergman2004: loading U,D,W,E forcings from COPSE datafile /home/pkgeval/.julia/packages/PALEOcopse/WwuV1/src/Forcings/copse_forcings.mat ┌ Info: register_methods: global.total_S PALEOboxes.VariableStats.ReactionSum │ add 1 * ocean.SO4 └ add 1 * ocean.H2S [ Info: register_methods! ocean.exportCarb add ocean fluxlist=["Ccarb::CIsotope"] [ Info: ocean.exportCarb add oceanfloor fluxlist=["Ccarb::CIsotope"] [ Info: register_methods! ocean.remin SIsotopeType=PALEOboxes.IsotopeLinear ┌ Info: register_methods! ocean.carbchem ReactionCO2SYS │ modern default concentration Variables ["TF_conc", "TB_conc", "Ca_conc"] │ adding input concentration Variables ["TCi_conc", "TB_conc", "TS_conc", "TF_conc", "Ca_conc", "TH2S_conc"] │ adding additional output Variable %reaction%pCO2 (atm) 'CO2 partial pressure (fugacity corrected)' │ adding additional output Variable %reaction%xCO2dryinp () 'mixing ratio of CO2 in dry air at 1 atm (always > pCO2 due to H2O vapour pressure)' │ adding additional output Variable %reaction%CO2 (mol m-3) 'CO2 concentration' │ adding additional output Variable %reaction%CO3 (mol m-3) 'carbonate ion CO3-- concentration' │ adding additional output Variable %reaction%OmegaCA () 'calcite saturation' │ adding additional output Variable %reaction%OmegaAR () 'aragonite saturation' └ outputs ["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR"] at indices [16, 17, 11, 13, 36, 37] in res (pHfree = 1, H = 2, OH = 3, TA = 4, dTAdpH = 5, TS = 6, HSO4 = 7, TF = 8, HF = 9, TCi = 10, CO2 = 11, HCO3 = 12, CO3 = 13, CAlk = 14, fCO2 = 15, pCO2 = 16, xCO2dryinp = 17, TB = 18, BAlk = 19, TP = 20, H3PO4 = 21, H2PO4 = 22, HPO4 = 23, PO4 = 24, PengCorrection = 25, PAlk = 26, TSi = 27, SiAlk = 28, TH2S = 29, H2S = 30, HSAlk = 31, TNH3 = 32, NH4 = 33, NH3Alk = 34, Ca = 35, OmegaCA = 36, OmegaAR = 37) [ Info: register_methods! ocean.redox_H2S_O2 SIsotopeType=PALEOboxes.IsotopeLinear [ Info: register_methods! ocean.exportOrg add ocean fluxlist=["P", "N", "Corg::CIsotope"] [ Info: ocean.exportOrg add ocean fluxlist=["P", "N", "Corg::CIsotope"] [ Info: register_methods! oceanfloor.shelfcarb CIsotopeType=PALEOboxes.IsotopeLinear [ Info: register_methods! oceanfloor.deepcarb CIsotopeType=PALEOboxes.IsotopeLinear [ Info: register_methods! ReactionReservoirAtm atm.reservoir_O2 field_data=PALEOboxes.ScalarData [ Info: register_methods! ReactionReservoirAtm atm.reservoir_CO2 field_data=PALEOboxes.IsotopeLinear [ Info: ReactionFluxPerturb.register_methods! atm.constant_degassing [ Info: oceansurface.airsea_CO2 IsotopeType=PALEOboxes.IsotopeLinear from isotope_name=CIsotope in external_parameters ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ ┌ Info: _configure_variables: ReactionForceInterp global.force_enable_bioprod variable_links: └ set variable_links: F -> enable_bioprod [ Info: Reaction global.total_O2 Variable global.total_O2 adding data=PALEOboxes.ScalarData ┌ Info: _configure_variables: ReactionSum global.total_O2 variable_links: └ set variable_links: sum -> total_O2 [ Info: Reaction global.total_C Variable global.total_C adding data=PALEOboxes.IsotopeLinear ┌ Info: _configure_variables: ReactionSum global.total_C variable_links: └ set variable_links: sum -> total_C ┌ Info: _configure_variables: ReactionConst global.tforce_constant variable_attributes: └ set attribute: tforce_constant :initial_value = 0.0 ┌ Info: _configure_variables: ReactionForce_UDWEbergman2004 global.force_UDWE variable_links: └ set variable_links: tforce -> tforce_constant ┌ Info: _configure_variables: ReactionForce_CPlandrelbergman2004 global.force_CPlandrel variable_links: └ set variable_links: tforce -> tforce_constant ┌ Info: _configure_variables: ReactionGlobalTemperatureCK1992 global.temp_CK_1992 variable_links: └ set variable_links: pCO2atm -> atm.pCO2atm [ Info: Reaction global.total_S Variable global.total_S adding data=PALEOboxes.IsotopeLinear ┌ Info: _configure_variables: ReactionSum global.total_S variable_links: └ set variable_links: sum -> total_S ┌ Info: _configure_variables: ReactionForce_CK_Solar global.force_solar variable_links: └ set variable_links: tforce -> tforce_constant ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_links: │ set variable_links: R -> TAlk │ set variable_links: R_sms -> TAlk_sms │ set variable_links: R_total -> TAlk_total │ set variable_links: R_conc -> TAlk_conc │ _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_attributes: │ set attribute: R :norm_value = 1.0 └ set attribute: R :initial_value = 2.4032 ┌ Info: _configure_variables: ReactionBioProdPrest ocean.bioprod variable_links: │ set variable_links: prod_P -> export_P │ set variable_links: prod_N -> export_N │ set variable_links: prod_Corg -> export_Corg └ set variable_links: prod_Ccarb -> export_Ccarb ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_links: │ set variable_links: R -> DIC │ set variable_links: R_sms -> DIC_sms │ set variable_links: R_total -> DIC_total │ set variable_links: R_conc -> DIC_conc │ set variable_links: R_delta -> DIC_delta │ _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_attributes: │ set attribute: R :norm_value = 1.0 │ set attribute: R :initial_value = 2.2081 └ set attribute: R :initial_delta = -1.0 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_P variable_links: │ set variable_links: R -> P │ set variable_links: R_sms -> P_sms │ set variable_links: R_total -> P_total │ set variable_links: R_conc -> P_conc │ _configure_variables: ReactionReservoir ocean.reservoir_P variable_attributes: │ set attribute: R :norm_value = 0.001 └ set attribute: R :initial_value = 0.002208 ┌ Info: _configure_variables: ReactionReminO2_SO4 ocean.remin variable_links: │ set variable_links: soluteflux_P -> P_sms │ set variable_links: soluteflux_TNH3 -> TNH3_sms │ set variable_links: soluteflux_DIC -> DIC_sms │ set variable_links: soluteflux_TAlk -> TAlk_sms │ set variable_links: soluteflux_O2 -> O2_sms │ set variable_links: soluteflux_SO4 -> SO4_sms └ set variable_links: soluteflux_H2S -> H2S_sms ┌ Info: _configure_variables: ReactionCO2SYS ocean.carbchem variable_links: │ set variable_links: CO2 -> CO2_conc │ set variable_links: CO3 -> CO3_conc │ set variable_links: OmegaAR -> OmegaAR │ set variable_links: TCi_conc -> DIC_conc │ set variable_links: TH2S_conc -> H2S_conc │ set variable_links: TS_conc -> SO4_conc └ set variable_links: pCO2 -> pCO2 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: R_total -> O2_total │ set variable_links: R_conc -> O2_conc │ _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_attributes: │ set attribute: R :norm_value = 0.1 └ set attribute: R :initial_value = 0.3 [ Info: find_transport_vars Domain ocean length(transport_vars)=6 num_components=9 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_H2S variable_links: │ set variable_links: R -> H2S │ set variable_links: R_sms -> H2S_sms │ set variable_links: R_total -> H2S_total │ set variable_links: R_conc -> H2S_conc │ set variable_links: R_delta -> H2S_delta │ _configure_variables: ReactionReservoir ocean.reservoir_H2S variable_attributes: │ set attribute: R :norm_value = 0.001 │ set attribute: R :initial_value = 1.0e-6 └ set attribute: R :initial_delta = 0.0 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_SO4 variable_links: │ set variable_links: R -> SO4 │ set variable_links: R_sms -> SO4_sms │ set variable_links: R_total -> SO4_total │ set variable_links: R_conc -> SO4_conc │ set variable_links: R_delta -> SO4_delta │ _configure_variables: ReactionReservoir ocean.reservoir_SO4 variable_attributes: │ set attribute: R :norm_value = 1.0 │ set attribute: R :initial_value = 28.756 └ set attribute: R :initial_delta = 0.0 ┌ Info: _configure_variables: ReactionConstraintReservoir ocean.H_primary_species variable_links: │ set variable_links: R_constraint -> TAlk_constraint │ set variable_links: R_calc -> TAlk_calc │ set variable_links: R -> TAlk │ set variable_links: Primary_conc -> H_conc │ set variable_links: Primary_pconc -> pHfree │ _configure_variables: ReactionConstraintReservoir ocean.H_primary_species variable_attributes: │ set attribute: R_constraint :norm_value = 1.0 │ set attribute: Primary_pconc :initial_value = 8.0 └ set attribute: Primary_pconc :norm_value = 1.0 ┌ Info: _configure_variables: ReactionBurialEffCarb oceanfloor.deepcarb variable_links: └ set variable_links: particulateflux_Ccarb -> particulateflux_Ccarb ┌ Info: _configure_variables: ReactionReservoirScalar sedcrust.reservoir_G variable_links: │ set variable_links: R -> G │ set variable_links: R_sms -> G_sms │ set variable_links: R_norm -> G_norm │ set variable_links: R_delta -> G_delta │ _configure_variables: ReactionReservoirScalar sedcrust.reservoir_G variable_attributes: │ set attribute: R :norm_value = 1.25e21 │ set attribute: R :initial_value = 1.25e21 └ set attribute: R :initial_delta = -26.0 ┌ Info: _configure_variables: ReactionReservoirScalar sedcrust.reservoir_C variable_links: │ set variable_links: R -> C │ set variable_links: R_sms -> C_sms │ set variable_links: R_norm -> C_norm │ set variable_links: R_delta -> C_delta │ _configure_variables: ReactionReservoirScalar sedcrust.reservoir_C variable_attributes: │ set attribute: R :norm_value = 5.0e21 │ set attribute: R :initial_value = 5.0e21 └ set attribute: R :initial_delta = 1.0 ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: pRatm -> pO2atm │ set variable_links: pRnorm -> pO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_attributes: │ set attribute: R :norm_value = 3.71e19 └ set attribute: R :initial_value = 3.71e19 ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_links: │ set variable_links: R -> CO2 │ set variable_links: R_sms -> CO2_sms │ set variable_links: R_delta -> CO2_delta │ set variable_links: pRatm -> pCO2atm │ set variable_links: pRnorm -> pCO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_attributes: │ set attribute: R :norm_value = 4.956e16 └ set attribute: R :initial_value = 4.956e16 ┌ Info: _configure_variables: ReactionFluxPerturb atm.constant_degassing variable_links: │ set variable_links: F -> CO2_sms │ set variable_links: FApplied -> CO2_smsApplied └ set variable_links: tforce -> global.tforce ┌ Info: _configure_variables: ReactionAirSea oceansurface.airsea_CO2 variable_links: │ set variable_links: Xatm_delta -> atm.CO2_delta └ set variable_links: Xocean_delta -> ocean.oceansurface.DIC_delta ┌ Info: _configure_variables: ReactionFluxTransfer oceansurface.transfer_fluxAtmtoOceansurface variable_links: └ set variable_links: output_CO2 -> ocean.oceansurface.DIC_sms ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ │ optional ocean.bioprod PELCALC -| global.PELCALC │ optional ocean.remin soluteflux_TNH3 -| TNH3_sms │ optional oceanfloor.shelfcarb shelfarea_force -| global.shelfarea_force │ optional oceanfloor.transfer_particulatefluxOceanfloor output_P -| particulateflux_P │ optional oceanfloor.transfer_particulatefluxOceanfloor output_Corg -| particulateflux_Corg │ optional oceanfloor.transfer_particulatefluxOceanfloor output_N -| particulateflux_N │ optional oceanfloor.transfer_solutefluxOceanfloor output_Ca -| ocean.oceanfloor.Ca_sms │ optional land.land_Bergman2004 locbpert -| global.locbpert │ optional land.land_Bergman2004 GYP_norm -| sedcrust.GYP_norm │ optional land.land_Bergman2004 GYP_delta -| sedcrust.GYP_delta │ optional land.land_Bergman2004 PYR_norm -| sedcrust.PYR_norm │ optional land.land_Bergman2004 PYR_delta -| sedcrust.PYR_delta └ optional oceansurface.transfer_RtoOcean output_Ca -| ocean.oceansurface.Ca_sms ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ Add expt: killbio Add expt: lowO2 ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 17 variables (hostdep=nothing) [ Info: set :field_data=PALEOboxes.ScalarData for host-dependent Variable global.tforce [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 78 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 9 variables (hostdep=nothing) [ Info: Domain land data dimensions PALEOboxes.NamedDimension[] allocating 36 variables (hostdep=nothing) [ Info: Domain fluxRtoOcean data dimensions PALEOboxes.NamedDimension[] allocating 5 variables (hostdep=nothing) [ Info: Domain fluxAtmtoOceansurface data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: Domain sedcrust data dimensions PALEOboxes.NamedDimension[] allocating 8 variables (hostdep=nothing) [ Info: Domain fluxOceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 14 variables (hostdep=nothing) [ Info: Domain fluxOceanBurial data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain fluxLandtoSedCrust data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: Domain atm data dimensions PALEOboxes.NamedDimension[] allocating 10 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain fluxAtoLand data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 1 0 1 1 │ ocean 0 6 0 1 0 1 0 │ oceanfloor 0 0 0 0 0 0 0 │ land 0 0 0 0 0 0 0 │ fluxRtoOcean 0 0 0 0 0 0 0 │ fluxAtmtoOceansurface 0 0 0 0 0 0 0 │ sedcrust 0 2 0 0 0 0 0 │ fluxOceanfloor 0 0 0 0 0 0 0 │ fluxOceanBurial 0 0 0 0 0 0 0 │ fluxLandtoSedCrust 0 0 0 0 0 0 0 │ atm 0 2 0 0 0 0 0 │ oceansurface 0 0 0 0 0 0 0 │ fluxAtoLand 0 0 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 10 0 2 0 2 1 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 12 (stateexplicit 10 + statetotal 0 + state 2) │ n_equations 12 (stateexplicit 10 + total 0 + constraint 2) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): ["global.tforce"] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ [ Info: prepare_do_carbchem: ocean.carbchem simd_width=1 using BufType Float64 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtoLand.do_transfer │ active fluxes: │ CO2 fluxAtoLand.flux_CO2 -> atm.CO2_sms │ O2 fluxAtoLand.flux_O2 -> atm.O2_sms └ using Identity transfer matrix * -1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_RtoOcean.do_transfer │ active fluxes: │ SO4 fluxRtoOcean.flux_SO4 -> ocean.SO4_sms │ P fluxRtoOcean.flux_P -> ocean.P_sms │ Ca fluxRtoOcean.flux_Ca output not linked │ DIC fluxRtoOcean.flux_DIC -> ocean.DIC_sms │ TAlk fluxRtoOcean.flux_TAlk -> ocean.TAlk_sms └ using Distribute transfer matrix size (input, output) (1, 2) * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceanfloor.transfer_particulatefluxOceanfloor.do_transfer │ active fluxes: │ P fluxOceanfloor.particulateflux_P output not linked │ Ccarb fluxOceanfloor.particulateflux_Ccarb -> oceanfloor.particulateflux_Ccarb │ Corg fluxOceanfloor.particulateflux_Corg output not linked │ N fluxOceanfloor.particulateflux_N output not linked └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> atm.CO2_sms │ O2 fluxAtmtoOceansurface.flux_O2 -> atm.O2_sms └ using Distribute transfer matrix size (input, output) (2, 1) * -1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_fluxAtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> ocean.DIC_sms │ O2 fluxAtmtoOceansurface.flux_O2 -> ocean.O2_sms └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceanfloor.transfer_solutefluxOceanfloor.do_transfer │ active fluxes: │ TAlk fluxOceanfloor.soluteflux_TAlk -> ocean.TAlk_sms │ Ca fluxOceanfloor.soluteflux_Ca output not linked │ DIC fluxOceanfloor.soluteflux_DIC -> ocean.DIC_sms └ using Identity transfer matrix * 1.0 ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: global.tforce_constant.setup_initialvalue_vars_default: [ Info: init_values! :initial_value global.tforce_constant = 0.0 [ Info: setup_export_direct: ocean.exportCarb ocean -> oceanfloor transport from Parameter 'transportfloor' = [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] [ Info: setup_export_direct: ocean.exportOrg ocean vertical transport from Parameter 'transportocean' = [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: global.temp_CK_1992.setup_initialvalue_vars_default: [ Info: init_values! :norm_value global.TEMP = 1.0 [ Info: init_values! :norm_value global.TEMP_constraint = 1.0 [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.pHfree = 1.0 [ Info: init_values! :norm_value sedcrust.G = 1.25e21, delta=1.0 (fixed delta value to calculate norm) [ Info: init_values! :norm_value sedcrust.C = 5.0e21, delta=1.0 (fixed delta value to calculate norm) [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.O2 = 3.71e19 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.CO2 = 4.956e16, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk = 1.0 * volume [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.DIC = 1.0 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.P = 0.001 * volume [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.O2 = 0.1 * volume [ Info: ocean.reservoir_H2S.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.H2S = 0.001 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_SO4.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.SO4 = 1.0 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk_constraint = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: global.temp_CK_1992.setup_initialvalue_vars_default: [ Info: init_values! :initial_value global.TEMP = 288.15 [ Info: init_values! :initial_value global.TEMP_constraint = 0.0 [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.pHfree = 8.0 [ Info: init_values! :initial_value sedcrust.G = 1.25e21, delta=-26.0 [ Info: init_values! :initial_value sedcrust.C = 5.0e21, delta=1.0 [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.O2 = 3.71e18 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.CO2 = 4.956e16, delta=0.0 [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk = 2.4032 * volume [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.DIC = 2.2081 * volume, delta=-1.0 [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.P = 0.002208 * volume [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.O2 = 0.3 * volume [ Info: ocean.reservoir_H2S.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.H2S = 1.0e-6 * volume, delta=0.0 [ Info: ocean.reservoir_SO4.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.SO4 = 28.756 * volume, delta=0.0 [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk_constraint = 0.0 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: │ tspan: (-1.0e7, 1.0e7) │ algorithm: IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ Jacobian: ForwardDiffSparse │ using 1 BLAS threads └ ================================================================================ [ Info: DAEfunction: using Jacobian ForwardDiffSparse [ Info: jac_config_dae: jac_ad=ForwardDiffSparse [ Info: using ForwardDiff sparse Jacobian with sparsity calculated at t=-1.0e7 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(38, 38) nnz=253 non-zero=199 at time=-1.0e7 [ Info: fill_sparse_jac: initial_jac nnz 253 (17.5%) non-zero 199 [ Info: fill_sparse_jac: after filling diagonal nnz 257 [ Info: jac_prototype nnz=257 num colors=17 [ Info: add_arrays_data! (arrays_eltype=ForwardDiff.Dual{Nothing, Float64, 9}, arrays_tagname=jac_ad) [ Info: calling get_inconsistent_initial_deriv 18.334457 seconds (5.61 M allocations: 291.598 MiB, 0.79% gc time, 99.70% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 933 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 188 │ Number of linear solves: 0 │ Number of Jacobians created: 188 │ Number of nonlinear solver iterations: 926 │ Number of nonlinear solver convergence failures: 10 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 473 │ Number of rejected steps: 55 │ length(sol.t) 529 │ size(sol) (38, 529) └ ================================================================================ [ Info: ODE.calc_output_sol!: 529 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: done └ ================================================================================ conservation checks: check global.total_S 3.835160133369036e19 3.835160133373648e19 1.0e-6 check global.total_S 0.0 -1.5970060412371159e6 1 check ocean.P_total 2.944788315481986e15 2.944788315484618e15 1.0e-6 check values at end of run: check atm.pCO2atm 0.00021488391682541176 0.000214884 0.0001 check ocean.pHtot [8.319810934249789, 8.401785924885726, 8.335963478122576] [8.31981, 8.40179, 8.33596] 0.0001 check atm.CO2_delta -8.524820731109477 -8.52482 0.0001 WARNING: replacing module AtmReservoirTODO. ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel ocean3box_oaopencarb_base │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/PTBClarkson2014/PALEO_examples_PTB3box_cfg.yaml └ ================================================================================ ┌ Info: Model.parameters: │ BIsotope = IsotopeLinear │ Senabled = false │ CIsotope = IsotopeLinear └ SIsotope = IsotopeLinear ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 97 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: global.force_enable_bioprod classname ReactionForceInterp │ set parameters: [config.yaml] force_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] force_values =[1.0, 1.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN └ set parameters: [Default] extrapolate_after =NaN ┌ Info: create_reaction_from_config: global.force_W classname ReactionForceInterp │ set parameters: [config.yaml] force_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] force_values =[1.0, 1.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN └ set parameters: [Default] extrapolate_after =NaN ┌ Info: create_reaction_from_config: global.constant_tforce classname ReactionScalarConst └ set parameters: [Default] constnames =["constvar"] [ Info: create_reaction_from_config: global.force_solar classname ReactionForce_CK_Solar ┌ Info: create_reaction_from_config: global.force_locbpert classname ReactionForceInterp │ set parameters: [config.yaml] force_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] force_values =[1.0, 1.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN └ set parameters: [Default] extrapolate_after =NaN ┌ Info: create_reaction_from_config: global.total_C classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.CO2", "ocean.DIC"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: create_reaction_from_config: global.force_UPLIFT classname ReactionForceInterp │ set parameters: [config.yaml] force_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] force_values =[1.0, 1.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN └ set parameters: [Default] extrapolate_after =NaN ┌ Info: create_reaction_from_config: global.force_VEG classname ReactionForceInterp │ set parameters: [config.yaml] force_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] force_values =[1.0, 1.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN └ set parameters: [Default] extrapolate_after =NaN ┌ Info: create_reaction_from_config: global.temp_CK_1992 classname ReactionGlobalTemperatureCK1992 │ set parameters: [Default] fixed_albedo =NaN │ set parameters: [Default] tempcorrect =0.194 └ set parameters: [config.yaml] temp_DAE =true ┌ Info: create_reaction_from_config: global.Ppulse classname ReactionFluxPerturb │ set parameters: [config.yaml] field_data =ScalarData │ set parameters: [config.yaml] perturb_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] perturb_totals =[0.0, 0.0] │ set parameters: [config.yaml] perturb_deltas =[0.0, 0.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN │ set parameters: [Default] extrapolate_before_delta=NaN │ set parameters: [Default] extrapolate_after =NaN └ set parameters: [Default] extrapolate_after_delta=NaN ┌ Info: create_reaction_from_config: global.total_S classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["ocean.SO4", "ocean.H2S"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: create_reaction_from_config: global.shelfarea_force classname ReactionForceInterp │ set parameters: [config.yaml] force_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] force_values =[1.0, 1.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN └ set parameters: [Default] extrapolate_after =NaN ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.reservoir_TAlk classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.const_cisotopes classname ReactionScalarConst └ set parameters: [config.yaml] constnames =["D_mccb_DIC", "D_B_mccb_mocb"] ┌ Info: create_reaction_from_config: ocean.exportCarb classname ReactionExportDirect │ set parameters: [config.yaml] fluxlist =["Ccarb::CIsotope"] │ set parameters: [Default] transportocean =Vector{Float64}[] │ set parameters: [config.yaml] transportfloor =[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] └ set parameters: [Default] conserv_errthresh =1.0e-5 ┌ Info: create_reaction_from_config: ocean.reservoir_P classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_DIC classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.bioprod classname ReactionBioProdPrest │ set parameters: [config.yaml] bioprod =[1, 2, 0] │ set parameters: [config.yaml] bioprodval =[0.0, 0.18, NaN] │ set parameters: [config.yaml] rCorgPO4 =161.0 │ set parameters: [config.yaml] rNPO4 =16.0 │ set parameters: [config.yaml] rCcarbCorg =0.0 │ set parameters: [Default] trest =0.1 └ set parameters: [config.yaml] CIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.remin classname ReactionReminO2_SO4 │ set parameters: [Default] oxreminlimit =0.008 │ set parameters: [config.yaml] CIsotope =IsotopeLinear └ set parameters: [config.yaml] SIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.carbchem classname ReactionCO2SYS │ set parameters: [Default] WhichKs =10 │ set parameters: [Default] WhoseKSO4 =1 │ set parameters: [config.yaml] components =["Ci", "B", "S", "F", "Omega", "H2S"] │ set parameters: [config.yaml] defaultconcs =["TF", "Ca"] │ set parameters: [config.yaml] outputs =["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR", "BAlk", "TB"] │ set parameters: [Default] output_pHtot =true │ set parameters: [config.yaml] solve_pH =speciationTAlk │ set parameters: [Default] pHtol =2.220446049250313e-14 └ set parameters: [Default] simd_width =1 ┌ Info: create_reaction_from_config: ocean.B_isotope classname ReactionBoronIsotope │ set parameters: [Default] alphaB =1.0272 └ set parameters: [config.yaml] BIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.reservoir_O2 classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_B classname ReactionReservoirConst │ set parameters: [config.yaml] field_data =external%BIsotope │ expandvalue: external%BIsotope -> IsotopeLinear └ after substitution field_data=IsotopeLinear ┌ Info: create_reaction_from_config: ocean.redox_H2S_O2 classname ReactionRedoxH2S_O2 │ set parameters: [config.yaml] R_H2S_O2 =3650.0 └ set parameters: [config.yaml] SIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: ocean.exportOrg classname ReactionExportDirect │ set parameters: [config.yaml] fluxlist =["P", "N", "Corg::CIsotope"] │ set parameters: [config.yaml] transportocean =[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 1.0, 1.0]] │ set parameters: [config.yaml] transportfloor =[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 0.0, 0.0]] └ set parameters: [Default] conserv_errthresh =1.0e-5 ┌ Info: create_reaction_from_config: ocean.transport3box classname ReactionOceanTransport3box │ set parameters: [Default] circT =2.0e7 │ set parameters: [Default] circfhd =6.0e7 │ set parameters: [config.yaml] temp =[21.5, 2.0, 2.0] └ set parameters: [config.yaml] temp_trackglobal =true ┌ Info: create_reaction_from_config: ocean.reservoir_H2S classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%SIsotope │ expandvalue: external%SIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_SO4 classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%SIsotope │ expandvalue: external%SIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.H_primary_species classname ReactionConstraintReservoir │ set parameters: [config.yaml] primary_total_stoich=0.0 │ set parameters: [Default] primary_other_components=String[] │ set parameters: [config.yaml] primary_variable =p_concentration └ set parameters: [config.yaml] constraint_variable =amount ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=3 └ ================================================================================ ┌ Info: create_reaction_from_config: oceanfloor.shelfcarb classname ReactionShelfCarb │ set parameters: [config.yaml] carbsedshallow =1.4355e12 │ set parameters: [config.yaml] shelfareanorm =[1.0, 0.0, 0.0] └ set parameters: [config.yaml] CIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: oceanfloor.deepcarb classname ReactionBurialEffCarb │ set parameters: [Default] burial_eff_function =Caldeira1993 │ set parameters: [Default] k0 =26.0 │ set parameters: [Default] k1 =0.11 │ set parameters: [Default] m0 =10.0 │ set parameters: [Default] m1 =1.0 │ set parameters: [config.yaml] hascarbseddeep =Bool[0, 0, 1] └ set parameters: [config.yaml] CIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: oceanfloor.remin classname ReactionReminO2_SO4 │ set parameters: [Default] oxreminlimit =0.008 │ set parameters: [config.yaml] CIsotope =IsotopeLinear └ set parameters: [config.yaml] SIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: oceanfloor.sedBEcorgP classname ReactionBurialEffCorgP │ set parameters: [config.yaml] BECorgNorm =5.0e12 │ set parameters: [config.yaml] burial_eff_function =ConstantBurialRate │ set parameters: [config.yaml] BECorg =[0.0, 0.0, 1.0] │ set parameters: [Default] FixedCorgBurialTotal=NaN │ set parameters: [Default] BPO2 =[NaN] │ set parameters: [config.yaml] BPorgCorg =[0.0] │ set parameters: [config.yaml] BPFeCorg =[0.0] │ set parameters: [config.yaml] BPauthCorg =[0.0] └ set parameters: [config.yaml] CIsotope =IsotopeLinear ┌ Info: create_reaction_from_config: oceanfloor.transferparticulate_fluxOceanfloor classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxOceanfloor.particulateflux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =particulateflux_$fluxname$ │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceanfloor.transfersolute_fluxOceanfloor classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxOceanfloor.soluteflux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceanfloor.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: │ ================================================================================ │ creating domain 'land' ID=4 └ ================================================================================ ┌ Info: create_reaction_from_config: land.constant_D_P_CO2_locb classname ReactionScalarConst └ set parameters: [config.yaml] constnames =["D_P_CO2_locb"] ┌ Info: create_reaction_from_config: land.land_Bergman2004 classname ReactionLandBergman2004 │ set parameters: [config.yaml] k5_locb =5.0e12 │ set parameters: [Default] k11_landfrac =0.10345 │ set parameters: [config.yaml] k14_carbw =1.33e13 │ set parameters: [Default] k15_plantenhance =0.15 │ set parameters: [Default] k_fire =100.0 │ set parameters: [Default] k16_PANtoO =3.762 │ set parameters: [config.yaml] k_silw =6.6e12 │ set parameters: [config.yaml] k10_phosw =0.0 │ set parameters: [config.yaml] k17_oxidw =0.0 │ set parameters: [config.yaml] enableS =external%Senabled │ expandvalue: external%Senabled -> false │ after substitution enableS=false │ set parameters: [Default] k21_pyrw =5.3e11 │ set parameters: [Default] k22_gypw =1.0e12 │ set parameters: [Default] f_carbwC =Cindep │ set parameters: [Default] f_oxwO =PowerO2 │ set parameters: [Default] f_oxw_a =0.5 │ set parameters: [config.yaml] f_landbiota =Prescribed │ set parameters: [config.yaml] f_locb =Prescribed │ set parameters: [Default] dic_runoff =true │ set parameters: [config.yaml] CIsotope =IsotopeLinear └ set parameters: [config.yaml] SIsotope =IsotopeLinear ┌ Info: │ ================================================================================ │ creating domain 'fluxRtoOcean' ID=5 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxRtoOcean.target classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["DIC::CIsotope", "TAlk", "Ca", "P", "SO4::SIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [Default] flux_totals =false └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxAtmtoOceansurface' ID=6 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtmtoOceansurface.fluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["O2", "CO2::CIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'sedcrust' ID=7 └ ================================================================================ ┌ Info: create_reaction_from_config: sedcrust.reservoir_G classname ReactionReservoirScalar │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [config.yaml] const =true └ set parameters: [Default] state_norm =false ┌ Info: create_reaction_from_config: sedcrust.reservoir_C classname ReactionReservoirScalar │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [config.yaml] const =true └ set parameters: [Default] state_norm =false ┌ Info: │ ================================================================================ │ creating domain 'fluxOceanfloor' ID=8 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxOceanfloor.particulatetarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["Corg::CIsotope", "N", "P", "Ccarb::CIsotope"] │ set parameters: [config.yaml] target_prefix =particulateflux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: create_reaction_from_config: fluxOceanfloor.solutetarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["DIC::CIsotope", "TAlk", "O2", "P", "SO4::SIsotope", "H2S::SIsotope", "CH4::CIsotope"] │ set parameters: [config.yaml] target_prefix =soluteflux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxOceanBurial' ID=9 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxOceanBurial.transfer classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["Corg::CIsotope", "Ccarb::CIsotope", "GYP::SIsotope", "PYR::SIsotope", "P", "Pauth", "PFe", "Porg"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxLandtoSedCrust' ID=10 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxLandtoSedCrust.target classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["Ccarb::CIsotope", "Corg::CIsotope", "PYR::SIsotope", "GYP::SIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [Default] flux_totals =false └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'atm' ID=11 └ ================================================================================ ┌ Info: create_reaction_from_config: atm.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: create_reaction_from_config: atm.constant_pO2 classname ReactionScalarConst └ set parameters: [config.yaml] constnames =["pO2PAL", "pO2atm"] ┌ Info: create_reaction_from_config: atm.CO2pulse_Cib classname ReactionFluxPerturb │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [config.yaml] perturb_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] perturb_totals =[0.0, 0.0] │ set parameters: [config.yaml] perturb_deltas =[0.0, 0.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN │ set parameters: [Default] extrapolate_before_delta=NaN │ set parameters: [Default] extrapolate_after =NaN └ set parameters: [Default] extrapolate_after_delta=NaN ┌ Info: create_reaction_from_config: atm.reservoir_CO2 classname ReactionReservoirAtm │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: create_reaction_from_config: atm.constant_degassing classname ReactionFluxPerturb │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [config.yaml] perturb_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] perturb_totals =[1.18e13, 1.18e13] │ set parameters: [config.yaml] perturb_deltas =[-4.9, -4.9] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN │ set parameters: [Default] extrapolate_before_delta=NaN │ set parameters: [Default] extrapolate_after =NaN └ set parameters: [Default] extrapolate_after_delta=NaN ┌ Info: create_reaction_from_config: atm.CO2pulse_Cia classname ReactionFluxPerturb │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> IsotopeLinear │ after substitution field_data=IsotopeLinear │ set parameters: [config.yaml] perturb_times =[-1.0e30, 1.0e30] │ set parameters: [config.yaml] perturb_totals =[0.0, 0.0] │ set parameters: [config.yaml] perturb_deltas =[0.0, 0.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN │ set parameters: [Default] extrapolate_before_delta=NaN │ set parameters: [Default] extrapolate_after =NaN └ set parameters: [Default] extrapolate_after_delta=NaN ┌ Info: create_reaction_from_config: atm.transfer_AtoLand classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtoLand.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [Default] transfer_matrix =Identity ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=12 └ ================================================================================ ┌ Info: create_reaction_from_config: oceansurface.airsea_O2 classname ReactionAirSeaO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [config.yaml] moistair =false │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =3.0 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.airsea_CO2 classname ReactionAirSeaCO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [config.yaml] moistair =false │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =3.0 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.transfer_fluxAtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceansurface.transfer_RtoOcean classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxRtoOcean.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: │ ================================================================================ │ creating domain 'fluxAtoLand' ID=13 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtoLand.target classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["O2", "CO2::CIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [Default] flux_totals =false └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: set ocean.oceansurface Subdomain size=2 [ Info: set ocean.oceanfloor Subdomain size=3 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["oceansurface", "oceanfloor"]) [ Info: fluxAtmtoOceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceansurface Domain size=2 grid=UnstructuredVectorGrid(ncells=2, cellnames=Dict(:s => 1, :h => 2), subdomains: ["ocean"]) [ Info: fluxOceanfloor Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) [ Info: fluxOceanBurial Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:d => 3, :s => 1, :h => 2), subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ [ Info: ReactionForceInterp.register_methods! global.force_enable_bioprod [ Info: ReactionForceInterp.register_methods! global.force_W [ Info: ReactionForceInterp.register_methods! global.force_locbpert ┌ Info: register_methods: global.total_C PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.CO2 └ add 1 * ocean.DIC [ Info: ReactionForceInterp.register_methods! global.force_UPLIFT [ Info: ReactionForceInterp.register_methods! global.force_VEG [ Info: ReactionFluxPerturb.register_methods! global.Ppulse ┌ Info: register_methods: global.total_S PALEOboxes.VariableStats.ReactionSum │ add 1 * ocean.SO4 └ add 1 * ocean.H2S [ Info: ReactionForceInterp.register_methods! global.shelfarea_force [ Info: register_methods! ocean.exportCarb add ocean fluxlist=["Ccarb::CIsotope"] [ Info: ocean.exportCarb add oceanfloor fluxlist=["Ccarb::CIsotope"] [ Info: register_methods! ocean.remin SIsotopeType=PALEOboxes.IsotopeLinear ┌ Info: register_methods! ocean.carbchem ReactionCO2SYS │ modern default concentration Variables ["TF_conc", "Ca_conc"] │ adding input concentration Variables ["TCi_conc", "TB_conc", "TS_conc", "TF_conc", "Ca_conc", "TH2S_conc"] │ adding additional output Variable %reaction%pCO2 (atm) 'CO2 partial pressure (fugacity corrected)' │ adding additional output Variable %reaction%xCO2dryinp () 'mixing ratio of CO2 in dry air at 1 atm (always > pCO2 due to H2O vapour pressure)' │ adding additional output Variable %reaction%CO2 (mol m-3) 'CO2 concentration' │ adding additional output Variable %reaction%CO3 (mol m-3) 'carbonate ion CO3-- concentration' │ adding additional output Variable %reaction%OmegaCA () 'calcite saturation' │ adding additional output Variable %reaction%OmegaAR () 'aragonite saturation' │ adding additional output Variable %reaction%BAlk (mol m-3) 'Boron B(OH)_4^- concentration (= boron contribution to total alkalinity)' │ adding additional output Variable %reaction%TB (mol m-3) 'Boron total concentration' └ outputs ["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR", "BAlk", "TB"] at indices [16, 17, 11, 13, 36, 37, 19, 18] in res (pHfree = 1, H = 2, OH = 3, TA = 4, dTAdpH = 5, TS = 6, HSO4 = 7, TF = 8, HF = 9, TCi = 10, CO2 = 11, HCO3 = 12, CO3 = 13, CAlk = 14, fCO2 = 15, pCO2 = 16, xCO2dryinp = 17, TB = 18, BAlk = 19, TP = 20, H3PO4 = 21, H2PO4 = 22, HPO4 = 23, PO4 = 24, PengCorrection = 25, PAlk = 26, TSi = 27, SiAlk = 28, TH2S = 29, H2S = 30, HSAlk = 31, TNH3 = 32, NH4 = 33, NH3Alk = 34, Ca = 35, OmegaCA = 36, OmegaAR = 37) [ Info: register_methods! ocean.redox_H2S_O2 SIsotopeType=PALEOboxes.IsotopeLinear [ Info: register_methods! ocean.exportOrg add ocean fluxlist=["P", "N", "Corg::CIsotope"] [ Info: ocean.exportOrg add ocean fluxlist=["P", "N", "Corg::CIsotope"] [ Info: ocean.exportOrg add oceanfloor fluxlist=["P", "N", "Corg::CIsotope"] [ Info: register_methods! oceanfloor.shelfcarb CIsotopeType=PALEOboxes.IsotopeLinear [ Info: register_methods! oceanfloor.deepcarb CIsotopeType=PALEOboxes.IsotopeLinear [ Info: register_methods! oceanfloor.remin SIsotopeType=PALEOboxes.IsotopeLinear [ Info: register_methods! oceanfloor.sedBEcorgP CIsotopeType=PALEOboxes.IsotopeLinear [ Info: ReactionFluxPerturb.register_methods! atm.CO2pulse_Cib [ Info: register_methods! ReactionReservoirAtm atm.reservoir_CO2 field_data=PALEOboxes.IsotopeLinear [ Info: ReactionFluxPerturb.register_methods! atm.constant_degassing [ Info: ReactionFluxPerturb.register_methods! atm.CO2pulse_Cia [ Info: oceansurface.airsea_CO2 IsotopeType=PALEOboxes.IsotopeLinear from isotope_name=CIsotope in external_parameters ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ ┌ Info: _configure_variables: ReactionForceInterp global.force_enable_bioprod variable_links: └ set variable_links: F -> enable_bioprod ┌ Info: _configure_variables: ReactionForceInterp global.force_W variable_links: └ set variable_links: F -> W ┌ Info: _configure_variables: ReactionConst global.constant_tforce variable_links: │ set variable_links: constvar -> constant_tforce │ _configure_variables: ReactionConst global.constant_tforce variable_attributes: └ set attribute: constvar :initial_value = -2.5e8 ┌ Info: _configure_variables: ReactionForce_CK_Solar global.force_solar variable_links: └ set variable_links: tforce -> constant_tforce ┌ Info: _configure_variables: ReactionForceInterp global.force_locbpert variable_links: └ set variable_links: F -> locbpert [ Info: Reaction global.total_C Variable global.total_C adding data=PALEOboxes.IsotopeLinear ┌ Info: _configure_variables: ReactionSum global.total_C variable_links: └ set variable_links: sum -> total_C ┌ Info: _configure_variables: ReactionForceInterp global.force_UPLIFT variable_links: └ set variable_links: F -> UPLIFT ┌ Info: _configure_variables: ReactionForceInterp global.force_VEG variable_links: └ set variable_links: F -> VEG ┌ Info: _configure_variables: ReactionGlobalTemperatureCK1992 global.temp_CK_1992 variable_links: └ set variable_links: pCO2atm -> atm.pCO2atm ┌ Info: _configure_variables: ReactionFluxPerturb global.Ppulse variable_links: │ set variable_links: F -> fluxRtoOcean.flux_P │ set variable_links: FApplied -> Ppulse └ set variable_links: tforce -> global.tforce [ Info: Reaction global.total_S Variable global.total_S adding data=PALEOboxes.IsotopeLinear ┌ Info: _configure_variables: ReactionSum global.total_S variable_links: └ set variable_links: sum -> total_S ┌ Info: _configure_variables: ReactionForceInterp global.shelfarea_force variable_links: └ set variable_links: F -> shelfarea_force ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_links: │ set variable_links: R -> TAlk │ set variable_links: R_sms -> TAlk_sms │ set variable_links: R_total -> TAlk_total │ set variable_links: R_conc -> TAlk_conc │ _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_attributes: │ set attribute: R :norm_value = 1.0 └ set attribute: R :initial_value = 2.4032 ┌ Info: _configure_variables: ReactionConst ocean.const_cisotopes variable_attributes: │ set attribute: D_mccb_DIC :initial_value = 0.0 └ set attribute: D_B_mccb_mocb :initial_value = 25.0 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_P variable_links: │ set variable_links: R -> P │ set variable_links: R_sms -> P_sms │ set variable_links: R_total -> P_total │ set variable_links: R_conc -> P_conc │ _configure_variables: ReactionReservoir ocean.reservoir_P variable_attributes: │ set attribute: R :norm_value = 0.001 └ set attribute: R :initial_value = 0.002208 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_links: │ set variable_links: R -> DIC │ set variable_links: R_sms -> DIC_sms │ set variable_links: R_total -> DIC_total │ set variable_links: R_conc -> DIC_conc │ set variable_links: R_delta -> DIC_delta │ _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_attributes: │ set attribute: R :norm_value = 1.0 │ set attribute: R :initial_value = 2.2081 └ set attribute: R :initial_delta = -1.0 ┌ Info: _configure_variables: ReactionBioProdPrest ocean.bioprod variable_links: │ set variable_links: prod_P -> export_P │ set variable_links: prod_N -> export_N │ set variable_links: prod_Corg -> export_Corg └ set variable_links: prod_Ccarb -> export_Ccarb ┌ Info: _configure_variables: ReactionReminO2_SO4 ocean.remin variable_links: │ set variable_links: soluteflux_P -> P_sms │ set variable_links: soluteflux_TNH3 -> TNH3_sms │ set variable_links: soluteflux_DIC -> DIC_sms │ set variable_links: soluteflux_TAlk -> TAlk_sms │ set variable_links: soluteflux_O2 -> O2_sms │ set variable_links: soluteflux_SO4 -> SO4_sms └ set variable_links: soluteflux_H2S -> H2S_sms ┌ Info: _configure_variables: ReactionCO2SYS ocean.carbchem variable_links: │ set variable_links: BAlk -> BOH4_conc │ set variable_links: CO2 -> CO2_conc │ set variable_links: CO3 -> CO3_conc │ set variable_links: OmegaAR -> OmegaAR │ set variable_links: OmegaCA -> OmegaCA │ set variable_links: TB_conc -> B_conc │ set variable_links: TCi_conc -> DIC_conc │ set variable_links: TH2S_conc -> H2S_conc │ set variable_links: TS_conc -> SO4_conc └ set variable_links: pCO2 -> pCO2 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: R_total -> O2_total │ set variable_links: R_conc -> O2_conc │ _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_attributes: │ set attribute: R :norm_value = 0.1 └ set attribute: R :initial_value = 0.3 ┌ Info: _configure_variables: ReactionReservoirConst ocean.reservoir_B variable_links: │ set variable_links: R_conc -> B_conc │ set variable_links: R_delta -> B_delta │ _configure_variables: ReactionReservoirConst ocean.reservoir_B variable_attributes: │ set attribute: R_conc :initial_delta = 34.0 └ set attribute: R_conc :initial_value = 0.4269239 [ Info: find_transport_vars Domain ocean length(transport_vars)=6 num_components=9 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_H2S variable_links: │ set variable_links: R -> H2S │ set variable_links: R_sms -> H2S_sms │ set variable_links: R_total -> H2S_total │ set variable_links: R_conc -> H2S_conc │ set variable_links: R_delta -> H2S_delta │ _configure_variables: ReactionReservoir ocean.reservoir_H2S variable_attributes: │ set attribute: R :norm_value = 0.001 │ set attribute: R :initial_value = 1.0e-6 └ set attribute: R :initial_delta = 0.0 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_SO4 variable_links: │ set variable_links: R -> SO4 │ set variable_links: R_sms -> SO4_sms │ set variable_links: R_total -> SO4_total │ set variable_links: R_conc -> SO4_conc │ set variable_links: R_delta -> SO4_delta │ _configure_variables: ReactionReservoir ocean.reservoir_SO4 variable_attributes: │ set attribute: R :norm_value = 1.0 │ set attribute: R :initial_value = 28.756 └ set attribute: R :initial_delta = 0.0 ┌ Info: _configure_variables: ReactionConstraintReservoir ocean.H_primary_species variable_links: │ set variable_links: R_constraint -> TAlk_constraint │ set variable_links: R_calc -> TAlk_calc │ set variable_links: R -> TAlk │ set variable_links: Primary_conc -> H_conc │ set variable_links: Primary_pconc -> pHfree │ _configure_variables: ReactionConstraintReservoir ocean.H_primary_species variable_attributes: │ set attribute: R_constraint :norm_value = 1.0 │ set attribute: Primary_pconc :initial_value = 8.0 └ set attribute: Primary_pconc :norm_value = 1.0 ┌ Info: _configure_variables: ReactionBurialEffCarb oceanfloor.deepcarb variable_links: └ set variable_links: particulateflux_Ccarb -> particulateflux_Ccarb ┌ Info: _configure_variables: ReactionReminO2_SO4 oceanfloor.remin variable_links: │ set variable_links: soluteflux_P -> fluxOceanfloor.soluteflux_P │ set variable_links: soluteflux_TNH3 -> fluxOceanfloor.soluteflux_TNH3 │ set variable_links: soluteflux_DIC -> fluxOceanfloor.soluteflux_DIC │ set variable_links: soluteflux_TAlk -> fluxOceanfloor.soluteflux_TAlk │ set variable_links: soluteflux_O2 -> fluxOceanfloor.soluteflux_O2 │ set variable_links: soluteflux_SO4 -> fluxOceanfloor.soluteflux_SO4 │ set variable_links: soluteflux_H2S -> fluxOceanfloor.soluteflux_H2S │ set variable_links: O2_conc -> ocean.oceanfloor.O2_conc └ set variable_links: SO4_delta -> ocean.oceanfloor.SO4_delta ┌ Info: _configure_variables: ReactionBurialEffCorgP oceanfloor.sedBEcorgP variable_links: │ set variable_links: reminflux_Corg -> remin_Corg │ set variable_links: reminflux_N -> remin_N └ set variable_links: reminflux_P -> remin_P ┌ Info: _configure_variables: ReactionConst land.constant_D_P_CO2_locb variable_attributes: └ set attribute: D_P_CO2_locb :initial_value = 19.0 ┌ Info: _configure_variables: ReactionReservoirScalar sedcrust.reservoir_G variable_links: │ set variable_links: R -> G │ set variable_links: R_sms -> G_sms │ set variable_links: R_norm -> G_norm │ set variable_links: R_delta -> G_delta │ _configure_variables: ReactionReservoirScalar sedcrust.reservoir_G variable_attributes: │ set attribute: R :norm_value = 1.25e21 │ set attribute: R :initial_value = 1.25e21 └ set attribute: R :initial_delta = -25.0 ┌ Info: _configure_variables: ReactionReservoirScalar sedcrust.reservoir_C variable_links: │ set variable_links: R -> C │ set variable_links: R_sms -> C_sms │ set variable_links: R_norm -> C_norm │ set variable_links: R_delta -> C_delta │ _configure_variables: ReactionReservoirScalar sedcrust.reservoir_C variable_attributes: │ set attribute: R :norm_value = 5.0e21 │ set attribute: R :initial_value = 5.0e21 └ set attribute: R :initial_delta = 2.65 ┌ Info: _configure_variables: ReactionConst atm.constant_pO2 variable_attributes: │ set attribute: pO2PAL :initial_value = 1.0 └ set attribute: pO2atm :initial_value = 0.21 ┌ Info: _configure_variables: ReactionFluxPerturb atm.CO2pulse_Cib variable_links: │ set variable_links: F -> CO2_sms │ set variable_links: FApplied -> Cib └ set variable_links: tforce -> global.tforce ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_links: │ set variable_links: R -> CO2 │ set variable_links: R_sms -> CO2_sms │ set variable_links: R_delta -> CO2_delta │ set variable_links: pRatm -> pCO2atm │ set variable_links: pRnorm -> pCO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_attributes: │ set attribute: R :norm_value = 4.956e16 └ set attribute: R :initial_value = 4.956e16 ┌ Info: _configure_variables: ReactionFluxPerturb atm.constant_degassing variable_links: │ set variable_links: F -> CO2_sms │ set variable_links: FApplied -> ccdeg └ set variable_links: tforce -> global.tforce ┌ Info: _configure_variables: ReactionFluxPerturb atm.CO2pulse_Cia variable_links: │ set variable_links: F -> CO2_sms │ set variable_links: FApplied -> Cia └ set variable_links: tforce -> global.tforce ┌ Info: _configure_variables: ReactionAirSea oceansurface.airsea_CO2 variable_links: │ set variable_links: Xatm_delta -> atm.CO2_delta └ set variable_links: Xocean_delta -> ocean.oceansurface.DIC_delta ┌ Info: _configure_variables: ReactionFluxTransfer oceansurface.transfer_fluxAtmtoOceansurface variable_links: └ set variable_links: output_CO2 -> ocean.oceansurface.DIC_sms ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ │ optional ocean.bioprod PELCALC -| global.PELCALC │ optional ocean.remin soluteflux_TNH3 -| TNH3_sms │ optional oceanfloor.shelfcarb fluxOceanfloor_soluteflux_Ca -| fluxOceanfloor.soluteflux_Ca │ optional oceanfloor.deepcarb fluxOceanfloor_soluteflux_Ca -| fluxOceanfloor.soluteflux_Ca │ optional oceanfloor.remin soluteflux_TNH3 -| fluxOceanfloor.soluteflux_TNH3 │ optional oceanfloor.sedBEcorgP sedimentation_rate -| sedimentation_rate │ optional oceanfloor.transfersolute_fluxOceanfloor output_CH4 -| ocean.oceanfloor.CH4_sms │ optional land.land_Bergman2004 EVO -| global.EVO │ optional land.land_Bergman2004 CPland_relative -| global.CPland_relative │ optional land.land_Bergman2004 GYP_norm -| sedcrust.GYP_norm │ optional land.land_Bergman2004 GYP_delta -| sedcrust.GYP_delta │ optional land.land_Bergman2004 PYR_norm -| sedcrust.PYR_norm │ optional land.land_Bergman2004 PYR_delta -| sedcrust.PYR_delta │ optional atm.transfer_AtmtoOceansurface output_O2 -| O2_sms │ optional atm.transfer_AtoLand output_O2 -| O2_sms └ optional oceansurface.transfer_RtoOcean output_Ca -| ocean.oceansurface.Ca_sms ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ Add expt: Sw_2Ts Add expt: Pp_PEes Add expt: Lk_2 Add expt: Cia_s2 Add expt: Cib_1 ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 17 variables (hostdep=nothing) [ Info: set :field_data=PALEOboxes.ScalarData for host-dependent Variable global.tforce [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 82 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 21 variables (hostdep=nothing) [ Info: Domain land data dimensions PALEOboxes.NamedDimension[] allocating 34 variables (hostdep=nothing) [ Info: Domain fluxRtoOcean data dimensions PALEOboxes.NamedDimension[] allocating 5 variables (hostdep=nothing) [ Info: Domain fluxAtmtoOceansurface data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: Domain sedcrust data dimensions PALEOboxes.NamedDimension[] allocating 8 variables (hostdep=nothing) [ Info: Domain fluxOceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 22 variables (hostdep=nothing) [ Info: Domain fluxOceanBurial data dimensions PALEOboxes.NamedDimension[] allocating 16 variables (hostdep=nothing) [ Info: Domain fluxLandtoSedCrust data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: Domain atm data dimensions PALEOboxes.NamedDimension[] allocating 10 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain fluxAtoLand data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 1 0 1 1 │ ocean 0 6 0 1 0 1 0 │ oceanfloor 0 0 0 0 0 0 0 │ land 0 0 0 0 0 0 0 │ fluxRtoOcean 0 0 0 0 0 0 0 │ fluxAtmtoOceansurface 0 0 0 0 0 0 0 │ sedcrust 0 0 0 0 0 0 0 │ fluxOceanfloor 0 0 0 0 0 0 0 │ fluxOceanBurial 0 0 0 0 0 0 0 │ fluxLandtoSedCrust 0 0 0 0 0 0 0 │ atm 0 1 0 0 0 0 0 │ oceansurface 0 0 0 0 0 0 0 │ fluxAtoLand 0 0 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 7 0 2 0 2 1 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 9 (stateexplicit 7 + statetotal 0 + state 2) │ n_equations 9 (stateexplicit 7 + total 0 + constraint 2) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): ["global.tforce"] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ [ Info: prepare_do_carbchem: ocean.carbchem simd_width=1 using BufType Float64 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtoLand.do_transfer │ active fluxes: │ CO2 fluxAtoLand.flux_CO2 -> atm.CO2_sms │ O2 fluxAtoLand.flux_O2 output not linked └ using Identity transfer matrix * -1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_RtoOcean.do_transfer │ active fluxes: │ SO4 fluxRtoOcean.flux_SO4 -> ocean.SO4_sms │ P fluxRtoOcean.flux_P -> ocean.P_sms │ Ca fluxRtoOcean.flux_Ca output not linked │ DIC fluxRtoOcean.flux_DIC -> ocean.DIC_sms │ TAlk fluxRtoOcean.flux_TAlk -> ocean.TAlk_sms └ using Distribute transfer matrix size (input, output) (1, 2) * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceanfloor.transferparticulate_fluxOceanfloor.do_transfer │ active fluxes: │ P fluxOceanfloor.particulateflux_P -> oceanfloor.particulateflux_P │ Ccarb fluxOceanfloor.particulateflux_Ccarb -> oceanfloor.particulateflux_Ccarb │ Corg fluxOceanfloor.particulateflux_Corg -> oceanfloor.particulateflux_Corg │ N fluxOceanfloor.particulateflux_N -> oceanfloor.particulateflux_N └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> atm.CO2_sms │ O2 fluxAtmtoOceansurface.flux_O2 output not linked └ using Distribute transfer matrix size (input, output) (2, 1) * -1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_fluxAtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> ocean.DIC_sms │ O2 fluxAtmtoOceansurface.flux_O2 -> ocean.O2_sms └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceanfloor.transfersolute_fluxOceanfloor.do_transfer │ active fluxes: │ H2S fluxOceanfloor.soluteflux_H2S -> ocean.H2S_sms │ CH4 fluxOceanfloor.soluteflux_CH4 output not linked │ SO4 fluxOceanfloor.soluteflux_SO4 -> ocean.SO4_sms │ O2 fluxOceanfloor.soluteflux_O2 -> ocean.O2_sms │ TAlk fluxOceanfloor.soluteflux_TAlk -> ocean.TAlk_sms │ P fluxOceanfloor.soluteflux_P -> ocean.P_sms │ DIC fluxOceanfloor.soluteflux_DIC -> ocean.DIC_sms └ using Identity transfer matrix * 1.0 ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: global.constant_tforce.setup_initialvalue_vars_default: [ Info: init_values! :initial_value global.constant_tforce = -2.5e8 [ Info: ocean.const_cisotopes.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.D_mccb_DIC = 0.0 [ Info: init_values! :initial_value ocean.D_B_mccb_mocb = 25.0 [ Info: setup_export_direct: ocean.exportCarb ocean -> oceanfloor transport from Parameter 'transportfloor' = [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0]] [ Info: ocean.reservoir_B.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.B_conc = 0.4269239, delta=34.0 [ Info: setup_export_direct: ocean.exportOrg ocean vertical transport from Parameter 'transportocean' = [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 1.0, 1.0]] [ Info: setup_export_direct: ocean.exportOrg ocean -> oceanfloor transport from Parameter 'transportfloor' = [[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [1.0, 0.0, 0.0]] ┌ Warning: `LinearInterpolation(args...; kwargs...)` is deprecated, use `linear_interpolation(args...; kwargs...)` instead. │ caller = setup_burial_eff_CorgP(m::PALEOboxes.ReactionMethod{typeof(PALEOocean.Oceanfloor.Burial.setup_burial_eff_CorgP), PALEOocean.Oceanfloor.Burial.ReactionBurialEffCorgP{@NamedTuple{BECorgNorm::PALEOboxes.Parameter{Float64, Nothing}, burial_eff_function::PALEOboxes.Parameter{String, Nothing}, BECorg::PALEOboxes.VecParameter{Float64, Nothing}, FixedCorgBurialTotal::PALEOboxes.Parameter{Float64, Nothing}, BPO2::PALEOboxes.VecParameter{Float64, Nothing}, BPorgCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPFeCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPauthCorg::PALEOboxes.VecParameter{Float64, Nothing}, CIsotope::PALEOboxes.Parameter{Type, PALEOboxes.AbstractData}}}, Nothing, 5}, pars::@NamedTuple{BECorgNorm::PALEOboxes.Parameter{Float64, Nothing}, burial_eff_function::PALEOboxes.Parameter{String, Nothing}, BECorg::PALEOboxes.VecParameter{Float64, Nothing}, FixedCorgBurialTotal::PALEOboxes.Parameter{Float64, Nothing}, BPO2::PALEOboxes.VecParameter{Float64, Nothing}, BPorgCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPFeCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPauthCorg::PALEOboxes.VecParameter{Float64, Nothing}, CIsotope::PALEOboxes.Parameter{Type, PALEOboxes.AbstractData}}, ::Tuple{}, cellrange::PALEOboxes.CellRange{UnitRange{Int64}}, attribute_name::Symbol) at Burial.jl:470 └ @ PALEOocean.Oceanfloor.Burial ~/.julia/packages/PALEOocean/Cpquk/src/oceanfloor/Burial.jl:470 ┌ Warning: `LinearInterpolation(args...; kwargs...)` is deprecated, use `linear_interpolation(args...; kwargs...)` instead. │ caller = setup_burial_eff_CorgP(m::PALEOboxes.ReactionMethod{typeof(PALEOocean.Oceanfloor.Burial.setup_burial_eff_CorgP), PALEOocean.Oceanfloor.Burial.ReactionBurialEffCorgP{@NamedTuple{BECorgNorm::PALEOboxes.Parameter{Float64, Nothing}, burial_eff_function::PALEOboxes.Parameter{String, Nothing}, BECorg::PALEOboxes.VecParameter{Float64, Nothing}, FixedCorgBurialTotal::PALEOboxes.Parameter{Float64, Nothing}, BPO2::PALEOboxes.VecParameter{Float64, Nothing}, BPorgCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPFeCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPauthCorg::PALEOboxes.VecParameter{Float64, Nothing}, CIsotope::PALEOboxes.Parameter{Type, PALEOboxes.AbstractData}}}, Nothing, 5}, pars::@NamedTuple{BECorgNorm::PALEOboxes.Parameter{Float64, Nothing}, burial_eff_function::PALEOboxes.Parameter{String, Nothing}, BECorg::PALEOboxes.VecParameter{Float64, Nothing}, FixedCorgBurialTotal::PALEOboxes.Parameter{Float64, Nothing}, BPO2::PALEOboxes.VecParameter{Float64, Nothing}, BPorgCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPFeCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPauthCorg::PALEOboxes.VecParameter{Float64, Nothing}, CIsotope::PALEOboxes.Parameter{Type, PALEOboxes.AbstractData}}, ::Tuple{}, cellrange::PALEOboxes.CellRange{UnitRange{Int64}}, attribute_name::Symbol) at Burial.jl:474 └ @ PALEOocean.Oceanfloor.Burial ~/.julia/packages/PALEOocean/Cpquk/src/oceanfloor/Burial.jl:474 ┌ Warning: `LinearInterpolation(args...; kwargs...)` is deprecated, use `linear_interpolation(args...; kwargs...)` instead. │ caller = setup_burial_eff_CorgP(m::PALEOboxes.ReactionMethod{typeof(PALEOocean.Oceanfloor.Burial.setup_burial_eff_CorgP), PALEOocean.Oceanfloor.Burial.ReactionBurialEffCorgP{@NamedTuple{BECorgNorm::PALEOboxes.Parameter{Float64, Nothing}, burial_eff_function::PALEOboxes.Parameter{String, Nothing}, BECorg::PALEOboxes.VecParameter{Float64, Nothing}, FixedCorgBurialTotal::PALEOboxes.Parameter{Float64, Nothing}, BPO2::PALEOboxes.VecParameter{Float64, Nothing}, BPorgCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPFeCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPauthCorg::PALEOboxes.VecParameter{Float64, Nothing}, CIsotope::PALEOboxes.Parameter{Type, PALEOboxes.AbstractData}}}, Nothing, 5}, pars::@NamedTuple{BECorgNorm::PALEOboxes.Parameter{Float64, Nothing}, burial_eff_function::PALEOboxes.Parameter{String, Nothing}, BECorg::PALEOboxes.VecParameter{Float64, Nothing}, FixedCorgBurialTotal::PALEOboxes.Parameter{Float64, Nothing}, BPO2::PALEOboxes.VecParameter{Float64, Nothing}, BPorgCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPFeCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPauthCorg::PALEOboxes.VecParameter{Float64, Nothing}, CIsotope::PALEOboxes.Parameter{Type, PALEOboxes.AbstractData}}, ::Tuple{}, cellrange::PALEOboxes.CellRange{UnitRange{Int64}}, attribute_name::Symbol) at Burial.jl:478 └ @ PALEOocean.Oceanfloor.Burial ~/.julia/packages/PALEOocean/Cpquk/src/oceanfloor/Burial.jl:478 [ Info: land.constant_D_P_CO2_locb.setup_initialvalue_vars_default: [ Info: init_values! :initial_value land.D_P_CO2_locb = 19.0 [ Info: init_values! :initial_value sedcrust.G = 1.25e21, delta=-25.0 [ Info: init_values! :initial_value sedcrust.C = 5.0e21, delta=2.65 [ Info: atm.constant_pO2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.pO2PAL = 1.0 [ Info: init_values! :initial_value atm.pO2atm = 0.21 ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: global.temp_CK_1992.setup_initialvalue_vars_default: [ Info: init_values! :norm_value global.TEMP = 1.0 [ Info: init_values! :norm_value global.TEMP_constraint = 1.0 [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.pHfree = 1.0 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.CO2 = 4.956e16, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk = 1.0 * volume [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.P = 0.001 * volume [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.DIC = 1.0 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.O2 = 0.1 * volume [ Info: ocean.reservoir_H2S.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.H2S = 0.001 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.reservoir_SO4.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.SO4 = 1.0 * volume, delta=1.0 (fixed delta value to calculate norm) [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk_constraint = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: global.temp_CK_1992.setup_initialvalue_vars_default: [ Info: init_values! :initial_value global.TEMP = 288.15 [ Info: init_values! :initial_value global.TEMP_constraint = 0.0 [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.pHfree = 8.0 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.CO2 = 4.956e16, delta=0.0 [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk = 2.4032 * volume [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.P = 0.002208 * volume [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.DIC = 2.2081 * volume, delta=-1.0 [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.O2 = 0.3 * volume [ Info: ocean.reservoir_H2S.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.H2S = 1.0e-6 * volume, delta=0.0 [ Info: ocean.reservoir_SO4.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.SO4 = 28.756 * volume, delta=0.0 [ Info: ocean.H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk_constraint = 0.0 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: │ tspan: (-2.6e8, -2.5188e8) │ algorithm: IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ Jacobian: ForwardDiffSparse │ using 1 BLAS threads └ ================================================================================ [ Info: DAEfunction: using Jacobian ForwardDiffSparse [ Info: jac_config_dae: jac_ad=ForwardDiffSparse [ Info: using ForwardDiff sparse Jacobian with sparsity calculated at t=-2.6e8 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(33, 33) nnz=229 non-zero=176 at time=-2.6e8 [ Info: fill_sparse_jac: initial_jac nnz 229 (21.0%) non-zero 176 [ Info: fill_sparse_jac: after filling diagonal nnz 229 [ Info: jac_prototype nnz=229 num colors=17 [ Info: add_arrays_data! (arrays_eltype=ForwardDiff.Dual{Nothing, Float64, 9}, arrays_tagname=jac_ad) [ Info: calling get_inconsistent_initial_deriv 14.814115 seconds (4.28 M allocations: 219.862 MiB, 0.58% gc time, 99.34% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 1921 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 268 │ Number of linear solves: 0 │ Number of Jacobians created: 268 │ Number of nonlinear solver iterations: 1919 │ Number of nonlinear solver convergence failures: 3 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 1126 │ Number of rejected steps: 93 │ length(sol.t) 1220 │ size(sol) (33, 1220) └ ================================================================================ [ Info: ODE.calc_output_sol!: 1220 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: done └ ================================================================================ conservation checks: check global.total_S 3.835160133369036e19 3.8351601333682364e19 1.0e-6 check values at end of run: check ocean.pHtot [7.486899411477169, 7.443448121077984, 7.118634377503113] [7.487, 7.4435, 7.1186] 0.0001 check atm.pCO2atm 0.005927860169212149 0.00592639 0.0025 check atm.CO2_delta -7.037409884055376 -7.0371 0.0001 check ocean.P_total 6.844790977120916e15 6.8448e15 0.001 WARNING: replacing module AtmReservoirTODO. ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel romglb_abiotic_O2 │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/PALEO_examples_romglb_cfg.yaml └ ================================================================================ ┌ Info: Model.parameters: │ Resetting Model parameter matdir = /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport (configuration file had value=/home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport) └ matdir = /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 98 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: global.total_O2 classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.O2", "ocean.O2"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: oceansurface.airsea_O2 classname ReactionAirSeaO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [Default] moistair =true │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =4.8 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceansurface.surface_insol classname ReactionConst └ set parameters: [config.yaml] constnames =["surface_insol"] ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=3 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.transportromglb classname ReactionOceanTransportRomanielloICBM │ set parameters: [config.yaml] matdir =external%matdir │ expandvalue: external%matdir -> /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport │ after substitution matdir=/home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport │ set parameters: [config.yaml] circname =Global_79_Box │ set parameters: [Default] set_temp =true │ set parameters: [Default] temp_trackglobal =false │ set parameters: [Default] bosph_outflow =6.04e11 └ set parameters: [Default] bosph_inflow =3.05e11 ┌ Info: create_reaction_from_config: ocean.reservoir_O2 classname ReactionReservoir │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =false │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_T classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.light classname ReactionLightColumn └ set parameters: [config.yaml] background_opacity =0.04 ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=4 └ ================================================================================ ┌ Warning: create_domain_from_config Domain 'oceanfloor' empty 'reactions:' key in .yaml file └ @ PALEOboxes ~/.julia/packages/PALEOboxes/k4QWy/src/Domain.jl:349 ┌ Info: │ ================================================================================ │ creating domain 'fluxAtmtoOceansurface' ID=5 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtmtoOceansurface.fluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["O2"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'atm' ID=6 └ ================================================================================ ┌ Info: create_reaction_from_config: atm.reservoir_O2 classname ReactionReservoirAtm │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: create_reaction_from_config: atm.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: read_datafiles: ocean.transportromglb reading transport matrix from file /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport/romaniello_global79.mat [ Info: set ocean.oceansurface Subdomain size=3 [ Info: set ocean.oceanfloor Subdomain size=79 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["oceansurface", "oceanfloor"]) [ Info: fluxAtmtoOceansurface Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:gyre => 2, :hlat => 1, :upw => 3), subdomains: ["ocean"]) [ Info: oceansurface Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:gyre => 2, :hlat => 1, :upw => 3), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ ┌ Info: register_methods: global.total_O2 PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.O2 └ add 1 * ocean.O2 [ Info: register_methods! ReactionReservoirAtm atm.reservoir_O2 field_data=PALEOboxes.ScalarData ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ [ Info: Reaction global.total_O2 Variable global.total_O2 adding data=PALEOboxes.ScalarData ┌ Info: _configure_variables: ReactionSum global.total_O2 variable_links: └ set variable_links: sum -> total_O2 ┌ Info: _configure_variables: ReactionConst oceansurface.surface_insol variable_attributes: └ set attribute: surface_insol :initial_value = [70.0, 350.0, 350.0] [ Info: find_transport_vars Domain ocean length(transport_vars)=2 num_components=2 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: R_conc -> O2_conc │ _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_attributes: └ set attribute: R :initial_value = 0.2054 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_T variable_links: │ set variable_links: R -> T │ set variable_links: R_sms -> T_sms │ set variable_links: R_total -> T_total │ set variable_links: R_conc -> T_conc │ _configure_variables: ReactionReservoir ocean.reservoir_T variable_attributes: └ set attribute: R :initial_value = 1.0 [ Info: register_dynamic_methods! ocean.light adding opacity contributions from 0 Variables: ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: pRatm -> pO2atm │ set variable_links: pRnorm -> pO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_attributes: │ set attribute: R :norm_value = 3.7e19 └ set attribute: R :initial_value = 3.7e19 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ └ optional ocean.transportromglb TEMP -| global.TEMP ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 1 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 22 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain fluxAtmtoOceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain atm data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 0 0 0 0 │ oceansurface 0 0 0 0 0 0 0 │ ocean 0 2 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ fluxAtmtoOceansurface 0 0 0 0 0 0 0 │ atm 0 1 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 3 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 3 (stateexplicit 3 + statetotal 0 + state 0) │ n_equations 3 (stateexplicit 3 + total 0 + constraint 0) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): Any[] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ O2 fluxAtmtoOceansurface.flux_O2 -> ocean.O2_sms └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ O2 fluxAtmtoOceansurface.flux_O2 -> atm.O2_sms └ using Distribute transfer matrix size (input, output) (3, 1) * -1.0 ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: oceansurface.surface_insol.setup_initialvalue_vars_default: [ Info: init_values! :initial_value oceansurface.surface_insol = [70.0, 350.0, 350.0] [ Info: setup_light_column ocean.light: Variables with non-zero :specific_light_extinction : ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.O2 = 3.7e19 [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.O2 = 1.0 * volume [ Info: ocean.reservoir_T.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.T = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.O2 = 3.7e19 [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.O2 = 0.2054 * volume [ Info: ocean.reservoir_T.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.T = 1.0 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ocean model created variables after initialize!: ocean.O2_transport_input = [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN] ocean.zmid = [-50.0, -112.695, -134.135, -153.105, -173.55499999999998, -196.22499999999997, -223.53499999999997, -256.49999999999994, -293.35999999999996, -559.15, -991.1399999999999, -1280.85, -3692.8, -50.0, -125.0, -175.0, -225.0, -275.0, -325.0, -375.0, -425.0, -475.0, -525.0, -575.0, -625.0, -675.0, -725.0, -775.0, -825.0, -875.0, -925.0, -975.0, -1050.0, -1150.0, -1250.0, -1350.0, -1450.0, -1550.0, -1650.0, -1750.0, -1850.0, -1950.0, -2500.0, -3500.0, -4500.0, -5500.0, -25.0, -62.5, -87.5, -125.0, -175.0, -275.0, -375.0, -425.0, -475.0, -525.0, -575.0, -625.0, -675.0, -725.0, -775.0, -825.0, -875.0, -925.0, -975.0, -1050.0, -1150.0, -1250.0, -1350.0, -1450.0, -1550.0, -1650.0, -1750.0, -1850.0, -1950.0, -2500.0, -3500.0, -4500.0, -5500.0] ocean.pressure = [50.0, 112.695, 134.135, 153.105, 173.55499999999998, 196.22499999999997, 223.53499999999997, 256.49999999999994, 293.35999999999996, 559.15, 991.1399999999999, 1280.85, 3692.8, 50.0, 125.0, 175.0, 225.0, 275.0, 325.0, 375.0, 425.0, 475.0, 525.0, 575.0, 625.0, 675.0, 725.0, 775.0, 825.0, 875.0, 925.0, 975.0, 1050.0, 1150.0, 1250.0, 1350.0, 1450.0, 1550.0, 1650.0, 1750.0, 1850.0, 1950.0, 2500.0, 3500.0, 4500.0, 5500.0, 25.0, 62.5, 87.5, 125.0, 175.0, 275.0, 375.0, 425.0, 475.0, 525.0, 575.0, 625.0, 675.0, 725.0, 775.0, 825.0, 875.0, 925.0, 975.0, 1050.0, 1150.0, 1250.0, 1350.0, 1450.0, 1550.0, 1650.0, 1750.0, 1850.0, 1950.0, 2500.0, 3500.0, 4500.0, 5500.0] ocean.rho_ref = [1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0] ocean.volume_total = [1.570120831903424e18] ocean.T_conc = [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN] ocean.opacity = [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN] ocean.zupper = [-0.0, -100.0, -125.39, -142.88, -163.32999999999998, -183.77999999999997, -208.66999999999996, -238.39999999999995, -274.59999999999997, -312.11999999999995, -806.18, -1176.1, -1385.6, -0.0, -100.0, -150.0, -200.0, -250.0, -300.0, -350.0, -400.0, -450.0, -500.0, -550.0, -600.0, -650.0, -700.0, -750.0, -800.0, -850.0, -900.0, -950.0, -1000.0, -1100.0, -1200.0, -1300.0, -1400.0, -1500.0, -1600.0, -1700.0, -1800.0, -1900.0, -2000.0, -3000.0, -4000.0, -5000.0, -0.0, -50.0, -75.0, -100.0, -150.0, -200.0, -350.0, -400.0, -450.0, -500.0, -550.0, -600.0, -650.0, -700.0, -750.0, -800.0, -850.0, -900.0, -950.0, -1000.0, -1100.0, -1200.0, -1300.0, -1400.0, -1500.0, -1600.0, -1700.0, -1800.0, -1900.0, -2000.0, -3000.0, -4000.0, -5000.0] ocean.rho = [1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0, 1027.0] ocean.Abox = [5.1157023e13, 4.982962911720296e13, 4.952116402991448e13, 4.932719632758611e13, 4.90758148526922e13, 4.8823556752434625e13, 4.833925238423272e13, 4.794062712326118e13, 4.746424344550986e13, 4.678766253763686e13, 4.119071824719589e13, 3.995205048715225e13, 3.925892551560748e13, 3.68064257e14, 3.467636809516528e14, 3.430909849487462e14, 3.405856144935483e14, 3.389453052727095e14, 3.376849213787393e14, 3.365238602536257e14, 3.35525742381974e14, 3.346614344694267e14, 3.3388148091397475e14, 3.331650001667483e14, 3.325219111769858e14, 3.3192515663797244e14, 3.313759825137703e14, 3.3085991711087175e14, 3.303352295901455e14, 3.2978478618696956e14, 3.2924976622309606e14, 3.287186723395145e14, 3.281549213464766e14, 3.269500069165923e14, 3.2563300472315956e14, 3.242651827150981e14, 3.2281877802483744e14, 3.213573265494013e14, 3.1985491227340606e14, 3.181985750100499e14, 3.1641898859875994e14, 3.14587169357603e14, 3.1266196762221025e14, 2.827292124165997e14, 2.0263030788389253e14, 7.929457370494798e13, 1.030872e13, 1.0297544616873055e13, 1.0284740482500248e13, 1.0261575619691107e13, 1.0234258130217615e13, 1.0211846035988652e13, 1.0186420792546416e13, 1.017773866300732e13, 1.0169356060165059e13, 1.0160988775053709e13, 1.0153143651642326e13, 1.0145749554245951e13, 1.0138983631024807e13, 1.0132035746930959e13, 1.0125793376464854e13, 1.0119435650345984e13, 1.0113278889406146e13, 1.0105052453891145e13, 1.0096398067428879e13, 1.008640048050607e13, 1.0065822717689365e13, 1.004148673655188e13, 1.001232216906465e13, 9.975044450906893e12, 9.931203610724123e12, 9.874387615449898e12, 9.81664788246999e12, 9.760427799919314e12, 9.708086066080846e12, 9.65857029289371e12, 8.756487946693637e12, 3.208700583876934e12, 1.154064853393319e11] ocean.T_transport_input = [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN] ocean.volume = [5.033617897584384e15, 1.2609966604704e15, 8.64447874418688e14, 1.006185568297344e15, 1.001076326742912e15, 1.209806552983168e15, 1.430858098428928e15, 1.726874906617088e15, 1.769512088445056e15, 2.1397368172973184e16, 1.4998693460965888e16, 8.29818885356416e15, 9.555889454447603e16, 3.5552297037563904e16, 1.723159206413312e16, 1.7090721795389952e16, 1.6983496323193856e16, 1.6915737259202048e16, 1.6855354395025408e16, 1.6800463953622016e16, 1.6753989446520832e16, 1.6713833731214336e16, 1.6675636268350464e16, 1.6642254499085312e16, 1.6610728182127616e16, 1.6582361817751552e16, 1.65558185312512e16, 1.6529969437487104e16, 1.650269740738048e16, 1.6475811384886272e16, 1.6449228859713536e16, 1.6422063130221568e16, 3.2755676139741184e16, 3.263071482732032e16, 3.249482912761037e16, 3.23550258473216e16, 3.2208413723321344e16, 3.206204269127987e16, 3.1903435195124736e16, 3.1731743796315136e16, 3.154956798475469e16, 3.136438150446387e16, 2.998742312492749e17, 2.4792801667122074e17, 1.4089839838578587e17, 3.151649169593344e16, 5.15215377166256e14, 2.5727912613416e14, 2.56849881610272e14, 5.12355841445744e14, 5.11102372500832e14, 1.5297954568623202e15, 5.09105997714688e14, 5.0867807077896e14, 5.082534655172e14, 5.07850425195152e14, 5.0746938983224e14, 5.07116500169152e14, 5.06771156488816e14, 5.064434619928e14, 5.06135227478064e14, 5.05818917284272e14, 5.05460761873904e14, 5.05048012013152e14, 5.04579852051776e14, 1.007656947022608e15, 1.005408134805168e15, 1.002743442660464e15, 9.99459231950608e14, 9.95397588566896e14, 9.90396404590464e14, 9.84503552499616e14, 9.78862631839808e14, 9.73420802121488e14, 9.68251132341408e14, 9.346827016063472e15, 6.288842627828287e15, 1.1712292316297442e15, 6.2958495838816e13] ocean.O2_conc = [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN] ocean.T_total = [NaN] ocean.insol = [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN] ocean.temp = [NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN] ocean.zlower = [-100.0, -125.39, -142.88, -163.32999999999998, -183.77999999999997, -208.66999999999996, -238.39999999999995, -274.59999999999997, -312.11999999999995, -806.18, -1176.1, -1385.6, -6000.0, -100.0, -150.0, -200.0, -250.0, -300.0, -350.0, -400.0, -450.0, -500.0, -550.0, -600.0, -650.0, -700.0, -750.0, -800.0, -850.0, -900.0, -950.0, -1000.0, -1100.0, -1200.0, -1300.0, -1400.0, -1500.0, -1600.0, -1700.0, -1800.0, -1900.0, -2000.0, -3000.0, -4000.0, -5000.0, -6000.0, -50.0, -75.0, -100.0, -150.0, -200.0, -350.0, -400.0, -450.0, -500.0, -550.0, -600.0, -650.0, -700.0, -750.0, -800.0, -850.0, -900.0, -950.0, -1000.0, -1100.0, -1200.0, -1300.0, -1400.0, -1500.0, -1600.0, -1700.0, -1800.0, -1900.0, -2000.0, -3000.0, -4000.0, -5000.0, -6000.0] ocean.sal = [35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0, 35.0] state, sms variables after check model derivative: ocean.T [1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ocean.T_sms [-1.7116628819078281, 0.7709641550790863, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.10657924596490617, 0.0, 0.061621313728639625, 0.08883275661718103, 0.11084838662960693, 0.0575235357731374, 0.04682366612326284, 0.05210247348223055, 0.03788160767854616, 0.04149007643478656, 0.026357853588645404, 0.018549923708343526, 0.01967088660119795, 0.020985304259837412, 0.02176234756907399, 0.031257175143166255, 0.01424082826562701, 0.014370544462746764, 0.014469928863255776, 0.014548743767834868, 0.01710144110090488, 0.01710144110090488, 0.0038064016416037923, 0.0038064016416037914, 0.0038064016416037923, 0.0038064016416037923, 0.0038064016416037923, 0.0038064016416037914, 0.0038064016416037914, 0.0038064016416037923, 0.03806401641603792, 0.038064016416037925, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] ocean.O2 [1.0339051161638325e15, 2.5900871406062016e14, 1.775575934055985e14, 2.0667051572827447e14, 2.0562107751299412e14, 2.4849426598274272e14, 2.938982534173018e14, 3.547001058191499e14, 3.634577829666145e14, 4.395019422728692e15, 3.0807316368823935e15, 1.7044479905220785e15, 1.9627796939435376e16, 7.302441811515626e15, 3.539369009972943e15, 3.510434256773096e15, 3.488410144784018e15, 3.4744924330401005e15, 3.462089792738219e15, 3.450815296073962e15, 3.441269432315379e15, 3.4330214483914245e15, 3.4251756895191855e15, 3.418319074112123e15, 3.4118435686090125e15, 3.406017117366169e15, 3.4005651263189965e15, 3.395255722459851e15, 3.3896540474759505e15, 3.3841316584556405e15, 3.3786716077851605e15, 3.37309176694751e15, 6.728015879102839e15, 6.702348825531594e15, 6.67443790281117e15, 6.645722309039857e15, 6.615608178770204e15, 6.585543568788886e15, 6.552965589078621e15, 6.517700175763129e15, 6.480281264068613e15, 6.442243961016879e15, 6.1594167098601064e16, 5.092441462426874e16, 2.894053102844042e16, 6.473487394344729e15, 1.0582523846994898e14, 5.284513250795646e13, 5.275696568274987e13, 1.0523788983295581e14, 1.0498042731167089e14, 3.1421998683952056e14, 1.0457037193059692e14, 1.0448247573799839e14, 1.0439526181723288e14, 1.0431247733508422e14, 1.042342126715421e14, 1.0416172913474383e14, 1.0409079554280281e14, 1.0402348709332112e14, 1.0396017572399434e14, 1.0389520561018947e14, 1.0382164048889988e14, 1.0373686166750142e14, 1.036407016114348e14, 2.069727369184437e14, 2.065108308889815e14, 2.059635031224593e14, 2.0528892624265488e14, 2.0445466469164044e14, 2.034274215028813e14, 2.0221702968342112e14, 2.0105838457989656e14, 1.9994063275575362e14, 1.988787825829252e14, 1.9198382690994372e15, 1.2917282757559302e15, 2.4057048417674947e14, 1.2931675045292807e13] ocean.O2_sms [1.1711836279514268e16, -0.41455078125, 1.58544921875, -0.2138671875, 1.2861328125, -0.91455078125, -1.1142578125, 0.53564453125, -0.31396484375, -0.0703125, 0.12890625, 0.0625, 0.00390625, 3.327263446748427e15, 0.25, 0.0, 0.75006103515625, 0.50006103515625, -0.4998779296875, -0.5, 0.0, 0.5, 1.0, 0.50006103515625, 1.00006103515625, -0.5, 2.0, 1.0, 1.0, -0.5, 2.0, -0.99993896484375, -0.5, -0.5, -0.9998779296875, -0.5, 0.5001220703125, -0.5, 0.0001220703125, 0.5, -1.4998779296875, -0.125, -0.0615234375, 0.001953125, 0.03125, 0.0, 9.318978028003533e13, 0.0, -0.03125, -0.03125, 0.0, -0.015625, -0.015625, 0.03125, -0.015625, 0.0, -0.015625, -0.015625, 0.03125, 0.015625, 0.0, -0.078125, -0.015625, -0.015625, 0.0, 0.0, -0.015625, -0.03125, 0.0, -0.015625, -0.03125, -0.03125, 0.015625, 0.015625, 0.0078125, -0.005859375, -0.00341796875, 0.0, 0.0009765625] atm.O2 [3.7e19] atm.O2_sms [-1.5132289506542732e16] check conservation: sum(Tracer_sms)=4.649058915617843e-16 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(159, 159) nnz=819 non-zero=819 at time=0.0 [ Info: fill_sparse_jac: initial_jac nnz 819 (3.24%) non-zero 819 [ Info: fill_sparse_jac: after filling diagonal nnz 819 ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: │ tspan: (0, 100000.0) │ algorithm: CVODE_BDF{:Newton, :KLU, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ Jacobian: ForwardDiffSparse │ steadystate: false │ using 1 BLAS threads └ ================================================================================ [ Info: ODEfunction: using Jacobian ForwardDiffSparse [ Info: jac_config_ode: jac_ad=ForwardDiffSparse [ Info: using ForwardDiff sparse Jacobian with sparsity calculated at t=0 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(159, 159) nnz=819 non-zero=819 at time=0 [ Info: fill_sparse_jac: initial_jac nnz 819 (3.24%) non-zero 819 [ Info: fill_sparse_jac: after filling diagonal nnz 819 [ Info: add_arrays_data! (arrays_eltype=ForwardDiff.Dual{Nothing, Float64, 12}, arrays_tagname=jac_ad) [ Info: jac_prototype nnz=819 num colors=23 chunksize=12) 7.561477 seconds (3.64 M allocations: 200.748 MiB, 1.13% gc time, 99.89% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=CVODE_BDF{:Newton, :KLU, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 216 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 39 │ Number of linear solves: 0 │ Number of Jacobians created: 4 │ Number of nonlinear solver iterations: 213 │ Number of nonlinear solver convergence failures: 0 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 180 │ Number of rejected steps: 2 │ length(sol.t) 183 │ size(sol) (159, 183) └ ================================================================================ [ Info: ODE.calc_output_sol!: 183 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: done └ ================================================================================ ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel romglb_abiotic_O2 │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/PALEO_examples_romglb_cfg.yaml └ ================================================================================ ┌ Info: Model.parameters: │ Resetting Model parameter matdir = /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport (configuration file had value=/home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport) └ matdir = /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 98 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: global.total_O2 classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.O2", "ocean.O2"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: oceansurface.airsea_O2 classname ReactionAirSeaO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [Default] moistair =true │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =4.8 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceansurface.surface_insol classname ReactionConst └ set parameters: [config.yaml] constnames =["surface_insol"] ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=3 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.transportromglb classname ReactionOceanTransportRomanielloICBM │ set parameters: [config.yaml] matdir =external%matdir │ expandvalue: external%matdir -> /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport │ after substitution matdir=/home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport │ set parameters: [config.yaml] circname =Global_79_Box │ set parameters: [Default] set_temp =true │ set parameters: [Default] temp_trackglobal =false │ set parameters: [Default] bosph_outflow =6.04e11 └ set parameters: [Default] bosph_inflow =3.05e11 ┌ Info: create_reaction_from_config: ocean.reservoir_O2 classname ReactionReservoir │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =false │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_T classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.light classname ReactionLightColumn └ set parameters: [config.yaml] background_opacity =0.04 ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=4 └ ================================================================================ ┌ Warning: create_domain_from_config Domain 'oceanfloor' empty 'reactions:' key in .yaml file └ @ PALEOboxes ~/.julia/packages/PALEOboxes/k4QWy/src/Domain.jl:349 ┌ Info: │ ================================================================================ │ creating domain 'fluxAtmtoOceansurface' ID=5 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtmtoOceansurface.fluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["O2"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'atm' ID=6 └ ================================================================================ ┌ Info: create_reaction_from_config: atm.reservoir_O2 classname ReactionReservoirAtm │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: create_reaction_from_config: atm.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: read_datafiles: ocean.transportromglb reading transport matrix from file /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport/romaniello_global79.mat [ Info: set ocean.oceansurface Subdomain size=3 [ Info: set ocean.oceanfloor Subdomain size=79 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["oceansurface", "oceanfloor"]) [ Info: fluxAtmtoOceansurface Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:gyre => 2, :hlat => 1, :upw => 3), subdomains: ["ocean"]) [ Info: oceansurface Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:gyre => 2, :hlat => 1, :upw => 3), subdomains: ["ocean"]) [ Info: oceanfloor Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ ┌ Info: register_methods: global.total_O2 PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.O2 └ add 1 * ocean.O2 [ Info: register_methods! ReactionReservoirAtm atm.reservoir_O2 field_data=PALEOboxes.ScalarData ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ [ Info: Reaction global.total_O2 Variable global.total_O2 adding data=PALEOboxes.ScalarData ┌ Info: _configure_variables: ReactionSum global.total_O2 variable_links: └ set variable_links: sum -> total_O2 ┌ Info: _configure_variables: ReactionConst oceansurface.surface_insol variable_attributes: └ set attribute: surface_insol :initial_value = [70.0, 350.0, 350.0] [ Info: find_transport_vars Domain ocean length(transport_vars)=2 num_components=2 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: R_conc -> O2_conc │ _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_attributes: └ set attribute: R :initial_value = 0.2054 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_T variable_links: │ set variable_links: R -> T │ set variable_links: R_sms -> T_sms │ set variable_links: R_total -> T_total │ set variable_links: R_conc -> T_conc │ _configure_variables: ReactionReservoir ocean.reservoir_T variable_attributes: └ set attribute: R :initial_value = 1.0 [ Info: register_dynamic_methods! ocean.light adding opacity contributions from 0 Variables: ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: pRatm -> pO2atm │ set variable_links: pRnorm -> pO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_attributes: │ set attribute: R :norm_value = 3.7e19 └ set attribute: R :initial_value = 3.7e19 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ └ optional ocean.transportromglb TEMP -| global.TEMP ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 1 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 22 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain fluxAtmtoOceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain atm data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 0 0 0 0 │ oceansurface 0 0 0 0 0 0 0 │ ocean 0 2 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ fluxAtmtoOceansurface 0 0 0 0 0 0 0 │ atm 0 1 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 3 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 3 (stateexplicit 3 + statetotal 0 + state 0) │ n_equations 3 (stateexplicit 3 + total 0 + constraint 0) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): Any[] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ O2 fluxAtmtoOceansurface.flux_O2 -> ocean.O2_sms └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ O2 fluxAtmtoOceansurface.flux_O2 -> atm.O2_sms └ using Distribute transfer matrix size (input, output) (3, 1) * -1.0 ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: oceansurface.surface_insol.setup_initialvalue_vars_default: [ Info: init_values! :initial_value oceansurface.surface_insol = [70.0, 350.0, 350.0] [ Info: setup_light_column ocean.light: Variables with non-zero :specific_light_extinction : ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.O2 = 3.7e19 [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.O2 = 1.0 * volume [ Info: ocean.reservoir_T.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.T = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.O2 = 3.7e19 [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.O2 = 0.2054 * volume [ Info: ocean.reservoir_T.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.T = 1.0 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: │ tspan: (0, 100000.0) │ algorithm: CVODE_BDF{:Newton, :KLU, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ Jacobian: ForwardDiffSparse │ steadystate: false │ using 1 BLAS threads └ ================================================================================ [ Info: ODEfunction: using Jacobian ForwardDiffSparse [ Info: jac_config_ode: jac_ad=ForwardDiffSparse [ Info: using ForwardDiff sparse Jacobian with sparsity calculated at t=0 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(159, 159) nnz=819 non-zero=819 at time=0 [ Info: fill_sparse_jac: initial_jac nnz 819 (3.24%) non-zero 819 [ Info: fill_sparse_jac: after filling diagonal nnz 819 [ Info: add_arrays_data! (arrays_eltype=ForwardDiff.Dual{Nothing, Float64, 12}, arrays_tagname=jac_ad) [ Info: jac_prototype nnz=819 num colors=23 chunksize=12) 0.024980 seconds (10.02 k allocations: 2.894 MiB) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=CVODE_BDF{:Newton, :KLU, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 681 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 69 │ Number of linear solves: 0 │ Number of Jacobians created: 11 │ Number of nonlinear solver iterations: 678 │ Number of nonlinear solver convergence failures: 0 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 606 │ Number of rejected steps: 8 │ length(sol.t) 615 │ size(sol) (159, 615) └ ================================================================================ [ Info: ODE.calc_output_sol!: 615 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: done └ ================================================================================ conservation checks: check global.total_O2 3.732250281887297e19 3.732250281887465e19 1.0e-6 check values at end of run: check atm.pO2PAL 0.9958168959581836 0.995817 0.0001 check atm.O2_sms -1742.45703125 1000.0 2.0 ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel romglb_P_O2 │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/PALEO_examples_romglb_cfg.yaml └ ================================================================================ ┌ Info: Model.parameters: │ Resetting Model parameter matdir = /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport (configuration file had value=/home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport) │ CIsotope = ScalarData │ SIsotope = ScalarData └ matdir = /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 98 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: global.total_O2 classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.O2", "ocean.O2"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: oceansurface.airsea_O2 classname ReactionAirSeaO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [Default] moistair =true │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =4.8 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceansurface.surface_insol classname ReactionConst └ set parameters: [config.yaml] constnames =["surface_insol"] ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=3 └ ================================================================================ ┌ Info: create_reaction_from_config: ocean.transportromglb classname ReactionOceanTransportRomanielloICBM │ set parameters: [config.yaml] matdir =external%matdir │ expandvalue: external%matdir -> /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport │ after substitution matdir=/home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport │ set parameters: [config.yaml] circname =Global_79_Box │ set parameters: [Default] set_temp =true │ set parameters: [Default] temp_trackglobal =false │ set parameters: [Default] bosph_outflow =6.04e11 └ set parameters: [Default] bosph_inflow =3.05e11 ┌ Info: create_reaction_from_config: ocean.bioprod classname ReactionBioProdMMPop │ set parameters: [config.yaml] rCorgPO4 =106.0 │ set parameters: [config.yaml] rNPO4 =16.0 │ set parameters: [config.yaml] rCcarbCorg =0.25 │ set parameters: [config.yaml] rCcarbCorg_fixed =true │ set parameters: [Default] k_r0 =0.044372 │ set parameters: [Default] k_eta =0.8053406 │ set parameters: [config.yaml] nuDOM =0.0 │ set parameters: [config.yaml] depthlimit =-10.0 │ set parameters: [config.yaml] k_poptype =Constant │ set parameters: [config.yaml] k_uPO4 =0.002615 │ set parameters: [Default] k_mu =NaN │ set parameters: [Default] k_grazeresprate =NaN │ set parameters: [Default] k_templim =Constant │ set parameters: [config.yaml] k_lightlim =linear │ set parameters: [config.yaml] k_Irel =1.0 │ set parameters: [Default] k_Ic =30.0 │ set parameters: [Default] k_alphaQE =7.0 │ set parameters: [Default] k_thetaChlC =0.03 │ set parameters: [Default] k_epsilonChl =0.012 │ set parameters: [config.yaml] k_nuttype =PO4MM │ set parameters: [config.yaml] k_KPO4 =0.00021567 │ set parameters: [Default] k_KN =0.0 │ set parameters: [Default] k_prefNH3 =10.0 │ set parameters: [Default] k_edonor =H2O │ set parameters: [Default] k_KH2S =0.001 └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: ocean.biopump classname ReactionExportDirectColumn │ set parameters: [config.yaml] fluxlist =["P", "N", "Corg::CIsotope", "Ccarb::CIsotope"] │ set parameters: [config.yaml] transportfloor =true │ set parameters: [config.yaml] exportfunction =SumExp │ set parameters: [config.yaml] input_frac =[0.9354, 0.0646] │ set parameters: [config.yaml] sumexp_scale =[550.5195, 1.0e6] │ set parameters: [Default] martin_rovera =0.858 └ set parameters: [Default] martin_depthmin =100.0 ┌ Info: create_reaction_from_config: ocean.reservoir_O2 classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.light classname ReactionLightColumn └ set parameters: [config.yaml] background_opacity =0.0 ┌ Info: create_reaction_from_config: ocean.reminocean classname ReactionReminO2 └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: ocean.reservoir_P classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: │ ================================================================================ │ creating domain 'sedcrust' ID=4 └ ================================================================================ ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=5 └ ================================================================================ ┌ Info: create_reaction_from_config: oceanfloor.reminoceanfloor classname ReactionReminO2 └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: oceanfloor.transfersolute_fluxOceanfloor classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxOceanfloor.soluteflux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceanfloor.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceanfloor.transferparticulate_fluxOceanfloor classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxOceanfloor.particulateflux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =particulateflux_$fluxname$ │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: │ ================================================================================ │ creating domain 'fluxAtmtoOceansurface' ID=6 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtmtoOceansurface.fluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["O2"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxOceanfloor' ID=7 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxOceanfloor.particulatetarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["Corg::CIsotope", "N", "P", "Ccarb::CIsotope"] │ set parameters: [config.yaml] target_prefix =particulateflux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: create_reaction_from_config: fluxOceanfloor.solutetarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["DIC::CIsotope", "TAlk", "O2", "P"] │ set parameters: [config.yaml] target_prefix =soluteflux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'atm' ID=8 └ ================================================================================ ┌ Info: create_reaction_from_config: atm.reservoir_O2 classname ReactionReservoirAtm │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: create_reaction_from_config: atm.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: read_datafiles: ocean.transportromglb reading transport matrix from file /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport/romaniello_global79.mat [ Info: set ocean.oceansurface Subdomain size=3 [ Info: set ocean.oceanfloor Subdomain size=79 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["oceansurface", "oceanfloor"]) [ Info: fluxAtmtoOceansurface Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:gyre => 2, :hlat => 1, :upw => 3), subdomains: ["ocean"]) [ Info: oceansurface Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:gyre => 2, :hlat => 1, :upw => 3), subdomains: ["ocean"]) [ Info: fluxOceanfloor Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["ocean"]) [ Info: oceanfloor Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ ┌ Info: register_methods: global.total_O2 PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.O2 └ add 1 * ocean.O2 [ Info: register_methods! ReactionReservoirAtm atm.reservoir_O2 field_data=PALEOboxes.ScalarData ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ [ Info: Reaction global.total_O2 Variable global.total_O2 adding data=PALEOboxes.ScalarData ┌ Info: _configure_variables: ReactionSum global.total_O2 variable_links: └ set variable_links: sum -> total_O2 ┌ Info: _configure_variables: ReactionConst oceansurface.surface_insol variable_attributes: └ set attribute: surface_insol :initial_value = [70.0, 350.0, 350.0] [ Info: find_transport_vars Domain ocean length(transport_vars)=2 num_components=2 ┌ Info: _configure_variables: ReactionBioProdMMPop ocean.bioprod variable_links: │ set variable_links: partprod_P -> export_P │ set variable_links: partprod_N -> export_N │ set variable_links: partprod_Corg -> export_Corg └ set variable_links: partprod_Ccarb -> export_Ccarb [ Info: register_dynamic_methods!: ocean.biopump export_function SumExp ocean fluxlist=["P", "N", "Corg::CIsotope", "Ccarb::CIsotope"] [ Info: add oceanfloor fluxlist=["P", "N", "Corg::CIsotope", "Ccarb::CIsotope"] ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: R_total -> O2_total │ set variable_links: R_conc -> O2_conc │ _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_attributes: └ set attribute: R :initial_value = 0.2054 [ Info: register_dynamic_methods! ocean.light adding opacity contributions from 0 Variables: ┌ Info: _configure_variables: ReactionReminO2 ocean.reminocean variable_links: │ set variable_links: soluteflux_P -> P_sms │ set variable_links: soluteflux_TNH3 -> TNH3_sms │ set variable_links: soluteflux_DIC -> DIC_sms │ set variable_links: soluteflux_TAlk -> TAlk_sms └ set variable_links: soluteflux_O2 -> O2_sms ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_P variable_links: │ set variable_links: R -> P │ set variable_links: R_sms -> P_sms │ set variable_links: R_total -> P_total │ set variable_links: R_conc -> P_conc │ _configure_variables: ReactionReservoir ocean.reservoir_P variable_attributes: └ set attribute: R :initial_value = 0.002208 ┌ Info: _configure_variables: ReactionReminO2 oceanfloor.reminoceanfloor variable_links: │ set variable_links: remin_P -> particulateflux_P │ set variable_links: remin_N -> particulateflux_N │ set variable_links: remin_Corg -> particulateflux_Corg │ set variable_links: remin_Ccarb -> particulateflux_Ccarb │ set variable_links: reminOrgOxO2_total -> particulatefluxOrgOxO2_total │ set variable_links: reminOrgOxO2 -> particulatefluxOrgOxO2 │ set variable_links: soluteflux_P -> fluxOceanfloor.soluteflux_P │ set variable_links: soluteflux_TNH3 -> fluxOceanfloor.soluteflux_TNH3 │ set variable_links: soluteflux_DIC -> fluxOceanfloor.soluteflux_DIC │ set variable_links: soluteflux_TAlk -> fluxOceanfloor.soluteflux_TAlk └ set variable_links: soluteflux_O2 -> fluxOceanfloor.soluteflux_O2 ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: pRatm -> pO2atm │ set variable_links: pRnorm -> pO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_attributes: │ set attribute: R :norm_value = 3.7e19 └ set attribute: R :initial_value = 3.7e19 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ │ optional ocean.transportromglb TEMP -| global.TEMP │ optional ocean.bioprod OmegaCA -| OmegaCA │ optional ocean.bioprod rate_bioprod -| global.rate_bioprod │ optional ocean.bioprod PELCALC -| global.PELCALC │ optional ocean.bioprod TAlk_sms -| TAlk_sms │ optional ocean.bioprod DIC_sms -| DIC_sms │ optional ocean.bioprod domprod_P -| domprod_P │ optional ocean.bioprod domprod_N -| domprod_N │ optional ocean.bioprod domprod_Corg -| domprod_Corg │ optional ocean.bioprod domprod_Ccarb -| domprod_Ccarb │ optional ocean.reminocean soluteflux_TNH3 -| TNH3_sms │ optional ocean.reminocean soluteflux_DIC -| DIC_sms │ optional ocean.reminocean soluteflux_TAlk -| TAlk_sms │ optional oceanfloor.reminoceanfloor soluteflux_TNH3 -| fluxOceanfloor.soluteflux_TNH3 │ optional oceanfloor.transfersolute_fluxOceanfloor output_TAlk -| ocean.oceanfloor.TAlk_sms └ optional oceanfloor.transfersolute_fluxOceanfloor output_DIC -| ocean.oceanfloor.DIC_sms ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 1 variables (hostdep=nothing) [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 39 variables (hostdep=nothing) [ Info: Domain sedcrust data dimensions PALEOboxes.NamedDimension[] allocating 0 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 9 variables (hostdep=nothing) [ Info: Domain fluxAtmtoOceansurface data dimensions PALEOboxes.NamedDimension[] allocating 2 variables (hostdep=nothing) [ Info: Domain fluxOceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 16 variables (hostdep=nothing) [ Info: Domain atm data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 0 0 0 0 │ oceansurface 0 0 0 0 0 0 0 │ ocean 0 2 0 0 0 0 0 │ sedcrust 0 0 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ fluxAtmtoOceansurface 0 0 0 0 0 0 0 │ fluxOceanfloor 0 0 0 0 0 0 0 │ atm 0 1 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 3 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 3 (stateexplicit 3 + statetotal 0 + state 0) │ n_equations 3 (stateexplicit 3 + total 0 + constraint 0) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): Any[] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ O2 fluxAtmtoOceansurface.flux_O2 -> ocean.O2_sms └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ O2 fluxAtmtoOceansurface.flux_O2 -> atm.O2_sms └ using Distribute transfer matrix size (input, output) (3, 1) * -1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceanfloor.transferparticulate_fluxOceanfloor.do_transfer │ active fluxes: │ P fluxOceanfloor.particulateflux_P -> oceanfloor.particulateflux_P │ Ccarb fluxOceanfloor.particulateflux_Ccarb -> oceanfloor.particulateflux_Ccarb │ Corg fluxOceanfloor.particulateflux_Corg -> oceanfloor.particulateflux_Corg │ N fluxOceanfloor.particulateflux_N -> oceanfloor.particulateflux_N └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceanfloor.transfersolute_fluxOceanfloor.do_transfer │ active fluxes: │ O2 fluxOceanfloor.soluteflux_O2 -> ocean.O2_sms │ TAlk fluxOceanfloor.soluteflux_TAlk output not linked │ P fluxOceanfloor.soluteflux_P -> ocean.P_sms │ DIC fluxOceanfloor.soluteflux_DIC output not linked └ using Identity transfer matrix * 1.0 ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: oceansurface.surface_insol.setup_initialvalue_vars_default: [ Info: init_values! :initial_value oceansurface.surface_insol = [70.0, 350.0, 350.0] [ Info: setup_light_column ocean.light: Variables with non-zero :specific_light_extinction : ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.O2 = 3.7e19 [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.O2 = 1.0 * volume [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.P = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.O2 = 3.7e19 [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.O2 = 0.2054 * volume [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.P = 0.002208 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: │ tspan: (0, 100000.0) │ algorithm: CVODE_BDF{:Newton, :KLU, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ Jacobian: ForwardDiffSparse │ steadystate: false │ using 1 BLAS threads └ ================================================================================ [ Info: ODEfunction: using Jacobian ForwardDiffSparse [ Info: jac_config_ode: jac_ad=ForwardDiffSparse [ Info: using ForwardDiff sparse Jacobian with sparsity calculated at t=0 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(159, 159) nnz=953 non-zero=953 at time=0 [ Info: fill_sparse_jac: initial_jac nnz 953 (3.77%) non-zero 953 [ Info: fill_sparse_jac: after filling diagonal nnz 953 [ Info: add_arrays_data! (arrays_eltype=ForwardDiff.Dual{Nothing, Float64, 9}, arrays_tagname=jac_ad) [ Info: jac_prototype nnz=953 num colors=25 chunksize=9) 11.487043 seconds (3.81 M allocations: 211.200 MiB, 1.89% gc time, 99.22% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=CVODE_BDF{:Newton, :KLU, Nothing, Nothing}(0, 0, 0, false, 10, 5, 7, 3, 10, nothing, nothing, 0) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 920 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 80 │ Number of linear solves: 0 │ Number of Jacobians created: 15 │ Number of nonlinear solver iterations: 917 │ Number of nonlinear solver convergence failures: 0 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 846 │ Number of rejected steps: 6 │ length(sol.t) 853 │ size(sol) (159, 853) └ ================================================================================ [ Info: ODE.calc_output_sol!: 853 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrate: done └ ================================================================================ conservation checks: check global.total_O2 3.732250281887297e19 3.732250281887337e19 1.0e-6 check ocean.P_total 3.4668267968427605e15 3.4668267968477595e15 1.0e-6 check values at end of run: check atm.pO2PAL 1.0015541476800771 1.00155 0.0001 check atm.O2_sms 31.1962890625 1000.0 2.0 ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel romglb_P_O2_S_Carb_open │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/PALEO_examples_romglb_cfg.yaml └ ================================================================================ ┌ Info: Model.parameters: │ Resetting Model parameter TAlkStateExplicit = true (configuration file had value=true) │ Resetting Model parameter matdir = /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport (configuration file had value=/home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport) │ TAlkStateExplicit = true │ CIsotope = ScalarData │ SIsotope = ScalarData └ matdir = /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 98 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: global.force_RHOSFW classname ReactionForceInterp │ set parameters: [Default] force_times =[-1.0e30, 1.0e30] │ set parameters: [Default] force_values =[1.0, 1.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN └ set parameters: [Default] extrapolate_after =NaN ┌ Info: create_reaction_from_config: global.total_O2 classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.O2", "ocean.O2"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: create_reaction_from_config: global.total_S classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["ocean.SO4_total", "ocean.H2S_total"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: oceansurface.airsea_O2 classname ReactionAirSeaO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [Default] moistair =true │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =4.8 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.airsea_CO2 classname ReactionAirSeaCO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [Default] moistair =true │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =4.8 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.transfer_fluxAtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceansurface.transfer_RtoOcean classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxRtoOcean.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: create_reaction_from_config: oceansurface.surface_insol classname ReactionConst └ set parameters: [config.yaml] constnames =["surface_insol"] ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=3 └ ================================================================================ [ Info: expandvalue: external%TAlkStateExplicit -> true ┌ Info: create_reaction_from_config: ocean.reservoir_TAlk classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_P classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_DIC classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> ScalarData │ after substitution field_data=ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.bioprod classname ReactionBioProdMMPop │ set parameters: [config.yaml] rCorgPO4 =106.0 │ set parameters: [config.yaml] rNPO4 =16.0 │ set parameters: [config.yaml] rCcarbCorg =0.25 │ set parameters: [config.yaml] rCcarbCorg_fixed =true │ set parameters: [Default] k_r0 =0.044372 │ set parameters: [Default] k_eta =0.8053406 │ set parameters: [config.yaml] nuDOM =0.0 │ set parameters: [config.yaml] depthlimit =-10.0 │ set parameters: [config.yaml] k_poptype =Constant │ set parameters: [config.yaml] k_uPO4 =0.002615 │ set parameters: [Default] k_mu =NaN │ set parameters: [Default] k_grazeresprate =NaN │ set parameters: [Default] k_templim =Constant │ set parameters: [config.yaml] k_lightlim =linear │ set parameters: [config.yaml] k_Irel =1.0 │ set parameters: [Default] k_Ic =30.0 │ set parameters: [Default] k_alphaQE =7.0 │ set parameters: [Default] k_thetaChlC =0.03 │ set parameters: [Default] k_epsilonChl =0.012 │ set parameters: [config.yaml] k_nuttype =PO4MM │ set parameters: [config.yaml] k_KPO4 =0.00021567 │ set parameters: [Default] k_KN =0.0 │ set parameters: [Default] k_prefNH3 =10.0 │ set parameters: [Default] k_edonor =H2O │ set parameters: [Default] k_KH2S =0.001 └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: ocean.biopumpCorg classname ReactionExportDirectColumn │ set parameters: [config.yaml] fluxlist =["P", "N", "Corg::CIsotope"] │ set parameters: [config.yaml] transportfloor =true │ set parameters: [config.yaml] exportfunction =SumExp │ set parameters: [config.yaml] input_frac =[0.9354, 0.0646] │ set parameters: [config.yaml] sumexp_scale =[550.5195, 1.0e6] │ set parameters: [Default] martin_rovera =0.858 └ set parameters: [Default] martin_depthmin =100.0 ┌ Info: create_reaction_from_config: ocean.remin classname ReactionReminO2_SO4 │ set parameters: [Default] oxreminlimit =0.008 │ set parameters: [config.yaml] CIsotope =ScalarData └ set parameters: [config.yaml] SIsotope =ScalarData [ Info: expandvalue: external%TAlkStateExplicit -> true [ Info: not creating reaction ocean.TAlk_total_H_primary_species (enabled=true, disabled=true) ┌ Info: create_reaction_from_config: ocean.biopumpCcarb classname ReactionExportDirectColumn │ set parameters: [config.yaml] fluxlist =["Ccarb::CIsotope"] │ set parameters: [config.yaml] transportfloor =true │ set parameters: [config.yaml] exportfunction =SumExp │ set parameters: [config.yaml] input_frac =[1.0] │ set parameters: [config.yaml] sumexp_scale =[2000.0] │ set parameters: [Default] martin_rovera =0.858 └ set parameters: [Default] martin_depthmin =100.0 ┌ Info: create_reaction_from_config: ocean.reservoir_Ca classname ReactionReservoirConst └ set parameters: [Default] field_data =PALEOboxes.ScalarData ┌ Info: create_reaction_from_config: ocean.carbchem classname ReactionCO2SYS │ set parameters: [Default] WhichKs =10 │ set parameters: [Default] WhoseKSO4 =1 │ set parameters: [config.yaml] components =["Ci", "B", "S", "F", "Omega", "H2S"] │ set parameters: [config.yaml] defaultconcs =["TF", "TB"] │ set parameters: [config.yaml] outputs =["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR"] │ set parameters: [Default] output_pHtot =true │ set parameters: [config.yaml] solve_pH =speciationTAlk │ set parameters: [Default] pHtol =2.220446049250313e-14 └ set parameters: [Default] simd_width =1 ┌ Info: create_reaction_from_config: ocean.transportromglb classname ReactionOceanTransportRomanielloICBM │ set parameters: [config.yaml] matdir =external%matdir │ expandvalue: external%matdir -> /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport │ after substitution matdir=/home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport │ set parameters: [config.yaml] circname =Global_79_Box │ set parameters: [Default] set_temp =true │ set parameters: [Default] temp_trackglobal =false │ set parameters: [Default] bosph_outflow =6.04e11 └ set parameters: [Default] bosph_inflow =3.05e11 ┌ Info: create_reaction_from_config: ocean.reservoir_O2 classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.light classname ReactionLightColumn └ set parameters: [config.yaml] background_opacity =0.0 ┌ Info: create_reaction_from_config: ocean.redox_H2S_O2 classname ReactionRedoxH2S_O2 │ set parameters: [config.yaml] R_H2S_O2 =3650.0 └ set parameters: [config.yaml] SIsotope =ScalarData ┌ Info: create_reaction_from_config: ocean.reservoir_H2S classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%SIsotope │ expandvalue: external%SIsotope -> ScalarData │ after substitution field_data=ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_SO4 classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%SIsotope │ expandvalue: external%SIsotope -> ScalarData │ after substitution field_data=ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.restoreP classname ReactionRestore │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [config.yaml] RequiredLevel =3.466e15 │ set parameters: [config.yaml] trestore =100.0 │ set parameters: [Default] RequiredDelta =0.0 └ set parameters: [config.yaml] source_only =true [ Info: expandvalue: external%TAlkStateExplicit -> true ┌ Info: create_reaction_from_config: ocean.TAlk_constraint_H_primary_species classname ReactionConstraintReservoir │ set parameters: [config.yaml] primary_total_stoich=0.0 │ set parameters: [Default] primary_other_components=String[] │ set parameters: [config.yaml] primary_variable =p_concentration └ set parameters: [config.yaml] constraint_variable =amount ┌ Info: create_reaction_from_config: ocean.restoreTAlk classname ReactionRestore │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [config.yaml] RequiredLevel =3.773e18 │ set parameters: [config.yaml] trestore =100.0 │ set parameters: [Default] RequiredDelta =0.0 └ set parameters: [config.yaml] source_only =false ┌ Info: │ ================================================================================ │ creating domain 'sedcrust' ID=4 └ ================================================================================ ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=5 └ ================================================================================ ┌ Info: create_reaction_from_config: oceanfloor.shelfcarb classname ReactionShelfCarb │ set parameters: [config.yaml] carbsedshallow =9.87e11 │ set parameters: [config.yaml] shelfareanorm =[NaN] └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: oceanfloor.deepcarb classname ReactionBurialEffCarb │ set parameters: [config.yaml] burial_eff_function =OmegaCA │ set parameters: [Default] k0 =26.0 │ set parameters: [Default] k1 =0.11 │ set parameters: [config.yaml] m0 =2.0 │ set parameters: [config.yaml] m1 =1.8 │ set parameters: [config.yaml] hascarbseddeep =Bool[0] └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: oceanfloor.reminoceanfloor classname ReactionReminO2_SO4 │ set parameters: [Default] oxreminlimit =0.008 │ set parameters: [config.yaml] CIsotope =ScalarData └ set parameters: [config.yaml] SIsotope =ScalarData ┌ Info: create_reaction_from_config: oceanfloor.sfw classname ReactionSeafloorWeathering │ set parameters: [config.yaml] f_sfw_opt =sfw_noT │ set parameters: [Default] f_sfw_alpha =0.23 │ set parameters: [config.yaml] f_sfw_force =None │ set parameters: [config.yaml] k_sfw =3.0e12 │ set parameters: [config.yaml] sfw_distribution_method=Depth │ set parameters: [Default] sfw_distribution =[1.0] │ set parameters: [config.yaml] sfw_depthrange =[-3000.0, -1000.0] │ set parameters: [Default] f_sfw_d13C =delta_DIC └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: oceanfloor.sedBEcorgP classname ReactionBurialEffCorgP │ set parameters: [config.yaml] BECorgNorm =0.145 │ set parameters: [config.yaml] burial_eff_function =Ozaki2011 │ set parameters: [Default] BECorg =Float64[] │ set parameters: [Default] FixedCorgBurialTotal=NaN │ set parameters: [Default] BPO2 =[NaN] │ set parameters: [config.yaml] BPorgCorg =[0.004] │ set parameters: [config.yaml] BPFeCorg =[0.004] │ set parameters: [config.yaml] BPauthCorg =[0.008] └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: oceanfloor.transferparticulate_fluxOceanfloor classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxOceanfloor.particulateflux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =particulateflux_$fluxname$ │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceanfloor.transfersolute_fluxOceanfloor classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxOceanfloor.soluteflux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceanfloor.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceanfloor.sedrate classname ReactionSedimentationRate_dev └ set parameters: [config.yaml] sed_rate_function =Tromp1995 ┌ Info: │ ================================================================================ │ creating domain 'fluxAtmtoOceansurface' ID=6 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtmtoOceansurface.fluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["O2", "CO2::CIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxRtoOcean' ID=7 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxRtoOcean.transfer classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["P", "TAlk", "SO4::SIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [Default] flux_totals =false └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxOceanfloor' ID=8 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxOceanfloor.particulatetarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["Corg::CIsotope", "N", "P", "Ccarb::CIsotope"] │ set parameters: [config.yaml] target_prefix =particulateflux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: create_reaction_from_config: fluxOceanfloor.solutetarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["DIC::CIsotope", "TAlk", "O2", "P", "SO4::SIsotope", "H2S::SIsotope"] │ set parameters: [config.yaml] target_prefix =soluteflux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxOceanBurial' ID=9 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxOceanBurial.transfer classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["Corg::CIsotope", "Ccarb::CIsotope", "GYP::SIsotope", "PYR::SIsotope", "P", "Pauth", "PFe", "Porg"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'atm' ID=10 └ ================================================================================ ┌ Info: create_reaction_from_config: atm.reservoir_O2 classname ReactionReservoirAtm │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: create_reaction_from_config: atm.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: create_reaction_from_config: atm.restoreCO2 classname ReactionRestore │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [config.yaml] RequiredLevel =4.956e16 │ set parameters: [config.yaml] trestore =100.0 │ set parameters: [Default] RequiredDelta =0.0 └ set parameters: [config.yaml] source_only =true ┌ Info: create_reaction_from_config: atm.reservoir_CO2 classname ReactionReservoirAtm │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> ScalarData │ after substitution field_data=ScalarData │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: create_reaction_from_config: atm.restoreO2 classname ReactionRestore │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [config.yaml] RequiredLevel =3.7e19 │ set parameters: [config.yaml] trestore =100.0 │ set parameters: [Default] RequiredDelta =0.0 └ set parameters: [config.yaml] source_only =false ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: read_datafiles: ocean.transportromglb reading transport matrix from file /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport/romaniello_global79.mat [ Info: set ocean.oceansurface Subdomain size=3 [ Info: set ocean.oceanfloor Subdomain size=79 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["oceansurface", "oceanfloor"]) [ Info: fluxAtmtoOceansurface Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:gyre => 2, :hlat => 1, :upw => 3), subdomains: ["ocean"]) [ Info: oceansurface Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:gyre => 2, :hlat => 1, :upw => 3), subdomains: ["ocean"]) [ Info: fluxOceanfloor Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["ocean"]) [ Info: fluxOceanBurial Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["ocean"]) [ Info: oceanfloor Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ [ Info: ReactionForceInterp.register_methods! global.force_RHOSFW ┌ Info: register_methods: global.total_O2 PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.O2 └ add 1 * ocean.O2 ┌ Info: register_methods: global.total_S PALEOboxes.VariableStats.ReactionSum │ add 1 * ocean.SO4_total └ add 1 * ocean.H2S_total [ Info: oceansurface.airsea_CO2 IsotopeType=PALEOboxes.ScalarData from isotope_name=CIsotope in external_parameters [ Info: register_methods! ocean.remin SIsotopeType=PALEOboxes.ScalarData ┌ Info: register_methods! ocean.carbchem ReactionCO2SYS │ modern default concentration Variables ["TF_conc", "TB_conc"] │ adding input concentration Variables ["TCi_conc", "TB_conc", "TS_conc", "TF_conc", "Ca_conc", "TH2S_conc"] │ adding additional output Variable %reaction%pCO2 (atm) 'CO2 partial pressure (fugacity corrected)' │ adding additional output Variable %reaction%xCO2dryinp () 'mixing ratio of CO2 in dry air at 1 atm (always > pCO2 due to H2O vapour pressure)' │ adding additional output Variable %reaction%CO2 (mol m-3) 'CO2 concentration' │ adding additional output Variable %reaction%CO3 (mol m-3) 'carbonate ion CO3-- concentration' │ adding additional output Variable %reaction%OmegaCA () 'calcite saturation' │ adding additional output Variable %reaction%OmegaAR () 'aragonite saturation' └ outputs ["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR"] at indices [16, 17, 11, 13, 36, 37] in res (pHfree = 1, H = 2, OH = 3, TA = 4, dTAdpH = 5, TS = 6, HSO4 = 7, TF = 8, HF = 9, TCi = 10, CO2 = 11, HCO3 = 12, CO3 = 13, CAlk = 14, fCO2 = 15, pCO2 = 16, xCO2dryinp = 17, TB = 18, BAlk = 19, TP = 20, H3PO4 = 21, H2PO4 = 22, HPO4 = 23, PO4 = 24, PengCorrection = 25, PAlk = 26, TSi = 27, SiAlk = 28, TH2S = 29, H2S = 30, HSAlk = 31, TNH3 = 32, NH4 = 33, NH3Alk = 34, Ca = 35, OmegaCA = 36, OmegaAR = 37) [ Info: register_methods! ocean.redox_H2S_O2 SIsotopeType=PALEOboxes.ScalarData [ Info: register_methods! oceanfloor.shelfcarb CIsotopeType=PALEOboxes.ScalarData [ Info: register_methods! oceanfloor.deepcarb CIsotopeType=PALEOboxes.ScalarData [ Info: register_methods! oceanfloor.reminoceanfloor SIsotopeType=PALEOboxes.ScalarData [ Info: register_methods! oceanfloor.sedBEcorgP CIsotopeType=PALEOboxes.ScalarData [ Info: register_methods! ReactionReservoirAtm atm.reservoir_O2 field_data=PALEOboxes.ScalarData [ Info: register_methods! ReactionReservoirAtm atm.reservoir_CO2 field_data=PALEOboxes.ScalarData ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ ┌ Info: _configure_variables: ReactionForceInterp global.force_RHOSFW variable_links: └ set variable_links: F -> RHOSFW [ Info: Reaction global.total_O2 Variable global.total_O2 adding data=PALEOboxes.ScalarData ┌ Info: _configure_variables: ReactionSum global.total_O2 variable_links: └ set variable_links: sum -> total_O2 [ Info: Reaction global.total_S Variable global.total_S adding data=PALEOboxes.ScalarData ┌ Info: _configure_variables: ReactionSum global.total_S variable_links: └ set variable_links: sum -> total_S ┌ Info: _configure_variables: ReactionFluxTransfer oceansurface.transfer_fluxAtmtoOceansurface variable_links: └ set variable_links: output_CO2 -> ocean.oceansurface.DIC_sms ┌ Info: _configure_variables: ReactionConst oceansurface.surface_insol variable_attributes: └ set attribute: surface_insol :initial_value = [70.0, 350.0, 350.0] ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_links: │ set variable_links: R -> TAlk │ set variable_links: R_sms -> TAlk_sms │ set variable_links: R_total -> TAlk_total │ set variable_links: R_conc -> TAlk_conc │ _configure_variables: ReactionReservoir ocean.reservoir_TAlk variable_attributes: │ set attribute: R :norm_value = 1.0 └ set attribute: R :initial_value = 2.4032 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_P variable_links: │ set variable_links: R -> P │ set variable_links: R_sms -> P_sms │ set variable_links: R_total -> P_total │ set variable_links: R_conc -> P_conc │ _configure_variables: ReactionReservoir ocean.reservoir_P variable_attributes: └ set attribute: R :initial_value = 0.002208 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_links: │ set variable_links: R -> DIC │ set variable_links: R_sms -> DIC_sms │ set variable_links: R_total -> DIC_total │ set variable_links: R_conc -> DIC_conc │ _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_attributes: │ set attribute: R :norm_value = 1.0 │ set attribute: R :initial_value = 2.2081 └ set attribute: R :initial_delta = -1.0 ┌ Info: _configure_variables: ReactionBioProdMMPop ocean.bioprod variable_links: │ set variable_links: partprod_P -> export_P │ set variable_links: partprod_N -> export_N │ set variable_links: partprod_Corg -> export_Corg │ set variable_links: partprod_Ccarb -> export_Ccarb │ set variable_links: Prod_Ccarb_total -> Prod_Ccarb_total └ set variable_links: Prod_Corg_total -> Prod_Corg_total [ Info: register_dynamic_methods!: ocean.biopumpCorg export_function SumExp ocean fluxlist=["P", "N", "Corg::CIsotope"] [ Info: add oceanfloor fluxlist=["P", "N", "Corg::CIsotope"] ┌ Info: _configure_variables: ReactionReminO2_SO4 ocean.remin variable_links: │ set variable_links: soluteflux_P -> P_sms │ set variable_links: soluteflux_TNH3 -> TNH3_sms │ set variable_links: soluteflux_DIC -> DIC_sms │ set variable_links: soluteflux_TAlk -> TAlk_sms │ set variable_links: soluteflux_O2 -> O2_sms │ set variable_links: soluteflux_SO4 -> SO4_sms └ set variable_links: soluteflux_H2S -> H2S_sms [ Info: register_dynamic_methods!: ocean.biopumpCcarb export_function SumExp ocean fluxlist=["Ccarb::CIsotope"] [ Info: add oceanfloor fluxlist=["Ccarb::CIsotope"] ┌ Info: _configure_variables: ReactionReservoirConst ocean.reservoir_Ca variable_links: │ set variable_links: R_conc -> Ca_conc │ _configure_variables: ReactionReservoirConst ocean.reservoir_Ca variable_attributes: └ set attribute: R_conc :initial_value = 10.56 ┌ Info: _configure_variables: ReactionCO2SYS ocean.carbchem variable_links: │ set variable_links: CO2 -> CO2_conc │ set variable_links: CO3 -> CO3_conc │ set variable_links: OmegaAR -> OmegaAR │ set variable_links: OmegaCA -> OmegaCA │ set variable_links: TCi_conc -> DIC_conc │ set variable_links: TH2S_conc -> H2S_conc │ set variable_links: TS_conc -> SO4_conc └ set variable_links: pCO2 -> pCO2 [ Info: find_transport_vars Domain ocean length(transport_vars)=6 num_components=6 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: R_total -> O2_total │ set variable_links: R_conc -> O2_conc │ _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_attributes: └ set attribute: R :initial_value = 0.2054 [ Info: register_dynamic_methods! ocean.light adding opacity contributions from 0 Variables: ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_H2S variable_links: │ set variable_links: R -> H2S │ set variable_links: R_sms -> H2S_sms │ set variable_links: R_total -> H2S_total │ set variable_links: R_conc -> H2S_conc │ _configure_variables: ReactionReservoir ocean.reservoir_H2S variable_attributes: │ set attribute: R :norm_value = 0.001 │ set attribute: R :initial_value = 1.0e-6 └ set attribute: R :initial_delta = 0.0 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_SO4 variable_links: │ set variable_links: R -> SO4 │ set variable_links: R_sms -> SO4_sms │ set variable_links: R_total -> SO4_total │ set variable_links: R_conc -> SO4_conc │ _configure_variables: ReactionReservoir ocean.reservoir_SO4 variable_attributes: │ set attribute: R :norm_value = 1.0 │ set attribute: R :initial_value = 28.756 └ set attribute: R :initial_delta = 0.0 ┌ Info: _configure_variables: ReactionRestore ocean.restoreP variable_links: │ set variable_links: RestoringFlux -> fluxRtoOcean.flux_P └ set variable_links: WatchLevel -> P_total ┌ Info: _configure_variables: ReactionConstraintReservoir ocean.TAlk_constraint_H_primary_species variable_links: │ set variable_links: R_constraint -> TAlk_constraint │ set variable_links: R_calc -> TAlk_calc │ set variable_links: R -> TAlk │ set variable_links: Primary_conc -> H_conc │ set variable_links: Primary_pconc -> pHfree │ _configure_variables: ReactionConstraintReservoir ocean.TAlk_constraint_H_primary_species variable_attributes: │ set attribute: R_constraint :norm_value = 1.0 │ set attribute: Primary_pconc :initial_value = 8.0 └ set attribute: Primary_pconc :norm_value = 1.0 ┌ Info: _configure_variables: ReactionRestore ocean.restoreTAlk variable_links: │ set variable_links: RestoringFlux -> fluxRtoOcean.flux_TAlk └ set variable_links: WatchLevel -> TAlk_total ┌ Info: _configure_variables: ReactionBurialEffCarb oceanfloor.deepcarb variable_links: └ set variable_links: particulateflux_Ccarb -> particulateflux_Ccarb ┌ Info: _configure_variables: ReactionReminO2_SO4 oceanfloor.reminoceanfloor variable_links: │ set variable_links: soluteflux_P -> fluxOceanfloor.soluteflux_P │ set variable_links: soluteflux_TNH3 -> fluxOceanfloor.soluteflux_TNH3 │ set variable_links: soluteflux_DIC -> fluxOceanfloor.soluteflux_DIC │ set variable_links: soluteflux_TAlk -> fluxOceanfloor.soluteflux_TAlk │ set variable_links: soluteflux_O2 -> fluxOceanfloor.soluteflux_O2 │ set variable_links: soluteflux_SO4 -> fluxOceanfloor.soluteflux_SO4 │ set variable_links: soluteflux_H2S -> fluxOceanfloor.soluteflux_H2S └ set variable_links: O2_conc -> ocean.oceanfloor.O2_conc ┌ Info: _configure_variables: ReactionBurialEffCorgP oceanfloor.sedBEcorgP variable_links: │ set variable_links: reminflux_Corg -> remin_Corg │ set variable_links: reminflux_N -> remin_N └ set variable_links: reminflux_P -> remin_P ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: pRatm -> pO2atm │ set variable_links: pRnorm -> pO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_attributes: │ set attribute: R :norm_value = 3.7e19 └ set attribute: R :initial_value = 3.7e19 ┌ Info: _configure_variables: ReactionRestore atm.restoreCO2 variable_links: │ set variable_links: RestoringApplied -> CO2_restoring │ set variable_links: RestoringFlux -> CO2_sms └ set variable_links: WatchLevel -> CO2 ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_links: │ set variable_links: R -> CO2 │ set variable_links: R_sms -> CO2_sms │ set variable_links: pRatm -> pCO2atm │ set variable_links: pRnorm -> pCO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_attributes: │ set attribute: R :norm_value = 4.956e16 └ set attribute: R :initial_value = 4.956e16 ┌ Info: _configure_variables: ReactionRestore atm.restoreO2 variable_links: │ set variable_links: RestoringApplied -> O2_restoring │ set variable_links: RestoringFlux -> O2_sms └ set variable_links: WatchLevel -> O2 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ │ optional ocean.bioprod rate_bioprod -| global.rate_bioprod │ optional ocean.bioprod PELCALC -| global.PELCALC │ optional ocean.bioprod domprod_P -| domprod_P │ optional ocean.bioprod domprod_N -| domprod_N │ optional ocean.bioprod domprod_Corg -| domprod_Corg │ optional ocean.bioprod domprod_Ccarb -| domprod_Ccarb │ optional ocean.remin soluteflux_TNH3 -| TNH3_sms │ optional ocean.transportromglb TEMP -| global.TEMP │ optional oceanfloor.shelfcarb fluxOceanfloor_soluteflux_Ca -| fluxOceanfloor.soluteflux_Ca │ optional oceanfloor.shelfcarb shelfarea_force -| global.shelfarea_force │ optional oceanfloor.deepcarb fluxOceanfloor_soluteflux_Ca -| fluxOceanfloor.soluteflux_Ca │ optional oceanfloor.reminoceanfloor soluteflux_TNH3 -| fluxOceanfloor.soluteflux_TNH3 │ optional oceanfloor.sfw TEMP -| global.TEMP │ optional oceanfloor.sfw DEGASS -| global.DEGASS │ optional oceanfloor.sfw DIC_delta -| ocean.oceanfloor.DIC_delta └ optional oceanfloor.sfw D_mccb_DIC -| ocean.D_mccb_DIC ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: set :field_data=PALEOboxes.ScalarData for host-dependent Variable global.tforce [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 79 variables (hostdep=nothing) [ Info: Domain sedcrust data dimensions PALEOboxes.NamedDimension[] allocating 0 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 25 variables (hostdep=nothing) [ Info: Domain fluxAtmtoOceansurface data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: Domain fluxRtoOcean data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain fluxOceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 20 variables (hostdep=nothing) [ Info: Domain fluxOceanBurial data dimensions PALEOboxes.NamedDimension[] allocating 16 variables (hostdep=nothing) [ Info: Domain atm data dimensions PALEOboxes.NamedDimension[] allocating 10 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 0 0 0 1 │ oceansurface 0 0 0 0 0 0 0 │ ocean 0 6 0 1 0 1 0 │ sedcrust 0 0 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ fluxAtmtoOceansurface 0 0 0 0 0 0 0 │ fluxRtoOcean 0 0 0 0 0 0 0 │ fluxOceanfloor 0 0 0 0 0 0 0 │ fluxOceanBurial 0 0 0 0 0 0 0 │ atm 0 2 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 8 0 1 0 1 1 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 9 (stateexplicit 8 + statetotal 0 + state 1) │ n_equations 9 (stateexplicit 8 + total 0 + constraint 1) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): ["global.tforce"] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_RtoOcean.do_transfer │ active fluxes: │ SO4 fluxRtoOcean.flux_SO4 -> ocean.SO4_sms │ P fluxRtoOcean.flux_P -> ocean.P_sms │ TAlk fluxRtoOcean.flux_TAlk -> ocean.TAlk_sms └ using Distribute transfer matrix size (input, output) (1, 3) * 1.0 [ Info: prepare_do_carbchem: ocean.carbchem simd_width=1 using BufType Float64 ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_fluxAtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> ocean.DIC_sms │ O2 fluxAtmtoOceansurface.flux_O2 -> ocean.O2_sms └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> atm.CO2_sms │ O2 fluxAtmtoOceansurface.flux_O2 -> atm.O2_sms └ using Distribute transfer matrix size (input, output) (3, 1) * -1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceanfloor.transferparticulate_fluxOceanfloor.do_transfer │ active fluxes: │ P fluxOceanfloor.particulateflux_P -> oceanfloor.particulateflux_P │ Ccarb fluxOceanfloor.particulateflux_Ccarb -> oceanfloor.particulateflux_Ccarb │ Corg fluxOceanfloor.particulateflux_Corg -> oceanfloor.particulateflux_Corg │ N fluxOceanfloor.particulateflux_N -> oceanfloor.particulateflux_N └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceanfloor.transfersolute_fluxOceanfloor.do_transfer │ active fluxes: │ H2S fluxOceanfloor.soluteflux_H2S -> ocean.H2S_sms │ SO4 fluxOceanfloor.soluteflux_SO4 -> ocean.SO4_sms │ O2 fluxOceanfloor.soluteflux_O2 -> ocean.O2_sms │ TAlk fluxOceanfloor.soluteflux_TAlk -> ocean.TAlk_sms │ P fluxOceanfloor.soluteflux_P -> ocean.P_sms │ DIC fluxOceanfloor.soluteflux_DIC -> ocean.DIC_sms └ using Identity transfer matrix * 1.0 ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: oceansurface.surface_insol.setup_initialvalue_vars_default: [ Info: init_values! :initial_value oceansurface.surface_insol = [70.0, 350.0, 350.0] [ Info: ocean.reservoir_Ca.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.Ca_conc = 10.56 [ Info: setup_light_column ocean.light: Variables with non-zero :specific_light_extinction : ┌ Warning: `LinearInterpolation(args...; kwargs...)` is deprecated, use `linear_interpolation(args...; kwargs...)` instead. │ caller = setup_burial_eff_CorgP(m::PALEOboxes.ReactionMethod{typeof(PALEOocean.Oceanfloor.Burial.setup_burial_eff_CorgP), PALEOocean.Oceanfloor.Burial.ReactionBurialEffCorgP{@NamedTuple{BECorgNorm::PALEOboxes.Parameter{Float64, Nothing}, burial_eff_function::PALEOboxes.Parameter{String, Nothing}, BECorg::PALEOboxes.VecParameter{Float64, Nothing}, FixedCorgBurialTotal::PALEOboxes.Parameter{Float64, Nothing}, BPO2::PALEOboxes.VecParameter{Float64, Nothing}, BPorgCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPFeCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPauthCorg::PALEOboxes.VecParameter{Float64, Nothing}, CIsotope::PALEOboxes.Parameter{Type, PALEOboxes.AbstractData}}}, Nothing, 5}, pars::@NamedTuple{BECorgNorm::PALEOboxes.Parameter{Float64, Nothing}, burial_eff_function::PALEOboxes.Parameter{String, Nothing}, BECorg::PALEOboxes.VecParameter{Float64, Nothing}, FixedCorgBurialTotal::PALEOboxes.Parameter{Float64, Nothing}, BPO2::PALEOboxes.VecParameter{Float64, Nothing}, BPorgCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPFeCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPauthCorg::PALEOboxes.VecParameter{Float64, Nothing}, CIsotope::PALEOboxes.Parameter{Type, PALEOboxes.AbstractData}}, ::Tuple{}, cellrange::PALEOboxes.CellRangeColumns{UnitRange{Int64}, Vector{Tuple{Int64, UnitRange{Int64}}}}, attribute_name::Symbol) at Burial.jl:470 └ @ PALEOocean.Oceanfloor.Burial ~/.julia/packages/PALEOocean/Cpquk/src/oceanfloor/Burial.jl:470 ┌ Warning: `LinearInterpolation(args...; kwargs...)` is deprecated, use `linear_interpolation(args...; kwargs...)` instead. │ caller = setup_burial_eff_CorgP(m::PALEOboxes.ReactionMethod{typeof(PALEOocean.Oceanfloor.Burial.setup_burial_eff_CorgP), PALEOocean.Oceanfloor.Burial.ReactionBurialEffCorgP{@NamedTuple{BECorgNorm::PALEOboxes.Parameter{Float64, Nothing}, burial_eff_function::PALEOboxes.Parameter{String, Nothing}, BECorg::PALEOboxes.VecParameter{Float64, Nothing}, FixedCorgBurialTotal::PALEOboxes.Parameter{Float64, Nothing}, BPO2::PALEOboxes.VecParameter{Float64, Nothing}, BPorgCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPFeCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPauthCorg::PALEOboxes.VecParameter{Float64, Nothing}, CIsotope::PALEOboxes.Parameter{Type, PALEOboxes.AbstractData}}}, Nothing, 5}, pars::@NamedTuple{BECorgNorm::PALEOboxes.Parameter{Float64, Nothing}, burial_eff_function::PALEOboxes.Parameter{String, Nothing}, BECorg::PALEOboxes.VecParameter{Float64, Nothing}, FixedCorgBurialTotal::PALEOboxes.Parameter{Float64, Nothing}, BPO2::PALEOboxes.VecParameter{Float64, Nothing}, BPorgCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPFeCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPauthCorg::PALEOboxes.VecParameter{Float64, Nothing}, CIsotope::PALEOboxes.Parameter{Type, PALEOboxes.AbstractData}}, ::Tuple{}, cellrange::PALEOboxes.CellRangeColumns{UnitRange{Int64}, Vector{Tuple{Int64, UnitRange{Int64}}}}, attribute_name::Symbol) at Burial.jl:474 └ @ PALEOocean.Oceanfloor.Burial ~/.julia/packages/PALEOocean/Cpquk/src/oceanfloor/Burial.jl:474 ┌ Warning: `LinearInterpolation(args...; kwargs...)` is deprecated, use `linear_interpolation(args...; kwargs...)` instead. │ caller = setup_burial_eff_CorgP(m::PALEOboxes.ReactionMethod{typeof(PALEOocean.Oceanfloor.Burial.setup_burial_eff_CorgP), PALEOocean.Oceanfloor.Burial.ReactionBurialEffCorgP{@NamedTuple{BECorgNorm::PALEOboxes.Parameter{Float64, Nothing}, burial_eff_function::PALEOboxes.Parameter{String, Nothing}, BECorg::PALEOboxes.VecParameter{Float64, Nothing}, FixedCorgBurialTotal::PALEOboxes.Parameter{Float64, Nothing}, BPO2::PALEOboxes.VecParameter{Float64, Nothing}, BPorgCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPFeCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPauthCorg::PALEOboxes.VecParameter{Float64, Nothing}, CIsotope::PALEOboxes.Parameter{Type, PALEOboxes.AbstractData}}}, Nothing, 5}, pars::@NamedTuple{BECorgNorm::PALEOboxes.Parameter{Float64, Nothing}, burial_eff_function::PALEOboxes.Parameter{String, Nothing}, BECorg::PALEOboxes.VecParameter{Float64, Nothing}, FixedCorgBurialTotal::PALEOboxes.Parameter{Float64, Nothing}, BPO2::PALEOboxes.VecParameter{Float64, Nothing}, BPorgCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPFeCorg::PALEOboxes.VecParameter{Float64, Nothing}, BPauthCorg::PALEOboxes.VecParameter{Float64, Nothing}, CIsotope::PALEOboxes.Parameter{Type, PALEOboxes.AbstractData}}, ::Tuple{}, cellrange::PALEOboxes.CellRangeColumns{UnitRange{Int64}, Vector{Tuple{Int64, UnitRange{Int64}}}}, attribute_name::Symbol) at Burial.jl:478 └ @ PALEOocean.Oceanfloor.Burial ~/.julia/packages/PALEOocean/Cpquk/src/oceanfloor/Burial.jl:478 [ Info: oceanfloor.sfw.set_distributionfromdepths ReactionSeafloorWeathering: [ Info: sfw distributed among 26.0 of 79 boxes, area 4.926116277523847e13 m^2 of 4.2953000000000006e14 m^2 ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: ocean.TAlk_constraint_H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.pHfree = 1.0 [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.O2 = 3.7e19 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.CO2 = 4.956e16 [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk = 1.0 * volume [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.P = 1.0 * volume [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.DIC = 1.0 * volume [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.O2 = 1.0 * volume [ Info: ocean.reservoir_H2S.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.H2S = 0.001 * volume [ Info: ocean.reservoir_SO4.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.SO4 = 1.0 * volume [ Info: ocean.TAlk_constraint_H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk_constraint = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: ocean.TAlk_constraint_H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.pHfree = 8.0 [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.O2 = 3.7e19 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.CO2 = 4.956e16 [ Info: ocean.reservoir_TAlk.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk = 2.4032 * volume [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.P = 0.002208 * volume [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.DIC = 2.2081 * volume [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.O2 = 0.2054 * volume [ Info: ocean.reservoir_H2S.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.H2S = 1.0e-6 * volume [ Info: ocean.reservoir_SO4.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.SO4 = 28.756 * volume [ Info: ocean.TAlk_constraint_H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk_constraint = 0.0 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: │ tspan: (0, 100000.0) │ algorithm: IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ Jacobian: ForwardDiffSparse │ using 1 BLAS threads └ ================================================================================ [ Info: DAEfunction: using Jacobian ForwardDiffSparse [ Info: jac_config_dae: jac_ad=ForwardDiffSparse [ Info: using ForwardDiff sparse Jacobian with sparsity calculated at t=0 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(555, 555) nnz=4472 non-zero=4197 at time=0 [ Info: fill_sparse_jac: initial_jac nnz 4472 (1.45%) non-zero 4197 [ Info: fill_sparse_jac: after filling diagonal nnz 4472 [ Info: jac_prototype nnz=4472 num colors=87 [ Info: add_arrays_data! (arrays_eltype=ForwardDiff.Dual{Nothing, Float64, 11}, arrays_tagname=jac_ad) [ Info: calling get_inconsistent_initial_deriv 20.160485 seconds (6.67 M allocations: 371.779 MiB, 1.43% gc time, 95.60% compilation time) ┌ Info: │ ================================================================================ │ print_sol_stats: │ retcode=Success │ alg=IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ stats=SciMLBase.DEStats │ Number of function 1 evaluations: 1421 │ Number of function 2 evaluations: 0 │ Number of W matrix evaluations: 63 │ Number of linear solves: 0 │ Number of Jacobians created: 63 │ Number of nonlinear solver iterations: 1419 │ Number of nonlinear solver convergence failures: 0 │ Number of fixed-point solver iterations: 0 │ Number of fixed-point solver convergence failures: 0 │ Number of rootfind condition calls: 0 │ Number of accepted steps: 924 │ Number of rejected steps: 12 │ length(sol.t) 937 │ size(sol) (555, 937) └ ================================================================================ [ Info: ODE.calc_output_sol!: 937 records [ Info: ODE.calc_output_sol!: done ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: done └ ================================================================================ [ Info: saving to /tmp/jl_kbS5Av2pgV ... [ Info: done [ Info: loading from /tmp/jl_kbS5Av2pgV ... check values at end of run: check fluxRtoOcean.flux_P 4.1784737291915e10 4.17847e10 0.0001 check atm.O2_restoring -2.61154608070656e12 -2.6115e12 0.0001 check fluxOceanBurial.flux_total_P 4.178473729195883e10 4.17847e10 0.0001 check fluxOceanBurial.flux_total_Corg 2.611546080747426e12 2.61155e12 0.0001 check fluxOceanBurial.flux_total_Ccarb 2.324016991526066e13 2.324e13 0.0001 check values at end of run: check fluxRtoOcean.flux_P 4.1784737291915e10 4.17847e10 0.0001 check atm.O2_restoring -2.61154608070656e12 -2.6115e12 0.0001 check fluxOceanBurial.flux_total_P 4.178473729195883e10 4.17847e10 0.0001 check fluxOceanBurial.flux_total_Corg 2.611546080747426e12 2.61155e12 0.0001 check fluxOceanBurial.flux_total_Ccarb 2.324016991526066e13 2.324e13 0.0001 ┌ Info: │ ================================================================================ │ create_model_from_config: configmodel romglb_P_O2_S_Carb_open │ config_file: /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/PALEO_examples_romglb_cfg.yaml └ ================================================================================ ┌ Info: Model.parameters: │ Resetting Model parameter TAlkStateExplicit = false (configuration file had value=false) │ Resetting Model parameter matdir = /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport (configuration file had value=/home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport) │ TAlkStateExplicit = false │ CIsotope = ScalarData │ SIsotope = ScalarData └ matdir = /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport ┌ Info: │ ================================================================================ │ creating Domains └ ================================================================================ [ Info: generated Reaction catalog with 98 Reactions ┌ Info: │ ================================================================================ │ creating domain 'global' ID=1 └ ================================================================================ ┌ Info: create_reaction_from_config: global.force_RHOSFW classname ReactionForceInterp │ set parameters: [Default] force_times =[-1.0e30, 1.0e30] │ set parameters: [Default] force_values =[1.0, 1.0] │ set parameters: [Default] extrapolate =throw │ set parameters: [Default] extrapolate_before =NaN └ set parameters: [Default] extrapolate_after =NaN ┌ Info: create_reaction_from_config: global.total_O2 classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["atm.O2", "ocean.O2"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: create_reaction_from_config: global.total_S classname ReactionSum │ set parameters: [config.yaml] vars_to_add =["ocean.SO4_total", "ocean.H2S_total"] │ set parameters: [Default] vars_prefix = │ set parameters: [Default] component_to_add =0 └ set parameters: [Default] vectorsum =false ┌ Info: │ ================================================================================ │ creating domain 'oceansurface' ID=2 └ ================================================================================ ┌ Info: create_reaction_from_config: oceansurface.airsea_O2 classname ReactionAirSeaO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [Default] moistair =true │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =4.8 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.airsea_CO2 classname ReactionAirSeaCO2 │ set parameters: [Default] solubility_fixed =false │ set parameters: [Default] sol_fix_henry_coeff =NaN │ set parameters: [Default] moistair =true │ set parameters: [Default] piston_fixed =true │ set parameters: [config.yaml] piston =4.8 │ set parameters: [Default] TempKmin =-Inf │ set parameters: [Default] atm_partial_pressure_min_zero=false └ set parameters: [Default] ocean_conc_min_zero =false ┌ Info: create_reaction_from_config: oceansurface.transfer_fluxAtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceansurface.transfer_RtoOcean classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxRtoOcean.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceansurface.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: create_reaction_from_config: oceansurface.surface_insol classname ReactionConst └ set parameters: [config.yaml] constnames =["surface_insol"] ┌ Info: │ ================================================================================ │ creating domain 'ocean' ID=3 └ ================================================================================ [ Info: expandvalue: external%TAlkStateExplicit -> false [ Info: not creating reaction ocean.reservoir_TAlk (enabled=false, disabled=false) ┌ Info: create_reaction_from_config: ocean.reservoir_P classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_DIC classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> ScalarData │ after substitution field_data=ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.bioprod classname ReactionBioProdMMPop │ set parameters: [config.yaml] rCorgPO4 =106.0 │ set parameters: [config.yaml] rNPO4 =16.0 │ set parameters: [config.yaml] rCcarbCorg =0.25 │ set parameters: [config.yaml] rCcarbCorg_fixed =true │ set parameters: [Default] k_r0 =0.044372 │ set parameters: [Default] k_eta =0.8053406 │ set parameters: [config.yaml] nuDOM =0.0 │ set parameters: [config.yaml] depthlimit =-10.0 │ set parameters: [config.yaml] k_poptype =Constant │ set parameters: [config.yaml] k_uPO4 =0.002615 │ set parameters: [Default] k_mu =NaN │ set parameters: [Default] k_grazeresprate =NaN │ set parameters: [Default] k_templim =Constant │ set parameters: [config.yaml] k_lightlim =linear │ set parameters: [config.yaml] k_Irel =1.0 │ set parameters: [Default] k_Ic =30.0 │ set parameters: [Default] k_alphaQE =7.0 │ set parameters: [Default] k_thetaChlC =0.03 │ set parameters: [Default] k_epsilonChl =0.012 │ set parameters: [config.yaml] k_nuttype =PO4MM │ set parameters: [config.yaml] k_KPO4 =0.00021567 │ set parameters: [Default] k_KN =0.0 │ set parameters: [Default] k_prefNH3 =10.0 │ set parameters: [Default] k_edonor =H2O │ set parameters: [Default] k_KH2S =0.001 └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: ocean.biopumpCorg classname ReactionExportDirectColumn │ set parameters: [config.yaml] fluxlist =["P", "N", "Corg::CIsotope"] │ set parameters: [config.yaml] transportfloor =true │ set parameters: [config.yaml] exportfunction =SumExp │ set parameters: [config.yaml] input_frac =[0.9354, 0.0646] │ set parameters: [config.yaml] sumexp_scale =[550.5195, 1.0e6] │ set parameters: [Default] martin_rovera =0.858 └ set parameters: [Default] martin_depthmin =100.0 ┌ Info: create_reaction_from_config: ocean.remin classname ReactionReminO2_SO4 │ set parameters: [Default] oxreminlimit =0.008 │ set parameters: [config.yaml] CIsotope =ScalarData └ set parameters: [config.yaml] SIsotope =ScalarData [ Info: expandvalue: external%TAlkStateExplicit -> false ┌ Info: create_reaction_from_config: ocean.TAlk_total_H_primary_species classname ReactionImplicitReservoir │ set parameters: [config.yaml] primary_total_stoich=0.0 │ set parameters: [Default] primary_other_components=String[] │ set parameters: [config.yaml] primary_variable =p_concentration │ set parameters: [config.yaml] total_variable =amount └ set parameters: [config.yaml] total =true ┌ Info: create_reaction_from_config: ocean.biopumpCcarb classname ReactionExportDirectColumn │ set parameters: [config.yaml] fluxlist =["Ccarb::CIsotope"] │ set parameters: [config.yaml] transportfloor =true │ set parameters: [config.yaml] exportfunction =SumExp │ set parameters: [config.yaml] input_frac =[1.0] │ set parameters: [config.yaml] sumexp_scale =[2000.0] │ set parameters: [Default] martin_rovera =0.858 └ set parameters: [Default] martin_depthmin =100.0 ┌ Info: create_reaction_from_config: ocean.reservoir_Ca classname ReactionReservoirConst └ set parameters: [Default] field_data =PALEOboxes.ScalarData ┌ Info: create_reaction_from_config: ocean.carbchem classname ReactionCO2SYS │ set parameters: [Default] WhichKs =10 │ set parameters: [Default] WhoseKSO4 =1 │ set parameters: [config.yaml] components =["Ci", "B", "S", "F", "Omega", "H2S"] │ set parameters: [config.yaml] defaultconcs =["TF", "TB"] │ set parameters: [config.yaml] outputs =["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR"] │ set parameters: [Default] output_pHtot =true │ set parameters: [config.yaml] solve_pH =speciationTAlk │ set parameters: [Default] pHtol =2.220446049250313e-14 └ set parameters: [Default] simd_width =1 ┌ Info: create_reaction_from_config: ocean.transportromglb classname ReactionOceanTransportRomanielloICBM │ set parameters: [config.yaml] matdir =external%matdir │ expandvalue: external%matdir -> /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport │ after substitution matdir=/home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport │ set parameters: [config.yaml] circname =Global_79_Box │ set parameters: [Default] set_temp =true │ set parameters: [Default] temp_trackglobal =false │ set parameters: [Default] bosph_outflow =6.04e11 └ set parameters: [Default] bosph_inflow =3.05e11 ┌ Info: create_reaction_from_config: ocean.reservoir_O2 classname ReactionReservoirTotal │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.light classname ReactionLightColumn └ set parameters: [config.yaml] background_opacity =0.0 ┌ Info: create_reaction_from_config: ocean.redox_H2S_O2 classname ReactionRedoxH2S_O2 │ set parameters: [config.yaml] R_H2S_O2 =3650.0 └ set parameters: [config.yaml] SIsotope =ScalarData ┌ Info: create_reaction_from_config: ocean.reservoir_H2S classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%SIsotope │ expandvalue: external%SIsotope -> ScalarData │ after substitution field_data=ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.reservoir_SO4 classname ReactionReservoirTotal │ set parameters: [config.yaml] field_data =external%SIsotope │ expandvalue: external%SIsotope -> ScalarData │ after substitution field_data=ScalarData │ set parameters: [Default] total =true │ set parameters: [Default] limit_delta_conc =0.0 └ set parameters: [Default] state_conc =false ┌ Info: create_reaction_from_config: ocean.restoreP classname ReactionRestore │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [config.yaml] RequiredLevel =3.466e15 │ set parameters: [config.yaml] trestore =100.0 │ set parameters: [Default] RequiredDelta =0.0 └ set parameters: [config.yaml] source_only =true [ Info: expandvalue: external%TAlkStateExplicit -> false [ Info: not creating reaction ocean.TAlk_constraint_H_primary_species (enabled=false, disabled=false) ┌ Info: create_reaction_from_config: ocean.restoreTAlk classname ReactionRestore │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [config.yaml] RequiredLevel =3.773e18 │ set parameters: [config.yaml] trestore =100.0 │ set parameters: [Default] RequiredDelta =0.0 └ set parameters: [config.yaml] source_only =false ┌ Info: │ ================================================================================ │ creating domain 'sedcrust' ID=4 └ ================================================================================ ┌ Info: │ ================================================================================ │ creating domain 'oceanfloor' ID=5 └ ================================================================================ ┌ Info: create_reaction_from_config: oceanfloor.shelfcarb classname ReactionShelfCarb │ set parameters: [config.yaml] carbsedshallow =9.87e11 │ set parameters: [config.yaml] shelfareanorm =[NaN] └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: oceanfloor.deepcarb classname ReactionBurialEffCarb │ set parameters: [config.yaml] burial_eff_function =OmegaCA │ set parameters: [Default] k0 =26.0 │ set parameters: [Default] k1 =0.11 │ set parameters: [config.yaml] m0 =2.0 │ set parameters: [config.yaml] m1 =1.8 │ set parameters: [config.yaml] hascarbseddeep =Bool[0] └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: oceanfloor.reminoceanfloor classname ReactionReminO2_SO4 │ set parameters: [Default] oxreminlimit =0.008 │ set parameters: [config.yaml] CIsotope =ScalarData └ set parameters: [config.yaml] SIsotope =ScalarData ┌ Info: create_reaction_from_config: oceanfloor.sfw classname ReactionSeafloorWeathering │ set parameters: [config.yaml] f_sfw_opt =sfw_noT │ set parameters: [Default] f_sfw_alpha =0.23 │ set parameters: [config.yaml] f_sfw_force =None │ set parameters: [config.yaml] k_sfw =3.0e12 │ set parameters: [config.yaml] sfw_distribution_method=Depth │ set parameters: [Default] sfw_distribution =[1.0] │ set parameters: [config.yaml] sfw_depthrange =[-3000.0, -1000.0] │ set parameters: [Default] f_sfw_d13C =delta_DIC └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: oceanfloor.sedBEcorgP classname ReactionBurialEffCorgP │ set parameters: [config.yaml] BECorgNorm =0.145 │ set parameters: [config.yaml] burial_eff_function =Ozaki2011 │ set parameters: [Default] BECorg =Float64[] │ set parameters: [Default] FixedCorgBurialTotal=NaN │ set parameters: [Default] BPO2 =[NaN] │ set parameters: [config.yaml] BPorgCorg =[0.004] │ set parameters: [config.yaml] BPFeCorg =[0.004] │ set parameters: [config.yaml] BPauthCorg =[0.008] └ set parameters: [config.yaml] CIsotope =ScalarData ┌ Info: create_reaction_from_config: oceanfloor.transferparticulate_fluxOceanfloor classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxOceanfloor.particulateflux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =particulateflux_$fluxname$ │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceanfloor.transfersolute_fluxOceanfloor classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxOceanfloor.soluteflux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =ocean.oceanfloor.$fluxname$_sms │ set parameters: [Default] transfer_multiplier =1.0 └ set parameters: [config.yaml] transfer_matrix =Identity ┌ Info: create_reaction_from_config: oceanfloor.sedrate classname ReactionSedimentationRate_dev └ set parameters: [config.yaml] sed_rate_function =Tromp1995 ┌ Info: │ ================================================================================ │ creating domain 'fluxAtmtoOceansurface' ID=6 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxAtmtoOceansurface.fluxtarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["O2", "CO2::CIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxRtoOcean' ID=7 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxRtoOcean.transfer classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["P", "TAlk", "SO4::SIsotope"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [Default] flux_totals =false └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxOceanfloor' ID=8 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxOceanfloor.particulatetarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["Corg::CIsotope", "N", "P", "Ccarb::CIsotope"] │ set parameters: [config.yaml] target_prefix =particulateflux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: create_reaction_from_config: fluxOceanfloor.solutetarget classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["DIC::CIsotope", "TAlk", "O2", "P", "SO4::SIsotope", "H2S::SIsotope"] │ set parameters: [config.yaml] target_prefix =soluteflux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'fluxOceanBurial' ID=9 └ ================================================================================ ┌ Info: create_reaction_from_config: fluxOceanBurial.transfer classname ReactionFluxTarget │ set parameters: [config.yaml] fluxlist =["Corg::CIsotope", "Ccarb::CIsotope", "GYP::SIsotope", "PYR::SIsotope", "P", "Pauth", "PFe", "Porg"] │ set parameters: [Default] target_prefix =flux_ │ set parameters: [config.yaml] flux_totals =true └ set parameters: [Default] const_stub =false ┌ Info: │ ================================================================================ │ creating domain 'atm' ID=10 └ ================================================================================ ┌ Info: create_reaction_from_config: atm.reservoir_O2 classname ReactionReservoirAtm │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: create_reaction_from_config: atm.transfer_AtmtoOceansurface classname ReactionFluxTransfer │ set parameters: [config.yaml] input_fluxes =fluxAtmtoOceansurface.flux_$fluxname$ │ set parameters: [config.yaml] output_fluxes =$fluxname$_sms │ set parameters: [config.yaml] transfer_multiplier =-1.0 └ set parameters: [config.yaml] transfer_matrix =Distribute ┌ Info: create_reaction_from_config: atm.restoreCO2 classname ReactionRestore │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [config.yaml] RequiredLevel =4.956e16 │ set parameters: [config.yaml] trestore =100.0 │ set parameters: [Default] RequiredDelta =0.0 └ set parameters: [config.yaml] source_only =true ┌ Info: create_reaction_from_config: atm.reservoir_CO2 classname ReactionReservoirAtm │ set parameters: [config.yaml] field_data =external%CIsotope │ expandvalue: external%CIsotope -> ScalarData │ after substitution field_data=ScalarData │ set parameters: [Default] const =false └ set parameters: [Default] moles1atm =1.77e20 ┌ Info: create_reaction_from_config: atm.restoreO2 classname ReactionRestore │ set parameters: [Default] field_data =PALEOboxes.ScalarData │ set parameters: [config.yaml] RequiredLevel =3.7e19 │ set parameters: [config.yaml] trestore =100.0 │ set parameters: [Default] RequiredDelta =0.0 └ set parameters: [config.yaml] source_only =false ┌ Info: │ ================================================================================ │ set_model_geometry └ ================================================================================ [ Info: read_datafiles: ocean.transportromglb reading transport matrix from file /home/pkgeval/.julia/packages/PALEOocean/Cpquk/examples/romglb/romaniello2010_transport/romaniello_global79.mat [ Info: set ocean.oceansurface Subdomain size=3 [ Info: set ocean.oceanfloor Subdomain size=79 [ Info: Ocean.set_model_domains: [ Info: ocean Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["oceansurface", "oceanfloor"]) [ Info: fluxAtmtoOceansurface Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:gyre => 2, :hlat => 1, :upw => 3), subdomains: ["ocean"]) [ Info: oceansurface Domain size=3 grid=UnstructuredVectorGrid(ncells=3, cellnames=Dict(:gyre => 2, :hlat => 1, :upw => 3), subdomains: ["ocean"]) [ Info: fluxOceanfloor Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["ocean"]) [ Info: fluxOceanBurial Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["ocean"]) [ Info: oceanfloor Domain size=79 grid=UnstructuredColumnGrid(ncells=79, columns: 3, columnnames=[:hlat, :gyre, :upw], subdomains: ["ocean"]) ┌ Info: │ ================================================================================ │ register_reaction_methods! └ ================================================================================ [ Info: ReactionForceInterp.register_methods! global.force_RHOSFW ┌ Info: register_methods: global.total_O2 PALEOboxes.VariableStats.ReactionSum │ add 1 * atm.O2 └ add 1 * ocean.O2 ┌ Info: register_methods: global.total_S PALEOboxes.VariableStats.ReactionSum │ add 1 * ocean.SO4_total └ add 1 * ocean.H2S_total [ Info: oceansurface.airsea_CO2 IsotopeType=PALEOboxes.ScalarData from isotope_name=CIsotope in external_parameters [ Info: register_methods! ocean.remin SIsotopeType=PALEOboxes.ScalarData ┌ Info: register_methods! ocean.carbchem ReactionCO2SYS │ modern default concentration Variables ["TF_conc", "TB_conc"] │ adding input concentration Variables ["TCi_conc", "TB_conc", "TS_conc", "TF_conc", "Ca_conc", "TH2S_conc"] │ adding additional output Variable %reaction%pCO2 (atm) 'CO2 partial pressure (fugacity corrected)' │ adding additional output Variable %reaction%xCO2dryinp () 'mixing ratio of CO2 in dry air at 1 atm (always > pCO2 due to H2O vapour pressure)' │ adding additional output Variable %reaction%CO2 (mol m-3) 'CO2 concentration' │ adding additional output Variable %reaction%CO3 (mol m-3) 'carbonate ion CO3-- concentration' │ adding additional output Variable %reaction%OmegaCA () 'calcite saturation' │ adding additional output Variable %reaction%OmegaAR () 'aragonite saturation' └ outputs ["pCO2", "xCO2dryinp", "CO2", "CO3", "OmegaCA", "OmegaAR"] at indices [16, 17, 11, 13, 36, 37] in res (pHfree = 1, H = 2, OH = 3, TA = 4, dTAdpH = 5, TS = 6, HSO4 = 7, TF = 8, HF = 9, TCi = 10, CO2 = 11, HCO3 = 12, CO3 = 13, CAlk = 14, fCO2 = 15, pCO2 = 16, xCO2dryinp = 17, TB = 18, BAlk = 19, TP = 20, H3PO4 = 21, H2PO4 = 22, HPO4 = 23, PO4 = 24, PengCorrection = 25, PAlk = 26, TSi = 27, SiAlk = 28, TH2S = 29, H2S = 30, HSAlk = 31, TNH3 = 32, NH4 = 33, NH3Alk = 34, Ca = 35, OmegaCA = 36, OmegaAR = 37) [ Info: register_methods! ocean.redox_H2S_O2 SIsotopeType=PALEOboxes.ScalarData [ Info: register_methods! oceanfloor.shelfcarb CIsotopeType=PALEOboxes.ScalarData [ Info: register_methods! oceanfloor.deepcarb CIsotopeType=PALEOboxes.ScalarData [ Info: register_methods! oceanfloor.reminoceanfloor SIsotopeType=PALEOboxes.ScalarData [ Info: register_methods! oceanfloor.sedBEcorgP CIsotopeType=PALEOboxes.ScalarData [ Info: register_methods! ReactionReservoirAtm atm.reservoir_O2 field_data=PALEOboxes.ScalarData [ Info: register_methods! ReactionReservoirAtm atm.reservoir_CO2 field_data=PALEOboxes.ScalarData ┌ Info: │ ================================================================================ │ link_variables: first pass └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables: register_reaction_dynamic_methods and configure variables └ ================================================================================ ┌ Info: _configure_variables: ReactionForceInterp global.force_RHOSFW variable_links: └ set variable_links: F -> RHOSFW [ Info: Reaction global.total_O2 Variable global.total_O2 adding data=PALEOboxes.ScalarData ┌ Info: _configure_variables: ReactionSum global.total_O2 variable_links: └ set variable_links: sum -> total_O2 [ Info: Reaction global.total_S Variable global.total_S adding data=PALEOboxes.ScalarData ┌ Info: _configure_variables: ReactionSum global.total_S variable_links: └ set variable_links: sum -> total_S ┌ Info: _configure_variables: ReactionFluxTransfer oceansurface.transfer_fluxAtmtoOceansurface variable_links: └ set variable_links: output_CO2 -> ocean.oceansurface.DIC_sms ┌ Info: _configure_variables: ReactionConst oceansurface.surface_insol variable_attributes: └ set attribute: surface_insol :initial_value = [70.0, 350.0, 350.0] ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_P variable_links: │ set variable_links: R -> P │ set variable_links: R_sms -> P_sms │ set variable_links: R_total -> P_total │ set variable_links: R_conc -> P_conc │ _configure_variables: ReactionReservoir ocean.reservoir_P variable_attributes: └ set attribute: R :initial_value = 0.002208 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_links: │ set variable_links: R -> DIC │ set variable_links: R_sms -> DIC_sms │ set variable_links: R_total -> DIC_total │ set variable_links: R_conc -> DIC_conc │ _configure_variables: ReactionReservoir ocean.reservoir_DIC variable_attributes: │ set attribute: R :norm_value = 1.0 │ set attribute: R :initial_value = 2.2081 └ set attribute: R :initial_delta = -1.0 ┌ Info: _configure_variables: ReactionBioProdMMPop ocean.bioprod variable_links: │ set variable_links: partprod_P -> export_P │ set variable_links: partprod_N -> export_N │ set variable_links: partprod_Corg -> export_Corg │ set variable_links: partprod_Ccarb -> export_Ccarb │ set variable_links: Prod_Ccarb_total -> Prod_Ccarb_total └ set variable_links: Prod_Corg_total -> Prod_Corg_total [ Info: register_dynamic_methods!: ocean.biopumpCorg export_function SumExp ocean fluxlist=["P", "N", "Corg::CIsotope"] [ Info: add oceanfloor fluxlist=["P", "N", "Corg::CIsotope"] ┌ Info: _configure_variables: ReactionReminO2_SO4 ocean.remin variable_links: │ set variable_links: soluteflux_P -> P_sms │ set variable_links: soluteflux_TNH3 -> TNH3_sms │ set variable_links: soluteflux_DIC -> DIC_sms │ set variable_links: soluteflux_TAlk -> TAlk_sms │ set variable_links: soluteflux_O2 -> O2_sms │ set variable_links: soluteflux_SO4 -> SO4_sms └ set variable_links: soluteflux_H2S -> H2S_sms ┌ Info: _configure_variables: ReactionImplicitReservoir ocean.TAlk_total_H_primary_species variable_links: │ set variable_links: R -> TAlk │ set variable_links: R_sms -> TAlk_sms │ set variable_links: R_calc -> TAlk_calc │ set variable_links: R_total -> TAlk_total │ set variable_links: R_conc -> TAlk_conc │ set variable_links: Primary_conc -> H_conc │ set variable_links: Primary_pconc -> pHfree │ _configure_variables: ReactionImplicitReservoir ocean.TAlk_total_H_primary_species variable_attributes: │ set attribute: Primary_pconc :initial_value = 8.0 │ set attribute: R_conc :norm_value = 1.0 └ set attribute: Primary_pconc :norm_value = 1.0 [ Info: register_dynamic_methods!: ocean.biopumpCcarb export_function SumExp ocean fluxlist=["Ccarb::CIsotope"] [ Info: add oceanfloor fluxlist=["Ccarb::CIsotope"] ┌ Info: _configure_variables: ReactionReservoirConst ocean.reservoir_Ca variable_links: │ set variable_links: R_conc -> Ca_conc │ _configure_variables: ReactionReservoirConst ocean.reservoir_Ca variable_attributes: └ set attribute: R_conc :initial_value = 10.56 ┌ Info: _configure_variables: ReactionCO2SYS ocean.carbchem variable_links: │ set variable_links: CO2 -> CO2_conc │ set variable_links: CO3 -> CO3_conc │ set variable_links: OmegaAR -> OmegaAR │ set variable_links: OmegaCA -> OmegaCA │ set variable_links: TCi_conc -> DIC_conc │ set variable_links: TH2S_conc -> H2S_conc │ set variable_links: TS_conc -> SO4_conc └ set variable_links: pCO2 -> pCO2 [ Info: find_transport_vars Domain ocean length(transport_vars)=6 num_components=6 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: R_total -> O2_total │ set variable_links: R_conc -> O2_conc │ _configure_variables: ReactionReservoir ocean.reservoir_O2 variable_attributes: └ set attribute: R :initial_value = 0.2054 [ Info: register_dynamic_methods! ocean.light adding opacity contributions from 0 Variables: ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_H2S variable_links: │ set variable_links: R -> H2S │ set variable_links: R_sms -> H2S_sms │ set variable_links: R_total -> H2S_total │ set variable_links: R_conc -> H2S_conc │ _configure_variables: ReactionReservoir ocean.reservoir_H2S variable_attributes: │ set attribute: R :norm_value = 0.001 │ set attribute: R :initial_value = 1.0e-6 └ set attribute: R :initial_delta = 0.0 ┌ Info: _configure_variables: ReactionReservoir ocean.reservoir_SO4 variable_links: │ set variable_links: R -> SO4 │ set variable_links: R_sms -> SO4_sms │ set variable_links: R_total -> SO4_total │ set variable_links: R_conc -> SO4_conc │ _configure_variables: ReactionReservoir ocean.reservoir_SO4 variable_attributes: │ set attribute: R :norm_value = 1.0 │ set attribute: R :initial_value = 28.756 └ set attribute: R :initial_delta = 0.0 ┌ Info: _configure_variables: ReactionRestore ocean.restoreP variable_links: │ set variable_links: RestoringFlux -> fluxRtoOcean.flux_P └ set variable_links: WatchLevel -> P_total ┌ Info: _configure_variables: ReactionRestore ocean.restoreTAlk variable_links: │ set variable_links: RestoringFlux -> fluxRtoOcean.flux_TAlk └ set variable_links: WatchLevel -> TAlk_total ┌ Info: _configure_variables: ReactionBurialEffCarb oceanfloor.deepcarb variable_links: └ set variable_links: particulateflux_Ccarb -> particulateflux_Ccarb ┌ Info: _configure_variables: ReactionReminO2_SO4 oceanfloor.reminoceanfloor variable_links: │ set variable_links: soluteflux_P -> fluxOceanfloor.soluteflux_P │ set variable_links: soluteflux_TNH3 -> fluxOceanfloor.soluteflux_TNH3 │ set variable_links: soluteflux_DIC -> fluxOceanfloor.soluteflux_DIC │ set variable_links: soluteflux_TAlk -> fluxOceanfloor.soluteflux_TAlk │ set variable_links: soluteflux_O2 -> fluxOceanfloor.soluteflux_O2 │ set variable_links: soluteflux_SO4 -> fluxOceanfloor.soluteflux_SO4 │ set variable_links: soluteflux_H2S -> fluxOceanfloor.soluteflux_H2S └ set variable_links: O2_conc -> ocean.oceanfloor.O2_conc ┌ Info: _configure_variables: ReactionBurialEffCorgP oceanfloor.sedBEcorgP variable_links: │ set variable_links: reminflux_Corg -> remin_Corg │ set variable_links: reminflux_N -> remin_N └ set variable_links: reminflux_P -> remin_P ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_links: │ set variable_links: R -> O2 │ set variable_links: R_sms -> O2_sms │ set variable_links: pRatm -> pO2atm │ set variable_links: pRnorm -> pO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_O2 variable_attributes: │ set attribute: R :norm_value = 3.7e19 └ set attribute: R :initial_value = 3.7e19 ┌ Info: _configure_variables: ReactionRestore atm.restoreCO2 variable_links: │ set variable_links: RestoringApplied -> CO2_restoring │ set variable_links: RestoringFlux -> CO2_sms └ set variable_links: WatchLevel -> CO2 ┌ Info: _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_links: │ set variable_links: R -> CO2 │ set variable_links: R_sms -> CO2_sms │ set variable_links: pRatm -> pCO2atm │ set variable_links: pRnorm -> pCO2PAL │ _configure_variables: ReactionReservoirAtm atm.reservoir_CO2 variable_attributes: │ set attribute: R :norm_value = 4.956e16 └ set attribute: R :initial_value = 4.956e16 ┌ Info: _configure_variables: ReactionRestore atm.restoreO2 variable_links: │ set variable_links: RestoringApplied -> O2_restoring │ set variable_links: RestoringFlux -> O2_sms └ set variable_links: WatchLevel -> O2 ┌ Info: │ ================================================================================ │ link_variables: second pass: └ ================================================================================ ┌ Info: │ ================================================================================ │ link_variables! unlinked variables: │ ================================================================================ │ optional ocean.bioprod rate_bioprod -| global.rate_bioprod │ optional ocean.bioprod PELCALC -| global.PELCALC │ optional ocean.bioprod domprod_P -| domprod_P │ optional ocean.bioprod domprod_N -| domprod_N │ optional ocean.bioprod domprod_Corg -| domprod_Corg │ optional ocean.bioprod domprod_Ccarb -| domprod_Ccarb │ optional ocean.remin soluteflux_TNH3 -| TNH3_sms │ optional ocean.transportromglb TEMP -| global.TEMP │ optional oceanfloor.shelfcarb fluxOceanfloor_soluteflux_Ca -| fluxOceanfloor.soluteflux_Ca │ optional oceanfloor.shelfcarb shelfarea_force -| global.shelfarea_force │ optional oceanfloor.deepcarb fluxOceanfloor_soluteflux_Ca -| fluxOceanfloor.soluteflux_Ca │ optional oceanfloor.reminoceanfloor soluteflux_TNH3 -| fluxOceanfloor.soluteflux_TNH3 │ optional oceanfloor.sfw TEMP -| global.TEMP │ optional oceanfloor.sfw DEGASS -| global.DEGASS │ optional oceanfloor.sfw DIC_delta -| ocean.oceanfloor.DIC_delta └ optional oceanfloor.sfw D_mccb_DIC -| ocean.D_mccb_DIC ┌ Info: │ ================================================================================ │ create_model_from_config: done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! start └ ================================================================================ ┌ Info: │ ================================================================================ │ allocate_variables! (modeldata arrays_idx=1) └ ================================================================================ [ Info: Domain global data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: set :field_data=PALEOboxes.ScalarData for host-dependent Variable global.tforce [ Info: Domain oceansurface data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain ocean data dimensions PALEOboxes.NamedDimension[] allocating 78 variables (hostdep=nothing) [ Info: Domain sedcrust data dimensions PALEOboxes.NamedDimension[] allocating 0 variables (hostdep=nothing) [ Info: Domain oceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 25 variables (hostdep=nothing) [ Info: Domain fluxAtmtoOceansurface data dimensions PALEOboxes.NamedDimension[] allocating 4 variables (hostdep=nothing) [ Info: Domain fluxRtoOcean data dimensions PALEOboxes.NamedDimension[] allocating 3 variables (hostdep=nothing) [ Info: Domain fluxOceanfloor data dimensions PALEOboxes.NamedDimension[] allocating 20 variables (hostdep=nothing) [ Info: Domain fluxOceanBurial data dimensions PALEOboxes.NamedDimension[] allocating 16 variables (hostdep=nothing) [ Info: Domain atm data dimensions PALEOboxes.NamedDimension[] allocating 10 variables (hostdep=nothing) [ Info: set_default_solver_view: ┌ Info: SolverView: │ host-dependent Variables: │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Domain operatorID VF_StateExplicit VF_Total VF_Constraint VF_StateTotal VF_State VF_Undefined │ global 0 0 0 0 0 0 1 │ oceansurface 0 0 0 0 0 0 0 │ ocean 0 5 1 0 1 0 0 │ sedcrust 0 0 0 0 0 0 0 │ oceanfloor 0 0 0 0 0 0 0 │ fluxAtmtoOceansurface 0 0 0 0 0 0 0 │ fluxRtoOcean 0 0 0 0 0 0 0 │ fluxOceanfloor 0 0 0 0 0 0 0 │ fluxOceanBurial 0 0 0 0 0 0 0 │ atm 0 2 0 0 0 0 0 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ Total - 7 1 0 1 0 1 │ ------------------------------------------------------------------------------------------------------------------------------------------------ │ n_state_vars 8 (stateexplicit 7 + statetotal 1 + state 0) │ n_equations 8 (stateexplicit 7 + total 1 + constraint 0) │ including all host-dependent non-state Variables └ host-dependent non-state Variables (:vfunction PB.VF_Undefined): ["global.tforce"] ┌ Info: │ ================================================================================ │ initialize_reactiondata! (modeldata arrays_indices=1:1) └ ================================================================================ [ Info: prepare_do_carbchem: ocean.carbchem simd_width=1 using BufType Float64 ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_fluxAtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> ocean.DIC_sms │ O2 fluxAtmtoOceansurface.flux_O2 -> ocean.O2_sms └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod atm.transfer_AtmtoOceansurface.do_transfer │ active fluxes: │ CO2 fluxAtmtoOceansurface.flux_CO2 -> atm.CO2_sms │ O2 fluxAtmtoOceansurface.flux_O2 -> atm.O2_sms └ using Distribute transfer matrix size (input, output) (3, 1) * -1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceanfloor.transferparticulate_fluxOceanfloor.do_transfer │ active fluxes: │ P fluxOceanfloor.particulateflux_P -> oceanfloor.particulateflux_P │ Ccarb fluxOceanfloor.particulateflux_Ccarb -> oceanfloor.particulateflux_Ccarb │ Corg fluxOceanfloor.particulateflux_Corg -> oceanfloor.particulateflux_Corg │ N fluxOceanfloor.particulateflux_N -> oceanfloor.particulateflux_N └ using Identity transfer matrix * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceansurface.transfer_RtoOcean.do_transfer │ active fluxes: │ SO4 fluxRtoOcean.flux_SO4 -> ocean.SO4_sms │ P fluxRtoOcean.flux_P -> ocean.P_sms │ TAlk fluxRtoOcean.flux_TAlk -> ocean.TAlk_sms └ using Distribute transfer matrix size (input, output) (1, 3) * 1.0 ┌ Info: prepare_do_transfer: ReactionMethod oceanfloor.transfersolute_fluxOceanfloor.do_transfer │ active fluxes: │ H2S fluxOceanfloor.soluteflux_H2S -> ocean.H2S_sms │ SO4 fluxOceanfloor.soluteflux_SO4 -> ocean.SO4_sms │ O2 fluxOceanfloor.soluteflux_O2 -> ocean.O2_sms │ TAlk fluxOceanfloor.soluteflux_TAlk -> ocean.TAlk_sms │ P fluxOceanfloor.soluteflux_P -> ocean.P_sms │ DIC fluxOceanfloor.soluteflux_DIC -> ocean.DIC_sms └ using Identity transfer matrix * 1.0 ┌ Info: │ ================================================================================ │ dispatch_setup :setup └ ================================================================================ [ Info: oceansurface.surface_insol.setup_initialvalue_vars_default: [ Info: init_values! :initial_value oceansurface.surface_insol = [70.0, 350.0, 350.0] [ Info: ocean.reservoir_Ca.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.Ca_conc = 10.56 [ Info: setup_light_column ocean.light: Variables with non-zero :specific_light_extinction : [ Info: oceanfloor.sfw.set_distributionfromdepths ReactionSeafloorWeathering: [ Info: sfw distributed among 26.0 of 79 boxes, area 4.926116277523847e13 m^2 of 4.2953000000000006e14 m^2 ┌ Info: │ ================================================================================ │ dispatch_setup :norm_value └ ================================================================================ [ Info: ocean.TAlk_total_H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.pHfree = 1.0 [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.O2 = 3.7e19 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value atm.CO2 = 4.956e16 [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.P = 1.0 * volume [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.DIC = 1.0 * volume [ Info: ocean.TAlk_total_H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.TAlk = 1.0 * volume [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.O2 = 1.0 * volume [ Info: ocean.reservoir_H2S.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.H2S = 0.001 * volume [ Info: ocean.reservoir_SO4.setup_initialvalue_vars_default: [ Info: init_values! :norm_value ocean.SO4 = 1.0 * volume ┌ Info: │ ================================================================================ │ dispatch_setup :initial_value └ ================================================================================ [ Info: ocean.TAlk_total_H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.pHfree = 8.0 [ Info: atm.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.O2 = 3.7e19 [ Info: atm.reservoir_CO2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value atm.CO2 = 4.956e16 [ Info: ocean.reservoir_P.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.P = 0.002208 * volume [ Info: ocean.reservoir_DIC.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.DIC = 2.2081 * volume [ Info: ocean.TAlk_total_H_primary_species.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.TAlk = 0.0 * volume [ Info: ocean.reservoir_O2.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.O2 = 0.2054 * volume [ Info: ocean.reservoir_H2S.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.H2S = 1.0e-6 * volume [ Info: ocean.reservoir_SO4.setup_initialvalue_vars_default: [ Info: init_values! :initial_value ocean.SO4 = 28.756 * volume ┌ Info: │ ================================================================================ │ PALEOmodel.initialize! done └ ================================================================================ ┌ Info: │ ================================================================================ │ PALEOmodel.ODE.integrateDAE: │ tspan: (0, 100000.0) │ algorithm: IDA{:KLU, Nothing, Nothing}(0, 0, 0, 5, 7, 0.33, 3, 10, 0.0033, 5, 4, 10, 100, true, false, nothing, nothing) │ Jacobian: ForwardDiffSparse │ using 1 BLAS threads └ ================================================================================ [ Info: DAEfunction: using Jacobian ForwardDiffSparse [ Info: jac_config_dae: jac_ad=ForwardDiffSparse [ Info: using ForwardDiff sparse Jacobian with sparsity calculated at t=0 [ Info: calcJacobianSparsitySparsityTracing! [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing) [ Info: calcJacobianSparsitySparsityTracing! do_deriv [ Info: calcJacobianSparsitySparsityTracing! initial_jac size=(476, 476) nnz=5634 non-zero=5363 at time=0 [ Info: fill_sparse_jac: initial_jac nnz 5634 (2.49%) non-zero 5363 [ Info: fill_sparse_jac: after filling diagonal nnz 5634 [ Info: jac_prototype nnz=5634 num colors=322 [ Info: calculating dTdS for 79 Total Variables [ Info: add_arrays_data! (arrays_eltype=SparsityTracing.ADval{Float64}, arrays_tagname=sparsity_tracing_implicit) [ Info: initial_dTdS size=(79, 476) nnz=316 non-zero=316 at time=0 [ Info: fill_sparse_jac: initial_jac nnz 316 (0.84%) non-zero 316 [ Info: implicit_prototype nnz=316 num colors=4 [ Info: combined jac_prototype nnz=5634 num colors=322 [ Info: add_arrays_data! (arrays_eltype=ForwardDiff.Dual{Nothing, Float64, 12}, arrays_tagname=jac_ad) ====================================================================================== Information request received. A stacktrace will print followed by a 1.0 second profile ====================================================================================== cmd: /opt/julia/bin/julia 391 running 1 of 1 signal (10): User defined signal 1 _ZNK4llvm5APInt10intersectsERKS0_ at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm16InstCombinerImpl23SimplifyDemandedUseBitsEPNS_5ValueENS_5APIntERNS_9KnownBitsEjPNS_11InstructionE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm16InstCombinerImpl31SimplifyDemandedInstructionBitsERNS_11InstructionE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm16InstCombinerImpl21commonShiftTransformsERNS_14BinaryOperatorE.part.0 at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm16InstCombinerImpl8visitShlERNS_14BinaryOperatorE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm16InstCombinerImpl3runEv at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZL31combineInstructionsOverFunctionRN4llvm8FunctionERNS_19InstructionWorklistEPNS_9AAResultsERNS_15AssumptionCacheERNS_17TargetLibraryInfoERNS_19TargetTransformInfoERNS_13DominatorTreeERNS_25OptimizationRemarkEmitterEPNS_18BlockFrequencyInfoEPNS_18ProfileSummaryInfoEjPNS_8LoopInfoE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm15InstCombinePass3runERNS_8FunctionERNS_15AnalysisManagerIS1_JEEE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) run at /source/usr/include/llvm/IR/PassManagerInternal.h:89 run at /source/usr/include/llvm/IR/PassManager.h:517 [inlined] run at /source/usr/include/llvm/IR/PassManagerInternal.h:89 _ZN4llvm27ModuleToFunctionPassAdaptor3runERNS_6ModuleERNS_15AnalysisManagerIS1_JEEE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) run at /source/usr/include/llvm/IR/PassManagerInternal.h:89 _ZN4llvm11PassManagerINS_6ModuleENS_15AnalysisManagerIS1_JEEEJEE3runERS1_RS3_ at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) run at /source/src/pipeline.cpp:777 operator() at /source/src/jitlayers.cpp:1298 withModuleDo<(anonymous namespace)::OptimizerT::operator()(llvm::orc::ThreadSafeModule, llvm::orc::MaterializationResponsibility&) [with long unsigned int N = 4]:: > at /source/usr/include/llvm/ExecutionEngine/Orc/ThreadSafeModule.h:136 [inlined] operator() at /source/src/jitlayers.cpp:1259 [inlined] CallImpl<(anonymous namespace)::OptimizerT<4> > at /source/usr/include/llvm/ADT/FunctionExtras.h:221 _ZN4llvm3orc16IRTransformLayer4emitESt10unique_ptrINS0_29MaterializationResponsibilityESt14default_deleteIS3_EENS0_16ThreadSafeModuleE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm3orc16IRTransformLayer4emitESt10unique_ptrINS0_29MaterializationResponsibilityESt14default_deleteIS3_EENS0_16ThreadSafeModuleE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm3orc16IRTransformLayer4emitESt10unique_ptrINS0_29MaterializationResponsibilityESt14default_deleteIS3_EENS0_16ThreadSafeModuleE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm3orc31BasicIRLayerMaterializationUnit11materializeESt10unique_ptrINS0_29MaterializationResponsibilityESt14default_deleteIS3_EE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm3orc19MaterializationTask3runEv at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm6detail18UniqueFunctionBaseIvJSt10unique_ptrINS_3orc4TaskESt14default_deleteIS4_EEEE8CallImplIPFvS7_EEEvPvRS7_ at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm3orc16ExecutionSession22dispatchOutstandingMUsEv at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm3orc16ExecutionSession17OL_completeLookupESt10unique_ptrINS0_21InProgressLookupStateESt14default_deleteIS3_EESt10shared_ptrINS0_23AsynchronousSymbolQueryEESt8functionIFvRKNS_8DenseMapIPNS0_8JITDylibENS_8DenseSetINS0_15SymbolStringPtrENS_12DenseMapInfoISF_vEEEENSG_ISD_vEENS_6detail12DenseMapPairISD_SI_EEEEEE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm3orc25InProgressFullLookupState8completeESt10unique_ptrINS0_21InProgressLookupStateESt14default_deleteIS3_EE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm3orc16ExecutionSession19OL_applyQueryPhase1ESt10unique_ptrINS0_21InProgressLookupStateESt14default_deleteIS3_EENS_5ErrorE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm3orc16ExecutionSession6lookupENS0_10LookupKindERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS8_EENS0_15SymbolLookupSetENS0_11SymbolStateENS_15unique_functionIFvNS_8ExpectedINS_8DenseMapINS0_15SymbolStringPtrENS_18JITEvaluatedSymbolENS_12DenseMapInfoISI_vEENS_6detail12DenseMapPairISI_SJ_EEEEEEEEESt8functionIFvRKNSH_IS6_NS_8DenseSetISI_SL_EENSK_IS6_vEENSN_IS6_SV_EEEEEE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) _ZN4llvm3orc16ExecutionSession6lookupERKSt6vectorISt4pairIPNS0_8JITDylibENS0_19JITDylibLookupFlagsEESaIS7_EENS0_15SymbolLookupSetENS0_10LookupKindENS0_11SymbolStateESt8functionIFvRKNS_8DenseMapIS5_NS_8DenseSetINS0_15SymbolStringPtrENS_12DenseMapInfoISI_vEEEENSJ_IS5_vEENS_6detail12DenseMapPairIS5_SL_EEEEEE at /opt/julia/bin/../lib/julia/libLLVM-16jl.so (unknown line) addModule at /source/src/jitlayers.cpp:1875 jl_add_to_ee at /source/src/jitlayers.cpp:2306 _jl_compile_codeinst at /source/src/jitlayers.cpp:277 jl_generate_fptr_impl at /source/src/jitlayers.cpp:536 jl_compile_method_internal at /source/src/gf.c:2536 [inlined] jl_compile_method_internal at /source/src/gf.c:2423 _jl_invoke at /source/src/gf.c:2940 [inlined] ijl_apply_generic at /source/src/gf.c:3125 collect_to! at ./array.jl:856 unknown function (ip: 0x72baca9092f8) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 collect_to! at ./array.jl:857 collect_to_with_first! at ./array.jl:827 unknown function (ip: 0x72baca908c75) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 collect at ./array.jl:801 _totuple at ./tuple.jl:489 [inlined] Tuple at ./tuple.jl:455 unknown function (ip: 0x72bad131fe32) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 create_accessors at /home/pkgeval/.julia/packages/PALEOboxes/k4QWy/src/VariableReaction.jl:688 #199 at ./none:0 unknown function (ip: 0x72bad031c9d2) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 iterate at ./generator.jl:48 [inlined] collect_to! at ./array.jl:849 collect_to_with_first! at ./array.jl:827 [inlined] collect at ./array.jl:801 #initialize_reactiondata!#196 at /home/pkgeval/.julia/packages/PALEOboxes/k4QWy/src/Model.jl:559 initialize_reactiondata! at /home/pkgeval/.julia/packages/PALEOboxes/k4QWy/src/Model.jl:517 [inlined] #204 at /home/pkgeval/.julia/packages/PALEOboxes/k4QWy/src/Model.jl:641 [inlined] with_logstate at ./logging/logging.jl:522 with_logger at ./logging/logging.jl:632 [inlined] #add_arrays_data!#203 at /home/pkgeval/.julia/packages/PALEOboxes/k4QWy/src/Model.jl:634 add_arrays_data! at /home/pkgeval/.julia/packages/PALEOboxes/k4QWy/src/Model.jl:626 [inlined] #jac_config_dae#4 at /home/pkgeval/.julia/packages/PALEOmodel/uXiph/src/JacobianAD.jl:446 jac_config_dae at /home/pkgeval/.julia/packages/PALEOmodel/uXiph/src/JacobianAD.jl:340 [inlined] #DAEfunction#2 at /home/pkgeval/.julia/packages/PALEOmodel/uXiph/src/ODE.jl:111 DAEfunction at /home/pkgeval/.julia/packages/PALEOmodel/uXiph/src/ODE.jl:100 [inlined] #integrateDAE#5 at /home/pkgeval/.julia/packages/PALEOmodel/uXiph/src/ODE.jl:309 unknown function (ip: 0x72bacbdac418) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 integrateDAE at /home/pkgeval/.julia/packages/PALEOmodel/uXiph/src/ODE.jl:277 #integrateDAEForwardDiff#6 at /home/pkgeval/.julia/packages/PALEOmodel/uXiph/src/ODE.jl:356 [inlined] integrateDAEForwardDiff at /home/pkgeval/.julia/packages/PALEOmodel/uXiph/src/ODE.jl:348 [inlined] integrateDAEForwardDiff at /home/pkgeval/.julia/packages/PALEOmodel/uXiph/src/ODE.jl:348 unknown function (ip: 0x72bacbda8286) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 jl_apply at /source/src/julia.h:2157 [inlined] do_call at /source/src/interpreter.c:126 eval_value at /source/src/interpreter.c:223 eval_stmt_value at /source/src/interpreter.c:174 [inlined] eval_body at /source/src/interpreter.c:670 eval_body at /source/src/interpreter.c:539 eval_body at /source/src/interpreter.c:539 eval_body at /source/src/interpreter.c:539 eval_body at /source/src/interpreter.c:539 jl_interpret_toplevel_thunk at /source/src/interpreter.c:824 jl_toplevel_eval_flex at /source/src/toplevel.c:943 jl_toplevel_eval_flex at /source/src/toplevel.c:886 ijl_toplevel_eval_in at /source/src/toplevel.c:994 eval at ./boot.jl:430 [inlined] include_string at ./loading.jl:2734 _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 _include at ./loading.jl:2794 include at ./sysimg.jl:38 unknown function (ip: 0x72baf7fa0682) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 jl_apply at /source/src/julia.h:2157 [inlined] do_call at /source/src/interpreter.c:126 eval_value at /source/src/interpreter.c:223 eval_stmt_value at /source/src/interpreter.c:174 [inlined] eval_body at /source/src/interpreter.c:670 eval_body at /source/src/interpreter.c:539 eval_body at /source/src/interpreter.c:539 eval_body at /source/src/interpreter.c:539 eval_body at /source/src/interpreter.c:539 jl_interpret_toplevel_thunk at /source/src/interpreter.c:824 jl_toplevel_eval_flex at /source/src/toplevel.c:943 jl_toplevel_eval_flex at /source/src/toplevel.c:886 ijl_toplevel_eval_in at /source/src/toplevel.c:994 eval at ./boot.jl:430 [inlined] include_string at ./loading.jl:2734 _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 _include at ./loading.jl:2794 include at ./sysimg.jl:38 unknown function (ip: 0x72baf7f00082) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 jl_apply at /source/src/julia.h:2157 [inlined] do_call at /source/src/interpreter.c:126 eval_value at /source/src/interpreter.c:223 eval_stmt_value at /source/src/interpreter.c:174 [inlined] eval_body at /source/src/interpreter.c:670 jl_interpret_toplevel_thunk at /source/src/interpreter.c:824 jl_toplevel_eval_flex at /source/src/toplevel.c:943 jl_toplevel_eval_flex at /source/src/toplevel.c:886 ijl_toplevel_eval_in at /source/src/toplevel.c:994 eval at ./boot.jl:430 [inlined] exec_options at ./client.jl:296 _start at ./client.jl:531 jfptr__start_73523.1 at /opt/julia/lib/julia/sys.so (unknown line) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 jl_apply at /source/src/julia.h:2157 [inlined] true_main at /source/src/jlapi.c:900 jl_repl_entrypoint at /source/src/jlapi.c:1059 main at /source/cli/loader_exe.c:58 unknown function (ip: 0x72baf92be249) __libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line) unknown function (ip: 0x4010b8) unknown function (ip: (nil)) ============================================================== Profile collected. A report will print at the next yield point ============================================================== [ Info: calling get_inconsistent_initial_deriv ====================================================================================== Information request received. A stacktrace will print followed by a 1.0 second profile ====================================================================================== cmd: /opt/julia/bin/julia 1 running 0 of 1 signal (10): User defined signal 1 epoll_pwait at /lib/x86_64-linux-gnu/libc.so.6 (unknown line) uv__io_poll at /workspace/srcdir/libuv/src/unix/linux.c:1404 uv_run at /workspace/srcdir/libuv/src/unix/core.c:430 ijl_task_get_next at /source/src/scheduler.c:522 poptask at ./task.jl:1012 wait at ./task.jl:1021 #wait#731 at ./condition.jl:130 wait at ./condition.jl:125 [inlined] wait at ./process.jl:694 wait at ./process.jl:687 unknown function (ip: 0x71e66d4b3042) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 subprocess_handler at /source/usr/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:2142 #131 at /source/usr/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:2082 withenv at ./env.jl:265 #118 at /source/usr/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:1931 with_temp_env at /source/usr/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:1789 #116 at /source/usr/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:1898 #mktempdir#28 at ./file.jl:819 unknown function (ip: 0x71e66d4ab7dd) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 mktempdir at ./file.jl:815 mktempdir at ./file.jl:815 [inlined] #sandbox#115 at /source/usr/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:1845 [inlined] sandbox at /source/usr/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:1837 unknown function (ip: 0x71e66d49fd9a) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 #test#128 at /source/usr/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:2063 test at /source/usr/share/julia/stdlib/v1.11/Pkg/src/Operations.jl:2007 [inlined] #test#146 at /source/usr/share/julia/stdlib/v1.11/Pkg/src/API.jl:481 test at /source/usr/share/julia/stdlib/v1.11/Pkg/src/API.jl:460 unknown function (ip: 0x71e66d49fa9d) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 #test#77 at /source/usr/share/julia/stdlib/v1.11/Pkg/src/API.jl:159 unknown function (ip: 0x71e66d49f48d) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 test at /source/usr/share/julia/stdlib/v1.11/Pkg/src/API.jl:148 #test#75 at /source/usr/share/julia/stdlib/v1.11/Pkg/src/API.jl:147 [inlined] test at /source/usr/share/julia/stdlib/v1.11/Pkg/src/API.jl:147 [inlined] #test#74 at /source/usr/share/julia/stdlib/v1.11/Pkg/src/API.jl:146 [inlined] test at /source/usr/share/julia/stdlib/v1.11/Pkg/src/API.jl:146 unknown function (ip: 0x71e66d49b936) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 jl_apply at /source/src/julia.h:2157 [inlined] do_call at /source/src/interpreter.c:126 eval_value at /source/src/interpreter.c:223 eval_stmt_value at /source/src/interpreter.c:174 [inlined] eval_body at /source/src/interpreter.c:670 eval_body at /source/src/interpreter.c:539 eval_body at /source/src/interpreter.c:539 jl_interpret_toplevel_thunk at /source/src/interpreter.c:824 jl_toplevel_eval_flex at /source/src/toplevel.c:943 jl_toplevel_eval_flex at /source/src/toplevel.c:886 ijl_toplevel_eval_in at /source/src/toplevel.c:994 eval at ./boot.jl:430 [inlined] include_string at ./loading.jl:2734 _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 _include at ./loading.jl:2794 include at ./Base.jl:557 jfptr_include_46977.1 at /opt/julia/lib/julia/sys.so (unknown line) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 exec_options at ./client.jl:323 _start at ./client.jl:531 jfptr__start_73523.1 at /opt/julia/lib/julia/sys.so (unknown line) _jl_invoke at /source/src/gf.c:2948 [inlined] ijl_apply_generic at /source/src/gf.c:3125 jl_apply at /source/src/julia.h:2157 [inlined] true_main at /source/src/jlapi.c:900 jl_repl_entrypoint at /source/src/jlapi.c:1059 main at /source/cli/loader_exe.c:58 unknown function (ip: 0x71e66e4fe249) __libc_start_main at /lib/x86_64-linux-gnu/libc.so.6 (unknown line) unknown function (ip: 0x4010b8) unknown function (ip: (nil)) ============================================================== Profile collected. A report will print at the next yield point ============================================================== ┌ Warning: There were no samples collected in one or more groups. │ This may be due to idle threads, or you may need to run your │ program longer (perhaps by running it multiple times), │ or adjust the delay between samples with `Profile.init()`. └ @ Profile /opt/julia/share/julia/stdlib/v1.11/Profile/src/Profile.jl:1240 Overhead ╎ [+additional indent] Count File:Line; Function ========================================================= Thread 1 Task 0x000071e660e00010 Total snapshots: 1. Utilization: 0% ╎1 @Base/client.jl:531; _start() ╎ 1 @Base/client.jl:323; exec_options(opts::Base.JLOptions) ╎ 1 @Base/Base.jl:557; include(mod::Module, _path::String) ╎ 1 @Base/loading.jl:2794; _include(mapexpr::Function, mod::Module, _path::S… ╎ 1 @Base/loading.jl:2734; include_string(mapexpr::typeof(identity), mod::M… ╎ 1 @Base/boot.jl:430; eval ╎ ╎ 1 @Pkg/src/API.jl:146; kwcall(::@NamedTuple{julia_args::Cmd}, ::typeof(… ╎ ╎ 1 @Pkg/src/API.jl:146; #test#74 ╎ ╎ 1 @Pkg/src/API.jl:147; test ╎ ╎ 1 @Pkg/src/API.jl:147; #test#75 ╎ ╎ 1 @Pkg/src/API.jl:148; kwcall(::@NamedTuple{julia_args::Cmd}, ::typ… ╎ ╎ ╎ 1 @Pkg/src/API.jl:159; test(pkgs::Vector{Pkg.Types.PackageSpec}; i… ╎ ╎ ╎ 1 @Pkg/src/API.jl:460; kwcall(::@NamedTuple{julia_args::Cmd, io::… ╎ ╎ ╎ 1 @Pkg/src/API.jl:481; test(ctx::Pkg.Types.Context, pkgs::Vector… ╎ ╎ ╎ 1 …/src/Operations.jl:2007; test ╎ ╎ ╎ 1 …src/Operations.jl:2063; test(ctx::Pkg.Types.Context, pkgs::… ╎ ╎ ╎ ╎ 1 …src/Operations.jl:1837; kwcall(::@NamedTuple{preferences::… ╎ ╎ ╎ ╎ 1 …src/Operations.jl:1845; #sandbox#115 ╎ ╎ ╎ ╎ 1 @Base/file.jl:815; mktempdir ╎ ╎ ╎ ╎ 1 @Base/file.jl:815; mktempdir(fn::Function, parent::Strin… ╎ ╎ ╎ ╎ 1 @Base/file.jl:819; mktempdir(fn::Pkg.Operations.var"#11… ╎ ╎ ╎ ╎ ╎ 1 …c/Operations.jl:1898; (::Pkg.Operations.var"#116#121"… ╎ ╎ ╎ ╎ ╎ 1 …c/Operations.jl:1789; with_temp_env(fn::Pkg.Operatio… ╎ ╎ ╎ ╎ ╎ 1 …/Operations.jl:1931; (::Pkg.Operations.var"#118#123… ╎ ╎ ╎ ╎ ╎ 1 @Base/env.jl:265; withenv(::Pkg.Operations.var"#131… ╎ ╎ ╎ ╎ ╎ 1 …Operations.jl:2082; (::Pkg.Operations.var"#131#13… ╎ ╎ ╎ ╎ ╎ ╎ 1 …Operations.jl:2142; subprocess_handler(cmd::Cmd,… ╎ ╎ ╎ ╎ ╎ ╎ 1 …se/process.jl:687; wait(x::Base.Process) ╎ ╎ ╎ ╎ ╎ ╎ 1 …se/process.jl:694; wait(x::Base.Process, syncd… ╎ ╎ ╎ ╎ ╎ ╎ 1 …condition.jl:125; wait ╎ ╎ ╎ ╎ ╎ ╎ 1 …condition.jl:130; wait(c::Base.GenericCondit… ╎ ╎ ╎ ╎ ╎ ╎ ╎ 1 …ase/task.jl:1021; wait() ╎ ╎ ╎ ╎ ╎ ╎ ╎ 1 …ase/task.jl:1012; poptask(W::Base.Intrusiv… PkgEval terminated after 2724.98s: test duration exceeded the time limit