Changeset 3989 for LMDZ6/trunk/libf
- Timestamp:
- Oct 10, 2021, 9:18:17 AM (3 years ago)
- Location:
- LMDZ6/trunk/libf
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dynphy_lonlat/phylmd/etat0phys_netcdf.F90
r3868 r3989 119 119 INTEGER :: flag_aerosol 120 120 INTEGER :: flag_aerosol_strat 121 INTEGER :: flag_volc_surfstrat 121 122 LOGICAL :: flag_aer_feedback 122 123 LOGICAL :: flag_bc_internal_mixture … … 138 139 iflag_cldcon, & 139 140 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 140 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, & 141 aerosol_couple, & 142 chemistry_couple, flag_aerosol, flag_aerosol_strat, & 143 flag_aer_feedback, & 144 flag_bc_internal_mixture, bl95_b0, bl95_b1, & 141 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat, & 142 aerosol_couple, chemistry_couple, flag_aerosol, flag_aerosol_strat, & 143 flag_aer_feedback, flag_bc_internal_mixture, bl95_b0, bl95_b1, & 145 144 read_climoz, alp_offset) 146 145 CALL phys_state_var_init(read_climoz) -
LMDZ6/trunk/libf/phylmd/conf_phys_m.F90
r3974 r3989 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, chemistry_couple, &20 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, &19 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat, aerosol_couple, & 20 chemistry_couple, flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 21 21 flag_bc_internal_mixture, bl95_b0, bl95_b1,& 22 22 read_climoz, & … … 67 67 ! bl95_b*: parameters in the formula to link CDNC to aerosol mass conc 68 68 ! ok_volcan: activate volcanic diags (SW heat & LW cool rate, SW & LW flux) 69 ! flag_volc_surfstrat: VolMIP flag, activate forcing surface cooling rate (=1), strato heating rate (=2) or nothing (=0, default) 69 70 ! 70 71 … … 79 80 INTEGER :: flag_aerosol 80 81 INTEGER :: flag_aerosol_strat 82 INTEGER :: flag_volc_surfstrat 81 83 LOGICAL :: flag_aer_feedback 82 84 LOGICAL :: flag_bc_internal_mixture … … 107 109 INTEGER, SAVE :: flag_aerosol_omp 108 110 INTEGER, SAVE :: flag_aerosol_strat_omp 111 INTEGER, SAVE :: flag_volc_surfstrat_omp 109 112 LOGICAL, SAVE :: flag_aer_feedback_omp 110 113 LOGICAL, SAVE :: flag_bc_internal_mixture_omp … … 553 556 554 557 ! 558 !Config Key = flag_volc_surfstrat 559 !Config Desc = impose cooling rate at the surface (=1), 560 ! heating rate in the strato (=2), or nothing (=0) 561 !Config Def = 0 562 !Config Help = Used in radlwsw_m.F 563 ! 564 flag_volc_surfstrat_omp = 0 ! NL: SURFSTRAT 565 CALL getin('flag_volc_surfstrat', flag_volc_surfstrat_omp) 566 567 ! 555 568 !Config Key = aerosol_couple 556 569 !Config Desc = read aerosol in file or calcul by inca … … 2494 2507 ok_cdnc = ok_cdnc_omp 2495 2508 ok_volcan = ok_volcan_omp 2509 flag_volc_surfstrat = flag_volc_surfstrat_omp 2496 2510 aerosol_couple = aerosol_couple_omp 2497 2511 chemistry_couple = chemistry_couple_omp 2498 flag_aerosol =flag_aerosol_omp2499 flag_aerosol_strat =flag_aerosol_strat_omp2500 flag_aer_feedback =flag_aer_feedback_omp2512 flag_aerosol = flag_aerosol_omp 2513 flag_aerosol_strat = flag_aerosol_strat_omp 2514 flag_aer_feedback = flag_aer_feedback_omp 2501 2515 flag_bc_internal_mixture=flag_bc_internal_mixture_omp 2502 2516 aer_type = aer_type_omp … … 2723 2737 CALL abort_physic('conf_phys', 'flag_bc_internal_mixture can only be activated with flag_aerosol=6',1) 2724 2738 ENDIF 2739 2740 ! test sur flag_volc_surfstrat 2741 IF (flag_volc_surfstrat.LT.0.OR.flag_volc_surfstrat.GT.2) THEN 2742 CALL abort_physic('conf_phys', 'flag_volc_surfstrat can only be 0 1 or 2',1) 2743 ENDIF 2744 IF ((.NOT.ok_volcan.OR..NOT.ok_ade.OR..NOT.ok_aie).AND.flag_volc_surfstrat.GT.0) THEN 2745 CALL abort_physic('conf_phys', 'ok_ade, ok_aie, ok_volcan need to be activated if flag_volc_surfstrat is 1 or 2',1) 2746 ENDIF 2725 2747 2726 2748 ! Test on carbon cycle … … 2845 2867 WRITE(lunout,*) ' ok_ade = ',ok_ade 2846 2868 WRITE(lunout,*) ' ok_volcan = ',ok_volcan 2869 WRITE(lunout,*) ' flag_volc_surfstrat = ',flag_volc_surfstrat 2847 2870 WRITE(lunout,*) ' ok_aie = ',ok_aie 2848 2871 WRITE(lunout,*) ' ok_alw = ',ok_alw -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r3988 r3989 355 355 LOGICAL, SAVE :: ok_volcan ! pour activer les diagnostics volcaniques 356 356 !$OMP THREADPRIVATE(ok_volcan) 357 INTEGER, SAVE :: flag_volc_surfstrat ! pour imposer le cool/heat rate à la surf ou dans la strato 358 !$OMP THREADPRIVATE(flag_volc_surfstrat) 357 359 LOGICAL ok_cvl ! pour activer le nouveau driver pour convection KE 358 360 PARAMETER (ok_cvl=.TRUE.) … … 1259 1261 fact_cldcon, facttemps,ok_newmicro,iflag_radia, & 1260 1262 iflag_cld_th,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 1261 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, aerosol_couple, & 1262 chemistry_couple, & 1263 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 1263 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat, aerosol_couple, & 1264 chemistry_couple, flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 1264 1265 flag_bc_internal_mixture, bl95_b0, bl95_b1, & 1265 1266 ! nv flags pour la convection et les … … 1794 1795 1795 1796 WRITE(lunout,*)"Clef pour la convection, iflag_con=", iflag_con 1796 WRITE(lunout,*)"Clef pour le driver de la convection, ok_cvl=", & 1797 ok_cvl 1797 WRITE(lunout,*)"Clef pour le driver de la convection, ok_cvl=", ok_cvl 1798 1798 ! 1799 1799 !KE43 … … 1963 1963 CALL bcast(dryaod_diag) 1964 1964 CALL bcast(ok_4xCO2atm) 1965 WRITE (lunout,*)'ok_4xCO2atm= ',swaero_diag, swaerofree_diag, dryaod_diag, ok_4xCO2atm1966 1965 #endif 1967 1966 ! … … 4191 4190 t_seri,q_seri,wo, & 4192 4191 cldfrarad, cldemirad, cldtaurad, & 4193 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, & 4194 flag_aerosol, & 4195 flag_aerosol_strat, flag_aer_feedback, & 4192 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, flag_volc_surfstrat, & 4193 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 4196 4194 tau_aero, piz_aero, cg_aero, & 4197 4195 tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, & … … 4266 4264 t_seri,q_seri,wo, & 4267 4265 cldfrarad, cldemirad, cldtaurad, & 4268 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, & 4269 flag_aerosol, & 4270 flag_aerosol_strat, flag_aer_feedback, & 4266 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, flag_volc_surfstrat, & 4267 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 4271 4268 tau_aero, piz_aero, cg_aero, & 4272 4269 tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, & -
LMDZ6/trunk/libf/phylmd/radlwsw_m.F90
r3954 r3989 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,& … … 107 107 ! ok_aie--- input-L- apply the Aerosol Indirect Effect or not? 108 108 ! ok_volcan input-L- activate volcanic diags (SW heat & LW cool rate, SW & LW flux) 109 ! flag_volc_surfstrat input-I- activate volcanic surf cooling or strato heating (or nothing) 109 110 ! flag_aerosol input-I- aerosol flag from 0 to 6 110 111 ! flag_aerosol_strat input-I- use stratospheric aerosols flag (0, 1, 2) … … 210 211 LOGICAL, INTENT(in) :: ok_ade, ok_aie ! switches whether to use aerosol direct (indirect) effects or not 211 212 LOGICAL, INTENT(in) :: ok_volcan ! produce volcanic diags (SW/LW heat flux and rate) 213 INTEGER, INTENT(in) :: flag_volc_surfstrat ! allow to impose volcanic cooling rate at surf or heating in strato 212 214 LOGICAL :: lldebug=.false. 213 215 INTEGER, INTENT(in) :: flag_aerosol ! takes value 0 (no aerosol) or 1 to 6 (aerosols) … … 365 367 REAL(KIND=8) ztopswaiaero(kdlon), zsolswaiaero(kdlon) ! dito, indirect 366 368 !--NL 367 REAL(KIND=8) zswadaero(kdlon,kflev+1) ! SW Aerosol direct forcing 368 REAL(KIND=8) zlwadaero(kdlon,kflev+1) ! LW Aerosol direct forcing 369 REAL(KIND=8) zswadaero(kdlon,kflev+1) ! SW Aerosol direct forcing 370 REAL(KIND=8) zlwadaero(kdlon,kflev+1) ! LW Aerosol direct forcing 371 REAL(KIND=8) volmip_solsw(kdlon) ! SW clear sky in the case of VOLMIP 369 372 !-LW by CK 370 373 REAL(KIND=8) ztoplwadaero(kdlon), zsollwadaero(kdlon) ! LW Aerosol direct forcing at TOAand surface … … 948 951 ZTOPLWAIAERO,ZSOLLWAIAERO, & 949 952 ZLWADAERO, & !--NL 953 volmip_solsw, flag_volc_surfstrat, & !--VOLMIP 950 954 ok_ade, ok_aie, ok_volcan, flag_aerosol,flag_aerosol_strat, flag_aer_feedback) ! flags aerosols 951 955 … … 1094 1098 ENDDO 1095 1099 ! print*,'OK2' 1100 1101 !--add VOLMIP (surf cool or strat heat activate) 1102 IF (flag_volc_surfstrat > 0) THEN 1103 DO i = 1, kdlon 1104 zsolsw(i) = volmip_solsw(i)*fract(i) 1105 ENDDO 1106 ENDIF 1096 1107 1097 1108 ! extrait de SW_AR4 -
LMDZ6/trunk/libf/phylmd/rrtm/recmwf_aero.F90
r3479 r3989 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,& … … 259 261 REAL(KIND=JPRB) ,INTENT(OUT) :: PFLCCDN(KPROMA,KLEV+1) ! LW clear sky clean (no aerosol) flux down 260 262 REAL(KIND=JPRB) ,INTENT(OUT) :: PFLCCUP(KPROMA,KLEV+1) ! LW clear sky clean (no aerosol) flux up 263 !--ajout VOLMIP 264 REAL(KIND=JPRB) ,INTENT(OUT) :: volmip_solsw(KPROMA) ! SW clear sky in the case of VOLMIP 265 INTEGER, INTENT(IN) :: flag_volc_surfstrat !--VOlMIP Modif 261 266 262 267 ! ==== COMPUTED IN RADITE === … … 795 800 ENDIF 796 801 802 !--VolMIP Strat/Surf 803 !--only ok_ade + ok_aie case treated 804 IF (ok_ade.AND.ok_aie.AND.ok_volcan) THEN 805 !--in this case the fluxes used for the heating rates come from case 4 but SW surface radiation is kept from case 2 806 IF (flag_volc_surfstrat.EQ.2) THEN ! STRAT HEATING 807 volmip_solsw(:)= ZFSDN_AERO(:,1,2)-ZFSUP_AERO(:,1,2) 808 ELSEIF (flag_volc_surfstrat.EQ.1) THEN ! SURF COOLING 809 !--in this case the fluxes used for the heating rates come from case 2 but SW surface radiation is kept from case 4 810 PFSUP(:,:) = ZFSUP_AERO(:,:,2) 811 PFSDN(:,:) = ZFSDN_AERO(:,:,2) 812 PFSCUP(:,:) = ZFSUP0_AERO(:,:,2) 813 PFSCDN(:,:) = ZFSDN0_AERO(:,:,2) 814 PFLUX(:,1,:) = LWUP_AERO(:,:,2) 815 PFLUX(:,2,:) = LWDN_AERO(:,:,2) 816 PFLUC(:,1,:) = LWDN0_AERO(:,:,2) 817 PFLUC(:,2,:) = LWDN0_AERO(:,:,2) 818 volmip_solsw(:)= ZFSDN_AERO(:,1,4)-ZFSUP_AERO(:,1,4) 819 ENDIF 820 ENDIF 821 !--End VolMIP Strat/Surf 822 797 823 IF (swaerofree_diag) THEN 798 824 ! copy shortwave clear-sky clean (no aerosol) case -
LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
r3949 r3989 426 426 LOGICAL, SAVE :: ok_volcan ! pour activer les diagnostics volcaniques 427 427 !$OMP THREADPRIVATE(ok_volcan) 428 INTEGER, SAVE :: flag_volc_surfstrat ! pour imposer le cool/heat rate à la surf/strato 429 !$OMP THREADPRIVATE(flag_volc_surfstrat) 428 430 LOGICAL ok_cvl ! pour activer le nouveau driver pour convection KE 429 431 PARAMETER (ok_cvl=.TRUE.) … … 1361 1363 fact_cldcon, facttemps,ok_newmicro,iflag_radia, & 1362 1364 iflag_cld_th,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 1363 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, aerosol_couple, & 1364 chemistry_couple, & 1365 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 1365 ok_ade, ok_aie, ok_alw, ok_cdnc, ok_volcan, flag_volc_surfstrat, aerosol_couple, & 1366 chemistry_couple, flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 1366 1367 flag_bc_internal_mixture, bl95_b0, bl95_b1, & 1367 1368 ! nv flags pour la convection et les … … 5454 5455 t_seri,q_seri,wo, & 5455 5456 cldfrarad, cldemirad, cldtaurad, & 5456 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, & 5457 flag_aerosol, & 5458 flag_aerosol_strat, flag_aer_feedback, & 5457 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, flag_volc_surfstrat, & 5458 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 5459 5459 tau_aero, piz_aero, cg_aero, & 5460 5460 tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, & … … 5541 5541 t_seri,q_seri,wo, & 5542 5542 cldfrarad, cldemirad, cldtaurad, & 5543 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, & 5544 flag_aerosol, & 5545 flag_aerosol_strat, flag_aer_feedback, & 5543 ok_ade.OR.flag_aerosol_strat.GT.0, ok_aie, ok_volcan, flag_volc_surfstrat, & 5544 flag_aerosol, flag_aerosol_strat, flag_aer_feedback, & 5546 5545 tau_aero, piz_aero, cg_aero, & 5547 5546 tau_aero_sw_rrtm, piz_aero_sw_rrtm, cg_aero_sw_rrtm, &
Note: See TracChangeset
for help on using the changeset viewer.