Open
Description
Describe the bug
cite H.Pohlmann
I am trying to compare thetaot300 and thetaot700 for OHC between MPI-ESM1-2-LR and NorESM2-LM. I had expected the values to be similar to the SST data. However, the data from the NorESM2-LM model are mainly between -1 and 3 deg C. Are theses anomalies? Against which mean?
To Reproduce
...
Additional context
cite I.Bethke
I can confirm the problem and suspect a bug in the post-processing that vertically integrates. The code in question is https://github.com/NorESMhub/noresm2cmor/blob/master/source/m_modelsocn.F , lines 1517-1540:
c --- - Average over upper 300 m
CASE ('dzavg300')
fldtmp=1e20
DO j=1,jj
DO i=1,ii
IF (fld(i,j,1).NE.1e20) THEN
fldtmp(i,j,1)= (min(300.,pdepth(i,j),depth_bnds(2,1))
. -min(300.,pdepth(i,j),depth_bnds(1,1)))
. *pbot(i,j)/pdepth(i,j)
fld(i,j,1)=fld(i,j,1)*fldtmp(i,j,1)
END IF
DO k=2,kk
IF (fld(i,j,k).NE.1e20) THEN
fldtmp(i,j,k)= (min(300.,pdepth(i,j),depth_bnds(2,k))
. -min(300.,pdepth(i,j),depth_bnds(1,k)))
. *pbot(i,j)/pdepth(i,j)
fld(i,j,k)=fld(i,j,k-1)+fld(i,j,k)*fldtmp(i,j,k)
fldtmp(i,j,1)=fldtmp(i,j,1)+fldtmp(i,j,k)
ENDIF
ENDDO
IF (fld(i,j,1).NE.1e20)
. fld(i,j,1)=fld(i,j,1)/fldtmp(i,j,1)
ENDDO
ENDDO
! I think
fld(i,j,k)=fld(i,j,k-1)+fld(i,j,k)*fldtmp(i,j,k)
! needs to be changed to
fld(i,j,1)=fld(i,j,1)+fld(i,j,k)*fldtmp(i,j,k)