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 15340 – NEMO

Changeset 15340


Ignore:
Timestamp:
2021-10-07T09:02:23+02:00 (3 years ago)
Author:
clem
Message:

little optimization of ice ridging/rafting

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/ICE/icedyn_rdgrft.F90

    r15334 r15340  
    270270 
    271271      ! controls 
    272       IF( sn_cfctl%l_prtctl )   CALL ice_prt3D   ('icedyn_rdgrft')                                                        ! prints 
     272      IF( sn_cfctl%l_prtctl )   CALL ice_prt3D('icedyn_rdgrft')                                                           ! prints 
    273273      IF( ln_icectl    )   CALL ice_prt     (kt, iiceprt, jiceprt,-1, ' - ice dyn rdgrft - ')                             ! prints 
    274274      IF( ln_icediachk )   CALL ice_cons_hsm(1, 'icedyn_rdgrft', rdiag_v, rdiag_s, rdiag_t, rdiag_fv, rdiag_fs, rdiag_ft) ! conservation 
     
    518518      ! 
    519519      INTEGER , DIMENSION(jpij) ::   itest_rdg, itest_rft   ! test for conservation 
     520      LOGICAL , DIMENSION(jpij) ::   ll_shift         ! logical for doing calculation or not 
    520521      !!------------------------------------------------------------------- 
    521522      ! 
     
    538539         DO ji = 1, npti 
    539540 
    540             IF( apartf(ji,jl1) > 0._wp .AND. closing_gross(ji) > 0._wp ) THEN   ! only if ice is ridging 
     541            ! set logical to true when ridging 
     542            IF( apartf(ji,jl1) > 0._wp .AND. closing_gross(ji) > 0._wp ) THEN   ;   ll_shift(ji) = .TRUE. 
     543            ELSE                                                                ;   ll_shift(ji) = .FALSE. 
     544            ENDIF 
     545             
     546            IF( ll_shift(ji) ) THEN   ! only if ice is ridging 
    541547 
    542548               IF( a_i_2d(ji,jl1) > epsi10 ) THEN   ;   z1_ai(ji) = 1._wp / a_i_2d(ji,jl1) 
     
    628634         DO jk = 1, nlay_s 
    629635            DO ji = 1, npti 
    630                IF( apartf(ji,jl1) > 0._wp .AND. closing_gross(ji) > 0._wp ) THEN 
     636               IF( ll_shift(ji) ) THEN 
    631637                  ! Compute ridging /rafting fractions 
    632638                  afrdg = aridge(ji,jl1) * closing_gross(ji) * rDt_ice * z1_ai(ji) 
     
    649655         DO jk = 1, nlay_i 
    650656            DO ji = 1, npti 
    651                IF( apartf(ji,jl1) > 0._wp .AND. closing_gross(ji) > 0._wp ) THEN 
     657               IF( ll_shift(ji) ) THEN 
    652658                  ! Compute ridging /rafting fractions 
    653659                  afrdg = aridge(ji,jl1) * closing_gross(ji) * rDt_ice * z1_ai(ji) 
     
    672678            DO ji = 1, npti 
    673679 
    674                IF( apartf(ji,jl1) > 0._wp .AND. closing_gross(ji) > 0._wp ) THEN 
     680               IF( ll_shift(ji) ) THEN 
    675681 
    676682                  ! Compute the fraction of ridged ice area and volume going to thickness category jl2 
     
    729735            DO jk = 1, nlay_s 
    730736               DO ji = 1, npti 
    731                   IF( apartf(ji,jl1) > 0._wp .AND. closing_gross(ji) > 0._wp )   & 
     737                  IF( ll_shift(ji) )   & 
    732738                     &   ze_s_2d(ji,jk,jl2) = ze_s_2d(ji,jk,jl2) + ( esrdg(ji,jk) * rn_fsnwrdg * fvol(ji)  +  & 
    733739                     &                                               esrft(ji,jk) * rn_fsnwrft * zswitch(ji) ) 
     
    738744            DO jk = 1, nlay_i 
    739745               DO ji = 1, npti 
    740                   IF( apartf(ji,jl1) > 0._wp .AND. closing_gross(ji) > 0._wp )   & 
     746                  IF( ll_shift(ji) )   & 
    741747                     &   ze_i_2d(ji,jk,jl2) = ze_i_2d(ji,jk,jl2) + eirdg(ji,jk) * fvol(ji) + eirft(ji,jk) * zswitch(ji) 
    742748               END DO 
Note: See TracChangeset for help on using the changeset viewer.