-
Notifications
You must be signed in to change notification settings - Fork 44
Description
The NorESM2-LM Z-axis units are in density units, rho in kg m^-3.
While I'm not sure whether this is a standards compliance failure, it certainly makes sense to write a fix to convert the density into more common z axis units: depth or pressure. I had previously thought that density depended on temperature, salininty & pressure which would make creating a fix a fairly complex issue. Perhaps @zklaus or @jvegasbsc knows of a more straightforward equation?
I've also found some strange behaviour in the model behaviour. I don't fully understand this behaviour, as I don't understand how a density z-axis works, so perhaps someone can help me understand. To explain why I'm confused, I'll use the file on jasmin:
/badc/cmip6/data/CMIP6/CMIP/NCC/NorESM2-LM/historical/r1i1p1f1/Omon/thetao/gn/latest/thetao_Omon_NorESM2-LM_historical_r1i1p1f1_gn_186001-186912.nc
and look at the point (13, 290), which is (77S, 180.5E.), which is in the Southern ocean near Antarctica. The strange behaviour is with the temperature masks:
- If you look along the z axis, for instance in the water column (0, :, 13, 290):, there's water at the surface, then a masked region, then more water and a masked region. Does this mean that ice doesn't float in this model?
>>> c.data[0, :, 13, 290]
masked_array(data=[1.5298066139221191, 1.4884201288223267, --, --, --, --,
--, --, --, --, --, --, --, --, --, --, --, --, --,
1.7477706670761108, 1.8460874557495117,
1.8278450965881348, 1.613585114479065,
1.1960657835006714, 1.1990944147109985,
1.1253836154937744, 0.9993360042572021,
0.8532164096832275, 0.638198971748352,
0.4565475583076477, 0.23463541269302368,
0.025913620367646217, -0.17937014997005463,
-0.36640700697898865, -0.5377004146575928,
-0.6983621120452881, -0.896456778049469,
-0.8937646746635437, -0.8754621148109436,
-1.0617223978042603, -1.1499974727630615,
-1.005820631980896, -1.0168300867080688,
-1.1161129474639893, -1.183548092842102,
-1.233231544494629, -1.268554925918579,
-1.3060572147369385, -1.3390512466430664,
-1.365854024887085, -1.3898261785507202, --, --],
mask=[False, False, True, True, True, True, True, True,
True, True, True, True, True, True, True, True,
True, True, True, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, True, True],
fill_value=1e+20,
dtype=float32)
- However, at the same point at the end of this file, (-1, :, 13, 290), the sea floor becomes much shallower! This doesn't make sense to me, as the z axis doesn't vary with time, the rho is a fixed 1D array!
masked_array(data=[0.46962690353393555, 0.31001922488212585, --, --, --,
--, --, --, --, --, --, --, --, --, --, --, --, --, --,
--, --, --, --, --, 1.910569429397583,
2.874126672744751, 2.124772310256958,
2.432654619216919, 1.6376512050628662,
1.4526057243347168, 0.9151172041893005,
0.6075135469436646, 0.27238935232162476,
-0.04585791751742363, -0.3239957392215729,
-0.8409612774848938, -0.7318549752235413,
-0.9377536177635193, -0.9377527832984924,
-0.6493227481842041, -0.7179690003395081,
-0.7744532823562622, -0.8318480849266052,
-0.890520453453064, -0.9372105598449707,
-0.9872353076934814, -1.0290050506591797,
-1.037105679512024, --, --, --, --, --],
mask=[False, False, True, True, True, True, True, True,
True, True, True, True, True, True, True, True,
True, True, True, True, True, True, True, True,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
True, True, True, True, True],
fill_value=1e+20,
dtype=float32)
Weird, right?