Skip to content

Commit 4dc26ef

Browse files
authored
use Float32 as default (#70)
* add support for Metal.jl * use Float32 as default * revert changes for Metal.jl * bug fix
1 parent 1d4e767 commit 4dc26ef

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+463
-442
lines changed

Manifest.toml

+29-29
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# This file is machine-generated - editing it directly is not advised
22

3-
julia_version = "1.10.2"
3+
julia_version = "1.10.3"
44
manifest_format = "2.0"
5-
project_hash = "355ce7a1dcdff945cffe1b1dd3a7f5c1a045276b"
5+
project_hash = "1078913c9829ff096c73958654eaca165e82cef9"
66

77
[[deps.AbstractFFTs]]
88
deps = ["LinearAlgebra"]
@@ -43,9 +43,9 @@ version = "0.1.0"
4343

4444
[[deps.BFloat16s]]
4545
deps = ["LinearAlgebra", "Printf", "Random", "Test"]
46-
git-tree-sha1 = "dbf84058d0a8cbbadee18d25cf606934b22d7c66"
46+
git-tree-sha1 = "2c7cc21e8678eff479978a0a2ef5ce2f51b63dff"
4747
uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b"
48-
version = "0.4.2"
48+
version = "0.5.0"
4949

5050
[[deps.Base64]]
5151
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
@@ -57,9 +57,9 @@ version = "0.5.0"
5757

5858
[[deps.CUDA]]
5959
deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "StaticArrays", "Statistics"]
60-
git-tree-sha1 = "baa8ea7a1ea63316fa3feb454635215773c9c845"
60+
git-tree-sha1 = "4e33522a036b39fc6f5cb7447ae3b28eb8fbe99b"
6161
uuid = "052768ef-5323-5732-b1bb-66c8b64840ba"
62-
version = "5.2.0"
62+
version = "5.3.3"
6363

6464
[deps.CUDA.extensions]
6565
ChainRulesCoreExt = "ChainRulesCore"
@@ -71,27 +71,27 @@ version = "5.2.0"
7171

7272
[[deps.CUDA_Driver_jll]]
7373
deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"]
74-
git-tree-sha1 = "d01bfc999768f0a31ed36f5d22a76161fc63079c"
74+
git-tree-sha1 = "dc172b558adbf17952001e15cf0d6364e6d78c2f"
7575
uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc"
76-
version = "0.7.0+1"
76+
version = "0.8.1+0"
7777

7878
[[deps.CUDA_Runtime_Discovery]]
7979
deps = ["Libdl"]
80-
git-tree-sha1 = "2cb12f6b2209f40a4b8967697689a47c50485490"
80+
git-tree-sha1 = "38f830504358e9972d2a0c3e5d51cb865e0733df"
8181
uuid = "1af6417a-86b4-443c-805f-a4643ffb695f"
82-
version = "0.2.3"
82+
version = "0.2.4"
8383

8484
[[deps.CUDA_Runtime_jll]]
8585
deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"]
86-
git-tree-sha1 = "8e25c009d2bf16c2c31a70a6e9e8939f7325cc84"
86+
git-tree-sha1 = "4ca7d6d92075906c2ce871ea8bba971fff20d00c"
8787
uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2"
88-
version = "0.11.1+0"
88+
version = "0.12.1+0"
8989

9090
[[deps.ColorTypes]]
9191
deps = ["FixedPointNumbers", "Random"]
92-
git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4"
92+
git-tree-sha1 = "b10d0b65641d57b8b4d5e234446582de5047050d"
9393
uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f"
94-
version = "0.11.4"
94+
version = "0.11.5"
9595

9696
[[deps.Colors]]
9797
deps = ["ColorTypes", "FixedPointNumbers", "Reexport"]
@@ -101,9 +101,9 @@ version = "0.12.10"
101101

102102
[[deps.Compat]]
103103
deps = ["TOML", "UUIDs"]
104-
git-tree-sha1 = "c955881e3c981181362ae4088b35995446298b80"
104+
git-tree-sha1 = "b1c55339b7c6c350ee89f2c1604299660525b248"
105105
uuid = "34da2185-b29b-5c13-b0c7-acf172513d20"
106-
version = "4.14.0"
106+
version = "4.15.0"
107107
weakdeps = ["Dates", "LinearAlgebra"]
108108

109109
[deps.Compat.extensions]
@@ -112,7 +112,7 @@ weakdeps = ["Dates", "LinearAlgebra"]
112112
[[deps.CompilerSupportLibraries_jll]]
113113
deps = ["Artifacts", "Libdl"]
114114
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae"
115-
version = "1.1.0+0"
115+
version = "1.1.1+0"
116116

117117
[[deps.ConstructionBase]]
118118
deps = ["LinearAlgebra"]
@@ -146,9 +146,9 @@ version = "1.6.1"
146146

147147
[[deps.DataStructures]]
148148
deps = ["Compat", "InteractiveUtils", "OrderedCollections"]
149-
git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317"
149+
git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82"
150150
uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8"
151-
version = "0.18.18"
151+
version = "0.18.20"
152152

153153
[[deps.DataValueInterfaces]]
154154
git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6"
@@ -190,9 +190,9 @@ uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820"
190190

191191
[[deps.GPUArrays]]
192192
deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"]
193-
git-tree-sha1 = "47e4686ec18a9620850bad110b79966132f14283"
193+
git-tree-sha1 = "68e8ff56a4a355a85d2784b94614491f8c900cde"
194194
uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7"
195-
version = "10.0.2"
195+
version = "10.1.0"
196196

197197
[[deps.GPUArraysCore]]
198198
deps = ["Adapt"]
@@ -202,9 +202,9 @@ version = "0.1.6"
202202

203203
[[deps.GPUCompiler]]
204204
deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"]
205-
git-tree-sha1 = "a846f297ce9d09ccba02ead0cae70690e072a119"
205+
git-tree-sha1 = "1600477fba37c9fc067b9be21f5e8101f24a8865"
206206
uuid = "61eb1bfa-7361-4325-ad38-22787b887f55"
207-
version = "0.25.0"
207+
version = "0.26.4"
208208

209209
[[deps.InlineStrings]]
210210
deps = ["Parsers"]
@@ -258,9 +258,9 @@ version = "0.9.18"
258258

259259
[[deps.LLVM]]
260260
deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"]
261-
git-tree-sha1 = "ab01dde107f21aa76144d0771dccc08f152ccac7"
261+
git-tree-sha1 = "839c82932db86740ae729779e610f07a1640be9a"
262262
uuid = "929cbde3-209d-540e-8aea-75f648917ca0"
263-
version = "6.6.2"
263+
version = "6.6.3"
264264
weakdeps = ["BFloat16s"]
265265

266266
[deps.LLVM.extensions]
@@ -337,9 +337,9 @@ version = "2.28.2+1"
337337

338338
[[deps.Missings]]
339339
deps = ["DataAPI"]
340-
git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272"
340+
git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d"
341341
uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28"
342-
version = "1.1.0"
342+
version = "1.2.0"
343343

344344
[[deps.Mmap]]
345345
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
@@ -558,9 +558,9 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f"
558558
version = "0.5.23"
559559

560560
[[deps.TranscodingStreams]]
561-
git-tree-sha1 = "71509f04d045ec714c4748c785a59045c3736349"
561+
git-tree-sha1 = "5d54d076465da49d6746c647022f3b3674e64156"
562562
uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa"
563-
version = "0.10.7"
563+
version = "0.10.8"
564564
weakdeps = ["Random", "Test"]
565565

566566
[deps.TranscodingStreams.extensions]

Project.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ version = "0.7.0"
66
[deps]
77
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e"
88
CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba"
9+
GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7"
910
JLD2 = "033835bb-8acc-5ee8-8aae-3f567f8a3819"
1011
KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c"
1112
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
@@ -30,6 +31,5 @@ Coverage = "a2441757-f6aa-5fb2-8edb-039e3f45d037"
3031
MeshArrays = "cb8c808f-1acf-59a3-9d2b-6e38d009f683"
3132
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
3233

33-
3434
[targets]
3535
test = ["BenchmarkTools", "Coverage", "MeshArrays", "Test"]

src/Architectures.jl

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export array_type, rng_type
55
export device
66

77
using CUDA
8+
using GPUArrays
89
using KernelAbstractions
910
using CUDA.CUDAKernels
1011
using Random
@@ -23,10 +24,11 @@ struct CPU <: Architecture end
2324

2425
"""
2526
GPU <: Architecture
26-
Run PlanktonIndividuals on one GPU node.
27+
Run PlanktonIndividuals on one CUDA GPU node.
2728
"""
2829
struct GPU <: Architecture end
2930

31+
3032
device(::CPU) = KernelAbstractions.CPU()
3133
device(::GPU) = CUDABackend()
3234

@@ -36,4 +38,4 @@ array_type(::GPU) = CuArray
3638
rng_type(::CPU) = MersenneTwister()
3739
rng_type(::GPU) = CURAND.default_rng()
3840

39-
end
41+
end
+21-21
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
##### halo points ≥ 2 NEEDED!!
2-
const θmax = 1.0e20
2+
const θmax = 1.0f20
33

44
##### calculate CFL number: c=uΔt/Lx
55
@inline CFLx(i, j, k, g::AbstractGrid, u, ΔT) = @inbounds abs(u[i, j, k] * ΔT / ΔxC(i, j, k, g))
66
@inline CFLy(i, j, k, g::AbstractGrid, v, ΔT) = @inbounds abs(v[i, j, k] * ΔT / ΔyC(i, j, k, g))
77
@inline CFLz(i, j, k, g::AbstractGrid, w, ΔT) = @inbounds abs(w[i, j, k] * ΔT / ΔzC(i, j, k, g))
88

99
##### calculate d₀ and d₁
10-
@inline d0(CFL) = @inbounds (2.0 - CFL) * (1.0 - CFL) / 6.0
11-
@inline d1(CFL) = @inbounds (1.0 - CFL * CFL) / 6.0
10+
@inline d0(CFL) = @inbounds (2.0f0 - CFL) * (1.0f0 - CFL) / 6.0f0
11+
@inline d1(CFL) = @inbounds (1.0f0 - CFL * CFL) / 6.0f0
1212

1313
##### calculate volume transport, unit: m³/s
1414
@inline Trans_x(i, j, k, g::AbstractGrid, u) = @inbounds Ax(i, j, k, g) * u[i, j, k]
@@ -36,38 +36,38 @@ const θmax = 1.0e20
3636

3737
##### calculate Ψ⁺ and Ψ⁻
3838
@inline Ψx⁺(i, j, k, g::AbstractGrid, u, c, ΔT) =
39-
max(0.0, min(min(1.0, d0(CFLx(i, j, k, g, u, ΔT)) + d1(CFLx(i, j, k, g, u, ΔT)) * θx⁺(i, j, k, c, g)),
40-
θx⁺(i, j, k, c, g) * (1.0 - CFLx(i, j, k, g, u, ΔT)) / (CFLx(i, j, k, g, u, ΔT) + 1.0e-20)))
39+
max(0.0f0, min(min(1.0f0, d0(CFLx(i, j, k, g, u, ΔT)) + d1(CFLx(i, j, k, g, u, ΔT)) * θx⁺(i, j, k, c, g)),
40+
θx⁺(i, j, k, c, g) * (1.0f0 - CFLx(i, j, k, g, u, ΔT)) / (CFLx(i, j, k, g, u, ΔT) + 1.0f-20)))
4141

4242
@inline Ψx⁻(i, j, k, g::AbstractGrid, u, c, ΔT) =
43-
max(0.0, min(min(1.0, d0(CFLx(i, j, k, g, u, ΔT)) + d1(CFLx(i, j, k, g, u, ΔT)) * θx⁻(i, j, k, c, g)),
44-
θx⁻(i, j, k, c, g) * (1.0 - CFLx(i, j, k, g, u, ΔT)) / (CFLx(i, j, k, g, u, ΔT) + 1.0e-20)))
43+
max(0.0f0, min(min(1.0f0, d0(CFLx(i, j, k, g, u, ΔT)) + d1(CFLx(i, j, k, g, u, ΔT)) * θx⁻(i, j, k, c, g)),
44+
θx⁻(i, j, k, c, g) * (1.0f0 - CFLx(i, j, k, g, u, ΔT)) / (CFLx(i, j, k, g, u, ΔT) + 1.0f-20)))
4545

4646
@inline Ψy⁺(i, j, k, g::AbstractGrid, v, c, ΔT) =
47-
max(0.0, min(min(1.0, d0(CFLy(i, j, k, g, v, ΔT)) + d1(CFLy(i, j, k, g, v, ΔT)) * θy⁺(i, j, k, c, g)),
48-
θy⁺(i, j, k, c, g) * (1.0 - CFLy(i, j, k, g, v, ΔT)) / (CFLy(i, j, k, g, v, ΔT) + 1.0e-20)))
47+
max(0.0f0, min(min(1.0f0, d0(CFLy(i, j, k, g, v, ΔT)) + d1(CFLy(i, j, k, g, v, ΔT)) * θy⁺(i, j, k, c, g)),
48+
θy⁺(i, j, k, c, g) * (1.0f0 - CFLy(i, j, k, g, v, ΔT)) / (CFLy(i, j, k, g, v, ΔT) + 1.0f-20)))
4949

5050
@inline Ψy⁻(i, j, k, g::AbstractGrid, v, c, ΔT) =
51-
max(0.0, min(min(1.0, d0(CFLy(i, j, k, g, v, ΔT)) + d1(CFLy(i, j, k, g, v, ΔT)) * θy⁻(i, j, k, c, g)),
52-
θy⁻(i, j, k, c, g) * (1.0 - CFLy(i, j, k, g, v, ΔT)) / (CFLy(i, j, k, g, v, ΔT) + 1.0e-20)))
51+
max(0.0f0, min(min(1.0f0, d0(CFLy(i, j, k, g, v, ΔT)) + d1(CFLy(i, j, k, g, v, ΔT)) * θy⁻(i, j, k, c, g)),
52+
θy⁻(i, j, k, c, g) * (1.0f0 - CFLy(i, j, k, g, v, ΔT)) / (CFLy(i, j, k, g, v, ΔT) + 1.0f-20)))
5353

5454
@inline Ψz⁺(i, j, k, g::AbstractGrid, w, c, ΔT) =
55-
max(0.0, min(min(1.0, d0(CFLz(i, j, k, g, w, ΔT)) + d1(CFLz(i, j, k, g, w, ΔT)) * θz⁺(i, j, k, c, g)),
56-
θz⁺(i, j, k, c, g) * (1.0 - CFLz(i, j, k, g, w, ΔT)) / (CFLz(i, j, k, g, w, ΔT) + 1.0e-20)))
55+
max(0.0f0, min(min(1.0f0, d0(CFLz(i, j, k, g, w, ΔT)) + d1(CFLz(i, j, k, g, w, ΔT)) * θz⁺(i, j, k, c, g)),
56+
θz⁺(i, j, k, c, g) * (1.0f0 - CFLz(i, j, k, g, w, ΔT)) / (CFLz(i, j, k, g, w, ΔT) + 1.0f-20)))
5757

5858
@inline Ψz⁻(i, j, k, g::AbstractGrid, w, c, ΔT) =
59-
max(0.0, min(min(1.0, d0(CFLz(i, j, k, g, w, ΔT)) + d1(CFLz(i, j, k, g, w, ΔT)) * θz⁻(i, j, k, c, g)),
60-
θz⁻(i, j, k, c, g) * (1.0 - CFLz(i, j, k, g, w, ΔT)) / (CFLz(i, j, k, g, w, ΔT) + 1.0e-20)))
59+
max(0.0f0, min(min(1.0f0, d0(CFLz(i, j, k, g, w, ΔT)) + d1(CFLz(i, j, k, g, w, ΔT)) * θz⁻(i, j, k, c, g)),
60+
θz⁻(i, j, k, c, g) * (1.0f0 - CFLz(i, j, k, g, w, ΔT)) / (CFLz(i, j, k, g, w, ΔT) + 1.0f-20)))
6161

6262
##### advection flux
6363
@inline adv_flux_x(i, j, k, g::AbstractGrid, u, c, ΔT) =
64-
0.5 * (Trans_x(i, j, k, g, u) + abs(Trans_x(i, j, k, g, u))) * (c[i-1, j, k] + Ψx⁺(i, j, k, g, u, c, ΔT) * δx⁰(i, j, k, c, g)) +
65-
0.5 * (Trans_x(i, j, k, g, u) - abs(Trans_x(i, j, k, g, u))) * (c[i, j, k] - Ψx⁻(i, j, k, g, u, c, ΔT) * δx⁰(i, j, k, c, g))
64+
0.5f0 * (Trans_x(i, j, k, g, u) + abs(Trans_x(i, j, k, g, u))) * (c[i-1, j, k] + Ψx⁺(i, j, k, g, u, c, ΔT) * δx⁰(i, j, k, c, g)) +
65+
0.5f0 * (Trans_x(i, j, k, g, u) - abs(Trans_x(i, j, k, g, u))) * (c[i, j, k] - Ψx⁻(i, j, k, g, u, c, ΔT) * δx⁰(i, j, k, c, g))
6666

6767
@inline adv_flux_y(i, j, k, g::AbstractGrid, v, c, ΔT) =
68-
0.5 * (Trans_y(i, j, k, g, v) + abs(Trans_y(i, j, k, g, v))) * (c[i, j-1, k] + Ψy⁺(i, j, k, g, v, c, ΔT) * δy⁰(i, j, k, c, g)) +
69-
0.5 * (Trans_y(i, j, k, g, v) - abs(Trans_y(i, j, k, g, v))) * (c[i, j, k] - Ψy⁻(i, j, k, g, v, c, ΔT) * δy⁰(i, j, k, c, g))
68+
0.5f0 * (Trans_y(i, j, k, g, v) + abs(Trans_y(i, j, k, g, v))) * (c[i, j-1, k] + Ψy⁺(i, j, k, g, v, c, ΔT) * δy⁰(i, j, k, c, g)) +
69+
0.5f0 * (Trans_y(i, j, k, g, v) - abs(Trans_y(i, j, k, g, v))) * (c[i, j, k] - Ψy⁻(i, j, k, g, v, c, ΔT) * δy⁰(i, j, k, c, g))
7070

7171
@inline adv_flux_z(i, j, k, g::AbstractGrid, w, c, ΔT) =
72-
0.5 * (Trans_z(i, j, k, g, w) + abs(Trans_z(i, j, k, g, w))) * (c[i, j, k ] + Ψz⁻(i, j, k, g, w, c, ΔT) * δz⁰(i, j, k, c, g)) +
73-
0.5 * (Trans_z(i, j, k, g, w) - abs(Trans_z(i, j, k, g, w))) * (c[i, j, k-1] - Ψz⁺(i, j, k, g, w, c, ΔT) * δz⁰(i, j, k, c, g))
72+
0.5f0 * (Trans_z(i, j, k, g, w) + abs(Trans_z(i, j, k, g, w))) * (c[i, j, k ] + Ψz⁻(i, j, k, g, w, c, ΔT) * δz⁰(i, j, k, c, g)) +
73+
0.5f0 * (Trans_z(i, j, k, g, w) - abs(Trans_z(i, j, k, g, w))) * (c[i, j, k-1] - Ψz⁺(i, j, k, g, w, c, ΔT) * δz⁰(i, j, k, c, g))

src/Biogeochemistry/Advection/tracer_diffusion.jl

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
##### Laplacian diffusion operator
77
@inline function κ∇²(i, j, k, grid, κˣ, κʸ, κᶻ, c)
8-
return 1/volume(i, j, k, grid) * (δx⁺(i, j, k, grid, diffusive_flux_x, κˣ, c) +
9-
δy⁺(i, j, k, grid, diffusive_flux_y, κʸ, c) +
10-
δz⁺(i, j, k, grid, diffusive_flux_z, κᶻ, c))
8+
return 1.0f0/volume(i, j, k, grid) * (δx⁺(i, j, k, grid, diffusive_flux_x, κˣ, c) +
9+
δy⁺(i, j, k, grid, diffusive_flux_y, κʸ, c) +
10+
δz⁺(i, j, k, grid, diffusive_flux_z, κᶻ, c))
1111
end
1212

1313
##### calculate the tendency by diffusion for tracer c

src/Biogeochemistry/nutrient_fields.jl

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ function generate_nutrients(arch::Architecture, g::AbstractGrid,
5353
end
5454

5555
if size(tmp) == (g.Nx, g.Ny, g.Nz)
56-
@views @. nut[name].data[g.Hx+1:g.Hx+g.Nx, g.Hy+1:g.Hy+g.Ny, g.Hz+1:g.Hz+g.Nz] = tmp[:,:,:]
56+
@views @. nut[name].data[g.Hx+1:g.Hx+g.Nx, g.Hy+1:g.Hy+g.Ny, g.Hz+1:g.Hz+g.Nz] = FT.(tmp[:,:,:])
5757
else
5858
throw(ArgumentError("NUT_INIT: grid mismatch"))
5959
end
@@ -63,7 +63,7 @@ function generate_nutrients(arch::Architecture, g::AbstractGrid,
6363
end
6464
lower = FT(1.0 - source.rand_noise[name])
6565
upper = FT(1.0 + source.rand_noise[name])
66-
nut[name].data .= fill(FT(source.initial_condition[name]),total_size) .* rand(lower:1e-4:upper, total_size) |> array_type(arch)
66+
nut[name].data .= fill(FT(source.initial_condition[name]),total_size) .* rand(lower:1.0f-4:upper, total_size) |> array_type(arch)
6767
end
6868
end
6969

src/Biogeochemistry/nutrient_forcings.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
##### calculate simple remineralization of DOM and POM as well as a simple nitrification
22
function nut_forcing!(F, nut_temp, nut, params, ΔT)
33
for name in nut_names
4-
@inbounds nut_temp[name].data .= max.(0.0, nut[name].data)
4+
@inbounds nut_temp[name].data .= max.(0.0f0, nut[name].data)
55
end
66

77
@inbounds F.DIC.data .= F.DIC.data .+ nut_temp.DOC.data .* params["kDOC"] .* ΔT

src/Biogeochemistry/nutrient_update.jl

+1-14
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,4 @@ function nut_update!(nutrients, Gcs, nut_temp, arch::Architecture, g::AbstractGr
3737
apply_tendency!(nutrients, Gcs, consume, ΔT, g, arch)
3838

3939
fill_halo_nut!(nutrients, g)
40-
end
41-
42-
# function nut_update!(nutrients, Gcs, nut_temp, arch::Architecture, g::AbstractGrid, params, consume, ΔT, iter)
43-
# # compute biogeochemical forcings of nutrients,for each time step
44-
# nut_forcing!(Gcs, nut_temp, nutrients, params, ΔT)
45-
46-
# ##### apply boundary conditions
47-
# apply_bcs!(Gcs, nutrients, g, iter, ΔT, arch)
48-
49-
# # apply forcing tendency
50-
# apply_tendency!(nutrients, Gcs, consume, ΔT, g, arch)
51-
52-
# fill_halo_nut!(nutrients, g)
53-
# end
40+
end

src/Diagnostics/Diagnostics.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export tracer_avail_diags, plank_avail_diags
77
using CUDA
88
using KernelAbstractions
99

10-
using PlanktonIndividuals.Architectures: device, Architecture, GPU, CPU, array_type
10+
using PlanktonIndividuals.Architectures: device, Architecture, array_type
1111
using PlanktonIndividuals.Grids
1212
using PlanktonIndividuals.Fields
1313

src/Fields/Fields.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ end
3939

4040
function zero_fields!(a)
4141
for i in 1:length(a)
42-
@inbounds a[i].data .= 0.0
42+
@inbounds a[i].data .= 0.0f0
4343
end
4444
end
4545

src/Fields/boundary_conditions.jl

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ function set_bc!(model; tracer::Symbol, pos::Symbol, bc_value::Union{Number, Abs
3232
@assert tracer in nut_names
3333

3434
FT = model.FT
35-
bc_value_d = bc_value
36-
if isa(bc_value, AbstractArray)
37-
bc_value_d = FT.(bc_value) |> array_type(model.arch)
35+
bc_value_d = FT.(bc_value)
36+
if isa(bc_value_d, AbstractArray)
37+
bc_value_d = bc_value_d |> array_type(model.arch)
3838
end
3939
setproperty!(model.nutrients[tracer].bc, pos, bc_value_d)
4040
return nothing

src/Fields/halo_regions.jl

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
@inline fill_halo_north_vel!(c, H::Int, N::Int, ::Bounded) = @views @. c[:, N+H+2:N+2H, :] = c[:, N+H+1:N+H+1, :]
2020
@inline fill_halo_bottom_vel!(c, H::Int, N::Int, ::Bounded) = @views @. c[:, :, N+H+2:N+2H] = c[:, :, N+H+1:N+H+1]
2121

22-
@inline fill_halo_east_Gc!(c, H::Int, N::Int, ::Bounded) = @views @. c[N+H+1:N+2H, :, :] = 0.0
23-
@inline fill_halo_north_Gc!(c, H::Int, N::Int, ::Bounded) = @views @. c[:, N+H+1:N+2H, :] = 0.0
24-
@inline fill_halo_bottom_Gc!(c, H::Int, N::Int, ::Bounded) = @views @. c[:, :, N+H+1:N+2H] = 0.0
22+
@inline fill_halo_east_Gc!(c, H::Int, N::Int, ::Bounded) = @views @. c[N+H+1:N+2H, :, :] = 0.0f0
23+
@inline fill_halo_north_Gc!(c, H::Int, N::Int, ::Bounded) = @views @. c[:, N+H+1:N+2H, :] = 0.0f0
24+
@inline fill_halo_bottom_Gc!(c, H::Int, N::Int, ::Bounded) = @views @. c[:, :, N+H+1:N+2H] = 0.0f0
2525

2626
fill_halo_east_vel!(c, H::Int, N::Int, TX::Periodic) = fill_halo_east!(c, H, N, TX)
2727
fill_halo_north_vel!(c, H::Int, N::Int, TY::Periodic) = fill_halo_north!(c, H, N, TY)

0 commit comments

Comments
 (0)