- Timestamp:
- 2020-06-23T17:08:22+02:00 (4 years ago)
- Location:
- NEMO/branches/2020/dev_r12973_AGRIF_CMEMS
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/cfgs/AGRIF_DEMO/EXPREF/2_namelist_cfg
r13058 r13146 176 176 !----------------------------------------------------------------------- 177 177 ln_spc_dyn = .true. ! use 0 as special value for dynamics 178 rn_sponge_tra = 1440. ! coefficient for tracer sponge layer [m2/s]179 rn_sponge_dyn = 1440. ! coefficient for dynamics sponge layer [m2/s]180 178 ln_chk_bathy = .true. ! =T check the parent bathymetry 181 179 / -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/cfgs/AGRIF_DEMO/EXPREF/3_namelist_cfg
r13058 r13146 158 158 !----------------------------------------------------------------------- 159 159 ln_spc_dyn = .true. ! use 0 as special value for dynamics 160 rn_sponge_tra = 480. ! coefficient for tracer sponge layer [m2/s]161 rn_sponge_dyn = 480. ! coefficient for dynamics sponge layer [m2/s]162 160 ln_chk_bathy = .true. ! =T check the parent bathymetry 163 161 / -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/cfgs/SHARED/namelist_ref
r13141 r13146 641 641 ln_init_chfrpar = .false. ! initialize child grids from parent 642 642 ln_spc_dyn = .true. ! use 0 as special value for dynamics 643 rn_sponge_tra = 2880. ! coefficient for tracer sponge layer [m2/s]644 rn_sponge_dyn = 2880. ! coefficient for dynamics sponge layer [m2/s]643 rn_sponge_tra = 0.002 ! coefficient for tracer sponge layer [] 644 rn_sponge_dyn = 0.002 ! coefficient for dynamics sponge layer [] 645 645 rn_trelax_tra = 0.01 ! inverse of relaxation time (in steps) for tracers [] 646 646 rn_trelax_dyn = 0.01 ! inverse of relaxation time (in steps) for dynamics [] -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/src/NST/agrif_oce_sponge.F90
r13026 r13146 356 356 INTEGER :: ji, jj, jk, jn ! dummy loop indices 357 357 INTEGER :: iku, ikv 358 REAL(wp) :: ztsa, zabe1, zabe2, zbtr, zhtot , ztrelax358 REAL(wp) :: ztsa, zabe1, zabe2, zbtr, zhtot 359 359 REAL(wp), DIMENSION(i1:i2,j1:j2,jpk) :: ztu, ztv 360 360 REAL(wp), DIMENSION(i1:i2,j1:j2,jpk,n1:n2) ::tsbdiff … … 460 460 ENDDO 461 461 462 !* set relaxation time scale463 IF( l_1st_euler .AND. lk_agrif_fstep ) THEN ; ztrelax = rn_trelax_tra / ( rn_Dt )464 ELSE ; ztrelax = rn_trelax_tra / (2._wp * rn_Dt )465 ENDIF466 467 462 DO jn = 1, jpts 468 463 DO jk = 1, jpkm1 … … 470 465 DO jj = j1,j2 471 466 DO ji = i1,i2-1 472 zabe1 = rn_sponge_tra * fspu(ji,jj) * umask(ji,jj,jk) * e2_e1u(ji,jj) * e3u(ji,jj,jk,Kmm_a)467 zabe1 = rn_sponge_tra * r1_Dt * fspu(ji,jj) * umask(ji,jj,jk) * e1e2u(ji,jj) * e3u(ji,jj,jk,Kmm_a) 473 468 ztu(ji,jj,jk) = zabe1 * ( tsbdiff(ji+1,jj ,jk,jn) - tsbdiff(ji,jj,jk,jn) ) 474 469 END DO … … 477 472 DO ji = i1,i2 478 473 DO jj = j1,j2-1 479 zabe2 = rn_sponge_tra * fspv(ji,jj) * vmask(ji,jj,jk) * e1_e2v(ji,jj) * e3v(ji,jj,jk,Kmm_a)474 zabe2 = rn_sponge_tra * r1_Dt * fspv(ji,jj) * vmask(ji,jj,jk) * e1e2v(ji,jj) * e3v(ji,jj,jk,Kmm_a) 480 475 ztv(ji,jj,jk) = zabe2 * ( tsbdiff(ji ,jj+1,jk,jn) - tsbdiff(ji,jj,jk,jn) ) 481 476 END DO … … 502 497 ! horizontal diffusive trends 503 498 ztsa = zbtr * ( ztu(ji,jj,jk) - ztu(ji-1,jj,jk) + ztv(ji,jj,jk) - ztv(ji,jj-1,jk) ) & 504 & - ztrelax* fspt(ji,jj) * tsbdiff(ji,jj,jk,jn)499 & - rn_trelax_tra * r1_Dt * fspt(ji,jj) * tsbdiff(ji,jj,jk,jn) 505 500 ! add it to the general tracer trends 506 501 ts(ji,jj,jk,jn,Krhs_a) = ts(ji,jj,jk,jn,Krhs_a) + ztsa … … 529 524 530 525 ! sponge parameters 531 REAL(wp) :: ze2u, ze1v, zua, zva, zbtr, zhtot , ztrelax526 REAL(wp) :: ze2u, ze1v, zua, zva, zbtr, zhtot 532 527 REAL(wp), DIMENSION(i1:i2,j1:j2,1:jpk) :: ubdiff 533 528 REAL(wp), DIMENSION(i1:i2,j1:j2,1:jpk) :: rotdiff, hdivdiff … … 617 612 ubdiff(i1:i2,j1:j2,:) = (uu(i1:i2,j1:j2,:,Kbb_a) - tabres(i1:i2,j1:j2,:,1))*umask(i1:i2,j1:j2,:) 618 613 #endif 619 !* set relaxation time scale620 IF( l_1st_euler .AND. lk_agrif_fstep ) THEN ; ztrelax = rn_trelax_dyn / ( rn_Dt )621 ELSE ; ztrelax = rn_trelax_dyn / (2._wp * rn_Dt )622 ENDIF623 614 ! 624 615 DO jk = 1, jpkm1 ! Horizontal slab … … 630 621 DO jj = j1,j2 631 622 DO ji = i1+1,i2 ! vector opt. 632 zbtr = r 1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kbb_a) * rn_sponge_dyn * fspt(ji,jj)623 zbtr = rn_sponge_dyn * r1_Dt * fspt(ji,jj) / e3t(ji,jj,jk,Kbb_a) 633 624 hdivdiff(ji,jj,jk) = ( e2u(ji ,jj)*e3u(ji ,jj,jk,Kbb_a) * ubdiff(ji ,jj,jk) & 634 625 & -e2u(ji-1,jj)*e3u(ji-1,jj,jk,Kbb_a) * ubdiff(ji-1,jj,jk) ) * zbtr … … 638 629 DO jj = j1,j2-1 639 630 DO ji = i1,i2 ! vector opt. 640 zbtr = r 1_e1e2f(ji,jj) * e3f(ji,jj,jk) * rn_sponge_dyn * fspf(ji,jj)631 zbtr = rn_sponge_dyn * r1_Dt * fspf(ji,jj) * e3f(ji,jj,jk) 641 632 rotdiff(ji,jj,jk) = ( -e1u(ji,jj+1) * ubdiff(ji,jj+1,jk) & 642 633 & +e1u(ji,jj ) * ubdiff(ji,jj ,jk) ) * fmask(ji,jj,jk) * zbtr … … 655 646 zua = - ( ze2u - rotdiff (ji,jj-1,jk) ) / ( e2u(ji,jj) * e3u(ji,jj,jk,Kmm_a) ) & 656 647 & + ( hdivdiff(ji+1,jj,jk) - ze1v ) * r1_e1u(ji,jj) & 657 & - ztrelax* fspu(ji,jj) * ubdiff(ji,jj,jk)648 & - rn_trelax_dyn * r1_Dt * fspu(ji,jj) * ubdiff(ji,jj,jk) 658 649 659 650 ! add it to the general momentum trends … … 707 698 ! 708 699 INTEGER :: ji, jj, jk, imax 709 REAL(wp) :: ze2u, ze1v, zua, zva, zbtr, zhtot , ztrelax700 REAL(wp) :: ze2u, ze1v, zua, zva, zbtr, zhtot 710 701 REAL(wp), DIMENSION(i1:i2,j1:j2,1:jpk) :: vbdiff 711 702 REAL(wp), DIMENSION(i1:i2,j1:j2,1:jpk) :: rotdiff, hdivdiff … … 794 785 vbdiff(i1:i2,j1:j2,:) = (vv(i1:i2,j1:j2,:,Kbb_a) - tabres(i1:i2,j1:j2,:,1))*vmask(i1:i2,j1:j2,:) 795 786 # endif 796 !* set relaxation time scale797 IF( l_1st_euler .AND. lk_agrif_fstep ) THEN ; ztrelax = rn_trelax_dyn / ( rn_Dt )798 ELSE ; ztrelax = rn_trelax_dyn / (2._wp * rn_Dt )799 ENDIF800 787 ! 801 788 DO jk = 1, jpkm1 ! Horizontal slab … … 807 794 DO jj = j1+1,j2 808 795 DO ji = i1,i2 ! vector opt. 809 zbtr = r 1_e1e2t(ji,jj) / e3t(ji,jj,jk,Kbb_a) * rn_sponge_dyn * fspt(ji,jj)796 zbtr = rn_sponge_dyn * r1_Dt * fspt(ji,jj) / e3t(ji,jj,jk,Kbb_a) 810 797 hdivdiff(ji,jj,jk) = ( e1v(ji,jj ) * e3v(ji,jj ,jk,Kbb_a) * vbdiff(ji,jj ,jk) & 811 798 & -e1v(ji,jj-1) * e3v(ji,jj-1,jk,Kbb_a) * vbdiff(ji,jj-1,jk) ) * zbtr … … 814 801 DO jj = j1,j2 815 802 DO ji = i1,i2-1 ! vector opt. 816 zbtr = r 1_e1e2f(ji,jj) * e3f(ji,jj,jk) * rn_sponge_dyn * fspf(ji,jj)803 zbtr = rn_sponge_dyn * r1_Dt * fspf(ji,jj) * e3f(ji,jj,jk) 817 804 rotdiff(ji,jj,jk) = ( e2v(ji+1,jj) * vbdiff(ji+1,jj,jk) & 818 805 & -e2v(ji ,jj) * vbdiff(ji ,jj,jk) ) * fmask(ji,jj,jk) * zbtr … … 832 819 IF( .NOT. tabspongedone_u(ji,jj) ) THEN 833 820 DO jk = 1, jpkm1 834 uu(ji,jj,jk,Krhs_a) = uu(ji,jj,jk,Krhs_a) 821 uu(ji,jj,jk,Krhs_a) = uu(ji,jj,jk,Krhs_a) & 835 822 & - ( rotdiff (ji ,jj,jk) - rotdiff (ji,jj-1,jk)) / ( e2u(ji,jj) * e3u(ji,jj,jk,Kmm_a) ) & 836 823 & + ( hdivdiff(ji+1,jj,jk) - hdivdiff(ji,jj ,jk)) * r1_e1u(ji,jj) … … 846 833 IF( .NOT. tabspongedone_v(ji,jj) ) THEN 847 834 DO jk = 1, jpkm1 848 vv(ji,jj,jk,Krhs_a) = vv(ji,jj,jk,Krhs_a) 835 vv(ji,jj,jk,Krhs_a) = vv(ji,jj,jk,Krhs_a) & 849 836 & + ( rotdiff (ji,jj ,jk) - rotdiff (ji-1,jj,jk) ) / ( e1v(ji,jj) * e3v(ji,jj,jk,Kmm_a) ) & 850 & + ( hdivdiff(ji,jj+1,jk) - hdivdiff(ji ,jj,jk) ) * r1_e2v(ji,jj) &851 & - ztrelax* fspv(ji,jj) * vbdiff(ji,jj,jk)837 & + ( hdivdiff(ji,jj+1,jk) - hdivdiff(ji ,jj,jk) ) * r1_e2v(ji,jj) & 838 & - rn_trelax_dyn * r1_Dt * fspv(ji,jj) * vbdiff(ji,jj,jk) 852 839 END DO 853 840 ENDIF -
NEMO/branches/2020/dev_r12973_AGRIF_CMEMS/tests/VORTEX/EXPREF/1_namelist_cfg
r12489 r13146 98 98 &namagrif ! AGRIF zoom ("key_agrif") 99 99 !----------------------------------------------------------------------- 100 ln_spc_dyn = .true. ! use 0 as special value for dynamics 101 rn_sponge_tra = 800. ! coefficient for tracer sponge layer [m2/s] 102 rn_sponge_dyn = 800. ! coefficient for dynamics sponge layer [m2/s] 103 ln_chk_bathy = .FALSE. ! 100 rn_sponge_tra = 0.00768 ! coefficient for tracer sponge layer [] 101 rn_sponge_dyn = 0.00768 ! coefficient for dynamics sponge layer [] 104 102 / 105 103 !!======================================================================
Note: See TracChangeset
for help on using the changeset viewer.