Back to home page

MITgcm

 
 

    


File indexing completed on 2024-10-09 05:10:33 UTC

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