- Timestamp:
- 2019-11-22T15:29:17+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11943_MERGE_2019/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src
- Property svn:mergeinfo deleted
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/DYN/divhor.F90
r10425 r11949 48 48 CONTAINS 49 49 50 SUBROUTINE div_hor( kt )50 SUBROUTINE div_hor( kt, Kbb, Kmm ) 51 51 !!---------------------------------------------------------------------- 52 52 !! *** ROUTINE div_hor *** … … 55 55 !! 56 56 !! ** Method : the now divergence is computed as : 57 !! hdiv n= 1/(e1e2t*e3t) ( di[e2u*e3u un] + dj[e1v*e3v vn] )57 !! hdiv = 1/(e1e2t*e3t) ( di[e2u*e3u un] + dj[e1v*e3v vn] ) 58 58 !! and correct with runoff inflow (div_rnf) and cross land flow (div_cla) 59 59 !! 60 !! ** Action : - update hdiv n, the now horizontal divergence60 !! ** Action : - update hdiv, the now horizontal divergence 61 61 !!---------------------------------------------------------------------- 62 INTEGER, INTENT(in) :: kt ! ocean time-step index 62 INTEGER, INTENT(in) :: kt ! ocean time-step index 63 INTEGER, INTENT(in) :: Kbb, Kmm ! ocean time level indices 63 64 ! 64 65 INTEGER :: ji, jj, jk ! dummy loop indices … … 77 78 DO jj = 2, jpjm1 78 79 DO ji = fs_2, fs_jpim1 ! vector opt. 79 hdiv n(ji,jj,jk) = ( e2u(ji ,jj) * e3u_n(ji ,jj,jk) * un(ji ,jj,jk) &80 & - e2u(ji-1,jj) * e3u _n(ji-1,jj,jk) * un(ji-1,jj,jk) &81 & + e1v(ji,jj ) * e3v _n(ji,jj ,jk) * vn(ji,jj ,jk) &82 & - e1v(ji,jj-1) * e3v _n(ji,jj-1,jk) * vn(ji,jj-1,jk) ) &83 & * r1_e1e2t(ji,jj) / e3t _n(ji,jj,jk)80 hdiv(ji,jj,jk) = ( e2u(ji ,jj) * e3u(ji ,jj,jk,Kmm) * uu(ji ,jj,jk,Kmm) & 81 & - e2u(ji-1,jj) * e3u(ji-1,jj,jk,Kmm) * uu(ji-1,jj,jk,Kmm) & 82 & + e1v(ji,jj ) * e3v(ji,jj ,jk,Kmm) * vv(ji,jj ,jk,Kmm) & 83 & - e1v(ji,jj-1) * e3v(ji,jj-1,jk,Kmm) * vv(ji,jj-1,jk,Kmm) ) & 84 & * r1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kmm) 84 85 END DO 85 86 END DO … … 87 88 #if defined key_agrif 88 89 IF( .NOT. Agrif_Root() ) THEN 89 IF( nbondi == -1 .OR. nbondi == 2 ) hdiv n( 2 , : ,:) = 0._wp ! west90 IF( nbondi == 1 .OR. nbondi == 2 ) hdiv n( nlci-1, : ,:) = 0._wp ! east91 IF( nbondj == -1 .OR. nbondj == 2 ) hdiv n( : , 2 ,:) = 0._wp ! south92 IF( nbondj == 1 .OR. nbondj == 2 ) hdiv n( : ,nlcj-1,:) = 0._wp ! north90 IF( nbondi == -1 .OR. nbondi == 2 ) hdiv( 2 , : ,:) = 0._wp ! west 91 IF( nbondi == 1 .OR. nbondi == 2 ) hdiv( nlci-1, : ,:) = 0._wp ! east 92 IF( nbondj == -1 .OR. nbondj == 2 ) hdiv( : , 2 ,:) = 0._wp ! south 93 IF( nbondj == 1 .OR. nbondj == 2 ) hdiv( : ,nlcj-1,:) = 0._wp ! north 93 94 ENDIF 94 95 #endif 95 96 ! 96 IF( ln_rnf ) CALL sbc_rnf_div( hdiv n ) !== runoffs ==! (update hdivnfield)97 IF( ln_rnf ) CALL sbc_rnf_div( hdiv, Kmm ) !== runoffs ==! (update hdiv field) 97 98 ! 98 99 #if defined key_asminc 99 IF( ln_sshinc .AND. ln_asmiau ) CALL ssh_asm_div( kt, hdivn ) !== SSH assimilation ==! (update hdivnfield)100 IF( ln_sshinc .AND. ln_asmiau ) CALL ssh_asm_div( kt, Kbb, Kmm, hdiv ) !== SSH assimilation ==! (update hdiv field) 100 101 ! 101 102 #endif 102 IF( ln_isf ) CALL sbc_isf_div( hdiv n ) !== ice shelf ==! (update hdivnfield)103 IF( ln_isf ) CALL sbc_isf_div( hdiv, Kmm ) !== ice shelf ==! (update hdiv field) 103 104 ! 104 IF( ln_iscpl .AND. ln_hsb ) CALL iscpl_div( hdivn ) !== ice sheet ==! (update hdivnfield)105 IF( ln_iscpl .AND. ln_hsb ) CALL iscpl_div( Kmm, hdiv ) !== ice sheet ==! (update hdiv field) 105 106 ! 106 CALL lbc_lnk( 'divhor', hdiv n, 'T', 1. ) ! (no sign change)107 CALL lbc_lnk( 'divhor', hdiv, 'T', 1. ) ! (no sign change) 107 108 ! 108 109 IF( ln_timing ) CALL timing_stop('div_hor')
Note: See TracChangeset
for help on using the changeset viewer.