Changeset 3032 for branches/2011/dev_CMCC
- Timestamp:
- 2011-10-31T15:48:12+01:00 (13 years ago)
- Location:
- branches/2011/dev_CMCC
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_CMCC/DOC/TexFiles/Biblio/Biblio.bib
r2541 r3032 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_CMCC/DOC/TexFiles/Chapters/Chap_ASM.tex
r2483 r3032 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_CMCC/DOC/TexFiles/Namelist/namasm
r2540 r3032 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_CMCC/NEMOGCM/CONFIG/GYRE/EXP00/namelist
r2715 r3032 862 862 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 863 863 salfixmin = -9999 ! Minimum salinity after applying the increments 864 / 864 ndivdmp = 0 ! Number of iterations of divergence damping operator 865 / -
branches/2011/dev_CMCC/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist
r2715 r3032 862 862 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 863 863 salfixmin = -9999 ! Minimum salinity after applying the increments 864 / 864 ndivdmp = 0 ! Number of iterations of divergence damping operator 865 / -
branches/2011/dev_CMCC/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist
r2715 r3032 877 877 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 878 878 salfixmin = -9999 ! Minimum salinity after applying the increments 879 / 879 ndivdmp = 0 ! Number of iterations of divergence damping operator 880 / -
branches/2011/dev_CMCC/NEMOGCM/CONFIG/POMME/EXP00/namelist
r2650 r3032 867 867 ln_salfix = .false. ! Logical switch for ensuring that the sa > salfixmin 868 868 salfixmin = -9999 ! Minimum salinity after applying the increments 869 / 869 ndivdmp = 0 ! Number of iterations of divergence damping operator 870 / -
branches/2011/dev_CMCC/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r2715 r3032 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 !-----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.