Ignore:
Timestamp:
Dec 13, 2019, 10:44:42 AM (5 years ago)
Author:
flefevre
Message:

mise en place du supercycling du rayonnement et de la chimie

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F

    r2135 r2193  
    9090      USE mod_phys_lmdz_para, only : is_parallel,jj_nb,
    9191     &                               is_north_pole_phy,
    92      &                               is_south_pole_phy
     92     &                               is_south_pole_phy,
     93     &                               is_master
    9394#endif
    9495      IMPLICIT none
     
    171172
    172173c Variables propres a la physique
    173 c
    174       INTEGER,save :: itap        ! compteur pour la physique
     174
     175      integer,save :: itap        ! physics counter
    175176      REAL delp(klon,klev)        ! epaisseur d'une couche
    176177      REAL omega(klon,klev)       ! vitesse verticale en Pa/s
    177 
    178178     
    179179      INTEGER igwd,idx(klon),itest(klon)
    180 c
     180
    181181c  Diagnostiques 2D de drag_noro, lift_noro et gw_nonoro
    182182
     
    275275c
    276276      REAL tmpout(klon,klev)  ! K s-1
    277 
    278       INTEGER itaprad
    279       SAVE itaprad
    280277c
    281278      REAL dist, rmu0(klon), fract(klon)
     
    292289      REAL    varerr
    293290
     291! photochemistry
     292
     293      integer :: chempas
     294      real :: nbapp_chem, zctime
     295
     296! sedimentation
     297
     298      REAL :: m0_mode1(klev,2),m0_mode2(klev,2)
     299      REAL :: m3_mode1(klev,3),m3_mode2 (klev,3)
     300      REAL :: d_drop_sed(klev),d_ccn_sed(klev,2),d_liq_sed(klev,2)
     301      REAL :: aer_flux(klev)
     302      REAL :: d_tr_ssed(klon)
     303c
    294304c Variables du changement
    295305c
     
    348358      REAL :: d_tr(klon,klev,nqmax)
    349359
    350 c Variables tendance sedimentation
    351 
    352       REAL :: m0_mode1(klev,2),m0_mode2(klev,2)
    353       REAL :: m3_mode1(klev,3),m3_mode2 (klev,3)
    354       REAL :: d_drop_sed(klev),d_ccn_sed(klev,2),d_liq_sed(klev,2)
    355       REAL :: aer_flux(klev)
    356       REAL :: d_tr_sed(klon,klev,nqmax)
    357       REAL :: d_tr_ssed(klon)
    358 c
    359360c pour ioipsl
    360361      INTEGER nid_day, nid_mth, nid_ins
     
    458459     .                  if_ebil)
    459460
    460          call phys_state_var_init
     461         call phys_state_var_init(nqmax)
    461462c
    462463c Initialising Hedin model for upper atm
    463464c   (to be revised when coupled to chemistry) :
    464465         call conc_init
    465 c
    466 c Initialiser les compteurs:
    467 c
    468          itap    = 0
    469          itaprad = 0
     466
     467! initialise physics counter
     468
     469      itap    = 0
    470470
    471471#ifdef MESOSCALE
     
    523523         ENDIF
    524524
    525          radpas = NINT( RDAY/pdtphys/nbapp_rad)
     525         radpas = NINT(RDAY/pdtphys/nbapp_rad)
    526526
    527527         CALL printflag( ok_journe,ok_instan )
    528528
    529529#ifdef CPP_XIOS
    530 
    531530         write(*,*) "physiq: call initialize_xios_output"
    532531         call initialize_xios_output(rjourvrai,gmtime,pdtphys,RDAY,
     
    715714      endif
    716715   
    717 c number of microphysical tracers
    718       nmicro=0
    719       if (ok_cloud .AND. (cl_scheme.eq.1)) nmicro=2
    720       if (ok_cloud .AND. (cl_scheme.eq.2)) nmicro=12
     716! number of microphysical tracers
     717
     718      nmicro = 0
     719      if (ok_cloud .and. (cl_scheme == 1)) nmicro = 2
     720      if (ok_cloud .and. (cl_scheme == 2)) nmicro = 12
    721721 
    722722c CAS 1D POUR MICROPHYS Aurelien
     
    747747
    748748      ENDIF ! debut
    749 c======================================================================
    750 c======================================================================
     749
    751750! ------------------------------------------------------
    752751!   Initializations done at every physical timestep:
     
    915914c
    916915      CALL hgardfou(t_seri,ftsol,'debutphy')
    917 c====================================================================
    918 c
    919 c Incrementer le compteur de la physique
    920 c
    921       itap   = itap + 1
    922916
    923917c====================================================================
     
    946940      ENDIF
    947941     
    948 c====================================================================
    949 c   Calcul  des tendances traceurs
    950 c====================================================================
     942!     print fraction of venus day
     943
     944      if (is_master) then
     945         print*, 'gmtime = ', gmtime
     946      end if
    951947
    952948      if (iflag_trac.eq.1) then
    953 
     949!====================================================================
     950! Case 1: pseudo-chemistry with relaxation toward fixed profile
     951!====================================================================
    954952       if (tr_scheme.eq.1) then
    955 ! Case 1: pseudo-chemistry with relaxation toward fixed profile
    956953
    957954         call phytrac_relax (debut,lafin,nqmax,
     
    960957
    961958       elseif (tr_scheme.eq.2) then
     959!====================================================================
    962960! Case 2: surface emission
    963961! For the moment, inspired from Mars version
    964962! However, the variable 'source' could be used in physiq
    965963! so the call to phytrac_emiss could be to initialise it.
     964!====================================================================
    966965
    967966         call phytrac_emiss ( (rjourvrai+gmtime)*RDAY,
     
    971970     O                   tr_seri)
    972971
    973        elseif (tr_scheme.eq.3) then  ! identical to ok_chem.or.ok_cloud
    974 ! Case 3: Full chemistry and/or clouds
    975 
    976            call phytrac_chimie(                             
    977      I             debut,
    978      I             gmtime,
    979      I             nqmax,
    980      I             klon,
    981      I             latitude_deg,
    982      I             longitude_deg,
    983      I             nlev,
    984      I             dtime,
    985      I             t_seri,
    986      I             pplay,
    987      O             tr_seri)
    988 
    989 c        CALL WriteField_phy('Pression',pplay,nlev)
    990 c        CALL WriteField_phy('PressionBnd',paprs,nlev+1)
    991 c        CALL WriteField_phy('Temp',t_seri,nlev)
    992 c        IF (ok_cloud) THEN
    993 c          CALL WriteField_phy('NBRTOT',NBRTOT,nlev)
    994 c        ENDIF
    995 c        CALL WriteField_phy('SAl',tr_seri(:,:,i_h2so4liq),nlev)
    996 c        CALL WriteField_phy('SAg',tr_seri(:,:,i_h2so4),nlev)
    997 
    998 C === SEDIMENTATION ===
     972      else if (tr_scheme.eq.3) then
     973!====================================================================
     974! Case 3: Full chemistry and/or clouds.
     975!         routines are called every "chempas" physical timestep.
     976!         if the physics is called 96000 times per venus day,
     977!         then chempas = 4
     978!====================================================================
     979
     980         nbapp_chem = 24000                       ! corresponds to 420 seconds
     981         chempas = nint(rday/pdtphys/nbapp_chem)
     982         zctime = dtime*real(chempas)             ! chemical timestep (420s)
     983
     984         if (mod(itap,chempas) == 0) then         ! <------- start of chemistry supercycling
     985
     986!        photochemistry and microphysics
     987
     988         call phytrac_chimie(debut,
     989     $                       gmtime,
     990     $                       nqmax,
     991     $                       klon,
     992     $                       latitude_deg,
     993     $                       longitude_deg,
     994     $                       nlev,
     995     $                       zctime,
     996     $                       t_seri,
     997     $                       pplay,
     998     $                       tr_seri,
     999     $                       d_tr_chem,
     1000     $                       iter)
    9991001
    10001002         if (ok_sedim) then
    1001 
    1002 c !! Depend on cl_scheme !!
    1003 
    1004           if (cl_scheme.eq.1) then
    1005 c         ================
     1003            if (cl_scheme == 1) then
     1004
     1005!        sedimentation for simplified microphysics
     1006
    10061007#ifndef MESOSCALE
    1007            CALL new_cloud_sedim(
    1008      I                 klon,
    1009      I                     nlev,
    1010      I                     dtime,
    1011      I                 pplay,
    1012      I                     paprs,
    1013      I                     t_seri,
    1014      I                 tr_seri,
    1015      O                     d_tr_sed(:,:,1:2),
    1016      O                     d_tr_ssed,
    1017      I                     nqmax,
    1018      O                 Fsedim)
    1019 
    1020         DO k = 1, klev
    1021          DO i = 1, klon
    1022 
    1023 c--------------------
    1024 c   Ce test est necessaire pour eviter Xliq=NaN   
    1025 !        IF (ieee_is_nan(d_tr_sed(i,k,1)).OR.
    1026 !     &  ieee_is_nan(d_tr_sed(i,k,2))) THEN
    1027         IF ((d_tr_sed(i,k,1).ne.d_tr_sed(i,k,1)).OR.
    1028      &      (d_tr_sed(i,k,2).ne.d_tr_sed(i,k,2))) THEN
    1029         PRINT*,'sedim NaN PROBLEM'
    1030         PRINT*,'d_tr_sed Nan?',d_tr_sed(i,k,:),'Temp',t_seri(i,k)
    1031         PRINT*,'lat-lon',i,'level',k,'dtime',dtime
    1032         PRINT*,'F_sed',Fsedim(i,k)
    1033         PRINT*,'==============================================='
    1034                 d_tr_sed(i,k,:)=0.
    1035         ENDIF
    1036 c--------------------
    1037 
    1038         tr_seri(i,k,i_h2so4liq) = tr_seri(i,k,i_h2so4liq)+
    1039      &                            d_tr_sed(i,k,1)
    1040         tr_seri(i,k,i_h2oliq)   = tr_seri(i,k,i_h2oliq)+
    1041      &                            d_tr_sed(i,k,2)
    1042         d_tr_sed(i,k,:) = d_tr_sed(i,k,:) / dtime
    1043         Fsedim(i,k)     = Fsedim(i,k) / dtime
    1044      
    1045           ENDDO
    1046          ENDDO
    1047      
    1048         Fsedim(:,klev+1) = 0.
    1049        
    1050           elseif (cl_scheme.eq.2) then
    1051 c         ====================
    1052 
    1053            d_tr_sed(:,:,:) = 0.D0
    1054 
    1055            DO i=1, klon
    1056 
    1057 c Mode 1
    1058          m0_mode1(:,1)=tr_seri(i,:,i_m0_mode1drop)
    1059          m0_mode1(:,2)=tr_seri(i,:,i_m0_mode1ccn)
    1060          m3_mode1(:,1)=tr_seri(i,:,i_m3_mode1sa)
    1061          m3_mode1(:,2)=tr_seri(i,:,i_m3_mode1w)
    1062          m3_mode1(:,3)=tr_seri(i,:,i_m3_mode1ccn)
    1063          
    1064          call drop_sedimentation(dtime,klev,m0_mode1,m3_mode1,
    1065      &        paprs(i,:),zzlev(i,:),zzlay(i,:),t_seri(i,:),
    1066      &        1,
    1067      &        d_ccn_sed(:,1),d_drop_sed,d_ccn_sed(:,2),d_liq_sed)
     1008               call new_cloud_sedim(klon,
     1009     $                              nlev,
     1010     $                              zctime,
     1011     $                              pplay,
     1012     $                              paprs,
     1013     $                              t_seri,
     1014     $                              tr_seri,
     1015     $                              d_tr_sed(:,:,1:2),
     1016     $                              d_tr_ssed,
     1017     $                              nqmax,
     1018     $                              Fsedim)
     1019
     1020!        test to avoid nans
     1021
     1022               do k = 1, klev
     1023                  do i = 1, klon
     1024                     if ((d_tr_sed(i,k,1) /= d_tr_sed(i,k,1)) .or.
     1025     $                   (d_tr_sed(i,k,2) /= d_tr_sed(i,k,2))) then
     1026                        print*,'sedim NaN PROBLEM'
     1027                        print*,'d_tr_sed Nan?',d_tr_sed(i,k,:)
     1028                        print*,'Temp',t_seri(i,k)
     1029                        print*,'lat-lon',i,'level',k,'zctime',zctime
     1030                        print*,'F_sed',Fsedim(i,k)
     1031                        d_tr_sed(i,k,:) = 0.
     1032                     end if
     1033                  end do
     1034               end do
     1035
     1036!        tendency due to sedimentation
     1037
     1038               d_tr_sed(:,:,:) = d_tr_sed(:,:,:)/zctime
     1039               Fsedim(:,1:klev) = Fsedim(:,1:klev)/zctime
     1040               Fsedim(:,klev+1) = 0.
     1041
     1042            else if (cl_scheme == 2) then
     1043
     1044!        sedimentation for detailed microphysics
     1045
     1046               d_tr_sed(:,:,:) = 0.
     1047
     1048               do i = 1, klon
     1049
     1050!                 mode 1
     1051
     1052                  m0_mode1(:,1) = tr_seri(i,:,i_m0_mode1drop)
     1053                  m0_mode1(:,2) = tr_seri(i,:,i_m0_mode1ccn)
     1054                  m3_mode1(:,1) = tr_seri(i,:,i_m3_mode1sa)
     1055                  m3_mode1(:,2) = tr_seri(i,:,i_m3_mode1w)
     1056                  m3_mode1(:,3) = tr_seri(i,:,i_m3_mode1ccn)
     1057
     1058                  call drop_sedimentation(zctime,klev,m0_mode1,m3_mode1,
     1059     $                                    paprs(i,:),zzlev(i,:),
     1060     $                                    zzlay(i,:),t_seri(i,:),1,
     1061     $                                    d_ccn_sed(:,1),d_drop_sed,
     1062     $                                    d_ccn_sed(:,2),d_liq_sed)
    10681063
    10691064        d_tr_sed(i,:,i_m0_mode1drop)= d_tr_sed(i,:,i_m0_mode1drop)
    1070      &                              + d_drop_sed
     1065     $                              + d_drop_sed
    10711066        d_tr_sed(i,:,i_m0_mode1ccn) = d_tr_sed(i,:,i_m0_mode1ccn)
    1072      &                              + d_ccn_sed(:,1)
     1067     $                              + d_ccn_sed(:,1)
    10731068        d_tr_sed(i,:,i_m3_mode1ccn) = d_tr_sed(i,:,i_m3_mode1ccn)
    1074      &                              + d_ccn_sed(:,2)
     1069     $                              + d_ccn_sed(:,2)
    10751070        d_tr_sed(i,:,i_m3_mode1sa)  = d_tr_sed(i,:,i_m3_mode1sa)
    1076      &                              + d_liq_sed(:,1)
     1071     $                              + d_liq_sed(:,1)
    10771072        d_tr_sed(i,:,i_m3_mode1w)   = d_tr_sed(i,:,i_m3_mode1w)
    1078      &                              + d_liq_sed(:,2)
    1079 
    1080 c Mode 2
    1081          m0_mode2(:,1)=tr_seri(i,:,i_m0_mode2drop)
    1082          m0_mode2(:,2)=tr_seri(i,:,i_m0_mode2ccn)
    1083          m3_mode2(:,1)=tr_seri(i,:,i_m3_mode2sa)
    1084          m3_mode2(:,2)=tr_seri(i,:,i_m3_mode2w)
    1085          m3_mode2(:,3)=tr_seri(i,:,i_m3_mode2ccn)
    1086          
    1087          call drop_sedimentation(dtime,klev,m0_mode2,m3_mode2,
    1088      &        paprs(i,:),zzlev(i,:),zzlay(i,:),t_seri(i,:),
    1089      &        2,
    1090      &        d_ccn_sed(:,1),d_drop_sed,d_ccn_sed(:,2),d_liq_sed)
     1073     $                              + d_liq_sed(:,2)
     1074
     1075!                 mode 2
     1076
     1077                  m0_mode2(:,1) = tr_seri(i,:,i_m0_mode2drop)
     1078                  m0_mode2(:,2) = tr_seri(i,:,i_m0_mode2ccn)
     1079                  m3_mode2(:,1) = tr_seri(i,:,i_m3_mode2sa)
     1080                  m3_mode2(:,2) = tr_seri(i,:,i_m3_mode2w)
     1081                  m3_mode2(:,3) = tr_seri(i,:,i_m3_mode2ccn)
     1082
     1083                  call drop_sedimentation(zctime,klev,m0_mode2,m3_mode2,
     1084     $                                    paprs(i,:),zzlev(i,:),
     1085     $                                    zzlay(i,:),t_seri(i,:),2,
     1086     $                                    d_ccn_sed(:,1),d_drop_sed,
     1087     $                                    d_ccn_sed(:,2),d_liq_sed)
    10911088
    10921089        d_tr_sed(i,:,i_m0_mode2drop)= d_tr_sed(i,:,i_m0_mode2drop)
    1093      &                              + d_drop_sed
     1090     $                              + d_drop_sed
    10941091        d_tr_sed(i,:,i_m0_mode2ccn) = d_tr_sed(i,:,i_m0_mode2ccn)
    1095      &                              + d_ccn_sed(:,1)
     1092     $                              + d_ccn_sed(:,1)
    10961093        d_tr_sed(i,:,i_m3_mode2ccn) = d_tr_sed(i,:,i_m3_mode2ccn)
    1097      &                              + d_ccn_sed(:,2)
     1094     $                              + d_ccn_sed(:,2)
    10981095        d_tr_sed(i,:,i_m3_mode2sa)  = d_tr_sed(i,:,i_m3_mode2sa)
    1099      &                              + d_liq_sed(:,1)
     1096     $                              + d_liq_sed(:,1)
    11001097        d_tr_sed(i,:,i_m3_mode2w)   = d_tr_sed(i,:,i_m3_mode2w)
    1101      &                              + d_liq_sed(:,2)
    1102 
    1103 c Aer
    1104         call aer_sedimentation(dtime,klev,tr_seri(i,:,i_m0_aer),
    1105      &        tr_seri(i,:,i_m3_aer),paprs(i,:),
    1106      &        zzlev(i,:),zzlay(i,:),t_seri(i,:),
    1107      &        d_tr_sed(i,:,i_m0_aer),d_tr_sed(i,:,i_m3_aer),aer_flux)
    1108 
    1109            END DO
     1098     $                              + d_liq_sed(:,2)
     1099
     1100!                 aer
     1101
     1102                  call aer_sedimentation(zctime,klev,
     1103     $                                   tr_seri(i,:,i_m0_aer),
     1104     $                                   tr_seri(i,:,i_m3_aer),
     1105     $                                   paprs(i,:),zzlev(i,:),
     1106     $                                   zzlay(i,:),t_seri(i,:),
     1107     $                                   d_tr_sed(i,:,i_m0_aer),
     1108     $                                   d_tr_sed(i,:,i_m3_aer),
     1109     $                                   aer_flux)
     1110
     1111               end do
    11101112         
    1111            DO iq=nqmax-nmicro+1,nqmax
    1112             tr_seri(:,:,iq)  = tr_seri(:,:,iq) + d_tr_sed(:,:,iq)
    1113             d_tr_sed(:,:,iq) = d_tr_sed(:,:,iq) / dtime
    1114            END DO
     1113!        tendency due to sedimentation
     1114
     1115               do iq = nqmax - nmicro + 1,nqmax
     1116                  tr_seri(:,:,iq)  = tr_seri(:,:,iq) + d_tr_sed(:,:,iq)
     1117                  d_tr_sed(:,:,iq) = d_tr_sed(:,:,iq)/zctime
     1118               end do
    11151119#endif
    1116         endif
    1117 c         ====================
    1118 
    1119 C === FIN SEDIMENTATION ===
    1120 
    1121          endif ! ok_sedim
    1122 
    1123        endif   ! tr_scheme
    1124       endif    ! iflag_trac
    1125 
    1126 c
     1120            end if  ! cl_scheme
     1121         end if     ! ok_sedim
     1122         end if     ! mod(itap,chempas)  <------- end of chemistry supercycling
     1123
     1124!        update tracers (chemistry)
     1125
     1126         do iq = 1, nqmax - nmicro
     1127            tr_seri(:,:,iq) = tr_seri(:,:,iq) + d_tr_chem(:,:,iq)*dtime
     1128         end do
     1129
     1130!        update tracers (sedimentation)
     1131
     1132         tr_seri(:,:,i_h2so4liq) = tr_seri(:,:,i_h2so4liq)
     1133     $                           + d_tr_sed(:,:,1)*dtime
     1134         tr_seri(:,:,i_h2oliq)   = tr_seri(:,:,i_h2oliq)
     1135     $                           + d_tr_sed(:,:,2)*dtime
     1136
     1137         end if     ! tr_scheme
     1138      end if        ! iflag_trac
     1139
    11271140c====================================================================
    11281141c Appeler la diffusion verticale (programme de couche limite)
     
    13371350      END IF
    13381351
    1339 
    1340 c====================================================================
    1341 c RAYONNEMENT
    1342 c====================================================================
    1343 
    13441352c------------------------------------
    1345 c    . Compute radiative tendencies :
    1346 c------------------------------------
    1347 c====================================================================
    1348       IF (MOD(itaprad,radpas).EQ.0) THEN
    1349 c====================================================================
    1350 
    1351       dtimerad = dtime*REAL(radpas)  ! pas de temps du rayonnement (s)
    1352 c     PRINT*,'dtimerad,dtime,radpas',dtimerad,dtime,radpas
    1353            
    1354 
    1355 c------------------------------------
    1356 c    . Compute mean mass, cp and R :
     1353c    Compute mean mass, cp and R :
    13571354c------------------------------------
    13581355
    13591356      if(callthermos) then
    13601357         call concentrations2(pplay,t_seri,d_t,tr_seri, nqmax)
    1361 
    13621358      endif
    13631359
    1364 
    1365 cc!!! ADD key callhedin
    1366 
    1367       IF(callnlte.or.callthermos) THEN                                 
    1368          call compo_hedin83_mod(pplay,rmu0,   
    1369      &                 co2vmr_gcm,covmr_gcm,ovmr_gcm,n2vmr_gcm,nvmr_gcm)
    1370 
    1371          IF(ok_chem) then
     1360c====================================================================
     1361c RAYONNEMENT
     1362c====================================================================
     1363      if (mod(itap,radpas) == 0) then
     1364
     1365      dtimerad = dtime*REAL(radpas)  ! pas de temps du rayonnement (s)
     1366c====================================================================
     1367
     1368      if (callnlte .or. callthermos) then
     1369         if (ok_chem) then
     1370
     1371!           nlte : use computed chemical species
    13721372 
    1373 CC  !! GG : Using only mayor species tracers abundances to compute NLTE heating/cooling
    1374 
    1375 CC               Conversion [mmr] ---> [vmr]
    1376        
    1377                  co2vmr_gcm(:,:) = tr_seri(1:nlon,1:nlev,i_co2)*
    1378      &                             mmean(1:nlon,1:nlev)/M_tr(i_co2)
    1379                  covmr_gcm(:,:)  = tr_seri(1:nlon,1:nlev,i_co)*
    1380      &                              mmean(1:nlon,1:nlev)/M_tr(i_co)
    1381                  ovmr_gcm(:,:)   = tr_seri(1:nlon,1:nlev,i_o)*
    1382      &                             mmean(1:nlon,1:nlev)/M_tr(i_o)
    1383                  n2vmr_gcm(:,:)   = tr_seri(1:nlon,1:nlev,i_n2)*
    1384      &                             mmean(1:nlon,1:nlev)/M_tr(i_n2)
    1385 
    1386          ENDIF
    1387 
    1388        ENDIF       
    1389 
    1390 c
     1373            co2vmr_gcm(:,:) = tr_seri(:,:,i_co2)*mmean(:,:)/m_tr(i_co2)
     1374            covmr_gcm(:,:)  = tr_seri(:,:,i_co)*mmean(:,:)/m_tr(i_co)
     1375            ovmr_gcm(:,:)   = tr_seri(:,:,i_o)*mmean(:,:)/m_tr(i_o)
     1376            n2vmr_gcm(:,:)  = tr_seri(:,:,i_n2)*mmean(:,:)/m_tr(i_n2)
     1377
     1378         else
     1379
     1380!           nlte : use hedin climatology
     1381
     1382            call compo_hedin83_mod(pplay,rmu0,   
     1383     $                 co2vmr_gcm,covmr_gcm,ovmr_gcm,n2vmr_gcm,nvmr_gcm)
     1384         end if
     1385      end if
     1386
    13911387c   NLTE cooling from CO2 emission
    13921388c   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     
    14061402                     write(*,*)'I will continue anyway'
    14071403                  endif
    1408 
    14091404             endif
    14101405             
     
    14801475c     $          covmr_gcm, ovmr_gcm,d_t_euv )
    14811476           call euvheat(klon, klev, nqmax, t_seri,paprs,pplay,zzlay,
    1482      $         rmu0,pdtphys,gmtime,rjourvrai,
     1477     $         rmu0,dtimerad,gmtime,rjourvrai,
    14831478     $         tr_seri, d_tr, d_t_euv )
    14841479                 
     
    14931488
    14941489c====================================================================
    1495         itaprad = 0
    14961490      ENDIF    ! radpas
    14971491c====================================================================
     
    15041498      ENDDO
    15051499      ENDDO
     1500
     1501! increment physics counter
     1502
     1503      itap   = itap + 1
    15061504
    15071505! CONDUCTION  and  MOLECULAR VISCOSITY
     
    19781976      CALL send_xios_field("fluxec",flux_ec)
    19791977
    1980 c When using tracers
    1981       IF (iflag_trac.eq.1) THEN
    1982 c photochemical compounds  !!!outputs in [vmr]
    1983          DO iq=1,nqmax-nmicro
    1984        CALL send_xios_field(tname(iq),qx(:,:,iq)*mmean(:,:)/M_tr(iq))
    1985          ENDDO
    1986 
    1987         IF ((tr_scheme.eq.3).and.(cl_scheme.eq.1)) THEN
    1988 c liquids  !!!outputs in [vmr]
    1989          CALL send_xios_field(tname(i_h2oliq),
    1990      .             qx(:,:,i_h2oliq)*mmean(:,:)/M_tr(i_h2oliq))
    1991          CALL send_xios_field(tname(i_h2so4liq),
    1992      .             qx(:,:,i_h2so4liq)*mmean(:,:)/M_tr(i_h2so4liq))
    1993          if (ok_sedim) CALL send_xios_field("Fsedim",Fsedim(:,1:klev))
    1994         ENDIF
    1995       ENDIF
     1978! when using tracers
     1979
     1980      if (iflag_trac == 1) then
     1981
     1982! tracers in gas phase, volume mixing ratio
     1983
     1984         do iq = 1,nqmax - nmicro
     1985            call send_xios_field(tname(iq),
     1986     $                           qx(:,:,iq)*mmean(:,:)/m_tr(iq))
     1987         end do
     1988
     1989! tracers in liquid phase, volume mixing ratio
     1990
     1991         if ((tr_scheme == 3) .and. (cl_scheme == 1)) THEN
     1992            call send_xios_field(tname(i_h2oliq),
     1993     $             qx(:,:,i_h2oliq)*mmean(:,:)/m_tr(i_h2oliq))
     1994            call send_xios_field(tname(i_h2so4liq),
     1995     $             qx(:,:,i_h2so4liq)*mmean(:,:)/m_tr(i_h2so4liq))
     1996            if (ok_sedim) then
     1997               call send_xios_field("Fsedim",fsedim(:,1:klev))
     1998            end if
     1999         end if
     2000
     2001! chemical iterations
     2002
     2003         call send_xios_field("iter",real(iter))
     2004
     2005      end if
    19962006
    19972007      IF (callthermos .and. ok_chem) THEN
Note: See TracChangeset for help on using the changeset viewer.