Changeset 1216 for LMDZ4/branches
- Timestamp:
- Jul 28, 2009, 10:05:59 AM (15 years ago)
- Location:
- LMDZ4/branches/LMDZ4-dev/libf/phylmd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/phylmd/readaerosol_interp.F90
r1183 r1216 1 1 ! $Id$ 2 2 ! 3 SUBROUTINE readaerosol_interp(id_aero, r_day, first, pplay, paprs, mass_out, pi_mass_out)3 SUBROUTINE readaerosol_interp(id_aero, r_day, first, pplay, paprs, t_seri, mass_out, pi_mass_out) 4 4 ! 5 5 ! This routine will return the mass concentration at actual day(mass_out) and … … 36 36 REAL, DIMENSION(klon,klev), INTENT(IN) :: pplay ! pression at model mid-layers 37 37 REAL, DIMENSION(klon,klev+1),INTENT(IN):: paprs ! pression between model layers 38 REAL, DIMENSION(klon,klev), INTENT(IN) :: t_seri ! air temperature 38 39 ! 39 40 ! Output: … … 51 52 !$OMP THREADPRIVATE(klev_src) 52 53 54 REAL :: zrho ! Air density [kg/m3] 55 REAL :: volm ! Volyme de melange [kg/kg] 53 56 REAL, DIMENSION(klon) :: psurf_day, pi_psurf_day 54 57 REAL, DIMENSION(klon) :: load_src, pi_load_src ! Mass load at source grid … … 149 152 150 153 IF (debug) THEN 154 CALL writefield_phy('var_year_jan',var_year(:,:,1,id_aero),klev_src) 155 CALL writefield_phy('var_year_dec',var_year(:,:,12,id_aero),klev_src) 151 156 CALL writefield_phy('psurf_src',psurf_year(:,:,id_aero),1) 152 157 CALL writefield_phy('pi_psurf_src',pi_psurf_year(:,:,id_aero),1) … … 300 305 DO k= 1, klev 301 306 DO i = 1, klon 302 load_tgt(i) = load_tgt(i) + 1/RG * var_day(i,k,id_aero)*delp(i,k) 307 zrho = pplay(i,k)/t_seri(i,k)/RD ! [kg/m3] 308 volm = var_day(i,k,id_aero)*1.E-9/zrho ! [kg/kg] 309 load_tgt(i) = load_tgt(i) + 1/RG * volm *delp(i,k) 303 310 END DO 304 311 END DO … … 315 322 DO k= 1, klev 316 323 DO i = 1, klon 317 load_tgt_test(i) = load_tgt_test(i) + 1/RG * var_day(i,k,id_aero)*delp(i,k) 324 zrho = pplay(i,k)/t_seri(i,k)/RD ! [kg/m3] 325 volm = var_day(i,k,id_aero)*1.E-9/zrho ! [kg/kg] 326 load_tgt_test(i) = load_tgt_test(i) + 1/RG * volm*delp(i,k) 318 327 END DO 319 328 END DO … … 353 362 DO k = 1, klev 354 363 DO i = 1, klon 355 load_tgt(i) = load_tgt(i) + 1/RG * pi_var_day(i,k,id_aero)*delp(i,k) 364 zrho = pplay(i,k)/t_seri(i,k)/RD ! [kg/m3] 365 volm = pi_var_day(i,k,id_aero)*1.E-9/zrho ! [kg/kg] 366 load_tgt(i) = load_tgt(i) + 1/RG * volm * delp(i,k) 356 367 END DO 357 368 END DO … … 367 378 DO k = 1, klev 368 379 DO i = 1, klon 369 load_tgt_test(i) = load_tgt_test(i) + 1/RG * pi_var_day(i,k,id_aero)*delp(i,k) 380 zrho = pplay(i,k)/t_seri(i,k)/RD ! [kg/m3] 381 volm = pi_var_day(i,k,id_aero)*1.E-9/zrho ! [kg/kg] 382 load_tgt_test(i) = load_tgt_test(i) + 1/RG * volm * delp(i,k) 370 383 END DO 371 384 END DO -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/readaerosol_optic.F90
r1183 r1216 73 73 flag_aerosol .EQ. 6 ) THEN 74 74 75 CALL readaerosol_interp(5, rjourvrai, debut, pplay, paprs, sulfate, sulfate_pi)75 CALL readaerosol_interp(5, rjourvrai, debut, pplay, paprs, t_seri, sulfate, sulfate_pi) 76 76 ELSE 77 77 sulfate(:,:) = 0. ; sulfate_pi(:,:) = 0. … … 83 83 84 84 ! Get bc aerosol distribution 85 CALL readaerosol_interp(3, rjourvrai, debut, pplay, paprs, bcsol, bcsol_pi )86 CALL readaerosol_interp(7, rjourvrai, debut, pplay, paprs, bcins, bcins_pi )85 CALL readaerosol_interp(3, rjourvrai, debut, pplay, paprs, t_seri, bcsol, bcsol_pi ) 86 CALL readaerosol_interp(7, rjourvrai, debut, pplay, paprs, t_seri, bcins, bcins_pi ) 87 87 ELSE 88 88 bcsol(:,:) = 0. ; bcsol_pi(:,:) = 0. … … 95 95 flag_aerosol .EQ. 6 ) THEN 96 96 97 CALL readaerosol_interp(4, rjourvrai, debut, pplay, paprs, pomsol, pomsol_pi)98 CALL readaerosol_interp(8, rjourvrai, debut, pplay, paprs, pomins, pomins_pi)97 CALL readaerosol_interp(4, rjourvrai, debut, pplay, paprs, t_seri, pomsol, pomsol_pi) 98 CALL readaerosol_interp(8, rjourvrai, debut, pplay, paprs, t_seri, pomins, pomins_pi) 99 99 ELSE 100 100 pomsol(:,:) = 0. ; pomsol_pi(:,:) = 0. … … 107 107 flag_aerosol .EQ. 6 ) THEN 108 108 109 CALL readaerosol_interp(1 ,rjourvrai, debut, pplay, paprs, sscoarse,sscoarse_pi)110 CALL readaerosol_interp(2 ,rjourvrai, debut, pplay, paprs, ssacu, ssacu_pi)109 CALL readaerosol_interp(1 ,rjourvrai, debut, pplay, paprs, t_seri, sscoarse,sscoarse_pi) 110 CALL readaerosol_interp(2 ,rjourvrai, debut, pplay, paprs, t_seri, ssacu, ssacu_pi) 111 111 112 112 ELSE … … 119 119 flag_aerosol .EQ. 6 ) THEN 120 120 121 CALL readaerosol_interp(6 , rjourvrai, debut, pplay, paprs, cidust, cidust_pi)121 CALL readaerosol_interp(6 , rjourvrai, debut, pplay, paprs, t_seri, cidust, cidust_pi) 122 122 123 123 ELSE
Note: See TracChangeset
for help on using the changeset viewer.