- Timestamp:
- 2015-11-20T09:39:06+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4621_NOC4_BDY_VERT_INTERP/NEMOGCM/NEMO/OPA_SRC/TRA/tranxt.F90
r5620 r5901 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 … … 36 37 USE traqsr ! penetrative solar radiation (needed for nksr) 37 38 USE phycst ! physical constant 38 USE ldftra_oce ! lateral physics on tracers 39 USE ldftra ! lateral physics on tracers 40 USE ldfslp 39 41 USE bdy_oce ! BDY open boundary condition variables 40 42 USE bdytra ! open boundary condition (bdy_tra routine) … … 46 48 USE timing ! Timing 47 49 #if defined key_agrif 48 USE agrif_opa_update49 50 USE agrif_opa_interp 50 51 #endif … … 110 111 ! Update after tracer on domain lateral boundaries 111 112 ! 113 #if defined key_agrif 114 CALL Agrif_tra ! AGRIF zoom boundaries 115 #endif 116 ! 112 117 CALL lbc_lnk( tsa(:,:,:,jp_tem), 'T', 1._wp ) ! local domain boundaries (T-point, unchanged sign) 113 118 CALL lbc_lnk( tsa(:,:,:,jp_sal), 'T', 1._wp ) … … 115 120 #if defined key_bdy 116 121 IF( lk_bdy ) CALL bdy_tra( kt ) ! BDY open boundaries 117 #endif118 #if defined key_agrif119 CALL Agrif_tra ! AGRIF zoom boundaries120 122 #endif 121 123 … … 148 150 ELSE ; CALL tra_nxt_fix( kt, nit000, 'TRA', tsb, tsn, tsa, jpts ) ! fixed volume level 149 151 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 152 ENDIF 156 153 ! 157 154 ! trends computation … … 279 276 280 277 !! 281 LOGICAL :: ll_tra_hpg, ll_traqsr, ll_rnf ! local logical278 LOGICAL :: ll_tra_hpg, ll_traqsr, ll_rnf, ll_isf ! local logical 282 279 INTEGER :: ji, jj, jk, jn ! dummy loop indices 283 280 REAL(wp) :: zfact1, ztc_a , ztc_n , ztc_b , ztc_f , ztc_d ! local scalar … … 295 292 ll_traqsr = ln_traqsr ! active tracers case and solar penetration 296 293 ll_rnf = ln_rnf ! active tracers case and river runoffs 294 IF (nn_isf .GE. 1) THEN 295 ll_isf = .TRUE. ! active tracers case and ice shelf melting/freezing 296 ELSE 297 ll_isf = .FALSE. 298 END IF 297 299 ELSE 298 300 ll_tra_hpg = .FALSE. ! passive tracers case or NO semi-implicit hpg 299 301 ll_traqsr = .FALSE. ! active tracers case and NO solar penetration 300 302 ll_rnf = .FALSE. ! passive tracers or NO river runoffs 303 ll_isf = .FALSE. ! passive tracers or NO ice shelf melting/freezing 301 304 ENDIF 302 305 ! … … 321 324 ztc_f = ztc_n + atfp * ztc_d 322 325 ! 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) ) 326 IF( jk == mikt(ji,jj) ) THEN ! first level 327 ze3t_f = ze3t_f - zfact2 * ( (emp_b(ji,jj) - emp(ji,jj) ) & 328 & - (rnf_b(ji,jj) - rnf(ji,jj) ) & 329 & + (fwfisf_b(ji,jj) - fwfisf(ji,jj)) ) 325 330 ztc_f = ztc_f - zfact1 * ( psbc_tc(ji,jj,jn) - psbc_tc_b(ji,jj,jn) ) 326 331 ENDIF 327 332 328 IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr ) & ! solar penetration (temperature only) 333 ! solar penetration (temperature only) 334 IF( ll_traqsr .AND. jn == jp_tem .AND. jk <= nksr ) & 329 335 & ztc_f = ztc_f - zfact1 * ( qsr_hc(ji,jj,jk) - qsr_hc_b(ji,jj,jk) ) 330 336 331 IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) ) & ! river runoffs 337 ! river runoff 338 IF( ll_rnf .AND. jk <= nk_rnf(ji,jj) ) & 332 339 & ztc_f = ztc_f - zfact1 * ( rnf_tsc(ji,jj,jn) - rnf_tsc_b(ji,jj,jn) ) & 333 340 & * fse3t_n(ji,jj,jk) / h_rnf(ji,jj) 341 342 ! ice shelf 343 IF( ll_isf ) THEN 344 ! level fully include in the Losch_2008 ice shelf boundary layer 345 IF ( jk >= misfkt(ji,jj) .AND. jk < misfkb(ji,jj) ) & 346 ztc_f = ztc_f - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) ) & 347 & * fse3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) 348 ! level partially include in Losch_2008 ice shelf boundary layer 349 IF ( jk == misfkb(ji,jj) ) & 350 ztc_f = ztc_f - zfact1 * ( risf_tsc(ji,jj,jn) - risf_tsc_b(ji,jj,jn) ) & 351 & * fse3t_n(ji,jj,jk) * r1_hisf_tbl (ji,jj) * ralpha(ji,jj) 352 END IF 334 353 335 354 ze3t_f = 1.e0 / ze3t_f
Note: See TracChangeset
for help on using the changeset viewer.