Changeset 3084
- Timestamp:
- 2011-11-14T13:07:57+01:00 (13 years ago)
- Location:
- branches/2011/dev_LOCEAN_CMCC_2011
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_LOCEAN_CMCC_2011/DOC/TexFiles/Biblio/Biblio.bib
r2541 r3084 722 722 year = {2000}, 723 723 pages = {237--313} 724 } 725 726 727 @ARTICLE{Dobricic_al_OS07, 728 author = {S. Dobricic and N. Pinardi and M. Adani and M. Tonani and 729 C. Fratianni and A. Bonazzi and V. Fernandez}, 730 title = {Daily oceanographic analysis by the Mediterranean basin scale 731 assimilation system}, 732 journal = OS, 733 year = {2007}, 734 volume = {3}, 735 pages = {149-157} 724 736 } 725 737 … … 2485 2497 volume = {359}, 2486 2498 pages = {123--129} 2499 } 2500 2501 @ARTICLE{Talagrand_JAS72, 2502 author = {O. Talagrand}, 2503 title = {On the damping of high-frequency motions in four-dimensional 2504 assimilation of meteorological data}, 2505 journal = JAS, 2506 year = {1972}, 2507 volume = {29}, 2508 pages = {1571-1574} 2487 2509 } 2488 2510 -
branches/2011/dev_LOCEAN_CMCC_2011/DOC/TexFiles/Chapters/Chap_ASM.tex
r2483 r3084 86 86 87 87 %========================================================================== 88 % Divergence damping description %%% 89 \section{Divergence damping initialisation} 90 \label{ASM_details} 91 92 The velocity increments may be initialized by the iterative application of 93 a divergence damping operator. In iteration step $n$ new estimates of 94 velocity increments $u^{n}_I$ and $v^{n}_I$ are updated by: 95 \begin{equation} \label{eq:asm_dmp} 96 \left\{ \begin{aligned} 97 u^{n}_I = u^{n-1}_I + \frac{1}{e_{1u} } \delta _{i+1/2} \left( {A_D 98 \;\chi^{n-1}_I } \right) \\ 99 \\ 100 v^{n}_I = v^{n-1}_I + \frac{1}{e_{2v} } \delta _{j+1/2} \left( {A_D 101 \;\chi^{n-1}_I } \right) \\ 102 \end{aligned} \right, 103 \end{equation} 104 where 105 \begin{equation} \label{eq:asm_div} 106 \chi^{n-1}_I = \frac{1}{e_{1t}\,e_{2t}\,e_{3t} } 107 \left( {\delta _i \left[ {e_{2u}\,e_{3u}\,u^{n-1}_I} \right] 108 +\delta _j \left[ {e_{1v}\,e_{3v}\,v^{n-1}_I} \right]} \right). 109 \end{equation} 110 By the application of \eqref{eq:asm_dmp} and \eqref{eq:asm_dmp} the divergence is filtered 111 in each iteration, and the vorticity is left unchanged. In the presence of coastal boundaries 112 with zero velocity increments perpendicular to the coast the divergence is strongly damped. 113 This type of the initialisation reduces the vertical velocity magnitude and alleviates the 114 problem of the excessive unphysical vertical mixing in the first steps of the model 115 integration \citep{Talagrand_JAS72, Dobricic_al_OS07}. Diffusion coefficients are defined as 116 $A_D = \alpha e_{1t} e_{2t}$, where $\alpha = 0.2$. The divergence damping is activated by 117 assigning to \textit{ndivdmp} in the \textit{nam\_asminc} namelist a value greater than zero. 118 By choosing this value to be of the order of 100 the increments in the vertical velocity will 119 be significantly reduced. 120 121 122 %========================================================================== 88 123 89 124 \section{Implementation details} -
branches/2011/dev_LOCEAN_CMCC_2011/DOC/TexFiles/Chapters/Chap_DYN.tex
r2541 r3084 189 189 the relative vorticity term and horizontal kinetic energy for the planetary vorticity 190 190 term (MIX scheme) ; or conserving both the potential enstrophy of horizontally non-divergent 191 flow and horizontal kinetic energy (ENE scheme) (see Appendix~\ref{Apdx_C_vor_zad}). 191 flow and horizontal kinetic energy (EEN scheme) (see Appendix~\ref{Apdx_C_vor_zad}). In the 192 case of ENS, ENE or MIX schemes the land sea mask may be slightly modified to ensure the 193 consistency of vorticity term with analytical equations (\textit{ln\_dynvor\_con}=true). 192 194 The vorticity terms are all computed in dedicated routines that can be found in 193 195 the \mdl{dynvor} module. -
branches/2011/dev_LOCEAN_CMCC_2011/DOC/TexFiles/Namelist/namasm
r2540 r3084 17 17 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 18 18 salfixmin = -9999 ! Minimum salinity after applying the increments 19 ndivdmp = 0 ! Number of iterations of divergence damping operator 19 20 / -
branches/2011/dev_LOCEAN_CMCC_2011/DOC/TexFiles/Namelist/namdyn_vor
r2540 r3084 6 6 ln_dynvor_mix = .false. ! mixed scheme 7 7 ln_dynvor_een = .true. ! energy & enstrophy scheme 8 ln_dynvor_con = .false. ! consistency of BC with analytical eqs. 8 9 / -
branches/2011/dev_LOCEAN_CMCC_2011/NEMOGCM/CONFIG/GYRE/EXP00/namelist
r2977 r3084 514 514 ln_dynvor_mix = .false. ! mixed scheme 515 515 ln_dynvor_een = .false. ! energy & enstrophy scheme 516 ln_dynvor_con = .false. ! consistency of BC with analytical eqs. 516 517 / 517 518 !----------------------------------------------------------------------- … … 855 856 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 856 857 salfixmin = -9999 ! Minimum salinity after applying the increments 857 / 858 ndivdmp = 0 ! Number of iterations of divergence damping operator 859 / -
branches/2011/dev_LOCEAN_CMCC_2011/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist
r2977 r3084 514 514 ln_dynvor_mix = .false. ! mixed scheme 515 515 ln_dynvor_een = .true. ! energy & enstrophy scheme 516 ln_dynvor_con = .false. ! consistency of BC with analytical eqs. 516 517 / 517 518 !----------------------------------------------------------------------- … … 855 856 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 856 857 salfixmin = -9999 ! Minimum salinity after applying the increments 857 / 858 ndivdmp = 0 ! Number of iterations of divergence damping operator 859 / -
branches/2011/dev_LOCEAN_CMCC_2011/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist
r2977 r3084 514 514 ln_dynvor_mix = .false. ! mixed scheme 515 515 ln_dynvor_een = .true. ! energy & enstrophy scheme 516 ln_dynvor_con = .false. ! consistency of BC with analytical eqs. 516 517 / 517 518 !----------------------------------------------------------------------- … … 879 880 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 880 881 salfixmin = -9999 ! Minimum salinity after applying the increments 881 / 882 ndivdmp = 0 ! Number of iterations of divergence damping operator 883 / -
branches/2011/dev_LOCEAN_CMCC_2011/NEMOGCM/CONFIG/POMME/EXP00/namelist
r2977 r3084 514 514 ln_dynvor_mix = .false. ! mixed scheme 515 515 ln_dynvor_een = .true. ! energy & enstrophy scheme 516 ln_dynvor_con = .false. ! consistency of BC with analytical eqs. 516 517 / 517 518 !----------------------------------------------------------------------- … … 860 861 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 861 862 salfixmin = -9999 ! Minimum salinity after applying the increments 862 / 863 ndivdmp = 0 ! Number of iterations of divergence damping operator 864 / -
branches/2011/dev_LOCEAN_CMCC_2011/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r2715 r3084 25 25 USE oce ! Dynamics and active tracers defined in memory 26 26 USE divcur ! Horizontal divergence and relative vorticity 27 USE ldfdyn_oce ! ocean dynamics: lateral physics 27 28 USE eosbn2 ! Equation of state - in situ and potential density 28 29 USE zpshde ! Partial step : Horizontal Derivative … … 55 56 LOGICAL, PUBLIC :: ln_sshinc = .FALSE. !: No sea surface height assimilation increment 56 57 LOGICAL, PUBLIC :: ln_salfix = .FALSE. !: Apply minimum salinity check 58 INTEGER, PUBLIC :: ndivdmp = 0 !: Apply divergence damping filter ndivdmp times 57 59 58 60 REAL(wp), PUBLIC, DIMENSION(:,:,:), ALLOCATABLE :: t_bkg , s_bkg !: Background temperature and salinity … … 76 78 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: ssh_bkg, ssh_bkginc ! Background sea surface height and its increment 77 79 80 !! * Substitutions 81 # include "domzgr_substitute.h90" 82 # include "ldfdyn_substitute.h90" 83 # include "vectopt_loop_substitute.h90" 84 78 85 !!---------------------------------------------------------------------- 79 86 !! NEMO/OPA 3.3 , NEMO Consortium (2010) … … 93 100 !! ** Action : 94 101 !!---------------------------------------------------------------------- 102 !! 103 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released, wrk_2d_1 104 USE wrk_nemo, ONLY: hdiv => wrk_2d_1 ! Horizontal divergence 105 !! 106 INTEGER :: ji,jj,jk 95 107 INTEGER :: jt 96 108 INTEGER :: imid … … 116 128 & ln_asmdin, ln_asmiau, & 117 129 & nitbkg, nitdin, nitiaustr, nitiaufin, niaufn, & 118 & nittrjfrq, ln_salfix, salfixmin 130 & nittrjfrq, ln_salfix, salfixmin, & 131 & ndivdmp 119 132 !!---------------------------------------------------------------------- 120 133 … … 420 433 421 434 !----------------------------------------------------------------------- 435 ! Apply divergence damping filter 436 !----------------------------------------------------------------------- 437 438 439 IF ( ln_dyninc .AND. ndivdmp.gt.0 ) THEN 440 441 IF( wrk_in_use( 2, 1) ) THEN 442 CALL ctl_stop('asm_inc_init : requested workspace for divergence unavailable.') 443 ENDIF 444 445 446 DO jt = 1, ndivdmp 447 448 DO jk = 1, jpkm1 449 450 hdiv(:,:) = 0._wp 451 452 DO jj = 2, jpjm1 453 DO ji = fs_2, fs_jpim1 ! vector opt. 454 hdiv(ji,jj) = & 455 ( e2u(ji ,jj)*fse3u(ji ,jj,jk) * u_bkginc(ji ,jj,jk) & 456 - e2u(ji-1,jj)*fse3u(ji-1,jj,jk) * u_bkginc(ji-1,jj,jk) & 457 + e1v(ji,jj )*fse3v(ji,jj ,jk) * v_bkginc(ji,jj ,jk) & 458 - e1v(ji,jj-1)*fse3v(ji,jj-1,jk) * v_bkginc(ji,jj-1,jk) ) & 459 / ( e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) ) 460 END DO 461 END DO 462 463 CALL lbc_lnk( hdiv, 'T', 1. ) ! lateral boundary cond. (no sign change) 464 465 DO jj = 2, jpjm1 466 DO ji = fs_2, fs_jpim1 ! vector opt. 467 u_bkginc(ji,jj,jk) = u_bkginc(ji,jj,jk) + 0.2 * ( e1t(ji+1,jj)*e2t(ji+1,jj) * hdiv(ji+1,jj) & 468 - e1t(ji ,jj)*e2t(ji ,jj) * hdiv(ji ,jj) ) & 469 / e1u(ji,jj) * umask(ji,jj,jk) 470 v_bkginc(ji,jj,jk) = v_bkginc(ji,jj,jk) + 0.2 * ( e1t(ji,jj+1)*e2t(ji,jj+1) * hdiv(ji,jj+1) & 471 - e1t(ji,jj )*e2t(ji,jj ) * hdiv(ji,jj ) ) & 472 / e2v(ji,jj) * vmask(ji,jj,jk) 473 END DO 474 END DO 475 476 END DO 477 478 END DO 479 480 IF( wrk_not_released( 2, 1) ) THEN 481 CALL ctl_stop('asm_inc_init : failed to release divergence') 482 ENDIF 483 484 ENDIF 485 486 487 488 !----------------------------------------------------------------------- 422 489 ! Allocate and initialize the background state arrays 423 490 !----------------------------------------------------------------------- -
branches/2011/dev_LOCEAN_CMCC_2011/NEMOGCM/NEMO/OPA_SRC/DOM/dommsk.F90
r2715 r3084 26 26 USE dom_oce ! ocean space and time domain 27 27 USE obc_oce ! ocean open boundary conditions 28 USE dynvor ! vorticity term 28 29 USE in_out_manager ! I/O manager 29 30 USE lbclnk ! ocean lateral boundary conditions (or mpp link) … … 390 391 CALL lbc_lnk( fmask, 'F', 1._wp ) ! Lateral boundary conditions on fmask 391 392 393 394 ! If energy, enstrophy or mixed advection of momentum in vector form change the value for masks 395 ! at angles with three ocean points and one land point 396 IF( ln_dynvor_con .OR. ln_dynvor_ene .OR. ln_dynvor_ens .OR. ln_dynvor_mix) THEN 397 DO jj = 2, jpjm1 398 DO ji = 2, jpim1 399 IF( tmask(ji,jj,jk)+tmask(ji+1,jj,jk)+tmask(ji,jj+1,jk)+tmask(ji+1,jj+1,jk) == 3._wp ) THEN 400 fmask(ji,jj,jk) = 1._wp 401 ENDIF 402 END DO 403 END DO 404 ENDIF 405 392 406 393 407 IF( nprint == 1 .AND. lwp ) THEN ! Control print -
branches/2011/dev_LOCEAN_CMCC_2011/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90
r2977 r3084 23 23 !! vor_mix : mixed enstrophy/energy conserving (ln_dynvor_mix=T) 24 24 !! vor_een : energy and enstrophy conserving (ln_dynvor_een=T) 25 !! vor_con : BC consistent with analytical eqs.(ln_dynvor_con=T) 25 26 !! dyn_vor_init : set and control of the different vorticity option 26 27 !!---------------------------------------------------------------------- … … 46 47 LOGICAL, PUBLIC :: ln_dynvor_mix = .FALSE. !: mixed scheme 47 48 LOGICAL, PUBLIC :: ln_dynvor_een = .FALSE. !: energy and enstrophy conserving scheme 49 LOGICAL, PUBLIC :: ln_dynvor_con = .FALSE. !: consistency with flux form 48 50 49 51 INTEGER :: nvor = 0 ! type of vorticity trend used … … 692 694 INTEGER :: ioptio ! local integer 693 695 !! 694 NAMELIST/namdyn_vor/ ln_dynvor_ens, ln_dynvor_ene, ln_dynvor_mix, ln_dynvor_een 696 NAMELIST/namdyn_vor/ ln_dynvor_ens, ln_dynvor_ene, ln_dynvor_mix, ln_dynvor_een, ln_dynvor_con 695 697 !!---------------------------------------------------------------------- 696 698 … … 707 709 WRITE(numout,*) ' mixed enstrophy/energy conserving scheme ln_dynvor_mix = ', ln_dynvor_mix 708 710 WRITE(numout,*) ' enstrophy and energy conserving scheme ln_dynvor_een = ', ln_dynvor_een 711 WRITE(numout,*) ' consistency with flux form ln_dynvor_con = ', ln_dynvor_con 709 712 ENDIF 710 713
Note: See TracChangeset
for help on using the changeset viewer.