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 4042 for branches/2013/dev_r4028_CNRS_LIM3 – NEMO

Ignore:
Timestamp:
2013-09-25T15:40:39+02:00 (11 years ago)
Author:
clem
Message:

new LIM3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_r4028_CNRS_LIM3/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90

    r3625 r4042  
    1111   !!            3.3  ! 2010-11  (G. Madec) ice-ocean stress always computed at each ocean time-step 
    1212   !!            3.4  ! 2011-01  (A Porter)  dynamical allocation 
     13   !!             -   ! 2012-10  (C. Rousset)  add lim_diahsb 
    1314   !!---------------------------------------------------------------------- 
    1415#if defined key_lim3 
     
    4243   USE limsbc          ! sea surface boundary condition 
    4344   USE limdia          ! Ice diagnostics 
     45   USE limdiahsb       ! Ice budget diagnostics 
    4446   USE limwri          ! Ice outputs 
    4547   USE limrst          ! Ice restarts 
    46    USE limupdate       ! update of global variables 
     48   USE limupdate1       ! update of global variables 
     49   USE limupdate2       ! update of global variables 
    4750   USE limvar          ! Ice variables switch 
    4851 
     
    5154   USE lib_mpp         ! MPP library 
    5255   USE wrk_nemo        ! work arrays 
     56   USE timing          ! Timing 
    5357   USE iom             ! I/O manager library 
    5458   USE in_out_manager  ! I/O manager 
    5559   USE prtctl          ! Print control 
     60 
     61#if defined key_bdy  
     62   USE bdyice_lim       ! unstructured open boundary data  (bdy_ice_lim routine) 
     63#endif 
    5664 
    5765   IMPLICIT NONE 
     
    98106      !!---------------------------------------------------------------------- 
    99107 
     108      IF( nn_timing == 1 )  CALL timing_start('sbc_ice_lim') 
     109 
    100110      CALL wrk_alloc( jpi,jpj,jpl, zalb_ice_os, zalb_ice_cs ) 
    101111 
     
    108118         ! 
    109119         IF( ln_nicep ) THEN      ! control print at a given point 
    110             jiindx = 44   ;   jjindx = 140 
     120            jiindx = 15   ;   jjindx = 46 
    111121            WRITE(numout,*) ' The debugging point is : jiindx : ',jiindx, ' jjindx : ',jjindx 
    112122         ENDIF 
     
    178188         d_oa_i_thd (:,:,:)   = 0._wp   ;   d_oa_i_trp (:,:,:)   = 0._wp 
    179189         ! 
    180          sfx    (:,:) = 0._wp 
     190         sfx    (:,:) = 0._wp   ;   sfx_thd  (:,:) = 0._wp 
    181191         sfx_bri(:,:) = 0._wp   ;   sfx_mec  (:,:) = 0._wp   ;   sfx_res  (:,:) = 0._wp 
    182192         fhbri  (:,:) = 0._wp   ;   fheat_mec(:,:) = 0._wp   ;   fheat_res(:,:) = 0._wp 
     
    185195         focea2D(:,:) = 0._wp 
    186196         fsup2D (:,:) = 0._wp 
    187          !  
     197 
     198         ! used in limthd.F90 
     199         rdvosif(:,:) = 0._wp   ! variation of ice volume at surface 
     200         rdvobif(:,:) = 0._wp   ! variation of ice volume at bottom 
     201         fdvolif(:,:) = 0._wp   ! total variation of ice volume 
     202         rdvonif(:,:) = 0._wp   ! lateral variation of ice volume 
     203         fstric (:,:) = 0._wp   ! part of solar radiation transmitted through the ice 
     204         ffltbif(:,:) = 0._wp   ! linked with fstric 
     205         qfvbq  (:,:) = 0._wp   ! linked with fstric 
     206         rdm_snw(:,:) = 0._wp   ! variation of snow mass per unit area 
     207         rdm_ice(:,:) = 0._wp   ! variation of ice mass per unit area 
     208         hicifp (:,:) = 0._wp   ! daily thermodynamic ice production.  
     209         ! 
    188210         diag_sni_gr(:,:) = 0._wp   ;   diag_lat_gr(:,:) = 0._wp 
    189211         diag_bot_gr(:,:) = 0._wp   ;   diag_dyn_gr(:,:) = 0._wp 
    190212         diag_bot_me(:,:) = 0._wp   ;   diag_sur_me(:,:) = 0._wp 
     213         diag_res_pr(:,:) = 0._wp   ;   diag_trp_vi(:,:) = 0._wp 
    191214         ! dynamical invariants 
    192215         delta_i(:,:) = 0._wp       ;   divu_i(:,:) = 0._wp       ;   shear_i(:,:) = 0._wp 
     
    199222                          CALL lim_dyn( kt )              ! Ice dynamics    ( rheology/dynamics ) 
    200223                          CALL lim_trp( kt )              ! Ice transport   ( Advection/diffusion ) 
    201                           CALL lim_var_agg(1)             ! aggregate categories, requested 
    202224                          CALL lim_var_glo2eqv            ! equivalent variables, requested for rafting 
    203225         IF( ln_nicep )   CALL lim_prt_state( jiindx, jjindx,-1, ' - ice dyn & trp - ' )   ! control print 
    204226                          CALL lim_itd_me                 ! Mechanical redistribution ! (ridging/rafting) 
     227                          CALL lim_var_agg( 1 )  
     228                          CALL lim_update1 
    205229         ENDIF 
     230!                         !- Change old values for new values 
     231                          old_u_ice(:,:)   = u_ice (:,:) 
     232                          old_v_ice(:,:)   = v_ice (:,:) 
     233                          old_a_i(:,:,:)   = a_i (:,:,:) 
     234                          old_v_s(:,:,:)   = v_s (:,:,:) 
     235                          old_v_i(:,:,:)   = v_i (:,:,:) 
     236                          old_e_s(:,:,:,:) = e_s (:,:,:,:) 
     237                          old_e_i(:,:,:,:) = e_i (:,:,:,:) 
     238                          old_oa_i(:,:,:)  = oa_i(:,:,:) 
     239                          old_smv_i(:,:,:) = smv_i (:,:,:) 
    206240         !                                           ! Ice thermodynamics  
    207241                          CALL lim_var_glo2eqv            ! equivalent variables 
     
    217251         !                                           ! Global variables update 
    218252                          CALL lim_var_agg( 1 )           ! requested by limupdate 
    219                           CALL lim_update                 ! Global variables update 
     253                          CALL lim_update2                 ! Global variables update 
     254#if defined key_bdy 
     255                          CALL bdy_ice_lim( kt )          ! clem modif: bdy ice 
     256#endif 
    220257                          CALL lim_var_glo2eqv            ! equivalent variables (outputs) 
    221258                          CALL lim_var_agg(2)             ! aggregate ice thickness categories 
     
    229266         IF( ( MOD( kt+nn_fsbc-1, ninfo ) == 0 .OR. ntmoy == 1 ) .AND. .NOT. lk_mpp )   & 
    230267            &             CALL lim_dia  
     268         IF (ln_limdiahsb) CALL lim_diahsb 
    231269                          CALL lim_wri( 1  )              ! Ice outputs  
     270         IF( kt == nit000 )   CALL iom_close( numrir )  ! clem: close input ice restart file 
    232271         IF( lrst_ice )   CALL lim_rst_write( kt )        ! Ice restart file  
    233272                          CALL lim_var_glo2eqv            ! ??? 
     
    248287      ! 
    249288      CALL wrk_dealloc( jpi,jpj,jpl, zalb_ice_os, zalb_ice_cs ) 
     289      ! 
     290      IF( nn_timing == 1 )  CALL timing_stop('sbc_ice_lim') 
    250291      ! 
    251292   END SUBROUTINE sbc_ice_lim 
     
    607648!       WRITE(numout,*) ' sfx_bri    : ', sfx_bri  (ki,kj) 
    608649!       WRITE(numout,*) ' sfx        : ', sfx      (ki,kj) 
    609 !       WRITE(numout,*) ' fsalt_res  : ', fsalt_res(ki,kj) 
     650!       WRITE(numout,*) ' sfx_res  : ', sfx_res(ki,kj) 
    610651        WRITE(numout,*) ' fmmec      : ', fmmec    (ki,kj) 
    611652        WRITE(numout,*) ' fhmec      : ', fhmec    (ki,kj) 
Note: See TracChangeset for help on using the changeset viewer.