- Timestamp:
- 2020-01-16T07:56:47+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.1_MIRROR_WAD_ZENV/src/OCE/DOM/domain.F90
r11715 r12326 79 79 INTEGER , DIMENSION(jpi,jpj) :: ik_top , ik_bot ! top and bottom ocean level 80 80 REAL(wp), DIMENSION(jpi,jpj) :: z1_hu_0, z1_hv_0 81 !CEOD 82 REAL(wp), DIMENSION(jpi,jpj) :: k_bot_i_min, k_bot_j_min 83 REAL(wp), DIMENSION(jpi,jpj) :: sum_e3t_0_min_ik 84 REAL(wp), DIMENSION(jpi,jpj) :: sum_e3t_0_min_jk 85 REAL(wp), DIMENSION(jpi,jpj) :: sum_e3t_0_min_ip1k 86 REAL(wp), DIMENSION(jpi,jpj) :: sum_e3t_0_min_jp1k 81 87 !!---------------------------------------------------------------------- 82 88 ! … … 155 161 hv_0(:,:) = hv_0(:,:) + e3v_0(:,:,jk) * vmask(:,:,jk) 156 162 END DO 163 !CEOD Here we need to work out whihc is the the shallowest point in terms of k 164 !levels at neighbouring points in i and je directions. 165 ! then we need to wkr out the proprtion of the water column down to ht_0 that 166 ! that level is for both i points. 167 ! e.g point i could say go down to level 10 but point i+1 only level 5 168 ! then work out depth of bottom of level 5 at point i over depth at point i to 169 ! level 10 170 ! This is needed later to work out where a u point depth should be when using 171 ! enveloping coordinates, as it wil be 1/2 depth at t point at level 5 for i,i+1 172 ! points Because level 5 at i can change in time, thus u bed can change in time! 173 ! What about under ice shelves? Need rto return to that later 174 175 ! 1) get the shallowest k level at nighbrougin i and j points store in ! k_bot_i_min 176 177 DO jj = 1, jpjm1 178 DO ji = 1, jpim1 ! SPG with the application of W/D gravity filters 179 k_bot_i_min(ji,jj) = MIN( ik_bot(ji,jj), ik_bot(ji+1,jj )) 180 k_bot_j_min(ji,jj) = MIN( ik_bot(ji,jj), ik_bot(ji, jj+1)) 181 ENDDO 182 ENDDO 183 ! 2) Work out the depth down to the shallowest k levle both at point i and i+1 184 ! (likewise for j) 185 186 sum_e3t_0_min_ik(:,:) = 0 187 sum_e3t_0_min_jk(:,:) = 0 188 sum_e3t_0_min_ip1k(:,:) = 0 189 sum_e3t_0_min_jp1k(:,:) = 0 190 191 !Get sum of e3t_0s down to local min 192 DO jj = 1, jpjm1 193 DO ji = 1, jpim1 194 DO jk = 1, k_bot_i_min(ji,jj) 195 196 sum_e3t_0_min_ik (ji,jj) = sum_e3t_0_min_ik (ji,jj) + e3t_0(ji ,jj,jk)*tmask(ji,jj,jk) 197 sum_e3t_0_min_ip1k(ji,jj) = sum_e3t_0_min_ip1k(ji,jj) + e3t_0(ji+1,jj,jk)*tmask(ji+1,jj,jk) 198 ENDDO 199 200 DO jk = 1, k_bot_j_min(ji,jj) 201 sum_e3t_0_min_jk (ji,jj) = sum_e3t_0_min_jk (ji,jj) + e3t_0(ji,jj ,jk)*tmask(ji,jj,jk) 202 sum_e3t_0_min_jp1k(ji,jj) = sum_e3t_0_min_jp1k(ji,jj) + e3t_0(ji,jj+1,jk)*tmask(ji,jj+1,jk) 203 ENDDO 204 ! 3) Then work out what fraction of the at rest water column that is, we later 205 ! multiply the now water depth by this scale to work out the bottom of the kth 206 ! level at time now in dynspg_ts 207 scaled_e3t_0_ik (ji,jj) = sum_e3t_0_min_ik (ji,jj)/( ht_0(ji ,jj ) + 1._wp - ssmask(ji,jj)) 208 scaled_e3t_0_jk (ji,jj) = sum_e3t_0_min_jk (ji,jj)/( ht_0(ji ,jj ) + 1._wp - ssmask(ji,jj)) 209 scaled_e3t_0_ip1k(ji,jj) = sum_e3t_0_min_ip1k(ji,jj)/( ht_0(ji+1,jj ) + 1._wp - ssmask(ji+1,jj)) 210 scaled_e3t_0_jp1k(ji,jj) = sum_e3t_0_min_jp1k(ji,jj)/( ht_0(ji ,jj+1) + 1._wp - ssmask(ji,jj+1)) 211 ENDDO 212 ENDDO 157 213 ! 158 214 ! !== time varying part of coordinate system ==!
Note: See TracChangeset
for help on using the changeset viewer.