Skip to content

NorESM2-LM Z-axis and mask #895

@ledm

Description

@ledm

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?

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions