- Timestamp:
- 2013-11-21T15:59:57+01:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_MERGE_2013/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r4245 r4306 49 49 PUBLIC sbc_blk_core ! routine called in sbcmod module 50 50 PUBLIC blk_ice_core ! routine called in sbc_ice_lim module 51 PUBLIC blk_ice_meanqsr ! routine called in sbc_ice_lim module 51 52 PUBLIC turb_core_2z ! routine calles in sbcblk_mfs module 52 53 … … 189 190 ! ! compute the surface ocean fluxes using CORE bulk formulea 190 191 IF( MOD( kt - 1, nn_fsbc ) == 0 ) CALL blk_oce_core( kt, sf, sst_m, ssu_m, ssv_m ) 192 193 ! If diurnal cycle is activated, compute a daily mean short waves flux for biogeochemistery 194 IF( ltrcdm2dc ) CALL blk_bio_meanqsr 191 195 192 196 #if defined key_cice … … 438 442 ! 439 443 END SUBROUTINE blk_oce_core 440 444 445 SUBROUTINE blk_bio_meanqsr 446 !!--------------------------------------------------------------------- 447 !! *** ROUTINE blk_bio_meanqsr 448 !! 449 !! ** Purpose : provide daily qsr_mean for PISCES when 450 !! analytic diurnal cycle is applied in physic 451 !! 452 !! ** Method : add part where there is no ice 453 !! 454 !!--------------------------------------------------------------------- 455 IF( nn_timing == 1 ) CALL timing_start('blk_bio_meanqsr') 456 457 qsr_mean(:,:) = (1. - albo ) * sf(jp_qsr)%fnow(:,:,1) 458 459 IF( nn_timing == 1 ) CALL timing_stop('blk_bio_meanqsr') 460 461 END SUBROUTINE blk_bio_meanqsr 462 463 464 SUBROUTINE blk_ice_meanqsr(palb,p_qsr_mean,pdim) 465 !!--------------------------------------------------------------------- 466 !! 467 !! ** Purpose : provide the daily qsr_mean over sea_ice for PISCES when 468 !! analytic diurnal cycle is applied in physic 469 !! 470 !! ** Method : compute qsr 471 !! 472 !!--------------------------------------------------------------------- 473 REAL(wp), DIMENSION(:,:,:), INTENT(in ) :: palb ! ice albedo (clear sky) (alb_ice_cs) [%] 474 REAL(wp), DIMENSION(:,:,:), INTENT( out) :: p_qsr_mean ! solar heat flux over ice (T-point) [W/m2] 475 INTEGER , INTENT(in ) :: pdim ! number of ice categories 476 !! 477 INTEGER :: ijpl ! number of ice categories (size of 3rd dim of input arrays) 478 INTEGER :: ji, jj, jl ! dummy loop indices 479 REAL(wp) :: zztmp ! temporary variable 480 !!--------------------------------------------------------------------- 481 IF( nn_timing == 1 ) CALL timing_start('blk_ice_meanqsr') 482 ! 483 ijpl = pdim ! number of ice categories 484 zztmp = 1. / ( 1. - albo ) 485 ! ! ========================== ! 486 DO jl = 1, ijpl ! Loop over ice categories ! 487 ! ! ========================== ! 488 DO jj = 1 , jpj 489 DO ji = 1, jpi 490 p_qsr_mean(ji,jj,jl) = zztmp * ( 1. - palb(ji,jj,jl) ) * qsr_mean(ji,jj) 491 END DO 492 END DO 493 END DO 494 ! 495 IF( nn_timing == 1 ) CALL timing_stop('blk_ice_meanqsr') 496 ! 497 END SUBROUTINE blk_ice_meanqsr 498 441 499 442 500 SUBROUTINE blk_ice_core( pst , pui , pvi , palb , &
Note: See TracChangeset
for help on using the changeset viewer.