New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 7988 for branches/2017/dev_r7963_nemo_v3_6_AGRIF-3_AGRIFVVL/NEMOGCM/NEMO/NST_SRC/agrif_user.F90 – NEMO

Ignore:
Timestamp:
2017-04-28T17:39:22+02:00 (7 years ago)
Author:
jchanut
Message:

Add AGRIF proper AGRIF bcs to GLS and TKE + vvl update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7963_nemo_v3_6_AGRIF-3_AGRIFVVL/NEMOGCM/NEMO/NST_SRC/agrif_user.F90

    r7972 r7988  
    198198   CALL Agrif_Bc_variable(tsn_sponge_id,calledweight=1.,procname=interptsn_sponge) 
    199199   ! reset tsa to zero 
    200    tsa(:,:,:,:) = 0. 
     200   tsa(:,:,:,:) = 0. !? JC: ?? 
    201201 
    202202   Agrif_UseSpecialValue = ln_spc_dyn 
     
    212212   Agrif_UseSpecialValue = .TRUE. 
    213213   CALL Agrif_Bc_variable(sshn_id,calledweight=1., procname=interpsshn ) 
     214   hbdy_w(:) = 0.e0 ; hbdy_e(:) = 0.e0 ; hbdy_n(:) = 0.e0 ; hbdy_s(:) = 0.e0 
     215   ssha(:,:) = 0.e0 
    214216 
    215217#if defined key_dynspg_ts 
     
    219221   CALL Agrif_Bc_variable(ub2b_interp_id,calledweight=1.,procname=interpub2b) 
    220222   CALL Agrif_Bc_variable(vb2b_interp_id,calledweight=1.,procname=interpvb2b) 
    221    ubdy_w(:) = 0.e0 ; vbdy_w(:) = 0.e0 ; hbdy_w(:) =0.e0 
    222    ubdy_e(:) = 0.e0 ; vbdy_e(:) = 0.e0 ; hbdy_e(:) =0.e0  
    223    ubdy_n(:) = 0.e0 ; vbdy_n(:) = 0.e0 ; hbdy_n(:) =0.e0  
    224    ubdy_s(:) = 0.e0 ; vbdy_s(:) = 0.e0 ; hbdy_s(:) =0.e0 
     223   ubdy_w(:) = 0.e0 ; vbdy_w(:) = 0.e0  
     224   ubdy_e(:) = 0.e0 ; vbdy_e(:) = 0.e0  
     225   ubdy_n(:) = 0.e0 ; vbdy_n(:) = 0.e0  
     226   ubdy_s(:) = 0.e0 ; vbdy_s(:) = 0.e0  
    225227#endif 
    226228 
     
    307309   !  
    308310! JC: I am not sure if Agrif_MaxLevel() is the "relative" 
    309 !     or the absolute maximum nesting level...TBC                         
    310    IF ( Agrif_Level().EQ.Agrif_MaxLevel() ) THEN  
     311!     or the absolute maximum nesting level...TBC   
     312   nbcline = 0                  
     313   IF ( Agrif_Level().EQ.Agrif_MaxLevel() ) THEN        
    311314      ! NB: Order matters below:  
    312       CALL Agrif_Update_vvl()  
     315      IF ( lk_vvl ) CALL Agrif_Update_vvl()  
    313316      CALL Agrif_Update_tra() 
    314317      CALL Agrif_Update_dyn() 
     
    320323   ! 
    321324   Agrif_UseSpecialValueInUpdate = .FALSE. 
    322    nbcline = 0 
    323325   lk_agrif_doupd = .FALSE. 
    324326   ! 
     
    366368   CALL agrif_declare_variable((/2,2/),(/3,3/),(/'x','y'/),(/1,1/),(/nlci,nlcj/),sshn_id) 
    367369 
    368 # if defined key_zdftke 
    369    CALL agrif_declare_variable((/2,2,0/),(/3,3,0/),(/'x','y','N'/),(/1,1,1/),(/jpi,jpj,jpk/), en_id) 
    370    CALL agrif_declare_variable((/2,2,0/),(/3,3,0/),(/'x','y','N'/),(/1,1,1/),(/jpi,jpj,jpk/),avt_id) 
    371    CALL agrif_declare_variable((/2,2,0/),(/3,3,0/),(/'x','y','N'/),(/1,1,1/),(/jpi,jpj,jpk/),avm_id) 
     370# if defined key_zdftke || defined key_zdfgls 
     371   CALL agrif_declare_variable((/2,2,0/),(/3,3,0/),(/'x','y','N'/),(/1,1,1/),(/nlci,nlcj,jpk/), en_id) 
     372   CALL agrif_declare_variable((/2,2,0/),(/3,3,0/),(/'x','y','N'/),(/1,1,1/),(/nlci,nlcj,jpk/),avt_id) 
     373   CALL agrif_declare_variable((/2,2,0/),(/3,3,0/),(/'x','y','N'/),(/1,1,1/),(/nlci,nlcj,jpk/),avm_id) 
    372374# endif 
    373375 
     
    395397   CALL Agrif_Set_bcinterp(vmsk_id,interp=AGRIF_constant) 
    396398 
    397 # if defined key_zdftke 
     399# if defined key_zdftke || defined key_zdfgls 
    398400   CALL Agrif_Set_bcinterp(avm_id ,interp=AGRIF_linear) 
    399401# endif 
     
    423425   CALL Agrif_Set_bc(vmsk_id,(/0,0/)) 
    424426 
    425 # if defined key_zdftke 
     427# if defined key_zdftke || defined key_zdfgls 
    426428   CALL Agrif_Set_bc(avm_id ,(/0,1/)) 
    427429# endif 
     
    441443   CALL Agrif_Set_Updatetype(vb2b_update_id,update1 = Agrif_Update_Average, update2 = Agrif_Update_Copy) 
    442444 
    443 # if defined key_zdftke 
     445# if defined key_zdftke || defined key_zdfgls 
    444446   CALL Agrif_Set_Updatetype( en_id, update = AGRIF_Update_Average) 
    445447   CALL Agrif_Set_Updatetype(avt_id, update = AGRIF_Update_Average) 
     
    457459!   CALL Agrif_Set_Updatetype(vb2b_update_id,update1 = Agrif_Update_Full_Weighting, update2 = Agrif_Update_Average) 
    458460!   CALL Agrif_Set_Updatetype(sshn_id, update = Agrif_Update_Full_Weighting) 
    459   
     461 
     462!   CALL Agrif_Set_Updatetype(e3t_id, update = Agrif_Update_Full_Weighting) 
    460463   ! 
    461464END SUBROUTINE agrif_declare_var 
     
    657660      ENDIF 
    658661   ENDIF 
    659  
     662   nbcline_trc = 0 
    660663   CALL Agrif_Update_trc(0) 
    661664   ! 
    662665   Agrif_UseSpecialValueInUpdate = .FALSE. 
    663    nbcline_trc = 0 
    664666   ! 
    665667END SUBROUTINE Agrif_InitValues_cont_top 
     
    766768   IF (lk_mpp) iminspon = MIN(iminspon,FLOOR(REAL(jpi-2)/REAL(Agrif_irhox())), FLOOR(REAL(jpj-2)/REAL(Agrif_irhox())) ) 
    767769   IF (nn_sponge_len > iminspon)  CALL ctl_stop('agrif sponge length is too large') 
     770   IF (MOD((nitend-nit000+1), nbclineupdate).NE.0 ) CALL ctl_stop('number of time steps should be a multiple of nn_cln_update') 
    768771   ! 
    769772   IF( agrif_oce_alloc()  > 0 )   CALL ctl_warn('agrif agrif_oce_alloc: allocation of arrays failed') 
Note: See TracChangeset for help on using the changeset viewer.