New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7351 for branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90 – NEMO

Ignore:
Timestamp:
2016-11-28T17:04:10+01:00 (7 years ago)
Author:
emanuelaclementi
Message:

ticket #1805 step 3: /2016/dev_INGV_UKMO_2016 aligned to the trunk at revision 7161

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90

    r5930 r7351  
    8585 
    8686   !! * Substitutions 
    87 #  include "domzgr_substitute.h90" 
    8887#  include "vectopt_loop_substitute.h90" 
    8988   !!---------------------------------------------------------------------- 
     
    107106      USE oce, ONLY:  zts    => tsa 
    108107      USE oce, ONLY:  zuslp  => ua   , zvslp  => va 
    109       USE zdf_oce, ONLY:  zwslpi => avmu , zwslpj => avmv  
    110108      USE oce, ONLY:  zu     => ub   , zv     => vb,  zw => rke 
    111109      ! 
    112110      INTEGER, INTENT(in) ::   kt   ! ocean time-step index 
    113111      ! 
     112       REAL(wp), DIMENSION(jpi,jpj,jpk     )  :: zwslpi, zwslpj 
    114113!      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts)  :: zts 
    115114!      REAL(wp), DIMENSION(jpi,jpj,jpk     )  :: zuslp, zvslp, zwslpi, zwslpj 
     
    359358                jf_rnf = jfld + 1  ;  jfld  = jf_rnf 
    360359         slf_d(jf_rnf) = sn_rnf 
     360         ! Activate runoff key of sbc_oce 
     361         ln_rnf = .true. 
     362         WRITE(numout,*) 'dta_dyn : Activate the runoff data structure from ocean core ( force ln_rnf = .true.) ' 
     363         WRITE(numout,*) 
    361364      ELSE 
    362365         rnf (:,:) = 0._wp 
     
    421424   END SUBROUTINE dta_dyn_init 
    422425 
     426 
    423427   SUBROUTINE dta_dyn_wzv( pu, pv, pw ) 
    424428      !!---------------------------------------------------------------------- 
     
    449453         DO jj = 2, jpjm1 
    450454            DO ji = fs_2, fs_jpim1   ! vector opt. 
    451                zu  = pu(ji  ,jj  ,jk) * umask(ji  ,jj  ,jk) * e2u(ji  ,jj  ) * fse3u(ji  ,jj  ,jk) 
    452                zu1 = pu(ji-1,jj  ,jk) * umask(ji-1,jj  ,jk) * e2u(ji-1,jj  ) * fse3u(ji-1,jj  ,jk) 
    453                zv  = pv(ji  ,jj  ,jk) * vmask(ji  ,jj  ,jk) * e1v(ji  ,jj  ) * fse3v(ji  ,jj  ,jk) 
    454                zv1 = pv(ji  ,jj-1,jk) * vmask(ji  ,jj-1,jk) * e1v(ji  ,jj-1) * fse3v(ji  ,jj-1,jk) 
    455                zet = 1. / ( e1e2t(ji,jj) * fse3t(ji,jj,jk) ) 
    456                zhdiv(ji,jj,jk) = ( zu - zu1 + zv - zv1 ) * zet  
     455               zu  = pu(ji  ,jj  ,jk) * umask(ji  ,jj  ,jk) * e2u(ji  ,jj  ) * e3u_n(ji  ,jj  ,jk) 
     456               zu1 = pu(ji-1,jj  ,jk) * umask(ji-1,jj  ,jk) * e2u(ji-1,jj  ) * e3u_n(ji-1,jj  ,jk) 
     457               zv  = pv(ji  ,jj  ,jk) * vmask(ji  ,jj  ,jk) * e1v(ji  ,jj  ) * e3v_n(ji  ,jj  ,jk) 
     458               zv1 = pv(ji  ,jj-1,jk) * vmask(ji  ,jj-1,jk) * e1v(ji  ,jj-1) * e3v_n(ji  ,jj-1,jk) 
     459               zhdiv(ji,jj,jk) = ( zu - zu1 + zv - zv1 ) * r1_e1e2t(ji,jj) / e3t_n(ji,jj,jk)  
    457460            END DO 
    458461         END DO 
    459462      END DO 
    460463      !                              !  update the horizontal divergence with the runoff inflow 
    461       IF( ln_dynrnf )  zhdiv(:,:,1) = zhdiv(:,:,1) - rnf(:,:) * r1_rau0 / fse3t(:,:,1) 
     464      IF( ln_dynrnf )   zhdiv(:,:,1) = zhdiv(:,:,1) - rnf(:,:) * r1_rau0 / e3t_n(:,:,1) 
    462465      ! 
    463466      CALL lbc_lnk( zhdiv, 'T', 1. )      ! Lateral boundary conditions on zhdiv 
     
    465468      pw(:,:,jpk) = 0._wp 
    466469      DO jk = jpkm1, 1, -1 
    467          pw(:,:,jk) = pw(:,:,jk+1) - fse3t(:,:,jk) * zhdiv(:,:,jk) 
     470         pw(:,:,jk) = pw(:,:,jk+1) - e3t_n(:,:,jk) * zhdiv(:,:,jk) 
    468471      END DO 
    469472      ! 
     
    489492         CALL bn2    ( pts, rab_n, rn2  ) ! now    Brunt-Vaisala 
    490493 
    491          ! Partial steps: before Horizontal DErivative 
    492          IF( ln_zps  .AND. .NOT. ln_isfcav)                            & 
    493             &            CALL zps_hde    ( kt, jpts, pts, gtsu, gtsv,  &  ! Partial steps: before horizontal gradient 
    494             &                                        rhd, gru , grv    )  ! of t, s, rd at the last ocean level 
    495          IF( ln_zps .AND.        ln_isfcav)                            & 
    496             &            CALL zps_hde_isf( kt, jpts, pts, gtsu, gtsv,  &    ! Partial steps for top cell (ISF) 
    497             &                                        rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv ,   & 
    498             &                                 gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi    ) ! of t, s, rd at the first ocean level 
     494      ! Partial steps: before Horizontal DErivative 
     495      IF( ln_zps  .AND. .NOT. ln_isfcav)                            & 
     496         &            CALL zps_hde    ( kt, jpts, pts, gtsu, gtsv,  &  ! Partial steps: before horizontal gradient 
     497         &                                        rhd, gru , grv    )  ! of t, s, rd at the last ocean level 
     498      IF( ln_zps .AND.        ln_isfcav)                            & 
     499         &            CALL zps_hde_isf( kt, jpts, pts, gtsu, gtsv, gtui, gtvi,  &  ! Partial steps for top cell (ISF) 
     500         &                                        rhd, gru , grv , grui, grvi   )  ! of t, s, rd at the first ocean level 
    499501 
    500502         rn2b(:,:,:) = rn2(:,:,:)         ! need for zdfmxl 
Note: See TracChangeset for help on using the changeset viewer.