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

    r7698 r7753  
    6666      !                                                             ! 'ij->e' = (i,j) components to east 
    6767      !                                                             ! 'ij->n' = (i,j) components to north 
    68       INTEGER  ::   ji, jj                                          ! dummy loop indices 
    6968      REAL(wp), DIMENSION(jpi,jpj), INTENT(  out) ::   prot       
    7069      !!---------------------------------------------------------------------- 
     
    8382      CASE( 'en->i' )                  ! east-north to i-component 
    8483         SELECT CASE (cd_type) 
    85          CASE ('T')    
    86 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    87             DO jj = 1, jpj 
    88                DO ji = 1, jpi 
    89                   prot(ji,jj) = pxin(ji,jj) * gcost(ji,jj) + pyin(ji,jj) * gsint(ji,jj) 
    90                END DO 
    91             END DO 
    92          CASE ('U') 
    93 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    94             DO jj = 1, jpj 
    95                DO ji = 1, jpi 
    96                   prot(ji,jj) = pxin(ji,jj) * gcosu(ji,jj) + pyin(ji,jj) * gsinu(ji,jj) 
    97                END DO 
    98             END DO 
    99          CASE ('V') 
    100 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    101             DO jj = 1, jpj 
    102                DO ji = 1, jpi 
    103                   prot(ji,jj) = pxin(ji,jj) * gcosv(ji,jj) + pyin(ji,jj) * gsinv(ji,jj) 
    104                END DO 
    105             END DO 
    106          CASE ('F') 
    107 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    108             DO jj = 1, jpj 
    109                DO ji = 1, jpi 
    110                   prot(ji,jj) = pxin(ji,jj) * gcosf(ji,jj) + pyin(ji,jj) * gsinf(ji,jj) 
    111                END DO 
    112             END DO 
     84         CASE ('T')   ;   prot(:,:) = pxin(:,:) * gcost(:,:) + pyin(:,:) * gsint(:,:) 
     85         CASE ('U')   ;   prot(:,:) = pxin(:,:) * gcosu(:,:) + pyin(:,:) * gsinu(:,:) 
     86         CASE ('V')   ;   prot(:,:) = pxin(:,:) * gcosv(:,:) + pyin(:,:) * gsinv(:,:) 
     87         CASE ('F')   ;   prot(:,:) = pxin(:,:) * gcosf(:,:) + pyin(:,:) * gsinf(:,:) 
    11388         CASE DEFAULT   ;   CALL ctl_stop( 'Only T, U, V and F grid points are coded' ) 
    11489         END SELECT 
    11590      CASE ('en->j')                   ! east-north to j-component 
    11691         SELECT CASE (cd_type) 
    117          CASE ('T') 
    118 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    119             DO jj = 1, jpj 
    120                DO ji = 1, jpi 
    121                   prot(ji,jj) = pyin(ji,jj) * gcost(ji,jj) - pxin(ji,jj) * gsint(ji,jj) 
    122                END DO 
    123             END DO 
    124          CASE ('U') 
    125 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    126             DO jj = 1, jpj 
    127                DO ji = 1, jpi 
    128                   prot(ji,jj) = pyin(ji,jj) * gcosu(ji,jj) - pxin(ji,jj) * gsinu(ji,jj) 
    129                END DO 
    130             END DO 
    131          CASE ('V')    
    132 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    133             DO jj = 1, jpj 
    134                DO ji = 1, jpi 
    135                   prot(ji,jj) = pyin(ji,jj) * gcosv(ji,jj) - pxin(ji,jj) * gsinv(ji,jj) 
    136                END DO 
    137             END DO 
    138          CASE ('F')    
    139 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    140             DO jj = 1, jpj 
    141                DO ji = 1, jpi 
    142                   prot(ji,jj) = pyin(ji,jj) * gcosf(ji,jj) - pxin(ji,jj) * gsinf(ji,jj) 
    143                END DO 
    144             END DO 
     92         CASE ('T')   ;   prot(:,:) = pyin(:,:) * gcost(:,:) - pxin(:,:) * gsint(:,:) 
     93         CASE ('U')   ;   prot(:,:) = pyin(:,:) * gcosu(:,:) - pxin(:,:) * gsinu(:,:) 
     94         CASE ('V')   ;   prot(:,:) = pyin(:,:) * gcosv(:,:) - pxin(:,:) * gsinv(:,:)    
     95         CASE ('F')   ;   prot(:,:) = pyin(:,:) * gcosf(:,:) - pxin(:,:) * gsinf(:,:)    
    14596         CASE DEFAULT   ;   CALL ctl_stop( 'Only T, U, V and F grid points are coded' ) 
    14697         END SELECT 
    14798      CASE ('ij->e')                   ! (i,j)-components to east 
    14899         SELECT CASE (cd_type) 
    149          CASE ('T') 
    150 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    151             DO jj = 1, jpj 
    152                DO ji = 1, jpi 
    153                   prot(ji,jj) = pxin(ji,jj) * gcost(ji,jj) - pyin(ji,jj) * gsint(ji,jj) 
    154                END DO 
    155             END DO 
    156          CASE ('U') 
    157 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    158             DO jj = 1, jpj 
    159                DO ji = 1, jpi 
    160                   prot(ji,jj) = pxin(ji,jj) * gcosu(ji,jj) - pyin(ji,jj) * gsinu(ji,jj) 
    161                END DO 
    162             END DO 
    163          CASE ('V') 
    164 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    165             DO jj = 1, jpj 
    166                DO ji = 1, jpi 
    167                   prot(ji,jj) = pxin(ji,jj) * gcosv(ji,jj) - pyin(ji,jj) * gsinv(ji,jj) 
    168                END DO 
    169             END DO 
    170          CASE ('F') 
    171 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    172             DO jj = 1, jpj 
    173                DO ji = 1, jpi 
    174                   prot(ji,jj) = pxin(ji,jj) * gcosf(ji,jj) - pyin(ji,jj) * gsinf(ji,jj) 
    175                END DO 
    176             END DO 
     100         CASE ('T')   ;   prot(:,:) = pxin(:,:) * gcost(:,:) - pyin(:,:) * gsint(:,:) 
     101         CASE ('U')   ;   prot(:,:) = pxin(:,:) * gcosu(:,:) - pyin(:,:) * gsinu(:,:) 
     102         CASE ('V')   ;   prot(:,:) = pxin(:,:) * gcosv(:,:) - pyin(:,:) * gsinv(:,:) 
     103         CASE ('F')   ;   prot(:,:) = pxin(:,:) * gcosf(:,:) - pyin(:,:) * gsinf(:,:) 
    177104         CASE DEFAULT   ;   CALL ctl_stop( 'Only T, U, V and F grid points are coded' ) 
    178105         END SELECT 
    179106      CASE ('ij->n')                   ! (i,j)-components to north  
    180107         SELECT CASE (cd_type) 
    181          CASE ('T') 
    182 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    183             DO jj = 1, jpj 
    184                DO ji = 1, jpi 
    185                   prot(ji,jj) = pyin(ji,jj) * gcost(ji,jj) + pxin(ji,jj) * gsint(ji,jj) 
    186                END DO 
    187             END DO 
    188          CASE ('U') 
    189 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    190             DO jj = 1, jpj 
    191                DO ji = 1, jpi 
    192                   prot(ji,jj) = pyin(ji,jj) * gcosu(ji,jj) + pxin(ji,jj) * gsinu(ji,jj) 
    193                END DO 
    194             END DO 
    195          CASE ('V') 
    196 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    197             DO jj = 1, jpj 
    198                DO ji = 1, jpi 
    199                   prot(ji,jj) = pyin(ji,jj) * gcosv(ji,jj) + pxin(ji,jj) * gsinv(ji,jj) 
    200                END DO 
    201             END DO 
    202          CASE ('F') 
    203 !$OMP PARALLEL DO schedule(static) private(jj,ji) 
    204             DO jj = 1, jpj 
    205                DO ji = 1, jpi 
    206                   prot(ji,jj) = pyin(ji,jj) * gcosf(ji,jj) + pxin(ji,jj) * gsinf(ji,jj) 
    207                END DO 
    208             END DO 
     108         CASE ('T')   ;   prot(:,:) = pyin(:,:) * gcost(:,:) + pxin(:,:) * gsint(:,:) 
     109         CASE ('U')   ;   prot(:,:) = pyin(:,:) * gcosu(:,:) + pxin(:,:) * gsinu(:,:) 
     110         CASE ('V')   ;   prot(:,:) = pyin(:,:) * gcosv(:,:) + pxin(:,:) * gsinv(:,:) 
     111         CASE ('F')   ;   prot(:,:) = pyin(:,:) * gcosf(:,:) + pxin(:,:) * gsinf(:,:) 
    209112         CASE DEFAULT   ;   CALL ctl_stop( 'Only T, U, V and F grid points are coded' ) 
    210113         END SELECT 
     
    254157      ! (computation done on the north stereographic polar plane) 
    255158      ! 
    256 !$OMP PARALLEL 
    257 !$OMP DO schedule(static) private(jj,ji,zlam,zphi,zxnpt,zynpt,znnpt,zxnpu,zynpu,znnpu,zxnpv,zynpv,znnpv,zxnpf) & 
    258 !$OMP& private(zynpf,znnpf,zlan,zphh,zxvvt,zyvvt,znvvt,zxffu,zyffu,znffu,zxffv,zyffv,znffv,zxuuf,zyuuf,znuuf) 
    259159      DO jj = 2, jpjm1 
    260160         DO ji = fs_2, jpi   ! vector opt. 
     
    348248      ! =============== ! 
    349249 
    350 !$OMP DO schedule(static) private(jj,ji) 
    351250      DO jj = 2, jpjm1 
    352251         DO ji = fs_2, jpi   ! vector opt. 
     
    369268         END DO 
    370269      END DO 
    371 !$OMP END DO NOWAIT 
    372 !$OMP END PARALLEL 
    373270 
    374271      ! =========================== ! 
Note: See TracChangeset for help on using the changeset viewer.