Changeset 913 for trunk/NEMO/LIM_SRC_3/limdyn.F90
- Timestamp:
- 2008-04-29T14:40:00+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/LIM_SRC_3/limdyn.F90
r904 r913 18 18 USE ice 19 19 USE par_ice 20 USE sbc_oce ! Surface boundary condition: ocean fields 20 21 USE sbc_ice ! Surface boundary condition: ice fields 21 22 USE ice_oce … … 66 67 !!------------------------------------------------------------------------------------ 67 68 !! * Local variables 68 INTEGER :: ji, jj, jl, ja ! dummy loop indices 69 INTEGER :: i_j1, i_jpj ! Starting/ending j-indices for rheology 70 71 REAL(wp) :: & 72 ztairx, ztairy, & ! tempory scalars 73 zsang , zmod, & 74 ztglx , ztgly , & 75 zt11, zt12, zt21, zt22 , & 76 zustm, & 77 zsfrldmx2, zsfrldmy2, & 78 zu_ice, zv_ice, ztair2 79 80 REAL(wp),DIMENSION(jpj) :: & 81 zind, & ! i-averaged indicator of sea-ice 82 zmsk ! i-averaged of tmask 69 INTEGER :: ji, jj, jl, ja ! dummy loop indices 70 INTEGER :: i_j1, i_jpj ! Starting/ending j-indices for rheology 71 REAL(wp) :: zcoef ! temporary scalar 72 REAL(wp), DIMENSION(jpj) :: zind ! i-averaged indicator of sea-ice 73 REAL(wp), DIMENSION(jpj) :: zmsk ! i-averaged of tmask 74 REAL(wp), DIMENSION(jpi,jpj) :: zu_io, zv_io ! ice-ocean velocity 83 75 !!--------------------------------------------------------------------- 84 76 … … 159 151 160 152 ! computation of friction velocity 153 ! -------------------------------- 154 ! ice-ocean velocity at U & V-points (u_ice vi_ice at U- & V-points ; ssu_m, ssv_m at U- & V-points) 155 zu_io(:,:) = u_ice(:,:) - ssu_m(:,:) 156 zv_io(:,:) = v_ice(:,:) - ssv_m(:,:) 157 ! frictional velocity at T-point 158 DO jj = 2, jpjm1 159 DO ji = fs_2, fs_jpim1 ! vector opt. 160 ust2s(ji,jj) = 0.5 * cw & 161 & * ( zu_io(ji,jj) * zu_io(ji,jj) + zu_io(ji-1,jj) * zu_io(ji-1,jj) & 162 & + zv_io(ji,jj) * zv_io(ji,jj) + zv_io(ji,jj-1) * zv_io(ji,jj-1) ) * tms(ji,jj) 163 END DO 164 END DO 165 ! 166 ELSE ! no ice dynamics : transmit directly the atmospheric stress to the ocean 167 ! 168 zcoef = SQRT( 0.5 ) / rau0 161 169 DO jj = 2, jpjm1 162 DO ji = fs_2, fs_jpim1 163 164 zu_ice = u_ice(ji,jj) - u_oce(ji,jj) 165 zt11 = rhoco * zu_ice * zu_ice 166 167 zu_ice = u_ice(ji-1,jj) - u_oce(ji-1,jj) 168 zt12 = rhoco * zu_ice * zu_ice 169 170 zv_ice = v_ice(ji,jj) - v_oce(ji,jj) 171 zt21 = rhoco * zv_ice * zv_ice 172 173 zv_ice = v_ice(ji,jj-1) - v_oce(ji,jj-1) 174 zt22 = rhoco * zv_ice * zv_ice 175 ztair2 = ( ( utaui_ice(ji,jj) + utaui_ice(ji-1,jj) ) / 2. )**2 + & 176 ( ( vtaui_ice(ji,jj) + vtaui_ice(ji,jj-1) ) / 2. )**2 177 178 ! should not be weighted 179 zustm = ( at_i(ji,jj) ) * 0.5 * ( zt11 + zt12 + zt21 + zt22 ) & 180 & + ( 1.0 - at_i(ji,jj) ) * SQRT( ztair2 ) 181 182 ust2s(ji,jj) = ( zustm / rau0 ) * tms(ji,jj) 183 170 DO ji = fs_2, fs_jpim1 ! vector opt. 171 ust2s(ji,jj) = zcoef * tms(ji,jj) * SQRT( utau(ji,jj) * utau(ji,jj) + utau(ji-1,jj) * utau(ji-1,jj) & 172 & + vtau(ji,jj) * vtau(ji,jj) + vtau(ji,jj-1) * vtau(ji,jj-1) ) 184 173 END DO 185 174 END DO 186 187 ELSE ! If no ice dynamics 188 189 ! virer ca (key_lim_cp1) 190 DO jj = 2, jpjm1 191 DO ji = fs_2, fs_jpim1 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 194 zustm = SQRT( ztair2 ) 195 196 ust2s(ji,jj) = ( zustm / rau0 ) * tms(ji,jj) 197 END DO 198 END DO 199 175 ! 200 176 ENDIF 201 177
Note: See TracChangeset
for help on using the changeset viewer.