- Timestamp:
- 2016-06-28T11:53:56+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
r6140 r6748 106 106 CASE ( np_ENE ) !* energy conserving scheme 107 107 IF( l_trddyn ) THEN ! trend diagnostics: split the trend in two 108 !$OMP PARALLEL WORKSHARE 108 109 ztrdu(:,:,:) = ua(:,:,:) 109 110 ztrdv(:,:,:) = va(:,:,:) 111 !$OMP END PARALLEL WORKSHARE 110 112 CALL vor_ene( kt, nrvm, ua, va ) ! relative vorticity or metric trend 113 !$OMP PARALLEL WORKSHARE 111 114 ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 112 115 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 116 !$OMP END PARALLEL WORKSHARE 113 117 CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 118 !$OMP PARALLEL WORKSHARE 114 119 ztrdu(:,:,:) = ua(:,:,:) 115 120 ztrdv(:,:,:) = va(:,:,:) 121 !$OMP END PARALLEL WORKSHARE 116 122 CALL vor_ene( kt, ncor, ua, va ) ! planetary vorticity trend 123 !$OMP PARALLEL WORKSHARE 117 124 ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 118 125 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 126 !$OMP END PARALLEL WORKSHARE 119 127 CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 120 128 ELSE … … 124 132 CASE ( np_ENS ) !* enstrophy conserving scheme 125 133 IF( l_trddyn ) THEN ! trend diagnostics: splitthe trend in two 134 !$OMP PARALLEL WORKSHARE 126 135 ztrdu(:,:,:) = ua(:,:,:) 127 136 ztrdv(:,:,:) = va(:,:,:) 137 !$OMP END PARALLEL WORKSHARE 128 138 CALL vor_ens( kt, nrvm, ua, va ) ! relative vorticity or metric trend 139 !$OMP PARALLEL WORKSHARE 129 140 ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 130 141 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 142 !$OMP END PARALLEL WORKSHARE 131 143 CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 144 !$OMP PARALLEL WORKSHARE 132 145 ztrdu(:,:,:) = ua(:,:,:) 133 146 ztrdv(:,:,:) = va(:,:,:) 147 !$OMP END PARALLEL WORKSHARE 134 148 CALL vor_ens( kt, ncor, ua, va ) ! planetary vorticity trend 149 !$OMP PARALLEL WORKSHARE 135 150 ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 136 151 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 152 !$OMP END PARALLEL WORKSHARE 137 153 CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 138 154 ELSE … … 142 158 CASE ( np_MIX ) !* mixed ene-ens scheme 143 159 IF( l_trddyn ) THEN ! trend diagnostics: split the trend in two 160 !$OMP PARALLEL WORKSHARE 144 161 ztrdu(:,:,:) = ua(:,:,:) 145 162 ztrdv(:,:,:) = va(:,:,:) 163 !$OMP END PARALLEL WORKSHARE 146 164 CALL vor_ens( kt, nrvm, ua, va ) ! relative vorticity or metric trend (ens) 165 !$OMP PARALLEL WORKSHARE 147 166 ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 148 167 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 168 !$OMP END PARALLEL WORKSHARE 149 169 CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 170 !$OMP PARALLEL WORKSHARE 150 171 ztrdu(:,:,:) = ua(:,:,:) 151 172 ztrdv(:,:,:) = va(:,:,:) 173 !$OMP END PARALLEL WORKSHARE 152 174 CALL vor_ene( kt, ncor, ua, va ) ! planetary vorticity trend (ene) 175 !$OMP PARALLEL WORKSHARE 153 176 ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 154 177 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 178 !$OMP END PARALLEL WORKSHARE 155 179 CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 156 180 ELSE … … 161 185 CASE ( np_EEN ) !* energy and enstrophy conserving scheme 162 186 IF( l_trddyn ) THEN ! trend diagnostics: split the trend in two 187 !$OMP PARALLEL WORKSHARE 163 188 ztrdu(:,:,:) = ua(:,:,:) 164 189 ztrdv(:,:,:) = va(:,:,:) 190 !$OMP END PARALLEL WORKSHARE 165 191 CALL vor_een( kt, nrvm, ua, va ) ! relative vorticity or metric trend 192 !$OMP PARALLEL WORKSHARE 166 193 ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 167 194 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 195 !$OMP END PARALLEL WORKSHARE 168 196 CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 197 !$OMP PARALLEL WORKSHARE 169 198 ztrdu(:,:,:) = ua(:,:,:) 170 199 ztrdv(:,:,:) = va(:,:,:) 200 !$OMP END PARALLEL WORKSHARE 171 201 CALL vor_een( kt, ncor, ua, va ) ! planetary vorticity trend 202 !$OMP PARALLEL WORKSHARE 172 203 ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 173 204 ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 205 !$OMP END PARALLEL WORKSHARE 174 206 CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 175 207 ELSE … … 237 269 SELECT CASE( kvor ) !== vorticity considered ==! 238 270 CASE ( np_COR ) !* Coriolis (planetary vorticity) 271 !$OMP PARALLEL WORKSHARE 239 272 zwz(:,:) = ff(:,:) 273 !$OMP END PARALLEL WORKSHARE 240 274 CASE ( np_RVO ) !* relative vorticity 275 !$OMP PARALLEL DO private(jj,ji) 241 276 DO jj = 1, jpjm1 242 277 DO ji = 1, fs_jpim1 ! vector opt. … … 246 281 END DO 247 282 CASE ( np_MET ) !* metric term 283 !$OMP PARALLEL DO private(jj,ji) 248 284 DO jj = 1, jpjm1 249 285 DO ji = 1, fs_jpim1 ! vector opt. … … 254 290 END DO 255 291 CASE ( np_CRV ) !* Coriolis + relative vorticity 292 !$OMP PARALLEL DO private(jj,ji) 256 293 DO jj = 1, jpjm1 257 294 DO ji = 1, fs_jpim1 ! vector opt. … … 262 299 END DO 263 300 CASE ( np_CME ) !* Coriolis + metric 301 !$OMP PARALLEL DO private(jj,ji) 264 302 DO jj = 1, jpjm1 265 303 DO ji = 1, fs_jpim1 ! vector opt. … … 275 313 ! 276 314 IF( ln_dynvor_msk ) THEN !== mask/unmask vorticity ==! 315 !$OMP PARALLEL DO private(jj,ji) 277 316 DO jj = 1, jpjm1 278 317 DO ji = 1, fs_jpim1 ! vector opt. … … 287 326 zwy(:,:) = e1v(:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 288 327 ELSE 328 !$OMP PARALLEL WORKSHARE 289 329 zwx(:,:) = e2u(:,:) * un(:,:,jk) 290 330 zwy(:,:) = e1v(:,:) * vn(:,:,jk) 331 !$OMP END PARALLEL WORKSHARE 291 332 ENDIF 292 333 ! !== compute and add the vorticity term trend =! 334 !$OMP PARALLEL DO private(jj, ji, zy1, zy2, zx1, zx2) 293 335 DO jj = 2, jpjm1 294 336 DO ji = fs_2, fs_jpim1 ! vector opt.
Note: See TracChangeset
for help on using the changeset viewer.