| DIAGNOSTICS_MODULE | Types |
A diagnostic object contains a bunch of explicitly named optional arrays of 2 and 3 dimensions In code, we can test for whether a particular item is wanted using something like:
if ( diag%W_ent%wanted ) diag%W_ent%val(:,:,:) = We(:,:,:)
It also contains a arrays of T_Diag_DB_Rec2 and T_Diag_DB_Rec3 that point to these explicitly named arrays. The scalars2 and scalars3 arrays can be used to quickly do repetitive tasks with all diagnostics.
The key names to be used in MarkDiagWanted are indicated in brackets in the comments following the declaration of the T_Diag_Vectors and T_Diag_Items
| LOGICAL :: created | |
| LOGICAL :: initialized | |
| LOGICAL :: db_initialized | |
| LOGICAL :: on | |
| LOGICAL :: enabled | |
| LOGICAL :: active | |
| TYPE T_POSEIDON_GRID,POINTER :: g | |
| INTEGER :: Nscalars1 | Number of defined items within scalars1 |
| INTEGER :: Nscalars2 | Number of defined items within scalars2 |
| INTEGER :: Nscalars3 | Number of defined items within scalars3 |
| INTEGER :: Nvectors1 | Number of defined items within vectors1 |
| INTEGER :: Nvectors2 | Number of defined items within vectors2 |
| INTEGER :: Nvectors3 | Number of defined items within vectors3 |
| TYPE T_DIAG_DB_REC1 :: scalars1(MAX_DIAGNOSTICS) | DB to the above 2-d optional arrays |
| TYPE T_DIAG_DB_REC2 :: scalars2(MAX_DIAGNOSTICS) | DB to the above 2-d optional arrays |
| TYPE T_DIAG_DB_REC3 :: scalars3(MAX_DIAGNOSTICS) | DB to the above 3-d optional arrays |
| TYPE T_DIAG_DB_REC2 :: Vectors1(MAX_DIAGNOSTICS) | DB to the above 2-d vector arrays |
| TYPE T_DIAG_DB_REC3 :: Vectors2(MAX_DIAGNOSTICS) | DB to the above 2-d vector arrays |
| TYPE T_DIAG_DB_REC4 :: Vectors3(MAX_DIAGNOSTICS) | DB to the above 3-d vector arrays |
| TYPE T_DIAG_VECTOR3 :: momTend | Tendency [dVdt] |
| TYPE T_DIAG_VECTOR3 :: momHydro | Tendency in hydro [dvHydro] |
| TYPE T_DIAG_VECTOR3 :: momGradP | Pressure gradient force [GradP] |
| TYPE T_DIAG_VECTOR3 :: momCoriolis | Coriolis [Cor] |
| TYPE T_DIAG_VECTOR3 :: momNonLinear | Non-linear momentum terms [NL] |
| TYPE T_DIAG_VECTOR3 :: momHdiffuse | Horizontal momentum diffusion [Hdif] |
| TYPE T_DIAG_VECTOR3 :: momVmix | Vertical diffusive momentum tendency (plus sflux) [Vmix] |
| TYPE T_DIAG_VECTOR3 :: momVadv | Vertical advective momentum tendency [Vadv] |
| TYPE T_DIAG_VECTOR3 :: momKFlux | Advecitve Cross-coordinate v momentum flux [Kflux] |
| TYPE T_DIAG_VECTOR3 :: momVFlux | Advecitve Cross-coordinate v momentum flux [Vflux] |
| TYPE T_DIAG_VECTOR3 :: momFilter | Shapiro Filtering [Filt] |
| TYPE T_DIAG_VECTOR3 :: Nu | Viscosity [Nu] |
| TYPE T_DIAG_VECTOR3 :: A_Current | A-grid current [Vel] |
| TYPE T_DIAG_VECTOR3 :: ViscBiharmA | Biharmonic viscosity [Abi] |
| TYPE T_DIAG_VECTOR3 :: ViscLapK | Laplacian viscosity [Kla] |
| TYPE T_DIAG_VECTOR3 :: momPVadv | |
| TYPE T_DIAG_VECTOR2 :: momAvePress | Vertical average of baroclinic pressure terms [Ap] |
| TYPE T_DIAG_VECTOR2 :: momAveForce | Vertical average of surface forcing [As] |
| TYPE T_DIAG_VECTOR2 :: momAveAdvct | Vertical average of momentum advection [Aa] |
| TYPE T_DIAG_VECTOR2 :: momAveFrict | Vertical average of horizontal friction [Af] |
| TYPE T_DIAG_VECTOR2 :: momAveTend | Vertical average momentum tendency [ATend] |
| TYPE T_DIAG_VECTOR2 :: momAveGradP | Barotropic Pressure gradient [AgradP] |
| TYPE T_DIAG_VECTOR2 :: momAveCoriolis | Barotropic Coriolis [ACor] |
| TYPE T_DIAG_VECTOR2 :: momAvedVdt | Change inside barotropic step [AdVdt] |
| TYPE T_DIAG_VECTOR2 :: momAveFx | Forcing for barotropic step [AFx] |
| TYPE T_DIAG_VECTOR2 :: momUSB | External mode mass fluxes [USB] |
| TYPE T_DIAG_VECTOR2 :: momUH | Vertical integral of u*h [UH] |
| TYPE T_DIAG_VECTOR2 :: momBolusFlux | Vertical integral of bolus fluxes [Bf] |
| TYPE T_DIAG_VECTOR2 :: momAveFilter | Shapiro Filtering [AFilt] |
| TYPE T_DIAG_VECTOR2 :: momAveVmix | Shapiro Filtering [AFilt] |
| TYPE T_DIAG_VECTOR2 :: momMassCorr | Vertical integral of mass flux correction [Uhc] |
| TYPE T_DIAG_VECTOR2 :: momRemapErr | Vertical remapping error [RemapErr] |
| TYPE T_DIAG_SCALAR3 :: W_ent | Cross-coorindinate mass flux (dyn m/sec) [W_ent] |
| TYPE T_DIAG_SCALAR3 :: W_z | Z-velocity [W_z] |
| TYPE T_DIAG_SCALAR3 :: Vert_Heat_Flux | Advecitve Cross-coordinate heat flux [wT] |
| TYPE T_DIAG_SCALAR3 :: Vert_Salt_Flux | Advecitve Cross-coordinate salt flux [wS] |
| TYPE T_DIAG_SCALAR3 :: Ri | Richardson number [Ri] |
| TYPE T_DIAG_SCALAR3 :: Kappa | Kappa (for heat) (m^2/s^2) [Kappa] |
| TYPE T_DIAG_SCALAR3 :: KFluxT | Vertical diffusive heat flux (W/m^2) [KFluxT] |
| TYPE T_DIAG_SCALAR3 :: KFluxS | Vertical diffusive salt flux (psu/m^2) [KFluxS] |
| TYPE T_DIAG_SCALAR3 :: Convergence | Horizontal mass flux convergence (m/s) [Conv] |
| TYPE T_DIAG_SCALAR3 :: H_e | Face thickness on east grid box (m) |
| TYPE T_DIAG_SCALAR3 :: H_n | Face thickness on north grid box (m) |
| TYPE T_DIAG_SCALAR3 :: Kappa_S | Kappa for salt(m^2/s^2) [Kappa_S] |
| TYPE T_DIAG_SCALAR2 :: Ext_Mass_eq | External mode mass equalization term [Emassc] |
| TYPE T_DIAG_SCALAR2 :: SST | Sea surface temperature [SST] |
| TYPE T_DIAG_SCALAR2 :: SSS | Sea surface salinity [SSS] |
| TYPE T_DIAG_SCALAR2 :: Ext_Mass_Change | Rate of change in mass by extmode [dpE] |
| TYPE T_DIAG_SCALAR2 :: Int_Mass_Change | Rate of change in mass by total [dpI] |
| TYPE T_DIAG_SCALAR2 :: Mixed_Layer_Depth | Mixed Layer depth [Hml] |
| TYPE T_DIAG_SCALAR2 :: Mixed_Layer_Entrainment | Mixed Layer entrainment rate [Wml] |
| TYPE T_DIAG_SCALAR2 :: Qbuoy | Mixed Layer buoyancy flux [Wml] |
| TYPE T_DIAG_SCALAR2 :: Bpen | Mixed Layer penetrating buoyancy flux [Wml] |
| TYPE T_DIAG_SCALAR2 :: Pendepth | e-folding scale for penrad [Pendep] |
| TYPE T_DIAG_SCALAR2 :: Penfrac | fraction of SW that penetrates [Penfr] |
| TYPE T_DIAG_SCALAR2 :: ML_Shear_Prod | |
| TYPE T_DIAG_VECTOR3 :: Hor_Heat_Flux | |
| TYPE T_DIAG_VECTOR3 :: Hor_Salt_Flux | |
| TYPE T_DIAG_VECTOR3 :: Hor_Heat_Diff | |
| TYPE T_DIAG_VECTOR3 :: Hor_Salt_Diff | |
| End Type T_Diagnostics |