- Timestamp:
- 2008-12-01T08:10:47+01:00 (16 years ago)
- Location:
- trunk/NEMO/OPA_SRC/SBC
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/sbc_oce.F90
r1226 r1230 11 11 IMPLICIT NONE 12 12 PRIVATE 13 14 PUBLIC sbc_tau2wnd ! compute wind speed based on the wind stress 13 15 14 16 !!---------------------------------------------------------------------- … … 67 69 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 68 70 !!====================================================================== 71 CONTAINS 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 69 105 END MODULE sbc_oce -
trunk/NEMO/OPA_SRC/SBC/sbcana.F90
r1156 r1230 34 34 REAL(wp) :: rn_qsr0 = 0.e0 ! solar heat flux 35 35 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 40 37 !! * Substitutions 41 38 # include "domzgr_substitute.h90" … … 69 66 INTEGER :: ji, jj ! dummy loop indices 70 67 REAL(wp) :: zfacto ! local scalar 71 REAL(wp) :: ztx, zty, ztau ! local scalar72 68 !! 73 69 NAMELIST/namsbc_ana/ nn_tau000, rn_utau0, rn_vtau0, rn_qns0, rn_qsr0, rn_emp0 … … 105 101 106 102 ! 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 119 104 ! 120 105 END SUBROUTINE sbc_ana … … 152 137 REAL(wp) :: zcos_sais1, zcos_sais2, ztrp, zconv, t_star 153 138 REAL(wp) :: zsumemp, zsurf 154 REAL(wp) :: ztx, zty, zfacto155 139 !!--------------------------------------------------------------------- 156 140 … … 270 254 271 255 ! 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 284 257 285 258 ! ---------------------------------- ! -
trunk/NEMO/OPA_SRC/SBC/sbccpl.F90
r1227 r1230 568 568 utau(:,:) = frcv(:,:,jpr_otx1) 569 569 vtau(:,:) = frcv(:,:,jpr_oty1) 570 IF( .NOT. srcv(jpr_w10m)%laction ) CALL sbc_tau2wnd 570 571 ENDIF 571 572 ! ! ========================= ! … … 615 616 ! 616 617 emps(:,:) = emp(:,:) ! concentration/dilution = emp 617 618 ! ! 10 m wind speed619 !!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???) 621 622 ! 622 623 ENDIF … … 861 862 REAL(wp), INTENT( out), DIMENSION(jpi,jpj) :: pemp_ice ! ice solid freshwater budget [Kg/m2/s] 862 863 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 864 865 !! 865 866 INTEGER :: ji, jj ! dummy loop indices … … 950 951 !!gm cpl_albedo ???? kezako ????? je pige pas grand chose ici.... 951 952 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(:,:) ) ) 954 955 END SELECT 955 956 -
trunk/NEMO/OPA_SRC/SBC/sbcflx.F90
r1200 r1230 49 49 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf ! structure of input fields (file informations, fields read) 50 50 51 REAL(wp) :: rhoa = 1.22 ! Air density kg/m352 REAL(wp) :: cdrag = 1.5e-3 ! drag coefficient53 54 51 !! * Substitutions 55 52 # include "domzgr_substitute.h90" … … 99 96 INTEGER :: ierror ! return error code 100 97 REAL(wp) :: zfact ! temporary scalar 101 REAL(wp) :: ztx, zty, ztau, zcoef102 98 !! 103 99 CHARACTER(len=100) :: cn_dir ! Root directory for location of flx files … … 163 159 164 160 ! 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 177 162 178 163 ! control print (if less than 100 time-step asked)
Note: See TracChangeset
for help on using the changeset viewer.