Changeset 705 for trunk/LMDZ.MARS/libf/phymars
- Timestamp:
- Jun 14, 2012, 4:14:11 PM (13 years ago)
- Location:
- trunk/LMDZ.MARS/libf/phymars
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/libf/phymars/callkeys.h
r635 r705 16 16 17 17 COMMON/callkeys_i/iradia,iaervar,iddist,ilwd,ilwb,ilwn,ncouche & 18 & ,dustbin,nltemodel,nircorr 18 & ,dustbin,nltemodel,nircorr,solvarmod,solvaryear 19 19 20 20 COMMON/callkeys_r/topdustref,solarcondate,semi,alphan,euveff, & … … 47 47 integer ilwn 48 48 integer ncouche 49 integer solvarmod ! model for solar EUV variation 50 integer solvaryear ! mars year for realisticly varying solar EUV 49 51 50 52 logical rayleigh -
trunk/LMDZ.MARS/libf/phymars/inifis.F
r677 r705 584 584 write(*,*) " thermochem = ",thermochem 585 585 586 write(*,*) "Method to include solar variability" 587 write(*,*) "0-> old method (using solarcondate); ", 588 & "1-> variability wit E10.7" 589 solvarmod=1 590 call getin("solvarmod",solvarmod) 591 write(*,*) " solvarmod = ",solvarmod 592 586 593 write(*,*) "date for solar flux calculation:", 587 & " (1985 < date < 2002)" 594 & " (1985 < date < 2002)", 595 $ " (Only used if solvarmod=0)" 588 596 write(*,*) "(Solar min=1996.4 ave=1993.4 max=1990.6)" 589 597 solarcondate=1993.4 ! default value … … 591 599 write(*,*) " solarcondate = ",solarcondate 592 600 601 write(*,*) "Solar variability as observed for MY: " 602 write(*,*) "Only if solvarmod=1" 603 solvaryear=24 604 call getin("solvaryear",solvaryear) 605 write(*,*) " solvaryear = ",solvaryear 606 593 607 write(*,*) "UV heating efficiency:", 594 608 & "measured values between 0.19 and 0.23 (Fox et al. 1996)", -
trunk/LMDZ.MARS/libf/phymars/physiq.F
r698 r705 308 308 real rho(ngridmx,nlayermx) ! density 309 309 real vmr(ngridmx,nlayermx) ! volume mixing ratio 310 real rhopart(ngridmx,nlayermx) ! number density of a given species 310 311 real colden(ngridmx,nqmx) ! vertical column of tracers 311 312 REAL mtot(ngridmx) ! Total mass of water vapor (kg/m2) … … 429 430 c ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 430 431 431 if (callthermos) call param_read 432 if (callthermos) then 433 if(solvarmod.eq.0) call param_read 434 if(solvarmod.eq.1) call param_read_e107 435 endif 432 436 #endif 433 437 c Initialize R and Cp as constant … … 561 565 CALL nltecool(ngrid,nlayer,nq,pplay,pt,pq,zdtnlte) 562 566 else if(nltemodel.eq.2) then 563 do ig=1,ngrid564 do l=1,nlayer565 co2vmr_gcm(ig,l)=pq(ig,l,igcm_co2)*566 $ mmean(ig,l)/mmol(igcm_co2)567 n2vmr_gcm(ig,l)=pq(ig,l,igcm_n2)*568 $ mmean(ig,l)/mmol(igcm_n2)569 covmr_gcm(ig,l)=pq(ig,l,igcm_co)*570 $ mmean(ig,l)/mmol(igcm_co)571 ovmr_gcm(ig,l)=pq(ig,l,igcm_o)*572 $ mmean(ig,l)/mmol(igcm_o)573 enddo574 enddo567 co2vmr_gcm(1:ngrid,1:nlayer)= 568 & pq(1:ngrid,1:nlayer,igcm_co2)* 569 & mmean(1:ngrid,1:nlayer)/mmol(igcm_co2) 570 n2vmr_gcm(1:ngrid,1:nlayer)= 571 & pq(1:ngrid,1:nlayer,igcm_n2)* 572 & mmean(1:ngrid,1:nlayer)/mmol(igcm_n2) 573 covmr_gcm(1:ngrid,1:nlayer)= 574 & pq(1:ngrid,1:nlayer,igcm_co)* 575 & mmean(1:ngrid,1:nlayer)/mmol(igcm_co) 576 ovmr_gcm(1:ngrid,1:nlayer)= 577 & pq(1:ngrid,1:nlayer,igcm_o)* 578 & mmean(1:ngrid,1:nlayer)/mmol(igcm_o) 575 579 576 580 CALL NLTEdlvr09_TCOOL(ngrid,nlayer,pplay*9.869e-6, … … 578 582 $ ovmr_gcm, zdtnlte ) 579 583 580 do ig=1,ngrid 581 do l=1,nlayer 582 zdtnlte(ig,l)=zdtnlte(ig,l)/86400. 583 enddo 584 enddo 584 zdtnlte(1:ngrid,1:nlayer)= 585 & zdtnlte(1:ngrid,1:nlayer)/86400. 585 586 endif 586 587 else … … 1549 1550 call wstats(ngrid,"v","Meridional (North-South) wind", 1550 1551 & "m.s-1",3,zv) 1551 ccall wstats(ngrid,"w","Vertical (down-up) wind",1552 c& "m.s-1",3,pw)1552 call wstats(ngrid,"w","Vertical (down-up) wind", 1553 & "m.s-1",3,pw) 1553 1554 call wstats(ngrid,"rho","Atmospheric density","kg/m3",3,rho) 1554 ccall wstats(ngrid,"pressure","Pressure","Pa",3,pplay)1555 call wstats(ngrid,"pressure","Pressure","Pa",3,pplay) 1555 1556 c call wstats(ngrid,"q2", 1556 1557 c & "Boundary layer eddy kinetic energy", … … 1624 1625 $ noms(iq) .ne. "ccn_mass" .and. 1625 1626 $ noms(iq) .ne. "ccn_number") then 1626 do l=1,nlayer1627 do ig=1,ngrid1628 vmr(ig,l)=zq(ig,l,iq)*mmean(ig,l)/mmol(iq)1629 end do1630 end do1627 vmr(1:ngrid,1:nlayer)=zq(1:ngrid,1:nlayer,iq) 1628 & *mmean(1:ngrid,1:nlayer)/mmol(iq) 1629 rhopart(1:ngrid,1:nlayer)=zq(1:ngrid,1:nlayer,iq) 1630 & *rho(1:ngrid,1:nlayer)*n_avog/ 1631 & (1000*mmol(iq)) 1631 1632 call wstats(ngrid,"vmr_"//trim(noms(iq)), 1632 1633 $ "Volume mixing ratio","mol/mol",3,vmr) 1634 ! call wstats(ngrid,"rho_"//trim(noms(iq)), 1635 ! $ "Number density","cm-3",3,rhopart) 1636 ! call writediagfi(ngrid,"rho_"//trim(noms(iq)), 1637 ! $ "Number density","cm-3",3,rhopart) 1633 1638 if ((noms(iq).eq."o") .or. (noms(iq).eq."co2").or. 1634 1639 $ (noms(iq).eq."o3")) then … … 1928 1933 c endif ! (submicron) 1929 1934 end if ! (tracer.and.(dustbin.ne.0)) 1935 1936 1937 c ---------------------------------------------------------- 1938 c Thermospheric outputs 1939 c ---------------------------------------------------------- 1940 1941 if(callthermos) then 1942 1943 call WRITEDIAGFI(ngridmx,"q15um","15 um cooling","K/s", 1944 $ 3,zdtnlte) 1945 call WRITEDIAGFI(ngridmx,"quv","UV heating","K/s", 1946 $ 3,zdteuv) 1947 call WRITEDIAGFI(ngridmx,"cond","Thermal conduction","K/s", 1948 $ 3,zdtconduc) 1949 call WRITEDIAGFI(ngridmx,"qnir","NIR heating","K/s", 1950 $ 3,zdtnirco2) 1951 1952 endif !(callthermos) 1930 1953 1931 1954 c ----------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.