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 6727 for branches/2016/dev_r6711_SIMPLIF_6_aerobulk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_coare.F90 – NEMO

Ignore:
Timestamp:
2016-06-21T16:25:51+02:00 (8 years ago)
Author:
gm
Message:

#1751 - branch SIMPLIF_6_aerobulk: minor correction

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6711_SIMPLIF_6_aerobulk/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_algo_coare.F90

    r6723 r6727  
    1818   !!            Author: Laurent Brodeau, 2016, brodeau@gmail.com 
    1919   !! 
    20    !!==================================================================================== 
    21  
    22    !! History :  3.6  !  2016-02  (L.Brodeau) Original code 
     20   !!====================================================================== 
     21   !! History :  3.6  !  2016-02  (L.Brodeau)   Original code 
     22   !!---------------------------------------------------------------------- 
    2323 
    2424   !!---------------------------------------------------------------------- 
     
    2727   !!                   returns the effective bulk wind speed at 10m 
    2828   !!---------------------------------------------------------------------- 
    29  
    30    USE oce             ! ocean dynamics and tracers 
    31    USE dom_oce         ! ocean space and time domain 
    32    USE phycst          ! physical constants 
    33    USE iom             ! I/O manager library 
    34    USE lib_mpp         ! distribued memory computing library 
    35    USE wrk_nemo        ! work arrays 
    36    USE timing          ! Timing 
    37    USE in_out_manager  ! I/O manager 
    38    USE prtctl          ! Print control 
    39    USE sbcwave, ONLY   :  cdn_wave ! wave module 
     29   USE oce            ! ocean dynamics and tracers 
     30   USE dom_oce        ! ocean space and time domain 
     31   USE phycst         ! physical constants 
     32   USE sbc_oce        ! Surface boundary condition: ocean fields 
     33   USE sbcwave, ONLY  :  cdn_wave ! wave module 
    4034#if defined key_lim3 || defined key_cice 
    41    USE sbc_ice         ! Surface boundary condition: ice fields 
     35   USE sbc_ice        ! Surface boundary condition: ice fields 
    4236#endif 
    43    USE lib_fortran     ! to use key_nosignedzero 
    44  
    45    USE sbc_oce         ! Surface boundary condition: ocean fields 
     37   ! 
     38   USE in_out_manager ! I/O manager 
     39   USE iom            ! I/O manager library 
     40   USE lib_mpp        ! distribued memory computing library 
     41   USE wrk_nemo       ! work arrays 
     42   USE timing         ! Timing 
     43   USE prtctl         ! Print control 
     44   USE lib_fortran    ! to use key_nosignedzero 
     45 
    4646 
    4747   IMPLICIT NONE 
    4848   PRIVATE 
    4949 
    50    PUBLIC :: TURB_COARE 
     50   PUBLIC ::   TURB_COARE   ! called by sbcblk.F90 
    5151 
    5252   !! COARE own values for given constants: 
     
    7171      !! 
    7272      !! ** Method : Monin Obukhov Similarity Theory 
    73       !!====================================================================================== 
     73      !!---------------------------------------------------------------------- 
    7474      !! 
    7575      !! INPUT : 
     
    9292      !!    *  q_zu   : specific humidity of air        //                    [kg/kg] 
    9393      !!    *  U_blk  : bulk wind at 10m                                      [m/s] 
    94       !! 
    95       !! 
    96       !!============================================================================ 
    97  
    98  
    99       REAL(wp), INTENT(in   )                     ::   zt       ! height for t_zt and q_zt                   [m] 
    100       REAL(wp), INTENT(in   )                     ::   zu       ! height for U_zu                              [m] 
    101       REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   sst      ! sea surface temperature              [Kelvin] 
    102       REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   t_zt     ! potential air temperature            [Kelvin] 
    103       REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   ssq      ! sea surface specific humidity         [kg/kg] 
    104       REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   q_zt     ! specific air humidity                 [kg/kg] 
    105       REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   U_zu     ! relative wind module at zu            [m/s] 
     94      !!---------------------------------------------------------------------- 
     95      REAL(wp), INTENT(in   )                     ::   zt       ! height for t_zt and q_zt                    [m] 
     96      REAL(wp), INTENT(in   )                     ::   zu       ! height for U_zu                             [m] 
     97      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   sst      ! sea surface temperature                [Kelvin] 
     98      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   t_zt     ! potential air temperature              [Kelvin] 
     99      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   ssq      ! sea surface specific humidity           [kg/kg] 
     100      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   q_zt     ! specific air humidity at zt             [kg/kg] 
     101      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   U_zu     ! relative wind module at zu                [m/s] 
    106102      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   Cd       ! transfer coefficient for momentum         (tau) 
    107103      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   Ch       ! transfer coefficient for sensible heat (Q_sens) 
    108104      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   Ce       ! transfert coefficient for evaporation   (Q_lat) 
    109       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   t_zu     ! pot. air temp. adjusted at zu             [K] 
    110       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   q_zu     ! spec. humidity adjusted at zu             [kg/kg] 
     105      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   t_zu     ! pot. air temp. adjusted at zu               [K] 
     106      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   q_zu     ! spec. humidity adjusted at zu           [kg/kg] 
    111107      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   U_blk    ! bulk wind at 10m                          [m/s] 
    112  
     108      ! 
    113109      INTEGER :: j_itt 
    114110      LOGICAL ::   l_zt_equal_zu = .FALSE.      ! if q and t are given at same height as U 
     
    123119      REAL(wp), DIMENSION(:,:), POINTER ::   zeta_t        ! stability parameter at height zt 
    124120      REAL(wp), DIMENSION(:,:), POINTER ::   ztmp0, ztmp1, ztmp2 
    125  
     121      !!---------------------------------------------------------------------- 
     122      ! 
    126123      IF( nn_timing == 1 )  CALL timing_start('turb_coare') 
    127124 
    128       CALL wrk_alloc( jpi,jpj, u_star, t_star, q_star, zeta_u, dt_zu, dq_zu) 
    129       CALL wrk_alloc( jpi,jpj, znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 
     125      CALL wrk_alloc( jpi,jpj,   u_star, t_star, q_star, zeta_u, dt_zu, dq_zu) 
     126      CALL wrk_alloc( jpi,jpj,   znu_a, z0, z0t, ztmp0, ztmp1, ztmp2 ) 
    130127 
    131128      l_zt_equal_zu = .FALSE. 
     
    136133      !! First guess of temperature and humidity at height zu: 
    137134      t_zu = MAX(t_zt , 0.0)    ! who knows what's given on masked-continental regions... 
    138       q_zu = MAX(q_zt , 1.E-6)  !               " 
     135      q_zu = MAX(q_zt , 1.e-6)  !               " 
    139136 
    140137      !! Pot. temp. difference (and we don't want it to be 0!) 
     
    258255 
    259256 
    260  
    261  
    262257   FUNCTION alfa_charn( pwnd ) 
    263258      !!------------------------------------------------------------------- 
     
    270265      !! Wind greater than 18 m/s :  alfa = 0.018 
    271266      !! 
    272       !! Author: L. Brodeau, june 2016 / AeroBulk 
    273       !!         (https://sourceforge.net/p/aerobulk) 
     267      !! Author: L. Brodeau, june 2016 / AeroBulk  (https://sourceforge.net/p/aerobulk) 
    274268      !!------------------------------------------------------------------- 
    275269      REAL(wp), DIMENSION(jpi,jpj) :: alfa_charn 
     
    278272      INTEGER  ::   ji, jj         ! dummy loop indices 
    279273      REAL(wp) :: zw, zgt10, zgt18 
     274      !!------------------------------------------------------------------- 
    280275      ! 
    281276      DO jj = 1, jpj 
     
    296291      ! 
    297292   END FUNCTION alfa_charn 
    298  
    299293 
    300294 
     
    315309      INTEGER  ::   ji, jj         ! dummy loop indices 
    316310      REAL(wp) ::     zqa          ! local scalar 
     311      !!------------------------------------------------------------------- 
    317312      ! 
    318313      DO jj = 1, jpj 
Note: See TracChangeset for help on using the changeset viewer.