Ignore:
Timestamp:
Dec 8, 2011, 10:04:00 AM (13 years ago)
Author:
emillour
Message:

Mars GCM: Include changes and updates for photochemistry by FL:

  • aeronomars/calchim.F : change in units of surface density.
  • aeronomars/surfacearea.F : new routine to compute ice and dust surface area

(m2/m3) available for heterogeneous reactions.

  • phymars/initracer.F : bug correction: initialize igcm_ch4 and change loop

bounds (when guessing tracer names/properties with
old input files).

  • phymars/watercloud.F : cleanup.
  • phymars/physiq.F : add call to surfacearea; photochemistry is now called

after sedimentation to take into acount updated rdust
and rice.

EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/physiq.F

    r420 r459  
    201201      real rsedcloud(ngridmx,nlayermx) ! Cloud sedimentation radius
    202202      real rhocloud(ngridmx,nlayermx)  ! Cloud density (kg.m-3)
    203       REAL surfdust(ngridmx,nlayermx) ! dust surface area (micron2/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)
    205205
    206206c     Variables used by the slope model
     
    10221022         END IF  ! of IF (water)
    10231023
    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
     1024c   7b. Aerosol particles
    10781025c     -------------------
    10791026
     
    11301077           ENDDO
    11311078         END IF   ! of IF (sedimentation)
     1079
     1080c   7c. Chemical species
     1081c     ------------------
     1082
     1083#ifndef MESOSCALE
     1084c        --------------
     1085c        photochemistry :
     1086c        --------------
     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
    11321137
    11331138
     
    17431748c             call WRITEDIAGFI(ngridmx,'reffdust','reffdust',
    17441749c     &                        'm',3,rdust*ref_r0)
     1750c             call WRITEDIAGFI(ngridmx,'rdust','rdust',
     1751c    &                        'm',3,rdust)
    17451752c             call WRITEDIAGFI(ngridmx,'dustq','Dust mass mr',
    17461753c     &                        'kg/kg',3,pq(1,1,igcm_dust_mass))
Note: See TracChangeset for help on using the changeset viewer.