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/trasbc.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/trasbc.F90

    r7710 r7753  
    8888      IF( l_trdtra ) THEN                    !* Save ta and sa trends 
    8989         CALL wrk_alloc( jpi, jpj, jpk, ztrdt, ztrds )  
    90 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    91          DO jk = 1, jpk 
    92             DO jj = 1, jpj 
    93                DO ji = 1, jpi 
    94                   ztrdt(ji,jj,jk) = tsa(ji,jj,jk,jp_tem) 
    95                   ztrds(ji,jj,jk) = tsa(ji,jj,jk,jp_sal) 
    96                END DO 
    97             END DO 
    98          END DO 
     90         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 
     91         ztrds(:,:,:) = tsa(:,:,:,jp_sal) 
    9992      ENDIF 
    10093      ! 
    10194!!gm  This should be moved into sbcmod.F90 module ? (especially now that ln_traqsr is read in namsbc namelist) 
    10295      IF( .NOT.ln_traqsr ) THEN     ! no solar radiation penetration 
    103 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
    104          DO jj = 1, jpj 
    105             DO ji = 1, jpi 
    106                qns(ji,jj) = qns(ji,jj) + qsr(ji,jj)      ! total heat flux in qns 
    107                qsr(ji,jj) = 0._wp                     ! qsr set to zero 
    108             END DO 
    109          END DO 
     96         qns(:,:) = qns(:,:) + qsr(:,:)      ! total heat flux in qns 
     97         qsr(:,:) = 0._wp                     ! qsr set to zero 
    11098      ENDIF 
    11199 
     
    119107            IF(lwp) WRITE(numout,*) '          nit000-1 sbc tracer content field read in the restart file' 
    120108            zfact = 0.5_wp 
    121             DO jn = 1, jpts 
    122 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
    123                DO jj = 1, jpj 
    124                   DO ji = 1, jpi 
    125                      sbc_tsc(ji,jj,jn) = 0._wp  ! needed just to ensure haloes are consistent across restarts 
    126                   END DO 
    127                END DO 
    128             END DO 
     109            sbc_tsc(:,:,:) = 0._wp 
    129110            CALL iom_get( numror, jpdom_autoglo, 'sbc_hc_b', sbc_tsc_b(:,:,jp_tem) )   ! before heat content sbc trend 
    130111            CALL iom_get( numror, jpdom_autoglo, 'sbc_sc_b', sbc_tsc_b(:,:,jp_sal) )   ! before salt content sbc trend 
    131112         ELSE                                   ! No restart or restart not found: Euler forward time stepping 
    132113            zfact = 1._wp 
    133             DO jn = 1, jpts 
    134 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
    135                DO jj = 1, jpj 
    136                   DO ji = 1, jpi 
    137                      sbc_tsc(ji,jj,jn) = 0._wp 
    138                      sbc_tsc_b(ji,jj,jn) = 0._wp 
    139                   END DO 
    140                END DO 
    141             END DO 
     114            sbc_tsc(:,:,:) = 0._wp 
     115            sbc_tsc_b(:,:,:) = 0._wp 
    142116         ENDIF 
    143117      ELSE                                !* other time-steps: swap of forcing fields 
    144118         zfact = 0.5_wp 
    145          DO jn = 1, jpts 
    146 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
    147             DO jj = 1, jpj 
    148                DO ji = 1, jpi 
    149                   sbc_tsc_b(ji,jj,jn) = sbc_tsc(ji,jj,jn) 
    150                END DO 
    151             END DO 
    152          END DO 
     119         sbc_tsc_b(:,:,:) = sbc_tsc(:,:,:) 
    153120      ENDIF 
    154121      !                             !==  Now sbc tracer content fields  ==! 
    155 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
    156122      DO jj = 2, jpj 
    157123         DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    161127      END DO 
    162128      IF( ln_linssh ) THEN                !* linear free surface   
    163 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
    164129         DO jj = 2, jpj                         !==>> add concentration/dilution effect due to constant volume cell 
    165130            DO ji = fs_2, fs_jpim1   ! vector opt. 
     
    173138      ! 
    174139      DO jn = 1, jpts               !==  update tracer trend  ==! 
    175 !$OMP PARALLEL DO schedule(static) private(jj, ji) 
    176140         DO jj = 2, jpj 
    177141            DO ji = fs_2, fs_jpim1   ! vector opt.   
     
    255219      ! 
    256220      IF( ln_iscpl .AND. ln_hsb) THEN         ! input of heat and salt due to river runoff  
    257 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji, zdep) 
    258221         DO jk = 1,jpk 
    259222            DO jj = 2, jpj  
     
    270233 
    271234      IF( l_trdtra )   THEN                      ! save the horizontal diffusive trends for further diagnostics 
    272 !$OMP PARALLEL DO schedule(static) private(jk, jj, ji) 
    273          DO jk = 1, jpk 
    274             DO jj = 1, jpj 
    275                DO ji = 1, jpi 
    276                   ztrdt(ji,jj,jk) = tsa(ji,jj,jk,jp_tem) - ztrdt(ji,jj,jk) 
    277                   ztrds(ji,jj,jk) = tsa(ji,jj,jk,jp_sal) - ztrds(ji,jj,jk) 
    278                END DO   
    279             END DO   
    280          END DO 
     235         ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 
     236         ztrds(:,:,:) = tsa(:,:,:,jp_sal) - ztrds(:,:,:) 
    281237         CALL trd_tra( kt, 'TRA', jp_tem, jptra_nsr, ztrdt ) 
    282238         CALL trd_tra( kt, 'TRA', jp_sal, jptra_nsr, ztrds ) 
Note: See TracChangeset for help on using the changeset viewer.