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 13478 – NEMO

Changeset 13478


Ignore:
Timestamp:
2020-09-16T18:37:46+02:00 (4 years ago)
Author:
dancopsey
Message:

Undo last change.

Location:
NEMO/branches/UKMO/NEMO_4.0.1_FKOSM_m11715
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.1_FKOSM_m11715/cfgs/SHARED/namelist_ref

    r13454 r13478  
    678678   ! 
    679679   ln_drgimp   = .true.    !  implicit top/bottom friction flag 
    680       ln_drgice_imp = .false. ! implicit ice-ocean drag 
    681680/ 
    682681!----------------------------------------------------------------------- 
  • NEMO/branches/UKMO/NEMO_4.0.1_FKOSM_m11715/src/ICE/iceupdate.F90

    r13454 r13478  
    2626   USE icectl         ! sea-ice: control prints 
    2727   USE bdy_oce , ONLY : ln_bdy 
    28    USE zdfdrg , ONLY: ln_drgice_imp 
    2928   ! 
    3029   USE in_out_manager ! I/O manager 
     
    324323      REAL(wp) ::   zat_u, zutau_ice, zu_t, zmodt   ! local scalar 
    325324      REAL(wp) ::   zat_v, zvtau_ice, zv_t, zrhoco  !   -      - 
    326       REAL(wp) ::   zflagi                          !   -      - 
    327325      !!--------------------------------------------------------------------- 
    328326      IF( ln_timing )   CALL timing_start('ice_update_tau') 
     
    357355      ! 
    358356      !                                      !==  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 
    367357      ! 
    368358      DO jj = 2, jpjm1                                !* update the stress WITHOUT an ice-ocean rotation angle 
     
    374364               &     / MAX( 1.0_wp , tmask(ji,jj,1) + tmask(ji  ,jj+1,1) ) 
    375365            !                                                   ! linearized quadratic drag formulation 
    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) ) 
     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) ) 
    378368            !                                                   ! stresses at the ocean surface 
    379369            utau(ji,jj) = ( 1._wp - zat_u ) * utau_oce(ji,jj) + zat_u * zutau_ice 
  • NEMO/branches/UKMO/NEMO_4.0.1_FKOSM_m11715/src/OCE/DYN/dynnxt.F90

    r13454 r13478  
    4848   USE prtctl         ! Print control 
    4949   USE timing         ! Timing 
    50    USE zdfdrg, ONLY: ln_drgice_imp, rCdU_top 
    5150#if defined key_agrif 
    5251   USE agrif_oce_interp 
     
    10099      REAL(wp) ::   zve3a, zve3n, zve3b, zvf, z1_2dt   !   -      - 
    101100      REAL(wp), ALLOCATABLE, DIMENSION(:,:)   ::   zue, zve 
    102       REAL(wp), ALLOCATABLE, DIMENSION(:,:)   ::   zutau, zvtau 
    103101      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::   ze3u_f, ze3v_f, zua, zva  
    104102      !!---------------------------------------------------------------------- 
     
    370368      ENDIF 
    371369      ! 
    372       IF ( iom_use("utau") ) THEN 
    373          IF ( ln_drgice_imp.OR.ln_isfcav ) THEN 
    374             ALLOCATE(zutau(jpi,jpj))  
    375             DO jj = 2, jpjm1 
    376                DO ji = 2, jpim1 
    377                   jk = miku(ji,jj)  
    378                   zutau(ji,jj) = utau(ji,jj) &  
    379                   &  + 0.5_wp * rau0 * (rCdU_top(ji+1,jj)+rCdU_top(ji,jj)) * ua(ji,jj,jk)  
    380                END DO 
    381             END DO 
    382             CALL lbc_lnk( 'dynnxt' , zutau, 'U', -1.) 
    383             CALL iom_put(  "utau", zutau(:,:) ) 
    384             DEALLOCATE(zutau) 
    385          ELSE 
    386             CALL iom_put(  "utau", utau(:,:) ) 
    387          ENDIF 
    388       ENDIF 
    389       ! 
    390       IF ( iom_use("vtau") ) THEN 
    391          IF ( ln_drgice_imp.OR.ln_isfcav ) THEN 
    392             ALLOCATE(zvtau(jpi,jpj)) 
    393             DO jj = 2, jpjm1 
    394                DO ji = 2, jpim1 
    395                   jk = mikv(ji,jj) 
    396                   zvtau(ji,jj) = vtau(ji,jj) & 
    397                   &  + 0.5_wp * rau0 * (rCdU_top(ji,jj+1)+rCdU_top(ji,jj)) * va(ji,jj,jk) 
    398                END DO 
    399             END DO 
    400             CALL lbc_lnk( 'dynnxt' , zvtau, 'V', -1.) 
    401             CALL iom_put(  "vtau", zvtau(:,:) ) 
    402             DEALLOCATE(zvtau) 
    403          ELSE 
    404             CALL iom_put(  "vtau", vtau(:,:) ) 
    405          ENDIF 
    406       ENDIF 
    407       ! 
    408370      IF(ln_ctl)   CALL prt_ctl( tab3d_1=un, clinfo1=' nxt  - Un: ', mask1=umask,   & 
    409371         &                       tab3d_2=vn, clinfo2=' Vn: '       , mask2=vmask ) 
  • NEMO/branches/UKMO/NEMO_4.0.1_FKOSM_m11715/src/OCE/DYN/dynspg_ts.F90

    r13454 r13478  
    14691469      !                    !==  Set the barotropic drag coef.  ==! 
    14701470      ! 
    1471       IF( ln_isfcav.OR.ln_drgice_imp ) THEN          ! top+bottom friction (ocean cavities) 
     1471      IF( ln_isfcav ) THEN          ! top+bottom friction (ocean cavities) 
    14721472          
    14731473         DO jj = 2, jpjm1 
     
    15321532      !                    !==  TOP stress contribution from baroclinic velocities  ==!   (no W/D case) 
    15331533      ! 
    1534       IF( ln_isfcav.OR.ln_drgice_imp ) THEN 
     1534      IF( ln_isfcav ) THEN 
    15351535         ! 
    15361536         IF( ln_bt_fw ) THEN                ! FORWARD integration: use NOW top baroclinic velocity 
  • NEMO/branches/UKMO/NEMO_4.0.1_FKOSM_m11715/src/OCE/DYN/dynzdf.F90

    r13454 r13478  
    141141            END DO 
    142142         END DO 
    143          IF( ln_isfcav.OR.ln_drgice_imp ) THEN    ! Ocean cavities (ISF) 
     143         IF( ln_isfcav ) THEN    ! Ocean cavities (ISF) 
    144144            DO jj = 2, jpjm1         
    145145               DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    258258            END DO 
    259259         END DO 
    260          IF ( ln_isfcav.OR.ln_drgice_imp ) THEN   ! top friction (always implicit) 
     260         IF ( ln_isfcav ) THEN   ! top friction (always implicit) 
    261261            DO jj = 2, jpjm1 
    262262               DO ji = 2, jpim1 
     
    423423            END DO 
    424424         END DO 
    425          IF ( ln_isfcav.OR.ln_drgice_imp ) THEN 
     425         IF ( ln_isfcav ) THEN 
    426426            DO jj = 2, jpjm1 
    427427               DO ji = 2, jpim1 
  • NEMO/branches/UKMO/NEMO_4.0.1_FKOSM_m11715/src/OCE/SBC/sbc_ice.F90

    r13454 r13478  
    6161   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   evap_ice       !: sublimation                              [kg/m2/s] 
    6262   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   devap_ice      !: sublimation sensitivity                [kg/m2/s/K] 
     63   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   rCdU_ice       !: ice-ocean drag at T-point (<0)               [m/s] 
    6364   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   qns_oce        !: non solar heat flux over ocean              [W/m2] 
    6465   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   qsr_oce        !: non solar heat flux over ocean              [W/m2] 
     
    7071   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   wndm_ice       !: wind speed module at T-point                 [m/s] 
    7172   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   sstfrz         !: wind speed module at T-point                 [m/s] 
    72    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   rCdU_ice       !: ice-ocean drag at T-point (<0)               [m/s] 
    7373   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tsfc_ice       !: sea ice surface skin temperature (on categories) 
    7474#endif 
     
    129129         &      dqns_ice(jpi,jpj,jpl) , tn_ice   (jpi,jpj,jpl) , alb_ice    (jpi,jpj,jpl) ,   & 
    130130         &      qml_ice (jpi,jpj,jpl) , qcn_ice  (jpi,jpj,jpl) , qtr_ice_top(jpi,jpj,jpl) ,   & 
     131         &      rCdU_ice(jpi,jpj)     ,                                                       & 
    131132         &      utau_ice(jpi,jpj)     , vtau_ice (jpi,jpj)     , wndm_ice   (jpi,jpj)     ,   & 
    132133         &      evap_ice(jpi,jpj,jpl) , devap_ice(jpi,jpj,jpl) , qprec_ice  (jpi,jpj)     ,   & 
    133134         &      qemp_ice(jpi,jpj)     , qevap_ice(jpi,jpj,jpl) , qemp_oce   (jpi,jpj)     ,   & 
    134135         &      qns_oce (jpi,jpj)     , qsr_oce  (jpi,jpj)     , emp_oce    (jpi,jpj)     ,   & 
    135          &      emp_ice (jpi,jpj)     , tsfc_ice (jpi,jpj,jpl) , sstfrz     (jpi,jpj)     ,   & 
    136          &      rCdU_ice   (jpi,jpj)  , STAT= ierr(2) ) 
     136         &      emp_ice (jpi,jpj)     , tsfc_ice (jpi,jpj,jpl) , sstfrz     (jpi,jpj)     , STAT= ierr(2) ) 
    137137#endif 
    138138 
  • NEMO/branches/UKMO/NEMO_4.0.1_FKOSM_m11715/src/OCE/SBC/sbcmod.F90

    r13454 r13478  
    554554      ENDIF 
    555555      ! 
     556      CALL iom_put( "utau", utau )   ! i-wind stress   (stress can be updated at each time step in sea-ice) 
     557      CALL iom_put( "vtau", vtau )   ! j-wind stress 
     558      ! 
    556559      IF(ln_ctl) THEN         ! print mean trends (used for debugging) 
    557560         CALL prt_ctl(tab2d_1=fr_i              , clinfo1=' fr_i    - : ', mask1=tmask ) 
  • NEMO/branches/UKMO/NEMO_4.0.1_FKOSM_m11715/src/OCE/ZDF/zdfdrg.F90

    r13454 r13478  
    3232   USE lib_mpp        ! distributed memory computing 
    3333   USE prtctl         ! Print control 
    34    USE sbc_oce, ONLY: nn_ice  
    3534 
    3635   IMPLICIT NONE 
     
    4746   LOGICAL          ::   ln_loglayer  ! logarithmic drag: Cd = vkarmn/log(z/z0) 
    4847   LOGICAL , PUBLIC ::   ln_drgimp    ! implicit top/bottom friction flag 
    49    LOGICAL , PUBLIC ::   ln_drgice_imp ! implicit ice-ocean drag  
    5048 
    5149   !                                 !!* Namelist namdrg_top & _bot: TOP or BOTTOM coefficient namelist * 
     
    233231      INTEGER   ::   ios, ioptio   ! local integers 
    234232      !! 
    235       NAMELIST/namdrg/ ln_OFF, ln_lin, ln_non_lin, ln_loglayer, ln_drgimp, ln_drgice_imp 
     233      NAMELIST/namdrg/ ln_OFF, ln_lin, ln_non_lin, ln_loglayer, ln_drgimp 
    236234      !!---------------------------------------------------------------------- 
    237235      ! 
     
    256254         WRITE(numout,*) '      logarithmic drag: Cd = vkarmn/log(z/z0)   ln_loglayer = ', ln_loglayer 
    257255         WRITE(numout,*) '      implicit friction                         ln_drgimp   = ', ln_drgimp 
    258          WRITE(numout,*) '      implicit ice-ocean drag                   ln_drgice_imp  =', ln_drgice_imp 
    259256      ENDIF 
    260257      ! 
     
    267264      IF( ioptio /= 1 )   CALL ctl_stop( 'zdf_drg_init: Choose ONE type of drag coef in namdrg' ) 
    268265      ! 
    269       IF ( ln_drgice_imp.AND.(.NOT.ln_drgimp) ) &  
    270          &                CALL ctl_stop( 'zdf_drg_init: ln_drgice_imp=T requires ln_drgimp=T' ) 
    271       ! 
    272       IF ( ln_drgice_imp.AND.( nn_ice /=2 ) ) & 
    273          &  CALL ctl_stop( 'zdf_drg_init: ln_drgice_imp=T requires si3' ) 
    274266      ! 
    275267      !                     !==  BOTTOM drag setting  ==!   (applied at seafloor) 
     
    282274      !                     !==  TOP drag setting  ==!   (applied at the top of ocean cavities) 
    283275      ! 
    284       IF( ln_isfcav.OR.ln_drgice_imp ) THEN              ! Ocean cavities: top friction setting 
    285          ALLOCATE( rCdU_top(jpi,jpj) ) 
    286       ENDIF 
    287       ! 
    288       IF( ln_isfcav ) THEN 
    289          ALLOCATE( rCd0_top(jpi,jpj) ) 
     276      IF( ln_isfcav ) THEN              ! Ocean cavities: top friction setting 
     277         ALLOCATE( rCd0_top(jpi,jpj), rCdU_top(jpi,jpj) ) 
    290278         CALL drg_init( 'TOP   '   , mikt       ,                                         &   ! <== in 
    291279            &           r_Cdmin_top, r_Cdmax_top, r_z0_top, r_ke0_top, rCd0_top, rCdU_top )   ! ==> out 
  • NEMO/branches/UKMO/NEMO_4.0.1_FKOSM_m11715/src/OCE/ZDF/zdfphy.F90

    r13454 r13478  
    2828   USE sbc_oce        ! surface module (only for nn_isf in the option compatibility test) 
    2929   USE sbcrnf         ! surface boundary condition: runoff variables 
    30    USE sbc_ice        ! sea ice drag 
    31  
    3230#if defined key_agrif 
    3331   USE agrif_oce_interp   ! interpavm 
     
    254252      ENDIF 
    255253      ! 
    256       IF ( ln_drgice_imp) THEN 
    257          IF ( ln_isfcav ) THEN 
    258             rCdU_top(:,:) = rCdU_top(:,:) + ssmask(:,:) * tmask(:,:,1) * rCdU_ice(:,:) 
    259          ELSE 
    260             rCdU_top(:,:) = rCdU_ice(:,:) 
    261          ENDIF 
    262       ENDIF 
    263       !  
    264254      !                       !==  Kz from chosen turbulent closure  ==!   (avm_k, avt_k) 
    265255      ! 
Note: See TracChangeset for help on using the changeset viewer.