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 7351 for branches/2016/dev_INGV_UKMO_2016/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90 – NEMO

Ignore:
Timestamp:
2016-11-28T17:04:10+01:00 (7 years ago)
Author:
emanuelaclementi
Message:

ticket #1805 step 3: /2016/dev_INGV_UKMO_2016 aligned to the trunk at revision 7161

File:
1 edited

Legend:

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

    r7350 r7351  
    1919 
    2020   !!---------------------------------------------------------------------- 
    21    !!   sbc_blk_core    : bulk formulation as ocean surface boundary condition (forced mode, CORE bulk formulea) 
    22    !!   blk_oce_core    : computes momentum, heat and freshwater fluxes over ocean 
    23    !!   blk_ice_core    : computes momentum, heat and freshwater fluxes over ice 
    24    !!   turb_core_2z    : Computes turbulent transfert coefficients 
    25    !!   cd_neutral_10m  : Estimate of the neutral drag coefficient at 10m 
    26    !!   psi_m           : universal profile stability function for momentum 
    27    !!   psi_h           : universal profile stability function for temperature and humidity 
     21   !!   sbc_blk_core  : bulk formulation as ocean surface boundary condition (forced mode, CORE bulk formulea) 
     22   !!   blk_oce_core  : computes momentum, heat and freshwater fluxes over ocean 
     23   !!   blk_ice_core  : computes momentum, heat and freshwater fluxes over ice 
     24   !!   turb_core_2z  : Computes turbulent transfert coefficients 
     25   !!   cd_neutral_10m: Estimate of the neutral drag coefficient at 10m 
     26   !!   psi_m         : universal profile stability function for momentum 
     27   !!   psi_h         : universal profile stability function for temperature and humidity 
    2828   !!---------------------------------------------------------------------- 
    29    USE oce             ! ocean dynamics and tracers 
    30    USE dom_oce         ! ocean space and time domain 
    31    USE phycst          ! physical constants 
    32    USE fldread         ! read input fields 
    33    USE sbc_oce         ! Surface boundary condition: ocean fields 
    34    USE cyclone         ! Cyclone 10m wind form trac of cyclone centres 
    35    USE sbcdcy          ! surface boundary condition: diurnal cycle 
    36    USE iom             ! I/O manager library 
    37    USE in_out_manager  ! I/O manager 
    38    USE lib_mpp         ! distribued memory computing library 
    39    USE wrk_nemo        ! work arrays 
    40    USE timing          ! Timing 
    41    USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    42    USE prtctl          ! Print control 
    43    USE sbcwave, ONLY   :  cdn_wave ! wave module 
    44    USE sbc_ice         ! Surface boundary condition: ice fields 
    45    USE lib_fortran     ! to use key_nosignedzero 
     29   USE oce            ! ocean dynamics and tracers 
     30   USE dom_oce        ! ocean space and time domain 
     31   USE phycst         ! physical constants 
     32   USE fldread        ! read input fields 
     33   USE sbc_oce        ! Surface boundary condition: ocean fields 
     34   USE cyclone        ! Cyclone 10m wind form trac of cyclone centres 
     35   USE sbcdcy         ! surface boundary condition: diurnal cycle 
     36   USE sbcwave , ONLY :   cdn_wave ! wave module 
     37   USE sbc_ice        ! Surface boundary condition: ice fields 
     38   USE lib_fortran    ! to use key_nosignedzero 
    4639#if defined key_lim3 
    47    USE ice, ONLY       : u_ice, v_ice, jpl, pfrld, a_i_b 
    48    USE limthd_dh       ! for CALL lim_thd_snwblow 
     40   USE ice     , ONLY :  u_ice, v_ice, jpl, pfrld, a_i_b 
     41   USE limthd_dh      ! for CALL lim_thd_snwblow 
    4942#elif defined key_lim2 
    50    USE ice_2, ONLY     : u_ice, v_ice 
    51    USE par_ice_2 
     43   USE ice_2   , ONLY :  u_ice, v_ice 
     44   USE par_ice_2      ! LIM-2 parameters 
    5245#endif 
     46   ! 
     47   USE iom            ! I/O manager library 
     48   USE in_out_manager ! I/O manager 
     49   USE lib_mpp        ! distribued memory computing library 
     50   USE wrk_nemo       ! work arrays 
     51   USE timing         ! Timing 
     52   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
     53   USE prtctl         ! Print control 
    5354 
    5455   IMPLICIT NONE 
     
    8485   REAL(wp), PARAMETER ::   albo =    0.066       ! ocean albedo assumed to be constant 
    8586 
    86    !                                  !!* Namelist namsbc_core : CORE bulk parameters 
     87   !                        !!* Namelist namsbc_core : CORE bulk parameters 
    8788   LOGICAL  ::   ln_taudif   ! logical flag to use the "mean of stress module - module of mean stress" data 
    8889   REAL(wp) ::   rn_pfac     ! multiplication factor for precipitation 
     
    9394 
    9495   !! * Substitutions 
    95 #  include "domzgr_substitute.h90" 
    9696#  include "vectopt_loop_substitute.h90" 
    9797   !!---------------------------------------------------------------------- 
     
    149149      TYPE(FLD_N) ::   sn_tdif                                 !   "                                 " 
    150150      NAMELIST/namsbc_core/ cn_dir , ln_taudif, rn_pfac, rn_efac, rn_vfac,  & 
    151          &                  sn_wndi, sn_wndj, sn_humi  , sn_qsr ,           & 
    152          &                  sn_qlw , sn_tair, sn_prec  , sn_snow,           & 
    153          &                  sn_tdif, rn_zqt,  rn_zu 
     151         &                  sn_wndi, sn_wndj  , sn_humi, sn_qsr ,           & 
     152         &                  sn_qlw , sn_tair  , sn_prec, sn_snow,           & 
     153         &                  sn_tdif, rn_zqt   ,  rn_zu 
    154154      !!--------------------------------------------------------------------- 
    155155      ! 
     
    206206      IF( MOD( kt - 1, nn_fsbc ) == 0 )   THEN 
    207207         qlw_ice(:,:,1)   = sf(jp_qlw)%fnow(:,:,1)  
    208          qsr_ice(:,:,1)   = sf(jp_qsr)%fnow(:,:,1) 
     208         IF( ln_dm2dc ) THEN ; qsr_ice(:,:,1) = sbc_dcy( sf(jp_qsr)%fnow(:,:,1) ) 
     209         ELSE                ; qsr_ice(:,:,1) =          sf(jp_qsr)%fnow(:,:,1) 
     210         ENDIF 
    209211         tatm_ice(:,:)    = sf(jp_tair)%fnow(:,:,1)          
    210212         qatm_ice(:,:)    = sf(jp_humi)%fnow(:,:,1) 
     
    612614      ! --- evaporation --- ! 
    613615      z1_lsub = 1._wp / Lsub 
    614       evap_ice (:,:,:) = qla_ice (:,:,:) * z1_lsub ! sublimation 
    615       devap_ice(:,:,:) = dqla_ice(:,:,:) * z1_lsub 
    616       zevap    (:,:)   = emp(:,:) + tprecip(:,:)   ! evaporation over ocean 
     616      evap_ice (:,:,:) = rn_efac * qla_ice (:,:,:) * z1_lsub    ! sublimation 
     617      devap_ice(:,:,:) = rn_efac * dqla_ice(:,:,:) * z1_lsub    ! d(sublimation)/dT 
     618      zevap    (:,:)   = rn_efac * ( emp(:,:) + tprecip(:,:) )  ! evaporation over ocean 
    617619 
    618620      ! --- evaporation minus precipitation --- ! 
     
    637639      ! --- heat content of precip over ice in J/m3 (to be used in 1D-thermo) --- ! 
    638640      qprec_ice(:,:) = rhosn * ( ( MIN( sf(jp_tair)%fnow(:,:,1), rt0_snow ) - rt0 ) * cpic * tmask(:,:,1) - lfus ) 
     641 
     642      ! --- heat content of evap over ice in W/m2 (to be used in 1D-thermo) --- ! 
     643      DO jl = 1, jpl 
     644         qevap_ice(:,:,jl) = 0._wp ! should be -evap_ice(:,:,jl)*( ( Tice - rt0 ) * cpic * tmask(:,:,1) ) 
     645                                   ! But we do not have Tice => consider it at 0°C => evap=0  
     646      END DO 
    639647 
    640648      CALL wrk_dealloc( jpi,jpj, zevap, zsnw )  
Note: See TracChangeset for help on using the changeset viewer.