Changeset 8901
- Timestamp:
- 2017-12-05T14:52:57+01:00 (6 years ago)
- 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 85 85 &namagrif ! AGRIF zoom ("key_agrif") 86 86 !----------------------------------------------------------------------- 87 nn_cln_update = 1 ! baroclinic update frequency88 87 / 89 88 !----------------------------------------------------------------------- -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/ORCA2_LIM3_PISCES/EXP00/namelist_cfg
r8599 r8901 102 102 &namagrif ! AGRIF zoom ("key_agrif") 103 103 !----------------------------------------------------------------------- 104 nn_cln_update = 3 ! baroclinic update frequency105 104 / 106 105 !----------------------------------------------------------------------- -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/SHARED/namelist_ref
r8898 r8901 517 517 &namagrif ! AGRIF zoom ("key_agrif") 518 518 !----------------------------------------------------------------------- 519 nn_cln_update = 3 ! baroclinic update frequency520 519 ln_spc_dyn = .true. ! use 0 as special value for dynamics 521 520 rn_sponge_tra = 2880. ! coefficient for tracer sponge layer [m2/s] … … 835 834 rn_bt_cmax = 0.8 ! =T : the Maximum Courant Number allowed 836 835 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) 838 837 / 839 838 !----------------------------------------------------------------------- -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/CONFIG/TEST_CASES/VORTEX/EXP00/1_namelist_cfg
r8762 r8901 37 37 &namagrif ! AGRIF zoom ("key_agrif") 38 38 !----------------------------------------------------------------------- 39 nn_cln_update = 1 ! baroclinic update frequency40 39 ln_spc_dyn = .true. ! use 0 as special value for dynamics 41 40 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 37 37 &namagrif ! AGRIF zoom ("key_agrif") 38 38 !----------------------------------------------------------------------- 39 nn_cln_update = 1 ! baroclinic update frequency40 39 ln_spc_dyn = .true. ! use 0 as special value for dynamics 41 40 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 59 59 Agrif_SpecialValueFineGrid = 0. 60 60 # 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 ) 70 67 # endif 71 68 ! -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_lim3_update.F90
r7761 r8901 59 59 Agrif_SpecialValueFineGrid = -9999. 60 60 # 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 ) 71 68 # endif 72 69 Agrif_UseSpecialValueInUpdate = .FALSE. -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_oce.F90
r8741 r8901 20 20 ! !!* Namelist namagrif: AGRIF parameters 21 21 LOGICAL , PUBLIC :: ln_spc_dyn = .FALSE. !: 22 INTEGER , PUBLIC :: nn_cln_update = 3 !: update frequency23 22 INTEGER , PUBLIC, PARAMETER :: nn_sponge_len = 2 !: Sponge width (in number of parent grid points) 24 23 REAL(wp), PUBLIC :: rn_sponge_tra = 2800. !: sponge coeff. for tracers … … 27 26 28 27 ! !!! OLD namelist names 29 INTEGER , PUBLIC :: nbcline = 0 !: update counter30 INTEGER , PUBLIC :: nbclineupdate !: update frequency31 28 REAL(wp), PUBLIC :: visc_tra !: sponge coeff. for tracers 32 29 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 38 38 ! 39 39 #if defined TWO_WAY 40 IF (lwp.AND.lk_agrif_debug) Write(*,*) 'Update tracers from grid Number',Agrif_Fixed() , 'nbcline', nbcline40 IF (lwp.AND.lk_agrif_debug) Write(*,*) 'Update tracers from grid Number',Agrif_Fixed() 41 41 42 42 Agrif_UseSpecialValueInUpdate = .TRUE. 43 43 Agrif_SpecialValueFineGrid = 0. 44 44 ! 45 IF (MOD(nbcline,nbclineupdate) == 0) THEN46 45 # 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) 48 49 # 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) 50 53 # endif 51 ELSE52 # if ! defined DECAL_FEEDBACK53 CALL Agrif_Update_Variable(tsn_id,locupdate=(/0,2/), procname=updateTS)54 # else55 CALL Agrif_Update_Variable(tsn_id,locupdate=(/1,2/), procname=updateTS)56 # endif57 ENDIF58 54 ! 59 55 Agrif_UseSpecialValueInUpdate = .FALSE. … … 71 67 ! 72 68 #if defined TWO_WAY 73 IF (lwp.AND.lk_agrif_debug) Write(*,*) 'Update momentum from grid Number',Agrif_Fixed() , 'nbcline', nbcline69 IF (lwp.AND.lk_agrif_debug) Write(*,*) 'Update momentum from grid Number',Agrif_Fixed() 74 70 75 71 Agrif_UseSpecialValueInUpdate = .FALSE. 76 72 Agrif_SpecialValueFineGrid = 0. 77 73 ! 78 IF (mod(nbcline,nbclineupdate) == 0) THEN79 74 # 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) 82 80 # 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) 85 86 # endif 86 ELSE87 # if ! defined DECAL_FEEDBACK88 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 # else91 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 # endif94 ENDIF95 87 96 88 # if ! defined DECAL_FEEDBACK … … 101 93 CALL Agrif_Update_Variable(e2v_id,locupdate1=(/1,-2/),locupdate2=(/0,-1/),procname = updateV2d) 102 94 # endif 103 !104 nbcline = nbcline + 1105 95 ! 106 96 # if ! defined DECAL_FEEDBACK -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_top_update.F90
r8762 r8901 24 24 PUBLIC Agrif_Update_Trc 25 25 26 INTEGER, PUBLIC :: nbcline_trc = 0 !: ???27 28 26 !!---------------------------------------------------------------------- 29 27 !! NEMO/NST 3.7 , NEMO Consortium (2015) … … 44 42 Agrif_SpecialValueFineGrid = 0._wp 45 43 ! 46 IF( MOD(nbcline_trc,nbclineupdate) == 0 ) THEN47 44 # 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 ) 49 47 # 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 ) 51 50 # endif 52 ELSE53 # if ! defined DECAL_FEEDBACK54 CALL Agrif_Update_Variable( trn_id, locupdate=(/0,2/), procname=updateTRC )55 # else56 CALL Agrif_Update_Variable( trn_id, locupdate=(/1,2/), procname=updateTRC )57 # endif58 ENDIF59 51 ! 60 52 Agrif_UseSpecialValueInUpdate = .FALSE. 61 nbcline_trc = nbcline_trc + 153 ! 62 54 #endif 63 55 ! -
branches/2017/dev_r8624_AGRIF3_VVL/NEMOGCM/NEMO/NST_SRC/agrif_user.F90
r8762 r8901 88 88 CALL Agrif_InitValues_cont_lim3 89 89 # endif 90 !91 nbcline = 092 #if defined key_top93 nbcline_trc = 094 #endif95 90 ! 96 91 IF ( Agrif_Level().EQ.Agrif_MaxLevel() ) CALL agrif_Update_ini() … … 621 616 CALL ctl_stop('rhot * nn_fsbc(parent) /= N * nn_fsbc(child), therefore nn_fsbc(child) should be set to 1 or nn_fsbc(parent)') 622 617 ENDIF 623 624 ! stop if update frequency is different from nn_fsbc625 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 628 618 ! First Interpolations (using "after" ice subtime step => lim_nbstep=1) 629 619 !---------------------------------------------------------------------- … … 836 826 INTEGER :: ios ! Local integer output status for namelist read 837 827 INTEGER :: iminspon 838 NAMELIST/namagrif/ nn_cln_update,rn_sponge_tra, rn_sponge_dyn, ln_spc_dyn, ln_chk_bathy828 NAMELIST/namagrif/ rn_sponge_tra, rn_sponge_dyn, ln_spc_dyn, ln_chk_bathy 839 829 !!-------------------------------------------------------------------------------------- 840 830 ! … … 853 843 WRITE(numout,*) '~~~~~~~~~~~~~~~' 854 844 WRITE(numout,*) ' Namelist namagrif : set AGRIF parameters' 855 WRITE(numout,*) ' baroclinic update frequency nn_cln_update = ', nn_cln_update856 845 WRITE(numout,*) ' sponge coefficient for tracers rn_sponge_tra = ', rn_sponge_tra, ' s' 857 846 WRITE(numout,*) ' sponge coefficient for dynamics rn_sponge_tra = ', rn_sponge_dyn, ' s' … … 862 851 ! 863 852 ! convert DOCTOR namelist name into OLD names 864 nbclineupdate = nn_cln_update865 853 visc_tra = rn_sponge_tra 866 854 visc_dyn = rn_sponge_dyn … … 870 858 IF (lk_mpp) iminspon = MIN(iminspon,FLOOR(REAL(jpi-2)/REAL(Agrif_irhox())), FLOOR(REAL(jpj-2)/REAL(Agrif_irhox())) ) 871 859 IF (nn_sponge_len > iminspon) CALL ctl_stop('agrif sponge length is too large') 872 ! Check update frequency873 IF (MOD((nitend-nit000+1), nbclineupdate).NE.0 ) CALL ctl_stop('number of time steps should be a multiple of nn_cln_update')874 860 ! 875 861 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.