Changeset 959 for LMDZ4/trunk/libf/phylmd
- Timestamp:
- May 27, 2008, 6:42:49 PM (17 years ago)
- Location:
- LMDZ4/trunk/libf/phylmd
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/ini_histrac.h
r956 r959 2 2 ! $Header$ 3 3 ! 4 #ifndef INCA 4 IF (config_inca == 'none') THEN 5 5 c$OMP MASTER 6 6 CALL ymds2ju(annee_ref, 1, day_ref, 0.0, zjulian) … … 127 127 ndex = 0 128 128 c$OMP END MASTER 129 #endif 129 END IF -
LMDZ4/trunk/libf/phylmd/phys_state_var_mod.F90
r955 r959 170 170 !topswai, solswai : Aerosol indirect effect 171 171 REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:) 172 #ifdef INCA 172 REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:) 173 REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:) 174 175 ! Les variables suivants uniquement pour un configuration avec INCA 173 176 ! topswad_inca, solswad_inca : Aerosol direct effect 174 177 REAL,SAVE,ALLOCATABLE :: topswad_inca(:), solswad_inca(:) 175 178 ! topswad0_inca, solswad0_inca : Aerosol direct effect 176 179 REAL,SAVE,ALLOCATABLE :: topswad0_inca(:), solswad0_inca(:) 177 ! topswai_inca, solswai_inca : Aerosol indirect effect180 ! topswai_inca, solswai_inca : Aerosol indirect effect 178 181 REAL,SAVE,ALLOCATABLE :: topswai_inca(:), solswai_inca(:) 179 182 REAL,SAVE,ALLOCATABLE :: topsw_inca(:,:), solsw_inca(:,:) … … 183 186 REAL,SAVE,ALLOCATABLE :: cg_inca(:,:,:,:) 184 187 REAL,SAVE,ALLOCATABLE :: ccm(:,:,:) 185 #endif186 REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:)187 REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:)188 188 189 189 CONTAINS … … 194 194 IMPLICIT NONE 195 195 #include "indicesol.h" 196 196 #include "control.h" 197 197 ALLOCATE(rlat(klon), rlon(klon)) 198 198 ALLOCATE(pctsrf(klon,nbsrf)) … … 290 290 ALLOCATE(topswad(klon), solswad(klon)) 291 291 ALLOCATE(topswai(klon), solswai(klon)) 292 #ifdef INCA 293 ALLOCATE(topswad_inca(klon), solswad_inca(klon)) 294 ALLOCATE(topswad0_inca(klon), solswad0_inca(klon)) 295 ALLOCATE(topswai_inca(klon), solswai_inca(klon)) 296 ALLOCATE(topsw_inca(klon,9), solsw_inca(klon,9)) 297 ALLOCATE(topsw0_inca(klon,9), solsw0_inca(klon,9)) 292 ALLOCATE(tau_ae(klon,klev,2), piz_ae(klon,klev,2)) 293 ALLOCATE(cg_ae(klon,klev,2)) 294 295 IF (config_inca /= 'none') THEN 296 ALLOCATE(topswad_inca(klon), solswad_inca(klon)) 297 ALLOCATE(topswad0_inca(klon), solswad0_inca(klon)) 298 ALLOCATE(topswai_inca(klon), solswai_inca(klon)) 299 ALLOCATE(topsw_inca(klon,9), solsw_inca(klon,9)) 300 ALLOCATE(topsw0_inca(klon,9), solsw0_inca(klon,9)) 301 END IF 302 ! Following 4 variables are needed only by INCA but must be 303 ! allocated as they exist in the phytrac argument list 298 304 ALLOCATE(tau_inca(klon,klev,9,2)) 299 305 ALLOCATE(piz_inca(klon,klev,9,2)) 300 306 ALLOCATE(cg_inca(klon,klev,9,2)) 301 307 ALLOCATE(ccm(klon,klev,2)) 302 #endif303 ALLOCATE(tau_ae(klon,klev,2), piz_ae(klon,klev,2))304 ALLOCATE(cg_ae(klon,klev,2))305 308 306 309 END SUBROUTINE phys_state_var_init … … 311 314 IMPLICIT NONE 312 315 #include "indicesol.h" 316 #include "control.h" 313 317 314 318 deallocate(rlat, rlon, pctsrf, ftsol, falb1, falb2) … … 387 391 deallocate(topswad, solswad) 388 392 deallocate(topswai, solswai) 389 #ifdef INCA 390 deallocate(topswad_inca, solswad_inca) 391 deallocate(topswad0_inca, solswad0_inca) 392 deallocate(topswai_inca, solswai_inca) 393 deallocate(topsw_inca, solsw_inca) 394 deallocate(topsw0_inca, solsw0_inca) 393 394 deallocate(tau_ae, piz_ae) 395 deallocate(cg_ae) 396 397 IF (config_inca /= 'none') THEN 398 deallocate(topswad_inca, solswad_inca) 399 deallocate(topswad0_inca, solswad0_inca) 400 deallocate(topswai_inca, solswai_inca) 401 deallocate(topsw_inca, solsw_inca) 402 deallocate(topsw0_inca, solsw0_inca) 403 END IF 395 404 deallocate(tau_inca) 396 405 deallocate(piz_inca) 397 406 deallocate(cg_inca) 398 407 deallocate(ccm) 399 #endif 400 deallocate(tau_ae, piz_ae) 401 deallocate(cg_ae) 402 408 403 409 END SUBROUTINE phys_state_var_end 404 410 -
LMDZ4/trunk/libf/phylmd/physiq.F
r956 r959 9 9 . paprs,pplay,pphi,pphis,presnivs,clesphy0, 10 10 . u,v,t,qx, 11 . omega,12 #ifdef INCA13 11 . flxmass_w, 14 #endif15 12 . d_u, d_v, d_t, d_qx, d_ps 16 13 . , dudyn … … 80 77 c d_t_dyn-input-R-tendance dynamique pour "t" (K/s) 81 78 c d_q_dyn-input-R-tendance dynamique pour "q" (kg/kg/s) 82 c omega---input-R-vitesse verticale en Pa/s79 c flxmass_w -input-R- flux de masse verticale 83 80 c d_u-----output-R-tendance physique de "u" (m/s/s) 84 81 c d_v-----output-R-tendance physique de "v" (m/s/s) … … 119 116 PARAMETER (ok_stratus=.FALSE.) 120 117 c====================================================================== 121 logical rnpb 122 #ifdef INCA 123 parameter(rnpb=.false.) 124 #else 125 parameter(rnpb=.true.) 126 #endif 127 118 LOGICAL :: rnpb=.TRUE. 128 119 cIM "slab" ocean 129 120 REAL tslab(klon) !Temperature du slab-ocean … … 215 206 REAL t(klon,klev),theta(klon,klev) 216 207 REAL qx(klon,klev,nqmax) 217 218 REAL omega(klon,klev)219 220 #ifdef INCA221 208 REAL flxmass_w(klon,klev) 222 #endif 209 REAL omega(klon,klev) ! vitesse verticale en Pa/s 223 210 REAL d_u(klon,klev) 224 211 REAL d_v(klon,klev) … … 682 669 REAL frac_impa(klon,klev) ! fractions d'aerosols lessivees (impaction) 683 670 REAL frac_nucl(klon,klev) ! idem (nucleation) 684 #ifdef INCA685 671 INTEGER :: iii 686 672 REAL :: calday 687 #endif688 673 689 674 cIM cf FH pour Tiedtke 080604 … … 1074 1059 1075 1060 ! Aerosol optical properties 1076 #ifdef INCA 1077 ! Aerosol optical properties by INCA model1061 1062 ! Aerosol optical properties by INCA model 1078 1063 CHARACTER*4 :: rfname(9) 1079 #endif1080 1064 REAL aerindex(klon) ! POLDER aerosol index 1081 1065 … … 1083 1067 LOGICAL ok_ade, ok_aie ! Apply aerosol (in)direct effects or not 1084 1068 REAL bl95_b0, bl95_b1 ! Parameter in Boucher and Lohmann (1995) 1085 cym1086 1069 SAVE ok_ade, ok_aie, bl95_b0, bl95_b1 1087 1070 c$OMP THREADPRIVATE(ok_ade, ok_aie, bl95_b0, bl95_b1) … … 1209 1192 solswai(:)=0. 1210 1193 solswad(:)=0. 1211 #ifdef INCA 1212 tau_inca(:,:,:,:) = 0.1213 piz_inca(:,:,:,:) = 0.1214 cg_inca(:,:,:,:)= 0.1215 ccm(:,:,:)= 0.1216 topswai_inca(:)= 0.1217 topswad_inca(:) = 0.1218 topswad0_inca(:)= 0.1219 topsw_inca(:,:)= 0.1220 topsw0_inca(:,:)= 0.1221 solswai_inca(:)= 0.1222 solswad_inca(:) = 0.1223 solswad0_inca(:)= 0.1224 solsw_inca(:,:)= 0.1225 solsw0_inca(:,:)= 0.1226 #endif 1227 !rv 1228 !ACo 1194 1195 IF (config_inca /= 'none') THEN 1196 tau_inca(:,:,:,:) = 0. 1197 piz_inca(:,:,:,:) = 0. 1198 cg_inca(:,:,:,:) = 0. 1199 ccm(:,:,:) = 0. 1200 topswai_inca(:) = 0. 1201 topswad_inca(:) = 0. 1202 topswad0_inca(:) = 0. 1203 topsw_inca(:,:) = 0. 1204 topsw0_inca(:,:) = 0. 1205 solswai_inca(:) = 0. 1206 solswad_inca(:) = 0. 1207 solswad0_inca(:) = 0. 1208 solsw_inca(:,:) = 0. 1209 solsw0_inca(:,:) = 0. 1210 END IF 1211 1229 1212 rnebcon0(:,:) = 0.0 1230 1213 clwcon0(:,:) = 0.0 1231 1214 rnebcon(:,:) = 0.0 1232 1215 clwcon(:,:) = 0.0 1233 ! fin anne1234 1216 1235 1217 cIM … … 1559 1541 cc ENDDO 1560 1542 c 1543 IF (config_inca /= 'none') THEN 1561 1544 #ifdef INCA 1562 call VTe(VTphysiq) 1563 call VTb(VTinca) 1564 iii = MOD(NINT(xjour),360) 1565 calday = FLOAT(iii) + gmtime 1566 WRITE(lunout,*) 'initial time ', xjour, calday 1567 #ifdef INCAINFO 1568 WRITE(lunout,*) 'Appel CHEMINI ...' 1569 #endif 1570 CALL chemini( 1545 CALL VTe(VTphysiq) 1546 CALL VTb(VTinca) 1547 iii = MOD(NINT(xjour),360) 1548 calday = FLOAT(iii) + gmtime 1549 WRITE(lunout,*) 'initial time ', xjour, calday 1550 1551 CALL chemini( 1571 1552 $ rg, 1572 1553 $ ra, … … 1581 1562 $ annee_ref, 1582 1563 $ day_ini) 1583 #ifdef INCAINFO 1584 WRITE(lunout,*) 'OK.' 1564 1565 CALL VTe(VTinca) 1566 CALL VTb(VTphysiq) 1585 1567 #endif 1586 call VTe(VTinca) 1587 call VTb(VTphysiq) 1588 #endif 1568 END IF 1589 1569 c 1590 1570 ENDIF … … 1939 1919 ENDDO 1940 1920 ENDIF 1921 1922 c Calcule de vitesse verticale a partir de flux de masse verticale 1923 DO k = 1, klev 1924 DO i = 1, klon 1925 omega(i,k) = RG*flxmass_w(i,k) / airephy(i) 1926 END DO 1927 END DO 1928 1941 1929 IF (iflag_con.EQ.1) THEN 1942 1930 stop'reactiver le call conlmd dans physiq.F' … … 2589 2577 cjq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr) 2590 2578 IF (ok_ade.OR.ok_aie) THEN 2591 IF ( .NOT. aerosol_couple ) THEN2592 2593 2594 2595 2596 2597 2598 . 2599 2579 IF ( .NOT. aerosol_couple ) THEN 2580 ! Get sulfate aerosol distribution 2581 CALL readsulfate(rjourvrai, debut, sulfate) 2582 CALL readsulfate_preind(rjourvrai, debut, sulfate_pi) 2583 2584 ! Calculate aerosol optical properties (Olivier Boucher) 2585 CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl, 2586 . tau_ae, piz_ae, cg_ae, aerindex) 2587 ENDIF 2600 2588 ELSE 2601 2589 tau_ae(:,:,:)=0.0 2602 2590 piz_ae(:,:,:)=0.0 2603 cg_ae(:,:,:)=0.0 2591 cg_ae(:,:,:)=0.0 2604 2592 ENDIF 2605 2593 … … 2696 2684 ENDDO 2697 2685 2698 2686 IF (config_inca /= 'none') THEN 2699 2687 #ifdef INCA 2700 call VTe(VTphysiq) 2701 call VTb(VTinca) 2702 calday = FLOAT(julien) + gmtime 2703 2704 #ifdef INCA_AER 2705 call AEROSOL_METEO_CALC(calday,pdtphys,pplay,paprs,t,pmflxr,pmflxs 2706 & ,prfl,psfl,pctsrf,airephy,xjour,rlat,rlon,u10m,v10m) 2707 #endif 2708 2709 #ifdef INCAINFO 2710 WRITE(lunout,*)'Appel CHEMHOOK_BEGIN ...' 2711 #endif 2712 2713 zxsnow_dummy(:) = 0.0 2714 2715 CALL chemhook_begin (calday, 2716 #if defined(INCA) && !defined(INCA_CH4) && !defined(INCA_NMHC) && !defined(INCA_AER) 2688 CALL VTe(VTphysiq) 2689 CALL VTb(VTinca) 2690 calday = FLOAT(julien) + gmtime 2691 2692 IF (config_inca == 'aero') THEN 2693 CALL AEROSOL_METEO_CALC(calday,pdtphys,pplay,paprs,t,pmflxr,pmflxs 2694 & ,prfl,psfl,pctsrf,airephy,xjour,rlat,rlon,u10m,v10m) 2695 END IF 2696 2697 zxsnow_dummy(:) = 0.0 2698 2699 CALL chemhook_begin (calday, 2717 2700 $ julien, 2718 2701 $ gmtime, 2719 #endif2720 2702 $ pctsrf(1,1), 2721 2703 $ rlat, … … 2742 2724 $ iim, 2743 2725 $ jjm, 2744 #ifdef INCA_AER2745 2726 $ tr_seri, 2746 2727 $ ftsol, … … 2751 2732 $ pdtphys, 2752 2733 $ itap) 2753 #else 2754 $ tr_seri) 2755 #endif 2756 2757 2758 #ifdef INCAINFO 2759 WRITE(lunout,*)'OK.' 2760 #endif 2761 call VTe(VTinca) 2762 call VTb(VTphysiq) 2763 #endif 2734 2735 CALL VTe(VTinca) 2736 CALL VTb(VTphysiq) 2737 #endif 2738 END IF !config_inca /= 'none' 2764 2739 c 2765 2740 c Calculer les parametres optiques des nuages et quelques 2766 2741 c parametres pour diagnostiques: 2767 2742 c 2768 IF (aerosol_couple ) THEN 2769 #ifdef INCA 2743 2744 IF (aerosol_couple) THEN 2770 2745 sulfate(:,:) = ccm(:,:,1) 2771 2746 sulfate_pi(:,:) = ccm(:,:,2) 2772 #endif2773 2747 ENDIF 2774 2748 … … 2816 2790 2817 2791 IF (aerosol_couple) THEN 2818 #ifdef INCA _AER2819 CALL radlwsw_inca2792 #ifdef INCA 2793 CALL radlwsw_inca 2820 2794 e (kdlon,kflev,dist, rmu0, fract, solaire, 2821 2795 e paprs, pplay,zxtsol,albsol, albsollw, t_seri,q_seri, … … 2838 2812 #endif 2839 2813 ELSE 2840 2814 CALL radlwsw ! nouveau rayonnement (compatible Arpege-IFS) 2841 2815 e (dist, rmu0, fract, 2842 2816 e paprs, pplay,zxtsol,albsol1, albsol2, t_seri,q_seri, … … 2855 2829 s topswai, solswai) ! ="= 2856 2830 ENDIF 2857 2858 2831 itaprad = 0 2859 2832 ENDIF … … 3038 3011 c==================================================================== 3039 3012 C 3013 IF (config_inca /= 'none') rnpb=.FALSE. 3014 3040 3015 call phytrac ( rnpb, 3041 3016 I itap, … … 3092 3067 I dnwd, 3093 3068 I aerosol_couple, 3094 #ifdef INCA3095 3069 I flxmass_w, 3096 3070 I tau_inca, … … 3099 3073 I ccm, 3100 3074 I rfname, 3101 #endif3102 3075 O tr_seri) 3103 3076 … … 3190 3163 #include "calcul_divers.h" 3191 3164 c 3165 IF (config_inca /= 'none') THEN 3192 3166 #ifdef INCA 3193 call VTe(VTphysiq) 3194 call VTb(VTinca) 3195 #ifdef INCAINFO 3196 WRITE(lunout,*)'Appel CHEMHOOK_END ...' 3197 #endif 3198 CALL chemhook_end (calday, 3167 CALL VTe(VTphysiq) 3168 CALL VTb(VTinca) 3169 3170 CALL chemhook_end (calday, 3199 3171 $ dtime, 3200 3172 $ pplay, … … 3207 3179 $ day_ini, 3208 3180 $ airephy, 3209 #ifdef INCA_AER3210 3181 $ xjour, 3211 3182 $ pphi, 3212 3183 $ pphis, 3213 3184 $ zx_rh) 3214 #else3215 3185 $ xjour) 3186 3187 CALL VTe(VTinca) 3188 CALL VTb(VTphysiq) 3216 3189 #endif 3217 #ifdef INCAINFO 3218 WRITE(lunout,*)'OK.' 3219 #endif 3220 call VTe(VTinca) 3221 call VTb(VTphysiq) 3222 #endif 3190 END IF 3223 3191 3224 3192 c============================================================= -
LMDZ4/trunk/libf/phylmd/phytrac.F
r956 r959 58 58 I dnwd, 59 59 I aerosol_couple, 60 #ifdef INCA61 60 I flxmass_w, 62 I tau_inca, 63 I piz_inca, 64 I cg_inca, 65 I ccm, 66 I rfname, 67 #endif 61 I tau_inca, 62 I piz_inca, 63 I cg_inca, 64 I ccm, 65 I rfname, 68 66 O tr_seri) 69 67 … … 91 89 #include "YOMCST.h" 92 90 #include "dimensions.h" 93 cym#include "dimphy.h"94 91 #include "indicesol.h" 95 92 #include "clesphys.h" … … 97 94 #include "paramet.h" 98 95 #include "control.h" 99 cym#include "comgeomphy.h"100 96 #include "advtrac.h" 101 97 #include "thermcell.h" … … 143 139 REAL prfl(klon,klev+1), psfl(klon,klev+1) !--lessivage large-scale 144 140 LOGICAL aerosol_couple 145 #ifdef INCA 141 146 142 REAL flxmass_w(klon,klev) 147 143 CHARACTER(len=8) :: solsym(nqmax) … … 152 148 character*4 :: rfname(9) 153 149 REAL :: ccm(klon,klev,2) 154 #endif155 c integer iflag_con156 157 cAA Rem : nbtr : nombre de vrais traceurs est defini dans dimphy.h158 150 c 159 151 c convection: … … 253 245 INTEGER nhori, nvert 254 246 REAL zsto, zout, zjulian 255 INTEGER nid_tra 256 SAVE nid_tra 247 INTEGER, SAVE :: nid_tra 257 248 c$OMP THREADPRIVATE(nid_tra) 258 #ifdef INCA_AER 259 INTEGER nid_tra2,nid_tra3 260 SAVE nid_tra2,nid_tra3 249 INTEGER, SAVE :: nid_tra2,nid_tra3 261 250 c$OMP THREADPRIVATE(nid_tra2,nid_tra3) 262 #endif263 c REAL x(klon,klev,nbtr+2) ! traceurs264 251 INTEGER ndex(1) 265 252 INTEGER ndex2d(iim*(jjm+1)),ndex3d(iim*(jjm+1)*klev) … … 271 258 integer itau_w ! pas de temps ecriture = nstep + itau_phy 272 259 c 273 274 C275 260 logical ok_sync 276 261 parameter (ok_sync = .true.) … … 342 327 s /.true.,.true.,.true.,.true.,.true./ 343 328 344 345 #ifdef INCA 329 ! Variables needed for configuration with INCA 346 330 INTEGER :: lastgas 347 331 INTEGER :: ncsec 348 INTEGER :: prt_flag_ts(nbtr)349 332 350 333 REAL, PARAMETER :: dry_mass = 28.966 … … 353 336 REAL :: calday 354 337 REAL :: pdel(klon,klev) 355 REAL :: dummy(klon,klev) 356 #endif 357 c 358 c====================================================================== 359 360 #ifdef INCA 361 prt_flag_ts(:)=(/ 362 #ifdef INCA_CH4 363 . 1,1,1,0,0,1,1,1,1,1, 364 . 0,1,0,0,0,0,0,1,0,0, 365 . 0,1,1,1,1,0,1,1,1,0, 366 . 1,1,1,1,1,1,1,1,1,1, 367 . 1,0,0 368 #ifdef INCA_AER 369 . ,1,1,1,1,0,1,1,1,1,0, 370 . 1,1,1,1,1,1,0,1,0,1, 371 . 1,1,1,1,0,1,0,1,1,1 372 #endif 373 #endif 374 #ifdef INCA_NMHC 375 . 1,1,1,1,1,1,1,1,1,1, 376 . 1,1,1,1,1,1,1,1,1,1, 377 . 1,1,1,1,1,1,1,1,1,1, 378 . 1,1,1,1,1,1,1,1,1,1, 379 . 1,1,1,1,1,1,1,1,1,1, 380 . 1,1,1,1,1,1,1,1,1,1, 381 . 1,1,1,1,1,1,1,1,1,1, 382 . 1,1,1,1,1,1,1,1,1,1, 383 . 1,1,1,1,1,1,1 384 #ifdef INCA_AER 385 . ,1,1,1,1,0,1,1,1,1,0, 386 . 1,1,1,1,1,1,0,1,0,1, 387 . 1,1,1,1,0,1,0,1,1,1 388 #endif 389 #endif 390 #if defined(INCA_AER) && !defined(INCA_CH4) && !defined(INCA_NMHC) 391 . 1,1,1,1,1,1,1,1,1,1, 392 . 1,1,1,1,1,1,1,1,1,1, 393 . 1,1,1,1,1,1,1,1,1 394 #endif 395 #if defined(INCA) && !defined(INCA_CH4) && !defined(INCA_NMHC) && !defined(INCA_AER) 396 . 1,1,1,1,1,1,1,1,1,1, 397 . 1 398 #endif 399 400 . /) 401 dummy(:,:) = 0. 402 403 #endif 338 c 339 c====================================================================== 340 404 341 modname='phytrac' 405 342 … … 419 356 420 357 421 c jg: c'est ca qu'on veut?????422 358 ! FH 2008/05/09 correction de la frequence d'ecriture des traceurs 423 359 ! ecrit_tra = FLOAT(NINT(86400./pdtphys *ecritphy)) … … 490 426 inirnpb=.false. 491 427 endif 428 429 430 IF (config_inca == 'none') THEN 431 DO i=1,nlon 432 pftsol1(i) = ftsol(i,1) 433 pftsol2(i) = ftsol(i,2) 434 pftsol3(i) = ftsol(i,3) 435 pftsol4(i) = ftsol(i,4) 436 437 ppsrf1(i) = pctsrf(i,1) 438 ppsrf2(i) = pctsrf(i,2) 439 ppsrf3(i) = pctsrf(i,3) 440 ppsrf4(i) = pctsrf(i,4) 441 442 ENDDO 443 444 ELSE ! config_inca /=none 492 445 #ifdef INCA 493 446 call VTe(VTphysiq) 494 447 call VTb(VTinca) 448 495 449 !====================================================================== 496 450 ! Chimie … … 504 458 END DO 505 459 506 #ifdef INCAINFO 507 PRINT *, 'CHEMMAIN @ ', calday, ' ... ' 508 DO it = 1, nbtr 509 PRINT *, solsym(it), MINVAL(tr_seri(:,:,it)), 510 $ MAXVAL(tr_seri(:,:,it)) 511 END DO 512 #endif 513 514 515 #ifdef INCA_AER 516 CALL aerosolmain (aerosol_couple, 460 IF (config_inca == 'aero') THEN 461 CALL aerosolmain (aerosol_couple, 517 462 $ tr_seri, 518 463 $ pdtphys, … … 538 483 $ ccm, 539 484 $ lafin) 540 #endif 485 END IF 541 486 542 487 CALL chemmain (tr_seri, !mmr … … 578 523 $ source, 579 524 $ solsym) 580 #ifdef INCAINFO 581 #ifdef INCA_AER 582 583 c Budget calculation for aerosol species 584 CALL tbudget(airephy,pdtphys,nstep,tr_seri,.false.) 585 586 c-- summary info---------------------------------------------------------------- 587 588 if (MOD(nstep,nint(86400./pdtphys)) .eq. 0) then 589 print *, "global aerosol optical thickness " 590 591 write (form,'(A,I2,A)') "(A,",trnx-trmx+1,"A10)" 592 print form,"lamba [nm] ", (solsym(it),it=trmx,trnx) 593 594 write (form,'(A,I2,A)') "(I11,",trnx-trmx+1,"F10.4)" 595 do i=1,las 596 print form,int(lambda(i)),(sum(tausum(:,i,it)*airephy)/sum(airephy),it=trmx,trnx) 597 enddo 598 599 print *,"global mean angstroem component ", sum(angst*airephy)/sum(airephy) 600 endif 601 #endif 602 #endif 603 604 #ifdef INCAINFO 605 PRINT *, 'OK.' 606 DO it = 1, nbtr 607 PRINT *, solsym(it), MINVAL(tr_seri(:,:,it)), 608 $ MAXVAL(tr_seri(:,:,it)) 609 END DO 610 #endif 525 526 611 527 call VTe(VTinca) 612 528 call VTb(VTphysiq) 613 #else614 615 c Abder616 ctestmaf if(nqmax.gt.2) aerosol(3)=.true.617 618 do i=1,nlon619 pftsol1(i) = ftsol(i,1)620 pftsol2(i) = ftsol(i,2)621 pftsol3(i) = ftsol(i,3)622 pftsol4(i) = ftsol(i,4)623 624 ppsrf1(i) = pctsrf(i,1)625 ppsrf2(i) = pctsrf(i,2)626 ppsrf3(i) = pctsrf(i,3)627 ppsrf4(i) = pctsrf(i,4)628 629 enddo630 c Abder631 529 #endif 530 END IF ! config_inca 632 531 c====================================================================== 633 532 c Calcul de l'effet de la convection … … 643 542 c print*,'Pas de temps dans phytrac : ',pdtphys 644 543 DO it=1, nqmax 645 #ifdef INCA 646 IF ( con v_flg(it) == 0 ) CYCLE647 #endif 544 545 IF ( config_inca/='none' .AND. conv_flg(it) == 0 ) CYCLE 546 648 547 if (iflag_con.lt.2) then 649 548 d_tr_cv=0. … … 663 562 ENDDO 664 563 ENDDO 665 #ifdef INCA 666 CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it = ' 667 . //solsym(it)) 668 #else 669 CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it = '//itn) 670 #endif 564 565 IF (config_inca == 'none') THEN 566 CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it = '//itn) 567 ELSE 568 CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'convection it = ' 569 . //solsym(it)) 570 END IF 571 671 572 ENDDO 672 c print*,'apres nflxtr'673 573 674 574 endif ! convection … … 757 657 C maf modif pour tenir compte du cas rnpb + traceur 758 658 DO it=1, nqmax 759 #ifdef INCA 760 IF ( pbl_flg(it) == 0 ) CYCLE761 #endif 659 660 IF ( config_inca/='none' .AND. pbl_flg(it) == 0 ) CYCLE 661 762 662 c print *,'it',it,clsol(it) 763 663 if (clsol(it)) then ! couche limite avec quantite dans le sol calculee -
LMDZ4/trunk/libf/phylmd/write_histrac.h
r776 r959 2 2 ! $Header$ 3 3 ! 4 #ifndef INCA 4 5 IF (config_inca == 'none') THEN 5 6 ndex = 0 6 7 ndex2d = 0 … … 101 102 endif 102 103 103 #endif 104 END IF 104 105 105 106
Note: See TracChangeset
for help on using the changeset viewer.