Back to home page

MITgcm

 
 

    


File indexing completed on 2025-09-19 05:08:16 UTC

view on githubraw file Latest commit c3be0435 on 2025-09-18 18:40:16 UTC
9c41af81f6 Timo*0001 C
                0002 C     Store directives for checkpoint level 1 AFTER do_oceanic_phys
                0003 C     has been called
                0004 C
                0005 C     This block of store directives is for variables that have been
                0006 C     computed in do_oceanics_phys. Storing them here avoids calling
                0007 C     do_oceanic_phys again in forward_step_ad, which should improve
                0008 C     performance because expensive parts of the model are not
                0009 C     recomputed (e.g. seaice).
                0010 C
                0011 CADJ STORE EmPmR          = comlev1, key = ikey_dynamics, kind = isbyte
                0012 CADJ STORE PmEpR          = comlev1, key = ikey_dynamics, kind = isbyte
                0013 CADJ STORE qsw            = comlev1, key = ikey_dynamics, kind = isbyte
                0014 CADJ STORE surfaceForcingU= comlev1, key = ikey_dynamics, kind = isbyte
                0015 CADJ STORE surfaceForcingV= comlev1, key = ikey_dynamics, kind = isbyte
                0016 #ifdef ATMOSPHERIC_LOADING
                0017 CADJ STORE phi0surf       = comlev1, key = ikey_dynamics, kind = isbyte
                0018 #endif
aa93ca8e85 Ciar*0019 CADJ STORE sIceLoad       = comlev1, key = ikey_dynamics, kind = isbyte
9c41af81f6 Timo*0020 
                0021 #ifdef ALLOW_OBCS
                0022 CADJ STORE salt, theta = comlev1, key = ikey_dynamics, kind = isbyte
                0023 # ifdef ALLOW_OBCS_NORTH
af61e5eb16 Mart*0024 #  ifdef NONLIN_FRSURF
                0025 CADJ STORE OBNeta      = comlev1, key = ikey_dynamics, kind = isbyte
                0026 #  endif
9c41af81f6 Timo*0027 CADJ STORE OBNt        = comlev1, key = ikey_dynamics, kind = isbyte
                0028 CADJ STORE OBNs        = comlev1, key = ikey_dynamics, kind = isbyte
af61e5eb16 Mart*0029 CADJ STORE OBNu        = comlev1, key = ikey_dynamics, kind = isbyte
                0030 CADJ STORE OBNv        = comlev1, key = ikey_dynamics, kind = isbyte
9c41af81f6 Timo*0031 #  ifdef ALLOW_OBCS_STEVENS
                0032 CADJ STORE OBNtStevens = comlev1, key = ikey_dynamics, kind = isbyte
                0033 CADJ STORE OBNsStevens = comlev1, key = ikey_dynamics, kind = isbyte
                0034 CADJ STORE OBNvStevens = comlev1, key = ikey_dynamics, kind = isbyte
                0035 #  endif /* ALLOW_OBCS_STEVENS */
                0036 # endif /* ALLOW_OBCS_NORTH */
                0037 
                0038 # ifdef ALLOW_OBCS_SOUTH
af61e5eb16 Mart*0039 #  ifdef NONLIN_FRSURF
                0040 CADJ STORE OBSeta      = comlev1, key = ikey_dynamics, kind = isbyte
                0041 #  endif
9c41af81f6 Timo*0042 CADJ STORE OBSt        = comlev1, key = ikey_dynamics, kind = isbyte
                0043 CADJ STORE OBSs        = comlev1, key = ikey_dynamics, kind = isbyte
af61e5eb16 Mart*0044 CADJ STORE OBSu        = comlev1, key = ikey_dynamics, kind = isbyte
                0045 CADJ STORE OBSv        = comlev1, key = ikey_dynamics, kind = isbyte
9c41af81f6 Timo*0046 #  ifdef ALLOW_OBCS_STEVENS
                0047 CADJ STORE OBStStevens = comlev1, key = ikey_dynamics, kind = isbyte
                0048 CADJ STORE OBSsStevens = comlev1, key = ikey_dynamics, kind = isbyte
                0049 CADJ STORE OBSvStevens = comlev1, key = ikey_dynamics, kind = isbyte
                0050 #  endif /* ALLOW_OBCS_STEVENS */
                0051 # endif /* ALLOW_OBCS_SOUTH */
                0052 
                0053 # ifdef ALLOW_OBCS_EAST
af61e5eb16 Mart*0054 #  ifdef NONLIN_FRSURF
                0055 CADJ STORE OBEeta      = comlev1, key = ikey_dynamics, kind = isbyte
                0056 #  endif
9c41af81f6 Timo*0057 CADJ STORE OBEt        = comlev1, key = ikey_dynamics, kind = isbyte
                0058 CADJ STORE OBEs        = comlev1, key = ikey_dynamics, kind = isbyte
af61e5eb16 Mart*0059 CADJ STORE OBEu        = comlev1, key = ikey_dynamics, kind = isbyte
                0060 CADJ STORE OBEv        = comlev1, key = ikey_dynamics, kind = isbyte
9c41af81f6 Timo*0061 #  ifdef ALLOW_OBCS_STEVENS
                0062 CADJ STORE OBEtStevens = comlev1, key = ikey_dynamics, kind = isbyte
                0063 CADJ STORE OBEsStevens = comlev1, key = ikey_dynamics, kind = isbyte
                0064 CADJ STORE OBEuStevens = comlev1, key = ikey_dynamics, kind = isbyte
                0065 #  endif /* ALLOW_OBCS_STEVENS */
                0066 # endif /* ALLOW_OBCS_EAST */
                0067 
                0068 # ifdef ALLOW_OBCS_WEST
af61e5eb16 Mart*0069 #  ifdef NONLIN_FRSURF
                0070 CADJ STORE OBWeta      = comlev1, key = ikey_dynamics, kind = isbyte
                0071 #  endif
9c41af81f6 Timo*0072 CADJ STORE OBWt        = comlev1, key = ikey_dynamics, kind = isbyte
                0073 CADJ STORE OBWs        = comlev1, key = ikey_dynamics, kind = isbyte
af61e5eb16 Mart*0074 CADJ STORE OBWu        = comlev1, key = ikey_dynamics, kind = isbyte
                0075 CADJ STORE OBWv        = comlev1, key = ikey_dynamics, kind = isbyte
9c41af81f6 Timo*0076 #  ifdef ALLOW_OBCS_STEVENS
                0077 CADJ STORE OBWtStevens = comlev1, key = ikey_dynamics, kind = isbyte
                0078 CADJ STORE OBWsStevens = comlev1, key = ikey_dynamics, kind = isbyte
                0079 CADJ STORE OBWuStevens = comlev1, key = ikey_dynamics, kind = isbyte
                0080 #  endif /* ALLOW_OBCS_STEVENS */
                0081 # endif /* ALLOW_OBCS_WEST */
                0082 
                0083 # ifdef ALLOW_PTRACERS
                0084 #  ifdef ALLOW_OBCS_NORTH
                0085 CADJ STORE OBNptr = comlev1, key = ikey_dynamics, kind = isbyte
                0086 #  endif /* ALLOW_OBCS_NORTH */
                0087 #  ifdef ALLOW_OBCS_SOUTH
                0088 CADJ STORE OBSptr = comlev1, key = ikey_dynamics, kind = isbyte
                0089 #  endif /* ALLOW_OBCS_SOUTH */
                0090 #  ifdef ALLOW_OBCS_EAST
                0091 CADJ STORE OBEptr = comlev1, key = ikey_dynamics, kind = isbyte
                0092 #  endif /* ALLOW_OBCS_EAST */
                0093 #  ifdef ALLOW_OBCS_WEST
                0094 CADJ STORE OBWptr = comlev1, key = ikey_dynamics, kind = isbyte
                0095 #  endif /* ALLOW_OBCS_WEST */
                0096 # endif  /* ALLOW_PTRACERS */
                0097 
                0098 # ifdef ALLOW_SEAICE
                0099 #  ifdef ALLOW_OBCS_NORTH
                0100 CADJ STORE OBNh  = comlev1, key = ikey_dynamics, kind = isbyte
                0101 CADJ STORE OBNa  = comlev1, key = ikey_dynamics, kind = isbyte
                0102 CADJ STORE OBNsn = comlev1, key = ikey_dynamics, kind = isbyte
                0103 #  ifdef SEAICE_VARIABLE_SALINITY
                0104 CADJ STORE OBNsl = comlev1, key = ikey_dynamics, kind = isbyte
                0105 #  endif
                0106 #  endif /* ALLOW_OBCS_NORTH */
                0107 #  ifdef ALLOW_OBCS_SOUTH
                0108 CADJ STORE OBSh  = comlev1, key = ikey_dynamics, kind = isbyte
                0109 CADJ STORE OBSa  = comlev1, key = ikey_dynamics, kind = isbyte
                0110 CADJ STORE OBSsn = comlev1, key = ikey_dynamics, kind = isbyte
                0111 #   ifdef SEAICE_VARIABLE_SALINITY
                0112 CADJ STORE OBSsl = comlev1, key = ikey_dynamics, kind = isbyte
                0113 #   endif
                0114 #  endif /* ALLOW_OBCS_SOUTH */
                0115 #  ifdef ALLOW_OBCS_EAST
                0116 CADJ STORE OBEh  = comlev1, key = ikey_dynamics, kind = isbyte
                0117 CADJ STORE OBEa  = comlev1, key = ikey_dynamics, kind = isbyte
                0118 CADJ STORE OBEsn = comlev1, key = ikey_dynamics, kind = isbyte
                0119 #   ifdef SEAICE_VARIABLE_SALINITY
                0120 CADJ STORE OBEsl = comlev1, key = ikey_dynamics, kind = isbyte
                0121 #   endif
                0122 #  endif /* ALLOW_OBCS_EAST */
                0123 #  ifdef ALLOW_OBCS_WEST
                0124 CADJ STORE OBWh  = comlev1, key = ikey_dynamics, kind = isbyte
                0125 CADJ STORE OBWa  = comlev1, key = ikey_dynamics, kind = isbyte
                0126 CADJ STORE OBWsn = comlev1, key = ikey_dynamics, kind = isbyte
                0127 #   ifdef SEAICE_VARIABLE_SALINITY
                0128 CADJ STORE OBWsl = comlev1, key = ikey_dynamics, kind = isbyte
                0129 #   endif
                0130 #  endif /* ALLOW_OBCS_WEST */
                0131 # endif /* ALLOW_SEAICE */
                0132 #endif /* ALLOW_OBCS */
                0133 
                0134 #ifdef ALLOW_DEPTH_CONTROL
                0135 CADJ STORE hFacC, hFacS, hFacW
                0136 CADJ &     = comlev1, key = ikey_dynamics, kind = isbyte
                0137 CADJ STORE recip_hFacC, recip_hFacS, recip_hFacW
                0138 CADJ &     = comlev1, key = ikey_dynamics, kind = isbyte
                0139 #endif
                0140 
                0141 cph the following needed to be moved here from do_oceanic_physics
                0142 cph to be visible down the road
                0143 
                0144 CADJ STORE rhoInSitu      = comlev1, key = ikey_dynamics, kind = isbyte
                0145 CADJ STORE surfaceForcingS= comlev1, key = ikey_dynamics, kind = isbyte
                0146 CADJ STORE surfaceForcingT= comlev1, key = ikey_dynamics, kind = isbyte
                0147 CADJ STORE IVDConvCount   = comlev1, key = ikey_dynamics, kind = isbyte
                0148 #ifdef ALLOW_KPP
                0149 CADJ STORE adjustColdSST_diag = comlev1, key = ikey_dynamics,
                0150 CADJ &     kind = isbyte
                0151 #endif
                0152 #ifdef ALLOW_PTRACERS
                0153 CADJ STORE surfaceForcingPTr  = comlev1, key = ikey_dynamics,
                0154 CADJ &     kind = isbyte
                0155 #endif
                0156 
                0157 #ifdef ALLOW_GMREDI
                0158 CADJ STORE Kwx            = comlev1, key = ikey_dynamics, kind = isbyte
                0159 CADJ STORE Kwy            = comlev1, key = ikey_dynamics, kind = isbyte
                0160 CADJ STORE Kwz            = comlev1, key = ikey_dynamics, kind = isbyte
                0161 # ifdef GM_BOLUS_ADVEC
                0162 CADJ STORE GM_PsiX        = comlev1, key = ikey_dynamics, kind = isbyte
                0163 CADJ STORE GM_PsiY        = comlev1, key = ikey_dynamics, kind = isbyte
                0164 # endif
                0165 #endif
                0166 
                0167 #ifdef ALLOW_KPP
                0168 CADJ STORE KPPghat        = comlev1, key = ikey_dynamics, kind = isbyte
                0169 CADJ STORE KPPfrac        = comlev1, key = ikey_dynamics, kind = isbyte
                0170 CADJ STORE KPPdiffKzS     = comlev1, key = ikey_dynamics, kind = isbyte
                0171 CADJ STORE KPPdiffKzT     = comlev1, key = ikey_dynamics, kind = isbyte
                0172 # ifdef ALLOW_SALT_PLUME
                0173 CADJ STORE KPPplumefrac   = comlev1, key = ikey_dynamics, kind = isbyte
                0174 # endif
                0175 #endif
                0176 
                0177 #ifdef ALLOW_GGL90
                0178 CADJ STORE GGL90diffKr    = comlev1, key = ikey_dynamics, kind = isbyte
                0179 #endif
                0180 
                0181 #ifdef ALLOW_SALT_PLUME
                0182 CADJ STORE SaltPlumeDepth = comlev1, key = ikey_dynamics, kind = isbyte
                0183 CADJ STORE saltPlumeFlux  = comlev1, key = ikey_dynamics, kind = isbyte
                0184 #endif
                0185 
                0186 #ifdef ALLOW_DOWN_SLOPE
                0187 CADJ STORE DWNSLP_deepK   = comlev1, key = ikey_dynamics
                0188 CADJ STORE DWNSLP_Transp  = comlev1, key = ikey_dynamics, kind = isbyte
                0189 #endif
                0190 
                0191 #ifdef ALLOW_SHELFICE
005af54e38 Jean*0192 # ifdef ALLOW_SHELFICE_REMESHING
                0193 CADJ STORE kTopC          = comlev1, key = ikey_dynamics
                0194 # endif
9c41af81f6 Timo*0195 CADJ STORE shelficeForcingT=comlev1, key = ikey_dynamics, kind = isbyte
                0196 CADJ STORE shelficeForcingS=comlev1, key = ikey_dynamics, kind = isbyte
00f81e6785 Ou W*0197 # ifdef ALLOW_STEEP_ICECAVITY
                0198 C     need to add this to avoid recomputing s/r do_oceanic_phys in
                0199 C     s/r forward_step, this implies that ALLOW_ADDFLUID is defined
                0200 CADJ STORE addMass         =comlev1, key = ikey_dynamics, kind = isbyte
                0201 # endif
9c41af81f6 Timo*0202 #endif /* ALLOW_SHELFICE */
                0203 
                0204 #if (defined NONLIN_FRSURF) || (defined ALLOW_DEPTH_CONTROL)
                0205 CADJ STORE theta,salt     = comlev1, key = ikey_dynamics, kind = isbyte
                0206 CADJ STORE etaH           = comlev1, key = ikey_dynamics, kind = isbyte
                0207 # ifdef ALLOW_CD_CODE
                0208 CADJ STORE etaNm1         = comlev1, key = ikey_dynamics, kind = isbyte
                0209 # endif
                0210 # ifdef ALLOW_PTRACERS
                0211 CADJ STORE pTracer        = comlev1, key = ikey_dynamics, kind = isbyte
                0212 # endif /* ALLOW_PTRACERS */
                0213 #endif /* NONLIN_FRSURF or ALLOW_DEPTH_CONTROL */
                0214 #ifdef NONLIN_FRSURF
                0215 # ifndef DISABLE_RSTAR_CODE
                0216 CADJ STORE rStarExpC      = comlev1, key = ikey_dynamics, kind = isbyte
                0217 # endif
                0218 #endif
7448700841 Mart*0219 
                0220 #ifndef EXCLUDE_PCELL_MIX_CODE
                0221 # ifdef ALLOW_KPP
                0222 CADJ STORE KPPviscAz      = comlev1, key = ikey_dynamics, kind = isbyte
                0223 # endif
                0224 # ifdef ALLOW_PP81
                0225 CADJ STORE PPviscAz       = comlev1, key = ikey_dynamics, kind = isbyte
                0226 # endif
                0227 # ifdef ALLOW_KL10
                0228 CADJ STORE KLviscAz       = comlev1, key = ikey_dynamics, kind = isbyte
                0229 # endif
                0230 # ifdef ALLOW_MY82
                0231 CADJ STORE MYviscAz       = comlev1, key = ikey_dynamics, kind = isbyte
                0232 # endif
                0233 # ifdef ALLOW_GGL90
                0234 CADJ STORE GGL90viscArU   = comlev1, key = ikey_dynamics, kind = isbyte
                0235 CADJ STORE GGL90viscArV   = comlev1, key = ikey_dynamics, kind = isbyte
                0236 # endif
                0237 #endif
4c91ca28d5 Ou W*0238 
                0239 #ifdef ALLOW_ECCO
                0240 # ifdef ALLOW_SEAICE
                0241 C     This is needed in the freeboard computation of the ecco generic
                0242 C     costfunction.
                0243 CADJ STORE AREA, HEFF     = comlev1, key = ikey_dynamics, kind = isbyte
                0244 CADJ STORE HSNOW          = comlev1, key = ikey_dynamics, kind = isbyte
                0245 # endif
                0246 #endif