New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 5236 for branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90 – NEMO

Ignore:
Timestamp:
2015-04-24T14:08:11+02:00 (9 years ago)
Author:
cetlod
Message:

NEMOGCM_dev_r5204_CNRS_PISCES_dcy : update routines according to the new strategy, see ticket #1484

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5204_CNRS_PISCES_dcy/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90

    r5206 r5236  
    2222   !!   blk_oce_core    : computes momentum, heat and freshwater fluxes over ocean 
    2323   !!   blk_ice_core    : computes momentum, heat and freshwater fluxes over ice 
    24    !!   blk_bio_meanqsr : compute daily mean short wave radiation over the ocean 
    25    !!   blk_ice_meanqsr : compute daily mean short wave radiation over the ice 
    2624   !!   turb_core_2z    : Computes turbulent transfert coefficients 
    2725   !!   cd_neutral_10m  : Estimate of the neutral drag coefficient at 10m 
     
    5250   PUBLIC   sbc_blk_core         ! routine called in sbcmod module 
    5351   PUBLIC   blk_ice_core         ! routine called in sbc_ice_lim module 
    54    PUBLIC   blk_ice_meanqsr      ! routine called in sbc_ice_lim module 
    5552   PUBLIC   turb_core_2z         ! routine calles in sbcblk_mfs module 
    5653 
     
    195192      !                                            ! compute the surface ocean fluxes using CORE bulk formulea 
    196193      IF( MOD( kt - 1, nn_fsbc ) == 0 )   CALL blk_oce_core( kt, sf, sst_m, ssu_m, ssv_m ) 
    197  
    198       IF( l_trcdm2dc )   CALL blk_bio_meanqsr  ! diurnal cycle : daily mean short waves flux for biogeochemistery 
    199194 
    200195#if defined key_cice 
     
    301296      ELSE                  ;   qsr(:,:) = zztmp *          sf(jp_qsr)%fnow(:,:,1)   * tmask(:,:,1) 
    302297      ENDIF 
     298 
    303299      zqlw(:,:) = (  sf(jp_qlw)%fnow(:,:,1) - Stef * zst(:,:)*zst(:,:)*zst(:,:)*zst(:,:)  ) * tmask(:,:,1)   ! Long  Wave 
    304300      ! ----------------------------------------------------------------------------- ! 
     
    610606      ! 
    611607   END SUBROUTINE blk_ice_core 
    612  
    613  
    614    SUBROUTINE blk_bio_meanqsr 
    615       !!--------------------------------------------------------------------- 
    616       !!                     ***  ROUTINE blk_bio_meanqsr 
    617       !!                      
    618       !! ** Purpose :   provide daily qsr_mean for PISCES when 
    619       !!                analytic diurnal cycle is applied in physic 
    620       !!                 
    621       !! ** Method  :   add part where there is no ice 
    622       !!  
    623       !!--------------------------------------------------------------------- 
    624       IF( nn_timing == 1 )  CALL timing_start('blk_bio_meanqsr') 
    625       ! 
    626       qsr_mean(:,:) = (1. - albo ) *  sf(jp_qsr)%fnow(:,:,1) 
    627       ! 
    628       IF( nn_timing == 1 )  CALL timing_stop('blk_bio_meanqsr') 
    629       ! 
    630    END SUBROUTINE blk_bio_meanqsr 
    631   
    632   
    633    SUBROUTINE blk_ice_meanqsr( palb, p_qsr_mean, pdim ) 
    634       !!--------------------------------------------------------------------- 
    635       !! 
    636       !! ** Purpose :   provide the daily qsr_mean over sea_ice for PISCES when 
    637       !!                analytic diurnal cycle is applied in physic 
    638       !! 
    639       !! ** Method  :   compute qsr 
    640       !!  
    641       !!--------------------------------------------------------------------- 
    642       REAL(wp), DIMENSION(:,:,:), INTENT(in   ) ::   palb       ! ice albedo (clear sky) (alb_ice_cs)               [%] 
    643       REAL(wp), DIMENSION(:,:,:), INTENT(  out) ::   p_qsr_mean !     solar heat flux over ice (T-point)         [W/m2] 
    644       INTEGER                   , INTENT(in   ) ::   pdim       ! number of ice categories 
    645       ! 
    646       INTEGER  ::   ijpl          ! number of ice categories (size of 3rd dim of input arrays) 
    647       INTEGER  ::   ji, jj, jl    ! dummy loop indices 
    648       REAL(wp) ::   zztmp         ! temporary variable 
    649       !!--------------------------------------------------------------------- 
    650       IF( nn_timing == 1 )  CALL timing_start('blk_ice_meanqsr') 
    651       ! 
    652       ijpl  = pdim                            ! number of ice categories 
    653       zztmp = 1. / ( 1. - albo ) 
    654       !                                     ! ========================== ! 
    655       DO jl = 1, ijpl                       !  Loop over ice categories  ! 
    656          !                                  ! ========================== ! 
    657          DO jj = 1 , jpj 
    658             DO ji = 1, jpi 
    659                   p_qsr_mean(ji,jj,jl) = zztmp * ( 1. - palb(ji,jj,jl) ) * qsr_mean(ji,jj) 
    660             END DO 
    661          END DO 
    662       END DO 
    663       ! 
    664       IF( nn_timing == 1 )  CALL timing_stop('blk_ice_meanqsr') 
    665       ! 
    666    END SUBROUTINE blk_ice_meanqsr   
    667  
    668608 
    669609   SUBROUTINE turb_core_2z( zt, zu, sst, T_zt, q_sat, q_zt, dU,    & 
Note: See TracChangeset for help on using the changeset viewer.