Changeset 3479 for LMDZ6/trunk
- Timestamp:
- Apr 17, 2019, 5:43:34 PM (6 years ago)
- Location:
- LMDZ6/trunk
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/DefLists/field_def_lmdz.xml
-
Property
svn:keywords
set to
Id
r3477 r3479 703 703 <field id="rldcs4co2" long_name="Downwelling CS LW 4xCO2 atmosphere" unit="W/m2" /> 704 704 <field id="stratomask" long_name="Stratospheric fraction" unit="-" /> 705 <field id="heat_volc" long_name="SW heating rate from volcano" unit="K/s" /> 706 <field id="cool_volc" long_name="LW cooling rate from volcano" unit="K/s" /> 705 707 <field id="pvap" long_name="pvap intermediary variable" unit="-">pres*ovap*461.5 / (287.04*(1.+ (10.9491/18.0153)*ovap)) </field> 706 708 </field_group> -
Property
svn:keywords
set to
-
LMDZ6/trunk/DefLists/file_def_histday_lmdz.xml
-
Property
svn:keywords
set to
Id
r3477 r3479 1 <!-- $Id$ --> 1 2 <file_definition> 2 3 <file_group id="defile"> … … 318 319 <field field_ref="z0m" level="10" /> 319 320 <field field_ref="z0h" level="10" /> 320 <field field_ref="topswad" level="1 0" />321 <field field_ref="topswad0" level="1 0" />321 <field field_ref="topswad" level="1" /> 322 <field field_ref="topswad0" level="1" /> 322 323 <field field_ref="topswai" level="10" /> 323 324 <field field_ref="solswad" level="10" /> 324 325 <field field_ref="solswad0" level="10" /> 325 326 <field field_ref="solswai" level="10" /> 326 <field field_ref="toplwad" level="1 0" />327 <field field_ref="toplwad0" level="1 0" />327 <field field_ref="toplwad" level="1" /> 328 <field field_ref="toplwad0" level="1" /> 328 329 <field field_ref="toplwai" level="10" /> 329 330 <field field_ref="sollwad" level="10" /> -
Property
svn:keywords
set to
-
LMDZ6/trunk/DefLists/file_def_histmth_lmdz.xml
-
Property
svn:keywords
set to
Id
r3477 r3479 1 <!-- $Id$ --> 1 2 <file_definition> 2 3 <file_group id="defile"> … … 352 353 <field field_ref="z0m" level="10" /> 353 354 <field field_ref="z0h" level="10" /> 354 <field field_ref="topswad" level="1 0" />355 <field field_ref="topswad0" level="1 0" />355 <field field_ref="topswad" level="1" /> 356 <field field_ref="topswad0" level="1" /> 356 357 <field field_ref="topswai" level="10" /> 357 358 <field field_ref="solswad" level="10" /> 358 359 <field field_ref="solswad0" level="10" /> 359 360 <field field_ref="solswai" level="10" /> 360 <field field_ref="toplwad" level="1 0" />361 <field field_ref="toplwad0" level="1 0" />361 <field field_ref="toplwad" level="1" /> 362 <field field_ref="toplwad0" level="1" /> 362 363 <field field_ref="toplwai" level="10" /> 363 364 <field field_ref="sollwad" level="10" /> … … 656 657 <field field_ref="rsdcs4co2" level="10" /> 657 658 <field field_ref="rldcs4co2" level="10" /> 659 <field field_ref="stratomask" level="1" /> 660 <field field_ref="cool_volc" level="1" /> 661 <field field_ref="heat_volc" level="1" /> 658 662 </field_group> 659 663 -
Property
svn:keywords
set to
-
LMDZ6/trunk/libf/dynphy_lonlat/phylmd/etat0phys_netcdf.F90
r3465 r3479 1 ! 2 ! $Id$ 3 ! 1 4 MODULE etat0phys 2 5 ! … … 111 114 INTEGER :: iflag_radia, iflag_cldcon, iflag_ratqs 112 115 REAL :: ratqsbas, ratqshaut, tau_ratqs 113 LOGICAL :: ok_ade, ok_aie, ok_ alw, ok_cdnc, aerosol_couple, chemistry_couple116 LOGICAL :: ok_ade, ok_aie, ok_volcan, ok_alw, ok_cdnc, aerosol_couple, chemistry_couple 114 117 INTEGER :: flag_aerosol 115 118 INTEGER :: flag_aerosol_strat … … 134 137 iflag_cldcon, & 135 138 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 136 ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple, & 139 ok_ade, ok_aie, ok_volcan, ok_alw, ok_cdnc, & 140 aerosol_couple, & 137 141 chemistry_couple, flag_aerosol, flag_aerosol_strat, & 138 142 flag_aer_feedback, & -
LMDZ6/trunk/libf/phylmd/conf_phys_m.F90
r3459 r3479 17 17 iflag_cld_th, & 18 18 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 19 ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple, chemistry_couple, &19 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, aerosol_couple, chemistry_couple, & 20 20 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, new_aod, & 21 21 flag_bc_internal_mixture, bl95_b0, bl95_b1,& … … 63 63 ! flag_bc_internal_mixture : use BC internal mixture if true 64 64 ! bl95_b*: parameters in the formula to link CDNC to aerosol mass conc 65 ! ok_volcan: activate volcanic diags (SW heat & LW cool rate, SW & LW flux) 65 66 ! 66 67 … … 71 72 LOGICAL :: ok_LES 72 73 LOGICAL :: callstats 73 LOGICAL :: ok_ade, ok_aie, ok_alw, ok_cdnc 74 LOGICAL :: ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan 74 75 LOGICAL :: aerosol_couple, chemistry_couple 75 76 INTEGER :: flag_aerosol … … 93 94 LOGICAL, SAVE :: ok_LES_omp 94 95 LOGICAL, SAVE :: callstats_omp 95 LOGICAL, SAVE :: ok_ade_omp, ok_aie_omp, ok_alw_omp, ok_cdnc_omp 96 LOGICAL, SAVE :: ok_ade_omp, ok_aie_omp, ok_alw_omp, ok_cdnc_omp, ok_volcan_omp 96 97 LOGICAL, SAVE :: aerosol_couple_omp, chemistry_couple_omp 97 98 INTEGER, SAVE :: flag_aerosol_omp … … 396 397 ok_cdnc_omp = .FALSE. 397 398 CALL getin('ok_cdnc', ok_cdnc_omp) 399 400 ! 401 !Config Key = ok_volcan 402 !Config Desc = ok to generate volcanic diags 403 !Config Def = .FALSE. 404 !Config Help = Used in radlwsw_m.F 405 ! 406 ok_volcan_omp = .FALSE. 407 CALL getin('ok_volcan', ok_volcan_omp) 408 398 409 ! 399 410 !Config Key = aerosol_couple … … 2310 2321 ok_alw = ok_alw_omp 2311 2322 ok_cdnc = ok_cdnc_omp 2323 ok_volcan = ok_volcan_omp 2312 2324 aerosol_couple = aerosol_couple_omp 2313 2325 chemistry_couple = chemistry_couple_omp … … 2656 2668 WRITE(lunout,*) ' pmagic = ',pmagic 2657 2669 WRITE(lunout,*) ' ok_ade = ',ok_ade 2670 WRITE(lunout,*) ' ok_volcan = ',ok_volcan 2658 2671 WRITE(lunout,*) ' ok_aie = ',ok_aie 2659 2672 WRITE(lunout,*) ' ok_alw = ',ok_alw -
LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r3474 r3479 1380 1380 TYPE(ctrl_out), SAVE :: o_temp = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11, 11/), & 1381 1381 'temp', 'Air temperature', 'K', (/ ('', i=1, 10) /)) 1382 TYPE(ctrl_out), SAVE :: o_heat_volc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1383 'heat_volc', 'SW heating rate due to volcano', 'K/s', (/ ('', i=1, 10) /)) 1384 TYPE(ctrl_out), SAVE :: o_cool_volc = ctrl_out((/ 4, 10, 10, 10, 10, 10, 11, 11, 11, 11/), & 1385 'cool_volc', 'LW cooling rate due to volcano', 'K/s', (/ ('', i=1, 10) /)) 1382 1386 TYPE(ctrl_out), SAVE :: o_theta = ctrl_out((/ 2, 3, 4, 10, 10, 10, 11, 11, 11, 11/), & 1383 1387 'theta', 'Potential air temperature', 'K', (/ ('', i=1, 10) /)) -
LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
r3474 r3479 17 17 SUBROUTINE phys_output_write(itap, pdtphys, paprs, pphis, & 18 18 pplay, lmax_th, aerosol_couple, & 19 ok_ade, ok_aie, ivap, iliq, isol, new_aod, ok_sync, &19 ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, new_aod, ok_sync, & 20 20 ptconv, read_climoz, clevSTD, ptconvth, & 21 21 d_u, d_t, qx, d_qx, zmasse, flag_aerosol, flag_aerosol_strat, ok_cdnc) … … 216 216 o_vsed_aer, o_tau_strat_1020, o_ext_strat_1020, o_f_r_wet 217 217 #endif 218 219 USE phys_output_ctrlout_mod, ONLY: o_heat_volc, o_cool_volc !NL 220 USE phys_state_var_mod, ONLY: heat_volc, cool_volc !NL 218 221 219 222 USE phys_state_var_mod, ONLY: pctsrf, rain_fall, snow_fall, & … … 392 395 INTEGER, DIMENSION(klon) :: lmax_th 393 396 LOGICAL :: aerosol_couple, ok_sync 394 LOGICAL :: ok_ade, ok_aie, new_aod397 LOGICAL :: ok_ade, ok_aie, ok_volcan, new_aod 395 398 LOGICAL, DIMENSION(klon, klev) :: ptconv, ptconvth 396 399 REAL :: pdtphys … … 1445 1448 ENDIF 1446 1449 #endif 1450 !NL 1451 IF (ok_volcan .AND. ok_ade) THEN 1452 DO k=1, klev 1453 IF (vars_defined) zx_tmp_fi3d(:,k)=heat_volc(:,k)*swradcorr(:) 1454 ENDDO 1455 CALL histwrite_phy(o_heat_volc, zx_tmp_fi3d) 1456 DO k=1, klev 1457 IF (vars_defined) zx_tmp_fi3d(:,k)=cool_volc(:,k)*swradcorr(:) 1458 ENDDO 1459 CALL histwrite_phy(o_cool_volc, zx_tmp_fi3d) 1460 ENDIF 1447 1461 IF (ok_ade) THEN 1448 1462 IF (vars_defined) zx_tmp_fi2d(:)=topswad_aero*swradcorr -
LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90
r3439 r3479 314 314 ! toplwdown : downward CS LW flux at TOA 315 315 ! toplwdownclr : downward CS LW flux at TOA 316 ! heat_volc : chauffage solaire du au volcanisme 317 ! cool_volc : refroidissement infrarouge du au volcanisme 316 318 REAL,ALLOCATABLE,SAVE :: clwcon0(:,:),rnebcon0(:,:) 317 319 !$OMP THREADPRIVATE(clwcon0,rnebcon0) … … 324 326 REAL,ALLOCATABLE,SAVE :: cool0(:,:) 325 327 !$OMP THREADPRIVATE(cool0) 328 REAL,ALLOCATABLE,SAVE :: heat_volc(:,:) 329 !$OMP THREADPRIVATE(heat_volc) 330 REAL,ALLOCATABLE,SAVE :: cool_volc(:,:) 331 !$OMP THREADPRIVATE(cool_volc) 326 332 REAL,ALLOCATABLE,SAVE :: topsw(:), toplw(:) 327 333 !$OMP THREADPRIVATE(topsw,toplw) … … 575 581 ALLOCATE(heat(klon,klev), heat0(klon,klev)) 576 582 ALLOCATE(cool(klon,klev), cool0(klon,klev)) 583 ALLOCATE(heat_volc(klon,klev), cool_volc(klon,klev)) 577 584 ALLOCATE(topsw(klon), toplw(klon)) 578 585 ALLOCATE(sollwdown(klon), sollwdownclr(klon)) … … 718 725 deallocate(heat, heat0) 719 726 deallocate(cool, cool0) 727 deallocate(heat_volc, cool_volc) 720 728 deallocate(topsw, toplw) 721 729 deallocate(sollwdown, sollwdownclr) -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r3472 r3479 331 331 include "dimpft.h" 332 332 !====================================================================== 333 LOGICAL, SAVE :: ok_volcan ! pour activer les diagnostics volcaniques 333 334 LOGICAL ok_cvl ! pour activer le nouveau driver pour convection KE 334 335 PARAMETER (ok_cvl=.TRUE.) … … 1233 1234 fact_cldcon, facttemps,ok_newmicro,iflag_radia, & 1234 1235 iflag_cld_th,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 1235 ok_ade, ok_aie, ok_alw, ok_cdnc, aerosol_couple, chemistry_couple, & 1236 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, aerosol_couple, & 1237 chemistry_couple, & 1236 1238 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, new_aod, & 1237 1239 flag_bc_internal_mixture, bl95_b0, bl95_b1, & … … 1612 1614 CALL phys_output_write(itap, pdtphys, paprs, pphis, & 1613 1615 pplay, lmax_th, aerosol_couple, & 1614 ok_ade, ok_aie, ivap, iliq, isol, new_aod, ok_sync,&1616 ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, new_aod, ok_sync,& 1615 1617 ptconv, read_climoz, clevSTD, & 1616 1618 ptconvth, d_u, d_t, qx, d_qx, zmasse, & … … 3984 3986 t_seri,q_seri,wo, & 3985 3987 cldfrarad, cldemirad, cldtaurad, & 3986 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, flag_aerosol, & 3988 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, & 3989 flag_aerosol, & 3987 3990 flag_aerosol_strat, flag_aer_feedback, & 3988 3991 tau_aero, piz_aero, cg_aero, & … … 3995 3998 ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, & 3996 3999 heat,heat0,cool,cool0,albpla, & 4000 heat_volc,cool_volc, & 3997 4001 topsw,toplw,solsw,sollw, & 3998 4002 sollwdown, & … … 4069 4073 t_seri,q_seri,wo, & 4070 4074 cldfrarad, cldemirad, cldtaurad, & 4071 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, flag_aerosol, & 4075 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, & 4076 flag_aerosol, & 4072 4077 flag_aerosol_strat, flag_aer_feedback, & 4073 4078 tau_aero, piz_aero, cg_aero, & … … 4080 4085 ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, & 4081 4086 heatp,heat0p,coolp,cool0p,albplap, & 4087 heat_volc,cool_volc, & 4082 4088 topswp,toplwp,solswp,sollwp, & 4083 4089 sollwdownp, & … … 4940 4946 CALL phys_output_write(itap, pdtphys, paprs, pphis, & 4941 4947 pplay, lmax_th, aerosol_couple, & 4942 ok_ade, ok_aie, ivap, iliq, isol, new_aod, &4948 ok_ade, ok_aie, ok_volcan, ivap, iliq, isol, new_aod, & 4943 4949 ok_sync, ptconv, read_climoz, clevSTD, & 4944 4950 ptconvth, d_u, d_t, qx, d_qx, zmasse, & -
LMDZ6/trunk/libf/phylmd/radlwsw_m.F90
r3465 r3479 16 16 t,q,wo,& 17 17 cldfra, cldemi, cldtaupd,& 18 ok_ade, ok_aie, flag_aerosol,&18 ok_ade, ok_aie, ok_volcan, flag_aerosol,& 19 19 flag_aerosol_strat, flag_aer_feedback, & 20 20 tau_aero, piz_aero, cg_aero,& … … 25 25 ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, & 26 26 heat,heat0,cool,cool0,albpla,& 27 heat_volc, cool_volc,& 27 28 topsw,toplw,solsw,sollw,& 28 29 sollwdown,& … … 100 101 ! ok_ade---input-L- apply the Aerosol Direct Effect or not? 101 102 ! ok_aie---input-L- apply the Aerosol Indirect Effect or not? 103 ! ok_volcan-input-L- activate volcanic diags (SW heat & LW cool rate, SW & LW flux) 102 104 ! flag_aerosol-input-I- aerosol flag from 0 to 6 103 105 ! flag_aerosol_strat-input-I- use stratospheric aerosols flag (0, 1, 2) … … 120 122 ! solswai---output-R- ray. solaire net absorbe a la surface (aerosol ind) 121 123 ! topswai---output-R- ray. solaire absorbe au sommet de l'atm. (aerosol ind) 124 ! 125 ! heat_volc-----output-R- echauffement atmospherique du au forcage volcanique (visible) (K/s) 126 ! cool_volc-----output-R- refroidissement dans l'IR du au forcage volcanique (K/s) 122 127 ! 123 128 ! ATTENTION: swai and swad have to be interpreted in the following manner: … … 193 198 194 199 LOGICAL, INTENT(in) :: ok_ade, ok_aie ! switches whether to use aerosol direct (indirect) effects or not 200 LOGICAL, INTENT(in) :: ok_volcan ! produce volcanic diags (SW/LW heat flux and rate) 195 201 LOGICAL :: lldebug 196 202 INTEGER, INTENT(in) :: flag_aerosol ! takes value 0 (no aerosol) or 1 to 6 (aerosols) … … 228 234 REAL, INTENT(out) :: heat(KLON,KLEV), cool(KLON,KLEV) 229 235 REAL, INTENT(out) :: heat0(KLON,KLEV), cool0(KLON,KLEV) 236 REAL, INTENT(out) :: heat_volc(KLON,KLEV), cool_volc(KLON,KLEV) !NL 230 237 REAL, INTENT(out) :: topsw(KLON), toplw(KLON) 231 238 REAL, INTENT(out) :: solsw(KLON), sollw(KLON), albpla(KLON) … … 294 301 REAL(KIND=8) zheat(kdlon,kflev), zcool(kdlon,kflev) 295 302 REAL(KIND=8) zheat0(kdlon,kflev), zcool0(kdlon,kflev) 303 REAL(KIND=8) zheat_volc(kdlon,kflev), zcool_volc(kdlon,kflev) !NL 296 304 REAL(KIND=8) ztopsw(kdlon), ztoplw(kdlon) 297 305 REAL(KIND=8) zsolsw(kdlon), zsollw(kdlon), zalbpla(kdlon) … … 308 316 REAL(KIND=8) ztopswad0aero(kdlon), zsolswad0aero(kdlon) ! Aerosol direct forcing at TOAand surface 309 317 REAL(KIND=8) ztopswaiaero(kdlon), zsolswaiaero(kdlon) ! dito, indirect 318 !--NL 319 REAL(KIND=8) zswadaero(kdlon,kflev+1) ! SW Aerosol direct forcing 320 REAL(KIND=8) zlwadaero(kdlon,kflev+1) ! LW Aerosol direct forcing 310 321 !-LW by CK 311 322 REAL(KIND=8) ztoplwadaero(kdlon), zsollwadaero(kdlon) ! LW Aerosol direct forcing at TOAand surface … … 430 441 heat(i,k)=0. 431 442 cool(i,k)=0. 443 heat_volc(i,k)=0. !NL 444 cool_volc(i,k)=0. !NL 432 445 heat0(i,k)=0. 433 446 cool0(i,k)=0. … … 573 586 ENDDO 574 587 DO k = 1, kflev 575 DO i = 1, kdlon 576 zcool(i,k)=0. 577 zcool0(i,k)=0. 578 ENDDO 588 DO i = 1, kdlon 589 zcool(i,k)=0. 590 zcool_volc(i,k)=0. !NL 591 zcool0(i,k)=0. 592 ENDDO 579 593 ENDDO 580 594 DO i = 1, kdlon … … 599 613 !----- Mise a zero des tableaux output du rayonnement SW-AR4 600 614 DO k = 1, kflev+1 601 DO i = 1, kdlon 602 ZFSUP(i,k)=0. 603 ZFSDN(i,k)=0. 604 ZFSUP0(i,k)=0. 605 ZFSDN0(i,k)=0. 606 ZFSUPC0(i,k)=0. 607 ZFSDNC0(i,k)=0. 608 ZFLUPC0(i,k)=0. 609 ZFLDNC0(i,k)=0. 610 ZSWFT0_i(i,k)=0. 611 ZFCUP_i(i,k)=0. 612 ZFCDWN_i(i,k)=0. 613 ZFCCUP_i(i,k)=0. 614 ZFCCDWN_i(i,k)=0. 615 ZFLCCUP_i(i,k)=0. 616 ZFLCCDWN_i(i,k)=0. 617 ENDDO 615 DO i = 1, kdlon 616 ZFSUP(i,k)=0. 617 ZFSDN(i,k)=0. 618 ZFSUP0(i,k)=0. 619 ZFSDN0(i,k)=0. 620 ZFSUPC0(i,k)=0. 621 ZFSDNC0(i,k)=0. 622 ZFLUPC0(i,k)=0. 623 ZFLDNC0(i,k)=0. 624 ZSWFT0_i(i,k)=0. 625 ZFCUP_i(i,k)=0. 626 ZFCDWN_i(i,k)=0. 627 ZFCCUP_i(i,k)=0. 628 ZFCCDWN_i(i,k)=0. 629 ZFLCCUP_i(i,k)=0. 630 ZFLCCDWN_i(i,k)=0. 631 zswadaero(i,k)=0. !--NL 632 ENDDO 618 633 ENDDO 619 634 DO k = 1, kflev 620 DO i = 1, kdlon 621 zheat(i,k)=0. 622 zheat0(i,k)=0. 623 ENDDO 635 DO i = 1, kdlon 636 zheat(i,k)=0. 637 zheat_volc(i,k)=0. 638 zheat0(i,k)=0. 639 ENDDO 624 640 ENDDO 625 641 DO i = 1, kdlon … … 869 885 ZTOPSWAIAERO,ZSOLSWAIAERO, & 870 886 ZTOPSWCF_AERO,ZSOLSWCF_AERO, & 887 ZSWADAERO, & !--NL 871 888 ZTOPLWADAERO,ZSOLLWADAERO,& ! rajoute par C. Kleinscmitt pour LW diagnostics 872 889 ZTOPLWAD0AERO,ZSOLLWAD0AERO,& 873 890 ZTOPLWAIAERO,ZSOLLWAIAERO, & 874 ok_ade, ok_aie, flag_aerosol,flag_aerosol_strat, flag_aer_feedback) ! flags aerosols 891 ZLWADAERO, & !--NL 892 ok_ade, ok_aie, ok_volcan, flag_aerosol,flag_aerosol_strat, flag_aer_feedback) ! flags aerosols 875 893 876 894 ! print *,'RADLWSW: apres RECMWF' … … 951 969 ZFLDNC0(i,k+1)= ZFLCCDWN_i(i,k+1) 952 970 ZFLUPC0(i,k+1)= ZFLCCUP_i(i,k+1) 971 IF(ok_volcan) THEN 972 ZSWADAERO(i,k+1)=ZSWADAERO(i,k+1)*fract(i) !--NL 973 ENDIF 974 953 975 ! Nouveau calcul car visiblement ZSWFT et ZSWFC sont nuls dans RRTM cy32 954 976 ! en sortie de radlsw.F90 - MPL 7.01.09 … … 1031 1053 zcool(i,k)=(ZLWFT(i,k)-ZLWFT(i,k+1))*RDAY*RG/RCPD/PDP(i,k) 1032 1054 zcool0(i,k)=(ZLWFT0_i(i,k)-ZLWFT0_i(i,k+1))*RDAY*RG/RCPD/PDP(i,k) 1055 IF(ok_volcan) THEN 1056 zheat_volc(i,k)=(ZSWADAERO(i,k+1)-ZSWADAERO(i,k))*RDAY*RG/RCPD/PDP(i,k) !NL 1057 zcool_volc(i,k)=(ZLWADAERO(i,k)-ZLWADAERO(i,k+1))*RDAY*RG/RCPD/PDP(i,k) !NL 1058 ENDIF 1033 1059 ! print *,'heat cool heat0 cool0 ',zheat(i,k),zcool(i,k),zheat0(i,k),zcool0(i,k) 1034 1060 ! ZFLUCUP_i(i,k)=ZFLUC_i(i,1,k) … … 1140 1166 heat0(iof+i,k) = zheat0(i,k)/zznormcp 1141 1167 cool0(iof+i,k) = zcool0(i,k)/zznormcp 1168 IF(ok_volcan) THEN !NL 1169 heat_volc(iof+i,k) = zheat_volc(i,k)/zznormcp 1170 cool_volc(iof+i,k) = zcool_volc(i,k)/zznormcp 1171 ENDIF 1142 1172 ENDDO 1143 1173 ENDDO -
LMDZ6/trunk/libf/phylmd/regr_pr_time_av_m.F90
r3435 r3479 251 251 END IF 252 252 !$OMP END MASTER 253 !$OMP BARRIER 253 254 IF(lfirst) THEN 254 255 lfirst=.FALSE.; CALL bcast(lfirst) -
LMDZ6/trunk/libf/phylmd/rrtm/aeropt_6bands_rrtm.F90
r3288 r3479 794 794 cg_allaer(i,k,2,inu)=MIN(MAX(cg_allaer(i,k,2,inu),0.0),1.0) 795 795 796 ! NL VOLC 796 797 !--natural aerosol 797 ! --ASBCM aerosols take _pi value because of internal mixture option798 tau_allaer(i,k,1,inu)=tau_ae _pi(i,k,id_ASSO4M_phy,inu)+tau_ae_pi(i,k,id_CSSO4M_phy,inu)+ &799 tau_ae _pi(i,k,id_ASBCM_phy,inu)+tau_ae_pi(i,k,id_AIBCM_phy,inu)+ &800 tau_ae _pi(i,k,id_ASPOMM_phy,inu)+tau_ae_pi(i,k,id_AIPOMM_phy,inu)+ &801 tau_ae _pi(i,k,id_ASSSM_phy,inu)+tau_ae_pi(i,k,id_CSSSM_phy,inu)+ &802 tau_ae _pi(i,k,id_SSSSM_phy,inu)+ tau_ae_pi(i,k,id_CIDUSTM_phy,inu)798 ! (same as upper but no volc aer in strat) 799 tau_allaer(i,k,1,inu)=tau_ae(i,k,id_ASSO4M_phy,inu)+tau_ae(i,k,id_CSSO4M_phy,inu)+ & 800 tau_ae(i,k,id_ASBCM_phy,inu)+tau_ae(i,k,id_AIBCM_phy,inu)+ & 801 tau_ae(i,k,id_ASPOMM_phy,inu)+tau_ae(i,k,id_AIPOMM_phy,inu)+ & 802 tau_ae(i,k,id_ASSSM_phy,inu)+tau_ae(i,k,id_CSSSM_phy,inu)+ & 803 tau_ae(i,k,id_SSSSM_phy,inu)+ tau_ae(i,k,id_CIDUSTM_phy,inu) 803 804 tau_allaer(i,k,1,inu)=MAX(tau_allaer(i,k,1,inu),tau_min) 804 805 805 piz_allaer(i,k,1,inu)=(tau_ae _pi(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)+ &806 tau_ae _pi(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)+ &807 tau_ae _pi(i,k,id_ASBCM_phy,inu)*piz_ae_pi(i,k,id_ASBCM_phy,inu)+&808 tau_ae _pi(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)+ &809 tau_ae _pi(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)+ &810 tau_ae _pi(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)+ &811 tau_ae _pi(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)+ &812 tau_ae _pi(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)+ &813 tau_ae _pi(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)+ &814 tau_ae _pi(i,k,id_CIDUSTM_phy,inu)*piz_ae(i,k,id_CIDUSTM_phy,inu)) &806 piz_allaer(i,k,1,inu)=(tau_ae(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)+ & 807 tau_ae(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)+ & 808 tau_ae(i,k,id_ASBCM_phy,inu)*piz_ae(i,k,id_ASBCM_phy,inu)+ & 809 tau_ae(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)+ & 810 tau_ae(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)+ & 811 tau_ae(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)+ & 812 tau_ae(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)+ & 813 tau_ae(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)+ & 814 tau_ae(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)+ & 815 tau_ae(i,k,id_CIDUSTM_phy,inu)*piz_ae(i,k,id_CIDUSTM_phy,inu)) & 815 816 /tau_allaer(i,k,1,inu) 816 817 piz_allaer(i,k,1,inu)=MIN(MAX(piz_allaer(i,k,1,inu),0.01),1.0) 817 818 IF (tau_allaer(i,k,1,inu).LE.tau_min) piz_allaer(i,k,1,inu)=1.0 818 819 819 cg_allaer(i,k,1,inu)=(tau_ae _pi(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)*cg_ae(i,k,id_ASSO4M_phy,inu)+&820 tau_ae _pi(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)*cg_ae(i,k,id_CSSO4M_phy,inu)+&821 tau_ae _pi(i,k,id_ASBCM_phy,inu)*piz_ae_pi(i,k,id_ASBCM_phy,inu)*cg_ae_pi(i,k,id_ASBCM_phy,inu)+&822 tau_ae _pi(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)*cg_ae(i,k,id_AIBCM_phy,inu)+&823 tau_ae _pi(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)*cg_ae(i,k,id_ASPOMM_phy,inu)+&824 tau_ae _pi(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)*cg_ae(i,k,id_AIPOMM_phy,inu)+&825 tau_ae _pi(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)*cg_ae(i,k,id_ASSSM_phy,inu)+&826 tau_ae _pi(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)*cg_ae(i,k,id_CSSSM_phy,inu)+&827 tau_ae _pi(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)*cg_ae(i,k,id_SSSSM_phy,inu)+&828 tau_ae _pi(i,k,id_CIDUSTM_phy,inu)*piz_ae(i,k,id_CIDUSTM_phy,inu)*cg_ae(i,k,id_CIDUSTM_phy,inu))/ &820 cg_allaer(i,k,1,inu)=(tau_ae(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)*cg_ae(i,k,id_ASSO4M_phy,inu)+ & 821 tau_ae(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)*cg_ae(i,k,id_CSSO4M_phy,inu)+ & 822 tau_ae(i,k,id_ASBCM_phy,inu)*piz_ae(i,k,id_ASBCM_phy,inu)*cg_ae(i,k,id_ASBCM_phy,inu)+ & 823 tau_ae(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)*cg_ae(i,k,id_AIBCM_phy,inu)+ & 824 tau_ae(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)*cg_ae(i,k,id_ASPOMM_phy,inu)+ & 825 tau_ae(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)*cg_ae(i,k,id_AIPOMM_phy,inu)+ & 826 tau_ae(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)*cg_ae(i,k,id_ASSSM_phy,inu)+ & 827 tau_ae(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)*cg_ae(i,k,id_CSSSM_phy,inu)+ & 828 tau_ae(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)*cg_ae(i,k,id_SSSSM_phy,inu)+ & 829 tau_ae(i,k,id_CIDUSTM_phy,inu)*piz_ae(i,k,id_CIDUSTM_phy,inu)*cg_ae(i,k,id_CIDUSTM_phy,inu))/ & 829 830 (tau_allaer(i,k,1,inu)*piz_allaer(i,k,1,inu)) 830 831 cg_allaer(i,k,1,inu)=MIN(MAX(cg_allaer(i,k,1,inu),0.0),1.0) 831 832 833 !--ASBCM aerosols take _pi value because of internal mixture option 834 ! tau_allaer(i,k,1,inu)=tau_ae_pi(i,k,id_ASSO4M_phy,inu)+tau_ae_pi(i,k,id_CSSO4M_phy,inu)+ & 835 ! tau_ae_pi(i,k,id_ASBCM_phy,inu)+tau_ae_pi(i,k,id_AIBCM_phy,inu)+ & 836 ! tau_ae_pi(i,k,id_ASPOMM_phy,inu)+tau_ae_pi(i,k,id_AIPOMM_phy,inu)+ & 837 ! tau_ae_pi(i,k,id_ASSSM_phy,inu)+tau_ae_pi(i,k,id_CSSSM_phy,inu)+ & 838 ! tau_ae_pi(i,k,id_SSSSM_phy,inu)+ tau_ae_pi(i,k,id_CIDUSTM_phy,inu) 839 ! tau_allaer(i,k,1,inu)=MAX(tau_allaer(i,k,1,inu),tau_min) 840 ! 841 ! piz_allaer(i,k,1,inu)=(tau_ae_pi(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)+ & 842 ! tau_ae_pi(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)+ & 843 ! tau_ae_pi(i,k,id_ASBCM_phy,inu)*piz_ae_pi(i,k,id_ASBCM_phy,inu)+ & 844 ! tau_ae_pi(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)+ & 845 ! tau_ae_pi(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)+ & 846 ! tau_ae_pi(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)+ & 847 ! tau_ae_pi(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)+ & 848 ! tau_ae_pi(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)+ & 849 ! tau_ae_pi(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)+ & 850 ! tau_ae_pi(i,k,id_CIDUSTM_phy,inu)*piz_ae(i,k,id_CIDUSTM_phy,inu)) & 851 ! /tau_allaer(i,k,1,inu) 852 ! piz_allaer(i,k,1,inu)=MIN(MAX(piz_allaer(i,k,1,inu),0.01),1.0) 853 ! IF (tau_allaer(i,k,1,inu).LE.tau_min) piz_allaer(i,k,1,inu)=1.0 854 ! 855 ! cg_allaer(i,k,1,inu)=(tau_ae_pi(i,k,id_ASSO4M_phy,inu)*piz_ae(i,k,id_ASSO4M_phy,inu)*cg_ae(i,k,id_ASSO4M_phy,inu)+ & 856 ! tau_ae_pi(i,k,id_CSSO4M_phy,inu)*piz_ae(i,k,id_CSSO4M_phy,inu)*cg_ae(i,k,id_CSSO4M_phy,inu)+ & 857 ! tau_ae_pi(i,k,id_ASBCM_phy,inu)*piz_ae_pi(i,k,id_ASBCM_phy,inu)*cg_ae_pi(i,k,id_ASBCM_phy,inu)+ & 858 ! tau_ae_pi(i,k,id_AIBCM_phy,inu)*piz_ae(i,k,id_AIBCM_phy,inu)*cg_ae(i,k,id_AIBCM_phy,inu)+ & 859 ! tau_ae_pi(i,k,id_ASPOMM_phy,inu)*piz_ae(i,k,id_ASPOMM_phy,inu)*cg_ae(i,k,id_ASPOMM_phy,inu)+ & 860 ! tau_ae_pi(i,k,id_AIPOMM_phy,inu)*piz_ae(i,k,id_AIPOMM_phy,inu)*cg_ae(i,k,id_AIPOMM_phy,inu)+ & 861 ! tau_ae_pi(i,k,id_ASSSM_phy,inu)*piz_ae(i,k,id_ASSSM_phy,inu)*cg_ae(i,k,id_ASSSM_phy,inu)+ & 862 ! tau_ae_pi(i,k,id_CSSSM_phy,inu)*piz_ae(i,k,id_CSSSM_phy,inu)*cg_ae(i,k,id_CSSSM_phy,inu)+ & 863 ! tau_ae_pi(i,k,id_SSSSM_phy,inu)*piz_ae(i,k,id_SSSSM_phy,inu)*cg_ae(i,k,id_SSSSM_phy,inu)+ & 864 ! tau_ae_pi(i,k,id_CIDUSTM_phy,inu)*piz_ae(i,k,id_CIDUSTM_phy,inu)*cg_ae(i,k,id_CIDUSTM_phy,inu))/ & 865 ! (tau_allaer(i,k,1,inu)*piz_allaer(i,k,1,inu)) 866 ! cg_allaer(i,k,1,inu)=MIN(MAX(cg_allaer(i,k,1,inu),0.0),1.0) 867 ! NL VOLC END 832 868 ENDDO 833 869 ENDDO -
LMDZ6/trunk/libf/phylmd/rrtm/readaerosolstrato2_rrtm.F90
r3465 r3479 358 358 tau_aero_sw_rrtm(:,:,2,band) = tau_aero_sw_rrtm(:,:,2,band) + tau_aer_strat(:,:,band) 359 359 !--natural aerosols bands 1 to NSW 360 cg_aero_sw_rrtm(:,:,1,band) = ( cg_aero_sw_rrtm(:,:,1,band)*piz_aero_sw_rrtm(:,:,1,band)*tau_aero_sw_rrtm(:,:,1,band) + &361 cg_aer_strat(:,:,band)*piz_aer_strat(:,:,band)*tau_aer_strat(:,:,band) ) / &362 MAX( piz_aero_sw_rrtm(:,:,1,band)*tau_aero_sw_rrtm(:,:,1,band) + &363 piz_aer_strat(:,:,band)*tau_aer_strat(:,:,band), 1.e-15 )364 piz_aero_sw_rrtm(:,:,1,band) = ( piz_aero_sw_rrtm(:,:,1,band)*tau_aero_sw_rrtm(:,:,1,band) + &365 piz_aer_strat(:,:,band)*tau_aer_strat(:,:,band) ) / &366 MAX( tau_aero_sw_rrtm(:,:,1,band) + tau_aer_strat(:,:,band), 1.e-15 )367 tau_aero_sw_rrtm(:,:,1,band) = tau_aero_sw_rrtm(:,:,1,band) + tau_aer_strat(:,:,band)360 ! cg_aero_sw_rrtm(:,:,1,band) = ( cg_aero_sw_rrtm(:,:,1,band)*piz_aero_sw_rrtm(:,:,1,band)*tau_aero_sw_rrtm(:,:,1,band) + & 361 ! cg_aer_strat(:,:,band)*piz_aer_strat(:,:,band)*tau_aer_strat(:,:,band) ) / & 362 ! MAX( piz_aero_sw_rrtm(:,:,1,band)*tau_aero_sw_rrtm(:,:,1,band) + & 363 ! piz_aer_strat(:,:,band)*tau_aer_strat(:,:,band), 1.e-15 ) 364 ! piz_aero_sw_rrtm(:,:,1,band) = ( piz_aero_sw_rrtm(:,:,1,band)*tau_aero_sw_rrtm(:,:,1,band) + & 365 ! piz_aer_strat(:,:,band)*tau_aer_strat(:,:,band) ) / & 366 ! MAX( tau_aero_sw_rrtm(:,:,1,band) + tau_aer_strat(:,:,band), 1.e-15 ) 367 ! tau_aero_sw_rrtm(:,:,1,band) = tau_aero_sw_rrtm(:,:,1,band) + tau_aer_strat(:,:,band) 368 368 !--no stratospheric aerosol in index 1 for these tests 369 !cg_aero_sw_rrtm(:,:,1,band) = cg_aero_sw_rrtm(:,:,1,band)370 !piz_aero_sw_rrtm(:,:,1,band) = piz_aero_sw_rrtm(:,:,1,band)371 !tau_aero_sw_rrtm(:,:,1,band) = tau_aero_sw_rrtm(:,:,1,band)369 cg_aero_sw_rrtm(:,:,1,band) = cg_aero_sw_rrtm(:,:,1,band) 370 piz_aero_sw_rrtm(:,:,1,band) = piz_aero_sw_rrtm(:,:,1,band) 371 tau_aero_sw_rrtm(:,:,1,band) = tau_aero_sw_rrtm(:,:,1,band) 372 372 ENDWHERE 373 373 ENDDO -
LMDZ6/trunk/libf/phylmd/rrtm/recmwf_aero.F90
r3412 r3479 30 30 & PTOPSWAIAERO,PSOLSWAIAERO,& 31 31 & PTOPSWCFAERO,PSOLSWCFAERO,& 32 & PSWADAERO,& !--NL 32 33 !--LW diagnostics CK 33 34 & PTOPLWADAERO,PSOLLWADAERO,& 34 35 & PTOPLWAD0AERO,PSOLLWAD0AERO,& 35 36 & PTOPLWAIAERO,PSOLLWAIAERO,& 37 & PLWADAERO,& !--NL 36 38 !..end 37 & ok_ade, ok_aie, flag_aerosol,flag_aerosol_strat,flag_aer_feedback) 39 & ok_ade, ok_aie, ok_volcan, flag_aerosol,flag_aerosol_strat,& 40 & flag_aer_feedback) 38 41 !--fin 39 42 … … 82 85 ! ok_ade---input-L- apply the Aerosol Direct Effect or not? 83 86 ! ok_aie---input-L- apply the Aerosol Indirect Effect or not? 87 ! ok_volcan-input-L- activate volcanic diags (SW heat & LW cool rate, SW & LW flux) 84 88 ! flag_aerosol-input-I- aerosol flag from 0 to 7 85 89 ! flag_aerosol_strat-input-I- use stratospheric aerosols flag (T/F) … … 213 217 REAL(KIND=JPRB) ,INTENT(IN) :: PREF_ICE_PI(KPROMA,KLEV) 214 218 LOGICAL, INTENT(in) :: ok_ade, ok_aie ! switches whether to use aerosol direct (indirect) effects or not 219 LOGICAL, INTENT(in) :: ok_volcan ! produce volcanic diags (SW/LW heat flux and rate) 215 220 INTEGER, INTENT(in) :: flag_aerosol ! takes value 0 (no aerosol) or 1 to 6 (aerosols) 216 221 LOGICAL, INTENT(in) :: flag_aerosol_strat ! use stratospheric aerosols … … 221 226 REAL(KIND=JPRB) ,INTENT(OUT) :: PTOPSWCFAERO(KPROMA,3), PSOLSWCFAERO(KPROMA,3) !--do we keep this ? 222 227 !--fin 228 !--NL 229 REAL(KIND=JPRB) ,INTENT(OUT) :: PSWADAERO(KPROMA, KLEV+1) ! SW Aerosol direct forcing 230 REAL(KIND=JPRB) ,INTENT(OUT) :: PLWADAERO(KPROMA, KLEV+1) ! LW Aerosol direct forcing 223 231 !--CK 224 232 REAL(KIND=JPRB) ,INTENT(out) :: PTOPLWADAERO(KPROMA), PSOLLWADAERO(KPROMA) ! LW Aerosol direct forcing at TOA + surface … … 811 819 PSOLSWAD0AERO(:) = (ZFSDN0_AERO(:,1,4) -ZFSUP0_AERO(:,1,4)) -(ZFSDN0_AERO(:,1,2) -ZFSUP0_AERO(:,1,2)) 812 820 PTOPSWAD0AERO(:) = (ZFSDN0_AERO(:,KLEV+1,4)-ZFSUP0_AERO(:,KLEV+1,4))-(ZFSDN0_AERO(:,KLEV+1,2)-ZFSUP0_AERO(:,KLEV+1,2)) 821 IF(ok_volcan) THEN 822 PSWADAERO(:,:) = (ZFSDN_AERO(:,:,4) -ZFSUP_AERO(:,:,4)) -(ZFSDN_AERO(:,:,2) -ZFSUP_AERO(:,:,2)) !--NL 823 ENDIF 813 824 814 825 ! indirect anthropogenic forcing … … 831 842 PSOLLWAD0AERO(:) = (-LWDN0_AERO(:,1,4) -LWUP0_AERO(:,1,4)) -(-LWDN0_AERO(:,1,2) -LWUP0_AERO(:,1,2)) 832 843 PTOPLWAD0AERO(:) = (-LWDN0_AERO(:,KLEV+1,4)-LWUP0_AERO(:,KLEV+1,4))-(-LWDN0_AERO(:,KLEV+1,2)-LWUP0_AERO(:,KLEV+1,2)) 844 IF(ok_volcan) THEN 845 PLWADAERO(:,:) = (-LWDN_AERO(:,:,4) -LWUP_AERO(:,:,4)) -(-LWDN_AERO(:,:,2) -LWUP_AERO(:,:,2)) !--NL 846 ENDIF 833 847 834 848 ! LW indirect anthropogenic forcing … … 845 859 PSOLSWAD0AERO(:) = (ZFSDN0_AERO(:,1,3) -ZFSUP0_AERO(:,1,3)) -(ZFSDN0_AERO(:,1,1) -ZFSUP0_AERO(:,1,1)) 846 860 PTOPSWAD0AERO(:) = (ZFSDN0_AERO(:,KLEV+1,3)-ZFSUP0_AERO(:,KLEV+1,3))-(ZFSDN0_AERO(:,KLEV+1,1)-ZFSUP0_AERO(:,KLEV+1,1)) 861 IF(ok_volcan) THEN 862 PSWADAERO(:,:) = (ZFSDN_AERO(:,:,3) -ZFSUP_AERO(:,:,3)) -(ZFSDN_AERO(:,:,1) -ZFSUP_AERO(:,:,1)) !--NL 863 ENDIF 847 864 848 865 ! indirect anthropogenic forcing … … 865 882 PSOLLWAD0AERO(:) = (-LWDN0_AERO(:,1,3) -LWUP0_AERO(:,1,3)) -(-LWDN0_AERO(:,1,1) -LWUP0_AERO(:,1,1)) 866 883 PTOPLWAD0AERO(:) = (-LWDN0_AERO(:,KLEV+1,3)-LWUP0_AERO(:,KLEV+1,3))-(-LWDN0_AERO(:,KLEV+1,1)-LWUP0_AERO(:,KLEV+1,1)) 867 884 IF(ok_volcan) THEN 885 PLWADAERO(:,:) = (-LWDN_AERO(:,:,3) -LWUP_AERO(:,:,3)) -(-LWDN_AERO(:,:,1) -LWUP_AERO(:,:,1)) !--NL 886 ENDIF 887 868 888 ! LW indirect anthropogenic forcing 869 889 PSOLLWAIAERO(:) = 0.0 … … 879 899 PSOLSWAD0AERO(:) = 0.0 880 900 PTOPSWAD0AERO(:) = 0.0 881 901 IF(ok_volcan) THEN 902 PSWADAERO(:,:) = 0.0 !--NL 903 ENDIF 904 882 905 ! indirect anthropogenic forcing 883 906 PSOLSWAIAERO(:) = (ZFSDN_AERO(:,1,2) -ZFSUP_AERO(:,1,2)) -(ZFSDN_AERO(:,1,1) -ZFSUP_AERO(:,1,1)) … … 899 922 PSOLLWAD0AERO(:) = 0.0 900 923 PTOPLWAD0AERO(:) = 0.0 901 924 IF(ok_volcan) THEN 925 PLWADAERO(:,:) = 0.0 !--NL 926 ENDIF 927 902 928 ! LW indirect anthropogenic forcing 903 929 PSOLLWAIAERO(:) = (-LWDN_AERO(:,1,2) -LWUP_AERO(:,1,2)) -(-LWDN_AERO(:,1,1) -LWUP_AERO(:,1,1)) … … 913 939 PSOLSWAD0AERO(:) = 0.0 914 940 PTOPSWAD0AERO(:) = 0.0 915 941 IF(ok_volcan) THEN 942 PSWADAERO(:,:) = 0.0 !--NL 943 ENDIF 944 916 945 ! indirect anthropogenic forcing 917 946 PSOLSWAIAERO(:) = 0.0 … … 933 962 PSOLLWAD0AERO(:) = 0.0 934 963 PTOPLWAD0AERO(:) = 0.0 935 964 IF(ok_volcan) THEN 965 PLWADAERO(:,:) = 0.0 !--NL 966 ENDIF 967 936 968 ! LW indirect anthropogenic forcing 937 969 PSOLLWAIAERO(:) = 0.0
Note: See TracChangeset
for help on using the changeset viewer.