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 7698 for trunk/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90 – NEMO

Ignore:
Timestamp:
2017-02-18T10:02:03+01:00 (7 years ago)
Author:
mocavero
Message:

update trunk with OpenMP parallelization

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/DOM/domain.F90

    r7646 r7698  
    133133      CALL dom_msk( ik_top, ik_bot )   ! Masks 
    134134      ! 
     135!$OMP PARALLEL 
     136!$OMP DO schedule(static) private(jj,ji,ik) 
    135137      DO jj = 1, jpj                   ! depth of the iceshelves 
    136138         DO ji = 1, jpi 
     
    140142      END DO 
    141143      ! 
    142       ht_0(:,:) = 0._wp  ! Reference ocean thickness 
    143       hu_0(:,:) = 0._wp 
    144       hv_0(:,:) = 0._wp 
     144!$OMP END DO NOWAIT 
     145!$OMP DO schedule(static) private(jj,ji) 
     146      DO jj = 1, jpj 
     147         DO ji = 1, jpi 
     148            ht_0(ji,jj) = 0._wp  ! Reference ocean thickness 
     149            hu_0(ji,jj) = 0._wp 
     150            hv_0(ji,jj) = 0._wp 
     151         END DO 
     152      END DO 
    145153      DO jk = 1, jpk 
    146          ht_0(:,:) = ht_0(:,:) + e3t_0(:,:,jk) * tmask(:,:,jk) 
    147          hu_0(:,:) = hu_0(:,:) + e3u_0(:,:,jk) * umask(:,:,jk) 
    148          hv_0(:,:) = hv_0(:,:) + e3v_0(:,:,jk) * vmask(:,:,jk) 
     154!$OMP DO schedule(static) private(jj,ji,ik) 
     155         DO jj = 1, jpj 
     156            DO ji = 1, jpi 
     157               ht_0(ji,jj) = ht_0(ji,jj) + e3t_0(ji,jj,jk) * tmask(ji,jj,jk) 
     158               hu_0(ji,jj) = hu_0(ji,jj) + e3u_0(ji,jj,jk) * umask(ji,jj,jk) 
     159               hv_0(ji,jj) = hv_0(ji,jj) + e3v_0(ji,jj,jk) * vmask(ji,jj,jk) 
     160            END DO 
     161         END DO 
    149162      END DO 
     163!$OMP END PARALLEL 
    150164      ! 
    151165      !           !==  time varying part of coordinate system  ==! 
     
    166180             e3vw_b =  e3vw_0  ;    e3vw_n =  e3vw_0   !        ---          ! 
    167181         ! 
    168          z1_hu_0(:,:) = ssumask(:,:) / ( hu_0(:,:) + 1._wp - ssumask(:,:) )     ! _i mask due to ISF 
    169          z1_hv_0(:,:) = ssvmask(:,:) / ( hv_0(:,:) + 1._wp - ssvmask(:,:) ) 
     182!$OMP PARALLEL DO schedule(static) private(jj,ji) 
     183         DO jj =1, jpj 
     184            DO ji=1, jpi 
     185               z1_hu_0(ji,jj) = ssumask(ji,jj) / ( hu_0(ji,jj) + 1._wp - ssumask(ji,jj) )     ! _i mask due to ISF 
     186               z1_hv_0(ji,jj) = ssvmask(ji,jj) / ( hv_0(ji,jj) + 1._wp - ssvmask(ji,jj) ) 
     187            END DO 
     188         END DO 
    170189         ! 
    171190         !        before       !          now          !       after         ! 
Note: See TracChangeset for help on using the changeset viewer.