Changeset 8901


Ignore:
Timestamp:
2017-12-05T14:52:57+01:00 (3 years ago)
Author:
jchanut
Message:

AGRIF: Remove update frequency parameter from namelist - #1965

Location:
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/ORCA2_LIM3_PISCES/EXP00/1_namelist_cfg

    r8762 r8901  
    8585&namagrif      !  AGRIF zoom                                            ("key_agrif") 
    8686!----------------------------------------------------------------------- 
    87    nn_cln_update =    1    !  baroclinic update frequency 
    8887/ 
    8988!----------------------------------------------------------------------- 
  • branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/ORCA2_LIM3_PISCES/EXP00/namelist_cfg

    r8599 r8901  
    102102&namagrif      !  AGRIF zoom                                            ("key_agrif") 
    103103!----------------------------------------------------------------------- 
    104    nn_cln_update =    3    !  baroclinic update frequency 
    105104/ 
    106105!----------------------------------------------------------------------- 
  • branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/SHARED/namelist_ref

    r8898 r8901  
    517517&namagrif      !  AGRIF zoom                                            ("key_agrif") 
    518518!----------------------------------------------------------------------- 
    519    nn_cln_update =    3    !  baroclinic update frequency 
    520519   ln_spc_dyn    = .true.  !  use 0 as special value for dynamics 
    521520   rn_sponge_tra = 2880.   !  coefficient for tracer   sponge layer [m2/s] 
     
    835834         rn_bt_cmax   =  0.8        ! =T : the Maximum Courant Number allowed 
    836835         nn_baro      = 30          ! =F : the number of sub-step in rn_rdt seconds 
    837       rn_bt_alpha   = 0.1        ! Temporal diffusion parameter (if ln_bt_av=F) 
     836      rn_bt_alpha   = 0.         ! Temporal diffusion parameter (if ln_bt_av=F) 
    838837/ 
    839838!----------------------------------------------------------------------- 
  • branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/TEST_CASES/VORTEX/EXP00/1_namelist_cfg

    r8762 r8901  
    3737&namagrif      !  AGRIF zoom                                            ("key_agrif") 
    3838!----------------------------------------------------------------------- 
    39    nn_cln_update =    1    !  baroclinic update frequency 
    4039   ln_spc_dyn    = .true.  !  use 0 as special value for dynamics 
    4140   rn_sponge_tra =  800.   !  coefficient for tracer   sponge layer [m2/s] 
  • branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/TEST_CASES/VORTEX/EXP00/namelist_cfg

    r8762 r8901  
    3737&namagrif      !  AGRIF zoom                                            ("key_agrif") 
    3838!----------------------------------------------------------------------- 
    39    nn_cln_update =    1    !  baroclinic update frequency 
    4039   ln_spc_dyn    = .true.  !  use 0 as special value for dynamics 
    4140   rn_sponge_tra =  800.   !  coefficient for tracer   sponge layer [m2/s] 
  • branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_lim2_update.F90

    r5656 r8901  
    5959      Agrif_SpecialValueFineGrid = 0. 
    6060# if defined TWO_WAY 
    61       IF( MOD(nbcline,nbclineupdate) == 0) THEN 
    62          CALL Agrif_Update_Variable( adv_ice_id , procname = update_adv_ice  ) 
    63          CALL Agrif_Update_Variable( u_ice_id   , procname = update_u_ice    ) 
    64          CALL Agrif_Update_Variable( v_ice_id   , procname = update_v_ice    ) 
    65       ELSE 
    66          CALL Agrif_Update_Variable( adv_ice_id , locupdate=(/0,2/), procname = update_adv_ice  ) 
    67          CALL Agrif_Update_Variable( u_ice_id   , locupdate=(/0,1/), procname = update_u_ice    ) 
    68          CALL Agrif_Update_Variable( v_ice_id   , locupdate=(/0,1/), procname = update_v_ice    ) 
    69       ENDIF 
     61      CALL Agrif_Update_Variable( adv_ice_id , procname = update_adv_ice  ) 
     62      CALL Agrif_Update_Variable( u_ice_id   , procname = update_u_ice    ) 
     63      CALL Agrif_Update_Variable( v_ice_id   , procname = update_v_ice    ) 
     64!      CALL Agrif_Update_Variable( adv_ice_id , locupdate=(/0,2/), procname = update_adv_ice  ) 
     65!      CALL Agrif_Update_Variable( u_ice_id   , locupdate=(/0,1/), procname = update_u_ice    ) 
     66!      CALL Agrif_Update_Variable( v_ice_id   , locupdate=(/0,1/), procname = update_v_ice    ) 
    7067# endif 
    7168      ! 
  • branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_lim3_update.F90

    r7761 r8901  
    5959      Agrif_SpecialValueFineGrid = -9999. 
    6060# if defined TWO_WAY 
    61       IF( MOD(nbcline,nbclineupdate) == 0) THEN ! update the whole basin at each nbclineupdate (=nn_cln_update) baroclinic parent time steps 
    62                                                 ! nbcline is incremented (+1) at the end of each parent time step from 0 (1st time step) 
    63          CALL Agrif_Update_Variable( tra_ice_id , procname = update_tra_ice  ) 
    64          CALL Agrif_Update_Variable( u_ice_id   , procname = update_u_ice    ) 
    65          CALL Agrif_Update_Variable( v_ice_id   , procname = update_v_ice    ) 
    66       ELSE                                      ! update only the boundaries defined par locupdate 
    67          CALL Agrif_Update_Variable( tra_ice_id , locupdate=(/0,2/), procname = update_tra_ice  ) 
    68          CALL Agrif_Update_Variable( u_ice_id   , locupdate=(/0,1/), procname = update_u_ice    ) 
    69          CALL Agrif_Update_Variable( v_ice_id   , locupdate=(/0,1/), procname = update_v_ice    ) 
    70       ENDIF 
     61      CALL Agrif_Update_Variable( tra_ice_id , procname = update_tra_ice  ) 
     62      CALL Agrif_Update_Variable( u_ice_id   , procname = update_u_ice    ) 
     63      CALL Agrif_Update_Variable( v_ice_id   , procname = update_v_ice    ) 
     64 
     65!      CALL Agrif_Update_Variable( tra_ice_id , locupdate=(/0,2/), procname = update_tra_ice  ) 
     66!      CALL Agrif_Update_Variable( u_ice_id   , locupdate=(/0,1/), procname = update_u_ice    ) 
     67!      CALL Agrif_Update_Variable( v_ice_id   , locupdate=(/0,1/), procname = update_v_ice    ) 
    7168# endif 
    7269      Agrif_UseSpecialValueInUpdate = .FALSE. 
  • branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_oce.F90

    r8741 r8901  
    2020   !                                              !!* Namelist namagrif: AGRIF parameters 
    2121   LOGICAL , PUBLIC ::   ln_spc_dyn    = .FALSE.   !: 
    22    INTEGER , PUBLIC ::   nn_cln_update = 3         !: update frequency  
    2322   INTEGER , PUBLIC, PARAMETER ::   nn_sponge_len = 2  !: Sponge width (in number of parent grid points) 
    2423   REAL(wp), PUBLIC ::   rn_sponge_tra = 2800.     !: sponge coeff. for tracers 
     
    2726 
    2827   !                                              !!! OLD namelist names 
    29    INTEGER , PUBLIC ::   nbcline = 0               !: update counter 
    30    INTEGER , PUBLIC ::   nbclineupdate             !: update frequency  
    3128   REAL(wp), PUBLIC ::   visc_tra                  !: sponge coeff. for tracers 
    3229   REAL(wp), PUBLIC ::   visc_dyn                  !: sponge coeff. for dynamics 
  • branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_opa_update.F90

    r8898 r8901  
    3838      ! 
    3939#if defined TWO_WAY   
    40       IF (lwp.AND.lk_agrif_debug) Write(*,*) 'Update tracers  from grid Number',Agrif_Fixed(), 'nbcline', nbcline 
     40      IF (lwp.AND.lk_agrif_debug) Write(*,*) 'Update tracers  from grid Number',Agrif_Fixed() 
    4141 
    4242      Agrif_UseSpecialValueInUpdate = .TRUE. 
    4343      Agrif_SpecialValueFineGrid = 0. 
    4444      !  
    45       IF (MOD(nbcline,nbclineupdate) == 0) THEN 
    4645# if ! defined DECAL_FEEDBACK 
    47          CALL Agrif_Update_Variable(tsn_id, procname=updateTS) 
     46      CALL Agrif_Update_Variable(tsn_id, procname=updateTS) 
     47! near boundary update: 
     48!      CALL Agrif_Update_Variable(tsn_id,locupdate=(/0,2/), procname=updateTS) 
    4849# else 
    49          CALL Agrif_Update_Variable(tsn_id, locupdate=(/1,0/),procname=updateTS) 
     50      CALL Agrif_Update_Variable(tsn_id, locupdate=(/1,0/),procname=updateTS) 
     51! near boundary update: 
     52!      CALL Agrif_Update_Variable(tsn_id,locupdate=(/1,2/), procname=updateTS) 
    5053# endif 
    51       ELSE 
    52 # if ! defined DECAL_FEEDBACK 
    53          CALL Agrif_Update_Variable(tsn_id,locupdate=(/0,2/), procname=updateTS) 
    54 # else 
    55          CALL Agrif_Update_Variable(tsn_id,locupdate=(/1,2/), procname=updateTS) 
    56 # endif 
    57       ENDIF 
    5854      ! 
    5955      Agrif_UseSpecialValueInUpdate = .FALSE. 
     
    7167      ! 
    7268#if defined TWO_WAY 
    73       IF (lwp.AND.lk_agrif_debug) Write(*,*) 'Update momentum from grid Number',Agrif_Fixed(), 'nbcline', nbcline 
     69      IF (lwp.AND.lk_agrif_debug) Write(*,*) 'Update momentum from grid Number',Agrif_Fixed() 
    7470 
    7571      Agrif_UseSpecialValueInUpdate = .FALSE. 
    7672      Agrif_SpecialValueFineGrid = 0. 
    7773      !      
    78       IF (mod(nbcline,nbclineupdate) == 0) THEN 
    7974# if ! defined DECAL_FEEDBACK 
    80          CALL Agrif_Update_Variable(un_update_id,procname = updateU) 
    81          CALL Agrif_Update_Variable(vn_update_id,procname = updateV) 
     75      CALL Agrif_Update_Variable(un_update_id,procname = updateU) 
     76      CALL Agrif_Update_Variable(vn_update_id,procname = updateV) 
     77! near boundary update: 
     78!      CALL Agrif_Update_Variable(un_update_id,locupdate=(/0,1/),procname = updateU) 
     79!      CALL Agrif_Update_Variable(vn_update_id,locupdate=(/0,1/),procname = updateV) 
    8280# else 
    83          CALL Agrif_Update_Variable(un_update_id,locupdate1=(/0,-1/),locupdate2=(/1,-2/),procname = updateU) 
    84          CALL Agrif_Update_Variable(vn_update_id,locupdate1=(/1,-2/),locupdate2=(/0,-1/),procname = updateV) 
     81      CALL Agrif_Update_Variable(un_update_id,locupdate1=(/0,-1/),locupdate2=(/1,-2/),procname = updateU) 
     82      CALL Agrif_Update_Variable(vn_update_id,locupdate1=(/1,-2/),locupdate2=(/0,-1/),procname = updateV) 
     83! near boundary update: 
     84!      CALL Agrif_Update_Variable(un_update_id,locupdate1=(/0,1/),locupdate2=(/1,1/),procname = updateU) 
     85!      CALL Agrif_Update_Variable(vn_update_id,locupdate1=(/1,1/),locupdate2=(/0,1/),procname = updateV) 
    8586# endif 
    86       ELSE 
    87 # if ! defined DECAL_FEEDBACK 
    88          CALL Agrif_Update_Variable(un_update_id,locupdate=(/0,1/),procname = updateU) 
    89          CALL Agrif_Update_Variable(vn_update_id,locupdate=(/0,1/),procname = updateV)          
    90 # else 
    91          CALL Agrif_Update_Variable(un_update_id,locupdate1=(/0,1/),locupdate2=(/1,1/),procname = updateU) 
    92          CALL Agrif_Update_Variable(vn_update_id,locupdate1=(/1,1/),locupdate2=(/0,1/),procname = updateV) 
    93 # endif 
    94       ENDIF 
    9587 
    9688# if ! defined DECAL_FEEDBACK 
     
    10193      CALL Agrif_Update_Variable(e2v_id,locupdate1=(/1,-2/),locupdate2=(/0,-1/),procname = updateV2d)   
    10294# endif 
    103       ! 
    104       nbcline = nbcline + 1 
    10595      ! 
    10696# if ! defined DECAL_FEEDBACK 
  • branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_top_update.F90

    r8762 r8901  
    2424   PUBLIC Agrif_Update_Trc 
    2525 
    26    INTEGER, PUBLIC ::   nbcline_trc = 0   !: ??? 
    27  
    2826   !!---------------------------------------------------------------------- 
    2927   !! NEMO/NST 3.7 , NEMO Consortium (2015) 
     
    4442      Agrif_SpecialValueFineGrid    = 0._wp 
    4543      !  
    46       IF( MOD(nbcline_trc,nbclineupdate) == 0 ) THEN 
    4744# if ! defined DECAL_FEEDBACK 
    48          CALL Agrif_Update_Variable(trn_id, procname=updateTRC ) 
     45      CALL Agrif_Update_Variable(trn_id, procname=updateTRC ) 
     46!      CALL Agrif_Update_Variable( trn_id, locupdate=(/0,2/), procname=updateTRC ) 
    4947# else 
    50          CALL Agrif_Update_Variable(trn_id, locupdate=(/1,0/),procname=updateTRC ) 
     48      CALL Agrif_Update_Variable(trn_id, locupdate=(/1,0/),procname=updateTRC ) 
     49!      CALL Agrif_Update_Variable( trn_id, locupdate=(/1,2/), procname=updateTRC ) 
    5150# endif 
    52       ELSE 
    53 # if ! defined DECAL_FEEDBACK 
    54          CALL Agrif_Update_Variable( trn_id, locupdate=(/0,2/), procname=updateTRC ) 
    55 # else 
    56          CALL Agrif_Update_Variable( trn_id, locupdate=(/1,2/), procname=updateTRC ) 
    57 # endif 
    58       ENDIF 
    5951      ! 
    6052      Agrif_UseSpecialValueInUpdate = .FALSE. 
    61       nbcline_trc = nbcline_trc + 1 
     53      ! 
    6254#endif 
    6355      ! 
  • branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_user.F90

    r8762 r8901  
    8888   CALL Agrif_InitValues_cont_lim3 
    8989# endif 
    90    ! 
    91    nbcline     = 0 
    92 #if defined key_top 
    93    nbcline_trc = 0 
    94 #endif 
    9590   ! 
    9691   IF ( Agrif_Level().EQ.Agrif_MaxLevel() ) CALL agrif_Update_ini() 
     
    621616      CALL ctl_stop('rhot * nn_fsbc(parent) /= N * nn_fsbc(child), therefore nn_fsbc(child) should be set to 1 or nn_fsbc(parent)') 
    622617   ENDIF 
    623  
    624    ! stop if update frequency is different from nn_fsbc 
    625    IF( nbclineupdate > nn_fsbc )  CALL ctl_stop('With ice model on child grid, nn_cln_update should be set to 1 or nn_fsbc') 
    626  
    627  
    628618   ! First Interpolations (using "after" ice subtime step => lim_nbstep=1) 
    629619   !---------------------------------------------------------------------- 
     
    836826   INTEGER  ::   ios                 ! Local integer output status for namelist read 
    837827   INTEGER  ::   iminspon 
    838    NAMELIST/namagrif/ nn_cln_update, rn_sponge_tra, rn_sponge_dyn, ln_spc_dyn, ln_chk_bathy 
     828   NAMELIST/namagrif/ rn_sponge_tra, rn_sponge_dyn, ln_spc_dyn, ln_chk_bathy 
    839829   !!-------------------------------------------------------------------------------------- 
    840830   ! 
     
    853843      WRITE(numout,*) '~~~~~~~~~~~~~~~' 
    854844      WRITE(numout,*) '   Namelist namagrif : set AGRIF parameters' 
    855       WRITE(numout,*) '      baroclinic update frequency       nn_cln_update = ', nn_cln_update 
    856845      WRITE(numout,*) '      sponge coefficient for tracers    rn_sponge_tra = ', rn_sponge_tra, ' s' 
    857846      WRITE(numout,*) '      sponge coefficient for dynamics   rn_sponge_tra = ', rn_sponge_dyn, ' s' 
     
    862851   ! 
    863852   ! convert DOCTOR namelist name into OLD names 
    864    nbclineupdate = nn_cln_update 
    865853   visc_tra      = rn_sponge_tra 
    866854   visc_dyn      = rn_sponge_dyn 
     
    870858   IF (lk_mpp) iminspon = MIN(iminspon,FLOOR(REAL(jpi-2)/REAL(Agrif_irhox())), FLOOR(REAL(jpj-2)/REAL(Agrif_irhox())) ) 
    871859   IF (nn_sponge_len > iminspon)  CALL ctl_stop('agrif sponge length is too large') 
    872    ! Check update frequency 
    873    IF (MOD((nitend-nit000+1), nbclineupdate).NE.0 ) CALL ctl_stop('number of time steps should be a multiple of nn_cln_update') 
    874860   ! 
    875861   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.