Changeset 5086 for branches/2014/dev_r4650_UKMO3_masked_damping/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
- Timestamp:
- 2015-02-17T10:06:39+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO3_masked_damping/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r4624 r5086 44 44 USE agrif_opa_interp ! agrif 45 45 #endif 46 46 #if defined key_asminc 47 USE asminc ! Assimilation increment 48 #endif 47 49 48 50 IMPLICIT NONE … … 95 97 ALLOCATE( wgtbtp1(3*nn_baro), wgtbtp2(3*nn_baro), zwz(jpi,jpj), STAT= ierr(2) ) 96 98 97 IF( ln_dynvor_een ) ALLOCATE( ftnw(jpi,jpj) , ftne(jpi,jpj) , &98 & ftsw(jpi,jpj) , ftse(jpi,jpj) , STAT=ierr(3) )99 IF( ln_dynvor_een .or. ln_dynvor_een_old ) ALLOCATE( ftnw(jpi,jpj) , ftne(jpi,jpj) , & 100 & ftsw(jpi,jpj) , ftse(jpi,jpj) , STAT=ierr(3) ) 99 101 100 102 dyn_spg_ts_alloc = MAXVAL(ierr(:)) … … 216 218 ! 217 219 IF ( kt == nit000 .OR. lk_vvl ) THEN 218 IF ( ln_dynvor_een ) THEN 220 IF ( ln_dynvor_een_old ) THEN 221 DO jj = 1, jpjm1 222 DO ji = 1, jpim1 223 zwz(ji,jj) = ( ht(ji ,jj+1) + ht(ji+1,jj+1) + & 224 & ht(ji ,jj ) + ht(ji+1,jj ) ) / 4._wp 225 IF( zwz(ji,jj) /= 0._wp ) zwz(ji,jj) = 1._wp / zwz(ji,jj) 226 END DO 227 END DO 228 CALL lbc_lnk( zwz, 'F', 1._wp ) 229 zwz(:,:) = ff(:,:) * zwz(:,:) 230 231 ftne(1,:) = 0._wp ; ftnw(1,:) = 0._wp ; ftse(1,:) = 0._wp ; ftsw(1,:) = 0._wp 232 DO jj = 2, jpj 233 DO ji = fs_2, jpi ! vector opt. 234 ftne(ji,jj) = zwz(ji-1,jj ) + zwz(ji ,jj ) + zwz(ji ,jj-1) 235 ftnw(ji,jj) = zwz(ji-1,jj-1) + zwz(ji-1,jj ) + zwz(ji ,jj ) 236 ftse(ji,jj) = zwz(ji ,jj ) + zwz(ji ,jj-1) + zwz(ji-1,jj-1) 237 ftsw(ji,jj) = zwz(ji ,jj-1) + zwz(ji-1,jj-1) + zwz(ji-1,jj ) 238 END DO 239 END DO 240 ELSE IF ( ln_dynvor_een ) THEN 219 241 DO jj = 1, jpjm1 220 242 DO ji = 1, jpim1 … … 290 312 ! 291 313 DO jk = 1, jpkm1 292 #if defined key_vectopt_loop 293 DO jj = 1, 1 !Vector opt. => forced unrolling 294 DO ji = 1, jpij 295 #else 296 DO jj = 1, jpj 297 DO ji = 1, jpi 298 #endif 299 zu_frc(ji,jj) = zu_frc(ji,jj) + fse3u_n(ji,jj,jk) * ua(ji,jj,jk) * umask(ji,jj,jk) 300 zv_frc(ji,jj) = zv_frc(ji,jj) + fse3v_n(ji,jj,jk) * va(ji,jj,jk) * vmask(ji,jj,jk) 301 END DO 302 END DO 314 zu_frc(:,:) = zu_frc(:,:) + fse3u_n(:,:,jk) * ua(:,:,jk) * umask(:,:,jk) 315 zv_frc(:,:) = zv_frc(:,:) + fse3v_n(:,:,jk) * va(:,:,jk) * vmask(:,:,jk) 303 316 END DO 304 317 ! … … 346 359 END DO 347 360 ! 348 ELSEIF ( ln_dynvor_een ) THEN! enstrophy and energy conserving scheme361 ELSEIF ( ln_dynvor_een .or. ln_dynvor_een_old ) THEN ! enstrophy and energy conserving scheme 349 362 DO jj = 2, jpjm1 350 363 DO ji = fs_2, fs_jpim1 ! vector opt. … … 464 477 ! ! ==================== ! 465 478 ! Initialize barotropic variables: 479 IF( ll_init )THEN 480 sshbb_e(:,:) = 0._wp 481 ubb_e (:,:) = 0._wp 482 vbb_e (:,:) = 0._wp 483 sshb_e (:,:) = 0._wp 484 ub_e (:,:) = 0._wp 485 vb_e (:,:) = 0._wp 486 ENDIF 487 ! 466 488 IF (ln_bt_fw) THEN ! FORWARD integration: start from NOW fields 467 489 sshn_e(:,:) = sshn (:,:) … … 685 707 END DO 686 708 ! 687 ELSEIF ( ln_dynvor_een ) THEN!== energy and enstrophy conserving scheme ==!709 ELSEIF ( ln_dynvor_een .or. ln_dynvor_een_old ) THEN !== energy and enstrophy conserving scheme ==! 688 710 DO jj = 2, jpjm1 689 711 DO ji = fs_2, fs_jpim1 ! vector opt.
Note: See TracChangeset
for help on using the changeset viewer.