Changeset 2366 for LMDZ5/trunk


Ignore:
Timestamp:
Sep 21, 2015, 10:41:04 PM (9 years ago)
Author:
oboucher
Message:

Second batch of changes for diagnosing SW radiative
diagnostics at the physics timestep resolution
radsol is now computed in physiq.F90

Location:
LMDZ5/trunk/libf/phylmd
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90

    r2351 r2366  
    164164         SWdn200, SWdn200clr, LWup200, LWup200clr, &
    165165         LWdn200, LWdn200clr, solsw, solsw0, sollw, &
    166          radsol, sollw0, sollwdown, sollw, gustiness, &
     166         radsol, swradcorr, sollw0, sollwdown, sollw, gustiness, &
    167167         sollwdownclr, lwdn0, ftsol, ustar, u10m, &
    168168         v10m, pbl_tke, wake_delta_pbl_TKE, &
     
    424424       CALL histwrite_phy(o_fsnow, zfra_o)
    425425       CALL histwrite_phy(o_evap, evap)
    426        CALL histwrite_phy(o_tops, topsw)
    427        CALL histwrite_phy(o_tops0, topsw0)
     426       CALL histwrite_phy(o_tops, topsw*swradcorr)
     427       CALL histwrite_phy(o_tops0, topsw0*swradcorr)
    428428       CALL histwrite_phy(o_topl, toplw)
    429429       CALL histwrite_phy(o_topl0, toplw0)
    430430
    431431       IF (vars_defined) THEN
    432           zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 )
     432          zx_tmp_fi2d(:) = swup(:,klevp1)*swradcorr(:)
    433433       ENDIF
    434434       CALL histwrite_phy(o_SWupTOA, zx_tmp_fi2d)
    435435
    436436       IF (vars_defined) THEN
    437           zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 )
     437          zx_tmp_fi2d(:) = swup0(:,klevp1)*swradcorr(:)
    438438       ENDIF
    439439       CALL histwrite_phy(o_SWupTOAclr, zx_tmp_fi2d)
    440440
    441441       IF (vars_defined) THEN
    442           zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 )
     442          zx_tmp_fi2d(:) = swdn(:,klevp1)*swradcorr(:)
    443443       ENDIF
    444444       CALL histwrite_phy(o_SWdnTOA, zx_tmp_fi2d)
    445445
    446446       IF (vars_defined) THEN
    447           zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 )
     447          zx_tmp_fi2d(:) = swdn0(:,klevp1)*swradcorr(:)
    448448       ENDIF
    449449       CALL histwrite_phy(o_SWdnTOAclr, zx_tmp_fi2d)
    450450
    451451       IF (vars_defined) THEN
    452           zx_tmp_fi2d(:) = topsw(:)-toplw(:)
     452          zx_tmp_fi2d(:) = topsw(:)*swradcorr(:)-toplw(:)
    453453       ENDIF
    454454       CALL histwrite_phy(o_nettop, zx_tmp_fi2d)
    455        CALL histwrite_phy(o_SWup200, SWup200)
    456        CALL histwrite_phy(o_SWup200clr, SWup200clr)
    457        CALL histwrite_phy(o_SWdn200, SWdn200)
    458        CALL histwrite_phy(o_SWdn200clr, SWdn200clr)
     455       CALL histwrite_phy(o_SWup200, SWup200*swradcorr)
     456       CALL histwrite_phy(o_SWup200clr, SWup200clr*swradcorr)
     457       CALL histwrite_phy(o_SWdn200, SWdn200*swradcorr)
     458       CALL histwrite_phy(o_SWdn200clr, SWdn200clr*swradcorr)
    459459       CALL histwrite_phy(o_LWup200, LWup200)
    460460       CALL histwrite_phy(o_LWup200clr, LWup200clr)
    461461       CALL histwrite_phy(o_LWdn200, LWdn200)
    462462       CALL histwrite_phy(o_LWdn200clr, LWdn200clr)
    463        CALL histwrite_phy(o_sols, solsw)
    464        CALL histwrite_phy(o_sols0, solsw0)
     463       CALL histwrite_phy(o_sols, solsw*swradcorr)
     464       CALL histwrite_phy(o_sols0, solsw0*swradcorr)
    465465       CALL histwrite_phy(o_soll, sollw)
     466       CALL histwrite_phy(o_soll0, sollw0)
    466467       CALL histwrite_phy(o_radsol, radsol)
    467        CALL histwrite_phy(o_soll0, sollw0)
    468 
    469        IF (vars_defined) THEN
    470           zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 )
     468
     469       IF (vars_defined) THEN
     470          zx_tmp_fi2d(:) = swup(:,1)*swradcorr(:)
    471471       ENDIF
    472472       CALL histwrite_phy(o_SWupSFC, zx_tmp_fi2d)
    473473
    474474       IF (vars_defined) THEN
    475           zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 )
     475          zx_tmp_fi2d(:) = swup0(:,1)*swradcorr(:)
    476476       ENDIF
    477477       CALL histwrite_phy(o_SWupSFCclr, zx_tmp_fi2d)
    478478
    479479       IF (vars_defined) THEN
    480           zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 )
     480          zx_tmp_fi2d(:) = swdn(:,1)*swradcorr(:)
    481481       ENDIF
    482482       CALL histwrite_phy(o_SWdnSFC, zx_tmp_fi2d)
    483483
    484484       IF (vars_defined) THEN
    485           zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 )
     485          zx_tmp_fi2d(:) = swdn0(:,1)*swradcorr(:)
    486486       ENDIF
    487487       CALL histwrite_phy(o_SWdnSFCclr, zx_tmp_fi2d)
    488488
    489489       IF (vars_defined) THEN
    490           zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon)
     490          zx_tmp_fi2d(:)=sollwdown(:)-sollw(:)
    491491       ENDIF
    492492       CALL histwrite_phy(o_LWupSFC, zx_tmp_fi2d)
     
    901901       ENDIF
    902902       IF (ok_ade) THEN
    903           CALL histwrite_phy(o_topswad, topswad_aero)
    904           CALL histwrite_phy(o_topswad0, topswad0_aero)
    905           CALL histwrite_phy(o_solswad, solswad_aero)
    906           CALL histwrite_phy(o_solswad0, solswad0_aero)
     903          CALL histwrite_phy(o_topswad, topswad_aero*swradcorr)
     904          CALL histwrite_phy(o_topswad0, topswad0_aero*swradcorr)
     905          CALL histwrite_phy(o_solswad, solswad_aero*swradcorr)
     906          CALL histwrite_phy(o_solswad0, solswad0_aero*swradcorr)
    907907          CALL histwrite_phy(o_toplwad, toplwad_aero)
    908908          CALL histwrite_phy(o_toplwad0, toplwad0_aero)
     
    911911          !====MS forcing diagnostics
    912912          if (new_aod) then
    913              CALL histwrite_phy(o_swtoaas_nat, topsw_aero(:,1))
    914              CALL histwrite_phy(o_swsrfas_nat, solsw_aero(:,1))
    915              CALL histwrite_phy(o_swtoacs_nat, topsw0_aero(:,1))
    916              CALL histwrite_phy(o_swsrfcs_nat, solsw0_aero(:,1))
     913             zx_tmp_fi2d(:)=topsw_aero(:,1)*swradcorr(:)
     914             CALL histwrite_phy(o_swtoaas_nat,zx_tmp_fi2d)
     915             zx_tmp_fi2d(:)=solsw_aero(:,1)*swradcorr(:)
     916             CALL histwrite_phy(o_swsrfas_nat,zx_tmp_fi2d)
     917             zx_tmp_fi2d(:)=topsw0_aero(:,1)*swradcorr(:)
     918             CALL histwrite_phy(o_swtoacs_nat,zx_tmp_fi2d)
     919             zx_tmp_fi2d(:)=solsw0_aero(:,1)*swradcorr(:)
     920             CALL histwrite_phy(o_swsrfcs_nat,zx_tmp_fi2d)
    917921             !ant
    918              CALL histwrite_phy(o_swtoaas_ant, topsw_aero(:,2))
    919              CALL histwrite_phy(o_swsrfas_ant, solsw_aero(:,2))
    920              CALL histwrite_phy(o_swtoacs_ant, topsw0_aero(:,2))
    921              CALL histwrite_phy(o_swsrfcs_ant, solsw0_aero(:,2))
     922             zx_tmp_fi2d(:)=topsw_aero(:,2)*swradcorr(:)
     923             CALL histwrite_phy(o_swtoaas_ant,zx_tmp_fi2d)
     924             zx_tmp_fi2d(:)=solsw_aero(:,2)*swradcorr(:)
     925             CALL histwrite_phy(o_swsrfas_ant,zx_tmp_fi2d)
     926             zx_tmp_fi2d(:)=topsw0_aero(:,2)*swradcorr(:)
     927             CALL histwrite_phy(o_swtoacs_ant,zx_tmp_fi2d)
     928             zx_tmp_fi2d(:)=solsw0_aero(:,2)*swradcorr(:)
     929             CALL histwrite_phy(o_swsrfcs_ant,zx_tmp_fi2d)
    922930             !cf
    923931             if (.not. aerosol_couple) then
    924                 CALL histwrite_phy(o_swtoacf_nat, topswcf_aero(:,1))
    925                 CALL histwrite_phy(o_swsrfcf_nat, solswcf_aero(:,1))
    926                 CALL histwrite_phy(o_swtoacf_ant, topswcf_aero(:,2))
    927                 CALL histwrite_phy(o_swsrfcf_ant, solswcf_aero(:,2))
    928                 CALL histwrite_phy(o_swtoacf_zero,topswcf_aero(:,3))
    929                 CALL histwrite_phy(o_swsrfcf_zero,solswcf_aero(:,3))
     932                zx_tmp_fi2d(:)=topswcf_aero(:,1)*swradcorr(:)
     933                CALL histwrite_phy(o_swtoacf_nat,zx_tmp_fi2d)
     934                zx_tmp_fi2d(:)=solswcf_aero(:,1)*swradcorr(:)
     935                CALL histwrite_phy(o_swsrfcf_nat,zx_tmp_fi2d)
     936                zx_tmp_fi2d(:)=topswcf_aero(:,2)*swradcorr(:)
     937                CALL histwrite_phy(o_swtoacf_ant,zx_tmp_fi2d)
     938                zx_tmp_fi2d(:)=solswcf_aero(:,2)*swradcorr(:)
     939                CALL histwrite_phy(o_swsrfcf_ant,zx_tmp_fi2d)
     940                zx_tmp_fi2d(:)=topswcf_aero(:,3)*swradcorr(:)
     941                CALL histwrite_phy(o_swtoacf_zero,zx_tmp_fi2d)
     942                zx_tmp_fi2d(:)=solswcf_aero(:,3)*swradcorr(:)
     943                CALL histwrite_phy(o_swsrfcf_zero,zx_tmp_fi2d)
    930944             endif
    931945          endif ! new_aod
     
    933947       ENDIF
    934948       IF (ok_aie) THEN
    935           CALL histwrite_phy(o_topswai, topswai_aero)
    936           CALL histwrite_phy(o_solswai, solswai_aero)
     949          CALL histwrite_phy(o_topswai, topswai_aero*swradcorr)
     950          CALL histwrite_phy(o_solswai, solswai_aero*swradcorr)
    937951       ENDIF
    938952       IF (flag_aerosol.GT.0.AND.ok_cdnc) THEN
     
    12501264       ENDIF
    12511265
    1252        CALL histwrite_phy(o_rsu, swup)
    1253        CALL histwrite_phy(o_rsd, swdn)
     1266       DO k=1, klevp1
     1267         zx_tmp_fi3d1(:,k)=swup(:,k)*swradcorr(:)
     1268       ENDDO
     1269       CALL histwrite_phy(o_rsu, zx_tmp_fi3d1)
     1270       DO k=1, klevp1
     1271         zx_tmp_fi3d1(:,k)=swdn(:,k)*swradcorr(:)
     1272       ENDDO
     1273       CALL histwrite_phy(o_rsd, zx_tmp_fi3d1)
     1274       DO k=1, klevp1
     1275         zx_tmp_fi3d1(:,k)=swup0(:,k)*swradcorr(:)
     1276       ENDDO
     1277       CALL histwrite_phy(o_rsucs, zx_tmp_fi3d1)
     1278       DO k=1, klevp1
     1279         zx_tmp_fi3d1(:,k)=swdn0(:,k)*swradcorr(:)
     1280       ENDDO
     1281       CALL histwrite_phy(o_rsdcs, zx_tmp_fi3d1)
     1282
    12541283       CALL histwrite_phy(o_rlu, lwup)
    12551284       CALL histwrite_phy(o_rld, lwdn)
    1256        CALL histwrite_phy(o_rsucs, swup0)
    1257        CALL histwrite_phy(o_rsdcs, swdn0)
    12581285       CALL histwrite_phy(o_rlucs, lwup0)
    12591286       CALL histwrite_phy(o_rldcs, lwdn0)
     1287
    12601288       IF(vars_defined) THEN
    12611289          zx_tmp_fi3d(1:klon,1:klev)=d_t(1:klon,1:klev)+ &
     
    12631291       ENDIF
    12641292       CALL histwrite_phy(o_tnt, zx_tmp_fi3d)
     1293
    12651294       IF(vars_defined) THEN
    12661295          zx_tmp_fi3d(1:klon,1:klev)=d_t_swr(1:klon,1:klev)/pdtphys + &
     
    13101339            RN2O_per.NE.RN2O_act.OR.RCFC11_per.NE.RCFC11_act.OR. &
    13111340            RCFC12_per.NE.RCFC12_act) THEN
    1312           IF(vars_defined) zx_tmp_fi2d(1 : klon) = swupp ( 1 : klon, klevp1 )
     1341          IF(vars_defined) zx_tmp_fi2d(:) = swupp(:,klevp1)*swradcorr(:)
    13131342          CALL histwrite_phy(o_rsut4co2, zx_tmp_fi2d)
    1314           IF(vars_defined) zx_tmp_fi2d(1 : klon) = lwupp ( 1 : klon, klevp1 )
     1343          IF(vars_defined) zx_tmp_fi2d(:) = lwupp(:,klevp1)
    13151344          CALL histwrite_phy(o_rlut4co2, zx_tmp_fi2d)
    1316           IF(vars_defined) zx_tmp_fi2d(1 : klon) = swup0p ( 1 : klon, klevp1 )
     1345          IF(vars_defined) zx_tmp_fi2d(:) = swup0p(:,klevp1)*swradcorr(:)
    13171346          CALL histwrite_phy(o_rsutcs4co2, zx_tmp_fi2d)
    1318           IF(vars_defined) zx_tmp_fi2d(1 : klon) = lwup0p ( 1 : klon, klevp1 )
     1347          IF(vars_defined) zx_tmp_fi2d(:) = lwup0p(:,klevp1)
    13191348          CALL histwrite_phy(o_rlutcs4co2, zx_tmp_fi2d)
    1320           CALL histwrite_phy(o_rsu4co2, swupp)
     1349          DO k=1, klevp1
     1350            zx_tmp_fi3d1(:,k)=swupp(:,k)*swradcorr(:)
     1351          ENDDO
     1352          CALL histwrite_phy(o_rsu4co2, zx_tmp_fi3d1)
     1353          DO k=1, klevp1
     1354            zx_tmp_fi3d1(:,k)=swup0p(:,k)*swradcorr(:)
     1355          ENDDO
     1356          CALL histwrite_phy(o_rsucs4co2, zx_tmp_fi3d1)
     1357          DO k=1, klevp1
     1358            zx_tmp_fi3d1(:,k)=swdnp(:,k)*swradcorr(:)
     1359          ENDDO
     1360          CALL histwrite_phy(o_rsd4co2, zx_tmp_fi3d1)
     1361          DO k=1, klevp1
     1362            zx_tmp_fi3d1(:,k)=swdn0p(:,k)*swradcorr(:)
     1363          ENDDO
     1364          CALL histwrite_phy(o_rsdcs4co2, zx_tmp_fi3d1)
    13211365          CALL histwrite_phy(o_rlu4co2, lwupp)
    1322           CALL histwrite_phy(o_rsucs4co2, swup0p)
    13231366          CALL histwrite_phy(o_rlucs4co2, lwup0p)
    1324           CALL histwrite_phy(o_rsd4co2, swdnp)
    13251367          CALL histwrite_phy(o_rld4co2, lwdnp)
    1326           CALL histwrite_phy(o_rsdcs4co2, swdn0p)
    13271368          CALL histwrite_phy(o_rldcs4co2, lwdn0p)
    13281369       ENDIF
  • LMDZ5/trunk/libf/phylmd/phys_state_var_mod.F90

    r2359 r2366  
    4848      REAL, ALLOCATABLE, SAVE :: radsol(:)
    4949!$OMP THREADPRIVATE(radsol)
     50      REAL, ALLOCATABLE, SAVE :: swradcorr(:)
     51!$OMP THREADPRIVATE(swradcorr)
    5052
    5153!clesphy0 param physiq
     
    9799!$OMP THREADPRIVATE(clwcon0th,rnebcon0th)
    98100! radiation outputs
    99       REAL,ALLOCATABLE,SAVE :: zswdn0(:,:), zswdn(:,:)
    100 !$OMP THREADPRIVATE(zswdn0,zswdn)
    101       REAL,ALLOCATABLE,SAVE :: zswup0(:,:), zswup(:,:)
    102 !$OMP THREADPRIVATE(zswup0,zswup)
    103101      REAL,ALLOCATABLE,SAVE :: swdn0(:,:), swdn(:,:)
    104102!$OMP THREADPRIVATE(swdn0,swdn)
     
    344342      REAL,ALLOCATABLE,SAVE :: lwup0p(:,:), lwupp(:,:)
    345343!$OMP THREADPRIVATE(lwdn0p, lwdnp, lwup0p, lwupp)
    346       REAL,ALLOCATABLE,SAVE :: zswdn0p(:,:), zswdnp(:,:)
    347       REAL,ALLOCATABLE,SAVE :: zswup0p(:,:), zswupp(:,:)
    348 !$OMP THREADPRIVATE(zswdn0p, zswdnp, zswup0p, zswupp)
    349344      REAL,ALLOCATABLE,SAVE :: swdn0p(:,:), swdnp(:,:)
    350345      REAL,ALLOCATABLE,SAVE :: swup0p(:,:), swupp(:,:)
     
    440435      ALLOCATE(solsw(klon), sollw(klon))
    441436      ALLOCATE(radsol(klon))
     437      ALLOCATE(swradcorr(klon))
    442438      ALLOCATE(zmea(klon), zstd(klon), zsig(klon), zgam(klon))
    443439      ALLOCATE(zthe(klon), zpic(klon), zval(klon))
     
    465461      ALLOCATE(clwcon0th(klon,klev),rnebcon0th(klon,klev))
    466462! radiation outputs
    467       ALLOCATE(zswdn0(klon,klevp1), zswdn(klon,klevp1))
    468       ALLOCATE(zswup0(klon,klevp1), zswup(klon,klevp1))
    469463      ALLOCATE(swdn0(klon,klevp1), swdn(klon,klevp1))
    470464      ALLOCATE(swup0(klon,klevp1), swup(klon,klevp1))
     
    566560      ALLOCATE(lwdn0p(klon,klevp1), lwdnp(klon,klevp1))
    567561      ALLOCATE(lwup0p(klon,klevp1), lwupp(klon,klevp1))
    568       ALLOCATE(zswdn0p(klon,klevp1), zswdnp(klon,klevp1))
    569       ALLOCATE(zswup0p(klon,klevp1), zswupp(klon,klevp1))
    570562      ALLOCATE(swdn0p(klon,klevp1), swdnp(klon,klevp1))
    571563      ALLOCATE(swup0p(klon,klevp1), swupp(klon,klevp1))
     
    605597      deallocate(rlat, rlon, pctsrf, ftsol, falb1, falb2)
    606598      deallocate(qsol,fevap,z0m,z0h,agesno)
    607       deallocate(rain_fall, snow_fall, solsw, sollw, radsol)
     599      deallocate(rain_fall, snow_fall, solsw, sollw, radsol, swradcorr)
    608600      deallocate(zmea, zstd, zsig, zgam)
    609601      deallocate(zthe, zpic, zval)
     
    622614      deallocate(clwcon0th, rnebcon0th)
    623615! radiation outputs
    624       deallocate(zswdn0, zswdn)
    625       deallocate(zswup0, zswup)
    626616      deallocate(swdn0, swdn)
    627617      deallocate(swup0, swup)
     
    700690      deallocate(lwdn0p, lwdnp)
    701691      deallocate(lwup0p, lwupp)
    702       deallocate(zswdn0p, zswdnp)
    703       deallocate(zswup0p, zswupp)
    704692      deallocate(swdn0p, swdnp)
    705693      deallocate(swup0p, swupp)
  • LMDZ5/trunk/libf/phylmd/physiq.F90

    r2363 r2366  
    590590  !
    591591  REAL dist, rmu0(klon), fract(klon)
    592   REAL zrmu0(klon), zfract(klon), swradcorr(klon)
     592  REAL zrmu0(klon), zfract(klon)
    593593  REAL zdtime, zdtime1, zdtime2, zlongi
    594594  !
     
    18461846     !  Comme cette routine est appele a tous les pas de temps de la physique
    18471847     !  meme si le rayonnement n'est pas appele je remonte en arriere les
    1848      !  radpas-1 pas de temps suivant. Petite ruse pour prendre en compte le
    1849      !  premier pas de temps la physique ou itaprad=0
     1848     !  radpas-1 pas de temps suivant. Petite ruse avec MOD pour prendre en
     1849     !  compte le premier pas de temps de la physique pendant lequel itaprad=0
    18501850        zdtime1=dtime*REAL(-MOD(itaprad,4)-1)     
    18511851        zdtime2=dtime*REAL(radpas-MOD(itaprad,4)-1)
     
    35863586             topsw0,toplw0,solsw0,sollw0, &
    35873587             lwdn0, lwdn, lwup0, lwup,  &
    3588              zswdn0, zswdn, zswup0, zswup, &
     3588             swdn0, swdn, swup0, swup, &
    35893589             ok_ade, ok_aie, &
    35903590             tau_aero, piz_aero, cg_aero, &
     
    36273627             zqsat, flwc, fiwc, &
    36283628             ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, &
    3629              heat,heat0,cool,cool0,radsol,albpla, &
     3629             heat,heat0,cool,cool0,albpla, &
    36303630             topsw,toplw,solsw,sollw, &
    36313631             sollwdown, &
    36323632             topsw0,toplw0,solsw0,sollw0, &
    36333633             lwdn0, lwdn, lwup0, lwup,  &
    3634              zswdn0, zswdn, zswup0, zswup, &
     3634             swdn0, swdn, swup0, swup, &
    36353635             topswad_aero, solswad_aero, &
    36363636             topswai_aero, solswai_aero, &
     
    36833683                   zqsat, flwc, fiwc, &
    36843684                   ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, &
    3685                    heatp,heat0p,coolp,cool0p,radsolp,albplap, &
     3685                   heatp,heat0p,coolp,cool0p,albplap, &
    36863686                   topswp,toplwp,solswp,sollwp, &
    36873687                   sollwdownp, &
    36883688                   topsw0p,toplw0p,solsw0p,sollw0p, &
    36893689                   lwdn0p, lwdnp, lwup0p, lwupp,  &
    3690                    zswdn0p, zswdnp, zswup0p, zswupp, &
     3690                   swdn0p, swdnp, swup0p, swupp, &
    36913691                   topswad_aerop, solswad_aerop, &
    36923692                   topswai_aerop, solswai_aerop, &
     
    37303730     swup=0.    ! MPL 27102011 pour les fichiers AMMA_profiles et AMMA_scalars
    37313731     swup0=0.
    3732      zswdn=0.
    3733      zswdn0=0.
    37343732     lwup=0.
    37353733     lwup0=0.
     
    37393737
    37403738  !
    3741   ! Corriger les flux SW pour le cycle diurne ameliore
     3739  ! Calculer radsol a l'exterieur de radlwsw
     3740  ! pour prendre en compte le cycle diurne
    37423741  ! recode par Olivier Boucher en sept 2015
    37433742  !
    3744 
    3745   DO k=1, klev+1
    3746     swdn0(:,k)=swradcorr(:)*zswdn0(:,k)
    3747     swdn(:,k) =swradcorr(:)*zswdn(:,k)
    3748     swup0(:,k)=swradcorr(:)*zswup0(:,k)
    3749     swup(:,k) =swradcorr(:)*zswup(:,k)
    3750   ENDDO
     3743  radsol=solsw*swradcorr+sollw
    37513744  if (ok_4xCO2atm) then
    3752   DO k=1, klev+1
    3753     swdn0p(:,k)=swradcorr(:)*zswdn0p(:,k)
    3754     swdnp(:,k) =swradcorr(:)*zswdnp(:,k)
    3755     swup0p(:,k)=swradcorr(:)*zswup0p(:,k)
    3756     swupp(:,k) =swradcorr(:)*zswupp(:,k)
    3757   ENDDO
     3745    radsolp=solswp*swradcorr+sollwp
    37583746  endif
    37593747
    37603748  !
    37613749  ! Ajouter la tendance des rayonnements (tous les pas)
     3750  ! avec une correction pour le cycle diurne dans le SW
    37623751  !
    37633752 
  • LMDZ5/trunk/libf/phylmd/radlwsw_m.F90

    r2320 r2366  
    2424   qsat, flwc, fiwc, &
    2525   ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, &
    26    heat,heat0,cool,cool0,radsol,albpla,&
     26   heat,heat0,cool,cool0,albpla,&
    2727   topsw,toplw,solsw,sollw,&
    2828   sollwdown,&
     
    111111  ! heat-----output-R- echauffement atmospherique (visible) (K/jour)
    112112  ! cool-----output-R- refroidissement dans l'IR (K/jour)
    113   ! radsol---output-R- bilan radiatif net au sol (W/m**2) (+ vers le bas)
    114113  ! albpla---output-R- albedo planetaire (entre 0 et 1)
    115114  ! topsw----output-R- flux solaire net au sommet de l'atm.
     
    224223  REAL,    INTENT(out) :: heat(KLON,KLEV), cool(KLON,KLEV)
    225224  REAL,    INTENT(out) :: heat0(KLON,KLEV), cool0(KLON,KLEV)
    226   REAL,    INTENT(out) :: radsol(KLON), topsw(KLON), toplw(KLON)
     225  REAL,    INTENT(out) :: topsw(KLON), toplw(KLON)
    227226  REAL,    INTENT(out) :: solsw(KLON), sollw(KLON), albpla(KLON)
    228227  REAL,    INTENT(out) :: topsw0(KLON), toplw0(KLON), solsw0(KLON), sollw0(KLON)
     
    10321031
    10331032    DO i = 1, kdlon
    1034       radsol(iof+i) = zsolsw(i) + zsollw(i)
    10351033      topsw(iof+i) = ztopsw(i)
    10361034      toplw(iof+i) = ztoplw(i)
Note: See TracChangeset for help on using the changeset viewer.