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/OPA_SRC/DOM/istate.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/OPA_SRC/DOM/istate.F90

    r7698 r7753  
    5959      !! ** Purpose :   Initialization of the dynamics and tracer fields. 
    6060      !!---------------------------------------------------------------------- 
    61       INTEGER ::   ji, jj, jk, jn   ! dummy loop indices 
     61      INTEGER ::   ji, jj, jk   ! dummy loop indices 
    6262      REAL(wp), POINTER, DIMENSION(:,:,:,:) ::   zuvd    ! U & V data workspace 
    6363      !!---------------------------------------------------------------------- 
     
    7575!      IF( lk_c1d )   CALL dta_uvd_init        ! Initialization of U & V input data 
    7676!!gm 
    77 !$OMP PARALLEL 
    78       DO jn = 1, jpts 
    79 !$OMP DO schedule(static) private(jk, jj, ji) 
    80          DO jk = 1, jpk 
    81             DO jj = 1, jpj 
    82                DO ji = 1, jpi 
    83                   tsa  (ji,jj,jk,jn) = 0._wp                                       ! set one for all to 0 at level jpk 
    84                   rab_b(ji,jj,jk,jn) = 0._wp   ;   rab_n(ji,jj,jk,jn) = 0._wp      ! set one for all to 0 at level jpk 
    85                END DO 
    86             END DO 
    87          END DO 
    88       END DO 
    89 !$OMP DO schedule(static) private(jk, jj, ji) 
    90       DO jk = 1, jpk 
    91          DO jj = 1, jpj 
    92             DO ji = 1, jpi 
    93                rhd  (ji,jj,jk  ) = 0._wp   ;   rhop (ji,jj,jk  ) = 0._wp      ! set one for all to 0 at level jpk 
    94                rn2b (ji,jj,jk  ) = 0._wp   ;   rn2  (ji,jj,jk  ) = 0._wp      ! set one for all to 0 at levels 1 and jpk 
    95             END DO 
    96          END DO 
    97       END DO 
    98 !$OMP END PARALLEL 
     77 
     78      rhd  (:,:,:  ) = 0._wp   ;   rhop (:,:,:  ) = 0._wp      ! set one for all to 0 at level jpk 
     79      rn2b (:,:,:  ) = 0._wp   ;   rn2  (:,:,:  ) = 0._wp      ! set one for all to 0 at levels 1 and jpk 
     80      tsa  (:,:,:,:) = 0._wp                                   ! set one for all to 0 at level jpk 
     81      rab_b(:,:,:,:) = 0._wp   ;   rab_n(:,:,:,:) = 0._wp      ! set one for all to 0 at level jpk 
    9982 
    10083      IF( ln_rstart ) THEN                    ! Restart from a file 
     
    11497            CALL dta_tsd( nit000, tsb )       ! read 3D T and S data at nit000 
    11598            ! 
    116 !$OMP PARALLEL 
    117 !$OMP DO schedule(static) private(jj, ji) 
    118             DO jj = 1, jpj 
    119                DO ji = 1, jpi 
    120                   sshb (ji,jj)   = 0._wp      ! set the ocean at rest 
    121                END DO 
    122             END DO 
    123 !$OMP END DO NOWAIT 
    124 !$OMP DO schedule(static) private(jk, jj, ji) 
    125             DO jk = 1, jpk 
    126                DO jj = 1, jpj 
    127                   DO ji = 1, jpi 
    128                      ub  (ji,jj,jk) = 0._wp 
    129                      vb  (ji,jj,jk) = 0._wp   
    130                   END DO 
    131                END DO 
    132             END DO 
    133 !$OMP END PARALLEL 
     99            sshb(:,:)   = 0._wp               ! set the ocean at rest 
     100            ub  (:,:,:) = 0._wp 
     101            vb  (:,:,:) = 0._wp   
    134102            ! 
    135103         ELSE                                 ! user defined initial T and S 
    136104            CALL usr_def_istate( gdept_b, tmask, tsb, ub, vb, sshb  )          
    137105         ENDIF 
    138 !$OMP PARALLEL 
    139          DO jn = 1, jpts 
    140 !$OMP DO schedule(static) private(jk, jj, ji) 
    141             DO jk = 1, jpk 
    142                DO jj = 1, jpj 
    143                   DO ji = 1, jpi 
    144                      tsn  (ji,jj,jk,jn) = tsb (ji,jj,jk,jn)       ! set now values from to before ones 
    145                   END DO 
    146                END DO 
    147             END DO 
    148          END DO 
    149 !$OMP DO schedule(static) private(jk, jj, ji) 
    150          DO jk = 1, jpk 
    151             DO jj = 1, jpj 
    152                DO ji = 1, jpi 
    153                   un   (ji,jj,jk)   = ub  (ji,jj,jk) 
    154                   vn   (ji,jj,jk)   = vb  (ji,jj,jk) 
    155                END DO 
    156             END DO 
    157          END DO 
    158 !$OMP DO schedule(static) private(jj, ji) 
    159          DO jj = 1, jpj 
    160             DO ji = 1, jpi 
    161                sshn (ji,jj)     = sshb(ji,jj)    
    162                hdivn(ji,jj,jpk) = 0._wp               ! bottom divergence set one for 0 to zero at jpk level 
    163             END DO 
    164          END DO 
    165 !$OMP END PARALLEL 
     106         tsn  (:,:,:,:) = tsb (:,:,:,:)       ! set now values from to before ones 
     107         sshn (:,:)     = sshb(:,:)    
     108         un   (:,:,:)   = ub  (:,:,:) 
     109         vn   (:,:,:)   = vb  (:,:,:) 
     110         hdivn(:,:,jpk) = 0._wp               ! bottom divergence set one for 0 to zero at jpk level 
    166111         CALL div_hor( 0 )                    ! compute interior hdivn value   
    167112!!gm                                    hdivn(:,:,:) = 0._wp 
     
    197142      ! Do it whatever the free surface method, these arrays being eventually used 
    198143      ! 
    199 !$OMP PARALLEL 
    200 !$OMP DO schedule(static) private(jj, ji) 
    201       DO jj = 1, jpj 
    202          DO ji = 1, jpi 
    203             un_b(ji,jj) = 0._wp   ;   vn_b(ji,jj) = 0._wp 
    204             ub_b(ji,jj) = 0._wp   ;   vb_b(ji,jj) = 0._wp 
    205          END DO 
    206       END DO 
     144      un_b(:,:) = 0._wp   ;   vn_b(:,:) = 0._wp 
     145      ub_b(:,:) = 0._wp   ;   vb_b(:,:) = 0._wp 
    207146      ! 
    208147!!gm  the use of umsak & vmask is not necessary below as un, vn, ub, vb are always masked 
    209148      DO jk = 1, jpkm1 
    210 !$OMP DO schedule(static) private(jj, ji) 
    211149         DO jj = 1, jpj 
    212150            DO ji = 1, jpi 
     
    220158      END DO 
    221159      ! 
    222 !$OMP DO schedule(static) private(jj, ji) 
    223       DO jj = 1, jpj 
    224          DO ji = 1, jpi 
    225             un_b(ji,jj) = un_b(ji,jj) * r1_hu_n(ji,jj) 
    226             vn_b(ji,jj) = vn_b(ji,jj) * r1_hv_n(ji,jj) 
    227             ! 
    228             ub_b(ji,jj) = ub_b(ji,jj) * r1_hu_b(ji,jj) 
    229             vb_b(ji,jj) = vb_b(ji,jj) * r1_hv_b(ji,jj) 
    230          END DO 
    231       END DO 
    232 !$OMP END PARALLEL 
     160      un_b(:,:) = un_b(:,:) * r1_hu_n(:,:) 
     161      vn_b(:,:) = vn_b(:,:) * r1_hv_n(:,:) 
     162      ! 
     163      ub_b(:,:) = ub_b(:,:) * r1_hu_b(:,:) 
     164      vb_b(:,:) = vb_b(:,:) * r1_hv_b(:,:) 
    233165      ! 
    234166      IF( nn_timing == 1 )   CALL timing_stop('istate_init') 
Note: See TracChangeset for help on using the changeset viewer.