@@ -88,42 +88,55 @@ function output_nc!(i::Int,
88
88
@unpack f_q,ep,dtint = S. grid
89
89
90
90
# CUT OFF HALOS
91
- @views u = Prog. u[halo+ 1 : end - halo,halo+ 1 : end - halo]
92
- @views v = Prog. v[halo+ 1 : end - halo,halo+ 1 : end - halo]
93
- @views η = Prog. η[haloη+ 1 : end - haloη,haloη+ 1 : end - haloη]
94
- @views sst = Prog. sst[halosstx+ 1 : end - halosstx,halossty+ 1 : end - halossty]
95
- @views ζ = (dvdx[2 : end - 1 ,2 : end - 1 ]- dudy[2 + ep: end - 1 ,2 : end - 1 ]). / abs .(f_q)
96
- @views du = Diag. Tendencies. du[halo+ 1 : end - halo,halo+ 1 : end - halo]
97
- @views dv = Diag. Tendencies. dv[halo+ 1 : end - halo,halo+ 1 : end - halo]
98
- @views dη = Diag. Tendencies. dη[haloη+ 1 : end - haloη,haloη+ 1 : end - haloη]
91
+ # @views u = Prog.u[halo+1:end-halo,halo+1:end-halo]
92
+ # @views v = Prog.v[halo+1:end-halo,halo+1:end-halo]
93
+ # @views η = Prog.η[haloη+1:end-haloη,haloη+1:end-haloη]
94
+ # @views sst = Prog.sst[halosstx+1:end-halosstx,halossty+1:end-halossty]
95
+ # @views ζ = (dvdx[2:end-1,2:end-1]-dudy[2+ep:end-1,2:end-1])./abs.(f_q)
96
+ # @views du = Diag.Tendencies.du[halo+1:end-halo,halo+1:end-halo]
97
+ # @views dv = Diag.Tendencies.dv[halo+1:end-halo,halo+1:end-halo]
98
+ # @views dη = Diag.Tendencies.dη[haloη+1:end-haloη,haloη+1:end-haloη]
99
+
100
+ # As output is before copyto!(u,u0), take u0,v0,η0
101
+ @views u = Float32 .(Diag. RungeKutta. u0[halo+ 1 : end - halo,halo+ 1 : end - halo])
102
+ @views v = Float32 .(Diag. RungeKutta. v0[halo+ 1 : end - halo,halo+ 1 : end - halo])
103
+ @views η = Float32 .(Diag. RungeKutta. η0[haloη+ 1 : end - haloη,haloη+ 1 : end - haloη])
104
+
105
+ @views sst = Float32 .(Prog. sst[halosstx+ 1 : end - halosstx,halossty+ 1 : end - halossty])
106
+ @views ζ = Float32 .((dvdx[2 : end - 1 ,2 : end - 1 ]- dudy[2 + ep: end - 1 ,2 : end - 1 ]). / abs .(f_q))
107
+
108
+ # Tendencies calculate from the last time step, du = u_n+1-u_n etc
109
+ @views du = u- Float32 .(Prog. u[halo+ 1 : end - halo,halo+ 1 : end - halo])
110
+ @views dv = v- Float32 .(Prog. v[halo+ 1 : end - halo,halo+ 1 : end - halo])
111
+ @views dη = η- Float32 .(Prog. η[haloη+ 1 : end - haloη,haloη+ 1 : end - haloη])
99
112
100
113
# WRITING THE VARIABLES
101
114
if ncs. u != nothing
102
- NetCDF. putvar (ncs. u," u" ,Float32 .(u) ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
115
+ NetCDF. putvar (ncs. u," u" ,u ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
103
116
end
104
117
if ncs. v != nothing
105
- NetCDF. putvar (ncs. v," v" ,Float32 .(v) ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
118
+ NetCDF. putvar (ncs. v," v" ,v ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
106
119
end
107
120
if ncs. η != nothing
108
- NetCDF. putvar (ncs. η," eta" ,Float32 .(η) ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
121
+ NetCDF. putvar (ncs. η," eta" ,η ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
109
122
end
110
123
if ncs. sst != nothing
111
- NetCDF. putvar (ncs. sst," sst" ,Float32 .( sst) ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
124
+ NetCDF. putvar (ncs. sst," sst" ,sst,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
112
125
end
113
126
if ncs. q != nothing
114
- NetCDF. putvar (ncs. q," q" ,Float32 .(q) ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
127
+ NetCDF. putvar (ncs. q," q" ,q ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
115
128
end
116
129
if ncs. ζ != nothing
117
- NetCDF. putvar (ncs. ζ," relvort" ,Float32 .(ζ) ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
130
+ NetCDF. putvar (ncs. ζ," relvort" ,ζ ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
118
131
end
119
132
if ncs. du != nothing
120
- NetCDF. putvar (ncs. du," du" ,Float32 .(du) ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
133
+ NetCDF. putvar (ncs. du," du" ,du ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
121
134
end
122
135
if ncs. dv != nothing
123
- NetCDF. putvar (ncs. dv," dv" ,Float32 .(dv) ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
136
+ NetCDF. putvar (ncs. dv," dv" ,dv ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
124
137
end
125
138
if ncs. dη != nothing
126
- NetCDF. putvar (ncs. dη," deta" ,Float32 .(dη) ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
139
+ NetCDF. putvar (ncs. dη," deta" ,dη ,start= [1 ,1 ,iout],count= [- 1 ,- 1 ,1 ])
127
140
end
128
141
129
142
@@ -181,14 +194,15 @@ function get_run_id_path(S::ModelSetup)
181
194
runpath = joinpath (outpath," run" * @sprintf (" %04d" ,run_id))
182
195
mkdir (runpath)
183
196
184
- # elseif order == "specific" # specify the run_id as input argument
185
- # runpath = joinpath(outpath,"run"*@sprintf("%04d",run_id))
186
- # try # create folder if not existent
187
- # mkdir(runpath)
188
- # catch # else rm folder and create new one
189
- # rm(runpath,recursive=true)
190
- # mkdir(runpath)
191
- # end
197
+ elseif get_id_mode == " specific" # specify the run_id as input argument
198
+ @unpack run_id = S. parameters
199
+ runpath = joinpath (outpath," run" * @sprintf (" %04d" ,run_id))
200
+ try # create folder if not existent
201
+ mkdir (runpath)
202
+ catch # else rm folder and create new one
203
+ rm (runpath,recursive= true )
204
+ mkdir (runpath)
205
+ end
192
206
193
207
elseif get_id_mode == " continue" # find largest folder and count one up
194
208
run_id = maximum (existing_runs)+ 1
0 commit comments