Changeset 459
- Timestamp:
- Dec 8, 2011, 10:04:00 AM (13 years ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/README
r455 r459 1302 1302 1303 1303 >> tiny change : nuice_sed initialisation is now done in inifis. Also changed initracer and improvedclouds. 1304 1305 1306 == 08/12/2011 == EM 1307 >> Include changes and updates for photochemistry by FL: 1308 - aeronomars/calchim.F : change in units of surface density. 1309 - aeronomars/surfacearea.F : new routine to compute ice and dust surface area 1310 (m2/m3) available for heterogeneous reactions. 1311 - phymars/initracer.F : bug correction: initialize igcm_ch4 and change loop 1312 bounds (when guessing tracer names/properties with 1313 old input files). 1314 - phymars/watercloud.F : cleanup. 1315 - phymars/physiq.F : add call to surfacearea; photochemistry is now called 1316 after sedimentation to take into acount updated rdust 1317 and rice. 1318 -
trunk/LMDZ.MARS/libf/aeronomars/calchim.F
r334 r459 21 21 c update sept. 2008 identify tracers by their names (Ehouarn Millour) 22 22 c update 17/03/2011 synchronize with latest version of chemistry (Franck Lefevre) 23 c update 05/12/2011 synchronize with latest version of chemistry (Franck Lefevre) 23 24 c 24 25 c Arguments: … … 42 43 c tauref(ngridmx) Optical depth at 7 hPa 43 44 c co2ice(ngridmx) co2 ice surface layer (kg.m-2) 44 c surfdust(ngridmx,nlayermx) dust surface area (m icron2/cm3)45 c surfice(ngridmx,nlayermx) ice surface area (m icron2/cm3)45 c surfdust(ngridmx,nlayermx) dust surface area (m2/m3) 46 c surfice(ngridmx,nlayermx) ice surface area (m2/m3) 46 47 c 47 48 c Output: … … 87 88 real tauref(ngridmx) ! optical depth at 7 hPa 88 89 real co2ice(ngridmx) ! co2 ice surface layer (kg.m-2) 89 real surfdust(ngridmx,nlayermx) ! dust surface area (m icron2/cm3)90 real surfice(ngridmx,nlayermx) ! ice surface area (m icron2/cm3)90 real surfdust(ngridmx,nlayermx) ! dust surface area (m2/m3) 91 real surfice(ngridmx,nlayermx) ! ice surface area (m2/m3) 91 92 92 93 c outputs: … … 356 357 zlocal(l) = zzlay(ig,l)/1000. 357 358 c 358 c surfdust1d and surfice1d incm2/cm3359 c 360 surfdust1d(l) = surfdust(ig,l)*1.e- 8361 surfice1d(l) = surfice(ig,l)*1.e- 8359 c surfdust1d and surfice1d: conversion from m2/m3 to cm2/cm3 360 c 361 surfdust1d(l) = surfdust(ig,l)*1.e-2 362 surfice1d(l) = surfice(ig,l)*1.e-2 362 363 c 363 364 c search for switch index between regions -
trunk/LMDZ.MARS/libf/phymars/initracer.F
r455 r459 139 139 nqchem_start=dustbin+1 140 140 end if 141 do iq=nqchem_start,nqchem_start+ncomp- 1141 do iq=nqchem_start,nqchem_start+ncomp-2 142 142 noms(iq)=nomchem(iq-nqchem_start+1) 143 143 mmol(iq)=mmolchem(iq-nqchem_start+1) … … 229 229 igcm_ho2=0 230 230 igcm_h2o2=0 231 igcm_ch4=0 231 232 igcm_n2=0 232 233 igcm_ar=0 -
trunk/LMDZ.MARS/libf/phymars/physiq.F
r420 r459 201 201 real rsedcloud(ngridmx,nlayermx) ! Cloud sedimentation radius 202 202 real rhocloud(ngridmx,nlayermx) ! Cloud density (kg.m-3) 203 REAL surfdust(ngridmx,nlayermx) ! dust surface area (m icron2/cm3, if photochemistry)204 REAL surfice(ngridmx,nlayermx) ! ice surface area (micron2/cm3, if photochemistry)203 REAL surfdust(ngridmx,nlayermx) ! dust surface area (m2/m3, if photochemistry) 204 REAL surfice(ngridmx,nlayermx) ! ice surface area (m2/m3, if photochemistry) 205 205 206 206 c Variables used by the slope model … … 1022 1022 END IF ! of IF (water) 1023 1023 1024 1025 c 7b. Chemical species 1026 c ------------------ 1027 1028 #ifndef MESOSCALE 1029 c -------------- 1030 c photochemistry : 1031 c -------------- 1032 IF (photochem .or. thermochem) then 1033 !NB: Photochemistry includes condensation of H2O2 1034 PRINT*, 'SURFDUST,SURFICE TO BE IMPLEMENTED. YAAAAAARG.' 1035 call calchim(ptimestep,pplay,pplev,pt,pdt,dist_sol,mu0, 1036 $ zzlev,zzlay,zday,pq,pdq,zdqchim,zdqschim, 1037 $ zdqcloud,zdqscloud,tauref,co2ice, 1038 $ pu,pdu,pv,pdv,surfdust,surfice) 1039 1040 ! increment values of tracers: 1041 DO iq=1,nq ! loop on all tracers; tendencies for non-chemistry 1042 ! tracers is zero anyways 1043 DO l=1,nlayer 1044 DO ig=1,ngrid 1045 pdq(ig,l,iq)=pdq(ig,l,iq)+zdqchim(ig,l,iq) 1046 ENDDO 1047 ENDDO 1048 ENDDO ! of DO iq=1,nq 1049 ! add condensation tendency for H2O2 1050 if (igcm_h2o2.ne.0) then 1051 DO l=1,nlayer 1052 DO ig=1,ngrid 1053 pdq(ig,l,igcm_h2o2)=pdq(ig,l,igcm_h2o2) 1054 & +zdqcloud(ig,l,igcm_h2o2) 1055 ENDDO 1056 ENDDO 1057 endif 1058 1059 ! increment surface values of tracers: 1060 DO iq=1,nq ! loop on all tracers; tendencies for non-chemistry 1061 ! tracers is zero anyways 1062 DO ig=1,ngrid 1063 dqsurf(ig,iq)=dqsurf(ig,iq)+zdqschim(ig,iq) 1064 ENDDO 1065 ENDDO ! of DO iq=1,nq 1066 ! add condensation tendency for H2O2 1067 if (igcm_h2o2.ne.0) then 1068 DO ig=1,ngrid 1069 dqsurf(ig,igcm_h2o2)=dqsurf(ig,igcm_h2o2) 1070 & +zdqscloud(ig,igcm_h2o2) 1071 ENDDO 1072 endif 1073 1074 END IF ! of IF (photochem.or.thermochem) 1075 #endif 1076 1077 c 7c. Aerosol particles 1024 c 7b. Aerosol particles 1078 1025 c ------------------- 1079 1026 … … 1130 1077 ENDDO 1131 1078 END IF ! of IF (sedimentation) 1079 1080 c 7c. Chemical species 1081 c ------------------ 1082 1083 #ifndef MESOSCALE 1084 c -------------- 1085 c photochemistry : 1086 c -------------- 1087 IF (photochem .or. thermochem) then 1088 1089 ! dust and ice surface area 1090 call surfacearea(ngrid, nlayer, pplay, zzlay, pt, pq, nq, 1091 $ rdust, rice, tau, tauscaling, 1092 $ surfdust, surfice) 1093 ! call photochemistry 1094 call calchim(ptimestep,pplay,pplev,pt,pdt,dist_sol,mu0, 1095 $ zzlev,zzlay,zday,pq,pdq,zdqchim,zdqschim, 1096 $ zdqcloud,zdqscloud,tauref,co2ice, 1097 $ pu,pdu,pv,pdv,surfdust,surfice) 1098 1099 ! increment values of tracers: 1100 DO iq=1,nq ! loop on all tracers; tendencies for non-chemistry 1101 ! tracers is zero anyways 1102 DO l=1,nlayer 1103 DO ig=1,ngrid 1104 pdq(ig,l,iq)=pdq(ig,l,iq)+zdqchim(ig,l,iq) 1105 ENDDO 1106 ENDDO 1107 ENDDO ! of DO iq=1,nq 1108 1109 ! add condensation tendency for H2O2 1110 if (igcm_h2o2.ne.0) then 1111 DO l=1,nlayer 1112 DO ig=1,ngrid 1113 pdq(ig,l,igcm_h2o2)=pdq(ig,l,igcm_h2o2) 1114 & +zdqcloud(ig,l,igcm_h2o2) 1115 ENDDO 1116 ENDDO 1117 endif 1118 1119 ! increment surface values of tracers: 1120 DO iq=1,nq ! loop on all tracers; tendencies for non-chemistry 1121 ! tracers is zero anyways 1122 DO ig=1,ngrid 1123 dqsurf(ig,iq)=dqsurf(ig,iq)+zdqschim(ig,iq) 1124 ENDDO 1125 ENDDO ! of DO iq=1,nq 1126 1127 ! add condensation tendency for H2O2 1128 if (igcm_h2o2.ne.0) then 1129 DO ig=1,ngrid 1130 dqsurf(ig,igcm_h2o2)=dqsurf(ig,igcm_h2o2) 1131 & +zdqscloud(ig,igcm_h2o2) 1132 ENDDO 1133 endif 1134 1135 END IF ! of IF (photochem.or.thermochem) 1136 #endif 1132 1137 1133 1138 … … 1743 1748 c call WRITEDIAGFI(ngridmx,'reffdust','reffdust', 1744 1749 c & 'm',3,rdust*ref_r0) 1750 c call WRITEDIAGFI(ngridmx,'rdust','rdust', 1751 c & 'm',3,rdust) 1745 1752 c call WRITEDIAGFI(ngridmx,'dustq','Dust mass mr', 1746 1753 c & 'kg/kg',3,pq(1,1,igcm_dust_mass)) -
trunk/LMDZ.MARS/libf/phymars/watercloud.F
r411 r459 122 122 end do 123 123 124 c=======================================================================125 126 !!!!!!!!!! FOR PHOTOCHEMISTRY, REIMPLEMENT output of surfdust/surfice127 !! if (photochem) then128 !!c computation of dust and ice surface area (micron2/cm3)129 !!c for heterogeneous chemistry130 !!131 !! do l = 1,nlay132 !! do ig = 1,ngrid133 !!c134 !!c npart: number density of ccn in #/cm3135 !!c136 !! npart(ig,l) = 1.e-6*ccn(ig,l)137 !! $ *masse(ig,l)/epaisseur(ig,l)138 !!c139 !!c dust and ice surface area140 !!c141 !! surfdust(ig,l) = npart(ig,l)*4.*pi*1.e12*rdust(ig,l)**2142 !!c143 !! if (rice(ig,l) .ge. rdust(ig,l)) then144 !! surfice(ig,l) = npart(ig,l)*4.*pi*1.e12*rice(ig,l)**2145 !! surfdust(ig,l) = 0.146 !! else147 !! surfice(ig,l) = 0.148 !! end if149 !! end do ! of do ig=1,ngrid150 !! end do ! of do l=1,nlay151 !! end if ! of photochem152 153 154 124 RETURN 155 125 END
Note: See TracChangeset
for help on using the changeset viewer.