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/LIM_SRC_3/limthd.F90 – NEMO

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

minor updates

File:
1 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      ! 
Note: See TracChangeset for help on using the changeset viewer.