(Salt) Water Budget in GISS ModelE

Variables defined on atmosphere grid are not preceeded by 'a'. Variables defined on ocean grid are preceeded by 'o'.

The section "Without Fluxes" indicates the prognostic variables that contribute to the salt water mass (kg) for each reservoir.

After many subroutines, water mass has been removed from some reservoirs but not yet been added to the next reservoirs; water mass is temporarily stored in a "flux" array. After each subroutine, reservoirs which do not have unadded fluxes are not mentioned; for other reservoirs flux arrays are indicated.

Without Fluxes
AtmosQ = Q*AM*DXYP
Clouds = WM*AM*DXYP
LandIce = (SNOWLI+ACE1LI+ACE2LI)*FLICE*DXYP
Ground = GRNDW = see formula below
LakeIce = (SNOWI+ACE1I+MSI)*RSI*FLAKE*DXYP
LiqLake = MWL
SeaIce = (SNOWI+ACE1I+MSI)*RSI*FOCEAN*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP

NSNB = NSN_IJ(1)
NSNV = NSN_IJ(2)
WIJ = FB * {Sum[W_IJ(1:NGM,1)] + FR_SNOW_IJ(1) * Sum[WSN_IJ(1:NSNB,1)]} +
+ FV * {Sum[W_IJ(1:NGM,2)] + FR_SNOW_IJ(2) * Sum[WSN_IJ(1:NSNV,2)]}
GRNDW = RHOW * {FEARTH * WIJ + FLAKE * Sum[W_IJ(1:NGM,3)]} * DXYP

After MELT_SI: MELTI removed from LakeIce and SeaIce
LiqLake = MWL + MELTI(non ocean)
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean)

After CONDSE: PREC removed from AtmosQ
LandIce = (SNOWLI+ACE1LI+ACE2LI)*FLICE*DXYP + PREC*FLICE*DXYP
Ground = GRNDW + PREC*FEARTH*DXYP
LakeIce = (SNOWI+ACE1I+MSI)*RSI*FLAKE*DXYP + PREC*RSI*FLAKE*DXYP
LiqLake = MWL + MELTI(non ocean) + PREC*(1-RSI)*FLAKE*DXYP
SeaIce = (SNOWI+ACE1I+MSI)*RSI*FOCEAN*DXYP + PREC*RSI*FOCEAN*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean) + PREC*(1-RSI)*FOCEAN*DXYP

After PRECIP_SI: PREC added to and RUNPSI removed from LakeIce and SeaIce,
LandIce = (SNOWLI+ACE1LI+ACE2LI)*FLICE*DXYP + PREC*FLICE*DXYP
Ground = GRNDW + PREC*FEARTH*DXYP
LiqLake = MWL + MELTI(non ocean) + PREC*(1-RSI)*FLAKE*DXYP + RUNPSI*RSI*FLAKE*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean) + PREC*(1-RSI)*FOCEAN*DXYP + RUNPSI*RSI*FOCEAN*DXYP

After PRECIP_LI: PREC added to and RUNOLI removed from Landice
Ground = GRNDW + PREC*FEARTH*DXYP
LiqLake = MWL + MELTI(non ocean) + PREC*(1-RSI)*FLAKE*DXYP + RUNPSI*RSI*FLAKE*DXYP + RUNOLI(use 1)*FLICE*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean) + PREC*(1-RSI)*FOCEAN*DXYP + RUNPSI*RSI*FOCEAN*DXYP

After PRECIP_LK: PREC, RUNPSI and RUNOLI added to LiqLake
Ground = GRNDW + PREC*FEARTH*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean) + PREC*(1-RSI)*FOCEAN*DXYP + RUNPSI*RSI*FOCEAN*DXYP

After PRECIP_OC: PREC and RUNPSI added to LiqOcen
Ground = GRNDW + PREC*FEARTH*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean)

After EARTH: EVAPOR(4) added to AtmosQ; PREC added to and RUNOE removed from Ground
Ground = GRNDW + EVAPOR(4)*FEARTH*DXYP
LiqLake = MWL + RUNOE*FEARTH*DXYO
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean)

After ATM_DIFFUS: EVAPOR(1:3) added to AtmosQ
LandIce = (SNOWLI+ACE1LI+ACE2LI)*FLICE*DXYP - EVAPOR(3)*FLICE*DXYP
LakeIce = (SNOWI+ACE1I+MSI)*RSI*FLAKE*DXYP - EVAPOR(2)*RSI*FLAKE*DXYP
LiqLake = MWL + RUNOE*FEARTH*DXYO - EVAPOR(1)*(1-RSI)*FLAKE*DXYP
SeaIce = (SNOWI+ACE1I+MSI)*RSI*FOCEAN*DXYP - EVAPOR(2)*RSI*FOCEAN*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean) - EVAPOR(1)*(1-RSI)*FOCEAN*DXYP
After SURFCE
LandIce = (SNOWLI+ACE1LI+ACE2LI)*FLICE*DXYP - EVAPOR(3)*FLICE*DXYP
LakeIce = (SNOWI+ACE1I+MSI)*RSI*FLAKE*DXYP - EVAPOR(2)*RSI*FLAKE*DXYP
LiqLake = MWL + RUNOE*FEARTH*DXYO - EVAPOR(1)*(1-RSI)*FLAKE*DXYP
SeaIce = (SNOWI+ACE1I+MSI)*RSI*FOCEAN*DXYP - EVAPOR(2)*RSI*FOCEAN*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean) - EVAPOR(1)*(1-RSI)*FOCEAN*DXYP
After UNDERICE
LandIce = (SNOWLI+ACE1LI+ACE2LI)*FLICE*DXYP - EVAPOR(3)*FLICE*DXYP
LakeIce = (SNOWI+ACE1I+MSI)*RSI*FLAKE*DXYP - EVAPOR(2)*RSI*FLAKE*DXYP
LiqLake = MWL + RUNOE*FEARTH*DXYO - EVAPOR(1)*(1-RSI)*FLAKE*DXYP
SeaIce = (SNOWI+ACE1I+MSI)*RSI*FOCEAN*DXYP - EVAPOR(2)*RSI*FOCEAN*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean) - EVAPOR(1)*(1-RSI)*FOCEAN*DXYP

After GROUND_SI: EVAPOR(2) and RUNOSI removed from LakeIce and SeaIce
LandIce = (SNOWLI+ACE1LI+ACE2LI)*FLICE*DXYP - EVAPOR(3)*FLICE*DXYP
LiqLake = MWL + RUNOE*FEARTH*DXYO - EVAPOR(1)*(1-RSI)*FLAKE*DXYP + RUNOSI*RSI*FLAKE*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean) - EVAPOR(1)*(1-RSI)*FOCEAN*DXYP + RUNOSI*RSI*FOCEAN*DXYP

After GROUND_LI: EVAPOR(3) and RUNOLI removed from LandIce
LiqLake = MWL + RUNOE*FEARTH*DXYO - EVAPOR(1)*(1-RSI)*FLAKE*DXYP + RUNOSI*RSI*FLAKE*DXYP + RUNOLI*FLICE*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean) - EVAPOR(1)*(1-RSI)*FOCEAN*DXYP + RUNOSI*RSI*FOCEAN*DXYP

After GROUND_LK: EVAPOR(3) and DMSI removed from and RUNOE, RUNOSI and RUNOLI added to LiqLake
LakeIce = (SNOWI+ACE1I+MSI)*RSI*FLAKE*DXYP + DMSI(1)*(1-RSI)*FLAKE*DXYP + DMSI(2)*RSI*FLAKE*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean) - EVAPOR(1)*(1-RSI)*FOCEAN*DXYP + RUNOSI*RSI*FOCEAN*DXYP

After RIVERF: river flow removed from LiqLake and added to LiqOcen
LakeIce = (SNOWI+ACE1I+MSI)*RSI*FLAKE*DXYP + DMSI(1)*(1-RSI)*FLAKE*DXYP + DMSI(2)*RSI*FLAKE*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean) - EVAPOR(1)*(1-RSI)*FOCEAN*DXYP + RUNOSI*RSI*FOCEAN*DXYP + FLOWO
After GROUND_E
LakeIce = (SNOWI+ACE1I+MSI)*RSI*FLAKE*DXYP + DMSI(1)*(1-RSI)*FLAKE*DXYP + DMSI(2)*RSI*FLAKE*DXYP
LiqOcen = oMO*oDXYP + MDWNIMP + MELTI(ocean) - EVAPOR(1)*(1-RSI)*FOCEAN*DXYP + RUNOSI*RSI*FOCEAN*DXYP + FLOWO

After GROUND_OC: MELTI and RUNOSI added to and EVAPOR(1) oDMSI removed from LiqOcen
LakeIce = (SNOWI+ACE1I+MSI)*RSI*FLAKE*DXYP + DMSI(1)*(1-RSI)*FLAKE*DXYP + DMSI(2)*RSI*FLAKE*DXYP
SeaIce = (SNOWI+ACE1I+MSI)*RSI*FOCEAN*DXYP + oDMSI(1)*(1-oRSI)*oFOCEAN*oDXYP + oDMSI(2)*oRSI*oFOCEAN*oDXYP
After OCONV
LakeIce = (SNOWI+ACE1I+MSI)*RSI*FLAKE*DXYP + DMSI(1)*(1-RSI)*FLAKE*DXYP + DMSI(2)*RSI*FLAKE*DXYP
SeaIce = (SNOWI+ACE1I+MSI)*RSI*FOCEAN*DXYP + oDMSI(1)*(1-oRSI)*oFOCEAN*oDXYP + oDMSI(2)*oRSI*oFOCEAN*oDXYP
After ODYNAM
LakeIce = (SNOWI+ACE1I+MSI)*RSI*FLAKE*DXYP + DMSI(1)*(1-RSI)*FLAKE*DXYP + DMSI(2)*RSI*FLAKE*DXYP
SeaIce = (SNOWI+ACE1I+MSI)*RSI*FOCEAN*DXYP + oDMSI(1)*(1-oRSI)*oFOCEAN*oDXYP + oDMSI(2)*oRSI*oFOCEAN*oDXYP
After OCEANS
LakeIce = (SNOWI+ACE1I+MSI)*RSI*FLAKE*DXYP + DMSI(1)*(1-RSI)*FLAKE*DXYP + DMSI(2)*RSI*FLAKE*DXYP
SeaIce = (SNOWI+ACE1I+MSI)*RSI*FOCEAN*DXYP + oDMSI(1)*(1-oRSI)*oFOCEAN*oDXYP + oDMSI(2)*oRSI*oFOCEAN*oDXYP

After FORM_SI: DMSI added to LakeIce and oDMSI added to SeaIce
After ADVSI

Notes:
EVAPOR is positive for dew and is negative for evaporation. RUNOLI array is used twice, to carry flux generated in PRECIP_LI and in GROUND_LI .

2024/04/16/03:30:20