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 1230 for trunk – NEMO

Changeset 1230 for trunk


Ignore:
Timestamp:
2008-12-01T08:10:47+01:00 (16 years ago)
Author:
smasson
Message:

new coupling inteface: compute wind speed from tau, see ticket:155

Location:
trunk/NEMO/OPA_SRC/SBC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r1226 r1230  
    1111   IMPLICIT NONE 
    1212   PRIVATE 
     13    
     14   PUBLIC sbc_tau2wnd   ! compute wind speed based on the wind stress 
    1315    
    1416   !!---------------------------------------------------------------------- 
     
    6769   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    6870   !!====================================================================== 
     71CONTAINS 
     72 
     73   SUBROUTINE sbc_tau2wnd 
     74      !!--------------------------------------------------------------------- 
     75      !!                    ***  ROUTINE sbc_tau2wnd  *** 
     76      !!                    
     77      !! ** Purpose : Estimation of wind speed as a function of wind stress    
     78      !! 
     79      !! ** Method  : |tau|=rhoa*Cd*|U|^2 
     80      !!--------------------------------------------------------------------- 
     81      USE dom_oce         ! ocean space and time domain 
     82      USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
     83      REAL(wp) ::   zrhoa  = 1.22         ! Air density kg/m3 
     84      REAL(wp) ::   zcdrag = 1.5e-3       ! drag coefficient 
     85      REAL(wp) ::   ztx, zty, ztau, zcoef ! temporary variables 
     86      INTEGER  ::   ji, jj                ! dummy indices 
     87      !! * Substitutions 
     88#  include "vectopt_loop_substitute.h90" 
     89      !!--------------------------------------------------------------------- 
     90      zcoef = 0.5 / ( zrhoa * zcdrag )  
     91!CDIR NOVERRCHK 
     92      DO jj = 2, jpjm1 
     93!CDIR NOVERRCHK 
     94         DO ji = fs_2, fs_jpim1   ! vect. opt. 
     95            ztx = utau(ji-1,jj  ) + utau(ji,jj)  
     96            zty = vtau(ji  ,jj-1) + vtau(ji,jj)  
     97            ztau = SQRT( ztx * ztx + zty * zty ) 
     98            wndm(ji,jj) = SQRT ( ztau * zcoef ) * tmask(ji,jj,1) 
     99         END DO 
     100      END DO 
     101      CALL lbc_lnk( wndm(:,:) , 'T', 1. ) 
     102 
     103   END SUBROUTINE sbc_tau2wnd 
     104 
    69105END MODULE sbc_oce 
  • trunk/NEMO/OPA_SRC/SBC/sbcana.F90

    r1156 r1230  
    3434   REAL(wp) ::   rn_qsr0   = 0.e0   !     solar heat flux 
    3535   REAL(wp) ::   rn_emp0   = 0.e0   ! net freshwater flux 
    36   
    37    REAL(wp) ::   rhoa      = 1.22   ! Air density kg/m3 
    38    REAL(wp) ::   cdrag     = 1.5e-3 ! drag coefficient 
    39    
     36    
    4037   !! * Substitutions 
    4138#  include "domzgr_substitute.h90" 
     
    6966      INTEGER             ::   ji, jj          ! dummy loop indices 
    7067      REAL(wp)            ::   zfacto          ! local scalar 
    71       REAL(wp)            ::   ztx, zty, ztau  ! local scalar 
    7268      !! 
    7369      NAMELIST/namsbc_ana/ nn_tau000, rn_utau0, rn_vtau0, rn_qns0, rn_qsr0, rn_emp0 
     
    105101 
    106102      ! Estimation of wind speed as a function of wind stress ( |tau|=rhoa*Cd*|U|^2 ) 
    107       zfacto = 0.5 / ( rhoa * cdrag ) 
    108 !CDIR NOVERRCHK 
    109       DO jj = 2, jpjm1 
    110 !CDIR NOVERRCHK 
    111          DO ji = fs_2, fs_jpim1   ! vect. opt. 
    112             ztx = utau(ji-1,jj  ) + utau(ji,jj)             
    113             zty = vtau(ji  ,jj-1) + vtau(ji,jj)  
    114             ztau = SQRT( ztx * ztx + zty * zty ) 
    115             wndm(ji,jj) = SQRT ( ztau * zfacto ) * tmask(ji,jj,1) 
    116          END DO 
    117       END DO 
    118       CALL lbc_lnk( wndm(:,:) , 'T', 1. ) 
     103      CALL sbc_tau2wnd 
    119104      ! 
    120105   END SUBROUTINE sbc_ana 
     
    152137      REAL(wp) ::   zcos_sais1, zcos_sais2, ztrp, zconv, t_star 
    153138      REAL(wp) ::   zsumemp, zsurf 
    154       REAL(wp) ::   ztx, zty, zfacto 
    155139      !!--------------------------------------------------------------------- 
    156140          
     
    270254 
    271255      ! Estimation of wind speed as a function of wind stress ( |tau|=rhoa*Cd*|U|^2 ) 
    272       zfacto = 0.5 / ( rhoa * cdrag ) 
    273 !CDIR NOVERRCHK 
    274       DO jj = 2, jpjm1 
    275 !CDIR NOVERRCHK 
    276          DO ji = fs_2, fs_jpim1   ! vect. opt. 
    277             ztx = utau(ji-1,jj  ) + utau(ji,jj) 
    278             zty = vtau(ji  ,jj-1) + vtau(ji,jj) 
    279             ztau = SQRT( ztx * ztx + zty * zty ) 
    280             wndm(ji,jj) = SQRT ( ztau * zfacto ) * tmask(ji,jj,1) 
    281          END DO 
    282       END DO 
    283       CALL lbc_lnk( wndm(:,:) , 'T', 1. ) 
     256      CALL sbc_tau2wnd 
    284257 
    285258      ! ---------------------------------- ! 
  • trunk/NEMO/OPA_SRC/SBC/sbccpl.F90

    r1227 r1230  
    568568         utau(:,:) = frcv(:,:,jpr_otx1)                    
    569569         vtau(:,:) = frcv(:,:,jpr_oty1) 
     570         IF( .NOT. srcv(jpr_w10m)%laction )   CALL sbc_tau2wnd 
    570571      ENDIF 
    571572      !                                                      ! ========================= ! 
     
    615616         ! 
    616617         emps(:,:) = emp(:,:)                                        ! concentration/dilution = emp 
    617  
    618          !                                                       ! 10 m wind speed 
    619 !!AC         IF( srcv(jpr_w10m)%laction )   wind10m(:,:) = frcv(:,:,jpr_w10m) 
    620 !!gm ---> blinder dans tke  si cn_rcv_w10m == 'none' 
     618   
     619         !                                                           ! 10 m wind speed 
     620         IF( srcv(jpr_w10m)%laction )   wndm(:,:) = frcv(:,:,jpr_w10m) 
     621         ! it not, we call sbc_tau2wnd in sbc_cpl_rcv (or later, after the ice???) 
    621622         ! 
    622623      ENDIF 
     
    861862      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   pemp_ice   ! ice solid freshwater budget  [Kg/m2/s] 
    862863      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   psprecip   ! solid precipitation          [Kg/m2/s] 
    863       REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   pdqns_ice  
     864      REAL(wp), INTENT(  out), DIMENSION(jpi,jpj) ::   pdqns_ice  ! d(Q non solar)/d(Temperature) over ice 
    864865     !! 
    865866      INTEGER ::   ji, jj           ! dummy loop indices 
     
    950951!!gm  cpl_albedo ???? kezako ?????   je pige pas grand chose ici.... 
    951952         pqsr_ice(:,:) = frcv(:,:,jpr_qsrmix) * ( 1.- palbi(:,:) )   & 
    952             &          / (  1.- ( albedo_oce_mix(ji,jj) * ( 1.- p_frld(ji,jj) )   & 
    953             &                   + palbi         (ji,jj) *       p_frld(ji,jj)   )  ) 
     953            &          / (  1.- ( albedo_oce_mix(:,:) * ( 1.- p_frld(:,:) )   & 
     954            &                   + palbi         (:,:) *       p_frld(:,:)   )  ) 
    954955      END SELECT 
    955956 
  • trunk/NEMO/OPA_SRC/SBC/sbcflx.F90

    r1200 r1230  
    4949   TYPE(FLD), ALLOCATABLE, DIMENSION(:) ::   sf    ! structure of input fields (file informations, fields read) 
    5050 
    51    REAL(wp) ::   rhoa  = 1.22         ! Air density kg/m3 
    52    REAL(wp) ::   cdrag = 1.5e-3       ! drag coefficient 
    53  
    5451   !! * Substitutions 
    5552#  include "domzgr_substitute.h90" 
     
    9996      INTEGER  ::   ierror       ! return error code 
    10097      REAL(wp) ::   zfact        ! temporary scalar 
    101       REAL(wp) ::   ztx, zty, ztau, zcoef 
    10298      !! 
    10399      CHARACTER(len=100) ::  cn_dir                               ! Root directory for location of flx files 
     
    163159 
    164160      ! Estimation of wind speed as a function of wind stress ( |tau|=rhoa*Cd*|U|^2 ) 
    165       zcoef = 0.5 / ( rhoa * cdrag )  
    166 !CDIR NOVERRCHK 
    167       DO jj = 2, jpjm1 
    168 !CDIR NOVERRCHK 
    169          DO ji = fs_2, fs_jpim1   ! vect. opt. 
    170             ztx = utau(ji-1,jj  ) + utau(ji,jj)  
    171             zty = vtau(ji  ,jj-1) + vtau(ji,jj)  
    172             ztau = SQRT( ztx * ztx + zty * zty ) 
    173             wndm(ji,jj) = SQRT ( ztau * zcoef ) * tmask(ji,jj,1) 
    174          END DO 
    175       END DO 
    176       CALL lbc_lnk( wndm(:,:) , 'T', 1. ) 
     161      CALL sbc_tau2wnd 
    177162 
    178163      ! control print (if less than 100 time-step asked) 
Note: See TracChangeset for help on using the changeset viewer.