Changeset 1159 for LMDZ4


Ignore:
Timestamp:
May 7, 2009, 5:41:29 PM (16 years ago)
Author:
jghattas
Message:
  • Recuperation de la variable solaire avec include clesphys.h au lieu de liste des arguments
  • Recuperation de qq modifications qui etaient fait sur radlwsw.F mais pas repercute sur la nouvelle version radlwsw_aero.F90 :
    • Ajoute iflag_rrtm et 3 arguments qui sont necessaire pour iflag_rrtm=1 + Cosmetique

Marie-Pierre + Josefine

Location:
LMDZ4/branches/LMDZ4-dev/libf/phylmd
Files:
3 edited

Legend:

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

    r1154 r1159  
    29412941
    29422942         CALL radlwsw_aero
    2943      e        (dist, rmu0, fract, solaire,
     2943     e        (dist, rmu0, fract,
    29442944     e        paprs, pplay,zxtsol,albsol1, albsol2,
    29452945     e        t_seri,q_seri,wo,
     
    29482948     e        tau_aero, piz_aero, cg_aero,
    29492949     e        cldtaupi,new_aod,
     2950     e        zqsat, flwc, fiwc,
    29502951     s        heat,heat0,cool,cool0,radsol,albpla,
    29512952     s        topsw,toplw,solsw,sollw,
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/radlwsw_aero.F90

    r1153 r1159  
    11SUBROUTINE radlwsw_aero( &
    2    dist, rmu0, fract, solaire, &
    3    paprs, pplay,tsol,albedo, alblw, &
     2   dist, rmu0, fract, &
     3   paprs, pplay,tsol,alb1, alb2, &
    44   t,q,wo,&
    55   cldfra, cldemi, cldtaupd,&
     
    77   tau_aero, piz_aero, cg_aero,&
    88   cldtaupi, new_aod, &
     9   qsat, flwc, fiwc, &
    910   heat,heat0,cool,cool0,radsol,albpla,&
    1011   topsw,toplw,solsw,sollw,&
     
    3233  ! fract----input-R- duree d'ensoleillement normalisee
    3334  ! co2_ppm--input-R- concentration du gaz carbonique (en ppm)
    34   ! solaire--input-R- constante solaire (W/m**2)
    3535  ! paprs----input-R- pression a inter-couche (Pa)
    3636  ! pplay----input-R- pression au milieu de couche (Pa)
    3737  ! tsol-----input-R- temperature du sol (en K)
    38   ! albedo---input-R- albedo du sol (entre 0 et 1)
     38  ! alb1-----input-R- albedo du sol(entre 0 et 1) dans l'interval visible
     39  ! alb2-----input-R- albedo du sol(entre 0 et 1) dans l'interval proche infra-rouge   
    3940  ! t--------input-R- temperature (K)
    4041  ! q--------input-R- vapeur d'eau (en kg/kg)
     
    9293  include "YOETHF.h"
    9394  include "YOMCST.h"
     95  include "clesphys.h"
     96  include "iniprint.h"
    9497
    9598! Input arguments
    96   REAL,    INTENT(in)  :: solaire
    9799  REAL,    INTENT(in)  :: dist
    98100  REAL,    INTENT(in)  :: rmu0(KLON), fract(KLON)
    99101  REAL,    INTENT(in)  :: paprs(KLON,KLEV+1), pplay(KLON,KLEV)
    100   REAL,    INTENT(in)  :: albedo(KLON), alblw(KLON), tsol(KLON)
     102  REAL,    INTENT(in)  :: alb1(KLON), alb2(KLON), tsol(KLON)
    101103  REAL,    INTENT(in)  :: t(KLON,KLEV), q(KLON,KLEV), wo(KLON,KLEV)
    102104  LOGICAL, INTENT(in)  :: ok_ade, ok_aie                                 ! switches whether to use aerosol direct (indirect) effects or not
     
    107109  REAL,    INTENT(in)  :: cldtaupi(KLON,KLEV)                            ! cloud optical thickness for pre-industrial aerosol concentrations
    108110  LOGICAL, INTENT(in)  :: new_aod                                        ! flag pour retrouver les resultats exacts de l'AR4 dans le cas ou l'on ne travaille qu'avec les sulfates
     111  REAL,    INTENT(in)  :: qsat(klon,klev) ! Variable pour iflag_rrtm=1
     112  REAL,    INTENT(in)  :: flwc(klon,klev) ! Variable pour iflag_rrtm=1
     113  REAL,    INTENT(in)  :: fiwc(klon,klev) ! Variable pour iflag_rrtm=1
    109114
    110115! Output arguments
     
    207212      zfract(i) = fract(iof+i)
    208213      zrmu0(i) = rmu0(iof+i)
    209       PALBD(i,1) = albedo(iof+i)
    210       PALBD(i,2) = alblw(iof+i)
    211       PALBP(i,1) = albedo(iof+i)
    212       PALBP(i,2) = alblw(iof+i)
     214      PALBD(i,1) = alb1(iof+i)
     215      PALBD(i,2) = alb2(iof+i)
     216      PALBP(i,1) = alb1(iof+i)
     217      PALBP(i,2) = alb2(iof+i)
    213218      PEMIS(i) = 1.0
    214219      PVIEW(i) = 1.66
     
    281286      ENDDO
    282287    ENDDO
    283     !
    284     !======================================================================
    285     CALL LW_LMDAR4(&
    286        PPMB, PDP,&
    287        PPSOL,PDT0,PEMIS,&
    288        PTL, PTAVE, PWV, POZON, PAER,&
    289        PCLDLD,PCLDLU,&
    290        PVIEW,&
    291        zcool, zcool0,&
    292        ztoplw,zsollw,ztoplw0,zsollw0,&
    293        zsollwdown,&
    294        ZFLUP, ZFLDN, ZFLUP0,ZFLDN0)
    295 
    296 
    297     IF (.NOT. new_aod) THEN
    298        ! use old version
    299         CALL SW_LMDAR4(PSCT, zrmu0, zfract,&
    300            PPMB, PDP, &
    301            PPSOL, PALBD, PALBP,&
    302            PTAVE, PWV, PQS, POZON, PAER,&
    303            PCLDSW, PTAU, POMEGA, PCG,&
    304            zheat, zheat0,&
    305            zalbpla,ztopsw,zsolsw,ztopsw0,zsolsw0,&
    306            ZFSUP,ZFSDN,ZFSUP0,ZFSDN0,&
    307            tau_aero(:,:,5,:), piz_aero(:,:,5,:), cg_aero(:,:,5,:),&
    308            PTAUA, POMEGAA,&
    309            ztopswadaero,zsolswadaero,&
    310            ztopswaiaero,zsolswaiaero,&
    311            ok_ade, ok_aie)
    312     ELSE
    313 
    314         CALL SW_AEROAR4(PSCT, zrmu0, zfract,&
    315            PPMB, PDP,&
    316            PPSOL, PALBD, PALBP,&
    317            PTAVE, PWV, PQS, POZON, PAER,&
    318            PCLDSW, PTAU, POMEGA, PCG,&
    319            zheat, zheat0,&
    320            zalbpla,ztopsw,zsolsw,ztopsw0,zsolsw0,&
    321            ZFSUP,ZFSDN,ZFSUP0,ZFSDN0,&
    322            tauaero, pizaero, cgaero, &
    323            PTAUA, POMEGAA,&
    324            ztopswadaero,zsolswadaero,&
    325            ztopswad0aero,zsolswad0aero,&
    326            ztopswaiaero,zsolswaiaero, &
    327            ztopsw_aero,ztopsw0_aero,&
    328            zsolsw_aero,zsolsw0_aero,&
    329            ok_ade, ok_aie)
    330    
    331     ENDIF
    332     !======================================================================
     288
     289!
     290!===== iflag_rrtm ================================================
     291!     
     292    IF (iflag_rrtm == 0) THEN
     293       ! Old radiation scheme, used for AR4 runs
     294       CALL LW_LMDAR4(&
     295            PPMB, PDP,&
     296            PPSOL,PDT0,PEMIS,&
     297            PTL, PTAVE, PWV, POZON, PAER,&
     298            PCLDLD,PCLDLU,&
     299            PVIEW,&
     300            zcool, zcool0,&
     301            ztoplw,zsollw,ztoplw0,zsollw0,&
     302            zsollwdown,&
     303            ZFLUP, ZFLDN, ZFLUP0,ZFLDN0)
     304
     305
     306       IF (.NOT. new_aod) THEN
     307          ! use old version
     308          CALL SW_LMDAR4(PSCT, zrmu0, zfract,&
     309               PPMB, PDP, &
     310               PPSOL, PALBD, PALBP,&
     311               PTAVE, PWV, PQS, POZON, PAER,&
     312               PCLDSW, PTAU, POMEGA, PCG,&
     313               zheat, zheat0,&
     314               zalbpla,ztopsw,zsolsw,ztopsw0,zsolsw0,&
     315               ZFSUP,ZFSDN,ZFSUP0,ZFSDN0,&
     316               tau_aero(:,:,5,:), piz_aero(:,:,5,:), cg_aero(:,:,5,:),&
     317               PTAUA, POMEGAA,&
     318               ztopswadaero,zsolswadaero,&
     319               ztopswaiaero,zsolswaiaero,&
     320               ok_ade, ok_aie)
     321         
     322       ELSE ! new_aod=T         
     323          CALL SW_AEROAR4(PSCT, zrmu0, zfract,&
     324               PPMB, PDP,&
     325               PPSOL, PALBD, PALBP,&
     326               PTAVE, PWV, PQS, POZON, PAER,&
     327               PCLDSW, PTAU, POMEGA, PCG,&
     328               zheat, zheat0,&
     329               zalbpla,ztopsw,zsolsw,ztopsw0,zsolsw0,&
     330               ZFSUP,ZFSDN,ZFSUP0,ZFSDN0,&
     331               tauaero, pizaero, cgaero, &
     332               PTAUA, POMEGAA,&
     333               ztopswadaero,zsolswadaero,&
     334               ztopswad0aero,zsolswad0aero,&
     335               ztopswaiaero,zsolswaiaero, &
     336               ztopsw_aero,ztopsw0_aero,&
     337               zsolsw_aero,zsolsw0_aero,&
     338               ok_ade, ok_aie)
     339         
     340       ENDIF
     341
     342    ELSE 
     343!===== iflag_rrtm=1, on passe dans SW via RECMWFL ===============
     344       WRITE(lunout,*) "Option iflag_rrtm=T ne fonctionne pas encore !!!"
     345       CALL abort_gcm('radlwsw_aero','iflag_rrtm=T not valid',1)
     346
     347    ENDIF ! iflag_rrtm
     348!======================================================================
     349
    333350    DO i = 1, kdlon
    334351      radsol(iof+i) = zsolsw(i) + zsollw(i)
     
    405422      ENDDO
    406423    ENDDO
    407     !
    408   ENDDO
    409 
    410 
    411 ENDSUBROUTINE radlwsw_aero
    412 
    413 
     424
     425 ENDDO ! j = 1, nb_gr
     426
     427
     428END SUBROUTINE radlwsw_aero
     429
     430
  • LMDZ4/branches/LMDZ4-dev/libf/phylmd/sw_aeroAR4.F90

    r1153 r1159  
    114114  PARAMETER(swpas=1)
    115115
    116   INTEGER itapsw
    117   LOGICAL appel1er
    118   DATA itapsw /0/
    119   DATA appel1er /.TRUE./
    120   SAVE itapsw,appel1er
     116  INTEGER, SAVE :: itapsw = 0
     117  !$OMP THREADPRIVATE(itapsw)
     118  LOGICAL, SAVE :: appel1er = .TRUE.
    121119  !$OMP THREADPRIVATE(appel1er)
    122   !$OMP THREADPRIVATE(itapsw)
     120  LOGICAL, SAVE :: initialized = .FALSE.
     121  !$OMP THREADPRIVATE(initialized)
     122
    123123  !jq-Introduced for aerosol forcings
    124   REAL*8 flag_aer
     124  REAL*8, SAVE :: flag_aer
     125  !$OMP THREADPRIVATE(flag_aer)
     126
    125127  LOGICAL ok_ade, ok_aie    ! use aerosol forcings or not?
    126128  REAL*8 tauaero(kdlon,kflev,9,2)  ! aerosol optical properties
     
    162164  REAL*8,ALLOCATABLE,SAVE ::  ZFSDN0_AERO(:,:,:)
    163165  !$OMP THREADPRIVATE(ZFSDN0_AERO)
    164 
    165   LOGICAL initialized
    166   !rv
    167   SAVE flag_aer
    168   !$OMP THREADPRIVATE(flag_aer)
    169   DATA initialized/.FALSE./
    170   SAVE initialized
    171   !$OMP THREADPRIVATE(initialized)
    172166
    173167
     
    196190     ZFSDN0_AERO(:,:,:)=0.
    197191  ENDIF
    198   !rv
    199192
    200193
Note: See TracChangeset for help on using the changeset viewer.