Changeset 3084 for branches/2011/dev_LOCEAN_CMCC_2011/NEMOGCM/NEMO
- Timestamp:
- 2011-11-14T13:07:57+01:00 (13 years ago)
- Location:
- branches/2011/dev_LOCEAN_CMCC_2011/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
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.