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

Ignore:
Timestamp:
2017-12-22T18:20:43+01:00 (6 years ago)
Author:
clem
Message:

fix issues but agrif + lim3 is still not restartable because of interpolation when ice thermodynamics is activated

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

    r9160 r9167  
    165165            ptab(i1:i2,j1:j2,jm+3) = sv_i(i1:i2,j1:j2,jl) 
    166166            ptab(i1:i2,j1:j2,jm+4) = oa_i(i1:i2,j1:j2,jl) 
    167             jm = jm + 5 
     167            ptab(i1:i2,j1:j2,jm+5) = a_ip(i1:i2,j1:j2,jl) 
     168            ptab(i1:i2,j1:j2,jm+6) = v_ip(i1:i2,j1:j2,jl) 
     169            ptab(i1:i2,j1:j2,jm+7) = t_su(i1:i2,j1:j2,jl) 
     170            jm = jm + 8 
    168171            DO jk = 1, nlay_s 
    169172               ptab(i1:i2,j1:j2,jm) = e_s(i1:i2,j1:j2,jk,jl)   ;   jm = jm + 1 
     
    192195                     sv_i(ji,jj,jl) = ptab(ji,jj,jm+3) * tmask(ji,jj,1) 
    193196                     oa_i(ji,jj,jl) = ptab(ji,jj,jm+4) * tmask(ji,jj,1) 
     197                     a_ip(ji,jj,jl) = ptab(ji,jj,jm+5) * tmask(ji,jj,1) 
     198                     v_ip(ji,jj,jl) = ptab(ji,jj,jm+6) * tmask(ji,jj,1) 
     199                     t_su(ji,jj,jl) = ptab(ji,jj,jm+7) * tmask(ji,jj,1) 
    194200                  END DO 
    195201               END DO 
    196                jm = jm + 5 
     202               jm = jm + 8 
    197203               ! 
    198204               DO jk = 1, nlay_s 
     
    217223            jm = 1 
    218224            DO jl = 1, jpl 
    219                ztab(:,:,jm  ) = a_i  (:,:,jl) 
    220                ztab(:,:,jm+1) = v_i  (:,:,jl) 
    221                ztab(:,:,jm+2) = v_s  (:,:,jl) 
     225               ztab(:,:,jm  ) = a_i (:,:,jl) 
     226               ztab(:,:,jm+1) = v_i (:,:,jl) 
     227               ztab(:,:,jm+2) = v_s (:,:,jl) 
    222228               ztab(:,:,jm+3) = sv_i(:,:,jl) 
    223229               ztab(:,:,jm+4) = oa_i(:,:,jl) 
    224                jm = jm + 5 
     230               ztab(:,:,jm+5) = a_ip(:,:,jl) 
     231               ztab(:,:,jm+6) = v_ip(:,:,jl) 
     232               ztab(:,:,jm+7) = t_su(:,:,jl) 
     233               jm = jm + 8 
    225234               DO jk = 1, nlay_s 
    226235                  ztab(:,:,jm) = e_s(:,:,jk,jl) 
     
    324333                     v_s (ji,jj,jl) = ztab(ji,jj,jm+2) * tmask(ji,jj,1) 
    325334                     sv_i(ji,jj,jl) = ztab(ji,jj,jm+3) * tmask(ji,jj,1) 
    326                      oa_i (ji,jj,jl) = ztab(ji,jj,jm+4) * tmask(ji,jj,1) 
     335                     oa_i(ji,jj,jl) = ztab(ji,jj,jm+4) * tmask(ji,jj,1) 
     336                     a_ip(ji,jj,jl) = ztab(ji,jj,jm+5) * tmask(ji,jj,1) 
     337                     v_ip(ji,jj,jl) = ztab(ji,jj,jm+6) * tmask(ji,jj,1) 
     338                     t_su(ji,jj,jl) = ztab(ji,jj,jm+7) * tmask(ji,jj,1) 
    327339                  END DO 
    328340               END DO 
    329                jm = jm + 5 
     341               jm = jm + 8 
    330342               ! 
    331343               DO jk = 1, nlay_s 
     
    344356          
    345357         ! integrated values 
    346          vt_i (i1:i2,j1:j2) = SUM( v_i(i1:i2,j1:j2,:), dim=3 ) 
    347          vt_s (i1:i2,j1:j2) = SUM( v_s(i1:i2,j1:j2,:), dim=3 ) 
    348          at_i (i1:i2,j1:j2) = SUM( a_i(i1:i2,j1:j2,:), dim=3 ) 
     358         vt_i (i1:i2,j1:j2) = SUM(      v_i(i1:i2,j1:j2,:),            dim=3 ) 
     359         vt_s (i1:i2,j1:j2) = SUM(      v_s(i1:i2,j1:j2,:),            dim=3 ) 
     360         at_i (i1:i2,j1:j2) = SUM(      a_i(i1:i2,j1:j2,:),            dim=3 ) 
    349361         et_s(i1:i2,j1:j2)  = SUM( SUM( e_s(i1:i2,j1:j2,:,:), dim=4 ), dim=3 ) 
    350362         et_i(i1:i2,j1:j2)  = SUM( SUM( e_i(i1:i2,j1:j2,:,:), dim=4 ), dim=3 ) 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/NST_SRC/agrif_lim3_update.F90

    r9160 r9167  
    9393            ptab(i1:i2,j1:j2,jm+2) = v_s (i1:i2,j1:j2,jl) 
    9494            ptab(i1:i2,j1:j2,jm+3) = sv_i(i1:i2,j1:j2,jl) 
    95             ptab(i1:i2,j1:j2,jm+4) = oa_i (i1:i2,j1:j2,jl) 
    96             jm = jm + 5 
     95            ptab(i1:i2,j1:j2,jm+4) = oa_i(i1:i2,j1:j2,jl) 
     96            ptab(i1:i2,j1:j2,jm+5) = a_ip(i1:i2,j1:j2,jl) 
     97            ptab(i1:i2,j1:j2,jm+6) = v_ip(i1:i2,j1:j2,jl) 
     98            ptab(i1:i2,j1:j2,jm+7) = t_su(i1:i2,j1:j2,jl) 
     99            jm = jm + 8 
    97100            DO jk = 1, nlay_s 
    98101               ptab(i1:i2,j1:j2,jm) = e_s(i1:i2,j1:j2,jk,jl)   ;   jm = jm + 1 
     
    120123                     sv_i(ji,jj,jl) = ptab(ji,jj,jm+3) * tmask(ji,jj,1) 
    121124                     oa_i(ji,jj,jl) = ptab(ji,jj,jm+4) * tmask(ji,jj,1) 
     125                     a_ip(ji,jj,jl) = ptab(ji,jj,jm+5) * tmask(ji,jj,1) 
     126                     v_ip(ji,jj,jl) = ptab(ji,jj,jm+6) * tmask(ji,jj,1) 
     127                     t_su(ji,jj,jl) = ptab(ji,jj,jm+7) * tmask(ji,jj,1) 
    122128                  ENDIF 
    123129               END DO 
    124130            END DO 
    125             jm = jm + 5 
     131            jm = jm + 8 
    126132            ! 
    127133            DO jk = 1, nlay_s 
     
    147153         et_s(i1:i2,j1:j2) = SUM( SUM( e_s(i1:i2,j1:j2,:,:), dim=4 ), dim=3 ) 
    148154         et_i(i1:i2,j1:j2) = SUM( SUM( e_i(i1:i2,j1:j2,:,:), dim=4 ), dim=3 ) 
     155 
     156         at_ip(i1:i2,j1:j2) = SUM( a_ip(i1:i2,j1:j2,:), dim=3 ) ! melt ponds 
     157         vt_ip(i1:i2,j1:j2) = SUM( v_ip(i1:i2,j1:j2,:), dim=3 ) 
     158         ! 
     159         ato_i(i1:i2,j1:j2) = 1._wp - at_i(i1:i2,j1:j2)         ! open water fraction   
    149160          
    150161      ENDIF 
  • branches/2017/dev_merge_2017/NEMOGCM/NEMO/NST_SRC/agrif_user.F90

    r9160 r9167  
    584584   ind2 = 1 + nbghostcells 
    585585   ind3 = 2 + nbghostcells 
    586    CALL agrif_declare_variable((/2,2,0/),(/ind3,ind3,0/),(/'x','y','N'/),(/1,1,1/),(/nlci,nlcj,jpl*(5+nlay_s+nlay_i)/),tra_ice_id ) 
    587    CALL agrif_declare_variable((/1,2/)  ,(/ind2,ind3/)  ,(/'x','y'/)    ,(/1,1/)  ,(/nlci,nlcj/)                      ,u_ice_id   ) 
    588    CALL agrif_declare_variable((/2,1/)  ,(/ind3,ind2/)  ,(/'x','y'/)    ,(/1,1/)  ,(/nlci,nlcj/)                      ,v_ice_id   ) 
     586   CALL agrif_declare_variable((/2,2,0/),(/ind3,ind3,0/),(/'x','y','N'/),(/1,1,1/),(/nlci,nlcj,jpl*(8+nlay_s+nlay_i)/),tra_ice_id) 
     587   CALL agrif_declare_variable((/1,2/)  ,(/ind2,ind3/)  ,(/'x','y'/)    ,(/1,1/)  ,(/nlci,nlcj/)                      ,u_ice_id  ) 
     588   CALL agrif_declare_variable((/2,1/)  ,(/ind3,ind2/)  ,(/'x','y'/)    ,(/1,1/)  ,(/nlci,nlcj/)                      ,v_ice_id  ) 
    589589 
    590590   ! 2. Set interpolations (normal & tangent to the grid cell for velocities) 
    591591   !----------------------------------- 
    592    CALL Agrif_Set_bcinterp(tra_ice_id,  interp = AGRIF_linear) 
     592   CALL Agrif_Set_bcinterp(tra_ice_id, interp = AGRIF_linear) 
    593593   CALL Agrif_Set_bcinterp(u_ice_id  , interp1 = Agrif_linear,interp2 = AGRIF_ppm   ) 
    594594   CALL Agrif_Set_bcinterp(v_ice_id  , interp1 = AGRIF_ppm   ,interp2 = Agrif_linear) 
     
    603603   !-------------------------------------------------- 
    604604# if defined UPD_HIGH 
    605    CALL Agrif_Set_Updatetype(tra_ice_id, update = Agrif_Update_Full_Weighting) 
    606    CALL Agrif_Set_Updatetype(u_ice_id  ,update1 = Agrif_Update_Average       , update2 = Agrif_Update_Full_Weighting) 
    607    CALL Agrif_Set_Updatetype(v_ice_id  ,update1 = Agrif_Update_Full_Weighting, update2 = Agrif_Update_Average) 
     605   CALL Agrif_Set_Updatetype(tra_ice_id, update  = Agrif_Update_Full_Weighting) 
     606   CALL Agrif_Set_Updatetype(u_ice_id  , update1 = Agrif_Update_Average       , update2 = Agrif_Update_Full_Weighting) 
     607   CALL Agrif_Set_Updatetype(v_ice_id  , update1 = Agrif_Update_Full_Weighting, update2 = Agrif_Update_Average       ) 
    608608#else 
    609    CALL Agrif_Set_Updatetype(tra_ice_id, update = AGRIF_Update_Average) 
    610    CALL Agrif_Set_Updatetype(u_ice_id  ,update1 = Agrif_Update_Copy   , update2 = Agrif_Update_Average) 
    611    CALL Agrif_Set_Updatetype(v_ice_id  ,update1 = Agrif_Update_Average, update2 = Agrif_Update_Copy   ) 
     609   CALL Agrif_Set_Updatetype(tra_ice_id, update  = AGRIF_Update_Average) 
     610   CALL Agrif_Set_Updatetype(u_ice_id  , update1 = Agrif_Update_Copy   , update2 = Agrif_Update_Average) 
     611   CALL Agrif_Set_Updatetype(v_ice_id  , update1 = Agrif_Update_Average, update2 = Agrif_Update_Copy   ) 
    612612#endif 
    613613 
Note: See TracChangeset for help on using the changeset viewer.