Changeset 12150 for NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA
- Timestamp:
- 2019-12-10T15:16:33+01:00 (5 years ago)
- Location:
- NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA
- Files:
-
- 3 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/eosbn2.F90
r11960 r12150 29 29 !! eos_insitu_pot: Compute the insitu and surface referenced potential volumic mass 30 30 !! eos_insitu_2d : Compute the in situ density for 2d fields 31 !! bn2 : Compute the Brunt-Vaisala frequency32 31 !! bn2 : compute the Brunt-Vaisala frequency 33 32 !! eos_pt_from_ct: compute the potential temperature from the Conservative Temperature -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/traatf.F90
r11949 r12150 29 29 USE sbc_oce ! surface boundary condition: ocean 30 30 USE sbcrnf ! river runoffs 31 USE sbcisf! ice shelf melting31 USE isf_oce ! ice shelf melting 32 32 USE zdf_oce ! ocean vertical mixing 33 33 USE domvvl ! variable volume … … 302 302 ! 303 303 IF( jk == mikt(ji,jj) ) THEN ! first level 304 ze3t_f = ze3t_f - zfact2 * ( (emp_b(ji,jj) - emp(ji,jj) ) & 305 & + (fwfisf_b(ji,jj) - fwfisf(ji,jj)) ) 304 ze3t_f = ze3t_f - zfact2 * ( emp_b(ji,jj) - emp(ji,jj) ) 306 305 ztc_f = ztc_f - zfact1 * ( psbc_tc(ji,jj,jn) - psbc_tc_b(ji,jj,jn) ) 307 306 ENDIF 308 307 IF( ln_rnf_depth ) THEN 309 308 ! Rivers are not just at the surface must go down to nk_rnf(ji,jj) 310 IF( mikt(ji,jj) <=jk .and.jk <= nk_rnf(ji,jj) ) THEN309 IF( jk <= nk_rnf(ji,jj) ) THEN 311 310 ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj) - rnf(ji,jj) ) ) & 312 311 & * ( e3t(ji,jj,jk,Kmm) / h_rnf(ji,jj) ) 313 312 ENDIF 314 313 ELSE 315 IF( jk == mikt(ji,jj)) THEN ! first level314 IF( jk == 1 ) THEN ! first level 316 315 ze3t_f = ze3t_f - zfact2 * ( - (rnf_b(ji,jj) - rnf(ji,jj) ) ) 317 316 ENDIF 318 317 ENDIF 318 ! 319 IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) ) & 320 & ztc_f = ztc_f - zfact1 * ( rnf_tsc(ji,jj,jn) - rnf_tsc_b(ji,jj,jn) ) & 321 & * e3t(ji,jj,jk,Kmm) / h_rnf(ji,jj) 319 322 320 323 ! … … 323 326 & ztc_f = ztc_f - zfact1 * ( qsr_hc(ji,jj,jk) - qsr_hc_b(ji,jj,jk) ) 324 327 ! 325 ! river runoff 326 IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) ) & 327 & ztc_f = ztc_f - zfact1 * ( rnf_tsc(ji,jj,jn) - rnf_tsc_b(ji,jj,jn) ) & 328 & * e3t(ji,jj,jk,Kmm) / h_rnf(ji,jj) 329 ! 328 ! 330 329 ! ice shelf 331 330 IF( ll_isf ) THEN 332 ! level fully include in the Losch_2008 ice shelf boundary layer 333 IF ( jk >= misfkt(ji,jj) .AND. jk < misfkb(ji,jj) ) & 334 ztc_f = ztc_f - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) ) & 335 & * e3t(ji,jj,jk,Kmm) * r1_hisf_tbl (ji,jj) 336 ! level partially include in Losch_2008 ice shelf boundary layer 337 IF ( jk == misfkb(ji,jj) ) & 338 ztc_f = ztc_f - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) ) & 339 & * e3t(ji,jj,jk,Kmm) * r1_hisf_tbl (ji,jj) * ralpha(ji,jj) 331 ! 332 ! melt in the cavity 333 IF ( ln_isfcav_mlt ) THEN 334 ! level fully include in the Losch_2008 ice shelf boundary layer 335 IF ( jk >= misfkt_cav(ji,jj) .AND. jk < misfkb_cav(ji,jj) ) THEN 336 ztc_f = ztc_f - zfact1 * ( risf_cav_tsc(ji,jj,jn) - risf_cav_tsc_b(ji,jj,jn) ) & 337 & * e3t(ji,jj,jk,Kmm) / rhisf_tbl_cav(ji,jj) 338 ze3t_f = ze3t_f - zfact2 * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) ) & 339 & * e3t(ji,jj,jk,Kmm) / rhisf_tbl_cav(ji,jj) 340 END IF 341 ! level partially include in Losch_2008 ice shelf boundary layer 342 IF ( jk == misfkb_cav(ji,jj) ) THEN 343 ztc_f = ztc_f - zfact1 * ( risf_cav_tsc(ji,jj,jn) - risf_cav_tsc_b(ji,jj,jn) ) & 344 & * e3t(ji,jj,jk,Kmm) / rhisf_tbl_cav(ji,jj) * rfrac_tbl_cav(ji,jj) 345 ze3t_f = ze3t_f - zfact2 * ( fwfisf_cav_b(ji,jj) - fwfisf_cav(ji,jj) ) & 346 & * e3t(ji,jj,jk,Kmm) / rhisf_tbl_cav(ji,jj) * rfrac_tbl_cav(ji,jj) 347 END IF 348 END IF 349 ! 350 ! parametrised melt (cavity closed) 351 IF ( ln_isfpar_mlt ) THEN 352 ! level fully include in the Losch_2008 ice shelf boundary layer 353 IF ( jk >= misfkt_par(ji,jj) .AND. jk < misfkb_par(ji,jj) ) THEN 354 ztc_f = ztc_f - zfact1 * ( risf_par_tsc(ji,jj,jn) - risf_par_tsc_b(ji,jj,jn) ) & 355 & * e3t(ji,jj,jk,Kmm) / rhisf_tbl_par(ji,jj) 356 ze3t_f = ze3t_f - zfact2 * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) ) & 357 & * e3t(ji,jj,jk,Kmm) / rhisf_tbl_par(ji,jj) 358 END IF 359 ! level partially include in Losch_2008 ice shelf boundary layer 360 IF ( 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(ji,jj,jk,Kmm) / rhisf_tbl_par(ji,jj) * rfrac_tbl_par(ji,jj) 363 ze3t_f = ze3t_f - zfact2 * ( fwfisf_par_b(ji,jj) - fwfisf_par(ji,jj) ) & 364 & * e3t(ji,jj,jk,Kmm) / rhisf_tbl_par(ji,jj) * rfrac_tbl_par(ji,jj) 365 END IF 366 END IF 367 ! 368 ! ice sheet coupling correction 369 IF ( ln_isfcpl ) THEN 370 ! 371 ! at kt = nit000, risfcpl_vol_n = 0 and risfcpl_vol_b = risfcpl_vol so contribution nul 372 IF ( ln_rstart .AND. kt == nit000+1 ) THEN 373 ztc_f = ztc_f + zfact1 * risfcpl_tsc(ji,jj,jk,jn) * r1_e1e2t(ji,jj) 374 ze3t_f = ze3t_f - zfact1 * risfcpl_vol(ji,jj,jk ) * r1_e1e2t(ji,jj) 375 END IF 376 ! 377 END IF 378 ! 340 379 END IF 341 380 ! -
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/TRA/trasbc.F90
r11949 r12150 10 10 !! - ! 2010-09 (C. Ethe, G. Madec) Merge TRA-TRC 11 11 !! 3.6 ! 2014-11 (P. Mathiot) isf melting forcing 12 !! 4.1 ! 2019-09 (P. Mathiot) isf moved in traisf 12 13 !!---------------------------------------------------------------------- 13 14 … … 22 23 USE sbcmod ! ln_rnf 23 24 USE sbcrnf ! River runoff 24 USE sbcisf ! Ice shelf25 USE iscplini ! Ice sheet coupling26 25 USE traqsr ! solar radiation penetration 27 26 USE trd_oce ! trends: ocean variables … … 62 61 !! (1) Fext, external forcing (i.e. flux through the (air+ice)-sea interface); 63 62 !! (2) Fwe , tracer carried with the water that is exchanged with air+ice. 64 !! The input forcing fields (emp, rnf, sfx , isf) contain Fext+Fwe,63 !! The input forcing fields (emp, rnf, sfx) contain Fext+Fwe, 65 64 !! they are simply added to the tracer trend (ts(Krhs)). 66 65 !! In linear free surface case (ln_linssh=T), the volume of the … … 155 154 IF( lwxios ) CALL iom_swap( cxios_context ) 156 155 ENDIF 157 !158 !----------------------------------------159 ! Ice Shelf effects (ISF)160 ! tbl treated as in Losh (2008) JGR161 !----------------------------------------162 !163 !!gm BUG ? Why no differences between non-linear and linear free surface ?164 !!gm probably taken into account in r1_hisf_tbl : to be verified165 IF( ln_isf ) THEN166 zfact = 0.5_wp167 DO jj = 2, jpj168 DO ji = fs_2, fs_jpim1169 !170 ikt = misfkt(ji,jj)171 ikb = misfkb(ji,jj)172 !173 ! level fully include in the ice shelf boundary layer174 ! sign - because fwf sign of evapo (rnf sign of precip)175 DO jk = ikt, ikb - 1176 ! compute trend177 pts(ji,jj,jk,jp_tem,Krhs) = pts(ji,jj,jk,jp_tem,Krhs) &178 & + zfact * ( risf_tsc_b(ji,jj,jp_tem) + risf_tsc(ji,jj,jp_tem) ) &179 & * r1_hisf_tbl(ji,jj)180 END DO181 182 ! level partially include in ice shelf boundary layer183 ! compute trend184 pts(ji,jj,ikb,jp_tem,Krhs) = pts(ji,jj,ikb,jp_tem,Krhs) &185 & + zfact * ( risf_tsc_b(ji,jj,jp_tem) + risf_tsc(ji,jj,jp_tem) ) &186 & * r1_hisf_tbl(ji,jj) * ralpha(ji,jj)187 188 END DO189 END DO190 END IF191 156 ! 192 157 !---------------------------------------- … … 244 209 #endif 245 210 ! 246 !----------------------------------------247 ! Ice Sheet coupling imbalance correction to have conservation248 !----------------------------------------249 !250 IF( ln_iscpl .AND. ln_hsb) THEN ! input of heat and salt due to river runoff251 DO jk = 1,jpk252 DO jj = 2, jpj253 DO ji = fs_2, fs_jpim1254 zdep = 1._wp / e3t(ji,jj,jk,Kmm)255 pts(ji,jj,jk,jp_tem,Krhs) = pts(ji,jj,jk,jp_tem,Krhs) - htsc_iscpl(ji,jj,jk,jp_tem) * zdep256 pts(ji,jj,jk,jp_sal,Krhs) = pts(ji,jj,jk,jp_sal,Krhs) - htsc_iscpl(ji,jj,jk,jp_sal) * zdep257 END DO258 END DO259 END DO260 ENDIF261 262 211 IF( l_trdtra ) THEN ! save the horizontal diffusive trends for further diagnostics 263 212 ztrdt(:,:,:) = pts(:,:,:,jp_tem,Krhs) - ztrdt(:,:,:)
Note: See TracChangeset
for help on using the changeset viewer.