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 13469 for NEMO/branches/2020/temporary_r4_trunk/src/ICE/iceistate.F90 – NEMO

Ignore:
Timestamp:
2020-09-15T12:49:18+02:00 (4 years ago)
Author:
smasson
Message:

r4_trunk: first change of DO loops for routines to be merged, see #2523

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/temporary_r4_trunk/src/ICE/iceistate.F90

    r13466 r13469  
    287287         ! select ice covered grid points 
    288288         npti = 0 ; nptidx(:) = 0 
    289          DO jj = 1, jpj 
    290             DO ji = 1, jpi 
    291                IF ( zht_i_ini(ji,jj) > 0._wp ) THEN 
    292                   npti         = npti  + 1 
    293                   nptidx(npti) = (jj - 1) * jpi + ji 
    294                ENDIF 
    295             END DO 
    296          END DO 
     289         DO_2D_11_11 
     290            IF ( zht_i_ini(ji,jj) > 0._wp ) THEN 
     291               npti         = npti  + 1 
     292               nptidx(npti) = (jj - 1) * jpi + ji 
     293            ENDIF 
     294         END_2D 
    297295 
    298296         ! move to 1D arrays: (jpi,jpj) -> (jpi*jpj) 
     
    344342         CALL ice_var_salprof ! for sz_i 
    345343         DO jl = 1, jpl 
    346             DO jj = 1, jpj 
    347                DO ji = 1, jpi 
    348                   v_i (ji,jj,jl) = h_i(ji,jj,jl) * a_i(ji,jj,jl) 
    349                   v_s (ji,jj,jl) = h_s(ji,jj,jl) * a_i(ji,jj,jl) 
    350                   sv_i(ji,jj,jl) = MIN( MAX( rn_simin , s_i(ji,jj,jl) ) , rn_simax ) * v_i(ji,jj,jl) 
    351                END DO 
    352             END DO 
     344            DO_2D_11_11 
     345               v_i (ji,jj,jl) = h_i(ji,jj,jl) * a_i(ji,jj,jl) 
     346               v_s (ji,jj,jl) = h_s(ji,jj,jl) * a_i(ji,jj,jl) 
     347               sv_i(ji,jj,jl) = MIN( MAX( rn_simin , s_i(ji,jj,jl) ) , rn_simax ) * v_i(ji,jj,jl) 
     348            END_2D 
    353349         END DO 
    354350         ! 
    355351         DO jl = 1, jpl 
    356             DO jk = 1, nlay_s 
    357                DO jj = 1, jpj 
    358                   DO ji = 1, jpi 
    359                      t_s(ji,jj,jk,jl) = zts_3d(ji,jj,jl) 
    360                      e_s(ji,jj,jk,jl) = zswitch(ji,jj) * v_s(ji,jj,jl) * r1_nlay_s * & 
    361                         &               rhos * ( rcpi * ( rt0 - t_s(ji,jj,jk,jl) ) + rLfus ) 
    362                   END DO 
    363                END DO 
    364             END DO 
     352            DO_3D_11_11( 1, nlay_s ) 
     353               t_s(ji,jj,jk,jl) = zts_3d(ji,jj,jl) 
     354               e_s(ji,jj,jk,jl) = zswitch(ji,jj) * v_s(ji,jj,jl) * r1_nlay_s * & 
     355                  &               rhos * ( rcpi * ( rt0 - t_s(ji,jj,jk,jl) ) + rLfus ) 
     356            END_3D 
    365357         END DO 
    366358         ! 
    367359         DO jl = 1, jpl 
    368             DO jk = 1, nlay_i 
    369                DO jj = 1, jpj 
    370                   DO ji = 1, jpi 
    371                      t_i (ji,jj,jk,jl) = zti_3d(ji,jj,jl)  
    372                      ztmelts          = - rTmlt * sz_i(ji,jj,jk,jl) + rt0 ! melting temperature in K 
    373                      e_i(ji,jj,jk,jl) = zswitch(ji,jj) * v_i(ji,jj,jl) * r1_nlay_i * & 
    374                         &               rhoi * (  rcpi  * ( ztmelts - t_i(ji,jj,jk,jl) ) + & 
    375                         &                         rLfus * ( 1._wp - (ztmelts-rt0) / MIN( (t_i(ji,jj,jk,jl)-rt0), -epsi20 ) ) & 
    376                         &                       - rcp   * ( ztmelts - rt0 ) ) 
    377                   END DO 
    378                END DO 
    379             END DO 
     360            DO_3D_11_11( 1, nlay_i ) 
     361               t_i (ji,jj,jk,jl) = zti_3d(ji,jj,jl)  
     362               ztmelts          = - rTmlt * sz_i(ji,jj,jk,jl) + rt0 ! melting temperature in K 
     363               e_i(ji,jj,jk,jl) = zswitch(ji,jj) * v_i(ji,jj,jl) * r1_nlay_i * & 
     364                  &               rhoi * (  rcpi  * ( ztmelts - t_i(ji,jj,jk,jl) ) + & 
     365                  &                         rLfus * ( 1._wp - (ztmelts-rt0) / MIN( (t_i(ji,jj,jk,jl)-rt0), -epsi20 ) ) & 
     366                  &                       - rcp   * ( ztmelts - rt0 ) ) 
     367            END_3D 
    380368         END DO 
    381369 
Note: See TracChangeset for help on using the changeset viewer.