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/TRA/traqsr.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/TRA/traqsr.F90

    r7698 r7753  
    128128      IF( l_trdtra ) THEN      ! trends diagnostic: save the input temperature trend 
    129129         CALL wrk_alloc( jpi,jpj,jpk,   ztrdt )  
    130 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    131             DO jk = 1, jpk 
    132                DO jj = 1, jpj 
    133                   DO ji = 1, jpi 
    134                      ztrdt(ji,jj,jk) = tsa(ji,jj,jk,jp_tem) 
    135                   END DO 
    136                END DO 
    137             END DO 
     130         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
    138131      ENDIF 
    139132      ! 
     
    149142         ELSE                                           ! No restart or restart not found: Euler forward time stepping 
    150143            z1_2 = 1._wp 
    151 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    152             DO jk = 1, jpk 
    153                DO jj = 1, jpj 
    154                   DO ji = 1, jpi 
    155                      qsr_hc_b(ji,jj,jk) = 0._wp 
    156                   END DO 
    157                END DO 
    158             END DO 
     144            qsr_hc_b(:,:,:) = 0._wp 
    159145         ENDIF 
    160146      ELSE                             !==  Swap of qsr heat content  ==! 
    161147         z1_2 = 0.5_wp 
    162 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    163             DO jk = 1, jpk 
    164                DO jj = 1, jpj 
    165                   DO ji = 1, jpi 
    166                      qsr_hc_b(ji,jj,jk) = qsr_hc(ji,jj,jk) 
    167                   END DO 
    168                END DO 
    169             END DO 
     148         qsr_hc_b(:,:,:) = qsr_hc(:,:,:) 
    170149      ENDIF 
    171150      ! 
     
    176155      CASE( np_BIO )                   !==  bio-model fluxes  ==! 
    177156         ! 
    178 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    179157         DO jk = 1, nksr 
    180             DO jj = 1, jpj 
    181                DO ji = 1, jpi 
    182                   qsr_hc(ji,jj,jk) = r1_rau0_rcp * ( etot3(ji,jj,jk) - etot3(ji,jj,jk+1) ) 
    183                END DO 
    184              END DO 
     158            qsr_hc(:,:,jk) = r1_rau0_rcp * ( etot3(:,:,jk) - etot3(:,:,jk+1) ) 
    185159         END DO 
    186160         ! 
     
    192166         IF( nqsr == np_RGBc ) THEN          !*  Variable Chlorophyll 
    193167            CALL fld_read( kt, 1, sf_chl )         ! Read Chl data and provides it at the current time step 
    194 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji,zchl,zCtot,zze,zpsi,zlogc,zlogc2,zlogc3,zCb,zCmax,zpsimax,zdelpsi,zCze) 
    195168            DO jk = 1, nksr + 1 
    196169               DO jj = 2, jpjm1                       ! Separation in R-G-B depending of the surface Chl 
     
    217190            END DO 
    218191         ELSE                                !* constant chrlorophyll 
    219 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    220192           DO jk = 1, nksr + 1 
    221               DO jj = 1, jpj 
    222                  DO ji = 1, jpi 
    223                     zchl3d(ji,jj,jk) = 0.05 
    224                  ENDDO 
    225               ENDDO 
     193              zchl3d(:,:,jk) = 0.05  
    226194            ENDDO 
    227195         ENDIF 
    228196         ! 
    229197         zcoef  = ( 1. - rn_abs ) / 3._wp    !* surface equi-partition in R-G-B 
    230 !$OMP PARALLEL 
    231 !$OMP DO schedule(static) private(jj,ji) 
    232198         DO jj = 2, jpjm1 
    233199            DO ji = fs_2, fs_jpim1 
     
    239205            END DO 
    240206         END DO 
    241 !$OMP END DO NOWAIT 
    242207         ! 
    243208         DO jk = 2, nksr+1                   !* interior equi-partition in R-G-B depending of vertical profile of Chl 
    244 !$OMP DO schedule(static) private(jj,ji,zchl,irgb) 
    245209            DO jj = 2, jpjm1 
    246210               DO ji = fs_2, fs_jpim1 
     
    253217            END DO 
    254218 
    255 !$OMP DO schedule(static) private(jj,ji,zc0,zc1,zc2,zc3) 
    256219            DO jj = 2, jpjm1 
    257220               DO ji = fs_2, fs_jpim1 
     
    269232         END DO 
    270233         ! 
    271 !$OMP DO schedule(static) private(jk,jj,ji) 
    272234         DO jk = 1, nksr                     !* now qsr induced heat content 
    273235            DO jj = 2, jpjm1 
     
    277239            END DO 
    278240         END DO 
    279 !$OMP END PARALLEL 
    280241         ! 
    281242         CALL wrk_dealloc( jpi,jpj,        zekb, zekg, zekr        )  
     
    286247         zz0 =        rn_abs   * r1_rau0_rcp      ! surface equi-partition in 2-bands 
    287248         zz1 = ( 1. - rn_abs ) * r1_rau0_rcp 
    288 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji,zc0,zc1) 
    289249         DO jk = 1, nksr                          ! solar heat absorbed at T-point in the top 400m  
    290250            DO jj = 2, jpjm1 
     
    300260      ! 
    301261      !                          !-----------------------------! 
    302 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    303262      DO jk = 1, nksr            !  update to the temp. trend  ! 
    304263         DO jj = 2, jpjm1        !-----------------------------! 
     
    311270      ! 
    312271      IF( ln_qsr_ice ) THEN      ! sea-ice: store the 1st ocean level attenuation coefficient 
    313 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    314272         DO jj = 2, jpjm1  
    315273            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    326284         CALL wrk_alloc( jpi,jpj,jpk,   zetot ) 
    327285         ! 
    328 !$OMP PARALLEL 
    329 !$OMP DO schedule(static) private(jj,ji) 
    330          DO jj = 1, jpj  
    331             DO ji = 1, jpi   ! vector opt. 
    332                zetot(ji,jj,nksr+1:jpk) = 0._wp     ! below ~400m set to zero 
    333             END DO 
    334          END DO 
     286         zetot(:,:,nksr+1:jpk) = 0._wp     ! below ~400m set to zero 
    335287         DO jk = nksr, 1, -1 
    336 !$OMP DO schedule(static) private(jj,ji) 
    337             DO jj = 1, jpj  
    338                DO ji = 1, jpi   ! vector opt. 
    339                   zetot(ji,jj,jk) = zetot(ji,jj,jk+1) + qsr_hc(ji,jj,jk) / r1_rau0_rcp 
    340                END DO 
    341             END DO 
     288            zetot(:,:,jk) = zetot(:,:,jk+1) + qsr_hc(:,:,jk) / r1_rau0_rcp 
    342289         END DO          
    343 !$OMP END PARALLEL 
    344290         CALL iom_put( 'qsr3d', zetot )   ! 3D distribution of shortwave Radiation 
    345291         ! 
     
    353299      ! 
    354300      IF( l_trdtra ) THEN     ! qsr tracers trends saved for diagnostics 
    355 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    356          DO jk = 1, jpk 
    357             DO jj = 1, jpj 
    358                DO ji = 1, jpi 
    359                   ztrdt(ji,jj,jk) = tsa(ji,jj,jk,jp_tem) - ztrdt(ji,jj,jk) 
    360                END DO 
    361             END DO 
    362          END DO 
     301         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 
    363302         CALL trd_tra( kt, 'TRA', jp_tem, jptra_qsr, ztrdt ) 
    364303         CALL wrk_dealloc( jpi,jpj,jpk,   ztrdt )  
     
    487426      END SELECT 
    488427      ! 
    489 !$OMP PARALLEL DO schedule(static) private(jk,jj,ji) 
    490       DO jk = 1, jpk 
    491          DO jj = 1, jpj 
    492             DO ji = 1, jpi 
    493                qsr_hc(ji,jj,jk) = 0._wp     ! now qsr heat content set to zero where it will not be computed 
    494             END DO 
    495          END DO 
    496       END DO 
     428      qsr_hc(:,:,:) = 0._wp     ! now qsr heat content set to zero where it will not be computed 
    497429      ! 
    498430      ! 1st ocean level attenuation coefficient (used in sbcssm) 
     
    500432         CALL iom_get( numror, jpdom_autoglo, 'fraqsr_1lev'  , fraqsr_1lev  ) 
    501433      ELSE 
    502 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    503          DO jj = 1, jpj 
    504             DO ji = 1, jpi 
    505                fraqsr_1lev(ji,jj) = 1._wp   ! default : no penetration 
    506             END DO 
    507          END DO 
     434         fraqsr_1lev(:,:) = 1._wp   ! default : no penetration 
    508435      ENDIF 
    509436      ! 
Note: See TracChangeset for help on using the changeset viewer.