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 12068 for NEMO/branches/2019/UKMO_MERGE_2019/src/OCE/ISF/isfparmlt.F90 – NEMO

Ignore:
Timestamp:
2019-12-05T13:18:21+01:00 (4 years ago)
Author:
davestorkey
Message:

2019/UKMO_MERGE_2019 : Merging in changes from ENHANCE-02_ISF_nemo.

Location:
NEMO/branches/2019/UKMO_MERGE_2019/src/OCE/ISF
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/UKMO_MERGE_2019/src/OCE/ISF/isfparmlt.F90

    r11931 r12068  
    1212 
    1313   USE dom_oce                  ! ocean space and time domain 
    14    USE oce    , ONLY: tsn       ! ocean dynamics and tracers 
     14   USE oce    , ONLY: ts        ! ocean dynamics and tracers 
    1515   USE phycst , ONLY: rcp, rau0 ! physical constants 
    1616   USE eosbn2 , ONLY: eos_fzp   ! equation of state 
     
    3939! ------------------------------------------------------------------------------------------------------- 
    4040 
    41   SUBROUTINE isfpar_mlt( kt, pqhc, pqoce, pqfwf ) 
     41  SUBROUTINE isfpar_mlt( kt, Kmm, pqhc, pqoce, pqfwf ) 
    4242      !!--------------------------------------------------------------------- 
    4343      !!                  ***  ROUTINE isfpar_mlt  *** 
     
    5454      !!-------------------------- IN  ------------------------------------- 
    5555      INTEGER, INTENT(in) ::   kt   ! ocean time step 
     56      INTEGER, INTENT(in) ::   Kmm  ! ocean time level index 
    5657      !!--------------------------------------------------------------------- 
    5758      ! 
     
    5960      SELECT CASE ( cn_isfpar_mlt ) 
    6061      CASE ( 'spe' )    ! specified runoff in depth (Mathiot et al., 2017 in preparation) 
    61          CALL isfpar_mlt_spe(kt, pqhc, pqoce, pqfwf) 
     62         CALL isfpar_mlt_spe(kt, Kmm, pqhc, pqoce, pqfwf) 
    6263      CASE ( 'bg03' )    ! Beckmann and Goosse parametrisation  
    63          CALL isfpar_mlt_bg03(kt, pqhc, pqoce, pqfwf) 
     64         CALL isfpar_mlt_bg03(kt, Kmm, pqhc, pqoce, pqfwf) 
    6465      CASE ( 'oasis' ) 
    65          CALL isfpar_mlt_oasis( kt, pqhc, pqoce, pqfwf) 
     66         CALL isfpar_mlt_oasis( kt, Kmm, pqhc, pqoce, pqfwf) 
    6667      CASE DEFAULT 
    6768         CALL ctl_stop('STOP', 'unknown isf melt formulation : cn_isfpar (should not see this)') 
     
    7475! ------------------------------------------------------------------------------------------------------- 
    7576 
    76    SUBROUTINE isfpar_mlt_spe(kt, pqhc, pqoce, pqfwf) 
     77   SUBROUTINE isfpar_mlt_spe(kt, Kmm, pqhc, pqoce, pqfwf) 
    7778      !!--------------------------------------------------------------------- 
    7879      !!                  ***  ROUTINE isfpar_mlt_spe  *** 
     
    8586      !!-------------------------- IN  ------------------------------------- 
    8687      INTEGER,  INTENT(in) :: kt 
     88      INTEGER,  INTENT(in) :: Kmm    !  ocean time level index 
    8789      !!-------------------------------------------------------------------- 
    8890      INTEGER :: jk 
     
    9799      ! 1. ------------Mean freezing point 
    98100      DO jk = 1,jpk 
    99          CALL eos_fzp(tsn(:,:,jk,jp_sal), ztfrz3d(:,:,jk), gdept_n(:,:,jk)) 
     101         CALL eos_fzp(ts(:,:,jk,jp_sal,Kmm), ztfrz3d(:,:,jk), gdept(:,:,jk,Kmm)) 
    100102      END DO 
    101       CALL isf_tbl(ztfrz3d, ztfrz, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par ) 
     103      CALL isf_tbl(Kmm, ztfrz3d, ztfrz, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par ) 
    102104      ! 
    103105      pqfwf(:,:) = - sf_isfpar_fwf(1)%fnow(:,:,1)      ! fresh water flux from the isf (fwfisf <0 mean melting)  
     
    109111   END SUBROUTINE isfpar_mlt_spe 
    110112 
    111    SUBROUTINE isfpar_mlt_bg03(kt, pqhc, pqoce, pqfwf) 
     113   SUBROUTINE isfpar_mlt_bg03(kt, Kmm, pqhc, pqoce, pqfwf) 
    112114      !!--------------------------------------------------------------------- 
    113115      !!                  ***  ROUTINE isfpar_mlt_bg03  *** 
     
    128130      !!-------------------------- IN  ------------------------------------- 
    129131      INTEGER,  INTENT(in) :: kt 
     132      INTEGER,  INTENT(in) :: Kmm    !  ocean time level index 
    130133      !!-------------------------------------------------------------------- 
    131134      INTEGER :: jk 
     
    137140      ! 0. ------------Mean freezing point 
    138141      DO jk = 1,jpk 
    139          CALL eos_fzp(tsn(:,:,jk,jp_sal), ztfrz3d(:,:,jk), gdept_n(:,:,jk)) 
     142         CALL eos_fzp(ts(:,:,jk,jp_sal,Kmm), ztfrz3d(:,:,jk), gdept(:,:,jk,Kmm)) 
    140143      END DO 
    141       CALL isf_tbl(ztfrz3d, ztfrz, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par ) 
     144      CALL isf_tbl(Kmm, ztfrz3d, ztfrz, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par ) 
    142145      ! 
    143146      ! 1. ------------Mean temperature 
    144       CALL isf_tbl(tsn(:,:,jk,jp_tem), ztavg, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par ) 
     147      CALL isf_tbl(Kmm, ts(:,:,jk,jp_tem,Kmm), ztavg, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par ) 
    145148      ! 
    146149      ! 2. ------------Net heat flux and fresh water flux due to the ice shelf 
     
    161164   END SUBROUTINE isfpar_mlt_bg03 
    162165 
    163    SUBROUTINE isfpar_mlt_oasis(kt, pqhc , pqoce, pqfwf ) 
     166   SUBROUTINE isfpar_mlt_oasis(kt, Kmm, pqhc , pqoce, pqfwf ) 
    164167      !!---------------------------------------------------------------------- 
    165168      !!                  ***  ROUTINE isfpar_mlt_oasis  *** 
     
    176179      !!-------------------------- IN  ------------------------------------- 
    177180      INTEGER                     , INTENT(in   ) :: kt                  ! current time step 
     181      INTEGER                     , INTENT(in   ) :: Kmm                 !  ocean time level index 
    178182      !!-------------------------------------------------------------------- 
    179183      INTEGER                           :: jk                            ! loop index 
     
    189193      ! 1. ------------Mean freezing point (needed for heat content flux) 
    190194      DO jk = 1,jpk 
    191          CALL eos_fzp(tsn(:,:,jk,jp_sal), ztfrz3d(:,:,jk), gdept_n(:,:,jk)) 
     195         CALL eos_fzp(ts(:,:,jk,jp_sal,Kmm), ztfrz3d(:,:,jk), gdept(:,:,jk,Kmm)) 
    192196      END DO 
    193       CALL isf_tbl(ztfrz3d, ztfrz, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par ) 
     197      CALL isf_tbl(Kmm, ztfrz3d, ztfrz, 'T', misfkt_par, rhisf_tbl_par, misfkb_par, rfrac_tbl_par ) 
    194198      ! 
    195199      ! 2. ------------Scale isf melt pattern with total amount from oasis 
Note: See TracChangeset for help on using the changeset viewer.