Changeset 888 for trunk/NEMO/LIM_SRC_3/limdyn.F90
- Timestamp:
- 2008-04-11T19:05:03+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC_3/limdyn.F90
r869 r888 16 16 USE dom_ice 17 17 USE dom_oce ! ocean space and time domain 18 USE taumod19 18 USE ice 20 19 USE par_ice 20 USE sbc_ice ! Surface boundary condition: ice fields 21 21 USE ice_oce 22 22 USE iceini … … 41 41 !!---------------------------------------------------------------------- 42 42 !! LIM 3.0, UCL-ASTR-LOCEAN-IPSL (2008) 43 !! $ Header: /home/opalod/NEMOCVSROOT/NEMO/LIM_SRC/limdyn.F90,v 1.5 2005/03/27 18:34:41 opalod Exp$44 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt43 !! $ Id: $ 44 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 45 45 !!---------------------------------------------------------------------- 46 46 … … 90 90 IF ( ln_limdyn ) THEN 91 91 92 ! ocean velocity93 u_oce(:,:) = u_io(:,:) * tmu(:,:)94 v_oce(:,:) = v_io(:,:) * tmv(:,:)95 96 92 old_u_ice(:,:) = u_ice(:,:) * tmu(:,:) 97 93 old_v_ice(:,:) = v_ice(:,:) * tmv(:,:) … … 162 158 ENDIF 163 159 164 ! Ice-Ocean stress165 ! ================166 DO jj = 2, jpjm1167 zsang = SIGN(1.e0, gphif(1,jj-1) ) * sangvg168 169 DO ji = fs_2, fs_jpim1170 ! computation of wind stress over ocean in X and Y direction171 #if defined key_coupled && defined key_lim_cp1172 ! ztairx = ( 1.0 - at_i(ji-1,jj) ) * gtaux(ji-1,jj) + &173 ! ( 1.0 - at_i(ji,jj) ) * gtaux(ji,jj ) + &174 ! ( 1.0 - at_i(ji-1,jj-1) ) * gtaux(ji-1,jj-1) + &175 ! ( 1.0 - at_i(ji,jj-1) ) * gtaux(ji,jj-1)176 177 ! ztairy = ( 1.0 - at_i(ji-1,jj) ) * gtauy(ji-1,jj ) + &178 ! ( 1.0 - at_i(ji,jj ) ) * gtauy(ji,jj ) + &179 ! ( 1.0 - at_i(ji-1,jj-1) ) * gtauy(ji-1,jj-1) + &180 ! ( 1.0 - at_i(ji,jj-1) ) * gtauy(ji,jj-1)181 #else182 ztairx = ( 2.0 - at_i(ji,jj) - at_i(ji+1,jj) ) * gtaux(ji,jj) / cai * cao183 ztairy = ( 2.0 - at_i(ji,jj) - at_i(ji,jj+1) ) * gtauy(ji,jj) / cai * cao184 185 zsfrldmx2 = at_i(ji,jj) + at_i(ji+1,jj)186 zsfrldmy2 = at_i(ji,jj) + at_i(ji,jj+1)187 188 #endif189 zu_ice = u_ice(ji,jj) - u_oce(ji,jj)190 zv_ice = v_ice(ji,jj) - v_oce(ji,jj)191 zmod = SQRT( zu_ice * zu_ice + zv_ice * zv_ice )192 193 ! quadratic drag formulation194 ztglx = zsfrldmx2 * rhoco * zmod * ( cangvg * zu_ice - zsang * zv_ice )195 ztgly = zsfrldmy2 * rhoco * zmod * ( cangvg * zv_ice + zsang * zu_ice )196 !197 ! ! IMPORTANT198 ! ! these lignes are bound to prevent numerical oscillations199 ! ! in the ice-ocean stress200 ! ! They are physically ill-based. There is a cleaner solution201 ! ! to try (remember discussion in Paris Gurvan)202 !203 ztglx = ztglx * exp( - zmod / 0.5 )204 ztgly = ztglx * exp( - zmod / 0.5 )205 206 tio_u(ji,jj) = - ( ztairx + 1.0 * ztglx ) / ( 2. * rau0 )207 tio_v(ji,jj) = - ( ztairy + 1.0 * ztgly ) / ( 2. * rau0 )208 END DO209 END DO210 211 160 ! computation of friction velocity 212 161 DO jj = 2, jpjm1 213 162 DO ji = fs_2, fs_jpim1 214 163 215 zu_ice = u_ice(ji,jj) - u_ io(ji,jj)164 zu_ice = u_ice(ji,jj) - u_oce(ji,jj) 216 165 zt11 = rhoco * zu_ice * zu_ice 217 166 218 zu_ice = u_ice(ji-1,jj) - u_ io(ji-1,jj)167 zu_ice = u_ice(ji-1,jj) - u_oce(ji-1,jj) 219 168 zt12 = rhoco * zu_ice * zu_ice 220 169 221 zv_ice = v_ice(ji,jj) - v_ io(ji,jj)170 zv_ice = v_ice(ji,jj) - v_oce(ji,jj) 222 171 zt21 = rhoco * zv_ice * zv_ice 223 172 224 zv_ice = v_ice(ji,jj-1) - v_ io(ji,jj-1)173 zv_ice = v_ice(ji,jj-1) - v_oce(ji,jj-1) 225 174 zt22 = rhoco * zv_ice * zv_ice 226 ztair2 = ( ( gtaux(ji,jj) + gtaux(ji-1,jj) ) / 2. )**2 + &227 ( ( gtauy(ji,jj) + gtauy(ji,jj-1) ) / 2. )**2175 ztair2 = ( ( utaui_ice(ji,jj) + utaui_ice(ji-1,jj) ) / 2. )**2 + & 176 ( ( vtaui_ice(ji,jj) + vtaui_ice(ji,jj-1) ) / 2. )**2 228 177 229 178 ! should not be weighted … … 241 190 DO jj = 2, jpjm1 242 191 DO ji = fs_2, fs_jpim1 243 #if defined key_coupled && defined key_lim_cp1 244 tio_u(ji,jj) = - ( gtaux(ji ,jj ) + gtaux(ji-1,jj ) & 245 & + gtaux(ji-1,jj-1) + gtaux(ji ,jj-1) ) / ( 4 * rau0 ) 246 247 tio_v(ji,jj) = - ( gtauy(ji ,jj ) + gtauy(ji-1,jj ) & 248 & + gtauy(ji-1,jj-1) + gtauy(ji ,jj-1) ) / ( 4 * rau0 ) 249 #else 250 tio_u(ji,jj) = - gtaux(ji,jj) / cai * cao / rau0 251 tio_v(ji,jj) = - gtauy(ji,jj) / cai * cao / rau0 252 #endif 253 ztair2 = ( ( gtaux(ji,jj) + gtaux(ji-1,jj) ) / 2. )**2 + & 254 ( ( gtauy(ji,jj) + gtauy(ji,jj-1) ) / 2. )**2 192 ztair2 = ( ( utaui_ice(ji,jj) + utaui_ice(ji-1,jj) ) / 2. )**2 + & 193 ( ( vtaui_ice(ji,jj) + vtaui_ice(ji,jj-1) ) / 2. )**2 255 194 zustm = SQRT( ztair2 ) 256 195 … … 262 201 263 202 CALL lbc_lnk( ust2s, 'T', 1. ) ! T-point 264 CALL lbc_lnk( tio_u, 'U', -1. ) ! I-point (i.e. ice U-V point)265 CALL lbc_lnk( tio_v, 'V', -1. ) ! I-point (i.e. ice U-V point)266 203 267 204 IF(ln_ctl) THEN ! Control print … … 269 206 CALL prt_ctl_info(' - Cell values : ') 270 207 CALL prt_ctl_info(' ~~~~~~~~~~~~~ ') 271 CALL prt_ctl(tab2d_1=tio_u , clinfo1=' lim_dyn : tio_u :', tab2d_2=tio_v , clinfo2=' tio_v :')272 208 CALL prt_ctl(tab2d_1=ust2s , clinfo1=' lim_dyn : ust2s :') 273 209 CALL prt_ctl(tab2d_1=divu_i , clinfo1=' lim_dyn : divu_i :')
Note: See TracChangeset
for help on using the changeset viewer.