Changeset 5635 for LMDZ6/trunk
- Timestamp:
- Apr 30, 2025, 8:10:21 AM (6 weeks ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/Dust/coarsemission.f90
r5337 r5635 5 5 xlat,xlon,debutphy, & 6 6 zu10m,zv10m,wstar,ale_bl,ale_wake, & 7 nsurfwind,wind10ms,probu, & 7 8 scale_param_ssacc,scale_param_sscoa, & 8 9 scale_param_dustacc,scale_param_dustcoa, & … … 35 36 !!USE paramet_mod_h 36 37 USE yomcst_mod_h 38 USE lmdz_surf_wind, ONLY : surf_wind 37 39 IMPLICIT NONE 38 40 … … 54 56 REAL, intent(in) :: xlat(klon) ! latitudes pour chaque point 55 57 REAL, intent(in) :: xlon(klon) ! longitudes pour chaque point 58 INTEGER, intent(in) :: nsurfwind 56 59 REAL,DIMENSION(klon),INTENT(IN) :: zu10m 57 60 REAL,DIMENSION(klon),INTENT(IN) :: zv10m 58 61 REAL,DIMENSION(klon),INTENT(IN) :: wstar,Ale_bl,ale_wake 62 REAL,DIMENSION(klon,nsurfwind),INTENT(IN) :: wind10ms 63 REAL,DIMENSION(klon,nsurfwind),INTENT(IN) :: probu 59 64 60 65 ! … … 190 195 param_wstarWAKE(i)=param_wstarWAKEperregion(iregion_wstardust(i)) 191 196 ENDDO 192 193 194 CALL dustemission( debutphy, xlat, xlon, pctsrf, &197 198 199 CALL dustemission( debutphy, xlat, xlon, nsurfwind, pctsrf, & 195 200 zu10m,zv10m,wstar,ale_bl,ale_wake, & 196 201 param_wstarBL, param_wstarWAKE, & 202 wind10ms, probu, & 197 203 dustsourceacc,dustsourcecoa, & 198 204 dustsourcesco,maskd) -
LMDZ6/trunk/libf/phylmd/Dust/dustemission_mod.f90
r5337 r5635 1 1 MODULE dustemission_mod 2 2 3 USE lmdz_surf_wind 3 4 IMPLICIT NONE 4 5 !Parameters … … 11 12 INTEGER, PARAMETER :: nmode=3 ! number of soil-dust modes 12 13 INTEGER, PARAMETER :: ntyp=5 ! number of soil types 13 INTEGER, PARAMETER :: nwb=12 ! number of points for the 10m wind14 !INTEGER, PARAMETER :: nwb=12 ! number of points for the 10m wind 14 15 ! speed weibull distribution (>=2) 15 16 real ,parameter :: z10m=1000. !10m in cm … … 165 166 END SUBROUTINE dustemis_out_init 166 167 167 SUBROUTINE dustemission( debutphy, xlat, xlon, & !Input168 SUBROUTINE dustemission( debutphy, xlat, xlon, nsurfwind, & !Input 168 169 pctsrf,zu10m,zv10m,wstar, & !Input 169 170 ale_bl,ale_wake, & !Input 170 param_wstarBL, param_wstarWAKE, & !Input 171 param_wstarBL, param_wstarWAKE, & !Input 172 wind10ms, probu, & !Input 171 173 emdustacc,emdustcoa,emdustsco,maskdust) !Output 172 174 USE dimphy … … 182 184 ! first: 183 185 ! Model grid parameters 186 INTEGER, INTENT(IN) :: nsurfwind 184 187 REAL,DIMENSION(klon), INTENT(IN) :: xlat 185 188 REAL,DIMENSION(klon), INTENT(IN) :: xlon … … 190 193 REAL,DIMENSION(klon),INTENT(IN) :: ale_bl 191 194 REAL,DIMENSION(klon),INTENT(IN) :: ale_wake 195 !REAL,DIMENSION(klon),INTENT(IN) :: wake_s 196 !REAL,DIMENSION(klon),INTENT(IN) :: wake_Cstar 197 !REAL,DIMENSION(klon),INTENT(IN) :: zustar 192 198 REAL,DIMENSION(klon), INTENT(IN) :: param_wstarWAKE 193 199 REAL,DIMENSION(klon), INTENT(IN) :: param_wstarBL 194 200 195 201 202 REAL,DIMENSION(klon,nsurfwind), INTENT(IN) :: wind10ms 203 REAL,DIMENSION(klon,nsurfwind), INTENT(IN) :: probu 204 196 205 LOGICAL :: debutphy ! First physiqs run or not 197 206 ! Intermediate variable: 12 bins emissions 198 REAL,DIMENSION(:,:), ALLOCATABLE,SAVE :: emisbinloc ! vertical emission fluxes 207 !REAL,DIMENSION(:,:), ALLOCATABLE,SAVE :: emisbinloc ! vertical emission fluxes 208 REAL, DIMENSION(:,:), ALLOCATABLE, SAVE :: emisbinloc 199 209 200 210 !OUT variables … … 206 216 ! REAL,DIMENSION(klon_glo) :: raux_klon_glo ! auxiliar 207 217 208 !$OMP THREADPRIVATE(emisbinloc) 218 INTEGER :: nwb 219 nwb = nsurfwind 220 !!!$OMP THREADPRIVATE(emisbinloc) 209 221 !!!!!!$OMP THREADPRIVATE(maskdust) 210 222 IF (debutphy) THEN … … 217 229 218 230 !JE20141124 CALL calcdustemission(debutphy,zu10m,zv10m,wstar,ale_bl,ale_wake,emisbinloc) 219 CALL calcdustemission(debutphy, zu10m,zv10m,wstar,ale_bl,ale_wake,param_wstarBL,param_wstarWAKE, & !I220 emisbinloc) !O231 CALL calcdustemission(debutphy,nsurfwind,zu10m,zv10m,wstar,ale_bl,ale_wake,param_wstarBL,param_wstarWAKE, & !I 232 wind10ms,probu,emisbinloc) !O 221 233 222 234 CALL makemask(maskdust) … … 654 666 varname='A' 655 667 CALL read_surface(varname,Aini) 656 print *,'beforewritephy',mpi_rank,omp_rank668 !print *,'beforewritephy',mpi_rank,omp_rank 657 669 CALL writefield_phy("SOLinit",solini,5) 658 670 CALL writefield_phy("Pinit",Pini,5) … … 662 674 CALL writefield_phy("Dinit",Dini,5) 663 675 CALL writefield_phy("Ainit",Aini,5) 664 print *,'afterwritephy',mpi_rank,omp_rank676 !print *,'afterwritephy',mpi_rank,omp_rank 665 677 666 678 DO i=1,klon … … 765 777 enddo 766 778 30 continue 767 print*,'IK5'779 ! print*,'IK5' 768 780 ncl=i-1 769 770 781 ! print*,' soil size classes used ',ncl,' / ',nclass 782 ! print*,' soil size min: ',sizeclass(1),' soil size max: ',sizeclass(ncl) 771 783 if(ncl.gt.nclass)stop 772 784 … … 775 787 !if (.true.) then 776 788 !c 0: Iversen and White 1982 777 print *,'Using Iversen and White 1982 Uth'789 ! print *,'Using Iversen and White 1982 Uth' 778 790 do i=1,ncl 779 791 bb=adust*(sizeclass(i)**xdust)+bdust … … 1107 1119 !-------------------------------------------------------------------------------------- 1108 1120 1109 SUBROUTINE calcdustemission(debutphy, zu10m,zv10m,wstar, &1121 SUBROUTINE calcdustemission(debutphy,nsurfwind,zu10m,zv10m,wstar, & 1110 1122 ale_bl,ale_wake,param_wstarBL,param_wstarWAKE, & 1123 wind10ms, probu, & 1111 1124 emisbin) 1112 1125 ! emisions over 12 dust bin … … 1117 1130 ! Input 1118 1131 LOGICAL, INTENT(IN) :: debutphy ! First physiqs run or not 1132 INTEGER, INTENT(IN) :: nsurfwind ! First physiqs run or not 1119 1133 REAL,DIMENSION(klon),INTENT(IN) :: zu10m ! 10m zonal wind 1120 1134 REAL,DIMENSION(klon),INTENT(IN) :: zv10m ! meridional 10m wind … … 1122 1136 REAL,DIMENSION(klon),INTENT(IN) :: ale_bl 1123 1137 REAL,DIMENSION(klon),INTENT(IN) :: ale_wake 1138 REAL,DIMENSION(klon,nsurfwind),INTENT(IN) :: wind10ms 1139 REAL,DIMENSION(klon,nsurfwind),INTENT(IN) :: probu 1124 1140 1125 1141 ! Local variables … … 1130 1146 REAL,DIMENSION(klon), INTENT(IN) :: param_wstarBL 1131 1147 REAL,DIMENSION(:,:), ALLOCATABLE,SAVE :: fluxdust ! horizonal emission fluxes in UNITS for the nmod soil aerosol modes 1132 REAL,DIMENSION(:), ALLOCATABLE,SAVE :: wind10ms ! 10m wind distribution in m/s1133 REAL,DIMENSION(:), ALLOCATABLE,SAVE :: wind10cm ! 10m wind distribution in cm/s1148 !REAL,DIMENSION(:), ALLOCATABLE,SAVE :: wind10ms ! 10m wind distribution in m/s 1149 !REAL,DIMENSION(:), ALLOCATABLE,SAVE :: wind10cm ! 10m wind distribution in cm/s 1134 1150 REAL,DIMENSION(klon) :: zwstar 1135 REAL,DIMENSION(nwb) :: probu1151 !REAL,DIMENSION(nwb) :: probu 1136 1152 ! REAL, DIMENSION(nmode) :: fluxN,ftN,adN,fdpN,pN,eN ! in the original code N=1,2,3 1137 1153 REAL :: flux1,flux2,flux3,ft1,ft2,ft3 … … 1147 1163 REAL :: dfec1,dfec2,dfec3,t1,t2,t3,p1,p2,p3,dec,ec 1148 1164 ! auxiliar counters 1149 INTEGER :: kwb 1165 INTEGER :: kwb, nwb 1150 1166 INTEGER :: i,j,k,l,n 1151 1167 INTEGER :: kfin,ideb,ifin,kfin2,istep … … 1155 1171 !REAL,DIMENSION(:,:), ALLOCATABLE,SAVE :: emisbin ! vertical emission fluxes in UNITS for the 12 bins 1156 1172 REAL,DIMENSION(klon,nbins) :: emisbin ! vertical emission fluxes in UNITS for the 12 bins 1157 !$OMP THREADPRIVATE(fluxdust) 1158 !$OMP THREADPRIVATE(wind10ms) 1159 !$OMP THREADPRIVATE(wind10cm) 1173 !$OMP THREADPRIVATE(fluxdust) 1174 !!!$OMP THREADPRIVATE(wind10ms) 1175 !!!$OMP THREADPRIVATE(wind10cm) 1176 1160 1177 1161 1178 !---------------------------------------------------- … … 1165 1182 ! ALLOCATE( emisbin(klon,nbins) ) 1166 1183 ALLOCATE( fluxdust(klon,nmode) ) 1167 ALLOCATE( wind10ms(nwb) )1168 ALLOCATE( wind10cm(nwb) )1184 ! ALLOCATE( wind10ms(klon,nsurfwind) ) 1185 !ALLOCATE( wind10cm(nwb) ) 1169 1186 ENDIF !debutphy 1170 1187 … … 1189 1206 !*,'zwstar=sqrt(2.*(',flag_wstarBL,'ale_bl+0.01*(',flag_wstar,'-100)*ale_wake))' 1190 1207 ! 1208 !CALL surf_wind(klon, nsurfwind, zu10m, zv10m, wstar, param_wstarBL, param_wstarWAKE, ale_bl, wind10ms, probu) 1191 1209 DO i=1,klon ! main loop 1192 zwstar(i)=sqrt(2.*(param_wstarBL(i)*ale_bl(i)+param_wstarWAKE(i)*ale_wake(i))) 1193 U10mMOD=MAX(woff,sqrt(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))) 1194 pdfcum=0. 1210 ! zwstar(i)=sqrt(2.*(param_wstarBL(i)*ale_bl(i)+param_wstarWAKE(i)*ale_wake(i))) 1211 zwstar(i)=sqrt(2.*(param_wstarBL(i)*ale_bl(i))) 1195 1212 ! Wind weibull distribution: 1196 1213 nwb = nsurfwind 1214 ! print*,'GGGGGGGGGGGGGGGGGGGGGGGGG nwb=',nwb 1197 1215 DO kwb=1,nwb 1198 1216 flux1=0. … … 1204 1222 ! lambda=U10mMOD/gamma(1+1/kref) 1205 1223 ! gamma function estimated with stirling formula 1206 auxreal=1.+1./kref1207 weilambda = U10mMOD/exp(auxreal*log(auxreal)-auxreal &1208 - 0.5*log(auxreal/(2.*pi))+1./(12.*auxreal) &1209 -1./(360.*(auxreal**3.))+1./(1260.*(auxreal**5.)))1210 IF(nwb.gt.1)THEN1211 wind10ms(kwb)=kwb*2.*U10mMOD/nwb1212 !original1213 ! pdfu=(kref/U10mMOD)*(wind10ms(kwb)/U10mMOD)**(kref-1) &1214 ! *exp(-(wind10ms(kwb)/U10mMOD)**kref)1215 pdfu=(kref/weilambda)*(wind10ms(kwb)/weilambda)**(kref-1) &1216 *exp(-(wind10ms(kwb)/weilambda)**kref)1217 ! !print *,'JEdbg U10mMOD weilambda ',U10mMOD,weilambda1218 !JE20141205>>1219 1220 probu(kwb)=pdfu*2.*U10mMOD/nwb1221 pdfcum=pdfcum+probu(kwb)1222 IF(probu(kwb).le.1.e-2)GOTO 701223 ELSE1224 wind10ms(kwb)=U10mMOD1225 probu(kwb)=1.1226 ENDIF1227 wind10cm(kwb)=wind10ms(kwb)*100.1228 1224 DO n=1,ntyp 1229 1225 ft1=0. … … 1268 1264 ! Cas ou wsta=0. 1269 1265 cdnms=vkarm/(log(z10m/z0salt)) 1270 modwm=sqrt((wind10ms( kwb)**2)+(1.2*zwstar(i))**2)1266 modwm=sqrt((wind10ms(i,kwb)**2)+(1.2*zwstar(i))**2) 1271 1267 ustarns=cdnms*modwm*100. 1272 1268 ustarsalt=ustarns 1273 1269 ! print*,'LAAAAAAAAAAAAAAAAAA modwm=',modwm 1274 1270 1275 1271 IF(ustarsalt.lt.umin/ceff)GOTO 80 … … 1327 1323 ENDDO !n=1,ntyp 1328 1324 70 CONTINUE 1329 fluxdust(i,1)=fluxdust(i,1)+flux1*probu( kwb)1330 fluxdust(i,2)=fluxdust(i,2)+flux2*probu( kwb)1331 fluxdust(i,3)=fluxdust(i,3)+flux3*probu( kwb)1325 fluxdust(i,1)=fluxdust(i,1)+flux1*probu(i,kwb) 1326 fluxdust(i,2)=fluxdust(i,2)+flux2*probu(i,kwb) 1327 fluxdust(i,3)=fluxdust(i,3)+flux3*probu(i,kwb) 1332 1328 ENDDO !kwb=1,nwb 1333 1329 m1dflux(i)=10.*fluxdust(i,1) … … 1410 1406 enddo 1411 1407 if(kfin.ge.nclass)then 1412 1408 ! print*,'$$$$ Tables dimension problem:',kfin,'>',nclass 1413 1409 endif 1414 1410 !--------------- -
LMDZ6/trunk/libf/phylmd/Dust/phytracr_spl_mod.F90
r5554 r5635 804 804 beta_fisrt,beta_v1, & ! I 805 805 zu10m,zv10m,wstar,ale_bl,ale_wake, & ! I 806 nsurfwind,wind10ms,probu, & ! I 806 807 d_tr_dyn,tr_seri) ! O 807 808 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 825 826 USE yoethf_mod_h 826 827 USE chem_mod_h 828 USE lmdz_surf_wind, ONLY: surf_wind 827 829 IMPLICIT none 828 830 ! … … 847 849 ! divers: 848 850 ! ------- 849 ! 851 INTEGER, intent(in) :: nsurfwind 852 REAL,DIMENSION(klon,nsurfwind),INTENT(IN) :: wind10ms 853 REAL,DIMENSION(klon,nsurfwind),INTENT(IN) :: probu 850 854 real,intent(in) :: pdtphys ! pas d'integration pour la physique (seconde) 851 855 REAL, intent(in):: jD_cur, jH_cur … … 2153 2157 rlat,rlon,debutphy, & 2154 2158 zu10m,zv10m,wstar,ale_bl,ale_wake, & 2159 nsurfwind,wind10ms,probu, & 2155 2160 scale_param_ssacc,scale_param_sscoa, & 2156 2161 scale_param_dustacc,scale_param_dustcoa, & -
LMDZ6/trunk/libf/phylmd/lmdz_surf_wind.f90
r5471 r5635 2 2 CONTAINS 3 3 4 SUBROUTINE surf_wind(klon,nsurfwind,zu10m,zv10m,sigmaw,cstar,ustar, wstar,wind10ms,probu)4 SUBROUTINE surf_wind(klon,nsurfwind,zu10m,zv10m,sigmaw,cstar,ustar,ale_bl,wind10ms,probu) 5 5 6 6 USE lmdz_surf_wind_ini, ONLY : iflag_surf_wind 7 USE lmdz_surf_wind_ini, ONLY : surf_wind_ktwake 8 USE lmdz_surf_wind_ini, ONLY : surf_wind_kttherm 9 USE lmdz_surf_wind_ini, ONLY : surf_wind_kztherm 7 10 8 11 IMPLICIT NONE … … 11 14 REAL, DIMENSION(klon), INTENT(IN) :: cstar 12 15 REAL, DIMENSION(klon), INTENT(IN) :: sigmaw 13 REAL, DIMENSION(klon), INTENT(IN) :: ustar, wstar16 REAL, DIMENSION(klon), INTENT(IN) :: ustar, ale_bl 14 17 REAL, DIMENSION(klon,nsurfwind), INTENT(OUT) :: wind10ms, probu 15 18 REAL, PARAMETER :: woff=0.5 ! min value of 10m wind speed accepted for emissions 16 19 17 20 REAL, DIMENSION(klon,nsurfwind) :: sigma_th, sigma_wk 18 REAL, DIMENSION(klon,nsurfwind) :: xp, yp , zz21 REAL, DIMENSION(klon,nsurfwind) :: xp, yp 19 22 REAL, DIMENSION(klon,nsurfwind) :: vwx, vwy, vw 20 23 REAL, DIMENSION(klon,nsurfwind) :: vtx, vty … … 27 30 REAL :: pi, pdfu 28 31 REAL :: auxreal, kref 29 REAL :: ray, ray2, theta,rr, xx, yy 30 REAL :: ktwk, ktth, kzth 32 REAL :: ray, ray2, theta,rr, xx, yy, zz 31 33 32 !print*,'LLLLLLLLLLLLLLLLLLLLL nsurfwind=',nsurfwind33 34 pi=2.*acos(0.) 34 35 ray=7000. 35 ktwk=0.536 ktth=2.37 kzth=1.36 !ktwk=0.5 37 !ktth=2. 38 !kzth=1. 38 39 kref=3 39 40 nwb=nsurfwind 40 41 41 ubwk(klon) = zu10m(klon) 42 vbwk(klon) = zv10m(klon) 42 Do i=1,klon 43 ubwk(i) = zu10m(i) 44 vbwk(i) = zv10m(i) 45 ENDDO 43 46 44 47 DO i=1,klon 45 U10mMOD(i)=sqrt(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i)) 48 U10mMOD(i)=MAX(woff,sqrt(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i))) 49 !U10mMOD(i)=sqrt(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i)) 46 50 ENDDO 47 51 … … 93 97 ! Utilisation de la distribution du vent a l interieur et a l exterieur des poches 94 98 call Random_number(zz) ! tirage uniforme entre 0 et 1. 95 IF (ALL(zz <= sigmaw(klon))) THEN ! quand on est a l interieur de la poche 99 IF (zz <= sigmaw(i)) THEN ! quand on est a l interieur de la poche 100 !IF (zz <= 1.) THEN ! test pour tourner uniquement avec le modele de vent dans les poches 96 101 97 102 call Random_number(xx) … … 110 115 111 116 ! On relie la variance au module du vent au carree (sigma ^ 2 = k || v || ^ 2) 112 sigma_wk(i,nmc) = ktwk*(vw(i,nmc)) 117 !sigma_wk(i,nmc) = ktwk*(vw(i,nmc)) 118 sigma_wk(i,nmc) = surf_wind_ktwake*(vw(i,nmc)) 113 119 114 120 ! tirage du vent turbulent vt … … 116 122 vtx(i,nmc) = sigma_wk(i,nmc)*xx 117 123 vty(i,nmc) = sigma_wk(i,nmc)*yy 118 124 ! print*,'ZZZZZZZZZZZZZZZZZZZZ xx=',xx 119 125 ! vent total = vent dans la poche (vw) + le vent turbulent(vt) 120 126 windx(i,nmc) = vwx(i,nmc) + vtx(i,nmc) … … 122 128 wind(i,nmc) = sqrt(windx(i,nmc)**2 + windy(i,nmc)**2) 123 129 wind10ms(i,nmc) = wind(i,nmc) 124 probu(i,nmc) = wind(i,nmc)/nsurfwind130 probu(i,nmc) = 1./nsurfwind 125 131 126 132 ELSE … … 131 137 132 138 !sigma_th(i,nmc) = sqrt((ktth*ustar(i))**2 + (kzth*wstar(i))**2) ! a voir 133 sigma_th(i,nmc) = 1.8 139 ! On remplace wstar par sqrt(2*ale_bl) 140 sigma_th(i,nmc) = sqrt((surf_wind_kttherm*ustar(i))**2 + (surf_wind_kztherm*sqrt(2*ale_bl(i)))**2) 134 141 135 142 ! tirage du vent turbulent vt … … 143 150 wind(i,nmc) = sqrt(windx(i,nmc)**2 + windy(i,nmc)**2) 144 151 wind10ms(i,nmc) = wind(i,nmc) 145 probu(i,nmc) = wind(i,nmc)/nsurfwind152 probu(i,nmc) = 1./nsurfwind 146 153 ! print*, 'wind10ms', wind10ms(i,nmc) 147 154 ENDIF 155 ! print*,'WWWWWWWWWWWWWWWWWWWW wind10ms=',wind10ms(i,nmc) 148 156 ! enlver 149 ! call histogram(wind(i,nmc), 0., 20., nbin, hist)150 ! call histogram(windx(i,nmc), -20., 20., nbin1, histx)151 ! call histogram(windy(i,nmc), -20., 20., nbin1, histy)157 ! call histogram(wind(i,nmc), 0., 20., nbin, hist) 158 ! call histogram(windx(i,nmc), -20., 20., nbin1, histx) 159 ! call histogram(windy(i,nmc), -20., 20., nbin1, histy) 152 160 ENDDO 153 161 ENDDO -
LMDZ6/trunk/libf/phylmd/lmdz_surf_wind_ini.f90
r5446 r5635 9 9 integer, protected :: lunout 10 10 integer, protected :: iflag_surf_wind=0 11 !$OMP THREADPRIVATE(lunout,iflag_surf_wind) 11 real, protected :: surf_wind_ktwake=0.5 12 real, protected :: surf_wind_kttherm=2. 13 real, protected :: surf_wind_kztherm=1. 14 15 !$OMP THREADPRIVATE(lunout, iflag_surf_wind, surf_wind_ktwake, surf_wind_kttherm, surf_wind_kztherm) 16 17 !! !$OMP THREADPRIVATE(lunout,iflag_surf_wind) 18 !! !$OMP THREADPRIVATE(lunout,surf_wind_ktwake) 19 !! !$OMP THREADPRIVATE(lunout,surf_wind_kttherm) 20 !! !$OMP THREADPRIVATE(lunout,surf_wind_kztherm) 12 21 13 22 CONTAINS … … 36 45 lunout=lunout_i 37 46 CALL getin_p('iflag_surf_wind',iflag_surf_wind) 47 CALL getin_p('surf_wind_ktwake',surf_wind_ktwake) 48 CALL getin_p('surf_wind_kttherm',surf_wind_kttherm) 49 CALL getin_p('surf_wind_kztherm',surf_wind_kztherm) 38 50 39 51 write(lunout,*) 'Initialisation wind10m' 40 52 write(lunout,*) 'lmdz_surf_wind_ini, iflag_surf_wind=',iflag_surf_wind 53 write(lunout,*) 'lmdz_surf_wind_ini, surf_wind_ktwake=',surf_wind_ktwake 54 write(lunout,*) 'lmdz_surf_wind_ini, surf_wind_kttherm=',surf_wind_kttherm 55 write(lunout,*) 'lmdz_surf_wind_ini, surf_wind_kztherm=',surf_wind_kztherm 41 56 42 57 RETURN -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r5627 r5635 81 81 USE calwake_mod, ONLY : calwake, calwake_first 82 82 USE lmdz_wake_ini, ONLY : wake_ini 83 USE lmdz_surf_wind_ini, ONLY : surf_wind_ini , iflag_surf_wind83 USE lmdz_surf_wind_ini, ONLY : surf_wind_ini 84 84 USE lmdz_surf_wind, ONLY : surf_wind 85 85 USE yamada_ini_mod, ONLY : yamada_ini … … 3852 3852 !=================================================================== 3853 3853 ! Computation of subrgid scale near-surface wind distribution 3854 call surf_wind(klon,nsurfwind,u10m,v10m,wake_s,wake_Cstar,ustar,wstar,surf_wind_value,surf_wind_proba) 3854 ! Developed for dust lifting. Could be extended to coupling with ocean and others 3855 ! by default : 1 bin equal to the mean wind 3856 3857 call surf_wind(klon,nsurfwind,zu10m,zv10m,wake_s,wake_Cstar,zustar,ale_bl,surf_wind_value,surf_wind_proba) 3855 3858 3856 3859 !=================================================================== … … 5399 5402 beta_prec_fisrt,beta_prec, & !I 5400 5403 zu10m,zv10m,wstar,ale_bl,ale_wake, & ! I 5404 nsurfwind,surf_wind_value, surf_wind_proba, & ! I 5401 5405 d_tr_dyn,tr_seri) 5402 5406
Note: See TracChangeset
for help on using the changeset viewer.