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

File:
1 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
Note: See TracChangeset for help on using the changeset viewer.