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 8371 for branches/2017/dev_r8183_ICEMODEL/NEMOGCM – NEMO

Ignore:
Timestamp:
2017-07-25T17:41:16+02:00 (7 years ago)
Author:
clem
Message:

minor updates

Location:
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3
Files:
3 edited

Legend:

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

    r8370 r8371  
    205205      END DO 
    206206 
    207       !------------------------------------------------------------------------------! 
    208       ! Thermodynamic computation (only on grid points covered by ice) 
    209       !------------------------------------------------------------------------------! 
    210  
    211       DO jl = 1, jpl      !loop over ice categories 
     207      !-------------------------------------------------------------------------------------------! 
     208      ! Thermodynamic computation (only on grid points covered by ice) => loop over ice categories 
     209      !-------------------------------------------------------------------------------------------! 
     210      DO jl = 1, jpl 
    212211 
    213212         ! select ice covered grid points 
     
    237236         IF( nidx > 0 ) THEN  ! If there is no ice, do nothing. 
    238237            !                                                                 
    239             s_i_new   (:) = 0._wp ; dh_s_tot (:) = 0._wp            ! --- some init --- ! 
    240             dh_i_surf (:) = 0._wp ; dh_i_bott(:) = 0._wp 
    241             dh_snowice(:) = 0._wp ; dh_i_sub (:) = 0._wp 
     238            s_i_new   (1:nidx) = 0._wp ; dh_s_tot (1:nidx) = 0._wp  ! --- some init --- ! 
     239            dh_i_surf (1:nidx) = 0._wp ; dh_i_bott(1:nidx) = 0._wp 
     240            dh_snowice(1:nidx) = 0._wp ; dh_i_sub (1:nidx) = 0._wp 
    242241 
    243242                              CALL lim_thd_1d2d( jl, 1 )            ! --- Move to 1D arrays --- ! 
     
    275274            ENDDO 
    276275            ! 
     276            ! Change thickness to volume 
     277            v_i_1d(1:nidx)   = ht_i_1d(1:nidx) * a_i_1d(1:nidx) 
     278            v_s_1d(1:nidx)   = ht_s_1d(1:nidx) * a_i_1d(1:nidx) 
     279            smv_i_1d(1:nidx) = sm_i_1d(1:nidx) * v_i_1d(1:nidx) 
     280            ! 
    277281                              CALL lim_thd_1d2d( jl, 2 )            ! --- Move to 2D arrays --- ! 
    278282            ! 
     
    281285         ! 
    282286      END DO 
    283  
    284       ! Change thickness to volume 
    285       at_i(:,:)    = SUM( a_i(:,:,:), dim=3 ) 
    286       v_i(:,:,:)   = ht_i(:,:,:) * a_i(:,:,:) 
    287       v_s(:,:,:)   = ht_s(:,:,:) * a_i(:,:,:) 
    288       smv_i(:,:,:) = sm_i(:,:,:) * v_i(:,:,:) 
    289       IF( ln_limdiachk ) CALL lim_cons_hsm(1, 'limthd', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 
    290  
    291       ! update ice age (in case a_i changed, i.e. becomes 0 or lateral melting in monocat) 
     287      at_i(:,:) = SUM( a_i(:,:,:), dim=3 ) 
     288 
     289      ! update ice age (in case a_i changed, i.e. becomes 0 or lateral melting) 
    292290      DO jl  = 1, jpl 
    293291         DO jj = 1, jpj 
     
    299297      END DO 
    300298 
     299      IF( ln_limdiachk ) CALL lim_cons_hsm(1, 'limthd', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 
     300 
    301301      CALL lim_var_zapsmall 
    302302 
    303       ! control checks 
    304303      IF( ln_limctl )    CALL lim_prt( kt, iiceprt, jiceprt, 1, ' - ice thermodyn. - ' )   ! control print 
    305304      ! 
    306  
    307305      !------------------------------------------------! 
    308306      !  Transport ice between thickness categories 
    309307      !------------------------------------------------! 
    310       ! Given thermodynamic growth rates, transport ice between thickness categories. 
    311308      IF( ln_limdiachk ) CALL lim_cons_hsm(0, 'limitd_th_rem', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 
    312309 
     
    322319      IF( ln_limdO )     CALL lim_thd_lac 
    323320       
    324       ! conservation test 
    325321      IF( ln_limdiachk ) CALL lim_cons_hsm(1, 'limthd_lac', zvi_b, zsmv_b, zei_b, zfw_b, zfs_b, zft_b) 
    326322 
    327       ! Control print 
    328       IF( ln_ctl )       CALL lim_prt3D( 'limthd' ) 
     323      IF( ln_ctl )       CALL lim_prt3D( 'limthd' )  ! Control print 
    329324      ! 
    330325      CALL wrk_dealloc( jpi,jpj, zu_io, zv_io, zfric ) 
     
    555550         CALL tab_1d_2d( nidx, idxice(1:nidx), diag_fc_bo_1d(1:nidx), diag_fc_bo        ) 
    556551         CALL tab_1d_2d( nidx, idxice(1:nidx), diag_fc_su_1d(1:nidx), diag_fc_su        ) 
     552         ! extensive variables 
     553         CALL tab_1d_2d( nidx, idxice(1:nidx), v_i_1d  (1:nidx), v_i  (:,:,jl) ) 
     554         CALL tab_1d_2d( nidx, idxice(1:nidx), v_s_1d  (1:nidx), v_s  (:,:,jl) ) 
     555         CALL tab_1d_2d( nidx, idxice(1:nidx), smv_i_1d(1:nidx), smv_i(:,:,jl) ) 
    557556      END SELECT 
    558557      ! 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/limthd_da.F90

    r8370 r8371  
    135135            wfx_lam_1d(ji) =  wfx_lam_1d(ji) + zda * r1_rdtice * ( rhoic * ht_i_1d(ji) + rhosn * ht_s_1d(ji) ) 
    136136             
    137             !! adjust e_i ??? 
    138 !!            e_i_1d(ji,1:nlay_i) = e_i_1d(ji,1:nlay_i) * ( 1._wp - zda / a_i_1d(ji) ) 
    139 !!            e_s_1d(ji,1)        = e_s_1d(ji,1)        * ( 1._wp - zda / a_i_1d(ji) ) 
    140              
    141137            ! new concentration 
    142138            a_i_1d(ji) = a_i_1d(ji) - zda 
  • branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/LIM_SRC_3/thd_ice.F90

    r8369 r8371  
    110110   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   sm_i_1d       !: Ice bulk salinity [ppt] 
    111111   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   s_i_new       !: Salinity of new ice at the bottom 
    112    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   a_ip_1d        !: 
    113    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   v_ip_1d        !: 
     112   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   a_ip_1d       !: 
     113   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   v_ip_1d       !: 
    114114   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   v_i_1d        !: 
     115   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   v_s_1d        !: 
     116   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:) ::   smv_i_1d      !: 
    115117 
    116118   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   t_s_1d   !: corresponding to the 2D var  t_s 
     
    195197         &      dh_s_tot (jpij) , dh_i_surf (jpij) , dh_i_sub(jpij) ,                                  &     
    196198         &      dh_i_bott(jpij) , dh_snowice(jpij) , sm_i_1d (jpij) , s_i_new(jpij) , & 
    197          &      a_ip_1d  (jpij) , v_ip_1d   (jpij) , v_i_1d  (jpij) , STAT=ierr(ii) ) 
     199         &      a_ip_1d  (jpij) , v_ip_1d   (jpij) , v_i_1d  (jpij) , v_s_1d (jpij) , smv_i_1d(jpij) , STAT=ierr(ii) ) 
    198200      ! 
    199201      ii = ii + 1 
Note: See TracChangeset for help on using the changeset viewer.