Changeset 7698 for trunk/NEMOGCM/NEMO/OPA_SRC/SBC/geo2ocean.F90
- Timestamp:
- 2017-02-18T10:02:03+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/SBC/geo2ocean.F90
r6140 r7698 66 66 ! ! 'ij->e' = (i,j) components to east 67 67 ! ! 'ij->n' = (i,j) components to north 68 INTEGER :: ji, jj ! dummy loop indices 68 69 REAL(wp), DIMENSION(jpi,jpj), INTENT( out) :: prot 69 70 !!---------------------------------------------------------------------- … … 82 83 CASE( 'en->i' ) ! east-north to i-component 83 84 SELECT CASE (cd_type) 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(:,:) 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 88 113 CASE DEFAULT ; CALL ctl_stop( 'Only T, U, V and F grid points are coded' ) 89 114 END SELECT 90 115 CASE ('en->j') ! east-north to j-component 91 116 SELECT CASE (cd_type) 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(:,:) 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 96 145 CASE DEFAULT ; CALL ctl_stop( 'Only T, U, V and F grid points are coded' ) 97 146 END SELECT 98 147 CASE ('ij->e') ! (i,j)-components to east 99 148 SELECT CASE (cd_type) 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(:,:) 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 104 177 CASE DEFAULT ; CALL ctl_stop( 'Only T, U, V and F grid points are coded' ) 105 178 END SELECT 106 179 CASE ('ij->n') ! (i,j)-components to north 107 180 SELECT CASE (cd_type) 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(:,:) 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 112 209 CASE DEFAULT ; CALL ctl_stop( 'Only T, U, V and F grid points are coded' ) 113 210 END SELECT … … 157 254 ! (computation done on the north stereographic polar plane) 158 255 ! 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) 159 259 DO jj = 2, jpjm1 160 260 DO ji = fs_2, jpi ! vector opt. … … 248 348 ! =============== ! 249 349 350 !$OMP DO schedule(static) private(jj,ji) 250 351 DO jj = 2, jpjm1 251 352 DO ji = fs_2, jpi ! vector opt. … … 268 369 END DO 269 370 END DO 371 !$OMP END DO NOWAIT 372 !$OMP END PARALLEL 270 373 271 374 ! =========================== !
Note: See TracChangeset
for help on using the changeset viewer.