Changeset 858 for codes/icosagcm/devel/Python/src
- Timestamp:
- 05/06/19 16:53:07 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/Python/src/kernels_caldyn_hevi.jin
r852 r858 127 127 END_BLOCK 128 128 129 KERNEL(caldyn_fast)130 !131 SELECT CASE(caldyn_thermo)132 CASE(thermo_boussinesq)133 FORALL_CELLS()134 ON_PRIMAL135 berni(CELL) = pk(CELL)136 ! from now on pk contains the vertically-averaged geopotential137 pk(CELL) = .5*(geopot(CELL)+geopot(UP(CELL)))138 END_BLOCK139 END_BLOCK140 CASE(thermo_theta)141 FORALL_CELLS()142 ON_PRIMAL143 berni(CELL) = .5*(geopot(CELL)+geopot(UP(CELL)))144 END_BLOCK145 END_BLOCK146 CASE(thermo_entropy)147 FORALL_CELLS()148 ON_PRIMAL149 berni(CELL) = .5*(geopot(CELL)+geopot(UP(CELL)))150 berni(CELL) = berni(CELL) + pk(CELL)*(cpp-theta(CELL,1)) ! Gibbs = Cp.T-Ts = T(Cp-s)151 END_BLOCK152 END_BLOCK153 CASE(thermo_variable_Cp)154 ! thermodynamics with variable Cp155 ! Cp(T) = Cp0 * (T/T0)^nu156 ! => h = Cp(T).T/(nu+1)157 158 FORALL_CELLS()159 ON_PRIMAL160 berni(CELL) = .5*(geopot(CELL)+geopot(UP(CELL)))161 cp_ik = cpp*(pk(CELL)/Treff)**nu162 berni(CELL) = berni(CELL) + pk(CELL)*(cp_ik/(nu+1.)-theta(CELL,1)) ! Gibbs = h-Ts = T(Cp/(nu+1)-s)163 END_BLOCK164 END_BLOCK165 CASE DEFAULT166 PRINT *, 'Unsupported value of caldyn_thermo : ',caldyn_thermo ! FIXME167 STOP168 END SELECT169 !170 FORALL_CELLS()171 ON_EDGES172 due = .5*(theta(CELL1,1)+theta(CELL2,1))*(pk(CELL2)-pk(CELL1)) + berni(CELL2)-berni(CELL1)173 du(EDGE) = du(EDGE) - SIGN*due174 u(EDGE) = u(EDGE) + tau*du(EDGE)175 END_BLOCK176 END_BLOCK177 !178 END_BLOCK179 180 129 KERNEL(coriolis) 181 130 !
Note: See TracChangeset
for help on using the changeset viewer.