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/SBC/sbcmod.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/SBC/sbcmod.F90

    r7698 r7753  
    8484      !!              - nsbc: type of sbc 
    8585      !!---------------------------------------------------------------------- 
    86       INTEGER ::   ji, jj, jn                        ! dummy loop indices 
    8786      INTEGER ::   ios, icpt                         ! local integer 
    8887      LOGICAL ::   ll_purecpl, ll_opa, ll_not_nemo   ! local logical 
     
    241240      IF( .NOT.ln_isf ) THEN        !* No ice-shelf in the domain : allocate and set to zero 
    242241         IF( sbc_isf_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'sbc_init : unable to allocate sbc_isf arrays' ) 
    243 !$OMP PARALLEL 
    244 !$OMP DO schedule(static) private(jj,ji) 
    245          DO jj = 1, jpj 
    246             DO ji = 1, jpi 
    247                fwfisf  (ji,jj)   = 0.0_wp ; fwfisf_b  (ji,jj)   = 0.0_wp 
    248             END DO 
    249          END DO 
    250 !$OMP END DO NOWAIT 
    251          DO jn = 1, jpts 
    252 !$OMP DO schedule(static) private(jj,ji) 
    253             DO jj = 1, jpj 
    254                DO ji = 1, jpi 
    255                   risf_tsc(ji,jj,jn) = 0.0_wp ; risf_tsc_b(ji,jj,jn) = 0.0_wp 
    256                END DO 
    257             END DO 
    258          END DO 
    259 !$OMP END PARALLEL 
     242         fwfisf  (:,:)   = 0._wp   ;   risf_tsc  (:,:,:) = 0._wp 
     243         fwfisf_b(:,:)   = 0._wp   ;   risf_tsc_b(:,:,:) = 0._wp 
    260244      END IF 
    261245      IF( nn_ice == 0 ) THEN        !* No sea-ice in the domain : ice fraction is always zero 
    262          IF( nn_components /= jp_iam_opa ) THEN 
    263 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    264             DO jj = 1, jpj 
    265                DO ji = 1, jpi 
    266                   fr_i(ji,jj) = 0._wp    ! except for OPA in SAS-OPA coupled case 
    267                END DO 
    268             END DO 
    269          END IF 
    270       ENDIF 
    271       ! 
    272 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    273       DO jj = 1, jpj 
    274          DO ji = 1, jpi 
    275             sfx   (ji,jj) = 0._wp           !* salt flux due to freezing/melting 
    276             fmmflx(ji,jj) = 0._wp           !* freezing minus melting flux 
    277             taum  (ji,jj) = 0._wp           !* wind stress module (needed in GLS in case of reduced restart) 
    278          END DO 
    279       END DO 
     246         IF( nn_components /= jp_iam_opa )   fr_i(:,:) = 0._wp    ! except for OPA in SAS-OPA coupled case 
     247      ENDIF 
     248      ! 
     249      sfx   (:,:) = 0._wp           !* salt flux due to freezing/melting 
     250      fmmflx(:,:) = 0._wp           !* freezing minus melting flux 
     251 
     252      taum(:,:) = 0._wp             !* wind stress module (needed in GLS in case of reduced restart) 
    280253 
    281254      !                          ! Choice of the Surface Boudary Condition (set nsbc) 
     
    383356      !!---------------------------------------------------------------------- 
    384357      INTEGER, INTENT(in) ::   kt   ! ocean time step 
    385       INTEGER ::   ji, jj, jn       ! dummy loop indices 
    386358      ! 
    387359      LOGICAL ::   ll_sas, ll_opa   ! local logical 
     
    393365      IF( kt /= nit000 ) THEN                      !          Swap of forcing fields          ! 
    394366         !                                         ! ---------------------------------------- ! 
    395 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    396          DO jj = 1, jpj 
    397             DO ji = 1, jpi 
    398                utau_b(ji,jj) = utau(ji,jj)                         ! Swap the ocean forcing fields 
    399                vtau_b(ji,jj) = vtau(ji,jj)                         ! (except at nit000 where before fields 
    400                qns_b (ji,jj) = qns (ji,jj)                         !  are set at the end of the routine) 
    401                emp_b (ji,jj) = emp (ji,jj) 
    402                sfx_b (ji,jj) = sfx (ji,jj) 
    403             END DO 
    404          END DO 
     367         utau_b(:,:) = utau(:,:)                         ! Swap the ocean forcing fields 
     368         vtau_b(:,:) = vtau(:,:)                         ! (except at nit000 where before fields 
     369         qns_b (:,:) = qns (:,:)                         !  are set at the end of the routine) 
     370         emp_b (:,:) = emp (:,:) 
     371         sfx_b (:,:) = sfx (:,:) 
    405372         IF ( ln_rnf ) THEN 
    406 !$OMP PARALLEL 
    407 !$OMP DO schedule(static) private(jj,ji) 
    408             DO jj = 1, jpj 
    409                DO ji = 1, jpi 
    410                   rnf_b    (ji,jj  ) = rnf    (ji,jj  ) 
    411                END DO 
    412             END DO 
    413 !$OMP END DO NOWAIT 
    414             DO jn = 1, jpts 
    415 !$OMP DO schedule(static) private(jj,ji) 
    416                DO jj = 1, jpj 
    417                   DO ji = 1, jpi 
    418                      rnf_tsc_b(ji,jj,jn) = rnf_tsc(ji,jj,jn) 
    419                   END DO 
    420                END DO 
    421             END DO 
    422 !$OMP END PARALLEL 
     373            rnf_b    (:,:  ) = rnf    (:,:  ) 
     374            rnf_tsc_b(:,:,:) = rnf_tsc(:,:,:) 
    423375         ENDIF 
    424376      ENDIF 
     
    449401      END SELECT 
    450402      IF ( ln_wave .AND. ln_tauoc) THEN                                 ! Wave stress subctracted 
    451 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    452          DO jj = 1, jpj 
    453             DO ji = 1, jpi 
    454                utau(ji,jj) = utau(ji,jj)*tauoc_wave(ji,jj) 
    455                vtau(ji,jj) = vtau(ji,jj)*tauoc_wave(ji,jj) 
    456                taum(ji,jj) = taum(ji,jj)*tauoc_wave(ji,jj) 
    457             END DO 
    458          END DO 
     403            utau(:,:) = utau(:,:)*tauoc_wave(:,:) 
     404            vtau(:,:) = vtau(:,:)*tauoc_wave(:,:) 
     405            taum(:,:) = taum(:,:)*tauoc_wave(:,:) 
    459406      ! 
    460407            SELECT CASE( nsbc ) 
     
    510457               CALL iom_get( numror, jpdom_autoglo, 'sfx_b', sfx_b )  ! before salt flux (T-point) 
    511458            ELSE 
    512 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    513                DO jj = 1, jpj 
    514                   DO ji = 1, jpi 
    515                      sfx_b (ji,jj) = sfx(ji,jj) 
    516                   END DO 
    517                END DO 
     459               sfx_b (:,:) = sfx(:,:) 
    518460            ENDIF 
    519461         ELSE                                                   !* no restart: set from nit000 values 
    520462            IF(lwp) WRITE(numout,*) '          nit000-1 surface forcing fields set to nit000' 
    521 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    522             DO jj = 1, jpj 
    523                DO ji = 1, jpi 
    524                   utau_b(ji,jj) = utau(ji,jj) 
    525                   vtau_b(ji,jj) = vtau(ji,jj) 
    526                   qns_b (ji,jj) = qns (ji,jj) 
    527                   emp_b (ji,jj) = emp(ji,jj) 
    528                   sfx_b (ji,jj) = sfx(ji,jj) 
    529                END DO 
    530             END DO 
     463            utau_b(:,:) = utau(:,:) 
     464            vtau_b(:,:) = vtau(:,:) 
     465            qns_b (:,:) = qns (:,:) 
     466            emp_b (:,:) = emp (:,:) 
     467            sfx_b (:,:) = sfx (:,:) 
    531468         ENDIF 
    532469      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.