Changeset 11845


Ignore:
Timestamp:
2019-11-04T11:11:58+01:00 (12 months ago)
Author:
laurent
Message:

Improving syntax consistency

Location:
NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_coare3p0.F90

    r11817 r11845  
    178178      LOGICAL :: l_zt_equal_zu = .FALSE.      ! if q and t are given at same height as U 
    179179      ! 
    180       REAL(wp), DIMENSION(jpi,jpj) ::  & 
    181          &  u_star, t_star, q_star, & 
    182          &  dt_zu, dq_zu,    & 
    183          &  znu_a,           & !: Nu_air, Viscosity of air 
    184          &  z0, z0t 
    185       REAL(wp), DIMENSION(jpi,jpj) ::   zeta_u        ! stability parameter at height zu 
    186       REAL(wp), DIMENSION(jpi,jpj) ::   ztmp0, ztmp1, ztmp2 
    187       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   zeta_t        ! stability parameter at height zt 
     180      REAL(wp), DIMENSION(jpi,jpj) :: u_star, t_star, q_star 
     181      REAL(wp), DIMENSION(jpi,jpj) :: dt_zu, dq_zu 
     182      REAL(wp), DIMENSION(jpi,jpj) :: znu_a,        !: Nu_air, Viscosity of air 
     183      REAL(wp), DIMENSION(jpi,jpj) :: z0, z0t 
     184      REAL(wp), DIMENSION(jpi,jpj) :: zeta_u        ! stability parameter at height zu 
     185      REAL(wp), DIMENSION(jpi,jpj) :: ztmp0, ztmp1, ztmp2 
    188186      ! 
    189187      REAL(wp), DIMENSION(:,:), ALLOCATABLE :: & 
     188         &              zeta_t,   &  ! stability parameter at height zt 
    190189         &                zsst,   &  ! to back up the initial bulk SST 
    191190         &                pdTc,   &  ! SST increment "dT" for cool-skin correction           [K] 
     
    299298         !! Roughness lengthes z0, z0t (z0q = z0t) : 
    300299         ztmp2 = u_star/vkarmn*LOG(10./z0)                                 ! Neutral wind speed at 10m 
    301          z0    = alfa_charn_3p0(ztmp2)*ztmp1/grav + 0.11_wp*znu_a/u_star   ! Roughness length (eq.6) 
     300         z0    = alfa_charn_3p0(ztmp2)*ztmp1/grav + 0.11_wp*znu_a/u_star   ! Roughness length (eq.6) [ ztmp1==u*^2 ] 
    302301         z0     = MIN( MAX(ABS(z0), 1.E-9) , 1._wp )                      ! (prevents FPE from stupid values from masked region later on) 
    303302 
  • NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_coare3p6.F90

    r11817 r11845  
    178178      LOGICAL :: l_zt_equal_zu = .FALSE.      ! if q and t are given at same height as U 
    179179      ! 
    180       REAL(wp), DIMENSION(jpi,jpj) ::  & 
    181          &  u_star, t_star, q_star, & 
    182          &  dt_zu, dq_zu,    & 
    183          &  znu_a,           & !: Nu_air, Viscosity of air 
    184          &  z0, z0t 
    185       REAL(wp), DIMENSION(jpi,jpj) ::   zeta_u        ! stability parameter at height zu 
    186       REAL(wp), DIMENSION(jpi,jpj) ::   ztmp0, ztmp1, ztmp2 
    187       REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   zeta_t        ! stability parameter at height zt 
     180      REAL(wp), DIMENSION(jpi,jpj) :: u_star, t_star, q_star 
     181      REAL(wp), DIMENSION(jpi,jpj) :: dt_zu, dq_zu 
     182      REAL(wp), DIMENSION(jpi,jpj) :: znu_a,        !: Nu_air, Viscosity of air 
     183      REAL(wp), DIMENSION(jpi,jpj) :: z0, z0t 
     184      REAL(wp), DIMENSION(jpi,jpj) :: zeta_u        ! stability parameter at height zu 
     185      REAL(wp), DIMENSION(jpi,jpj) :: ztmp0, ztmp1, ztmp2 
    188186      ! 
    189187      REAL(wp), DIMENSION(:,:), ALLOCATABLE :: & 
     188         &              zeta_t,   &  ! stability parameter at height zt 
    190189         &                zsst,   &  ! to back up the initial bulk SST 
    191190         &                pdTc,   &  ! SST increment "dT" for cool-skin correction           [K] 
  • NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_ecmwf.F90

    r11816 r11845  
    414414      REAL(wp) :: zzeta, zx, ztmp, psi_unst, psi_stab, stab 
    415415      !!---------------------------------------------------------------------------------- 
    416       ! 
    417416      DO jj = 1, jpj 
    418417         DO ji = 1, jpi 
     
    441440         END DO 
    442441      END DO 
    443       ! 
    444442   END FUNCTION psi_m_ecmwf 
    445443 
     
    486484         END DO 
    487485      END DO 
    488       ! 
    489486   END FUNCTION psi_h_ecmwf 
    490487 
  • NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_algo_ncar.F90

    r11631 r11845  
    4242   PRIVATE 
    4343 
    44    PUBLIC ::   TURB_NCAR   ! called by sbcblk.F90 
    45     
    46    INTEGER , PARAMETER ::   nb_itt = 4        ! number of itterations 
     44   PUBLIC :: TURB_NCAR   ! called by sbcblk.F90 
     45 
     46   INTEGER , PARAMETER ::   nb_itt = 5        ! number of itterations 
    4747 
    4848   !!---------------------------------------------------------------------- 
     
    5252      &                  Cd, Ch, Ce, t_zu, q_zu, U_blk,      & 
    5353      &                  Cdn, Chn, Cen                       ) 
    54       !!---------------------------------------------------------------------------------- 
     54      !!---------------------------------------------------------------------- 
    5555      !!                      ***  ROUTINE  turb_ncar  *** 
    5656      !! 
     
    6464      !! ------- 
    6565      !!    *  zt   : height for temperature and spec. hum. of air            [m] 
    66       !!    *  zu   : height for wind speed (generally 10m)                   [m] 
    67       !!    *  U_zu : scalar wind speed at 10m                                [m/s] 
    68       !!    *  sst  : SST                                                     [K] 
     66      !!    *  zu   : height for wind speed (usually 10m)                     [m] 
     67      !!    *  sst  : bulk SST                                                [K] 
    6968      !!    *  t_zt : potential air temperature at zt                         [K] 
    7069      !!    *  ssq  : specific humidity at saturation at SST                  [kg/kg] 
    7170      !!    *  q_zt : specific humidity of air at zt                          [kg/kg] 
     71      !!    *  U_zu : scalar wind speed at zu                                 [m/s] 
    7272      !! 
    7373      !! 
     
    7979      !!    *  t_zu   : pot. air temperature adjusted at wind height zu       [K] 
    8080      !!    *  q_zu   : specific humidity of air        //                    [kg/kg] 
    81       !!    *  U_blk  : bulk wind speed at 10m                                [m/s] 
     81      !!    *  U_blk  : bulk wind speed at zu                                 [m/s] 
    8282      !! 
    8383      !! 
     
    8989      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   t_zt     ! potential air temperature              [Kelvin] 
    9090      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   ssq      ! sea surface specific humidity           [kg/kg] 
    91       REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   q_zt     ! specific air humidity                   [kg/kg] 
     91      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   q_zt     ! specific air humidity at zt             [kg/kg] 
    9292      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj) ::   U_zu     ! relative wind module at zu                [m/s] 
    9393      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   Cd       ! transfer coefficient for momentum         (tau) 
     
    9696      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   t_zu     ! pot. air temp. adjusted at zu               [K] 
    9797      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   q_zu     ! spec. humidity adjusted at zu           [kg/kg] 
    98       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   U_blk    ! bulk wind at 10m                          [m/s] 
     98      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   U_blk    ! bulk wind speed at zu                     [m/s] 
    9999      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   Cdn, Chn, Cen ! neutral transfer coefficients 
    100100      ! 
     
    111111      ! 
    112112      l_zt_equal_zu = .FALSE. 
    113       IF( ABS(zu - zt) < 0.01 )   l_zt_equal_zu = .TRUE.    ! testing "zu == zt" is risky with double precision 
     113      IF( ABS(zu - zt) < 0.01_wp )   l_zt_equal_zu = .TRUE.    ! testing "zu == zt" is risky with double precision 
    114114 
    115115      U_blk = MAX( 0.5_wp , U_zu )   !  relative wind speed at zu (normally 10m), we don't want to fall under 0.5 m/s 
     
    143143      t_zu = t_zt   ;   q_zu = q_zt 
    144144 
    145       !!  * Now starting iteration loop 
    146       DO j_itt=1, nb_itt 
     145      !! ITERATION BLOCK 
     146      DO j_itt = 1, nb_itt 
    147147         ! 
    148148         ztmp1 = t_zu - sst   ! Updating air/sea differences 
     
    217217         Ce  = Cx_n10*ztmp2 / ztmp1  ! L&Y 2004 eq. (10c) 
    218218         ENDIF 
    219          ! 
    220       END DO 
    221       ! 
     219 
     220      END DO !DO j_itt = 1, nb_itt 
     221 
    222222   END SUBROUTINE turb_ncar 
    223223 
     
    265265      !! Universal profile stability function for momentum 
    266266      !!    !! Psis, L&Y 2004 eq. (8c), (8d), (8e) 
    267       !!      
    268       !! pzet0 : stability paramenter, z/L where z is altitude measurement                                           
     267      !! 
     268      !! pzeta : stability paramenter, z/L where z is altitude measurement 
    269269      !!         and L is M-O length 
    270270      !! 
    271       !! ** Author: L. Brodeau, june 2016 / AeroBulk (https://github.com/brodeau/aerobulk/) 
    272       !!---------------------------------------------------------------------------------- 
    273       REAL(wp), DIMENSION(jpi,jpj), INTENT(in) ::   pzeta 
    274       REAL(wp), DIMENSION(jpi,jpj)             ::   psi_m 
    275       ! 
    276       INTEGER  ::   ji, jj         ! dummy loop indices 
     271      !! ** Author: L. Brodeau, June 2016 / AeroBulk (https://github.com/brodeau/aerobulk/) 
     272      !!---------------------------------------------------------------------------------- 
     273      REAL(wp), DIMENSION(jpi,jpj) :: psi_m 
     274      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: pzeta 
     275      ! 
     276      INTEGER  ::   ji, jj    ! dummy loop indices 
    277277      REAL(wp) :: zx2, zx, zstab   ! local scalars 
    278278      !!---------------------------------------------------------------------------------- 
    279       ! 
    280279      DO jj = 1, jpj 
    281280         DO ji = 1, jpi 
     
    291290         END DO 
    292291      END DO 
    293       ! 
    294292   END FUNCTION psi_m 
    295293 
     
    300298      !!    !! Psis, L&Y 2004 eq. (8c), (8d), (8e) 
    301299      !! 
    302       !! pzet0 : stability paramenter, z/L where z is altitude measurement                                           
     300      !! pzeta : stability paramenter, z/L where z is altitude measurement 
    303301      !!         and L is M-O length 
    304302      !! 
    305       !! ** Author: L. Brodeau, june 2016 / AeroBulk (https://github.com/brodeau/aerobulk/) 
    306       !!---------------------------------------------------------------------------------- 
     303      !! ** Author: L. Brodeau, June 2016 / AeroBulk (https://github.com/brodeau/aerobulk/) 
     304      !!---------------------------------------------------------------------------------- 
     305      REAL(wp), DIMENSION(jpi,jpj) :: psi_h 
    307306      REAL(wp), DIMENSION(jpi,jpj), INTENT(in) :: pzeta 
    308       REAL(wp), DIMENSION(jpi,jpj)             :: psi_h 
    309       ! 
    310       INTEGER  ::   ji, jj    ! dummy loop indices 
     307      ! 
     308      INTEGER  ::   ji, jj     ! dummy loop indices 
    311309      REAL(wp) :: zx2, zstab  ! local scalars 
    312310      !!---------------------------------------------------------------------------------- 
     
    323321         END DO 
    324322      END DO 
    325       ! 
    326323   END FUNCTION psi_h 
    327324 
  • NEMO/branches/2019/dev_r11085_ASINTER-05_Brodeau_Advanced_Bulk/src/OCE/SBC/sbcblk_phy.F90

    r11841 r11845  
    269269      ! 
    270270      INTEGER  ::   ji, jj         ! dummy loop indices 
    271       REAL(wp) :: zta, zqa, zwa, ziRT        ! local scalar 
    272       !!---------------------------------------------------------------------------------- 
    273       ! 
    274       DO jj = 1, jpj 
    275          DO ji = 1, jpi 
    276             zta = MAX( ptak(ji,jj),  180._wp) ! prevents screw-up over masked regions where field == 0. 
    277             zqa = MAX( pqa(ji,jj),  1.E-6_wp) !    "                   "                     " 
    278             ! 
    279             zwa = zqa / (1. - zqa)   ! w is mixing ratio w = q/(1-q) | q = w/(1+w) 
    280             ziRT = 1._wp/(R_dry*zta)    ! 1/RT 
    281             gamma_moist_vctr(ji,jj) = grav * ( 1._wp + rLevap*zwa*ziRT ) / ( rCp_dry + rLevap*rLevap*zwa*reps0*ziRT/zta ) 
    282          END DO 
    283       END DO 
    284       ! 
     271      !!---------------------------------------------------------------------------------- 
     272      DO jj = 1, jpj 
     273         DO ji = 1, jpi 
     274            gamma_moist_vctr(ji,jj) = gamma_moist_sclr( ptak(ji,jj), pqa(ji,jj) ) 
     275         END DO 
     276      END DO 
    285277   END FUNCTION gamma_moist_vctr 
    286278 
Note: See TracChangeset for help on using the changeset viewer.