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 886 for branches/dev_001_SBC/NEMO/OPA_SRC/SBC/sbcblk_core.F90 – NEMO

Ignore:
Timestamp:
2008-04-11T11:24:17+02:00 (16 years ago)
Author:
ctlod
Message:

dev_001_SBC: Step II: adapt new SBC to LIM 3.0 component, see ticket: #112

File:
1 edited

Legend:

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

    r879 r886  
    44   !! Ocean forcing:  momentum, heat and freshwater flux formulation 
    55   !!===================================================================== 
    6    !! History :  9.0   !  04-08  (U. Schweckendiek)  Original code 
    7    !!                  !  05-04  (L. Brodeau, A.M. Treguier) additions:  
     6   !! History :  1.0   !  04-08  (U. Schweckendiek)  Original code 
     7   !!            2.0   !  05-04  (L. Brodeau, A.M. Treguier) additions:  
    88   !!                            -  new bulk routine for efficiency 
    99   !!                            -  WINDS ARE NOW ASSUMED TO BE AT T POINTS in input files !!!! 
    1010   !!                            -  file names and file characteristics in namelist  
    1111   !!                            -  Implement reading of 6-hourly fields    
    12    !!                  !  06-06  (G. Madec) sbc rewritting 
     12   !!            3.0   !  06-06  (G. Madec) sbc rewritting 
    1313   !!---------------------------------------------------------------------- 
    1414 
     
    6666   !!---------------------------------------------------------------------- 
    6767   !!   OPA 9.0 , LOCEAN-IPSL (2006)  
    68    !! $Header: $ 
     68   !! $ Id: $ 
    6969   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    7070   !!---------------------------------------------------------------------- 
     
    184184      ENDIF 
    185185 
    186       CALL fld_read( kt, nn_fsbc, sf )                ! Read input fields and provides the 
    187       !                                               ! input fields at the current time-step 
     186 
     187      CALL fld_read( kt, nn_fsbc, sf )                ! input fields provided at the current time-step 
    188188 
    189189      IF( MOD( kt - 1, nn_fsbc ) == 0 ) THEN 
    190  
    191           CALL blk_oce_core( sst_m, ssu_m, ssv_m )        ! set the ocean surface fluxes 
    192  
     190          CALL blk_oce_core( sst_m, ssu_m, ssv_m )    ! compute the surface ocean fluxes using CLIO bulk formulea 
    193191      ENDIF 
    194192      !                                               ! using CORE bulk formulea 
     
    208206      !! ** Outputs : - utau    : i-component of the stress at U-point  (N/m2) 
    209207      !!              - vtau    : j-component of the stress at V-point  (N/m2) 
    210       !!              - qsr_oce : Solar heat flux over the ocean        (W/m2) 
    211       !!              - qns_oce : Non Solar heat flux over the ocean    (W/m2) 
     208      !!              - qsr    : Solar heat flux over the ocean        (W/m2) 
     209      !!              - qns    : Non Solar heat flux over the ocean    (W/m2) 
    212210      !!              - evap    : Evaporation over the ocean            (kg/m2/s) 
    213211      !!              - tprecip : Total precipitation                   (Kg/m2/s) 
     
    334332            &          tab2d_2=vtau   , clinfo2=' vtau : ', mask2=vmask ) 
    335333         CALL prt_ctl( tab2d_1=zwind_speed_t, clinfo1=' blk_oce_core: zwind_speed_t : ') 
     334         CALL prt_ctl( tab2d_1=zst    , clinfo1=' blk_oce_core: zst    : ') 
    336335      ENDIF 
    337336        
     
    354353      &                      p_qla , p_dqns, p_dqla,          & 
    355354      &                      p_tpr , p_spr ,                  & 
    356       &                      p_fr1 , p_fr2 )  
     355      &                      p_fr1 , p_fr2 , cd_grid )  
    357356      !!--------------------------------------------------------------------- 
    358357      !!                     ***  ROUTINE blk_ice_core  *** 
     
    367366      !! caution : the net upward water flux has with mm/day unit 
    368367      !!--------------------------------------------------------------------- 
    369       REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   pst      ! ice surface temperature (>0, =rt0 over land)   [Kelvin] 
    370       REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   pui      ! ice surface velocity (i-component, I-point)    [m/s] 
    371       REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   pvi      ! ice surface velocity (j-component, I-point)    [m/s] 
    372       REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   palb     ! ice albedo (clear sky) (alb_ice_cs)            [%] 
    373       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_taui   ! surface ice stress at I-point (i-component)    [N/m2] 
    374       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_tauj   ! surface ice stress at I-point (j-component)    [N/m2] 
    375       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_qns    ! non solar heat flux over ice (T-point)         [W/m2] 
    376       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_qsr    !     solar heat flux over ice (T-point)         [W/m2] 
    377       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_qla    ! latent    heat flux over ice (T-point)         [W/m2] 
    378       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_dqns   ! non solar heat sensistivity  (T-point)         [W/m2] 
    379       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_dqla   ! latent    heat sensistivity  (T-point)         [W/m2] 
    380       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_tpr    ! total precipitation          (T-point)         [Kg/m2/s] 
    381       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_spr    ! solid precipitation          (T-point)         [Kg/m2/s] 
    382       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_fr1    ! 1sr fraction of qsr penetration in ice         [%] 
    383       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_fr2    ! 2nd fraction of qsr penetration in ice         [%] 
    384       !! 
    385       INTEGER  ::   ji, jj                    ! dummy loop indices 
    386       REAL(wp) ::   zst3 
    387       REAL(wp) ::   zcoef_wnorm, zcoef_dqlw, zcoef_dqla, zcoef_dqsb 
    388       REAL(wp) ::   zcoef_frca                       ! fractional cloud amount 
    389       REAL(wp) ::   zwnorm_f, zwndi_f , zwndj_f      ! relative wind module and components at F-point 
    390       REAL(wp) ::             zwndi_t , zwndj_t      ! relative wind components at T-point 
    391       REAL(wp), DIMENSION(jpi,jpj) ::   z_wnds_t     ! wind speed ( = | U10m - U_ice | ) at T-point 
    392       REAL(wp), DIMENSION(jpi,jpj) ::   z_qlw        ! long wave heat flux over ice 
    393       REAL(wp), DIMENSION(jpi,jpj) ::   z_qsb        ! sensible  heat flux over ice 
    394       REAL(wp), DIMENSION(jpi,jpj) ::   z_dqlw       ! sensible  heat flux over ice 
    395       REAL(wp), DIMENSION(jpi,jpj) ::   z_dqsb       ! sensible  heat flux over ice 
     368      REAL(wp), INTENT(in   ), DIMENSION(:,:,:)   ::   pst      ! ice surface temperature (>0, =rt0 over land) [Kelvin] 
     369      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   pui      ! ice surface velocity (i- and i- components      [m/s] 
     370      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   pvi      !    at I-point (B-grid) or U & V-point (C-grid) 
     371      REAL(wp), INTENT(in   ), DIMENSION(:,:,:)   ::   palb     ! ice albedo (clear sky) (alb_ice_cs)               [%] 
     372      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_taui   ! i- & j-components of surface ice stress        [N/m2] 
     373      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_tauj   !   at I-point (B-grid) or U & V-point (C-grid) 
     374      REAL(wp), INTENT(  out), DIMENSION(:,:,:)   ::   p_qns    ! non solar heat flux over ice (T-point)         [W/m2] 
     375      REAL(wp), INTENT(  out), DIMENSION(:,:,:)   ::   p_qsr    !     solar heat flux over ice (T-point)         [W/m2] 
     376      REAL(wp), INTENT(  out), DIMENSION(:,:,:)   ::   p_qla    ! latent    heat flux over ice (T-point)         [W/m2] 
     377      REAL(wp), INTENT(  out), DIMENSION(:,:,:)   ::   p_dqns   ! non solar heat sensistivity  (T-point)         [W/m2] 
     378      REAL(wp), INTENT(  out), DIMENSION(:,:,:)   ::   p_dqla   ! latent    heat sensistivity  (T-point)         [W/m2] 
     379      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_tpr    ! total precipitation          (T-point)      [Kg/m2/s] 
     380      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_spr    ! solid precipitation          (T-point)      [Kg/m2/s] 
     381      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_fr1    ! 1sr fraction of qsr penetration in ice (T-point)  [%] 
     382      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   p_fr2    ! 2nd fraction of qsr penetration in ice (T-point)  [%] 
     383      CHARACTER(len=1), INTENT(in   )             ::   cd_grid  ! ice grid ( C or B-grid) 
     384      !! 
     385      INTEGER  ::   ji, jj, jl    ! dummy loop indices 
     386      INTEGER  ::   ijpl          ! number of ice categories (size of 3rd dim of input arrays) 
     387      REAL(wp) ::   zst2, zst3 
     388      REAL(wp) ::   zcoef_wnorm, zcoef_wnorm2, zcoef_dqlw, zcoef_dqla, zcoef_dqsb 
     389      REAL(wp) ::   zcoef_frca                                   ! fractional cloud amount 
     390      REAL(wp) ::   zwnorm_f, zwndi_f , zwndj_f                  ! relative wind module and components at F-point 
     391      REAL(wp) ::             zwndi_t , zwndj_t                  ! relative wind components at T-point 
     392      REAL(wp), DIMENSION(jpi,jpj) ::   z_wnds_t                 ! wind speed ( = | U10m - U_ice | ) at T-point 
     393      REAL(wp), DIMENSION(jpi,jpj,SIZE(pst,3)) ::   z_qlw        ! long wave heat flux over ice 
     394      REAL(wp), DIMENSION(jpi,jpj,SIZE(pst,3)) ::   z_qsb        ! sensible  heat flux over ice 
     395      REAL(wp), DIMENSION(jpi,jpj,SIZE(pst,3)) ::   z_dqlw       ! sensible  heat flux over ice 
     396      REAL(wp), DIMENSION(jpi,jpj,SIZE(pst,3)) ::   z_dqsb       ! sensible  heat flux over ice 
    396397      !!--------------------------------------------------------------------- 
     398 
     399      ijpl  = SIZE( pst, 3 )                 ! number of ice categories 
    397400 
    398401      ! local scalars ( place there for vector optimisation purposes) 
    399402      zcoef_wnorm = rhoa * Cice 
     403      zcoef_wnorm2 = rhoa * Cice * 0.5 
    400404      zcoef_dqlw = 4.0 * 0.95 * Stef 
    401405      zcoef_dqla = -Ls * Cice * 11637800. * (-5897.8) 
     
    410414 
    411415      ! ----------------------------------------------------------------------------- ! 
    412       !    Wind components and module relative to the moving ocean at I and T-point   ! 
    413       ! ----------------------------------------------------------------------------- ! 
    414       ! ... components ( U10m - U_oce ) at I-point (F-point with sea-ice indexation) (unmasked) 
    415       !     and scalar wind at T-point ( = | U10m - U_ice | ) (masked) 
     416      !    Wind components and module relative to the moving ocean ( U10m - U_ice )   ! 
     417      ! ----------------------------------------------------------------------------- ! 
     418      SELECT CASE( cd_grid ) 
     419      CASE( 'B' )                  ! B-grid ice dynamics :   I-point (i.e. F-point with sea-ice indexation) 
     420         !                           and scalar wind at T-point ( = | U10m - U_ice | ) (masked) 
    416421#if defined key_vectopt_loop 
    417422!CDIR COLLAPSE 
    418423#endif 
    419424!CDIR NOVERRCHK 
    420       DO jj = 2, jpjm1 
    421          DO ji = fs_2, fs_jpim1 
    422             ! ... scalar wind at I-point (fld being at T-point) 
    423             zwndi_f = 0.25 * (  sf(jp_wndi)%fnow(ji-1,jj  ) + sf(jp_wndi)%fnow(ji  ,jj  )   & 
    424                &              + sf(jp_wndi)%fnow(ji-1,jj-1) + sf(jp_wndi)%fnow(ji  ,jj-1)  ) - pui(ji,jj) 
    425             zwndj_f = 0.25 * (  sf(jp_wndj)%fnow(ji-1,jj  ) + sf(jp_wndj)%fnow(ji  ,jj  )   & 
    426                &              + sf(jp_wndj)%fnow(ji-1,jj-1) + sf(jp_wndj)%fnow(ji  ,jj-1)  ) - pvi(ji,jj) 
    427             zwnorm_f = zcoef_wnorm * SQRT( zwndi_f * zwndi_f + zwndj_f * zwndj_f ) 
    428             ! ... ice stress at I-point 
    429             p_taui(ji,jj) = zwnorm_f * zwndi_f 
    430             p_tauj(ji,jj) = zwnorm_f * zwndj_f 
    431             ! ... scalar wind at T-point (fld being at T-point) 
    432             zwndi_t = sf(jp_wndi)%fnow(ji,jj) - 0.25 * (  pui(ji,jj+1) + pui(ji+1,jj+1)   & 
    433                &                                        + pui(ji,jj  ) + pui(ji+1,jj  )  ) 
    434             zwndj_t = sf(jp_wndj)%fnow(ji,jj) - 0.25 * (  pvi(ji,jj+1) + pvi(ji+1,jj+1)   & 
    435                &                                        + pvi(ji,jj  ) + pvi(ji+1,jj  )  ) 
    436             z_wnds_t(ji,jj)  = SQRT( zwndi_t * zwndi_t + zwndj_t * zwndj_t ) * tmask(ji,jj,1) 
     425         DO jj = 2, jpjm1 
     426            DO ji = fs_2, fs_jpim1 
     427               ! ... scalar wind at I-point (fld being at T-point) 
     428               zwndi_f = 0.25 * (  sf(jp_wndi)%fnow(ji-1,jj  ) + sf(jp_wndi)%fnow(ji  ,jj  )   & 
     429                  &              + sf(jp_wndi)%fnow(ji-1,jj-1) + sf(jp_wndi)%fnow(ji  ,jj-1)  ) - pui(ji,jj) 
     430               zwndj_f = 0.25 * (  sf(jp_wndj)%fnow(ji-1,jj  ) + sf(jp_wndj)%fnow(ji  ,jj  )   & 
     431                  &              + sf(jp_wndj)%fnow(ji-1,jj-1) + sf(jp_wndj)%fnow(ji  ,jj-1)  ) - pvi(ji,jj) 
     432               zwnorm_f = zcoef_wnorm * SQRT( zwndi_f * zwndi_f + zwndj_f * zwndj_f ) 
     433               ! ... ice stress at I-point 
     434               p_taui(ji,jj) = zwnorm_f * zwndi_f 
     435               p_tauj(ji,jj) = zwnorm_f * zwndj_f 
     436               ! ... scalar wind at T-point (fld being at T-point) 
     437               zwndi_t = sf(jp_wndi)%fnow(ji,jj) - 0.25 * (  pui(ji,jj+1) + pui(ji+1,jj+1)   & 
     438                  &                                        + pui(ji,jj  ) + pui(ji+1,jj  )  ) 
     439               zwndj_t = sf(jp_wndj)%fnow(ji,jj) - 0.25 * (  pvi(ji,jj+1) + pvi(ji+1,jj+1)   & 
     440                  &                                        + pvi(ji,jj  ) + pvi(ji+1,jj  )  ) 
     441               z_wnds_t(ji,jj)  = SQRT( zwndi_t * zwndi_t + zwndj_t * zwndj_t ) * tmask(ji,jj,1) 
     442            END DO 
    437443         END DO 
     444         CALL lbc_lnk( p_taui  , 'I', -1. ) 
     445         CALL lbc_lnk( p_tauj  , 'I', -1. ) 
     446         CALL lbc_lnk( z_wnds_t, 'T',  1. ) 
     447         ! 
     448      CASE( 'C' )                  ! C-grid ice dynamics :   U & V-points (same as ocean) 
     449#if defined key_vectopt_loop 
     450!CDIR COLLAPSE 
     451#endif 
     452         DO jj = 2, jpj 
     453            DO ji = fs_2, jpi   ! vect. opt. 
     454               zwndi_t = (  sf(jp_wndi)%fnow(ji,jj) - 0.5 * ( pui(ji-1,jj  ) + pui(ji,jj) )  ) 
     455               zwndj_t = (  sf(jp_wndj)%fnow(ji,jj) - 0.5 * ( pvi(ji  ,jj-1) + pvi(ji,jj) )  ) 
     456               z_wnds_t(ji,jj)  = SQRT( zwndi_t * zwndi_t + zwndj_t * zwndj_t ) * tmask(ji,jj,1) 
     457            END DO 
     458         END DO 
     459#if defined key_vectopt_loop 
     460!CDIR COLLAPSE 
     461#endif 
     462         DO jj = 2, jpjm1 
     463            DO ji = fs_2, fs_jpim1   ! vect. opt. 
     464               p_taui(ji,jj) = zcoef_wnorm2 * ( z_wnds_t(ji+1,jj) + z_wnds_t(ji,jj) )                          & 
     465                  &          * ( 0.5 * (sf(jp_wndi)%fnow(ji+1,jj) + sf(jp_wndi)%fnow(ji,jj) ) - pui(ji,jj) ) 
     466               p_tauj(ji,jj) = zcoef_wnorm2 * ( z_wnds_t(ji,jj+1) + z_wnds_t(ji,jj) )                          & 
     467                  &          * ( 0.5 * (sf(jp_wndj)%fnow(ji,jj+1) + sf(jp_wndj)%fnow(ji,jj) ) - pvi(ji,jj) ) 
     468            END DO 
     469         END DO 
     470         CALL lbc_lnk( p_taui  , 'U', -1. ) 
     471         CALL lbc_lnk( p_tauj  , 'V', -1. ) 
     472         CALL lbc_lnk( z_wnds_t, 'T',  1. ) 
     473         ! 
     474      END SELECT 
     475 
     476      !                                     ! ========================== ! 
     477      DO jl = 1, ijpl                       !  Loop over ice categories  ! 
     478         !                                  ! ========================== ! 
     479!CDIR NOVERRCHK 
     480!CDIR COLLAPSE 
     481         DO jj = 1 , jpj 
     482!CDIR NOVERRCHK 
     483            DO ji = 1, jpi 
     484               ! ----------------------------! 
     485               !      I   Radiative FLUXES   ! 
     486               ! ----------------------------! 
     487               zst2 = pst(ji,jj,jl) * pst(ji,jj,jl) 
     488               zst3 = pst(ji,jj,jl) * zst2 
     489               ! Short Wave (sw) 
     490               p_qsr(ji,jj,jl) = ( 1. - palb(ji,jj,jl) ) * sf(jp_qsr)%fnow(ji,jj) * tmask(ji,jj,1) 
     491               ! Long  Wave (lw) 
     492               z_qlw(ji,jj,jl) = 0.95 * (  sf(jp_qlw)%fnow(ji,jj)       &                          
     493                  &                   - Stef * pst(ji,jj,jl) * zst3  ) * tmask(ji,jj,1) 
     494               ! lw sensitivity 
     495               z_dqlw(ji,jj,jl) = zcoef_dqlw * zst3                                                
     496 
     497               ! ----------------------------! 
     498               !     II    Turbulent FLUXES  ! 
     499               ! ----------------------------! 
     500 
     501               ! ... turbulent heat fluxes 
     502               ! Sensible Heat 
     503               z_qsb(ji,jj,jl) = rhoa * cpa * Cice * z_wnds_t(ji,jj) * ( pst(ji,jj,jl) - sf(jp_tair)%fnow(ji,jj) ) 
     504               ! Latent Heat 
     505               p_qla(ji,jj,jl) = MAX( 0.e0, rhoa * Ls  * Cice * z_wnds_t(ji,jj)   &                            
     506                  &                    * (  11637800. * EXP( -5897.8 / pst(ji,jj,jl) ) / rhoa - sf(jp_humi)%fnow(ji,jj)  ) ) 
     507               ! Latent heat sensitivity for ice (Dqla/Dt) 
     508               p_dqla(ji,jj,jl) = zcoef_dqla * z_wnds_t(ji,jj) / ( zst2 ) * EXP( -5897.8 / pst(ji,jj,jl) ) 
     509               ! Sensible heat sensitivity (Dqsb_ice/Dtn_ice) 
     510               z_dqsb(ji,jj,jl) = zcoef_dqsb * z_wnds_t(ji,jj) 
     511 
     512               ! ----------------------------! 
     513               !     III    Total FLUXES     ! 
     514               ! ----------------------------! 
     515               ! Downward Non Solar flux 
     516               p_qns (ji,jj,jl) =     z_qlw (ji,jj,jl) - z_qsb (ji,jj,jl) - p_qla (ji,jj,jl)       
     517               ! Total non solar heat flux sensitivity for ice 
     518               p_dqns(ji,jj,jl) = - ( z_dqlw(ji,jj,jl) + z_dqsb(ji,jj,jl) + p_dqla(ji,jj,jl) )     
     519            END DO 
     520            ! 
     521         END DO 
     522         ! 
    438523      END DO 
    439       CALL lbc_lnk( p_taui  , 'I', -1. ) 
    440       CALL lbc_lnk( p_tauj  , 'I', -1. ) 
    441       CALL lbc_lnk( z_wnds_t, 'T',  1. ) 
    442  
    443       ! ----------------------------------------------------------------------------- ! 
    444       !      I   Radiative FLUXES                                                     ! 
    445       ! ----------------------------------------------------------------------------- ! 
    446 !CDIR COLLAPSE 
    447       DO jj = 1, jpj 
    448          DO ji = 1, jpi 
    449             zst3 = pst(ji,jj) * pst(ji,jj) * pst(ji,jj) 
    450             p_qsr(ji,jj) = ( 1. - palb(ji,jj) ) * sf(jp_qsr)%fnow(ji,jj) * tmask(ji,jj,1)     ! Short Wave (sw) 
    451             z_qlw(ji,jj) = 0.95 * (  sf(jp_qlw)%fnow(ji,jj)       &                           ! Long  Wave (lw) 
    452                &                   - Stef * pst(ji,jj) * zst3  ) * tmask(ji,jj,1) 
    453             z_dqlw(ji,jj) = zcoef_dqlw * zst3                                                      ! lw sensitivity 
    454          END DO 
    455       END DO 
    456  
    457       ! ----------------------------------------------------------------------------- ! 
    458       !     II    Turbulent FLUXES                                                    ! 
    459       ! ----------------------------------------------------------------------------- ! 
    460  
    461       ! ... turbulent heat fluxes 
    462 !CDIR COLLAPSE 
    463       z_qsb(:,:) = rhoa * cpa * Cice * z_wnds_t(:,:) * ( pst(:,:) - sf(jp_tair)%fnow(:,:) )   ! Sensible Heat 
    464 !CDIR NOVERRCHK 
    465 !CDIR COLLAPSE 
    466       p_qla(:,:) = MAX( 0.e0, rhoa * Ls  * Cice * z_wnds_t(:,:)   &                           ! Latent Heat 
    467          &                    * (  11637800. * EXP( -5897.8 / pst(:,:) ) / rhoa - sf(jp_humi)%fnow(:,:)  ) ) 
    468        
    469       ! Latent heat sensitivity for ice (Dqla/Dt) 
    470 !CDIR NOVERRCHK 
    471 !CDIR COLLAPSE 
    472       p_dqla(:,:) = zcoef_dqla * z_wnds_t(:,:) / ( pst(:,:) * pst(:,:) ) * EXP( -5897.8 / pst(:,:) ) 
    473         
    474       ! Sensible heat sensitivity (Dqsb_ice/Dtn_ice) 
    475 !CDIR COLLAPSE 
    476       z_dqsb(:,:) = zcoef_dqsb * z_wnds_t(:,:) 
    477  
    478       ! ----------------------------------------------------------------------------- ! 
    479       !     III    Total FLUXES                                                       ! 
    480       ! ----------------------------------------------------------------------------- ! 
    481       
    482 !CDIR COLLAPSE 
    483       p_qns (:,:) =     z_qlw (:,:) - z_qsb (:,:) - p_qla (:,:)      ! Downward Non Solar flux 
    484 !CDIR COLLAPSE 
    485       p_dqns(:,:) = - ( z_dqlw(:,:) + z_dqsb(:,:) + p_dqla(:,:) )    ! Total non solar heat flux sensitivity for ice 
    486         
    487         
     524      ! 
    488525      !-------------------------------------------------------------------- 
    489526      ! FRACTIONs of net shortwave radiation which is not absorbed in the 
     
    502539      ! 
    503540      IF(ln_ctl) THEN 
    504          CALL prt_ctl(tab2d_1=p_qla   , clinfo1=' blk_ice_core: p_qla  : ', tab2d_2=z_qsb   , clinfo2=' z_qsb    : ') 
    505          CALL prt_ctl(tab2d_1=z_qlw   , clinfo1=' blk_ice_core: z_qlw  : ', tab2d_2=p_dqla  , clinfo2=' p_dqla   : ') 
    506          CALL prt_ctl(tab2d_1=z_dqsb  , clinfo1=' blk_ice_core: z_dqsb : ', tab2d_2=z_dqlw  , clinfo2=' z_dqlw   : ') 
    507          CALL prt_ctl(tab2d_1=p_tpr   , clinfo1=' blk_ice_core: p_tpr  : ', tab2d_2=p_spr   , clinfo2=' p_spr    : ') 
    508          CALL prt_ctl(tab2d_1=p_dqns  , clinfo1=' blk_ice_core: p_dqns : ', tab2d_2=z_wnds_t, clinfo2=' z_wnds_t : ') 
    509          CALL prt_ctl(tab2d_1=p_taui  , clinfo1=' blk_ice_core: p_taui : ', tab2d_2=p_tauj  , clinfo2=' p_tauj   : ') 
     541         CALL prt_ctl(tab3d_1=p_qla   , clinfo1=' blk_ice_core: p_qla  : ', tab3d_2=z_qsb   , clinfo2=' z_qsb  : ', kdim=ijpl) 
     542         CALL prt_ctl(tab3d_1=z_qlw   , clinfo1=' blk_ice_core: z_qlw  : ', tab3d_2=p_dqla  , clinfo2=' p_dqla : ', kdim=ijpl) 
     543         CALL prt_ctl(tab3d_1=z_dqsb  , clinfo1=' blk_ice_core: z_dqsb : ', tab3d_2=z_dqlw  , clinfo2=' z_dqlw : ', kdim=ijpl) 
     544         CALL prt_ctl(tab3d_1=p_dqns  , clinfo1=' blk_ice_core: p_dqns : ', tab3d_2=p_qsr   , clinfo2=' p_qsr  : ', kdim=ijpl) 
     545         CALL prt_ctl(tab3d_1=pst     , clinfo1=' blk_ice_core: pst    : ', tab3d_2=p_qns   , clinfo2=' p_qns  : ', kdim=ijpl) 
     546         CALL prt_ctl(tab2d_1=p_tpr   , clinfo1=' blk_ice_core: p_tpr  : ', tab2d_2=p_spr   , clinfo2=' p_spr  : ') 
     547         CALL prt_ctl(tab2d_1=p_taui  , clinfo1=' blk_ice_core: p_taui : ', tab2d_2=p_tauj  , clinfo2=' p_tauj : ') 
     548         CALL prt_ctl(tab2d_1=z_wnds_t, clinfo1=' blk_ice_core: z_wnds_t : ') 
    510549      ENDIF 
    511550 
     
    801840    END FUNCTION psi_h 
    802841   
    803    
    804842   !!====================================================================== 
    805843END MODULE sbcblk_core 
Note: See TracChangeset for help on using the changeset viewer.