Changeset 9160


Ignore:
Timestamp:
2017-12-21T19:58:56+01:00 (3 years ago)
Author:
clem
Message:

make ice with agrif restartable. Reproducibility still needs to be checked out

Location:
branches/2017/dev_merge_2017/NEMOGCM/NEMO/NST_SRC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/NST_SRC/agrif_lim3_interp.F90

    r9019 r9160  
    6363         ENDIF 
    6464      CASE('T') 
    65             zbeta = REAL(lim_nbstep-1) / ( Agrif_Rhot() * REAL(Agrif_Parent(nn_fsbc)) / REAL(nn_fsbc) ) 
     65            zbeta = REAL(lim_nbstep) / ( Agrif_Rhot() * REAL(Agrif_Parent(nn_fsbc)) / REAL(nn_fsbc) ) 
    6666      END SELECT 
    6767      ! 
     
    9696      ! 
    9797      IF( before ) THEN  ! parent grid 
    98          ptab(:,:) = e2u(i1:i2,j1:j2) * u_ice_b(i1:i2,j1:j2) 
     98         ptab(:,:) = e2u(i1:i2,j1:j2) * u_ice(i1:i2,j1:j2) 
    9999         WHERE( umask(i1:i2,j1:j2,1) == 0. )   ptab(i1:i2,j1:j2) = Agrif_SpecialValue 
    100100      ELSE               ! child grid 
     
    123123      ! 
    124124      IF( before ) THEN  ! parent grid 
    125          ptab(:,:) = e1v(i1:i2,j1:j2) * v_ice_b(i1:i2,j1:j2) 
     125         ptab(:,:) = e1v(i1:i2,j1:j2) * v_ice(i1:i2,j1:j2) 
    126126         WHERE( vmask(i1:i2,j1:j2,1) == 0. )   ptab(i1:i2,j1:j2) = Agrif_SpecialValue 
    127127      ELSE               ! child grid 
     
    160160         jm = 1 
    161161         DO jl = 1, jpl 
    162             ptab(i1:i2,j1:j2,jm  ) = a_i_b (i1:i2,j1:j2,jl) 
    163             ptab(i1:i2,j1:j2,jm+1) = v_i_b (i1:i2,j1:j2,jl) 
    164             ptab(i1:i2,j1:j2,jm+2) = v_s_b (i1:i2,j1:j2,jl) 
    165             ptab(i1:i2,j1:j2,jm+3) = sv_i_b(i1:i2,j1:j2,jl) 
    166             ptab(i1:i2,j1:j2,jm+4) = oa_i_b(i1:i2,j1:j2,jl) 
     162            ptab(i1:i2,j1:j2,jm  ) = a_i (i1:i2,j1:j2,jl) 
     163            ptab(i1:i2,j1:j2,jm+1) = v_i (i1:i2,j1:j2,jl) 
     164            ptab(i1:i2,j1:j2,jm+2) = v_s (i1:i2,j1:j2,jl) 
     165            ptab(i1:i2,j1:j2,jm+3) = sv_i(i1:i2,j1:j2,jl) 
     166            ptab(i1:i2,j1:j2,jm+4) = oa_i(i1:i2,j1:j2,jl) 
    167167            jm = jm + 5 
    168168            DO jk = 1, nlay_s 
    169                ptab(i1:i2,j1:j2,jm) = e_s_b(i1:i2,j1:j2,jk,jl)   ;   jm = jm + 1 
     169               ptab(i1:i2,j1:j2,jm) = e_s(i1:i2,j1:j2,jk,jl)   ;   jm = jm + 1 
    170170            END DO 
    171171            DO jk = 1, nlay_i 
    172                ptab(i1:i2,j1:j2,jm) = e_i_b(i1:i2,j1:j2,jk,jl)   ;   jm = jm + 1 
     172               ptab(i1:i2,j1:j2,jm) = e_i(i1:i2,j1:j2,jk,jl)   ;   jm = jm + 1 
    173173            END DO 
    174174         END DO 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/NST_SRC/agrif_lim3_update.F90

    r9031 r9160  
    142142         ! 
    143143         ! integrated values 
    144          vt_i (i1:i2,j1:j2) = SUM(      v_i(i1:i2,j1:j2,:)           , dim=3 ) 
    145          vt_s (i1:i2,j1:j2) = SUM(      v_s(i1:i2,j1:j2,:)           , dim=3 ) 
    146          at_i (i1:i2,j1:j2) = SUM(      a_i(i1:i2,j1:j2,:)           , dim=3 ) 
    147          et_s(i1:i2,j1:j2)  = SUM( SUM( e_s(i1:i2,j1:j2,:,:), dim=4 ), dim=3 ) 
    148          et_i(i1:i2,j1:j2)  = SUM( SUM( e_i(i1:i2,j1:j2,:,:), dim=4 ), dim=3 ) 
     144         vt_i(i1:i2,j1:j2) = SUM(      v_i(i1:i2,j1:j2,:)           , dim=3 ) 
     145         vt_s(i1:i2,j1:j2) = SUM(      v_s(i1:i2,j1:j2,:)           , dim=3 ) 
     146         at_i(i1:i2,j1:j2) = SUM(      a_i(i1:i2,j1:j2,:)           , dim=3 ) 
     147         et_s(i1:i2,j1:j2) = SUM( SUM( e_s(i1:i2,j1:j2,:,:), dim=4 ), dim=3 ) 
     148         et_i(i1:i2,j1:j2) = SUM( SUM( e_i(i1:i2,j1:j2,:,:), dim=4 ), dim=3 ) 
    149149          
    150150      ENDIF 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/NST_SRC/agrif_user.F90

    r9134 r9160  
    546546   ! First Interpolations (using "after" ice subtime step => lim_nbstep=1) 
    547547   !---------------------------------------------------------------------- 
    548 !!   lim_nbstep = 1 
    549548   lim_nbstep = ( Agrif_irhot() * Agrif_Parent(nn_fsbc) / nn_fsbc ) ! clem: to have calledweight=1 in interp (otherwise the western border of the zoom is wrong) 
    550549   CALL agrif_interp_lim3('U') ! interpolation of ice velocities 
    551550   CALL agrif_interp_lim3('V') ! interpolation of ice velocities 
    552    CALL agrif_interp_lim3('T') ! interpolation of ice tracers 
     551   CALL agrif_interp_lim3('T') ! interpolation of ice tracers  
    553552   lim_nbstep = 0 
    554553    
Note: See TracChangeset for help on using the changeset viewer.