Skip to content
This repository has been archived by the owner on Jul 29, 2024. It is now read-only.

DCBLSoares case (dry and "moist") #30

Open
wants to merge 583 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
583 commits
Select commit Hold shift + click to select a range
eaa24be
print statements in 4th decomp SA, MA schemes
Jul 19, 2016
ae45a00
problem NetCDFIO_Fields changes
Jul 19, 2016
e181a3b
debugging
Jul 19, 2016
3e6c3c8
debugging
Jul 19, 2016
3d9ed33
Merge branch 'devel_ql' of https://github.com/meyerbe/pycles into dev…
Jul 19, 2016
7a32502
debugging
Jul 19, 2016
c6141d7
debugging
Jul 19, 2016
cee1ccc
debugging
Jul 19, 2016
7f6b1ea
debugging
Jul 19, 2016
42f8f5b
print statement
Jul 19, 2016
f3ff612
debugging
Jul 19, 2016
3f0f872
debugging
Jul 19, 2016
b235cb8
debugging
Jul 19, 2016
5d64115
debugging
Jul 19, 2016
309d2fe
debugging
Jul 19, 2016
08767e0
debugging
Jul 19, 2016
6523528
debugging
Jul 19, 2016
88d5c05
debugging
Jul 19, 2016
a9bdc43
debugging
Jul 19, 2016
7cd7504
debugging
Jul 19, 2016
798cd35
debugging
Jul 19, 2016
45040f9
changing to upstream Thermodynamics.pyx, ThermodynamicsSA.pyx/pxd, th…
Jul 20, 2016
454d916
VisOutput back to upstream (no numbering of files at same time)
Jul 20, 2016
e7e4d0d
adding Pa.barrier() to Simulation3d.pyx
Jul 20, 2016
5d11a0b
adding Pa.barrier() to Simulation3d.pyx
Jul 20, 2016
691770f
checking if Sim.StatsIO.close_files is the problem
Jul 20, 2016
ef7da56
checking if Sim.force_io is the problem
Jul 20, 2016
529d503
debugging
Jul 20, 2016
18ce5e4
debugging
Jul 20, 2016
13f5489
debugging ThermodynamicsSA
Jul 20, 2016
dbd427b
debugging ThermodynamicsSA
Jul 20, 2016
d53eee4
debugging ThermodynamicsSA
Jul 20, 2016
9b2404e
debugging ThermodynamicsSA
Jul 20, 2016
5ca19ca
debugging ThermodynamicsSA
Jul 20, 2016
237a85f
debugging ThermodynamicsSA
Jul 20, 2016
564281d
debugging ThermodynamicsSA
Jul 20, 2016
bfc3533
debugging ThermodynamicsSA
Jul 20, 2016
2e72ff9
debugging ThermodynamicsSA
Jul 20, 2016
3aa9d90
debugging ThermodynamicsSA
Jul 20, 2016
ffa06fc
debugging ThermodynamicsSA
Jul 20, 2016
b03caa2
debugging ThermodynamicsSA
Jul 20, 2016
2c273c6
debugging ThermodynamicsSA
Jul 20, 2016
9c496f7
debugging ThermodynamicsSA
Jul 20, 2016
2edeaa2
debugging ThermodynamicsSA
Jul 20, 2016
ab6ee5b
debugging ThermodynamicsSA
Jul 20, 2016
207b15c
debugging ThermodynamicsSA
Jul 20, 2016
79b68ed
debugging ThermodynamicsSA
Jul 20, 2016
6569885
debugging ThermodynamicsSA
Jul 20, 2016
6e21041
debugging ThermodynamicsSA
Jul 20, 2016
d08cb0b
setting all equal to upstream
Jul 20, 2016
a0df003
back: Grid.pyx
Jul 20, 2016
2d449be
back: ParallelMPI comments, Radiation empty lines
Jul 20, 2016
1629f4c
back: Microphysics, print statements
Jul 20, 2016
23456a0
back: Restart, Leerzeichen
Jul 21, 2016
a805436
back: Timepstepping (print statements)
Jul 21, 2016
f4a48b9
back: PrognosticVariables (print statement)
Jul 21, 2016
89d1e5e
back: DiagnosticVariables (print statement)
Jul 21, 2016
7d87102
back: Surface (Soares Case, Leerzeichen, Print statements)
Jul 21, 2016
90c0272
back: Forcing (Soares Case, Print statements)
Jul 21, 2016
dc631d2
back: ReferenceState (Print statements)
Jul 21, 2016
a9a8866
back: Initialization (Soares Case)
Jul 21, 2016
dd507d8
back: SGS and sgs.h (const Viscosity conditioned )
Jul 21, 2016
d6cdebb
back: SGS (print statement)
Jul 21, 2016
c494537
back: Simulation (print SGS)
Jul 21, 2016
5625e00
back: Simulation (print SGS)
Jul 21, 2016
e183911
back: Simulation (print SGS)
Jul 21, 2016
2941ab7
back: Simulation (print SGS)
Jul 21, 2016
fc9a678
back: Simulation (print SGS)
Jul 21, 2016
b8883aa
back: Simulation (print SGS)
Jul 21, 2016
31ad56d
back: VisualizationOutput (adding self.count, option for different path)
Jul 21, 2016
4eb6993
back: NetCDFIO (print statement, comments)
Jul 21, 2016
76d7927
back: Simulation (print SGS)
Jul 21, 2016
a2e1eee
back: Simulation (print SGS)
Jul 21, 2016
0b1d366
back: Simulation (print SGS)
Jul 21, 2016
27c0b57
back: Simulation (print SGS)
Jul 21, 2016
fad200f
back: Simulation (print SGS)
Jul 21, 2016
bccffea
back: VisualizationOutput (adding self.count, option for different path)
Jul 21, 2016
d4cfdfb
back: NetCDFIO (print statement, comments)
Jul 21, 2016
e2c1b24
Merge branch 'devel_ql' of https://github.com/meyerbe/pycles into dev…
Jul 21, 2016
6bf2905
back: ConditionalStatistics (print statement, comments)
Jul 21, 2016
0e3eb2f
back: Thermodynamics (print statement)
Jul 21, 2016
7f13a47
back: MomentumAdvection.pyx (print statement)
Jul 21, 2016
6c7a308
back: ThermodynamicsSA.pyx (only print statement)
Jul 21, 2016
0eef8d6
back: ThermodynamicsSA.pyx (adding debug_tend module)
Jul 21, 2016
2b3d948
back: thermodynamics_sa.h (changes in eos_c)
Jul 21, 2016
7d2988d
back: thermodynamics_sa.h (adding eos_c_refstate)
Jul 21, 2016
04233c8
back: thermodynamics_sa.h (modifying eos_c_update)
Jul 21, 2016
9f61e85
back: momentum_advection_central.h (print statements), momentum_advec…
Jul 21, 2016
21ddbb3
back: momentum_advection.h (including nex cases)
Jul 21, 2016
83805d8
revert to upstream: NetCDFIO.pyx/pxd
Jul 21, 2016
9df87d7
back: scalar_advection.h (include ql cases)
Jul 21, 2016
8f3139f
back: Grid.pyx (comment)
Jul 21, 2016
e7e1ab9
back: NetCDFIO.pyx (only comments)
Jul 21, 2016
d9359f7
back: NetCDFIO.pxd (only comments)
Jul 21, 2016
2b07c9d
back: Surface.pyx (nur Leerzeichen)
Jul 21, 2016
1782a13
back: Timestepping.pyx (comments)
Jul 21, 2016
0a24010
back: ThermodynamicsSA.pyx (including eos_c_refstate)
Jul 22, 2016
bdacf82
back: Simulation3d.pyx (importing and initializing StochasticNoise)
Jul 22, 2016
30a9d3a
back: Simulation3d.pyx (importing and initializing StochasticNoise)
Jul 22, 2016
1f68060
back: Simulation3d.pyx (only importing StochasticNoise (not initializ…
Jul 22, 2016
76c830f
back: Simulation3d.pyx (only importing os)
Jul 22, 2016
cb7e8d7
back: Simulation3d.pyx (only importing SN)
Jul 22, 2016
fe9047a
back: Simulation3d.pyx (not importing SN)
Jul 22, 2016
b44e447
back: Simulation3d.pyx (adding modules check_nans, output_nan_arrays)
Jul 22, 2016
d6b387c
back: Simulation3d.pyx (adding only modules check_nans)
Jul 22, 2016
1527edc
back: Simulation3d.pyx (using modules check_nans, debug_tend)
Jul 22, 2016
1801528
back: Simulation3d.pyx (print statements)
Jul 22, 2016
34d1feb
back: Simulation3d.pyx (self.output_path)
Jul 22, 2016
a9ffd17
back: Simulation3d.pyx (self.force_io(self.Pa))
Jul 22, 2016
acaedb0
back: Simulation3d.pyx (adding self.output_nan)
Jul 22, 2016
84ab66c
back: Simulation3d.pyx (comments)
Jul 22, 2016
592a36c
back: ConditionalStatistics.pyx (adding NanStatistics class --> comme…
Jul 22, 2016
fa7fdb0
back: ThermodynamicsSA.pyx (setting eos_c --> eos_c_refstate for Refe…
Jul 22, 2016
693139b
back: thermodynamics_sa.h (including isnan-testing and option for no-…
Jul 22, 2016
3b20f4a
back: thermodynamics_sa.h and ThermodynamicsSA.pyx (eos_update includ…
Jul 22, 2016
1022c6f
back: ThermodynamicsSA.pyx (forgot to comment some lines out)
Jul 22, 2016
e8d9ca7
back: NetCDFIO.pyx (comment out everything)
Jul 22, 2016
d7ebb3b
back: NetCDFIO.pyx (print statement)
Jul 22, 2016
ebf59be
adding nan output to SA, MA 4th decomp ql
Jul 23, 2016
735d117
print statement
Jul 23, 2016
51d5b98
print statement
Jul 23, 2016
8fac8e6
changing Thermodynamics to new scheme (no iteration in eos_update)
Jul 23, 2016
ddce4d6
changing thermodynamics to old scheme
Jul 28, 2016
022f551
changing Thermodynamics to old scheme; comments about Thermodynamics
Jul 28, 2016
7ed2ca0
Merge branch 'devel_ql' of https://github.com/meyerbe/pycles into dev…
Jul 28, 2016
b348466
DCBL Soares moist: turning Sfc LHF off
Jul 28, 2016
548d2a8
take away some 'debug_tend' and print statements
Jul 29, 2016
8043ebe
print statements
Aug 8, 2016
3c9ae55
print statements
Aug 8, 2016
5928a99
print statements
Aug 8, 2016
3559f9b
adding passive scalar 'scal' in DCBL_moist
Aug 8, 2016
adf2e44
debug passive scalar 'phi'; changing debug_tend output
Aug 8, 2016
1d16969
Merge branch 'master' of https://github.com/pressel/pycles into devel_ql
Aug 9, 2016
cb2fccc
changing passive scalar 'phi' to be initialized in Tracer.pyx and Ini…
Aug 9, 2016
23997ad
including tracer dictionary in generate-namelist.py
Aug 9, 2016
0bc5909
output T_max if w_tend = nan
Aug 9, 2016
791b57e
Vis output of phi; print statements
Aug 9, 2016
f337d71
print t max
Aug 9, 2016
ccdd963
generate_namelist: adding max T value for CC lookup table (DCBLSoares…
Aug 9, 2016
92898b4
print statement temp
Aug 9, 2016
705f676
print statement temp
Aug 9, 2016
064034f
print statement temp
Aug 9, 2016
9dd6d33
debug 'debug_tend', loop ijk_max
Aug 9, 2016
54b9a5f
print statement
Aug 9, 2016
54fb08e
print statement
Aug 10, 2016
adeafb9
print statement
Aug 12, 2016
07c2747
LHF on
Aug 12, 2016
f29b054
Merge branch 'devel_ql' of https://github.com/meyerbe/pycles into dev…
Aug 12, 2016
0f18967
print statement
Aug 12, 2016
0de494f
Merge branch 'devel_ql' of https://github.com/meyerbe/pycles into dev…
Aug 12, 2016
496034d
print statement
Aug 12, 2016
6be8b3c
Merge branch 'devel_ql' of https://github.com/meyerbe/pycles into dev…
Aug 12, 2016
d0f2083
debugging tracers (deleting clean_up module)
Aug 12, 2016
943607b
Merge branch 'devel_ql' of https://github.com/meyerbe/pycles into dev…
Aug 12, 2016
52d8a36
print statement
Aug 15, 2016
217ca3d
print statement
Aug 18, 2016
b198e48
print statement
Aug 18, 2016
68ccc7c
print statement
Aug 18, 2016
441a206
print statement
Aug 18, 2016
c6c7c08
initializing mean fields in ql MA weno5; free one more vector in ql S…
Aug 18, 2016
9610ecb
ql SA weno5: initializing mean fields to zero; changing flux computat…
Aug 18, 2016
b2fcfbf
ql SA weno5: upwinding based on total velocity and not on velocity fl…
Aug 18, 2016
3ca6a2d
ql MA weno5: upwinding based on total velocity and not on velocity fl…
Aug 18, 2016
635ec72
print statements
Aug 19, 2016
2534d25
adding 'debug_tend to ThermodynamicsDry'
Aug 19, 2016
8a03966
print statements
Sep 27, 2016
c3ff575
changing StableBubble into yz-plane bcs. of VisualizationOutput
Oct 5, 2016
862d7f3
modifying bubble stable case
Oct 5, 2016
6967c8b
adding 'v' to Vis Output
Oct 5, 2016
3f3c8df
Merge branch 'master' of https://github.com/pressel/pycles into devel_ql
Oct 7, 2016
9701e62
if statement for moist/dry thermodynamics in VisualizationOutput
Oct 7, 2016
ef1db59
change initialization of tracer to be variable
Oct 7, 2016
ab7bc46
test: output fields every time-step
Oct 10, 2016
5638d51
print statements
Oct 10, 2016
938fc1c
print statements
Oct 10, 2016
ec5e4aa
adding smooth transition for tracer initialisation
Oct 11, 2016
1611a13
print statements Sim
Oct 13, 2016
aa1a719
print statements Sim
Oct 13, 2016
e2ccdcd
print statements Sim
Oct 13, 2016
eade5ac
print statements Sim
Oct 13, 2016
7cc5410
cdef qt_varshift, ql_varshift in Sim.debug_tend
Oct 13, 2016
e365251
adding Sim.plot_figure
Oct 13, 2016
42296e0
removing Sim.plot_figure
Oct 13, 2016
c3590d1
changing kmax of tracers Soares
Oct 13, 2016
e5d5405
debug
Oct 13, 2016
630e788
smoothing initial BOMEX profile
Oct 13, 2016
dec00a5
changing dz for tracer initialization (dz=50 --> dz= 250)
Oct 17, 2016
cce91b8
changing dz for tracer initialization (dk=5 --> dk= 50)
Oct 17, 2016
9af5bfd
print
Oct 17, 2016
a1d58ed
changing inital profile for tracer in DCBL Soares
Oct 18, 2016
4ee8213
adding post processing files
Oct 20, 2016
ebcdcd0
adding Vis_fields.py: Visualisation from fields; EddyField_output.py:…
Oct 21, 2016
1eb9ad3
adding output from LES fields
Oct 21, 2016
1bcb329
debug divergence of correlations
Oct 21, 2016
65c6934
debug plotting
Oct 21, 2016
213262b
adding phi-contours in contourf-plot of other field
Oct 21, 2016
c03ea8d
optimising
Oct 21, 2016
d01c46d
adding new plotting module for fields with contours
Oct 24, 2016
82f09d1
merge upstream
Nov 29, 2016
9fa36d6
modifing the saturation adjustment scheme (tested for BOMEX QL, 4th o…
Nov 29, 2016
c329859
further correction of eos_c: constrain T_2 by 350 K
Nov 30, 2016
52ce929
sat. adjustment: adding conditon qv_star_1 > 0.0
Dec 1, 2016
379042e
sat. adjustment: adding T2 output
Dec 1, 2016
effd6fb
print statements
Dec 1, 2016
ee90d19
new modification in thermodynmaics_sa.h to handle temperatures above …
Jul 23, 2017
378342e
print statement
Jul 23, 2017
e1f25a5
merging conflict
Jul 25, 2017
59f8611
Merge branch 'devel_ql' of https://github.com/meyerbe/pycles into dev…
Jul 25, 2017
80729c8
print statements
Jul 25, 2017
157d9a7
plotting
Jul 25, 2017
d765ee8
read in changed; computation wphi_div
Jul 25, 2017
8456010
thermodynamics_sa.h: modification 4, for T_2>T_boil
Jul 25, 2017
2e921e2
merge conflict
Jul 25, 2017
c064520
changes in default setting of DCBLSoares for stochastic noise
Jul 26, 2017
90e4379
Surface.pyx: adapting to upstream; trying to fix problem in Soares case
Jul 26, 2017
45aa4f9
Initialization: change tracer initialisation in DCBLSoares case to wh…
Jul 26, 2017
2445d9c
Initialization: change tracer initialisation in DCBLSoares to allow f…
Jul 27, 2017
75ab754
Namelist DCBLSoares: change tracer initialisation in DCBLSoares to al…
Jul 27, 2017
65fb1b0
merging upstream changes
Jun 22, 2018
637b653
finishing merging of upstream (minor commenting changes)
Jun 25, 2018
0967240
Fixing merging issues in Surface (Soares) and Tracers (PV.add_variable)
Jun 25, 2018
a9943a5
fixing merging issues
Jun 25, 2018
5d506db
Starting ColdPoolDry case: namelist, Initialization, Forcing, Surface
Jun 26, 2018
3163fb8
Changing Initialization ColdPoolDry
Jun 28, 2018
fff2bd8
merging changes due to upstream changes from devel_ql
Jun 28, 2018
58b0c50
merging changes due to upstream changes from devel_ql - 2
Jun 28, 2018
60903a0
merging changes due to upstream changes from devel_ql - 3
Jun 29, 2018
85a2873
merging changes due to upstream changes from devel_ql - 4
Jun 29, 2018
2c85ab2
merging changes due to upstream changes from devel_ql - 5
Jun 29, 2018
911491f
VisOutput: changes upstream; refactoring
meyerbe Jul 12, 2018
848cc4c
Changing Initialization ColdPoolDry to constant background entropy
meyerbe Jul 18, 2018
ef8004b
adding cold pool dry double 2d case; changing namelist of cold pool
meyerbe Aug 6, 2018
466c253
Vis.py: adding min time, adding limits on levels; extending color bar
meyerbe Aug 11, 2018
97dd36b
changing file name of plots
meyerbe Aug 12, 2018
17f34fa
cleaning Init ColdPool_Dry_2D
meyerbe Aug 12, 2018
97f4299
adding single CP 3D case
meyerbe Aug 12, 2018
fd275a8
VisOutput: adding option for slice in x-z plane
meyerbe Aug 12, 2018
e7ed774
VisualizationOutput: changing exception statement in VisualizationOut…
meyerbe Aug 13, 2018
0ffac37
adding ColdPoolDry_double_3D case; incl. option for initial noise on …
meyerbe Aug 15, 2018
4158643
adding triple ColdPool 3D case
meyerbe Aug 17, 2018
2c9dbfc
Merge branch 'devel_ql' of https://github.com/meyerbe/pycles
Aug 20, 2018
1856b5d
adding Cold Pool case; merging upstream; conditional Viscosity SGS ca…
Aug 20, 2018
21a3078
update CP initialization as used for PE scaling and collisions
Dec 24, 2019
0b6689d
resolving merging conflict, updating CP namelists0
Dec 24, 2019
183465a
adding stable CP case
Dec 24, 2019
0fc6449
adding CP surface scheme
Dec 24, 2019
dc481bc
adding CP surface scheme
Dec 24, 2019
a3286c4
resolving merging conflicts
Dec 24, 2019
4438e49
undo merging with devel_ql branch: remove ql-advection schemes
Dec 24, 2019
28e26bb
fixing Merging conflicts
Sep 4, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
261 changes: 257 additions & 4 deletions ConditionalStatistics.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,14 @@ cdef class ConditionalStatistics:
self.CondStatsClasses.append(SpectraStatistics(Gr,PV, DV, NC, Pa))
if 'Null' in conditional_statistics:
self.CondStatsClasses.append(NullCondStats())


# # __
# if 'NanStatistics' in conditional_statistics:
# self.CondStatsClasses.append(NanStatistics(Gr, PV, DV, NC, Pa))
# # if 'Test' in conditional_statistics:
# # self.CondStatsClasses.append(TestStatistics(Gr, PV, DV, NC, Pa))
# # __
#
# print('CondStatsClasses: ', self.CondStatsClasses)
return


Expand All @@ -67,7 +73,7 @@ cdef class NullCondStats:
cdef class SpectraStatistics:
def __init__(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV,
NetCDFIO_CondStats NC, ParallelMPI.ParallelMPI Pa):

Pa.root_print('SpectraStatistics initialized')
cdef:
Py_ssize_t ii, i, jj, j
double xi, yj
Expand Down Expand Up @@ -133,6 +139,17 @@ cdef class SpectraStatistics:
self.Y_Pencil.initialize(Gr,Pa,dim=1)


# # _____
# Pa.root_print('NanStatistics initialization')
#
# self.sk_arr = np.zeros((1,2),dtype=np.double)
# self.qtk_arr = np.zeros((1,2),dtype=np.double)
#
# nz = np.arange(Gr.dims.n[2], dtype=np.double) * Gr.dims.dx[2]
# # NC.create_condstats_group('nan_array','nz', nz, Gr, Pa)
# # set up the names of the variables
# NC.add_condstat('sk_arr', 'spectra', 'wavenumber', Gr, Pa)
# NC.add_condstat('qtk_arr', 'spectra', 'wavenumber', Gr, Pa)


return
Expand All @@ -141,7 +158,7 @@ cdef class SpectraStatistics:
cpdef stats_io(self, Grid.Grid Gr, ReferenceState.ReferenceState RS, PrognosticVariables.PrognosticVariables PV,
DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_CondStats NC, ParallelMPI.ParallelMPI Pa):


Pa.root_print('calling ConditionalStatistics.SpectraStatistics stats_io')
cdef:
Py_ssize_t i, j, k, ijk, var_shift
Py_ssize_t istride = Gr.dims.nlg[1] * Gr.dims.nlg[2]
Expand Down Expand Up @@ -374,3 +391,239 @@ cdef class SpectraStatistics:

return spec

#
# # __________
# cdef class NanStatistics:
# def __init__(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV, DiagnosticVariables.DiagnosticVariables DV,
# NetCDFIO_CondStats NC, ParallelMPI.ParallelMPI Pa):
# Pa.root_print('NanStatistics initialized')
# # cdef:
# # Py_ssize_t nz = Gr.dims.n[2]
#
# # self.sk_arr = np.zeros((1,2),dtype=np.double)
# # self.qtk_arr = np.zeros((1,2),dtype=np.double)
# self.sk_arr = np.zeros((Gr.dims.npd),dtype=np.double)
# self.qtk_arr = np.zeros((Gr.dims.npd),dtype=np.double)
#
# # nz = np.arange(Gr.dims.n[2], dtype=np.double) * Gr.dims.dx[2]
# # NC.create_condstats_group('nan_array','nz', nz, Gr, Pa)
# nz = np.arange(Gr.dims.npd, dtype=np.double)
# NC.create_condstats_group('nan_array','nz',nz, Gr, Pa)
# # set up the names of the variables
# NC.add_condstat('sk_arr', 'nan_array', 'nz', Gr, Pa)
# NC.add_condstat('qtk_arr', 'nan_array', 'nz', Gr, Pa)
#
#
# ## from NetCDFIO_CondStats:
# # root_grp = nc.Dataset(self.path_plus_file, 'w', format='NETCDF4')
# # sub_grp = root_grp.createGroup(groupname)
# # sub_grp.createDimension('z', Gr.dims.n[2])
# # sub_grp.createDimension(dimname, len(dimval))
# # sub_grp.createDimension('t', None)
# # z = sub_grp.createVariable('z', 'f8', ('z'))
# # z[:] = np.array(Gr.z[Gr.dims.gw:-Gr.dims.gw])
# # dim = sub_grp.createVariable(dimname, 'f8', (dimname))
# # dim[:] = np.array(dimval[:])
# # sub_grp.createVariable('t', 'f8', ('t'))
#
# return
#
#
# cpdef stats_io(self, Grid.Grid Gr, ReferenceState.ReferenceState RS, PrognosticVariables.PrognosticVariables PV,
# DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_CondStats NC, ParallelMPI.ParallelMPI Pa):
#
# Pa.root_print('!!!! calling ConditionalStatistics.NanStatistics stats_io')
#
# # _____
# message = 'hi'
# print('sk_arr before:', self.sk_arr)
# self.nan_checking(message,Gr,PV,DV,NC,Pa)
#
#
# print('sk_arr after:', self.sk_arr)
# if 's' in PV.name_index:
# NC.write_condstat('sk_arr', 'nan_array', self.sk_arr[:,:], Pa)
# if 'qt' in PV.name_index:
# NC.write_condstat('qtk_arr', 'nan_array', self.qt_arr[:,:], Pa)
#
# return
#
#
#
# # def debug_tend(self,message):
# cpdef nan_checking(self,message, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV,
# DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_CondStats NC, ParallelMPI.ParallelMPI Pa):
# print('nan_checking')
# cdef:
# PrognosticVariables.PrognosticVariables PV_ = PV
# DiagnosticVariables.DiagnosticVariables DV_ = DV
# Grid.Grid Gr_ = Gr
#
# cdef:
# Py_ssize_t u_varshift = PV_.get_varshift(Gr,'u')
# Py_ssize_t v_varshift = PV_.get_varshift(Gr,'v')
# Py_ssize_t w_varshift = PV_.get_varshift(Gr,'w')
# Py_ssize_t s_varshift = PV_.get_varshift(Gr,'s')
#
# Py_ssize_t istride = Gr_.dims.nlg[1] * Gr_.dims.nlg[2]
# Py_ssize_t jstride = Gr_.dims.nlg[2]
# Py_ssize_t imax = Gr_.dims.nlg[0]
# Py_ssize_t jmax = Gr_.dims.nlg[1]
# Py_ssize_t kmax = Gr_.dims.nlg[2]
# Py_ssize_t ijk_max = imax*istride + jmax*jstride + kmax
#
# Py_ssize_t i, j, k, ijk, ishift, jshift
# Py_ssize_t imin = 0#Gr_.dims.gw
# Py_ssize_t jmin = 0#Gr_.dims.gw
# Py_ssize_t kmin = 0#Gr_.dims.gw
#
# # __
# PV_.values[u_varshift+1] = np.nan
# # __
#
# u_max = np.nanmax(PV_.tendencies[u_varshift:v_varshift])
# uk_max = np.nanargmax(PV_.tendencies[u_varshift:v_varshift])
# u_min = np.nanmin(PV_.tendencies[u_varshift:v_varshift])
# uk_min = np.nanargmin(PV_.tendencies[u_varshift:v_varshift])
# v_max = np.nanmax(PV_.tendencies[v_varshift:w_varshift])
# vk_max = np.nanargmax(PV_.tendencies[v_varshift:w_varshift])
# v_min = np.nanmin(PV_.tendencies[v_varshift:w_varshift])
# vk_min = np.nanargmin(PV_.tendencies[v_varshift:w_varshift])
# w_max = np.nanmax(PV_.tendencies[w_varshift:s_varshift])
# wk_max = np.nanargmax(PV_.tendencies[w_varshift:s_varshift])
# w_min = np.nanmin(PV_.tendencies[w_varshift:s_varshift])
# wk_min = np.nanargmin(PV_.tendencies[w_varshift:s_varshift])
#
# u_nan = np.isnan(PV_.tendencies[u_varshift:v_varshift]).any()
# uk_nan = np.argmax(PV_.tendencies[u_varshift:v_varshift])
# v_nan = np.isnan(PV_.tendencies[v_varshift:w_varshift]).any()
# vk_nan = np.argmax(PV_.tendencies[v_varshift:w_varshift])
# w_nan = np.isnan(PV_.tendencies[w_varshift:s_varshift]).any()
# wk_nan = np.argmax(PV_.tendencies[w_varshift:s_varshift])
#
# if Pa.rank == 0:
# print(message, 'debugging (max, min, nan): ')
# print('shifts', u_varshift, v_varshift, w_varshift, s_varshift)
# print('u tend: ', u_max, uk_max, u_min, uk_min, u_nan, uk_nan)
# print('v tend: ', v_max, vk_max, v_min, vk_min, v_nan, vk_nan)
# print('w tend: ', w_max, wk_max, w_min, wk_min, w_nan, wk_nan)
#
# if 'qt' in PV_.name_index:
# qt_varshift = PV_.get_varshift(Gr,'qt')
# ql_varshift = DV_.get_varshift(Gr,'ql')
#
# s_max = np.nanmax(PV_.tendencies[s_varshift:qt_varshift])
# sk_max = np.nanargmax(PV_.tendencies[s_varshift:qt_varshift])
# s_min = np.nanmin(PV_.tendencies[s_varshift:qt_varshift])
# sk_min = np.nanargmin(PV_.tendencies[s_varshift:qt_varshift])
# qt_max = np.nanmax(PV_.tendencies[qt_varshift:-1])
# qtk_max = np.nanargmax(PV_.tendencies[qt_varshift:-1])
# qt_min = np.nanmin(PV_.tendencies[qt_varshift:-1])
# qtk_min = np.nanargmin(PV_.tendencies[qt_varshift:-1])
#
# s_nan = np.isnan(PV_.tendencies[s_varshift:qt_varshift]).any()
# sk_nan = np.argmax(PV_.tendencies[s_varshift:qt_varshift])
# qt_nan = np.isnan(PV_.tendencies[qt_varshift:-1]).any()
# qtk_nan = np.argmax(PV_.tendencies[qt_varshift:-1])
#
# s_max_val= np.nanmax(PV_.values[s_varshift:qt_varshift])
# sk_max_val = np.nanargmax(PV_.values[s_varshift:qt_varshift])
# s_min_val = np.nanmin(PV_.values[s_varshift:qt_varshift])
# sk_min_val = np.nanargmin(PV_.tendencies[s_varshift:qt_varshift])
# s_nan_val = np.isnan(PV_.values[s_varshift:qt_varshift]).any()
# sk_nan_val = np.argmax(PV_.values[s_varshift:qt_varshift])
# qt_max_val = np.nanmax(PV_.values[qt_varshift:-1])
# qtk_max_val = np.nanargmax(PV_.values[qt_varshift:-1])
# qt_min_val = np.nanmin(PV_.values[qt_varshift:-1])
# if qt_min_val < 0:
# Pa.root_print('qt val negative')
# qtk_min_val = np.nanargmin(PV_.values[qt_varshift:-1])
# qt_nan_val = np.isnan(PV_.values[qt_varshift:-1]).any()
# qtk_nan_val = np.argmax(PV_.values[qt_varshift:-1])
#
# ql_max_val = np.nanmax(DV_.values[ql_varshift:(ql_varshift+ijk_max)])
# ql_min_val = np.nanmin(DV_.values[ql_varshift:(ql_varshift+ijk_max)])
# qlk_max_val = np.nanargmax(DV_.values[ql_varshift:(ql_varshift+ijk_max)])
# qlk_min_val = np.nanargmin(DV_.values[ql_varshift:(ql_varshift+ijk_max)])
# ql_nan_val = np.isnan(DV_.values[ql_varshift:(ql_varshift+ijk_max)]).any()
# qlk_nan_val = np.argmax(DV_.values[ql_varshift:(ql_varshift+ijk_max)])
#
# if Pa.rank == 0:
# print('s tend: ', s_max, sk_max, s_min, sk_min, s_nan, sk_nan)
# print('s val: ', s_max_val, sk_max_val, s_min_val, sk_min_val, s_nan_val, sk_nan_val)
# print('qt tend: ', qt_max, qtk_max, qt_min, qtk_min, qt_nan, qtk_nan)
# print('qt val: ', qt_max_val, qtk_max_val, qt_min_val, qtk_min_val, qt_nan_val, qtk_nan_val)
# print('ql val: ', ql_max_val, qlk_max_val, ql_min_val, qlk_min_val, ql_nan_val, qlk_nan_val)
#
#
# #for name in PV.name_index.keys():
# # with nogil:
# if 1 == 1:
# for i in range(imin, imax):
# ishift = i * istride
# for j in range(jmin, jmax):
# jshift = j * jstride
# for k in range(kmin, kmax):
# ijk = ishift + jshift + k
# if np.isnan(PV_.values[s_varshift+ijk]):
# self.sk_arr = np.append(self.sk_arr,np.array([[ijk,k]]),axis=0)
# if np.isnan(PV_.values[qt_varshift+ijk]):
# self.qtk_arr = np.append(self.qtk_arr,np.array([[ijk,k]]),axis=0)
# if np.size(self.sk_arr) > 1 or np.size(self.qtk_arr) > 1:
# self.output_nan_array(Gr, PV, DV, NC, Pa)
# # if np.size(self.sk_arr) > 1:
# # if self.Pa.rank == 0:
# # print('sk_arr size: ', self.sk_arr.shape)
# # print('sk_arr:', self.sk_arr)
# # if np.size(self.qtk_arr) > 1:
# # if self.Pa.rank == 0:
# # print('qtk_arr size: ', self.qtk_arr.shape)
# # print('qtk_arr: ', self.qtk_arr)
#
# else:
# s_max = np.nanmax(PV_.tendencies[s_varshift:-1])
# sk_max = np.nanargmax(PV_.tendencies[s_varshift:-1])
# s_min = np.nanmin(PV_.tendencies[s_varshift:-1])
# sk_min = np.nanargmin(PV_.tendencies[s_varshift:-1])
# s_nan = np.isnan(PV_.tendencies[s_varshift:-1]).any()
# sk_nan = np.argmax(PV_.tendencies[s_varshift:-1])
#
# s_max_val= np.nanmax(PV_.values[s_varshift:-1])
# sk_max_val = np.nanargmax(PV_.values[s_varshift:-1])
# s_min_val = np.nanmin(PV_.values[s_varshift:-1])
# sk_min_val = np.nanargmin(PV_.tendencies[s_varshift:-1])
# s_nan_val = np.isnan(PV_.values[s_varshift:-1]).any()
# sk_nan_val = np.argmax(PV_.values[s_varshift:-1])
#
# if Pa.rank == 0:
# print('s tend: ', s_max, sk_max, s_min, sk_min, s_nan, sk_nan)
# print('s val: ', s_max_val, sk_max_val, s_min_val, sk_min_val, s_nan_val, sk_nan_val)
#
#
# if 1 == 1:
# for i in range(imin, imax):
# ishift = i * istride
# for j in range(jmin, jmax):
# jshift = j * jstride
# for k in range(kmin, kmax):
# ijk = ishift + jshift + k
# if np.isnan(PV_.values[s_varshift+ijk]):
# self.sk_arr = np.append(self.sk_arr,np.array([[ijk,k]]),axis=0)
# if np.size(self.sk_arr) > 1:
# self.output_nan_array(Gr, PV, DV, NC, Pa)
# # if self.Pa.rank == 0:
# # print('sk_arr size: ', self.sk_arr.shape)
# # print('sk_arr:', self.sk_arr)
# return
#
#
# cpdef output_nan_array(self, Grid.Grid Gr, PrognosticVariables.PrognosticVariables PV,
# DiagnosticVariables.DiagnosticVariables DV, NetCDFIO_CondStats NC, ParallelMPI.ParallelMPI Pa):
#
# if 's' in PV.name_index:
# NC.write_condstat('sk_arr', 'nan_array', self.sk_arr[:,:], Pa)
# if 'qt' in PV.name_index:
# NC.write_condstat('qtk_arr', 'nan_array', self.qt_arr[:,:], Pa)
#
# return

Loading