Changeset 3607
- Timestamp:
- Nov 29, 2019, 9:08:29 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
r3604 r3607 113 113 INTEGER :: flag_aerosol 114 114 INTEGER :: flag_aerosol_strat 115 INTEGER :: flag_volc_surfstrat116 115 LOGICAL :: flag_aer_feedback 117 116 LOGICAL :: flag_bc_internal_mixture … … 134 133 iflag_cldcon, & 135 134 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 136 ok_ade, ok_aie,ok_alw,ok_cdnc,ok_volcan,flag_volc_surfstrat,&135 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, & 137 136 aerosol_couple, chemistry_couple, flag_aerosol, & 138 137 flag_aerosol_strat, & -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/conf_phys_m.F90
r3604 r3607 17 17 iflag_cld_th, & 18 18 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 19 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat,aerosol_couple, &19 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, 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)67 66 ! 68 67 … … 78 77 INTEGER :: flag_aerosol 79 78 INTEGER :: flag_aerosol_strat 80 INTEGER :: flag_volc_surfstrat !VolMIP flag for surf/strat runs81 79 LOGICAL :: flag_aer_feedback 82 80 LOGICAL :: flag_bc_internal_mixture … … 101 99 INTEGER, SAVE :: flag_aerosol_omp 102 100 INTEGER, SAVE :: flag_aerosol_strat_omp 103 INTEGER, SAVE :: flag_volc_surfstrat_omp !VolMIP flag for surf/strat runs104 101 LOGICAL, SAVE :: flag_aer_feedback_omp 105 102 LOGICAL, SAVE :: flag_bc_internal_mixture_omp … … 410 407 411 408 ! 412 !Config Key = flag_volc_surfstrat413 !Config Desc = impose cooling rate at the surface (=1),414 ! heating rate in the strato (=2), or nothing (=0)415 !Config Def = 0416 !Config Help = Used in radlwsw_m.F417 !418 flag_volc_surfstrat_omp = 0419 CALL getin('flag_volc_surfstrat', flag_volc_surfstrat_omp)420 421 !422 409 !Config Key = aerosol_couple 423 410 !Config Desc = read aerosol in file or calcul by inca … … 2317 2304 ok_cdnc = ok_cdnc_omp 2318 2305 ok_volcan = ok_volcan_omp 2319 flag_volc_surfstrat=flag_volc_surfstrat_omp2320 2306 aerosol_couple = aerosol_couple_omp 2321 2307 chemistry_couple = chemistry_couple_omp … … 2536 2522 IF (flag_bc_internal_mixture .AND. flag_aerosol.NE.6) THEN 2537 2523 CALL abort_physic('conf_phys', 'flag_bc_internal_mixture can only be activated with flag_aerosol=6',1) 2538 ENDIF2539 2540 IF (flag_volc_surfstrat.LT.0.OR.flag_volc_surfstrat.GT.2) THEN2541 CALL abort_physic('conf_phys', 'flag_volc_surfstrat can only be 0 1 or 2',1)2542 2524 ENDIF 2543 2525 … … 2655 2637 WRITE(lunout,*)' ok_ade = ',ok_ade 2656 2638 WRITE(lunout,*)' ok_volcan = ',ok_volcan 2657 WRITE(lunout,*)' flag_volc_surfstrat = ',flag_volc_surfstrat2658 2639 WRITE(lunout,*)' ok_aie = ',ok_aie 2659 2640 WRITE(lunout,*)' ok_alw = ',ok_alw -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/physiq_mod.F90
r3604 r3607 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/strato335 !$OMP THREADPRIVATE(flag_volc_surfstrat)336 333 LOGICAL ok_cvl ! pour activer le nouveau driver pour convection KE 337 334 PARAMETER (ok_cvl=.TRUE.) 338 335 LOGICAL ok_gust ! pour activer l'effet des gust sur flux surface 339 336 PARAMETER (ok_gust=.FALSE.) 340 INTEGERiflag_radia ! active ou non le rayonnement (MPL)341 SAVEiflag_radia337 integer iflag_radia ! active ou non le rayonnement (MPL) 338 save iflag_radia 342 339 !$OMP THREADPRIVATE(iflag_radia) 343 340 !====================================================================== … … 1241 1238 fact_cldcon, facttemps,ok_newmicro,iflag_radia, & 1242 1239 iflag_cld_th,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 1243 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat,aerosol_couple, &1240 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, aerosol_couple, & 1244 1241 chemistry_couple, flag_aerosol, flag_aerosol_strat, & 1245 1242 flag_aer_feedback, new_aod, & … … 3916 3913 t_seri,q_seri,wo, & 3917 3914 cldfrarad, cldemirad, cldtaurad, & 3918 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, flag_volc_surfstrat,&3915 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, & 3919 3916 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 3920 3917 tau_aero, piz_aero, cg_aero, & … … 4002 3999 t_seri,q_seri,wo, & 4003 4000 cldfrarad, cldemirad, cldtaurad, & 4004 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, flag_volc_surfstrat,&4001 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, & 4005 4002 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 4006 4003 tau_aero, piz_aero, cg_aero, & -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/radlwsw_m.F90
r3604 r3607 16 16 t,q,wo,& 17 17 cldfra, cldemi, cldtaupd,& 18 ok_ade, ok_aie, ok_volcan, flag_ volc_surfstrat, 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,& … … 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)105 104 ! flag_aerosol-input-I- aerosol flag from 0 to 6 106 105 ! flag_aerosol_strat-input-I- use stratospheric aerosols flag (0, 1, 2) … … 201 200 LOGICAL, INTENT(in) :: ok_volcan ! produce volcanic diags (SW/LW heat flux and rate) 202 201 LOGICAL :: lldebug 203 INTEGER, INTENT(in) :: flag_volc_surfstrat ! allow to impose volcanic cooling rate at surf or heating in strato204 202 INTEGER, INTENT(in) :: flag_aerosol ! takes value 0 (no aerosol) or 1 to 6 (aerosols) 205 203 INTEGER, INTENT(in) :: flag_aerosol_strat ! use stratospheric aerosols … … 321 319 REAL(KIND=8) zswadaero(kdlon,kflev+1) ! SW Aerosol direct forcing 322 320 REAL(KIND=8) zlwadaero(kdlon,kflev+1) ! LW Aerosol direct forcing 323 !-- VolMIP324 REAL(KIND=8) volmip_solsw(kdlon) ! SW clear sky in the case of VOLMIP325 321 !-LW by CK 326 322 REAL(KIND=8) ztoplwadaero(kdlon), zsollwadaero(kdlon) ! LW Aerosol direct forcing at TOAand surface … … 879 875 ZTOPLWAIAERO,ZSOLLWAIAERO, & 880 876 ZLWADAERO, & !--NL 881 volmip_solsw, flag_volc_surfstrat, & !--VOLMIP882 877 ok_ade, ok_aie, ok_volcan, flag_aerosol,flag_aerosol_strat, & 883 878 flag_aer_feedback) ! flags aerosols … … 1030 1025 ! print*,'OK2' 1031 1026 1032 !!--add VOLMIP (surf cool or strat heat activate)1033 IF (flag_volc_surfstrat > 0) THEN1034 DO i = 1, kdlon1035 zsolsw(i) = volmip_solsw(i)*fract(i)1036 ENDDO1037 ENDIF1038 1039 1027 ! extrait de SW_AR4 1040 1028 ! DO k = 1, KFLEV -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/rrtm/recmwf_aero.F90
r3604 r3607 36 36 & PTOPLWAIAERO,PSOLLWAIAERO,& 37 37 & PLWADAERO,& !--NL 38 !--ajout volmip39 & volmip_solsw, flag_volc_surfstrat,&40 38 !..end 41 39 & ok_ade, ok_aie, ok_volcan, flag_aerosol,flag_aerosol_strat,flag_aer_feedback) … … 260 258 REAL(KIND=JPRB) ,INTENT(OUT) :: PFLCCDN(KPROMA,KLEV+1) ! LW clear sky clean (no aerosol) flux down 261 259 REAL(KIND=JPRB) ,INTENT(OUT) :: PFLCCUP(KPROMA,KLEV+1) ! LW clear sky clean (no aerosol) flux up 262 !--ajout VOLMIP263 REAL(KIND=JPRB) ,INTENT(OUT) :: volmip_solsw(KPROMA) ! SW clear sky in the case of VOLMIP264 INTEGER, INTENT(IN) :: flag_volc_surfstrat !--VOlMIP Modif265 260 266 261 ! ==== COMPUTED IN RADITE === … … 799 794 ENDIF 800 795 801 !--VolMIP Strat/Surf802 !--only ok_ade + ok_aie case treated803 IF (ok_ade.AND.ok_aie.AND.ok_volcan) THEN804 !--in this case the fluxes used for the heating rates come from case 4 but SW surface radiation is kept from case 2805 IF (flag_volc_surfstrat.EQ.2) THEN ! STRAT HEATING806 volmip_solsw(:)= ZFSDN_AERO(:,1,2)-ZFSUP_AERO(:,1,2)807 ELSEIF (flag_volc_surfstrat.EQ.1) THEN ! SURF COOLING808 !--in this case the fluxes used for the heating rates come from case 2 but SW surface radiation is kept from case 4809 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 ENDIF819 ENDIF820 !--End VolMIP Strat/Surf821 822 796 IF (swaerofree_diag) THEN 823 797 ! copy shortwave clear-sky clean (no aerosol) case
Note: See TracChangeset
for help on using the changeset viewer.