Changeset 3318 for LMDZ6/branches/IPSLCM6.0.15/libf
- Timestamp:
- Apr 16, 2018, 6:30:59 PM (7 years ago)
- Location:
- LMDZ6/branches/IPSLCM6.0.15/libf/phylmd
- Files:
-
- 2 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/conf_phys_m.F90
r3137 r3318 414 414 ! - flag_aerosol=5 => dust only 415 415 ! - flag_aerosol=6 => all aerosol 416 ! - flag_aerosol=7 => natural aerosol + MACv2SP 416 417 417 418 flag_aerosol_omp = 0 … … 2448 2449 2449 2450 ! Flag_aerosol cannot be to zero if we are in coupled mode for aerosol 2450 IF (aerosol_couple .AND. flag_aerosol . eq. 0 ) THEN2451 IF (aerosol_couple .AND. flag_aerosol .EQ. 0 ) THEN 2451 2452 CALL abort_physic('conf_phys', 'flag_aerosol cannot be to zero if aerosol_couple=y ', 1) 2452 2453 ENDIF 2453 2454 2454 2455 ! flag_aerosol need to be different to zero if ok_cdnc is activated 2455 IF (ok_cdnc .AND. flag_aerosol . eq. 0) THEN2456 IF (ok_cdnc .AND. flag_aerosol .EQ. 0) THEN 2456 2457 CALL abort_physic('conf_phys', 'flag_aerosol cannot be to zero if ok_cdnc is activated ', 1) 2457 2458 ENDIF … … 2460 2461 IF (ok_aie .AND. .NOT. ok_cdnc) THEN 2461 2462 CALL abort_physic('conf_phys', 'ok_cdnc must be set to y if ok_aie is activated',1) 2463 ENDIF 2464 2465 ! flag_aerosol=7 => MACv2SP climatology 2466 IF (flag_aerosol.EQ.7.AND. iflag_rrtm.NE.1) THEN 2467 CALL abort_physic('conf_phys', 'flag_aerosol=7 (MACv2SP) can only be activated with RRTM',1) 2468 ENDIF 2469 IF (flag_aerosol.EQ.7.AND. NSW.NE.6) THEN 2470 CALL abort_physic('conf_phys', 'flag_aerosol=7 (MACv2SP) can only be activated with NSW=6',1) 2462 2471 ENDIF 2463 2472 -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/newmicro.F90
r3283 r3318 3 3 4 4 5 SUBROUTINE newmicro( ok_cdnc, bl95_b0, bl95_b1, paprs, pplay, t, pqlwp, pclc, &5 SUBROUTINE newmicro(flag_aerosol, ok_cdnc, bl95_b0, bl95_b1, paprs, pplay, t, pqlwp, pclc, & 6 6 pcltau, pclemi, pch, pcl, pcm, pct, pctlwp, xflwp, xfiwp, xflwc, xfiwc, & 7 7 mass_solu_aero, mass_solu_aero_pi, pcldtaupi, re, fl, reliq, reice, & … … 10 10 USE dimphy 11 11 USE phys_local_var_mod, ONLY: scdnc, cldncl, reffclwtop, lcc, reffclws, & 12 reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra, zfice 12 reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra, & 13 zfice, dNovrN 13 14 USE phys_state_var_mod, ONLY: rnebcon, clwcon 14 15 USE icefrac_lsc_mod ! computes ice fraction (JBM 3/14) … … 142 143 ! within the grid cell) 143 144 145 INTEGER flag_aerosol 144 146 LOGICAL ok_cdnc 145 147 REAL bl95_b0, bl95_b1 ! Parameter in B&L 95-Formula … … 257 259 ! to be within [20, 1000 cm^3] 258 260 259 ! --present-day case260 cdnc(i, k) = 10.**(bl95_b0+bl95_b1*log(max(mass_solu_aero(i,k), &261 1.E-4))/log(10.))*1.E6 !-m-3262 cdnc(i, k) = min(cdnc_max_m3, max(cdnc_min_m3,cdnc(i,k)))263 261 264 262 ! --pre-industrial case … … 266 264 1.E-4))/log(10.))*1.E6 !-m-3 267 265 cdnc_pi(i, k) = min(cdnc_max_m3, max(cdnc_min_m3,cdnc_pi(i,k))) 266 267 ! --present-day case 268 ! --flag_aerosol=7 => MACv2SP climatology 269 ! in this case there is an enhancement factor 270 IF (flag_aerosol .EQ. 7) THEN 271 cdnc(i, k) = cdnc_pi(i,k)*dNovrN(i) 272 ELSE 273 !--standard case, present day 274 cdnc(i, k) = 10.**(bl95_b0+bl95_b1*log(max(mass_solu_aero(i,k), & 275 1.E-4))/log(10.))*1.E6 !-m-3 276 cdnc(i, k) = min(cdnc_max_m3, max(cdnc_min_m3,cdnc(i,k))) 277 END IF 278 279 268 280 269 281 ! --present-day case -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/phys_local_var_mod.F90
r3250 r3318 151 151 REAL, SAVE, ALLOCATABLE :: scdnc(:,:) 152 152 !$OMP THREADPRIVATE(scdnc) 153 REAL, SAVE, ALLOCATABLE :: dNovrN(:) 154 !$OMP THREADPRIVATE(dNovrN) 153 155 REAL, SAVE, ALLOCATABLE :: cldncl(:) 154 156 !$OMP THREADPRIVATE(cldncl) … … 615 617 ALLOCATE(tau3d_aero(klon,klev,nwave,naero_tot)) 616 618 ALLOCATE(scdnc(klon, klev)) 619 ALLOCATE(dNovrN(klon)) 617 620 ALLOCATE(cldncl(klon)) 618 621 ALLOCATE(reffclwtop(klon)) … … 909 912 DEALLOCATE(tau3d_aero) 910 913 DEALLOCATE(scdnc) 914 DEALLOCATE(dNovrN) 911 915 DEALLOCATE(cldncl) 912 916 DEALLOCATE(reffclwtop) -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/physiq_mod.F90
r3301 r3318 3564 3564 tausum_aero, drytausum_aero, tau3d_aero) 3565 3565 #endif 3566 3567 IF (flag_aerosol .EQ. 7) THEN 3568 CALL MACv2SP(pphis,pplay,paprs,longitude_deg,latitude_deg, & 3569 tau_aero_sw_rrtm,piz_aero_sw_rrtm,cg_aero_sw_rrtm) 3570 ENDIF 3571 3566 3572 ! 3567 3573 ELSE IF (NSW.EQ.2) THEN … … 3688 3694 #endif 3689 3695 ENDIF 3690 CALL newmicro ( ok_cdnc, bl95_b0, bl95_b1, &3696 CALL newmicro (flag_aerosol, ok_cdnc, bl95_b0, bl95_b1, & 3691 3697 paprs, pplay, t_seri, cldliq, cldfra, & 3692 3698 cldtau, cldemi, cldh, cldl, cldm, cldt, cldq, & -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/rrtm/aeropt_5wv_rrtm.F90
r2951 r3318 381 381 ALLOCATE (aerosol_name(nb_aer)) 382 382 aerosol_name(1) = id_CIDUSTM_phy 383 ELSEIF (flag_aerosol .EQ. 6 ) THEN383 ELSEIF (flag_aerosol .EQ. 6 .OR. flag_aerosol .EQ. 7 ) THEN 384 384 nb_aer = 13 385 385 ALLOCATE (aerosol_name(nb_aer)) -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/rrtm/aeropt_6bands_rrtm.F90
r2842 r3318 507 507 ALLOCATE (aerosol_name(nb_aer)) 508 508 aerosol_name(1) = id_CIDUSTM_phy 509 ELSEIF (flag_aerosol .EQ. 6 ) THEN509 ELSEIF (flag_aerosol .EQ. 6 .OR. flag_aerosol .EQ. 7 ) THEN 510 510 nb_aer = 13 511 511 ALLOCATE (aerosol_name(nb_aer)) -
LMDZ6/branches/IPSLCM6.0.15/libf/phylmd/rrtm/aeropt_lw_rrtm.F90
r3101 r3318 46 46 IF (ok_alw) THEN !--aerosol LW effects 47 47 ! 48 IF (flag_aerosol.EQ.5.OR.flag_aerosol.EQ.6 ) THEN !-Dust48 IF (flag_aerosol.EQ.5.OR.flag_aerosol.EQ.6.OR.flag_aerosol.EQ.7) THEN !-Dust 49 49 ! 50 50 zdh(:,:)=pdel(:,:)/(RG*zrho(:,:)) ! m
Note: See TracChangeset
for help on using the changeset viewer.