Changeset 1025 for trunk/NEMO/OPA_SRC/SBC/sbcblk_core.F90
- Timestamp:
- 2008-05-30T13:26:09+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r1000 r1025 227 227 REAL(wp) :: zcoef_qsatw 228 228 REAL(wp), DIMENSION(jpi,jpj) :: zwnd_i, zwnd_j ! wind speed components at T-point 229 REAL(wp), DIMENSION(jpi,jpj) :: zwind_speed_t ! wind speed module at T-point ( = | U10m - Uoce | )230 229 REAL(wp), DIMENSION(jpi,jpj) :: zqsatw ! specific humidity at pst 231 230 REAL(wp), DIMENSION(jpi,jpj) :: zqlw, zqsb ! long wave and sensible heat fluxes … … 247 246 ! 0 Wind components and module at T-point relative to the moving ocean ! 248 247 ! ----------------------------------------------------------------------------- ! 249 250 ! Store the wind speed U10m251 !CDIR NOVERRCHK252 !CDIR COLLAPSE253 DO jj = 1, jpj254 DO ji = 1, jpi ! vect. opt.255 wndm(ji,jj) = SQRT( sf(jp_wndi)%fnow(ji,jj) * sf(jp_wndi)%fnow(ji,jj) &256 & + sf(jp_wndj)%fnow(ji,jj) * sf(jp_wndj)%fnow(ji,jj) )257 ENDDO258 ENDDO259 248 260 249 ! ... components ( U10m - U_oce ) at T-point (unmasked) … … 275 264 !CDIR NOVERRCHK 276 265 !CDIR COLLAPSE 277 zwind_speed_t(:,:) = SQRT( zwnd_i(:,:) * zwnd_i(:,:) &278 & 266 wndm(:,:) = SQRT( zwnd_i(:,:) * zwnd_i(:,:) & 267 & + zwnd_j(:,:) * zwnd_j(:,:) ) * tmask(:,:,1) 279 268 280 269 ! ----------------------------------------------------------------------------- ! … … 300 289 IF( ln_2m ) THEN 301 290 !! If air temp. and spec. hum. are given at different height (2m) than wind (10m) : 302 CALL TURB_CORE_2Z(2.,10., zst , sf(jp_tair)%fnow, & 303 & zqsatw, sf(jp_humi)%fnow, zwind_speed_t, & 304 & Cd, Ch, Ce, zt_zu, zq_zu ) 291 CALL TURB_CORE_2Z(2.,10., zst , sf(jp_tair)%fnow, & 292 & zqsatw, sf(jp_humi)%fnow, wndm, & 293 & Cd , Ch , Ce , & 294 & zt_zu , zq_zu ) 305 295 ELSE 306 296 !! If air temp. and spec. hum. are given at same height than wind (10m) : 307 297 !gm bug? at the compiling phase, add a copy in temporary arrays... ==> check perf 308 ! CALL TURB_CORE_1Z( 10., zst (:,:), sf(jp_tair)%fnow(:,:), 309 ! & zqsatw(:,:), sf(jp_humi)%fnow(:,:), zwind_speed_t(:,:), &310 ! & Cd (:,:), Ch(:,:), Ce(:,:))298 ! CALL TURB_CORE_1Z( 10., zst (:,:), sf(jp_tair)%fnow(:,:), & 299 ! & zqsatw(:,:), sf(jp_humi)%fnow(:,:), wndm(:,:), & 300 ! & Cd (:,:), Ch (:,:), Ce (:,:) ) 311 301 !gm bug 312 CALL TURB_CORE_1Z( 10., zst , sf(jp_tair)%fnow, 313 & zqsatw, sf(jp_humi)%fnow, zwind_speed_t, &314 & Cd , Ch, Ce)302 CALL TURB_CORE_1Z( 10., zst , sf(jp_tair)%fnow, & 303 & zqsatw, sf(jp_humi)%fnow, wndm, & 304 & Cd , Ch , Ce ) 315 305 ENDIF 316 306 317 307 ! ... utau, vtau at U- and V_points, resp. 318 308 ! Note the use of 0.5*(2-umask) in order to unmask the stress along coastlines 319 zwnd_i(:,:) = rhoa * zwind_speed_t(:,:) * Cd(:,:) * zwnd_i(:,:)320 zwnd_j(:,:) = rhoa * zwind_speed_t(:,:) * Cd(:,:) * zwnd_j(:,:)309 zwnd_i(:,:) = rhoa * wndm(:,:) * Cd(:,:) * zwnd_i(:,:) 310 zwnd_j(:,:) = rhoa * wndm(:,:) * Cd(:,:) * zwnd_j(:,:) 321 311 DO jj = 1, jpjm1 322 312 DO ji = 1, fs_jpim1 … … 332 322 IF( ln_2m ) THEN 333 323 ! Values of temp. and hum. adjusted to 10m must be used instead of 2m values 334 zevap(:,:) = MAX( 0.e0, rhoa *Ce(:,:)*( zqsatw(:,:) - zq_zu(:,:) ) * zwind_speed_t(:,:) ) ! Evaporation335 zqsb (:,:) = rhoa*cpa*Ch(:,:)*( zst (:,:) - zt_zu(:,:) ) * zwind_speed_t(:,:) ! Sensible Heat324 zevap(:,:) = MAX( 0.e0, rhoa *Ce(:,:)*( zqsatw(:,:) - zq_zu(:,:) ) * wndm(:,:) ) ! Evaporation 325 zqsb (:,:) = rhoa*cpa*Ch(:,:)*( zst (:,:) - zt_zu(:,:) ) * wndm(:,:) ! Sensible Heat 336 326 ELSE 337 327 !CDIR COLLAPSE 338 zevap(:,:) = MAX( 0.e0, rhoa *Ce(:,:)*( zqsatw(:,:) - sf(jp_humi)%fnow(:,:) ) * zwind_speed_t(:,:) ) ! Evaporation339 !CDIR COLLAPSE 340 zqsb (:,:) = rhoa*cpa*Ch(:,:)*( zst (:,:) - sf(jp_tair)%fnow(:,:) ) * zwind_speed_t(:,:) ! Sensible Heat328 zevap(:,:) = MAX( 0.e0, rhoa *Ce(:,:)*( zqsatw(:,:) - sf(jp_humi)%fnow(:,:) ) * wndm(:,:) ) ! Evaporation 329 !CDIR COLLAPSE 330 zqsb (:,:) = rhoa*cpa*Ch(:,:)*( zst (:,:) - sf(jp_tair)%fnow(:,:) ) * wndm(:,:) ! Sensible Heat 341 331 ENDIF 342 332 !CDIR COLLAPSE … … 344 334 345 335 IF(ln_ctl) THEN 346 CALL prt_ctl( tab2d_1=zqla 347 CALL prt_ctl( tab2d_1=zqsb 348 CALL prt_ctl( tab2d_1=zqlw 349 CALL prt_ctl( tab2d_1=zqsatw 350 CALL prt_ctl( tab2d_1=utau 351 & tab2d_2=vtau , clinfo2=' vtau : ', mask2=vmask )352 CALL prt_ctl( tab2d_1= zwind_speed_t, clinfo1=' blk_oce_core: zwind_speed_t: ')353 CALL prt_ctl( tab2d_1=zst 336 CALL prt_ctl( tab2d_1=zqla , clinfo1=' blk_oce_core: zqla : ', tab2d_2=Ce , clinfo2=' Ce : ' ) 337 CALL prt_ctl( tab2d_1=zqsb , clinfo1=' blk_oce_core: zqsb : ', tab2d_2=Ch , clinfo2=' Ch : ' ) 338 CALL prt_ctl( tab2d_1=zqlw , clinfo1=' blk_oce_core: zqlw : ', tab2d_2=qsr, clinfo2=' qsr : ' ) 339 CALL prt_ctl( tab2d_1=zqsatw, clinfo1=' blk_oce_core: zqsatw : ', tab2d_2=zst, clinfo2=' zst : ' ) 340 CALL prt_ctl( tab2d_1=utau , clinfo1=' blk_oce_core: utau : ', mask1=umask, & 341 & tab2d_2=vtau , clinfo2= ' vtau : ' , mask2=vmask ) 342 CALL prt_ctl( tab2d_1=wndm , clinfo1=' blk_oce_core: wndm : ') 343 CALL prt_ctl( tab2d_1=zst , clinfo1=' blk_oce_core: zst : ') 354 344 ENDIF 355 345
Note: See TracChangeset
for help on using the changeset viewer.