Changeset 11425


Ignore:
Timestamp:
2019-08-08T19:15:24+02:00 (23 months ago)
Author:
mathiot
Message:

ENHANCE-02_ISF_nemo : bug correction when oasis provide the ice shelf melt (ticket #2142)

Location:
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfcavmlt.F90

    r11423 r11425  
    5757      SELECT CASE ( cn_isfcav_mlt ) 
    5858      CASE ( 'spe' )   ! ice shelf melt specified (read input file, and heat fluxes derived from 
    59          CALL isfmlt_spe( kt, pstbl,               & 
     59         CALL isfcav_mlt_spe( kt, pstbl,               & 
    6060            &                  pqhc, pqoce, pqfwf  ) 
    6161      CASE ( '2eq' )   !  ISOMIP  formulation (2 equations) for volume flux (Hunter et al., 2006) 
    62          CALL isfmlt_2eq( pgt, pttbl, pstbl,       & 
     62         CALL isfcav_mlt_2eq( pgt, pttbl, pstbl,       & 
    6363            &                  pqhc , pqoce, pqfwf ) 
    6464      CASE ( '3eq' )   ! ISOMIP+ formulation (3 equations) for volume flux (Asay-Davis et al., 2015) 
    65          CALL isfmlt_3eq( pgt, pgs , pttbl, pstbl, & 
     65         CALL isfcav_mlt_3eq( pgt, pgs , pttbl, pstbl, & 
    6666            &                  pqhc, pqoce, pqfwf  ) 
    6767      CASE ( 'oasis' ) ! fwf pass trough oasis 
    68          CALL isfmlt_oasis( kt, pstbl,              & 
     68         CALL isfcav_mlt_oasis( kt, pstbl,              & 
    6969            &                   pqhc, pqoce, pqfwf  ) 
    7070      CASE DEFAULT 
     
    7878! ------------------------------------------------------------------------------------------------------- 
    7979 
    80    SUBROUTINE isfmlt_spe(kt, pstbl,              &  ! <<== in 
     80   SUBROUTINE isfcav_mlt_spe(kt, pstbl,              &  ! <<== in 
    8181      &                      pqhc , pqoce, pqfwf )  ! ==>> out 
    8282      !!---------------------------------------------------------------------- 
     
    106106      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  ( >0 out) 
    107107      ! 
    108    END SUBROUTINE isfmlt_spe 
    109  
    110    SUBROUTINE isfmlt_2eq(pgt, pttbl, pstbl,       &  ! <<== in 
     108   END SUBROUTINE isfcav_mlt_spe 
     109 
     110   SUBROUTINE isfcav_mlt_2eq(pgt, pttbl, pstbl,       &  ! <<== in 
    111111      &                       pqhc , pqoce, pqfwf )  ! ==>> out 
    112112      !!---------------------------------------------------------------------- 
     
    147147      CALL iom_put('isfthermald_cav', zthd ) 
    148148      ! 
    149    END SUBROUTINE isfmlt_2eq 
    150  
    151    SUBROUTINE isfmlt_3eq(pgt, pgs , pttbl, pstbl, & 
     149   END SUBROUTINE isfcav_mlt_2eq 
     150 
     151   SUBROUTINE isfcav_mlt_3eq(pgt, pgs , pttbl, pstbl, & 
    152152      &                       pqhc, pqoce, pqfwf  ) 
    153153      !!---------------------------------------------------------------------- 
     
    229229      CALL iom_put('isfthermald_cav', zthd) 
    230230      ! 
    231    END SUBROUTINE isfmlt_3eq 
    232  
    233    SUBROUTINE isfmlt_oasis(kt, pstbl,              &  ! <<== in 
     231   END SUBROUTINE isfcav_mlt_3eq 
     232 
     233   SUBROUTINE isfcav_mlt_oasis(kt, pstbl,              &  ! <<== in 
    234234      &                        pqhc , pqoce, pqfwf )  ! ==>> out 
    235235      !!---------------------------------------------------------------------- 
     
    263263      ! 
    264264      ! compute glob sum from input file 
    265       zfwf_fld = glob_sum('isfcav_mlt', zfwf(:,:)) 
     265      ! (PM) should consider delay sum as in fwb (1 time step offset if I well understood) 
     266      zfwf_fld = glob_sum('isfcav_mlt', e1e2t(:,:) * zfwf(:,:)) 
    266267      ! 
    267268      ! compute glob sum from atm->oce ice shelf fwf 
    268       zfwf_oasis = glob_sum('isfcav_mlt', fwfisf_oasis(:,:)) 
     269      ! (PM) should consider delay sum as in fwb (1 time step offset if I well understood) 
     270      zfwf_oasis = glob_sum('isfcav_mlt', e1e2t(:,:) * fwfisf_oasis(:,:)) 
    269271      ! 
    270272      ! scale fwf 
     
    277279      pqhc (:,:) =   pqfwf(:,:) * ztfrz(:,:) * rcp     ! heat content flux  ( >0 out) 
    278280      ! 
    279    END SUBROUTINE isfmlt_oasis 
     281   END SUBROUTINE isfcav_mlt_oasis 
    280282 
    281283   !SUBROUTINE isfmlt_3eq_frz_ktm1 
  • NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfparmlt.F90

    r11423 r11425  
    192192      ! 
    193193      ! compute glob sum from input file 
    194       zfwf_fld = glob_sum('isfcav_mlt', zfwf(:,:)) 
     194      ! (PM) should we consider delay sum as in fwb ? (it will offset by 1 time step if I understood well) 
     195      zfwf_fld = glob_sum('isfcav_mlt', e1e2t(:,:) * zfwf(:,:)) 
    195196      ! 
    196197      ! compute glob sum from atm->oce ice shelf fwf 
    197       zfwf_oasis = glob_sum('isfcav_mlt', fwfisf_oasis(:,:)) 
     198      ! (PM) should we consider delay sum as in fwb ? 
     199      zfwf_oasis = glob_sum('isfcav_mlt', e1e2t(:,:) * fwfisf_oasis(:,:)) 
    198200      ! 
    199201      ! scale fwf 
  • NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/ISF/isfstp.F90

    r11423 r11425  
    267267         IF( lwxios ) CALL iom_set_rstw_var_active('ssmask') 
    268268         IF( lwxios ) CALL iom_set_rstw_var_active('tmask') 
     269         !IF( lwxios ) CALL iom_set_rstw_var_active('wmask') 
     270         !IF( lwxios ) CALL iom_set_rstw_var_active('gdepw_n') 
    269271         IF( lwxios ) CALL iom_set_rstw_var_active('e3t_n') 
    270272         IF( lwxios ) CALL iom_set_rstw_var_active('e3u_n') 
Note: See TracChangeset for help on using the changeset viewer.