- Timestamp:
- 2011-06-27T13:18:25+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/OPA_SRC/ZDF/zdfkpp.F90
r2715 r2789 206 206 !! the equation number. (LMD94, here after) 207 207 !!---------------------------------------------------------------------- 208 #if defined key_zdfddm209 208 USE oce , zviscos => ua ! temp. array for viscosities use ua as workspace 210 USE oce , zdiffut => ta ! temp. array for diffusivities use sa as workspace 211 USE oce , zdiffus => sa ! temp. array for diffusivities use sa as workspace 212 #else 213 USE oce , zviscos => ua ! temp. array for viscosities use ua as workspace 214 USE oce , zdiffut => ta ! temp. array for diffusivities use sa as workspace 215 #endif 209 USE oce , zdiffut => va ! temp. array for diffusivities use sa as workspace 216 210 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released, wrk_in_use_xz, wrk_not_released_xz 217 211 USE wrk_nemo, ONLY: zBo => wrk_2d_1, & ! Surface buoyancy forcing, … … 229 223 zblct => wrk_xz_2 ! diffusivities/viscosities 230 224 #if defined key_zdfddm 231 USE wrk_nemo, ONLY: zblcs => wrk_xz_3 225 USE wrk_nemo, ONLY: zdiffus => wrk_3d_1 226 USE wrk_nemo, ONLY: zblcs => wrk_xz_3 232 227 #endif 233 228 !! … … 270 265 REAL(wp), POINTER, DIMENSION(:,:) :: zdifs 271 266 REAL(wp), POINTER, DIMENSION(:) :: za2s, za3s, zkmps 272 REAL(wp) :: zkm1s267 REAL(wp) :: zkm1s 273 268 #endif 274 269 !!-------------------------------------------------------------------- … … 276 271 IF( wrk_in_use(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14) .OR. & 277 272 wrk_in_use(2, 1,2,3,4,5,6,7,8,9,10,11) .OR. & 273 wrk_in_use(3, 1) .OR. & 278 274 wrk_in_use_xz(1,2,3) ) THEN 279 275 CALL ctl_stop('zdf_kpp : requested workspace arrays unavailable.') ; RETURN … … 369 365 ! only retains positive value of rrau 370 366 zrrau = MAX( rrau(ji,jj,jk), epsln ) 371 zds = sn(ji,jj,jk-1) - sn(ji,jj,jk)367 zds = tsn(ji,jj,jk-1,jp_sal) - tsn(ji,jj,jk,jp_sal) 372 368 IF( zrrau > 1. .AND. zds > 0.) THEN 373 369 ! … … 418 414 DO ji = fs_2, fs_jpim1 419 415 IF( nn_eos < 1) THEN 420 zt = t n(ji,jj,1)421 zs = sn(ji,jj,1) - 35.0416 zt = tsn(ji,jj,1,jp_tem) 417 zs = tsn(ji,jj,1,jp_sal) - 35.0 422 418 zh = fsdept(ji,jj,1) 423 419 ! potential volumic mass … … 449 445 450 446 zthermal = zbeta * zalbet / ( rcp * zrhos + epsln ) 451 zhalin = zbeta * sn(ji,jj,1) * rcs447 zhalin = zbeta * tsn(ji,jj,1,jp_sal) * rcs 452 448 ELSE 453 449 zrhos = rhop(ji,jj,1) + rau0 * ( 1. - tmask(ji,jj,1) ) 454 450 zthermal = rn_alpha / ( rcp * zrhos + epsln ) 455 zhalin = rn_beta * sn(ji,jj,1) * rcs451 zhalin = rn_beta * tsn(ji,jj,1,jp_sal) * rcs 456 452 ENDIF 457 453 ! Radiative surface buoyancy force … … 462 458 wt0(ji,jj) = - ( qsr(ji,jj) + qns(ji,jj) )* ro0cpr * tmask(ji,jj,1) 463 459 ! Surface salinity flux for non-local term 464 ws0(ji,jj) = - ( ( emps(ji,jj)-rnf(ji,jj) ) * sn(ji,jj,1) * rcs ) * tmask(ji,jj,1)460 ws0(ji,jj) = - ( ( emps(ji,jj)-rnf(ji,jj) ) * tsn(ji,jj,1,jp_sal) * rcs ) * tmask(ji,jj,1) 465 461 ENDDO 466 462 ENDDO … … 543 539 ! zref = gdept(1) 544 540 zref = fsdept(ji,jj,1) 545 zt = t n(ji,jj,1)546 zs = sn(ji,jj,1)541 zt = tsn(ji,jj,1,jp_tem) 542 zs = tsn(ji,jj,1,jp_sal) 547 543 zrh = rhop(ji,jj,1) 548 544 zu = ( ub(ji,jj,1) + ub(ji - 1,jj ,1) ) / MAX( 1. , umask(ji,jj,1) + umask(ji - 1,jj ,1) ) … … 556 552 ! vertically integration over the upper epsilon*gdept(jk) ; del () array is computed once in zdf_kpp_init 557 553 DO jm = 1, jpkm1 558 zt = zt + del(jk,jm) * t n(ji,jj,jm)559 zs = zs + del(jk,jm) * sn(ji,jj,jm)554 zt = zt + del(jk,jm) * tsn(ji,jj,jm,jp_tem) 555 zs = zs + del(jk,jm) * tsn(ji,jj,jm,jp_sal) 560 556 zu = zu + 0.5 * del(jk,jm) & 561 557 & * ( ub(ji,jj,jm) + ub(ji - 1,jj,jm) ) & … … 567 563 END DO 568 564 #endif 569 zsr = SQRT( ABS( sn(ji,jj,jk) ) )565 zsr = SQRT( ABS( tsn(ji,jj,jk,jp_sal) ) ) 570 566 ! depth 571 567 zh = fsdept(ji,jj,jk) … … 1234 1230 ENDIF 1235 1231 1236 IF( wrk_not_released(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14) .OR. 1237 wrk_not_released(2, 1,2,3,4,5,6,7,8,9,10,11) .OR. 1238 wrk_not_released _xz(1,2,3) )&1239 CALL ctl_stop('zdf_kpp : failed to release workspace arrays')1232 IF( wrk_not_released(1, 1,2,3,4,5,6,7,8,9,10,11,12,13,14) .OR. & 1233 wrk_not_released(2, 1,2,3,4,5,6,7,8,9,10,11) .OR. & 1234 wrk_not_released(3, 1) .OR. & 1235 wrk_not_released_xz(1,2,3) ) CALL ctl_stop('zdf_kpp : failed to release workspace arrays') 1240 1236 ! 1241 1237 END SUBROUTINE zdf_kpp
Note: See TracChangeset
for help on using the changeset viewer.