- Timestamp:
- 2016-04-20T11:33:10+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
r6486 r6487 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 … … 110 110 ! Update after tracer on domain lateral boundaries 111 111 ! 112 #if defined key_agrif 113 CALL Agrif_tra ! AGRIF zoom boundaries 114 #endif 115 ! 112 116 CALL lbc_lnk( tsa(:,:,:,jp_tem), 'T', 1._wp ) ! local domain boundaries (T-point, unchanged sign) 113 117 CALL lbc_lnk( tsa(:,:,:,jp_sal), 'T', 1._wp ) … … 115 119 #if defined key_bdy 116 120 IF( lk_bdy ) CALL bdy_tra( kt ) ! BDY open boundaries 117 #endif118 #if defined key_agrif119 CALL Agrif_tra ! AGRIF zoom boundaries120 121 #endif 121 122 … … 148 149 ELSE ; CALL tra_nxt_fix( kt, nit000, 'TRA', tsb, tsn, tsa, jpts ) ! fixed volume level 149 150 ENDIF 150 ENDIF 151 ! 152 #if defined key_agrif 153 ! Update tracer at AGRIF zoom boundaries 154 IF( .NOT.Agrif_Root() ) CALL Agrif_Update_Tra( kt ) ! children only 155 #endif 156 ! 157 ! trends computation 151 ENDIF 152 ! 153 ! trends computation 158 154 IF( l_trdtra ) THEN ! trend of the Asselin filter (tb filtered - tb)/dt 159 155 DO jk = 1, jpkm1 … … 279 275 280 276 !! 281 LOGICAL :: ll_tra_hpg, ll_traqsr, ll_rnf ! local logical277 LOGICAL :: ll_tra_hpg, ll_traqsr, ll_rnf, ll_isf ! local logical 282 278 INTEGER :: ji, jj, jk, jn ! dummy loop indices 283 279 REAL(wp) :: zfact1, ztc_a , ztc_n , ztc_b , ztc_f , ztc_d ! local scalar … … 295 291 ll_traqsr = ln_traqsr ! active tracers case and solar penetration 296 292 ll_rnf = ln_rnf ! active tracers case and river runoffs 293 IF (nn_isf .GE. 1) THEN 294 ll_isf = .TRUE. ! active tracers case and ice shelf melting/freezing 295 ELSE 296 ll_isf = .FALSE. 297 END IF 297 298 ELSE 298 299 ll_tra_hpg = .FALSE. ! passive tracers case or NO semi-implicit hpg 299 300 ll_traqsr = .FALSE. ! active tracers case and NO solar penetration 300 301 ll_rnf = .FALSE. ! passive tracers or NO river runoffs 302 ll_isf = .FALSE. ! passive tracers or NO ice shelf melting/freezing 301 303 ENDIF 302 304 ! … … 321 323 ztc_f = ztc_n + atfp * ztc_d 322 324 ! 323 IF( jk == 1 ) THEN ! first level 324 ze3t_f = ze3t_f - zfact2 * ( emp_b(ji,jj) - emp(ji,jj) + rnf(ji,jj) - rnf_b(ji,jj) ) 325 IF( jk == mikt(ji,jj) ) THEN ! first level 326 ze3t_f = ze3t_f - zfact2 * ( (emp_b(ji,jj) - emp(ji,jj) ) & 327 & - (rnf_b(ji,jj) - rnf(ji,jj) ) & 328 & + (fwfisf_b(ji,jj) - fwfisf(ji,jj)) ) 325 329 ztc_f = ztc_f - zfact1 * ( psbc_tc(ji,jj,jn) - psbc_tc_b(ji,jj,jn) ) 326 330 ENDIF 327 331 328 IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr ) & ! solar penetration (temperature only) 332 ! solar penetration (temperature only) 333 IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr ) & 329 334 & ztc_f = ztc_f - zfact1 * ( qsr_hc(ji,jj,jk) - qsr_hc_b(ji,jj,jk) ) 330 335 331 IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) ) & ! river runoffs 336 ! river runoff 337 IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) ) & 332 338 & ztc_f = ztc_f - zfact1 * ( rnf_tsc(ji,jj,jn) - rnf_tsc_b(ji,jj,jn) ) & 333 339 & * fse3t_n(ji,jj,jk) / h_rnf(ji,jj) 340 341 ! ice shelf 342 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 & * fse3t_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 & * fse3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) * ralpha(ji,jj) 351 END IF 334 352 335 353 ze3t_f = 1.e0 / ze3t_f
Note: See TracChangeset
for help on using the changeset viewer.