- Timestamp:
- 2019-12-05T13:18:21+01:00 (4 years ago)
- 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 12 12 13 13 USE dom_oce ! ocean space and time domain 14 USE oce , ONLY: ts n! ocean dynamics and tracers14 USE oce , ONLY: ts ! ocean dynamics and tracers 15 15 USE phycst , ONLY: rcp, rau0 ! physical constants 16 16 USE eosbn2 , ONLY: eos_fzp ! equation of state … … 39 39 ! ------------------------------------------------------------------------------------------------------- 40 40 41 SUBROUTINE isfpar_mlt( kt, pqhc, pqoce, pqfwf )41 SUBROUTINE isfpar_mlt( kt, Kmm, pqhc, pqoce, pqfwf ) 42 42 !!--------------------------------------------------------------------- 43 43 !! *** ROUTINE isfpar_mlt *** … … 54 54 !!-------------------------- IN ------------------------------------- 55 55 INTEGER, INTENT(in) :: kt ! ocean time step 56 INTEGER, INTENT(in) :: Kmm ! ocean time level index 56 57 !!--------------------------------------------------------------------- 57 58 ! … … 59 60 SELECT CASE ( cn_isfpar_mlt ) 60 61 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) 62 63 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) 64 65 CASE ( 'oasis' ) 65 CALL isfpar_mlt_oasis( kt, pqhc, pqoce, pqfwf)66 CALL isfpar_mlt_oasis( kt, Kmm, pqhc, pqoce, pqfwf) 66 67 CASE DEFAULT 67 68 CALL ctl_stop('STOP', 'unknown isf melt formulation : cn_isfpar (should not see this)') … … 74 75 ! ------------------------------------------------------------------------------------------------------- 75 76 76 SUBROUTINE isfpar_mlt_spe(kt, pqhc, pqoce, pqfwf)77 SUBROUTINE isfpar_mlt_spe(kt, Kmm, pqhc, pqoce, pqfwf) 77 78 !!--------------------------------------------------------------------- 78 79 !! *** ROUTINE isfpar_mlt_spe *** … … 85 86 !!-------------------------- IN ------------------------------------- 86 87 INTEGER, INTENT(in) :: kt 88 INTEGER, INTENT(in) :: Kmm ! ocean time level index 87 89 !!-------------------------------------------------------------------- 88 90 INTEGER :: jk … … 97 99 ! 1. ------------Mean freezing point 98 100 DO jk = 1,jpk 99 CALL eos_fzp(ts n(:,:,jk,jp_sal), ztfrz3d(:,:,jk), gdept_n(:,:,jk))101 CALL eos_fzp(ts(:,:,jk,jp_sal,Kmm), ztfrz3d(:,:,jk), gdept(:,:,jk,Kmm)) 100 102 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 ) 102 104 ! 103 105 pqfwf(:,:) = - sf_isfpar_fwf(1)%fnow(:,:,1) ! fresh water flux from the isf (fwfisf <0 mean melting) … … 109 111 END SUBROUTINE isfpar_mlt_spe 110 112 111 SUBROUTINE isfpar_mlt_bg03(kt, pqhc, pqoce, pqfwf)113 SUBROUTINE isfpar_mlt_bg03(kt, Kmm, pqhc, pqoce, pqfwf) 112 114 !!--------------------------------------------------------------------- 113 115 !! *** ROUTINE isfpar_mlt_bg03 *** … … 128 130 !!-------------------------- IN ------------------------------------- 129 131 INTEGER, INTENT(in) :: kt 132 INTEGER, INTENT(in) :: Kmm ! ocean time level index 130 133 !!-------------------------------------------------------------------- 131 134 INTEGER :: jk … … 137 140 ! 0. ------------Mean freezing point 138 141 DO jk = 1,jpk 139 CALL eos_fzp(ts n(:,:,jk,jp_sal), ztfrz3d(:,:,jk), gdept_n(:,:,jk))142 CALL eos_fzp(ts(:,:,jk,jp_sal,Kmm), ztfrz3d(:,:,jk), gdept(:,:,jk,Kmm)) 140 143 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 ) 142 145 ! 143 146 ! 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 ) 145 148 ! 146 149 ! 2. ------------Net heat flux and fresh water flux due to the ice shelf … … 161 164 END SUBROUTINE isfpar_mlt_bg03 162 165 163 SUBROUTINE isfpar_mlt_oasis(kt, pqhc , pqoce, pqfwf )166 SUBROUTINE isfpar_mlt_oasis(kt, Kmm, pqhc , pqoce, pqfwf ) 164 167 !!---------------------------------------------------------------------- 165 168 !! *** ROUTINE isfpar_mlt_oasis *** … … 176 179 !!-------------------------- IN ------------------------------------- 177 180 INTEGER , INTENT(in ) :: kt ! current time step 181 INTEGER , INTENT(in ) :: Kmm ! ocean time level index 178 182 !!-------------------------------------------------------------------- 179 183 INTEGER :: jk ! loop index … … 189 193 ! 1. ------------Mean freezing point (needed for heat content flux) 190 194 DO jk = 1,jpk 191 CALL eos_fzp(ts n(:,:,jk,jp_sal), ztfrz3d(:,:,jk), gdept_n(:,:,jk))195 CALL eos_fzp(ts(:,:,jk,jp_sal,Kmm), ztfrz3d(:,:,jk), gdept(:,:,jk,Kmm)) 192 196 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 ) 194 198 ! 195 199 ! 2. ------------Scale isf melt pattern with total amount from oasis
Note: See TracChangeset
for help on using the changeset viewer.