Changeset 955 for LMDZ4/trunk
- Timestamp:
- Apr 30, 2008, 3:30:22 PM (17 years ago)
- Location:
- LMDZ4/trunk/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/conf_phys.F90
r900 r955 10 10 & iflag_cldcon, & 11 11 & iflag_ratqs,ratqsbas,ratqshaut, & 12 & ok_ade, ok_aie, &12 & ok_ade, ok_aie, aerosol_couple, & 13 13 & bl95_b0, bl95_b1,& 14 14 & iflag_thermals,nsplit_thermals, & … … 51 51 integer :: iflag_radia 52 52 logical :: ok_journe, ok_mensuel, ok_instan, ok_hf 53 LOGICAL :: ok_ade, ok_aie 53 LOGICAL :: ok_ade, ok_aie, aerosol_couple 54 54 REAL :: bl95_b0, bl95_b1 55 55 real :: fact_cldcon, facttemps,ratqsbas,ratqshaut … … 60 60 logical,SAVE :: ok_veget_omp, ok_newmicro_omp 61 61 logical,SAVE :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp, ok_hf_omp 62 LOGICAL,SAVE :: ok_ade_omp, ok_aie_omp 62 LOGICAL,SAVE :: ok_ade_omp, ok_aie_omp, aerosol_couple_omp 63 63 REAL,SAVE :: bl95_b0_omp, bl95_b1_omp 64 64 REAL,SAVE :: freq_ISCCP_omp, ecrit_ISCCP_omp … … 184 184 ok_aie_omp = .false. 185 185 call getin('ok_aie', ok_aie_omp) 186 187 ! 188 !Config Key = aerosol_couple 189 !Config Desc = read aerosol in file or calcul by inca 190 !Config Def = .false. 191 !Config Help = Used in physiq.F 192 ! 193 aerosol_couple_omp = .false. 194 CALL getin('aerosol_couple',aerosol_couple_omp) 186 195 187 196 ! … … 968 977 ok_ade = ok_ade_omp 969 978 ok_aie = ok_aie_omp 979 aerosol_couple = aerosol_couple_omp 970 980 bl95_b0 = bl95_b0_omp 971 981 bl95_b1 = bl95_b1_omp … … 1057 1067 write(numout,*)' ok_ade = ',ok_ade 1058 1068 write(numout,*)' ok_aie = ',ok_aie 1069 write(numout,*)' aerosol_couple = ', aerosol_couple 1059 1070 write(numout,*)' bl95_b0 = ',bl95_b0 1060 1071 write(numout,*)' bl95_b1 = ',bl95_b1 -
LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90
r952 r955 170 170 !topswai, solswai : Aerosol indirect effect 171 171 REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:) 172 #ifdef INCA_AER 173 #ifdef CPP_COUPLE 172 #ifdef INCA 174 173 ! topswad_inca, solswad_inca : Aerosol direct effect 175 174 REAL,SAVE,ALLOCATABLE :: topswad_inca(:), solswad_inca(:) … … 184 183 REAL,SAVE,ALLOCATABLE :: cg_inca(:,:,:,:) 185 184 REAL,SAVE,ALLOCATABLE :: ccm(:,:,:) 186 #endif187 185 #endif 188 186 REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:) … … 292 290 ALLOCATE(topswad(klon), solswad(klon)) 293 291 ALLOCATE(topswai(klon), solswai(klon)) 294 #ifdef INCA_AER 295 #ifdef CPP_COUPLE 292 #ifdef INCA 296 293 ALLOCATE(topswad_inca(klon), solswad_inca(klon)) 297 294 ALLOCATE(topswad0_inca(klon), solswad0_inca(klon)) … … 303 300 ALLOCATE(cg_inca(klon,klev,9,2)) 304 301 ALLOCATE(ccm(klon,klev,2)) 305 #endif306 302 #endif 307 303 ALLOCATE(tau_ae(klon,klev,2), piz_ae(klon,klev,2)) … … 391 387 deallocate(topswad, solswad) 392 388 deallocate(topswai, solswai) 393 #ifdef INCA_AER 394 #ifdef CPP_COUPLE 389 #ifdef INCA 395 390 deallocate(topswad_inca, solswad_inca) 396 391 deallocate(topswad0_inca, solswad0_inca) … … 403 398 deallocate(ccm) 404 399 #endif 405 #endif406 400 deallocate(tau_ae, piz_ae) 407 401 deallocate(cg_ae) -
LMDZ4/trunk/libf/phylmd/physiq.F
r953 r955 1074 1074 1075 1075 ! Aerosol optical properties 1076 #ifdef INCA_AER 1077 #ifdef CPP_COUPLE 1076 #ifdef INCA 1078 1077 ! Aerosol optical properties by INCA model 1079 1078 CHARACTER*4 :: rfname(9) 1080 1081 #endif1082 1079 #endif 1083 1080 REAL aerindex(klon) ! POLDER aerosol index … … 1089 1086 SAVE ok_ade, ok_aie, bl95_b0, bl95_b1 1090 1087 c$OMP THREADPRIVATE(ok_ade, ok_aie, bl95_b0, bl95_b1) 1088 LOGICAL, SAVE :: aerosol_couple ! true : calcul des aerosols dans INCA 1089 ! false : lecture des aerosol dans un fichier 1090 c$OMP THREADPRIVATE(aerosol_couple) 1091 1091 1092 1092 c … … 1209 1209 solswai(:)=0. 1210 1210 solswad(:)=0. 1211 #ifdef INCA_AER 1212 #ifdef CPP_COUPLE 1211 #ifdef INCA 1213 1212 tau_inca(:,:,:,:) = 0. 1214 1213 piz_inca(:,:,:,:) = 0. … … 1226 1225 solsw0_inca(:,:) = 0. 1227 1226 #endif 1228 #endif1229 1227 !rv 1230 1228 !ACo … … 1245 1243 . fact_cldcon, facttemps,ok_newmicro,iflag_radia, 1246 1244 . iflag_cldcon,iflag_ratqs,ratqsbas,ratqshaut, 1247 . ok_ade, ok_aie, 1245 . ok_ade, ok_aie, aerosol_couple, 1248 1246 . bl95_b0, bl95_b1, 1249 1247 . iflag_thermals,nsplit_thermals, … … 2580 2578 cjq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr) 2581 2579 IF (ok_ade.OR.ok_aie) THEN 2582 #if defined(CPP_COUPLE) && !defined(INCA_AER) 2583 ! Get sulfate aerosol distribution 2584 CALL readsulfate(rjourvrai, debut, sulfate) 2585 CALL readsulfate_preind(rjourvrai, debut, sulfate_pi) 2586 2587 ! Calculate aerosol optical properties (Olivier Boucher) 2588 CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl, 2589 . tau_ae, piz_ae, cg_ae, aerindex) 2590 #endif 2591 #if !defined(CPP_COUPLE) 2592 ! Get sulfate aerosol distribution 2593 CALL readsulfate(rjourvrai, debut, sulfate) 2594 CALL readsulfate_preind(rjourvrai, debut, sulfate_pi) 2595 2596 ! Calculate aerosol optical properties (Olivier Boucher) 2597 CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl, 2598 . tau_ae, piz_ae, cg_ae, aerindex) 2599 #endif 2600 cym 2580 IF ( .NOT. aerosol_couple ) THEN 2581 ! Get sulfate aerosol distribution 2582 CALL readsulfate(rjourvrai, debut, sulfate) 2583 CALL readsulfate_preind(rjourvrai, debut, sulfate_pi) 2584 2585 ! Calculate aerosol optical properties (Olivier Boucher) 2586 CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl, 2587 . tau_ae, piz_ae, cg_ae, aerindex) 2588 ENDIF 2601 2589 ELSE 2602 2590 tau_ae(:,:,:)=0.0 2603 2591 piz_ae(:,:,:)=0.0 2604 2592 cg_ae(:,:,:)=0.0 2605 cym2606 2593 ENDIF 2607 2594 … … 2768 2755 c parametres pour diagnostiques: 2769 2756 c 2757 IF (aerosol_couple ) THEN 2758 #ifdef INCA 2759 sulfate(:,:) = ccm(:,:,1) 2760 sulfate_pi(:,:) = ccm(:,:,2) 2761 #endif 2762 ENDIF 2763 2770 2764 if (ok_newmicro) then 2771 2765 CALL newmicro (paprs, pplay,ok_newmicro, … … 2774 2768 . flwp, fiwp, flwc, fiwc, 2775 2769 e ok_aie, 2776 #if defined(CPP_COUPLE) && defined(INCA_AER)2777 e ccm(:,:,1), ccm(:,:,2),2778 #else2779 2770 e sulfate, sulfate_pi, 2780 #endif2781 2771 e bl95_b0, bl95_b1, 2782 2772 s cldtaupi, re, fl) … … 2814 2804 endif 2815 2805 2816 2817 #if defined(CPP_COUPLE) && defined(INCA_AER)2818 CALL radlwsw_inca ! nouveau rayonnement (compatible Arpege-IFS)2819 e (kdlon,kflev,dist, rmu0, fract, 2806 IF (aerosol_couple) THEN 2807 #ifdef INCA_AER 2808 CALL radlwsw_inca 2809 e (kdlon,kflev,dist, rmu0, fract, solaire, 2820 2810 e paprs, pplay,zxtsol,albsol, albsollw, t_seri,q_seri, 2821 2811 e wo, … … 2827 2817 s lwdn0, lwdn, lwup0, lwup, 2828 2818 s swdn0, swdn, swup0, swup, 2829 e ok_ade, ok_aie, ! new for aerosol radiative effects2830 e tau_inca, piz_inca, cg_inca, ! ="=2831 s topswad_inca, solswad_inca, ! ="=2832 s topswad0_inca, solswad0_inca, ! ="=2819 e ok_ade, ok_aie, 2820 e tau_inca, piz_inca, cg_inca, 2821 s topswad_inca, solswad_inca, 2822 s topswad0_inca, solswad0_inca, 2833 2823 s topsw_inca, topsw0_inca, 2834 2824 s solsw_inca, solsw0_inca, 2835 e cldtaupi, ! ="= 2836 s topswai_inca, solswai_inca) ! ="= 2837 #else 2838 CALL radlwsw ! nouveau rayonnement (compatible Arpege-IFS) 2825 e cldtaupi, 2826 s topswai_inca, solswai_inca) 2827 #endif 2828 ELSE 2829 CALL radlwsw ! nouveau rayonnement (compatible Arpege-IFS) 2839 2830 e (dist, rmu0, fract, 2840 2831 e paprs, pplay,zxtsol,albsol1, albsol2, t_seri,q_seri, … … 2852 2843 e cldtaupi, ! ="= 2853 2844 s topswai, solswai) ! ="= 2854 #endif 2845 ENDIF 2846 2855 2847 itaprad = 0 2856 2848 ENDIF … … 3088 3080 I upwd, 3089 3081 I dnwd, 3082 I aerosol_couple, 3090 3083 #ifdef INCA 3091 3084 I flxmass_w, 3092 #if defined(INCA_AER) && defined(CPP_COUPLE)3093 3085 I tau_inca, 3094 3086 I piz_inca, … … 3096 3088 I ccm, 3097 3089 I rfname, 3098 #endif3099 3090 #endif 3100 3091 O tr_seri) -
LMDZ4/trunk/libf/phylmd/phytrac.F
r928 r955 57 57 I upwd, 58 58 I dnwd, 59 I aerosol_couple, 59 60 #ifdef INCA 60 61 I flxmass_w, 61 #if defined(INCA_AER) && defined(CPP_COUPLE)62 62 I tau_inca, 63 63 I piz_inca, … … 65 65 I ccm, 66 66 I rfname, 67 #endif68 67 #endif 69 68 O tr_seri) … … 143 142 REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1) !--lessivage convection 144 143 REAL prfl(klon,klev+1), psfl(klon,klev+1) !--lessivage large-scale 145 144 LOGICAL aerosol_couple 146 145 #ifdef INCA 147 146 REAL flxmass_w(klon,klev) 148 147 CHARACTER(len=8) :: solsym(nqmax) 149 #if defined(INCA_AER) && defined(CPP_COUPLE)150 148 integer la 151 149 REAL :: tau_inca(klon,klev,9,2) … … 154 152 character*4 :: rfname(9) 155 153 REAL :: ccm(klon,klev,2) 156 #endif157 154 #endif 158 155 c integer iflag_con … … 521 518 522 519 #ifdef INCA_AER 523 CALL aerosolmain (tr_seri, 520 CALL aerosolmain (aerosol_couple, 521 $ tr_seri, 524 522 $ pdtphys, 525 523 $ pplay, … … 538 536 $ t_seri, ! for chimiaq 539 537 $ rh, 540 #ifdef CPP_COUPLE541 538 $ tau_inca, 542 539 $ piz_inca, … … 544 541 $ rfname, 545 542 $ ccm, 546 #endif547 543 $ lafin) 548 544 #endif
Note: See TracChangeset
for help on using the changeset viewer.