Changeset 2566
- Timestamp:
- 2011-01-23T16:19:59+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90
r2528 r2566 25 25 USE sbc_oce ! surface boundary condition: ocean 26 26 27 USE albedo ! albedo parameters 27 28 USE lbclnk ! ocean lateral boundary condition - MPP exchanges 28 29 USE in_out_manager ! I/O manager 29 30 USE diaar5, ONLY : lk_diaar5 30 31 USE iom ! I/O library 31 USE albedo ! albedo parameters32 32 USE prtctl ! Print control 33 33 USE cpl_oasis3, ONLY : lk_cpl … … 62 62 !! *** ROUTINE lim_sbc_2 *** 63 63 !! 64 !! ** Purpose : Update surface ocean boundary condition over areas65 !! that are at least partially covered by sea-ice64 !! ** Purpose : Update surface ocean boundary condition over areas 65 !! that are at least partially covered by sea-ice 66 66 !! 67 67 !! ** Action : - comput. of the momentum, heat and freshwater/salt 68 !! fluxes at the ice-ocean interface.69 !! - Update 68 !! fluxes at the ice-ocean interface. 69 !! - Update the fluxes provided to the ocean 70 70 !! 71 71 !! ** Outputs : - qsr : sea heat flux: solar … … 99 99 IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~ ' 100 100 ! 101 r1_rdtice = 1. / rdt_ice101 r1_rdtice = 1._wp / rdt_ice 102 102 ! 103 103 soce_0(:,:) = soce ! constant SSS and ice salinity used in levitating sea-ice case … … 202 202 zemp = + emp(ji,jj) * frld(ji,jj) & ! e-p budget over open ocean fraction 203 203 & - tprecip(ji,jj) * ( 1. - frld(ji,jj) ) & ! liquid precipitation reaches directly the ocean 204 & + sprecip(ji,jj) * ( 1. - pfrld(ji,jj) ) & ! taking into account change in ice cover within the time step 205 & + rdmsnif(ji,jj) * r1_rdtice ! freshwaterflux due to snow melting 206 ! ! ice-covered fraction: 204 & + sprecip(ji,jj) * ( 1. - pfrld(ji,jj) ) & ! change in ice cover within the time step 205 & + rdmsnif(ji,jj) * r1_rdtice ! freshwater flux due to snow melting 207 206 #endif 208 207 ! 209 208 ! computing salt exchanges at the ice/ocean interface 210 zfons = 209 zfons = ( soce_0(ji,jj) - sice_0(ji,jj) ) * ( rdmicif(ji,jj) * r1_rdtice ) 211 210 ! 212 211 ! converting the salt flux from ice to a freshwater flux from ocean … … 251 250 SUBROUTINE lim_sbc_tau_2( kt , pu_oce, pv_oce ) 252 251 !!------------------------------------------------------------------- 253 !! *** ROUTINE lim_sbc_tau ***252 !! *** ROUTINE lim_sbc_tau_2 *** 254 253 !! 255 254 !! ** Purpose : Update the ocean surface stresses due to the ice … … 270 269 !! - here we make an approximation: taum is only computed every ice time step 271 270 !! This avoids mutiple average to pass from T -> U,V grids and next from U,V grids 272 !! to T grid. taum is used in TKE and GLS, which should not be too sensitive to this approximat on...271 !! to T grid. taum is used in TKE and GLS, which should not be too sensitive to this approximation... 273 272 !! 274 !! ** Outputs : - utau, vtau 275 !! - taum 273 !! ** Outputs : - utau, vtau : surface ocean i- and j-stress (u- & v-pts) updated with ice-ocean fluxes 274 !! - taum : modulus of the surface ocean stress (T-point) updated with ice-ocean fluxes 276 275 !!--------------------------------------------------------------------- 277 276 INTEGER , INTENT(in) :: kt ! ocean time-step index … … 281 280 REAL(wp) :: zfrldu, zat_u, zu_i, zutau_ice, zu_t, zmodt ! local scalar 282 281 REAL(wp) :: zfrldv, zat_v, zv_i, zvtau_ice, zv_t, zmodi ! - - 283 REAL(wp) :: zsang, zumt 282 REAL(wp) :: zsang, zumt ! - - 284 283 REAL(wp), DIMENSION(jpi,jpj) :: ztio_u, ztio_v ! ocean stress below sea-ice 285 284 !!--------------------------------------------------------------------- … … 314 313 DO ji = 1, jpim1 ! NO vector opt. 315 314 ! ! modulus of U_ice-U_oce at T-point 316 zumt = 0.25_wp * ( tmod_io(ji+1,jj) + tmod_io(ji +1,jj+1) &315 zumt = 0.25_wp * ( tmod_io(ji+1,jj) + tmod_io(ji ,jj ) & 317 316 & + tmod_io(ji,jj+1) + tmod_io(ji+1,jj+1) ) 318 317 ! ! update the modulus of stress at ocean surface … … 349 348 zvtau_ice = 0.5_wp * ( ztio_v(ji,jj+1) + ztio_v(ji+1,jj+1) ) 350 349 ! ! open-ocean (lead) fraction at U- & V-points (from T-point values) 351 zfrldu = 0.5_wp * ( frld(ji,jj) + frld(ji+1,jj 352 zfrldv = 0.5_wp * ( frld(ji,jj) + frld(ji 350 zfrldu = 0.5_wp * ( frld(ji,jj) + frld(ji+1,jj) ) 351 zfrldv = 0.5_wp * ( frld(ji,jj) + frld(ji,jj+1) ) 353 352 ! ! update the surface ocean stress (ice-cover wheighted) 354 353 utau(ji,jj) = zfrldu * utau_oce(ji,jj) + ( 1._wp - zfrldu ) * zutau_ice … … 388 387 DO ji = fs_2, fs_jpim1 389 388 ! ! ocean area at u- & v-points 390 zfrldu = 0.5_wp * ( frld(ji,jj) + frld(ji+1,jj 391 zfrldv = 0.5_wp * ( frld(ji,jj) + frld(ji 389 zfrldu = 0.5_wp * ( frld(ji,jj) + frld(ji+1,jj) ) 390 zfrldv = 0.5_wp * ( frld(ji,jj) + frld(ji,jj+1) ) 392 391 ! ! quadratic drag formulation without rotation 393 392 ! ! using instantaneous surface ocean current
Note: See TracChangeset
for help on using the changeset viewer.