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 8518 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceistate.F90 – NEMO

Ignore:
Timestamp:
2017-09-13T18:46:56+02:00 (7 years ago)
Author:
clem
Message:

changes in style - part6 - commits of the day

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/iceistate.F90

    r8515 r8518  
    1717   !!   ice_istate_init  :  initialization of ice state and namelist read 
    1818   !!---------------------------------------------------------------------- 
     19   USE par_oce        ! ocean parameters 
    1920   USE phycst         ! physical constant 
    2021   USE oce            ! dynamics and tracers variables 
    2122   USE dom_oce        ! ocean domain 
    22    USE sbc_oce , ONLY : sst_m, sss_m  
    23    USE sbc_ice , ONLY : tn_ice 
     23   USE sbc_oce , ONLY : sst_m, sss_m, ln_ice_embd  
     24   USE sbc_ice , ONLY : tn_ice, snwice_mass, snwice_mass_b 
    2425   USE eosbn2         ! equation of state 
     26   USE domvvl         ! Variable volume 
    2527   USE ice            ! sea-ice variables 
    26    USE par_oce        ! ocean parameters 
    2728   USE icevar         ! ice_var_salprof 
    2829   ! 
     
    9192      !!              where there is no ice (clem: I do not know why, is it mandatory?)  
    9293      !!-------------------------------------------------------------------- 
    93       INTEGER    :: ji, jj, jk, jl             ! dummy loop indices 
    94       REAL(wp)   :: ztmelts, zdh 
    95       INTEGER    :: i_hemis, i_fill, jl0 
    96       REAL(wp)   :: zarg, zV, zconv, zdv 
    97       REAL(wp), DIMENSION(jpi,jpj)     :: zswitch    ! ice indicator 
    98       REAL(wp), DIMENSION(jpi,jpj)     :: zht_i_ini, zat_i_ini, zvt_i_ini            !data from namelist or nc file 
    99       REAL(wp), DIMENSION(jpi,jpj)     :: zts_u_ini, zht_s_ini, zsm_i_ini, ztm_i_ini !data from namelist or nc file 
    100       REAL(wp), DIMENSION(jpi,jpj,jpl) :: zh_i_ini, za_i_ini                         !data by cattegories to fill 
    101       INTEGER , DIMENSION(4)           :: itest 
     94      INTEGER  ::   ji, jj, jk, jl             ! dummy loop indices 
     95      REAL(wp) ::   ztmelts, zdh 
     96      INTEGER  ::   i_hemis, i_fill, jl0 
     97      REAL(wp) ::   zarg, zV, zconv, zdv 
     98      INTEGER , DIMENSION(4)           ::   itest 
     99      REAL(wp), DIMENSION(jpi,jpj)     ::   z2d 
     100      REAL(wp), DIMENSION(jpi,jpj)     ::   zswitch    ! ice indicator 
     101      REAL(wp), DIMENSION(jpi,jpj)     ::   zht_i_ini, zat_i_ini, zvt_i_ini            !data from namelist or nc file 
     102      REAL(wp), DIMENSION(jpi,jpj)     ::   zts_u_ini, zht_s_ini, zsm_i_ini, ztm_i_ini !data from namelist or nc file 
     103      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zh_i_ini, za_i_ini                         !data by cattegories to fill 
    102104      !-------------------------------------------------------------------- 
    103105 
     
    119121      CALL eos_fzp( sss_m(:,:), t_bo(:,:) ) 
    120122      t_bo(:,:) = ( t_bo(:,:) + rt0 ) * tmask(:,:,1)  
    121  
    122123 
    123124      !-------------------------------------------------------------------- 
     
    377378         ! Melt pond volume and fraction 
    378379         IF ( ln_pnd ) THEN 
    379  
    380380            DO jl = 1, jpl 
    381  
    382381               a_ip_frac(:,:,jl) = 0.2 *  zswitch(:,:) 
    383382               h_ip     (:,:,jl) = 0.05 * zswitch(:,:) 
    384383               a_ip(:,:,jl)      = a_ip_frac(:,:,jl) * a_i (:,:,jl)  
    385384               v_ip(:,:,jl)      = h_ip     (:,:,jl) * a_ip(:,:,jl) 
    386  
    387             END DO 
    388  
     385            END DO 
    389386         ELSE 
    390  
    391387            a_ip(:,:,:)      = 0._wp 
    392388            v_ip(:,:,:)      = 0._wp 
    393389            a_ip_frac(:,:,:) = 0._wp 
    394390            h_ip     (:,:,:) = 0._wp 
    395  
    396391         ENDIF 
    397392         ! END MV MP 2016 
     
    437432      u_ice (:,:)     = 0._wp 
    438433      v_ice (:,:)     = 0._wp 
    439       stress1_i(:,:)  = 0._wp 
    440       stress2_i(:,:)  = 0._wp 
    441       stress12_i(:,:) = 0._wp 
    442  
    443       !-------------------------------------------------------------------- 
    444       ! 5) Moments for advection 
    445       !-------------------------------------------------------------------- 
    446  
    447       sxopw (:,:) = 0._wp  
    448       syopw (:,:) = 0._wp  
    449       sxxopw(:,:) = 0._wp  
    450       syyopw(:,:) = 0._wp  
    451       sxyopw(:,:) = 0._wp 
    452  
    453       sxice (:,:,:)  = 0._wp   ;   sxsn (:,:,:)  = 0._wp   ;   sxa  (:,:,:)  = 0._wp 
    454       syice (:,:,:)  = 0._wp   ;   sysn (:,:,:)  = 0._wp   ;   sya  (:,:,:)  = 0._wp 
    455       sxxice(:,:,:)  = 0._wp   ;   sxxsn(:,:,:)  = 0._wp   ;   sxxa (:,:,:)  = 0._wp 
    456       syyice(:,:,:)  = 0._wp   ;   syysn(:,:,:)  = 0._wp   ;   syya (:,:,:)  = 0._wp 
    457       sxyice(:,:,:)  = 0._wp   ;   sxysn(:,:,:)  = 0._wp   ;   sxya (:,:,:)  = 0._wp 
    458  
    459       sxc0  (:,:,:)  = 0._wp   ;   sxe  (:,:,:,:)= 0._wp    
    460       syc0  (:,:,:)  = 0._wp   ;   sye  (:,:,:,:)= 0._wp    
    461       sxxc0 (:,:,:)  = 0._wp   ;   sxxe (:,:,:,:)= 0._wp    
    462       syyc0 (:,:,:)  = 0._wp   ;   syye (:,:,:,:)= 0._wp    
    463       sxyc0 (:,:,:)  = 0._wp   ;   sxye (:,:,:,:)= 0._wp    
    464  
    465       sxsal  (:,:,:)  = 0._wp 
    466       sysal  (:,:,:)  = 0._wp 
    467       sxxsal (:,:,:)  = 0._wp 
    468       syysal (:,:,:)  = 0._wp 
    469       sxysal (:,:,:)  = 0._wp 
    470  
    471       sxage  (:,:,:)  = 0._wp 
    472       syage  (:,:,:)  = 0._wp 
    473       sxxage (:,:,:)  = 0._wp 
    474       syyage (:,:,:)  = 0._wp 
    475       sxyage (:,:,:)  = 0._wp 
    476  
     434      ! 
     435      !-------------------------------------------------------------------- 
     436      ! Snow-ice mass (case ice is fully embedded)                    |  
     437      !-------------------------------------------------------------------- 
     438      snwice_mass  (:,:) = tmask(:,:,1) * ( rhosn * vt_s(:,:) + rhoic * vt_i(:,:)  )   ! snow+ice mass 
     439      snwice_mass_b(:,:) = snwice_mass(:,:) 
     440      ! 
     441      IF( ln_ice_embd ) THEN            ! embedded sea-ice: deplete the initial ssh below sea-ice area 
     442 
     443         sshn(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0 
     444         sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 
     445 
     446         IF( .NOT.ln_linssh ) THEN 
     447             
     448            WHERE( ht_0(:,:) > 0 )   ;   z2d(:,:) = 1._wp + sshn(:,:)*tmask(:,:,1) / ht_0(:,:) 
     449            ELSEWHERE                ;   z2d(:,:) = 1._wp   ;   END WHERE 
     450          
     451            DO jk = 1,jpkm1                     ! adjust initial vertical scale factors                 
     452               e3t_n(:,:,jk) = e3t_0(:,:,jk) * z2d(:,:) 
     453               e3t_b(:,:,jk) = e3t_n(:,:,jk) 
     454               e3t_a(:,:,jk) = e3t_n(:,:,jk) 
     455            END DO 
     456             
     457            ! Reconstruction of all vertical scale factors at now and before time-steps 
     458            ! ========================================================================= 
     459            ! Horizontal scale factor interpolations 
     460            ! -------------------------------------- 
     461            CALL dom_vvl_interpol( e3t_b(:,:,:), e3u_b(:,:,:), 'U' ) 
     462            CALL dom_vvl_interpol( e3t_b(:,:,:), e3v_b(:,:,:), 'V' ) 
     463            CALL dom_vvl_interpol( e3t_n(:,:,:), e3u_n(:,:,:), 'U' ) 
     464            CALL dom_vvl_interpol( e3t_n(:,:,:), e3v_n(:,:,:), 'V' ) 
     465            CALL dom_vvl_interpol( e3u_n(:,:,:), e3f_n(:,:,:), 'F' ) 
     466            ! Vertical scale factor interpolations 
     467            ! ------------------------------------ 
     468            CALL dom_vvl_interpol( e3t_n(:,:,:), e3w_n (:,:,:), 'W'  ) 
     469            CALL dom_vvl_interpol( e3u_n(:,:,:), e3uw_n(:,:,:), 'UW' ) 
     470            CALL dom_vvl_interpol( e3v_n(:,:,:), e3vw_n(:,:,:), 'VW' ) 
     471            CALL dom_vvl_interpol( e3u_b(:,:,:), e3uw_b(:,:,:), 'UW' ) 
     472            CALL dom_vvl_interpol( e3v_b(:,:,:), e3vw_b(:,:,:), 'VW' ) 
     473            ! t- and w- points depth 
     474            ! ---------------------- 
     475            !!gm not sure of that.... 
     476            gdept_n(:,:,1) = 0.5_wp * e3w_n(:,:,1) 
     477            gdepw_n(:,:,1) = 0.0_wp 
     478            gde3w_n(:,:,1) = gdept_n(:,:,1) - sshn(:,:) 
     479            DO jk = 2, jpk 
     480               gdept_n(:,:,jk) = gdept_n(:,:,jk-1) + e3w_n(:,:,jk  ) 
     481               gdepw_n(:,:,jk) = gdepw_n(:,:,jk-1) + e3t_n(:,:,jk-1) 
     482               gde3w_n(:,:,jk) = gdept_n(:,:,jk  ) - sshn (:,:) 
     483            END DO 
     484         ENDIF 
     485      ENDIF 
     486       
    477487      !------------------------------------ 
    478488      ! 6) store fields at before time-step 
     
    488498      u_ice_b(:,:)     = u_ice(:,:) 
    489499      v_ice_b(:,:)     = v_ice(:,:) 
    490  
    491       ! MV MP 2016 
    492       IF ( nn_pnd_scheme > 0 ) THEN 
    493          sxap  (:,:,:) = 0._wp    ; sxvp  (:,:,:) = 0._wp  
    494          syap  (:,:,:) = 0._wp    ; syvp  (:,:,:) = 0._wp  
    495          sxxap (:,:,:) = 0._wp    ; sxxvp (:,:,:) = 0._wp  
    496          syyap (:,:,:) = 0._wp    ; syyvp (:,:,:) = 0._wp  
    497          sxyap (:,:,:) = 0._wp    ; sxyvp (:,:,:) = 0._wp 
    498       ENDIF 
    499       ! END MV MP 2016 
    500500 
    501501!!!clem 
Note: See TracChangeset for help on using the changeset viewer.