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 13295 for NEMO/trunk/src/ICE/icectl.F90 – NEMO

Ignore:
Timestamp:
2020-07-10T20:24:21+02:00 (4 years ago)
Author:
acc
Message:

Replace do-loop macros in the trunk with alternative forms with greater flexibility for extra halo applications. This alters a lot of routines but does not change any behaviour or results. do_loop_substitute.h90 is greatly simplified by this change. SETTE results are identical to those with the previous revision

File:
1 edited

Legend:

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

    r13286 r13295  
    368368      cl_alname(ialert_id) = ' Incompat vol and con         '    ! name of the alert 
    369369      DO jl = 1, jpl 
    370          DO_2D_11_11 
     370         DO_2D( 1, 1, 1, 1 ) 
    371371            IF(  v_i(ji,jj,jl) /= 0._wp   .AND.   a_i(ji,jj,jl) == 0._wp   ) THEN 
    372372               WRITE(numout,*) ' ALERTE 2 :   Incompatible volume and concentration ' 
     
    380380      cl_alname(ialert_id) = ' Very thick ice               ' ! name of the alert 
    381381      jl = jpl  
    382       DO_2D_11_11 
     382      DO_2D( 1, 1, 1, 1 ) 
    383383         IF(   h_i(ji,jj,jl)  >  50._wp   ) THEN 
    384384            WRITE(numout,*) ' ALERTE 3 :   Very thick ice' 
     
    391391      ialert_id = 4 ! reference number of this alert 
    392392      cl_alname(ialert_id) = ' Very fast ice               ' ! name of the alert 
    393       DO_2D_11_11 
     393      DO_2D( 1, 1, 1, 1 ) 
    394394         IF(   MAX( ABS( u_ice(ji,jj) ), ABS( v_ice(ji,jj) ) ) > 2.  .AND.  & 
    395395            &  at_i(ji,jj) > 0._wp   ) THEN 
     
    403403      ialert_id = 5 ! reference number of this alert 
    404404      cl_alname(ialert_id) = ' High salt flux               ' ! name of the alert 
    405       DO_2D_11_11 
     405      DO_2D( 1, 1, 1, 1 ) 
    406406         IF( ABS( sfx (ji,jj) ) > 1.0e-2 ) THEN  ! = 1 psu/day for 1m ocean depth 
    407407            WRITE(numout,*) ' ALERTE 5 :   High salt flux' 
     
    414414      ialert_id = 6 ! reference number of this alert 
    415415      cl_alname(ialert_id) = ' Ice on continents           ' ! name of the alert 
    416       DO_2D_11_11 
     416      DO_2D( 1, 1, 1, 1 ) 
    417417         IF(   tmask(ji,jj,1) <= 0._wp   .AND.   at_i(ji,jj) > 0._wp   ) THEN  
    418418            WRITE(numout,*) ' ALERTE 6 :   Ice on continents' 
     
    427427      cl_alname(ialert_id) = ' Very fresh ice               ' ! name of the alert 
    428428      DO jl = 1, jpl 
    429          DO_2D_11_11 
     429         DO_2D( 1, 1, 1, 1 ) 
    430430            IF( s_i(ji,jj,jl) < 0.1 .AND. a_i(ji,jj,jl) > 0._wp ) THEN 
    431431               WRITE(numout,*) ' ALERTE 7 :   Very fresh ice' 
     
    439439      ialert_id = 8 ! reference number of this alert 
    440440      cl_alname(ialert_id) = ' fnsolar very big             ' ! name of the alert 
    441       DO_2D_11_11 
     441      DO_2D( 1, 1, 1, 1 ) 
    442442         IF( ABS( qns(ji,jj) ) > 1500._wp .AND. at_i(ji,jj) > 0._wp ) THEN 
    443443            ! 
     
    454454      cl_alname(ialert_id) = ' Very old   ice               ' ! name of the alert 
    455455      DO jl = 1, jpl 
    456          DO_2D_11_11 
     456         DO_2D( 1, 1, 1, 1 ) 
    457457            IF ( ( ( ABS( o_i(ji,jj,jl) ) > rDt_ice ) .OR. & 
    458458                   ( ABS( o_i(ji,jj,jl) ) < 0._wp) ) .AND. & 
     
    470470      inb_alp(ialert_id) = 0 
    471471      DO jl = 1, jpl 
    472          DO_3D_11_11( 1, nlay_i ) 
     472         DO_3D( 1, 1, 1, 1, 1, nlay_i ) 
    473473            ztmelts    =  -rTmlt * sz_i(ji,jj,jk,jl) + rt0 
    474474            IF( t_i(ji,jj,jk,jl) > ztmelts  .AND.  v_i(ji,jj,jl) > 1.e-10   & 
Note: See TracChangeset for help on using the changeset viewer.