- Timestamp:
- 2020-09-14T17:40:34+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@13382 sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/DYN/divhor.F90
r10425 r13463 20 20 USE oce ! ocean dynamics and tracers 21 21 USE dom_oce ! ocean space and time domain 22 USE sbc_oce, ONLY : ln_rnf, ln_isf ! surface boundary condition: ocean 23 USE sbcrnf ! river runoff 24 USE sbcisf ! ice shelf 25 USE iscplhsb ! ice sheet / ocean coupling 26 USE iscplini ! ice sheet / ocean coupling 22 USE sbc_oce, ONLY : ln_rnf ! river runoff 23 USE sbcrnf , ONLY : sbc_rnf_div ! river runoff 24 USE isf_oce, ONLY : ln_isf ! ice shelf 25 USE isfhdiv, ONLY : isf_hdiv ! ice shelf 27 26 #if defined key_asminc 28 27 USE asminc ! Assimilation increment … … 40 39 41 40 !! * Substitutions 42 # include "vectopt_loop_substitute.h90" 41 # include "do_loop_substitute.h90" 42 # include "domzgr_substitute.h90" 43 43 !!---------------------------------------------------------------------- 44 44 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 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 65 66 REAL(wp) :: zraur, zdep ! local scalars 67 REAL(wp), DIMENSION(jpi,jpj) :: ztmp 66 68 !!---------------------------------------------------------------------- 67 69 ! … … 72 74 IF(lwp) WRITE(numout,*) 'div_hor : horizontal velocity divergence ' 73 75 IF(lwp) WRITE(numout,*) '~~~~~~~ ' 76 hdiv(:,:,:) = 0._wp ! initialize hdiv for the halos at the first time step 74 77 ENDIF 75 78 ! 76 DO jk = 1, jpkm1 !== Horizontal divergence ==! 77 DO jj = 2, jpjm1 78 DO ji = fs_2, fs_jpim1 ! vector opt. 79 hdivn(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) 84 END DO 85 END DO 86 END DO 87 #if defined key_agrif 88 IF( .NOT. Agrif_Root() ) THEN 89 IF( nbondi == -1 .OR. nbondi == 2 ) hdivn( 2 , : ,:) = 0._wp ! west 90 IF( nbondi == 1 .OR. nbondi == 2 ) hdivn( nlci-1, : ,:) = 0._wp ! east 91 IF( nbondj == -1 .OR. nbondj == 2 ) hdivn( : , 2 ,:) = 0._wp ! south 92 IF( nbondj == 1 .OR. nbondj == 2 ) hdivn( : ,nlcj-1,:) = 0._wp ! north 93 ENDIF 79 DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 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) 85 END_3D 86 ! 87 IF( ln_rnf ) CALL sbc_rnf_div( hdiv, Kmm ) !== runoffs ==! (update hdiv field) 88 ! 89 #if defined key_asminc 90 IF( ln_sshinc .AND. ln_asmiau ) CALL ssh_asm_div( kt, Kbb, Kmm, hdiv ) !== SSH assimilation ==! (update hdiv field) 91 ! 94 92 #endif 95 93 ! 96 IF( ln_ rnf ) CALL sbc_rnf_div( hdivn ) !== runoffs ==! (update hdivnfield)94 IF( ln_isf ) CALL isf_hdiv( kt, Kmm, hdiv ) !== ice shelf ==! (update hdiv field) 97 95 ! 98 #if defined key_asminc 99 IF( ln_sshinc .AND. ln_asmiau ) CALL ssh_asm_div( kt, hdivn ) !== SSH assimilation ==! (update hdivn field) 100 ! 101 #endif 102 IF( ln_isf ) CALL sbc_isf_div( hdivn ) !== ice shelf ==! (update hdivn field) 103 ! 104 IF( ln_iscpl .AND. ln_hsb ) CALL iscpl_div( hdivn ) !== ice sheet ==! (update hdivn field) 105 ! 106 CALL lbc_lnk( 'divhor', hdivn, 'T', 1. ) ! (no sign change) 96 CALL lbc_lnk( 'divhor', hdiv, 'T', 1.0_wp ) ! (no sign change) 107 97 ! 108 98 IF( ln_timing ) CALL timing_stop('div_hor')
Note: See TracChangeset
for help on using the changeset viewer.