Qflux model with Diffusion into the deep ocean

The deep ocean layers 2-9 start at the annual maximal mixed layer depth. The thickness of layer 2 (DZ2) is 10m and the layer thicknesses increase geometrically s.t.

  DZ1X+DZ2+DZ3+...+DZlmom=1000m (lmom=9)

i.e.

  DZ1X=10/Q
  DZ3=10*Q
  DZ4=DZ3*Q, 
  ...  
  and DZ1=ann.max.mixed layer depth

DZ1X is not used; the dzo's to compute the vertical gradients are given by:

  dzo1=10/sqrt(Q)
  dzo2=dzo1*Q
  dzo3=dzo2*Q
  etc. 
  Q=1.701...

The diffusion into the deep ocean is computed once every day using the temperature anomaly with respect to 'climatology' as tracer. The climatology is found by taking a 10-year mean of the Qflux model without a deep ocean that is used to initialize the deep ocean run.

More detailed description:

  • T1 = temperature of mixed layer (C) =ODATA(I,J,1)
  • T2 = T between mixed layer and ann.max mixed layer depth =ODATA(I,J,4)
  • T3 = temperature at annual maximal mixed layer depth. =ODATA(I,J,5)
  • RTGO(I,J,L=1->lmom) is set to 0 at the beginning of the run
  • RTGO(I,J,L) = temperature anomaly for deep ocean layer L (2->9)
  • RTGO(I,J,1) BEFORE the diffusion computation equals the annual mean anomaly of T3 (based on the most recent 12-month period) and is kept constant throughout the month
  • RTGO(I,J,1) is changed during the diffusion; that change is added to T1,T2,T3 (ODATA(I,J,1),ODATA(I,J,4), and ODATA(I,J,5)), then RTGO(I,J,1) is reset to the current annual mean anomaly

The heat flux at interface of layers L and L+1 is given by

      ED*(RTGO(L)-RTGO(L+1))/dzo(L)  L=1,...,8

however, a semi-implicit scheme is used to compute these fluxes.

The following auxiliary arrays are used:

  • STG3(I,J) is set to 0 at the beginning of each month, at the end of each day T3 is added; at the end of month M, STG3 is saved in TG3M(I,J,M)
  • TG3M(I,J,M) initially contains a 10-year mean of Sum T3 for month M (the sum is taken over each day of month M) of the Q-flux run without deep ocean that is used to start up the current run, at the end of month M it is set to STG3.
  • DTG3(I,J) is set to 0 initially and is updated at the end of month M by adding (STG3-TG3M(.,.,M)). At that point we have:
  • ADTG3(I,J) = DTG3(I,J)/365 = 12-month running mean of T3 - T3clim; this is used to initialize RTGO(.,.,1) before the diffusion.

Note: After 1 year we have

  ADTG3 = ( SumD T3_yr1 - SumM init.TG3M )/365

After 2 years:

  SumM TG3M = SumD T3_yr1

hence

  DTG3 = SumD T3_yr1 - SumM init.TG3M + SumD(T3_yr2 - T3_yr1)
  ADTG3 = ( SumD T3_yr2 - SumM init.TG3M )/365

i.e. the year 1 contributions canceled

Compared to the Qflux model without deep ocean, the model with deep ocean needs one extra input file (ED.. diffusivity coefficients).

The code needs one call to ODIFS (at the end of each day). ODIFS calls ODFFUS (older name DIFFUS). The common block OCN containing TG3M,RTGO,STG3,DTG3 is needed in main and input, since these arrays have to be added to the restart file, RTGO(.,.,2-lmom) was also added to the acc-file for convenience. RTGO,STG3,DTG3 have to be set to 0 initially in INPUT, TG3M has to be computed from a preliminary run (use KCOPY=3 in the preliminary run) and added to the IC-file.