- Timestamp:
- Feb 6, 2015, 6:53:57 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/LMDZ5_SPLA/libf/phylmd/dustemission_mod.F90
r2176 r2196 21 21 real , parameter :: dmax=0.2 22 22 integer, parameter :: nspe=nmode*3+1 23 real ,parameter :: vkarm=0.41 24 !JE20150202 : updating scheme to chimere13b <<< 25 ! original values 26 ! integer, parameter :: div1=3. 27 ! integer, parameter :: div2=3. 28 ! integer, parameter :: div3=3. 29 ! real , parameter :: e1=3.61/div1 30 ! real , parameter :: e2=3.52/div2 31 ! real , parameter :: e3=3.46/div3 32 ! real , parameter :: factorflux=10. 33 ! real , parameter :: rop=2.65 ! particle density g/m3 34 ! real , parameter :: roa=0.001227 ! air density g/m3 35 ! real , parameter :: pi=3.14159 !! 36 ! real , parameter :: gravity=981. !! cm!! 37 ! real , parameter :: cd=1.*roa/gravity 38 ! new values 39 ! logical, parameter :: ok_splatunning=.true. 40 ! Div=3 from S. Alfaro (Sow et al ACPD 2011) 41 !JE 20150206 23 42 integer, parameter :: div1=3. 24 43 integer, parameter :: div2=3. 25 44 integer, parameter :: div3=3. 26 27 real ,parameter :: vkarm=0.4128 45 real , parameter :: e1=3.61/div1 29 46 real , parameter :: e2=3.52/div2 30 47 real , parameter :: e3=3.46/div3 48 real , parameter :: factorflux=1. 31 49 real , parameter :: rop=2.65 ! particle density g/m3 32 50 real , parameter :: roa=0.001227 ! air density g/m3 33 51 real , parameter :: pi=3.14159 !! 34 52 real , parameter :: gravity=981. !! cm!! 35 real , parameter :: cd=1.*roa/gravity 53 ! C=2.61 from Marticorena and Bergametti 1995 instead of Gillete and Chen 2001 54 ! (recommended C=1.1 in supply-limited dust source area.. ) 55 real , parameter :: cd=2.61*roa/gravity 56 !JE20150202>>>> 36 57 real,parameter :: beta=16300. 37 58 real, parameter, dimension(3) :: diam=(/1.5,6.7,14.2/) … … 69 90 !!! INTEGER,DIMENSION(:),ALLOCATABLE,SAVE :: maskdust 70 91 REAL,DIMENSION(:,:),ALLOCATABLE,SAVE :: feff 92 REAL,DIMENSION(:,:),ALLOCATABLE,SAVE :: feffdbg 71 93 72 94 REAL,DIMENSION(:), ALLOCATABLE,SAVE :: sizeclass … … 110 132 !!!!$OMP THREADPRIVATE(maskdust) 111 133 !$OMP THREADPRIVATE(feff) 134 !$OMP THREADPRIVATE(feffdbg) 112 135 !$OMP THREADPRIVATE(sizeclass) 113 136 !$OMP THREADPRIVATE(sizeclass2) … … 536 559 ALLOCATE( solspe(nats,nspe) ) 537 560 ALLOCATE( feff(klon,ntyp) ) 561 ALLOCATE( feffdbg(klon,ntyp) ) 538 562 ALLOCATE( sizeclass(nclass) ) 539 563 ALLOCATE( sizeclass2(nclass) ) … … 768 792 ! endif 769 793 feff(i,k)=0. 794 feffdbg(i,k)=0. 770 795 ! print*,'IKKK A ',i,klon,k,ntyp 771 796 else … … 776 801 bb=log(aeff*(xeff/zos(i,k))**0.8) 777 802 cc=1.-aa/bb 803 feffdbg(i,k)=cc 778 804 ! print*,'IKKK B1 ',i,klon,k,ntyp 779 805 ! drag partition between zo1 and zo2 … … 789 815 endif 790 816 if (feff(i,k).lt.0.)feff(i,k)=0. 817 if (feffdbg(i,k).lt.0.)feffdbg(i,k)=0. 791 818 if (feff(i,k).gt.1.)feff(i,k)=1. 819 if (feffdbg(i,k).gt.1.)feffdbg(i,k)=1. 792 820 ! print*,'IKKK E ',i,klon,k,ntyp 793 821 endif … … 798 826 ! 799 827 CALL writefield_phy("REPART5",feff(1:klon,1:5),5) 828 CALL writefield_phy("REPART5dbg",feffdbg(1:klon,1:5),5) 800 829 endif 801 830 … … 1033 1062 REAL :: pdfcum,U10mMOD,pdfu,weilambda 1034 1063 REAL :: z0salt,ceff,cerod,cpcent 1035 REAL :: cdnms,ustarns,modwm,utmin 1064 !JE20150202 !REAL :: cdnms,ustarns,modwm,utmin 1065 REAL :: cdnms,ustarns,modwm 1036 1066 REAL :: fdp1,fdp2,ad1,ad2,ad3,flux_diam 1037 1067 REAL :: dfec1,dfec2,dfec3,t1,t2,t3,p1,p2,p3,dec,ec … … 1120 1150 ft2=0. 1121 1151 ft3=0. 1122 1152 !JE20150129<<<< 1153 1154 IF(.FALSE.) THEN 1123 1155 ! nat=int(sol(i,n)) 1124 1156 ! print *,i,n … … 1136 1168 ! if(n.eq.1) print*,'nat1=',nat,'sol1=',sol(i,n) 1137 1169 IF(n.eq.1.and.nat.eq.99)GOTO 80 1170 1171 ENDIF 1172 IF(.TRUE.) THEN 1173 nat=int(sol(i,n)) 1174 if(n == 1 .and. nat >= 14 .or. nat < 1 .or. nat > 19) GOTO 80 1175 ENDIF 1176 !JE20150129>>>> 1177 1138 1178 z0salt=z02(i,n) 1139 1179 ceff=feff(i,n) … … 1149 1189 cdnms=vkarm/(log(z10m/z0salt)) 1150 1190 modwm=sqrt((wind10ms(kwb)**2)+(1.2*zwstar(i))**2) 1151 ! modwm=sqrt((wind10ms(kwb)**2)+(1.2*sqrt(ale_wake(i))1152 ! )**2)1153 ! modwm=sqrt((wind10ms(kwb)**2)+(1.2*sqrt(Ale_bl(i)) )**2)1154 ! modwm=sqrt((wind10ms(kwb)**2))1155 1191 ustarns=cdnms*modwm*100. 1156 utmin=umin/(cdnms*ceff) 1157 IF(wind10cm(kwb).ge.utmin)THEN 1158 ustarsalt=ustarns+ & 1159 (0.3*(wind10cm(kwb)/100.-utmin/100.)**2.) 1160 ELSE 1161 ustarsalt=ustarns 1162 ENDIF 1192 !JE20150202 << 1193 ! Do not have too much sense.. and is not anymore in the chimere14b version. 1194 ! 1195 ! utmin=umin/(cdnms*ceff) 1196 ! IF(wind10cm(kwb).ge.utmin)THEN 1197 ! ustarsalt=ustarns+ & 1198 ! (0.3*(wind10cm(kwb)/100.-utmin/100.)**2.) 1199 ! ELSE 1200 ! ustarsalt=ustarns 1201 ! ENDIF 1202 ! ustarsalt should be : 1203 ustarsalt=ustarns 1204 !JE20150202 >> 1205 1206 1163 1207 IF(ustarsalt.lt.umin/ceff)GOTO 80 1164 1208 ! print*,'ustarsalt = ',ustarsalt … … 1215 1259 ENDDO !n=1,ntyp 1216 1260 70 CONTINUE 1261 !factorflux 1217 1262 fluxdust(i,1)=fluxdust(i,1)+flux1*probu(kwb) 1218 1263 fluxdust(i,2)=fluxdust(i,2)+flux2*probu(kwb) 1219 1264 fluxdust(i,3)=fluxdust(i,3)+flux3*probu(kwb) 1220 1265 ENDDO !kwb=1,nwb 1221 m1dflux(i)=10.*fluxdust(i,1) 1222 m2dflux(i)=10.*fluxdust(i,2) ! tous en Kg/m2/s 1223 m3dflux(i)=10.*fluxdust(i,3) 1266 !JE20150202 << 1267 ! m1dflux(i)=10.*fluxdust(i,1) 1268 ! m2dflux(i)=10.*fluxdust(i,2) ! tous en Kg/m2/s 1269 ! m3dflux(i)=10.*fluxdust(i,3) 1270 m1dflux(i)=factorflux*10.*fluxdust(i,1) 1271 m2dflux(i)=factorflux*10.*fluxdust(i,2) ! tous en Kg/m2/s 1272 m3dflux(i)=factorflux*10.*fluxdust(i,3) 1273 !JE20150202 >> 1224 1274 1225 1275 … … 1234 1284 DO i=1,ndistb 1235 1285 DO j=1,nbins 1236 emisbin(k,j) = emisbin(k,j)+10*fluxdust(k,i)*massfrac(i,j) 1286 !JE20150202 << 1287 ! emisbin(k,j) = emisbin(k,j)+10*fluxdust(k,i)*massfrac(i,j) 1288 emisbin(k,j) = emisbin(k,j)+factorflux*fluxdust(k,i)*massfrac(i,j) 1289 !JE20150202 >> 1237 1290 ENDDO !j, nbind 1238 1291 ENDDO !i, nmode
Note: See TracChangeset
for help on using the changeset viewer.