Changeset 954
- Timestamp:
- Apr 30, 2008, 3:14:57 PM (17 years ago)
- Location:
- LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/conf_phys.F90
r899 r954 9 9 !IM& ratqsbas,ratqshaut,ip_ebil_phy, & 10 10 & ratqsbas,ratqshaut, & 11 & ok_ade, ok_aie, &11 & ok_ade, ok_aie, aerosol_couple, & 12 12 & bl95_b0, bl95_b1,& 13 13 & iflag_thermals,nsplit_thermals) … … 47 47 logical :: ok_veget, ok_newmicro 48 48 logical :: ok_journe, ok_mensuel, ok_instan, ok_hf 49 LOGICAL :: ok_ade, ok_aie 49 LOGICAL :: ok_ade, ok_aie, aerosol_couple 50 50 REAL :: bl95_b0, bl95_b1 51 51 real :: fact_cldcon, facttemps,ratqsbas,ratqshaut … … 55 55 logical,SAVE :: ok_veget_omp, ok_newmicro_omp 56 56 logical,SAVE :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp, ok_hf_omp 57 LOGICAL,SAVE :: ok_ade_omp, ok_aie_omp 57 LOGICAL,SAVE :: ok_ade_omp, ok_aie_omp, aerosol_couple_omp 58 58 character (len = 8),SAVE :: aer_type_omp 59 59 REAL,SAVE :: bl95_b0_omp, bl95_b1_omp … … 166 166 ok_aie_omp = .false. 167 167 call getin('ok_aie', ok_aie_omp) 168 169 170 ! 171 !Config Key = aerosol_couple 172 !Config Desc = read aerosol in file or calcul by inca 173 !Config Def = .false. 174 !Config Help = Used in physiq.F 175 ! 176 aerosol_couple_omp = .false. 177 CALL getin('aerosol_couple',aerosol_couple_omp) 168 178 169 179 ! … … 849 859 ok_ade = ok_ade_omp 850 860 ok_aie = ok_aie_omp 861 aerosol_couple=aerosol_couple_omp 851 862 aer_type = aer_type_omp 852 863 bl95_b0 = bl95_b0_omp … … 929 940 write(numout,*)' ok_ade = ',ok_ade 930 941 write(numout,*)' ok_aie = ',ok_aie 942 write(numout,*)' aerosol_couple = ', aerosol_couple 931 943 write(numout,*)' aer_type = ',aer_type 932 944 write(numout,*)' bl95_b0 = ',bl95_b0 -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/physiq.F
r943 r954 1 1 ! 2 2 ! $Header$ 3 ! 3 4 ! 4 5 c … … 1305 1306 c$OMP THREADPRIVATE(cg_ae) 1306 1307 1307 #ifdef INCA_AER 1308 #ifdef CPP_COUPLE 1308 #ifdef INCA 1309 1309 ! Aerosol optical properties by INCA model 1310 1310 REAL, SAVE, ALLOCATABLE :: tau_inca(:,:,:,:) … … 1319 1319 REAL,SAVE,ALLOCATABLE :: topsw_inca(:,:), solsw_inca(:,:) 1320 1320 REAL,SAVE,ALLOCATABLE :: topsw0_inca(:,:), solsw0_inca(:,:) 1321 #endif1322 1321 #endif 1323 1322 REAL,SAVE,ALLOCATABLE :: topswad(:), solswad(:) ! Aerosol direct effect. … … 1339 1338 SAVE ok_ade, ok_aie, bl95_b0, bl95_b1 1340 1339 c$OMP THREADPRIVATE(ok_ade, ok_aie, bl95_b0, bl95_b1) 1340 LOGICAL, SAVE :: aerosol_couple ! true : calcul des aerosols dans INCA 1341 ! false : lecture des aerosol dans un fichier 1342 c$OMP THREADPRIVATE(aerosol_couple) 1341 1343 1342 1344 c … … 1457 1459 allocate( topswad(klon), solswad(klon)) 1458 1460 allocate( topswai(klon), solswai(klon) ) 1459 #ifdef INCA_AER 1460 #ifdef CPP_COUPLE 1461 #ifdef INCA 1461 1462 allocate( topswad_inca(klon), solswad_inca(klon)) 1462 1463 allocate( topswad0_inca(klon), solswad0_inca(klon)) … … 1468 1469 allocate( cg_inca(klon,klev,9,2)) 1469 1470 allocate( ccm(klon,klev,2) ) 1470 #endif1471 1471 #endif 1472 1472 allocate( clwcon0(klon,klev),rnebcon0(klon,klev)) … … 1530 1530 solswai(:)=0. 1531 1531 solswad(:)=0. 1532 #ifdef INCA_AER 1533 #ifdef CPP_COUPLE 1532 #ifdef INCA 1534 1533 tau_inca(:,:,:,:) = 0. 1535 1534 piz_inca(:,:,:,:) = 0. … … 1547 1546 solsw0_inca(:,:) = 0. 1548 1547 #endif 1549 #endif1550 1548 !rv 1551 1549 !ACo … … 1570 1568 cIM . iflag_cldcon,ratqsbas,ratqshaut, if_ebil, 1571 1569 . iflag_cldcon,ratqsbas,ratqshaut, 1572 . ok_ade, ok_aie, 1570 . ok_ade, ok_aie,aerosol_couple, 1573 1571 . bl95_b0, bl95_b1, 1574 1572 . iflag_thermals,nsplit_thermals) … … 2578 2576 cjq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr) 2579 2577 IF (ok_ade.OR.ok_aie) THEN 2580 #if defined(CPP_COUPLE) && !defined(INCA_AER) 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 2589 #if !defined(CPP_COUPLE) 2590 ! Get sulfate aerosol distribution 2591 CALL readsulfate(rjourvrai, debut, sulfate) 2592 CALL readsulfate_preind(rjourvrai, debut, sulfate_pi) 2593 2594 ! Calculate aerosol optical properties (Olivier Boucher) 2595 CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl, 2596 . tau_ae, piz_ae, cg_ae, aerindex) 2597 #endif 2578 IF ( .NOT. aerosol_couple ) THEN 2579 ! Get sulfate aerosol distribution 2580 CALL readsulfate(rjourvrai, debut, sulfate) 2581 CALL readsulfate_preind(rjourvrai, debut, sulfate_pi) 2582 2583 ! Calculate aerosol optical properties (Olivier Boucher) 2584 CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl, 2585 . tau_ae, piz_ae, cg_ae, aerindex) 2598 2586 cym 2587 ENDIF 2588 2599 2589 ELSE 2600 2590 tau_ae(:,:,:)=0.0 … … 2773 2763 c parametres pour diagnostiques: 2774 2764 c 2765 2766 IF (aerosol_couple ) THEN 2767 #ifdef INCA_AER 2768 sulfate(:,:) = ccm(:,:,1) 2769 sulfate_pi(:,:) = ccm(:,:,2) 2770 #endif 2771 ENDIF 2772 2775 2773 if (ok_newmicro) then 2776 2774 CALL newmicro (paprs, pplay,ok_newmicro, … … 2779 2777 . flwp, fiwp, flwc, fiwc, 2780 2778 e ok_aie, 2781 #if defined(CPP_COUPLE) && defined(INCA_AER)2782 e ccm(:,:,1), ccm(:,:,2),2783 #else2784 2779 e sulfate, sulfate_pi, 2785 #endif2786 2780 e bl95_b0, bl95_b1, 2787 2781 s cldtaupi, re, fl) … … 2819 2813 endif 2820 2814 2821 2822 #if defined(CPP_COUPLE) && defined(INCA_AER) 2823 CALL radlwsw_inca ! nouveau rayonnement (compatible Arpege-IFS) 2824 e (kdlon,kflev,dist, rmu0, fract, 2825 e paprs, pplay,zxtsol,albsol, albsollw, t_seri,q_seri, 2826 e wo, 2827 e cldfra, cldemi, cldtau, 2828 s heat,heat0,cool,cool0,radsol,albpla, 2829 s topsw,toplw,solsw,sollw, 2830 s sollwdown, 2831 s topsw0,toplw0,solsw0,sollw0, 2832 s lwdn0, lwdn, lwup0, lwup, 2833 s swdn0, swdn, swup0, swup, 2834 e ok_ade, ok_aie, ! new for aerosol radiative effects 2835 e tau_inca, piz_inca, cg_inca, ! ="= 2836 s topswad_inca, solswad_inca, ! ="= 2837 s topswad0_inca, solswad0_inca, ! ="= 2838 s topsw_inca, topsw0_inca, 2839 s solsw_inca, solsw0_inca, 2840 e cldtaupi, ! ="= 2841 s topswai_inca, solswai_inca) ! ="= 2842 #else 2843 CALL radlwsw ! nouveau rayonnement (compatible Arpege-IFS) 2844 e (dist, rmu0, fract, 2845 e paprs, pplay,zxtsol,albsol, albsollw, t_seri,q_seri, 2846 e wo, 2847 e cldfra, cldemi, cldtau, 2848 s heat,heat0,cool,cool0,radsol,albpla, 2849 s topsw,toplw,solsw,sollw, 2850 s sollwdown, 2851 s topsw0,toplw0,solsw0,sollw0, 2852 s lwdn0, lwdn, lwup0, lwup, 2853 s swdn0, swdn, swup0, swup, 2854 e ok_ade, ok_aie, ! new for aerosol radiative effects 2855 e tau_ae, piz_ae, cg_ae, ! ="= 2856 s topswad, solswad, ! ="= 2857 e cldtaupi, ! ="= 2858 s topswai, solswai) ! ="= 2859 #endif 2815 IF (aerosol_couple) THEN 2816 #ifdef INCA_AER 2817 CALL radlwsw_inca 2818 e (kdlon,kflev,dist, rmu0, fract, solaire, 2819 e paprs, pplay,zxtsol,albsol, albsollw, t_seri,q_seri, 2820 e wo, 2821 e cldfra, cldemi, cldtau, 2822 s heat,heat0,cool,cool0,radsol,albpla, 2823 s topsw,toplw,solsw,sollw, 2824 s sollwdown, 2825 s topsw0,toplw0,solsw0,sollw0, 2826 s lwdn0, lwdn, lwup0, lwup, 2827 s swdn0, swdn, swup0, swup, 2828 e ok_ade, ok_aie, 2829 e tau_inca, piz_inca, cg_inca, 2830 s topswad_inca, solswad_inca, 2831 s topswad0_inca, solswad0_inca, 2832 s topsw_inca, topsw0_inca, 2833 s solsw_inca, solsw0_inca, 2834 e cldtaupi, 2835 s topswai_inca, solswai_inca) 2836 #endif 2837 ELSE 2838 CALL radlwsw ! nouveau rayonnement (compatible Arpege-IFS) 2839 e (dist, rmu0, fract, 2840 e paprs, pplay,zxtsol,albsol, albsollw, t_seri,q_seri, 2841 e wo, 2842 e cldfra, cldemi, cldtau, 2843 s heat,heat0,cool,cool0,radsol,albpla, 2844 s topsw,toplw,solsw,sollw, 2845 s sollwdown, 2846 s topsw0,toplw0,solsw0,sollw0, 2847 s lwdn0, lwdn, lwup0, lwup, 2848 s swdn0, swdn, swup0, swup, 2849 e ok_ade, ok_aie, ! new for aerosol radiative effects 2850 e tau_ae, piz_ae, cg_ae, ! ="= 2851 s topswad, solswad, ! ="= 2852 e cldtaupi, ! ="= 2853 s topswai, solswai) ! ="= 2854 ENDIF 2855 2860 2856 itaprad = 0 2861 2857 ENDIF … … 3089 3085 I upwd, 3090 3086 I dnwd, 3087 I aerosol_couple, 3091 3088 #ifdef INCA 3092 3089 I flxmass_w, 3093 #if defined(INCA_AER) && defined(CPP_COUPLE)3094 3090 I tau_inca, 3095 3091 I piz_inca, … … 3097 3093 I ccm, 3098 3094 I rfname, 3099 #endif3100 3095 #endif 3101 3096 O tr_seri) -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/phytrac.F
r918 r954 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.