Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial condition should use conservative temperature #206

Closed
aekiss opened this issue Jun 5, 2020 · 12 comments
Closed

Initial condition should use conservative temperature #206

aekiss opened this issue Jun 5, 2020 · 12 comments

Comments

@aekiss
Copy link
Contributor

aekiss commented Jun 5, 2020

Initial conditions are created by the script /g/data3/hh5/tmp/cosima/observations/postprocessing/woa13/tools/setup_WOA_initial_conditions.py from WOA13 decav data in /g/data/v45/akm157/data/WOA13v2/averaged_decades.

The WOA13 initial conditions are converted from in-situ temp to potential temperature (referenced to 0 dbar), and salinity from PSU to absolute salinity.

However the prognostic fields in the model are conservative temperature and practical salinity (temperature_variable=conservative_temp and eos_preteos10=true), so it seems to me the WOA13 in-situ temperature should be converted to conservative temperature via the GSW function CT_from_t, and WOA13 salinity should be left as PSU.

Related issues: #39, #140, #148

note corrections - in fact the WOA13 salinity initial condition is in PSU, so no conversion is needed for that field

@aekiss aekiss changed the title Initial conditions should be conservative temperature and PSU? Initial condition should use conservative temperature Jun 22, 2020
@aekiss
Copy link
Contributor Author

aekiss commented Jun 22, 2020

Here's the difference between potential and conservative temperature at the sea surface from p 98 of the TEOS-10 manual:
Screen Shot 2019-08-14 at Wed 14-8 8 57am

McDougall (2003) states that annual-mean potential temperature minus conservative temperature is between -0.15 C and 0.10 C for 99% of the surface ocean. There's also significant annual variability in this difference in many coastal oceans, exceeding 0.16 C in 1% of the surface ocean (McDougall 2003, Fig 7b):
Screen Shot 2020-06-07 at Sun 7-6 1 48pm

Also see Jackett et al (2006) fig 3:
Screen Shot 2020-06-07 at Sun 7-6 1 38pm
The absolute error in the deep ocean (say, <3C) appears to be <0.02C at almost all locations. It is hard to judge because the PDF is not plotted, but the plot suggests that the error will be negative in the deep ocean, i.e. potential temperature < conservative temperature, so if potential temperature is read in as conservative temperature the initial condition is biased cold. But the initial global-average temperature drift in the 0.1° IAF JRA55-do v1.4.0 spinup is also negative, and is around -0.02C/decade (see here) so would dominate over this initial bias after a few decades. The initial condition differences are also an order of magnitude smaller than the biases in the earlier IAF model runs - e.g. Kiss et al., 2020 figs 9, 10, 12.

So it seems this error is not (yet) worth fixing - there are more serious problems to deal with before it would be worthwhile.

But it should be borne in mind when constructing and interpreting bias plots.

@adele-morrison
Copy link

Is there a reason for not changing this over for future runs? It would only be a one line fix to that script, so happy to do that if that's the only thing holding this back.

@aekiss
Copy link
Contributor Author

aekiss commented Jun 23, 2020

Thanks Adele, that would be great. But before we do that I would like to have the current initial condition scripts put under git version control so we can record the current setup before altering it, so we have some record of how the current inputs were generated.

/g/data3/hh5/tmp/cosima/observations/postprocessing/woa13/tools is not tracked with git, but
/g/data3/hh5/tmp/cosima/observations/postprocessing/woa13/tools/initial_conditions_WOA is, and has a submodule for ocean-ic, which in turn has a submodule for regridder. So I think we could make a git repo for /g/data3/hh5/tmp/cosima/observations/postprocessing/woa13/tools and then make initial_conditions_WOA a submodule within that. @aidanheerdegen does that sound sensible?

Also I noticed there are some uncommitted changes to initial_conditions_WOA which should be committed and pushed to https://github.com/aidanheerdegen/initial_conditions_WOA

@aekiss
Copy link
Contributor Author

aekiss commented Jun 23, 2020

To keep things traceable it would also be good to include this new repo as a submodule within https://github.com/COSIMA/access-om2/tree/master/tools

@aidanheerdegen
Copy link
Contributor

Seems reasonable. Maybe the initial_conditions_WOA repo should be forked/moved to the COSIMA organisation at the same time.

@aekiss
Copy link
Contributor Author

aekiss commented Jun 24, 2020

Sounds good. @aidanheerdegen could you move https://github.com/aidanheerdegen/initial_conditions_WOA to COSIMA please?

...and @nichannah would you be happy to move https://github.com/nichannah/ocean-ic and https://github.com/nichannah/ocean-regrid to https://github.com/COSIMA?

That way all the core members of COSIMA can maintain them without fiddling around with personal forks.

@aidanheerdegen
Copy link
Contributor

@aekiss
Copy link
Contributor Author

aekiss commented Jun 24, 2020

thanks!

@aekiss
Copy link
Contributor Author

aekiss commented Jun 24, 2020

OK I've moved /g/data3/hh5/tmp/cosima/observations/postprocessing/woa13/tools/ to
/g/data/ik11/inputs/access-om2/initial_conditions_access-om2 and put it on github: https://github.com/COSIMA/initial_conditions_access-om2

The initial_conditions_WOA submodule uses https://github.com/COSIMA/initial_conditions_WOA and I've committed the local uncommitted changes from /g/data3/hh5/tmp/cosima/observations/postprocessing/woa13/tools/initial_conditions_WOA. I don't know what those changes were for and whether they were left uncommitted for a reason - @aidanheerdegen I don't suppose you recall? Maybe Fanghua made them. Anyway we can always backtrack it if we need to.

There were also some untracked files in /g/data3/hh5/tmp/cosima/observations/postprocessing/woa13/tools/initial_conditions_WOA that I didn't copy across. I suspect they won't be needed, with the possible exception of 10/makeic.py - this is the same as ocean-ic/makeic.py and I suspect was copied to 10 to deal with the code change in 10/make_ic.

Long story short: @adele157 you can have a go at fixing the initial condition in /g/data/ik11/inputs/access-om2/initial_conditions_access-om2 if you like. But the first step might be to check that it still works before you make any changes.

@aekiss
Copy link
Contributor Author

aekiss commented Sep 30, 2020

For the record, I've merged Adele's change: COSIMA/initial_conditions_access-om2#1

@aekiss
Copy link
Contributor Author

aekiss commented Sep 30, 2020

I've updated the repos that do the interpolation (I'll push them next week when I've tidied a few things) and now have some candidate initial conditions for the three resolutions: /g/data/ik11/inputs/access-om2/woa13/*/woa13_ts_01_mom*.nc

I've compared the new conservative temperature with the old potential temperature with this script
https://github.com/COSIMA/initial_conditions_access-om2/blob/master/check_initial_condition.ipynb
which you can view at
https://nbviewer.jupyter.org/github/COSIMA/initial_conditions_access-om2/blob/master/check_initial_condition.ipynb

The changes are mostly small, with 90% of differences falling within these ranges:
1 deg: -0.03113 to 0.01744 C
0.25 deg: -0.02705 to 0.01493 C
0.1 deg: -0.02924 to 0.01637 C

However there are some outliers, with the largest differences being about -0.2 and +1.0 C as this bivariate histogram shows, but the vast bulk of points are close to the zero line (note the log scale), with the cold (presumably deep) points biased slightly cold in the old initial conditions, as expected:
Unknown

Note that these statistics include the extrapolated values in the land masks.

The larger differences are mostly confined to the land masks, and therefore inconsequential:
Unknown-1

I think this extrapolation into the land mask may be responsible for some of the weird linear features in the histogram.

rmholmes added a commit to rmholmes/025deg_jra55_iaf that referenced this issue Oct 2, 2020
rmholmes added a commit to rmholmes/025deg_jra55_iaf that referenced this issue Oct 2, 2020
aekiss added a commit to COSIMA/ocean-regrid that referenced this issue Oct 15, 2020
fix corner array shape mismatch in write_scrip - closes #3 

fix seems to work: COSIMA/access-om2#206 (comment)
@aekiss
Copy link
Contributor Author

aekiss commented Oct 22, 2020

Closing -ocean_temp_salt.res.nc has been fixed at 1 deg, 0.25 deg and 0.1 deg in /g/data/ik11/inputs/access-om2/input_20201022/.

These ocean_temp_salt.res.nc files were generated by https://github.com/COSIMA/initial_conditions_access-om2/tree/f24b8f2

Comparison between old and new initial conditions is here:
https://github.com/COSIMA/initial_conditions_access-om2/blob/b4d41bb06e/check_initial_condition.ipynb
or view here:
https://nbviewer.jupyter.org/github/COSIMA/initial_conditions_access-om2/blob/b4d41bb06e/check_initial_condition.ipynb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants