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 9482 for branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3 – NEMO

Ignore:
Timestamp:
2018-04-13T19:03:31+02:00 (6 years ago)
Author:
clem
Message:

The configuration Agrif_Nordic is now restartable for any nn_fsbc(Parent) and nn_fsbc(Child). However we do not authorized nn_fsbc(Child) to be larger than 1 because otherwise it breaks the CFL too easily. The simulation would still run but the results would not be satisfactory. I still have to verify this point with the last version of the code

Location:
branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icedyn_rhg_evp.F90

    r9169 r9482  
    176176 
    177177      IF( kt == nit000 .AND. lwp )   WRITE(numout,*) '-- ice_dyn_rhg_evp: EVP sea-ice rheology' 
    178  
    179 #if defined key_agrif  
    180       CALL agrif_interp_lim3( 'U', 0, nn_nevp )   ! First interpolation of coarse values 
    181       CALL agrif_interp_lim3( 'V', 0, nn_nevp ) 
    182 #endif 
    183178      ! 
    184179!!gm for Clem:  OPTIMIZATION:  I think zfmask can be computed one for all at the initialization.... 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/LIM_SRC_3/icestp.F90

    r9448 r9482  
    110110         kt_ice = kt                              ! -- Ice model time step 
    111111         ! 
    112 # if defined key_agrif 
    113          IF( .NOT. Agrif_Root() )  lim_nbstep = MOD( lim_nbstep, Agrif_irhot() * Agrif_Parent(nn_fsbc) / nn_fsbc ) + 1 
    114 # endif 
    115112         u_oce(:,:) = ssu_m(:,:)                  ! -- mean surface ocean current 
    116113         v_oce(:,:) = ssv_m(:,:) 
     
    119116         t_bo(:,:) = ( t_bo(:,:) + rt0 ) * tmask(:,:,1) + rt0 * ( 1._wp - tmask(:,:,1) ) 
    120117         ! 
    121          CALL store_fields                        ! -- Store now ice values 
     118         !                          !==  AGRIF Parent to Child  ==! 
     119#if defined key_agrif 
     120         !                              ! lim_nbstep ranges from 1 to the nb of child ocean steps inside one parent ice step 
     121         IF( .NOT. Agrif_Root() )       lim_nbstep = MOD( lim_nbstep, Agrif_irhot() * Agrif_Parent(nn_fsbc) / nn_fsbc ) + 1 
     122         !                              ! these calls must remain here for restartability purposes 
     123                                        CALL agrif_interp_lim3( 'T' )  
     124                                        CALL agrif_interp_lim3( 'U' ) 
     125                                        CALL agrif_interp_lim3( 'V' ) 
     126#endif 
     127                                        CALL store_fields             ! Store now ice values 
    122128         ! 
    123129         !------------------------------------------------! 
     
    131137         ! --- ice dynamics and advection  --- ! 
    132138         !-------------------------------------! 
    133          CALL diag_set0             ! set diag of mass, heat and salt fluxes to 0 
    134          CALL ice_rst_opn( kt )     ! Open Ice restart file (if necessary)  
     139                                        CALL diag_set0                ! set diag of mass, heat and salt fluxes to 0 
     140                                        CALL ice_rst_opn( kt )        ! Open Ice restart file (if necessary)  
    135141         ! 
    136142         IF( ln_icedyn .AND. .NOT.lk_c1d )   & 
     
    138144         ! 
    139145         !                          !==  lateral boundary conditions  ==! 
    140 #if defined key_agrif 
    141          IF( .NOT. Agrif_Root()     )   CALL agrif_interp_lim3('T')   ! -- AGRIF  
    142 #endif 
    143146         IF( ln_icethd .AND. ln_bdy )   CALL bdy_ice( kt )            ! -- bdy ice thermo 
    144147         ! 
    145          ! 
    146148         !                          !==  previous lead fraction and ice volume for flux calculations 
    147          CALL ice_var_glo2eqv            ! h_i and h_s for ice albedo calculation 
    148          CALL ice_var_agg(1)             ! at_i for coupling  
    149          CALL store_fields               ! Store now ice values 
    150  
     149                                        CALL ice_var_glo2eqv          ! h_i and h_s for ice albedo calculation 
     150                                        CALL ice_var_agg(1)           ! at_i for coupling  
     151                                        CALL store_fields             ! Store now ice values 
     152         ! 
    151153         !------------------------------------------------------! 
    152154         ! --- Thermodynamical coupling with the atmosphere --- ! 
     
    170172         ! 
    171173         IF( ln_icethd )                CALL ice_cor( kt , 2 )        ! -- Corrections 
     174         ! 
     175         !                          !==  AGRIF Child to Parent  ==! 
    172176# if defined key_agrif 
    173          IF( .NOT. Agrif_Root() )       CALL agrif_update_lim3( kt ) 
     177                                        CALL agrif_update_lim3( kt ) 
    174178# endif 
    175          CALL ice_var_glo2eqv        ! necessary calls (at least for coupling) 
    176          CALL ice_var_agg( 2 )       ! necessary calls (at least for coupling) 
    177                                      ! 
     179                                        CALL ice_var_glo2eqv          ! necessary calls (at least for coupling) 
     180                                        CALL ice_var_agg( 2 )         ! necessary calls (at least for coupling) 
     181         ! 
    178182!! clem: one should switch the calculation of the fluxes onto the parent grid but the following calls do not work 
    179183!!       moreover it should only be called at the update frequency (as in agrif_lim3_update.F90) 
    180 !!# if defined key_agrif 
    181 !!         IF( .NOT. Agrif_Root() )     CALL Agrif_ChildGrid_To_ParentGrid() 
    182 !!# endif 
     184!# if defined key_agrif 
     185!         IF( .NOT. Agrif_Root() )     CALL Agrif_ChildGrid_To_ParentGrid() 
     186!# endif 
    183187                                        CALL ice_update_flx( kt )     ! -- Update ocean surface mass, heat and salt fluxes 
    184 !!# if defined key_agrif 
    185 !!         IF( .NOT. Agrif_Root() )     CALL Agrif_ParentGrid_To_ChildGrid() 
    186 !!# endif 
     188!# if defined key_agrif 
     189!         IF( .NOT. Agrif_Root() )     CALL Agrif_ParentGrid_To_ChildGrid() 
     190!# endif 
    187191         IF( ln_icediahsb )             CALL ice_dia( kt )            ! -- Diagnostics outputs  
    188192         ! 
Note: See TracChangeset for help on using the changeset viewer.