Ignore:
Timestamp:
Apr 30, 2008, 3:14:57 PM (17 years ago)
Author:
lsce
Message:

ACo+JG

Ajout du flag aerosol_couple :
false=lecture des sulfates dans un fichier(par defaut) - configuration existante
true=calcul des aerosol par INCA

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/physiq.F

    r943 r954  
    11!
    22! $Header$
     3!
    34!
    45c
     
    13051306c$OMP THREADPRIVATE(cg_ae)
    13061307
    1307 #ifdef INCA_AER
    1308 #ifdef CPP_COUPLE
     1308#ifdef INCA
    13091309! Aerosol optical properties by INCA model
    13101310      REAL, SAVE, ALLOCATABLE  ::    tau_inca(:,:,:,:)
     
    13191319      REAL,SAVE,ALLOCATABLE :: topsw_inca(:,:), solsw_inca(:,:)
    13201320      REAL,SAVE,ALLOCATABLE :: topsw0_inca(:,:), solsw0_inca(:,:)
    1321 #endif
    13221321#endif
    13231322      REAL,SAVE,ALLOCATABLE :: topswad(:), solswad(:) ! Aerosol direct effect.
     
    13391338      SAVE ok_ade, ok_aie, bl95_b0, bl95_b1
    13401339c$OMP THREADPRIVATE(ok_ade, ok_aie, bl95_b0, bl95_b1)
     1340      LOGICAL, SAVE :: aerosol_couple  ! true  : calcul des aerosols dans INCA
     1341                                       ! false : lecture des aerosol dans un fichier
     1342c$OMP THREADPRIVATE(aerosol_couple)   
    13411343
    13421344c
     
    14571459      allocate( topswad(klon), solswad(klon))
    14581460      allocate( topswai(klon), solswai(klon) )
    1459 #ifdef INCA_AER
    1460 #ifdef CPP_COUPLE
     1461#ifdef INCA
    14611462      allocate( topswad_inca(klon), solswad_inca(klon))
    14621463      allocate( topswad0_inca(klon), solswad0_inca(klon))
     
    14681469      allocate( cg_inca(klon,klev,9,2))
    14691470      allocate( ccm(klon,klev,2) )
    1470 #endif
    14711471#endif
    14721472      allocate( clwcon0(klon,klev),rnebcon0(klon,klev))
     
    15301530         solswai(:)=0.
    15311531         solswad(:)=0.
    1532 #ifdef INCA_AER
    1533 #ifdef CPP_COUPLE
     1532#ifdef INCA
    15341533         tau_inca(:,:,:,:) = 0.
    15351534         piz_inca(:,:,:,:) = 0.
     
    15471546         solsw0_inca(:,:)  = 0.
    15481547#endif
    1549 #endif
    15501548!rv
    15511549!ACo
     
    15701568cIM  .                  iflag_cldcon,ratqsbas,ratqshaut, if_ebil,
    15711569     .                  iflag_cldcon,ratqsbas,ratqshaut,
    1572      .                  ok_ade, ok_aie,
     1570     .                  ok_ade, ok_aie,aerosol_couple,
    15731571     .                  bl95_b0, bl95_b1,
    15741572     .                  iflag_thermals,nsplit_thermals)
     
    25782576cjq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr)
    25792577      IF (ok_ade.OR.ok_aie) THEN
    2580 #if defined(CPP_COUPLE) && !defined(INCA_AER)
    2581          ! Get sulfate aerosol distribution
    2582          CALL readsulfate(rjourvrai, debut, sulfate)
    2583          CALL readsulfate_preind(rjourvrai, debut, sulfate_pi)
    2584 
    2585          ! Calculate aerosol optical properties (Olivier Boucher)
    2586          CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl,
    2587      .        tau_ae, piz_ae, cg_ae, aerindex)
    2588 #endif
    2589 #if !defined(CPP_COUPLE)
    2590          ! Get sulfate aerosol distribution
    2591          CALL readsulfate(rjourvrai, debut, sulfate)
    2592          CALL readsulfate_preind(rjourvrai, debut, sulfate_pi)
    2593 
    2594          ! Calculate aerosol optical properties (Olivier Boucher)
    2595          CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl,
    2596      .        tau_ae, piz_ae, cg_ae, aerindex)
    2597 #endif
     2578         IF ( .NOT. aerosol_couple ) THEN
     2579            ! Get sulfate aerosol distribution
     2580            CALL readsulfate(rjourvrai, debut, sulfate)
     2581            CALL readsulfate_preind(rjourvrai, debut, sulfate_pi)
     2582           
     2583            ! Calculate aerosol optical properties (Olivier Boucher)
     2584            CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl,
     2585     .           tau_ae, piz_ae, cg_ae, aerindex)
    25982586cym
     2587         ENDIF
     2588
    25992589      ELSE
    26002590        tau_ae(:,:,:)=0.0
     
    27732763c parametres pour diagnostiques:
    27742764c
     2765
     2766      IF (aerosol_couple ) THEN
     2767#ifdef INCA_AER
     2768         sulfate(:,:) = ccm(:,:,1)
     2769         sulfate_pi(:,:) = ccm(:,:,2)
     2770#endif
     2771      ENDIF
     2772
    27752773      if (ok_newmicro) then
    27762774      CALL newmicro (paprs, pplay,ok_newmicro,
     
    27792777     .            flwp, fiwp, flwc, fiwc,
    27802778     e            ok_aie,
    2781 #if defined(CPP_COUPLE) && defined(INCA_AER) 
    2782      e            ccm(:,:,1), ccm(:,:,2),
    2783 #else
    27842779     e            sulfate, sulfate_pi,
    2785 #endif
    27862780     e            bl95_b0, bl95_b1,
    27872781     s            cldtaupi, re, fl)
     
    28192813      endif
    28202814     
    2821 
    2822 #if defined(CPP_COUPLE) && defined(INCA_AER)
    2823       CALL radlwsw_inca ! nouveau rayonnement (compatible Arpege-IFS)
    2824      e            (kdlon,kflev,dist, rmu0, fract,
    2825      e             paprs, pplay,zxtsol,albsol, albsollw, t_seri,q_seri,
    2826      e             wo,
    2827      e             cldfra, cldemi, cldtau,
    2828      s             heat,heat0,cool,cool0,radsol,albpla,
    2829      s             topsw,toplw,solsw,sollw,
    2830      s             sollwdown,
    2831      s             topsw0,toplw0,solsw0,sollw0,
    2832      s             lwdn0, lwdn, lwup0, lwup,
    2833      s             swdn0, swdn, swup0, swup,
    2834      e             ok_ade, ok_aie, ! new for aerosol radiative effects
    2835      e             tau_inca, piz_inca, cg_inca, ! ="=
    2836      s             topswad_inca, solswad_inca, ! ="=
    2837      s             topswad0_inca, solswad0_inca, ! ="=
    2838      s             topsw_inca, topsw0_inca,
    2839      s             solsw_inca, solsw0_inca,
    2840      e             cldtaupi, ! ="=
    2841      s             topswai_inca, solswai_inca) ! ="=
    2842 #else
    2843       CALL radlwsw ! nouveau rayonnement (compatible Arpege-IFS)
    2844      e            (dist, rmu0, fract,
    2845      e             paprs, pplay,zxtsol,albsol, albsollw, t_seri,q_seri,
    2846      e             wo,
    2847      e             cldfra, cldemi, cldtau,
    2848      s             heat,heat0,cool,cool0,radsol,albpla,
    2849      s             topsw,toplw,solsw,sollw,
    2850      s             sollwdown,
    2851      s             topsw0,toplw0,solsw0,sollw0,
    2852      s             lwdn0, lwdn, lwup0, lwup,
    2853      s             swdn0, swdn, swup0, swup,
    2854      e             ok_ade, ok_aie, ! new for aerosol radiative effects
    2855      e             tau_ae, piz_ae, cg_ae, ! ="=
    2856      s             topswad, solswad, ! ="=
    2857      e             cldtaupi, ! ="=
    2858      s             topswai, solswai) ! ="=
    2859 #endif
     2815      IF (aerosol_couple) THEN
     2816#ifdef INCA_AER
     2817         CALL radlwsw_inca     
     2818     e        (kdlon,kflev,dist, rmu0, fract, solaire,
     2819     e        paprs, pplay,zxtsol,albsol, albsollw, t_seri,q_seri,
     2820     e        wo,
     2821     e        cldfra, cldemi, cldtau,
     2822     s        heat,heat0,cool,cool0,radsol,albpla,
     2823     s        topsw,toplw,solsw,sollw,
     2824     s        sollwdown,
     2825     s        topsw0,toplw0,solsw0,sollw0,
     2826     s        lwdn0, lwdn, lwup0, lwup,
     2827     s        swdn0, swdn, swup0, swup,
     2828     e        ok_ade, ok_aie,   
     2829     e        tau_inca, piz_inca, cg_inca,
     2830     s        topswad_inca, solswad_inca,
     2831     s        topswad0_inca, solswad0_inca,
     2832     s        topsw_inca, topsw0_inca,
     2833     s        solsw_inca, solsw0_inca,
     2834     e        cldtaupi,         
     2835     s        topswai_inca, solswai_inca)
     2836#endif
     2837      ELSE
     2838         CALL radlwsw           ! nouveau rayonnement (compatible Arpege-IFS)
     2839     e        (dist, rmu0, fract,
     2840     e        paprs, pplay,zxtsol,albsol, albsollw, t_seri,q_seri,
     2841     e        wo,
     2842     e        cldfra, cldemi, cldtau,
     2843     s        heat,heat0,cool,cool0,radsol,albpla,
     2844     s        topsw,toplw,solsw,sollw,
     2845     s        sollwdown,
     2846     s        topsw0,toplw0,solsw0,sollw0,
     2847     s        lwdn0, lwdn, lwup0, lwup,
     2848     s        swdn0, swdn, swup0, swup,
     2849     e        ok_ade, ok_aie,   ! new for aerosol radiative effects
     2850     e        tau_ae, piz_ae, cg_ae, ! ="=
     2851     s        topswad, solswad, ! ="=
     2852     e        cldtaupi,         ! ="=
     2853     s        topswai, solswai) ! ="=
     2854      ENDIF
     2855
    28602856      itaprad = 0
    28612857      ENDIF
     
    30893085     I                   upwd,
    30903086     I                   dnwd,
     3087     I                   aerosol_couple,
    30913088#ifdef INCA
    30923089     I                   flxmass_w,
    3093 #if defined(INCA_AER) && defined(CPP_COUPLE)
    30943090     I                   tau_inca,
    30953091     I                   piz_inca,
     
    30973093     I                   ccm,
    30983094     I                   rfname,
    3099 #endif
    31003095#endif
    31013096     O                   tr_seri)
Note: See TracChangeset for help on using the changeset viewer.