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 2292 for branches/DEV_r1879_FCM/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90 – NEMO

Ignore:
Timestamp:
2010-10-19T12:15:40+02:00 (14 years ago)
Author:
smasson
Message:

update DEV_r1879_FCM for additional tests...

File:
1 edited

Legend:

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

    r2160 r2292  
    2626   USE fldread         ! read input fields 
    2727   USE sbc_oce         ! Surface boundary condition: ocean fields 
     28   USE sbcdcy          ! surface boundary condition: diurnal cycle 
    2829   USE iom             ! I/O manager library 
    2930   USE in_out_manager  ! I/O manager 
     
    6162   REAL(wp), PARAMETER ::   Stef =    5.67e-8     ! Stefan Boltzmann constant 
    6263   REAL(wp), PARAMETER ::   Cice =    1.63e-3     ! transfer coefficient over ice 
     64   REAL(wp), PARAMETER ::   albo =    0.066       ! ocean albedo assumed to be contant 
    6365 
    6466   !                                !!* Namelist namsbc_core : CORE bulk parameters 
     
    146148         REWIND( numnam )                    ! ... read in namlist namsbc_core 
    147149         READ  ( numnam, namsbc_core ) 
    148          ! 
    149          ! store namelist information in an array 
     150         !                                         ! check: do we plan to use ln_dm2dc with non-daily forcing? 
     151         IF( ln_dm2dc .AND. sn_qsr%nfreqh /= 24 )   &  
     152            &   CALL ctl_stop( 'sbc_blk_core: ln_dm2dc can be activated only with daily short-wave forcing' )  
     153         IF( ln_dm2dc .AND. sn_qsr%ln_tint ) THEN 
     154            CALL ctl_warn( 'sbc_blk_core: ln_dm2dc is taking care of the temporal interpolation of daily qsr',   & 
     155                 &         '              ==> We force time interpolation = .false. for qsr' ) 
     156            sn_qsr%ln_tint = .false. 
     157         ENDIF 
     158         !                                         ! store namelist information in an array 
    150159         slf_i(jp_wndi) = sn_wndi   ;   slf_i(jp_wndj) = sn_wndj 
    151160         slf_i(jp_qsr ) = sn_qsr    ;   slf_i(jp_qlw ) = sn_qlw 
     
    260269      ! ----------------------------------------------------------------------------- ! 
    261270     
    262       ! ocean albedo assumed to be 0.066 
    263 !CDIR COLLAPSE 
    264       qsr (:,:) = ( 1. - 0.066 ) * sf(jp_qsr)%fnow(:,:) * tmask(:,:,1)                                 ! Short Wave 
     271      ! ocean albedo assumed to be constant + modify now Qsr to include the diurnal cycle                  ! Short Wave 
     272      zztmp = 1. - albo 
     273      IF( ln_dm2dc ) THEN   ;   qsr(:,:) = zztmp * sbc_dcy( sf(jp_qsr)%fnow(:,:) ) * tmask(:,:,1) 
     274      ELSE                  ;   qsr(:,:) = zztmp *          sf(jp_qsr)%fnow(:,:)   * tmask(:,:,1) 
     275      ENDIF 
    265276!CDIR COLLAPSE 
    266277      zqlw(:,:) = (  sf(jp_qlw)%fnow(:,:) - Stef * zst(:,:)*zst(:,:)*zst(:,:)*zst(:,:)  ) * tmask(:,:,1)   ! Long  Wave 
     
    414425      REAL(wp) ::   zst2, zst3 
    415426      REAL(wp) ::   zcoef_wnorm, zcoef_wnorm2, zcoef_dqlw, zcoef_dqla, zcoef_dqsb 
     427      REAL(wp) ::   zztmp                                        ! temporary variable 
    416428      REAL(wp) ::   zcoef_frca                                   ! fractional cloud amount 
    417429      REAL(wp) ::   zwnorm_f, zwndi_f , zwndj_f                  ! relative wind module and components at F-point 
     
    501513      END SELECT 
    502514 
     515      zztmp = 1. / ( 1. - albo ) 
    503516      !                                     ! ========================== ! 
    504517      DO jl = 1, ijpl                       !  Loop over ice categories  ! 
     
    515528               zst3 = pst(ji,jj,jl) * zst2 
    516529               ! Short Wave (sw) 
    517                p_qsr(ji,jj,jl) = ( 1. - palb(ji,jj,jl) ) * sf(jp_qsr)%fnow(ji,jj) * tmask(ji,jj,1) 
     530               p_qsr(ji,jj,jl) = zztmp * ( 1. - palb(ji,jj,jl) ) * qsr(ji,jj) 
    518531               ! Long  Wave (lw) 
    519532               z_qlw(ji,jj,jl) = 0.95 * (  sf(jp_qlw)%fnow(ji,jj)       &                          
Note: See TracChangeset for help on using the changeset viewer.