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 3396 for branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90 – NEMO

Ignore:
Timestamp:
2012-05-17T18:33:12+02:00 (12 years ago)
Author:
acc
Message:

Branch: dev_r3385_NOCS04_HAMF; #665. Stage 1 of 2012 development: porting of changes on old development branch (2011/DEV_r1837_mass_heat_salt_fluxes) into new branch. Corrected a few errors on the way. This branch now compiles but is incomplete. Still missing LIM3 changes which must reside on a certain persons laptop somewhere

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90

    r3294 r3396  
    1212 
    1313   !!---------------------------------------------------------------------- 
    14    !!   sbc_blk_clio   : CLIO bulk formulation: read and update required input fields 
    15    !!   blk_clio_oce   : ocean CLIO bulk formulea: compute momentum, heat and freswater fluxes for the ocean 
    16    !!   blk_ice_clio   : ice   CLIO bulk formulea: compute momentum, heat and freswater fluxes for the sea-ice 
     14   !!   sbc_blk_clio     : CLIO bulk formulation: read and update required input fields 
     15   !!   blk_clio_oce     : ocean CLIO bulk formulea: compute momentum, heat and freswater fluxes for the ocean 
     16   !!   blk_ice_clio     : ice   CLIO bulk formulea: compute momentum, heat and freswater fluxes for the sea-ice 
    1717   !!   blk_clio_qsr_oce : shortwave radiation for ocean computed from the cloud cover 
    1818   !!   blk_clio_qsr_ice : shortwave radiation for ice   computed from the cloud cover 
    19    !!   flx_blk_declin : solar declinaison 
     19   !!   flx_blk_declin   : solar declination 
    2020   !!---------------------------------------------------------------------- 
    2121   USE oce             ! ocean dynamics and tracers 
     
    5050   INTEGER , PARAMETER ::   jp_vtau = 2           ! index of wind stress (j-component)      (N/m2)    at V-point 
    5151   INTEGER , PARAMETER ::   jp_wndm = 3           ! index of 10m wind module                 (m/s)    at T-point 
    52    INTEGER , PARAMETER ::   jp_humi = 4           ! index of specific humidity               ( - ) 
    53    INTEGER , PARAMETER ::   jp_ccov = 5           ! index of cloud cover                     ( - ) 
     52   INTEGER , PARAMETER ::   jp_humi = 4           ! index of specific humidity               ( % ) 
     53   INTEGER , PARAMETER ::   jp_ccov = 5           ! index of cloud cover                     ( % ) 
    5454   INTEGER , PARAMETER ::   jp_tair = 6           ! index of 10m air temperature             (Kelvin) 
    5555   INTEGER , PARAMETER ::   jp_prec = 7           ! index of total precipitation (rain+snow) (Kg/m2/s) 
     
    100100      !!      the i-component of the stress                (N/m2) 
    101101      !!      the j-component of the stress                (N/m2) 
    102       !!      the 10m wind pseed module                    (m/s) 
     102      !!      the 10m wind speed module                    (m/s) 
    103103      !!      the 10m air temperature                      (Kelvin) 
    104       !!      the 10m specific humidity                    (-) 
    105       !!      the cloud cover                              (-) 
     104      !!      the 10m specific humidity                    (%) 
     105      !!      the cloud cover                              (%) 
    106106      !!      the total precipitation (rain+snow)          (Kg/m2/s) 
    107107      !!              (2) CALL blk_oce_clio 
    108108      !! 
    109109      !!      C A U T I O N : never mask the surface stress fields 
    110       !!                      the stress is assumed to be in the mesh referential 
    111       !!                      i.e. the (i,j) referential 
     110      !!                      the stress is assumed to be in the (i,j) mesh referential 
    112111      !! 
    113112      !! ** Action  :   defined at each time-step at the air-sea interface 
     
    115114      !!              - taum        wind stress module at T-point 
    116115      !!              - wndm        10m wind module at T-point 
    117       !!              - qns, qsr    non-slor and solar heat flux 
    118       !!              - emp, emps   evaporation minus precipitation 
     116      !!              - qns         non-solar heat flux including latent heat of solid  
     117      !!                            precip. melting and emp heat content 
     118      !!              - qsr         solar heat flux 
     119      !!              - emp         upward mass flux (evap. - precip) 
    119120      !!---------------------------------------------------------------------- 
    120       INTEGER, INTENT(in) ::   kt   ! ocean time step 
     121      INTEGER, INTENT( in  ) ::   kt   ! ocean time step 
    121122      !! 
    122123      INTEGER  ::   ifpr, jfpr   ! dummy indices 
     
    205206      !!               - taum        wind stress module at T-point 
    206207      !!               - wndm        10m wind module at T-point 
    207       !!               - qns, qsr    non-slor and solar heat flux 
    208       !!               - emp, emps   evaporation minus precipitation 
     208      !!               - qns         non-solar heat flux including latent heat of solid  
     209      !!                             precip. melting and emp heat content 
     210      !!               - qsr         solar heat flux 
     211      !!               - emp         suface mass flux (evap.-precip.) 
    209212      !!  ** Nota    :   sf has to be a dummy argument for AGRIF on NEC 
    210213      !!---------------------------------------------------------------------- 
     
    223226      REAL(wp) ::   zsst, ztatm, zcco1, zpatm, zcmax, zrmax     !    -         - 
    224227      REAL(wp) ::   zrhoa, zev, zes, zeso, zqatm, zevsqr        !    -         - 
    225       REAL(wp) ::   ztx2, zty2                                  !    -         - 
     228      REAL(wp) ::   ztx2, zty2, zcevap, zcprec                  !    -         - 
    226229      REAL(wp), POINTER, DIMENSION(:,:) ::   zqlw        ! long-wave heat flux over ocean 
    227230      REAL(wp), POINTER, DIMENSION(:,:) ::   zqla        ! latent heat flux over ocean 
     
    363366      !     III    Total FLUXES                                                       ! 
    364367      ! ----------------------------------------------------------------------------- ! 
    365  
    366 !CDIR COLLAPSE 
    367       emp (:,:) = zqla(:,:) / cevap - sf(jp_prec)%fnow(:,:,1) / rday * tmask(:,:,1) 
    368       qns (:,:) = zqlw(:,:) - zqsb(:,:) - zqla(:,:)         ! Downward Non Solar flux 
    369       emps(:,:) = emp(:,:) 
    370       ! 
     368      zcevap = rcp /  cevap    ! convert zqla ==> evap (Kg/m2/s) ==> m/s ==> W/m2 
     369      zcprec = rcp /  rday     ! convert prec ( mm/day ==> m/s)  ==> W/m2 
     370 
     371!CDIR COLLAPSE 
     372      emp(:,:) = zqla(:,:) / cevap                                        &   ! freshwater flux 
     373         &     - sf(jp_prec)%fnow(:,:,1) / rday * tmask(:,:,1) 
     374      ! 
     375!CDIR COLLAPSE 
     376      qns(:,:) = zqlw(:,:) - zqsb(:,:) - zqla(:,:)                        &   ! Downward Non Solar flux 
     377         &     - zqla(:,:)             * pst(:,:) * zcevap                &   ! remove evap.   heat content at SST in Celcius 
     378         &     + sf(jp_prec)%fnow(:,:,1) * sf(jp_tair)%fnow(:,:,1) * zcprec   ! add    precip. heat content at Tair in Celcius 
     379      ! NB: if sea-ice model, the snow precip are computed and the associated heat is added to qns (see blk_ice_clio) 
     380 
    371381      CALL iom_put( "qlw_oce",   zqlw )   ! output downward longwave  heat over the ocean 
    372382      CALL iom_put( "qsb_oce", - zqsb )   ! output downward sensible  heat over the ocean 
     
    407417      !! 
    408418      !!  ** Action  :   call albedo_oce/albedo_ice to compute ocean/ice albedo  
    409       !!          computation of snow precipitation 
    410       !!          computation of solar flux at the ocean and ice surfaces 
    411       !!          computation of the long-wave radiation for the ocean and sea/ice 
    412       !!          computation of turbulent heat fluxes over water and ice 
    413       !!          computation of evaporation over water 
    414       !!          computation of total heat fluxes sensitivity over ice (dQ/dT) 
    415       !!          computation of latent heat flux sensitivity over ice (dQla/dT) 
    416       !! 
     419      !!               - snow precipitation 
     420      !!               - solar flux at the ocean and ice surfaces 
     421      !!               - the long-wave radiation for the ocean and sea/ice 
     422      !!               - turbulent heat fluxes over water and ice 
     423      !!               - evaporation over water 
     424      !!               - total heat fluxes sensitivity over ice (dQ/dT) 
     425      !!               - latent heat flux sensitivity over ice (dQla/dT) 
     426      !!               - qns  :  modified the non solar heat flux over the ocean 
     427      !!                         to take into account solid precip latent heat flux 
    417428      !!---------------------------------------------------------------------- 
    418429      REAL(wp), INTENT(in   ), DIMENSION(:,:,:)   ::   pst      ! ice surface temperature                   [Kelvin] 
     
    594605      ! 
    595606      ! ----------------------------------------------------------------------------- ! 
    596       !    Total FLUXES                                                       ! 
     607      !    Total FLUXES                                                               ! 
    597608      ! ----------------------------------------------------------------------------- ! 
    598609      ! 
     
    601612!CDIR COLLAPSE 
    602613      p_tpr(:,:)   = sf(jp_prec)%fnow(:,:,1) / rday                     ! total precipitation [kg/m2/s] 
     614      ! 
     615      ! ----------------------------------------------------------------------------- ! 
     616      !    Correct the OCEAN non solar flux with the existence of solid precipitation ! 
     617      ! ---------------=====--------------------------------------------------------- ! 
     618!CDIR COLLAPSE 
     619      qns(:,:) = qns(:,:)                                                           &   ! update the non-solar heat flux with: 
     620         &     - p_spr(:,:) * lfus                                                  &   ! remove melting solid precip 
     621         &     + p_spr(:,:) * MIN( sf(jp_tair)%fnow(:,:,1), rt0_snow - rt0 ) * cpic &   ! add solid P at least below melting 
     622         &     - p_spr(:,:) * sf(jp_tair)%fnow(:,:,1)                        * rcp      ! remove solid precip. at Tair 
    603623      ! 
    604624!!gm : not necessary as all input data are lbc_lnk... 
Note: See TracChangeset for help on using the changeset viewer.