Ignore:
Timestamp:
2019-07-02T14:25:46+02:00 (19 months ago)
Author:
jchanut
Message:

#2199
1) Make sponge independent of sub-domain size. Partially masked open boundary segments are not taken into account anymore. To do so, sponge coefficients should be read in a file for realistic applications (then nesting tools need to be modified accordingly).
2) Replace East-West-North-South barotropic data arrays by a global 2d array. Then apply barotropic open boundary conditions thanks to mi0/mi1, mj0/mj1 indexes.
3) Call AGRIF bdy update one more time in dynspg_ts during extrapolation phase. This removes a dozen lines of code in dynspg_ts routine.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10973_AGRIF-01_jchanut_small_jpi_jpj/src/OCE/DYN/dynspg_ts.F90

    r10742 r11205  
    797797         IF( ln_bdy .AND. ln_vol ) CALL bdy_vol2d( kt, jn, ua_e, va_e, zhup2_e, zhvp2_e ) 
    798798         ! 
     799#if  defined key_agrif 
     800         ! Set fluxes during predictor step to ensure volume conservation 
     801         IF( .NOT.Agrif_Root() .AND. ln_bt_fw ) CALL agrif_dyn_ts( jn ) 
     802#endif       
    799803         zwx(:,:) = e2u(:,:) * ua_e(:,:) * zhup2_e(:,:)         ! fluxes at jn+0.5 
    800804         zwy(:,:) = e1v(:,:) * va_e(:,:) * zhvp2_e(:,:) 
    801805         ! 
    802 #if defined key_agrif 
    803          ! Set fluxes during predictor step to ensure volume conservation 
    804          IF( .NOT.Agrif_Root() .AND. ln_bt_fw ) THEN 
    805             IF((nbondi == -1).OR.(nbondi == 2)) THEN 
    806                DO jj = 1, jpj 
    807                   zwx(2:nbghostcells+1,jj) = ubdy_w(1:nbghostcells,jj) * e2u(2:nbghostcells+1,jj) 
    808                   zwy(2:nbghostcells+1,jj) = vbdy_w(1:nbghostcells,jj) * e1v(2:nbghostcells+1,jj) 
    809                END DO 
    810             ENDIF 
    811             IF((nbondi ==  1).OR.(nbondi == 2)) THEN 
    812                DO jj=1,jpj 
    813                   zwx(nlci-nbghostcells-1:nlci-2,jj) = ubdy_e(1:nbghostcells,jj) * e2u(nlci-nbghostcells-1:nlci-2,jj) 
    814                   zwy(nlci-nbghostcells  :nlci-1,jj) = vbdy_e(1:nbghostcells,jj) * e1v(nlci-nbghostcells  :nlci-1,jj) 
    815                END DO 
    816             ENDIF 
    817             IF((nbondj == -1).OR.(nbondj == 2)) THEN 
    818                DO ji=1,jpi 
    819                   zwy(ji,2:nbghostcells+1) = vbdy_s(ji,1:nbghostcells) * e1v(ji,2:nbghostcells+1) 
    820                   zwx(ji,2:nbghostcells+1) = ubdy_s(ji,1:nbghostcells) * e2u(ji,2:nbghostcells+1) 
    821                END DO 
    822             ENDIF 
    823             IF((nbondj ==  1).OR.(nbondj == 2)) THEN 
    824                DO ji=1,jpi 
    825                   zwy(ji,nlcj-nbghostcells-1:nlcj-2) = vbdy_n(ji,1:nbghostcells) * e1v(ji,nlcj-nbghostcells-1:nlcj-2) 
    826                   zwx(ji,nlcj-nbghostcells  :nlcj-1) = ubdy_n(ji,1:nbghostcells) * e2u(ji,nlcj-nbghostcells  :nlcj-1) 
    827                END DO 
    828             ENDIF 
    829          ENDIF 
    830 #endif 
    831806         IF( ln_wd_il )   CALL wad_lmt_bt(zwx, zwy, sshn_e, zssh_frc, rdtbt) 
    832807 
Note: See TracChangeset for help on using the changeset viewer.