- Timestamp:
- Jun 10, 2013, 3:40:50 PM (11 years ago)
- Location:
- LMDZ5/trunk
- Files:
-
- 1 added
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/DefLists/config.def_LMDZ5_AGCM
r1732 r1764 83 83 ### If aerosol offline : type of coupled aerosol =0 (pas d aerosol) =1 (sulphate only default) =2 => bc only =3 => pom only =4 => seasalt only =5 => dust only =6 => all aerosol 84 84 flag_aerosol=6 85 # Use stratospheric aerosols (default no) 86 flag_aerosol_strat=n 85 87 ### bl95_b0 = Parameter in CDNC-maer link (Boucher&Lohmann 1995) 86 88 bl95_b0=1.7 -
LMDZ5/trunk/libf/phylmd/aero_mod.F90
r1279 r1764 5 5 6 6 ! Total number of aerosols 7 INTEGER, PARAMETER :: naero_tot = 10 7 ! INTEGER, PARAMETER :: naero_tot = 10 8 !--STRAT AER 9 INTEGER, PARAMETER :: naero_tot = 11 8 10 9 11 ! Identification number used in aeropt_2bands and aeropt_5wv … … 19 21 INTEGER, PARAMETER :: id_AIBCM = 9 20 22 INTEGER, PARAMETER :: id_AIPOMM = 10 23 !--STRAT AER 24 INTEGER, PARAMETER :: id_strat = 11 25 21 26 22 27 ! Total number of aerosols actually used in LMDZ … … 31 36 ! 9 = AIBCM 32 37 !10 = AIPOMM 33 INTEGER, PARAMETER :: naero_spc = 10 38 !--STRAT AER 39 !11 = aerosols stratos 40 ! INTEGER, PARAMETER :: naero_spc = 10 41 INTEGER, PARAMETER :: naero_spc = 11 34 42 35 43 ! Corresponding names for the aerosols … … 44 52 "CIDUSTM", & 45 53 "AIBCM ", & 46 "AIPOMM " /) 54 ! "AIPOMM " /) 55 "AIPOMM ", & 56 "STRAT " /) 47 57 48 58 … … 65 75 INTEGER, parameter :: nbands = 2 66 76 67 68 77 END MODULE aero_mod -
LMDZ5/trunk/libf/phylmd/conf_phys_m.F90
r1753 r1764 18 18 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 19 19 ok_ade, ok_aie, ok_cdnc, aerosol_couple, & 20 flag_aerosol, new_aod, &20 flag_aerosol, flag_aerosol_strat, new_aod, & 21 21 bl95_b0, bl95_b1,& 22 22 read_climoz, & … … 60 60 ! ok_ade, ok_aie: apply or not aerosol direct and indirect effects 61 61 ! ok_cdnc, ok cloud droplet number concentration 62 ! flag_aerosol_strat : flag pour les aerosols stratos 62 63 ! bl95_b*: parameters in the formula to link CDNC to aerosol mass conc 63 64 ! … … 72 73 LOGICAL :: ok_ade, ok_aie, ok_cdnc, aerosol_couple 73 74 INTEGER :: flag_aerosol 75 LOGICAL :: flag_aerosol_strat 74 76 LOGICAL :: new_aod 75 77 REAL :: bl95_b0, bl95_b1 … … 87 89 LOGICAL,SAVE :: ok_ade_omp, ok_aie_omp, ok_cdnc_omp, aerosol_couple_omp 88 90 INTEGER, SAVE :: flag_aerosol_omp 91 INTEGER, SAVE :: flag_aerosol_strat_omp 89 92 LOGICAL, SAVE :: new_aod_omp 90 93 REAL,SAVE :: bl95_b0_omp, bl95_b1_omp … … 307 310 flag_aerosol_omp = 0 308 311 CALL getin('flag_aerosol',flag_aerosol_omp) 312 ! 313 !Config Key = flag_aerosol_strat 314 !Config Desc = use stratospheric aerosols T/F 315 !Config Def = false 316 !Config Help = Used in physiq.F 317 ! 318 ! 319 flag_aerosol_strat_omp = .false. 320 CALL getin('flag_aerosol_strat',flag_aerosol_strat_omp) 309 321 310 322 ! Temporary variable for testing purpose!! … … 1717 1729 aerosol_couple = aerosol_couple_omp 1718 1730 flag_aerosol=flag_aerosol_omp 1731 flag_aerosol_strat=flag_aerosol_strat_omp 1719 1732 new_aod=new_aod_omp 1720 1733 aer_type = aer_type_omp … … 1901 1914 write(lunout,*)' aerosol_couple = ', aerosol_couple 1902 1915 write(lunout,*)' flag_aerosol = ', flag_aerosol 1916 write(lunout,*)' flag_aerosol_strat = ', flag_aerosol_strat 1903 1917 write(lunout,*)' new_aod = ', new_aod 1904 1918 write(lunout,*)' aer_type = ',aer_type -
LMDZ5/trunk/libf/phylmd/etat0_netcdf.F90
r1727 r1764 101 101 LOGICAL :: ok_LES, ok_ade, ok_aie, ok_cdnc, aerosol_couple, new_aod, callstats 102 102 INTEGER :: iflag_radia, flag_aerosol 103 LOGICAL :: flag_aerosol_strat 103 104 REAL :: bl95_b0, bl95_b1, fact_cldcon, facttemps, ratqsbas, ratqshaut 104 105 REAL :: tau_ratqs … … 137 138 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 138 139 ok_ade, ok_aie, ok_cdnc, aerosol_couple, & 139 flag_aerosol, new_aod,&140 flag_aerosol, flag_aerosol_strat, new_aod, & 140 141 bl95_b0, bl95_b1, & 141 142 read_climoz, & -
LMDZ5/trunk/libf/phylmd/phys_output_mod.F90
r1761 r1764 410 410 type(ctrl_out),save :: o_solswai = ctrl_out((/ 2, 10, 10, 10, 10, 10 /),'solswai') 411 411 412 type(ctrl_out),save,dimension(10) :: o_tausumaero = (/ ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASBCM'), & 412 ! type(ctrl_out),save,dimension(10) :: o_tausumaero = (/ ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASBCM'), & 413 type(ctrl_out),save,dimension(11) :: o_tausumaero = & 414 (/ ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASBCM'), & 413 415 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASPOMM'), & 414 416 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_ASSO4M'), & … … 419 421 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_CIDUSTM'), & 420 422 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_AIBCM'), & 421 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_AIPOMM') /) 423 ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'OD550_AIPOMM'), & 424 ctrl_out((/ 2, 2, 10, 10, 10, 10 /),'OD550_STRAT') /) 422 425 423 426 type(ctrl_out),save :: o_od550aer = ctrl_out((/ 2, 6, 10, 10, 10, 10 /),'od550aer') … … 579 582 type(ctrl_out),save :: o_e_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'e_th') 580 583 type(ctrl_out),save :: o_w_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'w_th') 584 type(ctrl_out),save :: o_lambda_th = ctrl_out((/ 10, 10, 10, 10, 10, 10 /),'lambda_th') 581 585 type(ctrl_out),save :: o_ftime_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'ftime_th') 582 586 type(ctrl_out),save :: o_q_th = ctrl_out((/ 4, 10, 10, 10, 10, 10 /),'q_th') … … 663 667 ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, read_climoz, & 664 668 phys_out_filestations, & 665 new_aod, aerosol_couple )669 new_aod, aerosol_couple, flag_aerosol_strat) 666 670 667 671 USE iophy … … 693 697 integer :: nbteta, nlevSTD, radpas 694 698 logical :: ok_mensuel, ok_journe, ok_hf, ok_instan 695 logical :: ok_LES,ok_ade,ok_aie 699 logical :: ok_LES,ok_ade,ok_aie,flag_aerosol_strat 696 700 logical :: new_aod, aerosol_couple 697 701 integer, intent(in):: read_climoz ! read ozone climatology … … 1165 1169 CALL histdef2d(iff,clef_stations(iff), & 1166 1170 o_loaddust%flag,o_loaddust%name,"Column Load of Dust ","kg/m2") 1167 1171 !--STRAT AER 1172 ENDIF 1173 IF (ok_ade.OR.ok_aie.OR.flag_aerosol_strat) THEN 1168 1174 DO naero = 1, naero_spc 1169 1175 CALL histdef2d(iff,clef_stations(iff), & … … 1650 1656 CALL histdef3d(iff,clef_stations(iff),o_e_th%flag,o_e_th%name,"Thermal plume entrainment","K/s") 1651 1657 CALL histdef3d(iff,clef_stations(iff),o_w_th%flag,o_w_th%name,"Thermal plume vertical velocity","m/s") 1658 CALL histdef3d(iff,clef_stations(iff), & 1659 o_lambda_th%flag,o_lambda_th%name,"Thermal plume vertical velocity","m/s") 1652 1660 CALL histdef2d(iff,clef_stations(iff), & 1653 1661 o_ftime_th%flag,o_ftime_th%name,"Fraction of time Shallow convection occurs"," ") -
LMDZ5/trunk/libf/phylmd/phys_output_write.h
r1761 r1764 1305 1305 ENDIF 1306 1306 1307 c--STRAT AER 1308 endif 1309 IF (ok_ade.OR.ok_aie.OR.flag_aerosol_strat) THEN 1307 1310 DO naero = 1, naero_spc 1308 1311 IF (o_tausumaero(naero)%flag(iff)<=lev_files(iff)) THEN -
LMDZ5/trunk/libf/phylmd/physiq.F
r1761 r1764 1120 1120 LOGICAL, SAVE :: new_aod 1121 1121 c$OMP THREADPRIVATE(new_aod) 1122 1122 c 1123 c--STRAT AEROSOL 1124 LOGICAL, SAVE :: flag_aerosol_strat 1125 c$OMP THREADPRIVATE(flag_aerosol_strat) 1126 cc-fin STRAT AEROSOL 1123 1127 c 1124 1128 c Declaration des constantes et des fonctions thermodynamiques … … 1270 1274 . iflag_cldcon,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, 1271 1275 . ok_ade, ok_aie, ok_cdnc, aerosol_couple, 1272 . flag_aerosol, new_aod,1276 . flag_aerosol, flag_aerosol_strat, new_aod, 1273 1277 . bl95_b0, bl95_b1, 1274 1278 c nv flags pour la convection et les poches froides … … 1595 1599 & ok_hf,ok_instan,ok_LES,ok_ade,ok_aie, 1596 1600 & read_climoz, phys_out_filestations, 1597 & new_aod, aerosol_couple 1598 & )1601 & new_aod, aerosol_couple, 1602 & flag_aerosol_strat ) 1599 1603 c$OMP END MASTER 1600 1604 c$OMP BARRIER … … 2972 2976 cg_aero(:,:,:,:) = 0. 2973 2977 ENDIF 2978 c 2979 c--STRAT AEROSOL 2980 c--updates tausum_aero,tau_aero,piz_aero,cg_aero 2981 IF (flag_aerosol_strat) THEN 2982 PRINT *,'appel a readaerosolstrat', mth_cur 2983 CALL readaerosolstrato(debut) 2984 ENDIF 2985 c--fin STRAT AEROSOL 2974 2986 2975 2987 cIM calcul nuages par le simulateur ISCCP … … 3359 3371 e t_seri,q_seri,wo, 3360 3372 e cldfrarad, cldemirad, cldtaurad, 3361 e ok_ade, ok_aie, flag_aerosol, 3373 e ok_ade.OR.flag_aerosol_strat, ok_aie, flag_aerosol, 3374 e flag_aerosol_strat, 3362 3375 e tau_aero, piz_aero, cg_aero, 3363 3376 e cldtaupirad,new_aod, … … 3401 3414 e t_seri,q_seri,wo, 3402 3415 e cldfra, cldemi, cldtau, 3403 e ok_ade, ok_aie, flag_aerosol, 3416 e ok_ade.OR.flag_aerosol_strat, ok_aie, flag_aerosol, 3417 e flag_aerosol_strat, 3404 3418 e tau_aero, piz_aero, cg_aero, 3405 3419 e cldtaupi,new_aod, -
LMDZ5/trunk/libf/phylmd/radlwsw_m.F90
r1687 r1764 11 11 cldfra, cldemi, cldtaupd,& 12 12 ok_ade, ok_aie, flag_aerosol,& 13 flag_aerosol_strat,& 13 14 tau_aero, piz_aero, cg_aero,& 14 15 cldtaupi, new_aod, & … … 57 58 ! ok_aie---input-L- apply the Aerosol Indirect Effect or not? 58 59 ! flag_aerosol-input-I- aerosol flag from 0 to 6 60 ! flag_aerosol_strat-input-I- use stratospheric aerosols flag (T/F) 59 61 ! tau_ae, piz_ae, cg_ae-input-R- aerosol optical properties (calculated in aeropt.F) 60 62 ! cldtaupi-input-R- epaisseur optique des nuages dans le visible … … 121 123 LOGICAL, INTENT(in) :: ok_ade, ok_aie ! switches whether to use aerosol direct (indirect) effects or not 122 124 INTEGER, INTENT(in) :: flag_aerosol ! takes value 0 (no aerosol) or 1 to 6 (aerosols) 125 LOGICAL, INTENT(in) :: flag_aerosol_strat ! use stratospheric aerosols 123 126 REAL, INTENT(in) :: cldfra(KLON,KLEV), cldemi(KLON,KLEV), cldtaupd(KLON,KLEV) 124 127 REAL, INTENT(in) :: tau_aero(KLON,KLEV,9,2) ! aerosol optical properties (see aeropt.F) … … 360 363 ztopswadaero,zsolswadaero,& 361 364 ztopswaiaero,zsolswaiaero,& 362 ok_ade, ok_aie , flag_aerosol)365 ok_ade, ok_aie) 363 366 364 367 ELSE ! new_aod=T … … 379 382 zsolsw_aero,zsolsw0_aero,& 380 383 ztopswcf_aero,zsolswcf_aero, & 381 ok_ade, ok_aie, flag_aerosol )384 ok_ade, ok_aie, flag_aerosol,flag_aerosol_strat) 382 385 ENDIF 383 386 -
LMDZ5/trunk/libf/phylmd/sw_aeroAR4.F90
r1667 r1764 18 18 PSOLSWAERO,PSOLSW0AERO,& 19 19 PTOPSWCFAERO,PSOLSWCFAERO,& 20 ok_ade, ok_aie, flag_aerosol )20 ok_ade, ok_aie, flag_aerosol, flag_aerosol_strat ) 21 21 22 22 USE dimphy … … 138 138 139 139 LOGICAL ok_ade, ok_aie ! use aerosol forcings or not? 140 LOGICAL flag_aerosol_strat ! use stratospehric aerosols 140 141 INTEGER flag_aerosol ! global flag for aerosol 0 (no aerosol) or 1-5 (aerosols) 141 142 REAL(KIND=8) tauaero(kdlon,kflev,9,2) ! aerosol optical properties … … 307 308 ENDIF ! swaero_diag .or. .not. AEROSOLFEEDBACK_ACTIVE 308 309 309 IF (flag_aerosol .GT. 0 ) THEN310 IF (flag_aerosol .GT. 0 .OR. flag_aerosol_strat) THEN 310 311 311 312 IF (ok_ade.and.swaero_diag .or. .not. ok_ade) THEN … … 498 499 ENDIF ! ok_aie 499 500 500 ENDIF !--if flag_aerosol GT 0 501 ENDIF !--if flag_aerosol GT 0 OR flag_aerosol_strat 501 502 502 503 itapsw = 0 … … 504 505 itapsw = itapsw + 1 505 506 506 IF ( AEROSOLFEEDBACK_ACTIVE .AND. flag_aerosol .GT. 0) THEN507 IF ( AEROSOLFEEDBACK_ACTIVE .AND. (flag_aerosol .GT. 0 .OR. flag_aerosol_strat) ) THEN 507 508 IF ( ok_ade .and. ok_aie ) THEN 508 509 ZFSUP(:,:) = ZFSUP_AERO(:,:,4)
Note: See TracChangeset
for help on using the changeset viewer.