Changeset 3609 for LMDZ6/branches
- Timestamp:
- Nov 29, 2019, 9:25:41 AM (5 years ago)
- Location:
- LMDZ6/branches/IPSLCM6.0.15/libf
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/IPSLCM6.0.15/libf/dynphy_lonlat/phylmd/etat0phys_netcdf.F90
r3607 r3609 113 113 INTEGER :: flag_aerosol 114 114 INTEGER :: flag_aerosol_strat 115 INTEGER :: flag_volc_surfstrat 115 116 LOGICAL :: flag_aer_feedback 116 117 LOGICAL :: flag_bc_internal_mixture … … 133 134 iflag_cldcon, & 134 135 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 135 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan,&136 ok_ade,ok_aie,ok_alw,ok_cdnc,ok_volcan,flag_volc_surfstrat,& 136 137 aerosol_couple, chemistry_couple, flag_aerosol, & 137 138 flag_aerosol_strat, & -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/conf_phys_m.F90
r3607 r3609 17 17 iflag_cld_th, & 18 18 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 19 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, aerosol_couple, &19 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat, aerosol_couple, & 20 20 chemistry_couple, flag_aerosol, flag_aerosol_strat, & 21 21 flag_aer_feedback, new_aod, & … … 64 64 ! bl95_b*: parameters in the formula to link CDNC to aerosol mass conc 65 65 ! ok_volcan: activate volcanic diags (SW heat & LW cool rate, SW & LW flux) 66 ! flag_volc_surfstrat: VolMIP flag, activate forcing surface cooling rate (=1), strato heating rate (=2) or nothing (=0, default) 66 67 ! 67 68 … … 77 78 INTEGER :: flag_aerosol 78 79 INTEGER :: flag_aerosol_strat 80 INTEGER :: flag_volc_surfstrat !VolMIP flag for surf/strat runs 79 81 LOGICAL :: flag_aer_feedback 80 82 LOGICAL :: flag_bc_internal_mixture … … 99 101 INTEGER, SAVE :: flag_aerosol_omp 100 102 INTEGER, SAVE :: flag_aerosol_strat_omp 103 INTEGER, SAVE :: flag_volc_surfstrat_omp !VolMIP flag for surf/strat runs 101 104 LOGICAL, SAVE :: flag_aer_feedback_omp 102 105 LOGICAL, SAVE :: flag_bc_internal_mixture_omp … … 407 410 408 411 ! 412 !Config Key = flag_volc_surfstrat 413 !Config Desc = impose cooling rate at the surface (=1), 414 ! heating rate in the strato (=2), or nothing (=0) 415 !Config Def = 0 416 !Config Help = Used in radlwsw_m.F 417 ! 418 flag_volc_surfstrat_omp = 0 419 CALL getin('flag_volc_surfstrat', flag_volc_surfstrat_omp) 420 421 ! 409 422 !Config Key = aerosol_couple 410 423 !Config Desc = read aerosol in file or calcul by inca … … 2304 2317 ok_cdnc = ok_cdnc_omp 2305 2318 ok_volcan = ok_volcan_omp 2319 flag_volc_surfstrat=flag_volc_surfstrat_omp 2306 2320 aerosol_couple = aerosol_couple_omp 2307 2321 chemistry_couple = chemistry_couple_omp … … 2522 2536 IF (flag_bc_internal_mixture .AND. flag_aerosol.NE.6) THEN 2523 2537 CALL abort_physic('conf_phys', 'flag_bc_internal_mixture can only be activated with flag_aerosol=6',1) 2538 ENDIF 2539 2540 IF (flag_volc_surfstrat.LT.0.OR.flag_volc_surfstrat.GT.2) THEN 2541 CALL abort_physic('conf_phys', 'flag_volc_surfstrat can only be 0 1 or 2',1) 2524 2542 ENDIF 2525 2543 … … 2637 2655 WRITE(lunout,*)' ok_ade = ',ok_ade 2638 2656 WRITE(lunout,*)' ok_volcan = ',ok_volcan 2657 WRITE(lunout,*)' flag_volc_surfstrat = ',flag_volc_surfstrat 2639 2658 WRITE(lunout,*)' ok_aie = ',ok_aie 2640 2659 WRITE(lunout,*)' ok_alw = ',ok_alw -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/physiq_mod.F90
r3607 r3609 331 331 !====================================================================== 332 332 LOGICAL, SAVE :: ok_volcan ! pour activer les diagnostics volcaniques 333 !$OMP THREADPRIVATE(ok_volcan) 334 INTEGER, SAVE :: flag_volc_surfstrat ! pour imposer le cool/heat rate à la surf/strato 335 !$OMP THREADPRIVATE(flag_volc_surfstrat) 333 336 LOGICAL ok_cvl ! pour activer le nouveau driver pour convection KE 334 337 PARAMETER (ok_cvl=.TRUE.) 335 338 LOGICAL ok_gust ! pour activer l'effet des gust sur flux surface 336 339 PARAMETER (ok_gust=.FALSE.) 337 integeriflag_radia ! active ou non le rayonnement (MPL)338 saveiflag_radia340 INTEGER iflag_radia ! active ou non le rayonnement (MPL) 341 SAVE iflag_radia 339 342 !$OMP THREADPRIVATE(iflag_radia) 340 343 !====================================================================== … … 1238 1241 fact_cldcon, facttemps,ok_newmicro,iflag_radia, & 1239 1242 iflag_cld_th,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 1240 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, aerosol_couple, &1243 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat, aerosol_couple, & 1241 1244 chemistry_couple, flag_aerosol, flag_aerosol_strat, & 1242 1245 flag_aer_feedback, new_aod, & … … 3913 3916 t_seri,q_seri,wo, & 3914 3917 cldfrarad, cldemirad, cldtaurad, & 3915 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, &3918 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, flag_volc_surfstrat, & 3916 3919 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 3917 3920 tau_aero, piz_aero, cg_aero, & … … 3999 4002 t_seri,q_seri,wo, & 4000 4003 cldfrarad, cldemirad, cldtaurad, & 4001 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, &4004 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, flag_volc_surfstrat, & 4002 4005 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 4003 4006 tau_aero, piz_aero, cg_aero, & -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/radlwsw_m.F90
r3607 r3609 16 16 t,q,wo,& 17 17 cldfra, cldemi, cldtaupd,& 18 ok_ade, ok_aie, ok_volcan, flag_ aerosol,&18 ok_ade, ok_aie, ok_volcan, flag_volc_surfstrat, flag_aerosol,& 19 19 flag_aerosol_strat, flag_aer_feedback, & 20 20 tau_aero, piz_aero, cg_aero,& … … 102 102 ! ok_aie---input-L- apply the Aerosol Indirect Effect or not? 103 103 ! ok_volcan-input-L- activate volcanic diags (SW heat & LW cool rate, SW & LW flux) 104 ! flag_volc_surfstrat-input-I- activate volcanic surf cooling or strato heating (or nothing) 104 105 ! flag_aerosol-input-I- aerosol flag from 0 to 6 105 106 ! flag_aerosol_strat-input-I- use stratospheric aerosols flag (0, 1, 2) … … 200 201 LOGICAL, INTENT(in) :: ok_volcan ! produce volcanic diags (SW/LW heat flux and rate) 201 202 LOGICAL :: lldebug 203 INTEGER, INTENT(in) :: flag_volc_surfstrat ! allow to impose volcanic cooling rate at surf or heating in strato 202 204 INTEGER, INTENT(in) :: flag_aerosol ! takes value 0 (no aerosol) or 1 to 6 (aerosols) 203 205 INTEGER, INTENT(in) :: flag_aerosol_strat ! use stratospheric aerosols … … 319 321 REAL(KIND=8) zswadaero(kdlon,kflev+1) ! SW Aerosol direct forcing 320 322 REAL(KIND=8) zlwadaero(kdlon,kflev+1) ! LW Aerosol direct forcing 323 !-- VolMIP 324 REAL(KIND=8) volmip_solsw(kdlon) ! SW clear sky in the case of VOLMIP 321 325 !-LW by CK 322 326 REAL(KIND=8) ztoplwadaero(kdlon), zsollwadaero(kdlon) ! LW Aerosol direct forcing at TOAand surface … … 875 879 ZTOPLWAIAERO,ZSOLLWAIAERO, & 876 880 ZLWADAERO, & !--NL 881 volmip_solsw, flag_volc_surfstrat, & !--VOLMIP 877 882 ok_ade, ok_aie, ok_volcan, flag_aerosol,flag_aerosol_strat, & 878 883 flag_aer_feedback) ! flags aerosols … … 1025 1030 ! print*,'OK2' 1026 1031 1032 !!--add VOLMIP (surf cool or strat heat activate) 1033 IF (flag_volc_surfstrat > 0) THEN 1034 DO i = 1, kdlon 1035 zsolsw(i) = volmip_solsw(i)*fract(i) 1036 ENDDO 1037 ENDIF 1038 1027 1039 ! extrait de SW_AR4 1028 1040 ! DO k = 1, KFLEV -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/rrtm/recmwf_aero.F90
r3607 r3609 36 36 & PTOPLWAIAERO,PSOLLWAIAERO,& 37 37 & PLWADAERO,& !--NL 38 !--ajout volmip 39 & volmip_solsw, flag_volc_surfstrat,& 38 40 !..end 39 41 & ok_ade, ok_aie, ok_volcan, flag_aerosol,flag_aerosol_strat,flag_aer_feedback) … … 258 260 REAL(KIND=JPRB) ,INTENT(OUT) :: PFLCCDN(KPROMA,KLEV+1) ! LW clear sky clean (no aerosol) flux down 259 261 REAL(KIND=JPRB) ,INTENT(OUT) :: PFLCCUP(KPROMA,KLEV+1) ! LW clear sky clean (no aerosol) flux up 262 !--ajout VOLMIP 263 REAL(KIND=JPRB) ,INTENT(OUT) :: volmip_solsw(KPROMA) ! SW clear sky in the case of VOLMIP 264 INTEGER, INTENT(IN) :: flag_volc_surfstrat !--VOlMIP Modif 260 265 261 266 ! ==== COMPUTED IN RADITE === … … 794 799 ENDIF 795 800 801 !--VolMIP Strat/Surf 802 !--only ok_ade + ok_aie case treated 803 IF (ok_ade.AND.ok_aie.AND.ok_volcan) THEN 804 !--in this case the fluxes used for the heating rates come from case 4 but SW surface radiation is kept from case 2 805 IF (flag_volc_surfstrat.EQ.2) THEN ! STRAT HEATING 806 volmip_solsw(:)= ZFSDN_AERO(:,1,2)-ZFSUP_AERO(:,1,2) 807 ELSEIF (flag_volc_surfstrat.EQ.1) THEN ! SURF COOLING 808 !--in this case the fluxes used for the heating rates come from case 2 but SW surface radiation is kept from case 4 809 PFSUP(:,:) = ZFSUP_AERO(:,:,2) 810 PFSDN(:,:) = ZFSDN_AERO(:,:,2) 811 PFSCUP(:,:) = ZFSUP0_AERO(:,:,2) 812 PFSCDN(:,:) = ZFSDN0_AERO(:,:,2) 813 PFLUX(:,1,:) = LWUP_AERO(:,:,2) 814 PFLUX(:,2,:) = LWDN_AERO(:,:,2) 815 PFLUC(:,1,:) = LWDN0_AERO(:,:,2) 816 PFLUC(:,2,:) = LWDN0_AERO(:,:,2) 817 volmip_solsw(:)= ZFSDN_AERO(:,1,4)-ZFSUP_AERO(:,1,4) 818 ENDIF 819 ENDIF 820 !--End VolMIP Strat/Surf 821 796 822 IF (swaerofree_diag) THEN 797 823 ! copy shortwave clear-sky clean (no aerosol) case
Note: See TracChangeset
for help on using the changeset viewer.