- Timestamp:
- 2016-11-18T08:18:45+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
r6772 r7256 28 28 USE sbc_oce ! surface boundary condition: ocean 29 29 USE sbcrnf ! river runoffs 30 USE sbcisf ! ice shelf melting/freezing 30 31 USE zdf_oce ! ocean vertical mixing 31 32 USE domvvl ! variable volume … … 46 47 USE timing ! Timing 47 48 #if defined key_agrif 48 USE agrif_opa_update49 49 USE agrif_opa_interp 50 50 #endif … … 112 112 ! Update after tracer on domain lateral boundaries 113 113 ! 114 #if defined key_agrif 115 CALL Agrif_tra ! AGRIF zoom boundaries 116 #endif 117 ! 114 118 CALL lbc_lnk( tsa(:,:,:,jp_tem), 'T', 1._wp ) ! local domain boundaries (T-point, unchanged sign) 115 119 CALL lbc_lnk( tsa(:,:,:,jp_sal), 'T', 1._wp ) … … 117 121 #if defined key_bdy 118 122 IF( lk_bdy ) CALL bdy_tra( kt ) ! BDY open boundaries 119 #endif120 #if defined key_agrif121 CALL Agrif_tra ! AGRIF zoom boundaries122 123 #endif 123 124 … … 150 151 ELSE ; CALL tra_nxt_fix( kt, nit000, 'TRA', tsb, tsn, tsa, jpts ) ! fixed volume level 151 152 ENDIF 152 ENDIF 153 ! 154 #if defined key_agrif 155 ! Update tracer at AGRIF zoom boundaries 156 IF( .NOT.Agrif_Root() ) CALL Agrif_Update_Tra( kt ) ! children only 157 #endif 158 ! 159 ! trends computation 153 ENDIF 154 ! 155 ! trends computation 160 156 IF( l_trdtra ) THEN ! trend of the Asselin filter (tb filtered - tb)/dt 161 157 DO jk = 1, jpkm1 … … 281 277 282 278 !! 283 LOGICAL :: ll_tra_hpg, ll_traqsr, ll_rnf ! local logical279 LOGICAL :: ll_tra_hpg, ll_traqsr, ll_rnf, ll_isf ! local logical 284 280 INTEGER :: ji, jj, jk, jn ! dummy loop indices 285 281 REAL(wp) :: zfact1, ztc_a , ztc_n , ztc_b , ztc_f , ztc_d ! local scalar … … 297 293 ll_traqsr = ln_traqsr ! active tracers case and solar penetration 298 294 ll_rnf = ln_rnf ! active tracers case and river runoffs 295 IF (nn_isf .GE. 1) THEN 296 ll_isf = .TRUE. ! active tracers case and ice shelf melting/freezing 297 ELSE 298 ll_isf = .FALSE. 299 END IF 299 300 ELSE 300 301 ll_tra_hpg = .FALSE. ! passive tracers case or NO semi-implicit hpg 301 302 ll_traqsr = .FALSE. ! active tracers case and NO solar penetration 302 303 ll_rnf = .FALSE. ! passive tracers or NO river runoffs 304 ll_isf = .FALSE. ! passive tracers or NO ice shelf melting/freezing 303 305 ENDIF 304 306 ! … … 323 325 ztc_f = ztc_n + atfp * ztc_d 324 326 ! 325 IF( jk == 1 ) THEN ! first level 326 ze3t_f = ze3t_f - zfact2 * ( emp_b(ji,jj) - emp(ji,jj) + rnf(ji,jj) - rnf_b(ji,jj) ) 327 IF( jk == mikt(ji,jj) ) THEN ! first level 328 ze3t_f = ze3t_f - zfact2 * ( (emp_b(ji,jj) - emp(ji,jj) ) & 329 & - (rnf_b(ji,jj) - rnf(ji,jj) ) & 330 & + (fwfisf_b(ji,jj) - fwfisf(ji,jj)) ) 327 331 ztc_f = ztc_f - zfact1 * ( psbc_tc(ji,jj,jn) - psbc_tc_b(ji,jj,jn) ) 328 332 ENDIF 329 333 330 IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr ) & ! solar penetration (temperature only) 334 ! solar penetration (temperature only) 335 IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr ) & 331 336 & ztc_f = ztc_f - zfact1 * ( qsr_hc(ji,jj,jk) - qsr_hc_b(ji,jj,jk) ) 332 337 333 IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) ) & ! river runoffs 338 ! river runoff 339 IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) ) & 334 340 & ztc_f = ztc_f - zfact1 * ( rnf_tsc(ji,jj,jn) - rnf_tsc_b(ji,jj,jn) ) & 335 341 & * fse3t_n(ji,jj,jk) / h_rnf(ji,jj) 342 343 ! ice shelf 344 IF( ll_isf ) THEN 345 ! level fully include in the Losch_2008 ice shelf boundary layer 346 IF ( jk >= misfkt(ji,jj) .AND. jk < misfkb(ji,jj) ) & 347 ztc_f = ztc_f - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) ) & 348 & * fse3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) 349 ! level partially include in Losch_2008 ice shelf boundary layer 350 IF ( jk == misfkb(ji,jj) ) & 351 ztc_f = ztc_f - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) ) & 352 & * fse3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) * ralpha(ji,jj) 353 END IF 336 354 337 355 ze3t_f = 1.e0 / ze3t_f
Note: See TracChangeset
for help on using the changeset viewer.