New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 13669 for NEMO/branches/UKMO/NEMO_4.0.1_implicit_ice_drag/src/ICE/iceupdate.F90 – NEMO

Ignore:
Timestamp:
2020-10-23T19:23:00+02:00 (3 years ago)
Author:
dancopsey
Message:

Merge in implicit sea ice drag code from NEMO/branches/UKMO/NEMO_4.0.1_FKOSM_m11715

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.1_implicit_ice_drag/src/ICE/iceupdate.F90

    r11715 r13669  
    2626   USE icectl         ! sea-ice: control prints 
    2727   USE bdy_oce , ONLY : ln_bdy 
     28   USE zdfdrg , ONLY: ln_drgice_imp 
    2829   ! 
    2930   USE in_out_manager ! I/O manager 
     
    323324      REAL(wp) ::   zat_u, zutau_ice, zu_t, zmodt   ! local scalar 
    324325      REAL(wp) ::   zat_v, zvtau_ice, zv_t, zrhoco  !   -      - 
     326      REAL(wp) ::   zflagi                          !   -      - 
    325327      !!--------------------------------------------------------------------- 
    326328      IF( ln_timing )   CALL timing_start('ice_update_tau') 
     
    355357      ! 
    356358      !                                      !==  every ocean time-step  ==! 
     359      IF ( ln_drgice_imp ) THEN 
     360         ! Save drag with right sign to update top drag in the ocean implicit 
     361         ! friction  
     362         rCdU_ice(:,:) = -r1_rau0 * tmod_io(:,:) * at_i(:,:) * tmask(:,:,1)  
     363         zflagi = 0._wp 
     364      ELSE 
     365         zflagi = 1._wp 
     366      ENDIF 
    357367      ! 
    358368      DO jj = 2, jpjm1                                !* update the stress WITHOUT an ice-ocean rotation angle 
     
    364374               &     / MAX( 1.0_wp , tmask(ji,jj,1) + tmask(ji  ,jj+1,1) ) 
    365375            !                                                   ! linearized quadratic drag formulation 
    366             zutau_ice   = 0.5_wp * ( tmod_io(ji,jj) + tmod_io(ji+1,jj) ) * ( u_ice(ji,jj) - pu_oce(ji,jj) ) 
    367             zvtau_ice   = 0.5_wp * ( tmod_io(ji,jj) + tmod_io(ji,jj+1) ) * ( v_ice(ji,jj) - pv_oce(ji,jj) ) 
     376            zutau_ice   = 0.5_wp * ( tmod_io(ji,jj) + tmod_io(ji+1,jj) ) * ( u_ice(ji,jj) - zflagi * pu_oce(ji,jj) ) 
     377            zvtau_ice   = 0.5_wp * ( tmod_io(ji,jj) + tmod_io(ji,jj+1) ) * ( v_ice(ji,jj) - zflagi * pv_oce(ji,jj) ) 
    368378            !                                                   ! stresses at the ocean surface 
    369379            utau(ji,jj) = ( 1._wp - zat_u ) * utau_oce(ji,jj) + zat_u * zutau_ice 
Note: See TracChangeset for help on using the changeset viewer.