Ignore:
Timestamp:
2011-01-23T16:19:59+01:00 (10 years ago)
Author:
gm
Message:

v3.3 beta: small bug in changeset 2370 (ice-ocean stress computed at each kt)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90

    r2528 r2566  
    2525   USE sbc_oce          ! surface boundary condition: ocean 
    2626 
     27   USE albedo           ! albedo parameters 
    2728   USE lbclnk           ! ocean lateral boundary condition - MPP exchanges 
    2829   USE in_out_manager   ! I/O manager 
    2930   USE diaar5, ONLY :   lk_diaar5 
    3031   USE iom              ! I/O library 
    31    USE albedo           ! albedo parameters 
    3232   USE prtctl           ! Print control 
    3333   USE cpl_oasis3, ONLY : lk_cpl 
     
    6262      !!                ***  ROUTINE lim_sbc_2 *** 
    6363      !!   
    64       !! ** Purpose : Update surface ocean boundary condition over areas 
    65       !!      that are at least partially covered by sea-ice 
     64      !! ** Purpose :   Update surface ocean boundary condition over areas 
     65      !!              that are at least partially covered by sea-ice 
    6666      !!          
    6767      !! ** 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 
    7070      !!      
    7171      !! ** Outputs : - qsr     : sea heat flux:     solar  
     
    9999         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~~   ' 
    100100         ! 
    101          r1_rdtice = 1. / rdt_ice 
     101         r1_rdtice = 1._wp / rdt_ice 
    102102         ! 
    103103         soce_0(:,:) = soce                     ! constant SSS and ice salinity used in levitating sea-ice case 
     
    202202            zemp = + emp(ji,jj)     *         frld(ji,jj)      &   !  e-p budget over open ocean fraction  
    203203               &   - 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  
    207206#endif             
    208207            ! 
    209208            !  computing salt exchanges at the ice/ocean interface 
    210             zfons =  ( soce_0(ji,jj) - sice_0(ji,jj) ) * ( rdmicif(ji,jj) * r1_rdtice )  
     209            zfons = ( soce_0(ji,jj) - sice_0(ji,jj) ) * ( rdmicif(ji,jj) * r1_rdtice )  
    211210            ! 
    212211            !  converting the salt flux from ice to a freshwater flux from ocean 
     
    251250   SUBROUTINE lim_sbc_tau_2( kt , pu_oce, pv_oce ) 
    252251      !!------------------------------------------------------------------- 
    253       !!                ***  ROUTINE lim_sbc_tau *** 
     252      !!                ***  ROUTINE lim_sbc_tau_2 *** 
    254253      !!   
    255254      !! ** Purpose : Update the ocean surface stresses due to the ice 
     
    270269      !!        - here we make an approximation: taum is only computed every ice time step 
    271270      !!          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 approximaton... 
     271      !!          to T grid. taum is used in TKE and GLS, which should not be too sensitive to this approximation... 
    273272      !! 
    274       !! ** Outputs : - utau, vtau   : surface ocean i- and j-stress (u- & v-pts) updated with ice-ocean fluxes 
    275       !!              - taum         : modulus of the surface ocean stress (T-point) updated with ice-ocean fluxes 
     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 
    276275      !!--------------------------------------------------------------------- 
    277276      INTEGER ,                     INTENT(in) ::   kt               ! ocean time-step index 
     
    281280      REAL(wp) ::   zfrldu, zat_u, zu_i, zutau_ice, zu_t, zmodt   ! local scalar 
    282281      REAL(wp) ::   zfrldv, zat_v, zv_i, zvtau_ice, zv_t, zmodi   !   -      - 
    283       REAL(wp) ::   zsang, zumt                                          !    -         - 
     282      REAL(wp) ::   zsang, zumt                                   !    -         - 
    284283      REAL(wp), DIMENSION(jpi,jpj) ::   ztio_u, ztio_v   ! ocean stress below sea-ice 
    285284      !!--------------------------------------------------------------------- 
     
    314313               DO ji = 1, jpim1   ! NO vector opt. 
    315314                  !                                               ! 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  )    &    
    317316                     &               + tmod_io(ji,jj+1) + tmod_io(ji+1,jj+1)  ) 
    318317                  !                                               ! update the modulus of stress at ocean surface 
     
    349348               zvtau_ice  = 0.5_wp * ( ztio_v(ji,jj+1) + ztio_v(ji+1,jj+1) ) 
    350349               !                                   ! 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  ,jj+1) ) 
     350               zfrldu = 0.5_wp * ( frld(ji,jj) + frld(ji+1,jj) ) 
     351               zfrldv = 0.5_wp * ( frld(ji,jj) + frld(ji,jj+1) ) 
    353352               !                                   ! update the surface ocean stress (ice-cover wheighted) 
    354353               utau(ji,jj) = zfrldu * utau_oce(ji,jj) + ( 1._wp - zfrldu ) * zutau_ice 
     
    388387            DO ji = fs_2, fs_jpim1 
    389388               !                                            ! 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  ,jj+1) ) 
     389               zfrldu  = 0.5_wp * ( frld(ji,jj) + frld(ji+1,jj) ) 
     390               zfrldv  = 0.5_wp * ( frld(ji,jj) + frld(ji,jj+1) ) 
    392391               !                                            ! quadratic drag formulation without rotation 
    393392               !                                            ! using instantaneous surface ocean current 
Note: See TracChangeset for help on using the changeset viewer.