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 11949 for NEMO/branches/2019/dev_r11943_MERGE_2019/src/ICE/iceistate.F90 – NEMO

Ignore:
Timestamp:
2019-11-22T15:29:17+01:00 (4 years ago)
Author:
acc
Message:

Merge in changes from 2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps. This just creates a fresh copy of this branch to use as the merge base. See ticket #2341

Location:
NEMO/branches/2019/dev_r11943_MERGE_2019/src
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src

    • Property svn:mergeinfo deleted
  • NEMO/branches/2019/dev_r11943_MERGE_2019/src/ICE/iceistate.F90

    r11536 r11949  
    6868CONTAINS 
    6969 
    70    SUBROUTINE ice_istate( kt ) 
     70   SUBROUTINE ice_istate( kt, Kbb, Kmm, Kaa ) 
    7171      !!------------------------------------------------------------------- 
    7272      !!                    ***  ROUTINE ice_istate  *** 
     
    8989      !!              where there is no ice 
    9090      !!-------------------------------------------------------------------- 
    91       INTEGER, INTENT(in) ::   kt   ! time step  
    92       !! 
     91      INTEGER, INTENT(in) :: kt            ! time step  
     92      INTEGER, INTENT(in) :: Kbb, Kmm, Kaa ! ocean time level indices 
     93      ! 
    9394      INTEGER  ::   ji, jj, jk, jl         ! dummy loop indices 
    9495      REAL(wp) ::   ztmelts 
     
    380381      IF( ln_ice_embd ) THEN            ! embedded sea-ice: deplete the initial ssh below sea-ice area 
    381382         ! 
    382          sshn(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0 
    383          sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 
     383         ssh(:,:,Kmm) = ssh(:,:,Kmm) - snwice_mass(:,:) * r1_rau0 
     384         ssh(:,:,Kbb) = ssh(:,:,Kbb) - snwice_mass(:,:) * r1_rau0 
    384385         ! 
    385386         IF( .NOT.ln_linssh ) THEN 
    386387            ! 
    387             WHERE( ht_0(:,:) > 0 )   ;   z2d(:,:) = 1._wp + sshn(:,:)*tmask(:,:,1) / ht_0(:,:) 
     388            WHERE( ht_0(:,:) > 0 )   ;   z2d(:,:) = 1._wp + ssh(:,:,Kmm)*tmask(:,:,1) / ht_0(:,:) 
    388389            ELSEWHERE                ;   z2d(:,:) = 1._wp   ;   END WHERE 
    389390            ! 
    390391            DO jk = 1,jpkm1                     ! adjust initial vertical scale factors                 
    391                e3t_n(:,:,jk) = e3t_0(:,:,jk) * z2d(:,:) 
    392                e3t_b(:,:,jk) = e3t_n(:,:,jk) 
    393                e3t_a(:,:,jk) = e3t_n(:,:,jk) 
     392               e3t(:,:,jk,Kmm) = e3t_0(:,:,jk) * z2d(:,:) 
     393               e3t(:,:,jk,Kbb) = e3t(:,:,jk,Kmm) 
     394               e3t(:,:,jk,Kaa) = e3t(:,:,jk,Kmm) 
    394395            END DO 
    395396            ! 
     
    398399            ! Horizontal scale factor interpolations 
    399400            ! -------------------------------------- 
    400             CALL dom_vvl_interpol( e3t_b(:,:,:), e3u_b(:,:,:), 'U' ) 
    401             CALL dom_vvl_interpol( e3t_b(:,:,:), e3v_b(:,:,:), 'V' ) 
    402             CALL dom_vvl_interpol( e3t_n(:,:,:), e3u_n(:,:,:), 'U' ) 
    403             CALL dom_vvl_interpol( e3t_n(:,:,:), e3v_n(:,:,:), 'V' ) 
    404             CALL dom_vvl_interpol( e3u_n(:,:,:), e3f_n(:,:,:), 'F' ) 
     401            CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3u(:,:,:,Kbb), 'U' ) 
     402            CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3v(:,:,:,Kbb), 'V' ) 
     403            CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3u(:,:,:,Kmm), 'U' ) 
     404            CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3v(:,:,:,Kmm), 'V' ) 
     405            CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3f(:,:,:), 'F' ) 
    405406            ! Vertical scale factor interpolations 
    406407            ! ------------------------------------ 
    407             CALL dom_vvl_interpol( e3t_n(:,:,:), e3w_n (:,:,:), 'W'  ) 
    408             CALL dom_vvl_interpol( e3u_n(:,:,:), e3uw_n(:,:,:), 'UW' ) 
    409             CALL dom_vvl_interpol( e3v_n(:,:,:), e3vw_n(:,:,:), 'VW' ) 
    410             CALL dom_vvl_interpol( e3u_b(:,:,:), e3uw_b(:,:,:), 'UW' ) 
    411             CALL dom_vvl_interpol( e3v_b(:,:,:), e3vw_b(:,:,:), 'VW' ) 
     408            CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w (:,:,:,Kmm), 'W'  ) 
     409            CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3uw(:,:,:,Kmm), 'UW' ) 
     410            CALL dom_vvl_interpol( e3v(:,:,:,Kmm), e3vw(:,:,:,Kmm), 'VW' ) 
     411            CALL dom_vvl_interpol( e3u(:,:,:,Kbb), e3uw(:,:,:,Kbb), 'UW' ) 
     412            CALL dom_vvl_interpol( e3v(:,:,:,Kbb), e3vw(:,:,:,Kbb), 'VW' ) 
    412413            ! t- and w- points depth 
    413414            ! ---------------------- 
    414415            !!gm not sure of that.... 
    415             gdept_n(:,:,1) = 0.5_wp * e3w_n(:,:,1) 
    416             gdepw_n(:,:,1) = 0.0_wp 
    417             gde3w_n(:,:,1) = gdept_n(:,:,1) - sshn(:,:) 
     416            gdept(:,:,1,Kmm) = 0.5_wp * e3w(:,:,1,Kmm) 
     417            gdepw(:,:,1,Kmm) = 0.0_wp 
     418            gde3w(:,:,1) = gdept(:,:,1,Kmm) - ssh(:,:,Kmm) 
    418419            DO jk = 2, jpk 
    419                gdept_n(:,:,jk) = gdept_n(:,:,jk-1) + e3w_n(:,:,jk  ) 
    420                gdepw_n(:,:,jk) = gdepw_n(:,:,jk-1) + e3t_n(:,:,jk-1) 
    421                gde3w_n(:,:,jk) = gdept_n(:,:,jk  ) - sshn (:,:) 
     420               gdept(:,:,jk,Kmm) = gdept(:,:,jk-1,Kmm) + e3w(:,:,jk  ,Kmm) 
     421               gdepw(:,:,jk,Kmm) = gdepw(:,:,jk-1,Kmm) + e3t(:,:,jk-1,Kmm) 
     422               gde3w(:,:,jk) = gdept(:,:,jk  ,Kmm) - ssh (:,:,Kmm) 
    422423            END DO 
    423424         ENDIF 
Note: See TracChangeset for help on using the changeset viewer.