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 7037 for branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/LIM_SRC_2/limadv_2.F90 – NEMO

Ignore:
Timestamp:
2016-10-18T15:32:04+02:00 (8 years ago)
Author:
mocavero
Message:

ORCA2_LIM_PISCES hybrid version update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/LIM_SRC_2/limadv_2.F90

    r3625 r7037  
    8585      zrdt = rdt_ice * pdf      ! If ice drift field is too fast, use an appropriate time step for advection. 
    8686 
     87!$OMP PARALLEL 
     88!$OMP DO schedule(static) private(jj,ji,zslpmax,zs1max,zs1new,zs2new,zin0) 
    8789      DO jj = 1, jpj 
    8890         DO ji = 1, jpi 
     
    102104         END DO 
    103105      END DO 
     106!$OMP END DO NOWAIT 
    104107 
    105108      !  Initialize volumes of boxes  (=area if adv_x first called, =psm otherwise)                                      
    106       psm (:,:)  = MAX( pcrh * area(:,:) + ( 1.0 - pcrh ) * psm(:,:) , epsi20 ) 
     109!$OMP DO schedule(static) private(jj,ji) 
     110      DO jj = 1, jpj 
     111         DO ji = 1, jpi 
     112            psm (ji,jj)  = MAX( pcrh * area(ji,jj) + ( 1.0 - pcrh ) * psm(ji,jj) , epsi20 ) 
     113         END DO 
     114      END DO 
    107115 
    108116      !  Calculate fluxes and moments between boxes i<-->i+1               
     117!$OMP DO schedule(static) private(jj,ji,zalf,zalfq,zalf1,zalf1q) 
    109118      DO jj = 1, jpj                      !  Flux from i to i+1 WHEN u GT 0  
    110119         DO ji = 1, jpi 
     
    133142         END DO 
    134143      END DO 
    135  
     144!$OMP END DO 
     145 
     146!$OMP DO schedule(static) private(jj,ji,zalf,zalfq,zalf1,zalf1q) 
    136147      DO jj = 1, jpjm1                      !  Flux from i+1 to i when u LT 0. 
    137148         DO ji = 1, fs_jpim1 
     
    153164      END DO 
    154165 
     166!$OMP DO schedule(static) private(jj,ji,zbt,zbt1) 
    155167      DO jj = 2, jpjm1                     !  Readjust moments remaining in the box.  
    156168         DO ji = fs_2, fs_jpim1 
     
    168180 
    169181      !   Put the temporary moments into appropriate neighboring boxes.     
     182!$OMP DO schedule(static) private(jj,ji,zbt,zbt1,zalf,zalf1,ztemp) 
    170183      DO jj = 2, jpjm1                     !   Flux from i to i+1 IF u GT 0. 
    171184         DO ji = fs_2, fs_jpim1 
     
    190203      END DO 
    191204 
     205!$OMP DO schedule(static) private(jj,ji,zbt,zbt1,zalf,zalf1,ztemp) 
    192206      DO jj = 2, jpjm1                     !  Flux from i+1 to i IF u LT 0. 
    193207         DO ji = fs_2, fs_jpim1 
     
    210224         END DO 
    211225      END DO 
     226!$OMP END DO NOWAIT 
     227!$OMP END PARALLEL 
    212228 
    213229      !-- Lateral boundary conditions 
     
    268284      zrdt = rdt_ice * pdf ! If ice drift field is too fast, use an appropriate time step for advection. 
    269285 
     286!$OMP PARALLEL 
     287!$OMP DO schedule(static) private(jj,ji,zslpmax,zs1max,zs1new,zs2new,zin0) 
    270288      DO jj = 1, jpj 
    271289         DO ji = 1, jpi 
     
    285303         END DO 
    286304      END DO 
     305!$OMP END DO NOWAIT 
    287306 
    288307      !  Initialize volumes of boxes (=area if adv_x first called, =psm otherwise) 
    289       psm(:,:)  = MAX(  pcrh * area(:,:) + ( 1.0 - pcrh ) * psm(:,:) , epsi20  ) 
     308!$OMP DO schedule(static) private(jj,ji,zslpmax,zs1max,zs1new,zs2new,zin0) 
     309      DO jj = 1, jpj 
     310         DO ji = 1, jpi 
     311            psm(ji,jj)  = MAX(  pcrh * area(ji,jj) + ( 1.0 - pcrh ) * psm(ji,jj) , epsi20  ) 
     312         END DO 
     313      END DO 
    290314 
    291315      !  Calculate fluxes and moments between boxes j<-->j+1               
     316!$OMP DO schedule(static) private(jj,ji,zalf,zalfq,zalf1,zalf1q) 
    292317      DO jj = 1, jpj                     !  Flux from j to j+1 WHEN v GT 0    
    293318         DO ji = 1, jpi 
     
    316341      END DO 
    317342      ! 
     343!$OMP DO schedule(static) private(jj,ji,zalf,zalfq,zalf1,zalf1q) 
    318344      DO jj = 1, jpjm1                   !  Flux from j+1 to j when v LT 0. 
    319345         DO ji = 1, jpi 
     
    336362  
    337363      !  Readjust moments remaining in the box.  
     364!$OMP DO schedule(static) private(jj,ji,zbt,zbt1) 
    338365      DO jj = 2, jpj 
    339366         DO ji = 1, jpi 
     
    352379 
    353380      !   Put the temporary moments into appropriate neighboring boxes.     
     381!$OMP DO schedule(static) private(jj,ji,zbt,zbt1,zalf,zalf1,ztemp) 
    354382      DO jj = 2, jpjm1                    !   Flux from j to j+1 IF v GT 0. 
    355383         DO ji = 1, jpi 
     
    375403      END DO 
    376404      ! 
     405!$OMP DO schedule(static) private(jj,ji,zbt,zbt1,zalf,zalf1,ztemp) 
    377406      DO jj = 2, jpjm1                   !  Flux from j+1 to j IF v LT 0. 
    378407         DO ji = 1, jpi 
     
    396425         END DO 
    397426      END DO 
     427!$OMP END DO NOWAIT 
     428!$OMP END PARALLEL 
    398429 
    399430      !-- Lateral boundary conditions 
Note: See TracChangeset for help on using the changeset viewer.