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 4825 – NEMO

Changeset 4825


Ignore:
Timestamp:
2014-10-24T18:28:42+02:00 (9 years ago)
Author:
poddo
Message:

#1404: NEMO-wave coupling WG

Location:
branches/2014/dev_r4822_INGV_WAVE/NEMOGCM
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/2014/dev_r4822_INGV_WAVE/NEMOGCM/CONFIG/SHARED/namelist_ref

    r4773 r4825  
    635635   rn_bfrien   =    50.    !  local multiplying factor of bfr (ln_bfr2d=T) 
    636636   ln_bfrimp   = .true.    !  implicit bottom friction (requires ln_zdfexp = .false. if true) 
     637   ln_zdfqiao  = .false.    !  Enhanced wave vertical mixing Qiao (2010) 
    637638/ 
    638639!----------------------------------------------------------------------- 
     
    11771178   sn_usd      =  'sdw_wave' ,        1          , 'u_sd2d'     ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
    11781179   sn_vsd      =  'sdw_wave' ,        1          , 'v_sd2d'     ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
     1180   sn_swh      =  'sdw_wave' ,        1          , 'hs'         ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
     1181   sn_wmp      =  'sdw_wave' ,        1          , 'wmp'        ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
    11791182   sn_wn       =  'sdw_wave' ,        1          , 'wave_num'   ,     .true.   , .false. , 'daily'   ,  ''      , ''       , '' 
    11801183! 
  • branches/2014/dev_r4822_INGV_WAVE/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90

    r4486 r4825  
    99   !!             -   !  2010-09  (D.Storkey and E.O'Dea) bug fixes for BDY module 
    1010   !!            3.3  !  2011-10  (M. Leclair) split former ssh_wzv routine and remove all vvl related work 
     11   !!            3.6  !  2014-10  (E. Clementi, P. Oddo) add wave contribution to surface vertical velocity  
    1112   !!---------------------------------------------------------------------- 
    1213 
     
    4243   USE wrk_nemo        ! Memory Allocation 
    4344   USE timing          ! Timing 
     45   USE sbcwave,  ONLY: usd2dt, vsd2dt,wsd3d 
    4446 
    4547   IMPLICIT NONE 
     
    172174      INTEGER             ::   ji, jj, jk   ! dummy loop indices 
    173175      REAL(wp)            ::   z1_2dt       ! local scalars 
     176      ! 
     177      REAL(wp), ALLOCATABLE, DIMENSION(:,:  ) ::  sshnu, sshnv, dsshnu,dsshnv 
    174178      !!---------------------------------------------------------------------- 
    175179       
     
    220224         END DO 
    221225      ENDIF 
     226! 
     227!     In case ln_wave and ln_sdw the surface vertical velocity is modified 
     228!     accounting for Sokes Drift velocity 
     229      IF ( ln_sdw )  THEN 
     230       ALLOCATE(sshnu(jpi,jpj),sshnv(jpi,jpj),dsshnu(jpi,jpj),dsshnv(jpi,jpj)) 
     231       sshnu (:,:) = 0._wp 
     232       sshnv (:,:) = 0._wp 
     233       dsshnu(:,:) = 0._wp 
     234       dsshnv(:,:) = 0._wp 
     235       ! sshn interpolated on U-V grid 
     236       !--------------------------------- 
     237       DO jj = 1 , jpjm1 
     238         DO ji = 1 , jpim1 
     239           sshnu(ji,jj) =  0.5 * ( 2. - umask(ji,jj,1) ) *               & 
     240                        &        ( sshn(ji  ,jj) * tmask(ji  ,jj,1)      & 
     241                        &        + sshn(ji+1,jj) * tmask(ji+1,jj,1) ) 
     242           sshnv(ji,jj) =  0.5 * ( 2. - vmask(ji,jj,1) ) *               & 
     243                        &        ( sshn(ji,jj  ) * tmask(ji,jj  ,1)      & 
     244                        &        + sshn(ji,jj+1) * tmask(ji,jj+1,1) ) 
     245         ENDDO 
     246       ENDDO 
     247       ! Compute d(ssh)/dx  and d(ssh)/dy   
     248       !--------------------------------- 
     249       DO jj = 1 , jpjm1 
     250         DO ji = 1 , jpim1 
     251           dsshnu(ji,jj) = ( sshnu(ji+1,jj) - sshnu(ji,jj) ) / e1u(ji,jj) 
     252           dsshnv(ji,jj) = ( sshnv(ji,jj+1) - sshnv(ji,jj) ) / e2v(ji,jj) 
     253         ENDDO 
     254       ENDDO 
     255       ! Compute the surface vertical velocity accounting for the Stokes Drift  
     256       !--------------------------------------------------------------------- 
     257       wn(:,:,1) = wn(:,:,1) + usd2dt(:,:) * dsshnu(:,:)     & 
     258                 &           + vsd2dt(:,:) * dsshnv(:,:)      & 
     259                 &           - ( wsd3d (:,:,1) ) * tmask(:,:,1) 
     260      ENDIF 
     261! 
    222262 
    223263#if defined key_bdy 
  • branches/2014/dev_r4822_INGV_WAVE/NEMOGCM/NEMO/OPA_SRC/ZDF/zdf_oce.F90

    r4147 r4825  
    3535   INTEGER , PUBLIC ::   nn_npc      !: non penetrative convective scheme call  frequency 
    3636   INTEGER , PUBLIC ::   nn_npcp     !: non penetrative convective scheme print frequency 
     37   LOGICAL , PUBLIC ::   ln_zdfqiao  !: Enhanced wave vertical mixing Qiao(2010) formulation flag 
    3738 
    3839 
  • branches/2014/dev_r4822_INGV_WAVE/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfini.F90

    r4677 r4825  
    5353      INTEGER ::   ios 
    5454      !! 
    55       NAMELIST/namzdf/ rn_avm0, rn_avt0, nn_avb, nn_havtb, ln_zdfexp, nn_zdfexp,   & 
    56          &              ln_zdfevd, nn_evdm, rn_avevd, ln_zdfnpc, nn_npc, nn_npcp 
     55      NAMELIST/namzdf/ rn_avm0, rn_avt0, nn_avb, nn_havtb, ln_zdfexp, nn_zdfexp,  & 
     56         &        ln_zdfevd, nn_evdm, rn_avevd, ln_zdfnpc, nn_npc, nn_npcp,       & 
     57         &        ln_zdfqiao 
    5758      !!---------------------------------------------------------------------- 
    5859 
     
    8384         WRITE(numout,*) '      npc call  frequency                 nn_npc    = ', nn_npc 
    8485         WRITE(numout,*) '      npc print frequency                 nn_npcp   = ', nn_npcp 
     86         WRITE(numout,*) '      Qiao formulation flag               ln_zdfqiao=', ln_zdfqiao 
    8587      ENDIF 
    8688 
  • branches/2014/dev_r4822_INGV_WAVE/NEMOGCM/NEMO/OPA_SRC/step.F90

    r4760 r4825  
    2525   !!            3.4  !  2011-04  (G. Madec, C. Ethe) Merge of dtatem and dtasal 
    2626   !!                 !  2012-07  (J. Simeon, G. Madec. C. Ethe) Online coarsening of outputs 
     27   !!            3.6  !  2014-10  (E. Clementi, P. Oddo) Add Qiao vertical mixing in case of waves 
    2728   !!---------------------------------------------------------------------- 
    2829 
     
    7071      !!              -8- Outputs and diagnostics 
    7172      !!---------------------------------------------------------------------- 
    72       INTEGER ::   jk       ! dummy loop indice 
     73      INTEGER ::   ji,jj,jk       ! dummy loop indice 
    7374      INTEGER ::   indic    ! error indicator if < 0 
    7475      INTEGER ::   kcall    ! optional integer argument (dom_vvl_sf_nxt) 
     
    116117      IF( lk_zdfgls  )   CALL zdf_gls( kstp )            ! GLS closure scheme for Kz 
    117118      IF( lk_zdfkpp  )   CALL zdf_kpp( kstp )            ! KPP closure scheme for Kz 
     119      IF( ln_zdfqiao )   THEN 
     120        CALL zdf_qiao(kstp )                             ! Qiao vertical mixing  
     121         DO jk = 1, jpkm1 
     122          DO jj = 1, jpj 
     123            DO ji = 1, jpi 
     124               avmu(ji,jj,jk) = (avmu(ji,jj,jk) + QBvu(ji,jj,jk)) * umask(ji,jj,jk) 
     125               avmv(ji,jj,jk) = (avmv(ji,jj,jk) + QBvv(ji,jj,jk)) * vmask(ji,jj,jk) 
     126               avt( ji,jj,jk) = (avt( ji,jj,jk) + QBv(ji,jj,jk))  * tmask(ji,jj,jk) 
     127            END DO 
     128          END DO 
     129         END DO 
     130      ENDIF 
     131 
    118132      IF( lk_zdfcst  ) THEN                              ! Constant Kz (reset avt, avm[uv] to the background value) 
    119133         avt (:,:,:) = rn_avt0 * tmask(:,:,:) 
     
    121135         avmv(:,:,:) = rn_avm0 * vmask(:,:,:) 
    122136      ENDIF 
     137! 
    123138      IF( ln_rnf_mouth ) THEN                         ! increase diffusivity at rivers mouths 
    124139         DO jk = 2, nkrnf   ;   avt(:,:,jk) = avt(:,:,jk) + 2.e0 * rn_avt_rnf * rnfmsk(:,:) * tmask(:,:,jk)   ;   END DO 
  • branches/2014/dev_r4822_INGV_WAVE/NEMOGCM/NEMO/OPA_SRC/step_oce.F90

    r4328 r4825  
    8080   USE zdfric           ! Richardson vertical mixing       (zdf_ric routine) 
    8181   USE zdfmxl           ! Mixed-layer depth                (zdf_mxl routine) 
     82   USE zdfqiao          !Qiao module wave induced mixing   (zdf_qiao routine) 
    8283 
    8384   USE zpshde           ! partial step: hor. derivative     (zps_hde routine) 
Note: See TracChangeset for help on using the changeset viewer.