- Timestamp:
- 2019-11-20T10:47:16+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/NEMO_4.0.1_momentum_trends/src/OCE/DYN/dynzdf.F90
r11715 r11934 25 25 ! 26 26 USE in_out_manager ! I/O manager 27 USE iom ! IOM library 27 28 USE lib_mpp ! MPP library 28 29 USE prtctl ! Print control … … 69 70 INTEGER :: ji, jj, jk ! dummy loop indices 70 71 INTEGER :: iku, ikv ! local integers 72 INTEGER :: ikbu, ikbv ! local integers 71 73 REAL(wp) :: zzwi, ze3ua, zdt ! local scalars 72 74 REAL(wp) :: zzws, ze3va ! - - … … 99 101 ! 100 102 ! 101 IF( l_trddyn ) THEN !* temporary save of ta and sa trends102 ALLOCATE( ztrdu(jpi,jpj,jpk), ztrdv(jpi,jpj,jpk) )103 ztrdu(:,:,:) = ua(:,:,:)104 ztrdv(:,:,:) = va(:,:,:)105 ENDIF106 !107 103 ! !== RHS: Leap-Frog time stepping on all trends but the vertical mixing ==! (put in ua,va) 108 104 ! … … 131 127 va(:,:,jk) = ( va(:,:,jk) - va_b(:,:) ) * vmask(:,:,jk) 132 128 END DO 129 IF( l_trddyn ) THEN !* temporary save of ta and sa trends 130 ALLOCATE( ztrdu(jpi,jpj,jpk), ztrdv(jpi,jpj,jpk) ) 131 ztrdu(:,:,:) = ua(:,:,:) 132 ztrdv(:,:,:) = va(:,:,:) 133 ENDIF 133 134 DO jj = 2, jpjm1 ! Add bottom/top stress due to barotropic component only 134 135 DO ji = fs_2, fs_jpim1 ! vector opt. … … 141 142 END DO 142 143 END DO 144 IF( l_trddyn ) THEN ! save explicit part of bottom friction trends 145 ztrdu(:,:,:) = ( ua(:,:,:) - ztrdu(:,:,:) ) / r2dt 146 ztrdv(:,:,:) = ( va(:,:,:) - ztrdv(:,:,:) ) / r2dt 147 CALL trd_dyn( ztrdu, ztrdv, jpdyn_bfr, kt ) 148 ENDIF 143 149 IF( ln_isfcav ) THEN ! Ocean cavities (ISF) 144 150 DO jj = 2, jpjm1 … … 153 159 END DO 154 160 END IF 161 ENDIF 162 ! 163 IF( l_trddyn ) THEN !* temporary save of ta and sa trends 164 IF( .NOT. ALLOCATED(ztrdu) ) ALLOCATE( ztrdu(jpi,jpj,jpk), ztrdv(jpi,jpj,jpk) ) 165 ztrdu(:,:,:) = ua(:,:,:) 166 ztrdv(:,:,:) = va(:,:,:) 155 167 ENDIF 156 168 ! … … 486 498 ! 487 499 IF( l_trddyn ) THEN ! save the vertical diffusive trends for further diagnostics 488 ztrdu(:,:,:) = ( ua(:,:,:) - ub(:,:,:) ) / r2dt - ztrdu(:,:,:) 489 ztrdv(:,:,:) = ( va(:,:,:) - vb(:,:,:) ) / r2dt - ztrdv(:,:,:) 500 501 ztrdu(:,:,:) = ( ua(:,:,:) - ztrdu(:,:,:) ) / r2dt 502 ztrdv(:,:,:) = ( va(:,:,:) - ztrdv(:,:,:) ) / r2dt 490 503 CALL trd_dyn( ztrdu, ztrdv, jpdyn_zdf, kt ) 504 ! 505 IF( ln_drgimp ) THEN 506 ztrdu(:,:,:) = 0._wp ; ztrdv(:,:,:) = 0._wp 507 DO jk = 1, jpkm1 508 DO jj = 2, jpjm1 509 DO ji = 2, jpim1 510 ikbu = mbku(ji,jj) ! deepest ocean u- & v-levels 511 ikbv = mbkv(ji,jj) 512 ztrdu(ji,jj,jk) = 0.5 * ( rCdU_bot(ji+1,jj) + rCdU_bot(ji,jj) ) & 513 & * un(ji,jj,ikbu) / e3u_n(ji,jj,ikbu) 514 ztrdv(ji,jj,jk) = 0.5 * ( rCdU_bot(ji,jj+1) + rCdU_bot(ji,jj) ) & 515 & * vn(ji,jj,ikbv) / e3v_n(ji,jj,ikbv) 516 END DO 517 END DO 518 END DO 519 CALL trd_dyn( ztrdu, ztrdv, jpdyn_bfri, kt ) 520 ENDIF 521 ! 491 522 DEALLOCATE( ztrdu, ztrdv ) 492 523 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.