Changeset 1264
- Timestamp:
- May 16, 2014, 11:49:52 AM (11 years ago)
- Location:
- trunk/LMDZ.MARS/libf/phymars
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/phymars/conf_phys.F
r1246 r1264 370 370 stop 371 371 endif 372 #ifndef MESOSCALE 373 ! this test is valid in GCM case 374 ! ... not in mesoscale case, for we want to activate mesoscale lifting 372 375 if (freedust.and.lifting) then 373 376 print*,'if freedust is used, then lifting should not be used' … … 375 378 lifting=.false. 376 379 endif 380 #endif 377 381 378 382 ! callddevil -
trunk/LMDZ.MARS/libf/phymars/physiq.F
r1246 r1264 1857 1857 ! call writediagfi(ngrid,"rho_"//trim(noms(iq)), 1858 1858 ! $ "Number density","cm-3",3,rhopart) 1859 if ((noms(iq).eq."o") .or. (noms(iq).eq."co2").or.1860 $ (noms(iq).eq."o3")) then1861 call writediagfi(ngrid,"vmr_"//trim(noms(iq)),1862 $ "Volume mixing ratio","mol/mol",3,vmr)1863 end if1864 1859 do ig = 1,ngrid 1865 1860 colden(ig,iq) = 0. … … 1874 1869 call wstats(ngrid,"c_"//trim(noms(iq)), 1875 1870 $ "column","mol cm-2",2,colden(1,iq)) 1876 call writediagfi(ngrid,"c_"//trim(noms(iq)),1877 $ "column","mol cm-2",2,colden(1,iq))1878 1871 end if ! of if (noms(iq) .ne. "dust_mass" ...) 1879 1872 end do ! of do iq=1,nq … … 2134 2127 2135 2128 if (tracer.and.(dustbin.ne.0)) then 2129 2136 2130 call WRITEDIAGFI(ngrid,'tau','taudust','SI',2,tau(1,1)) 2131 2132 #ifndef MESOINI 2137 2133 if (doubleq) then 2138 2134 c call WRITEDIAGFI(ngrid,'qsurf','qsurf', … … 2164 2160 c call WRITEDIAGFI(ngrid,"tauscaling", 2165 2161 c & "dust conversion factor"," ",2,tauscaling) 2166 #ifdef MESOINI 2162 else 2163 do iq=1,dustbin 2164 write(str2(1:2),'(i2.2)') iq 2165 call WRITEDIAGFI(ngrid,'q'//str2,'mix. ratio', 2166 & 'kg/kg',3,zq(1,1,iq)) 2167 call WRITEDIAGFI(ngrid,'qsurf'//str2,'qsurf', 2168 & 'kg.m-2',2,qsurf(1,iq)) 2169 end do 2170 endif ! (doubleq) 2171 2172 if (scavenging) then 2173 call WRITEDIAGFI(ngrid,'ccnq','CCN mass mr', 2174 & 'kg/kg',3,qccn) 2175 call WRITEDIAGFI(ngrid,'ccnN','CCN number', 2176 & 'part/kg',3,nccn) 2177 endif ! (scavenging) 2178 2179 c if (submicron) then 2180 c call WRITEDIAGFI(ngrid,'dustsubm','subm mass mr', 2181 c & 'kg/kg',3,pq(1,1,igcm_dust_submicron)) 2182 c endif ! (submicron) 2183 2184 #else 2167 2185 ! !!! to initialize mesoscale we need scaled variables 2168 2186 ! !!! because this must correspond to starting point for tracers … … 2175 2193 ! call WRITEDIAGFI(ngrid,'ccnN','Nuclei number', 2176 2194 ! & 'part/kg',3,pq(1:ngrid,1:nlayer,igcm_ccn_number)) 2177 call WRITEDIAGFI(ngrid,'dustq','Dust mass mr', 2178 & 'kg/kg',3,pq(1,1,igcm_dust_mass)) 2179 call WRITEDIAGFI(ngrid,'dustN','Dust number', 2180 & 'part/kg',3,pq(1,1,igcm_dust_number)) 2181 call WRITEDIAGFI(ngrid,'ccn','Nuclei mass mr', 2182 & 'kg/kg',3,pq(1,1,igcm_ccn_mass)) 2183 call WRITEDIAGFI(ngrid,'ccnN','Nuclei number', 2184 & 'part/kg',3,pq(1,1,igcm_ccn_number)) 2185 #endif 2186 else 2187 do iq=1,dustbin 2188 write(str2(1:2),'(i2.2)') iq 2189 call WRITEDIAGFI(ngrid,'q'//str2,'mix. ratio', 2190 & 'kg/kg',3,zq(1,1,iq)) 2191 call WRITEDIAGFI(ngrid,'qsurf'//str2,'qsurf', 2192 & 'kg.m-2',2,qsurf(1,iq)) 2193 end do 2194 endif ! (doubleq) 2195 2196 if (scavenging) then 2197 call WRITEDIAGFI(ngrid,'ccnq','CCN mass mr', 2195 if (freedust) then 2196 call WRITEDIAGFI(ngrid,'dustq','Dust mass mr', 2197 & 'kg/kg',3,qdust) 2198 call WRITEDIAGFI(ngrid,'dustN','Dust number', 2199 & 'part/kg',3,ndust) 2200 call WRITEDIAGFI(ngrid,'ccn','CCN mass mr', 2198 2201 & 'kg/kg',3,qccn) 2199 2202 call WRITEDIAGFI(ngrid,'ccnN','CCN number', 2200 2203 & 'part/kg',3,nccn) 2201 endif ! (scavenging) 2202 2203 c if (submicron) then 2204 c call WRITEDIAGFI(ngrid,'dustsubm','subm mass mr', 2205 c & 'kg/kg',3,pq(1,1,igcm_dust_submicron)) 2206 c endif ! (submicron) 2204 else 2205 call WRITEDIAGFI(ngrid,'dustq','Dust mass mr', 2206 & 'kg/kg',3,pq(1,1,igcm_dust_mass)) 2207 call WRITEDIAGFI(ngrid,'dustN','Dust number', 2208 & 'part/kg',3,pq(1,1,igcm_dust_number)) 2209 call WRITEDIAGFI(ngrid,'ccn','Nuclei mass mr', 2210 & 'kg/kg',3,pq(1,1,igcm_ccn_mass)) 2211 call WRITEDIAGFI(ngrid,'ccnN','Nuclei number', 2212 & 'part/kg',3,pq(1,1,igcm_ccn_number)) 2213 endif 2214 #endif 2215 2207 2216 end if ! (tracer.and.(dustbin.ne.0)) 2208 2217 … … 2222 2231 call WRITEDIAGFI(ngrid,"qnir","NIR heating","K/s", 2223 2232 $ 3,zdtnirco2) 2233 2234 2235 if (thermochem.or.photochem) then 2236 do iq=1,nq 2237 if (noms(iq) .ne. "dust_mass" .and. 2238 $ noms(iq) .ne. "dust_number" .and. 2239 $ noms(iq) .ne. "ccn_mass" .and. 2240 $ noms(iq) .ne. "ccn_number" .and. 2241 $ noms(iq) .ne. "h2o_vap" .and. 2242 $ noms(iq) .ne. "h2o_ice") then 2243 vmr(1:ngrid,1:nlayer)=zq(1:ngrid,1:nlayer,iq) 2244 & *mmean(1:ngrid,1:nlayer)/mmol(iq) 2245 rhopart(1:ngrid,1:nlayer)=zq(1:ngrid,1:nlayer,iq) 2246 & *rho(1:ngrid,1:nlayer)*n_avog/ 2247 & (1000*mmol(iq)) 2248 call writediagfi(ngrid,"rho_"//trim(noms(iq)), 2249 $ "Number density","cm-3",3,rhopart) 2250 if ((noms(iq).eq."o") .or. (noms(iq).eq."co2").or. 2251 $ (noms(iq).eq."o3")) then 2252 call writediagfi(ngrid,"vmr_"//trim(noms(iq)), 2253 $ "Volume mixing ratio","mol/mol",3,vmr) 2254 end if 2255 do ig = 1,ngrid 2256 colden(ig,iq) = 0. 2257 end do 2258 do l=1,nlayer 2259 do ig=1,ngrid 2260 colden(ig,iq) = colden(ig,iq) + zq(ig,l,iq) 2261 $ *(zplev(ig,l)-zplev(ig,l+1)) 2262 $ *6.022e22/(mmol(iq)*g) 2263 end do 2264 end do 2265 call writediagfi(ngrid,"c_"//trim(noms(iq)), 2266 $ "column","mol cm-2",2,colden(1,iq)) 2267 end if ! of if (noms(iq) .ne. "dust_mass" ...) 2268 end do ! of do iq=1,nq 2269 end if ! of if (thermochem.or.photochem) 2270 2224 2271 2225 2272 endif !(callthermos)
Note: See TracChangeset
for help on using the changeset viewer.