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 7753 for trunk/NEMOGCM/NEMO/LIM_SRC_3/limitd_th.F90 – NEMO

Ignore:
Timestamp:
2017-03-03T12:46:59+01:00 (7 years ago)
Author:
mocavero
Message:

Reverting trunk to remove OpenMP

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/LIM_SRC_3/limitd_th.F90

    r7698 r7753  
    106106         CALL lim_column_sum (jpl,   v_s, vt_s_init) 
    107107         CALL lim_column_sum_energy (jpl, nlay_i,   e_i, et_i_init) 
    108          DO jl = 1, jpl 
    109 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    110             DO jj = 1, jpj 
    111                DO ji = 1, jpi 
    112                   dummy_es(ji,jj,jl) = e_s(ji,jj,1,jl) 
    113                END DO 
    114             END DO 
    115          END DO 
     108         dummy_es(:,:,:) = e_s(:,:,1,:) 
    116109         CALL lim_column_sum (jpl, dummy_es(:,:,:) , et_s_init) 
    117110      ENDIF 
     
    128121      ENDIF 
    129122 
    130 !$OMP PARALLEL 
    131       DO jl = 1, jpl 
    132 !$OMP DO schedule(static) private(jj,ji) 
    133          DO jj = 1, jpj 
    134             DO ji = 1, jpi 
    135                zdhice(ji,jj,jl) = 0._wp 
    136             END DO 
    137          END DO 
    138       END DO 
     123      zdhice(:,:,:) = 0._wp 
    139124      DO jl = klbnd, kubnd 
    140 !$OMP DO schedule(static) private(jj,ji,rswitch) 
    141125         DO jj = 1, jpj 
    142126            DO ji = 1, jpi 
     
    153137      !  2) Compute fractional ice area in each grid cell 
    154138      !----------------------------------------------------------------------------------------------- 
    155 !$OMP DO schedule(static) private(jj,ji) 
    156       DO jj = 1, jpj 
    157          DO ji = 1, jpi 
    158             at_i(ji,jj) = 0._wp 
    159          END DO 
    160       END DO 
     139      at_i(:,:) = 0._wp 
    161140      DO jl = klbnd, kubnd 
    162 !$OMP DO schedule(static) private(jj,ji) 
    163          DO jj = 1, jpj 
    164             DO ji = 1, jpi 
    165                at_i(ji,jj) = at_i(ji,jj) + a_i(ji,jj,jl) 
    166             END DO 
    167          END DO 
    168       END DO 
    169 !$OMP END PARALLEL 
     141         at_i(:,:) = at_i(:,:) + a_i(:,:,jl) 
     142      END DO 
    170143 
    171144      !----------------------------------------------------------------------------------------------- 
     
    190163      !----------------------------------------------------------------------------------------------- 
    191164      !- 4.1 Compute category boundaries 
    192 !$OMP PARALLEL 
    193       DO jl = 0, jpl 
    194 !$OMP DO schedule(static) private(jj,ji) 
    195          DO jj = 1, jpj 
    196             DO ji = 1, jpi 
    197                zhbnew(ji,jj,jl) = 0._wp 
    198             END DO 
    199          END DO 
    200       END DO 
     165      zhbnew(:,:,:) = 0._wp 
    201166 
    202167      DO jl = klbnd, kubnd - 1 
    203 !$OMP DO schedule(static) private(ji,ii,ij,zslope) 
    204168         DO ji = 1, nbrem 
    205169            ii = nind_i(ji) 
     
    219183 
    220184         !- 4.2 Check that each zhbnew lies between adjacent values of ice thickness 
    221 !$OMP DO schedule(static) private(ji,ii,ij) 
    222185         DO ji = 1, nbrem 
    223186            ii = nind_i(ji) 
     
    242205 
    243206      END DO 
    244 !$OMP END PARALLEL 
    245207 
    246208      !----------------------------------------------------------------------------------------------- 
     
    261223      !  6) Fill arrays with lowermost / uppermost boundaries of 'new' categories 
    262224      !----------------------------------------------------------------------------------------------- 
    263 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    264225      DO jj = 1, jpj 
    265226         DO ji = 1, jpi 
     
    293254 
    294255      !- 7.2 Area lost due to melting of thin ice (first category,  klbnd) 
    295 !$OMP PARALLEL DO schedule(static) private(ji,ii,ij,zdh0,zetamax,zx1,zx2,zda0,zdamax) 
    296256      DO ji = 1, nbrem 
    297257         ii = nind_i(ji)  
     
    339299      !----------------------------------------------------------------------------------------------- 
    340300 
    341 !$OMP PARALLEL 
    342301      DO jl = klbnd, kubnd - 1 
    343 !$OMP DO schedule(static) private(jj,ji) 
    344302         DO jj = 1, jpj 
    345303            DO ji = 1, jpi 
     
    350308         END DO 
    351309 
    352 !$OMP DO schedule(static) private(ji,ii,ij,zetamax,zetamin,zx1,zwk1,zwk2,zx2,zx3,nd) 
    353310         DO ji = 1, nbrem 
    354311            ii = nind_i(ji) 
     
    385342         END DO 
    386343      END DO 
    387 !$OMP END PARALLEL 
    388344 
    389345      !!---------------------------------------------------------------------------------------------- 
     
    396352      !!---------------------------------------------------------------------------------------------- 
    397353 
    398 !$OMP PARALLEL DO schedule(static) private(ji,ii,ij) 
    399354      DO ji = 1, nbrem 
    400355         ii = nind_i(ji) 
     
    422377         CALL lim_cons_check (vt_s_init, vt_s_final, 1.0e-6, fieldid)  
    423378 
    424          DO jl = 1, jpl 
    425 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    426             DO jj = 1, jpj 
    427                DO ji = 1, jpi 
    428                   dummy_es(ji,jj,jl) = e_s(ji,jj,1,jl) 
    429                END DO 
    430             END DO 
    431          END DO 
     379         dummy_es(:,:,:) = e_s(:,:,1,:) 
    432380         CALL lim_column_sum (jpl, dummy_es(:,:,:) , et_s_final) 
    433381         fieldid = ' e_s : limitd_th ' 
     
    473421      !!------------------------------------------------------------------ 
    474422      ! 
    475 !$OMP PARALLEL DO schedule(static) private(jj,ji,zh13,zh23,zdhr,zwk1,zwk2) 
    476423      DO jj = 1, jpj 
    477424         DO ji = 1, jpi 
     
    553500 
    554501      DO jl = klbnd, kubnd 
    555 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    556          DO jj = 1, jpj 
    557             DO ji = 1, jpi 
    558                zaTsfn(ji,jj,jl) = a_i(ji,jj,jl) * t_su(ji,jj,jl) 
    559             END DO 
    560          END DO 
     502         zaTsfn(:,:,jl) = a_i(:,:,jl) * t_su(:,:,jl) 
    561503      END DO 
    562504 
     
    577519         END DO 
    578520 
    579 !$OMP PARALLEL DO schedule(static) private(ji,ii,ij,jl1,jl2,rswitch,zdvsnow,zdesnow,zdo_aice,zdsm_vice,zdaTsf) 
    580521         DO ji = 1, nbrem  
    581522            ii = nind_i(ji) 
     
    643584 
    644585         DO jk = 1, nlay_i 
    645 !$OMP PARALLEL DO schedule(static) private(ji,ii,ij,jl1,jl2,zdeice) 
    646586            DO ji = 1, nbrem 
    647587               ii = nind_i(ji) 
     
    668608 
    669609      DO jl = klbnd, kubnd 
    670 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    671610         DO jj = 1, jpj 
    672611            DO ji = 1, jpi  
     
    724663      ! 1) Compute ice thickness. 
    725664      !------------------------------------------------------------------------------ 
    726 !$OMP PARALLEL 
    727665      DO jl = klbnd, kubnd 
    728 !$OMP DO schedule(static) private(jj,ji,rswitch) 
    729666         DO jj = 1, jpj 
    730667            DO ji = 1, jpi  
     
    743680      !------------------------- 
    744681      DO jl = klbnd, kubnd 
    745 !$OMP DO schedule(static) private(jj,ji) 
    746          DO jj = 1, jpj 
    747             DO ji = 1, jpi 
    748                zdonor(ji,jj,jl) = 0 
    749                zdaice(ji,jj,jl) = 0._wp 
    750                zdvice(ji,jj,jl) = 0._wp 
    751             END DO 
    752          END DO 
    753       END DO 
    754 !$OMP END PARALLEL 
     682         zdonor(:,:,jl) = 0 
     683         zdaice(:,:,jl) = 0._wp 
     684         zdvice(:,:,jl) = 0._wp 
     685      END DO 
    755686 
    756687      !------------------------- 
     
    765696         zshiftflag = 0 
    766697 
    767 !$OMP PARALLEL DO schedule(static) private(jj,ji) REDUCTION(MAX:zshiftflag) 
    768698         DO jj = 1, jpj  
    769699            DO ji = 1, jpi  
     
    786716            CALL lim_itd_shiftice( klbnd, kubnd, zdonor, zdaice, zdvice ) 
    787717            ! Reset shift parameters 
    788 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    789             DO jj = 1, jpj 
    790                DO ji = 1, jpi 
    791                   zdonor(ji,jj,jl) = 0 
    792                   zdaice(ji,jj,jl) = 0._wp 
    793                   zdvice(ji,jj,jl) = 0._wp 
    794                END DO 
    795             END DO 
     718            zdonor(:,:,jl) = 0 
     719            zdaice(:,:,jl) = 0._wp 
     720            zdvice(:,:,jl) = 0._wp 
    796721         ENDIF 
    797722         ! 
     
    809734         zshiftflag = 0 
    810735 
    811 !$OMP PARALLEL DO schedule(static) private(jj,ji) REDUCTION(MAX:zshiftflag) 
    812736         DO jj = 1, jpj 
    813737            DO ji = 1, jpi 
    814738               IF( a_i(ji,jj,jl+1) > epsi10 .AND. ht_i(ji,jj,jl+1) <= hi_max(jl) ) THEN 
     739                  ! 
    815740                  zshiftflag = 1 
    816741                  zdonor(ji,jj,jl) = jl + 1 
     
    826751            CALL lim_itd_shiftice( klbnd, kubnd, zdonor, zdaice, zdvice ) 
    827752            ! Reset shift parameters 
    828 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    829             DO jj = 1, jpj 
    830                DO ji = 1, jpi 
    831                   zdonor(ji,jj,jl) = 0 
    832                   zdaice(ji,jj,jl) = 0._wp 
    833                   zdvice(ji,jj,jl) = 0._wp 
    834                END DO 
    835             END DO 
     753            zdonor(:,:,jl) = 0 
     754            zdaice(:,:,jl) = 0._wp 
     755            zdvice(:,:,jl) = 0._wp 
    836756         ENDIF 
    837757 
Note: See TracChangeset for help on using the changeset viewer.