Changeset 11395 for NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/TRA
- Timestamp:
- 2019-08-02T16:19:00+02:00 (5 years ago)
- Location:
- NEMO/branches/2019/ENHANCE-02_ISF_nemo
- Files:
-
- 1 added
- 2 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/TRA/tranxt.F90
r10425 r11395 28 28 USE sbc_oce ! surface boundary condition: ocean 29 29 USE sbcrnf ! river runoffs 30 USE sbcisf! ice shelf melting30 USE isf ! ice shelf melting 31 31 USE zdf_oce ! ocean vertical mixing 32 32 USE domvvl ! variable volume … … 312 312 ztc_f = ztc_n + atfp * ztc_d 313 313 ! 314 IF( jk == mikt(ji,jj) ) THEN ! first level 315 ze3t_f = ze3t_f - zfact2 * ( (emp_b(ji,jj) - emp(ji,jj) ) & 316 & + (fwfisf_b(ji,jj) - fwfisf(ji,jj)) ) 314 IF( jk == 1 ) THEN ! first level 315 ze3t_f = ze3t_f - zfact2 * ( emp_b(ji,jj) - emp(ji,jj) ) 317 316 ztc_f = ztc_f - zfact1 * ( psbc_tc(ji,jj,jn) - psbc_tc_b(ji,jj,jn) ) 318 317 ENDIF 319 318 IF( ln_rnf_depth ) THEN 320 319 ! Rivers are not just at the surface must go down to nk_rnf(ji,jj) 321 IF( mikt(ji,jj) <=jk .and.jk <= nk_rnf(ji,jj) ) THEN320 IF( jk <= nk_rnf(ji,jj) ) THEN 322 321 ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj) - rnf(ji,jj) ) ) & 323 322 & * ( e3t_n(ji,jj,jk) / h_rnf(ji,jj) ) 324 323 ENDIF 325 324 ELSE 326 IF( jk == mikt(ji,jj)) THEN ! first level325 IF( jk == 1 ) THEN ! first level 327 326 ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj) - rnf(ji,jj) ) ) 328 327 ENDIF … … 341 340 ! ice shelf 342 341 IF( ll_isf ) THEN 343 ! level fully include in the Losch_2008 ice shelf boundary layer 344 IF ( jk >= misfkt(ji,jj) .AND. jk < misfkb(ji,jj) ) & 345 ztc_f = ztc_f - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) ) & 346 & * e3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) 347 ! level partially include in Losch_2008 ice shelf boundary layer 348 IF ( jk == misfkb(ji,jj) ) & 349 ztc_f = ztc_f - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) ) & 350 & * e3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) * ralpha(ji,jj) 342 IF ( ln_isfcav_mlt ) THEN 343 ! level fully include in the Losch_2008 ice shelf boundary layer 344 IF ( jk >= misfkt_cav(ji,jj) .AND. jk < misfkb_cav(ji,jj) ) THEN 345 ztc_f = ztc_f - zfact1 * ( risf_cav_tsc(ji,jj,jn) - risf_cav_tsc_b(ji,jj,jn) ) & 346 & * e3t_n(ji,jj,jk) / rhisf_tbl_cav(ji,jj) 347 ze3t_f = ze3t_f - zfact2 * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) ) & 348 & * e3t_n(ji,jj,jk) / rhisf_tbl_cav(ji,jj) 349 END IF 350 ! level partially include in Losch_2008 ice shelf boundary layer 351 IF ( jk == misfkb_cav(ji,jj) ) THEN 352 ztc_f = ztc_f - zfact1 * ( risf_cav_tsc(ji,jj,jn) - risf_cav_tsc_b(ji,jj,jn) ) & 353 & * e3t_n(ji,jj,jk) / rhisf_tbl_cav(ji,jj) * rfrac_tbl_cav(ji,jj) 354 ze3t_f = ze3t_f - zfact2 * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) ) & 355 & * e3t_n(ji,jj,jk) / rhisf_tbl_cav(ji,jj) * rfrac_tbl_cav(ji,jj) 356 END IF 357 END IF 358 IF ( ln_isfpar_mlt ) THEN 359 ! level fully include in the Losch_2008 ice shelf boundary layer 360 IF ( jk >= misfkt_par(ji,jj) .AND. jk < misfkb_par(ji,jj) ) THEN 361 ztc_f = ztc_f - zfact1 * ( risf_par_tsc(ji,jj,jn) - risf_par_tsc_b(ji,jj,jn) ) & 362 & * e3t_n(ji,jj,jk) / rhisf_tbl_par(ji,jj) 363 ze3t_f = ze3t_f - zfact2 * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) ) & 364 & * e3t_n(ji,jj,jk) / rhisf_tbl_par(ji,jj) 365 END IF 366 ! level partially include in Losch_2008 ice shelf boundary layer 367 IF ( jk == misfkb_par(ji,jj) ) THEN 368 ztc_f = ztc_f - zfact1 * ( risf_par_tsc(ji,jj,jn) - risf_par_tsc_b(ji,jj,jn) ) & 369 & * e3t_n(ji,jj,jk) / rhisf_tbl_par(ji,jj) * rfrac_tbl_par(ji,jj) 370 ze3t_f = ze3t_f - zfact2 * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) ) & 371 & * e3t_n(ji,jj,jk) / rhisf_tbl_par(ji,jj) * rfrac_tbl_par(ji,jj) 372 END IF 373 END IF 351 374 END IF 352 375 ! -
NEMO/branches/2019/ENHANCE-02_ISF_nemo/src/OCE/TRA/trasbc.F90
r10499 r11395 22 22 USE sbcmod ! ln_rnf 23 23 USE sbcrnf ! River runoff 24 USE sbcisf ! Ice shelf25 USE iscplini ! Ice sheet coupling26 24 USE traqsr ! solar radiation penetration 27 25 USE trd_oce ! trends: ocean variables … … 155 153 ! 156 154 !---------------------------------------- 157 ! Ice Shelf effects (ISF)158 ! tbl treated as in Losh (2008) JGR159 !----------------------------------------160 !161 !!gm BUG ? Why no differences between non-linear and linear free surface ?162 !!gm probably taken into account in r1_hisf_tbl : to be verified163 IF( ln_isf ) THEN164 zfact = 0.5_wp165 DO jj = 2, jpj166 DO ji = fs_2, fs_jpim1167 !168 ikt = misfkt(ji,jj)169 ikb = misfkb(ji,jj)170 !171 ! level fully include in the ice shelf boundary layer172 ! sign - because fwf sign of evapo (rnf sign of precip)173 DO jk = ikt, ikb - 1174 ! compute trend175 tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) &176 & + zfact * ( risf_tsc_b(ji,jj,jp_tem) + risf_tsc(ji,jj,jp_tem) ) &177 & * r1_hisf_tbl(ji,jj)178 END DO179 180 ! level partially include in ice shelf boundary layer181 ! compute trend182 tsa(ji,jj,ikb,jp_tem) = tsa(ji,jj,ikb,jp_tem) &183 & + zfact * ( risf_tsc_b(ji,jj,jp_tem) + risf_tsc(ji,jj,jp_tem) ) &184 & * r1_hisf_tbl(ji,jj) * ralpha(ji,jj)185 186 END DO187 END DO188 END IF189 !190 !----------------------------------------191 155 ! River Runoff effects 192 156 !---------------------------------------- … … 242 206 #endif 243 207 ! 244 !----------------------------------------245 ! Ice Sheet coupling imbalance correction to have conservation246 !----------------------------------------247 !248 IF( ln_iscpl .AND. ln_hsb) THEN ! input of heat and salt due to river runoff249 DO jk = 1,jpk250 DO jj = 2, jpj251 DO ji = fs_2, fs_jpim1252 zdep = 1._wp / e3t_n(ji,jj,jk)253 tsa(ji,jj,jk,jp_tem) = tsa(ji,jj,jk,jp_tem) - htsc_iscpl(ji,jj,jk,jp_tem) * zdep254 tsa(ji,jj,jk,jp_sal) = tsa(ji,jj,jk,jp_sal) - htsc_iscpl(ji,jj,jk,jp_sal) * zdep255 END DO256 END DO257 END DO258 ENDIF259 260 208 IF( l_trdtra ) THEN ! save the horizontal diffusive trends for further diagnostics 261 209 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:)
Note: See TracChangeset
for help on using the changeset viewer.