Changeset 5458 for LMDZ6/trunk/libf/phylmd/lmdz_surf_wind.f90
- Timestamp:
- Dec 29, 2024, 12:41:42 AM (6 days ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lmdz_surf_wind.f90
r5445 r5458 2 2 CONTAINS 3 3 4 SUBROUTINE surf_wind(klon,ns rfwnd,zu10m,zv10m,sigmaw,cstar,ustar,wstar,wind10ms,probu)4 SUBROUTINE surf_wind(klon,nsurfwind,zu10m,zv10m,sigmaw,cstar,ustar,wstar,wind10ms,probu) 5 5 6 6 USE lmdz_surf_wind_ini, ONLY : iflag_surf_wind 7 7 8 8 IMPLICIT NONE 9 INTEGER, INTENT(IN) :: ns rfwnd, klon9 INTEGER, INTENT(IN) :: nsurfwind, klon 10 10 REAL, DIMENSION(klon), INTENT(IN) :: zu10m, zv10m 11 11 REAL, DIMENSION(klon), INTENT(IN) :: cstar 12 12 REAL, DIMENSION(klon), INTENT(IN) :: sigmaw 13 13 REAL, DIMENSION(klon), INTENT(IN) :: ustar, wstar 14 REAL, DIMENSION(klon,ns rfwnd), INTENT(OUT) :: wind10ms, probu14 REAL, DIMENSION(klon,nsurfwind), INTENT(OUT) :: wind10ms, probu 15 15 16 16 17 REAL, DIMENSION(klon,ns rfwnd) :: sigma_th, sigma_wk18 REAL, DIMENSION(klon,ns rfwnd) :: xp, yp, zz19 REAL, DIMENSION(klon,ns rfwnd) :: vwx, vwy, vw20 REAL, DIMENSION(klon,ns rfwnd) :: vtx, vty21 REAL, DIMENSION(klon,ns rfwnd) :: windx, windy, wind17 REAL, DIMENSION(klon,nsurfwind) :: sigma_th, sigma_wk 18 REAL, DIMENSION(klon,nsurfwind) :: xp, yp, zz 19 REAL, DIMENSION(klon,nsurfwind) :: vwx, vwy, vw 20 REAL, DIMENSION(klon,nsurfwind) :: vtx, vty 21 REAL, DIMENSION(klon,nsurfwind) :: windx, windy, wind 22 22 REAL, DIMENSION(klon) :: ubwk, vbwk ! ubwk et vbwk sont les vitesses moyennes dans les poches 23 23 REAL, DIMENSION(klon) :: weilambda, U10mMOD … … 30 30 REAL :: ktwk, ktth, kzth 31 31 32 print*,'LLLLLLLLLLLLLLLLLLLLL ns rfwnd=',nsrfwnd32 print*,'LLLLLLLLLLLLLLLLLLLLL nsurfwind=',nsurfwind 33 33 pi=2.*acos(0.) 34 34 ray=7000. … … 37 37 kzth=1. 38 38 kref=3 39 nwb=ns rfwnd39 nwb=nsurfwind 40 40 41 41 ubwk(klon) = zu10m(klon) … … 53 53 IF (iflag_surf_wind == 0) THEN 54 54 !U10mMOD=sqrt(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i)) 55 IF (ns rfwnd /= 1 ) THEN56 STOP 'Si iflag_surf_wind=0, ns rfwnd=1'55 IF (nsurfwind /= 1 ) THEN 56 STOP 'Si iflag_surf_wind=0, nsurfwind=1' 57 57 ENDIF 58 58 DO i=1,klon … … 66 66 67 67 DO i=1, klon 68 DO nmc=1, ns rfwnd68 DO nmc=1, nsurfwind 69 69 ! Utilisation de la distribution de weibull 70 70 !U10mMOD=sqrt(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i)) … … 90 90 91 91 DO i=1, klon 92 DO nmc=1, ns rfwnd92 DO nmc=1, nsurfwind 93 93 ! Utilisation de la distribution du vent a l interieur et a l exterieur des poches 94 94 call Random_number(zz) ! tirage uniforme entre 0 et 1. … … 122 122 wind(i,nmc) = sqrt(windx(i,nmc)**2 + windy(i,nmc)**2) 123 123 wind10ms(i,nmc) = wind(i,nmc) 124 probu(i,nmc) = wind(i,nmc)/ns rfwnd124 probu(i,nmc) = wind(i,nmc)/nsurfwind 125 125 126 126 ELSE … … 143 143 wind(i,nmc) = sqrt(windx(i,nmc)**2 + windy(i,nmc)**2) 144 144 wind10ms(i,nmc) = wind(i,nmc) 145 probu(i,nmc) = wind(i,nmc)/ns rfwnd145 probu(i,nmc) = wind(i,nmc)/nsurfwind 146 146 ! print*, 'wind10ms', wind10ms(i,nmc) 147 147 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.