Changeset 2542 for LMDZ5/branches/testing/libf/phylmd/rrtm
- Timestamp:
- Jun 6, 2016, 4:04:57 PM (8 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 1 deleted
- 4 edited
- 3 copied
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 2489-2527,2529-2532,2534-2541
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/phylmd/rrtm/aeropt_lw_rrtm.F90
r2258 r2542 1 1 ! 2 2 ! aeropt_lw_rrtm.F90 2014-05-13 C. Kleinschmitt 3 ! 2016-05-03 O. Boucher 3 4 ! 5 ! This routine feeds aerosol LW properties to RRTM 6 ! we only consider absorption (not scattering) 4 7 5 SUBROUTINE AEROPT_LW_RRTM 8 SUBROUTINE AEROPT_LW_RRTM(aerosol_couple,paprs,tr_seri) 6 9 10 USE dimphy 11 USE aero_mod 12 USE infotrac_phy 7 13 USE phys_state_var_mod, ONLY : tau_aero_lw_rrtm 14 USE YOERAD, ONLY : NLW 8 15 9 16 IMPLICIT NONE 10 17 11 tau_aero_lw_rrtm(:,:,:,:) = 1.e-15 18 INCLUDE "YOMCST.h" 19 INCLUDE "clesphys.h" 20 ! 21 ! Input arguments: 22 ! 23 LOGICAL, INTENT(IN) :: aerosol_couple 24 REAL, DIMENSION(klon,klev+1), INTENT(in) :: paprs 25 REAL, DIMENSION(klon,klev,nbtr), INTENT(in) :: tr_seri 26 ! 27 REAL, DIMENSION(klon,klev) :: zdp, mass_temp 28 ! 29 ! 30 INTEGER inu, i, k 31 INTEGER :: id_ASBCM, id_ASPOMM, id_ASSO4M, id_ASMSAM, id_CSSO4M, id_CSMSAM, id_SSSSM 32 INTEGER :: id_CSSSM, id_ASSSM, id_CIDUSTM, id_AIBCM, id_AIPOMM, id_ASNO3M, id_CSNO3M, id_CINO3M 12 33 34 ! 35 !--absorption coefficient for CIDUST 36 REAL:: alpha_abs_CIDUST_16bands(nbands_lw_rrtm) !--unit m2/g 37 DATA alpha_abs_CIDUST_16bands / & 38 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, & 39 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 / 40 ! 41 IF (NLW.NE.nbands_lw_rrtm) THEN 42 print *,'Erreur NLW doit etre egal a 16 pour cette routine' 43 stop 44 ENDIF 45 ! 46 IF (aerosol_couple) THEN 47 ! 48 do i=1,nbtr 49 select case(trim(solsym(i))) 50 case ("ASBCM") 51 id_ASBCM = i 52 case ("ASPOMM") 53 id_ASPOMM = i 54 case ("ASSO4M") 55 id_ASSO4M = i 56 case ("ASMSAM") 57 id_ASMSAM = i 58 case ("CSSO4M") 59 id_CSSO4M = i 60 case ("CSMSAM") 61 id_CSMSAM = i 62 case ("SSSSM") 63 id_SSSSM = i 64 case ("CSSSM") 65 id_CSSSM = i 66 case ("ASSSM") 67 id_ASSSM = i 68 case ("CIDUSTM") 69 id_CIDUSTM = i 70 case ("AIBCM") 71 id_AIBCM = i 72 case ("AIPOMM") 73 id_AIPOMM = i 74 case ("ASNO3M") 75 id_ASNO3M = i 76 case ("CSNO3M") 77 id_CSNO3M = i 78 case ("CINO3M") 79 id_CINO3M = i 80 end select 81 enddo 82 ! 83 DO k=1, klev 84 zdp(:,k) = (paprs(:,k)-paprs(:,k+1))/RG !--kg/m2 85 ENDDO 86 ! 87 !--for now only consider dust 88 mass_temp(:,:)=tr_seri(:,:,id_CIDUSTM) !--kg/kg 89 ! 90 DO inu=1,NLW 91 ! 92 !--total aerosol 93 tau_aero_lw_rrtm(:,:,2,inu) = mass_temp(:,:)*zdp(:,:)*1000.*alpha_abs_CIDUST_16bands(inu) 94 !--no aerosol at all 95 tau_aero_lw_rrtm(:,:,1,inu) = 0.0 96 ! 97 ENDDO 98 ! 99 !--avoid very small values 100 tau_aero_lw_rrtm = MAX(tau_aero_lw_rrtm,1.e-15) 101 ! 102 ELSE !--not aerosol_couple 103 ! 104 !--no LW effects if not coupled to INCA 105 tau_aero_lw_rrtm = 1.e-15 106 ENDIF 107 ! 13 108 END SUBROUTINE AEROPT_LW_RRTM -
LMDZ5/branches/testing/libf/phylmd/rrtm/readaerosol_optic_rrtm.F90
r2408 r2542 19 19 load_tmp1,load_tmp2,load_tmp3,load_tmp4,load_tmp5,load_tmp6,load_tmp7 20 20 21 USE infotrac 21 USE infotrac_phy 22 22 23 23 IMPLICIT NONE -
LMDZ5/branches/testing/libf/phylmd/rrtm/recmwf_aero.F90
r2160 r2542 161 161 IMPLICIT NONE 162 162 INCLUDE "clesphys.h" 163 164 163 165 164 INTEGER(KIND=JPIM),INTENT(IN) :: KPROMA … … 306 305 ! not ok_ade and not ok_aie = 1 to proceed 307 306 ! therefore the cases have the following corresponding switches 308 ! 1 = not ok_ade or not ok_aie309 ! 2 = ok_aie310 ! 3 = ok_ade 307 ! 1 = not ok_ade and not ok_aie OR not ok_ade and ok_aie and swaero_diag OR ok_ade and not ok_aie and swaero_diag 308 ! 2 = not ok_ade and ok_aie OR ok_aie and ok_ade and swaero_diag 309 ! 3 = ok_ade and not ok_aie OR ok_aie and ok_ade and swaero_diag 311 310 ! 4 = ok_ade and ok_aie 312 311 ! 5 = no aerosol feedback wanted or no aerosol at all … … 445 444 IF (flag_aerosol .GT. 0 .OR. flag_aerosol_strat) THEN 446 445 447 IF ( .not. ok_ade .or. .not. ok_aie ) THEN 446 !--Case 1 447 IF ( ( .not. ok_ade .AND. .not. ok_aie ) .OR. & 448 & ( .not. ok_ade .AND. ok_aie .AND. swaero_diag ) .OR. & 449 & ( ok_ade .AND. .not. ok_aie .AND. swaero_diag ) ) THEN 448 450 449 451 ! natural aerosols for direct and indirect effect … … 483 485 ENDIF 484 486 485 IF (ok_aie) THEN 487 !--Case 2 488 IF ( ( .not. ok_ade .AND. ok_aie ) .OR. & 489 & ( ok_ade .AND. ok_aie .AND. swaero_diag ) ) THEN 486 490 487 491 ! natural aerosols for direct indirect effect … … 521 525 ENDIF ! ok_aie 522 526 523 IF (ok_ade) THEN 527 !--Case 3 528 IF ( ( ok_ade .AND. .not. ok_aie ) .OR. & 529 & ( ok_ade .AND. ok_aie .AND. swaero_diag ) ) THEN 524 530 525 531 ! direct effect of total aerosol activated … … 559 565 ENDIF !-end ok_ade 560 566 567 !--Case 4 561 568 IF (ok_ade .and. ok_aie) THEN 562 569
Note: See TracChangeset
for help on using the changeset viewer.