Changeset 766
- Timestamp:
- Jun 4, 2007, 4:34:47 PM (17 years ago)
- Location:
- LMDZ4/trunk/libf/phylmd
- Files:
-
- 116 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/phylmd/aeropt.F
r524 r766 5 5 . tau_ae, piz_ae, cg_ae, ai ) 6 6 c 7 USE dimphy 7 8 IMPLICIT none 8 9 c 9 10 c 10 11 c 11 #include "dimensions.h"12 #include "dimphy.h"12 cym#include "dimensions.h" 13 cym#include "dimphy.h" 13 14 #include "YOMCST.h" 14 15 c -
LMDZ4/trunk/libf/phylmd/ajsec.F
r524 r766 3 3 ! 4 4 SUBROUTINE ajsec(paprs, pplay, t,q, d_t,d_q) 5 USE dimphy 5 6 IMPLICIT none 6 7 c====================================================================== … … 13 14 c d_t-----output-R-Incrementation de la temperature 14 15 c====================================================================== 15 #include "dimensions.h"16 #include "dimphy.h"16 cym#include "dimensions.h" 17 cym#include "dimphy.h" 17 18 #include "YOMCST.h" 18 19 REAL paprs(klon,klev+1), pplay(klon,klev) … … 22 23 INTEGER limbas, limhau ! les couches a ajuster 23 24 ccc PARAMETER (limbas=klev-3, limhau=klev) 24 PARAMETER (limbas=1, limhau=klev)25 cym PARAMETER (limbas=1, limhau=klev) 25 26 c 26 27 LOGICAL mixq … … 38 39 c Initialisation: 39 40 c 41 cym 42 limbas=1 43 limhau=klev 44 40 45 DO k = 1, klev 41 46 DO i = 1, klon … … 149 154 END 150 155 SUBROUTINE ajsec_old(paprs, pplay, t, d_t) 156 USE dimphy 151 157 IMPLICIT none 152 158 c====================================================================== … … 159 165 c d_t-----output-R-Incrementation de la temperature 160 166 c====================================================================== 161 #include "dimensions.h"162 #include "dimphy.h"167 cym#include "dimensions.h" 168 cym#include "dimphy.h" 163 169 #include "YOMCST.h" 164 170 REAL paprs(klon,klev+1), pplay(klon,klev) -
LMDZ4/trunk/libf/phylmd/albedo.F
r584 r766 5 5 c 6 6 SUBROUTINE alboc(rjour,rlat,albedo) 7 USE dimphy 7 8 IMPLICIT none 8 9 c====================================================================== … … 17 18 c albedo (out,R): albedo obtenu (de 0 a 1) 18 19 c====================================================================== 19 #include "dimensions.h"20 #include "dimphy.h"20 cym#include "dimensions.h" 21 cym#include "dimphy.h" 21 22 #include "YOMCST.h" 22 23 c … … 127 128 c===================================================================== 128 129 SUBROUTINE alboc_cd(rmu0,albedo) 130 USE dimphy 129 131 IMPLICIT none 130 132 c====================================================================== … … 140 142 c albedo (out): albedo de surface de l'ocean 141 143 c====================================================================== 142 #include "dimensions.h"143 #include "dimphy.h"144 cym#include "dimensions.h" 145 cym#include "dimphy.h" 144 146 REAL rmu0(klon), albedo(klon) 145 147 c -
LMDZ4/trunk/libf/phylmd/atm2geo.F
r524 r766 4 4 C 5 5 SUBROUTINE atm2geo ( im, jm, pte, ptn, plon, plat, pxx, pyy, pzz ) 6 USE dimphy 7 IMPLICIT NONE 8 include 'dimensions90.h' 6 9 cc 7 10 cc Change wind local atmospheric coordinates to 8 11 cc geocentric 9 12 cc 10 c $$$INCLUDE 'param.h'13 cxxx INCLUDE 'param.h' 11 14 c 12 15 INTEGER, INTENT (in) :: im, jm … … 22 25 c 23 26 LOGICAL, SAVE :: linit = .FALSE. 27 c$OMP THREADPRIVATE(linit) 24 28 c 25 c $$$IF ( .NOT. linit ) THEN29 cxxx IF ( .NOT. linit ) THEN 26 30 zsinlon = SIN (rad * plon) 27 31 zcoslon = COS (rad * plon) … … 29 33 zcoslat = COS (rad * plat) 30 34 linit = .TRUE. 31 c $$$ENDIF35 cxxx ENDIF 32 36 c 33 37 pxx = - zsinlon * pte - zsinlat * zcoslon * ptn 34 38 pyy = zcoslon * pte - zsinlat * zsinlon * ptn 35 39 pzz = zcoslat * ptn 40 36 41 c 37 42 c Value at North Pole 38 pxx ( :, 1) = - ptn ( 1, 1) 39 pyy ( :, 1) = - pte ( 1, 1) 40 pzz ( :, 1) = 0.0 43 IF (jjphy_begin==1) THEN 44 pxx ( :, 1) = - ptn ( 1, 1) 45 pyy ( :, 1) = - pte ( 1, 1) 46 pzz ( :, 1) = 0.0 47 ENDIF 41 48 c Value at South Pole 42 pxx ( :, jm) = + ptn ( 1, jm) 43 pyy ( :, jm) = + pte ( 1, jm) 44 pzz ( :, jm) = 0.0 45 c 49 50 IF (jjphy_end==jjm+1) THEN 51 pxx ( :, jm) = + ptn ( 1, jm) 52 pyy ( :, jm) = + pte ( 1, jm) 53 pzz ( :, jm) = 0.0 54 ENDIF 55 46 56 RETURN 47 57 END SUBROUTINE atm2geo -
LMDZ4/trunk/libf/phylmd/calcratqs.F
r524 r766 5 5 I paprs,pplay,q_seri,d_t_con,d_t_ajs 6 6 O ,ratqs,zpt_conv) 7 USE dimphy 7 8 IMPLICIT none 8 9 c====================================================================== … … 23 24 c pplay---input-R-pression pour le mileu de chaque couche (en Pa) 24 25 c presnivs-input_R_pressions approximat. des milieux couches ( en PA) 25 #include "dimensions.h"26 #include "dimphy.h"26 cym#include "dimensions.h" 27 cym#include "dimphy.h" 27 28 REAL paprs(klon,klev+1) 28 29 REAL pplay(klon,klev) … … 36 37 save firstcall 37 38 data firstcall/.true./ 38 39 c$OMP THREADPRIVATE(firstcall) 39 40 40 41 REAL ratqsmin,ratqsmax,zx,epmax … … 46 47 save ratqs1,ratqs2,ratqs3,ratqs4 47 48 save ratqsc1,ratqsc2,ratqsc3,ratqsc4 49 c$OMP THREADPRIVATE(ratqsmin,ratqsmax,epmax) 50 c$OMP THREADPRIVATE(ratqs1,ratqs2,ratqs3,ratqs4) 51 c$OMP THREADPRIVATE(ratqsc1,ratqsc2,ratqsc3,ratqsc4) 48 52 real zpt_conv(klon,klev) 49 53 -
LMDZ4/trunk/libf/phylmd/calcul_divers.h
r719 r766 5 5 c initialisations diverses au "debut" du mois 6 6 c 7 IF(MOD(itap, NINT(ecrit_mth/dtime)).EQ.1) THEN7 IF(MOD(itap,ecrit_mth).EQ.1) THEN 8 8 DO i=1, klon 9 9 nday_rain(i)=0. … … 17 17 ENDDO 18 18 c 19 ENDIF 19 ENDIF !MOD(itap,ecrit_mth).EQ.1 20 20 c 21 IF(MOD(itap, NINT(ecrit_day/dtime)).EQ.0) THEN21 IF(MOD(itap,ecrit_day).EQ.0) THEN 22 22 c 23 23 cIM calcul total_rain, nday_rain … … 27 27 IF(total_rain(i).GT.0.) nday_rain(i)=nday_rain(i)+1. 28 28 ENDDO 29 ENDIF 29 ENDIF !itap.EQ.ecrit_mth -
LMDZ4/trunk/libf/phylmd/calcul_simulISCCP.h
r684 r766 64 64 c 65 65 IF (debut) THEN 66 c$OMP MASTER 66 67 c open(99,file='tautab.bin',access='sequential', 67 68 c $ form='unformatted',status='old') 68 c read(99) tautab 69 c read(99) tautab_omp 69 70 c 70 71 open(99,file='tautab.formatted', FORM='FORMATTED') 71 read(99,'(f30.20)') tautab 72 read(99,'(f30.20)') tautab_omp 72 73 close(99) 73 74 c 74 75 open(99,file='invtau.formatted',form='FORMATTED') 75 read(99,'(i10)') invtau 76 read(99,'(i10)') invtau_omp 76 77 close(99) 78 c$OMP END MASTER 79 c$OMP BARRIER 80 tautab=tautab_omp 81 invtau=invtau_omp 77 82 c 78 83 ENDIF !debut -
LMDZ4/trunk/libf/phylmd/calltherm.F
r566 r766 8 8 s ,fm_therm,entr_therm) 9 9 10 USE dimphy 10 11 implicit none 11 #include "dimensions.h"12 #include "dimphy.h"12 cym#include "dimensions.h" 13 cym#include "dimphy.h" 13 14 #include "thermcell.h" 14 15 … … 35 36 REAL d_u_the(klon,klev),d_v_the(klon,klev) 36 37 c 37 real zfm_therm(klon,klev+1),zentr_therm(klon,klev),zdt 38 save zentr_therm,zfm_therm 39 38 cym real zfm_therm(klon,klev+1),zentr_therm(klon,klev),zdt 39 cym save zentr_therm,zfm_therm 40 real,allocatable,dimension(:,:),save :: zfm_therm,zentr_therm 41 c$OMP THREADPRIVATE(zfm_therm,zentr_therm) 42 real :: zdt 43 logical,save :: first=.true. 44 c$OMP THREADPRIVATE(first) 40 45 integer i,k 41 46 … … 47 52 print*,'avant isplit ',nsplit_thermals 48 53 49 54 cym initialisation dynamique 55 if (first) then 56 allocate(zfm_therm(klon,klev+1),zentr_therm(klon,klev)) 57 zfm_therm(:,:)=0. 58 zentr_therm(:,:)=0. 59 first=.false. 60 endif 61 50 62 fm_therm(:,:)=0. 51 63 entr_therm(:,:)=0. -
LMDZ4/trunk/libf/phylmd/clesphys.h
r699 r766 10 10 REAL*8 RCO2, RCH4, RN2O, RCFC11, RCFC12 11 11 REAL*8 CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt 12 13 cOM ---> correction du bilan d'eau global 14 cOM Correction sur precip KE 15 REAL cvl_corr 16 cOM Fonte calotte dans bilan eau 17 LOGICAL ok_lic_melt 18 12 19 cIM simulateur ISCCP 13 20 INTEGER top_height, overlap … … 42 49 S , ecrit_mth, ecrit_tra, ecrit_reg 43 50 S , freqin_isccp, freqout_isccp, ip_ebil_phy 44 S , ok_slab_sicOBS 51 S , ok_slab_sicOBS, ok_lic_melt, cvl_corr 52 53 c$OMP THREADPRIVATE(/clesphys/) 54 -
LMDZ4/trunk/libf/phylmd/clmain.F
r686 r766 4 4 c 5 5 c 6 #define IO_DISCONNECTED 7 6 8 SUBROUTINE clmain(dtime,itap,date0,pctsrf,pctsrf_new, 7 9 . t,q,u,v, … … 24 26 . pblh,capCL,oliqCL,cteiCL,pblT, 25 27 . therm,trmb1,trmb2,trmb3,plcl, 26 . fqcalving,f fonte, run_off_lic_0,28 . fqcalving,fqfonte,ffonte, run_off_lic_0, 27 29 cIM "slab" ocean 28 30 . flux_o, flux_g, tslab, seaice) … … 45 47 USE ioipsl 46 48 USE interface_surf 49 USE dimphy 47 50 IMPLICIT none 48 51 c====================================================================== … … 85 88 ccc 86 89 c ffonte----Flux thermique utilise pour fondre la neige 90 c fqfonte -- quantite d'eau due a la fonte de la calotte 87 91 c fqcalving-Flux d'eau "perdue" par la surface et necessaire pour limiter la 88 92 c hauteur de neige, en kg/m2/s … … 105 109 c pblT------- T au nveau HCL 106 110 c====================================================================== 107 #include "dimensions.h"108 #include "dimphy.h"111 cym#include "dimensions.h" 112 cym#include "dimphy.h" 109 113 #include "indicesol.h" 110 c $$$PB ajout pour soil114 cxxx PB ajout pour soil 111 115 #include "dimsoil.h" 112 116 #include "iniprint.h" … … 133 137 REAL amn, amx 134 138 cIM cf JLD 135 REAL y_fqcalving(klon), y_f fonte(klon)136 REAL fqcalving(klon,nbsrf), f fonte(klon,nbsrf)139 REAL y_fqcalving(klon), y_fqfonte(klon), y_ffonte(klon) 140 REAL fqcalving(klon,nbsrf), fqfonte(klon,nbsrf),ffonte(klon,nbsrf) 137 141 REAL run_off_lic_0(klon), y_run_off_lic_0(klon) 138 142 … … 159 163 REAL albe(klon,nbsrf) 160 164 REAL alblw(klon,nbsrf) 161 c $$$PB165 cxxx PB 162 166 REAL fluxlat(klon,nbsrf) 163 167 C … … 174 178 REAL zv1(klon) 175 179 cAA 176 c $$$PB ajout pour soil180 cxxx PB ajout pour soil 177 181 LOGICAL soil_model 178 182 cIM ajout seuils cdrm, cdrh … … 197 201 real yfder(klon), ytaux(klon), ytauy(klon) 198 202 REAL yrugm(klon), yrads(klon),yrugoro(klon) 199 c $$$PB203 cxxx PB 200 204 REAL yfluxlat(klon) 201 205 C … … 248 252 CHARACTER*80 cldebug 249 253 SAVE cldebug 254 c$OMP THREADPRIVATE(cldebug) 250 255 CHARACTER*8 cl_surf(nbsrf) 251 256 SAVE cl_surf 257 c$OMP THREADPRIVATE(cl_surf) 252 258 INTEGER nhoridbg, nidbg 253 259 SAVE nhoridbg, nidbg 260 c$OMP THREADPRIVATE(nhoridbg, nidbg) 261 #ifndef IO_DISCONNECTED 254 262 INTEGER ndexbg(iim*(jjm+1)) 255 263 REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1), zjulian 256 264 REAL tabindx(klon) 257 265 REAL debugtab(iim,jjm+1) 266 #endif 258 267 LOGICAL first_appel 259 268 SAVE first_appel 260 269 DATA first_appel/.true./ 270 c$OMP THREADPRIVATE(first_appel) 261 271 LOGICAL debugindex 262 272 SAVE debugindex 263 273 DATA debugindex/.false./ 274 c$OMP THREADPRIVATE(debugindex) 264 275 integer idayref 265 276 #include "temps.h" … … 327 338 call flush(6) 328 339 endif 329 IF ( debugindex .and.first_appel) THEN330 first_appel=.false.340 IF (first_appel) THEN 341 ! first_appel=.false. 331 342 ! 332 343 ! initialisation sorties netcdf 333 344 ! 345 #ifndef IO_DISCONNECTED 334 346 idayref = day_ini 335 347 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) … … 355 367 CALL histend(nidbg) 356 368 CALL histsync(nidbg) 369 #endif 357 370 ENDIF 358 371 … … 409 422 y_flux_u = 0.0 410 423 y_flux_v = 0.0 411 C $$PB424 Cxx PB 412 425 y_dflux_t = 0.0 413 426 y_dflux_q = 0.0 … … 424 437 ENDDO 425 438 END DO 426 C §§§PB439 C PB 427 440 yfluxlat=0. 428 441 flux_t = 0. … … 434 447 d_t(i,k) = 0.0 435 448 d_q(i,k) = 0.0 436 c $$$flux_t(i,k) = 0.0437 c $$$flux_q(i,k) = 0.0449 cxxx flux_t(i,k) = 0.0 450 cxxx flux_q(i,k) = 0.0 438 451 d_u(i,k) = 0.0 439 452 d_v(i,k) = 0.0 440 c $$$flux_u(i,k) = 0.0441 c $$$flux_v(i,k) = 0.0453 cxxx flux_u(i,k) = 0.0 454 cxxx flux_v(i,k) = 0.0 442 455 zcoefh(i,k) = 0.0 443 456 ENDDO … … 488 501 c variables pour avoir une sortie IOIPSL des INDEX 489 502 c 503 #ifndef IO_DISCONNECTED 490 504 IF (debugindex) THEN 491 505 tabindx(:)=0. 492 506 c tabindx(1:knon)=(/FLOAT(i),i=1:knon/) 493 507 DO i=1,knon 494 tabindx( 1:knon)=FLOAT(i)508 tabindx(i)=FLOAT(i) 495 509 END DO 496 510 debugtab(:,:)=0. … … 500 514 $ ,ndexbg) 501 515 ENDIF 502 IF (knon.EQ.0) GOTO 99999 516 #endif 517 518 fluxlat(:,nsrf) = 0. 519 520 cym IF (knon.EQ.0) GOTO 99999 503 521 DO j = 1, knon 504 522 i = ni(j) … … 546 564 yqsol(:)=0. 547 565 ENDIF 548 c $$$PB ajour pour soil566 cxxx PB ajour pour soil 549 567 DO k = 1, nsoilmx 550 568 DO j = 1, knon … … 567 585 c 568 586 c 587 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 569 588 c calculer Cdrag et les coefficients d'echange 589 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 590 591 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 592 c Calcul anciens du LMD. Effectues de toutes facons. 593 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 594 570 595 CALL coefkz(nsrf, knon, ypaprs, ypplay, 571 596 cIM 261103 … … 705 730 706 731 c FH modif sur le cdrag temperature 707 c $$$PB : déplace dans clcdrag708 c $$$do i=1,knon709 c $$$ycoefh(i,1)=ycoefm(i,1)*0.8710 c $$$enddo732 cxxxPB : d�lace dans clcdrag 733 cxxx do i=1,knon 734 cxxx ycoefh(i,1)=ycoefm(i,1)*0.8 735 cxxx enddo 711 736 712 737 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc … … 726 751 e ywindsp, 727 752 c -- LOOP 728 c $$$e ysollw, ysolsw,753 cxxx e ysollw, ysolsw, 729 754 e ysollw, ysollwdown, ysolsw,yfluxlat, 730 755 s pctsrf_new, yagesno, 731 756 s y_d_t, y_d_q, y_d_ts, yz0_new, 732 757 s y_flux_t, y_flux_q, y_dflux_t, y_dflux_q, 733 s y_fqcalving,y_f fonte,y_run_off_lic_0,758 s y_fqcalving,y_fqfonte,y_ffonte,y_run_off_lic_0, 734 759 cIM "slab" ocean 735 760 s y_flux_o, y_flux_g, ytslab, y_seaice) … … 758 783 y_d_t(j,k) = y_d_t(j,k) * ypct(j) 759 784 y_d_q(j,k) = y_d_q(j,k) * ypct(j) 760 C §§§PB785 C PB 761 786 flux_t(i,k,nsrf) = y_flux_t(j,k) 762 787 flux_q(i,k,nsrf) = y_flux_q(j,k) 763 788 flux_u(i,k,nsrf) = y_flux_u(j,k) 764 789 flux_v(i,k,nsrf) = y_flux_v(j,k) 765 c $$$PB y_flux_t(j,k) = y_flux_t(j,k) * ypct(j)766 c $$$PB y_flux_q(j,k) = y_flux_q(j,k) * ypct(j)790 cxxx PB y_flux_t(j,k) = y_flux_t(j,k) * ypct(j) 791 cxxx PB y_flux_q(j,k) = y_flux_q(j,k) * ypct(j) 767 792 y_d_u(j,k) = y_d_u(j,k) * ypct(j) 768 793 y_d_v(j,k) = y_d_v(j,k) * ypct(j) 769 c $$$PB y_flux_u(j,k) = y_flux_u(j,k) * ypct(j)770 c $$$PB y_flux_v(j,k) = y_flux_v(j,k) * ypct(j)794 cxxx PB y_flux_u(j,k) = y_flux_u(j,k) * ypct(j) 795 cxxx PB y_flux_v(j,k) = y_flux_v(j,k) * ypct(j) 771 796 ENDDO 772 797 ENDDO … … 790 815 rugos(i,nsrf) = yz0_new(j) 791 816 fluxlat(i,nsrf) = yfluxlat(j) 792 c $$$pb rugmer(i) = yrugm(j)817 cxxx pb rugmer(i) = yrugm(j) 793 818 IF (nsrf .EQ. is_oce) then 794 819 rugmer(i) = yrugm(j) … … 798 823 agesno(i,nsrf) = yagesno(j) 799 824 fqcalving(i,nsrf) = y_fqcalving(j) 825 fqfonte(i,nsrf) = y_fqfonte(j) 800 826 ffonte(i,nsrf) = y_ffonte(j) 801 827 cdragh(i) = cdragh(i) + ycoefh(j,1) … … 818 844 END DO 819 845 END IF 820 c $$$ PB ajout pour soil846 c@$$ PB ajout pour soil 821 847 ftsoil(:,:,nsrf) = 0. 822 848 DO k = 1, nsoilmx … … 838 864 d_t(i,k) = d_t(i,k) + y_d_t(j,k) 839 865 d_q(i,k) = d_q(i,k) + y_d_q(j,k) 840 c $$$ PB flux_t(i,k) = flux_t(i,k) + y_flux_t(j,k)841 c $$$ flux_q(i,k) = flux_q(i,k) + y_flux_q(j,k)866 c@$$ PB flux_t(i,k) = flux_t(i,k) + y_flux_t(j,k) 867 c@$$ flux_q(i,k) = flux_q(i,k) + y_flux_q(j,k) 842 868 d_u(i,k) = d_u(i,k) + y_d_u(j,k) 843 869 d_v(i,k) = d_v(i,k) + y_d_v(j,k) 844 c $$$ PB flux_u(i,k) = flux_u(i,k) + y_flux_u(j,k)845 c $$$ flux_v(i,k) = flux_v(i,k) + y_flux_v(j,k)870 c@$$ PB flux_u(i,k) = flux_u(i,k) + y_flux_u(j,k) 871 c@$$ flux_v(i,k) = flux_v(i,k) + y_flux_v(j,k) 846 872 zcoefh(i,k) = zcoefh(i,k) + ycoefh(j,k) 847 873 ENDDO … … 1013 1039 s d_t, d_q, d_ts, z0_new, 1014 1040 s flux_t, flux_q,dflux_s,dflux_l, 1015 s fqcalving,f fonte,run_off_lic_0,1041 s fqcalving,fqfonte,ffonte,run_off_lic_0, 1016 1042 cIM "slab" ocean 1017 1043 s flux_o,flux_g,tslab,seaice) 1018 1044 1019 1045 USE interface_surf 1020 1046 USE dimphy 1021 1047 IMPLICIT none 1022 1048 c====================================================================== … … 1025 1051 c====================================================================== 1026 1052 #include "dimensions.h" 1027 #include "dimphy.h"1053 cym#include "dimphy.h" 1028 1054 #include "YOMCST.h" 1029 1055 #include "YOETHF.h" … … 1089 1115 c Flux thermique utiliser pour fondre la neige 1090 1116 REAL ffonte(klon) 1091 c Flux d'eau "perdu e" par la surface et nécessaire pour que limiter la1117 c Flux d'eau "perdu" par la surface et n�essaire pour que limiter la 1092 1118 c hauteur de neige, en kg/m2/s 1093 1119 REAL fqcalving(klon) 1120 c Quantite d'eau de fonte de la calotte kg/m?s 1121 REAL fqfonte(klon) 1094 1122 cIM "slab" ocean 1095 1123 REAL tslab(klon) !temperature du slab ocean (K) (OCEAN='slab ') … … 1139 1167 real sollw(klon), sollwdown(klon), swnet(klon), swdown(klon) 1140 1168 real p1lay(klon) 1141 c $$$C PB ajout pour soil1169 c@$$C PB ajout pour soil 1142 1170 LOGICAL soil_model 1143 1171 REAL tsoil(klon, nsoilmx) … … 1325 1353 s evap, fluxsens, fluxlat, dflux_l, dflux_s, 1326 1354 s tsol_rad, tsurf_new, alb_new, alblw, emis_new, z0_new, 1327 s pctsrf_new, agesno,fqcalving,f fonte, run_off_lic_0,1355 s pctsrf_new, agesno,fqcalving,fqfonte,ffonte, run_off_lic_0, 1328 1356 cIM "slab" ocean 1329 1357 s flux_o, flux_g, tslab, seaice) … … 1375 1403 e paprs,pplay,delp, 1376 1404 s d_ven,flux_v) 1405 use dimphy 1377 1406 IMPLICIT none 1378 1407 c====================================================================== … … 1397 1426 c flux_v---output-R- (diagnostic) flux du vent: (kg m/s)/(m**2 s) 1398 1427 c====================================================================== 1399 #include "dimensions.h"1400 #include "dimphy.h"1428 cym#include "dimensions.h" 1429 cym#include "dimphy.h" 1401 1430 #include "iniprint.h" 1402 1431 INTEGER knon … … 1500 1529 . qsurf, 1501 1530 . pcfm, pcfh) 1531 USE dimphy 1502 1532 IMPLICIT none 1503 1533 c====================================================================== … … 1522 1552 c pcfh-----output-R- coefficients a calculer (chaleur et humidite) 1523 1553 c====================================================================== 1524 #include "dimensions.h"1525 #include "dimphy.h"1554 cym#include "dimensions.h" 1555 cym#include "dimphy.h" 1526 1556 #include "YOMCST.h" 1527 1557 #include "indicesol.h" … … 1569 1599 PARAMETER (mixlen=35.0) 1570 1600 INTEGER isommet ! le sommet de la couche limite 1571 PARAMETER (isommet=klev)1601 cym PARAMETER (isommet=klev) 1572 1602 LOGICAL tvirtu ! calculer Ri d'une maniere plus performante 1573 1603 PARAMETER (tvirtu=.TRUE.) … … 1604 1634 LOGICAL appel1er 1605 1635 SAVE appel1er 1636 c$OMP THREADPRIVATE(appel1er) 1606 1637 c 1607 1638 c Fonctions thermodynamiques et fonctions d'instabilite … … 1617 1648 DATA appel1er /.TRUE./ 1618 1649 c 1650 cym 1651 isommet=klev 1652 1619 1653 IF (appel1er) THEN 1620 1654 if (prt_level > 9) THEN … … 1820 1854 SUBROUTINE coefkz2(nsrf, knon, paprs, pplay,t, 1821 1855 . pcfm, pcfh) 1856 USE dimphy 1822 1857 IMPLICIT none 1823 1858 c====================================================================== … … 1836 1871 c pcfh-----output-R- coefficients a calculer (chaleur et humidite) 1837 1872 c====================================================================== 1838 #include "dimensions.h"1839 #include "dimphy.h"1873 cym#include "dimensions.h" 1874 cym#include "dimphy.h" 1840 1875 #include "YOMCST.h" 1841 1876 #include "indicesol.h" … … 1923 1958 SUBROUTINE calbeta(dtime,indice,knon,snow,qsol, 1924 1959 . vbeta,vcal,vdif) 1960 USE dimphy 1925 1961 IMPLICIT none 1926 1962 c====================================================================== … … 1931 1967 c Calculer quelques parametres pour appliquer la couche limite 1932 1968 c ------------------------------------------------------------ 1933 #include "dimensions.h"1934 #include "dimphy.h"1969 cym#include "dimensions.h" 1970 cym#include "dimphy.h" 1935 1971 #include "YOMCST.h" 1936 1972 #include "indicesol.h" … … 2000 2036 . tsol,beta,u,v,t,q, 2001 2037 . cd_h, cd_m, pcfh, pcfm, cgh, cgq) 2038 USE dimphy 2002 2039 IMPLICIT none 2003 2040 c====================================================================== … … 2014 2051 c model. J. of Climate, vol. 6, 1825-1842. 2015 2052 c====================================================================== 2016 #include "dimensions.h"2017 #include "dimphy.h"2053 cym#include "dimensions.h" 2054 cym#include "dimphy.h" 2018 2055 #include "YOMCST.h" 2019 2056 #include "iniprint.h" … … 2034 2071 c 2035 2072 INTEGER isommet 2036 PARAMETER (isommet=klev)2073 cym PARAMETER (isommet=klev) 2037 2074 REAL vk 2038 2075 PARAMETER (vk=0.40) … … 2110 2147 c Initialisation 2111 2148 c 2149 cym 2150 isommet=klev 2151 2112 2152 DO i = 1, klon 2113 2153 pcfh(i,1) = cd_h(i) -
LMDZ4/trunk/libf/phylmd/cltrac.F
r524 r766 4 4 SUBROUTINE cltrac(dtime,coef,t,tr,flux,paprs,pplay,delp, 5 5 s d_tr) 6 USE dimphy 6 7 IMPLICIT none 7 8 c====================================================================== … … 25 26 c flux_tr--output-R- flux de tr 26 27 c====================================================================== 27 #include "dimensions.h"28 #include "dimphy.h"28 cym#include "dimensions.h" 29 cym#include "dimphy.h" 29 30 REAL dtime 30 31 REAL coef(klon,klev) -
LMDZ4/trunk/libf/phylmd/cltracrn.F
r644 r766 9 9 s d_tr,d_trs ) 10 10 11 USE dimphy 11 12 IMPLICIT none 12 13 c====================================================================== … … 42 43 c d_trs----output-R- le changement de "trs" 43 44 c====================================================================== 44 #include "dimensions.h"45 #include "dimphy.h"45 cym#include "dimensions.h" 46 cym#include "dimphy.h" 46 47 #include "YOMCST.h" 47 48 #include "indicesol.h" -
LMDZ4/trunk/libf/phylmd/coefkzmin.F
r524 r766 5 5 . ,km,kn) 6 6 c SUBROUTINE coefkzmin(ngrid,zlev,teta,ustar,km,kn) 7 USE dimphy 7 8 IMPLICIT NONE 8 9 9 #include "dimensions.h"10 #include "dimphy.h"10 cym#include "dimensions.h" 11 cym#include "dimphy.h" 11 12 #include "YOMCST.h" 12 13 … … 59 60 60 61 integer nlay,nlev 61 PARAMETER (nlay=klev)62 PARAMETER (nlev=klev+1)62 cym PARAMETER (nlay=klev) 63 cym PARAMETER (nlev=klev+1) 63 64 64 65 integer ig,k 65 66 66 real kap 67 save kap 68 data kap/0.4/ 67 real,parameter :: kap=0.4 69 68 70 69 real frif,falpha,fsm 71 70 real fl,zzz,zl0,zq2,zn2 72 71 73 72 nlay=klev 73 nlev=klev+1 74 74 c....................................................................... 75 75 c en attendant une version ou les zlev, et zlay soient -
LMDZ4/trunk/libf/phylmd/comgeomphy.F90
r629 r766 5 5 real,save,allocatable :: rlatd(:) 6 6 real,save,allocatable :: rlond(:) 7 !$OMP THREADPRIVATE(airephy,cuphy,cvphy,rlatd,rlond) 7 8 contains 8 9 … … 11 12 implicit none 12 13 13 allocate(airephy(klon)) 14 allocate(cuphy(klon)) 15 allocate(cvphy(klon)) 16 allocate(rlatd(klon)) 17 allocate(rlond(klon)) 14 15 allocate(airephy(klon_omp)) 16 allocate(cuphy(klon_omp)) 17 allocate(cvphy(klon_omp)) 18 allocate(rlatd(klon_omp)) 19 allocate(rlond(klon_omp)) 20 18 21 end subroutine InitComgeomphy 19 22 -
LMDZ4/trunk/libf/phylmd/compbl.h
r542 r766 1 1 integer iflag_pbl 2 2 common/compbl/iflag_pbl 3 !$OMP THREADPRIVATE(/compbl/) -
LMDZ4/trunk/libf/phylmd/concvl.F
r619 r766 12 12 13 13 c 14 USE dimphy 14 15 IMPLICIT none 15 16 c====================================================================== … … 46 47 c 47 48 #include "dimensions.h" 48 #include "dimphy.h"49 cym#include "dimphy.h" 49 50 c 50 51 integer NTRAC … … 82 83 INTEGER i,k,itra 83 84 REAL qs(klon,klev) 84 REAL cbmf(klon) 85 SAVE cbmf 85 cym REAL cbmf(klon) 86 cym SAVE cbmf 87 REAL,ALLOCATABLE,SAVE :: cbmf(:) 88 c$OMP THREADPRIVATE(cbmf) 86 89 INTEGER ifrst 87 90 SAVE ifrst 88 91 DATA ifrst /0/ 92 c$OMP THREADPRIVATE(ifrst) 93 89 94 #include "YOMCST.h" 90 95 #include "YOETHF.h" … … 97 102 IF (ifrst .EQ. 0) THEN 98 103 ifrst = 1 104 allocate(cbmf(klon)) 99 105 DO i = 1, klon 100 106 cbmf(i) = 0. -
LMDZ4/trunk/libf/phylmd/condsurf.F
r688 r766 2 2 c 3 3 SUBROUTINE condsurf( jour, jourvrai, lmt_bils ) 4 USE dimphy 4 5 IMPLICIT none 5 6 c … … 20 21 INTEGER epais(2) 21 22 c 22 #include "dimensions.h"23 #include "dimphy.h"23 cym#include "dimensions.h" 24 cym#include "dimphy.h" 24 25 #include "indicesol.h" 25 26 #include "temps.h" … … 37 38 INTEGER anneelim,anneemax 38 39 CHARACTER*20 fich 40 41 REAL :: lmt_bils_glo(klon2) 42 REAL,ALLOCATABLE,SAVE :: lmt_bils_mpi(:) 43 44 LOGICAL,SAVE :: first 45 c$OMP THREADPRIVATE(first) 39 46 cc 40 47 cc ..................................................................... … … 46 53 c 47 54 c 55 IF (first) THEN 56 ALLOCATE(lmt_bils_mpi(klon_mpi)) 57 ENDIF 58 48 59 IF (jour.LT.0 .OR. jour.GT.(360-1)) THEN 49 60 PRINT*,'Le jour demande n est pas correct: ', jour … … 80 91 c Ouvrir le fichier en format NetCDF: 81 92 c 93 c$OMP MASTER 94 IF (phy_rank==0) THEN 82 95 ierr = NF_OPEN (fich, NF_NOWRITE,nid) 83 96 IF (ierr.NE.NF_NOERR) THEN … … 93 106 debut(1) = 1 94 107 debut(2) = jourvrai 95 epais(1) = klon 108 epais(1) = klon2 96 109 epais(2) = 1 97 110 c … … 105 118 PRINT*,'debut,epais',debut,epais,'jour,jourvrai',jour,jourvrai 106 119 #ifdef NC_DOUBLE 107 ierr = NF_GET_VARA_DOUBLE(nid, nvarid,debut,epais,lmt_bils )120 ierr = NF_GET_VARA_DOUBLE(nid, nvarid,debut,epais,lmt_bils_glo) 108 121 #else 109 ierr = NF_GET_VARA_REAL(nid, nvarid,debut,epais,lmt_bils )122 ierr = NF_GET_VARA_REAL(nid, nvarid,debut,epais,lmt_bils_glo) 110 123 #endif 111 124 IF (ierr .NE. NF_NOERR) THEN … … 118 131 c 119 132 ierr = NF_CLOSE(nid) 133 134 ENDIF ! phyrank==0 135 136 CALL scatterField(lmt_bils_glo,lmt_bils_mpi,1) 137 c$OMP END MASTER 138 c$OMP BARRIER 139 CALL scatterField_omp(lmt_bils_mpi,lmt_bils,1) 140 120 141 c 121 142 c -
LMDZ4/trunk/libf/phylmd/conema3.F
r524 r766 9 9 . qcond_incld) 10 10 11 USE dimphy 11 12 IMPLICIT none 12 13 c====================================================================== … … 54 55 c 55 56 #include "dimensions.h" 56 #include "dimphy.h"57 cym#include "dimphy.h" 57 58 #include "conema3.h" 58 59 INTEGER i, l,m,itra … … 84 85 REAL qcond_incld(klon,klev) 85 86 c 86 REAL em_t(klev) 87 REAL em_q(klev) 88 REAL em_qs(klev) 89 REAL em_u(klev), em_v(klev), em_tra(klev,ntrac) 90 REAL em_ph(klev+1), em_p(klev) 91 REAL em_work1(klev), em_work2(klev) 92 REAL em_precip, em_d_t(klev), em_d_q(klev) 93 REAL em_d_u(klev), em_d_v(klev), em_d_tra(klev,ntrac) 94 REAL em_upwd(klev), em_dnwd(klev), em_dnwdbis(klev) 87 LOGICAL,SAVE :: first=.true. 88 c$OMP THREADPRIVATE(first) 89 90 cym REAL em_t(klev) 91 REAL,ALLOCATABLE,SAVE :: em_t(:) 92 c$OMP THREADPRIVATE(em_t) 93 cym REAL em_q(klev) 94 REAL,ALLOCATABLE,SAVE :: em_q(:) 95 c$OMP THREADPRIVATE(em_q) 96 cym REAL em_qs(klev) 97 REAL,ALLOCATABLE,SAVE :: em_qs(:) 98 c$OMP THREADPRIVATE(em_qs) 99 cym REAL em_u(klev), em_v(klev), em_tra(klev,ntrac) 100 REAL,ALLOCATABLE,SAVE :: em_u(:),em_v(:),em_tra(:,:) 101 c$OMP THREADPRIVATE(em_u,em_v,em_tra) 102 cym REAL em_ph(klev+1), em_p(klev) 103 REAL,ALLOCATABLE,SAVE ::em_ph(:),em_p(:) 104 c$OMP THREADPRIVATE(em_ph,em_p) 105 cym REAL em_work1(klev), em_work2(klev) 106 REAL,ALLOCATABLE,SAVE ::em_work1(:),em_work2(:) 107 c$OMP THREADPRIVATE(em_work1,em_work2) 108 cym REAL em_precip, em_d_t(klev), em_d_q(klev) 109 REAL,SAVE :: em_precip 110 c$OMP THREADPRIVATE(em_precip) 111 REAL,ALLOCATABLE,SAVE :: em_d_t(:),em_d_q(:) 112 c$OMP THREADPRIVATE(em_d_t,em_d_q) 113 cym REAL em_d_u(klev), em_d_v(klev), em_d_tra(klev,ntrac) 114 REAL,ALLOCATABLE,SAVE ::em_d_u(:),em_d_v(:),em_d_tra(:,:) 115 c$OMP THREADPRIVATE(em_d_u,em_d_v,em_d_tra) 116 cym REAL em_upwd(klev), em_dnwd(klev), em_dnwdbis(klev) 117 REAL,ALLOCATABLE,SAVE :: em_upwd(:),em_dnwd(:),em_dnwdbis(:) 118 c$OMP THREADPRIVATE(em_upwd,em_dnwd,em_dnwdbis) 95 119 REAL em_dtvpdt1(klev), em_dtvpdq1(klev) 96 120 REAL em_dplcldt, em_dplcldr 97 SAVE em_t,em_q, em_qs, em_ph, em_p, em_work1, em_work2 98 SAVE em_u,em_v, em_tra 99 SAVE em_d_u,em_d_v, em_d_tra 100 SAVE em_precip, em_d_t, em_d_q, em_upwd, em_dnwd, em_dnwdbis 121 cym SAVE em_t,em_q, em_qs, em_ph, em_p, em_work1, em_work2 122 cym SAVE em_u,em_v, em_tra 123 cym SAVE em_d_u,em_d_v, em_d_tra 124 cym SAVE em_precip, em_d_t, em_d_q, em_upwd, em_dnwd, em_dnwdbis 125 101 126 INTEGER em_bas, em_top 102 127 SAVE em_bas, em_top 103 128 c$OMP THREADPRIVATE(em_bas,em_top) 104 129 REAL em_wd 105 130 REAL em_qcond(klev) … … 113 138 cccccccccccccccccccccccccccccccccccccccccccccccccc 114 139 115 REAL emmip(klev) !variation de flux ascnon dilue i et i+1 116 SAVE emmip 117 real emMke(klev) 118 save emMke 140 cym REAL emmip(klev) !variation de flux ascnon dilue i et i+1 141 REAL,ALLOCATABLE,SAVE ::emmip(:) 142 c$OMP THREADPRIVATE(emmip) 143 cym SAVE emmip 144 cym real emMke(klev) 145 REAL,ALLOCATABLE,SAVE ::emMke(:) 146 c$OMP THREADPRIVATE(emMke) 147 cym save emMke 119 148 real top 120 149 real bas 121 real emMa(klev) 122 save emMa 150 cym real emMa(klev) 151 REAL,ALLOCATABLE,SAVE ::emMa(:) 152 c$OMP THREADPRIVATE(emMa) 153 cym save emMa 123 154 real Ma(klon,klev) 124 155 real Ment(klev,klev) … … 151 182 #include "YOETHF.h" 152 183 #include "FCTTRE.h" 153 184 185 if (first) then 186 187 allocate(em_t(klev)) 188 allocate(em_q(klev)) 189 allocate(em_qs(klev)) 190 allocate(em_u(klev), em_v(klev), em_tra(klev,ntrac)) 191 allocate(em_ph(klev+1), em_p(klev)) 192 allocate(em_work1(klev), em_work2(klev)) 193 allocate(em_d_t(klev), em_d_q(klev)) 194 allocate(em_d_u(klev), em_d_v(klev), em_d_tra(klev,ntrac)) 195 allocate(em_upwd(klev), em_dnwd(klev), em_dnwdbis(klev)) 196 allocate(emmip(klev)) 197 allocate(emMke(klev)) 198 allocate(emMa(klev)) 199 200 first=.false. 201 endif 202 154 203 qcond_incld(:,:) = 0. 155 204 c 156 c $$$ print*,'debut conema'205 c@$$ print*,'debut conema' 157 206 158 207 DO 999 i = 1, klon … … 170 219 em_tra(l,itra) = tra(i,l,itra) 171 220 enddo 172 c $$$ print*,'em_t',em_t173 c $$$ print*,'em_q',em_q174 c $$$ print*,'em_qs',em_qs175 c $$$ print*,'em_u',em_u176 c $$$ print*,'em_v',em_v177 c $$$ print*,'em_tra',em_tra178 c $$$ print*,'em_p',em_p221 c@$$ print*,'em_t',em_t 222 c@$$ print*,'em_q',em_q 223 c@$$ print*,'em_qs',em_qs 224 c@$$ print*,'em_u',em_u 225 c@$$ print*,'em_v',em_v 226 c@$$ print*,'em_tra',em_tra 227 c@$$ print*,'em_p',em_p 179 228 180 229 … … 184 233 zx_qs= r2es * FOEEW(zx_t,zdelta)/em_p(l)/100.0 185 234 zx_qs=MIN(0.5,zx_qs) 186 c $$$ print*,'zx_qs',zx_qs235 c@$$ print*,'zx_qs',zx_qs 187 236 zcor=1./(1.-retv*zx_qs) 188 237 zx_qs=zx_qs*zcor 189 238 em_qs(l) = zx_qs 190 c $$$ print*,'em_qs',em_qs239 c@$$ print*,'em_qs',em_qs 191 240 c 192 241 em_work1(l) = work1(i,l) … … 219 268 1793 format('w avant convect ',/,10(1X,E13.5)) 220 269 221 c $$$ print*,'avant convect'270 c@$$ print*,'avant convect' 222 271 ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 223 272 c -
LMDZ4/trunk/libf/phylmd/conema3.h
r524 r766 7 7 8 8 common/comconema/epmax,ok_adj_ema,iflag_clw 9 !$OMP THREADPRIVATE(/comconema/) -
LMDZ4/trunk/libf/phylmd/conemav.F
r524 r766 9 9 10 10 c 11 USE dimphy 11 12 IMPLICIT none 12 13 c====================================================================== … … 43 44 c 44 45 #include "dimensions.h" 45 #include "dimphy.h"46 cym#include "dimphy.h" 46 47 c 47 48 integer NTRAC … … 73 74 INTEGER i,k,itra 74 75 REAL qs(klon,klev) 75 REAL cbmf(klon) 76 SAVE cbmf 76 cym REAL cbmf(klon) 77 cym SAVE cbmf 78 REAL,ALLOCATABLE,SAVE :: cbmf(:) 79 c$OMP THREADPRIVATE(cbmf) 77 80 INTEGER ifrst 78 81 SAVE ifrst 79 82 DATA ifrst /0/ 83 c$OMP THREADPRIVATE(ifrst) 80 84 #include "YOMCST.h" 81 85 #include "YOETHF.h" … … 85 89 IF (ifrst .EQ. 0) THEN 86 90 ifrst = 1 91 allocate(cbmf(klon)) 87 92 DO i = 1, klon 88 93 cbmf(i) = 0. -
LMDZ4/trunk/libf/phylmd/conf_phys.F90
r702 r766 23 23 include "clesphys.inc" 24 24 include "compbl.h" 25 #include "control.inc"25 include "control.inc" 26 26 ! 27 27 ! Configuration de la "physique" de LMDZ a l'aide de la fonction … … 49 49 REAL :: bl95_b0, bl95_b1 50 50 real :: fact_cldcon, facttemps,ratqsbas,ratqshaut 51 !IM integer :: iflag_cldcon, if_ebil52 51 integer :: iflag_cldcon 52 53 character (len = 6),SAVE :: ocean_omp 54 logical,SAVE :: ok_veget_omp, ok_newmicro_omp 55 logical,SAVE :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp 56 LOGICAL,SAVE :: ok_ade_omp, ok_aie_omp 57 REAL,SAVE :: bl95_b0_omp, bl95_b1_omp 58 real,SAVE :: fact_cldcon_omp, facttemps_omp,ratqsbas_omp 59 real,SAVE :: ratqshaut_omp 60 integer,SAVE :: iflag_cldcon_omp, ip_ebil_phy_omp 53 61 54 62 ! Local … … 57 65 58 66 integer :: iflag_thermals,nsplit_thermals 59 ! 60 ! 61 ! 62 63 67 integer,SAVE :: iflag_thermals_omp,nsplit_thermals_omp 68 69 REAL,SAVE :: R_ecc_omp,R_peri_omp,R_incl_omp,solaire_omp,co2_ppm_omp 70 REAL,SAVE :: RCO2_omp,CH4_ppb_omp,RCH4_omp,N2O_ppb_omp,RN2O_omp,CFC11_ppt_omp 71 REAL,SAVE :: RCFC11_omp,CFC12_ppt_omp,RCFC12_omp,epmax_omp 72 LOGICAL,SAVE :: ok_adj_ema_omp 73 INTEGER,SAVE :: iflag_clw_omp 74 REAL,SAVE :: cld_lc_lsc_omp,cld_lc_con_omp,cld_tau_lsc_omp,cld_tau_con_omp 75 REAL,SAVE :: ffallv_lsc_omp, ffallv_con_omp,coef_eva_omp 76 LOGICAL,SAVE :: reevap_ice_omp 77 INTEGER,SAVE :: iflag_pdf_omp 78 REAL,SAVE :: rad_froid_omp, rad_chau1_omp, rad_chau2_omp 79 INTEGER,SAVE :: top_height_omp,overlap_omp 80 REAL,SAVE :: cdmmax_omp,cdhmax_omp,ksta_omp,ksta_ter_omp 81 LOGICAL,SAVE :: ok_kzmin_omp 82 INTEGER,SAVE :: iflag_pbl_omp,lev_histhf_omp,lev_histday_omp,lev_histmth_omp 83 CHARACTER*4, SAVE :: type_run_omp 84 LOGICAL,SAVE :: ok_isccp_omp 85 REAL,SAVE :: lonmin_ins_omp, lonmax_ins_omp, latmin_ins_omp, latmax_ins_omp 86 REAL,SAVE :: ecrit_hf_omp, ecrit_day_omp, ecrit_mth_omp, ecrit_reg_omp 87 REAL,SAVE :: ecrit_tra_omp 88 LOGICAL, SAVE :: ok_slab_sicOBS_omp 89 REAL,SAVE :: cvl_corr_omp 90 LOGICAL,SAVE :: ok_lic_melt_omp 91 ! 92 ! 93 ! 94 95 !$OMP MASTER 64 96 !Config Key = OCEAN 65 97 !Config Desc = Type d'ocean … … 67 99 !Config Help = Type d'ocean utilise: force, slab,couple 68 100 ! 69 ocean = 'force '70 call getin('OCEAN', ocean )101 ocean_omp = 'force ' 102 call getin('OCEAN', ocean_omp) 71 103 ! 72 104 !Config Key = VEGET … … 75 107 !Config Help = Type de modele de vegetation utilise 76 108 ! 77 ok_veget = .false.78 call getin('VEGET', ok_veget )109 ok_veget_omp = .false. 110 call getin('VEGET', ok_veget_omp) 79 111 ! 80 112 !Config Key = OK_journe … … 84 116 ! journalieres 85 117 ! 86 ok_journe = .false.87 call getin('OK_journe', ok_journe )118 ok_journe_omp = .false. 119 call getin('OK_journe', ok_journe_omp) 88 120 ! 89 121 !Config Key = OK_mensuel … … 93 125 ! mensuelles 94 126 ! 95 ok_mensuel = .true.96 call getin('OK_mensuel', ok_mensuel )127 ok_mensuel_omp = .true. 128 call getin('OK_mensuel', ok_mensuel_omp) 97 129 ! 98 130 !Config Key = OK_instan … … 102 134 ! instantanees 103 135 ! 104 ok_instan = .false.105 call getin('OK_instan', ok_instan )136 ok_instan_omp = .false. 137 call getin('OK_instan', ok_instan_omp) 106 138 ! 107 139 !Config Key = ok_ade … … 110 142 !Config Help = Used in radlwsw.F 111 143 ! 112 ok_ade = .false.113 call getin('ok_ade', ok_ade )144 ok_ade_omp = .false. 145 call getin('ok_ade', ok_ade_omp) 114 146 115 147 ! … … 119 151 !Config Help = Used in nuage.F and radlwsw.F 120 152 ! 121 ok_aie = .false.122 call getin('ok_aie', ok_aie )153 ok_aie_omp = .false. 154 call getin('ok_aie', ok_aie_omp) 123 155 124 156 ! … … 128 160 !Config Help = Used in nuage.F 129 161 ! 130 bl95_b0 = 2.131 call getin('bl95_b0', bl95_b0 )162 bl95_b0_omp = 2. 163 call getin('bl95_b0', bl95_b0_omp) 132 164 133 165 !Config Key = bl95_b1 … … 136 168 !Config Help = Used in nuage.F 137 169 ! 138 bl95_b1 = 0.2139 call getin('bl95_b1', bl95_b1 )170 bl95_b1_omp = 0.2 171 call getin('bl95_b1', bl95_b1_omp) 140 172 141 173 ! … … 147 179 ! 148 180 ! 149 ip_ebil_phy = 0150 call getin('ip_ebil_phy', ip_ebil_phy )181 ip_ebil_phy_omp = 0 182 call getin('ip_ebil_phy', ip_ebil_phy_omp) 151 183 !! 152 184 !! Constante solaire & Parametres orbitaux & taux gaz effet de serre BEG … … 158 190 ! 159 191 !valeur AMIP II 160 R_ecc = 0.016715161 call getin('R_ecc', R_ecc )192 R_ecc_omp = 0.016715 193 call getin('R_ecc', R_ecc_omp) 162 194 !! 163 195 !Config Key = R_peri … … 168 200 ! 169 201 !valeur AMIP II 170 R_peri = 102.7171 call getin('R_peri', R_peri )202 R_peri_omp = 102.7 203 call getin('R_peri', R_peri_omp) 172 204 !! 173 205 !Config Key = R_incl … … 178 210 ! 179 211 !valeur AMIP II 180 R_incl = 23.441181 call getin('R_incl', R_incl )212 R_incl_omp = 23.441 213 call getin('R_incl', R_incl_omp) 182 214 !! 183 215 !Config Key = solaire … … 188 220 ! 189 221 !valeur AMIP II 190 solaire = 1365.191 call getin('solaire', solaire )222 solaire_omp = 1365. 223 call getin('solaire', solaire_omp) 192 224 !! 193 225 !Config Key = co2_ppm … … 198 230 ! 199 231 !valeur AMIP II 200 co2_ppm = 348.201 call getin('co2_ppm', co2_ppm )232 co2_ppm_omp = 348. 233 call getin('co2_ppm', co2_ppm_omp) 202 234 !! 203 235 !Config Key = RCO2 … … 209 241 ! RCO2 = 5.286789092164308E-04 210 242 !ancienne valeur 211 RCO2 = co2_ppm* 1.0e-06 * 44.011/28.97 ! pour co2_ppm=348.243 RCO2_omp = co2_ppm_omp * 1.0e-06 * 44.011/28.97 ! pour co2_ppm=348. 212 244 213 245 !! call getin('RCO2', RCO2) … … 228 260 zzz = 1650. 229 261 call getin('CH4_ppb', zzz) 230 CH4_ppb = zzz231 RCH4 = CH4_ppb* 1.0E-09 * 16.043/28.97262 CH4_ppb_omp = zzz 263 RCH4_omp = CH4_ppb_omp * 1.0E-09 * 16.043/28.97 232 264 !! 233 265 !Config Key = RN2O … … 246 278 zzz=306. 247 279 call getin('N2O_ppb', zzz) 248 N2O_ppb = zzz249 RN2O = N2O_ppb* 1.0E-09 * 44.013/28.97280 N2O_ppb_omp = zzz 281 RN2O_omp = N2O_ppb_omp * 1.0E-09 * 44.013/28.97 250 282 !! 251 283 !Config Key = RCFC11 … … 258 290 zzz = 280. 259 291 call getin('CFC11_ppt',zzz) 260 CFC11_ppt = zzz261 RCFC11 =CFC11_ppt* 1.0E-12 * 137.3686/28.97292 CFC11_ppt_omp = zzz 293 RCFC11_omp=CFC11_ppt_omp* 1.0E-12 * 137.3686/28.97 262 294 ! RCFC11 = 1.327690990680013E-09 263 295 !OK call getin('RCFC11', RCFC11) … … 272 304 zzz = 484. 273 305 call getin('CFC12_ppt',zzz) 274 CFC12_ppt = zzz275 RCFC12 = CFC12_ppt* 1.0E-12 * 120.9140/28.97306 CFC12_ppt_omp = zzz 307 RCFC12_omp = CFC12_ppt_omp * 1.0E-12 * 120.9140/28.97 276 308 ! RCFC12 = 2.020102726958923E-09 277 309 !OK call getin('RCFC12', RCFC12) … … 281 313 !! KE 282 314 ! 315 316 !Config key = cvl_corr 317 !Config Desc = Facteur multiplication des precip convectives dans KE 318 !Config Def = 1.00 319 !Config Help = 1.02 pour un moderne ou un pre-ind. A ajuster pour un glaciaire 320 cvl_corr_omp = 1.00 321 CALL getin('cvl_corr', cvl_corr_omp) 322 323 283 324 !Config Key = epmax 284 325 !Config Desc = Efficacite precip … … 286 327 !Config Help = 287 328 ! 288 epmax = .993289 call getin('epmax', epmax )329 epmax_omp = .993 330 call getin('epmax', epmax_omp) 290 331 ! 291 332 !Config Key = ok_adj_ema … … 294 335 !Config Help = 295 336 ! 296 ok_adj_ema = .false.297 call getin('ok_adj_ema',ok_adj_ema )337 ok_adj_ema_omp = .false. 338 call getin('ok_adj_ema',ok_adj_ema_omp) 298 339 ! 299 340 !Config Key = iflag_clw … … 302 343 !Config Help = 303 344 ! 304 iflag_clw = 0305 call getin('iflag_clw',iflag_clw )345 iflag_clw_omp = 0 346 call getin('iflag_clw',iflag_clw_omp) 306 347 ! 307 348 !Config Key = cld_lc_lsc … … 310 351 !Config Help = 311 352 ! 312 cld_lc_lsc = 2.6e-4313 call getin('cld_lc_lsc',cld_lc_lsc )353 cld_lc_lsc_omp = 2.6e-4 354 call getin('cld_lc_lsc',cld_lc_lsc_omp) 314 355 ! 315 356 !Config Key = cld_lc_con … … 318 359 !Config Help = 319 360 ! 320 cld_lc_con = 2.6e-4321 call getin('cld_lc_con',cld_lc_con )361 cld_lc_con_omp = 2.6e-4 362 call getin('cld_lc_con',cld_lc_con_omp) 322 363 ! 323 364 !Config Key = cld_tau_lsc … … 326 367 !Config Help = 327 368 ! 328 cld_tau_lsc = 3600.329 call getin('cld_tau_lsc',cld_tau_lsc )369 cld_tau_lsc_omp = 3600. 370 call getin('cld_tau_lsc',cld_tau_lsc_omp) 330 371 ! 331 372 !Config Key = cld_tau_con … … 334 375 !Config Help = 335 376 ! 336 cld_tau_con = 3600.337 call getin('cld_tau_con',cld_tau_con )377 cld_tau_con_omp = 3600. 378 call getin('cld_tau_con',cld_tau_con_omp) 338 379 ! 339 380 !Config Key = ffallv_lsc … … 342 383 !Config Help = 343 384 ! 344 ffallv_lsc = 1.345 call getin('ffallv_lsc',ffallv_lsc )385 ffallv_lsc_omp = 1. 386 call getin('ffallv_lsc',ffallv_lsc_omp) 346 387 ! 347 388 !Config Key = ffallv_con … … 350 391 !Config Help = 351 392 ! 352 ffallv_con = 1.353 call getin('ffallv_con',ffallv_con )393 ffallv_con_omp = 1. 394 call getin('ffallv_con',ffallv_con_omp) 354 395 ! 355 396 !Config Key = coef_eva … … 358 399 !Config Help = 359 400 ! 360 coef_eva = 2.e-5361 call getin('coef_eva',coef_eva )401 coef_eva_omp = 2.e-5 402 call getin('coef_eva',coef_eva_omp) 362 403 ! 363 404 !Config Key = reevap_ice … … 366 407 !Config Help = 367 408 ! 368 reevap_ice = .false.369 call getin('reevap_ice',reevap_ice )409 reevap_ice_omp = .false. 410 call getin('reevap_ice',reevap_ice_omp) 370 411 ! 371 412 !Config Key = iflag_cldcon … … 374 415 !Config Help = 375 416 ! 376 iflag_cldcon = 1377 call getin('iflag_cldcon',iflag_cldcon )417 iflag_cldcon_omp = 1 418 call getin('iflag_cldcon',iflag_cldcon_omp) 378 419 379 420 ! … … 383 424 !Config Help = 384 425 ! 385 iflag_pdf = 0386 call getin('iflag_pdf',iflag_pdf )426 iflag_pdf_omp = 0 427 call getin('iflag_pdf',iflag_pdf_omp) 387 428 ! 388 429 !Config Key = fact_cldcon … … 391 432 !Config Help = 392 433 ! 393 fact_cldcon = 0.375394 call getin('fact_cldcon',fact_cldcon )434 fact_cldcon_omp = 0.375 435 call getin('fact_cldcon',fact_cldcon_omp) 395 436 396 437 ! … … 400 441 !Config Help = 401 442 ! 402 facttemps = 1.e-4403 call getin('facttemps',facttemps )443 facttemps_omp = 1.e-4 444 call getin('facttemps',facttemps_omp) 404 445 405 446 ! … … 409 450 !Config Help = 410 451 ! 411 ok_newmicro = .true.412 call getin('ok_newmicro',ok_newmicro )452 ok_newmicro_omp = .true. 453 call getin('ok_newmicro',ok_newmicro_omp) 413 454 ! 414 455 !Config Key = ratqsbas … … 417 458 !Config Help = 418 459 ! 419 ratqsbas = 0.01420 call getin('ratqsbas',ratqsbas )460 ratqsbas_omp = 0.01 461 call getin('ratqsbas',ratqsbas_omp) 421 462 ! 422 463 !Config Key = ratqshaut … … 425 466 !Config Help = 426 467 ! 427 ratqshaut = 0.3428 call getin('ratqshaut',ratqshaut )468 ratqshaut_omp = 0.3 469 call getin('ratqshaut',ratqshaut_omp) 429 470 430 471 ! … … 434 475 !Config Help = 435 476 ! 436 rad_froid = 35.0437 call getin('rad_froid',rad_froid )477 rad_froid_omp = 35.0 478 call getin('rad_froid',rad_froid_omp) 438 479 439 480 ! … … 443 484 !Config Help = 444 485 ! 445 rad_chau1 = 13.0446 call getin('rad_chau1',rad_chau1 )486 rad_chau1_omp = 13.0 487 call getin('rad_chau1',rad_chau1_omp) 447 488 448 489 ! … … 452 493 !Config Help = 453 494 ! 454 rad_chau2 = 9.0455 call getin('rad_chau2',rad_chau2 )495 rad_chau2_omp = 9.0 496 call getin('rad_chau2',rad_chau2_omp) 456 497 457 498 ! … … 461 502 !Config Help = 462 503 ! 463 top_height = 3464 call getin('top_height',top_height )504 top_height_omp = 3 505 call getin('top_height',top_height_omp) 465 506 466 507 ! … … 470 511 !Config Help = 471 512 ! 472 overlap = 3473 call getin('overlap',overlap )513 overlap_omp = 3 514 call getin('overlap',overlap_omp) 474 515 475 516 … … 481 522 !Config Help = 482 523 ! 483 cdmmax = 1.3E-3484 call getin('cdmmax',cdmmax )524 cdmmax_omp = 1.3E-3 525 call getin('cdmmax',cdmmax_omp) 485 526 486 527 ! … … 490 531 !Config Help = 491 532 ! 492 cdhmax = 1.1E-3493 call getin('cdhmax',cdhmax )533 cdhmax_omp = 1.1E-3 534 call getin('cdhmax',cdhmax_omp) 494 535 495 536 !261103 … … 500 541 !Config Help = 501 542 ! 502 ksta = 1.0e-10503 call getin('ksta',ksta )543 ksta_omp = 1.0e-10 544 call getin('ksta',ksta_omp) 504 545 505 546 ! … … 509 550 !Config Help = 510 551 ! 511 ksta_ter = 1.0e-10512 call getin('ksta_ter',ksta_ter )552 ksta_ter_omp = 1.0e-10 553 call getin('ksta_ter',ksta_ter_omp) 513 554 514 555 ! … … 518 559 !Config Help = 519 560 ! 520 ok_kzmin = .true. 521 call getin('ok_kzmin',ok_kzmin) 561 ok_kzmin_omp = .true. 562 call getin('ok_kzmin',ok_kzmin_omp) 563 564 !Config Key = ok_lic_melt 565 !Config Desc = Prise en compte de la fonte de la calotte dans le bilan d'eau 566 !Config Def = .false. 567 !Config Help = mettre a .false. pour assurer la conservation en eau 568 ok_lic_melt_omp = .false. 569 call getin('ok_lic_melt', ok_lic_melt_omp) 522 570 523 571 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 530 578 !Config Help = 531 579 ! 532 iflag_pbl = 1533 call getin('iflag_pbl',iflag_pbl )580 iflag_pbl_omp = 1 581 call getin('iflag_pbl',iflag_pbl_omp) 534 582 ! 535 583 !Config Key = iflag_thermals … … 538 586 !Config Help = 539 587 ! 540 iflag_thermals = 0541 call getin('iflag_thermals',iflag_thermals )588 iflag_thermals_omp = 0 589 call getin('iflag_thermals',iflag_thermals_omp) 542 590 ! 543 591 ! … … 547 595 !Config Help = 548 596 ! 549 nsplit_thermals = 1550 call getin('nsplit_thermals',nsplit_thermals )597 nsplit_thermals_omp = 1 598 call getin('nsplit_thermals',nsplit_thermals_omp) 551 599 552 600 … … 558 606 !Config Help = 559 607 ! 560 lev_histhf = 1561 call getin('lev_histhf',lev_histhf )608 lev_histhf_omp = 1 609 call getin('lev_histhf',lev_histhf_omp) 562 610 563 611 ! … … 567 615 !Config Help = 568 616 ! 569 lev_histday = 1570 call getin('lev_histday',lev_histday )617 lev_histday_omp = 1 618 call getin('lev_histday',lev_histday_omp) 571 619 572 620 ! … … 576 624 !Config Help = 577 625 ! 578 lev_histmth = 2579 call getin('lev_histmth',lev_histmth )580 581 !626 lev_histmth_omp = 2 627 call getin('lev_histmth',lev_histmth_omp) 628 629 ! 582 630 !Config Key = type_run 583 631 !Config Desc = … … 585 633 !Config Help = 586 634 ! 587 type_run = 'AMIP'588 call getin('type_run',type_run )589 590 !635 type_run_omp = 'AMIP' 636 call getin('type_run',type_run_omp) 637 638 ! 591 639 !Config Key = ok_isccp 592 640 !Config Desc = … … 595 643 ! 596 644 ! ok_isccp = .true. 597 ok_isccp = .false.598 call getin('ok_isccp',ok_isccp )645 ok_isccp_omp = .false. 646 call getin('ok_isccp',ok_isccp_omp) 599 647 600 648 ! … … 607 655 !Config Help = 608 656 ! 609 lonmin_ins = 100.610 call getin('lonmin_ins',lonmin_ins )657 lonmin_ins_omp = 100. 658 call getin('lonmin_ins',lonmin_ins_omp) 611 659 ! 612 660 !Config Key = lonmax_ins … … 616 664 ! 617 665 lonmax_ins = 130. 618 call getin('lonmax_ins',lonmax_ins )666 call getin('lonmax_ins',lonmax_ins_omp) 619 667 ! 620 668 !Config Key = latmin_ins … … 623 671 !Config Help = 624 672 ! 625 latmin_ins = -20.626 call getin('latmin_ins',latmin_ins )673 latmin_ins_omp = -20. 674 call getin('latmin_ins',latmin_ins_omp) 627 675 ! 628 676 !Config Key = latmax_ins … … 631 679 !Config Help = 632 680 ! 633 latmax_ins = 20.634 call getin('latmax_ins',latmax_ins )681 latmax_ins_omp = 20. 682 call getin('latmax_ins',latmax_ins_omp) 635 683 ! 636 684 !Config Key = ecrit_hf … … 639 687 !Config Help = 640 688 ! 641 ecrit_hf = 1./8.642 call getin('ecrit_hf',ecrit_hf )689 ecrit_hf_omp = 1./8. 690 call getin('ecrit_hf',ecrit_hf_omp) 643 691 ! 644 692 !Config Key = ecrit_day … … 647 695 !Config Help = 648 696 ! 649 ecrit_day = 1.0650 call getin('ecrit_day',ecrit_day )697 ecrit_day_omp = 1.0 698 call getin('ecrit_day',ecrit_day_omp) 651 699 ! 652 700 !Config Key = ecrit_mth … … 655 703 !Config Help = 656 704 ! 657 ecrit_mth = 30.658 call getin('ecrit_mth',ecrit_mth )705 ecrit_mth_omp = 30. 706 call getin('ecrit_mth',ecrit_mth_omp) 659 707 ! 660 708 !Config Key = ecrit_tra … … 663 711 !Config Help = 664 712 ! 665 ecrit_tra = 30.666 call getin('ecrit_tra',ecrit_tra )713 ecrit_tra_omp = 30. 714 call getin('ecrit_tra',ecrit_tra_omp) 667 715 ! 668 716 !Config Key = ecrit_reg … … 671 719 !Config Help = 672 720 ! 673 ecrit_reg = 0.25 !4 fois par jour674 call getin('ecrit_reg',ecrit_reg )721 ecrit_reg_omp = 0.25 !4 fois par jour 722 call getin('ecrit_reg',ecrit_reg_omp) 675 723 ! 676 724 ! … … 682 730 ! de glace de mer Observee 683 731 ! 684 ok_slab_sicOBS = .true. 685 call getin('ok_slab_sicOBS', ok_slab_sicOBS) 732 ok_slab_sicOBS_omp = .true. 733 call getin('ok_slab_sicOBS', ok_slab_sicOBS_omp) 734 735 736 !$OMP END MASTER 737 !$OMP BARRIER 738 739 R_ecc = R_ecc_omp 740 R_peri = R_peri_omp 741 R_incl = R_incl_omp 742 solaire = solaire_omp 743 co2_ppm = co2_ppm_omp 744 RCO2 = RCO2_omp 745 CH4_ppb = CH4_ppb_omp 746 RCH4 = RCH4_omp 747 N2O_ppb = N2O_ppb_omp 748 RN2O = RN2O_omp 749 CFC11_ppt = CFC11_ppt_omp 750 RCFC11 = RCFC11_omp 751 CFC12_ppt = CFC12_ppt_omp 752 RCFC12 = RCFC12_omp 753 epmax = epmax_omp 754 ok_adj_ema = ok_adj_ema_omp 755 iflag_clw = iflag_clw_omp 756 cld_lc_lsc = cld_lc_lsc_omp 757 cld_lc_con = cld_lc_con_omp 758 cld_tau_lsc = cld_tau_lsc_omp 759 cld_tau_con = cld_tau_con_omp 760 ffallv_lsc = ffallv_lsc_omp 761 ffallv_con = ffallv_con_omp 762 coef_eva = coef_eva_omp 763 reevap_ice = reevap_ice_omp 764 iflag_pdf = iflag_pdf_omp 765 rad_froid = rad_froid_omp 766 rad_chau1 = rad_chau1_omp 767 rad_chau2 = rad_chau2_omp 768 top_height = top_height_omp 769 overlap = overlap_omp 770 cdmmax = cdmmax_omp 771 cdhmax = cdhmax_omp 772 ksta = ksta_omp 773 ksta_ter = ksta_ter_omp 774 ok_kzmin = ok_kzmin_omp 775 iflag_pbl = iflag_pbl_omp 776 lev_histhf = lev_histhf_omp 777 lev_histday = lev_histday_omp 778 lev_histmth = lev_histmth_omp 779 780 ocean = ocean_omp 781 ok_veget = ok_veget_omp 782 ok_newmicro = ok_newmicro_omp 783 ok_journe = ok_journe_omp 784 ok_mensuel = ok_mensuel_omp 785 ok_instan = ok_instan_omp 786 ok_ade = ok_ade_omp 787 ok_aie = ok_aie_omp 788 bl95_b0 = bl95_b0_omp 789 bl95_b1 = bl95_b1_omp 790 fact_cldcon = fact_cldcon_omp 791 facttemps = facttemps_omp 792 ratqsbas = ratqsbas_omp 793 ratqshaut = ratqshaut_omp 794 iflag_cldcon = iflag_cldcon_omp 795 ip_ebil_phy = ip_ebil_phy_omp 796 iflag_thermals = iflag_thermals_omp 797 nsplit_thermals = nsplit_thermals_omp 798 type_run = type_run_omp 799 ok_isccp = ok_isccp_omp 800 lonmin_ins = lonmin_ins_omp 801 lonmax_ins = lonmax_ins_omp 802 latmin_ins = latmin_ins_omp 803 latmax_ins = latmax_ins_omp 804 ecrit_hf = ecrit_hf_omp 805 ecrit_day = ecrit_day_omp 806 ecrit_mth = ecrit_mth_omp 807 ecrit_tra = ecrit_tra_omp 808 ecrit_reg = ecrit_reg_omp 809 ok_slab_sicOBS = ok_slab_sicOBS_omp 810 cvl_corr = cvl_corr_omp 811 ok_lic_melt = ok_lic_melt_omp 812 813 !$OMP MASTER 686 814 687 815 write(numout,*)' ##############################################' … … 703 831 write(numout,*)' CFC11_ppt=',CFC11_ppt,' RCFC11 = ',RCFC11 704 832 write(numout,*)' CFC12_ppt=',CFC12_ppt,' RCFC12 = ',RCFC12 833 write(numout,*)' cvl_corr=', cvl_corr 834 write(numout,*)'ok_lic_melt=', ok_lic_melt 705 835 write(numout,*)' epmax = ', epmax 706 836 write(numout,*)' ok_adj_ema = ', ok_adj_ema … … 741 871 write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',& 742 872 & lonmin_ins, lonmax_ins, latmin_ins, latmax_ins 743 write(numout,*)' ecrit_ hf, day, mth, reg , tra',&873 write(numout,*)' ecrit_ hf, day, mth, reg',& 744 874 & ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra 875 876 !$OMP END MASTER 877 745 878 return 746 879 747 880 end subroutine conf_phys 748 881 … … 761 894 762 895 REAL :: tau_calv 896 REAL,SAVE :: tau_calv_omp 763 897 764 898 ! Local … … 770 904 !Config Help = 771 905 ! 772 tau_calv = 360. 773 call getin('tau_calv',tau_calv) 774 906 tau_calv_omp = 360.*10. 907 !$OMP MASTER 908 call getin('tau_calv',tau_calv_omp) 909 !$OMP END MASTER 910 !$OMP BARRIER 911 912 tau_calv=tau_calv_omp 913 914 !$OMP MASTER 775 915 write(numout,*)' ##############################################' 776 916 WRITE(numout,*)' Configuration de l''interface atm/surfaces : ' 777 917 WRITE(numout,*)' tau_calv = ',tau_calv 918 !$OMP END MASTER 919 778 920 return 779 921 -
LMDZ4/trunk/libf/phylmd/conflx.F
r524 r766 8 8 s kcbot, kctop, kdtop, pmflxr, pmflxs) 9 9 c 10 USE dimphy 10 11 IMPLICIT none 11 12 c====================================================================== … … 17 18 c et lessivage des traceurs passifs. 18 19 c====================================================================== 19 #include "dimensions.h"20 #include "dimphy.h"20 cym#include "dimensions.h" 21 cym#include "dimphy.h" 21 22 #include "YOMCST.h" 22 23 #include "YOETHF.h" … … 214 215 . pmfu, pmfd, pen_u, pde_u, pen_d, pde_d, 215 216 . dt_con, dq_con, pmflxr, pmflxs) 217 USE dimphy 216 218 IMPLICIT none 217 219 C ------------------------------------------------------------------ 218 #include "dimensions.h"219 #include "dimphy.h"220 cym#include "dimensions.h" 221 cym#include "dimphy.h" 220 222 #include "YOMCST.h" 221 223 #include "YOETHF.h" … … 265 267 SAVE firstcal 266 268 DATA firstcal / .TRUE. / 269 c$OMP THREADPRIVATE(firstcal) 267 270 C--------------------------------------------------------------------- 268 271 IF (firstcal) THEN … … 504 507 . pdmfdp, pmfu, pmfus, pmfuq, pdmfup, pdpmel, plu, plude, 505 508 . klab,pen_u, pde_u, pen_d, pde_d) 509 USE dimphy 506 510 IMPLICIT none 507 511 C---------------------------------------------------------------------- … … 510 514 C AND INITIALIZES VALUES FOR UPDRAFTS 511 515 C---------------------------------------------------------------------- 512 #include "dimensions.h"513 #include "dimphy.h"516 cym#include "dimensions.h" 517 cym#include "dimphy.h" 514 518 #include "YOMCST.h" 515 519 #include "YOETHF.h" … … 629 633 SUBROUTINE flxbase(ptenh, pqenh, pgeoh, paph, 630 634 * ptu, pqu, plu, ldcum, kcbot, klab) 635 USE dimphy 631 636 IMPLICIT none 632 637 C---------------------------------------------------------------------- … … 641 646 C (NON ENTRAINING PLUME,I.E.CONSTANT MASSFLUX) 642 647 C---------------------------------------------------------------------- 643 #include "dimensions.h"644 #include "dimphy.h"648 cym#include "dimensions.h" 649 cym#include "dimphy.h" 645 650 #include "YOMCST.h" 646 651 #include "YOETHF.h" … … 714 719 . pmful, plude, pdmfup, kcbot, kctop, kctop0, kcum, 715 720 . pen_u, pde_u) 721 USE dimphy 716 722 IMPLICIT none 717 723 C---------------------------------------------------------------------- … … 719 725 C FOR CUMULUS PARAMETERIZATION 720 726 C---------------------------------------------------------------------- 721 #include "dimensions.h"722 #include "dimphy.h"727 cym#include "dimensions.h" 728 cym#include "dimphy.h" 723 729 #include "YOMCST.h" 724 730 #include "YOETHF.h" … … 1018 1024 . , pten, prfl, psfl, pdpmel, ktopm2 1019 1025 . , pmflxr, pmflxs) 1026 USE dimphy 1020 1027 IMPLICIT none 1021 1028 C---------------------------------------------------------------------- … … 1023 1030 C FLUXES IN THE CLOUD LAYER AND IN THE SUBCLOUD LAYER 1024 1031 C---------------------------------------------------------------------- 1025 #include "dimensions.h"1026 #include "dimphy.h"1032 cym#include "dimensions.h" 1033 cym#include "dimphy.h" 1027 1034 #include "YOMCST.h" 1028 1035 #include "YOETHF.h" 1029 1036 #include "YOECUMF.h" 1030 1037 C 1031 REAL cevapcu(kl ev)1038 REAL cevapcu(klon,klev) 1032 1039 C ----------------------------------------------------------------- 1033 1040 REAL pqen(klon,klev), pqenh(klon,klev), pqsen(klon,klev) … … 1064 1071 c 1065 1072 DO 101 k=1,klev 1066 CEVAPCU(k)=1.93E-6*261.*SQRT(1.E3/(38.3*0.293) 1067 1 *SQRT(0.5*(paph(1,k)+paph(1,k+1))/paph(1,klev+1)) ) * 0.5/RG 1073 DO i=1,klon 1074 CEVAPCU(i,k)=1.93E-6*261.*SQRT(1.E3/(38.3*0.293) 1075 1 *SQRT(0.5*(paph(i,k)+paph(i,k+1))/paph(i,klev+1)) ) * 0.5/RG 1076 ENDDO 1068 1077 101 CONTINUE 1069 1078 c … … 1213 1222 IF (zrfl.GT.1.0E-20) THEN 1214 1223 zrnew=(MAX(0.,SQRT(zrfl/zcucov)- 1215 . CEVAPCU( k)*(paph(i,k+1)-paph(i,k))*1224 . CEVAPCU(i,k)*(paph(i,k+1)-paph(i,k))* 1216 1225 . MAX(0.,pqsen(i,k)-pqen(i,k))))**2*zcucov 1217 1226 zrmin=zrfl-zcucov*MAX(0.,0.8*pqsen(i,k)-pqen(i,k)) … … 1262 1271 . , pmfus, pmfds, pmfuq, pmfdq, pmful, pdmfup, pdmfdp 1263 1272 . , pdpmel, dt_con, dq_con) 1273 USE dimphy 1264 1274 IMPLICIT none 1265 1275 c---------------------------------------------------------------------- 1266 1276 c calculer les tendances T et Q 1267 1277 c---------------------------------------------------------------------- 1268 #include "dimensions.h"1269 #include "dimphy.h"1278 cym#include "dimensions.h" 1279 cym#include "dimphy.h" 1270 1280 #include "YOMCST.h" 1271 1281 #include "YOETHF.h" … … 1333 1343 . ldcum, kcbot, kctop, pmfub, prfl, ptd, pqd, 1334 1344 . pmfd, pmfds, pmfdq, pdmfdp, kdtop, lddraf) 1345 USE dimphy 1335 1346 IMPLICIT none 1336 1347 C … … 1350 1361 C MOIST ENVIRONMENTAL AIR AND CLOUD AIR. 1351 1362 C---------------------------------------------------------------------- 1352 #include "dimensions.h"1353 #include "dimphy.h"1363 cym#include "dimensions.h" 1364 cym#include "dimphy.h" 1354 1365 #include "YOMCST.h" 1355 1366 #include "YOETHF.h" … … 1444 1455 . ptd, pqd, pmfd, pmfds, pmfdq, pdmfdp, 1445 1456 . lddraf, pen_d, pde_d) 1457 USE dimphy 1446 1458 IMPLICIT none 1447 1459 C … … 1461 1473 C 1462 1474 C---------------------------------------------------------------------- 1463 #include "dimensions.h"1464 #include "dimphy.h"1475 cym#include "dimensions.h" 1476 cym#include "dimphy.h" 1465 1477 #include "YOMCST.h" 1466 1478 #include "YOETHF.h" … … 1559 1571 END 1560 1572 SUBROUTINE flxadjtq(pp, pt, pq, ldflag, kcall) 1573 USE dimphy 1561 1574 IMPLICIT none 1562 1575 c====================================================================== … … 1568 1581 C kcall=2 EVAPORATION IN DOWNDRAFTS (E.G. CUDLFS,CUDDRAF) 1569 1582 C 1570 #include "dimensions.h"1571 #include "dimphy.h"1583 cym#include "dimensions.h" 1584 cym#include "dimphy.h" 1572 1585 #include "YOMCST.h" 1573 1586 C -
LMDZ4/trunk/libf/phylmd/conlmd.F
r524 r766 4 4 SUBROUTINE conlmd (dtime, paprs, pplay, t, q, conv_q, 5 5 s d_t, d_q, rain, snow, ibas, itop) 6 USE dimphy 6 7 IMPLICIT none 7 8 c====================================================================== … … 10 11 c Ajustement humide (Manabe) + Ajustement convectif (Kuo) 11 12 c====================================================================== 12 #include "dimensions.h"13 #include "dimphy.h"13 cym#include "dimensions.h" 14 cym#include "dimphy.h" 14 15 #include "YOMCST.h" 15 16 #include "YOETHF.h" … … 93 94 s d_t, d_q, d_ql, rneb, 94 95 s rain, snow, ibas, itop) 96 USE dimphy 95 97 IMPLICIT none 96 98 c====================================================================== … … 105 107 c du modele. 106 108 c====================================================================== 107 #include "dimensions.h"108 #include "dimphy.h"109 cym#include "dimensions.h" 110 cym#include "dimphy.h" 109 111 #include "YOMCST.h" 110 112 c … … 154 156 INTEGER ncpt 155 157 SAVE ncpt 158 c$OMP THREADPRIVATE(ncpt) 156 159 REAL frac(nb) ! valeur de la maille fractionnelle 157 160 SAVE frac 161 c$OMP THREADPRIVATE(frac) 158 162 INTEGER opt_cld(nb) ! option pour le modele nuageux 159 163 SAVE opt_cld 164 c$OMP THREADPRIVATE(opt_cld) 160 165 LOGICAL appel1er 161 166 SAVE appel1er 167 c$OMP THREADPRIVATE(appel1er) 162 168 c 163 169 c Fonctions thermodynamiques: … … 301 307 s d_t, d_q, d_ql, rneb, 302 308 s rain, snow, ibas, itop,accompli,imprim) 309 USE dimphy 303 310 IMPLICIT none 304 311 c====================================================================== … … 309 316 c et itop est le haut du plus haut bloc 310 317 c====================================================================== 311 #include "dimensions.h"312 #include "dimphy.h"318 cym#include "dimensions.h" 319 cym#include "dimphy.h" 313 320 #include "YOMCST.h" 314 321 c … … 1064 1071 s d_t, d_q, d_ql, rneb, 1065 1072 s rain, snow, ibas, itop) 1073 USE dimphy 1066 1074 IMPLICIT none 1067 1075 c====================================================================== … … 1071 1079 c N.B. version vectorielle (le 6 oct. 1997) 1072 1080 c====================================================================== 1073 #include "dimensions.h"1074 #include "dimphy.h"1081 cym#include "dimensions.h" 1082 cym#include "dimphy.h" 1075 1083 #include "YOMCST.h" 1076 1084 c … … 1145 1153 LOGICAL appel1er 1146 1154 SAVE appel1er 1155 c$OMP THREADPRIVATE(appel1er) 1147 1156 c 1148 1157 c Fonctions thermodynamiques … … 1587 1596 END 1588 1597 SUBROUTINE kuofcl(pt, pq, pg, pp, LDCUM, kcbot) 1598 USE dimphy 1589 1599 IMPLICIT none 1590 1600 c====================================================================== … … 1603 1613 c kcbot---output-I- Niveau du bas de la convection 1604 1614 c====================================================================== 1605 #include "dimensions.h"1606 #include "dimphy.h"1615 cym#include "dimensions.h" 1616 cym#include "dimphy.h" 1607 1617 #include "YOMCST.h" 1608 1618 #include "YOETHF.h" … … 1688 1698 END 1689 1699 SUBROUTINE adjtq(pp, pt, pq, LDFLAG, KCALL) 1700 USE dimphy 1690 1701 IMPLICIT none 1691 1702 c====================================================================== … … 1706 1717 C KCALL=2 EVAPORATION IN DOWNDRAFTS (E.G. CUDLFS,CUDDRAF) 1707 1718 C 1708 #include "dimensions.h"1709 #include "dimphy.h"1719 cym#include "dimensions.h" 1720 cym#include "dimphy.h" 1710 1721 #include "YOMCST.h" 1711 1722 C … … 1797 1808 . d_t, d_q, d_ql, rneb, 1798 1809 . rain, snow, ibas, itop) 1810 USE dimphy 1799 1811 IMPLICIT NONE 1800 1812 c 1801 1813 c Ajustement humide (Schema de convection de Manabe) 1802 1814 C. 1803 #include "dimensions.h"1804 #include "dimphy.h"1815 cym#include "dimensions.h" 1816 cym#include "dimphy.h" 1805 1817 #include "YOMCST.h" 1806 1818 c … … 2095 2107 . d_t, d_q, d_ql,rneb, 2096 2108 . rain, snow, ibas, itop) 2109 USE dimphy 2097 2110 IMPLICIT NONE 2098 2111 c 2099 #include "dimensions.h"2100 #include "dimphy.h"2112 cym#include "dimensions.h" 2113 cym#include "dimphy.h" 2101 2114 #include "YOMCST.h" 2102 2115 c -
LMDZ4/trunk/libf/phylmd/convect1.F
r524 r766 107 107 c 108 108 c 109 USE dimphy 109 110 implicit none 110 111 c 111 #include "dimensions.h"112 #include "dimphy.h"112 cym#include "dimensions.h" 113 cym#include "dimphy.h" 113 114 c 114 115 integer len -
LMDZ4/trunk/libf/phylmd/convect2.F
r524 r766 148 148 c 149 149 c 150 USE dimphy 150 151 implicit none 151 152 c 152 #include "dimensions.h"153 #include "dimphy.h"153 cym#include "dimensions.h" 154 cym#include "dimphy.h" 154 155 c 155 156 integer kmax2,imax2,kmin2,imin2 -
LMDZ4/trunk/libf/phylmd/convect3.F
r524 r766 18 18 cFleur Introduction des traceurs dans convect3 le 6 juin 200 19 19 c################################################################# 20 USE dimphy 21 20 22 #include "dimensions.h" 21 #include "dimphy.h"23 cym#include "dimphy.h" 22 24 PARAMETER (NA=60) 23 25 … … 1341 1343 1342 1344 1343 c $$$cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc1344 c $$$ call writeg1d(1,klev,ma,'ma ','ma ')1345 c $$$ call writeg1d(1,klev,upwd,'upwd ','upwd ')1346 c $$$ call writeg1d(1,klev,dnwd,'dnwd ','dnwd ')1347 c $$$ call writeg1d(1,klev,dnwd0,'dnwd0 ','dnwd0 ')1348 c $$$ call writeg1d(1,klev,tvp,'tvp ','tvp ')1349 c $$$ call writeg1d(1,klev,tra(1:klev,3),'tra3 ','tra3 ')1350 c $$$ call writeg1d(1,klev,tra(1:klev,4),'tra4 ','tra4 ')1351 c $$$ call writeg1d(1,klev,tra(1:klev,5),'tra5 ','tra5 ')1352 c $$$ call writeg1d(1,klev,tra(1:klev,6),'tra6 ','tra6 ')1353 c $$$ call writeg1d(1,klev,tra(1:klev,7),'tra7 ','tra7 ')1354 c $$$ call writeg1d(1,klev,tra(1:klev,8),'tra8 ','tra8 ')1355 c $$$ call writeg1d(1,klev,tra(1:klev,9),'tra9 ','tra9 ')1356 c $$$ call writeg1d(1,klev,tra(1:klev,10),'tra10','tra10')1357 c $$$ call writeg1d(1,klev,tra(1:klev,11),'tra11','tra11')1358 c $$$ call writeg1d(1,klev,tra(1:klev,12),'tra12','tra12')1359 c $$$ call writeg1d(1,klev,tra(1:klev,13),'tra13','tra13')1360 c $$$ call writeg1d(1,klev,tra(1:klev,14),'tra14','tra14')1361 c $$$ call writeg1d(1,klev,tra(1:klev,15),'tra15','tra15')1362 c $$$ call writeg1d(1,klev,tra(1:klev,16),'tra16','tra16')1363 c $$$ call writeg1d(1,klev,tra(1:klev,17),'tra17','tra17')1364 c $$$ call writeg1d(1,klev,tra(1:klev,18),'tra18','tra18')1365 c $$$ call writeg1d(1,klev,tra(1:klev,19),'tra19','tra19')1366 c $$$ call writeg1d(1,klev,tra(1:klev,20),'tra20','tra20 ')1367 c $$$ call writeg1d(1,klev,trap(1:klev,1),'trp1','trp1')1368 c $$$ call writeg1d(1,klev,trap(1:klev,2),'trp2','trp2')1369 c $$$ call writeg1d(1,klev,trap(1:klev,3),'trp3','trp3')1370 c $$$ call writeg1d(1,klev,trap(1:klev,4),'trp4','trp4')1371 c $$$ call writeg1d(1,klev,trap(1:klev,5),'trp5','trp5')1372 c $$$ call writeg1d(1,klev,trap(1:klev,10),'trp10','trp10')1373 c $$$ call writeg1d(1,klev,trap(1:klev,12),'trp12','trp12')1374 c $$$ call writeg1d(1,klev,trap(1:klev,15),'trp15','trp15')1375 c $$$ call writeg1d(1,klev,trap(1:klev,20),'trp20','trp20')1376 c $$$ call writeg1d(1,klev,ftra(1:klev,1),'ftr1 ','ftr1 ')1377 c $$$ call writeg1d(1,klev,ftra(1:klev,2),'ftr2 ','ftr2 ')1378 c $$$ call writeg1d(1,klev,ftra(1:klev,3),'ftr3 ','ftr3 ')1379 c $$$ call writeg1d(1,klev,ftra(1:klev,4),'ftr4 ','ftr4 ')1380 c $$$ call writeg1d(1,klev,ftra(1:klev,5),'ftr5 ','ftr5 ')1381 c $$$ call writeg1d(1,klev,ftra(1:klev,6),'ftr6 ','ftr6 ')1382 c $$$ call writeg1d(1,klev,ftra(1:klev,7),'ftr7 ','ftr7 ')1383 c $$$ call writeg1d(1,klev,ftra(1:klev,8),'ftr8 ','ftr8 ')1384 c $$$ call writeg1d(1,klev,ftra(1:klev,9),'ftr9 ','ftr9 ')1385 c $$$ call writeg1d(1,klev,ftra(1:klev,10),'ftr10','ftr10')1386 c $$$ call writeg1d(1,klev,ftra(1:klev,11),'ftr11','ftr11')1387 c $$$ call writeg1d(1,klev,ftra(1:klev,12),'ftr12','ftr12')1388 c $$$ call writeg1d(1,klev,ftra(1:klev,13),'ftr13','ftr13')1389 c $$$ call writeg1d(1,klev,ftra(1:klev,14),'ftr14','ftr14')1390 c $$$ call writeg1d(1,klev,ftra(1:klev,15),'ftr15','ftr15')1391 c $$$ call writeg1d(1,klev,ftra(1:klev,16),'ftr16','ftr16')1392 c $$$ call writeg1d(1,klev,ftra(1:klev,17),'ftr17','ftr17')1393 c $$$ call writeg1d(1,klev,ftra(1:klev,18),'ftr18','ftr18')1394 c $$$ call writeg1d(1,klev,ftra(1:klev,19),'ftr19','ftr19')1395 c $$$ call writeg1d(1,klev,ftra(1:klev,20),'ftr20','ftr20 ')1396 c $$$ call writeg1d(1,klev,mp,'mp ','mp ')1397 c $$$ call writeg1d(1,klev,Mke,'Mke ','Mke ')1345 c@$$cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 1346 c@$$ call writeg1d(1,klev,ma,'ma ','ma ') 1347 c@$$ call writeg1d(1,klev,upwd,'upwd ','upwd ') 1348 c@$$ call writeg1d(1,klev,dnwd,'dnwd ','dnwd ') 1349 c@$$ call writeg1d(1,klev,dnwd0,'dnwd0 ','dnwd0 ') 1350 c@$$ call writeg1d(1,klev,tvp,'tvp ','tvp ') 1351 c@$$ call writeg1d(1,klev,tra(1:klev,3),'tra3 ','tra3 ') 1352 c@$$ call writeg1d(1,klev,tra(1:klev,4),'tra4 ','tra4 ') 1353 c@$$ call writeg1d(1,klev,tra(1:klev,5),'tra5 ','tra5 ') 1354 c@$$ call writeg1d(1,klev,tra(1:klev,6),'tra6 ','tra6 ') 1355 c@$$ call writeg1d(1,klev,tra(1:klev,7),'tra7 ','tra7 ') 1356 c@$$ call writeg1d(1,klev,tra(1:klev,8),'tra8 ','tra8 ') 1357 c@$$ call writeg1d(1,klev,tra(1:klev,9),'tra9 ','tra9 ') 1358 c@$$ call writeg1d(1,klev,tra(1:klev,10),'tra10','tra10') 1359 c@$$ call writeg1d(1,klev,tra(1:klev,11),'tra11','tra11') 1360 c@$$ call writeg1d(1,klev,tra(1:klev,12),'tra12','tra12') 1361 c@$$ call writeg1d(1,klev,tra(1:klev,13),'tra13','tra13') 1362 c@$$ call writeg1d(1,klev,tra(1:klev,14),'tra14','tra14') 1363 c@$$ call writeg1d(1,klev,tra(1:klev,15),'tra15','tra15') 1364 c@$$ call writeg1d(1,klev,tra(1:klev,16),'tra16','tra16') 1365 c@$$ call writeg1d(1,klev,tra(1:klev,17),'tra17','tra17') 1366 c@$$ call writeg1d(1,klev,tra(1:klev,18),'tra18','tra18') 1367 c@$$ call writeg1d(1,klev,tra(1:klev,19),'tra19','tra19') 1368 c@$$ call writeg1d(1,klev,tra(1:klev,20),'tra20','tra20 ') 1369 c@$$ call writeg1d(1,klev,trap(1:klev,1),'trp1','trp1') 1370 c@$$ call writeg1d(1,klev,trap(1:klev,2),'trp2','trp2') 1371 c@$$ call writeg1d(1,klev,trap(1:klev,3),'trp3','trp3') 1372 c@$$ call writeg1d(1,klev,trap(1:klev,4),'trp4','trp4') 1373 c@$$ call writeg1d(1,klev,trap(1:klev,5),'trp5','trp5') 1374 c@$$ call writeg1d(1,klev,trap(1:klev,10),'trp10','trp10') 1375 c@$$ call writeg1d(1,klev,trap(1:klev,12),'trp12','trp12') 1376 c@$$ call writeg1d(1,klev,trap(1:klev,15),'trp15','trp15') 1377 c@$$ call writeg1d(1,klev,trap(1:klev,20),'trp20','trp20') 1378 c@$$ call writeg1d(1,klev,ftra(1:klev,1),'ftr1 ','ftr1 ') 1379 c@$$ call writeg1d(1,klev,ftra(1:klev,2),'ftr2 ','ftr2 ') 1380 c@$$ call writeg1d(1,klev,ftra(1:klev,3),'ftr3 ','ftr3 ') 1381 c@$$ call writeg1d(1,klev,ftra(1:klev,4),'ftr4 ','ftr4 ') 1382 c@$$ call writeg1d(1,klev,ftra(1:klev,5),'ftr5 ','ftr5 ') 1383 c@$$ call writeg1d(1,klev,ftra(1:klev,6),'ftr6 ','ftr6 ') 1384 c@$$ call writeg1d(1,klev,ftra(1:klev,7),'ftr7 ','ftr7 ') 1385 c@$$ call writeg1d(1,klev,ftra(1:klev,8),'ftr8 ','ftr8 ') 1386 c@$$ call writeg1d(1,klev,ftra(1:klev,9),'ftr9 ','ftr9 ') 1387 c@$$ call writeg1d(1,klev,ftra(1:klev,10),'ftr10','ftr10') 1388 c@$$ call writeg1d(1,klev,ftra(1:klev,11),'ftr11','ftr11') 1389 c@$$ call writeg1d(1,klev,ftra(1:klev,12),'ftr12','ftr12') 1390 c@$$ call writeg1d(1,klev,ftra(1:klev,13),'ftr13','ftr13') 1391 c@$$ call writeg1d(1,klev,ftra(1:klev,14),'ftr14','ftr14') 1392 c@$$ call writeg1d(1,klev,ftra(1:klev,15),'ftr15','ftr15') 1393 c@$$ call writeg1d(1,klev,ftra(1:klev,16),'ftr16','ftr16') 1394 c@$$ call writeg1d(1,klev,ftra(1:klev,17),'ftr17','ftr17') 1395 c@$$ call writeg1d(1,klev,ftra(1:klev,18),'ftr18','ftr18') 1396 c@$$ call writeg1d(1,klev,ftra(1:klev,19),'ftr19','ftr19') 1397 c@$$ call writeg1d(1,klev,ftra(1:klev,20),'ftr20','ftr20 ') 1398 c@$$ call writeg1d(1,klev,mp,'mp ','mp ') 1399 c@$$ call writeg1d(1,klev,Mke,'Mke ','Mke ') 1398 1400 1399 1401 -
LMDZ4/trunk/libf/phylmd/cv_driver.F
r619 r766 11 11 & da1,phi1,mp1) 12 12 C 13 USE dimphy 13 14 implicit none 14 15 C … … 64 65 c 65 66 c 66 #include "dimensions.h"67 #include "dimphy.h"67 cym#include "dimensions.h" 68 cym#include "dimphy.h" 68 69 69 70 integer len … … 250 251 c (local) compressed fields: 251 252 c 252 integer nloc253 parameter (nloc=klon) ! pour l'instant254 253 cym integer nloc 254 cym parameter (nloc=klon) ! pour l'instant 255 #define nloc klon 255 256 integer idcum(nloc) 256 257 integer iflag(nloc),nk(nloc),icb(nloc) … … 290 291 real wd(nloc) ! gust 291 292 293 nent(:,:)=0 292 294 !------------------------------------------------------------------- 293 295 ! --- SET CONSTANTS AND PARAMETERS -
LMDZ4/trunk/libf/phylmd/cvflag.h
r524 r766 5 5 6 6 COMMON /cvflag/ cvflag_grav 7 c$OMP THREADPRIVATE(/cvflag/) -
LMDZ4/trunk/libf/phylmd/cvltr.F
r619 r766 3 3 c 4 4 SUBROUTINE cvltr(pdtime,da, phi, mp,paprs,pplay,x,upd,dnd,dx) 5 USE dimphy 5 6 IMPLICIT NONE 6 7 c===================================================================== … … 9 10 c===================================================================== 10 11 c 11 #include "dimensions.h"12 #include "dimphy.h"12 cym#include "dimensions.h" 13 cym#include "dimphy.h" 13 14 #include "YOMCST.h" 14 15 #include "YOECUMF.h" -
LMDZ4/trunk/libf/phylmd/cvparam.h
r524 r766 27 27 : ,dtmax, cu, betad, alpha, damp, delta 28 28 29 c$OMP THREADPRIVATE(/cvparam/) -
LMDZ4/trunk/libf/phylmd/cvparam3.h
r524 r766 28 28 : ,dtcrit, tau, beta, alpha, delta, betad 29 29 30 c$OMP THREADPRIVATE(/cvparam3/) -
LMDZ4/trunk/libf/phylmd/cvthermo.h
r524 r766 14 14 : ,eps, epsi, epsim1, ginv, hrd, grav 15 15 16 c$OMP THREADPRIVATE(/cvthermo/) -
LMDZ4/trunk/libf/phylmd/diagphy.F
r524 r766 74 74 save pas 75 75 data pas/0/ 76 c$OMP THREADPRIVATE(pas) 76 77 C 77 78 pas=pas+1 … … 258 259 save pas 259 260 data pas/ndiag*0/ 261 c$OMP THREADPRIVATE(pas) 260 262 C 261 263 REAL h_vcol_pre(ndiag), h_dair_pre(ndiag), h_qw_pre(ndiag) … … 264 266 SAVE h_vcol_pre, h_dair_pre, h_qw_pre, h_ql_pre 265 267 $ , h_qs_pre, qw_pre, ql_pre, qs_pre , ec_pre 266 268 c$OMP THREADPRIVATE(h_vcol_pre, h_dair_pre, h_qw_pre, h_ql_pre) 269 c$OMP THREADPRIVATE(h_qs_pre, qw_pre, ql_pre, qs_pre , ec_pre) 267 270 c====================================================================== 268 271 C -
LMDZ4/trunk/libf/phylmd/dimphy.F90
r642 r766 1 1 module dimphy 2 3 4 logical, save :: monocpu 5 ! logical, save :: parallel 6 7 INTEGER,SAVE :: iiphy_begin 8 INTEGER,SAVE :: iiphy_end 9 INTEGER,SAVE :: jjphy_begin 10 INTEGER,SAVE :: jjphy_end 11 INTEGER,SAVE :: jjphy_nb 12 INTEGER,SAVE :: ijphy_begin 13 INTEGER,SAVE :: ijphy_end 14 INTEGER,SAVE :: ijphy_nb 15 INTEGER,SAVE :: klon_begin 16 INTEGER,SAVE :: klon_end 17 18 19 INTEGER,SAVE,allocatable,dimension(:) :: jjphy_para_nb 20 INTEGER,SAVE,allocatable,dimension(:) :: jjphy_para_begin 21 INTEGER,SAVE,allocatable,dimension(:) :: jjphy_para_end 22 INTEGER,SAVE,dimension(:),allocatable :: Liste_i 23 INTEGER,SAVE,dimension(:),allocatable :: Liste_j 24 INTEGER,SAVE,dimension(:),allocatable :: klon_para_nb 25 INTEGER,SAVE,dimension(:),allocatable :: klon_para_begin 26 INTEGER,SAVE,dimension(:),allocatable :: klon_para_end 27 28 29 INTEGER,save :: phy_rank 30 INTEGER,save :: phy_size 31 32 33 INTEGER,save :: klev, klevp1,klevm1,klon,kfdia,kidia 34 INTEGER,save :: klon2 35 INTEGER,save :: nbtr 36 INTEGER,save :: kdlon, kflev 37 REAL,save,allocatable,dimension(:) :: zmasq 38 39 40 41 contains 42 43 subroutine InitDimphy 44 45 #ifdef CPP_PARALLEL 46 use parallel 47 #endif 48 49 implicit none 50 #include "dimensions90.h" 51 #include "paramet90.h" 52 integer :: rank 53 integer :: i,j,Pos,Index 54 logical,save :: First=.true. 55 #ifndef CPP_PARALLEL 56 logical, save :: pole_nord = .true. 57 logical, save :: pole_sud = .true. 58 #endif 59 60 #ifdef CPP_PARALLEL 61 monocpu=.false. 62 #else 63 monocpu = .true. 64 #endif 65 66 if (monocpu) then 67 68 phy_rank=0 69 phy_size=1 70 71 #ifdef CPP_PARALLEL 72 else 73 74 phy_rank=mpi_rank 75 phy_size=mpi_size 76 #endif 77 78 endif 79 80 if (First) then 81 allocate(jjphy_para_nb(0:phy_size-1)) 82 allocate(jjphy_para_begin(0:phy_size-1)) 83 allocate(jjphy_para_end(0:phy_size-1)) 84 allocate(klon_para_nb(0:phy_size-1)) 85 allocate(klon_para_begin(0:phy_size-1)) 86 allocate(klon_para_end(0:phy_size-1)) 87 endif 88 89 klev=llm 90 klevp1=klev+1 91 klevm1=klev-1 92 klon2=iim*(jjm-1)+2 93 94 95 ! do i=0,phy_size-1 96 ! klon_para_nb(i)=(klon2/phy_size) 97 ! if (i<MOD(klon2,phy_size)) klon_para_nb(i)=klon_para_nb(i)+1 98 ! if (i==0) then 99 ! klon_para_begin(i)=1 100 ! else 101 ! klon_para_begin(i)=klon_para_end(i-1)+1 102 ! endif 103 ! klon_para_end(i)=klon_para_begin(i)+klon_para_nb(i)-1 104 ! enddo 105 106 if (First) then 107 do i=0,phy_size-1 108 klon_para_nb(i)=(klon2/phy_size) 109 if (i<MOD(klon2,phy_size)) klon_para_nb(i)=klon_para_nb(i)+1 110 enddo 111 endif 112 113 do i=0,phy_size-1 114 if (i==0) then 115 klon_para_begin(i)=1 116 else 117 klon_para_begin(i)=klon_para_end(i-1)+1 118 endif 119 klon_para_end(i)=klon_para_begin(i)+klon_para_nb(i)-1 120 enddo 121 122 klon=klon_para_nb(phy_rank) 123 klon_begin=klon_para_begin(phy_rank) 124 klon_end=klon_para_end(phy_rank) 125 126 nbtr=nqmx-2+1/(nqmx-1) 127 128 kidia=1 129 kfdia=klon 130 131 if (klon==6818 .and. monocpu) then 132 kdlon=487 133 else 134 kdlon=klon 135 endif 136 kflev=klev 137 138 if (.not.first) then 139 deallocate(zmasq,liste_i,liste_j) 140 endif 141 142 allocate(zmasq(klon)) 143 144 145 allocate(Liste_i(klon)) 146 allocate(Liste_j(klon)) 147 148 Index=1 149 if (Pole_Nord) then 150 Liste_i(1)=1 151 Liste_j(1)=1 152 iiphy_begin=1 153 jjphy_begin=1 154 ijphy_begin=1 155 Index=Index+1 156 endif 157 158 Pos=2 159 do j=2,jjm 160 do i=1,iim 161 162 if (Pos==klon_begin) then 163 iiphy_begin=i 164 jjphy_begin=j 165 ijphy_begin=j*iip1+i 166 endif 167 168 if (Pos==klon_end) then 169 iiphy_end=i 170 jjphy_end=j 171 ijphy_end=j*iip1+i 172 endif 173 174 if (Pos>=klon_begin .AND. Pos<=klon_end) then 175 Liste_i(Index)=i 176 Liste_j(Index)=j 177 Index=Index+1 178 endif 179 Pos=Pos+1 180 enddo 181 enddo 182 183 if (pole_sud) then 184 Liste_i(Index)=1 185 Liste_j(Index)=jjp1 186 iiphy_end=1 187 jjphy_end=jjp1 188 ijphy_end=jjp1*iip1+1 189 endif 190 191 ijphy_nb=ijphy_end-ijphy_begin+1 192 jjphy_nb=jjphy_end-jjphy_begin+1 193 194 195 Pos=2 196 rank=0 197 jjphy_para_begin(rank)=1 198 199 do j=2,jjm 200 do i=1,iim 201 if (Pos==klon_para_begin(rank)) then 202 jjphy_para_begin(rank)=j 203 endif 204 if (Pos==klon_para_end(rank)) then 205 jjphy_para_end(rank)=j 206 rank=rank+1 207 endif 208 Pos=Pos+1 209 enddo 210 enddo 211 jjphy_para_end(rank)=jjp1 212 213 First=.false. 214 end subroutine InitDimphy 215 216 217 subroutine GatherField(Fields,Fieldr,ll) 218 implicit none 219 #ifdef CPP_PARALLEL 220 include 'mpif.h' 221 #endif 222 INTEGER :: ll 223 REAL, dimension(klon,ll) :: Fields 224 REAL, dimension(klon2,ll) :: Fieldr 225 REAL, dimension(klon2*ll) :: Field_tmp 226 INTEGER, dimension(0:phy_size-1) :: displs 227 INTEGER, dimension(0:phy_size-1) :: sendcounts 228 INTEGER :: l,Pos,rank,ierr 229 INTEGER :: klon_b,klon_e, Nb 230 231 Pos=1 232 do rank=0,phy_size-1 233 klon_b=klon_para_begin(rank) 234 klon_e=klon_para_end(rank) 235 Nb=klon_para_nb(rank) 236 displs(rank)=Pos-1 237 sendcounts(rank)=Nb*ll 238 Pos=Pos+Nb*ll 239 enddo 240 241 if (monocpu) then 242 Fieldr(:,:)=Fields(:,:) 243 #ifdef CPP_PARALLEL 244 else 245 call MPI_Gatherv(Fields,klon*ll,MPI_REAL8,Field_tmp,sendcounts, & 246 displs,MPI_REAL8,0,MPI_COMM_WORLD,ierr) 247 #endif 248 endif 249 250 Pos=1 251 do rank=0,phy_size-1 252 klon_b=klon_para_begin(rank) 253 klon_e=klon_para_end(rank) 254 Nb=klon_para_nb(rank) 255 do l=1,ll 256 Fieldr(klon_b:klon_e,l)=Field_tmp(Pos:Pos+Nb-1) 257 Pos=Pos+Nb 258 enddo 259 enddo 260 261 end subroutine GatherField 262 263 subroutine AllGatherField(Fields,Fieldr,ll) 264 implicit none 265 #ifdef CPP_PARALLEL 266 include 'mpif.h' 267 #endif 268 INTEGER :: ll 269 REAL, dimension(klon,ll) :: Fields 270 REAL, dimension(klon2,ll) :: Fieldr 271 272 INTEGER :: ierr 273 274 #ifdef CPP_PARALLEL 275 call GatherField(Fields,Fieldr,ll) 276 call MPI_BCAST(Fieldr,klon2*ll,MPI_REAL8,0,MPI_COMM_WORLD,ierr) 277 #endif 278 end subroutine AllGatherField 279 280 281 subroutine ScatterField(Fields,Fieldr,ll) 282 implicit none 283 #ifdef CPP_PARALLEL 284 include 'mpif.h' 285 #endif 286 INTEGER :: ll 287 REAL, dimension(klon2,ll) :: Fields 288 REAL, dimension(klon,ll) :: Fieldr 289 REAL, dimension(klon2*ll) :: Field_tmp 290 INTEGER, dimension(0:phy_size-1) :: displs 291 INTEGER, dimension(0:phy_size-1) :: sendcounts 292 INTEGER :: l,Pos,rank,ierr 293 INTEGER :: klon_b,klon_e, Nb 294 295 Pos=1 296 do rank=0,phy_size-1 297 klon_b=klon_para_begin(rank) 298 klon_e=klon_para_end(rank) 299 Nb=klon_para_nb(rank) 300 displs(rank)=Pos-1 301 sendcounts(rank)=Nb*ll 302 do l=1,ll 303 Field_tmp(Pos:Pos+Nb-1)=Fields(klon_b:klon_e,l) 304 Pos=Pos+Nb 305 enddo 306 enddo 307 308 if (monocpu) then 309 Fieldr(:,:)=Fields(:,:) 310 else 311 #ifdef CPP_PARALLEL 312 call MPI_Scatterv(Field_tmp,sendcounts,displs,MPI_REAL8, & 313 Fieldr,klon*ll,MPI_REAL8,0,MPI_COMM_WORLD,ierr) 314 #endif 315 endif 316 317 318 end subroutine ScatterField 319 320 2 USE mod_phys_mpi 3 USE mod_phys_openmp 321 4 end module dimphy -
LMDZ4/trunk/libf/phylmd/fisrtilp.F
r559 r766 10 10 11 11 c 12 USE dimphy 12 13 IMPLICIT none 13 14 c====================================================================== … … 18 19 c====================================================================== 19 20 c====================================================================== 20 #include "dimensions.h"21 #include "dimphy.h"21 cym#include "dimensions.h" 22 cym#include "dimphy.h" 22 23 #include "YOMCST.h" 23 24 #include "tracstoke.h" … … 90 91 LOGICAL appel1er 91 92 SAVE appel1er 93 c$OMP THREADPRIVATE(appel1er) 92 94 c 93 95 c--------------------------------------------------------------- … … 99 101 REAL a_tr_sca(4) 100 102 save a_tr_sca 103 c$OMP THREADPRIVATE(a_tr_sca) 101 104 c 102 105 c Variables intermediaires … … 110 113 REAL zlh_solid(klon), zm_solid 111 114 cIM 112 INTEGER klevm1115 cym INTEGER klevm1 113 116 c--------------------------------------------------------------- 114 117 c … … 210 213 c 211 214 cIM : klevm1 212 klevm1=klev-1215 cym klevm1=klev-1 213 216 DO 9999 k = klev, 1, -1 214 217 c … … 269 272 . /RG/dtime 270 273 271 c pour la glace, on r éévapore toute la précip dans la couche du dessous274 c pour la glace, on r�vapore toute la pr�ip dans la couche du dessous 272 275 c la glace venant de la couche du dessus est simplement dans la couche 273 276 c du dessous. … … 322 325 c zqn : eau totale dans le nuage 323 326 c zcond : eau condensee moyenne dans la maille. 324 c on prend en compte le r échauffement qui diminue la partie condensee327 c on prend en compte le r�hauffement qui diminue la partie condensee 325 328 c 326 329 c Version avec les raqts … … 427 430 zct(i)=1./cld_tau_lsc 428 431 endif 429 c quantit é d'eau à élminier.432 c quantit�d'eau ��minier. 430 433 zchau(i) = zct(i)*dtime/FLOAT(ninter) * zoliq(i) 431 434 . *(1.0-EXP(-(zoliq(i)/zneb(i)/zcl(i))**2)) *(1.-zfice(i)) -
LMDZ4/trunk/libf/phylmd/fisrtilp.h
r524 r766 20 20 s ,iflag_pdf ! 0 21 21 22 !$OMP THREADPRIVATE(/comfisrtilp/) -
LMDZ4/trunk/libf/phylmd/fisrtilp.inc
r524 r766 19 19 & ,reevap_ice & 20 20 & ,iflag_pdf 21 21 !$OMP THREADPRIVATE(/comfisrtilp/) -
LMDZ4/trunk/libf/phylmd/fisrtilp_tr.F
r524 r766 11 11 12 12 c 13 USE dimphy 13 14 IMPLICIT none 14 15 c====================================================================== … … 19 20 c====================================================================== 20 21 c====================================================================== 21 #include "dimensions.h"22 #include "dimphy.h"22 cym#include "dimensions.h" 23 cym#include "dimphy.h" 23 24 #include "YOMCST.h" 24 25 #include "tracstoke.h" … … 101 102 LOGICAL appel1er 102 103 SAVE appel1er 104 c$OMP THREADPRIVATE(appel1er) 103 105 c 104 106 c--------------------------------------------------------------- … … 110 112 REAL a_tr_sca(4) 111 113 save a_tr_sca 114 c$OMP THREADPRIVATE(a_tr_sca) 112 115 c 113 116 c Variables intermediaires -
LMDZ4/trunk/libf/phylmd/flxtr.F
r524 r766 4 4 SUBROUTINE flxtr(pdtime,pmfu,pmfd,pen_u,pde_u,pen_d,pde_d, 5 5 . pt,pplay,paprs,kcbot,kctop,kdtop,x,dx) 6 USE dimphy 6 7 IMPLICIT NONE 7 8 c===================================================================== … … 24 25 c===================================================================== 25 26 c 26 #include "dimensions.h"27 #include "dimphy.h"27 cym#include "dimensions.h" 28 cym#include "dimphy.h" 28 29 #include "YOMCST.h" 29 30 #include "YOECUMF.h" -
LMDZ4/trunk/libf/phylmd/hbtm.F
r674 r766 4 4 . pblh,cape,EauLiq,ctei,pblT, 5 5 . therm,trmb1,trmb2,trmb3,plcl) 6 USE dimphy 6 7 IMPLICIT none 7 8 … … 38 39 c 39 40 c 40 #include "dimensions.h"41 #include "dimphy.h"41 cym#include "dimensions.h" 42 cym#include "dimphy.h" 42 43 #include "YOMCST.h" 43 44 REAL RLvCp, REPS … … 60 61 c 61 62 INTEGER isommet 62 PARAMETER (isommet=klev) ! limite max sommet pbl63 cum PARAMETER (isommet=klev) ! limite max sommet pbl 63 64 REAL vk 64 65 PARAMETER (vk=0.35) ! Von Karman => passer a .41 ! cf U.Olgstrom … … 172 173 173 174 ! initialisations (Anne) 175 isommet=klev 174 176 th_th(:) = 0. 175 177 q_star = 0 … … 193 195 C++ r4 = 35.86 7.66 Kelvin 194 196 C++ q_sat = eps*e_sat/(p-(1-eps)*e_sat) 195 C++ deriv ée:197 C++ deriv� : 196 198 C++ ========= 197 199 C++ r3*(Tf-r4)*q_sat(T,p) … … 474 476 cIM 091204 BEG 475 477 a1=b1*(1.+2.*RETV*qT_th(i))*t_star**2 476 a2=(RETV*Th_th(i))**2*b2*q_star* *2478 a2=(RETV*Th_th(i))**2*b2*q_star*q_star 477 479 a3=2.*RETV*Th_th(i)*b212*q_star*t_star 478 480 aa=a1+a2+a3 … … 486 488 cIM 091204 END 487 489 therm(i) = sqrt( b1*(1.+2.*RETV*qT_th(i))*t_star**2 488 + + (RETV*Th_th(i))**2*b2*q_star* *2490 + + (RETV*Th_th(i))**2*b2*q_star*q_star 489 491 cIM 101204 + + 2.*RETV*Th_th(i)*b212*q_star*t_star 490 492 + + max(0.,2.*RETV*Th_th(i)*b212*q_star*t_star) -
LMDZ4/trunk/libf/phylmd/hgardfou.F
r524 r766 3 3 ! 4 4 SUBROUTINE hgardfou (t,tsol,text) 5 use dimphy 5 6 IMPLICIT none 6 7 c====================================================================== 7 8 c Verifier la temperature 8 9 c====================================================================== 9 #include "dimensions.h"10 #include "dimphy.h"10 cym#include "dimensions.h" 11 cym#include "dimphy.h" 11 12 #include "YOMCST.h" 12 13 #include "indicesol.h" -
LMDZ4/trunk/libf/phylmd/histo_o500_pctau.F
r524 r766 3 3 ! 4 4 SUBROUTINE histo_o500_pctau(nbreg,pct_ocean,w,histo,histoW,nhisto) 5 USE dimphy 5 6 IMPLICIT none 6 7 7 8 INTEGER :: ij, k, l, nw 8 9 INTEGER :: nreg, nbreg 9 #include "dimensions.h"10 #include "dimphy.h"10 cym#include "dimensions.h" 11 cym#include "dimphy.h" 11 12 INTEGER, PARAMETER :: kmax=8, lmax=8 12 13 INTEGER, PARAMETER :: kmaxm1=kmax-1, lmaxm1=lmax-1 -
LMDZ4/trunk/libf/phylmd/homogene.F
r524 r766 3 3 ! 4 4 SUBROUTINE homogene(paprs, q, dq, u,v, du, dv) 5 USE dimphy 5 6 IMPLICIT NONE 6 7 c============================================================== … … 17 18 c dv: output, incrementation pour v 18 19 c============================================================== 19 #include "dimensions.h"20 #include "dimphy.h"20 cym#include "dimensions.h" 21 cym#include "dimphy.h" 21 22 c 22 23 REAL paprs(klon,klev+1) -
LMDZ4/trunk/libf/phylmd/hydrol.F
r524 r766 6 6 SUBROUTINE hydrol(dtime,pctsrf,rain_fall,snow_fall,evap, 7 7 . agesno, tsol,qsol,snow,runoff) 8 USE dimphy 8 9 IMPLICIT none 9 10 c====================================================================== … … 22 23 c snow: couverture neigeuse 23 24 C 24 #include "dimensions.h"25 #include "dimphy.h"25 cym#include "dimensions.h" 26 cym#include "dimphy.h" 26 27 #include "YOMCST.h" 27 28 #include "indicesol.h" -
LMDZ4/trunk/libf/phylmd/inc_cpl.h
r626 r766 22 22 CHARACTER*8 cl_f_writ(jpmaxfld), cl_f_read(jpmaxfld) 23 23 COMMON / comcpl / cl_writ, cl_read, cl_f_writ, cl_f_read 24 !$OMP THREADPRIVATE(/comcpl/) 24 25 #endif 25 26 ! ------------------------------------------------------------------- -
LMDZ4/trunk/libf/phylmd/inc_sipc.h
r524 r766 24 24 INTEGER mpoolread(jpmaxfld) 25 25 COMMON / compool / mpoolinitr, mpoolinitw, mpoolwrit, mpoolread 26 c$OMP THREADPRIVATE(/compool/) 26 27 C ------------------------------------------------------------------- -
LMDZ4/trunk/libf/phylmd/indicesol.h
r524 r766 19 19 CHARACTER *3 clnsurf(nbsrf) 20 20 DATA clnsurf/'ter', 'lic', 'oce', 'sic'/ 21 SAVE clnsurf 22 !$OMP THREADPRIVATE(clnsurf) -
LMDZ4/trunk/libf/phylmd/indicesol.inc
r524 r766 11 11 CHARACTER (len=3),dimension(nbsrf) :: clnsurf(nbsrf) 12 12 DATA clnsurf/'ter', 'lic', 'oce', 'sic'/ 13 SAVE clnsurf 14 !$OMP THREADPRIVATE(clnsurf) -
LMDZ4/trunk/libf/phylmd/ini_bilKP_ave.h
r684 r766 11 11 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) 12 12 c 13 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)14 DO i = 1, iim15 zx_lon(i,1) = rlon(i+1)16 zx_lon(i,jjmp1) = rlon(i+1)17 ENDDO13 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon) 14 cym DO i = 1, iim 15 cym zx_lon(i,1) = rlon(i+1) 16 cym zx_lon(i,jjmp1) = rlon(i+1) 17 cym ENDDO 18 18 DO ll=1,klev 19 19 znivsig(ll)=float(ll) 20 20 ENDDO 21 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 22 write(*,*)'zx_lon = ',zx_lon(:,1) 23 write(*,*)'zx_lat = ',zx_lat(1,:) 24 CALL histbeg("histbilKP_ave", iim,zx_lon(:,1), jjmp1, 25 . zx_lat(1,:), 26 . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 21 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 22 cym write(*,*)'zx_lon = ',zx_lon(:,1) 23 cym write(*,*)'zx_lat = ',zx_lat(1,:) 24 cym CALL histbeg("histbilKP_ave", iim,zx_lon(:,1), jjmp1, 25 cym . zx_lat(1,:), 26 cym . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 27 cym . nhori, nid_bilKPave) 28 CALL histbeg_phy("histbilKP_ave", itau_phy, zjulian, dtime, 27 29 . nhori, nid_bilKPave) 30 28 31 write(*,*)'Journee ', itau_phy, zjulian 29 32 CALL histvert(nid_bilKPave, "presnivs", … … 36 39 CALL histdef(nid_bilKPave,"ue", 37 40 . "Zonal energy transport","-", 38 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,41 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 39 42 . typeval, zsto,zout) 40 43 c 41 44 CALL histdef(nid_bilKPave,"ve", 42 45 . "Merid energy transport","-", 43 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,46 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 44 47 . typeval, zsto,zout) 45 48 c 46 49 CALL histdef(nid_bilKPave,"uq", 47 50 . "Zonal humidity transport","-", 48 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,51 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 49 52 . typeval, zsto,zout) 50 53 c 51 54 CALL histdef(nid_bilKPave,"vq", 52 55 . "Merid humidity transport","-", 53 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,56 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 54 57 . typeval, zsto,zout) 55 58 c … … 58 61 CALL histdef(nid_bilKPave,"temp", 59 62 . "Air temperature","K", 60 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,63 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 61 64 . typeval, zsto,zout) 62 65 c 63 66 CALL histdef(nid_bilKPave,"ovap", 64 67 . "Specific humidity","Kg/Kg", 65 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,68 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 66 69 . typeval, zsto,zout) 67 70 c 68 71 CALL histdef(nid_bilKPave,"geop", 69 72 . "Geopotential height","m", 70 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,73 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 71 74 . typeval, zsto,zout) 72 75 c 73 76 CALL histdef(nid_bilKPave,"vitu", 74 77 . "Zonal wind","m/s", 75 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,78 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 76 79 . typeval, zsto,zout) 77 80 c 78 81 CALL histdef(nid_bilKPave,"vitv", 79 82 . "Meridional wind","m/s", 80 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,83 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 81 84 . typeval, zsto,zout) 82 85 c 83 86 CALL histdef(nid_bilKPave, "vitw", 84 87 . "Vertical wind", "m/s", 85 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,88 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 86 89 . typeval, zsto,zout) 87 90 c … … 89 92 . "Inter-Layer Air pressure", 90 93 . "Pa", 91 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,94 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 92 95 . typeval, zsto,zout) 93 96 c … … 95 98 . "Mean-Layer Air pressure", 96 99 . "Pa", 97 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,100 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 98 101 . typeval, zsto,zout) 99 102 c … … 101 104 . "Liquid water content", 102 105 . "kg/kg", 103 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,106 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 104 107 . typeval, zsto,zout) 105 108 c 106 109 CALL histdef(nid_bilKPave, "dtdyn", 107 110 . "Dynamics dT", "K/s", 108 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,111 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 109 112 . typeval, zsto,zout) 110 113 c 111 114 CALL histdef(nid_bilKPave, "dqdyn", 112 115 . "Dynamics dQ", "Kg/Kg/s", 113 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,116 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 114 117 . typeval, zsto,zout) 115 118 c 116 119 CALL histdef(nid_bilKPave, "dtcon", 117 120 . "Convection dT", "K/s", 118 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,121 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 119 122 . typeval, zsto,zout) 120 123 c 121 124 CALL histdef(nid_bilKPave, "ducon", 122 125 . "Convection du", "m/s2", 123 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,126 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 124 127 . typeval, zsto,zout) 125 128 c 126 129 CALL histdef(nid_bilKPave, "dvcon", 127 130 . "Convection dv", "m/s2", 128 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,131 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 129 132 . typeval, zsto,zout) 130 133 c 131 134 CALL histdef(nid_bilKPave,"dqcon", 132 135 . "Convection dQ","Kg/Kg/s", 133 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,136 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 134 137 . typeval, zsto,zout) 135 138 c 136 139 CALL histdef(nid_bilKPave, "dtlsc", 137 140 . "Condensation dT", "K/s", 138 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,141 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 139 142 . typeval, zsto,zout) 140 143 c 141 144 CALL histdef(nid_bilKPave,"dqlsc", 142 145 . "Condensation dQ","Kg/Kg/s", 143 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,146 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 144 147 . typeval, zsto,zout) 145 148 c 146 149 CALL histdef(nid_bilKPave,"dtvdf", 147 150 . "Boundary-layer dT","K/s", 148 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,151 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 149 152 . typeval, zsto,zout) 150 153 c … … 152 155 . "Boundary-layer dQ", 153 156 . "Kg/Kg/s", 154 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,157 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 155 158 . typeval, zsto,zout) 156 159 c 157 160 CALL histdef(nid_bilKPave,"dtajs", 158 161 . "Ajustement sec dT","K/s", 159 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,162 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 160 163 . typeval, zsto,zout) 161 164 c … … 163 166 . "Ajustement sec dQ", 164 167 . "Kg/Kg/s", 165 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,168 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 166 169 . typeval, zsto,zout) 167 170 c 168 171 CALL histdef(nid_bilKPave, "dteva", 169 172 . "Reevaporation dT", "K/s", 170 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,173 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 171 174 . typeval, zsto,zout) 172 175 c … … 174 177 . "Reevaporation dQ", 175 178 . "Kg/Kg/s", 176 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,179 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 177 180 . typeval, zsto,zout) 178 181 … … 180 183 CALL histdef(nid_bilKPave, "dtswr", 181 184 . "SW radiation dT", "K/s", 182 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,185 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 183 186 . typeval, zsto,zout) 184 187 c 185 188 CALL histdef(nid_bilKPave, "dtsw0", 186 189 . "SW radiation dT", "K/s", 187 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,190 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 188 191 . typeval, zsto,zout) 189 192 c 190 193 CALL histdef(nid_bilKPave, "dtlwr", 191 194 . "LW radiation dT", "K/s", 192 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,195 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 193 196 . typeval, zsto,zout) 194 197 c 195 198 CALL histdef(nid_bilKPave, "dtlw0", 196 199 . "LW radiation dT", "K/s", 197 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,200 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 198 201 . typeval, zsto,zout) 199 202 c 200 203 CALL histdef(nid_bilKPave,"duvdf", 201 204 . "Boundary-layer dU","m/s2", 202 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,205 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 203 206 . typeval, zsto,zout) 204 207 c 205 208 CALL histdef(nid_bilKPave,"dvvdf", 206 209 . "Boundary-layer dV","m/s2", 207 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,210 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 208 211 . typeval, zsto,zout) 209 212 c … … 212 215 CALL histdef(nid_bilKPave, "duoli", 213 216 . "Orography dU", "m/s2", 214 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,217 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 215 218 . typeval, zsto,zout) 216 219 c 217 220 CALL histdef(nid_bilKPave, "dvoli", 218 221 . "Orography dV", "m/s2", 219 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,222 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 220 223 . typeval, zsto,zout) 221 224 c … … 225 228 CALL histdef(nid_bilKPave, "duphy", 226 229 . "Physiq dU","-", 227 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,230 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 228 231 . typeval, zsto,zout) 229 232 C 230 233 CALL histdef(nid_bilKPave, "dvphy", 231 234 . "Physiq dV","-", 232 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,235 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 233 236 . typeval, zsto,zout) 234 237 C 235 238 CALL histdef(nid_bilKPave, "dtphy", 236 239 . "Physiq dT","-", 237 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,240 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 238 241 . typeval, zsto,zout) 239 242 C 240 243 CALL histdef(nid_bilKPave, "dqphy", 241 244 . "Physiq dQ","-", 242 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,245 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 243 246 . typeval, zsto,zout) 244 247 C 245 248 CALL histdef(nid_bilKPave, "dqlphy", 246 249 . "Physiq dQl","-", 247 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,250 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 248 251 . typeval, zsto,zout) 249 252 C -
LMDZ4/trunk/libf/phylmd/ini_bilKP_ins.h
r684 r766 11 11 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) 12 12 c 13 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)14 DO i = 1, iim15 zx_lon(i,1) = rlon(i+1)16 zx_lon(i,jjmp1) = rlon(i+1)17 ENDDO13 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon) 14 cym DO i = 1, iim 15 cym zx_lon(i,1) = rlon(i+1) 16 cym zx_lon(i,jjmp1) = rlon(i+1) 17 cym ENDDO 18 18 DO ll=1,klev 19 19 znivsig(ll)=float(ll) 20 20 ENDDO 21 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)22 write(*,*)'zx_lon = ',zx_lon(:,1)23 write(*,*)'zx_lat = ',zx_lat(1,:)21 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 22 cym write(*,*)'zx_lon = ',zx_lon(:,1) 23 cym write(*,*)'zx_lat = ',zx_lat(1,:) 24 24 c 25 25 cIM 280405 BEG … … 30 30 jmin_ins=1 31 31 jmax_ins=jjmp1 32 do i=1,iim-133 if(zx_lon(i,1).lt.lonmin_ins) imin_ins=i34 if(zx_lon(i,1).le.lonmax_ins) imax_ins=i+135 enddo36 do j=1,jjmp137 if(zx_lat(1,j).ge.latmin_ins) jmax_ins=j38 if(zx_lat(1,j).gt.latmax_ins) jmin_ins=j39 enddo32 cym do i=1,iim-1 33 cym if(zx_lon(i,1).lt.lonmin_ins) imin_ins=i 34 cym if(zx_lon(i,1).le.lonmax_ins) imax_ins=i+1 35 cym enddo 36 cym do j=1,jjmp1 37 cym if(zx_lat(1,j).ge.latmin_ins) jmax_ins=j 38 cym if(zx_lat(1,j).gt.latmax_ins) jmin_ins=j 39 cym enddo 40 40 c 41 41 print*,'On stoke le fichier bilKP instantanne sur ', … … 48 48 cIM 280405 END 49 49 c 50 IF(1.EQ.0) THEN51 CALL histbeg("histbilKP_ins", iim,zx_lon(:,1), jjmp1,52 . zx_lat(1,:),53 . 1,iim,1,jjmp1, itau_phy, zjulian, dtime,54 . nhori, nid_bilKPins)50 cym IF(1.EQ.0) THEN 51 cym CALL histbeg("histbilKP_ins", iim,zx_lon(:,1), jjmp1, 52 cym . zx_lat(1,:), 53 cym . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 54 cym . nhori, nid_bilKPins) 55 55 ENDIF 56 56 c … … 58 58 c 59 59 cIM cf. AM 081204 BEG region 60 CALL histbeg("histbilKP_ins", iim,zx_lon(:,1), 61 . jjmp1,zx_lat(1,:), 62 . imin_ins,imax_ins-imin_ins+1, 63 . jmin_ins,jmax_ins-jmin_ins+1, 64 . itau_phy, zjulian, dtime, 60 cym CALL histbeg("histbilKP_ins", iim,zx_lon(:,1), 61 cym . jjmp1,zx_lat(1,:), 62 cym . imin_ins,imax_ins-imin_ins+1, 63 cym . jmin_ins,jmax_ins-jmin_ins+1, 64 cym . itau_phy, zjulian, dtime, 65 cym . nhori, nid_bilKPins) 66 CALL histbeg_phy("histbilKP_ins", itau_phy, zjulian, dtime, 65 67 . nhori, nid_bilKPins) 66 68 cIM 081204 END … … 77 79 CALL histdef(nid_bilKPins,"ue", 78 80 . "Zonal energy transport","-", 79 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,81 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 80 82 . typeval, zsto,zout) 81 83 c 82 84 CALL histdef(nid_bilKPins,"ve", 83 85 . "Merid energy transport","-", 84 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,86 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 85 87 . typeval, zsto,zout) 86 88 c 87 89 CALL histdef(nid_bilKPins,"uq", 88 90 . "Zonal humidity transport","-", 89 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,91 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 90 92 . typeval, zsto,zout) 91 93 c 92 94 CALL histdef(nid_bilKPins,"vq", 93 95 . "Merid humidity transport","-", 94 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,96 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 95 97 . typeval, zsto,zout) 96 98 c … … 99 101 CALL histdef(nid_bilKPins, "temp", 100 102 . "Air temperature", "K", 101 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,103 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 102 104 . typeval, zsto,zout) 103 105 c 104 106 CALL histdef(nid_bilKPins,"ovap", 105 107 . "Specific humidity","Kg/Kg", 106 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,108 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 107 109 . typeval, zsto,zout) 108 110 c 109 111 CALL histdef(nid_bilKPins,"geop", 110 112 . "Geopotential height", "m", 111 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,113 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 112 114 . typeval, zsto,zout) 113 115 c 114 116 CALL histdef(nid_bilKPins,"vitu", 115 117 . "Zonal wind", "m/s", 116 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,118 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 117 119 . typeval, zsto,zout) 118 120 c 119 121 CALL histdef(nid_bilKPins,"vitv", 120 122 . "Meridional wind", "m/s", 121 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,123 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 122 124 . typeval, zsto,zout) 123 125 c 124 126 CALL histdef(nid_bilKPins, "vitw", 125 127 . "Vertical wind", "m/s", 126 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,128 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 127 129 . typeval, zsto,zout) 128 130 c … … 130 132 . "Inter-Layer Air pressure", 131 133 . "Pa", 132 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,134 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 133 135 . typeval, zsto,zout) 134 136 c … … 136 138 . "Mean-Layer Air pressure", 137 139 . "Pa", 138 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,140 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 139 141 . typeval, zsto,zout) 140 142 c … … 142 144 . "Liquid water content", 143 145 . "kg/kg", 144 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,146 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 145 147 . typeval, zsto,zout) 146 148 c 147 149 CALL histdef(nid_bilKPins, "dtdyn", 148 150 . "Dynamics dT", "K/s", 149 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,151 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 150 152 . typeval, zsto,zout) 151 153 c 152 154 CALL histdef(nid_bilKPins, "dqdyn", 153 155 . "Dynamics dQ", "Kg/Kg/s", 154 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,156 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 155 157 . typeval, zsto,zout) 156 158 c 157 159 CALL histdef(nid_bilKPins, "dtcon", 158 160 . "Convection dT", "K/s", 159 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,161 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 160 162 . typeval, zsto,zout) 161 163 c 162 164 CALL histdef(nid_bilKPins, "ducon", 163 165 . "Convection du", "m/s2", 164 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,166 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 165 167 . typeval, zsto,zout) 166 168 c 167 169 CALL histdef(nid_bilKPins, "dvcon", 168 170 . "Convection dv", "m/s2", 169 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,171 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 170 172 . typeval, zsto,zout) 171 173 c 172 174 CALL histdef(nid_bilKPins,"dqcon", 173 175 . "Convection dQ","Kg/Kg/s", 174 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,176 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 175 177 . typeval, zsto,zout) 176 178 c 177 179 CALL histdef(nid_bilKPins, "dtlsc", 178 180 . "Condensation dT", "K/s", 179 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,181 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 180 182 . typeval, zsto,zout) 181 183 c 182 184 CALL histdef(nid_bilKPins,"dqlsc", 183 185 . "Condensation dQ","Kg/Kg/s", 184 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,186 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 185 187 . typeval, zsto,zout) 186 188 c 187 189 CALL histdef(nid_bilKPins,"dtvdf", 188 190 . "Boundary-layer dT","K/s", 189 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,191 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 190 192 . typeval, zsto,zout) 191 193 c … … 193 195 . "Boundary-layer dQ", 194 196 . "Kg/Kg/s", 195 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,197 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 196 198 . typeval, zsto,zout) 197 199 c 198 200 CALL histdef(nid_bilKPins,"dtajs", 199 201 . "Ajustement sec dT","K/s", 200 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,202 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 201 203 . typeval, zsto,zout) 202 204 c … … 204 206 . "Ajustement sec dQ", 205 207 . "Kg/Kg/s", 206 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,208 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 207 209 . typeval, zsto,zout) 208 210 c 209 211 CALL histdef(nid_bilKPins,"dteva", 210 212 . "Reevaporation dT","K/s", 211 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,213 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 212 214 . typeval, zsto,zout) 213 215 c … … 215 217 . "Reevaporation dQ", 216 218 . "Kg/Kg/s", 217 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,219 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 218 220 . typeval, zsto,zout) 219 221 … … 221 223 CALL histdef(nid_bilKPins, "dtswr", 222 224 . "SW radiation dT", "K/s", 223 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,225 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 224 226 . typeval, zsto,zout) 225 227 c 226 228 CALL histdef(nid_bilKPins, "dtsw0", 227 229 . "SW radiation dT", "K/s", 228 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,230 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 229 231 . typeval, zsto,zout) 230 232 c 231 233 CALL histdef(nid_bilKPins, "dtlwr", 232 234 . "LW radiation dT", "K/s", 233 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,235 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 234 236 . typeval, zsto,zout) 235 237 c 236 238 CALL histdef(nid_bilKPins, "dtlw0", 237 239 . "LW radiation dT", "K/s", 238 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,240 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 239 241 . typeval, zsto,zout) 240 242 c 241 243 CALL histdef(nid_bilKPins,"duvdf", 242 244 . "Boundary-layer dU","m/s2", 243 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,245 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 244 246 . typeval, zsto,zout) 245 247 c 246 248 CALL histdef(nid_bilKPins,"dvvdf", 247 249 . "Boundary-layer dV","m/s2", 248 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,250 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 249 251 . typeval, zsto,zout) 250 252 c … … 253 255 CALL histdef(nid_bilKPins, "duoli", 254 256 . "Orography dU", "m/s2", 255 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,257 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 256 258 . typeval, zsto,zout) 257 259 c 258 260 CALL histdef(nid_bilKPins, "dvoli", 259 261 . "Orography dV", "m/s2", 260 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,262 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 261 263 . typeval, zsto,zout) 262 264 c … … 266 268 CALL histdef(nid_bilKPins, "duphy", 267 269 . "Physiq dU","-", 268 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,270 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 269 271 . typeval, zsto,zout) 270 272 C 271 273 CALL histdef(nid_bilKPins, "dvphy", 272 274 . "Physiq dV","-", 273 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,275 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 274 276 . typeval, zsto,zout) 275 277 C 276 278 CALL histdef(nid_bilKPins, "dtphy", 277 279 . "Physiq dT","-", 278 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,280 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 279 281 . typeval, zsto,zout) 280 282 C 281 283 CALL histdef(nid_bilKPins, "dqphy", 282 284 . "Physiq dQ","-", 283 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,285 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 284 286 . typeval, zsto,zout) 285 287 C 286 288 CALL histdef(nid_bilKPins, "dqlphy", 287 289 . "Physiq dQl","-", 288 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,290 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 289 291 . typeval, zsto,zout) 290 292 cIM 280405 BEG … … 303 305 CALL histdef(nid_bilKPins, "u"//bb2, 304 306 . "Zonal wind "//bb2//"mb","m/s", 305 . iim,jj mp1,nhori, 1,1,1, -99, 32,307 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 306 308 . typeval, zsto,zout) 307 309 c 308 310 CALL histdef(nid_bilKPins, "v"//bb2, 309 311 . "Meridional wind "//bb2//"mb","m/s", 310 . iim,jj mp1,nhori, 1,1,1, -99, 32,312 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 311 313 . typeval, zsto,zout) 312 314 c -
LMDZ4/trunk/libf/phylmd/ini_histISCCP.h
r684 r766 4 4 IF (ok_isccp) THEN 5 5 c 6 c$OMP MASTER 6 7 ndex2d = 0 7 8 ndex3d = 0 … … 53 54 c definition coordonnees lon,lat en globale 54 55 c 55 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)56 DO i = 1, iim57 zx_lon(i,1) = rlon(i+1)58 zx_lon(i,jjmp1) = rlon(i+1)59 ENDDO60 61 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat)56 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon) 57 cym DO i = 1, iim 58 cym zx_lon(i,1) = rlon(i+1) 59 cym zx_lon(i,jjmp1) = rlon(i+1) 60 cym ENDDO 61 62 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 62 63 c 63 64 cIM BEG region 65 cym Desole dans un premier temps le mode region ne marchera pas 66 cym Il faudra voir dans un second temps pour l'implementer 67 cym Mais cela posera des problemes au niveau de la reconstruction 68 64 69 imin_ins=1 65 70 imax_ins=iim 66 71 jmin_ins=1 67 72 jmax_ins=jjmp1 68 do i=1,iim-169 if(zx_lon(i,1).lt.lonmin_ins) imin_ins=i70 if(zx_lon(i,1).le.lonmax_ins) imax_ins=i+171 enddo72 do j=1,jjmp173 if(zx_lat(1,j).ge.latmin_ins) jmax_ins=j74 if(zx_lat(1,j).gt.latmax_ins) jmin_ins=j75 enddo73 cym do i=1,iim-1 74 cym if(zx_lon(i,1).lt.lonmin_ins) imin_ins=i 75 cym if(zx_lon(i,1).le.lonmax_ins) imax_ins=i+1 76 cym enddo 77 cym do j=1,jjmp1 78 cym if(zx_lat(1,j).ge.latmin_ins) jmax_ins=j 79 cym if(zx_lat(1,j).gt.latmax_ins) jmin_ins=j 80 cym enddo 76 81 c 77 82 print*,'On stoke le fichier histISCCP instantanne sur ', 78 83 s imin_ins,imax_ins,jmin_ins,jmax_ins 79 print*,'On stoke le fichier histISCCP instantanne sur ',80 s zx_lon(imin_ins,1),zx_lon(imax_ins,1),81 s zx_lat(1,jmin_ins),zx_lat(1,jmax_ins)84 cym print*,'On stoke le fichier histISCCP instantanne sur ', 85 cym s zx_lon(imin_ins,1),zx_lon(imax_ins,1), 86 cym s zx_lat(1,jmin_ins),zx_lat(1,jmax_ins) 82 87 cIM END region 83 88 c 84 89 IF(1.EQ.0) THEN 85 CALL histbeg("histISCCP.nc", iim,zx_lon(:,1),jjmp1,zx_lat(1,:), 86 . 1, iim, 1, jjmp1, 87 . itau_phy, zjulian, dtime, 90 cym CALL histbeg("histISCCP.nc", iim,zx_lon(:,1),jjmp1,zx_lat(1,:), 91 cym . 1, iim, 1, jjmp1, 92 cym . itau_phy, zjulian, dtime, 93 cym . nhori, nid_isccp) 94 CALL histbeg_phy("histISCCP.nc", itau_phy, zjulian, dtime, 88 95 . nhori, nid_isccp) 96 89 97 ENDIF !(1.EQ.0) THEN 90 98 c 91 CALL histbeg("histISCCP.nc", iim,zx_lon(:,1), 92 . jjmp1,zx_lat(1,:), 93 . imin_ins,imax_ins-imin_ins+1, 94 . jmin_ins,jmax_ins-jmin_ins+1, 95 . itau_phy, zjulian, dtime, 99 cym CALL histbeg("histISCCP.nc", iim,zx_lon(:,1), 100 cym . jjmp1,zx_lat(1,:), 101 cym . imin_ins,imax_ins-imin_ins+1, 102 cym . jmin_ins,jmax_ins-jmin_ins+1, 103 cym . itau_phy, zjulian, dtime, 104 cym . nhori, nid_isccp) 105 106 CALL histbeg_phy("histISCCP.nc", itau_phy, zjulian, dtime, 96 107 . nhori, nid_isccp) 108 97 109 c 98 110 IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN … … 118 130 CALL histdef(nid_isccp, "cldISCCP_"//taulev(k)//typinout(n), 119 131 . "LMDZ ISCCP cld", "%", 120 . iim, jj mp1,nhori,lmaxm1,1,lmaxm1,nvert,32,132 . iim, jjphy_nb,nhori,lmaxm1,1,lmaxm1,nvert,32, 121 133 . "ave(X)", zcals(n),zout_isccp(n)) 122 134 ENDDO … … 124 136 CALL histdef(nid_isccp, "nsunlit"//typinout(n), 125 137 . "Nb of calls with sunlit ", "%", 126 . iim, jj mp1,nhori,1,1,1,-99,32,138 . iim, jjphy_nb,nhori,1,1,1,-99,32, 127 139 . "ave(X)", zcals(n),zout_isccp(n)) 128 140 c … … 140 152 CALL histdef(nid_isccp, pclev(l)//taulev(k)//typinout(n), 141 153 . "LMDZ ISCCP cld "//cnameisccp(l,k), "%", 142 . iim, jj mp1,nhori,1,1,1,-99,32,154 . iim, jjphy_nb,nhori,1,1,1,-99,32, 143 155 . "ave(X)", zcals(n),zout_isccp(n)) 144 156 c … … 149 161 CALL histdef(nid_isccp, "nsunlit"//typinout(n), 150 162 . "Nb of calls with sunlit ", "%", 151 . iim, jj mp1,nhori,1,1,1,-99,32,163 . iim, jjphy_nb,nhori,1,1,1,-99,32, 152 164 . "ave(X)", zcals(n),zout_isccp(n)) 153 165 c … … 155 167 CALL histdef(nid_isccp, "cirr", 156 168 . "Cirrus lk ISCCP-D2", "%", 157 . iim, jj mp1,nhori,1,1,1,-99,32,169 . iim, jjphy_nb,nhori,1,1,1,-99,32, 158 170 . "ave(X)", zcals(n),zout_isccp(n)) 159 171 c 160 172 CALL histdef(nid_isccp, "cist", 161 173 . "CiSt lk ISCCP-D2", "%", 162 . iim, jj mp1,nhori,1,1,1,-99,32,174 . iim, jjphy_nb,nhori,1,1,1,-99,32, 163 175 . "ave(X)", zcals(n),zout_isccp(n)) 164 176 c 165 177 CALL histdef(nid_isccp, "deep", 166 178 . "Deep lk ISCCP-D2", "%", 167 . iim, jj mp1,nhori,1,1,1,-99,32,179 . iim, jjphy_nb,nhori,1,1,1,-99,32, 168 180 . "ave(X)", zcals(n),zout_isccp(n)) 169 181 c 170 182 CALL histdef(nid_isccp, "alcu", 171 183 . "AlCu lk ISCCP-D2", "%", 172 . iim, jj mp1,nhori,1,1,1,-99,32,184 . iim, jjphy_nb,nhori,1,1,1,-99,32, 173 185 . "ave(X)", zcals(n),zout_isccp(n)) 174 186 c 175 187 CALL histdef(nid_isccp, "alst", 176 188 . "AlSt lk ISCCP-D2", "%", 177 . iim, jj mp1,nhori,1,1,1,-99,32,189 . iim, jjphy_nb,nhori,1,1,1,-99,32, 178 190 . "ave(X)", zcals(n),zout_isccp(n)) 179 191 c 180 192 CALL histdef(nid_isccp, "nist", 181 193 . "NiSt lk ISCCP-D2", "%", 182 . iim, jj mp1,nhori,1,1,1,-99,32,194 . iim, jjphy_nb,nhori,1,1,1,-99,32, 183 195 . "ave(X)", zcals(n),zout_isccp(n)) 184 196 c 185 197 CALL histdef(nid_isccp, "cumu", 186 198 . "Cumu lk ISCCP-D2", "%", 187 . iim, jj mp1,nhori,1,1,1,-99,32,199 . iim, jjphy_nb,nhori,1,1,1,-99,32, 188 200 . "ave(X)", zcals(n),zout_isccp(n)) 189 201 c 190 202 CALL histdef(nid_isccp, "stcu", 191 203 . "StCu lk ISCCP-D2", "%", 192 . iim, jj mp1,nhori,1,1,1,-99,32,204 . iim, jjphy_nb,nhori,1,1,1,-99,32, 193 205 . "ave(X)", zcals(n),zout_isccp(n)) 194 206 c 195 207 CALL histdef(nid_isccp, "stra", 196 208 . "Stra lk ISCCP-D2", "%", 197 . iim, jj mp1,nhori,1,1,1,-99,32,209 . iim, jjphy_nb,nhori,1,1,1,-99,32, 198 210 . "ave(X)", zcals(n),zout_isccp(n)) 199 211 c … … 201 213 CALL histdef(nid_isccp, "thin", 202 214 . "Opt. thin ISCCP-D2 like clouds", "%", 203 . iim, jj mp1,nhori,lmax3,1,lmax3,nvert3,32,215 . iim, jjphy_nb,nhori,lmax3,1,lmax3,nvert3,32, 204 216 . "ave(X)", zcals(n),zout_isccp(n)) 205 217 c 206 218 CALL histdef(nid_isccp, "mid", 207 219 . "Opt. intermediate ISCCP-D2 like clouds", "%", 208 . iim, jj mp1,nhori,lmax3,1,lmax3,nvert3,32,220 . iim, jjphy_nb,nhori,lmax3,1,lmax3,nvert3,32, 209 221 . "ave(X)", zcals(n),zout_isccp(n)) 210 222 c 211 223 CALL histdef(nid_isccp, "thick", 212 224 . "Opt. thick ISCCP-D2 like clouds", "%", 213 . iim, jj mp1,nhori,lmax3,1,lmax3,nvert3,32,225 . iim, jjphy_nb,nhori,lmax3,1,lmax3,nvert3,32, 214 226 . "ave(X)", zcals(n),zout_isccp(n)) 215 227 c … … 224 236 CALL histdef(nid_isccp,"boxptop"//verticaxe(n), 225 237 . "Boxptop axe"//verticaxe(n), "mb", 226 . iim, jj mp1,nhori,238 . iim, jjphy_nb,nhori, 227 239 . ncol(n),1,ncol(n),nvlev(n),32, 228 240 cIM . ncolmx,1,ncolmx,nvlev,32, … … 237 249 CALL histdef(nid_isccp, "seed"//verticaxe(n), 238 250 . "seed axe"//verticaxe(n), "-", 239 . iim, jj mp1,nhori,1,1,1,-99,32,251 . iim, jjphy_nb,nhori,1,1,1,-99,32, 240 252 cIM . "inst(X)", dtime,dtime) 241 253 . "ave(X)", zcals(n),zout_isccp(n)) … … 245 257 CALL histend(nid_isccp) 246 258 c 259 c$OMP END MASTER 247 260 ENDIF ! ok_isccp -
LMDZ4/trunk/libf/phylmd/ini_histREGDYN.h
r644 r766 4 4 5 5 IF (ok_regdyn) THEN 6 7 if (monocpu) then 6 8 c 7 9 cIM PRINT*, 'La frequence de sortie REGDYN est de ', ecrit_mth … … 120 122 c 121 123 CALL histend(nid_regdyn) 124 125 endif ! monocpu 122 126 123 127 endif ! ok_regdyn -
LMDZ4/trunk/libf/phylmd/ini_histday.h
r684 r766 3 3 c 4 4 IF (ok_journe) THEN 5 6 c$OMP MASTER 5 7 c 6 8 zstophy = dtime … … 11 13 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) 12 14 c 13 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)14 DO i = 1, iim15 zx_lon(i,1) = rlon(i+1)16 zx_lon(i,jjmp1) = rlon(i+1)17 ENDDO15 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon) 16 cym DO i = 1, iim 17 cym zx_lon(i,1) = rlon(i+1) 18 cym zx_lon(i,jjmp1) = rlon(i+1) 19 cym ENDDO 18 20 DO ll=1,klev 19 21 znivsig(ll)=float(ll) 20 22 ENDDO 21 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 22 CALL histbeg("histday", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 23 . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 24 . nhori, nid_day) 23 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 24 cym CALL histbeg("histday", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 25 cym . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 26 cym . nhori, nid_day) 27 28 CALL histbeg_phy("histday",itau_phy, zjulian, dtime, 29 . nhori, nid_day) 30 31 write(*,*)'Journee ', itau_phy, zjulian 25 32 CALL histvert(nid_day, "presnivs", "Vertical levels", "mb", 26 33 . klev, presnivs/100., nvert) … … 29 36 c 30 37 CALL histdef(nid_day, "phis", "Surface geop. height", "m2/s2", 31 . iim,jj mp1,nhori, 1,1,1, -99, 32,38 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 32 39 . "once", zstophy,zout) 33 40 c 34 41 CALL histdef(nid_day, "aire", "Grid area", "-", 35 . iim,jj mp1,nhori, 1,1,1, -99, 32,42 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 36 43 . "once", zstophy,zout) 37 44 c 38 45 CALL histdef(nid_day, "contfracATM","% sfce ter+lic ","-", 39 . iim,jj mp1,nhori, 1,1,1, -99, 32,46 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 40 47 . "once", zstophy,zout) 41 48 c 42 49 CALL histdef(nid_day, "contfracOR","% sfce terre OR", "-", 43 . iim,jj mp1,nhori, 1,1,1, -99, 32,50 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 44 51 . "once", zstophy,zout) 45 52 c … … 47 54 c 48 55 CALL histdef(nid_day, "tsol", "Surface Temperature", "K", 49 . iim,jj mp1,nhori, 1,1,1, -99, 32,56 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 50 57 . "ave(X)", zstophy,zout) 51 58 c 52 59 CALL histdef(nid_day, "t2m", "Temperature 2m", "K", 53 . iim,jj mp1,nhori, 1,1,1, -99, 32,54 . "ave(X)", zstophy,zout) 55 c 56 c Champs retires momentann éement en attendant un hypothetique60 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 61 . "ave(X)", zstophy,zout) 62 c 63 c Champs retires momentannement en attendant un hypothetique 57 64 c debugage 58 65 59 66 CALL histdef(nid_day, "t2m_min", "Temp. 2m min.", 60 67 . "K", 61 . iim,jj mp1,nhori, 1,1,1, -99, 32,68 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 62 69 . t2mincels, zstophy,zout) 63 70 c 64 71 CALL histdef(nid_day, "t2m_max", "Temp. 2m max.", 65 72 . "K", 66 . iim,jj mp1,nhori, 1,1,1, -99, 32,73 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 67 74 . t2maxcels, zstophy,zout) 68 75 c 69 76 CALL histdef(nid_day, "plul", "Large-scale Precip.", 70 77 . "kg/(s*m2)", 71 . iim,jj mp1,nhori, 1,1,1, -99, 32,78 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 72 79 . "ave(X)", zstophy,zout) 73 80 c 74 81 CALL histdef(nid_day, "pluc", "Convective Precip.", 75 82 . "kg/(s*m2)", 76 . iim,jj mp1,nhori, 1,1,1, -99, 32,83 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 77 84 . "ave(X)", zstophy,zout) 78 85 c 79 86 CALL histdef(nid_day, "snowl", "Solid Large-scale Precip.", 80 87 . "kg/(m2*s)", 81 . iim,jj mp1,nhori, 1,1,1, -99, 32,88 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 82 89 . "ave(X)", zstophy,zout) 83 90 c … … 85 92 CALL histdef(nid_day, "snowc", "Solid Convective Precip.", 86 93 . "kg/(m2*s)", 87 . iim,jj mp1,nhori, 1,1,1, -99, 32,94 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 88 95 . "ave(X)", zstophy,zout) 89 96 ENDIF !snowc=0. 90 97 c 91 98 CALL histdef(nid_day, "flat", "Latent heat flux", "W/m2", 92 . iim,jj mp1,nhori, 1,1,1, -99, 32,99 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 93 100 . "ave(X)", zstophy,zout) 94 101 c 95 102 CALL histdef(nid_day, "sicf", "Sea-ice fraction", "-", 96 . iim,jj mp1,nhori, 1,1,1, -99, 32,103 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 97 104 . "inst(X)", zstoday,zout) 98 105 c 99 106 CALL histdef(nid_day, "q2m", "Specific humidity", "kg/kg", 100 . iim,jj mp1,nhori, 1,1,1, -99, 32,107 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 101 108 . "ave(X)", zstophy,zout) 102 109 c 103 110 CALL histdef(nid_day, "u10m", "Vent zonal 10m", "m/s", 104 . iim,jj mp1,nhori, 1,1,1, -99, 32,111 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 105 112 . "ave(X)", zstophy,zout) 106 113 c 107 114 CALL histdef(nid_day, "v10m", "Vent meridien 10m", "m/s", 108 . iim,jj mp1,nhori, 1,1,1, -99, 32,115 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 109 116 . "ave(X)", zstophy,zout) 110 117 c 111 118 CALL histdef(nid_day, "wind10m","10-m wind speed","m/s", 112 . iim,jj mp1,nhori, 1,1,1, -99, 32,119 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 113 120 . "ave(X)", zstophy,zout) 114 121 c 115 122 CALL histdef(nid_day, "wind10max", "10-m wind speed max.", 116 123 . "m/s", 117 . iim,jj mp1,nhori, 1,1,1, -99, 32,124 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 118 125 . t2maxcels, zstophy,zout) 119 126 c 120 127 CALL histdef(nid_day, "psol", "Surface Pressure", "Pa", 121 . iim,jj mp1,nhori, 1,1,1, -99, 32,128 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 122 129 . "ave(X)", zstophy,zout) 123 130 c 124 131 CALL histdef(nid_day, "precip","Precipitation Totale liq+sol" 125 132 . , "kg/(s*m2)", 126 . iim,jj mp1,nhori, 1,1,1, -99, 32,133 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 127 134 . "ave(X)", zstophy,zout) 128 135 c 129 136 CALL histdef(nid_day, "snowf", "Snow fall", "kg/(m2*s)", 130 . iim,jj mp1,nhori, 1,1,1, -99, 32,137 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 131 138 . "ave(X)", zstophy,zout) 132 139 c 133 140 c CALL histdef(nid_day, "snow_mass", "Snow Mass", "kg/m2", 134 c . iim,jj mp1,nhori, 1,1,1, -99, 32,141 c . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 135 142 c . "ave(X)", zstophy,zout) 136 143 c 137 144 CALL histdef(nid_day, "evap", "Evaporation", "kg/(m2*s)", 138 . iim,jj mp1,nhori, 1,1,1, -99, 32,145 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 139 146 . "ave(X)", zstophy,zout) 140 147 c 141 148 CALL histdef(nid_day, "tops", "Solar rad. at TOA", "W/m2", 142 . iim,jj mp1,nhori, 1,1,1, -99, 32,149 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 143 150 . "ave(X)", zstophy,zout) 144 151 c 145 152 CALL histdef(nid_day, "topl", "IR rad. at TOA", "W/m2", 146 . iim,jj mp1,nhori, 1,1,1, -99, 32,153 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 147 154 . "ave(X)", zstophy,zout) 148 155 c 149 156 CALL histdef(nid_day, "sols", "Net Solar rad. at surf.", 150 157 . "W/m2", 151 . iim,jj mp1,nhori, 1,1,1, -99, 32,158 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 152 159 . "ave(X)", zstophy,zout) 153 160 c 154 161 CALL histdef(nid_day, "soll", "Net IR rad. at surface", "W/m2", 155 . iim,jj mp1,nhori, 1,1,1, -99, 32,162 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 156 163 . "ave(X)", zstophy,zout) 157 164 c 158 165 CALL histdef(nid_day, "radsol", "Rayonnement au sol", "W/m2", 159 . iim,jj mp1,nhori, 1,1,1, -99, 32,166 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 160 167 . "ave(X)", zstophy,zout) 161 168 c 162 169 CALL histdef(nid_day, "cldl", "Low-level cloudiness", "-", 163 . iim,jj mp1,nhori, 1,1,1, -99, 32,170 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 164 171 . "ave(X)", zstophy,zout) 165 172 c 166 173 CALL histdef(nid_day, "cldm", "Mid-level cloudiness", "-", 167 . iim,jj mp1,nhori, 1,1,1, -99, 32,174 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 168 175 . "ave(X)", zstophy,zout) 169 176 c 170 177 CALL histdef(nid_day, "cldh", "High-level cloudiness", "-", 171 . iim,jj mp1,nhori, 1,1,1, -99, 32,178 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 172 179 . "ave(X)", zstophy,zout) 173 180 c 174 181 CALL histdef(nid_day, "cldt", "Total cloudiness", "-", 175 . iim,jj mp1,nhori, 1,1,1, -99, 32,182 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 176 183 . "ave(X)", zstophy,zout) 177 184 c 178 185 CALL histdef(nid_day, "cldq", "Cloud liquid water path", 179 186 . "kg/m2", 180 . iim,jj mp1,nhori, 1,1,1, -99, 32,187 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 181 188 . "ave(X)", zstophy,zout) 182 189 c 183 190 CALL histdef(nid_day, "prw", "Precipitable water", "kg/m2", 184 . iim,jj mp1,nhori, 1,1,1, -99, 32,191 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 185 192 . "ave(X)", zstophy,zout) 186 193 c … … 203 210 CALL histdef(nid_day, "u"//bb2, 204 211 . "Zonal wind "//bb2//"mb","m/s", 205 . iim,jj mp1,nhori, 1,1,1, -99, 32,212 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 206 213 . "inst(X)", zout,zout) 207 214 c 208 215 CALL histdef(nid_day, "v"//bb2, 209 216 . "Meridional wind "//bb2//"mb","m/s", 210 . iim,jj mp1,nhori, 1,1,1, -99, 32,217 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 211 218 . "inst(X)", zout,zout) 212 219 c … … 217 224 CALL histdef(nid_day, "w"//bb2, "Vertical wind "//bb2//"mb", 218 225 . "m/s", 219 . iim,jj mp1,nhori, 1,1,1, -99, 32,226 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 220 227 . "inst(X)", zout,zout) 221 228 c 222 229 CALL histdef(nid_day,"phi"//bb2, "Geopotential "//bb2//"mb", 223 230 . "m", 224 . iim,jj mp1,nhori, 1,1,1, -99, 32,231 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 225 232 . "inst(X)", zout,zout) 226 233 c … … 230 237 c 231 238 CALL histdef(nid_day, "slp", "Sea Level Pressure", "Pa", 232 . iim,jj mp1,nhori, 1,1,1, -99, 32,239 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 233 240 . "ave(X)", zstophy,zout) 234 241 c 235 242 CALL histdef(nid_day, "cape_max", "CAPE max.", 236 243 . "J/kg", 237 . iim,jj mp1,nhori, 1,1,1, -99, 32,244 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 238 245 . capemaxcels, zstophy,zout) 239 246 c 240 247 CALL histdef(nid_day, "solldown", "Down. IR rad. at surface", 241 . "W/m2", iim,jj mp1,nhori, 1,1,1, -99, 32,248 . "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 242 249 . "ave(X)", zstophy,zout) 243 250 c 244 251 CALL histdef(nid_day, "sens", "Sensible heat flux", "W/m2", 245 . iim,jj mp1,nhori, 1,1,1, -99, 32,252 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 246 253 . "ave(X)", zstophy,zout) 247 254 c 248 255 CALL histdef(nid_day, "SWdnSFC", "SWdn at surface","W/m2", 249 . iim,jj mp1,nhori, 1,1,1,-99,256 . iim,jjphy_nb,nhori, 1,1,1,-99, 250 257 . 32, "ave(X)", zstophy,zout) 251 258 c … … 257 264 CALL histdef(nid_day, "lmt_bils", 258 265 . "Bilan au sol atmosphere forcee", "W/m2", 259 . iim,jj mp1,nhori, 1,1,1, -99, 32,266 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 260 267 . "ave(X)", zstophy,zout) 261 268 c … … 264 271 CALL histdef(nid_day, "slab_bils", 265 272 . "Bilan au sol slab", "W/m2", 266 . iim,jj mp1,nhori, 1,1,1, -99, 32,273 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 267 274 . "ave(X)", zstophy,zout) 268 275 c 269 276 CALL histdef(nid_day, "tslab", "Slab SST ", "K", 270 . iim,jj mp1,nhori, 1,1,1, -99, 32,277 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 271 278 . "ave(X)", zstophy,zout) 272 279 c 273 280 CALL histdef(nid_day, "seaice", "Slab seaice", "kg/m2", 274 . iim,jj mp1,nhori, 1,1,1, -99, 32,281 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 275 282 . "ave(X)", zstophy,zout) 276 283 c 277 284 CALL histdef(nid_day, "siceh", "Slab seaice height", "m", 278 . iim,jj mp1,nhori, 1,1,1, -99, 32,285 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 279 286 . "ave(X)", zstophy,zout) 280 287 c … … 283 290 CALL histdef(nid_day, "fluxo", 284 291 . "Flux turbulents ocean-atmosphere", "W/m2", 285 . iim,jj mp1,nhori, 1,1,1, -99, 32,292 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 286 293 . "ave(X)", zstophy,zout) 287 294 c 288 295 CALL histdef(nid_day, "fluxg", 289 296 . "Flux ocean-glace de mer", "W/m2", 290 . iim,jj mp1,nhori, 1,1,1, -99, 32,297 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 291 298 . "ave(X)", zstophy,zout) 292 299 c … … 296 303 c 297 304 CALL histdef(nid_day, "bils", "Surf. total heat flux", "W/m2", 298 . iim,jj mp1,nhori, 1,1,1, -99, 32,305 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 299 306 . "ave(X)", zstophy,zout) 300 307 c 301 308 CALL histdef(nid_day, "fder", "Heat flux derivation", "W/m2/K", 302 . iim,jj mp1,nhori, 1,1,1, -99, 32,309 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 303 310 . "ave(X)", zstophy,zout) 304 311 c … … 314 321 c 315 322 CALL histdef(nid_day, "temp", "Air temperature", "K", 316 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,323 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 317 324 . "ave(X)", zstophy,zout) 318 325 c 319 326 CALL histdef(nid_day, "ovap", "Specific humidity", "kg/kg", 320 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,327 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 321 328 . "ave(X)", zstophy,zout) 322 329 c 323 330 CALL histdef(nid_day, "geop", "Geopotential height", "m2/s2", 324 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,331 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 325 332 . "ave(X)", zstophy,zout) 326 333 c 327 334 CALL histdef(nid_day, "vitu", "Zonal wind", "m/s", 328 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,335 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 329 336 . "ave(X)", zstophy,zout) 330 337 c 331 338 CALL histdef(nid_day, "vitv", "Meridional wind", "m/s", 332 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,339 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 333 340 . "ave(X)", zstophy,zout) 334 341 c 335 342 CALL histdef(nid_day, "vitw", "Vertical wind", "m/s", 336 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,343 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 337 344 . "ave(X)", zstophy,zout) 338 345 c 339 346 CALL histdef(nid_day, "pres", "Air pressure", "Pa", 340 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,347 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 341 348 . "ave(X)", zstophy,zout) 342 349 c … … 354 361 c 355 362 CALL histdef(nid_day, "SWupTOA", "SWup at TOA","W/m2", 356 . iim,jj mp1,nhori, 1,1,1,-99,363 . iim,jjphy_nb,nhori, 1,1,1,-99, 357 364 . 32, "ave(X)", zstophy,zout) 358 365 c 359 366 CALL histdef(nid_day, "SWupSFC", "SWup at surface","W/m2", 360 . iim,jj mp1,nhori, 1,1,1,-99,367 . iim,jjphy_nb,nhori, 1,1,1,-99, 361 368 . 32, "ave(X)", zstophy,zout) 362 369 c 363 370 CALL histdef(nid_day, "SWdnTOA", "SWdn at TOA","W/m2", 364 . iim,jj mp1,nhori, 1,1,1,-99,371 . iim,jjphy_nb,nhori, 1,1,1,-99, 365 372 . 32, "ave(X)", zstophy,zout) 366 373 c 367 374 CALL histdef(nid_day, "SWupTOAclr", 368 375 . "SWup clear sky at TOA","W/m2", 369 . iim,jj mp1,nhori, 1,1,1,-99,376 . iim,jjphy_nb,nhori, 1,1,1,-99, 370 377 . 32, "ave(X)", zstophy,zout) 371 378 372 379 CALL histdef(nid_day, "SWupSFCclr", 373 380 . "SWup clear sky at surface","W/m2", 374 . iim,jj mp1,nhori, 1,1,1,-99,381 . iim,jjphy_nb,nhori, 1,1,1,-99, 375 382 . 32, "ave(X)", zstophy,zout) 376 383 377 384 CALL histdef(nid_day, "SWdnTOAclr", 378 385 . "SWdn clear sky at TOA","W/m2", 379 . iim,jj mp1,nhori, 1,1,1,-99,386 . iim,jjphy_nb,nhori, 1,1,1,-99, 380 387 . 32, "ave(X)", zstophy,zout) 381 388 382 389 CALL histdef(nid_day, "SWdnSFCclr", 383 390 . "SWdn clear sky at surface","W/m2", 384 . iim,jj mp1,nhori, 1,1,1,-99,391 . iim,jjphy_nb,nhori, 1,1,1,-99, 385 392 . 32, "ave(X)", zstophy,zout) 386 393 c … … 388 395 CALL histdef(nid_day, "LWdnSFC", 389 396 . "LW down at surface","W/m2", 390 . iim,jj mp1,nhori, 1,1,1,-99,397 . iim,jjphy_nb,nhori, 1,1,1,-99, 391 398 . 32, "ave(X)", zstophy,zout) 392 399 c 393 400 CALL histdef(nid_day, "LWupSFC", 394 401 . "LW down at surface","W/m2", 395 . iim,jj mp1,nhori, 1,1,1,-99,402 . iim,jjphy_nb,nhori, 1,1,1,-99, 396 403 . 32, "ave(X)", zstophy,zout) 397 404 c … … 400 407 c . "Cld top pressure","mb", 401 408 . "Cld top pressure (cf ISCCP simulator)","Pa", 402 . iim,jj mp1,nhori, 1,1,1,-99,409 . iim,jjphy_nb,nhori, 1,1,1,-99, 403 410 . 32, "ave(X)", zstophy,zout) 404 411 cIM ENDIF !(iflag_con.GE.3) THEN … … 411 418 c 412 419 CALL histdef(nid_day, "tter", "Surface Temperature ter", "K", 413 . iim,jj mp1,nhori, 1,1,1, -99, 32,420 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 414 421 . "ave(X)", zstophy,zout) 415 422 c 416 423 CALL histdef(nid_day, "tlic", "Surface Temperature lic", "K", 417 . iim,jj mp1,nhori, 1,1,1, -99, 32,424 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 418 425 . "ave(X)", zstophy,zout) 419 426 c 420 427 CALL histdef(nid_day, "toce", "Surface Temperature oce", "K", 421 . iim,jj mp1,nhori, 1,1,1, -99, 32,428 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 422 429 . "ave(X)", zstophy,zout) 423 430 c 424 431 CALL histdef(nid_day, "tsic", "Surface Temperature sic", "K", 425 . iim,jj mp1,nhori, 1,1,1, -99, 32,432 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 426 433 . "ave(X)", zstophy,zout) 427 434 c 428 435 CALL histdef(nid_day, "t2mter", "Temp.tere 2m", "K", 429 . iim,jj mp1,nhori, 1,1,1, -99, 32,436 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 430 437 . "ave(X)", zstophy,zout) 431 438 c 432 439 CALL histdef(nid_day, "t2mlic", "Temp.lic 2m", "K", 433 . iim,jj mp1,nhori, 1,1,1, -99, 32,440 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 434 441 . "ave(X)", zstophy,zout) 435 442 c 436 443 CALL histdef(nid_day, "t2moce", "Temp.oce 2m", "K", 437 . iim,jj mp1,nhori, 1,1,1, -99, 32,444 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 438 445 . "ave(X)", zstophy,zout) 439 446 c 440 447 CALL histdef(nid_day, "t2msic", "Temp.sic 2m", "K", 441 . iim,jj mp1,nhori, 1,1,1, -99, 32,448 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 442 449 . "ave(X)", zstophy,zout) 443 450 c 444 451 CALL histdef(nid_day, "t2mter_min", "Temp.terre 2m min.", 445 452 . "K", 446 . iim,jj mp1,nhori, 1,1,1, -99, 32,453 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 447 454 . t2mincels, zstophy,zout) 448 455 c 449 456 CALL histdef(nid_day, "t2mter_max", "Temp.terre 2m max.", 450 457 . "K", 451 . iim,jj mp1,nhori, 1,1,1, -99, 32,458 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 452 459 . t2maxcels, zstophy,zout) 453 460 c 454 461 CALL histdef(nid_day, "u10mter", "Vent zonal ter 10m", "m/s", 455 . iim,jj mp1,nhori, 1,1,1, -99, 32,462 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 456 463 . "ave(X)", zstophy,zout) 457 464 c 458 465 CALL histdef(nid_day, "u10mlic", "Vent zonal lic 10m", "m/s", 459 . iim,jj mp1,nhori, 1,1,1, -99, 32,466 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 460 467 . "ave(X)", zstophy,zout) 461 468 c 462 469 CALL histdef(nid_day, "u10moce", "Vent zonal oce 10m", "m/s", 463 . iim,jj mp1,nhori, 1,1,1, -99, 32,470 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 464 471 . "ave(X)", zstophy,zout) 465 472 c 466 473 CALL histdef(nid_day, "u10msic", "Vent zonal sic 10m", 467 . "m/s",iim,jj mp1,nhori, 1,1,1, -99, 32,474 . "m/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32, 468 475 . "ave(X)", zstophy,zout) 469 476 c 470 477 CALL histdef(nid_day, "v10mter", "Vent meridien ter 10m", 471 . "m/s", iim,jj mp1,nhori, 1,1,1, -99, 32,478 . "m/s", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 472 479 . "ave(X)", zstophy,zout) 473 480 c 474 481 CALL histdef(nid_day, "v10mlic", "Vent meridien lic 10m", 475 . "m/s",iim,jj mp1,nhori, 1,1,1, -99, 32,482 . "m/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32, 476 483 . "ave(X)", zstophy,zout) 477 484 c 478 485 CALL histdef(nid_day, "v10moce", "Vent meridien oce 10m", 479 . "m/s",iim,jj mp1,nhori, 1,1,1, -99, 32,486 . "m/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32, 480 487 . "ave(X)", zstophy,zout) 481 488 c 482 489 CALL histdef(nid_day, "v10msic", "Vent meridien sic 10m", 483 . "m/s",iim,jj mp1,nhori, 1,1,1, -99, 32,490 . "m/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32, 484 491 . "ave(X)", zstophy,zout) 485 492 c … … 488 495 call histdef(nid_day, "pourc_"//clnsurf(nsrf), 489 496 $ "% "//clnsurf(nsrf), "%", 490 $ iim,jj mp1,nhori, 1,1,1, -99, 32,497 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 491 498 $ "ave(X)", zstophy,zout) 492 499 C 493 500 call histdef(nid_day, "fract_"//clnsurf(nsrf), 494 501 $ "Fraction "//clnsurf(nsrf), "1", 495 $ iim,jj mp1,nhori, 1,1,1, -99, 32,502 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 496 503 $ "ave(X)", zstophy,zout) 497 504 C 498 505 call histdef(nid_day, "tsol_"//clnsurf(nsrf), 499 506 $ "Temperature "//clnsurf(nsrf), "K", 500 $ iim,jj mp1,nhori, 1,1,1, -99, 32,507 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 501 508 $ "ave(X)", zstophy,zout) 502 509 C 503 510 call histdef(nid_day, "sens_"//clnsurf(nsrf), 504 511 $ "Sensible heat flux "//clnsurf(nsrf), "W/m2", 505 $ iim,jj mp1,nhori, 1,1,1, -99, 32,512 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 506 513 $ "ave(X)", zstophy,zout) 507 514 c 508 515 call histdef(nid_day, "lat_"//clnsurf(nsrf), 509 516 $ "Latent heat flux "//clnsurf(nsrf), "W/m2", 510 $ iim,jj mp1,nhori, 1,1,1, -99, 32,517 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 511 518 $ "ave(X)", zstophy,zout) 512 519 C 513 520 call histdef(nid_day, "taux_"//clnsurf(nsrf), 514 521 $ "Zonal wind stress "//clnsurf(nsrf),"Pa", 515 $ iim,jj mp1,nhori, 1,1,1, -99, 32,522 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 516 523 $ "ave(X)", zstophy,zout) 517 524 518 525 call histdef(nid_day, "tauy_"//clnsurf(nsrf), 519 526 $ "Meridional wind stress "//clnsurf(nsrf), "Pa", 520 $ iim,jj mp1,nhori, 1,1,1, -99, 32,527 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 521 528 $ "ave(X)", zstophy,zout) 522 529 C 523 530 call histdef(nid_day, "albe_"//clnsurf(nsrf), 524 531 $ "Albedo surf. "//clnsurf(nsrf), "-", 525 $ iim,jj mp1,nhori, 1,1,1, -99, 32,532 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 526 533 $ "ave(X)", zstophy,zout) 527 534 C 528 535 call histdef(nid_day, "rugs_"//clnsurf(nsrf), 529 536 $ "Rugosite "//clnsurf(nsrf), "m", 530 $ iim,jj mp1,nhori, 1,1,1, -99, 32,537 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 531 538 $ "ave(X)", zstophy,zout) 532 539 C … … 545 552 CALL histdef(nid_day, "tops0", "CS Solar rad. at TOA", 546 553 . "W/m2", 547 . iim,jj mp1,nhori, 1,1,1, -99, 32,554 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 548 555 . "ave(X)", zstophy,zout) 549 556 c 550 557 CALL histdef(nid_day, "topl0", "CS IR rad. at TOA", 551 558 . "W/m2", 552 . iim,jj mp1,nhori, 1,1,1, -99, 32,559 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 553 560 . "ave(X)", zstophy,zout) 554 561 c 555 562 CALL histdef(nid_day, "sols0", "CS Net Solar rad. at surf.", 556 563 . "W/m2", 557 . iim,jj mp1,nhori, 1,1,1, -99, 32,564 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 558 565 . "ave(X)", zstophy,zout) 559 566 c 560 567 CALL histdef(nid_day, "soll0", "CS Net IR rad. at surface", 561 568 . "W/m2", 562 . iim,jj mp1,nhori, 1,1,1, -99, 32,569 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 563 570 . "ave(X)", zstophy,zout) 564 571 c 565 572 CALL histdef(nid_day, "rneb", "Cloud fraction", "-", 566 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,573 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 567 574 . "ave(X)", zstophy,zout) 568 575 c 569 576 CALL histdef(nid_day, "rnebcon", "Convective Cloud Fraction" 570 577 . , "-", 571 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,578 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 572 579 . "ave(X)", zstophy,zout) 573 580 c 574 581 CALL histdef(nid_day,"lwcon","Cloud liquid water content", 575 582 . "kg/kg", 576 . iim,jj mp1,nhori, klev,1,klev, nvert, 32,583 . iim,jjphy_nb,nhori, klev,1,klev, nvert, 32, 577 584 . "ave(X)", zstophy,zout) 578 585 c 579 586 CALL histdef(nid_day,"iwcon","Cloud ice water content","kg/kg", 580 . iim,jj mp1,nhori, klev,1,klev, nvert, 32,587 . iim,jjphy_nb,nhori, klev,1,klev, nvert, 32, 581 588 . "ave(X)", zstophy,zout) 582 589 c 583 590 CALL histdef(nid_day,"lwp","Cloud water path","kg/m2", 584 . iim,jj mp1,nhori, 1,1,1, -99, 32,591 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 585 592 . "ave(X)", zstophy,zout) 586 593 c 587 594 CALL histdef(nid_day,"iwp","Cloud ice water path","kg/m2", 588 . iim,jj mp1,nhori, 1,1,1, -99, 32,595 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 589 596 . "ave(X)", zstophy,zout) 590 597 c 591 598 CALL histdef(nid_day,"meantaucld", 592 599 . "ISCCP mean cloud optical thickness","1", 593 . iim,jj mp1,nhori, 1,1,1, -99, 32,600 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 594 601 . "ave(X)", zstophy,zout) 595 602 c 596 603 CALL histdef(nid_day,"cldtau","Cloud optical thickness","1", 597 . iim,jj mp1,nhori, klev,1,klev, nvert, 32,604 . iim,jjphy_nb,nhori, klev,1,klev, nvert, 32, 598 605 . "ave(X)", zstophy,zout) 599 606 c 600 607 CALL histdef(nid_day,"cldemi","Cloud optical emissivity","1", 601 . iim,jj mp1,nhori, klev,1,klev, nvert, 32,608 . iim,jjphy_nb,nhori, klev,1,klev, nvert, 32, 602 609 . "ave(X)", zstophy,zout) 603 610 c … … 605 612 c 606 613 CALL histdef(nid_day, "dtcon", "Convection dT", "K/s", 607 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,614 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 608 615 . "ave(X)", zstophy,zout) 609 616 c 610 617 CALL histdef(nid_day, "dqcon", "Convection dQ", "(kg/kg)/s", 611 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,618 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 612 619 . "ave(X)", zstophy,zout) 613 620 c 614 621 CALL histdef(nid_day, "rh2m", "Relative humidity at 2m", "%", 615 . iim,jj mp1,nhori, 1,1,1, -99, 32,622 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 616 623 . "ave(X)", zstophy,zout) 617 624 c 618 625 CALL histdef(nid_day, "qsat2m", "Saturant humidity at 2m", "%", 619 . iim,jj mp1,nhori, 1,1,1, -99, 32,626 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 620 627 . "ave(X)", zstophy,zout) 621 628 c 622 629 CALL histdef(nid_day, "tpot", 623 630 . "Surface air potential temperature", "K", 624 . iim,jj mp1,nhori, 1,1,1, -99, 32,631 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 625 632 . "ave(X)", zstophy,zout) 626 633 c 627 634 CALL histdef(nid_day, "tpote", 628 635 . "Surface air equivalent potential temperature", "K", 629 . iim,jj mp1,nhori, 1,1,1, -99, 32,636 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 630 637 . "ave(X)", zstophy,zout) 631 638 c … … 639 646 c 640 647 c================================================================= 648 c$OMP END MASTER 641 649 ENDIF ! fin de test sur ok_journe -
LMDZ4/trunk/libf/phylmd/ini_histday_seri.h
r684 r766 2 2 c $Header$ 3 3 c 4 cym Ne fonctionnera pas en mode parallele 5 IF (monocpu) THEN 6 4 7 IF (type_run.EQ."AMIP") THEN 5 8 c … … 125 128 c================================================================= 126 129 ENDIF ! fin de test sur type_run.EQ.AMIP 130 131 ENDIF ! monocpu -
LMDZ4/trunk/libf/phylmd/ini_histhf.h
r684 r766 4 4 5 5 IF (ok_hf) THEN 6 c$OMP MASTER 6 7 c 7 8 zstohf = ecrit_hf … … 14 15 15 16 c 16 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon) 17 DO i = 1, iim 18 zx_lon(i,1) = rlon(i+1) 19 zx_lon(i,jjmp1) = rlon(i+1) 20 ENDDO 21 22 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 23 CALL histbeg("histhf", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 24 . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 17 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon) 18 cym DO i = 1, iim 19 cym zx_lon(i,1) = rlon(i+1) 20 cym zx_lon(i,jjmp1) = rlon(i+1) 21 cym ENDDO 22 23 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 24 25 cccIM CALL histbeg("histhf", iim,zx_lon, jjmp1,zx_lat, 26 cym CALL histbeg("histhf", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 27 cym . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 28 cym . nhori, nid_hf) 29 30 CALL histbeg_phy("histhf", itau_phy, zjulian, dtime, 25 31 . nhori, nid_hf) 26 32 … … 34 40 c 35 41 CALL histdef(nid_hf, "aireTER","Grid area CONT","-", 36 . iim,jj mp1,nhori, 1,1,1, -99, 32,42 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 37 43 . "once", zstohf,zout) 38 44 c 39 45 CALL histdef(nid_hf, "contfracATM","% sfce ter+lic ","-", 40 . iim,jj mp1,nhori, 1,1,1, -99, 32,46 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 41 47 . "once", zstohf,zout) 42 48 c 43 49 CALL histdef(nid_hf, "contfracOR","% sfce terre OR", "-", 44 . iim,jj mp1,nhori, 1,1,1, -99, 32,50 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 45 51 . "once", zstohf,zout) 46 52 c … … 48 54 c 49 55 CALL histdef(nid_hf, "t2m", "Temperature 2m", "K", 50 . iim,jj mp1,nhori, 1,1,1, -99, 32,56 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 51 57 . "inst(X)", zstohf,zout) 52 58 c 53 59 CALL histdef(nid_hf, "q2m", "Specific humidity", "kg/kg", 54 . iim,jj mp1,nhori, 1,1,1, -99, 32,60 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 55 61 . "inst(X)", zstohf,zout) 56 62 c 57 63 CALL histdef(nid_hf, "psol", "Surface Pressure", "Pa", 58 . iim,jj mp1,nhori, 1,1,1, -99, 32,64 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 59 65 . "inst(X)", zstohf,zout) 60 66 c 61 67 CALL histdef(nid_hf, "precip", "Precipitation", "kg/(s*m2)", 62 . iim,jj mp1,nhori, 1,1,1, -99, 32,68 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 63 69 . "ave(X)", zstophy,zout) 64 70 c 65 71 cIM ENSEMBLES BEG 66 72 CALL histdef(nid_hf, "tsol", "Surface Temperature", "K", 67 . iim,jj mp1,nhori, 1,1,1, -99, 32,73 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 68 74 . "inst(X)", zstohf,zout) 69 75 c 70 76 CALL histdef(nid_hf, "slp", "Sea Level Pressure", "Pa", 71 . iim,jj mp1,nhori, 1,1,1, -99, 32,77 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 72 78 . "inst(X)", zstohf,zout) 73 79 c 74 80 CALL histdef(nid_hf, "u10m", "Vent zonal 10m", "m/s", 75 . iim,jj mp1,nhori, 1,1,1, -99, 32,81 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 76 82 . "inst(X)", zstohf,zout) 77 83 c 78 84 CALL histdef(nid_hf, "v10m", "Vent meridien 10m", "m/s", 79 . iim,jj mp1,nhori, 1,1,1, -99, 32,85 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 80 86 . "inst(X)", zstohf,zout) 81 87 c 82 88 CALL histdef(nid_hf, "wind10m","10-m wind speed","m/s", 83 . iim,jj mp1,nhori, 1,1,1, -99, 32,89 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 84 90 . "inst(X)", zstohf,zout) 85 91 c … … 99 105 CALL histdef(nid_hf, "phi"//bb2, 100 106 . "Geopotential "//bb2//"mb", "m", 101 . iim,jj mp1,nhori, 1,1,1, -99, 32,107 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 102 108 . "inst(X)", zstohf,zout) 103 109 ENDIF !bb2.EQ."500" … … 109 115 c 110 116 CALL histdef(nid_hf, "cldt", "Total cloudiness", "%", 111 . iim,jj mp1,nhori, 1,1,1, -99, 32,117 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 112 118 . "ave(X)", zstophy,zout) 113 119 c 114 120 CALL histdef(nid_hf, "SWnetOR", 115 121 . "Sfce net SW radiation OR", "W/m2", 116 . iim,jj mp1,nhori, 1,1,1, -99, 32,122 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 117 123 . "ave(X)", zstophy,zout) 118 124 c 119 125 CALL histdef(nid_hf, "SWdownOR", 120 126 . "Sfce incident SW radiation OR", "W/m2", 121 . iim,jj mp1,nhori, 1,1,1, -99, 32,127 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 122 128 . "ave(X)", zstophy,zout) 123 129 c 124 130 CALL histdef(nid_hf, "LWdownOR", 125 131 . "Sfce incident LW radiation OR", "W/m2", 126 . iim,jj mp1,nhori, 1,1,1, -99, 32,132 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 127 133 . "ave(X)", zstophy,zout) 128 134 ENDIF !lev_histhf.GE.2 … … 148 154 CALL histdef(nid_hf, "t"//bb2, 149 155 . "Temperature "//bb2//"mb","K", 150 . iim,jj mp1,nhori, 1,1,1, -99, 32,156 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 151 157 . "inst(X)", zstohf,zout) 152 158 c … … 154 160 CALL histdef(nid_hf, "phi"//bb2, 155 161 . "Geopotential "//bb2//"mb", "m", 156 . iim,jj mp1,nhori, 1,1,1, -99, 32,162 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 157 163 . "inst(X)", zstohf,zout) 158 164 ENDIF … … 160 166 CALL histdef(nid_hf, "q"//bb2, 161 167 . "Specific humidity "//bb2//"mb","kg/kg", 162 . iim,jj mp1,nhori, 1,1,1, -99, 32,168 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 163 169 . "inst(X)", zstohf,zout) 164 170 c 165 171 CALL histdef(nid_hf, "u"//bb2, 166 172 . "Zonal wind "//bb2//"mb","m/s", 167 . iim,jj mp1,nhori, 1,1,1, -99, 32,173 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 168 174 . "inst(X)", zstohf,zout) 169 175 c 170 176 CALL histdef(nid_hf, "v"//bb2, 171 177 . "Meridional wind "//bb2//"mb","m/s", 172 . iim,jj mp1,nhori, 1,1,1, -99, 32,178 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 173 179 . "inst(X)", zstohf,zout) 174 180 c … … 210 216 CALL histdef(nid_hf, "u"//bb2, 211 217 . "Zonal wind "//bb2//"mb","m/s", 212 . iim,jj mp1,nhori, 1,1,1, -99, 32,218 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 213 219 . "inst(X)", zstohf,zstohf) 214 220 c 215 221 CALL histdef(nid_hf, "v"//bb2, 216 222 . "Meridional wind "//bb2//"mb","m/s", 217 . iim,jj mp1,nhori, 1,1,1, -99, 32,223 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 218 224 . "inst(X)", zstohf,zstohf) 219 225 c … … 223 229 CALL histdef(nid_hf, "topl", 224 230 . "Outgoing longwave radiation", "W/m2", 225 . iim,jj mp1,nhori, 1,1,1, -99, 32,231 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 226 232 . "ave(X)", zstophy,zout) 227 233 c 228 234 CALL histdef(nid_hf, "precip","Total precipitation rate", 229 . "kg/(s*m2)",iim,jj mp1,nhori, 1,1,1, -99, 32,235 . "kg/(s*m2)",iim,jjphy_nb,nhori, 1,1,1, -99, 32, 230 236 . "ave(X)", zstophy,zout) 231 237 c 232 238 CALL histdef(nid_hf, "slp", 233 239 . "Mean sea-level pressure", "Pa", 234 . iim,jj mp1,nhori, 1,1,1, -99, 32,240 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 235 241 . "inst(X)", zstohf,zout) 236 242 c … … 255 261 CALL histdef(nid_hf, "t"//bb2, 256 262 . "Temperature "//bb2//"mb","K", 257 . iim,jj mp1,nhori, 1,1,1, -99, 32,263 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 258 264 . "inst(X)", zstohf,zstohf) 259 265 c 260 266 CALL histdef(nid_hf, "q"//bb2, 261 267 . "Specific humidity "//bb2//"mb","kg/kg", 262 . iim,jj mp1,nhori, 1,1,1, -99, 32,268 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 263 269 . "inst(X)", zstohf,zstohf) 264 270 c … … 269 275 CALL histdef(nid_hf, "phi"//bb2, 270 276 . "Geopotential "//bb2//"mb", "m", 271 . iim,jj mp1,nhori, 1,1,1, -99, 32,277 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 272 278 . "inst(X)", zstohf,zstohf) 273 279 c 274 280 CALL histdef(nid_hf, "w"//bb2, 275 281 . "Vertical motion "//bb2//"mb","Pa/s", 276 . iim,jj mp1,nhori, 1,1,1, -99, 32,282 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 277 283 . "inst(X)", zstohf,zstohf) 278 284 ENDIF !bb2.EQ."500" … … 282 288 CALL histdef(nid_hf, "t"//bb3, 283 289 . "Temperature "//bb3//"mb","K", 284 . iim,jj mp1,nhori, 1,1,1, -99, 32,290 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 285 291 . "inst(X)", zstohf,zstohf) 286 292 c 287 293 CALL histdef(nid_hf, "u"//bb3, 288 294 . "Zonal wind "//bb3//"mb","m/s", 289 . iim,jj mp1,nhori, 1,1,1, -99, 32,295 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 290 296 . "inst(X)", zstohf,zstohf) 291 297 c 292 298 CALL histdef(nid_hf, "v"//bb3, 293 299 . "Meridional wind "//bb3//"mb","m/s", 294 . iim,jj mp1,nhori, 1,1,1, -99, 32,300 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 295 301 . "inst(X)", zstohf,zstohf) 296 302 c … … 300 306 c 301 307 CALL histdef(nid_hf, "u10m", "Vent zonal 10m", "m/s", 302 . iim,jj mp1,nhori, 1,1,1, -99, 32,308 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 303 309 . "inst(X)", zstohf,zout) 304 310 c 305 311 CALL histdef(nid_hf, "v10m", "Vent meridien 10m", "m/s", 306 . iim,jj mp1,nhori, 1,1,1, -99, 32,312 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 307 313 . "inst(X)", zstohf,zout) 308 314 c 309 315 CALL histdef(nid_hf, "t2m", "Temperature 2m", "K", 310 . iim,jj mp1,nhori, 1,1,1, -99, 32,316 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 311 317 . "inst(X)", zstohf,zout) 312 318 c 313 319 CALL histdef(nid_hf, "q2m", "Specific humidity", "kg/kg", 314 . iim,jj mp1,nhori, 1,1,1, -99, 32,320 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 315 321 . "inst(X)", zstohf,zout) 316 322 c 317 323 CALL histdef(nid_hf, "psol", "Surface Pressure", "Pa", 318 . iim,jj mp1,nhori, 1,1,1, -99, 32,324 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 319 325 . "inst(X)", zstohf,zout) 320 326 c 321 327 CALL histdef(nid_hf, "cldt", "Total cloudiness", "%", 322 . iim,jj mp1,nhori, 1,1,1, -99, 32,328 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 323 329 . "ave(X)", zstohf,zout) 324 330 c 325 331 CALL histdef(nid_hf, "taux", 326 332 $ "Zonal wind stress","Pa", 327 $ iim,jj mp1,nhori, 1,1,1, -99, 32,333 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 328 334 $ "ave(X)", zstohf,zout) 329 335 c 330 336 CALL histdef(nid_hf, "tauy", 331 337 $ "Meridional wind stress ", "Pa", 332 $ iim,jj mp1,nhori, 1,1,1, -99, 32,338 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 333 339 $ "ave(X)", zstohf,zout) 334 340 c 335 341 CALL histdef(nid_hf, "prw", "Precipitable water", "kg/m2", 336 . iim,jj mp1,nhori, 1,1,1, -99, 32,342 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 337 343 cIM 090904 . "ave(X)", zstohf,zout) 338 344 . "ave(X)", zstophy,zout) 339 345 c 340 346 CALL histdef(nid_hf, "sens", "Sensible heat flux", "W/m2", 341 . iim,jj mp1,nhori, 1,1,1, -99, 32,347 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 342 348 cIM 090904 . "ave(X)", zstohf,zout) 343 349 . "ave(X)", zstophy,zout) 344 350 c 345 351 CALL histdef(nid_hf, "flat", "Latent heat flux", "W/m2", 346 . iim,jj mp1,nhori, 1,1,1, -99, 32,352 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 347 353 . "ave(X)", zstohf,zout) 348 354 c 349 355 c CALL histdef(nid_hf, "snow_mass", "Snow Mass", "kg/m2", 350 c . iim,jj mp1,nhori, 1,1,1, -99, 32,356 c . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 351 357 c . "ave(X)", zstohf,zout) 352 358 c 353 359 CALL histdef(nid_hf, "SWdnSFC", "SWdn at surface","W/m2", 354 . iim,jj mp1,nhori, 1,1,1,-99,360 . iim,jjphy_nb,nhori, 1,1,1,-99, 355 361 . 32, "ave(X)", zstohf,zout) 356 362 c 357 363 CALL histdef(nid_hf, "SWupSFC", "SWup at surface","W/m2", 358 . iim,jj mp1,nhori, 1,1,1,-99,364 . iim,jjphy_nb,nhori, 1,1,1,-99, 359 365 . 32, "ave(X)", zstohf,zout) 360 366 c 361 367 CALL histdef(nid_hf,"LWdnSFC","Down. IR rad. at surface", 362 . "W/m2", iim,jj mp1,nhori, 1,1,1, -99, 32,368 . "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 363 369 . "ave(X)", zstohf,zout) 364 370 c 365 371 CALL histdef(nid_hf,"LWupSFC","Upwd. IR rad. at surface", 366 . "W/m2", iim,jj mp1,nhori, 1,1,1, -99, 32,372 . "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 367 373 . "ave(X)", zstohf,zout) 368 374 c 369 375 CALL histdef(nid_hf, "SWdnTOA", "SWdn at TOA","W/m2", 370 . iim,jj mp1,nhori, 1,1,1,-99,376 . iim,jjphy_nb,nhori, 1,1,1,-99, 371 377 . 32, "ave(X)", zstohf,zout) 372 378 c 373 379 CALL histdef(nid_hf, "SWupTOA", "SWup at TOA","W/m2", 374 . iim,jj mp1,nhori, 1,1,1,-99,380 . iim,jjphy_nb,nhori, 1,1,1,-99, 375 381 . 32, "ave(X)", zstohf,zout) 376 382 c … … 378 384 CALL histdef(nid_hf, "PV"//ctetaSTD(k), 379 385 $ "Vorticite potentielle "//ctetaSTD(k)//"K", 380 $ "1/(Pa*s)",iim,jj mp1,nhori, 1,1,1, -99,386 $ "1/(Pa*s)",iim,jjphy_nb,nhori, 1,1,1, -99, 381 387 $ 32, "inst(X)", zstohf,zout) 382 388 ENDDO !k=1, nbteta … … 393 399 CALL histend(nid_hf) 394 400 c 401 c$OMP END MASTER 395 402 ENDIF ! ok_hf -
LMDZ4/trunk/libf/phylmd/ini_histins.h
r684 r766 3 3 ! 4 4 IF (ok_instan) THEN 5 c$OMP MASTER 5 6 c 6 7 zsto = ecrit_ins … … 10 11 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) 11 12 c 12 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)13 DO i = 1, iim14 zx_lon(i,1) = rlon(i+1)15 zx_lon(i,jjmp1) = rlon(i+1)16 ENDDO13 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon) 14 cym DO i = 1, iim 15 cym zx_lon(i,1) = rlon(i+1) 16 cym zx_lon(i,jjmp1) = rlon(i+1) 17 cym ENDDO 17 18 DO ll=1,klev 18 19 znivsig(ll)=float(ll) 19 20 ENDDO 20 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 21 CALL histbeg("histins", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 22 . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 21 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 22 cym CALL histbeg("histins", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 23 cym . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 24 cym . nhori, nid_ins) 25 CALL histbeg_phy("histins", itau_phy, zjulian, dtime, 23 26 . nhori, nid_ins) 24 27 write(*,*)'Inst ', itau_phy, zjulian … … 31 34 c 32 35 CALL histdef(nid_ins, "phis", "Surface geop. height", "-", 33 . iim,jj mp1,nhori, 1,1,1, -99, 32,36 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 34 37 . "once", zsto,zout) 35 38 c 36 39 CALL histdef(nid_ins, "aire", "Grid area", "-", 37 . iim,jj mp1,nhori, 1,1,1, -99, 32,40 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 38 41 . "once", zsto,zout) 39 42 c … … 41 44 c 42 45 CALL histdef(nid_ins, "tsol", "Surface Temperature", "K", 43 . iim,jj mp1,nhori, 1,1,1, -99, 32,46 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 44 47 . "inst(X)", zsto,zout) 45 48 c 46 49 CALL histdef(nid_ins, "t2m", "Temperature 2m", "K", 47 . iim,jj mp1,nhori, 1,1,1, -99, 32,50 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 48 51 . "inst(X)", zsto,zout) 49 52 c 50 53 CALL histdef(nid_ins, "q2m", "Specific humidity 2m", "Kg/Kg", 51 . iim,jj mp1,nhori, 1,1,1, -99, 32,54 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 52 55 . "inst(X)", zsto,zout) 53 56 c 54 57 CALL histdef(nid_ins, "u10m", "Vent zonal 10m", "m/s", 55 . iim,jj mp1,nhori, 1,1,1, -99, 32,58 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 56 59 . "inst(X)", zsto,zout) 57 60 c 58 61 CALL histdef(nid_ins, "v10m", "Vent meridien 10m", "m/s", 59 . iim,jj mp1,nhori, 1,1,1, -99, 32,62 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 60 63 . "inst(X)", zsto,zout) 61 64 c 62 65 CALL histdef(nid_ins, "psol", "Surface Pressure", "Pa", 63 . iim,jj mp1,nhori, 1,1,1, -99, 32,66 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 64 67 . "inst(X)", zsto,zout) 65 68 c 66 69 CALL histdef(nid_ins, "plul", "Large-scale Precip.", "mm/day", 67 . iim,jj mp1,nhori, 1,1,1, -99, 32,70 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 68 71 . "inst(X)", zsto,zout) 69 72 c 70 73 CALL histdef(nid_ins, "pluc", "Convective Precip.", "mm/day", 71 . iim,jj mp1,nhori, 1,1,1, -99, 32,74 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 72 75 . "inst(X)", zsto,zout) 73 76 c 74 77 CALL histdef(nid_ins, "cdrm", "Momentum drag coef.", "-", 75 . iim,jj mp1,nhori, 1,1,1, -99, 32,78 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 76 79 . "inst(X)", zsto,zout) 77 80 c 78 81 CALL histdef(nid_ins, "cdrh", "Heat drag coef.", "-", 79 . iim,jj mp1,nhori, 1,1,1, -99, 32,82 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 80 83 . "inst(X)", zsto,zout) 81 84 c 82 85 CALL histdef(nid_ins, "precip", "Precipitation Totale liq+sol", 83 86 . "kg/(s*m2)", 84 . iim,jj mp1,nhori, 1,1,1, -99, 32,87 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 85 88 . "inst(X)", zsto,zout) 86 89 c 87 90 CALL histdef(nid_ins, "snow", "Snow fall", "kg/(s*m2)", 88 . iim,jj mp1,nhori, 1,1,1, -99, 32,91 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 89 92 . "inst(X)", zsto,zout) 90 93 c … … 94 97 c 95 98 CALL histdef(nid_ins, "topl", "OLR", "W/m2", 96 . iim,jj mp1,nhori, 1,1,1, -99, 32,99 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 97 100 . "inst(X)", zsto,zout) 98 101 c 99 102 CALL histdef(nid_ins, "evap", "Evaporation", "kg/(s*m2)", 100 . iim,jj mp1,nhori, 1,1,1, -99, 32,103 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 101 104 . "inst(X)", zsto,zout) 102 105 c 103 106 CALL histdef(nid_ins, "sols", "Solar rad. at surf.", "W/m2", 104 . iim,jj mp1,nhori, 1,1,1, -99, 32,107 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 105 108 . "inst(X)", zsto,zout) 106 109 c 107 110 CALL histdef(nid_ins, "soll", "IR rad. at surface", "W/m2", 108 . iim,jj mp1,nhori, 1,1,1, -99, 32,111 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 109 112 . "inst(X)", zsto,zout) 110 113 c 111 114 CALL histdef(nid_ins, "solldown", "Down. IR rad. at surface", 112 . "W/m2", iim,jj mp1,nhori, 1,1,1, -99, 32,115 . "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 113 116 . "inst(X)", zsto,zout) 114 117 c 115 118 CALL histdef(nid_ins, "bils", "Surf. total heat flux", "W/m2", 116 . iim,jj mp1,nhori, 1,1,1, -99, 32,119 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 117 120 . "inst(X)", zsto,zout) 118 121 c 119 122 CALL histdef(nid_ins, "sens", "Sensible heat flux", "W/m2", 120 . iim,jj mp1,nhori, 1,1,1, -99, 32,123 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 121 124 . "inst(X)", zsto,zout) 122 125 c 123 126 CALL histdef(nid_ins, "fder", "Heat flux derivation", "W/m2", 124 . iim,jj mp1,nhori, 1,1,1, -99, 32,127 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 125 128 . "inst(X)", zsto,zout) 126 129 c 127 130 CALL histdef(nid_ins, "dtsvdfo", "Boundary-layer dTs(o)", "K/s", 128 . iim,jj mp1,nhori, 1,1,1, -99, 32,131 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 129 132 . "inst(X)", zsto,zout) 130 133 c 131 134 CALL histdef(nid_ins, "dtsvdft", "Boundary-layer dTs(t)", "K/s", 132 . iim,jj mp1,nhori, 1,1,1, -99, 32,135 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 133 136 . "inst(X)", zsto,zout) 134 137 c 135 138 CALL histdef(nid_ins, "dtsvdfg", "Boundary-layer dTs(g)", "K/s", 136 . iim,jj mp1,nhori, 1,1,1, -99, 32,139 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 137 140 . "inst(X)", zsto,zout) 138 141 c 139 142 CALL histdef(nid_ins, "dtsvdfi", "Boundary-layer dTs(g)", "K/s", 140 . iim,jj mp1,nhori, 1,1,1, -99, 32,143 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 141 144 . "inst(X)", zsto,zout) 142 145 … … 145 148 call histdef(nid_ins, "pourc_"//clnsurf(nsrf), 146 149 $ "% "//clnsurf(nsrf), "%", 147 $ iim,jj mp1,nhori, 1,1,1, -99, 32,150 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 148 151 $ "inst(X)", zsto,zout) 149 152 150 153 call histdef(nid_ins, "fract_"//clnsurf(nsrf), 151 154 $ "Fraction "//clnsurf(nsrf), "1", 152 $ iim,jj mp1,nhori, 1,1,1, -99, 32,155 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 153 156 $ "inst(X)", zsto,zout) 154 157 155 158 call histdef(nid_ins, "sens_"//clnsurf(nsrf), 156 159 $ "Sensible heat flux "//clnsurf(nsrf), "W/m2", 157 $ iim,jj mp1,nhori, 1,1,1, -99, 32,160 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 158 161 $ "inst(X)", zsto,zout) 159 162 c 160 163 call histdef(nid_ins, "tsol_"//clnsurf(nsrf), 161 164 $ "Surface Temperature"//clnsurf(nsrf), "W/m2", 162 $ iim,jj mp1,nhori, 1,1,1, -99, 32,165 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 163 166 $ "inst(X)", zsto,zout) 164 167 c 165 168 call histdef(nid_ins, "lat_"//clnsurf(nsrf), 166 169 $ "Latent heat flux "//clnsurf(nsrf), "W/m2", 167 $ iim,jj mp1,nhori, 1,1,1, -99, 32,170 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 168 171 $ "inst(X)", zsto,zout) 169 172 C 170 173 call histdef(nid_ins, "taux_"//clnsurf(nsrf), 171 174 $ "Zonal wind stress"//clnsurf(nsrf),"Pa", 172 $ iim,jj mp1,nhori, 1,1,1, -99, 32,175 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 173 176 $ "inst(X)", zsto,zout) 174 177 175 178 call histdef(nid_ins, "tauy_"//clnsurf(nsrf), 176 179 $ "Meridional xind stress "//clnsurf(nsrf), "Pa", 177 $ iim,jj mp1,nhori, 1,1,1, -99, 32,180 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 178 181 $ "inst(X)", zsto,zout) 179 182 c 180 183 call histdef(nid_ins, "albe_"//clnsurf(nsrf), 181 184 $ "Albedo "//clnsurf(nsrf), "-", 182 $ iim,jj mp1,nhori, 1,1,1, -99, 32,185 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 183 186 $ "inst(X)", zsto,zout) 184 187 c 185 188 call histdef(nid_ins, "rugs_"//clnsurf(nsrf), 186 189 $ "rugosite "//clnsurf(nsrf), "-", 187 $ iim,jj mp1,nhori, 1,1,1, -99, 32,190 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 188 191 $ "inst(X)", zsto,zout) 189 192 CXXX 190 193 END DO 191 194 CALL histdef(nid_ins, "rugs", "rugosity", "-", 192 . iim,jj mp1,nhori, 1,1,1, -99, 32,195 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 193 196 . "inst(X)", zsto,zout) 194 197 195 198 c 196 199 CALL histdef(nid_ins, "albs", "Surface albedo", "-", 197 . iim,jj mp1,nhori, 1,1,1, -99, 32,200 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 198 201 . "inst(X)", zsto,zout) 199 202 CALL histdef(nid_ins, "albslw", "Surface albedo LW", "-", 200 . iim,jj mp1,nhori, 1,1,1, -99, 32,203 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 201 204 . "inst(X)", zsto,zout) 202 205 c … … 205 208 c HBTM2 206 209 CALL histdef(nid_ins, "s_pblh", "Boundary Layer Height", "m", 207 . iim,jj mp1,nhori, 1,1,1, -99, 32,210 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 208 211 . "inst(X)", zsto,zout) 209 212 c 210 213 CALL histdef(nid_ins, "s_pblt", "T at Boundary Layer Height", 211 214 . "K", 212 . iim,jj mp1,nhori, 1,1,1, -99, 32,215 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 213 216 . "inst(X)", zsto,zout) 214 217 c 215 218 CALL histdef(nid_ins, "s_lcl", "Condensation level", "m", 216 . iim,jj mp1,nhori, 1,1,1, -99, 32,219 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 217 220 . "inst(X)", zsto,zout) 218 221 c 219 222 CALL histdef(nid_ins, "s_capCL", "Conv avlbl pot ener for 220 223 . ABL", "J/m2", 221 . iim,jj mp1,nhori, 1,1,1, -99, 32,224 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 222 225 . "inst(X)", zsto,zout) 223 226 c 224 227 CALL histdef(nid_ins, "s_oliqCL", "Liq Water in BL", "kg/m2", 225 . iim,jj mp1,nhori, 1,1,1, -99, 32,228 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 226 229 . "inst(X)", zsto,zout) 227 230 c 228 231 CALL histdef(nid_ins, "s_cteiCL", "Instability criteria 229 232 . (ABL)", "K", 230 . iim,jj mp1,nhori, 1,1,1, -99, 32,233 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 231 234 . "inst(X)", zsto,zout) 232 235 c 233 236 CALL histdef(nid_ins, "s_therm", "Exces du thermique", "K", 234 . iim,jj mp1,nhori, 1,1,1, -99, 32,237 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 235 238 . "inst(X)", zsto,zout) 236 239 c 237 240 CALL histdef(nid_ins, "s_trmb1", "deep_cape(HBTM2)", "J/m2", 238 . iim,jj mp1,nhori, 1,1,1, -99, 32,241 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 239 242 . "inst(X)", zsto,zout) 240 243 c 241 244 CALL histdef(nid_ins, "s_trmb2", "inhibition (HBTM2)", "J/m2", 242 . iim,jj mp1,nhori, 1,1,1, -99, 32,245 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 243 246 . "inst(X)", zsto,zout) 244 247 c 245 248 CALL histdef(nid_ins, "s_trmb3", "Point Omega (HBTM2)", "m", 246 . iim,jj mp1,nhori, 1,1,1, -99, 32,249 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 247 250 . "inst(X)", zsto,zout) 248 251 c … … 252 255 c 253 256 CALL histdef(nid_ins, "temp", "Temperature", "K", 254 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,257 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 255 258 . "inst(X)", zsto,zout) 256 259 c 257 260 CALL histdef(nid_ins, "vitu", "Zonal wind", "m/s", 258 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,261 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 259 262 . "inst(X)", zsto,zout) 260 263 c 261 264 CALL histdef(nid_ins, "vitv", "Merid wind", "m/s", 262 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,265 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 263 266 . "inst(X)", zsto,zout) 264 267 c 265 268 CALL histdef(nid_ins, "geop", "Geopotential height", "m", 266 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,269 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 267 270 . "inst(X)", zsto,zout) 268 271 c 269 272 CALL histdef(nid_ins, "pres", "Air pressure", "Pa", 270 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,273 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 271 274 . "inst(X)", zsto,zout) 272 275 c 273 276 CALL histdef(nid_ins, "dtvdf", "Boundary-layer dT", "K/s", 274 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,277 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 275 278 . "inst(X)", zsto,zout) 276 279 c 277 280 CALL histdef(nid_ins, "dqvdf", "Boundary-layer dQ", "Kg/Kg/s", 278 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,281 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 279 282 . "inst(X)", zsto,zout) 280 283 c … … 285 288 ndex3d = 0 286 289 c 290 c$OMP END MASTER 291 287 292 ENDIF -
LMDZ4/trunk/libf/phylmd/ini_histmth.h
r684 r766 3 3 c 4 4 IF (ok_mensuel) THEN 5 c$OMP MASTER 5 6 c 6 7 zstophy = dtime … … 13 14 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) 14 15 c 15 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon) 16 DO i = 1, iim 17 zx_lon(i,1) = rlon(i+1) 18 zx_lon(i,jjmp1) = rlon(i+1) 19 ENDDO 20 c 21 cIM cf. AM 081204 BEG region 22 c imin_histmth=1 23 c imax_histmth=iim 24 c jmin_histmth=1 25 c jmax_histmth=jjmp1 26 c do i=1,iim-1 27 c if(zx_lon(i,1).lt.lonmin_histmth) imin_histmth=i 28 c if(zx_lon(i,1).le.lonmax_histmth) imax_histmth=i+1 29 c enddo 30 cIM 220704 BAD?? do j=1,jjmp1-1 31 c do j=1,jjmp1 32 c if(zx_lat(1,j).ge.latmin_histmth) jmax_histmth=j 33 c if(zx_lat(1,j).gt.latmax_histmth) jmin_histmth=j 34 c enddo 35 c 36 c print*,'On stoke le fichier instantanne sur, ', 37 c s imin_histmth,imax_histmth,jmin_histmth,jmax_histmth 38 c print*,'On stoke le fichier instantanne sur, ', 39 c s zx_lon(imin_histmth,1),zx_lon(imax_histmth,1), 40 c s zx_lat(1,jmin_histmth),zx_lat(1,jmax_histmth) 41 cIM cf. AM 081204 END region 42 c 16 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon) 17 cym DO i = 1, iim 18 cym zx_lon(i,1) = rlon(i+1) 19 cym zx_lon(i,jjmp1) = rlon(i+1) 20 cym ENDDO 43 21 DO ll=1,klev 44 22 znivsig(ll)=float(ll) 45 23 ENDDO 46 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 47 CALL histbeg("histmth.nc", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 48 . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 24 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 25 cym CALL histbeg("histmth.nc", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 26 cym . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 27 cym . nhori, nid_mth) 28 29 CALL histbeg_phy("histmth",itau_phy, zjulian, dtime, 49 30 . nhori, nid_mth) 50 c 51 cIM cf. AM 081204 BEG region 52 c CALL histbeg("histmth.nc", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 53 c . imin_histmth,imax_histmth-imin_histmth+1 54 c . ,jmin_histmth,jmax_histmth-jmin_histmth+1 55 c . , itau_phy, zjulian, dtime, 56 c . nhori, nid_mth) 57 cIM 081204 END 58 c 31 32 write(*,*)'Mensuel ', itau_phy, zjulian 59 33 CALL histvert(nid_mth, "presnivs", "Vertical levels", "mb", 60 34 . klev, presnivs/100., nvert) … … 66 40 CALL histdef(nid_mth, "phis", 67 41 . "Surface geop. height", "m2/s2", 68 . iim,jj mp1,nhori, 1,1,1, -99, 32,42 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 69 43 . "once", zstophy,zout) 70 44 c 71 45 CALL histdef(nid_mth, "aire", "Grid area", "-", 72 . iim,jj mp1,nhori, 1,1,1, -99, 32,46 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 73 47 . "once", zstophy,zout) 74 48 c 75 49 CALL histdef(nid_mth, "pourc_"//clnsurf(is_ter), 76 50 . "% "//clnsurf(is_ter), "%", 77 . iim,jj mp1,nhori, 1,1,1, -99, 32,51 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 78 52 . "once", zstophy,zout) 79 53 c 80 54 CALL histdef(nid_mth, "fract_"//clnsurf(is_ter), 81 55 . "Fraction "//clnsurf(is_ter), "1", 82 . iim,jj mp1,nhori, 1,1,1, -99, 32,56 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 83 57 . "once", zstophy,zout) 84 58 c … … 86 60 c 87 61 CALL histdef(nid_mth, "slp", "Sea Level Pressure", "Pa", 88 . iim,jj mp1,nhori, 1,1,1, -99, 32,62 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 89 63 . "ave(X)", zstophy,zout) 90 64 c 91 65 CALL histdef(nid_mth, "tsol", "Surface Temperature", "K", 92 . iim,jj mp1,nhori, 1,1,1, -99, 32,66 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 93 67 . "ave(X)", zstophy,zout) 94 68 c 95 69 CALL histdef(nid_mth, "t2m", "Temperature 2m", "K", 96 . iim,jj mp1,nhori, 1,1,1, -99, 32,70 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 97 71 . "ave(X)", zstophy,zout) 98 72 c … … 100 74 CALL histdef(nid_mth, "t2m_min", "Temp. 2m min.", 101 75 . "K", 102 . iim,jj mp1,nhori, 1,1,1, -99, 32,76 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 103 77 . t2mincels, zstophy,zout) 104 78 c 105 79 CALL histdef(nid_mth, "t2m_max", "Temp. 2m max.", 106 80 . "K", 107 . iim,jj mp1,nhori, 1,1,1, -99, 32,81 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 108 82 . t2maxcels, zstophy,zout) 109 83 c 110 84 c CALL histdef(nid_mth, "tsoil", "Sfce soil Temperature", 111 85 c . "K", 112 c . iim,jj mp1,nhori, 1,1,1, -99, 32,86 c . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 113 87 c . "ave(X)", zstophy,zout) 114 88 c 115 89 CALL histdef(nid_mth, "wind10m","10-m wind speed","m/s", 116 . iim,jj mp1,nhori, 1,1,1, -99, 32,90 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 117 91 . "ave(X)", zstophy,zout) 118 92 c 119 93 CALL histdef(nid_mth, "sicf", "Sea-ice fraction", "-", 120 . iim,jj mp1,nhori, 1,1,1, -99, 32,94 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 121 95 . "ave(X)", zstophy,zout) 122 96 c 123 97 c ENSEMBLES END 124 98 CALL histdef(nid_mth, "q2m", "Specific humidity 2m", "kg/kg", 125 . iim,jj mp1,nhori, 1,1,1, -99, 32,99 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 126 100 . "ave(X)", zstophy,zout) 127 101 c 128 102 CALL histdef(nid_mth, "u10m", "Vent zonal 10m", "m/s", 129 . iim,jj mp1,nhori, 1,1,1, -99, 32,103 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 130 104 . "ave(X)", zstophy,zout) 131 105 c 132 106 CALL histdef(nid_mth, "v10m", "Vent meridien 10m", "m/s", 133 . iim,jj mp1,nhori, 1,1,1, -99, 32,107 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 134 108 . "ave(X)", zstophy,zout) 135 109 c 136 110 CALL histdef(nid_mth, "psol", "Surface Pressure", "Pa", 137 . iim,jj mp1,nhori, 1,1,1, -99, 32,111 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 138 112 . "ave(X)", zstophy,zout) 139 113 c 140 114 CALL histdef(nid_mth, "qsurf", "Surface Air humidity", "kg/kg", 141 . iim,jj mp1,nhori, 1,1,1, -99, 32,115 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 142 116 . "ave(X)", zstophy,zout) 143 117 c 144 118 if (.not. ok_veget) then 145 119 CALL histdef(nid_mth, "qsol", "Soil watter content", "mm", 146 . iim,jj mp1,nhori, 1,1,1, -99, 32,120 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 147 121 . "ave(X)", zstophy,zout) 148 122 endif … … 150 124 CALL histdef(nid_mth, "ndayrain", 151 125 . "Number of day with rain (liq+sol)", "-", 152 . iim,jj mp1,nhori, 1,1,1, -99, 32,126 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 153 127 . "inst(X)", zstomth,zout) 154 128 c 155 129 CALL histdef(nid_mth, "precip", "Precipitation Totale liq+sol", 156 130 . "kg/(s*m2)", 157 . iim,jj mp1,nhori, 1,1,1, -99, 32,131 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 158 132 . "ave(X)", zstophy,zout) 159 133 c 160 134 CALL histdef(nid_mth, "plul", "Large-scale Precip.", 161 135 . "kg/(s*m2)", 162 . iim,jj mp1,nhori, 1,1,1, -99, 32,136 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 163 137 . "ave(X)", zstophy,zout) 164 138 c 165 139 CALL histdef(nid_mth, "pluc", "Convective Precip.", 166 140 . "kg/(s*m2)", 167 . iim,jj mp1,nhori, 1,1,1, -99, 32,141 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 168 142 . "ave(X)", zstophy,zout) 169 143 c 170 144 CALL histdef(nid_mth, "snow", "Snow fall", "kg/(s*m2)", 171 . iim,jj mp1,nhori, 1,1,1, -99, 32,145 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 172 146 . "ave(X)", zstophy,zout) 173 147 c 174 148 c CALL histdef(nid_mth, "snow_mass", "Snow Mass", "kg/m2", 175 c . iim,jj mp1,nhori, 1,1,1, -99, 32,149 c . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 176 150 c . "ave(X)", zstophy,zout) 177 151 c 178 152 CALL histdef(nid_mth, "evap", "Evaporation", "kg/(s*m2)", 179 . iim,jj mp1,nhori, 1,1,1, -99, 32,153 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 180 154 . "ave(X)", zstophy,zout) 181 155 c 182 156 CALL histdef(nid_mth, "tops", "Solar rad. at TOA", "W/m2", 183 . iim,jj mp1,nhori, 1,1,1, -99, 32,157 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 184 158 . "ave(X)", zstophy,zout) 185 159 c 186 160 CALL histdef(nid_mth, "tops0", "CS Solar rad. at TOA", "W/m2", 187 . iim,jj mp1,nhori, 1,1,1, -99, 32,161 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 188 162 . "ave(X)", zstophy,zout) 189 163 c 190 164 CALL histdef(nid_mth, "topl", "IR rad. at TOA", "W/m2", 191 . iim,jj mp1,nhori, 1,1,1, -99, 32,165 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 192 166 . "ave(X)", zstophy,zout) 193 167 c 194 168 CALL histdef(nid_mth, "topl0", "IR rad. at TOA", "W/m2", 195 . iim,jj mp1,nhori, 1,1,1, -99, 32,169 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 196 170 . "ave(X)", zstophy,zout) 197 171 c 198 172 CALL histdef(nid_mth, "SWupTOA", "SWup at TOA","W/m2", 199 . iim,jj mp1,nhori, 1,1,1,-99,173 . iim,jjphy_nb,nhori, 1,1,1,-99, 200 174 . 32, "ave(X)", zstophy,zout) 201 175 c 202 176 CALL histdef(nid_mth, "SWupTOAclr", 203 177 . "SWup clear sky at TOA","W/m2", 204 . iim,jj mp1,nhori, 1,1,1,-99,178 . iim,jjphy_nb,nhori, 1,1,1,-99, 205 179 . 32, "ave(X)", zstophy,zout) 206 180 c 207 181 CALL histdef(nid_mth, "SWdnTOA", "SWdn at TOA","W/m2", 208 . iim,jj mp1,nhori, 1,1,1,-99,182 . iim,jjphy_nb,nhori, 1,1,1,-99, 209 183 . 32, "ave(X)", zstophy,zout) 210 184 c 211 185 CALL histdef(nid_mth, "SWdnTOAclr", 212 186 . "SWdn clear sky at TOA","W/m2", 213 . iim,jj mp1,nhori, 1,1,1,-99,187 . iim,jjphy_nb,nhori, 1,1,1,-99, 214 188 . 32, "ave(X)", zstophy,zout) 215 189 c 216 190 CALL histdef(nid_mth, "SWup200", "SWup at 200mb","W/m2", 217 . iim,jj mp1,nhori, 1,1,1,-99,191 . iim,jjphy_nb,nhori, 1,1,1,-99, 218 192 . 32, "ave(X)", zstophy,zout) 219 193 c 220 194 CALL histdef(nid_mth, "SWup200clr", 221 195 . "SWup clear sky at 200mb","W/m2", 222 . iim,jj mp1,nhori, 1,1,1,-99,196 . iim,jjphy_nb,nhori, 1,1,1,-99, 223 197 . 32, "ave(X)", zstophy,zout) 224 198 c 225 199 CALL histdef(nid_mth, "SWdn200", "SWdn at 200mb","W/m2", 226 . iim,jj mp1,nhori, 1,1,1,-99,200 . iim,jjphy_nb,nhori, 1,1,1,-99, 227 201 . 32, "ave(X)", zstophy,zout) 228 202 c 229 203 CALL histdef(nid_mth, "SWdn200clr", 230 204 . "SWdn clear sky at 200mb","W/m2", 231 . iim,jj mp1,nhori, 1,1,1,-99,205 . iim,jjphy_nb,nhori, 1,1,1,-99, 232 206 . 32, "ave(X)", zstophy,zout) 233 207 c 234 208 CALL histdef(nid_mth, "LWup200", "LWup at 200mb","W/m2", 235 . iim,jj mp1,nhori, 1,1,1,-99,209 . iim,jjphy_nb,nhori, 1,1,1,-99, 236 210 . 32, "ave(X)", zstophy,zout) 237 211 c 238 212 CALL histdef(nid_mth, "LWup200clr", 239 213 . "LWup clear sky at 200mb","W/m2", 240 . iim,jj mp1,nhori, 1,1,1,-99,214 . iim,jjphy_nb,nhori, 1,1,1,-99, 241 215 . 32, "ave(X)", zstophy,zout) 242 216 c 243 217 CALL histdef(nid_mth, "LWdn200", "LWdn at 200mb","W/m2", 244 . iim,jj mp1,nhori, 1,1,1,-99,218 . iim,jjphy_nb,nhori, 1,1,1,-99, 245 219 . 32, "ave(X)", zstophy,zout) 246 220 c 247 221 CALL histdef(nid_mth, "LWdn200clr", 248 222 . "LWdn clear sky at 200mb","W/m2", 249 . iim,jj mp1,nhori, 1,1,1,-99,223 . iim,jjphy_nb,nhori, 1,1,1,-99, 250 224 . 32, "ave(X)", zstophy,zout) 251 225 c 252 226 CALL histdef(nid_mth, "sols", "Solar rad. at surf.", "W/m2", 253 . iim,jj mp1,nhori, 1,1,1, -99, 32,227 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 254 228 . "ave(X)", zstophy,zout) 255 229 c 256 230 CALL histdef(nid_mth, "sols0", "Solar rad. at surf.", "W/m2", 257 . iim,jj mp1,nhori, 1,1,1, -99, 32,231 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 258 232 . "ave(X)", zstophy,zout) 259 233 c 260 234 CALL histdef(nid_mth, "soll", "IR rad. at surface", "W/m2", 261 . iim,jj mp1,nhori, 1,1,1, -99, 32,235 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 262 236 . "ave(X)", zstophy,zout) 263 237 c 264 238 CALL histdef(nid_mth, "radsol", "Rayonnement au sol", "W/m2", 265 . iim,jj mp1,nhori, 1,1,1, -99, 32,239 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 266 240 . "ave(X)", zstophy,zout) 267 241 c 268 242 CALL histdef(nid_mth, "soll0", "IR rad. at surface", "W/m2", 269 . iim,jj mp1,nhori, 1,1,1, -99, 32,243 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 270 244 . "ave(X)", zstophy,zout) 271 245 c 272 246 CALL histdef(nid_mth, "SWupSFC", "SWup at surface","W/m2", 273 . iim,jj mp1,nhori, 1,1,1,-99,247 . iim,jjphy_nb,nhori, 1,1,1,-99, 274 248 . 32, "ave(X)", zstophy,zout) 275 249 c 276 250 CALL histdef(nid_mth, "SWupSFCclr", 277 251 . "SWup clear sky at surface","W/m2", 278 . iim,jj mp1,nhori, 1,1,1,-99,252 . iim,jjphy_nb,nhori, 1,1,1,-99, 279 253 . 32, "ave(X)", zstophy,zout) 280 254 c 281 255 CALL histdef(nid_mth, "SWdnSFC", "SWdn at surface","W/m2", 282 . iim,jj mp1,nhori, 1,1,1,-99,256 . iim,jjphy_nb,nhori, 1,1,1,-99, 283 257 . 32, "ave(X)", zstophy,zout) 284 258 c 285 259 CALL histdef(nid_mth, "SWdnSFCclr", 286 260 . "SWdn clear sky at surface","W/m2", 287 . iim,jj mp1,nhori, 1,1,1,-99,261 . iim,jjphy_nb,nhori, 1,1,1,-99, 288 262 . 32, "ave(X)", zstophy,zout) 289 263 c 290 264 CALL histdef(nid_mth,"LWupSFC","Upwd. IR rad. at surface", 291 . "W/m2", iim,jj mp1,nhori, 1,1,1, -99, 32,265 . "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 292 266 . "ave(X)", zstophy,zout) 293 267 c 294 268 CALL histdef(nid_mth,"LWdnSFC","Down. IR rad. at surface", 295 . "W/m2", iim,jj mp1,nhori, 1,1,1, -99, 32,269 . "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 296 270 . "ave(X)", zstophy,zout) 297 271 c 298 272 CALL histdef(nid_mth,"LWupSFCclr", 299 273 . "CS Upwd. IR rad. at surface", 300 . "W/m2", iim,jj mp1,nhori, 1,1,1, -99, 32,274 . "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 301 275 . "ave(X)", zstophy,zout) 302 276 c 303 277 CALL histdef(nid_mth,"LWdnSFCclr", 304 278 . "Down. CS IR rad. at surface", 305 . "W/m2", iim,jj mp1,nhori, 1,1,1, -99, 32,279 . "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 306 280 . "ave(X)", zstophy,zout) 307 281 c 308 282 CALL histdef(nid_mth, "bils", "Surf. total heat flux", "W/m2", 309 . iim,jj mp1,nhori, 1,1,1, -99, 32,283 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 310 284 . "ave(X)", zstophy,zout) 311 285 c … … 315 289 c 316 290 CALL histdef(nid_mth, "fder", "Heat flux derivation", "W/m2", 317 . iim,jj mp1,nhori, 1,1,1, -99, 32,291 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 318 292 . "ave(X)", zstophy,zout) 319 293 c 320 294 c CALL histdef(nid_mth, "frtu", "Zonal wind stress", "Pa", 321 c . iim,jj mp1,nhori, 1,1,1, -99, 32,295 c . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 322 296 c . "ave(X)", zstophy,zout) 323 297 c 324 298 c CALL histdef(nid_mth, "frtv", "Meridional wind stress", "Pa", 325 c . iim,jj mp1,nhori, 1,1,1, -99, 32,299 c . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 326 300 c . "ave(X)", zstophy,zout) 327 301 c 328 302 CALL histdef(nid_mth, "ffonte","Thermal flux for snow melting", 329 . "W/m2",iim,jj mp1,nhori, 1,1,1, -99, 32,303 . "W/m2",iim,jjphy_nb,nhori, 1,1,1, -99, 32, 330 304 . "ave(X)", zstophy,zout) 331 305 c 332 306 CALL histdef(nid_mth, "fqcalving","Ice Calving", 333 . "kg/m2/s",iim,jjmp1,nhori, 1,1,1, -99, 32, 334 . "ave(X)", zstophy,zout) 335 c 307 . "kg/m2/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32, 308 . "ave(X)", zstophy,zout) 309 c 310 CALL histdef(nid_mth, "fqfonte","Land ice melt", 311 . "kg/m2/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32, 312 . "ave(X)", zsto,zout) 313 336 314 DO nsrf = 1, nbsrf 337 315 call histdef(nid_mth, "taux_"//clnsurf(nsrf), 338 316 $ "Zonal wind stress"//clnsurf(nsrf), "Pa", 339 $ iim,jj mp1,nhori, 1,1,1, -99, 32,317 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 340 318 $ "ave(X)", zstophy,zout) 341 319 342 320 call histdef(nid_mth, "tauy_"//clnsurf(nsrf), 343 321 $ "Meridional wind stress "//clnsurf(nsrf), "Pa", 344 $ iim,jj mp1,nhori, 1,1,1, -99, 32,322 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 345 323 $ "ave(X)", zstophy,zout) 346 324 ENDDO … … 351 329 call histdef(nid_mth, "pourc_"//clnsurf(nsrf), 352 330 $ "% "//clnsurf(nsrf), "%", 353 $ iim,jj mp1,nhori, 1,1,1, -99, 32,331 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 354 332 $ "ave(X)", zstophy,zout) 355 333 c 356 334 call histdef(nid_mth, "fract_"//clnsurf(nsrf), 357 335 $ "Fraction "//clnsurf(nsrf), "1", 358 $ iim,jj mp1,nhori, 1,1,1, -99, 32,336 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 359 337 $ "ave(X)", zstophy,zout) 360 338 ENDIF !nsrf.GT.2 … … 362 340 call histdef(nid_mth, "tsol_"//clnsurf(nsrf), 363 341 $ "Temperature "//clnsurf(nsrf), "K", 364 $ iim,jj mp1,nhori, 1,1,1, -99, 32,342 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 365 343 $ "ave(X)", zstophy,zout) 366 344 C 367 345 call histdef(nid_mth, "sens_"//clnsurf(nsrf), 368 346 $ "Sensible heat flux "//clnsurf(nsrf), "W/m2", 369 $ iim,jj mp1,nhori, 1,1,1, -99, 32,347 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 370 348 $ "ave(X)", zstophy,zout) 371 349 c 372 350 call histdef(nid_mth, "lat_"//clnsurf(nsrf), 373 351 $ "Latent heat flux "//clnsurf(nsrf), "W/m2", 374 $ iim,jj mp1,nhori, 1,1,1, -99, 32,352 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 375 353 $ "ave(X)", zstophy,zout) 376 354 C 377 355 call histdef(nid_mth, "flw_"//clnsurf(nsrf), 378 356 $ "LW "//clnsurf(nsrf), "W/m2", 379 $ iim,jj mp1,nhori, 1,1,1, -99, 32,357 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 380 358 $ "ave(X)", zstophy,zout) 381 359 c 382 360 call histdef(nid_mth, "fsw_"//clnsurf(nsrf), 383 361 $ "SW "//clnsurf(nsrf), "W/m2", 384 $ iim,jj mp1,nhori, 1,1,1, -99, 32,362 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 385 363 $ "ave(X)", zstophy,zout) 386 364 C 387 365 call histdef(nid_mth, "wbils_"//clnsurf(nsrf), 388 366 $ "Bilan sol "//clnsurf(nsrf), "W/m2", 389 $ iim,jj mp1,nhori, 1,1,1, -99, 32,367 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 390 368 $ "ave(X)", zstophy,zout) 391 369 C 392 370 call histdef(nid_mth, "wbilo_"//clnsurf(nsrf), 393 371 $ "Bilan eau "//clnsurf(nsrf), "kg/(m2*s)", 394 $ iim,jj mp1,nhori, 1,1,1, -99, 32,372 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 395 373 $ "ave(X)", zstophy,zout) 396 374 C … … 400 378 call histdef(nid_mth, "evapour_"//clnsurf(nsrf), 401 379 $ "Evap*pourc "//clnsurf(nsrf), "kg/(s*m2)", 402 $ iim,jj mp1,nhori, 1,1,1, -99, 32,380 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 403 381 $ "ave(X)", zstophy,zout) 404 382 C 405 383 call histdef(nid_mth, "prepour_"//clnsurf(nsrf), 406 384 $ "Precip*pourc "//clnsurf(nsrf), "kg/(s*m2)", 407 $ iim,jj mp1,nhori, 1,1,1, -99, 32,385 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 408 386 $ "ave(X)", zstophy,zout) 409 387 C … … 414 392 c 415 393 CALL histdef(nid_mth, "cdrm", "Momentum drag coef.", "-", 416 . iim,jj mp1,nhori, 1,1,1, -99, 32,394 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 417 395 . "ave(X)", zstophy,zout) 418 396 c 419 397 CALL histdef(nid_mth, "cdrh", "Heat drag coef.", "-", 420 . iim,jj mp1,nhori, 1,1,1, -99, 32,398 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 421 399 . "ave(X)", zstophy,zout) 422 400 c 423 401 CALL histdef(nid_mth, "cldl", "Low-level cloudiness", "-", 424 . iim,jj mp1,nhori, 1,1,1, -99, 32,402 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 425 403 . "ave(X)", zstophy,zout) 426 404 c 427 405 CALL histdef(nid_mth, "cldm", "Mid-level cloudiness", "-", 428 . iim,jj mp1,nhori, 1,1,1, -99, 32,406 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 429 407 . "ave(X)", zstophy,zout) 430 408 c 431 409 CALL histdef(nid_mth, "cldh", "High-level cloudiness", "-", 432 . iim,jj mp1,nhori, 1,1,1, -99, 32,410 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 433 411 . "ave(X)", zstophy,zout) 434 412 c 435 413 CALL histdef(nid_mth, "cldt", "Total cloudiness", "-", 436 . iim,jj mp1,nhori, 1,1,1, -99, 32,414 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 437 415 . "ave(X)", zstophy,zout) 438 416 c 439 417 CALL histdef(nid_mth,"cldq","Cloud liquid water path","kg/m2", 440 . iim,jj mp1,nhori, 1,1,1, -99, 32,418 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 441 419 . "ave(X)", zstophy,zout) 442 420 c 443 421 CALL histdef(nid_mth,"lwp","Cloud water path","kg/m2", 444 . iim,jj mp1,nhori, 1,1,1, -99, 32,422 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 445 423 . "ave(X)", zstophy,zout) 446 424 c 447 425 CALL histdef(nid_mth,"iwp","Cloud ice water path","kg/m2", 448 . iim,jj mp1,nhori, 1,1,1, -99, 32,426 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 449 427 . "ave(X)", zstophy,zout) 450 428 c 451 429 CALL histdef(nid_mth, "ue", "Zonal energy transport", "-", 452 . iim,jj mp1,nhori, 1,1,1, -99, 32,430 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 453 431 . "ave(X)", zstophy,zout) 454 432 c 455 433 CALL histdef(nid_mth, "ve", "Merid energy transport", "-", 456 . iim,jj mp1,nhori, 1,1,1, -99, 32,434 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 457 435 . "ave(X)", zstophy,zout) 458 436 c 459 437 CALL histdef(nid_mth, "uq", "Zonal humidity transport", "-", 460 . iim,jj mp1,nhori, 1,1,1, -99, 32,438 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 461 439 . "ave(X)", zstophy,zout) 462 440 c 463 441 CALL histdef(nid_mth, "vq", "Merid humidity transport", "-", 464 . iim,jj mp1,nhori, 1,1,1, -99, 32,442 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 465 443 . "ave(X)", zstophy,zout) 466 444 cKE43 … … 468 446 c 469 447 CALL histdef(nid_mth, "cape", "Conv avlbl pot ener", "J/kg", 470 . iim,jj mp1,nhori, 1,1,1, -99, 32,448 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 471 449 . "ave(X)", zstophy,zout) 472 450 c 473 451 CALL histdef(nid_mth, "pbase", "Cld base pressure", "mb", 474 . iim,jj mp1,nhori, 1,1,1, -99, 32,452 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 475 453 . "ave(X)", zstophy,zout) 476 454 c 477 455 CALL histdef(nid_mth, "ptop", "Cld top pressure", "mb", 478 . iim,jj mp1,nhori, 1,1,1, -99, 32,456 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 479 457 . "ave(X)", zstophy,zout) 480 458 c 481 459 CALL histdef(nid_mth, "fbase", "Cld base mass flux", "kg/m2/s", 482 . iim,jj mp1,nhori, 1,1,1, -99, 32,460 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 483 461 . "ave(X)", zstophy,zout) 484 462 c 485 463 CALL histdef(nid_mth, "prw", "Precipitable water", "kg/m2", 486 . iim,jj mp1,nhori, 1,1,1, -99, 32,464 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 487 465 . "ave(X)", zstophy,zout) 488 466 c … … 493 471 c HBTM2 494 472 CALL histdef(nid_mth, "s_pblh", "Boundary Layer Height", "m", 495 . iim,jj mp1,nhori, 1,1,1, -99, 32,473 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 496 474 . "ave(X)", zstophy,zout) 497 475 CALL histdef(nid_mth, "s_pblt", "t at Boundary Layer Height", 498 476 . "K", 499 . iim,jj mp1,nhori, 1,1,1, -99, 32,477 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 500 478 . "ave(X)", zstophy,zout) 501 479 CALL histdef(nid_mth, "s_lcl", "Condensation level", "m", 502 . iim,jj mp1,nhori, 1,1,1, -99, 32,480 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 503 481 . "ave(X)", zstophy,zout) 504 482 CALL histdef(nid_mth, "s_capCL", "Conv avlbl pot ener 505 483 . for ABL", "J/m2", 506 . iim,jj mp1,nhori, 1,1,1, -99, 32,484 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 507 485 . "ave(X)", zstophy,zout) 508 486 CALL histdef(nid_mth, "s_oliqCL", "Liq Water in BL", "kg/m2", 509 . iim,jj mp1,nhori, 1,1,1, -99, 32,487 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 510 488 . "ave(X)", zstophy,zout) 511 489 CALL histdef(nid_mth, "s_cteiCL", "Instability criteria 512 490 . (ABL)", "K", 513 . iim,jj mp1,nhori, 1,1,1, -99, 32,491 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 514 492 . "ave(X)", zstophy,zout) 515 493 CALL histdef(nid_mth, "s_therm", "Exces du thermique", "K", 516 . iim,jj mp1,nhori, 1,1,1, -99, 32,494 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 517 495 . "ave(X)", zstophy,zout) 518 496 CALL histdef(nid_mth, "s_trmb1", "deep_cape(HBTM2)", "J/m2", 519 . iim,jj mp1,nhori, 1,1,1, -99, 32,497 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 520 498 . "ave(X)", zstophy,zout) 521 499 CALL histdef(nid_mth, "s_trmb2", "inhibition (HBTM2)", "J/m2", 522 . iim,jj mp1,nhori, 1,1,1, -99, 32,500 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 523 501 . "ave(X)", zstophy,zout) 524 502 CALL histdef(nid_mth, "s_trmb3", "Point Omega (HBTM2)", "m", 525 . iim,jj mp1,nhori, 1,1,1, -99, 32,503 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 526 504 . "ave(X)", zstophy,zout) 527 505 c … … 545 523 CALL histdef(nid_mth, "u"//bb2, 546 524 . "Zonal wind "//bb2//"mb","m/s", 547 . iim,jj mp1,nhori, 1,1,1, -99, 32,525 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 548 526 . "inst(X)", zout,zout) 549 527 c 550 528 CALL histdef(nid_mth, "v"//bb2, 551 529 . "Meridional wind "//bb2//"mb","m/s", 552 . iim,jj mp1,nhori, 1,1,1, -99, 32,530 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 553 531 . "inst(X)", zout,zout) 554 532 c 555 533 CALL histdef(nid_mth, "w"//bb2, 556 534 . "Vertical wind "//bb2//"mb","m/s", 557 . iim,jj mp1,nhori, 1,1,1, -99, 32,535 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 558 536 . "inst(X)", zout,zout) 559 537 c 560 538 CALL histdef(nid_mth, "phi"//bb2, 561 539 . "Geopotential "//bb2//"mb","m", 562 . iim,jj mp1,nhori, 1,1,1, -99, 32,540 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 563 541 . "inst(X)", zout,zout) 564 542 c … … 571 549 CALL histdef(nid_mth, "fluxo", 572 550 . "Flux turbulents ocean-atmosphere", "W/m2", 573 . iim,jj mp1,nhori, 1,1,1, -99, 32,551 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 574 552 . "ave(X)", zstophy,zout) 575 553 c 576 554 CALL histdef(nid_mth, "fluxg", 577 555 . "Flux turbulents ocean-glace de mer","W/m2", 578 . iim,jj mp1,nhori, 1,1,1, -99, 32,556 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 579 557 . "ave(X)", zstophy,zout) 580 558 c 581 559 CALL histdef(nid_mth, "t_oce_sic", 582 560 . "Temp. mixte oce-sic","K", 583 . iim,jj mp1,nhori, 1,1,1, -99, 32,561 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 584 562 . "ave(X)", zstophy,zout) 585 563 c … … 588 566 CALL histdef(nid_mth, "lmt_bils", 589 567 . "Bilan au sol atmosphere forcee", "W/m2", 590 . iim,jj mp1,nhori, 1,1,1, -99, 32,568 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 591 569 . "ave(X)", zstophy,zout) 592 570 c … … 595 573 CALL histdef(nid_mth, "slab_bils", 596 574 . "Bilan au sol Slab", "W/m2", 597 . iim,jj mp1,nhori, 1,1,1, -99, 32,575 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 598 576 . "ave(X)", zstophy,zout) 599 577 c 600 578 CALL histdef(nid_mth, "tslab", "Slab SST ", "K", 601 . iim,jj mp1,nhori, 1,1,1, -99, 32,579 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 602 580 . "ave(X)", zstophy,zout) 603 581 c 604 582 CALL histdef(nid_mth, "seaice", "Slab seaice", "kg/m2", 605 . iim,jj mp1,nhori, 1,1,1, -99, 32,583 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 606 584 . "ave(X)", zstophy,zout) 607 585 c 608 586 CALL histdef(nid_mth, "siceh", "Slab seaice height", "m", 609 . iim,jj mp1,nhori, 1,1,1, -99, 32,587 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 610 588 . "ave(X)", zstophy,zout) 611 589 c … … 621 599 CALL histdef(nid_mth,"lwcon","Cloud liquid water content", 622 600 . "kg/kg", 623 . iim,jj mp1,nhori, klev,1,klev, nvert, 32,601 . iim,jjphy_nb,nhori, klev,1,klev, nvert, 32, 624 602 . "ave(X)", zstophy,zout) 625 603 c 626 604 CALL histdef(nid_mth,"iwcon","Cloud ice water content","kg/kg", 627 . iim,jj mp1,nhori, klev,1,klev, nvert, 32,605 . iim,jjphy_nb,nhori, klev,1,klev, nvert, 32, 628 606 . "ave(X)", zstophy,zout) 629 607 c 630 608 CALL histdef(nid_mth, "temp", "Air temperature", "K", 631 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,609 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 632 610 . "ave(X)", zstophy,zout) 633 611 c 634 612 CALL histdef(nid_mth, "ovap", "Specific humidity", "kg/kg", 635 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,613 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 636 614 . "ave(X)", zstophy,zout) 637 615 c 638 616 c CALL histdef(nid_mth,"wvap","Water vapor mixing ratio","kg/kg", 639 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,617 c . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 640 618 c . "ave(X)", zstophy,zout) 641 619 c 642 620 CALL histdef(nid_mth, "geop", "Geopotential height", "m2/s2", 643 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,621 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 644 622 . "ave(X)", zstophy,zout) 645 623 c 646 624 CALL histdef(nid_mth, "vitu", "Zonal wind", "m/s", 647 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,625 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 648 626 . "ave(X)", zstophy,zout) 649 627 c 650 628 CALL histdef(nid_mth, "vitv", "Meridional wind", "m/s", 651 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,629 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 652 630 . "ave(X)", zstophy,zout) 653 631 c 654 632 CALL histdef(nid_mth, "vitw", "Vertical wind", "m/s", 655 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,633 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 656 634 . "ave(X)", zstophy,zout) 657 635 c 658 636 CALL histdef(nid_mth, "pres", "Air pressure", "Pa", 659 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,637 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 660 638 . "ave(X)", zstophy,zout) 661 639 c 662 640 CALL histdef(nid_mth, "rneb", "Cloud fraction", "-", 663 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,641 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 664 642 . "ave(X)", zstophy,zout) 665 643 c 666 644 CALL histdef(nid_mth, "rnebcon", "Convective Cloud Fraction" 667 645 . , "-", 668 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,646 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 669 647 . "ave(X)", zstophy,zout) 670 648 c 671 649 CALL histdef(nid_mth, "rhum", "Relative humidity", "-", 672 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,650 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 673 651 . "ave(X)", zstophy,zout) 674 652 c 675 653 CALL histdef(nid_mth, "ozone", "Ozone concentration", "ppmv", 676 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,654 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 677 655 . "ave(X)", zstophy,zout) 678 656 c 679 657 CALL histdef(nid_mth, "upwd", "saturated updraft", "kg/m2/s", 680 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,658 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 681 659 . "ave(X)", zstophy,zout) 682 660 c 683 661 CALL histdef(nid_mth, "dtphy", "Physics dT", "K/s", 684 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,662 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 685 663 . "ave(X)", zstophy,zout) 686 664 c 687 665 CALL histdef(nid_mth, "dqphy", "Physics dQ", "(kg/kg)/s", 688 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,666 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 689 667 . "ave(X)", zstophy,zout) 690 668 c … … 697 675 call histdef(nid_mth, "albe_"//clnsurf(nsrf), 698 676 $ "Albedo surf. "//clnsurf(nsrf), "-", 699 $ iim,jj mp1,nhori, 1,1,1, -99, 32,677 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 700 678 $ "ave(X)", zstophy,zout) 701 679 c 702 680 call histdef(nid_mth, "rugs_"//clnsurf(nsrf), 703 681 $ "Latent heat flux "//clnsurf(nsrf), "W/m2", 704 $ iim,jj mp1,nhori, 1,1,1, -99, 32,682 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 705 683 $ "ave(X)", zstophy,zout) 706 684 c 707 685 CALL histdef(nid_mth, "ages_"//clnsurf(nsrf), "Snow age","day", 708 . iim,jj mp1,nhori, 1,1,1, -99, 32,686 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 709 687 . "ave(X)", zstophy,zout) 710 688 c … … 712 690 c 713 691 CALL histdef(nid_mth, "albs", "Surface albedo", "-", 714 . iim,jj mp1,nhori, 1,1,1, -99, 32,692 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 715 693 . "ave(X)", zstophy,zout) 716 694 CALL histdef(nid_mth, "albslw", "Surface albedo LW", "-", 717 . iim,jj mp1,nhori, 1,1,1, -99, 32,695 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 718 696 . "ave(X)", zstophy,zout) 719 697 c … … 725 703 . "Convective Cloud Liquid water content" 726 704 . , "kg/kg", 727 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,705 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 728 706 . "ave(X)", zstophy,zout) 729 707 c 730 708 CALL histdef(nid_mth,"Ma","undilute adiab updraft","kg/m2/s", 731 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,709 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 732 710 . "ave(X)", zstophy,zout) 733 711 c 734 712 CALL histdef(nid_mth, "dnwd", "saturated downdraft","kg/m2/s", 735 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,713 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 736 714 . "ave(X)", zstophy,zout) 737 715 c 738 716 CALL histdef(nid_mth, "dnwd0", "unsat. downdraft", "kg/m2/s", 739 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,717 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 740 718 . "ave(X)", zstophy,zout) 741 719 c 742 720 CALL histdef(nid_mth, "dtdyn", "Dynamics dT", "K/s", 743 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,721 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 744 722 . "ave(X)", zstophy,zout) 745 723 c 746 724 CALL histdef(nid_mth, "dqdyn", "Dynamics dQ", "(kg/kg)/s", 747 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,725 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 748 726 . "ave(X)", zstophy,zout) 749 727 c 750 728 CALL histdef(nid_mth, "dtcon", "Convection dT", "K/s", 751 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,729 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 752 730 . "ave(X)", zstophy,zout) 753 731 c 754 732 c CALL histdef(nid_mth, "ducon", "Convection du", "m/s2", 755 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,733 c . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 756 734 c . "ave(X)", zstophy,zout) 757 735 c 758 736 CALL histdef(nid_mth, "dqcon", "Convection dQ", "(kg/kg)/s", 759 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,737 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 760 738 . "ave(X)", zstophy,zout) 761 739 c 762 740 CALL histdef(nid_mth, "dtlsc", "Condensation dT", "K/s", 763 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,741 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 764 742 . "ave(X)", zstophy,zout) 765 743 c 766 744 CALL histdef(nid_mth, "dtlschr", 767 $ "Large-scale condensational heating rate", "K/s",iim,jjmp1768 $ 745 $ "Large-scale condensational heating rate", "K/s",iim,jjphy_nb 746 $ ,nhori, klev,1,klev,nvert, 32,"ave(X)", zstophy,zout) 769 747 c 770 748 CALL histdef(nid_mth, "dqlsc", "Condensation dQ", "(kg/kg)/s", 771 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,749 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 772 750 . "ave(X)", zstophy,zout) 773 751 c 774 752 CALL histdef(nid_mth, "dtvdf", "Boundary-layer dT", "K/s", 775 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,753 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 776 754 . "ave(X)", zstophy,zout) 777 755 c 778 756 CALL histdef(nid_mth, "dqvdf","Boundary-layer dQ","(kg/kg)/s", 779 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,757 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 780 758 . "ave(X)", zstophy,zout) 781 759 c 782 760 CALL histdef(nid_mth, "dteva", "Reevaporation dT", "K/s", 783 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,761 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 784 762 . "ave(X)", zstophy,zout) 785 763 c 786 764 CALL histdef(nid_mth, "dqeva","Reevaporation dQ","(kg/kg)/s", 787 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,765 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 788 766 . "ave(X)", zstophy,zout) 789 767 790 768 CALL histdef(nid_mth, "ptconv", "POINTS CONVECTIFS"," ", 791 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,769 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 792 770 . "ave(X)", zstophy,zout) 793 771 794 772 CALL histdef(nid_mth, "ratqs", "RATQS"," ", 795 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,773 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 796 774 . "ave(X)", zstophy,zout) 797 775 798 776 c 799 777 CALL histdef(nid_mth, "dtajs", "Dry adjust. dT", "K/s", 800 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,778 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 801 779 . "ave(X)", zstophy,zout) 802 780 803 781 CALL histdef(nid_mth,"dqajs","Dry adjust. dQ","(kg/kg)/s", 804 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,782 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 805 783 . "ave(X)", zstophy,zout) 806 784 c 807 785 CALL histdef(nid_mth, "dtswr", "SW radiation dT", "K/s", 808 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,786 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 809 787 . "ave(X)", zstophy,zout) 810 788 c 811 789 CALL histdef(nid_mth, "dtsw0", "CS SW radiation dT", "K/s", 812 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,790 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 813 791 . "ave(X)", zstophy,zout) 814 792 c 815 793 CALL histdef(nid_mth, "dtlwr", "LW radiation dT", "K/s", 816 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,794 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 817 795 . "ave(X)", zstophy,zout) 818 796 c 819 797 CALL histdef(nid_mth,"dtlw0","CS LW radiation dT","K/s", 820 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,798 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 821 799 . "ave(X)", zstophy,zout) 822 800 c 823 801 CALL histdef(nid_mth, "dtec", "Cinetic dissip dT", "K/s", 824 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,802 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 825 803 . "ave(X)", zstophy,zout) 826 804 c 827 805 CALL histdef(nid_mth, "duvdf", "Boundary-layer dU", "m/s2", 828 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,806 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 829 807 . "ave(X)", zstophy,zout) 830 808 c 831 809 CALL histdef(nid_mth, "dvvdf", "Boundary-layer dV", "m/s2", 832 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,810 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 833 811 . "ave(X)", zstophy,zout) 834 812 c 835 813 IF (ok_orodr) THEN 836 814 CALL histdef(nid_mth, "duoro", "Orography dU", "m/s2", 837 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,815 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 838 816 . "ave(X)", zstophy,zout) 839 817 c 840 818 CALL histdef(nid_mth, "dvoro", "Orography dV", "m/s2", 841 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,819 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 842 820 . "ave(X)", zstophy,zout) 843 821 c … … 846 824 IF (ok_orolf) THEN 847 825 CALL histdef(nid_mth, "dulif", "Orography dU", "m/s2", 848 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,826 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 849 827 . "ave(X)", zstophy,zout) 850 828 c 851 829 CALL histdef(nid_mth, "dvlif", "Orography dV", "m/s2", 852 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,830 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 853 831 . "ave(X)", zstophy,zout) 854 832 ENDIF … … 859 837 WRITE(str2,'(i2.2)') iq 860 838 CALL histdef(nid_mth, "trac"//str2, "Tracer No."//str2, "-", 861 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,839 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 862 840 . "ave(X)", zstophy,zout) 863 841 ELSE … … 875 853 c 876 854 CALL histdef(nid_mth, "phis", "Surface geop. height", "m", 877 . iim,jj mp1,nhori, 1,1,1, -99, 32,855 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 878 856 . "once", zstophy,zout) 879 857 c 880 858 CALL histdef(nid_mth, "aire", "Grid area", "-", 881 . iim,jj mp1,nhori, 1,1,1, -99, 32,859 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 882 860 . "once", zstophy,zout) 883 861 c 884 862 CALL histdef(nid_mth, "pourc_"//clnsurf(is_ter), 885 863 . "% "//clnsurf(is_ter), "%", 886 . iim,jj mp1,nhori, 1,1,1, -99, 32,864 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 887 865 . "once", zstophy,zout) 888 866 c 889 867 CALL histdef(nid_mth, "fract_"//clnsurf(is_ter), 890 868 . "Fraction "//clnsurf(is_ter), "1", 891 . iim,jj mp1,nhori, 1,1,1, -99, 32,869 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 892 870 . "once", zstophy,zout) 893 871 c 894 872 CALL histdef(nid_mth, "pourc_"//clnsurf(is_lic), 895 873 . "% "//clnsurf(is_lic), "%", 896 . iim,jj mp1,nhori, 1,1,1, -99, 32,874 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 897 875 . "once", zstophy,zout) 898 876 c 899 877 CALL histdef(nid_mth, "fract_"//clnsurf(is_lic), 900 878 . "Fraction "//clnsurf(is_lic), "1", 901 . iim,jj mp1,nhori, 1,1,1, -99, 32,879 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 902 880 . "once", zstophy,zout) 903 881 c 904 882 CALL histdef(nid_mth, "pourc_"//clnsurf(is_sic), 905 883 . "% "//clnsurf(is_sic), "%", 906 . iim,jj mp1,nhori, 1,1,1, -99, 32,884 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 907 885 . "ave(X)", zstophy,zout) 908 886 c 909 887 CALL histdef(nid_mth, "fract_"//clnsurf(is_sic), 910 888 . "Fraction "//clnsurf(is_sic), "1", 911 . iim,jj mp1,nhori, 1,1,1, -99, 32,889 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 912 890 . "ave(X)", zstophy,zout) 913 891 c 914 892 CALL histdef(nid_mth, "flat", "Latent heat flux", "W/m2", 915 . iim,jj mp1,nhori, 1,1,1, -99, 32,893 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 916 894 . "ave(X)", zstophy,zout) 917 895 c 918 896 CALL histdef(nid_mth, "bilTOA", 919 897 . "Net radiation at TOA", "W/m2", 920 . iim,jj mp1,nhori, 1,1,1, -99, 32,898 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 921 899 . "ave(X)", zstophy,zout) 922 900 c … … 925 903 c . "TOA reflected clear-sky shortwave 926 904 c . radiation (method 1)", "W/m2", 927 c . iim,jj mp1,nhori, 1,1,1, -99, 32,905 c . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 928 906 c . "ave(X)", zstophy,zout) 929 907 c 930 908 CALL histdef(nid_mth, "dtdia","dtdia","K/s", 931 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,909 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 932 910 . "ave(X)", zstophy,zout) 933 911 c 934 912 CALL histdef(nid_mth, "dtsw","dtsw","K/s", 935 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,913 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 936 914 . "ave(X)", zstophy,zout) 937 915 c 938 916 CALL histdef(nid_mth, "dtlw","dtlw","K/s", 939 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,917 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 940 918 . "ave(X)", zstophy,zout) 941 919 c 942 920 CALL histdef(nid_mth, "dtcon","dtcon","K/s", 943 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,921 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 944 922 . "ave(X)", zstophy,zout) 945 923 c 946 924 CALL histdef(nid_mth, "dtajs","dtajs","K/s", 947 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,925 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 948 926 . "ave(X)", zstophy,zout) 949 927 c 950 928 CALL histdef(nid_mth, "dtlsc","dtlsc","K/s", 951 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,929 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 952 930 . "ave(X)", zstophy,zout) 953 931 c 954 932 CALL histdef(nid_mth, "dqdia","dqdia","(kg/kg)/s", 955 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,933 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 956 934 . "ave(X)", zstophy,zout) 957 935 c 958 936 CALL histdef(nid_mth, "duoli", 959 937 . "duoli","m/s2", 960 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,938 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 961 939 . "ave(X)", zstophy,zout) 962 940 c 963 941 CALL histdef(nid_mth, "dvoli", 964 942 . "dvoli","m/s2", 965 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,943 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 966 944 . "ave(X)", zstophy,zout) 967 945 c 968 946 CALL histdef(nid_mth, "ducon", 969 947 . "ducon","m/s2", 970 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,948 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 971 949 . "ave(X)", zstophy,zout) 972 950 c 973 951 CALL histdef(nid_mth, "dvcon", 974 952 . "dvcon","m/s2", 975 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,953 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 976 954 . "ave(X)", zstophy,zout) 977 955 c 978 956 CALL histdef(nid_mth, "dutot", 979 957 . "dutot","m/s2", 980 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,958 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 981 959 . "ave(X)", zstophy,zout) 982 960 c 983 961 CALL histdef(nid_mth, "dvtot", 984 962 . "dvtot","m/s2", 985 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,963 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 986 964 . "ave(X)", zstophy,zout) 987 965 c 988 966 c CALL histdef(nid_mth, "cldtrue", 989 967 c . "TRUE Cloud fraction ","%", 990 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,968 c . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 991 969 c . "inst(X)", zout,zout) 992 970 c 993 971 c CALL histdef(nid_mth, "cldTOA", 994 972 c . "Cloud amount (satellite view)","%", 995 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,973 c . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 996 974 c . "ave(X)", zstophy,zout) 997 975 c 998 976 c CALL histdef(nid_mth, "cldSFC", 999 977 c . "Cloud amount (surface view)","%", 1000 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,978 c . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1001 979 c . "ave(X)", zstophy,zout) 1002 980 c 1003 981 CALL histdef(nid_mth, "GWDtaux", 1004 982 . "GWD induced Ewd wind stress","Pa", 1005 . iim,jj mp1,nhori, 1,1,1, -99, 32,983 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1006 984 . "ave(X)", zstophy,zout) 1007 985 c 1008 986 CALL histdef(nid_mth, "GWDtauy", 1009 987 . "GWD induced Nwd wind stress","Pa", 1010 . iim,jj mp1,nhori, 1,1,1, -99, 32,988 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1011 989 . "ave(X)", zstophy,zout) 1012 990 c … … 1014 992 c 1015 993 CALL histdef(nid_mth, "slp", "Sea Level Pressure", "Pa", 1016 . iim,jj mp1,nhori, 1,1,1, -99, 32,994 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1017 995 . "ave(X)", zstorad,zout) 1018 996 c 1019 997 CALL histdef(nid_mth, "tsol", "Surface Temperature", "K", 1020 . iim,jj mp1,nhori, 1,1,1, -99, 32,998 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1021 999 . "ave(X)", zstophy,zout) 1022 1000 c 1023 1001 CALL histdef(nid_mth, "t2m", "Temperature 2m", "K", 1024 . iim,jj mp1,nhori, 1,1,1, -99, 32,1002 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1025 1003 . "ave(X)", zstorad,zout) 1026 1004 c 1027 1005 CALL histdef(nid_mth, "t2m_min", "Temp. 2m min.", 1028 1006 . "K", 1029 . iim,jj mp1,nhori, 1,1,1, -99, 32,1007 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1030 1008 . t2mincels, zstophy,zout) 1031 1009 c 1032 1010 CALL histdef(nid_mth, "t2m_max", "Temp. 2m max.", 1033 1011 . "K", 1034 . iim,jj mp1,nhori, 1,1,1, -99, 32,1012 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1035 1013 . t2maxcels, zstophy,zout) 1036 1014 c 1037 1015 c CALL histdef(nid_mth, "tsoil", "Sfce soil Temperature", 1038 1016 c . "K", 1039 c . iim,jj mp1,nhori, 1,1,1, -99, 32,1017 c . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1040 1018 c . "ave(X)", zstophy,zout) 1041 1019 c 1042 1020 CALL histdef(nid_mth, "wind10m","10-m wind speed","m/s", 1043 . iim,jj mp1,nhori, 1,1,1, -99, 32,1021 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1044 1022 . "ave(X)", zstorad,zout) 1045 1023 c 1046 1024 CALL histdef(nid_mth, "sicf", "Sea-ice fraction", "-", 1047 . iim,jj mp1,nhori, 1,1,1, -99, 32,1025 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1048 1026 . "ave(X)", zstophy,zout) 1049 1027 1050 1028 c 1051 1029 CALL histdef(nid_mth, "q2m","Specific humidity 2m","kg/kg", 1052 . iim,jj mp1,nhori, 1,1,1, -99, 32,1030 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1053 1031 . "ave(X)", zstorad,zout) 1054 1032 c 1055 1033 CALL histdef(nid_mth, "u10m", "Vent zonal 10m", "m/s", 1056 . iim,jj mp1,nhori, 1,1,1, -99, 32,1034 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1057 1035 . "ave(X)", zstorad,zout) 1058 1036 c 1059 1037 CALL histdef(nid_mth, "v10m", "Vent meridien 10m", "m/s", 1060 . iim,jj mp1,nhori, 1,1,1, -99, 32,1038 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1061 1039 . "ave(X)", zstorad,zout) 1062 1040 c 1063 1041 CALL histdef(nid_mth, "psol", "Surface Pressure", "Pa", 1064 . iim,jj mp1,nhori, 1,1,1, -99, 32,1042 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1065 1043 . "ave(X)", zstorad,zout) 1066 1044 c 1067 1045 CALL histdef(nid_mth, "qsurf","Surface Air humidity","kg/kg", 1068 . iim,jj mp1,nhori, 1,1,1, -99, 32,1046 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1069 1047 . "ave(X)", zstophy,zout) 1070 1048 c 1071 1049 if (.not. ok_veget) then 1072 1050 CALL histdef(nid_mth, "qsol", "Soil watter content", "mm", 1073 . iim,jj mp1,nhori, 1,1,1, -99, 32,1051 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1074 1052 . "ave(X)", zstophy,zout) 1075 1053 endif … … 1077 1055 CALL histdef(nid_mth, "ndayrain", 1078 1056 . "Number of day with rain (liq+sol)", "-", 1079 . iim,jj mp1,nhori, 1,1,1, -99, 32,1057 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1080 1058 . "inst(X)", zstomth,zout) 1081 1059 c 1082 1060 CALL histdef(nid_mth, "precip", "Precipitation Totale liq+sol", 1083 1061 . "kg/(s*m2)", 1084 . iim,jj mp1,nhori, 1,1,1, -99, 32,1062 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1085 1063 . "ave(X)", zstophy,zout) 1086 1064 c 1087 1065 CALL histdef(nid_mth, "plul", "Large-scale Precip.", 1088 1066 . "kg/(s*m2)", 1089 . iim,jj mp1,nhori, 1,1,1, -99, 32,1067 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1090 1068 . "ave(X)", zstophy,zout) 1091 1069 c 1092 1070 CALL histdef(nid_mth, "pluc", "Convective Precip.", 1093 1071 . "kg/(s*m2)", 1094 . iim,jj mp1,nhori, 1,1,1, -99, 32,1072 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1095 1073 . "ave(X)", zstophy,zout) 1096 1074 c 1097 1075 CALL histdef(nid_mth, "snowf", "Snow fall", "kg/(s*m2)", 1098 . iim,jj mp1,nhori, 1,1,1, -99, 32,1076 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1099 1077 . "ave(X)", zstophy,zout) 1100 1078 c 1101 1079 c CALL histdef(nid_mth, "snow_mass", "Snow Mass", "kg/m2", 1102 c . iim,jj mp1,nhori, 1,1,1, -99, 32,1080 c . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1103 1081 c . "ave(X)", zstophy,zout) 1104 1082 c 1105 1083 CALL histdef(nid_mth, "evap", 1106 1084 . "Evaporation plus sublimation rate", "kg/(s*m2)", 1107 . iim,jj mp1,nhori, 1,1,1, -99, 32,1085 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1108 1086 . "ave(X)", zstophy,zout) 1109 1087 c 1110 1088 CALL histdef(nid_mth, "tops", "Solar rad. at TOA", "W/m2", 1111 . iim,jj mp1,nhori, 1,1,1, -99, 32,1089 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1112 1090 . "ave(X)", zstophy,zout) 1113 1091 c 1114 1092 CALL histdef(nid_mth, "tops0", "CS Solar rad. at TOA", "W/m2", 1115 . iim,jj mp1,nhori, 1,1,1, -99, 32,1093 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1116 1094 . "ave(X)", zstophy,zout) 1117 1095 c 1118 1096 CALL histdef(nid_mth, "topl", "IR rad. at TOA", "W/m2", 1119 . iim,jj mp1,nhori, 1,1,1, -99, 32,1097 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1120 1098 . "ave(X)", zstophy,zout) 1121 1099 c 1122 1100 CALL histdef(nid_mth, "topl0", "IR rad. at TOA", "W/m2", 1123 . iim,jj mp1,nhori, 1,1,1, -99, 32,1101 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1124 1102 . "ave(X)", zstophy,zout) 1125 1103 c 1126 1104 CALL histdef(nid_mth, "SWupTOA", "SWup at TOA","W/m2", 1127 . iim,jj mp1,nhori, 1,1,1,-99,1105 . iim,jjphy_nb,nhori, 1,1,1,-99, 1128 1106 . 32, "ave(X)", zstophy,zout) 1129 1107 c 1130 1108 CALL histdef(nid_mth, "SWupTOAclr", 1131 1109 . "SWup clear sky at TOA","W/m2", 1132 . iim,jj mp1,nhori, 1,1,1,-99,1110 . iim,jjphy_nb,nhori, 1,1,1,-99, 1133 1111 . 32, "ave(X)", zstophy,zout) 1134 1112 c 1135 1113 CALL histdef(nid_mth, "SWdnTOA", "SWdn at TOA","W/m2", 1136 . iim,jj mp1,nhori, 1,1,1,-99,1114 . iim,jjphy_nb,nhori, 1,1,1,-99, 1137 1115 . 32, "ave(X)", zstophy,zout) 1138 1116 c 1139 1117 CALL histdef(nid_mth, "SWdnTOAclr", 1140 1118 . "SWdn clear sky at TOA","W/m2", 1141 . iim,jj mp1,nhori, 1,1,1,-99,1119 . iim,jjphy_nb,nhori, 1,1,1,-99, 1142 1120 . 32, "ave(X)", zstophy,zout) 1143 1121 c 1144 1122 CALL histdef(nid_mth, "SWup200", "SWup at 200mb","W/m2", 1145 . iim,jj mp1,nhori, 1,1,1,-99,1123 . iim,jjphy_nb,nhori, 1,1,1,-99, 1146 1124 . 32, "ave(X)", zstophy,zout) 1147 1125 c 1148 1126 CALL histdef(nid_mth, "SWup200clr", 1149 1127 . "SWup clear sky at 200mb","W/m2", 1150 . iim,jj mp1,nhori, 1,1,1,-99,1128 . iim,jjphy_nb,nhori, 1,1,1,-99, 1151 1129 . 32, "ave(X)", zstophy,zout) 1152 1130 c 1153 1131 CALL histdef(nid_mth, "SWdn200", "SWdn at 200mb","W/m2", 1154 . iim,jj mp1,nhori, 1,1,1,-99,1132 . iim,jjphy_nb,nhori, 1,1,1,-99, 1155 1133 . 32, "ave(X)", zstophy,zout) 1156 1134 c 1157 1135 CALL histdef(nid_mth, "SWdn200clr", 1158 1136 . "SWdn clear sky at 200mb","W/m2", 1159 . iim,jj mp1,nhori, 1,1,1,-99,1137 . iim,jjphy_nb,nhori, 1,1,1,-99, 1160 1138 . 32, "ave(X)", zstophy,zout) 1161 1139 c 1162 1140 CALL histdef(nid_mth, "LWup200", "LWup at 200mb","W/m2", 1163 . iim,jj mp1,nhori, 1,1,1,-99,1141 . iim,jjphy_nb,nhori, 1,1,1,-99, 1164 1142 . 32, "ave(X)", zstophy,zout) 1165 1143 c 1166 1144 CALL histdef(nid_mth, "LWup200clr", 1167 1145 . "LWup clear sky at 200mb","W/m2", 1168 . iim,jj mp1,nhori, 1,1,1,-99,1146 . iim,jjphy_nb,nhori, 1,1,1,-99, 1169 1147 . 32, "ave(X)", zstophy,zout) 1170 1148 c 1171 1149 CALL histdef(nid_mth, "LWdn200", "LWdn at 200mb","W/m2", 1172 . iim,jj mp1,nhori, 1,1,1,-99,1150 . iim,jjphy_nb,nhori, 1,1,1,-99, 1173 1151 . 32, "ave(X)", zstophy,zout) 1174 1152 c 1175 1153 CALL histdef(nid_mth, "LWdn200clr", 1176 1154 . "LWdn clear sky at 200mb","W/m2", 1177 . iim,jj mp1,nhori, 1,1,1,-99,1155 . iim,jjphy_nb,nhori, 1,1,1,-99, 1178 1156 . 32, "ave(X)", zstophy,zout) 1179 1157 c 1180 1158 CALL histdef(nid_mth, "sols", "Solar rad. at surf.", "W/m2", 1181 . iim,jj mp1,nhori, 1,1,1, -99, 32,1159 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1182 1160 . "ave(X)", zstophy,zout) 1183 1161 c 1184 1162 CALL histdef(nid_mth, "sols0", "Solar rad. at surf.", "W/m2", 1185 . iim,jj mp1,nhori, 1,1,1, -99, 32,1163 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1186 1164 . "ave(X)", zstophy,zout) 1187 1165 c 1188 1166 CALL histdef(nid_mth, "soll", "IR rad. at surface", "W/m2", 1189 . iim,jj mp1,nhori, 1,1,1, -99, 32,1167 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1190 1168 . "ave(X)", zstophy,zout) 1191 1169 c 1192 1170 CALL histdef(nid_mth, "radsol", "Rayonnement au sol", "W/m2", 1193 . iim,jj mp1,nhori, 1,1,1, -99, 32,1171 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1194 1172 . "ave(X)", zstophy,zout) 1195 1173 c 1196 1174 CALL histdef(nid_mth, "soll0", "IR rad. at surface", "W/m2", 1197 . iim,jj mp1,nhori, 1,1,1, -99, 32,1175 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1198 1176 . "ave(X)", zstophy,zout) 1199 1177 c 1200 1178 CALL histdef(nid_mth, "SWupSFC", "SWup at surface","W/m2", 1201 . iim,jj mp1,nhori, 1,1,1,-99,1179 . iim,jjphy_nb,nhori, 1,1,1,-99, 1202 1180 . 32, "ave(X)", zstophy,zout) 1203 1181 c 1204 1182 CALL histdef(nid_mth, "SWupSFCclr", 1205 1183 . "SWup clear sky at surface","W/m2", 1206 . iim,jj mp1,nhori, 1,1,1,-99,1184 . iim,jjphy_nb,nhori, 1,1,1,-99, 1207 1185 . 32, "ave(X)", zstophy,zout) 1208 1186 c 1209 1187 CALL histdef(nid_mth, "SWdnSFC", "SWdn at surface","W/m2", 1210 . iim,jj mp1,nhori, 1,1,1,-99,1188 . iim,jjphy_nb,nhori, 1,1,1,-99, 1211 1189 . 32, "ave(X)", zstophy,zout) 1212 1190 c 1213 1191 CALL histdef(nid_mth, "SWdnSFCclr", 1214 1192 . "SWdn clear sky at surface","W/m2", 1215 . iim,jj mp1,nhori, 1,1,1,-99,1193 . iim,jjphy_nb,nhori, 1,1,1,-99, 1216 1194 . 32, "ave(X)", zstophy,zout) 1217 1195 c 1218 1196 CALL histdef(nid_mth,"LWupSFC","Upwd. IR rad. at surface", 1219 . "W/m2", iim,jj mp1,nhori, 1,1,1, -99, 32,1197 . "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1220 1198 . "ave(X)", zstophy,zout) 1221 1199 c 1222 1200 CALL histdef(nid_mth,"LWdnSFC","Down. IR rad. at surface", 1223 . "W/m2", iim,jj mp1,nhori, 1,1,1, -99, 32,1201 . "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1224 1202 . "ave(X)", zstophy,zout) 1225 1203 c 1226 1204 CALL histdef(nid_mth,"LWupSFCclr", 1227 1205 . "CS Upwd. IR rad. at surface", 1228 . "W/m2", iim,jj mp1,nhori, 1,1,1, -99, 32,1206 . "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1229 1207 . "ave(X)", zstophy,zout) 1230 1208 c 1231 1209 CALL histdef(nid_mth,"LWdnSFCclr", 1232 1210 . "Down. CS IR rad. at surface", 1233 . "W/m2", iim,jj mp1,nhori, 1,1,1, -99, 32,1211 . "W/m2", iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1234 1212 . "ave(X)", zstophy,zout) 1235 1213 c 1236 1214 CALL histdef(nid_mth, "bils", "Surf. total heat flux", "W/m2", 1237 . iim,jj mp1,nhori, 1,1,1, -99, 32,1215 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1238 1216 . "ave(X)", zstophy,zout) 1239 1217 c 1240 1218 CALL histdef(nid_mth, "sens", "Sensible heat flux", "W/m2", 1241 . iim,jj mp1,nhori, 1,1,1, -99, 32,1219 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1242 1220 . "ave(X)", zstophy,zout) 1243 1221 c 1244 1222 CALL histdef(nid_mth, "fder", "Heat flux derivation", "W/m2", 1245 . iim,jj mp1,nhori, 1,1,1, -99, 32,1223 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1246 1224 . "ave(X)", zstophy,zout) 1247 1225 c 1248 1226 c CALL histdef(nid_mth, "frtu", "Zonal wind stress", "Pa", 1249 c . iim,jj mp1,nhori, 1,1,1, -99, 32,1227 c . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1250 1228 c . "ave(X)", zstophy,zout) 1251 1229 c 1252 1230 c CALL histdef(nid_mth, "frtv", "Meridional wind stress", "Pa", 1253 c . iim,jj mp1,nhori, 1,1,1, -99, 32,1231 c . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1254 1232 c . "ave(X)", zstophy,zout) 1255 1233 c 1256 1234 CALL histdef(nid_mth, "ffonte","Thermal flux for snow melting", 1257 . "W/m2",iim,jj mp1,nhori, 1,1,1, -99, 32,1235 . "W/m2",iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1258 1236 . "ave(X)", zstophy,zout) 1259 1237 c 1260 1238 CALL histdef(nid_mth, "fqcalving","Ice Calving", 1261 . "kg/m2/s",iim,jj mp1,nhori, 1,1,1, -99, 32,1239 . "kg/m2/s",iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1262 1240 . "ave(X)", zstophy,zout) 1263 1241 c … … 1265 1243 call histdef(nid_mth, "taux_"//clnsurf(nsrf), 1266 1244 $ "Zonal wind stress"//clnsurf(nsrf), "Pa", 1267 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1245 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1268 1246 $ "ave(X)", zstophy,zout) 1269 1247 1270 1248 call histdef(nid_mth, "tauy_"//clnsurf(nsrf), 1271 1249 $ "Meridional wind stress "//clnsurf(nsrf), "Pa", 1272 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1250 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1273 1251 $ "ave(X)", zstophy,zout) 1274 1252 ENDDO … … 1276 1254 call histdef(nid_mth, "pourc_"//clnsurf(is_oce), 1277 1255 $ "% "//clnsurf(is_oce), "%", 1278 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1256 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1279 1257 $ "ave(X)", zstophy,zout) 1280 1258 c 1281 1259 call histdef(nid_mth, "fract_"//clnsurf(is_oce), 1282 1260 $ "Fraction "//clnsurf(is_oce), "1", 1283 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1261 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1284 1262 $ "ave(X)", zstophy,zout) 1285 1263 C … … 1288 1266 call histdef(nid_mth, "tsol_"//clnsurf(nsrf), 1289 1267 $ "Temperature "//clnsurf(nsrf), "K", 1290 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1268 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1291 1269 $ "ave(X)", zstophy,zout) 1292 1270 C 1293 1271 call histdef(nid_mth, "sens_"//clnsurf(nsrf), 1294 1272 $ "Sensible heat flux "//clnsurf(nsrf), "W/m2", 1295 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1273 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1296 1274 $ "ave(X)", zstophy,zout) 1297 1275 c 1298 1276 call histdef(nid_mth, "lat_"//clnsurf(nsrf), 1299 1277 $ "Latent heat flux "//clnsurf(nsrf), "W/m2", 1300 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1278 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1301 1279 $ "ave(X)", zstophy,zout) 1302 1280 C 1303 1281 call histdef(nid_mth, "flw_"//clnsurf(nsrf), 1304 1282 $ "LW "//clnsurf(nsrf), "W/m2", 1305 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1283 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1306 1284 $ "ave(X)", zstophy,zout) 1307 1285 c 1308 1286 call histdef(nid_mth, "fsw_"//clnsurf(nsrf), 1309 1287 $ "SW "//clnsurf(nsrf), "W/m2", 1310 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1288 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1311 1289 $ "ave(X)", zstophy,zout) 1312 1290 C 1313 1291 call histdef(nid_mth, "wbils_"//clnsurf(nsrf), 1314 1292 $ "Bilan sol "//clnsurf(nsrf), "W/m2", 1315 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1293 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1316 1294 $ "ave(X)", zstophy,zout) 1317 1295 C 1318 1296 call histdef(nid_mth, "wbilo_"//clnsurf(nsrf), 1319 1297 $ "Bilan eau "//clnsurf(nsrf), "kg/(m2*s)", 1320 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1298 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1321 1299 $ "ave(X)", zstophy,zout) 1322 1300 C … … 1326 1304 call histdef(nid_mth, "evapour_"//clnsurf(nsrf), 1327 1305 $ "Evap*pourc "//clnsurf(nsrf), "kg/(s*m2)", 1328 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1306 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1329 1307 $ "ave(X)", zstophy,zout) 1330 1308 C 1331 1309 call histdef(nid_mth, "prepour_"//clnsurf(nsrf), 1332 1310 $ "Precip*pourc "//clnsurf(nsrf), "kg/(s*m2)", 1333 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1311 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1334 1312 $ "ave(X)", zstophy,zout) 1335 1313 C … … 1340 1318 c 1341 1319 CALL histdef(nid_mth, "cdrm", "Momentum drag coef.", "-", 1342 . iim,jj mp1,nhori, 1,1,1, -99, 32,1320 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1343 1321 . "ave(X)", zstophy,zout) 1344 1322 c 1345 1323 CALL histdef(nid_mth, "cdrh", "Heat drag coef.", "-", 1346 . iim,jj mp1,nhori, 1,1,1, -99, 32,1324 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1347 1325 . "ave(X)", zstophy,zout) 1348 1326 c 1349 1327 CALL histdef(nid_mth, "cldl", "Low-level cloudiness", "-", 1350 . iim,jj mp1,nhori, 1,1,1, -99, 32,1328 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1351 1329 . "ave(X)", zstophy,zout) 1352 1330 c 1353 1331 CALL histdef(nid_mth, "cldm", "Mid-level cloudiness", "-", 1354 . iim,jj mp1,nhori, 1,1,1, -99, 32,1332 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1355 1333 . "ave(X)", zstophy,zout) 1356 1334 c 1357 1335 CALL histdef(nid_mth, "cldh", "High-level cloudiness", "-", 1358 . iim,jj mp1,nhori, 1,1,1, -99, 32,1336 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1359 1337 . "ave(X)", zstophy,zout) 1360 1338 c 1361 1339 CALL histdef(nid_mth, "cldt", "Total cloudiness", "%", 1362 . iim,jj mp1,nhori, 1,1,1, -99, 32,1340 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1363 1341 . "ave(X)", zstophy,zout) 1364 1342 c 1365 1343 CALL histdef(nid_mth,"cldq","Cloud liquid water path","kg/m2", 1366 . iim,jj mp1,nhori, 1,1,1, -99, 32,1344 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1367 1345 . "ave(X)", zstophy,zout) 1368 1346 c 1369 1347 CALL histdef(nid_mth,"lwp","Cloud water path","kg/m2", 1370 . iim,jj mp1,nhori, 1,1,1, -99, 32,1348 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1371 1349 . "ave(X)", zstophy,zout) 1372 1350 c 1373 1351 CALL histdef(nid_mth,"iwp","Cloud ice water path","kg/m2", 1374 . iim,jj mp1,nhori, 1,1,1, -99, 32,1352 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1375 1353 . "ave(X)", zstophy,zout) 1376 1354 c 1377 1355 CALL histdef(nid_mth, "ue", "Zonal energy transport", "-", 1378 . iim,jj mp1,nhori, 1,1,1, -99, 32,1356 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1379 1357 . "ave(X)", zstophy,zout) 1380 1358 c 1381 1359 CALL histdef(nid_mth, "ve", "Merid energy transport", "-", 1382 . iim,jj mp1,nhori, 1,1,1, -99, 32,1360 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1383 1361 . "ave(X)", zstophy,zout) 1384 1362 c 1385 1363 CALL histdef(nid_mth, "uq", "Zonal humidity transport", "-", 1386 . iim,jj mp1,nhori, 1,1,1, -99, 32,1364 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1387 1365 . "ave(X)", zstophy,zout) 1388 1366 c 1389 1367 CALL histdef(nid_mth, "vq", "Merid humidity transport", "-", 1390 . iim,jj mp1,nhori, 1,1,1, -99, 32,1368 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1391 1369 . "ave(X)", zstophy,zout) 1392 1370 cKE43 … … 1394 1372 c 1395 1373 CALL histdef(nid_mth, "cape", "Conv avlbl pot ener", "J/kg", 1396 . iim,jj mp1,nhori, 1,1,1, -99, 32,1374 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1397 1375 . "ave(X)", zstophy,zout) 1398 1376 c 1399 1377 CALL histdef(nid_mth, "pbase", "Cld base pressure", "mb", 1400 . iim,jj mp1,nhori, 1,1,1, -99, 32,1378 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1401 1379 . "ave(X)", zstophy,zout) 1402 1380 c 1403 1381 CALL histdef(nid_mth, "ptop", "Cld top pressure", "mb", 1404 . iim,jj mp1,nhori, 1,1,1, -99, 32,1382 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1405 1383 . "ave(X)", zstophy,zout) 1406 1384 c 1407 1385 CALL histdef(nid_mth, "fbase", "Cld base mass flux", "kg/m2/s", 1408 . iim,jj mp1,nhori, 1,1,1, -99, 32,1386 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1409 1387 . "ave(X)", zstophy,zout) 1410 1388 c 1411 1389 CALL histdef(nid_mth, "prw", "Precipitable water", "kg/m2", 1412 . iim,jj mp1,nhori, 1,1,1, -99, 32,1390 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1413 1391 . "ave(X)", zstophy,zout) 1414 1392 c 1415 1393 CALL histdef(nid_mth, "upwd", "saturated updraft", "kg/m2/s", 1416 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1394 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1417 1395 . "ave(X)", zstophy,zout) 1418 1396 c … … 1423 1401 c HBTM2 1424 1402 CALL histdef(nid_mth, "s_pblh", "Boundary Layer Height", "m", 1425 . iim,jj mp1,nhori, 1,1,1, -99, 32,1403 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1426 1404 . "ave(X)", zstophy,zout) 1427 1405 CALL histdef(nid_mth, "s_pblt", "T at Boundary Layer Height", 1428 1406 . "K", 1429 . iim,jj mp1,nhori, 1,1,1, -99, 32,1407 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1430 1408 . "ave(X)", zstophy,zout) 1431 1409 CALL histdef(nid_mth, "s_lcl", "Condensation level", "m", 1432 . iim,jj mp1,nhori, 1,1,1, -99, 32,1410 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1433 1411 . "ave(X)", zstophy,zout) 1434 1412 CALL histdef(nid_mth,"s_capCL","Conv avlbl pot ener for ABL", 1435 1413 . "J/m2", 1436 . iim,jj mp1,nhori, 1,1,1, -99, 32,1414 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1437 1415 . "ave(X)", zstophy,zout) 1438 1416 CALL histdef(nid_mth, "s_oliqCL", "Liq Water in BL", "kg/m2", 1439 . iim,jj mp1,nhori, 1,1,1, -99, 32,1417 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1440 1418 . "ave(X)", zstophy,zout) 1441 1419 CALL histdef(nid_mth,"s_cteiCL","Instability criteria (ABL)", 1442 1420 . "K", 1443 . iim,jj mp1,nhori, 1,1,1, -99, 32,1421 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1444 1422 . "ave(X)", zstophy,zout) 1445 1423 CALL histdef(nid_mth, "s_therm", "Exces du thermique", "K", 1446 . iim,jj mp1,nhori, 1,1,1, -99, 32,1424 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1447 1425 . "ave(X)", zstophy,zout) 1448 1426 CALL histdef(nid_mth, "s_trmb1", "deep_cape(HBTM2)", "J/m2", 1449 . iim,jj mp1,nhori, 1,1,1, -99, 32,1427 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1450 1428 . "ave(X)", zstophy,zout) 1451 1429 CALL histdef(nid_mth, "s_trmb2", "inhibition (HBTM2)", "J/m2", 1452 . iim,jj mp1,nhori, 1,1,1, -99, 32,1430 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1453 1431 . "ave(X)", zstophy,zout) 1454 1432 CALL histdef(nid_mth, "s_trmb3", "Point Omega (HBTM2)", "m", 1455 . iim,jj mp1,nhori, 1,1,1, -99, 32,1433 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1456 1434 . "ave(X)", zstophy,zout) 1457 1435 c … … 1475 1453 CALL histdef(nid_mth, "u"//bb2, 1476 1454 . "Zonal wind "//bb2//"mb","m/s", 1477 . iim,jj mp1,nhori, 1,1,1, -99, 32,1455 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1478 1456 . "inst(X)", zout,zout) 1479 1457 c 1480 1458 CALL histdef(nid_mth, "v"//bb2, 1481 1459 . "Meridional wind "//bb2//"mb","m/s", 1482 . iim,jj mp1,nhori, 1,1,1, -99, 32,1460 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1483 1461 . "inst(X)", zout,zout) 1484 1462 c 1485 1463 CALL histdef(nid_mth, "w"//bb2, 1486 1464 . "Vertical wind "//bb2//"mb","m/s", 1487 . iim,jj mp1,nhori, 1,1,1, -99, 32,1465 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1488 1466 . "inst(X)", zout,zout) 1489 1467 c 1490 1468 CALL histdef(nid_mth, "phi"//bb2, 1491 1469 . "Geopotential "//bb2//"mb","m", 1492 . iim,jj mp1,nhori, 1,1,1, -99, 32,1470 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1493 1471 . "inst(X)", zout,zout) 1494 1472 c … … 1502 1480 CALL histdef(nid_mth, "fluxo", 1503 1481 . "Flux turbulents ocean-atmosphere", "W/m2", 1504 . iim,jj mp1,nhori, 1,1,1, -99, 32,1482 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1505 1483 . "ave(X)", zstophy,zout) 1506 1484 c 1507 1485 CALL histdef(nid_mth, "fluxg", 1508 1486 . "Flux turbulents ocean-glace de mer","W/m2", 1509 . iim,jj mp1,nhori, 1,1,1, -99, 32,1487 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1510 1488 . "ave(X)", zstophy,zout) 1511 1489 c 1512 1490 CALL histdef(nid_mth, "t_oce_sic", 1513 1491 . "Temp. mixte oce-sic","K", 1514 . iim,jj mp1,nhori, 1,1,1, -99, 32,1492 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1515 1493 . "ave(X)", zstophy,zout) 1516 1494 c … … 1519 1497 CALL histdef(nid_mth, "lmt_bils", 1520 1498 . "Bilan au sol atmosphere forcee", "W/m2", 1521 . iim,jj mp1,nhori, 1,1,1, -99, 32,1499 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1522 1500 . "ave(X)", zstophy,zout) 1523 1501 c … … 1526 1504 CALL histdef(nid_mth, "slab_bils", 1527 1505 . "Bilan au sol Slab", "W/m2", 1528 . iim,jj mp1,nhori, 1,1,1, -99, 32,1506 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1529 1507 . "ave(X)", zstophy,zout) 1530 1508 c 1531 1509 CALL histdef(nid_mth, "tslab", "Slab SST ", "K", 1532 . iim,jj mp1,nhori, 1,1,1, -99, 32,1510 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1533 1511 . "ave(X)", zstophy,zout) 1534 1512 c 1535 1513 CALL histdef(nid_mth, "seaice", "Slab seaice", "kg/m2", 1536 . iim,jj mp1,nhori, 1,1,1, -99, 32,1514 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1537 1515 . "ave(X)", zstophy,zout) 1538 1516 c 1539 1517 CALL histdef(nid_mth, "siceh", "Slab seaice height", "m", 1540 . iim,jj mp1,nhori, 1,1,1, -99, 32,1518 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1541 1519 . "ave(X)", zstophy,zout) 1542 1520 c … … 1552 1530 CALL histdef(nid_mth,"lwcon","Cloud liquid water content", 1553 1531 . "kg/kg", 1554 . iim,jj mp1,nhori, klev,1,klev, nvert, 32,1532 . iim,jjphy_nb,nhori, klev,1,klev, nvert, 32, 1555 1533 . "ave(X)", zstophy,zout) 1556 1534 c 1557 1535 CALL histdef(nid_mth,"iwcon","Cloud ice water content","kg/kg", 1558 . iim,jj mp1,nhori, klev,1,klev, nvert, 32,1536 . iim,jjphy_nb,nhori, klev,1,klev, nvert, 32, 1559 1537 . "ave(X)", zstophy,zout) 1560 1538 c 1561 1539 CALL histdef(nid_mth, "temp", "Air temperature", "K", 1562 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1540 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1563 1541 . "ave(X)", zstophy,zout) 1564 1542 c 1565 1543 CALL histdef(nid_mth, "ovap", "Specific humidity", "kg/kg", 1566 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1544 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1567 1545 . "ave(X)", zstophy,zout) 1568 1546 c 1569 1547 c CALL histdef(nid_mth,"wvap","Water vapor mixing ratio","kg/kg", 1570 c . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1548 c . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1571 1549 c . "ave(X)", zstophy,zout) 1572 1550 c 1573 1551 CALL histdef(nid_mth, "geop", "Geopotential height", "m2/s2", 1574 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1552 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1575 1553 . "ave(X)", zstophy,zout) 1576 1554 c 1577 1555 CALL histdef(nid_mth, "vitu", "Zonal wind", "m/s", 1578 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1556 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1579 1557 . "ave(X)", zstophy,zout) 1580 1558 c 1581 1559 CALL histdef(nid_mth, "vitv", "Meridional wind", "m/s", 1582 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1560 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1583 1561 . "ave(X)", zstophy,zout) 1584 1562 c 1585 1563 CALL histdef(nid_mth, "vitw", "Vertical wind", "m/s", 1586 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1564 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1587 1565 . "ave(X)", zstophy,zout) 1588 1566 c 1589 1567 CALL histdef(nid_mth, "pres", "Air pressure", "Pa", 1590 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1568 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1591 1569 . "ave(X)", zstophy,zout) 1592 1570 c 1593 1571 CALL histdef(nid_mth, "rneb", "Cloud fraction", "%", 1594 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1572 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1595 1573 . "ave(X)", zstophy,zout) 1596 1574 c 1597 1575 CALL histdef(nid_mth, "rnebcon", "Convective Cloud Fraction" 1598 1576 . , "-", 1599 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1577 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1600 1578 . "ave(X)", zstophy,zout) 1601 1579 c 1602 1580 CALL histdef(nid_mth, "rhum", "Relative humidity", "-", 1603 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1581 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1604 1582 . "ave(X)", zstophy,zout) 1605 1583 c 1606 1584 CALL histdef(nid_mth, "ozone", "Ozone concentration", "ppmv", 1607 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1585 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1608 1586 . "ave(X)", zstophy,zout) 1609 1587 c 1610 1588 CALL histdef(nid_mth, "dtphy", "Physics dT", "K/s", 1611 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1589 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1612 1590 . "ave(X)", zstophy,zout) 1613 1591 c 1614 1592 CALL histdef(nid_mth, "dqphy","Physics dQ","(kg/kg)/s", 1615 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1593 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1616 1594 . "ave(X)", zstophy,zout) 1617 1595 c … … 1624 1602 call histdef(nid_mth, "albe_"//clnsurf(nsrf), 1625 1603 $ "Albedo surf. "//clnsurf(nsrf), "-", 1626 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1604 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1627 1605 $ "ave(X)", zstophy,zout) 1628 1606 c 1629 1607 call histdef(nid_mth, "rugs_"//clnsurf(nsrf), 1630 1608 $ "Rugosite "//clnsurf(nsrf), "m", 1631 $ iim,jj mp1,nhori, 1,1,1, -99, 32,1609 $ iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1632 1610 $ "ave(X)", zstophy,zout) 1633 1611 c 1634 1612 CALL histdef(nid_mth, "ages_"//clnsurf(nsrf), "Snow age","day", 1635 . iim,jj mp1,nhori, 1,1,1, -99, 32,1613 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1636 1614 . "ave(X)", zstophy,zout) 1637 1615 c … … 1639 1617 c 1640 1618 CALL histdef(nid_mth, "albs", "Surface albedo", "-", 1641 . iim,jj mp1,nhori, 1,1,1, -99, 32,1619 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1642 1620 . "ave(X)", zstophy,zout) 1643 1621 CALL histdef(nid_mth, "albslw", "Surface albedo LW", "-", 1644 . iim,jj mp1,nhori, 1,1,1, -99, 32,1622 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 1645 1623 . "ave(X)", zstophy,zout) 1646 1624 c … … 1652 1630 . "Convective Cloud Liquid water content" 1653 1631 . , "kg/kg", 1654 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1632 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1655 1633 . "ave(X)", zstophy,zout) 1656 1634 c 1657 1635 CALL histdef(nid_mth,"Ma","undilute adiab updraft","kg/m2/s", 1658 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1636 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1659 1637 . "ave(X)", zstophy,zout) 1660 1638 c 1661 1639 CALL histdef(nid_mth, "dnwd", "saturated downdraft","kg/m2/s", 1662 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1640 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1663 1641 . "ave(X)", zstophy,zout) 1664 1642 c 1665 1643 CALL histdef(nid_mth, "dnwd0", "unsat. downdraft", "kg/m2/s", 1666 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1644 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1667 1645 . "ave(X)", zstophy,zout) 1668 1646 c 1669 1647 CALL histdef(nid_mth, "dtdyn", "Dynamics dT", "K/s", 1670 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1648 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1671 1649 . "ave(X)", zstophy,zout) 1672 1650 c 1673 1651 CALL histdef(nid_mth, "dqdyn","Dynamics dQ","(kg/kg)/s", 1674 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1652 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1675 1653 . "ave(X)", zstophy,zout) 1676 1654 c 1677 1655 CALL histdef(nid_mth, "dqcon","Convection dQ","(kg/kg)/s", 1678 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1656 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1679 1657 . "ave(X)", zstophy,zout) 1680 1658 c 1681 1659 CALL histdef(nid_mth, "dtlschr", 1682 $ "Large-scale condensational heating rate", "K/s",iim,jjmp1 1660 $ "Large-scale condensational heating rate", "K/s", 1661 $ iim,jjphy_nb 1683 1662 $ ,nhori, klev,1,klev,nvert, 32,"ave(X)", zstophy,zout) 1684 1663 c 1685 1664 CALL histdef(nid_mth, "dqlsc","Condensation dQ","(kg/kg)/s", 1686 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1665 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1687 1666 . "ave(X)", zstophy,zout) 1688 1667 c 1689 1668 CALL histdef(nid_mth, "dtvdf", "Boundary-layer dT", "K/s", 1690 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1669 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1691 1670 . "ave(X)", zstophy,zout) 1692 1671 c 1693 1672 CALL histdef(nid_mth, "dqvdf","Boundary-layer dQ","(kg/kg)/s", 1694 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1673 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1695 1674 . "ave(X)", zstophy,zout) 1696 1675 c 1697 1676 CALL histdef(nid_mth, "dteva", "Reevaporation dT", "K/s", 1698 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1677 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1699 1678 . "ave(X)", zstophy,zout) 1700 1679 c 1701 1680 CALL histdef(nid_mth,"dqeva","Reevaporation dQ","(kg/kg)/s", 1702 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1681 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1703 1682 . "ave(X)", zstophy,zout) 1704 1683 1705 1684 CALL histdef(nid_mth, "ptconv", "POINTS CONVECTIFS"," ", 1706 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1685 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1707 1686 . "ave(X)", zstophy,zout) 1708 1687 1709 1688 CALL histdef(nid_mth, "ratqs", "RATQS"," ", 1710 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1689 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1711 1690 . "ave(X)", zstophy,zout) 1712 1691 1713 1692 c 1714 1693 CALL histdef(nid_mth, "dqajs","Dry adjust. dQ","(kg/kg)/s", 1715 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1694 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1716 1695 . "ave(X)", zstophy,zout) 1717 1696 c 1718 1697 CALL histdef(nid_mth, "dtswr", "SW radiation dT", "K/s", 1719 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1698 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1720 1699 . "ave(X)", zstophy,zout) 1721 1700 c 1722 1701 CALL histdef(nid_mth, "dtsw0", "CS SW radiation dT", "K/s", 1723 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1702 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1724 1703 . "ave(X)", zstophy,zout) 1725 1704 c 1726 1705 CALL histdef(nid_mth, "dtlwr", "LW radiation dT", "K/s", 1727 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1706 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1728 1707 . "ave(X)", zstophy,zout) 1729 1708 c 1730 1709 CALL histdef(nid_mth,"dtlw0","CS LW radiation dT","K/s", 1731 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1710 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1732 1711 . "ave(X)", zstophy,zout) 1733 1712 c 1734 1713 CALL histdef(nid_mth, "dtec", "Cinetic dissip dT", "K/s", 1735 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1714 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1736 1715 . "ave(X)", zstophy,zout) 1737 1716 c 1738 1717 CALL histdef(nid_mth, "duvdf", "Boundary-layer dU", "m/s2", 1739 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1718 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1740 1719 . "ave(X)", zstophy,zout) 1741 1720 c 1742 1721 CALL histdef(nid_mth, "dvvdf", "Boundary-layer dV", "m/s2", 1743 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1722 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1744 1723 . "ave(X)", zstophy,zout) 1745 1724 c 1746 1725 IF (ok_orodr) THEN 1747 1726 CALL histdef(nid_mth, "duoro", "Orography dU", "m/s2", 1748 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1727 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1749 1728 . "ave(X)", zstophy,zout) 1750 1729 c 1751 1730 CALL histdef(nid_mth, "dvoro", "Orography dV", "m/s2", 1752 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1731 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1753 1732 . "ave(X)", zstophy,zout) 1754 1733 c … … 1757 1736 IF (ok_orolf) THEN 1758 1737 CALL histdef(nid_mth, "dulif", "Orography dU", "m/s2", 1759 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1738 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1760 1739 . "ave(X)", zstophy,zout) 1761 1740 c 1762 1741 CALL histdef(nid_mth, "dvlif", "Orography dV", "m/s2", 1763 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1742 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1764 1743 . "ave(X)", zstophy,zout) 1765 1744 ENDIF … … 1769 1748 iiq=niadv(iq) 1770 1749 CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-", 1771 . iim,jj mp1,nhori, klev,1,klev,nvert, 32,1750 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 1772 1751 . "ave(X)", zstophy,zout) 1773 1752 ENDDO … … 1783 1762 ndex3d = 0 1784 1763 c 1764 c$OMP END MASTER 1785 1765 ENDIF ! fin de test sur ok_mensuel -
LMDZ4/trunk/libf/phylmd/ini_histmthNMC.h
r684 r766 4 4 IF (ok_mensuel) THEN 5 5 c 6 c$OMP MASTER 7 6 8 zstophy = dtime 7 9 zstohf = ecrit_hf … … 12 14 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) 13 15 c 14 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon)15 DO i = 1, iim16 zx_lon(i,1) = rlon(i+1)17 zx_lon(i,jjmp1) = rlon(i+1)18 ENDDO16 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon) 17 cym DO i = 1, iim 18 cym zx_lon(i,1) = rlon(i+1) 19 cym zx_lon(i,jjmp1) = rlon(i+1) 20 cym ENDDO 19 21 DO ll=1,klev 20 22 znivsig(ll)=float(ll) 21 23 ENDDO 22 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 23 CALL histbeg("histNMC.nc", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 24 . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 24 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 25 cym CALL histbeg("histNMC.nc", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 26 cym . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 27 cym . nhori, nid_nmc) 28 29 CALL histbeg_phy("histNMC",itau_phy, zjulian, dtime, 25 30 . nhori, nid_nmc) 26 31 c … … 34 39 CALL histdef(nid_nmc, "temp", 35 40 . "Temperature","K", 36 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,41 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 37 42 . "inst(X)", zout,zout) 38 43 c 39 44 CALL histdef(nid_nmc, "phi", 40 45 . "Geopotential", "m", 41 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,46 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 42 47 . "inst(X)", zout,zout) 43 48 c 44 49 CALL histdef(nid_nmc, "q", 45 50 . "Specific humidity","kg/kg", 46 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,51 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 47 52 . "inst(X)", zout,zout) 48 53 c 49 54 CALL histdef(nid_nmc, "rh", 50 55 . "Relative humidity", "%", 51 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,56 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 52 57 . "inst(X)", zout,zout) 53 58 c 54 59 CALL histdef(nid_nmc, "u", 55 60 . "Zonal wind","m/s", 56 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,61 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 57 62 . "inst(X)", zout,zout) 58 63 c 59 64 CALL histdef(nid_nmc, "v", 60 65 . "Meridional wind","m/s", 61 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,66 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 62 67 . "inst(X)", zout,zout) 63 68 c … … 73 78 CALL histdef(nid_nmc, "temp", 74 79 . "Temperature","K", 75 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,80 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 76 81 . "inst(X)", zout,zout) 77 82 c 78 83 CALL histdef(nid_nmc, "phi", 79 84 . "Geopotential ", "m", 80 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,85 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 81 86 . "inst(X)", zout,zout) 82 87 c 83 88 CALL histdef(nid_nmc, "q", 84 89 . "Specific humidity","kg/kg", 85 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,90 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 86 91 . "inst(X)", zout,zout) 87 92 c 88 93 CALL histdef(nid_nmc, "rh", 89 94 . "Relative humidity", "%", 90 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,95 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 91 96 . "inst(X)", zout,zout) 92 97 c 93 98 CALL histdef(nid_nmc, "u", 94 99 . "Zonal wind","m/s", 95 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,100 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 96 101 . "inst(X)", zout,zout) 97 102 c 98 103 CALL histdef(nid_nmc, "v", 99 104 . "Meridional wind","m/s", 100 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,105 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 101 106 . "inst(X)", zout,zout) 102 107 c 103 108 CALL histdef(nid_nmc, "w", 104 109 . "Vertical motion","Pa/s", 105 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,110 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 106 111 . "inst(X)", zout,zout) 107 112 c … … 116 121 CALL histdef(nid_nmc, "psbg", 117 122 . "Pressure sfce below ground","%", 118 . iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,123 . iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 119 124 . "inst(X)", zout,zout) 120 125 c 121 126 CALL histdef(nid_nmc, "uv", 122 127 . "uv ", 123 . "m2/s2",iim,jj mp1,nhori, nlevSTD,1,nlevSTD, nvert, 32,128 . "m2/s2",iim,jjphy_nb,nhori, nlevSTD,1,nlevSTD, nvert, 32, 124 129 . "inst(X)", zout,zout) 125 130 c 126 131 CALL histdef(nid_nmc, "vq", 127 132 . "vq ", 128 . "m/s * (kg/kg)",iim,jj mp1,nhori,133 . "m/s * (kg/kg)",iim,jjphy_nb,nhori, 129 134 . nlevSTD,1,nlevSTD, nvert, 32, 130 135 . "inst(X)", zout,zout) … … 132 137 CALL histdef(nid_nmc, "vT", 133 138 . "vT ", 134 . "mK/s",iim,jj mp1,nhori,139 . "mK/s",iim,jjphy_nb,nhori, 135 140 . nlevSTD,1,nlevSTD, nvert, 32, 136 141 . "inst(X)", zout,zout) … … 138 143 CALL histdef(nid_nmc, "wq", 139 144 . "wq ", 140 . "(Pa/s)*(kg/kg)",iim,jj mp1,nhori,145 . "(Pa/s)*(kg/kg)",iim,jjphy_nb,nhori, 141 146 . nlevSTD,1,nlevSTD, nvert, 32, 142 147 . "inst(X)", zout,zout) … … 144 149 CALL histdef(nid_nmc, "vphi", 145 150 . "vphi ", 146 . "m2/s",iim,jj mp1,nhori,151 . "m2/s",iim,jjphy_nb,nhori, 147 152 . nlevSTD,1,nlevSTD, nvert, 32, 148 153 . "inst(X)", zout,zout) … … 150 155 CALL histdef(nid_nmc, "wT", 151 156 . "wT ", 152 . "K*Pa/s",iim,jj mp1,nhori,157 . "K*Pa/s",iim,jjphy_nb,nhori, 153 158 . nlevSTD,1,nlevSTD, nvert, 32, 154 159 . "inst(X)", zout,zout) … … 156 161 CALL histdef(nid_nmc, "uxu", 157 162 . "u2 ", 158 . "m2/s2",iim,jj mp1,nhori,163 . "m2/s2",iim,jjphy_nb,nhori, 159 164 . nlevSTD,1,nlevSTD, nvert, 32, 160 165 . "inst(X)", zout,zout) … … 162 167 CALL histdef(nid_nmc, "vxv", 163 168 . "v2 ", 164 . "m2/s2",iim,jj mp1,nhori,169 . "m2/s2",iim,jjphy_nb,nhori, 165 170 . nlevSTD,1,nlevSTD, nvert, 32, 166 171 . "inst(X)", zout,zout) … … 168 173 CALL histdef(nid_nmc, "TxT", 169 174 . "T2 ", 170 . "K2",iim,jj mp1,nhori,175 . "K2",iim,jjphy_nb,nhori, 171 176 . nlevSTD,1,nlevSTD, nvert, 32, 172 177 . "inst(X)", zout,zout) … … 176 181 CALL histend(nid_nmc) 177 182 c 183 c$OMP END MASTER 184 178 185 ENDIF ! fin de test sur ok_mensuel -
LMDZ4/trunk/libf/phylmd/ini_histrac.h
r684 r766 2 2 ! $Header$ 3 3 ! 4 #ifndef INCA 5 c$OMP MASTER 4 6 CALL ymds2ju(annee_ref, 1, day_ref, 0.0, zjulian) 5 7 c 6 CALL gr_fi_ecrit(1,klon,iim,jjm+1,xlon,zx_lon) 7 DO i = 1, iim 8 zx_lon(i,1) = xlon(i+1) 9 zx_lon(i,jjm+1) = xlon(i+1) 10 ENDDO 11 CALL gr_fi_ecrit(1,klon,iim,jjm+1,xlat,zx_lat) 12 CALL histbeg("histrac", iim,zx_lon(:,1), jjm+1,zx_lat(1,:), 13 . 1,iim,1,jjm+1, itau_phy, zjulian, pdtphys, 8 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,xlon,zx_lon) 9 cym DO i = 1, iim 10 cym zx_lon(i,1) = xlon(i+1) 11 cym zx_lon(i,jjm+1) = xlon(i+1) 12 cym ENDDO 13 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,xlat,zx_lat) 14 cym CALL histbeg("histrac", iim,zx_lon(:,1), jjm+1,zx_lat(1,:), 15 cym . 1,iim,1,jjm+1, itau_phy, zjulian, pdtphys, 16 cym . nhori, nid_tra) 17 CALL histbeg_phy("histrac", itau_phy, zjulian, pdtphys, 14 18 . nhori, nid_tra) 15 19 CALL histvert(nid_tra, "presnivs", "Vertical levels", "mb", 16 20 . klev, presnivs, nvert) 17 21 18 #ifdef INCA_AER19 CALL histbeg("histrac_aer", iim,zx_lon(:,1), jjm+1,zx_lat(1,:),20 . 1,iim,1,jjm+1, itau_phy, zjulian, pdtphys,21 . nhori, nid_tra2)22 23 CALL histbeg("histrac_inst", iim,zx_lon, jjm+1,zx_lat,24 . 1,iim,1,jjm+1, itau_phy, zjulian, pdtphys,25 . nhori, nid_tra3)26 27 call histvert(nid_tra2, "presnivs", "Vertical levels", "mb",28 . klev, presnivs, nvert)29 call histvert(nid_tra3, "presnivs", "presnivs", "mb",30 . klev, presnivs, nvert)31 #endif32 22 33 23 34 24 zsto = pdtphys 35 zout = ecrit_tra25 zout = pdtphys * FLOAT(ecrit_tra) 36 26 c 37 27 CALL histdef(nid_tra, "phis", "Surface geop. height", "-", 38 . iim,jj m+1,nhori, 1,1,1, -99, 32,28 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 39 29 . "once", zsto,zout) 40 30 c 41 31 CALL histdef(nid_tra, "aire", "Grid area", "-", 42 . iim,jj m+1,nhori, 1,1,1, -99, 32,32 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 43 33 . "once", zsto,zout) 44 #ifdef INCA45 CALL histdef(nid_tra, "ps", "Surface pressure", "Pa",46 . iim,jjm+1,nhori, 1,1,1,-99, 32,47 . "ave(X)", zsto,zout)48 49 CALL histdef(nid_tra, "ptrop", "Tropopause pressure", "Pa",50 . iim,jjm+1,nhori, 1,1,1,-99, 32,51 . "ave(X)", zsto,zout)52 53 C 3d FIELDS54 CALL histdef(nid_tra, "temp", "Air temperature", "K",55 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,56 . "ave(X)", zsto,zout)57 58 CALL histdef(nid_tra, "u", "zonal wind component", "m/s",59 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,60 . "ave(X)", zsto,zout)61 62 CALL histdef(nid_tra, "v", "zonal wind component", "m/s",63 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,64 . "ave(X)", zsto,zout)65 66 CALL histdef(nid_tra, "h2o", "Specific Humidity", "MMR",67 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,68 . "ave(X)", zsto,zout)69 70 CALL histdef(nid_tra, "pmid", "Pressure", "Pa",71 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,72 . "ave(X)", zsto,zout)73 74 CALL histdef(nid_tra, "pdel", "Delta Pressure", "Pa",75 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,76 . "ave(X)", zsto,zout)77 78 ! MS info79 #ifdef INCA_AER80 CALL histdef(nid_tra, "airm", "Air mass", "kg",81 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,82 . "ave(X)", zsto,zout)83 #endif84 #ifdef INCA85 #ifdef INCAINFO86 87 #ifdef INCA_CH488 DO it=1, phtcnt89 WRITE(str2,'(i2.2)') it90 CALL histdef(nid_tra, "j"//str2,"j"//str2, "CM-3 S-1",91 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,92 . "ave(X)", zsto,zout)93 ENDDO94 DO it=1, hetcnt95 WRITE(str2,'(i2.2)') it96 CALL histdef(nid_tra, "w"//str2,"w"//str2, "S-1",97 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,98 . "ave(X)", zsto,zout)99 ENDDO100 DO it=1, extcnt101 WRITE(str2,'(i2.2)') it102 CALL histdef(nid_tra, "ext"//str2,"ext"//str2, "CM-3 S-1",103 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,104 . "ave(X)", zsto,zout)105 ENDDO106 #endif107 #ifdef INCA_NMHC108 DO it=1, phtcnt109 WRITE(str2,'(i2.2)') it110 CALL histdef(nid_tra, "j"//str2,"j"//str2, "CM-3 S-1",111 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,112 . "ave(X)", zsto,zout)113 ENDDO114 DO it=1, hetcnt115 WRITE(str2,'(i2.2)') it116 CALL histdef(nid_tra, "w"//str2,"w"//str2, "S-1",117 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,118 . "ave(X)", zsto,zout)119 ENDDO120 DO it=1, extcnt121 WRITE(str2,'(i2.2)') it122 CALL histdef(nid_tra, "ext"//str2,"ext"//str2, "CM-3 S-1",123 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,124 . "ave(X)", zsto,zout)125 ENDDO126 #endif127 DO it=1, nfs128 WRITE(str2,'(i2.2)') it129 CALL histdef(nid_tra, "INV"//str2, "INV"//str2, "CM-3",130 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,131 . "ave(X)", zsto,zout)132 ENDDO133 134 #else135 136 #ifdef INCA_NMHC137 CALL histdef(nid_tra, "jO3","jO3", "CM-3 S-1",138 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,139 . "ave(X)", zsto,zout)140 CALL histdef(nid_tra, "jNO2","jNO2", "CM-3 S-1",141 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,142 . "ave(X)", zsto,zout)143 CALL histdef(nid_tra, "jH2O2","jH2O2", "CM-3 S-1",144 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,145 . "ave(X)", zsto,zout)146 CALL histdef(nid_tra, "wHNO3","wHNO3", "S-1",147 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,148 . "ave(X)", zsto,zout)149 CALL histdef(nid_tra, "kN2O5", "kN2O5","CM-3 S-1",150 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,151 . "ave(X)", zsto,zout)152 CALL histdef(nid_tra, "LghtNO","LghtNO", "CM-3 S-1",153 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,154 . "ave(X)", zsto,zout)155 #endif156 #ifdef INCA_CH4157 CALL histdef(nid_tra, "jO3","jO3", "CM-3 S-1",158 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,159 . "ave(X)", zsto,zout)160 CALL histdef(nid_tra, "jNO2","jNO2", "CM-3 S-1",161 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,162 . "ave(X)", zsto,zout)163 CALL histdef(nid_tra, "jH2O2","jH2O2", "CM-3 S-1",164 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,165 . "ave(X)", zsto,zout)166 CALL histdef(nid_tra, "wHNO3","wHNO3", "S-1",167 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,168 . "ave(X)", zsto,zout)169 CALL histdef(nid_tra, "kN2O5", "kN2O5","CM-3 S-1",170 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,171 . "ave(X)", zsto,zout)172 CALL histdef(nid_tra, "LghtNO","LghtNO", "CM-3 S-1",173 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,174 . "ave(X)", zsto,zout)175 #endif176 #endif177 178 ! DO it=1, grpcnt179 ! CALL histdef(nid_tra, grpsym(it), grpsym(it), "VMR",180 ! . iim,jjm+1,nhori, klev,1,klev,nvert, 32,181 ! . "ave(X)", zsto,zout)182 ! ENDDO183 #endif184 185 #ifdef INCA_AER186 187 CALL histdef(nid_tra2, "scavcoef_st","scavcoef_st", "S-1",188 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,189 . "ave(X)", zsto,zout)190 CALL histdef(nid_tra2, "scavcoef_cv","scavcoef_cv", "S-1",191 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,192 . "ave(X)", zsto,zout)193 CALL histdef(nid_tra2, "AngstroemComp","AngstroemComp",194 . "angs comp", iim,jjm+1,nhori, 1,1,1, -99, 32,195 . "ave(X)", zsto,zout)196 197 CALL histdef(nid_tra2, "TOTAERH2O", "Total aerosol water",198 . "kg/m2", iim,jjm+1,nhori, klev,1,klev, nvert, 32,199 . "ave(X)", zsto,zout)200 #endif201 #endif202 34 DO it=1,nqmax 203 35 C champ 2D 204 #ifdef INCA205 IF ( prt_flag_ts(it) == 0 ) CYCLE206 CALL histdef(nid_tra, "Emi_"//solsym(it), "Emi_"//solsym(it),207 . "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,208 . "ave(X)", zsto,zout)209 CALL histdef(nid_tra, "Dep_"//solsym(it), "Dep_"//solsym(it),210 . "cm/s", iim,jjm+1,nhori, 1,1,1, -99, 32,211 . "ave(X)", zsto,zout)212 #ifdef INCA_AER213 214 CALL histdef(nid_tra2, "Dry_"//solsym(it), "Dry_"//solsym(it),215 . "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,216 . "ave(X)", zsto,zout)217 218 IF ((it .ge. trmx) .and. (it .le. trnx)) then219 CALL histdef(nid_tra2, "Sed_"//solsym(it), "Sed_"//solsym(it),220 . "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,221 . "ave(X)", zsto,zout)222 CALL histdef(nid_tra2, "Wet_"//solsym(it), "Wet_"//solsym(it),223 . "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,224 . "ave(X)", zsto,zout)225 CALL histdef(nid_tra2, "WetST_"//solsym(it), "WetST_"//solsym(it),226 . "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,227 . "ave(X)", zsto,zout)228 CALL histdef(nid_tra2, "WetCV_"//solsym(it), "WetCV_"//solsym(it),229 . "kg/m2/s", iim,jjm+1,nhori, 1,1,1, -99, 32,230 . "ave(X)", zsto,zout)231 CALL histdef(nid_tra2, "Emi_alt_"//solsym(it), "Emi_alt_"//solsym(it),232 . "kg/m2/s", iim,jjm+1,nhori, klev,1,klev,nvert, 32,233 . "ave(X)", zsto,zout)234 CALL histdef(nid_tra2, "Load_"//solsym(it), "Load_"//solsym(it),235 . "kg/m2", iim,jjm+1,nhori, 1,1,1, -99, 32,236 . "ave(X)", zsto,zout)237 CALL histdef(nid_tra2, "SConc_"//solsym(it), "SConc_"//solsym(it),238 . "kg/m3", iim,jjm+1,nhori, 1,1,1, -99, 32,239 . "ave(X)", zsto,zout)240 do la=1,las241 CALL histdef(nid_tra2, "OD"//cla(la)//"_"//solsym(it), "OD"//cla(la)//"_"//solsym(it),242 . "opt. depth", iim,jjm+1,nhori, 1,1,1, -99, 32,243 . "ave(X)", zsto,zout)244 245 CALL histdef(nid_tra2, "OD3D"//cla(la)//"_"//solsym(it), "OD3d_"//cla(la)//"_"//solsym(it),246 . "opt. depth 3D", iim,jjm+1,nhori, klev,1,klev, nvert, 32,247 . "ave(X)", zsto,zout)248 enddo249 250 CALL histdef(nid_tra2, "CLOAD_"//solsym(it), "3D LOAD_"//solsym(it),251 . "kg/m2 resp. #/m2", iim,jjm+1,nhori, klev,1,klev, nvert, 32,252 . "ave(X)", zsto,zout)253 254 CALL histdef(nid_tra2, "MD_"//solsym(it), "MD_"//solsym(it),255 . "median diameter [m]", iim,jjm+1,nhori, klev,1,klev, nvert, 32,256 . "ave(X)", zsto,zout)257 258 CALL histdef(nid_tra2, "MDW_"//solsym(it), "MDW_"//solsym(it),259 . "wet median diameter [m]", iim,jjm+1,nhori, klev,1,klev, nvert, 32,260 . "ave(X)", zsto,zout)261 262 263 264 CALL histdef(nid_tra3, "Inst_Load_"//solsym(it), "Inst_Load_"//solsym(it),265 . "kg/m2", iim,jjm+1,nhori, 1,1,1, -99, 32,266 . "inst(X)", zout,zout)267 268 endif269 270 #endif271 CALL histdef(nid_tra, solsym(it), solsym(it), "VMR",272 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,273 . "ave(X)", zsto,zout)274 #else275 36 iq=it+2 276 37 iiq=niadv(iq) 277 38 CALL histdef(nid_tra, tnom(iq), ttext(iiq), "U/kga", 278 . iim,jj m+1,nhori, klev,1,klev,nvert, 32,39 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 279 40 . "ave(X)", zsto,zout) 280 41 if (lessivage) THEN 281 42 CALL histdef(nid_tra, "fl"//tnom(iq),"Flux "//ttext(iiq), 282 . "U/m2/s",iim,jj m+1,nhori, klev,1,klev,nvert, 32,43 . "U/m2/s",iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 283 44 . "ave(X)", zsto,zout) 284 45 endif … … 287 48 CALL histdef(nid_tra, "d_tr_th_"//tnom(iq), 288 49 . "tendance thermique"// ttext(iiq), "?", 289 . iim,jj m+1,nhori, klev,1,klev,nvert, 32,50 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 290 51 . "ave(X)", zsto,zout) 291 52 CALL histdef(nid_tra, "d_tr_cv_"//tnom(iq), 292 53 . "tendance convection"// ttext(iiq), "?", 293 . iim,jj m+1,nhori, klev,1,klev,nvert, 32,54 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 294 55 . "ave(X)", zsto,zout) 295 56 CALL histdef(nid_tra, "d_tr_cl_"//tnom(iq), 296 57 . "tendance couche limite"// ttext(iiq), "?", 297 . iim,jj m+1,nhori, klev,1,klev,nvert, 32,58 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 298 59 . "ave(X)", zsto,zout) 299 60 c---fin Olivia 300 61 301 #endif302 62 ENDDO 303 63 304 #ifdef INCA 305 CALL histdef(nid_tra, "O3_column", "O3_column", 306 . "DU", iim,jjm+1,nhori, 1,1,1, -99, 32, 307 . "ave(X)", zsto,zout) 308 CALL histdef(nid_tra, "CO_column", "CO_column", 309 . "10^18 CM-2", iim,jjm+1,nhori, 1,1,1, -99, 32, 310 . "ave(X)", zsto,zout) 311 CALL histdef(nid_tra, "CH4_column", "CH4_column", 312 . "10^18 CM-2", iim,jjm+1,nhori, 1,1,1, -99, 32, 313 . "ave(X)", zsto,zout) 314 CALL histdef(nid_tra, "NO2_column", "NO2_column", 315 . "10^15 CM-2", iim,jjm+1,nhori, 1,1,1, -99, 32, 316 . "ave(X)", zsto,zout) 317 CALL histdef(nid_tra, "O3_ste", "O3_ste", 318 . "CM-2 S-1", iim,jjm+1,nhori, 1,1,1, -99, 32, 319 . "ave(X)", zsto,zout) 320 CALL histdef(nid_tra, "O3_prod", "O3_prod", "CM-3 S-1", 321 . iim,jjm+1,nhori, klev,1,klev,nvert, 32, 64 CALL histdef(nid_tra, "pyu1", "Vent niv 1", "-", 65 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 66 . "inst(X)", zout,zout) 67 68 CALL histdef(nid_tra, "pyv1", "Vent niv 1", "-", 69 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 70 . "inst(X)", zout,zout) 71 CALL histdef(nid_tra, "psrf1", "nature sol", "-", 72 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 73 . "inst(X)", zout,zout) 74 CALL histdef(nid_tra, "psrf2", "nature sol", "-", 75 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 76 . "inst(X)", zout,zout) 77 CALL histdef(nid_tra, "psrf3", "nature sol", "-", 78 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 79 . "inst(X)", zout,zout) 80 CALL histdef(nid_tra, "psrf4", "nature sol", "-", 81 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 82 . "inst(X)", zout,zout) 83 CALL histdef(nid_tra, "ftsol1", "temper sol", "-", 84 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 85 . "inst(X)", zout,zout) 86 CALL histdef(nid_tra, "ftsol2", "temper sol", "-", 87 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 88 . "inst(X)", zout,zout) 89 CALL histdef(nid_tra, "ftsol3", "temper sol", "-", 90 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 91 . "inst", zout,zout) 92 CALL histdef(nid_tra, "ftsol4", "temper sol", "-", 93 . iim,jjphy_nb,nhori, 1,1,1, -99, 32, 94 . "inst(X)", zout,zout) 95 CALL histdef(nid_tra, "pplay", "flux u mont","-", 96 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 97 . "inst(X)", zout,zout) 98 CALL histdef(nid_tra, "t", "flux u mont","-", 99 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 100 . "inst(X)", zout,zout) 101 CALL histdef(nid_tra, "mfu", "flux u mont","-", 102 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 322 103 . "ave(X)", zsto,zout) 323 CALL histdef(nid_tra, "O3_loss", "O3_loss", "CM-3 S-1", 324 . iim,jjm+1,nhori, klev,1,klev,nvert, 32, 104 CALL histdef(nid_tra, "mfd", "flux u decen","-", 105 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 106 . "ave(X)", zsto,zout) 107 CALL histdef(nid_tra, "en_u", "flux u mont","-", 108 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 109 . "ave(X)", zsto,zout) 110 CALL histdef(nid_tra, "en_d", "flux u mont","-", 111 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 112 . "ave(X)", zsto,zout) 113 CALL histdef(nid_tra, "de_d", "flux u mont","-", 114 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 115 . "ave(X)", zsto,zout) 116 CALL histdef(nid_tra, "de_u", "flux u decen","-", 117 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 118 . "ave(X)", zsto,zout) 119 CALL histdef(nid_tra, "coefh", "turbulent coef","-", 120 . iim,jjphy_nb,nhori, klev,1,klev,nvert, 32, 325 121 . "ave(X)", zsto,zout) 326 122 327 ! Special variables for daytime averaging328 ! CALL histdef(nid_tra, "day_cnt", "day_cnt", "-",329 ! . iim,jjm+1,nhori, klev,1,klev,nvert, 32,330 ! . "t_sum(X)", zsto,zout)331 ! CALL histdef(nid_tra, "NO_day", "NO_day", "VMR",332 ! . iim,jjm+1,nhori, klev,1,klev,nvert, 32,333 ! . "t_sum(X)", zsto,zout)334 335 336 337 !! Ajout Anne338 #ifdef INCA_AER339 ! for sulfur cycle340 CALL histdef(nid_tra, "SO2_p_dmsoh", "SO2_p_dmsoh", "CM-3 S-1",341 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,342 . "ave(X)", zsto,zout)343 CALL histdef(nid_tra, "SO2_p_dmsno3", "SO2_p_dmsno3", "CM-3 S-1",344 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,345 . "ave(X)", zsto,zout)346 CALL histdef(nid_tra, "SO2_p_h2soh", "SO2_p_h2soh", "CM-3 S-1",347 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,348 . "ave(X)", zsto,zout)349 CALL histdef(nid_tra, "SO2_p_dmsooh", "SO2_p_dmsooh", "CM-3 S-1",350 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,351 . "ave(X)", zsto,zout)352 CALL histdef(nid_tra, "DMSO_p_dmsoh", "DMSO_p_dmsoh", "CM-3 S-1",353 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,354 . "ave(X)", zsto,zout)355 CALL histdef(nid_tra, "ASMSAM_p_dmsooh", "ASMSAM_p_dmsooh", "CM-3 S-1",356 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,357 . "ave(X)", zsto,zout)358 CALL histdef(nid_tra, "ASSO4M_p_so2oh", "ASSO4M_p_so2oh", "CM-3 S-1",359 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,360 . "ave(X)", zsto,zout)361 CALL histdef(nid_tra, "ASSO4M_p_so2h2o2", "ASSO4M_p_h2o2","CM-3 S-1",362 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,363 . "ave(X)", zsto,zout)364 CALL histdef(nid_tra, "ASSO4M_p_so2o3", "ASSO4M_p_so2o3", "CM-3 S-1",365 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,366 . "ave(X)", zsto,zout)367 368 CALL histdef(nid_tra, "Wet3D_SO2", "Wet3D_SO2",369 . "kg/m2/s", iim,jjm+1,nhori, klev,1,klev,nvert, 32,370 . "ave(X)", zsto,zout)371 CALL histdef(nid_tra, "Wet3D_DMS", "Wet3D_DMS",372 . "kg/m2/s", iim,jjm+1,nhori, klev,1,klev,nvert, 32,373 . "ave(X)", zsto,zout)374 CALL histdef(nid_tra, "Wet3D_HNO3", "Wet3D_HNO3",375 . "kg/m2/s", iim,jjm+1,nhori, klev,1,klev,nvert, 32,376 . "ave(X)", zsto,zout)377 CALL histdef(nid_tra, "Wet3D_H2O2", "Wet3D_H2O2",378 . "kg/m2/s", iim,jjm+1,nhori, klev,1,klev,nvert, 32,379 . "ave(X)", zsto,zout)380 381 CALL histdef(nid_tra, "PH_HIST", "pH over physics time step", "1",382 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,383 . "ave(X)", zsto,zout)384 #endif385 386 #ifdef INCA_CH4387 DO it=1, grpcnt388 CALL histdef(nid_tra, grpsym(it), grpsym(it), "VMR",389 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,390 . "ave(X)", zsto,zout)391 ENDDO392 393 #endif394 395 396 #ifdef INCA_NMHC397 CALL histdef(nid_tra, "CO2_basprod", "CO2_basprod", "CM-3 S-1",398 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,399 . "ave(X)", zsto,zout)400 CALL histdef(nid_tra, "CO2_nmhcprod", "CO2_nmhcprod", "CM-3 S-1",401 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,402 . "ave(X)", zsto,zout)403 CALL histdef(nid_tra, "CO2_radicalprod", "CO2_radicalprod", "CM-3 S-1",404 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,405 . "ave(X)", zsto,zout)406 CALL histdef(nid_tra, "HNO3_prod", "HNO3_prod", "CM-3 S-1",407 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,408 . "ave(X)", zsto,zout)409 CALL histdef(nid_tra, "HNO3_loss", "HNO3_loss", "CM-3 S-1",410 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,411 . "ave(X)", zsto,zout)412 CALL histdef(nid_tra, "CO_prod", "CO_prod", "CM-3 S-1",413 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,414 . "ave(X)", zsto,zout)415 CALL histdef(nid_tra, "CO_loss", "CO_loss", "CM-3 S-1",416 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,417 . "ave(X)", zsto,zout)418 419 DO it=1, grpcnt420 CALL histdef(nid_tra, grpsym(it), grpsym(it), "VMR",421 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,422 . "ave(X)", zsto,zout)423 ENDDO424 425 426 #endif427 ! Fin ajout Anne428 #else429 CALL histdef(nid_tra, "pyu1", "Vent niv 1", "-",430 . iim,jjm+1,nhori, 1,1,1, -99, 32,431 . "inst(X)", zout,zout)432 433 CALL histdef(nid_tra, "pyv1", "Vent niv 1", "-",434 . iim,jjm+1,nhori, 1,1,1, -99, 32,435 . "inst(X)", zout,zout)436 CALL histdef(nid_tra, "psrf1", "nature sol", "-",437 . iim,jjm+1,nhori, 1,1,1, -99, 32,438 . "inst(X)", zout,zout)439 CALL histdef(nid_tra, "psrf2", "nature sol", "-",440 . iim,jjm+1,nhori, 1,1,1, -99, 32,441 . "inst(X)", zout,zout)442 CALL histdef(nid_tra, "psrf3", "nature sol", "-",443 . iim,jjm+1,nhori, 1,1,1, -99, 32,444 . "inst(X)", zout,zout)445 CALL histdef(nid_tra, "psrf4", "nature sol", "-",446 . iim,jjm+1,nhori, 1,1,1, -99, 32,447 . "inst(X)", zout,zout)448 CALL histdef(nid_tra, "ftsol1", "temper sol", "-",449 . iim,jjm+1,nhori, 1,1,1, -99, 32,450 . "inst(X)", zout,zout)451 CALL histdef(nid_tra, "ftsol2", "temper sol", "-",452 . iim,jjm+1,nhori, 1,1,1, -99, 32,453 . "inst(X)", zout,zout)454 CALL histdef(nid_tra, "ftsol3", "temper sol", "-",455 . iim,jjm+1,nhori, 1,1,1, -99, 32,456 . "inst(X)", zout,zout)457 CALL histdef(nid_tra, "ftsol4", "temper sol", "-",458 . iim,jjm+1,nhori, 1,1,1, -99, 32,459 . "inst(X)", zout,zout)460 CALL histdef(nid_tra, "pplay", "flux u mont","-",461 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,462 . "inst(X)", zout,zout)463 CALL histdef(nid_tra, "t", "flux u mont","-",464 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,465 . "inst(X)", zout,zout)466 CALL histdef(nid_tra, "mfu", "flux u mont","-",467 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,468 . "ave(X)", zsto,zout)469 CALL histdef(nid_tra, "mfd", "flux u decen","-",470 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,471 . "ave(X)", zsto,zout)472 CALL histdef(nid_tra, "en_u", "flux u mont","-",473 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,474 . "ave(X)", zsto,zout)475 CALL histdef(nid_tra, "en_d", "flux u mont","-",476 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,477 . "ave(X)", zsto,zout)478 CALL histdef(nid_tra, "de_d", "flux u mont","-",479 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,480 . "ave(X)", zsto,zout)481 CALL histdef(nid_tra, "de_u", "flux u decen","-",482 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,483 . "ave(X)", zsto,zout)484 CALL histdef(nid_tra, "coefh", "turbulent coef","-",485 . iim,jjm+1,nhori, klev,1,klev,nvert, 32,486 . "ave(X)", zsto,zout)487 488 #endif489 123 c 490 124 CALL histend(nid_tra) 491 #ifdef INCA_AER492 CALL histend(nid_tra2)493 CALL histend(nid_tra3)494 #endif495 125 ndex2d = 0 496 126 ndex3d = 0 497 127 ndex = 0 128 c$OMP END MASTER 129 #endif -
LMDZ4/trunk/libf/phylmd/ini_paramLMDZ_phy.h
r719 r766 1 cym Non implemente en mode parallele 2 3 IF (monocpu) THEN 1 4 c 2 5 zstophy = dtime … … 357 360 c 358 361 CALL histend(nid_ctesGCM) 362 363 ENDIF ! monocpu 359 364 c 360 365 c================================================================= -
LMDZ4/trunk/libf/phylmd/ini_undefSTD.F
r684 r766 2 2 $ dtime,ecrit_day,ecrit_mth, 3 3 $ tnondef,tsumSTD) 4 USE dimphy 4 5 IMPLICIT none 5 6 c … … 26 27 c==================================================================== 27 28 c 28 #include "dimensions.h"29 integer jjmp130 parameter (jjmp1=jjm+1-1/jjm)31 #include "dimphy.h"29 cym #include "dimensions.h" 30 cym integer jjmp1 31 cym parameter (jjmp1=jjm+1-1/jjm) 32 cym #include "dimphy.h" 32 33 c variables Input/Output 33 34 INTEGER nlevSTD, klevSTD, itap -
LMDZ4/trunk/libf/phylmd/inifis.F
r524 r766 7 7 $ plat,plon,parea, 8 8 $ prad,pg,pr,pcpp) 9 use dimphy 9 10 IMPLICIT NONE 10 11 c … … 41 42 c ------------- 42 43 43 #include "dimensions.h"44 #include "dimphy.h"44 cym#include "dimensions.h" 45 cym#include "dimphy.h" 45 46 46 47 REAL prad,pg,pr,pcpp,punjours -
LMDZ4/trunk/libf/phylmd/iniphysiq.F
r524 r766 9 9 $ plat,plon,parea,pcu,pcv, 10 10 $ prad,pg,pr,pcpp) 11 USE dimphy,klon2=>klon,klon=>klon2 12 USE comgeomphy 11 13 IMPLICIT NONE 12 14 c … … 43 45 c ------------- 44 46 45 #include "dimensions.h"46 #include "dimphy.h"47 #include "comgeomphy.h"48 47 cym#include "dimensions.h" 48 cym#include "dimphy.h" 49 cym#include "comgeomphy.h" 50 #include "YOMCST.h" 49 51 REAL prad,pg,pr,pcpp,punjours 50 52 … … 52 54 REAL plat(ngrid),plon(ngrid),parea(klon),pcu(klon),pcv(klon) 53 55 INTEGER pdayref 56 INTEGER :: ibegin,iend 54 57 55 58 REAL ptimestep … … 70 73 STOP 71 74 ENDIF 75 c$OMP PARALLEL PRIVATE(ibegin,iend) 76 c$OMP+ SHARED(parea,pcu,pcv,plon,plat) 77 ibegin=klon_begin+klon_omp_begin(omp_rank)-1 78 iend=ibegin+klon_omp-1 72 79 73 airephy =parea74 cuphy =pcu75 cvphy =pcv76 rlond = plon77 rlatd = plat80 airephy(1:klon_omp)=parea(ibegin:iend) 81 cuphy(1:klon_omp)=pcu(ibegin:iend) 82 cvphy(1:klon_omp)=pcv(ibegin:iend) 83 rlond(1:klon_omp) = plon(ibegin:iend) 84 rlatd(1:klon_omp) = plat(ibegin:iend) 78 85 79 86 call suphec 87 88 c$OMP END PARALLEL 89 80 90 print*,'ATTENTION !!! TRAVAILLER SUR INIPHYSIQ' 81 91 print*,'CONTROLE DES LATITUDES, LONGITUDES, PARAMETRES ...' -
LMDZ4/trunk/libf/phylmd/initphysto.F
r541 r766 7 7 . (infile, 8 8 . rlon, rlat, tstep,t_ops,t_wrt,nq,fileid) 9 9 10 USE dimphy 10 11 USE IOIPSL 11 12 USE iophy 12 13 implicit none 13 14 … … 51 52 #include "indicesol.h" 52 53 #include "control.h" 53 #include "dimphy.h"54 cym#include "dimphy.h" 54 55 55 56 C Arguments … … 91 92 tau0 = 0 92 93 93 CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon)94 DO i = 1, iim95 zx_lon(i,1) = rlon(i+1)96 zx_lon(i,jjm+1) = rlon(i+1)97 ENDDO98 CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,zx_lat)99 100 101 call histbeg (infile, iim, zx_lon(:,1), jjm+1, zx_lat(1,:),102 . 1, iim, 1, jjm+1,103 . tau0, zjulian, tstep, nhoriid, fileid) 104 94 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,zx_lon) 95 cym DO i = 1, iim 96 cym zx_lon(i,1) = rlon(i+1) 97 cym zx_lon(i,jjm+1) = rlon(i+1) 98 cym ENDDO 99 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,zx_lat) 100 101 102 call histbeg_phy(infile,tau0, zjulian, tstep, 103 . nhoriid, fileid) 104 105 c$OMP MASTER 105 106 C Appel a histvert pour la grille verticale 106 107 C … … 108 109 nivsigs(l)=float(l) 109 110 ENDDO 110 111 111 112 write(*,*) 'avant histvert ds initphysto' 112 113 … … 120 121 121 122 CALL histdef(fileid, "phis", "Surface geop. height", "-", 122 . iim,jj m+1,nhoriid, 1,1,1, -99, 32,123 . iim,jjphy_nb,nhoriid, 1,1,1, -99, 32, 123 124 . "once", t_ops, t_wrt) 124 125 c … … 126 127 127 128 CALL histdef(fileid, "aire", "Grid area", "-", 128 . iim,jj m+1,nhoriid, 1,1,1, -99, 32,129 . iim,jjphy_nb,nhoriid, 1,1,1, -99, 32, 129 130 . "once", t_ops, t_wrt) 130 131 write(*,*) 'apres aire ds initphysto' 131 132 133 cym Attention dtime et istphy ne sont pas �rit ---> a �iminer ? 132 134 CALL histdef(fileid, "dtime", "tps phys ", "s", 133 135 . 1,1,nhoriid, 1,1,1, -99, 32, … … 141 143 C 142 144 call histdef(fileid, 't', 'Temperature', 'K', 143 . iim, jj m+1, nhoriid, llm, 1, llm, zvertiid,145 . iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid, 144 146 . 32, 'inst(X)', t_ops, t_wrt) 145 147 write(*,*) 'apres t ds initphysto' … … 147 149 C 148 150 call histdef(fileid, 'mfu', 'flx m. pan. mt', 'kg m/s', 149 . iim, jj m+1, nhoriid, llm, 1, llm, zvertiid,151 . iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid, 150 152 . 32, 'inst(X)', t_ops, t_wrt) 151 153 write(*,*) 'apres mfu ds initphysto' … … 154 156 C 155 157 call histdef(fileid, 'mfd', 'flx m. pan. des', 'kg m/s', 156 . iim, jj m+1, nhoriid, llm, 1, llm, zvertiid,158 . iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid, 157 159 . 32, 'inst(X)', t_ops, t_wrt) 158 160 … … 161 163 C 162 164 call histdef(fileid, 'en_u', 'flx ent pan mt', 'kg m/s', 163 . iim, jj m+1, nhoriid, llm, 1, llm, zvertiid,165 . iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid, 164 166 . 32, 'inst(X)', t_ops, t_wrt) 165 167 write(*,*) 'apres en_u ds initphysto' … … 168 170 C 169 171 call histdef(fileid, 'de_u', 'flx det pan mt', 'kg m/s', 170 . iim, jj m+1, nhoriid, llm, 1, llm, zvertiid,172 . iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid, 171 173 . 32, 'inst(X)', t_ops, t_wrt) 172 174 … … 175 177 C 176 178 call histdef(fileid, 'en_d', 'flx ent pan dt', 'kg m/s', 177 . iim, jj m+1, nhoriid, llm, 1, llm, zvertiid,179 . iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid, 178 180 . 32, 'inst(X)', t_ops, t_wrt) 179 181 C … … 183 185 C 184 186 call histdef(fileid, 'de_d', 'flx det pan dt', 'kg m/s', 185 . iim, jj m+1, nhoriid, llm, 1, llm, zvertiid,187 . iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid, 186 188 . 32, 'inst(X)', t_ops, t_wrt) 187 189 … … 189 191 190 192 call histdef(fileid, "coefh", " ", " ", 191 . iim, jj m+1, nhoriid, llm, 1, llm, zvertiid,193 . iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid, 192 194 . 32, "inst(X)", t_ops, t_wrt) 193 195 194 196 c abderrahmane le 16 09 02 195 197 call histdef(fileid, "fm_th", " ", " ", 196 . iim, jj m+1, nhoriid, llm, 1, llm, zvertiid,198 . iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid, 197 199 . 32, "inst(X)", t_ops, t_wrt) 198 200 199 201 call histdef(fileid, "en_th", " ", " ", 200 . iim, jj m+1, nhoriid, llm, 1, llm, zvertiid,202 . iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid, 201 203 . 32, "inst(X)", t_ops, t_wrt) 202 204 c fin aj … … 205 207 206 208 call histdef(fileid, 'frac_impa', ' ', ' ', 207 . iim, jj m+1, nhoriid, llm, 1, llm, zvertiid,209 . iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid, 208 210 . 32, 'inst(X)', t_ops, t_wrt) 209 211 210 212 call histdef(fileid, 'frac_nucl', ' ', ' ', 211 . iim, jj m+1, nhoriid, llm, 1, llm, zvertiid,213 . iim, jjphy_nb, nhoriid, llm, 1, llm, zvertiid, 212 214 . 32, 'inst(X)', t_ops, t_wrt) 213 215 … … 216 218 c 217 219 CALL histdef(fileid, "pyu1", " ", " ", 218 . iim,jj m+1,nhoriid, 1,1,1, -99, 32,220 . iim,jjphy_nb,nhoriid, 1,1,1, -99, 32, 219 221 . "inst(X)", t_ops, t_wrt) 220 222 … … 223 225 c 224 226 CALL histdef(fileid, "pyv1", " ", " ", 225 . iim,jj m+1,nhoriid, 1,1,1, -99, 32,227 . iim,jjphy_nb,nhoriid, 1,1,1, -99, 32, 226 228 . "inst(X)", t_ops, t_wrt) 227 229 … … 231 233 c 232 234 call histdef(fileid, "ftsol1", " ", " ", 233 . iim, jj m+1, nhoriid, 1, 1,1, -99,32,235 . iim, jjphy_nb, nhoriid, 1, 1,1, -99,32, 234 236 . "inst(X)", t_ops, t_wrt) 235 237 … … 238 240 c 239 241 call histdef(fileid, "ftsol2", " ", " ", 240 . iim, jj m+1, nhoriid, 1, 1,1, -99,32,242 . iim, jjphy_nb, nhoriid, 1, 1,1, -99,32, 241 243 . "inst(X)", t_ops, t_wrt) 242 244 … … 245 247 c 246 248 call histdef(fileid, "ftsol3", " ", " ", 247 . iim, jj m+1, nhoriid, 1, 1,1, -99,249 . iim, jjphy_nb, nhoriid, 1, 1,1, -99, 248 250 . 32, "inst(X)", t_ops, t_wrt) 249 251 … … 252 254 c 253 255 call histdef(fileid, "ftsol4", " ", " ", 254 . iim, jj m+1, nhoriid, 1, 1,1, -99,256 . iim, jjphy_nb, nhoriid, 1, 1,1, -99, 255 257 . 32, "inst(X)", t_ops, t_wrt) 256 258 … … 259 261 c 260 262 call histdef(fileid, "rain", " ", " ", 261 . iim, jj m+1, nhoriid, 1, 1,1, -99,263 . iim, jjphy_nb, nhoriid, 1, 1,1, -99, 262 264 . 32, "inst(X)", t_ops, t_wrt) 263 265 … … 266 268 c 267 269 call histdef(fileid, "psrf1", " ", " ", 268 . iim, jj m+1, nhoriid, 1, 1, 1, -99,270 . iim, jjphy_nb, nhoriid, 1, 1, 1, -99, 269 271 . 32, "inst(X)", t_ops, t_wrt) 270 272 … … 273 275 c 274 276 call histdef(fileid, "psrf2", " ", " ", 275 . iim, jj m+1, nhoriid, 1, 1, 1, -99,277 . iim, jjphy_nb, nhoriid, 1, 1, 1, -99, 276 278 . 32, "inst(X)", t_ops, t_wrt) 277 279 … … 280 282 c 281 283 call histdef(fileid, "psrf3", " ", " ", 282 . iim, jj m+1, nhoriid, 1, 1, 1, -99,284 . iim, jjphy_nb, nhoriid, 1, 1, 1, -99, 283 285 . 32, "inst(X)", t_ops, t_wrt) 284 286 … … 287 289 c 288 290 call histdef(fileid, "psrf4", " ", " ", 289 . iim, jj m+1, nhoriid, 1, 1, 1, -99,291 . iim, jjphy_nb, nhoriid, 1, 1, 1, -99, 290 292 . 32, "inst(X)", t_ops, t_wrt) 291 293 … … 295 297 c if (ok_sync) call histsync(fileid) 296 298 if (ok_sync) call histsync 297 299 c$OMP END MASTER 298 300 299 301 -
LMDZ4/trunk/libf/phylmd/initrrnpb.F
r541 r766 4 4 SUBROUTINE initrrnpb(ftsol,pctsrf,masktr,fshtr,hsoltr,tautr 5 5 . ,vdeptr,scavtr) 6 USE dimphy 6 7 IMPLICIT none 7 8 c====================================================================== … … 24 25 c scavtr---output-R- Coefficient de lessivage 25 26 c====================================================================== 26 #include "dimensions.h"27 #include "dimphy.h"27 cym#include "dimensions.h" 28 cym#include "dimphy.h" 28 29 #include "indicesol.h" 29 30 c====================================================================== -
LMDZ4/trunk/libf/phylmd/interface_surf.F90
r729 r766 22 22 ! L. Fairhead, LMD, 02/2000 23 23 24 USE ioipsl24 !ym USE ioipsl 25 25 26 26 IMPLICIT none … … 44 44 ! run_off ruissellement total 45 45 REAL, ALLOCATABLE, DIMENSION(:),SAVE :: run_off, run_off_lic 46 !$OMP THREADPRIVATE(run_off, run_off_lic) 46 47 real, allocatable, dimension(:),save :: coastalflow, riverflow 48 !$OMP THREADPRIVATE(coastalflow, riverflow) 47 49 !!$PB 48 50 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: tmp_rriv, tmp_rcoa,tmp_rlic 51 !$OMP THREADPRIVATE(tmp_rriv, tmp_rcoa,tmp_rlic) 49 52 !! pour simuler la fonte des glaciers antarctiques 50 53 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: coeff_iceberg 54 !$OMP THREADPRIVATE(coeff_iceberg) 51 55 real, save :: surf_maille 56 !$OMP THREADPRIVATE(surf_maille) 52 57 real, save :: cte_flux_iceberg = 6.3e7 58 !$OMP THREADPRIVATE(cte_flux_iceberg) 53 59 integer, save :: num_antarctic = 1 60 !$OMP THREADPRIVATE(num_antarctic) 54 61 REAL, save :: tau_calv 62 !$OMP THREADPRIVATE(tau_calv) 55 63 !!$ 56 64 CONTAINS … … 75 83 & evap, fluxsens, fluxlat, dflux_l, dflux_s, & 76 84 & tsol_rad, tsurf_new, alb_new, alblw, emis_new, & 77 & z0_new, pctsrf_new, agesno,fqcalving,f fonte, run_off_lic_0,&85 & z0_new, pctsrf_new, agesno,fqcalving,fqfonte,ffonte, run_off_lic_0,& 78 86 !IM "slab" ocean 79 87 & flux_o, flux_g, tslab, seaice) 80 88 81 89 90 USE dimphy,only : monocpu,jjphy_nb,omp_rank 82 91 ! Cette routine sert d'aiguillage entre l'atmosphere et la surface en general 83 92 ! (sols continentaux, oceans, glaces) pour les fluxs de chaleur et d'humidite. … … 189 198 real, dimension(klon), intent(INOUT) :: tslab 190 199 real, allocatable, dimension(:), save :: tmp_tslab 200 !$OMP THREADPRIVATE(tmp_tslab) 191 201 real, dimension(klon), intent(OUT) :: flux_o, flux_g 192 202 real, dimension(klon), intent(INOUT) :: seaice ! glace de mer (kg/m2) 193 203 real, dimension(klon) :: siceh ! hauteur glace de mer (m) 194 204 REAL, DIMENSION(klon), INTENT(INOUT) :: radsol,fder 205 206 ! real, dimension(klon), intent(IN) :: zmasq 195 207 real, dimension(klon), intent(IN) :: zmasq 196 208 real, dimension(klon), intent(IN) :: taux, tauy, rugos, rugoro … … 221 233 !jld a rajouter real, dimension(klon), intent(INOUT):: ffonte 222 234 real, dimension(klon), intent(INOUT):: ffonte 223 ! Flux d'eau "perdue" par la surface et n écessaire pour que limiter la224 ! hauteur de neige, en kg/m2/s 225 !jld a rajouter real, dimension(klon), intent(INOUT):: fqcalving 226 real, dimension(klon), intent(INOUT):: fqcalving235 ! Flux d'eau "perdue" par la surface et necessaire pour que limiter la 236 ! hauteur de neige, en kg/m2/s. Et quantite d'eau de fonte de la calotte. 237 !jld a rajouter real, dimension(klon), intent(INOUT):: fqcalving, fqfonte 238 REAL, DIMENSION(klon), INTENT(INOUT):: fqcalving, fqfonte 227 239 !IM: "slab" ocean 228 240 real, dimension(klon) :: new_dif_grnd … … 232 244 integer i 233 245 real, allocatable, dimension(:), save :: tmp_flux_o, tmp_flux_g 246 !$OMP THREADPRIVATE(tmp_flux_o, tmp_flux_g) 234 247 real, allocatable, dimension(:), save :: tmp_radsol 248 !$OMP THREADPRIVATE(tmp_radsol) 235 249 real, allocatable, dimension(:,:), save :: tmp_pctsrf_slab 250 !$OMP THREADPRIVATE(tmp_pctsrf_slab) 236 251 real, allocatable, dimension(:), save :: tmp_seaice 237 252 !$OMP THREADPRIVATE(tmp_seaice) 238 253 ! Local 239 254 character (len = 20),save :: modname = 'interfsurf_hq' 255 !$OMP THREADPRIVATE(modname) 240 256 character (len = 80) :: abort_message 241 257 logical, save :: first_call = .true. 258 !$OMP THREADPRIVATE(first_call) 242 259 integer, save :: error 260 !$OMP THREADPRIVATE(error) 243 261 integer :: ii, index 244 logical,save :: check = .false. 262 logical,save :: check = .true. 263 !$OMP THREADPRIVATE(check) 245 264 real, dimension(klon):: cal, beta, dif_grnd, capsol 246 265 !!$PB real, parameter :: calice=1.0/(5.1444e+06*0.15), tau_gl=86400.*5. … … 258 277 real, dimension(klon):: fder_prev 259 278 REAL, dimension(klon) :: bidule 279 real, dimension(klon) :: ps_tmp,p1lay_tmp 280 INTEGER :: j 260 281 ! 261 282 !IM ?? quelques variables pour netcdf … … 295 316 ! call abort_gcm(modname,abort_message,1) 296 317 ! endif 318 endif 319 first_call = .false. 320 321 ! Initialisations diverses 322 ! 323 !!$ cal=0.; beta=1.; dif_grnd=0.; capsol=0. 324 !!$ alb_new = 0.; z0_new = 0.; alb_neig = 0.0 325 !!$! PB 326 !!$ tsurf_new = 0. 297 327 298 328 !IM cf JLD 299 329 ffonte(1:knon)=0. 300 330 fqcalving(1:knon)=0. 331 fqfonte (1:knon)=0. 332 301 333 302 334 cal = 999999. ; beta = 999999. ; dif_grnd = 999999. ; capsol = 999999. … … 368 400 tmp_tslab(i)=tslab(i) 369 401 ENDDO 370 endif371 first_call = .false.372 373 ! Initialisations diverses374 !375 !!$ cal=0.; beta=1.; dif_grnd=0.; capsol=0.376 !!$ alb_new = 0.; z0_new = 0.; alb_neig = 0.0377 !!$! PB378 !!$ tsurf_new = 0.379 380 402 ! 381 403 ! Aiguillage vers les differents schemas de surface … … 407 429 408 430 !!$PB 409 ALLOCATE (tmp_rriv(iim,jj m+1), stat=error)431 ALLOCATE (tmp_rriv(iim,jjphy_nb), stat=error) 410 432 if (error /= 0) then 411 433 abort_message='Pb allocation tmp_rriv' 412 434 call abort_gcm(modname,abort_message,1) 413 435 endif 414 ALLOCATE (tmp_rcoa(iim,jjm+1), stat=error) 436 tmp_rriv=0. 437 ALLOCATE (tmp_rcoa(iim,jjphy_nb), stat=error) 415 438 if (error /= 0) then 416 439 abort_message='Pb allocation tmp_rcoa' 417 440 call abort_gcm(modname,abort_message,1) 418 441 endif 419 ALLOCATE (tmp_rlic(iim,jjm+1), stat=error) 442 tmp_rcoa=0. 443 !ym ALLOCATE (tmp_rlic(iim,jjm+1), stat=error) 444 ALLOCATE (tmp_rlic(iim,jjphy_nb), stat=error) 420 445 if (error /= 0) then 421 446 abort_message='Pb allocation tmp_rlic' 422 447 call abort_gcm(modname,abort_message,1) 423 448 endif 424 tmp_rriv = 0.0 425 tmp_rcoa = 0.0 426 tmp_rlic = 0.0 427 449 tmp_rlic=0. 428 450 !!$ 429 451 else if (size(coastalflow) /= knon) then … … 449 471 & alb_new, z0_new) 450 472 ! 451 ! calcul snow et qsurf, hydrol adapté 452 ! 473 ! calcul snow et qsurf, hydrol adapte ! 453 474 CALL calbeta(dtime, nisurf, knon, snow, qsol, beta, capsol, dif_grnd) 454 475 … … 474 495 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 475 496 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 476 & fqcalving,f fonte, run_off_lic_0)497 & fqcalving,fqfonte,ffonte, run_off_lic_0) 477 498 478 499 … … 491 512 ! 492 513 #ifdef CPP_VEGET 493 call interfsol(itime, klon, dtime, date0, nisurf, knon, & 514 p1lay_tmp(1:knon)=p1lay(1:knon)/100. 515 ps_tmp(1:knon)=ps(1:knon)/100. 516 517 call interfsol(itime, klon, dtime, date0, nisurf, knon, & 494 518 & knindex, rlon, rlat, cufi, cvfi, iim, jjm, pctsrf, & 495 519 & debut, lafin, ok_veget, & … … 497 521 & tq_cdrag, petAcoef, peqAcoef, petBcoef, peqBcoef, & 498 522 & precip_rain, precip_snow, sollwdown, swnet, swdown, & 499 & tsurf, p1lay /100., ps/100., radsol, &523 & tsurf, p1lay_tmp, ps_tmp, radsol, & 500 524 & evap, fluxsens, fluxlat, & 501 525 & tsol_rad, tsurf_new, alb_new, alblw, & … … 779 803 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 780 804 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 781 & fqcalving,f fonte, run_off_lic_0)805 & fqcalving,fqfonte,ffonte, run_off_lic_0) 782 806 783 807 ! calcul albedo … … 893 917 894 918 if (.not. allocated(run_off_lic)) then 895 allocate(run_off_lic(k non), stat = error)919 allocate(run_off_lic(klon), stat = error) 896 920 if (error /= 0) then 897 921 abort_message='Pb allocation run_off_lic' … … 928 952 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 929 953 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 930 & fqcalving,f fonte, run_off_lic_0)954 & fqcalving,fqfonte,ffonte, run_off_lic_0) 931 955 932 956 ! passage du run-off des glaciers calcule dans fonte_neige au coupleur … … 1010 1034 1011 1035 USE intersurf 1012 1036 USE dimphy, klon_x=>klon 1037 IMPLICIT NONE 1013 1038 ! Cette routine sert d'interface entre le modele atmospherique et le 1014 1039 ! modele de sol continental. Appel a sechiba … … 1128 1153 ! offset pour calculer les point voisins 1129 1154 integer, dimension(8,3), save :: off_ini 1130 integer, dimension(8), save :: offset 1131 ! Identifieurs des fichiers restart et histoire 1155 ! Identifieurs des fichiers restart et histoire 1132 1156 integer, save :: rest_id, hist_id 1133 1157 integer, save :: rest_id_stom, hist_id_stom … … 1145 1169 integer, dimension(:), save, allocatable :: ig, jg 1146 1170 integer :: indi, indj 1147 integer, dimension(klon) :: ktindex1171 integer, save, allocatable,dimension(:) :: ktindex 1148 1172 REAL, dimension(klon) :: bidule 1149 1173 ! Essai cdrag 1150 1174 real, dimension(klon) :: cdrag 1151 1175 integer :: jjb,jje,ijb,ije 1176 INTEGER,SAVE :: offset 1177 REAL, dimension(klon2) :: rlon_g,rlat_g 1178 INTEGER, SAVE :: orch_comm 1152 1179 #include "temps.inc" 1153 1180 #include "YOMCST.inc" … … 1157 1184 if (check) write(lunout,*)'ok_veget = ',ok_veget 1158 1185 1159 ktindex(:) = knindex(:) + iim - 1 1160 1186 1187 1161 1188 ! initialisation 1189 1162 1190 if (debut) then 1163 1191 ALLOCATE(ktindex(klon)) 1164 1192 IF ( .NOT. allocated(albedo_keep)) THEN 1165 1193 ALLOCATE(albedo_keep(klon)) … … 1184 1212 ig(klon) = 1 1185 1213 jg(klon) = jjm + 1 1186 ! 1187 ! Initialisation des offset 1188 ! 1189 ! offset bord ouest 1190 off_ini(1,1) = - iim ; off_ini(2,1) = - iim + 1; off_ini(3,1) = 1 1191 off_ini(4,1) = iim + 1; off_ini(5,1) = iim ; off_ini(6,1) = 2 * iim - 1 1192 off_ini(7,1) = iim -1 ; off_ini(8,1) = - 1 1193 ! offset point normal 1194 off_ini(1,2) = - iim ; off_ini(2,2) = - iim + 1; off_ini(3,2) = 1 1195 off_ini(4,2) = iim + 1; off_ini(5,2) = iim ; off_ini(6,2) = iim - 1 1196 off_ini(7,2) = -1 ; off_ini(8,2) = - iim - 1 1197 ! offset bord est 1198 off_ini(1,3) = - iim; off_ini(2,3) = - 2 * iim + 1; off_ini(3,3) = - iim + 1 1199 off_ini(4,3) = 1 ; off_ini(5,3) = iim ; off_ini(6,3) = iim - 1 1200 off_ini(7,3) = -1 ; off_ini(8,3) = - iim - 1 1201 ! 1202 ! Initialisation des correspondances point -> indices i,j 1203 ! 1204 if (( .not. allocated(correspond))) then 1205 allocate(correspond(iim,jjm+1), stat = error) 1206 if (error /= 0) then 1207 abort_message='Pb allocation correspond' 1208 call abort_gcm(modname,abort_message,1) 1209 endif 1210 endif 1211 ! 1212 ! Attention aux poles 1213 ! 1214 do igrid = 1, knon 1215 index = ktindex(igrid) 1216 jj = int((index - 1)/iim) + 1 1217 ij = index - (jj - 1) * iim 1218 correspond(ij,jj) = igrid 1219 enddo 1220 1221 ! Allouer et initialiser le tableau de coordonnees du sol 1222 ! 1214 1223 1215 if ((.not. allocated(lalo))) then 1224 1216 allocate(lalo(knon,2), stat = error) … … 1248 1240 lalo(igrid,2) = rlon(index) 1249 1241 lalo(igrid,1) = rlat(index) 1250 ij = index - int((index-1)/iim)*iim - 1 1251 jj = 2 + int((index-1)/iim) 1252 if (mod(index,iim) == 1 ) then 1253 jj = 1 + int((index-1)/iim) 1254 ij = iim 1255 endif 1256 ! lon_scat(ij,jj) = rlon(index) 1257 ! lat_scat(ij,jj) = rlat(index) 1242 1258 1243 enddo 1259 index = 1 1260 do jj = 2, jjm 1261 do ij = 1, iim 1262 index = index + 1 1263 lon_scat(ij,jj) = rlon(index) 1264 lat_scat(ij,jj) = rlat(index) 1244 1245 1246 1247 Call GatherField(rlon,rlon_g,1) 1248 Call GatherField(rlat,rlat_g,1) 1249 1250 IF (phy_rank==0) THEN 1251 index = 1 1252 do jj = 2, jjm 1253 do ij = 1, iim 1254 index = index + 1 1255 lon_scat(ij,jj) = rlon_g(index) 1256 lat_scat(ij,jj) = rlat_g(index) 1257 enddo 1265 1258 enddo 1266 enddo 1267 lon_scat(:,1) = lon_scat(:,2) 1268 lat_scat(:,1) = rlat(1) 1269 lon_scat(:,jjm+1) = lon_scat(:,2) 1270 lat_scat(:,jjm+1) = rlat(klon) 1271 ! Pb de correspondances de grilles! 1272 ! do igrid = 1, knon 1273 ! index = ktindex(igrid) 1274 ! ij = ig(index) 1275 ! jj = jg(index) 1276 ! lon_scat(ij,jj) = rlon(index) 1277 ! lat_scat(ij,jj) = rlat(index) 1278 ! enddo 1259 lon_scat(:,1) = lon_scat(:,2) 1260 lat_scat(:,1) = rlat_g(1) 1261 lon_scat(:,jjm+1) = lon_scat(:,2) 1262 lat_scat(:,jjm+1) = rlat_g(klon2) 1263 ENDIF 1264 1279 1265 1280 1266 ! … … 1302 1288 enddo 1303 1289 1304 do igrid = 1, knon 1305 iglob = ktindex(igrid) 1306 if (mod(iglob, iim) == 1) then 1307 offset = off_ini(:,1) 1308 else if(mod(iglob, iim) == 0) then 1309 offset = off_ini(:,3) 1310 else 1311 offset = off_ini(:,2) 1312 endif 1313 do i = 1, 8 1314 index = iglob + offset(i) 1315 ireal = (min(max(1, index - iim + 1), klon)) 1316 if (pctsrf(ireal, is_ter) > EPSFRA) then 1317 jj = int((index - 1)/iim) + 1 1318 ij = index - (jj - 1) * iim 1319 neighbours(igrid, i) = correspond(ij, jj) 1320 endif 1321 enddo 1322 enddo 1290 1291 CALL Init_neighbours(iim,jjm,knon,neighbours,knindex,pctsrf(:,is_ter)) 1323 1292 1324 1293 ! … … 1336 1305 resolution(igrid,2) = cvfi(ij) 1337 1306 enddo 1338 !IM tester la resolution que recoit Orchidee1339 IF((maxval(resolution(:,2)) == 0.).OR. &1340 & (maxval(resolution(:,1)) == 0.)) THEN1341 abort_message='STOP interfsol : resolution recue par Orchidee = 0.'1342 call abort_gcm(modname,abort_message,1)1343 ENDIF1344 1307 1345 1308 endif ! (fin debut) … … 1374 1337 ! Init Orchidee 1375 1338 ! 1339 ! if (pole_nord) then 1340 ! offset=0 1341 ! ktindex(:)=ktindex(:)+iim-1 1342 ! else 1343 ! offset = klon_begin-1+iim-1 1344 ! ktindex(:)=ktindex(:)+MOD(offset,iim) 1345 ! offset=offset-MOD(offset,iim) 1346 ! endif 1347 1348 PRINT *,'ORCHIDEE ------> KNON : ',knon 1349 1350 1376 1351 if (debut) then 1377 call intersurf_main (itime+itau_phy-1, iim, jjm+1, knon, ktindex, dtime, & 1378 & lrestart_read, lrestart_write, lalo, & 1379 & contfrac, neighbours, resolution, date0, & 1380 & zlev, u1_lay, v1_lay, spechum, temp_air, epot_air, ccanopy, & 1381 & cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, & 1382 & precip_rain, precip_snow, lwdown, swnet, swdown, ps, & 1383 & evap, fluxsens, fluxlat, coastalflow, riverflow, & 1384 & tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0_new, & 1385 & lon_scat, lat_scat) 1386 1352 CALL Get_orchidee_communicator(knon,orch_comm) 1353 IF (knon /=0) THEN 1354 CALL Init_orchidee_index(iim,knon,orch_comm,knindex,offset,ktindex) 1355 1356 call intersurf_main (itime+itau_phy-1, iim, jjm+1,offset, knon, ktindex, & 1357 & orch_comm,dtime, lrestart_read, lrestart_write, lalo, & 1358 & contfrac, neighbours, resolution, date0, & 1359 & zlev, u1_lay, v1_lay, spechum, temp_air, epot_air, ccanopy, & 1360 & cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, & 1361 & precip_rain, precip_snow, lwdown, swnet, swdown, ps, & 1362 & evap, fluxsens, fluxlat, coastalflow, riverflow, & 1363 & tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0_new, & 1364 & lon_scat, lat_scat) 1365 1366 ENDIF 1387 1367 !IM cf. JP +++ 1388 1368 albedo_keep(1:knon) = (albedo_out(1:knon,1)+albedo_out(1:knon,2))/2. … … 1392 1372 1393 1373 !IM cf. JP +++ 1394 ! IMswdown_vrai(1:knon) = swnet(1:knon)/(1. - albedo_keep(1:knon))1395 !IM modification faite dans clmain 1396 swdown_vrai(1:knon) = swdown(1:knon) 1374 ! swdown_vrai(1:knon) = swnet(1:knon)/(1. - albedo_keep(1:knon)) 1375 swdown_vrai(1:knon) = swdown(1:knon) 1376 1397 1377 !IM cf. JP --- 1398 1399 call intersurf_main (itime+itau_phy, iim, jjm+1, knon, ktindex, dtime, & 1400 & lrestart_read, lrestart_write, lalo, & 1401 & contfrac, neighbours, resolution, date0, & 1402 & zlev, u1_lay, v1_lay, spechum, temp_air, epot_air, ccanopy, & 1403 & cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, & 1404 & precip_rain, precip_snow, lwdown, swnet, swdown_vrai, ps, & 1405 & evap, fluxsens, fluxlat, coastalflow, riverflow, & 1406 & tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0_new, & 1407 & lon_scat, lat_scat) 1408 1378 IF (knon /=0) THEN 1379 1380 call intersurf_main (itime+itau_phy, iim, jjm+1,offset, knon, ktindex, & 1381 & orch_comm,dtime, lrestart_read, lrestart_write, lalo, & 1382 & contfrac, neighbours, resolution, date0, & 1383 & zlev, u1_lay, v1_lay, spechum, temp_air, epot_air, ccanopy, & 1384 & cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, & 1385 & precip_rain, precip_snow, lwdown, swnet, swdown_vrai, ps, & 1386 & evap, fluxsens, fluxlat, coastalflow, riverflow, & 1387 & tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0_new, & 1388 & lon_scat, lat_scat) 1389 1390 ENDIF 1409 1391 !IM cf. JP +++ 1410 1392 albedo_keep(1:knon) = (albedo_out(1:knon,1)+albedo_out(1:knon,2))/2. … … 1413 1395 bidule=0. 1414 1396 bidule(1:knon)=riverflow(1:knon) 1415 call gath2cpl(bidule, tmp_rriv, klon, knon,iim,jj m,knindex)1397 call gath2cpl(bidule, tmp_rriv, klon, knon,iim,jjphy_nb,knindex) 1416 1398 bidule=0. 1417 1399 bidule(1:knon)=coastalflow(1:knon) 1418 call gath2cpl(bidule, tmp_rcoa, klon, knon,iim,jj m,knindex)1400 call gath2cpl(bidule, tmp_rcoa, klon, knon,iim,jjphy_nb,knindex) 1419 1401 alb_new(1:knon) = albedo_out(1:knon,1) 1420 1402 alblw(1:knon) = albedo_out(1:knon,2) … … 1430 1412 1431 1413 END SUBROUTINE interfsol 1414 1415 SUBROUTINE Init_orchidee_index(iim,knon,orch_comm,knindex,offset,ktindex) 1416 USE dimphy 1417 IMPLICIT NONE 1418 INTEGER,INTENT(IN) :: iim 1419 INTEGER,INTENT(IN) :: knon 1420 INTEGER,INTENT(IN) :: orch_comm 1421 INTEGER,INTENT(IN) :: knindex(knon) 1422 INTEGER,INTENT(OUT) :: offset 1423 INTEGER,INTENT(OUT) :: ktindex(knon) 1424 1425 #ifdef CPP_PARA 1426 INCLUDE 'mpif.h' 1427 INTEGER :: status(MPI_STATUS_SIZE) 1428 #endif 1429 INTEGER :: MyLastPoint 1430 INTEGER :: LastPoint 1431 INTEGER :: mpi_rank 1432 INTEGER :: mpi_size 1433 INTEGER :: ierr 1434 1435 MyLastPoint=klon_begin-1+knindex(knon)+iim-1 1436 1437 IF (.NOT. monocpu) THEN 1438 #ifdef CPP_PARA 1439 call MPI_COMM_SIZE(orch_comm,mpi_size,ierr) 1440 call MPI_COMM_RANK(orch_comm,mpi_rank,ierr) 1441 #endif 1442 ELSE 1443 mpi_rank=0 1444 mpi_size=1 1445 ENDIF 1446 1447 IF (.NOT. monocpu) THEN 1448 IF (mpi_rank /= 0) then 1449 #ifdef CPP_PARA 1450 CALL MPI_RECV(LastPoint,1,MPI_INTEGER,mpi_rank-1,1234,orch_comm,status,ierr) 1451 #endif 1452 ENDIF 1453 1454 IF (mpi_rank /= mpi_size-1) THEN 1455 #ifdef CPP_PARA 1456 CALL MPI_SEND(MyLastPoint,1,MPI_INTEGER,mpi_rank+1,1234,orch_comm,ierr) 1457 #endif 1458 ENDIF 1459 ENDIF 1460 1461 IF (mpi_rank==0) THEN 1462 offset=0 1463 ELSE 1464 offset=LastPoint-MOD(LastPoint,iim) 1465 ENDIF 1466 1467 ktindex(:)=knindex(:)+(klon_begin+iim-1)-offset-1 1468 1469 1470 END SUBROUTINE Init_orchidee_index 1471 1472 1473 SUBROUTINE Get_orchidee_communicator(knon,orch_comm) 1474 USE dimphy, only : phy_rank 1475 #ifdef CPP_PARA 1476 USE parallel, only : COMM_LMDZ 1477 #endif 1478 IMPLICIT NONE 1479 #ifdef CPP_PARA 1480 include 'mpif.h' 1481 #endif 1482 INTEGER,INTENT(IN) :: knon 1483 INTEGER,INTENT(OUT) :: orch_comm 1484 1485 INTEGER :: color 1486 INTEGER :: ierr 1487 1488 IF (knon==0) THEN 1489 color = 0 1490 ELSE 1491 color = 1 1492 ENDIF 1493 1494 #ifdef CPP_PARA 1495 CALL MPI_COMM_SPLIT(COMM_LMDZ,color,phy_rank,orch_comm,ierr) 1496 #endif 1497 1498 END SUBROUTINE Get_orchidee_communicator 1499 1500 1501 SUBROUTINE Init_neighbours(iim,jjm,knon,neighbours,ktindex,pctsrf) 1502 #ifdef CPP_PARA 1503 USE parallel,only : COMM_LMDZ 1504 #endif 1505 USE dimphy 1506 IMPLICIT NONE 1507 #ifdef CPP_PARA 1508 include 'mpif.h' 1509 #endif 1510 INTEGER :: iim,jjm 1511 INTEGER :: knon 1512 INTEGER :: neighbours(knon,8) 1513 INTEGER :: ktindex(knon) 1514 REAL :: pctsrf(klon) 1515 1516 INTEGER :: knon_nb(0:phy_size-1) 1517 INTEGER,DIMENSION(0:phy_size-1) :: displs,sendcount 1518 INTEGER,ALLOCATABLE :: ktindex_g(:) 1519 REAL*8 :: pctsrf_g(klon2) 1520 INTEGER,ALLOCATABLE ::neighbours_g(:,:) 1521 INTEGER :: knon_g 1522 REAL*8 :: correspond(iim,jjm+1) 1523 INTEGER :: i,igrid,jj,ij,iglob,ierr,ireal,index 1524 integer, dimension(8,3) :: off_ini 1525 integer, dimension(8) :: offset 1526 INTEGER :: ktindex_p(knon) 1527 1528 IF (monocpu) THEN 1529 knon_nb(:)=knon 1530 ELSE 1531 1532 #ifdef CPP_PARA 1533 CALL MPI_GATHER(knon,1,MPI_INTEGER,knon_nb,1,MPI_INTEGER,0,COMM_LMDZ,ierr) 1534 #endif 1535 1536 ENDIF 1537 1538 IF (phy_rank==0) THEN 1539 knon_g=sum(knon_nb(:)) 1540 ALLOCATE(ktindex_g(knon_g)) 1541 ALLOCATE(neighbours_g(knon_g,8)) 1542 neighbours_g(:,:)=-1 1543 displs(0)=0 1544 DO i=1,phy_size-1 1545 displs(i)=displs(i-1)+knon_nb(i-1) 1546 ENDDO 1547 ENDIF 1548 1549 ktindex_p(:)=ktindex(:)+klon_begin-1+iim-1 1550 1551 IF (monocpu) THEN 1552 ktindex_g(:)=ktindex_p(:) 1553 ELSE 1554 1555 #ifdef CPP_PARA 1556 CALL MPI_GATHERV(ktindex_p,knon,MPI_INTEGER,ktindex_g,knon_nb,displs,MPI_INTEGER,0,COMM_LMDZ,ierr) 1557 #endif 1558 1559 ENDIF 1560 1561 CALL GatherField(pctsrf,pctsrf_g,1) 1562 1563 IF (phy_rank==0) THEN 1564 ! Initialisation des offset 1565 ! 1566 ! offset bord ouest 1567 off_ini(1,1) = - iim ; off_ini(2,1) = - iim + 1; off_ini(3,1) = 1 1568 off_ini(4,1) = iim + 1; off_ini(5,1) = iim ; off_ini(6,1) = 2 * iim - 1 1569 off_ini(7,1) = iim -1 ; off_ini(8,1) = - 1 1570 ! offset point normal 1571 off_ini(1,2) = - iim ; off_ini(2,2) = - iim + 1; off_ini(3,2) = 1 1572 off_ini(4,2) = iim + 1; off_ini(5,2) = iim ; off_ini(6,2) = iim - 1 1573 off_ini(7,2) = -1 ; off_ini(8,2) = - iim - 1 1574 ! offset bord est 1575 off_ini(1,3) = - iim; off_ini(2,3) = - 2 * iim + 1; off_ini(3,3) = - iim + 1 1576 off_ini(4,3) = 1 ; off_ini(5,3) = iim ; off_ini(6,3) = iim - 1 1577 off_ini(7,3) = -1 ; off_ini(8,3) = - iim - 1 1578 ! 1579 ! 1580 ! Attention aux poles 1581 ! 1582 do igrid = 1, knon_g 1583 index = ktindex_g(igrid) 1584 jj = int((index - 1)/iim) + 1 1585 ij = index - (jj - 1) * iim 1586 correspond(ij,jj) = igrid 1587 enddo 1588 1589 do igrid = 1, knon_g 1590 iglob = ktindex_g(igrid) 1591 if (mod(iglob, iim) == 1) then 1592 offset = off_ini(:,1) 1593 else if(mod(iglob, iim) == 0) then 1594 offset = off_ini(:,3) 1595 else 1596 offset = off_ini(:,2) 1597 endif 1598 do i = 1, 8 1599 index = iglob + offset(i) 1600 ireal = (min(max(1, index - iim + 1), klon2)) 1601 if (pctsrf_g(ireal) > EPSFRA) then 1602 jj = int((index - 1)/iim) + 1 1603 ij = index - (jj - 1) * iim 1604 neighbours_g(igrid, i) = correspond(ij, jj) 1605 endif 1606 enddo 1607 enddo 1608 1609 ! DO i=0,phy_size-1 1610 ! displs(i)=displs(i)*8 1611 ! sendcount(i)=knon_nb(i)*8 1612 ! ENDDO 1613 1614 ENDIF 1615 1616 DO i=1,8 1617 IF (monocpu) THEN 1618 neighbours(:,i)=neighbours_g(:,i) 1619 ELSE 1620 #ifdef CPP_PARA 1621 CALL MPI_SCATTERV(neighbours_g(:,i),knon_nb,displs,MPI_INTEGER,neighbours(:,i),knon,MPI_INTEGER,0,COMM_LMDZ,ierr) 1622 #endif 1623 ENDIF 1624 ENDDO 1625 1626 END SUBROUTINE Init_neighbours 1432 1627 #endif 1433 1628 ! … … 1446 1641 & pctsrf_new) 1447 1642 1643 USE ioipsl 1644 USE dimphy, only : jjphy_nb, iiphy_begin,iiphy_end,phy_rank,phy_size, monocpu 1645 USE iophy 1646 #ifdef CPP_PARA 1647 USE parallel, only: pole_nord,pole_sud,COMM_LMDZ 1648 #endif 1649 #ifdef CPP_PSMILE 1650 USE oasis 1651 #endif 1652 USE write_field_phy 1653 implicit none 1654 #include "indicesol.inc" 1655 #include "YOMCST.inc" 1448 1656 ! Cette routine sert d'interface entre le modele atmospherique et un 1449 1657 ! coupleur avec un modele d'ocean 'complet' derriere … … 1500 1708 ! alb_ice albedo de la glace 1501 1709 ! 1502 #ifdef CPP_PSMILE 1503 USE oasis 1504 integer :: il_time_secs !time in seconds 1505 #endif 1710 1506 1711 1507 1712 ! Parametres d'entree … … 1561 1766 REAL, ALLOCATABLE, DIMENSION(:,:,:),SAVE :: tmp_tauy 1562 1767 ! variables a passer au coupleur 1563 real, dimension(iim, jjm+1) :: wri_sol_ice, wri_sol_sea, wri_nsol_ice 1564 real, dimension(iim, jjm+1) :: wri_nsol_sea, wri_fder_ice, wri_evap_ice 1565 REAL, DIMENSION(iim, jjm+1) :: wri_evap_sea, wri_rcoa, wri_rriv 1566 REAL, DIMENSION(iim, jjm+1) :: wri_rain, wri_snow, wri_taux, wri_tauy 1567 ! -- LOOP 1568 REAL, DIMENSION(iim, jjm+1) :: wri_windsp 1569 ! -- LOOP 1570 REAL, DIMENSION(iim, jjm+1) :: wri_calv 1571 REAL, DIMENSION(iim, jjm+1) :: wri_tauxx, wri_tauyy, wri_tauzz 1572 REAL, DIMENSION(iim, jjm+1) :: tmp_lon, tmp_lat 1768 !ym real, dimension(iim, jjm+1) :: wri_sol_ice, wri_sol_sea, wri_nsol_ice 1769 !ym real, dimension(iim, jjm+1) :: wri_nsol_sea, wri_fder_ice, wri_evap_ice 1770 !ym REAL, DIMENSION(iim, jjm+1) :: wri_evap_sea, wri_rcoa, wri_rriv 1771 !ym REAL, DIMENSION(iim, jjm+1) :: wri_rain, wri_snow, wri_taux, wri_tauy 1772 !ym REAL, DIMENSION(iim, jjm+1) :: wri_calv 1773 !ym REAL, DIMENSION(iim, jjm+1) :: wri_tauxx, wri_tauyy, wri_tauzz 1774 !ym REAL, DIMENSION(iim, jjm+1) :: tmp_lon, tmp_lat 1775 1776 real, dimension(iim, jjphy_nb) :: wri_sol_ice, wri_sol_sea, wri_nsol_ice 1777 real, dimension(iim, jjphy_nb) :: wri_nsol_sea, wri_fder_ice, wri_evap_ice 1778 REAL, DIMENSION(iim, jjphy_nb) :: wri_evap_sea, wri_rcoa, wri_rriv 1779 REAL, DIMENSION(iim, jjphy_nb) :: wri_rain, wri_snow, wri_taux, wri_tauy 1780 REAL, DIMENSION(iim, jjphy_nb) :: wri_calv 1781 REAL, DIMENSION(iim, jjphy_nb) :: wri_tauxx, wri_tauyy, wri_tauzz 1782 REAL, DIMENSION(iim, jjphy_nb) :: tmp_lon, tmp_lat 1783 REAL, DIMENSION(iim, jjphy_nb) :: wri_windsp 1784 1573 1785 ! variables relues par le coupleur 1574 1786 ! read_sic = fraction de glace … … 1581 1793 ! l'avoir lu 1582 1794 real, allocatable,dimension(:,:),save :: pctsrf_sav 1583 real, dimension(iim, jj m+1, 2) :: tamp_srf1795 real, dimension(iim, jjphy_nb, 3) :: tamp_srf 1584 1796 integer, allocatable, dimension(:), save :: tamp_ind 1585 1797 real, allocatable, dimension(:,:),save :: tamp_zmasq 1586 real, dimension(iim, jj m+1) :: deno1798 real, dimension(iim, jjphy_nb) :: deno 1587 1799 integer :: idtime 1588 1800 integer, allocatable,dimension(:),save :: unity … … 1603 1815 integer :: nb_interf_cpl 1604 1816 ! -- LOOP 1817 1818 real :: Up,Down 1819 integer :: ierr 1820 integer :: il_time_secs 1821 real :: tmp_field(klon) 1822 1605 1823 #include "param_cou.h" 1606 1824 #include "inc_cpl.h" 1607 1825 #include "temps.inc" 1608 1826 #include "iniprint.h" 1827 1828 #ifdef CPP_PARA 1829 include 'mpif.h' 1830 integer :: status(MPI_STATUS_SIZE) 1831 #endif 1832 1609 1833 ! 1610 1834 ! Initialisation … … 1643 1867 ! -- LOOP 1644 1868 allocate(cpl_tauy(klon,2), stat = error); sum_error = sum_error + error 1645 ALLOCATE(cpl_rriv(iim,jjm+1), stat=error); sum_error = sum_error + error 1646 ALLOCATE(cpl_rcoa(iim,jjm+1), stat=error); sum_error = sum_error + error 1647 ALLOCATE(cpl_rlic(iim,jjm+1), stat=error); sum_error = sum_error + error 1869 !ym ALLOCATE(cpl_rriv(iim,jjm+1), stat=error); sum_error = sum_error + error 1870 !ym ALLOCATE(cpl_rcoa(iim,jjm+1), stat=error); sum_error = sum_error + error 1871 !ym ALLOCATE(cpl_rlic(iim,jjm+1), stat=error); sum_error = sum_error + error 1872 ALLOCATE(cpl_rriv(iim,jjphy_nb), stat=error); sum_error = sum_error + error 1873 ALLOCATE(cpl_rcoa(iim,jjphy_nb), stat=error); sum_error = sum_error + error 1874 ALLOCATE(cpl_rlic(iim,jjphy_nb), stat=error); sum_error = sum_error + error 1875 1876 1648 1877 !! 1649 allocate(read_sst(iim, jjm+1), stat = error); sum_error = sum_error + error 1650 allocate(read_sic(iim, jjm+1), stat = error); sum_error = sum_error + error 1651 allocate(read_sit(iim, jjm+1), stat = error); sum_error = sum_error + error 1652 allocate(read_alb_sic(iim, jjm+1), stat = error); sum_error = sum_error + error 1653 1878 !ym allocate(read_sst(iim, jjm+1), stat = error); sum_error = sum_error + error 1879 !ym allocate(read_sic(iim, jjm+1), stat = error); sum_error = sum_error + error 1880 !ym allocate(read_sit(iim, jjm+1), stat = error); sum_error = sum_error + error 1881 !ym allocate(read_alb_sic(iim, jjm+1), stat = error); sum_error = sum_error + error 1882 allocate(read_sst(iim, jjphy_nb), stat = error); sum_error = sum_error + error 1883 allocate(read_sic(iim, jjphy_nb), stat = error); sum_error = sum_error + error 1884 allocate(read_sit(iim, jjphy_nb), stat = error); sum_error = sum_error + error 1885 allocate(read_alb_sic(iim, jjphy_nb), stat = error); sum_error = sum_error + error 1886 read_sst=0. 1887 read_sic=0. 1888 read_sit=0. 1889 read_alb_sic=0. 1654 1890 if (sum_error /= 0) then 1655 1891 abort_message='Pb allocation variables couplees' … … 1665 1901 sum_error = 0 1666 1902 allocate(tamp_ind(klon), stat = error); sum_error = sum_error + error 1667 allocate(tamp_zmasq(iim, jjm+1), stat = error); sum_error = sum_error + error 1903 !ym allocate(tamp_zmasq(iim, jjm+1), stat = error); sum_error = sum_error + error 1904 allocate(tamp_zmasq(iim, jjphy_nb), stat = error); sum_error = sum_error + error 1905 tamp_zmasq=1. 1906 1668 1907 do ig = 1, klon 1669 1908 tamp_ind(ig) = ig 1670 1909 enddo 1671 call gath2cpl(zmasq, tamp_zmasq, klon, klon, iim, jj m, tamp_ind)1910 call gath2cpl(zmasq, tamp_zmasq, klon, klon, iim, jjphy_nb, tamp_ind) 1672 1911 ! 1673 1912 ! initialisation couplage … … 1676 1915 #ifdef CPP_COUPLE 1677 1916 #ifdef CPP_PSMILE 1678 1917 CALL inicma(iim, (jjm+1)) 1679 1918 #else 1919 if (.not. monocpu) then 1920 abort_message='coupleur parallele uniquement avec PSMILE' 1921 call abort_gcm(modname,abort_message,1) 1922 endif 1680 1923 call inicma(npas , nexca, idtime,(jjm+1)*iim) 1681 1924 #endif … … 1684 1927 ! initialisation sorties netcdf 1685 1928 ! 1929 !ym IO de check deconnecte pour le moment en // 1930 IF (monocpu) THEN 1686 1931 idayref = day_ini 1687 1932 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) … … 1722 1967 CALL histsync(nidcs) 1723 1968 1969 ENDIF ! monocpu 1970 1724 1971 ! pour simuler la fonte des glaciers antarctiques 1725 1972 ! 1726 surf_maille = (4. * rpi * ra**2) / (iim * (jjm +1)) 1727 ALLOCATE(coeff_iceberg(iim,jjm+1), stat=error) 1728 if (error /= 0) then 1729 abort_message='Pb allocation variable coeff_iceberg' 1730 call abort_gcm(modname,abort_message,1) 1731 endif 1732 open (12,file='flux_iceberg',form='formatted',status='old') 1733 read (12,*) coeff_iceberg 1734 close (12) 1735 num_antarctic = max(1, count(coeff_iceberg > 0)) 1973 !ym => pour le moment, c'est en commentaire, donc je squizze 1974 1975 !ym surf_maille = (4. * rpi * ra**2) / (iim * (jjm +1)) 1976 !ym ALLOCATE(coeff_iceberg(iim,jjm+1), stat=error) 1977 !ym if (error /= 0) then 1978 !ym abort_message='Pb allocation variable coeff_iceberg' 1979 !ym call abort_gcm(modname,abort_message,1) 1980 !ym endif 1981 !ym open (12,file='flux_iceberg',form='formatted',status='old') 1982 !ym read (12,*) coeff_iceberg 1983 !ym close (12) 1984 !ym num_antarctic = max(1, count(coeff_iceberg > 0)) 1736 1985 1737 1986 first_appel = .false. … … 1800 2049 #ifdef CPP_PSMILE 1801 2050 il_time_secs=(itime-1)*dtime 1802 CALL fromcpl(il_time_secs, iim, (jjm+1), &2051 CALL fromcpl(il_time_secs, iim, jjphy_nb, & 1803 2052 & read_sst, read_sic, read_sit, read_alb_sic) 1804 2053 #else 2054 if (.not. monocpu) then 2055 abort_message='coupleur parallele uniquement avec PSMILE' 2056 call abort_gcm(modname,abort_message,1) 2057 endif 2058 1805 2059 call fromcpl(itime-1,(jjm+1)*iim, & 1806 2060 & read_sst, read_sic, read_sit, read_alb_sic) … … 1810 2064 ! sorties NETCDF des champs recus 1811 2065 ! 1812 ndexcs(:)=0 1813 itau_w = itau_phy + itime 1814 CALL histwrite(nidcs,cl_read(1),itau_w,read_sst,iim*(jjm+1),ndexcs) 1815 CALL histwrite(nidcs,cl_read(2),itau_w,read_sic,iim*(jjm+1),ndexcs) 1816 CALL histwrite(nidcs,cl_read(3),itau_w,read_alb_sic,iim*(jjm+1),ndexcs) 1817 CALL histwrite(nidcs,cl_read(4),itau_w,read_sit,iim*(jjm+1),ndexcs) 1818 CALL histsync(nidcs) 2066 if (monocpu) THEN 2067 ndexcs(:)=0 2068 itau_w = itau_phy + itime 2069 CALL histwrite(nidcs,cl_read(1),itau_w,read_sst,iim*(jjm+1),ndexcs) 2070 CALL histwrite(nidcs,cl_read(2),itau_w,read_sic,iim*(jjm+1),ndexcs) 2071 CALL histwrite(nidcs,cl_read(3),itau_w,read_alb_sic,iim*(jjm+1),ndexcs) 2072 CALL histwrite(nidcs,cl_read(4),itau_w,read_sit,iim*(jjm+1),ndexcs) 2073 CALL histsync(nidcs) 2074 endif 1819 2075 ! pas utile IF (npas-itime.LT.nexca )CALL histclo(nidcs) 1820 2076 1821 do j = 1, jjm + 1 1822 do ig = 1, iim 2077 !ym do j = 1, jjm + 1 2078 do j = 1, jjphy_nb 2079 do ig = 1, iim 1823 2080 if (abs(1. - read_sic(ig,j)) < 0.00001) then 1824 2081 read_sst(ig,j) = RTT - 1.8 … … 1839 2096 ! transformer read_sic en pctsrf_sav 1840 2097 ! 1841 call cpl2gath(read_sic, tamp_sic , klon, klon,iim,jj m, unity)2098 call cpl2gath(read_sic, tamp_sic , klon, klon,iim,jjphy_nb, unity) 1842 2099 do ig = 1, klon 1843 2100 IF (pctsrf(ig,is_oce) > epsfra .OR. & … … 1882 2139 if (nisurf == is_oce .and. (.not. cumul) ) then 1883 2140 sum_error = 0 1884 allocate(tmp_sols(iim,jj m+1,2), stat=error); sum_error = sum_error + error1885 allocate(tmp_nsol(iim,jj m+1,2), stat=error); sum_error = sum_error + error1886 allocate(tmp_rain(iim,jj m+1,2), stat=error); sum_error = sum_error + error1887 allocate(tmp_snow(iim,jj m+1,2), stat=error); sum_error = sum_error + error1888 allocate(tmp_evap(iim,jj m+1,2), stat=error); sum_error = sum_error + error1889 allocate(tmp_tsol(iim,jj m+1,2), stat=error); sum_error = sum_error + error1890 allocate(tmp_fder(iim,jj m+1,2), stat=error); sum_error = sum_error + error1891 allocate(tmp_albe(iim,jj m+1,2), stat=error); sum_error = sum_error + error1892 allocate(tmp_taux(iim,jj m+1,2), stat=error); sum_error = sum_error + error1893 allocate(tmp_tauy(iim,jj m+1,2), stat=error); sum_error = sum_error + error1894 ! -- LOOP 1895 allocate(tmp_windsp(iim,jj m+1,2), stat=error); sum_error = sum_error + error2141 allocate(tmp_sols(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error 2142 allocate(tmp_nsol(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error 2143 allocate(tmp_rain(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error 2144 allocate(tmp_snow(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error 2145 allocate(tmp_evap(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error 2146 allocate(tmp_tsol(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error 2147 allocate(tmp_fder(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error 2148 allocate(tmp_albe(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error 2149 allocate(tmp_taux(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error 2150 allocate(tmp_tauy(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error 2151 ! -- LOOP 2152 allocate(tmp_windsp(iim,jjphy_nb,2), stat=error); sum_error = sum_error + error 1896 2153 ! -- LOOP 1897 2154 !!$ allocate(tmp_rriv(iim,jjm+1,2), stat=error); sum_error = sum_error + error … … 1908 2165 cpl_index = 1 1909 2166 if (nisurf == is_sic) cpl_index = 2 1910 call gath2cpl(cpl_sols(1,cpl_index), tmp_sols(1,1,cpl_index), klon, knon,iim,jj m, knindex)1911 call gath2cpl(cpl_nsol(1,cpl_index), tmp_nsol(1,1,cpl_index), klon, knon,iim,jj m, knindex)1912 call gath2cpl(cpl_rain(1,cpl_index), tmp_rain(1,1,cpl_index), klon, knon,iim,jj m, knindex)1913 call gath2cpl(cpl_snow(1,cpl_index), tmp_snow(1,1,cpl_index), klon, knon,iim,jj m, knindex)1914 call gath2cpl(cpl_evap(1,cpl_index), tmp_evap(1,1,cpl_index), klon, knon,iim,jj m, knindex)1915 call gath2cpl(cpl_tsol(1,cpl_index), tmp_tsol(1,1,cpl_index), klon, knon,iim,jj m, knindex)1916 call gath2cpl(cpl_fder(1,cpl_index), tmp_fder(1,1,cpl_index), klon, knon,iim,jj m, knindex)1917 call gath2cpl(cpl_albe(1,cpl_index), tmp_albe(1,1,cpl_index), klon, knon,iim,jj m, knindex)1918 call gath2cpl(cpl_taux(1,cpl_index), tmp_taux(1,1,cpl_index), klon, knon,iim,jj m, knindex)1919 ! -- LOOP 1920 call gath2cpl(cpl_windsp(1,cpl_index), tmp_windsp(1,1,cpl_index), klon, knon,iim,jjm, knindex) 1921 ! -- LOOP 1922 call gath2cpl(cpl_tauy(1,cpl_index), tmp_tauy(1,1,cpl_index), klon, knon,iim,jjm, knindex) 2167 call gath2cpl(cpl_sols(1,cpl_index), tmp_sols(1,1,cpl_index), klon, knon,iim,jjphy_nb, knindex) 2168 call gath2cpl(cpl_nsol(1,cpl_index), tmp_nsol(1,1,cpl_index), klon, knon,iim,jjphy_nb, knindex) 2169 call gath2cpl(cpl_rain(1,cpl_index), tmp_rain(1,1,cpl_index), klon, knon,iim,jjphy_nb, knindex) 2170 call gath2cpl(cpl_snow(1,cpl_index), tmp_snow(1,1,cpl_index), klon, knon,iim,jjphy_nb, knindex) 2171 call gath2cpl(cpl_evap(1,cpl_index), tmp_evap(1,1,cpl_index), klon, knon,iim,jjphy_nb, knindex) 2172 call gath2cpl(cpl_tsol(1,cpl_index), tmp_tsol(1,1,cpl_index), klon, knon,iim,jjphy_nb, knindex) 2173 call gath2cpl(cpl_fder(1,cpl_index), tmp_fder(1,1,cpl_index), klon, knon,iim,jjphy_nb, knindex) 2174 call gath2cpl(cpl_albe(1,cpl_index), tmp_albe(1,1,cpl_index), klon, knon,iim,jjphy_nb, knindex) 2175 call gath2cpl(cpl_taux(1,cpl_index), tmp_taux(1,1,cpl_index), klon, knon,iim,jjphy_nb, knindex) 2176 call gath2cpl(cpl_tauy(1,cpl_index), tmp_tauy(1,1,cpl_index), klon, knon,iim,jjphy_nb, knindex) 2177 ! -- LOOP 2178 call gath2cpl(cpl_windsp(1,cpl_index), tmp_windsp(1,1,cpl_index), klon, knon,iim,jjphy_nb, knindex) 2179 ! -- LOOP 1923 2180 1924 2181 ! … … 1931 2188 wri_windsp = 0. 1932 2189 ! -- LOOP 1933 call gath2cpl(pctsrf(1,is_oce), tamp_srf(1,1,1), klon, klon, iim, jj m, tamp_ind)1934 call gath2cpl(pctsrf(1,is_sic), tamp_srf(1,1,2), klon, klon, iim, jj m, tamp_ind)2190 call gath2cpl(pctsrf(1,is_oce), tamp_srf(1,1,1), klon, klon, iim, jjphy_nb, tamp_ind) 2191 call gath2cpl(pctsrf(1,is_sic), tamp_srf(1,1,2), klon, klon, iim, jjphy_nb, tamp_ind) 1935 2192 1936 2193 wri_sol_ice = tmp_sols(:,:,2) … … 1948 2205 wri_rriv = cpl_rriv(:,:) 1949 2206 wri_rcoa = cpl_rcoa(:,:) 1950 DO j = 1, jjm + 1 1951 wri_calv(:,j) = sum(cpl_rlic(:,j)) / iim 1952 enddo 1953 2207 2208 !ym !! ATTENTION ICI 2209 2210 !ym DO j = 1, jjm + 1 2211 !ym wri_calv(:,j) = sum(cpl_rlic(:,j)) / iim 2212 !ym enddo 2213 2214 !Essai OM+JLD : ca marche !!!! (17 mars 2006) 2215 tamp_srf(:,:,3)=0. 2216 CALL gath2cpl( pctsrf(1,is_lic), tamp_srf(1,1,3), klon, klon, iim, jjphy_nb, tamp_ind) 2217 2218 !YM pour retrouver resultat avant tamp_srf(:,3)=1. 2219 2220 DO j = 1, jjphy_nb 2221 wri_calv(:,j) = DOT_PRODUCT (cpl_rlic(1:iim,j), tamp_srf(1:iim,j,3)) / REAL(iim) 2222 ENDDO 2223 2224 !ym wri_calv(:,:)=0. 2225 !ym DO j = 1, jjphy_nb 2226 !ym wri_calv(:,j) = sum(cpl_rlic(:,j))/iim 2227 !ym enddo 2228 2229 IF (.NOT. monocpu) THEN 2230 if (phy_rank /= 0) then 2231 #ifdef CPP_PARA 2232 call MPI_RECV(Up,1,MPI_REAL8,phy_rank-1,1234,COMM_LMDZ,status,ierr) 2233 call MPI_SEND(wri_calv(1,1),1,MPI_REAL8,phy_rank-1,1234,COMM_LMDZ,ierr) 2234 #endif 2235 endif 2236 2237 if (phy_rank /= phy_size-1) then 2238 #ifdef CPP_PARA 2239 call MPI_SEND(wri_calv(1,jjphy_nb),1,MPI_REAL8,phy_rank+1,1234,COMM_LMDZ,ierr) 2240 call MPI_RECV(down,1,MPI_REAL8,phy_rank+1,1234,COMM_LMDZ,status,ierr) 2241 #endif 2242 endif 2243 2244 if (phy_rank /=0 .and. iiphy_begin /=1) then 2245 Up=Up+wri_calv(iim,1) 2246 wri_calv(:,1)=Up 2247 endif 2248 2249 if (phy_rank /=phy_size-1 .and. iiphy_end /= iim) then 2250 Down=Down+wri_calv(1,jjphy_nb) 2251 wri_calv(:,jjphy_nb)=Down 2252 endif 2253 ENDIF 2254 1954 2255 where (tamp_zmasq /= 1.) 1955 2256 deno = tamp_srf(:,:,1) + tamp_srf(:,:,2) … … 1970 2271 ! wri_calv = coeff_iceberg * cte_flux_iceberg / (num_antarctic * surf_maille) 1971 2272 ! 1972 ! on passe les coordonnées de la grille 1973 ! 1974 1975 CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,tmp_lon) 1976 CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,tmp_lat) 1977 1978 DO i = 1, iim 1979 tmp_lon(i,1) = rlon(i+1) 1980 tmp_lon(i,jjm + 1) = rlon(i+1) 1981 ENDDO 2273 ! on passe les coordonnees de la grille 2274 ! 2275 2276 !ym CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlon,tmp_lon) 2277 !ym CALL gr_fi_ecrit(1,klon,iim,jjm+1,rlat,tmp_lat) 2278 2279 CALL phy2dyn(rlon,tmp_lon,1) 2280 CALL phy2dyn(rlat,tmp_lat,1) 2281 2282 !ym DO i = 1, iim 2283 !ym tmp_lon(i,1) = rlon(i+1) 2284 !ym tmp_lon(i,jjm + 1) = rlon(i+1) 2285 !ym ENDDO 2286 1982 2287 ! 1983 2288 ! sortie netcdf des champs pour le changement de repere 1984 2289 ! 1985 ndexct(:)=0 1986 CALL histwrite(nidct,'tauxe',itau_w,wri_taux,iim*(jjm+1),ndexct) 1987 CALL histwrite(nidct,'tauyn',itau_w,wri_tauy,iim*(jjm+1),ndexct) 1988 CALL histwrite(nidct,'tmp_lon',itau_w,tmp_lon,iim*(jjm+1),ndexct) 1989 CALL histwrite(nidct,'tmp_lat',itau_w,tmp_lat,iim*(jjm+1),ndexct) 1990 1991 ! 1992 ! calcul 3 coordonnées du vent 1993 ! 1994 CALL atm2geo (iim , jjm + 1, wri_taux, wri_tauy, tmp_lon, tmp_lat, & 2290 IF (monocpu) THEN 2291 ndexct(:)=0 2292 CALL histwrite(nidct,'tauxe',itau_w,wri_taux,iim*(jjm+1),ndexct) 2293 CALL histwrite(nidct,'tauyn',itau_w,wri_tauy,iim*(jjm+1),ndexct) 2294 CALL histwrite(nidct,'tmp_lon',itau_w,tmp_lon,iim*(jjm+1),ndexct) 2295 CALL histwrite(nidct,'tmp_lat',itau_w,tmp_lat,iim*(jjm+1),ndexct) 2296 ENDIF 2297 ! 2298 ! calcul 3 coordonnees du vent 2299 ! 2300 CALL atm2geo (iim , jjphy_nb, wri_taux, wri_tauy, tmp_lon, tmp_lat, & 1995 2301 & wri_tauxx, wri_tauyy, wri_tauzz ) 1996 2302 ! … … 1998 2304 ! envoi au coupleur 1999 2305 ! 2306 IF (monocpu) THEN 2000 2307 CALL histwrite(nidct,cl_writ(8),itau_w,wri_sol_ice,iim*(jjm+1),ndexct) 2001 2308 CALL histwrite(nidct,cl_writ(9),itau_w,wri_sol_sea,iim*(jjm+1),ndexct) … … 2020 2327 ! -- LOOP 2021 2328 CALL histsync(nidct) 2329 ENDIF 2022 2330 ! pas utile IF (lafin) CALL histclo(nidct) 2023 2331 #ifdef CPP_COUPLE 2024 2332 #ifdef CPP_PSMILE 2025 2333 il_time_secs=(itime-1)*dtime 2026 2334 2027 2335 CALL intocpl(il_time_secs, iim, jjm+1, wri_sol_ice, wri_sol_sea, wri_nsol_ice,& 2028 2336 & wri_nsol_sea, wri_fder_ice, wri_evap_ice, wri_evap_sea, wri_rain, & … … 2081 2389 ! 2082 2390 if (nisurf == is_oce) then 2083 call cpl2gath(read_sst, tsurf_new, klon, knon,iim,jj m, knindex)2391 call cpl2gath(read_sst, tsurf_new, klon, knon,iim,jjphy_nb, knindex) 2084 2392 else if (nisurf == is_sic) then 2085 call cpl2gath(read_sit, tsurf_new, klon, knon,iim,jj m, knindex)2086 call cpl2gath(read_alb_sic, alb_new, klon, knon,iim,jj m, knindex)2393 call cpl2gath(read_sit, tsurf_new, klon, knon,iim,jjphy_nb, knindex) 2394 call cpl2gath(read_alb_sic, alb_new, klon, knon,iim,jjphy_nb, knindex) 2087 2395 endif 2088 2396 pctsrf_new(:,nisurf) = pctsrf_sav(:,nisurf) 2089 2397 2398 if (mod(itime, nexca) == -1) then 2399 tmp_field=0. 2400 do i = 1, knon 2401 ig = knindex(i) 2402 tmp_field(ig) = 1. 2403 enddo 2404 !ym call WriteField_phy('knindex',tmp_field,1) 2405 2406 tmp_field=0. 2407 do i = 1, knon 2408 ig = knindex(i) 2409 tmp_field(ig) = tsurf_new(i) 2410 enddo 2411 !ym call WriteField_phy('tsurf_new',tmp_field,1) 2412 2413 tmp_field=0. 2414 do i = 1, knon 2415 ig = knindex(i) 2416 tmp_field(ig) = alb_new(i) 2417 enddo 2418 !ym call WriteField_phy('alb_new',tmp_field,1) 2419 2420 ! tmp_field=0. 2421 ! do i = 1, knon 2422 ! ig = knindex(i) 2423 ! tmp_field(ig) = pctsrf_new(i,nisurf) 2424 ! enddo 2425 !ym call WriteField_phy('pctsrf_new', pctsrf_new(:,nisurf),1) 2426 endif 2427 !ym do j=1,jjphy_nb 2428 !ym do i=1,iim 2429 !ym print *,phy_rank,'read_sst(',i,',',j,')=',read_sst(i,j) 2430 !ym enddo 2431 !ym enddo 2432 2433 !ym do i=1,knon 2434 !ym print *,phy_rank,'tsurf_new(',i,')=',tsurf_new(i) 2435 !ym enddo 2090 2436 ! if (lafin) call quitcpl 2091 2437 … … 2140 2486 REAL :: amn, amx 2141 2487 INTEGER, save :: lmt_pas, julien, idayvrai 2488 !$OMP THREADPRIVATE(lmt_pas, julien, idayvrai) 2142 2489 REAL, parameter :: unjour=86400. 2143 2490 real, allocatable, dimension(:), save :: tmp_tslab, tmp_seaice 2144 2491 REAL, allocatable, dimension(:), save :: slab_bils 2145 2492 REAL, allocatable, dimension(:), save :: lmt_bils 2493 !$OMP THREADPRIVATE(tmp_tslab, tmp_seaice,slab_bils,lmt_bils) 2146 2494 logical,save :: check = .false. 2495 !$OMP THREADPRIVATE(check) 2496 2147 2497 ! 2148 2498 REAL, parameter :: cyang=50.0 * 4.228e+06 ! capacite calorifique volumetrique de l'eau J/(m2 K) … … 2317 2667 ! 2318 2668 SUBROUTINE interfoce_lim(itime, dtime, jour, & 2319 & klon , nisurf, knon, knindex, &2669 & klon_xx, nisurf, knon, knindex, & 2320 2670 & debut, & 2321 & lmt_sst, pctsrf_new) 2671 & lmt_sst_p, pctsrf_new_p) 2672 2673 USE dimphy,klon=>klon2,klon2=>klon 2674 2675 #include "indicesol.inc" 2322 2676 2323 2677 ! Cette routine sert d'interface entre le modele atmospherique et un fichier … … 2346 2700 real , intent(IN) :: dtime 2347 2701 integer, intent(IN) :: jour 2702 integer, intent(in) :: klon_xx 2348 2703 integer, intent(IN) :: nisurf 2349 2704 integer, intent(IN) :: knon 2350 integer, intent(IN) :: klon 2351 integer, dimension(klon), intent(in) :: knindex 2705 integer, dimension(klon2), intent(in) :: knindex 2352 2706 logical, intent(IN) :: debut 2353 2707 2354 2708 ! Parametres de sortie 2355 real, intent(out), dimension(klon) :: lmt_sst 2356 real, intent(out), dimension(klon,nbsrf) :: pctsrf_new 2709 real, intent(out), dimension(klon2) :: lmt_sst_p 2710 real, intent(out), dimension(klon2,nbsrf) :: pctsrf_new_p 2711 2712 ! real, dimension(klon) :: lmt_sst 2713 real, dimension(klon,nbsrf) :: pctsrf_new 2357 2714 2358 2715 ! Variables locales … … 2360 2717 INTEGER,save :: lmt_pas ! frequence de lecture des conditions limites 2361 2718 ! (en pas de physique) 2719 !$OMP THREADPRIVATE(lmt_pas) 2362 2720 logical,save :: deja_lu ! pour indiquer que le jour a lire a deja 2363 2721 ! lu pour une surface precedente 2722 !$OMP THREADPRIVATE(deja_lu) 2364 2723 integer,save :: jour_lu 2724 !$OMP THREADPRIVATE(jour_lu) 2365 2725 integer :: ierr 2366 2726 character (len = 20) :: modname = 'interfoce_lim' 2367 2727 character (len = 80) :: abort_message 2368 2728 character (len = 20),save :: fich ='limit.nc' 2729 !$OMP THREADPRIVATE(fich) 2369 2730 logical, save :: newlmt = .TRUE. 2731 !$OMP THREADPRIVATE(newlmt) 2370 2732 logical, save :: check = .FALSE. 2733 !$OMP THREADPRIVATE(check) 2371 2734 ! Champs lus dans le fichier de CL 2372 real, allocatable , save, dimension(:) :: sst_lu, rug_lu, nat_lu 2373 real, allocatable , save, dimension(:,:) :: pct_tmp 2735 real, allocatable , save, dimension(:) :: sst_lu_p 2736 !$OMP THREADPRIVATE(sst_lu_p) 2737 real, allocatable , save, dimension(:) :: sst_lu_mpi 2738 2739 real, allocatable , save, dimension(:,:) :: pct_tmp_p 2740 !$OMP THREADPRIVATE(pct_tmp_p) 2741 real, allocatable , save, dimension(:,:) :: pct_tmp_mpi 2742 real, dimension(klon,nbsrf) :: pct_tmp 2743 real, dimension(klon) :: sst_lu 2744 real, dimension(klon) :: nat_lu 2374 2745 ! 2375 2746 ! quelques variables pour netcdf … … 2379 2750 integer, dimension(2) :: start, epais 2380 2751 ! 2381 ! Fin d éclaration2382 ! 2383 2384 if (debut .and. .not. allocated(sst_lu )) then2752 ! Fin declaration 2753 ! 2754 2755 if (debut .and. .not. allocated(sst_lu_p)) then 2385 2756 lmt_pas = nint(86400./dtime * 1.0) ! pour une lecture une fois par jour 2386 2757 jour_lu = jour - 1 2387 allocate(sst_lu(klon)) 2388 allocate(nat_lu(klon)) 2389 allocate(pct_tmp(klon,nbsrf)) 2758 allocate(sst_lu_p(klon_omp)) 2759 allocate(pct_tmp_p(klon_omp,nbsrf)) 2390 2760 endif 2391 2761 … … 2400 2770 ! Ouverture du fichier 2401 2771 ! 2772 !$OMP MASTER 2773 if (.not. allocated(sst_lu_mpi)) allocate(sst_lu_mpi(klon_mpi)) 2774 if (.not. allocated(pct_tmp_mpi)) allocate(pct_tmp_mpi(klon_mpi,nbsrf)) 2775 2776 if (phy_rank==0) then 2777 2402 2778 fich = trim(fich) 2403 2779 ierr = NF_OPEN (fich, NF_NOWRITE,nid) … … 2539 2915 ! 2540 2916 ierr = NF_CLOSE(nid) 2541 deja_lu = .true. 2542 jour_lu = jour 2543 endif 2917 endif ! phyrank 2544 2918 ! 2545 2919 ! Recopie des variables dans les champs de sortie 2546 2920 ! 2547 lmt_sst = 999999999. 2921 call ScatterField(sst_lu,sst_lu_mpi,1) 2922 call ScatterField(pct_tmp(:,is_oce),pct_tmp_mpi(:,is_oce),1) 2923 call ScatterField(pct_tmp(:,is_sic),pct_tmp_mpi(:,is_sic),1) 2924 !$OMP END MASTER 2925 !$OMP BARRIER 2926 call ScatterField_omp(sst_lu_mpi,sst_lu_p,1) 2927 call ScatterField_omp(pct_tmp_mpi(:,is_oce),pct_tmp_p(:,is_oce),1) 2928 call ScatterField_omp(pct_tmp_mpi(:,is_sic),pct_tmp_p(:,is_sic),1) 2929 deja_lu = .true. 2930 jour_lu = jour 2931 endif 2932 2933 lmt_sst_p = 999999999. 2934 2548 2935 do ii = 1, knon 2549 lmt_sst (ii) = sst_lu(knindex(ii))2936 lmt_sst_p(ii) = sst_lu_p(knindex(ii)) 2550 2937 enddo 2551 2938 2552 pctsrf_new(:,is_oce) = pct_tmp(:,is_oce) 2553 pctsrf_new(:,is_sic) = pct_tmp(:,is_sic) 2939 do ii=1,klon2 2940 pctsrf_new_p(ii,is_oce)=pct_tmp_p(ii,is_oce) 2941 pctsrf_new_p(ii,is_sic)=pct_tmp_p(ii,is_sic) 2942 enddo 2943 2554 2944 2555 2945 END SUBROUTINE interfoce_lim … … 2559 2949 ! 2560 2950 SUBROUTINE interfsur_lim(itime, dtime, jour, & 2561 & klon , nisurf, knon, knindex, &2951 & klon_xx, nisurf, knon, knindex, & 2562 2952 & debut, & 2563 & lmt_alb, lmt_rug) 2953 & lmt_alb_p, lmt_rug_p) 2954 2955 USE dimphy,klon=>klon2,klon2=>klon 2564 2956 2565 2957 ! Cette routine sert d'interface entre le modele atmospherique et un fichier … … 2581 2973 ! lmt_sst SST lues dans le fichier de CL 2582 2974 ! lmt_alb Albedo lu 2583 ! lmt_rug longueur de rugosit élue2975 ! lmt_rug longueur de rugosite lue 2584 2976 ! pctsrf_new sous-maille fractionnelle 2585 2977 ! … … 2592 2984 integer, intent(IN) :: nisurf 2593 2985 integer, intent(IN) :: knon 2594 integer, intent(IN) :: klon 2595 integer, dimension(klon ), intent(in) :: knindex2986 integer, intent(IN) :: klon_xx 2987 integer, dimension(klon2), intent(in) :: knindex 2596 2988 logical, intent(IN) :: debut 2597 2989 2598 2990 ! Parametres de sortie 2599 real, intent(out), dimension(klon) :: lmt_alb 2600 real, intent(out), dimension(klon) :: lmt_rug 2991 real, intent(out), dimension(klon2) :: lmt_alb_p 2992 real, intent(out), dimension(klon2) :: lmt_rug_p 2993 2994 ! real, dimension(klon) :: lmt_alb 2995 ! real, dimension(klon) :: lmt_rug 2601 2996 2602 2997 ! Variables locales … … 2604 2999 integer,save :: lmt_pas ! frequence de lecture des conditions limites 2605 3000 ! (en pas de physique) 3001 !$OMP THREADPRIVATE(lmt_pas) 2606 3002 logical,save :: deja_lu_sur! pour indiquer que le jour a lire a deja 2607 3003 ! lu pour une surface precedente 3004 !$OMP THREADPRIVATE(deja_lu_sur) 2608 3005 integer,save :: jour_lu_sur 3006 !$OMP THREADPRIVATE(jour_lu_sur) 2609 3007 integer :: ierr 2610 3008 character (len = 20) :: modname = 'interfsur_lim' 2611 3009 character (len = 80) :: abort_message 2612 3010 character (len = 20),save :: fich ='limit.nc' 3011 !$OMP THREADPRIVATE(fich) 2613 3012 logical,save :: newlmt = .false. 3013 !$OMP THREADPRIVATE(newlmt) 2614 3014 logical,save :: check = .false. 3015 !$OMP THREADPRIVATE(check) 2615 3016 ! Champs lus dans le fichier de CL 2616 real, allocatable , save, dimension(:) :: alb_lu, rug_lu 3017 real, allocatable , save, dimension(:) :: alb_lu_p, rug_lu_p 3018 !$OMP THREADPRIVATE(alb_lu_p, rug_lu_p) 3019 real, allocatable , save, dimension(:) :: alb_lu_mpi, rug_lu_mpi 3020 real, dimension(klon) :: alb_lu, rug_lu 2617 3021 ! 2618 3022 ! quelques variables pour netcdf … … 2620 3024 #include "netcdf.inc" 2621 3025 integer ,save :: nid, nvarid 3026 !$OMP THREADPRIVATE(nid, nvarid) 2622 3027 integer, dimension(2),save :: start, epais 2623 ! 2624 ! Fin déclaration 2625 ! 2626 3028 !$OMP THREADPRIVATE(start, epais) 3029 ! 3030 ! Fin declaration 3031 ! 3032 2627 3033 if (debut) then 2628 3034 lmt_pas = nint(86400./dtime * 1.0) ! pour une lecture une fois par jour 2629 3035 jour_lu_sur = jour - 1 2630 allocate(alb_lu (klon))2631 allocate(rug_lu (klon))3036 allocate(alb_lu_p(klon_omp)) 3037 allocate(rug_lu_p(klon_omp)) 2632 3038 endif 2633 3039 … … 2640 3046 ! Tester d'abord si c'est le moment de lire le fichier 2641 3047 if (mod(itime-1, lmt_pas) == 0 .and. .not. deja_lu_sur) then 3048 3049 !$OMP MASTER 3050 if (.not. allocated(alb_lu_mpi)) allocate(alb_lu_mpi(klon_mpi)) 3051 if (.not. allocated(rug_lu_mpi)) allocate(rug_lu_mpi(klon_mpi)) 3052 if (phy_rank==0) then 2642 3053 ! 2643 3054 ! Ouverture du fichier … … 2676 3087 endif 2677 3088 ! 2678 ! Lecture rugosité 2679 ! 3089 ! Lecture rugosite ! 2680 3090 ierr = NF_INQ_VARID(nid, 'RUG', nvarid) 2681 3091 if (ierr /= NF_NOERR) then … … 2697 3107 ! 2698 3108 ierr = NF_CLOSE(nid) 3109 3110 3111 endif !! phyrank 3112 3113 call ScatterField(alb_lu,alb_lu_mpi,1) 3114 call ScatterField(rug_lu,rug_lu_mpi,1) 3115 !$OMP END MASTER 3116 !$OMP BARRIER 3117 3118 call ScatterField_omp(alb_lu_mpi,alb_lu_p,1) 3119 call ScatterField_omp(rug_lu_mpi,rug_lu_p,1) 3120 2699 3121 deja_lu_sur = .true. 2700 3122 jour_lu_sur = jour 3123 3124 2701 3125 endif 3126 2702 3127 ! 2703 3128 ! Recopie des variables dans les champs de sortie … … 2705 3130 !!$ lmt_alb(:) = 0.0 2706 3131 !!$ lmt_rug(:) = 0.0 2707 lmt_alb(:) = 999999. 2708 lmt_rug(:) = 999999. 3132 3133 lmt_alb_p(:) = 999999. 3134 lmt_rug_p(:) = 999999. 2709 3135 DO ii = 1, knon 2710 lmt_alb (ii) = alb_lu(knindex(ii))2711 lmt_rug (ii) = rug_lu(knindex(ii))3136 lmt_alb_p(ii) = alb_lu_p(knindex(ii)) 3137 lmt_rug_p(ii) = rug_lu_p(knindex(ii)) 2712 3138 enddo 3139 2713 3140 2714 3141 END SUBROUTINE interfsur_lim … … 2724 3151 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 2725 3152 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 2726 3153 USE dimphy,only : omp_rank 2727 3154 ! Cette routine calcule les fluxs en h et q a l'interface et eventuellement 2728 3155 ! une temperature de surface (au cas ou ok_veget = false) … … 2762 3189 #include "FCTTRE.inc" 2763 3190 #include "indicesol.inc" 3191 #include "YOMCST.inc" 2764 3192 2765 3193 ! Parametres d'entree … … 2795 3223 ! 2796 3224 logical, save :: check = .false. 3225 !$OMP THREADPRIVATE(check) 2797 3226 character (len = 20) :: modname = 'calcul_fluxs' 2798 3227 logical, save :: fonte_neige = .false. 3228 !$OMP THREADPRIVATE(fonte_neige) 2799 3229 real, save :: max_eau_sol = 150.0 3230 !$OMP THREADPRIVATE(max_eau_sol) 2800 3231 character (len = 80) :: abort_message 2801 3232 logical,save :: first = .true.,second=.false. 3233 !$OMP THREADPRIVATE(first,second) 2802 3234 2803 3235 if (check) write(*,*)'Entree ', modname,' surface = ',nisurf … … 2952 3384 !######################################################################### 2953 3385 ! 2954 SUBROUTINE gath2cpl(champ_in, champ_out, klon, knon, iim, jjm, knindex) 2955 3386 SUBROUTINE gath2cpl(champ_in, champ_out, klon, knon, iim, jmp1, knindex) 3387 use dimphy, only: liste_i,liste_j,jjphy_begin,jjphy_nb,phy_rank,phy_size 3388 implicit none 3389 2956 3390 ! Cette routine ecrit un champ 'gathered' sur la grille 2D pour le passer 2957 3391 ! au coupleur. … … 2969 3403 ! 2970 3404 ! input 2971 integer :: klon, knon, iim, j jm3405 integer :: klon, knon, iim, jmp1 2972 3406 real, dimension(klon) :: champ_in 2973 3407 integer, dimension(klon) :: knindex 2974 3408 ! output 2975 real, dimension(iim,j jm+1) :: champ_out3409 real, dimension(iim,jmp1) :: champ_out 2976 3410 ! local 2977 3411 integer :: i, ig, j … … 2983 3417 tamp(ig) = champ_in(i) 2984 3418 enddo 2985 ig = 1 2986 champ_out(:,1) = tamp(ig) 2987 do j = 2, jjm 2988 do i = 1, iim 2989 ig = ig + 1 2990 champ_out(i,j) = tamp(ig) 2991 enddo 3419 3420 !ym ig = 1 3421 !ym champ_out(:,1) = tamp(ig) 3422 !ym do j = 2, jjm 3423 !ym do i = 1, iim 3424 !ym ig = ig + 1 3425 !ym champ_out(i,j) = tamp(ig) 3426 !ym enddo 3427 !ym enddo 3428 !ym ig = ig + 1 3429 !ym champ_out(:,jjm+1) = tamp(ig) 3430 3431 do ig=1,klon 3432 i=liste_i(ig) 3433 j=liste_j(ig)-jjphy_begin+1 3434 champ_out(i,j)=tamp(ig) 2992 3435 enddo 2993 ig = ig + 1 2994 champ_out(:,jjm+1) = tamp(ig) 3436 3437 if (phy_rank==0) champ_out(:,1)=tamp(1) 3438 if (phy_rank==phy_size-1) champ_out(:,jjphy_nb)=tamp(klon) 2995 3439 2996 3440 END SUBROUTINE gath2cpl … … 2998 3442 !######################################################################### 2999 3443 ! 3000 SUBROUTINE cpl2gath(champ_in, champ_out, klon, knon, iim, jjm, knindex) 3001 3444 SUBROUTINE cpl2gath(champ_in, champ_out, klon, knon, iim, jmp1, knindex) 3445 use dimphy, only : liste_i, liste_j, jjphy_begin 3446 implicit none 3002 3447 ! Cette routine ecrit un champ 'gathered' sur la grille 2D pour le passer 3003 3448 ! au coupleur. … … 3015 3460 ! 3016 3461 ! input 3017 integer :: klon, knon, iim, j jm3018 real, dimension(iim,j jm+1) :: champ_in3462 integer :: klon, knon, iim, jmp1 3463 real, dimension(iim,jmp1) :: champ_in 3019 3464 integer, dimension(klon) :: knindex 3020 3465 ! output … … 3024 3469 real, dimension(klon) :: tamp 3025 3470 logical ,save :: check = .false. 3026 3027 ig = 1 3028 tamp(ig) = champ_in(1,1) 3029 do j = 2, jjm 3030 do i = 1, iim 3031 ig = ig + 1 3032 tamp(ig) = champ_in(i,j) 3033 enddo 3471 !$OMP THREADPRIVATE(check) 3472 3473 !ym ig = 1 3474 !ym tamp(ig) = champ_in(1,1) 3475 !ym do j = 2, jjm 3476 !ym do i = 1, iim 3477 !ym ig = ig + 1 3478 !ym tamp(ig) = champ_in(i,j) 3479 !ym enddo 3480 !ym enddo 3481 !ym ig = ig + 1 3482 !ym tamp(ig) = champ_in(1,jjm+1) 3483 3484 do ig=1,klon 3485 i=liste_i(ig) 3486 j=liste_j(ig)-jjphy_begin+1 3487 tamp(ig)=champ_in(i,j) 3034 3488 enddo 3035 ig = ig + 1 3036 tamp(ig) = champ_in(1,jjm+1) 3037 3489 3038 3490 do i = 1, knon 3039 3491 ig = knindex(i) … … 3057 3509 3058 3510 REAL, DIMENSION(nvm),SAVE :: init, decay 3511 !$OMP THREADPRIVATE(init, decay) 3059 3512 REAL :: as 3060 3513 DATA init /0.55, 0.14, 0.18, 0.29, 0.15, 0.15, 0.14, 0./ … … 3092 3545 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 3093 3546 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l, & 3094 & fqcalving,f fonte,run_off_lic_0)3547 & fqcalving,fqfonte,ffonte,run_off_lic_0) 3095 3548 3096 3549 ! Routine de traitement de la fonte de la neige dans le cas du traitement 3097 ! de sol simplifié 3098 ! 3550 ! de sol simplifie ! 3099 3551 ! LF 03/2001 3100 3552 ! input: … … 3126 3578 ! dflux_l derivee du flux de chaleur latente / Ts 3127 3579 ! in/out: 3128 ! run_off_lic_0 run off glacier du pas de temps pr écedent3580 ! run_off_lic_0 run off glacier du pas de temps precedent 3129 3581 ! 3130 3582 … … 3152 3604 ! Flux thermique utiliser pour fondre la neige 3153 3605 real, dimension(klon), intent(INOUT):: ffonte 3154 ! Flux d'eau "perdu e" par la surface et necessaire pour que limiter la3155 ! hauteur de neige, en kg/m2/s 3156 real, dimension(klon), intent(INOUT):: fqcalving3606 ! Flux d'eau "perdu" par la surface et necessaire pour que limiter la 3607 ! hauteur de neige, en kg/m2/s. Et flux d'eau de fonte de la calotte. 3608 REAL, DIMENSION(klon), INTENT(INOUT):: fqcalving, fqfonte 3157 3609 real, dimension(klon), intent(INOUT):: run_off_lic_0 3158 3610 ! Variables locales … … 3181 3633 ! 3182 3634 logical, save :: check = .FALSE. 3635 !$OMP THREADPRIVATE(check) 3183 3636 character (len = 20) :: modname = 'fonte_neige' 3184 3637 logical, save :: neige_fond = .false. 3638 !$OMP THREADPRIVATE(neige_fond) 3185 3639 real, save :: max_eau_sol = 150.0 3640 !$OMP THREADPRIVATE(max_eau_sol) 3186 3641 character (len = 80) :: abort_message 3187 3642 logical,save :: first = .true.,second=.false. 3643 !$OMP THREADPRIVATE(first,second) 3188 3644 real :: coeff_rel 3189 3645 #include "FCTTRE.inc" … … 3275 3731 fq_fonte = MIN( MAX((tsurf_new(i)-RTT )/chasno,0.0),snow(i)) 3276 3732 ffonte(i) = fq_fonte * RLMLT/dtime 3733 fqfonte(i) = fq_fonte/dtime 3277 3734 snow(i) = max(0., snow(i) - fq_fonte) 3278 3735 bil_eau_s(i) = bil_eau_s(i) + fq_fonte … … 3283 3740 fq_fonte = MAX((tsurf_new(i)-RTT )/chaice,0.0) 3284 3741 ffonte(i) = ffonte(i) + fq_fonte * RLMLT/dtime 3285 bil_eau_s(i) = bil_eau_s(i) + fq_fonte 3742 IF ( ok_lic_melt ) THEN 3743 fqfonte(i) = fqfonte(i) + fq_fonte/dtime 3744 bil_eau_s(i) = bil_eau_s(i) + fq_fonte 3745 ENDIF 3286 3746 tsurf_new(i) = RTT 3287 3747 ENDIF … … 3301 3761 & (1. - coeff_rel) * run_off_lic_0(i) 3302 3762 run_off_lic_0(i) = run_off_lic(i) 3303 run_off_lic(i) = run_off_lic(i) + bil_eau_s(i)/dtime3763 run_off_lic(i) = run_off_lic(i) + fqfonte(i)/dtime 3304 3764 endif 3305 3765 enddo -
LMDZ4/trunk/libf/phylmd/iophy.F90
r629 r766 7 7 REAL,private,allocatable,dimension(:),save :: io_lat 8 8 REAL,private,allocatable,dimension(:),save :: io_lon 9 INTEGER, save :: phys_domain_id 9 10 10 11 INTERFACE histwrite_phy 11 12 MODULE PROCEDURE histwrite2d_phy,histwrite3d_phy 12 13 END INTERFACE 14 15 REAL,private,allocatable,save,dimension(:,:) :: buffer_omp 13 16 14 17 contains … … 16 19 subroutine init_iophy(lat,lon) 17 20 use dimphy 21 use ioipsl 18 22 implicit none 19 23 include 'dimensions90.h' 20 24 real,dimension(iim),intent(in) :: lon 21 25 real,dimension(jjm+1),intent(in) :: lat 22 26 27 INTEGER,DIMENSION(2) :: ddid 28 INTEGER,DIMENSION(2) :: dsg 29 INTEGER,DIMENSION(2) :: dsl 30 INTEGER,DIMENSION(2) :: dpf 31 INTEGER,DIMENSION(2) :: dpl 32 INTEGER,DIMENSION(2) :: dhs 33 INTEGER,DIMENSION(2) :: dhe 34 35 !$OMP MASTER 23 36 allocate(io_lat(jjm+1)) 24 37 io_lat(:)=lat(:) … … 31 44 ndex2d(:)=0 32 45 ndex3d(:)=0 46 allocate(buffer_omp(klon_mpi,klev)) 47 48 ddid=(/ 1,2 /) 49 dsg=(/ iim, jjm+1 /) 50 dsl=(/ iim, jjphy_nb /) 51 dpf=(/ 1,jjphy_begin /) 52 dpl=(/ iim, jjphy_end /) 53 dhs=(/ iiphy_begin-1,0 /) 54 if (phy_rank==phy_size-1) then 55 dhe=(/0,0/) 56 else 57 dhe=(/ iim-iiphy_end,0 /) 58 endif 59 60 call flio_dom_set(phy_size,phy_rank,ddid,dsg,dsl,dpf,dpl,dhs,dhe, & 61 'APPLE',phys_domain_id) 33 62 63 !$OMP END MASTER 64 !$OMP FLUSH(buffer_omp) 65 34 66 end subroutine init_iophy 35 67 … … 47 79 integer,intent(out) :: nhori 48 80 integer,intent(out) :: nid_day 49 81 82 !$OMP MASTER 50 83 if (monocpu) then 51 84 call histbeg(name,iim,io_lon, jjphy_nb,io_lat(jjphy_begin:jjphy_end), & 52 85 1,iim,1,jjphy_nb,itau0, zjulian, dtime, nhori, nid_day) 53 86 else 54 call histbeg(name //'_'//trim(int2str(phy_rank)),iim,io_lon, jjphy_nb,io_lat(jjphy_begin:jjphy_end), &55 1,iim,1,jjphy_nb,itau0, zjulian, dtime, nhori, nid_day )87 call histbeg(name,iim,io_lon, jjphy_nb,io_lat(jjphy_begin:jjphy_end), & 88 1,iim,1,jjphy_nb,itau0, zjulian, dtime, nhori, nid_day,phys_domain_id) 56 89 endif 90 !$OMP END MASTER 57 91 58 92 end subroutine histbeg_phy … … 68 102 integer, intent(in) :: itau 69 103 real,dimension(klon),intent(in) :: field 70 71 CALL phy2dyn(field,tmp_tab2d,1) 104 105 CALL GatherField_omp(field,buffer_omp,1) 106 !$OMP MASTER 107 CALL phy2dyn(buffer_omp,tmp_tab2d,1) 72 108 CALL histwrite(nid,name,itau,tmp_tab2d,iim*jjphy_nb,ndex2d) 73 109 !$OMP END MASTER 74 110 end subroutine histwrite2d_phy 75 111 … … 85 121 real,dimension(klon,klev),intent(in) :: field 86 122 87 CALL phy2dyn(field,tmp_tab3d,klev) 123 CALL GatherField_omp(field,buffer_omp,klev) 124 !$OMP MASTER 125 CALL phy2dyn(buffer_omp,tmp_tab3d,klev) 88 126 CALL histwrite(nid,name,itau,tmp_tab3d,iim*jjphy_nb*klev,ndex3d) 89 127 !$OMP END MASTER 90 128 end subroutine histwrite3d_phy 91 129 … … 96 134 include 'dimensions90.h' 97 135 98 real,dimension(klon ,nlev),intent(in) :: field_phy136 real,dimension(klon_mpi,nlev),intent(in) :: field_phy 99 137 real,dimension(iim,jjphy_nb,nlev),intent(out) :: field_dyn 100 138 integer,intent(in) :: nlev … … 107 145 if (jjphy_begin==jjphy_end) then 108 146 field_dyn(:,1,l)=0. 109 field_dyn(iiphy_begin:iiphy_end,1,l)=field_phy(1:klon ,l)147 field_dyn(iiphy_begin:iiphy_end,1,l)=field_phy(1:klon_mpi,l) 110 148 else 111 149 … … 115 153 else 116 154 field_dyn(:,1,l)=0. 117 next=iim-iiphy_begin+ 1155 next=iim-iiphy_begin+2 118 156 field_dyn(iiphy_begin:iim,1,l)=field_phy(1:next-1,l) 119 157 endif … … 125 163 126 164 if (jjphy_end==jjm+1) then 127 field_dyn(:,jjphy_nb,l)=field_phy(klon ,l)165 field_dyn(:,jjphy_nb,l)=field_phy(klon_mpi,l) 128 166 else 129 167 field_dyn(:,jjphy_nb,l)=0. -
LMDZ4/trunk/libf/phylmd/minmaxqfi.F
r524 r766 3 3 ! 4 4 SUBROUTINE minmaxqfi(zq,qmin,qmax,comment) 5 USE dimphy 5 6 IMPLICIT none 6 7 7 #include "dimensions.h"8 #include "dimphy.h"8 cym#include "dimensions.h" 9 cym#include "dimphy.h" 9 10 10 11 CHARACTER*(*) comment -
LMDZ4/trunk/libf/phylmd/moy_undefSTD.F
r684 r766 2 2 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 3 3 $ tnondef,tsumSTD) 4 USE dimphy 4 5 IMPLICIT none 5 6 c … … 20 21 c NB: mettre "inst(X)" dans le write_histXXX.h ! 21 22 c==================================================================== 22 #include "dimensions.h"23 integer jjmp124 parameter (jjmp1=jjm+1-1/jjm)25 #include "dimphy.h"23 cym#include "dimensions.h" 24 cym integer jjmp1 25 cym parameter (jjmp1=jjm+1-1/jjm) 26 cym#include "dimphy.h" 26 27 c 27 28 c variables Input -
LMDZ4/trunk/libf/phylmd/moyglo_aire.F
r644 r766 2 2 . ok_msk, msk, moyglo) 3 3 c 4 USE dimphy 4 5 IMPLICIT none 5 6 c … … 14 15 c 15 16 #include "dimensions.h" 16 #include "dimphy.h"17 cym#include "dimphy.h" 17 18 INTEGER i, nhori 18 19 REAL champ(klon), aire(klon), msk(klon) … … 61 62 SUBROUTINE moyglo_pondaima(nhori, nvert, champ, 62 63 . aire, pbord, moyglo) 64 USE dimphy 63 65 IMPLICIT none 64 66 c ================================================================== … … 72 74 c ================================================================== 73 75 #include "dimensions.h" 74 #include "dimphy.h"76 cym#include "dimphy.h" 75 77 #include "YOMCST.h" 76 78 INTEGER i, k, nhori, nvert … … 107 109 SUBROUTINE moyglo_pondmass(nhori, nvert, champ, 108 110 . aire, pbord, moyglo) 111 USE dimphy 109 112 IMPLICIT none 110 113 c ================================================================== … … 118 121 c ================================================================== 119 122 #include "dimensions.h" 120 #include "dimphy.h"123 cym#include "dimphy.h" 121 124 #include "YOMCST.h" 122 125 INTEGER i, k, nhori, nvert -
LMDZ4/trunk/libf/phylmd/mpiclim.h
r524 r766 21 21 C 22 22 common/CLIM_mpiclim/mpi_totproc, mpi_nproc, cmpi_modnam 23 c$OMP THREADPRIVATE(/CLIM_mpiclim/) 23 24 C 24 25 C ----------------------------------------------------------------- -
LMDZ4/trunk/libf/phylmd/newmicro.F
r685 r766 10 10 e bl95_b0, bl95_b1, 11 11 s cldtaupi, re, fl) 12 USE dimphy 12 13 IMPLICIT none 13 14 c====================================================================== … … 39 40 #include "YOMCST.h" 40 41 c 41 #include "dimensions.h"42 #include "dimphy.h"42 cym#include "dimensions.h" 43 cym#include "dimphy.h" 43 44 #include "nuage.h" 44 45 cIM cf. CR: include pour NOVLP et ZEPSEC … … 116 117 xflwp(i)=0. 117 118 xfiwp(i)=0. 119 cccccccccccc!CDIR NOVECTOR 118 120 DO k = 1, klev 119 121 c -
LMDZ4/trunk/libf/phylmd/nflxtr.F
r524 r766 4 4 SUBROUTINE nflxtr(pdtime,pmfu,pmfd,pen_u,pde_u,pen_d,pde_d, 5 5 . pplay,paprs,x,dx) 6 USE dimphy 6 7 IMPLICIT NONE 7 8 c===================================================================== … … 21 22 c===================================================================== 22 23 c 23 #include "dimensions.h"24 #include "dimphy.h"24 cym#include "dimensions.h" 25 cym#include "dimphy.h" 25 26 #include "YOMCST.h" 26 27 #include "YOECUMF.h" -
LMDZ4/trunk/libf/phylmd/nuage.F
r524 r766 9 9 e bl95_b0, bl95_b1, 10 10 s cldtaupi, re, fl) 11 USE dimphy 11 12 IMPLICIT none 12 13 c====================================================================== … … 38 39 #include "YOMCST.h" 39 40 c 40 #include "dimensions.h"41 #include "dimphy.h"41 cym#include "dimensions.h" 42 cym#include "dimphy.h" 42 43 REAL paprs(klon,klev+1), pplay(klon,klev) 43 44 REAL t(klon,klev) … … 229 230 SUBROUTINE diagcld1(paprs,pplay,rain,snow,kbot,ktop, 230 231 . diafra,dialiq) 232 use dimphy 231 233 IMPLICIT none 232 234 c … … 238 240 c ces nuages. Je dois avouer que c'est une frustration. 239 241 c 240 #include "dimensions.h"241 #include "dimphy.h"242 cym#include "dimensions.h" 243 cym#include "dimphy.h" 242 244 #include "YOMCST.h" 243 245 c … … 313 315 END 314 316 SUBROUTINE diagcld2(paprs,pplay,t,q, diafra,dialiq) 317 use dimphy 315 318 IMPLICIT none 316 319 c 317 #include "dimensions.h"318 #include "dimphy.h"320 cym#include "dimensions.h" 321 cym#include "dimphy.h" 319 322 #include "YOMCST.h" 320 323 c -
LMDZ4/trunk/libf/phylmd/nuage.h
r524 r766 5 5 6 6 common /nuagecom/ rad_froid,rad_chau1, rad_chau2 7 !$OMP THREADPRIVATE(/nuagecom/) -
LMDZ4/trunk/libf/phylmd/oasis.dummy
r675 r766 95 95 cl_writ(18)='CORIVFLU' 96 96 cl_writ(19)='COCALVIN' 97 c $$$cl_writ(13)='COZOTAUX'98 c $$$cl_writ(14)='COZOTAUV'99 c $$$cl_writ(15)='COMETAUY'100 c $$$cl_writ(16)='COMETAUU'97 cxxx cl_writ(13)='COZOTAUX' 98 cxxx cl_writ(14)='COZOTAUV' 99 cxxx cl_writ(15)='COMETAUY' 100 cxxx cl_writ(16)='COMETAUU' 101 101 cl_writ(1)='COTAUXXU' 102 102 cl_writ(2)='COTAUYYU' … … 365 365 REAL rivrunoff(imjm) 366 366 REAL calving(imjm) 367 c $$$REAL tauxu(imjm)368 c $$$REAL tauxv(imjm)369 c $$$REAL tauyu(imjm)370 c $$$REAL tauyv(imjm)367 cxxx REAL tauxu(imjm) 368 cxxx REAL tauxv(imjm) 369 cxxx REAL tauyu(imjm) 370 cxxx REAL tauyv(imjm) 371 371 REAL tauxx_u(imjm) 372 372 REAL tauxx_v(imjm) … … 496 496 $ CALL locwrite(cl_writ(jf),calving, imjm, 497 497 $ file_unit_field(jf), ierror) 498 c $$$IF (jf.eq.13)499 c $$$$ CALL locwrite(cl_writ(jf),tauxu, imjm,500 c $$$$ file_unit_field(jf),ierror)501 c $$$IF (jf.eq.1')502 c $$$$ CALL locwrite(cl_writ(jf),tauxv, imjm,503 c $$$$ file_unit_field(jf),ierror)504 c $$$IF (jf.eq.15)505 c $$$$ CALL locwrite(cl_writ(jf),tauyv, imjm,506 c $$$$ file_unit_field(jf),ierror)507 c $$$IF (jf.eq.16)508 c $$$$ CALL locwrite(cl_writ(jf),tauyu, imjm,509 c $$$$ file_unit_field(jf), ierror)498 cxxx IF (jf.eq.13) 499 cxxx $ CALL locwrite(cl_writ(jf),tauxu, imjm, 500 cxxx $ file_unit_field(jf),ierror) 501 cxxx IF (jf.eq.1') 502 cxxx $ CALL locwrite(cl_writ(jf),tauxv, imjm, 503 cxxx $ file_unit_field(jf),ierror) 504 cxxx IF (jf.eq.15) 505 cxxx $ CALL locwrite(cl_writ(jf),tauyv, imjm, 506 cxxx $ file_unit_field(jf),ierror) 507 cxxx IF (jf.eq.16) 508 cxxx $ CALL locwrite(cl_writ(jf),tauyu, imjm, 509 cxxx $ file_unit_field(jf), ierror) 510 510 IF (jf.eq.1) 511 511 $ CALL locwrite(cl_writ(jf),tauxx_u, imjm, … … 574 574 IF (jn.eq.18) CALL CLIM_Export(cl_writ(jn),kt,rivrunoff,info) 575 575 IF (jn.eq.19) CALL CLIM_Export(cl_writ(jn),kt,calving,info) 576 c $$$IF (jn.eq.13) CALL CLIM_Export(cl_writ(jn), kt, tauxu, info)577 c $$$IF (jn.eq.14) CALL CLIM_Export(cl_writ(jn), kt, tauxv, info)578 c $$$IF (jn.eq.15) CALL CLIM_Export(cl_writ(jn), kt, tauyv, info)579 c $$$IF (jn.eq.16) CALL CLIM_Export(cl_writ(jn), kt, tauyu, info)576 cxxx IF (jn.eq.13) CALL CLIM_Export(cl_writ(jn), kt, tauxu, info) 577 cxxx IF (jn.eq.14) CALL CLIM_Export(cl_writ(jn), kt, tauxv, info) 578 cxxx IF (jn.eq.15) CALL CLIM_Export(cl_writ(jn), kt, tauyv, info) 579 cxxx IF (jn.eq.16) CALL CLIM_Export(cl_writ(jn), kt, tauyu, info) 580 580 IF (jn.eq.1) CALL CLIM_Export(cl_writ(jn), kt, tauxx_u, info) 581 581 IF (jn.eq.2) CALL CLIM_Export(cl_writ(jn), kt, tauyy_u, info) -
LMDZ4/trunk/libf/phylmd/oasis.psmile
r626 r766 45 45 use mod_prism_proto 46 46 use mod_prism_def_partition_proto 47 47 use dimphy 48 48 implicit none 49 49 … … 94 94 ! Here we go: psmile initialisation 95 95 ! 96 call prism_init_comp_proto (comp_id, clmodnam, ierror)97 98 IF (ierror .ne. PRISM_Ok) THEN 99 abort_message=' Probleme init dans prism_init_comp '100 call abort_gcm(modname,abort_message,1)101 ELSE102 WRITE(nuout,*) 'inicma : init psmile ok '103 ENDIF104 105 ! PSMILe attribution of local communicator 106 ! 107 call prism_get_localcomm_proto (il_commlocal, ierror)96 IF (monocpu) THEN 97 call prism_init_comp_proto (comp_id, clmodnam, ierror) 98 99 IF (ierror .ne. PRISM_Ok) THEN 100 abort_message=' Probleme init dans prism_init_comp ' 101 call abort_gcm(modname,abort_message,1) 102 ELSE 103 WRITE(nuout,*) 'inicma : init psmile ok ' 104 ENDIF 105 ENDIF 106 107 call prism_get_localcomm_proto (il_commlocal, ierror) 108 108 ! 109 109 ! and domain decomposition … … 111 111 ! monoproc case 112 112 ! 113 allocate(ig_paral(5)) 114 ig_paral (1) = 2 115 ig_paral (2) = 0 116 ig_paral (3) = im 117 ig_paral (4) = jm 118 ig_paral (5) = im 119 113 allocate(ig_paral(3)) 114 !ym ig_paral(1) = 0 115 !ym ig_paral(2) = 0 116 !ym ig_paral(3) = im * jm 117 ig_paral(1) = 1 ! apple partition for // 118 ig_paral(2) = (jjphy_begin-1)*im+iiphy_begin-1 119 ig_paral(3) = (jjphy_end*im+iiphy_end)-(jjphy_begin*im+iiphy_begin)+1 120 if (phy_rank==phy_size-1) ig_paral(3)=ig_paral(3)+im-1 121 print *,phy_rank,'ig_paral--->',ig_paral(2),ig_paral(3) 122 123 ierror=PRISM_Ok 120 124 call prism_def_partition_proto (il_part_id, ig_paral, ierror) 121 125 deallocate(ig_paral) … … 140 144 cl_writ(5)='COTAUYYV' 141 145 cl_writ(6)='COTAUZZV' 142 c-- LOOP146 ! -- LOOP 143 147 cl_writ(7)='COWINDSP' 144 c-- LOOP148 ! -- LOOP 145 149 cl_writ(8)='COSHFICE' 146 150 cl_writ(9)='COSHFOCE' … … 218 222 use mod_prism_proto 219 223 use mod_prism_get_proto 220 224 use dimphy 221 225 IMPLICIT none 222 226 … … 225 229 ! 226 230 integer :: im, jm, kt 227 real, dimension(im ,jm) :: sst ! sea-surface-temperature228 real, dimension(im ,jm) :: gla ! sea-ice229 real, dimension(im ,jm) :: tice ! temp glace230 real, dimension(im ,jm) :: albedo ! albedo glace231 real, dimension(im*jm) :: sst ! sea-surface-temperature 232 real, dimension(im*jm) :: gla ! sea-ice 233 real, dimension(im*jm) :: tice ! temp glace 234 real, dimension(im*jm) :: albedo ! albedo glace 231 235 ! 232 236 ! local variables … … 236 240 character (len = 20),save :: modname = 'fromcpl' 237 241 character (len = 80) :: abort_message 242 integer :: istart,iend 238 243 ! 239 244 #include "param_cou.h" … … 245 250 CALL flush (nuout) 246 251 247 call prism_get_proto(in_var_id(1), kt, sst, ierror) 252 istart=iiphy_begin 253 if (phy_rank==phy_size-1) then 254 iend=(jjphy_end-jjphy_begin)*im+im 255 else 256 iend=(jjphy_end-jjphy_begin)*im+iiphy_end 257 endif 258 259 call prism_get_proto(in_var_id(1), kt, sst(istart:iend), ierror) 248 260 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Recvd .and. & 249 261 & ierror.ne.PRISM_FromRest & … … 254 266 call abort_gcm(modname,abort_message,1) 255 267 endif 256 call prism_get_proto(in_var_id(2), kt, gla , ierror)268 call prism_get_proto(in_var_id(2), kt, gla(istart:iend), ierror) 257 269 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Recvd .and. & 258 270 & ierror.ne.PRISM_FromRest & … … 263 275 call abort_gcm(modname,abort_message,1) 264 276 endif 265 call prism_get_proto(in_var_id(3), kt, albedo , ierror)277 call prism_get_proto(in_var_id(3), kt, albedo(istart:iend), ierror) 266 278 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Recvd .and. & 267 279 & ierror.ne.PRISM_FromRest & … … 272 284 call abort_gcm(modname,abort_message,1) 273 285 endif 274 call prism_get_proto(in_var_id(4), kt, tice , ierror)286 call prism_get_proto(in_var_id(4), kt, tice(istart:iend), ierror) 275 287 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Recvd .and. & 276 288 & ierror.ne.PRISM_FromRest & … … 288 300 SUBROUTINE intocpl(kt, im, jm, fsolice, fsolwat, fnsolice, fnsolwat, & 289 301 & fnsicedt, evice, evwat, lpre, spre, dirunoff, rivrunoff, & 290 & calving, tauxx_u, tauyy_u, tauzz_u, tauxx_v, tauyy_v, tauzz_v &291 c-- LOOP292 $ windsp,293 c-- LOOP294 & ,last)302 & calving, tauxx_u, tauyy_u, tauzz_u, tauxx_v, tauyy_v, tauzz_v, & 303 ! -- LOOP 304 & windsp, & 305 ! -- LOOP 306 & last) 295 307 ! ====================================================================== 296 308 ! L. Fairhead (09/2003) adapted From L.Z.X Li: this subroutine provides the … … 301 313 use mod_prism_proto 302 314 use mod_prism_put_proto 303 315 use dimphy 316 use write_field_phy 304 317 IMPLICIT NONE 305 318 … … 308 321 ! 309 322 integer :: kt, im, jm 310 real, dimension(im ,jm) :: fsolice, fsolwat, fnsolwat, fnsolice311 real, dimension(im ,jm) :: fnsicedt, evice, evwat, lpre, spre312 real, dimension(im ,jm) :: dirunoff, rivrunoff, calving313 real, dimension(im ,jm) :: tauxx_u, tauxx_v, tauyy_u314 real, dimension(im ,jm) :: tauyy_v, tauzz_u, tauzz_v315 real, dimension(im ,jm) :: windsp323 real, dimension(im* jm) :: fsolice, fsolwat, fnsolwat, fnsolice 324 real, dimension(im* jm) :: fnsicedt, evice, evwat, lpre, spre 325 real, dimension(im* jm) :: dirunoff, rivrunoff, calving 326 real, dimension(im* jm) :: tauxx_u, tauxx_v, tauyy_u 327 real, dimension(im* jm) :: tauyy_v, tauzz_u, tauzz_v 328 real, dimension(im*jm) :: windsp 316 329 logical :: last 330 logical :: checkout=.FALSE. 331 integer :: istart,iend 332 integer :: wstart,wend 317 333 ! 318 334 ! local … … 329 345 WRITE(nuout,*) 330 346 331 call prism_put_proto(il_out_var_id(8), kt, fsolice, ierror) 347 istart=iiphy_begin 348 if (phy_rank==phy_size-1) then 349 iend=(jjphy_end-jjphy_begin)*im+im 350 else 351 iend=(jjphy_end-jjphy_begin)*im+iiphy_end 352 endif 353 354 IF (checkout) THEN 355 wstart=istart 356 wend=iend 357 IF (phy_rank==0) wstart=istart+im-1 358 IF (phy_rank==phy_size-1) wend=iend-im+1 359 360 CALL writeField_phy("fsolice",fsolice(wstart:wend),1) 361 CALL writeField_phy("fsolwat",fsolwat(wstart:wend),1) 362 CALL writeField_phy("fnsolice",fnsolice(wstart:wend),1) 363 CALL writeField_phy("fnsolwat",fnsolwat(wstart:wend),1) 364 CALL writeField_phy("fnsicedt",fnsicedt(wstart:wend),1) 365 CALL writeField_phy("evice",evice(wstart:wend),1) 366 CALL writeField_phy("evwat",evwat(wstart:wend),1) 367 CALL writeField_phy("lpre",lpre(wstart:wend),1) 368 CALL writeField_phy("spre",spre(wstart:wend),1) 369 CALL writeField_phy("dirunoff",dirunoff(wstart:wend),1) 370 CALL writeField_phy("rivrunoff",rivrunoff(wstart:wend),1) 371 CALL writeField_phy("calving",calving(wstart:wend),1) 372 CALL writeField_phy("tauxx_u",tauxx_u(wstart:wend),1) 373 CALL writeField_phy("tauyy_u",tauyy_u(wstart:wend),1) 374 CALL writeField_phy("tauzz_u",tauzz_u(wstart:wend),1) 375 CALL writeField_phy("tauxx_v",tauxx_v(wstart:wend),1) 376 CALL writeField_phy("tauyy_v",tauyy_v(wstart:wend),1) 377 CALL writeField_phy("tauzz_v",tauzz_v(wstart:wend),1) 378 CALL writeField_phy("windsp",windsp(wstart:wend),1) 379 ENDIF 380 381 call prism_put_proto(il_out_var_id(8), kt, fsolice(istart:iend), ierror) 332 382 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 333 383 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 337 387 call abort_gcm(modname,abort_message,1) 338 388 endif 339 call prism_put_proto(il_out_var_id(9), kt, fsolwat , ierror)389 call prism_put_proto(il_out_var_id(9), kt, fsolwat(istart:iend), ierror) 340 390 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 341 391 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 345 395 call abort_gcm(modname,abort_message,1) 346 396 endif 347 call prism_put_proto(il_out_var_id(10), kt, fnsolice , ierror)397 call prism_put_proto(il_out_var_id(10), kt, fnsolice(istart:iend), ierror) 348 398 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 349 399 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 353 403 call abort_gcm(modname,abort_message,1) 354 404 endif 355 call prism_put_proto(il_out_var_id(11), kt, fnsolwat , ierror)405 call prism_put_proto(il_out_var_id(11), kt, fnsolwat(istart:iend), ierror) 356 406 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 357 407 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 361 411 call abort_gcm(modname,abort_message,1) 362 412 endif 363 call prism_put_proto(il_out_var_id(12), kt, fnsicedt , ierror)413 call prism_put_proto(il_out_var_id(12), kt, fnsicedt(istart:iend), ierror) 364 414 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 365 415 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 369 419 call abort_gcm(modname,abort_message,1) 370 420 endif 371 call prism_put_proto(il_out_var_id(13), kt, evice , ierror)421 call prism_put_proto(il_out_var_id(13), kt, evice(istart:iend), ierror) 372 422 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 373 423 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 377 427 call abort_gcm(modname,abort_message,1) 378 428 endif 379 call prism_put_proto(il_out_var_id(14), kt, evwat , ierror)429 call prism_put_proto(il_out_var_id(14), kt, evwat(istart:iend), ierror) 380 430 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 381 431 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 385 435 call abort_gcm(modname,abort_message,1) 386 436 endif 387 call prism_put_proto(il_out_var_id(15), kt, lpre , ierror)437 call prism_put_proto(il_out_var_id(15), kt, lpre(istart:iend), ierror) 388 438 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 389 439 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 393 443 call abort_gcm(modname,abort_message,1) 394 444 endif 395 call prism_put_proto(il_out_var_id(16), kt, spre , ierror)445 call prism_put_proto(il_out_var_id(16), kt, spre(istart:iend), ierror) 396 446 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 397 447 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 401 451 call abort_gcm(modname,abort_message,1) 402 452 endif 403 call prism_put_proto(il_out_var_id(17), kt, dirunoff , ierror)453 call prism_put_proto(il_out_var_id(17), kt, dirunoff(istart:iend), ierror) 404 454 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 405 455 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 409 459 call abort_gcm(modname,abort_message,1) 410 460 endif 411 call prism_put_proto(il_out_var_id(18), kt, rivrunoff , ierror)461 call prism_put_proto(il_out_var_id(18), kt, rivrunoff(istart:iend), ierror) 412 462 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 413 463 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 417 467 call abort_gcm(modname,abort_message,1) 418 468 endif 419 call prism_put_proto(il_out_var_id(19), kt, calving , ierror)469 call prism_put_proto(il_out_var_id(19), kt, calving(istart:iend), ierror) 420 470 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 421 471 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 425 475 call abort_gcm(modname,abort_message,1) 426 476 endif 427 call prism_put_proto(il_out_var_id(1), kt, tauxx_u , ierror)477 call prism_put_proto(il_out_var_id(1), kt, tauxx_u(istart:iend), ierror) 428 478 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 429 479 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 433 483 call abort_gcm(modname,abort_message,1) 434 484 endif 435 call prism_put_proto(il_out_var_id(2), kt, tauyy_u , ierror)485 call prism_put_proto(il_out_var_id(2), kt, tauyy_u(istart:iend), ierror) 436 486 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 437 487 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 441 491 call abort_gcm(modname,abort_message,1) 442 492 endif 443 call prism_put_proto(il_out_var_id(3), kt, tauzz_u , ierror)493 call prism_put_proto(il_out_var_id(3), kt, tauzz_u(istart:iend), ierror) 444 494 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 445 495 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 449 499 call abort_gcm(modname,abort_message,1) 450 500 endif 451 call prism_put_proto(il_out_var_id(4), kt, tauxx_v , ierror)501 call prism_put_proto(il_out_var_id(4), kt, tauxx_v(istart:iend), ierror) 452 502 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 453 503 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 457 507 call abort_gcm(modname,abort_message,1) 458 508 endif 459 call prism_put_proto(il_out_var_id(5), kt, tauyy_v , ierror)509 call prism_put_proto(il_out_var_id(5), kt, tauyy_v(istart:iend), ierror) 460 510 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 461 511 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 465 515 call abort_gcm(modname,abort_message,1) 466 516 endif 467 call prism_put_proto(il_out_var_id(6), kt, tauzz_v , ierror)517 call prism_put_proto(il_out_var_id(6), kt, tauzz_v(istart:iend), ierror) 468 518 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 469 519 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 473 523 call abort_gcm(modname,abort_message,1) 474 524 endif 475 call prism_put_proto(il_out_var_id(7), kt, windsp , ierror)525 call prism_put_proto(il_out_var_id(7), kt, windsp(istart:iend), ierror) 476 526 IF (ierror .ne. PRISM_Ok .and. ierror.ne.PRISM_Sent .and. ierror.ne.PRISM_ToRest & 477 527 & .and. ierror.ne.PRISM_LocTrans .and. ierror.ne.PRISM_Output .and. & … … 483 533 484 534 if (last) then 485 call prism_terminate_proto(ierror) 486 IF (ierror .ne. PRISM_Ok) THEN 487 abort_message=' Probleme dans prism_terminate_proto ' 488 call abort_gcm(modname,abort_message,1) 489 endif 535 IF (monocpu) THEN 536 call prism_terminate_proto(ierror) 537 IF (ierror .ne. PRISM_Ok) THEN 538 abort_message=' Probleme dans prism_terminate_proto ' 539 call abort_gcm(modname,abort_message,1) 540 endif 541 ENDIF 490 542 endif 491 543 -
LMDZ4/trunk/libf/phylmd/orbite.F
r524 r766 49 49 c====================================================================== 50 50 SUBROUTINE angle(longi, lati, frac, muzero) 51 USE dimphy 51 52 IMPLICIT none 52 53 c====================================================================== … … 64 65 c la journee (0 a 1) 65 66 c====================================================================== 66 #include "dimensions.h"67 #include "dimphy.h"67 cym#include "dimensions.h" 68 cym#include "dimphy.h" 68 69 REAL longi 69 70 REAL lati(klon), frac(klon), muzero(klon) … … 108 109 SUBROUTINE zenang(longi,gmtime,pdtrad,lat,long, 109 110 s pmu0,frac) 111 USE dimphy 110 112 IMPLICIT none 111 113 c============================================================= … … 131 133 c frac-----OUTPUT: ensoleillement moyen entre gmtime et gmtime+pdtrad 132 134 c================================================================ 133 #include "dimensions.h"134 #include "dimphy.h"135 cym#include "dimensions.h" 136 cym#include "dimphy.h" 135 137 #include "YOMCST.h" 136 138 c================================================================ … … 261 263 SUBROUTINE zenith (longi, gmtime, lat, long, 262 264 s pmu0, fract) 265 USE dimphy 263 266 IMPLICIT none 264 267 c … … 278 281 c 279 282 c==================================================================== 280 #include "dimensions.h"281 #include "dimphy.h"283 cym#include "dimensions.h" 284 cym#include "dimphy.h" 282 285 #include "YOMCST.h" 283 286 c==================================================================== -
LMDZ4/trunk/libf/phylmd/orografi.F
r675 r766 9 9 s d_t, d_u, d_v) 10 10 c 11 USE dimphy 11 12 IMPLICIT none 12 13 c====================================================================== … … 26 27 c d_v-----output-R-increment de la vitesse v 27 28 c====================================================================== 28 #include "dimensions.h"29 #include "dimphy.h"29 cym#include "dimensions.h" 30 cym#include "dimphy.h" 30 31 #include "YOMCST.h" 31 32 c … … 132 133 r , pvom,pvol,pte ) 133 134 135 USE dimphy 134 136 implicit none 135 137 … … 181 183 c 182 184 c 183 #include "dimensions.h"184 #include "dimphy.h"185 cym#include "dimensions.h" 186 cym#include "dimphy.h" 185 187 #include "YOMCST.h" 186 188 #include "YOEGWD.h" … … 191 193 c 192 194 c 193 integer nlon, nlev, klevm1 195 cym integer nlon, nlev, klevm1 196 integer nlon, nlev 194 197 integer kgwd, jl, ilevp1, jk, ji 195 198 real zdelp, ztemp, zforc, ztend … … 259 262 c ztmst=twodt 260 263 c if(nstep.eq.nstart) ztmst=0.5*twodt 261 klevm1=klev-1264 cym klevm1=klev-1 262 265 ztmst=ptsphy 263 266 zrtmst=1./ztmst … … 466 469 c 467 470 c----------------------------------------------------------------------- 471 USE dimphy 468 472 implicit none 469 473 c 470 474 471 #include "dimensions.h"472 #include "dimphy.h"475 cym#include "dimensions.h" 476 cym#include "dimphy.h" 473 477 #include "YOMCST.h" 474 478 #include "YOEGWD.h" … … 934 938 c 935 939 c----------------------------------------------------------------------- 940 USE dimphy 936 941 implicit none 937 #include "dimensions.h"938 #include "dimphy.h"942 cym#include "dimensions.h" 943 cym#include "dimphy.h" 939 944 #include "YOMCST.h" 940 945 #include "YOEGWD.h" … … 1068 1073 C PASSAGE OF THE NEW GWDRAG TO I.F.S. (F. LOTT, 22/11/93) 1069 1074 C----------------------------------------------------------------------- 1075 USE dimphy 1070 1076 implicit none 1071 1077 C … … 1073 1079 C 1074 1080 1075 #include "dimensions.h"1076 #include "dimphy.h"1081 cym#include "dimensions.h" 1082 cym#include "dimphy.h" 1077 1083 #include "YOMCST.h" 1078 1084 #include "YOEGWD.h" … … 1299 1305 s d_t, d_u, d_v) 1300 1306 c 1307 USE dimphy 1301 1308 IMPLICIT none 1302 1309 c====================================================================== … … 1316 1323 c d_v-----output-R-increment de la vitesse v 1317 1324 c====================================================================== 1318 #include "dimensions.h"1319 #include "dimphy.h"1325 cym#include "dimensions.h" 1326 cym#include "dimphy.h" 1320 1327 #include "YOMCST.h" 1321 1328 c … … 1439 1446 C F.LOTT LMD 22/11/95 1440 1447 C 1448 USE dimphy 1441 1449 implicit none 1442 1450 C 1443 1451 C 1444 #include "dimensions.h"1445 #include "dimphy.h"1452 cym#include "dimensions.h" 1453 cym#include "dimphy.h" 1446 1454 #include "YOMCST.h" 1447 1455 #include "YOEGWD.h" … … 1473 1481 C* 0.2 LOCAL ARRAYS 1474 1482 C ------------ 1475 logical lifthigh 1476 integer klevm1, jl, ilevh, jk 1483 logical lifthigh, ll1 1484 cym integer klevm1, jl, ilevh, jk 1485 integer jl, ilevh, jk 1477 1486 real zcons1, ztmst, zrtmst,zpi, zhgeo 1478 1487 real zdelp, zslow, zsqua, zscav, zbet … … 1497 1506 IF(NLON.NE.KLON.OR.NLEV.NE.KLEV)STOP 1498 1507 ZCONS1=1./RD 1499 KLEVM1=KLEV-11508 cym KLEVM1=KLEV-1 1500 1509 ZTMST=PTSPHY 1501 1510 ZRTMST=1./ZTMST … … 1698 1707 RETURN 1699 1708 END 1709 1710 1700 1711 SUBROUTINE SUGWD(NLON,NLEV,paprs,pplay) 1712 USE dimphy 1713 c USE parallel 1701 1714 C 1702 1715 C**** *SUGWD* INITIALIZE COMMON YOEGWD CONTROLLING GRAVITY WAVE DRAG … … 1751 1764 REAL pplay(nlon,nlev) 1752 1765 real zpr,zstra,zsigt,zpm1r 1766 REAL,SAVE,ALLOCATABLE :: pplay_mpi(:,:) 1767 REAL,SAVE,ALLOCATABLE :: paprs_mpi(:,:) 1768 REAL,SAVE,ALLOCATABLE :: pplay_glo(:,:) 1769 REAL,SAVE,ALLOCATABLE :: paprs_glo(:,:) 1770 1753 1771 C 1754 1772 C* 1. SET THE VALUES OF THE PARAMETERS … … 1766 1784 cold ZSIGT=0.85 1767 1785 C 1786 c$OMP MASTER 1787 ALLOCATE(pplay_mpi(klon_mpi,nlev)) 1788 ALLOCATE(paprs_mpi(klon_mpi,nlev+1)) 1789 ALLOCATE(pplay_glo(klon2,nlev)) 1790 ALLOCATE(paprs_glo(klon2,nlev+1)) 1791 c$OMP END MASTER 1792 c$OMP BARRIER 1793 1794 CALL GatherField_omp(pplay,pplay_mpi,nlev) 1795 CALL GatherField_omp(paprs,paprs_mpi,nlev+1) 1796 1797 c$OMP MASTER 1798 CALL AllGatherField(pplay_mpi,pplay_glo,nlev) 1799 CALL AllGatherField(paprs_mpi,paprs_glo,nlev+1) 1800 c$OMP END MASTER 1801 c$OMP BARRIER 1802 1768 1803 DO 110 JK=1,NLEV 1769 ZPM1R=pplay (nlon/2,jk)/paprs(nlon/2,1)1804 ZPM1R=pplay_glo(klon2/2,jk)/paprs_glo(klon2/2,1) 1770 1805 IF(ZPM1R.GE.ZSIGT)THEN 1771 1806 nktopg=JK 1772 1807 ENDIF 1773 ZPM1R=pplay (nlon/2,jk)/paprs(nlon/2,1)1808 ZPM1R=pplay_glo(klon2/2,jk)/paprs_glo(klon2/2,1) 1774 1809 IF(ZPM1R.GE.ZSTRA)THEN 1775 1810 NSTRA=JK 1776 1811 ENDIF 1777 1812 110 CONTINUE 1813 1814 c$OMP BARRIER 1815 c$OMP MASTER 1816 DEALLOCATE(pplay_mpi) 1817 DEALLOCATE(paprs_mpi) 1818 DEALLOCATE(pplay_glo) 1819 DEALLOCATE(paprs_glo) 1820 c$OMP END MASTER 1821 c$OMP BARRIER 1822 1778 1823 c 1779 1824 c inversion car dans orodrag on compte les niveaux a l'envers -
LMDZ4/trunk/libf/phylmd/ozonecm.F
r699 r766 3 3 ! 4 4 SUBROUTINE ozonecm(rjour, rlat, paprs, o3) 5 USE dimphy 5 6 IMPLICIT none 6 7 C … … 19 20 C 20 21 21 #include "dimensions.h"22 #include "dimphy.h"22 cym#include "dimensions.h" 23 cym#include "dimphy.h" 23 24 #include "clesphys.h" 24 25 #include "YOMCST.h" … … 33 34 REAL an, unit, zo3q3 34 35 SAVE an, unit, zo3q3 36 c$OMP THREADPRIVATE(an, unit, zo3q3) 35 37 REAL mu,gms, zslat, zsint, zcost, z, ppm, qpm, a 36 38 REAL asec, bsec, aprim, zo3a3 -
LMDZ4/trunk/libf/phylmd/phyetat0.F
r689 r766 5 5 c 6 6 SUBROUTINE phyetat0 (fichnom,dtime,co2_ppm_etat0,solaire_etat0, 7 . rlat ,rlon, pctsrf, tsol,tsoil,7 . rlat_p,rlon_p, pctsrf_p, tsol_p,tsoil_p, 8 8 cIM "slab" ocean 9 . ocean, tslab,seaice, 10 . qsurf,qsol,snow, 11 . albe, alblw, evap, rain_fall, snow_fall, solsw, sollw, 12 . fder,radsol,frugs,agesno,clesphy0, 13 . zmea,zstd,zsig,zgam,zthe,zpic,zval,rugsrel,tabcntr0, 14 . t_ancien,q_ancien,ancien_ok, rnebcon, ratqs,clwcon, 15 . run_off_lic_0) 9 . ocean, tslab_p,seaice_p, 10 . qsurf_p,qsol_p,snow_p,albe_p, alblw_p, evap_p, 11 . rain_fall_p, snow_fall_p,solsw_p, sollw_p, 12 . fder_p,radsol_p,frugs_p,agesno_p,clesphy0, 13 . zmea_p,zstd_p,zsig_p,zgam_p,zthe_p,zpic_p,zval_p, 14 . rugsrel_p,tabcntr0, 15 . t_ancien_p,q_ancien_p,ancien_ok_p, rnebcon_p, ratqs_p, 16 . clwcon_p,run_off_lic_0_p) 17 USE dimphy,klon=>klon2,klon2=>klon,zmasq_p=>zmasq 18 USE iophy 16 19 IMPLICIT none 17 20 c====================================================================== … … 20 23 c====================================================================== 21 24 #include "dimensions.h" 22 #include "dimphy.h"25 cym#include "dimphy.h" 23 26 #include "netcdf.inc" 24 27 #include "indicesol.h" … … 30 33 REAL dtime 31 34 INTEGER radpas 32 REAL rlat (klon), rlon(klon)35 REAL rlat_p(klon2), rlon_p(klon2) 33 36 REAL co2_ppm_etat0 34 37 REAL solaire_etat0 38 REAL tsol_p(klon2,nbsrf) 39 REAL tsoil_p(klon2,nsoilmx,nbsrf) 40 REAL tslab_p(klon2), seaice_p(klon2) 41 REAL qsurf_p(klon2,nbsrf) 42 REAL qsol_p(klon2) 43 REAL snow_p(klon2,nbsrf) 44 REAL albe_p(klon2,nbsrf) 45 cIM BEG alblw 46 REAL alblw_p(klon2,nbsrf) 47 cIM END alblw 48 REAL evap_p(klon2,nbsrf) 49 REAL radsol_p(klon2) 50 REAL rain_fall_p(klon2) 51 REAL snow_fall_p(klon2) 52 REAL sollw_p(klon2) 53 real solsw_p(klon2) 54 real fder_p(klon2) 55 REAL frugs_p(klon2,nbsrf) 56 REAL agesno_p(klon2,nbsrf) 57 REAL zmea_p(klon2) 58 REAL zstd_p(klon2) 59 REAL zsig_p(klon2) 60 REAL zgam_p(klon2) 61 REAL zthe_p(klon2) 62 REAL zpic_p(klon2) 63 REAL zval_p(klon2) 64 REAL rugsrel_p(klon2) 65 REAL pctsrf_p(klon2, nbsrf) 66 REAL run_off_lic_0_p(klon2) 67 68 REAL t_ancien_p(klon2,klev), q_ancien_p(klon2,klev) 69 real rnebcon_p(klon2,klev),clwcon_p(klon2,klev) 70 real ratqs_p(klon2,klev) 71 LOGICAL,SAVE :: ancien_ok 72 LOGICAL :: ancien_ok_p 73 74 REAL zmasq(klon) 75 REAL rlat(klon), rlon(klon) 35 76 REAL tsol(klon,nbsrf) 36 77 REAL tsoil(klon,nsoilmx,nbsrf) … … 62 103 REAL fractint(klon) 63 104 REAL run_off_lic_0(klon) 64 65 REAL t_ancien(klon,klev), q_ancien(klon,klev) 66 real rnebcon(klon,klev),clwcon(klon,klev),ratqs(klon,klev) 67 LOGICAL ancien_ok 105 REAL t_ancien(klon,klev) 106 REAL q_ancien(klon,klev) 107 real rnebcon(klon,klev) 108 real clwcon(klon,klev) 109 real ratqs(klon,klev) 110 111 REAL,ALLOCATABLE,SAVE :: zmasq_mpi(:) 112 REAL,ALLOCATABLE,SAVE :: rlat_mpi(:), rlon_mpi(:) 113 REAL,ALLOCATABLE,SAVE :: tsol_mpi(:,:) 114 REAL,ALLOCATABLE,SAVE :: tsoil_mpi(:,:,:) 115 REAL,ALLOCATABLE,SAVE :: tslab_mpi(:) 116 REAL,ALLOCATABLE,SAVE :: seaice_mpi(:) 117 REAL,ALLOCATABLE,SAVE :: qsurf_mpi(:,:) 118 REAL,ALLOCATABLE,SAVE :: qsol_mpi(:) 119 REAL,ALLOCATABLE,SAVE :: snow_mpi(:,:) 120 REAL,ALLOCATABLE,SAVE :: albe_mpi(:,:) 121 REAL,ALLOCATABLE,SAVE :: alblw_mpi(:,:) 122 REAL,ALLOCATABLE,SAVE :: evap_mpi(:,:) 123 REAL,ALLOCATABLE,SAVE :: radsol_mpi(:) 124 REAL,ALLOCATABLE,SAVE :: rain_fall_mpi(:) 125 REAL,ALLOCATABLE,SAVE :: snow_fall_mpi(:) 126 REAL,ALLOCATABLE,SAVE :: sollw_mpi(:) 127 real,ALLOCATABLE,SAVE :: solsw_mpi(:) 128 real,ALLOCATABLE,SAVE :: fder_mpi(:) 129 REAL,ALLOCATABLE,SAVE :: frugs_mpi(:,:) 130 REAL,ALLOCATABLE,SAVE :: agesno_mpi(:,:) 131 REAL,ALLOCATABLE,SAVE :: zmea_mpi(:) 132 REAL,ALLOCATABLE,SAVE :: zstd_mpi(:) 133 REAL,ALLOCATABLE,SAVE :: zsig_mpi(:) 134 REAL,ALLOCATABLE,SAVE :: zgam_mpi(:) 135 REAL,ALLOCATABLE,SAVE :: zthe_mpi(:) 136 REAL,ALLOCATABLE,SAVE :: zpic_mpi(:) 137 REAL,ALLOCATABLE,SAVE :: zval_mpi(:) 138 REAL,ALLOCATABLE,SAVE :: rugsrel_mpi(:) 139 REAL,ALLOCATABLE,SAVE :: pctsrf_mpi(:, :) 140 REAL,ALLOCATABLE,SAVE :: run_off_lic_0_mpi(:) 141 REAL,ALLOCATABLE,SAVE :: t_ancien_mpi(:,:) 142 REAL,ALLOCATABLE,SAVE :: q_ancien_mpi(:,:) 143 real,ALLOCATABLE,SAVE :: rnebcon_mpi(:,:) 144 real,ALLOCATABLE,SAVE :: clwcon_mpi(:,:) 145 real,ALLOCATABLE,SAVE :: ratqs_mpi(:,:) 146 68 147 69 148 CHARACTER*6 ocean … … 80 159 PARAMETER (length=100) 81 160 REAL tab_cntrl(length), tabcntr0(length) 161 REAL,SAVE :: tab_cntrl_omp(length) 82 162 CHARACTER*7 str7 83 163 CHARACTER*2 str2 164 real iolat(jjm+1) 84 165 c 85 166 c Ouvrir le fichier contenant l'etat initial: 86 167 c 87 print*,'fichnom',fichnom 168 169 c$OMP MASTER 170 print *,'MASTER -x , omp_rank=',omp_rank 171 c$OMP END MASTER 172 173 c$OMP MASTER 174 print*,'fichnom ',fichnom 88 175 ierr = NF_OPEN (fichnom, NF_NOWRITE,nid) 89 176 IF (ierr.NE.NF_NOERR) THEN … … 92 179 CALL ABORT 93 180 ENDIF 181 c$OMP END MASTER 94 182 c 95 183 c Lecture des parametres de controle: 96 184 c 185 c$OMP MASTER 97 186 ierr = NF_INQ_VARID (nid, "controle", nvarid) 98 187 IF (ierr.NE.NF_NOERR) THEN … … 101 190 ENDIF 102 191 #ifdef NC_DOUBLE 103 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, tab_cntrl )104 #else 105 ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl )192 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, tab_cntrl_omp) 193 #else 194 ierr = NF_GET_VAR_REAL(nid, nvarid, tab_cntrl_omp) 106 195 #endif 107 196 IF (ierr.NE.NF_NOERR) THEN 108 197 PRINT*, 'phyetat0: Lecture echouee pour <controle>' 109 198 CALL abort 110 ELSE 111 c 199 ENDIF 200 c$OMP END MASTER 201 c$OMP BARRIER 202 203 DO i = 1, length 204 tab_cntrl( i ) = tab_cntrl_omp( i ) 205 ENDDO 206 207 c 208 112 209 DO i = 1, length 113 210 tabcntr0( i ) = tab_cntrl( i ) … … 177 274 IF( tab_cntrl(12) .EQ. 1. ) ok_limitvrai = .TRUE. 178 275 179 ENDIF180 276 181 277 itau_phy = tab_cntrl(15) … … 184 280 c Lecture des latitudes (coordonnees): 185 281 c 282 c$OMP MASTER 186 283 ierr = NF_INQ_VARID (nid, "latitude", nvarid) 187 284 IF (ierr.NE.NF_NOERR) THEN … … 198 295 CALL abort 199 296 ENDIF 297 200 298 c 201 299 c Lecture des longitudes (coordonnees): … … 219 317 C Lecture du masque terre mer 220 318 C 319 221 320 ierr = NF_INQ_VARID (nid, "masque", nvarid) 222 321 IF (ierr .EQ. NF_NOERR) THEN … … 235 334 C CALL abort 236 335 ENDIF 336 337 237 338 C Lecture des fractions pour chaque sous-surface 238 339 C … … 243 344 C fraction de terre 244 345 C 346 245 347 ierr = NF_INQ_VARID (nid, "FTER", nvarid) 246 348 IF (ierr .EQ. NF_NOERR) THEN … … 256 358 else 257 359 PRINT*, 'phyetat0: Le champ <FTER> est absent' 258 c$$$ CALL abort 259 ENDIF 360 c@$$ CALL abort 361 ENDIF 362 260 363 C 261 364 C fraction de glace de terre … … 274 377 else 275 378 PRINT*, 'phyetat0: Le champ <FLIC> est absent' 276 c $$$ CALL abort379 c@$$ CALL abort 277 380 ENDIF 278 381 C … … 292 395 else 293 396 PRINT*, 'phyetat0: Le champ <FOCE> est absent' 294 c$$$ CALL abort 295 ENDIF 397 c@$$ CALL abort 398 ENDIF 399 296 400 C 297 401 C fraction glace de mer … … 310 414 else 311 415 PRINT*, 'phyetat0: Le champ <FSIC> est absent' 312 c$$$ CALL abort 313 ENDIF 416 c@$$ CALL abort 417 ENDIF 418 314 419 C 315 420 C Verification de l'adequation entre le masque et les sous-surfaces … … 333 438 ENDIF 334 439 END DO 440 335 441 C 336 442 c Lecture des temperatures du sol: 337 443 c 444 338 445 ierr = NF_INQ_VARID (nid, "TS", nvarid) 339 446 IF (ierr.NE.NF_NOERR) THEN … … 360 467 CALL abort 361 468 ENDIF 469 362 470 xmin = 1.0E+20 363 471 xmax = -1.0E+20 … … 393 501 ENDDO 394 502 ENDIF 503 395 504 c 396 505 c Lecture des temperatures du sol profond: … … 557 666 PRINT*, ' Valeur par defaut nulle' 558 667 qsol(:)=0. 559 c $$$ CALL abort668 c@$$ CALL abort 560 669 ENDIF 561 670 xmin = 1.0E+20 … … 886 995 PRINT*,'Rayonnement IF au sol sollw:', xmin, xmax 887 996 997 c$OMP END MASTER 998 999 1000 c$OMP MASTER 1001 888 1002 c 889 1003 c Lecture derive des flux: … … 1280 1394 ENDIF 1281 1395 c 1396 clwcon=0. 1282 1397 ierr = NF_INQ_VARID (nid, "CLWCON", nvarid) 1283 1398 IF (ierr.NE.NF_NOERR) THEN … … 1302 1417 PRINT*,'Eau liquide convective (ecart-type) clwcon:', xmin, xmax 1303 1418 c 1419 rnebcon=0. 1304 1420 ierr = NF_INQ_VARID (nid, "RNEBCON", nvarid) 1305 1421 IF (ierr.NE.NF_NOERR) THEN … … 1344 1460 c Lecture ratqs 1345 1461 c 1462 ratqs=0. 1346 1463 ierr = NF_INQ_VARID (nid, "RATQS", nvarid) 1347 1464 IF (ierr.NE.NF_NOERR) THEN … … 1394 1511 ierr = NF_CLOSE(nid) 1395 1512 c 1513 c$OMP END MASTER 1514 1515 c$OMP MASTER 1516 cym en attendant mieux 1517 iolat(1)=rlat(1) 1518 iolat(jjm+1)=rlat(klon) 1519 do i=2,jjm 1520 iolat(i)=rlat(2+(i-2)*iim) 1521 enddo 1522 1523 call init_iophy(iolat,rlon(2:iim+1)) 1524 1525 print *,'Allocated ??',allocated(zmasq_mpi) 1526 print *,'klon_mpi',klon_mpi 1527 print *,'omp_rank',omp_rank 1528 ALLOCATE( zmasq_mpi(klon_mpi)) 1529 ALLOCATE( rlat_mpi(klon_mpi), rlon_mpi(klon_mpi)) 1530 ALLOCATE( tsol_mpi(klon_mpi,nbsrf)) 1531 ALLOCATE( tsoil_mpi(klon_mpi,nsoilmx,nbsrf)) 1532 ALLOCATE( tslab_mpi(klon_mpi)) 1533 ALLOCATE( seaice_mpi(klon_mpi)) 1534 ALLOCATE( qsurf_mpi(klon_mpi,nbsrf)) 1535 ALLOCATE( qsol_mpi(klon_mpi)) 1536 ALLOCATE( snow_mpi(klon_mpi,nbsrf)) 1537 ALLOCATE( albe_mpi(klon_mpi,nbsrf)) 1538 ALLOCATE( alblw_mpi(klon_mpi,nbsrf)) 1539 ALLOCATE( evap_mpi(klon_mpi,nbsrf)) 1540 ALLOCATE( radsol_mpi(klon_mpi)) 1541 ALLOCATE( rain_fall_mpi(klon_mpi)) 1542 ALLOCATE( snow_fall_mpi(klon_mpi)) 1543 ALLOCATE( sollw_mpi(klon_mpi)) 1544 ALLOCATE( solsw_mpi(klon_mpi)) 1545 ALLOCATE( fder_mpi(klon_mpi)) 1546 ALLOCATE( frugs_mpi(klon_mpi,nbsrf)) 1547 ALLOCATE( agesno_mpi(klon_mpi,nbsrf)) 1548 ALLOCATE( zmea_mpi(klon_mpi)) 1549 ALLOCATE( zstd_mpi(klon_mpi)) 1550 ALLOCATE( zsig_mpi(klon_mpi)) 1551 ALLOCATE( zgam_mpi(klon_mpi)) 1552 ALLOCATE( zthe_mpi(klon_mpi)) 1553 ALLOCATE( zpic_mpi(klon_mpi)) 1554 ALLOCATE( zval_mpi(klon_mpi)) 1555 ALLOCATE( rugsrel_mpi(klon_mpi)) 1556 ALLOCATE( pctsrf_mpi(klon_mpi, nbsrf)) 1557 ALLOCATE( run_off_lic_0_mpi(klon_mpi)) 1558 ALLOCATE( t_ancien_mpi(klon_mpi,klev)) 1559 ALLOCATE( q_ancien_mpi(klon_mpi,klev)) 1560 ALLOCATE( rnebcon_mpi(klon_mpi,klev)) 1561 ALLOCATE( clwcon_mpi(klon_mpi,klev)) 1562 ALLOCATE( ratqs_mpi(klon_mpi,klev)) 1563 1564 call ScatterField( rlat,rlat_mpi,1) 1565 call ScatterField( rlon,rlon_mpi,1) 1566 call ScatterField( tsol,tsol_mpi,nbsrf) 1567 call ScatterField( tsoil,tsoil_mpi,nsoilmx*nbsrf) 1568 call ScatterField( tslab,tslab_mpi,1) 1569 call ScatterField( seaice,seaice_mpi,1) 1570 call ScatterField( qsurf,qsurf_mpi,nbsrf) 1571 call ScatterField( qsol,qsol_mpi,1) 1572 call ScatterField( snow,snow_mpi,nbsrf) 1573 call ScatterField( albe,albe_mpi,nbsrf) 1574 call ScatterField( alblw,alblw_mpi,nbsrf) 1575 call ScatterField( evap,evap_mpi,nbsrf) 1576 call ScatterField( radsol,radsol_mpi,1) 1577 call ScatterField( rain_fall,rain_fall_mpi,1) 1578 call ScatterField( snow_fall,snow_fall_mpi,1) 1579 call ScatterField( sollw,sollw_mpi,1) 1580 call ScatterField( solsw,solsw_mpi,1) 1581 call ScatterField( fder,fder_mpi,1) 1582 call ScatterField( frugs,frugs_mpi,nbsrf) 1583 call ScatterField( agesno,agesno_mpi,nbsrf) 1584 call ScatterField( zmea,zmea_mpi,1) 1585 call ScatterField( zstd,zstd_mpi,1) 1586 call ScatterField( zsig,zsig_mpi,1) 1587 call ScatterField( zgam,zgam_mpi,1) 1588 call ScatterField( zthe,zthe_mpi,1) 1589 call ScatterField( zpic,zpic_mpi,1) 1590 call ScatterField( zval,zval_mpi,1) 1591 call ScatterField( rugsrel,rugsrel_mpi,1) 1592 call ScatterField( pctsrf,pctsrf_mpi, nbsrf) 1593 call ScatterField( run_off_lic_0,run_off_lic_0_mpi,1) 1594 call ScatterField( t_ancien,t_ancien_mpi,klev) 1595 call ScatterField( q_ancien,q_ancien_mpi,klev) 1596 call ScatterField( rnebcon,rnebcon_mpi,klev) 1597 call ScatterField( clwcon,clwcon_mpi,klev) 1598 call ScatterField( ratqs,ratqs_mpi,klev) 1599 call ScatterField( zmasq,zmasq_mpi,1) 1600 c$OMP END MASTER 1601 c$OMP BARRIER 1602 call ScatterField_omp( rlat_mpi,rlat_p,1) 1603 call ScatterField_omp( rlon_mpi,rlon_p,1) 1604 call ScatterField_omp( tsol_mpi,tsol_p,nbsrf) 1605 call ScatterField_omp( tsoil_mpi,tsoil_p,nsoilmx*nbsrf) 1606 call ScatterField_omp( tslab_mpi,tslab_p,1) 1607 call ScatterField_omp( seaice_mpi,seaice_p,1) 1608 call ScatterField_omp( qsurf_mpi,qsurf_p,nbsrf) 1609 call ScatterField_omp( qsol_mpi,qsol_p,1) 1610 call ScatterField_omp( snow_mpi,snow_p,nbsrf) 1611 call ScatterField_omp( albe_mpi,albe_p,nbsrf) 1612 call ScatterField_omp( alblw_mpi,alblw_p,nbsrf) 1613 call ScatterField_omp( evap_mpi,evap_p,nbsrf) 1614 call ScatterField_omp( radsol_mpi,radsol_p,1) 1615 call ScatterField_omp( rain_fall_mpi,rain_fall_p,1) 1616 call ScatterField_omp( snow_fall_mpi,snow_fall_p,1) 1617 call ScatterField_omp( sollw_mpi,sollw_p,1) 1618 call ScatterField_omp( solsw_mpi,solsw_p,1) 1619 call ScatterField_omp( fder_mpi,fder_p,1) 1620 call ScatterField_omp( frugs_mpi,frugs_p,nbsrf) 1621 call ScatterField_omp( agesno_mpi,agesno_p,nbsrf) 1622 call ScatterField_omp( zmea_mpi,zmea_p,1) 1623 call ScatterField_omp( zstd_mpi,zstd_p,1) 1624 call ScatterField_omp( zsig_mpi,zsig_p,1) 1625 call ScatterField_omp( zgam_mpi,zgam_p,1) 1626 call ScatterField_omp( zthe_mpi,zthe_p,1) 1627 call ScatterField_omp( zpic_mpi,zpic_p,1) 1628 call ScatterField_omp( zval_mpi,zval_p,1) 1629 call ScatterField_omp( rugsrel_mpi,rugsrel_p,1) 1630 call ScatterField_omp( pctsrf_mpi,pctsrf_p, nbsrf) 1631 call ScatterField_omp( run_off_lic_0_mpi,run_off_lic_0_p,1) 1632 call ScatterField_omp( t_ancien_mpi,t_ancien_p,klev) 1633 call ScatterField_omp( q_ancien_mpi,q_ancien_p,klev) 1634 call ScatterField_omp( rnebcon_mpi,rnebcon_p,klev) 1635 call ScatterField_omp( clwcon_mpi,clwcon_p,klev) 1636 call ScatterField_omp( ratqs_mpi,ratqs_p,klev) 1637 call ScatterField_omp( zmasq_mpi,zmasq_p,1) 1638 ancien_ok_p=ancien_ok 1639 1640 c$OMP MASTER 1641 DEALLOCATE( zmasq_mpi) 1642 DEALLOCATE( rlat_mpi, rlon_mpi) 1643 DEALLOCATE( tsol_mpi) 1644 DEALLOCATE( tsoil_mpi) 1645 DEALLOCATE( tslab_mpi) 1646 DEALLOCATE( seaice_mpi) 1647 DEALLOCATE( qsurf_mpi) 1648 DEALLOCATE( qsol_mpi) 1649 DEALLOCATE( snow_mpi) 1650 DEALLOCATE( albe_mpi) 1651 DEALLOCATE( alblw_mpi) 1652 DEALLOCATE( evap_mpi) 1653 DEALLOCATE( radsol_mpi) 1654 DEALLOCATE( rain_fall_mpi) 1655 DEALLOCATE( snow_fall_mpi) 1656 DEALLOCATE( sollw_mpi) 1657 DEALLOCATE( solsw_mpi) 1658 DEALLOCATE( fder_mpi) 1659 DEALLOCATE( frugs_mpi) 1660 DEALLOCATE( agesno_mpi) 1661 DEALLOCATE( zmea_mpi) 1662 DEALLOCATE( zstd_mpi) 1663 DEALLOCATE( zsig_mpi) 1664 DEALLOCATE( zgam_mpi) 1665 DEALLOCATE( zthe_mpi) 1666 DEALLOCATE( zpic_mpi) 1667 DEALLOCATE( zval_mpi) 1668 DEALLOCATE( rugsrel_mpi) 1669 DEALLOCATE( pctsrf_mpi) 1670 DEALLOCATE( run_off_lic_0_mpi) 1671 DEALLOCATE( t_ancien_mpi) 1672 DEALLOCATE( q_ancien_mpi) 1673 DEALLOCATE( rnebcon_mpi) 1674 DEALLOCATE( clwcon_mpi) 1675 1676 c$OMP END MASTER 1677 c$OMP BARRIER 1678 1396 1679 RETURN 1397 1680 END -
LMDZ4/trunk/libf/phylmd/phyredem.F
r644 r766 4 4 c 5 5 SUBROUTINE phyredem (fichnom,dtime,radpas, 6 . rlat ,rlon, pctsrf,tsol,tsoil,6 . rlat_p,rlon_p, pctsrf_p,tsol_p,tsoil_p, 7 7 cIM "slab" ocean 8 8 . tslab,seaice, 9 . qsurf ,qsol,snow,10 . albedo, alblw, evap, rain_fall, snow_fall,11 . solsw, sollw,fder,12 . radsol,frugs,agesno,13 . zmea,zstd,zsig,zgam,zthe,zpic,zval,rugsrel,14 . t_ancien, q_ancien, rnebcon, ratqs, clwcon,15 . run_off_lic_0)9 . qsurf_p,qsol_p,snow_p,albedo_p, alblw_p, evap_p, 10 . rain_fall_p, snow_fall_p,solsw_p, sollw_p,fder_p, 11 . radsol_p,frugs_p,agesno_p,zmea_p,zstd_p,zsig_p, 12 . zgam_p,zthe_p,zpic_p,zval_p,rugsrel_p, 13 . t_ancien_p, q_ancien_p, rnebcon_p, ratqs_p, clwcon_p, 14 . run_off_lic_0_p) 15 USE dimphy 16 16 IMPLICIT none 17 17 c====================================================================== … … 19 19 c Objet: Ecriture de l'etat de redemarrage pour la physique 20 20 c====================================================================== 21 #include "dimensions.h"22 #include "dimphy.h"21 cym#include "dimensions.h" 22 cym#include "dimphy.h" 23 23 #include "netcdf.inc" 24 24 #include "indicesol.h" … … 31 31 REAL dtime 32 32 INTEGER radpas 33 REAL rlat (klon), rlon(klon)34 REAL tsol (klon,nbsrf)35 REAL tsoil (klon,nsoilmx,nbsrf)33 REAL rlat_p(klon), rlon_p(klon) 34 REAL tsol_p(klon,nbsrf) 35 REAL tsoil_p(klon,nsoilmx,nbsrf) 36 36 cIM "slab" ocean 37 REAL tslab (klon), seaice(klon)38 REAL qsurf (klon,nbsrf)39 REAL qsol (klon)40 REAL snow (klon,nbsrf)41 REAL albedo (klon,nbsrf)37 REAL tslab_p(klon), seaice_p(klon) 38 REAL qsurf_p(klon,nbsrf) 39 REAL qsol_p(klon) 40 REAL snow_p(klon,nbsrf) 41 REAL albedo_p(klon,nbsrf) 42 42 cIM BEG 43 REAL alblw (klon,nbsrf)43 REAL alblw_p(klon,nbsrf) 44 44 cIM END 45 REAL evap(klon,nbsrf) 46 REAL rain_fall(klon) 47 REAL snow_fall(klon) 48 real solsw(klon) 49 real sollw(klon) 50 real fder(klon) 51 REAL radsol(klon) 52 REAL frugs(klon,nbsrf) 53 REAL agesno(klon,nbsrf) 54 REAL zmea(klon) 55 REAL zstd(klon) 56 REAL zsig(klon) 57 REAL zgam(klon) 58 REAL zthe(klon) 59 REAL zpic(klon) 60 REAL zval(klon) 61 REAL rugsrel(klon) 62 REAL pctsrf(klon, nbsrf) 63 REAL t_ancien(klon,klev), q_ancien(klon,klev) 64 real clwcon(klon,klev),rnebcon(klon,klev),ratqs(klon,klev) 65 REAL run_off_lic_0(klon) 45 REAL evap_p(klon,nbsrf) 46 REAL rain_fall_p(klon) 47 REAL snow_fall_p(klon) 48 real solsw_p(klon) 49 real sollw_p(klon) 50 real fder_p(klon) 51 REAL radsol_p(klon) 52 REAL frugs_p(klon,nbsrf) 53 REAL agesno_p(klon,nbsrf) 54 REAL zmea_p(klon) 55 REAL zstd_p(klon) 56 REAL zsig_p(klon) 57 REAL zgam_p(klon) 58 REAL zthe_p(klon) 59 REAL zpic_p(klon) 60 REAL zval_p(klon) 61 REAL rugsrel_p(klon) 62 REAL pctsrf_p(klon, nbsrf) 63 REAL t_ancien_p(klon,klev), q_ancien_p(klon,klev) 64 real clwcon_p(klon,klev),rnebcon_p(klon,klev),ratqs_p(klon,klev) 65 REAL run_off_lic_0_p(klon) 66 67 REAL rlat(klon2), rlon(klon2) 68 REAL tsol(klon2,nbsrf) 69 REAL tsoil(klon2,nsoilmx,nbsrf) 70 REAL tslab(klon2), seaice(klon2) 71 REAL qsurf(klon2,nbsrf) 72 REAL qsol(klon2) 73 REAL snow(klon2,nbsrf) 74 REAL albedo(klon2,nbsrf) 75 REAL alblw(klon2,nbsrf) 76 REAL evap(klon2,nbsrf) 77 REAL rain_fall(klon2) 78 REAL snow_fall(klon2) 79 real solsw(klon2) 80 real sollw(klon2) 81 real fder(klon2) 82 REAL radsol(klon2) 83 REAL frugs(klon2,nbsrf) 84 REAL agesno(klon2,nbsrf) 85 REAL zmea(klon2) 86 REAL zstd(klon2) 87 REAL zsig(klon2) 88 REAL zgam(klon2) 89 REAL zthe(klon2) 90 REAL zpic(klon2) 91 REAL zval(klon2) 92 REAL rugsrel(klon2) 93 REAL pctsrf(klon2, nbsrf) 94 REAL t_ancien(klon2,klev), q_ancien(klon2,klev) 95 real clwcon(klon2,klev),rnebcon(klon2,klev),ratqs(klon2,klev) 96 REAL run_off_lic_0(klon2) 97 REAL masq(klon2) 66 98 c 67 99 INTEGER nid, nvarid, idim1, idim2, idim3 … … 75 107 CHARACTER*2 str2 76 108 c 109 REAL,SAVE,ALLOCATABLE :: rlat_mpi(:), rlon_mpi(:) 110 REAL,SAVE,ALLOCATABLE :: tsol_mpi(:,:) 111 REAL,SAVE,ALLOCATABLE :: tsoil_mpi(:,:,:) 112 REAL,SAVE,ALLOCATABLE :: tslab_mpi(:) 113 REAL,SAVE,ALLOCATABLE :: seaice_mpi(:) 114 REAL,SAVE,ALLOCATABLE :: qsurf_mpi(:,:) 115 REAL,SAVE,ALLOCATABLE :: qsol_mpi(:) 116 REAL,SAVE,ALLOCATABLE :: snow_mpi(:,:) 117 REAL,SAVE,ALLOCATABLE :: albedo_mpi(:,:) 118 REAL,SAVE,ALLOCATABLE :: alblw_mpi(:,:) 119 REAL,SAVE,ALLOCATABLE :: evap_mpi(:,:) 120 REAL,SAVE,ALLOCATABLE :: rain_fall_mpi(:) 121 REAL,SAVE,ALLOCATABLE :: snow_fall_mpi(:) 122 REAL,SAVE,ALLOCATABLE :: solsw_mpi(:) 123 REAL,SAVE,ALLOCATABLE :: sollw_mpi(:) 124 REAL,SAVE,ALLOCATABLE :: fder_mpi(:) 125 REAL,SAVE,ALLOCATABLE :: radsol_mpi(:) 126 REAL,SAVE,ALLOCATABLE :: frugs_mpi(:,:) 127 REAL,SAVE,ALLOCATABLE :: agesno_mpi(:,:) 128 REAL,SAVE,ALLOCATABLE :: zmea_mpi(:) 129 REAL,SAVE,ALLOCATABLE :: zstd_mpi(:) 130 REAL,SAVE,ALLOCATABLE :: zsig_mpi(:) 131 REAL,SAVE,ALLOCATABLE :: zgam_mpi(:) 132 REAL,SAVE,ALLOCATABLE :: zthe_mpi(:) 133 REAL,SAVE,ALLOCATABLE :: zpic_mpi(:) 134 REAL,SAVE,ALLOCATABLE :: zval_mpi(:) 135 REAL,SAVE,ALLOCATABLE :: rugsrel_mpi(:) 136 REAL,SAVE,ALLOCATABLE :: pctsrf_mpi(:, :) 137 REAL,SAVE,ALLOCATABLE :: t_ancien_mpi(:,:), q_ancien_mpi(:,:) 138 REAL,SAVE,ALLOCATABLE :: clwcon_mpi(:,:),rnebcon_mpi(:,:) 139 REAL,SAVE,ALLOCATABLE :: ratqs_mpi(:,:) 140 REAL,SAVE,ALLOCATABLE :: run_off_lic_0_mpi(:) 141 REAL,SAVE,ALLOCATABLE :: masq_mpi(:) 142 143 c$OMP MASTER 144 ALLOCATE( rlat_mpi(klon_mpi), rlon_mpi(klon_mpi)) 145 ALLOCATE( tsol_mpi(klon_mpi,nbsrf)) 146 ALLOCATE( tsoil_mpi(klon_mpi,nsoilmx,nbsrf)) 147 ALLOCATE( tslab_mpi(klon_mpi)) 148 ALLOCATE( seaice_mpi(klon_mpi)) 149 ALLOCATE( qsurf_mpi(klon_mpi,nbsrf)) 150 ALLOCATE( qsol_mpi(klon_mpi)) 151 ALLOCATE( snow_mpi(klon_mpi,nbsrf)) 152 ALLOCATE( albedo_mpi(klon_mpi,nbsrf)) 153 ALLOCATE( alblw_mpi(klon_mpi,nbsrf)) 154 ALLOCATE( evap_mpi(klon_mpi,nbsrf)) 155 ALLOCATE( rain_fall_mpi(klon_mpi)) 156 ALLOCATE( snow_fall_mpi(klon_mpi)) 157 ALLOCATE( solsw_mpi(klon_mpi)) 158 ALLOCATE( sollw_mpi(klon_mpi)) 159 ALLOCATE( fder_mpi(klon_mpi)) 160 ALLOCATE( radsol_mpi(klon_mpi)) 161 ALLOCATE( frugs_mpi(klon_mpi,nbsrf)) 162 ALLOCATE( agesno_mpi(klon_mpi,nbsrf)) 163 ALLOCATE( zmea_mpi(klon_mpi)) 164 ALLOCATE( zstd_mpi(klon_mpi)) 165 ALLOCATE( zsig_mpi(klon_mpi)) 166 ALLOCATE( zgam_mpi(klon_mpi)) 167 ALLOCATE( zthe_mpi(klon_mpi)) 168 ALLOCATE( zpic_mpi(klon_mpi)) 169 ALLOCATE( zval_mpi(klon_mpi)) 170 ALLOCATE( rugsrel_mpi(klon_mpi)) 171 ALLOCATE( pctsrf_mpi(klon_mpi, nbsrf)) 172 ALLOCATE( t_ancien_mpi(klon_mpi,klev)) 173 ALLOCATE( q_ancien_mpi(klon_mpi,klev)) 174 ALLOCATE( clwcon_mpi(klon_mpi,klev),rnebcon_mpi(klon_mpi,klev)) 175 ALLOCATE( ratqs_mpi(klon_mpi,klev)) 176 ALLOCATE( run_off_lic_0_mpi(klon_mpi)) 177 ALLOCATE( masq_mpi(klon_mpi)) 178 c$OMP END MASTER 179 c$OMP BARRIER 180 181 call GatherField_omp( rlat_p,rlat_mpi,1) 182 call GatherField_omp( rlon_p,rlon_mpi,1) 183 call GatherField_omp( tsol_p,tsol_mpi,nbsrf) 184 call GatherField_omp( tsoil_p,tsoil_mpi,nsoilmx*nbsrf) 185 call GatherField_omp( tslab_p,tslab_mpi,1) 186 call GatherField_omp( seaice_p,seaice_mpi,1) 187 call GatherField_omp( qsurf_p,qsurf_mpi,nbsrf) 188 call GatherField_omp( qsol_p,qsol_mpi,1) 189 call GatherField_omp( snow_p,snow_mpi,nbsrf) 190 call GatherField_omp( albedo_p,albedo_mpi,nbsrf) 191 call GatherField_omp( alblw_p,alblw_mpi,nbsrf) 192 call GatherField_omp( evap_p,evap_mpi,nbsrf) 193 call GatherField_omp( radsol_p,radsol_mpi,1) 194 call GatherField_omp( rain_fall_p,rain_fall_mpi,1) 195 call GatherField_omp( snow_fall_p,snow_fall_mpi,1) 196 call GatherField_omp( sollw_p,sollw_mpi,1) 197 call GatherField_omp( solsw_p,solsw_mpi,1) 198 call GatherField_omp( fder_p,fder_mpi,1) 199 call GatherField_omp( frugs_p,frugs_mpi,nbsrf) 200 call GatherField_omp( agesno_p,agesno_mpi,nbsrf) 201 call GatherField_omp( zmea_p,zmea_mpi,1) 202 call GatherField_omp( zstd_p,zstd_mpi,1) 203 call GatherField_omp( zsig_p,zsig_mpi,1) 204 call GatherField_omp( zgam_p,zgam_mpi,1) 205 call GatherField_omp( zthe_p,zthe_mpi,1) 206 call GatherField_omp( zpic_p,zpic_mpi,1) 207 call GatherField_omp( zval_p,zval_mpi,1) 208 call GatherField_omp( rugsrel_p,rugsrel_mpi,1) 209 call GatherField_omp( pctsrf_p,pctsrf_mpi, nbsrf) 210 call GatherField_omp( run_off_lic_0_p,run_off_lic_0_mpi,1) 211 call GatherField_omp( t_ancien_p,t_ancien_mpi,klev) 212 call GatherField_omp( q_ancien_p,q_ancien_mpi,klev) 213 call GatherField_omp( rnebcon_p,rnebcon_mpi,klev) 214 call GatherField_omp( clwcon_p,clwcon_mpi,klev) 215 call GatherField_omp( ratqs_p,ratqs_mpi,klev) 216 call GatherField_omp( zmasq,masq_mpi,1) 217 218 c$OMP MASTER 219 call GatherField( rlat_mpi,rlat,1) 220 call GatherField( rlon_mpi,rlon,1) 221 call GatherField( tsol_mpi,tsol,nbsrf) 222 call GatherField( tsoil_mpi,tsoil,nsoilmx*nbsrf) 223 call GatherField( tslab_mpi,tslab,1) 224 call GatherField( seaice_mpi,seaice,1) 225 call GatherField( qsurf_mpi,qsurf,nbsrf) 226 call GatherField( qsol_mpi,qsol,1) 227 call GatherField( snow_mpi,snow,nbsrf) 228 call GatherField( albedo_mpi,albedo,nbsrf) 229 call GatherField( alblw_mpi,alblw,nbsrf) 230 call GatherField( evap_mpi,evap,nbsrf) 231 call GatherField( radsol_mpi,radsol,1) 232 call GatherField( rain_fall_mpi,rain_fall,1) 233 call GatherField( snow_fall_mpi,snow_fall,1) 234 call GatherField( sollw_mpi,sollw,1) 235 call GatherField( solsw_mpi,solsw,1) 236 call GatherField( fder_mpi,fder,1) 237 call GatherField( frugs_mpi,frugs,nbsrf) 238 call GatherField( agesno_mpi,agesno,nbsrf) 239 call GatherField( zmea_mpi,zmea,1) 240 call GatherField( zstd_mpi,zstd,1) 241 call GatherField( zsig_mpi,zsig,1) 242 call GatherField( zgam_mpi,zgam,1) 243 call GatherField( zthe_mpi,zthe,1) 244 call GatherField( zpic_mpi,zpic,1) 245 call GatherField( zval_mpi,zval,1) 246 call GatherField( rugsrel_mpi,rugsrel,1) 247 call GatherField( pctsrf_mpi,pctsrf, nbsrf) 248 call GatherField( run_off_lic_0_mpi,run_off_lic_0,1) 249 call GatherField( t_ancien_mpi,t_ancien,klev) 250 call GatherField( q_ancien_mpi,q_ancien,klev) 251 call GatherField( rnebcon_mpi,rnebcon,klev) 252 call GatherField( clwcon_mpi,clwcon,klev) 253 call GatherField( ratqs_mpi,ratqs,klev) 254 call GatherField( masq_mpi,masq,1) 255 256 DEALLOCATE( rlat_mpi, rlon_mpi) 257 DEALLOCATE( tsol_mpi) 258 DEALLOCATE( tsoil_mpi) 259 DEALLOCATE( tslab_mpi) 260 DEALLOCATE( seaice_mpi) 261 DEALLOCATE( qsurf_mpi) 262 DEALLOCATE( qsol_mpi) 263 DEALLOCATE( snow_mpi) 264 DEALLOCATE( albedo_mpi) 265 DEALLOCATE( alblw_mpi) 266 DEALLOCATE( evap_mpi) 267 DEALLOCATE( rain_fall_mpi) 268 DEALLOCATE( snow_fall_mpi) 269 DEALLOCATE( solsw_mpi) 270 DEALLOCATE( sollw_mpi) 271 DEALLOCATE( fder_mpi) 272 DEALLOCATE( radsol_mpi) 273 DEALLOCATE( frugs_mpi) 274 DEALLOCATE( agesno_mpi) 275 DEALLOCATE( zmea_mpi) 276 DEALLOCATE( zstd_mpi) 277 DEALLOCATE( zsig_mpi) 278 DEALLOCATE( zgam_mpi) 279 DEALLOCATE( zthe_mpi) 280 DEALLOCATE( zpic_mpi) 281 DEALLOCATE( zval_mpi) 282 DEALLOCATE( rugsrel_mpi) 283 DEALLOCATE( pctsrf_mpi) 284 DEALLOCATE( t_ancien_mpi) 285 DEALLOCATE( q_ancien_mpi) 286 DEALLOCATE( clwcon_mpi,rnebcon_mpi) 287 DEALLOCATE( ratqs_mpi) 288 DEALLOCATE( run_off_lic_0_mpi) 289 DEALLOCATE( masq_mpi) 290 291 if (phy_rank==0) then 292 77 293 ierr = NF_CREATE(fichnom, NF_CLOBBER, nid) 78 294 IF (ierr.NE.NF_NOERR) THEN … … 86 302 c 87 303 ierr = NF_DEF_DIM (nid, "index", length, idim1) 88 ierr = NF_DEF_DIM (nid, "points_physiques", klon , idim2)89 ierr = NF_DEF_DIM (nid, "horizon_vertical", klon *klev, idim3)304 ierr = NF_DEF_DIM (nid, "points_physiques", klon2, idim2) 305 ierr = NF_DEF_DIM (nid, "horizon_vertical", klon2*klev, idim3) 90 306 c 91 307 ierr = NF_ENDDEF(nid) … … 168 384 ierr = NF_ENDDEF(nid) 169 385 #ifdef NC_DOUBLE 170 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid, zmasq)171 #else 172 ierr = NF_PUT_VAR_REAL (nid,nvarid, zmasq)386 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,masq) 387 #else 388 ierr = NF_PUT_VAR_REAL (nid,nvarid,masq) 173 389 #endif 174 390 c BP ajout des fraction de chaque sous-surface … … 186 402 ierr = NF_ENDDEF(nid) 187 403 #ifdef NC_DOUBLE 188 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon , is_ter))189 #else 190 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon , is_ter))404 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2, is_ter)) 405 #else 406 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_ter)) 191 407 #endif 192 408 C … … 203 419 ierr = NF_ENDDEF(nid) 204 420 #ifdef NC_DOUBLE 205 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon ,is_lic))206 #else 207 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon , is_lic))421 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2,is_lic)) 422 #else 423 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_lic)) 208 424 #endif 209 425 C … … 220 436 ierr = NF_ENDDEF(nid) 221 437 #ifdef NC_DOUBLE 222 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon , is_oce))223 #else 224 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon , is_oce))438 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2, is_oce)) 439 #else 440 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_oce)) 225 441 #endif 226 442 C … … 237 453 ierr = NF_ENDDEF(nid) 238 454 #ifdef NC_DOUBLE 239 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon , is_sic))240 #else 241 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon , is_sic))455 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2, is_sic)) 456 #else 457 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_sic)) 242 458 #endif 243 459 C … … 547 763 #endif 548 764 c 765 endif 766 c$OMP END MASTER 767 cc ----> necessaire pour eviter bug openMP sur SX6 768 c$OMP MASTER 769 if (phy_rank==0) then 549 770 DO nsrf = 1, nbsrf 550 771 IF (nsrf.LE.99) THEN … … 799 1020 ierr = NF_CLOSE(nid) 800 1021 c 1022 endif ! phy_rank==0 1023 c$OMP END MASTER 801 1024 RETURN 802 1025 END -
LMDZ4/trunk/libf/phylmd/physiq.F
r719 r766 3 3 ! 4 4 c 5 c#define IO_DEBUG 6 5 7 SUBROUTINE physiq (nlon,nlev,nqmax, 6 8 . debut,lafin,rjourvrai,gmtime,pdtphys, … … 16 18 17 19 USE ioipsl 18 USE histcom 19 #ifdef INCA 20 USE chemshut 21 USE species_names 22 #ifdef INCA_CH4 23 ! USE obs_pos 24 #endif 25 #endif 20 USE comgeomphy 21 USE write_field_phy 22 USE dimphy 23 USE iophy 24 USE misc_mod, mydebug=>debug 25 USE vampir 26 26 IMPLICIT none 27 27 c====================================================================== … … 37 37 c CLEFS CPP POUR LES IO 38 38 c ===================== 39 #define histins 40 #define histhf 41 #define histday 39 c#define histhf 40 c#define histday 42 41 #define histmth 43 #define histmthNMC 44 #define histISCCP 42 c#define histins 43 c#define histmthNMC 44 c#define histISCCP 45 45 c====================================================================== 46 46 c modif ( P. Le Van , 12/10/98 ) … … 80 80 integer jjmp1 81 81 parameter (jjmp1=jjm+1-1/jjm) 82 #include "dimphy.h" 82 integer iip1 83 parameter (iip1=iim+1) 84 cym#include "dimphy.h" 83 85 #include "regdim.h" 84 86 #include "indicesol.h" … … 88 90 #include "logic.h" 89 91 #include "temps.h" 90 #include "comgeomphy.h"92 cym#include "comgeomphy.h" 91 93 #include "advtrac.h" 92 94 #include "iniprint.h" … … 106 108 #include "oasis.h" 107 109 INTEGER,SAVE :: npas, nexca 110 c$OMP THREADPRIVATE(npas, nexca) 108 111 logical rnpb 109 112 #ifdef INCA … … 115 118 character*6 ocean 116 119 SAVE ocean 117 120 c$OMP THREADPRIVATE(ocean) 118 121 c parameter (ocean = 'force ') 119 122 c parameter (ocean = 'couple') 120 123 logical ok_ocean 121 124 SAVE ok_ocean 125 c$OMP THREADPRIVATE(ok_ocean) 122 126 c 123 127 cIM "slab" ocean … … 137 141 logical ok_veget 138 142 save ok_veget 143 c$OMP THREADPRIVATE(ok_veget) 139 144 c parameter (ok_veget = .true.) 140 145 c parameter (ok_veget = .false.) … … 156 161 LOGICAL ok_journe ! sortir le fichier journalier 157 162 save ok_journe 163 c$OMP THREADPRIVATE(ok_journe) 158 164 c PARAMETER (ok_journe=.true.) 159 165 c 160 166 LOGICAL ok_mensuel ! sortir le fichier mensuel 161 167 save ok_mensuel 168 c$OMP THREADPRIVATE(ok_mensuel) 162 169 c PARAMETER (ok_mensuel=.true.) 163 170 c 164 171 LOGICAL ok_instan ! sortir le fichier instantane 165 172 save ok_instan 173 c$OMP THREADPRIVATE(ok_instan) 166 174 c PARAMETER (ok_instan=.true.) 167 175 c … … 172 180 REAL fm_therm(klon,klev+1) 173 181 REAL entr_therm(klon,klev) 174 real q2(klon,klev+1,nbsrf) 175 save q2 182 real,allocatable,save :: q2(:,:,:) 183 c$OMP THREADPRIVATE(q2) 184 cym save q2 176 185 c====================================================================== 177 186 c … … 207 216 REAL qx(klon,klev,nqmax) 208 217 209 REAL t_ancien(klon,klev), q_ancien(klon,klev) 210 SAVE t_ancien, q_ancien 218 REAL,allocatable,save :: t_ancien(:,:), q_ancien(:,:) 219 c$OMP THREADPRIVATE(t_ancien, q_ancien) 220 cym SAVE t_ancien, q_ancien 211 221 LOGICAL ancien_ok 212 222 SAVE ancien_ok 213 223 c$OMP THREADPRIVATE(ancien_ok) 214 224 REAL d_t_dyn(klon,klev) 215 225 REAL d_q_dyn(klon,klev) … … 233 243 CHARACTER*3 ctetaSTD(nbteta) 234 244 DATA ctetaSTD/'350','380','405'/ 245 SAVE ctetaSTD 246 c$OMP THREADPRIVATE(ctetaSTD) 235 247 REAL rtetaSTD(nbteta) 236 248 DATA rtetaSTD/350., 380., 405./ 249 SAVE rtetaSTD 250 c$OMP THREADPRIVATE(rtetaSTD) 237 251 c 238 252 REAL PVteta(klon,nbteta) … … 241 255 cMI Amip2 PV a theta constante 242 256 243 INTEGER klevp1, klevm1 244 PARAMETER(klevp1=klev+1,klevm1=klev-1) 245 #include "raddim.h" 246 c 247 REAL swdn0(klon,klevp1), swdn(klon,klevp1) 248 REAL swup0(klon,klevp1), swup(klon,klevp1) 249 SAVE swdn0 , swdn, swup0, swup 250 c 251 REAL SWdn200clr(klon), SWdn200(klon) 252 REAL SWup200clr(klon), SWup200(klon) 253 SAVE SWdn200clr, SWdn200, SWup200clr, SWup200 254 c 255 REAL lwdn0(klon,klevp1), lwdn(klon,klevp1) 256 REAL lwup0(klon,klevp1), lwup(klon,klevp1) 257 SAVE lwdn0 , lwdn, lwup0, lwup 258 c 259 REAL LWdn200clr(klon), LWdn200(klon) 260 REAL LWup200clr(klon), LWup200(klon) 261 SAVE LWdn200clr, LWdn200, LWup200clr, LWup200 262 c 263 REAL LWdnTOA(klon), LWdnTOAclr(klon) 264 SAVE LWdnTOA, LWdnTOAclr 257 cym INTEGER klevp1, klevm1 258 cym PARAMETER(klevp1=klev+1,klevm1=klev-1) 259 cym#include "raddim.h" 260 c 261 262 REAL,allocatable,save :: swdn0(:,:), swdn(:,:) 263 REAL,allocatable,save :: swup0(:,:), swup(:,:) 264 c$OMP THREADPRIVATE(swdn0 , swdn, swup0, swup) 265 cym SAVE swdn0 , swdn, swup0, swup 266 c 267 REAL,allocatable,save :: SWdn200clr(:), SWdn200(:) 268 REAL,allocatable,save :: SWup200clr(:), SWup200(:) 269 c$OMP THREADPRIVATE(SWdn200clr, SWdn200, SWup200clr, SWup200) 270 cym SAVE SWdn200clr, SWdn200, SWup200clr, SWup200 271 c 272 REAL,allocatable,save :: lwdn0(:,:), lwdn(:,:) 273 REAL,allocatable,save :: lwup0(:,:), lwup(:,:) 274 c$OMP THREADPRIVATE(lwdn0 , lwdn, lwup0, lwup) 275 cym SAVE lwdn0 , lwdn, lwup0, lwup 276 c 277 REAL,allocatable,save :: LWdn200clr(:), LWdn200(:) 278 REAL,allocatable,save :: LWup200clr(:), LWup200(:) 279 c$OMP THREADPRIVATE(LWdn200clr, LWdn200, LWup200clr, LWup200) 280 cym SAVE LWdn200clr, LWdn200, LWup200clr, LWup200 281 c 282 REAL,allocatable,save :: LWdnTOA(:), LWdnTOAclr(:) 283 c$OMP THREADPRIVATE(LWdnTOA, LWdnTOAclr) 284 cym SAVE LWdnTOA, LWdnTOAclr 265 285 c 266 286 cIM Amip2 … … 273 293 .60000., 50000., 40000., 30000., 25000., 20000., 274 294 .15000., 10000., 7000., 5000., 3000., 2000., 1000./ 295 SAVE rlevstd 296 c$OMP THREADPRIVATE(rlevSTD) 275 297 CHARACTER*4 clevSTD(nlevSTD) 276 298 DATA clevSTD/'1000','925 ','850 ','700 ','600 ', 277 299 .'500 ','400 ','300 ','250 ','200 ','150 ','100 ', 278 300 .'70 ','50 ','30 ','20 ','10 '/ 301 SAVE clevSTD 302 c$OMP THREADPRIVATE(clevSTD) 279 303 c 280 304 CHARACTER*3 bb2 … … 290 314 PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC 291 315 c 292 REAL tsumSTD(klon,nlevSTD,nout) 293 REAL usumSTD(klon,nlevSTD,nout), vsumSTD(klon,nlevSTD,nout) 294 REAL wsumSTD(klon,nlevSTD,nout), phisumSTD(klon,nlevSTD,nout) 295 REAL qsumSTD(klon,nlevSTD,nout), rhsumSTD(klon,nlevSTD,nout) 296 c 297 SAVE tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD, 298 . qsumSTD, rhsumSTD 316 REAL,SAVE,ALLOCATABLE :: tsumSTD(:,:,:) 317 REAL,SAVE,ALLOCATABLE :: usumSTD(:,:,:), vsumSTD(:,:,:) 318 REAL,SAVE,ALLOCATABLE :: wsumSTD(:,:,:), phisumSTD(:,:,:) 319 REAL,SAVE,ALLOCATABLE :: qsumSTD(:,:,:), rhsumSTD(:,:,:) 320 c 321 cym SAVE tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD, 322 cym . qsumSTD, rhsumSTD 323 c$OMP THREADPRIVATE(tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD) 324 c$OMP THREADPRIVATE(qsumSTD, rhsumSTD) 299 325 c 300 326 logical oknondef(klon,nlevSTD,nout) 301 real tnondef(klon,nlevSTD,nout) 302 save tnondef 327 real,SAVE,ALLOCATABLE :: tnondef(:,:,:) 328 c$OMP THREADPRIVATE(tnondef) 329 cym save tnondef 303 330 c 304 331 c les produits uvSTD, vqSTD, .., T2STD sont calcules … … 311 338 real wqSTD(klon,nlevSTD) 312 339 c 313 real uvsumSTD(klon,nlevSTD,nout)314 real vqsumSTD(klon,nlevSTD,nout)315 real vTsumSTD(klon,nlevSTD,nout)316 real wqsumSTD(klon,nlevSTD,nout)340 real,save,allocatable :: uvsumSTD(:,:,:) 341 real,save,allocatable :: vqsumSTD(:,:,:) 342 real,save,allocatable :: vTsumSTD(:,:,:) 343 real,save,allocatable :: wqsumSTD(:,:,:) 317 344 c 318 345 real vphiSTD(klon,nlevSTD) … … 322 349 real T2STD(klon,nlevSTD) 323 350 c 324 real vphisumSTD(klon,nlevSTD,nout) 325 real wTsumSTD(klon,nlevSTD,nout) 326 real u2sumSTD(klon,nlevSTD,nout) 327 real v2sumSTD(klon,nlevSTD,nout) 328 real T2sumSTD(klon,nlevSTD,nout) 329 c 330 SAVE uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD 331 SAVE vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD 351 real,save,allocatable :: vphisumSTD(:,:,:) 352 real,save,allocatable :: wTsumSTD(:,:,:) 353 real,save,allocatable :: u2sumSTD(:,:,:) 354 real,save,allocatable :: v2sumSTD(:,:,:) 355 real,save,allocatable :: T2sumSTD(:,:,:) 356 c 357 cym SAVE uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD 358 cym SAVE vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD 359 c$OMP THREADPRIVATE(uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD) 360 c$OMP THREADPRIVATE(vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD) 361 332 362 cMI Amip2 333 363 c … … 347 377 REAL cldt_s(klon),cldq_s(klon) !nuage total, eau liquide integree 348 378 349 INTEGER kp1379 INTEGER linv, kp1 350 380 c flwp, fiwp = Liquid Water Path & Ice Water Path (kg/m2) 351 381 c flwc, fiwc = Liquid Water Content & Ice Water Content (kg/kg) … … 361 391 cv3.4 362 392 INTEGER debug, debugcol 363 INTEGER npoints364 PARAMETER(npoints=klon)393 cym INTEGER npoints 394 cym PARAMETER(npoints=klon) 365 395 c 366 396 INTEGER sunlit(klon) !sunlit=1 if day; sunlit=0 if night … … 382 412 DATA ifreq_isccp/3/ 383 413 SAVE ifreq_isccp 414 c$OMP THREADPRIVATE(ifreq_isccp) 384 415 CHARACTER*5 typinout(napisccp) 385 416 DATA typinout/'i3od'/ 417 SAVE typinout 418 c$OMP THREADPRIVATE(typinout) 386 419 cIM verif boxptop BEG 387 420 CHARACTER*1 verticaxe(napisccp) 388 421 DATA verticaxe/'1'/ 422 SAVE verticaxe 423 c$OMP THREADPRIVATE(verticaxe) 389 424 cIM verif boxptop END 390 425 INTEGER nvlev(napisccp) … … 392 427 REAL t1, aa 393 428 REAL seed_re(klon,napisccp) 394 INTEGER seed_old(klon,napisccp) 395 SAVE seed_old 396 INTEGER iphy(iim,jjmp1) 429 INTEGER,ALLOCATABLE,SAVE :: seed_old(:,:) 430 cym SAVE seed_old 431 c$OMP THREADPRIVATE(seed_old) 432 cym !!!! A voir plus tard 433 cym INTEGER iphy(iim,jjmp1) 397 434 cIM parametres ISCCP END 398 435 c 399 436 c ncol = nb. de sous-colonnes pour chaque maille du GCM 400 437 c ncolmx = No. max. de sous-colonnes pour chaque maille du GCM 401 INTEGER ncol(napisccp), ncolmx, seed(klon,napisccp) 438 c INTEGER ncol(napisccp), ncolmx, seed(klon,napisccp) 439 INTEGER,SAVE :: ncol(napisccp) 440 INTEGER ncolmx, seed(klon,napisccp) 402 441 REAL nbsunlit(nregISCtot,klon,napisccp) !nbsunlit : moyenne de sunlit 403 442 PARAMETER(ncolmx=1500) … … 407 446 cIM verif boxptop END 408 447 c 409 REAL tautab(0:255) 410 INTEGER invtau(-20:45000) 448 REAL,SAVE :: tautab_omp(0:255),tautab(0:255) 449 INTEGER,SAVE :: invtau_omp(-20:45000),invtau(-20:45000) 450 c$OMP THREADPRIVATE(tautab,invtau) 411 451 REAL emsfc_lw 412 452 PARAMETER(emsfc_lw=0.99) … … 456 496 INTEGER iw, iwmax 457 497 REAL wmin, pas_w 498 c PARAMETER(wmin=-100.,pas_w=10.,iwmax=30) 499 cIM 051005 PARAMETER(wmin=-200.,pas_w=10.,iwmax=40) 458 500 PARAMETER(wmin=-100.,pas_w=10.,iwmax=20) 459 501 REAL o500(klon) … … 465 507 466 508 INTEGER linv 467 INTEGER pct_ocean(klon,nbregdyn) 468 SAVE pct_ocean 509 INTEGER,ALLOCATABLE,SAVE :: pct_ocean(:,:) 510 c$OMP THREADPRIVATE(pct_ocean) 511 cym SAVE pct_ocean 469 512 470 513 c sorties ISCCP … … 472 515 integer nid_isccp 473 516 save nid_isccp 517 c$OMP THREADPRIVATE(nid_isccp) 518 519 c data ok_isccp,ecrit_isccp/.true.,0.125/ 520 c data ok_isccp,ecrit_isccp/.true.,1./ 521 cIM 190504 data ok_isccp/.true./ 522 cIM 190504 #else 523 cIM 190504 data ok_isccp/.false./ 524 cIM 190504 #endif 474 525 475 526 REAL zx_tau(kmaxm1), zx_pc(lmaxm1), zx_o500(iwmax) 476 527 DATA zx_tau/0.0, 0.3, 1.3, 3.6, 9.4, 23., 60./ 528 SAVE zx_tau 529 cIM bad 151205 DATA zx_pc/50., 180., 310., 440., 560., 680., 800./ 477 530 DATA zx_pc/180., 310., 440., 560., 680., 800., 1000./ 478 531 SAVE zx_pc 532 c$OMP THREADPRIVATE(zx_tau,zx_pc) 479 533 c cldtopres pression au sommet des nuages 480 534 REAL cldtopres(lmaxm1), cldtopres3(lmax3) 481 535 DATA cldtopres/180., 310., 440., 560., 680., 800., 1000./ 482 536 DATA cldtopres3/440., 680., 1000./ 537 SAVE cldtopres,cldtopres3 538 c$OMP THREADPRIVATE(cldtopres,cldtopres3) 539 cIM 051005 BEG 483 540 REAL tmp_his1_3d(iwmax,kmaxm1,lmaxm1,nbregdyn,napisccp) 484 541 REAL tmp_his2_3d(iwmax,kmaxm1,lmaxm1,nbregdyn,napisccp) … … 492 549 CHARACTER *3 pclev(lmaxm1) 493 550 DATA pclev/'pc1','pc2','pc3','pc4','pc5','pc6','pc7'/ 551 SAVE taulev,pclev 552 c$OMP THREADPRIVATE(taulev,pclev) 494 553 c 495 554 c cnameisccp … … 545 604 . 'pc= 680-800hPa, tau> 60.', 546 605 . 'pc= 800-1000hPa, tau> 60.'/ 606 SAVE cnameisccp 607 c$OMP THREADPRIVATE(cnameisccp) 547 608 c 548 609 c REAL zx_lonx7(iimx7), zx_latx7(jjmp1x7) … … 558 619 integer nid_hf, nid_hf3d 559 620 save ok_hf, nid_hf, nid_hf3d 560 621 c$OMP THREADPRIVATE(ok_hf, nid_hf, nid_hf3d) 561 622 c QUESTION : noms de variables ? 562 623 … … 566 627 data ok_hf/.false./ 567 628 #endif 568 569 629 INTEGER longcles 570 630 PARAMETER ( longcles = 20 ) … … 575 635 REAL xjour 576 636 SAVE xjour 637 c$OMP THREADPRIVATE(xjour) 577 638 c 578 639 c … … 581 642 REAL dtime 582 643 SAVE dtime ! pas temporel de la physique 644 c$OMP THREADPRIVATE(dtime) 583 645 c 584 646 INTEGER radpas 585 647 SAVE radpas ! frequence d'appel rayonnement 586 c 587 REAL radsol(klon) 588 SAVE radsol ! bilan radiatif au sol calcule par code radiatif 589 c 590 REAL rlat(klon) 591 SAVE rlat ! latitude pour chaque point 592 c 593 REAL rlon(klon) 594 SAVE rlon ! longitude pour chaque point 595 c 596 REAL rlonPOS(klon) 597 SAVE rlonPOS ! longitudes > 0. pour chaque point 648 c$OMP THREADPRIVATE(radpas) 649 c 650 REAL,allocatable,save :: radsol(:) 651 c$OMP THREADPRIVATE(radsol) 652 cym SAVE radsol ! bilan radiatif au sol calcule par code radiatif 653 c 654 REAL,allocatable,save :: rlat(:) 655 c$OMP THREADPRIVATE(rlat) 656 cym SAVE rlat ! latitude pour chaque point 657 c 658 REAL,allocatable,save :: rlon(:) 659 c$OMP THREADPRIVATE(rlon) 660 cym SAVE rlon ! longitude pour chaque point 661 662 REAL,SAVE,ALLOCATABLE :: rlonPOS(:) 663 c$OMP THREADPRIVATE(rlonPOS) 664 cym SAVE rlonPOS ! longitudes > 0. pour chaque point 598 665 c 599 666 cc INTEGER iflag_con … … 602 669 INTEGER itap 603 670 SAVE itap ! compteur pour la physique 671 c$OMP THREADPRIVATE(itap) 604 672 c 605 673 REAL co2_ppm_etat0 … … 609 677 real slp(klon) ! sea level pressure 610 678 611 REAL ftsol(klon,nbsrf) 612 SAVE ftsol ! temperature du sol 679 REAL,allocatable,save :: ftsol(:,:) 680 c$OMP THREADPRIVATE(ftsol) 681 cym SAVE ftsol ! temperature du sol 682 613 683 cIM 614 REAL newsst(klon) !temperature de l'ocean 615 SAVE newsst 616 c 617 REAL ftsoil(klon,nsoilmx,nbsrf) 618 SAVE ftsoil ! temperature dans le sol 619 c 620 REAL fevap(klon,nbsrf) 621 SAVE fevap ! evaporation 622 REAL fluxlat(klon,nbsrf) 623 SAVE fluxlat 624 c 625 REAL deltat(klon) 626 SAVE deltat ! ecart avec la SST de reference 627 c 628 REAL fqsurf(klon,nbsrf) 629 SAVE fqsurf ! humidite de l'air au contact de la surface 630 c 631 REAL qsol(klon) 632 SAVE qsol ! hauteur d'eau dans le sol 633 c 634 REAL fsnow(klon,nbsrf) 635 SAVE fsnow ! epaisseur neigeuse 636 c 637 REAL falbe(klon,nbsrf) 638 SAVE falbe ! albedo par type de surface 639 REAL falblw(klon,nbsrf) 640 SAVE falblw ! albedo par type de surface 684 REAL,SAVE,ALLOCATABLE :: newsst(:) !temperature de l'ocean 685 c$OMP THREADPRIVATE(newsst) 686 cym SAVE newsst 687 c 688 REAL,allocatable,save :: ftsoil(:,:,:) 689 c$OMP THREADPRIVATE(ftsoil) 690 cym SAVE ftsoil ! temperature dans le sol 691 c 692 REAL,allocatable,save :: fevap(:,:) 693 c$OMP THREADPRIVATE(fevap) 694 cym SAVE fevap ! evaporation 695 REAL,allocatable,save :: fluxlat(:,:) 696 c$OMP THREADPRIVATE(fluxlat) 697 cym SAVE fluxlat 698 c 699 REAL,allocatable,save :: deltat(:) 700 c$OMP THREADPRIVATE(deltat) 701 cym SAVE deltat ! ecart avec la SST de reference 702 c 703 REAL,allocatable,save :: fqsurf(:,:) 704 c$OMP THREADPRIVATE(fqsurf) 705 cym SAVE fqsurf ! humidite de l'air au contact de la surface 706 c 707 REAL,allocatable,save :: qsol(:) 708 c$OMP THREADPRIVATE(qsol) 709 cym SAVE qsol ! hauteur d'eau dans le sol 710 c 711 REAL,allocatable,save :: fsnow(:,:) 712 c$OMP THREADPRIVATE(fsnow) 713 cym SAVE fsnow ! epaisseur neigeuse 714 c 715 REAL,allocatable,save :: falbe(:,:) 716 c$OMP THREADPRIVATE(falbe) 717 cym SAVE falbe ! albedo par type de surface 718 REAL,allocatable,save :: falblw(:,:) 719 c$OMP THREADPRIVATE(falblw) 720 cym SAVE falblw ! albedo par type de surface 641 721 642 722 c … … 644 724 c Parametres de l'Orographie a l'Echelle Sous-Maille (OESM): 645 725 c 646 REAL zmea(klon) 647 SAVE zmea ! orographie moyenne 648 c 649 REAL zstd(klon) 650 SAVE zstd ! deviation standard de l'OESM 651 c 652 REAL zsig(klon) 653 SAVE zsig ! pente de l'OESM 654 c 655 REAL zgam(klon) 656 save zgam ! anisotropie de l'OESM 657 c 658 REAL zthe(klon) 659 SAVE zthe ! orientation de l'OESM 660 c 661 REAL zpic(klon) 662 SAVE zpic ! Maximum de l'OESM 663 c 664 REAL zval(klon) 665 SAVE zval ! Minimum de l'OESM 666 c 667 REAL rugoro(klon) 668 SAVE rugoro ! longueur de rugosite de l'OESM 726 REAL,allocatable,save :: zmea(:) 727 c$OMP THREADPRIVATE(zmea) 728 cym SAVE zmea ! orographie moyenne 729 c 730 REAL,allocatable,save :: zstd(:) 731 c$OMP THREADPRIVATE(zstd) 732 cym SAVE zstd ! deviation standard de l'OESM 733 c 734 REAL,allocatable,save :: zsig(:) 735 c$OMP THREADPRIVATE(zsig) 736 cym SAVE zsig ! pente de l'OESM 737 c 738 REAL,allocatable,save :: zgam(:) 739 c$OMP THREADPRIVATE(zgam) 740 cym save zgam ! anisotropie de l'OESM 741 c 742 REAL,allocatable,save :: zthe(:) 743 c$OMP THREADPRIVATE(zthe) 744 cym SAVE zthe ! orientation de l'OESM 745 c 746 REAL,allocatable,save :: zpic(:) 747 c$OMP THREADPRIVATE(zpic) 748 cym SAVE zpic ! Maximum de l'OESM 749 c 750 REAL,allocatable,save :: zval(:) 751 c$OMP THREADPRIVATE(zval) 752 cym SAVE zval ! Minimum de l'OESM 753 c 754 REAL,allocatable,save :: rugoro(:) 755 c$OMP THREADPRIVATE(rugoro) 756 cym SAVE rugoro ! longueur de rugosite de l'OESM 669 757 c 670 758 cIM 141004 REAL zulow(klon),zvlow(klon),zustr(klon), zvstr(klon) 671 759 REAL zulow(klon),zvlow(klon) 672 760 c 673 REAL zuthe(klon),zvthe(klon) 674 SAVE zuthe 675 SAVE zvthe 761 REAL,allocatable,save :: zuthe(:),zvthe(:) 762 c$OMP THREADPRIVATE(zuthe,zvthe) 763 cym SAVE zuthe 764 cym SAVE zvthe 676 765 INTEGER igwd,idx(klon),itest(klon) 677 766 c 678 REAL agesno(klon,nbsrf) 679 SAVE agesno ! age de la neige 680 c 681 REAL alb_neig(klon) 682 SAVE alb_neig ! albedo de la neige 683 c 684 REAL run_off_lic_0(klon) 685 SAVE run_off_lic_0 767 REAL,allocatable,save :: agesno(:,:) 768 c$OMP THREADPRIVATE(agesno) 769 cym SAVE agesno ! age de la neige 770 c 771 REAL,allocatable,save :: alb_neig(:) 772 c$OMP THREADPRIVATE(alb_neig) 773 cym SAVE alb_neig ! albedo de la neige 774 c 775 REAL,allocatable,save :: run_off_lic_0(:) 776 c$OMP THREADPRIVATE(run_off_lic_0) 777 cym SAVE run_off_lic_0 686 778 cKE43 687 779 c Variables liees a la convection de K. Emanuel (sb): 688 780 c 689 REAL ema_workcbmf(klon) ! cloud base mass flux 690 SAVE ema_workcbmf 691 692 REAL ema_cbmf(klon) ! cloud base mass flux 693 SAVE ema_cbmf 694 695 REAL ema_pcb(klon) ! cloud base pressure 696 SAVE ema_pcb 697 698 REAL ema_pct(klon) ! cloud top pressure 699 SAVE ema_pct 781 REAL,allocatable,save :: ema_workcbmf(:) ! cloud base mass flux 782 c$OMP THREADPRIVATE(ema_workcbmf) 783 cym SAVE ema_workcbmf 784 785 REAL,allocatable,save :: ema_cbmf(:) ! cloud base mass flux 786 c$OMP THREADPRIVATE(ema_cbmf) 787 cym SAVE ema_cbmf 788 789 REAL,allocatable,save :: ema_pcb(:) ! cloud base pressure 790 c$OMP THREADPRIVATE(ema_pcb) 791 cym SAVE ema_pcb 792 793 REAL,allocatable,save :: ema_pct(:) ! cloud top pressure 794 c$OMP THREADPRIVATE(ema_pct) 795 cym SAVE ema_pct 700 796 701 797 REAL bas, top ! cloud base and top levels 702 798 SAVE bas 703 799 SAVE top 704 705 REAL Ma(klon,klev) ! undilute upward mass flux 706 SAVE Ma 707 REAL qcondc(klon,klev) ! in-cld water content from convect 708 SAVE qcondc 709 REAL ema_work1(klon, klev), ema_work2(klon, klev) 710 SAVE ema_work1, ema_work2 800 c$OMP THREADPRIVATE(bas, top) 801 802 REAL,allocatable,save :: Ma(:,:) ! undilute upward mass flux 803 c$OMP THREADPRIVATE(Ma) 804 cym SAVE Ma 805 REAL,allocatable,save :: qcondc(:,:) ! in-cld water content from convect 806 c$OMP THREADPRIVATE(qcondc) 807 cym SAVE qcondc 808 REAL,allocatable,save :: ema_work1(:, :), ema_work2(:, :) 809 c$OMP THREADPRIVATE(ema_work1,ema_work2) 810 cym SAVE ema_work1, ema_work2 711 811 REAL wdn(klon), tdn(klon), qdn(klon) 712 812 713 REAL wd(klon) ! sb 714 SAVE wd ! sb 813 REAL,allocatable,save :: wd(:) ! sb 814 c$OMP THREADPRIVATE(wd) 815 cym SAVE wd ! sb 715 816 716 817 c Variables locales pour la couche limite (al1): … … 730 831 REAL yu1(klon) ! vents dans la premiere couche U 731 832 REAL yv1(klon) ! vents dans la premiere couche V 732 REAL ffonte(klon,nbsrf) !Flux thermique utilise pour fondre la neige 733 REAL fqcalving(klon,nbsrf) !Flux d'eau "perdue" par la surface 833 REAL,SAVE,ALLOCATABLE :: ffonte(:,:) !Flux thermique utilise pour fondre la neige 834 c$OMP THREADPRIVATE(ffonte) 835 REAL,SAVE,ALLOCATABLE :: fqcalving(:,:) !Flux d'eau "perdu" par la surface 836 c$OMP THREADPRIVATE(fqcalving) 837 REAL,SAVE,ALLOCATABLE :: fqfonte(:,:) !Quantite d'eau de fonte des glaciers 838 c$OMP THREADPRIVATE(fqfonte) 734 839 c !et necessaire pour limiter la 735 840 c !hauteur de neige, en kg/m2/s 736 REAL zxffonte(klon), zxfqcalving(klon) 737 738 c$$$ LOGICAL offline ! Controle du stockage ds "physique" 739 c$$$ PARAMETER (offline=.false.) 740 c$$$ INTEGER physid 741 REAL pfrac_impa(klon,klev)! Produits des coefs lessivage impaction 742 save pfrac_impa 743 REAL pfrac_nucl(klon,klev)! Produits des coefs lessivage nucleation 744 save pfrac_nucl 745 REAL pfrac_1nucl(klon,klev)! Produits des coefs lessi nucl (alpha = 1) 746 save pfrac_1nucl 841 REAL zxffonte(klon), zxfqcalving(klon),zxfqfonte(klon) 842 843 c@$$ LOGICAL offline ! Controle du stockage ds "physique" 844 c@$$ PARAMETER (offline=.false.) 845 c@$$ INTEGER physid 846 REAL,allocatable,save :: pfrac_impa(:,:)! Produits des coefs lessivage impaction 847 c$OMP THREADPRIVATE(pfrac_impa) 848 cym save pfrac_impa 849 REAL,allocatable,save :: pfrac_nucl(:,:)! Produits des coefs lessivage nucleation 850 c$OMP THREADPRIVATE(pfrac_nucl) 851 cym save pfrac_nucl 852 REAL,allocatable,save :: pfrac_1nucl(:,:)! Produits des coefs lessi nucl (alpha = 1) 853 c$OMP THREADPRIVATE(pfrac_1nucl) 854 cym save pfrac_1nucl 747 855 REAL frac_impa(klon,klev) ! fractions d'aerosols lessivees (impaction) 748 856 REAL frac_nucl(klon,klev) ! idem (nucleation) … … 753 861 754 862 cAA 755 REAL rain_fall(klon) ! pluie 756 REAL snow_fall(klon) ! neige 757 save snow_fall, rain_fall 863 REAL,allocatable,save :: rain_fall(:) ! pluie 864 c$OMP THREADPRIVATE(rain_fall) 865 REAL,allocatable,save :: snow_fall(:) ! neige 866 c$OMP THREADPRIVATE(snow_fall) 867 cym save snow_fall, rain_fall 868 758 869 cIM cf FH pour Tiedtke 080604 759 870 REAL rain_tiedtke(klon),snow_tiedtke(klon) 760 871 c 761 REAL total_rain(klon), nday_rain(klon) 762 save nday_rain 763 c 872 873 REAL,allocatable,save :: total_rain(:), nday_rain(:) 874 c$OMP THREADPRIVATE(total_rain,nday_rain) 875 cym save total_rain, nday_rain 876 cIM 050204 END 764 877 REAL evap(klon), devap(klon) ! evaporation et sa derivee 765 878 REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee 766 REAL dlw(klon) ! derivee infra rouge 879 REAL,allocatable,save :: dlw(:) ! derivee infra rouge 880 c$OMP THREADPRIVATE(dlw) 767 881 cym 768 SAVE dlw882 cym SAVE dlw 769 883 cym 770 884 REAL bils(klon) ! bilan de chaleur au sol … … 773 887 REAL wfbils(klon,nbsrf) ! bilan de chaleur au sol, pour chaque 774 888 C ! type de sous-surface et pondere par la fraction 775 REAL fder(klon) ! Derive de flux (sensible et latente) 776 save fder 889 REAL,allocatable,save :: fder(:) ! Derive de flux (sensible et latente) 890 c$OMP THREADPRIVATE(fder) 891 cym save fder 777 892 REAL ve(klon) ! integr. verticale du transport meri. de l'energie 778 893 REAL vq(klon) ! integr. verticale du transport meri. de l'eau … … 780 895 REAL uq(klon) ! integr. verticale du transport zonal de l'eau 781 896 c 782 REAL frugs(klon,nbsrf) ! longueur de rugosite 783 save frugs 897 REAL,allocatable,save :: frugs(:,:) ! longueur de rugosite 898 c$OMP THREADPRIVATE(frugs) 899 cym save frugs 784 900 REAL zxrugs(klon) ! longueur de rugosite 785 901 c … … 790 906 INTEGER lmt_pas 791 907 SAVE lmt_pas ! frequence de mise a jour 792 REAL pctsrf(klon,nbsrf) 908 c$OMP THREADPRIVATE(lmt_pas) 909 REAL,allocatable,save :: pctsrf(:,:) 910 c$OMP THREADPRIVATE(pctsrf) 793 911 cIM 794 912 REAL pctsrf_new(klon,nbsrf) !pourcentage surfaces issus d'ORCHIDEE 795 REAL paire_ter(klon) !surfaces terre 796 c 797 SAVE pctsrf ! sous-fraction du sol 798 REAL albsol(klon) 799 SAVE albsol ! albedo du sol total 800 REAL albsollw(klon) 801 SAVE albsollw ! albedo du sol total 802 803 REAL wo(klon,klev) 804 SAVE wo ! ozone 913 914 cym REAL paire_ter(klon) !surfaces terre 915 REAL,allocatable,save :: paire_ter(:) !surfaces terre 916 c$OMP THREADPRIVATE(paire_ter) 917 918 cIM 919 cym SAVE pctsrf ! sous-fraction du sol 920 REAL,allocatable,save :: albsol(:) 921 c$OMP THREADPRIVATE(albsol) 922 cym SAVE albsol ! albedo du sol total 923 REAL,allocatable,save :: albsollw(:) 924 c$OMP THREADPRIVATE(albsollw) 925 cym SAVE albsollw ! albedo du sol total 926 927 REAL,allocatable,save :: wo(:,:) 928 c$OMP THREADPRIVATE(wo) 929 cym SAVE wo ! ozone 930 805 931 cIM sorties 806 932 REAL un_jour … … 849 975 c Variables locales 850 976 c 851 real clwcon(klon,klev),rnebcon(klon,klev) 852 real clwcon0(klon,klev),rnebcon0(klon,klev) 853 cIM cf. AM 081204 BEG 854 real clwcon0th(klon,klev),rnebcon0th(klon,klev) 855 cIM cf. AM 081204 END 856 save rnebcon, clwcon 857 977 real,allocatable,save :: clwcon(:,:),rnebcon(:,:) 978 c$OMP THREADPRIVATE(clwcon,rnebcon) 979 real,allocatable,save :: clwcon0(:,:),rnebcon0(:,:) 980 cym save rnebcon, clwcon 981 c$OMP THREADPRIVATE(clwcon0,rnebcon0) 858 982 REAL rhcl(klon,klev) ! humiditi relative ciel clair 859 983 REAL dialiq(klon,klev) ! eau liquide nuageuse … … 875 999 REAL zxfluxv(klon, klev) 876 1000 CXXX 877 REAL heat(klon,klev) ! chauffage solaire 878 REAL heat0(klon,klev) ! chauffage solaire ciel clair 879 REAL cool(klon,klev) ! refroidissement infrarouge 880 REAL cool0(klon,klev) ! refroidissement infrarouge ciel clair 881 REAL topsw(klon), toplw(klon), solsw(klon), sollw(klon) 882 real sollwdown(klon) ! downward LW flux at surface 1001 REAL,allocatable,save :: heat(:,:) ! chauffage solaire 1002 c$OMP THREADPRIVATE(heat) 1003 REAL,allocatable,save :: heat0(:,:) ! chauffage solaire ciel clair 1004 c$OMP THREADPRIVATE(heat0) 1005 REAL,allocatable,save :: cool(:,:) ! refroidissement infrarouge 1006 c$OMP THREADPRIVATE(cool) 1007 REAL,allocatable,save :: cool0(:,:) ! refroidissement infrarouge ciel clair 1008 c$OMP THREADPRIVATE(cool0) 1009 REAL,allocatable,save :: topsw(:), toplw(:), solsw(:), sollw(:) 1010 c$OMP THREADPRIVATE(topsw,toplw,solsw,sollw) 1011 real,allocatable,save :: sollwdown(:) ! downward LW flux at surface 1012 c$OMP THREADPRIVATE(sollwdown) 883 1013 cIM BEG 884 real sollwdownclr(klon) ! downward CS LW flux at surface 885 real toplwdown(klon) ! downward CS LW flux at TOA 886 real toplwdownclr(klon) ! downward CS LW flux at TOA 1014 real,allocatable,save :: sollwdownclr(:) ! downward CS LW flux at surface 1015 c$OMP THREADPRIVATE(sollwdownclr) 1016 real,allocatable,save :: toplwdown(:) ! downward CS LW flux at TOA 1017 c$OMP THREADPRIVATE(toplwdown) 1018 real,allocatable,save :: toplwdownclr(:) ! downward CS LW flux at TOA 1019 c$OMP THREADPRIVATE(toplwdownclr) 887 1020 cIM END 888 REAL topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon) 889 REAL albpla(klon) 1021 REAL,allocatable,save :: topsw0(:),toplw0(:),solsw0(:),sollw0(:) 1022 c$OMP THREADPRIVATE( topsw0,toplw0,solsw0,sollw0) 1023 REAL,allocatable,save :: albpla(:) 1024 c$OMP THREADPRIVATE(albpla) 890 1025 REAL fsollw(klon, nbsrf) ! bilan flux IR pour chaque sous surface 891 1026 REAL fsolsw(klon, nbsrf) ! flux solaire absorb. pour chaque sous surface 892 1027 c Le rayonnement n'est pas calcule tous les pas, il faut donc 893 1028 c sauvegarder les sorties du rayonnement 894 SAVE heat,cool,albpla,topsw,toplw,solsw,sollw,sollwdown895 SAVE sollwdownclr, toplwdown, toplwdownclr896 SAVE topsw0,toplw0,solsw0,sollw0, heat0, cool01029 cym SAVE heat,cool,albpla,topsw,toplw,solsw,sollw,sollwdown 1030 cym SAVE sollwdownclr, toplwdown, toplwdownclr 1031 cym SAVE topsw0,toplw0,solsw0,sollw0, heat0, cool0 897 1032 c 898 1033 INTEGER itaprad 899 1034 SAVE itaprad 1035 c$OMP THREADPRIVATE(itaprad) 900 1036 c 901 1037 REAL conv_q(klon,klev) ! convergence de l'humidite (kg/kg/s) … … 925 1061 c 926 1062 REAL zphi(klon,klev) 927 REAL zx_relief(iim,jjmp1) 928 REAL zx_aire(iim,jjmp1) 1063 cym A voir plus tard !! 1064 cym REAL zx_relief(iim,jjmp1) 1065 cym REAL zx_aire(iim,jjmp1) 929 1066 c 930 1067 cIM cf. AM Variables locales pour la CLA (hbtm2) 931 1068 c 932 REAL pblh(klon, nbsrf) ! Hauteur de couche limite 933 REAL plcl(klon, nbsrf) ! Niveau de condensation de la CLA 934 REAL capCL(klon, nbsrf) ! CAPE de couche limite 935 REAL oliqCL(klon, nbsrf) ! eau_liqu integree de couche limite 936 REAL cteiCL(klon, nbsrf) ! cloud top instab. crit. couche limite 937 REAL pblt(klon, nbsrf) ! T a la Hauteur de couche limite 938 REAL therm(klon, nbsrf) 939 REAL trmb1(klon, nbsrf) ! deep_cape 940 REAL trmb2(klon, nbsrf) ! inhibition 941 REAL trmb3(klon, nbsrf) ! Point Omega 1069 REAL,SAVE,ALLOCATABLE :: pblh(:, :) ! Hauteur de couche limite 1070 c$OMP THREADPRIVATE(pblh) 1071 REAL,SAVE,ALLOCATABLE :: plcl(:, :) ! Niveau de condensation de la CLA 1072 c$OMP THREADPRIVATE(plcl) 1073 REAL,SAVE,ALLOCATABLE :: capCL(:, :) ! CAPE de couche limite 1074 c$OMP THREADPRIVATE(capCL) 1075 REAL,SAVE,ALLOCATABLE :: oliqCL(:, :) ! eau_liqu integree de couche limite 1076 c$OMP THREADPRIVATE(oliqCL) 1077 REAL,SAVE,ALLOCATABLE :: cteiCL(:, :) ! cloud top instab. crit. couche limite 1078 c$OMP THREADPRIVATE(cteiCL) 1079 REAL,SAVE,ALLOCATABLE :: pblt(:, :) ! T a la Hauteur de couche limite 1080 c$OMP THREADPRIVATE(pblt) 1081 REAL,SAVE,ALLOCATABLE :: therm(:, :) 1082 c$OMP THREADPRIVATE(therm) 1083 REAL,SAVE,ALLOCATABLE :: trmb1(:, :) ! deep_cape 1084 c$OMP THREADPRIVATE(trmb1) 1085 REAL,SAVE,ALLOCATABLE :: trmb2(:, :) ! inhibition 1086 c$OMP THREADPRIVATE(trmb2) 1087 REAL,SAVE,ALLOCATABLE :: trmb3(:, :) ! Point Omega 1088 c$OMP THREADPRIVATE(trmb3) 942 1089 c Grdeurs de sorties 943 1090 REAL s_pblh(klon), s_lcl(klon), s_capCL(klon) … … 952 1099 REAL dnwd0(klon,klev) ! unsaturated downdraft mass flux 953 1100 REAL tvp(klon,klev) ! virtual temp of lifted parcel 954 REAL cape(klon) ! CAPE 955 SAVE cape 1101 REAL,allocatable,save :: cape(:) ! CAPE 1102 c$OMP THREADPRIVATE(cape) 1103 cym SAVE cape 956 1104 CHARACTER*40 capemaxcels !max(CAPE) 957 1105 958 REAL pbase(klon) ! cloud base pressure 959 SAVE pbase 960 REAL bbase(klon) ! cloud base buoyancy 961 SAVE bbase 1106 REAL,allocatable,save :: pbase(:) ! cloud base pressure 1107 c$OMP THREADPRIVATE(pbase) 1108 cym SAVE pbase 1109 REAL,allocatable,save :: bbase(:) ! cloud base buoyancy 1110 c$OMP THREADPRIVATE(bbase) 1111 cym SAVE bbase 962 1112 REAL rflag(klon) ! flag fonctionnement de convect 963 1113 INTEGER iflagctrl(klon) ! flag fonctionnement de convect … … 982 1132 c vdf: couche limite (Vertical DiFfusion) 983 1133 REAL d_t_con(klon,klev),d_q_con(klon,klev) 984 REAL d_u_con(klon,klev),d_v_con(klon,klev) 1134 REAL,SAVE,ALLOCATABLE :: d_u_con(:,:),d_v_con(:,:) 1135 c$OMP THREADPRIVATE(d_u_con,d_v_con) 985 1136 REAL d_t_lsc(klon,klev),d_q_lsc(klon,klev),d_ql_lsc(klon,klev) 986 1137 REAL d_t_ajs(klon,klev), d_q_ajs(klon,klev) … … 992 1143 ********************************************************* 993 1144 * declarations 994 real zqasc(klon,klev) 995 save zqasc 1145 real,save,allocatable :: zqasc(:,:) 1146 c$OMP THREADPRIVATE(zqasc) 1147 cym save zqasc 996 1148 997 1149 ********************************************************* … … 1005 1157 REAL prfl(klon,klev+1), psfl(klon,klev+1) 1006 1158 c 1007 INTEGER ibas_con(klon), itop_con(klon) 1159 INTEGER,allocatable,save :: ibas_con(:), itop_con(:) 1160 c$OMP THREADPRIVATE(ibas_con,itop_con) 1008 1161 cym 1009 SAVE ibas_con,itop_con1162 cym SAVE ibas_con,itop_con 1010 1163 cym 1011 REAL rain_con(klon), rain_lsc(klon) 1012 REAL snow_con(klon), snow_lsc(klon) 1164 REAL,SAVE,ALLOCATABLE :: rain_con(:) 1165 c$OMP THREADPRIVATE(rain_con) 1166 REAL rain_lsc(klon) 1167 REAL,SAVE,ALLOCATABLE :: snow_con(:) 1168 c$OMP THREADPRIVATE(snow_con) 1169 REAL snow_lsc(klon) 1013 1170 REAL d_ts(klon,nbsrf) 1014 1171 c … … 1022 1179 REAL d_u_oli(klon,klev), d_v_oli(klon,klev) !tendances dues a oro et lif 1023 1180 1024 REAL ratqs(klon,klev),ratqss(klon,klev),ratqsc(klon,klev) 1181 REAL,allocatable,save :: ratqs(:,:) 1182 c$OMP THREADPRIVATE(ratqs) 1183 REAL ratqss(klon,klev),ratqsc(klon,klev) 1025 1184 real ratqsbas,ratqshaut 1026 save ratqsbas,ratqshaut, ratqs 1185 cym save ratqsbas,ratqshaut, ratqs 1186 save ratqsbas,ratqshaut 1187 c$OMP THREADPRIVATE(ratqsbas,ratqshaut) 1027 1188 real zpt_conv(klon,klev) 1028 1189 … … 1032 1193 logical ok_newmicro 1033 1194 save ok_newmicro 1195 c$OMP THREADPRIVATE(ok_newmicro) 1034 1196 save fact_cldcon,facttemps 1197 c$OMP THREADPRIVATE(fact_cldcon,facttemps) 1035 1198 real facteur 1036 1199 1037 1200 integer iflag_cldcon 1038 1201 save iflag_cldcon 1039 1202 c$OMP THREADPRIVATE(iflag_cldcon) 1040 1203 logical ptconv(klon,klev) 1041 1204 cIM cf. AM 081204 BEG … … 1051 1214 integer imin_ins,imax_ins,jmin_ins,jmax_ins 1052 1215 save imin_ins,imax_ins,jmin_ins,jmax_ins 1216 c$OMP THREADPRIVATE(imin_ins,imax_ins,jmin_ins,jmax_ins) 1053 1217 c real lonmin_ins,lonmax_ins,latmin_ins 1054 1218 c s ,latmax_ins … … 1087 1251 REAL tabcntr0( length ) 1088 1252 c 1253 1089 1254 INTEGER ndex2d(iim*jjmp1),ndex3d(iim*jjmp1*klev) 1090 1255 cIM … … 1102 1267 INTEGER ij, imp1jmp1 1103 1268 PARAMETER(imp1jmp1=(iim+1)*jjmp1) 1269 cym A voir plus tard 1104 1270 REAL zx_tmp(imp1jmp1), airedyn(iim+1,jjmp1) 1105 1271 REAL padyn(iim+1,jjmp1,klev+1) … … 1111 1277 cIM 1112 1278 REAL airetot, pi 1113 REAL zm_wo(jjmp1, klev) 1279 cym A voir plus tard 1280 cym REAL zm_wo(jjmp1, klev) 1114 1281 cIM AMIP2 END 1115 1282 c 1116 1283 REAL zx_tmp_fi2d(klon) ! variable temporaire grille physique 1117 1284 REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D 1118 #ifdef histmthNMC 1119 REAL zx_tmp_NC(iim,jjmp1,nlevSTD) 1285 c#ifdef histmthNMC 1286 cym A voir plus tard !!!! 1287 cym REAL zx_tmp_NC(iim,jjmp1,nlevSTD) 1120 1288 REAL zx_tmp_fiNC(klon,nlevSTD) 1121 #endif1289 c#endif 1122 1290 REAL*8 zx_tmp2_fi3d(klon,klev) ! variable temporaire pour champs 3D 1123 1291 REAL zx_tmp_2d(iim,jjmp1), zx_tmp_3d(iim,jjmp1,klev) … … 1128 1296 SAVE nid_day, nid_mth, nid_ins, nid_nmc, nid_day_seri 1129 1297 SAVE nid_ctesGCM 1298 c$OMP THREADPRIVATE(nid_day, nid_mth, nid_ins, nid_nmc) 1299 c$OMP THREADPRIVATE(nid_day_seri,nid_ctesGCM) 1130 1300 c 1131 1301 cIM 280405 BEG 1132 1302 INTEGER nid_bilKPins, nid_bilKPave 1133 1303 SAVE nid_bilKPins, nid_bilKPave 1304 c$OMP THREADPRIVATE(nid_bilKPins, nid_bilKPave) 1134 1305 c 1135 1306 REAL ve_lay(klon,klev) ! transport meri. de l'energie a chaque niveau vert. … … 1146 1317 REAL zout_isccp(napisccp) 1147 1318 SAVE zcals, zcalh, zoutj, zout_isccp 1319 c$OMP THREADPRIVATE(zcals, zcalh, zoutj, zout_isccp) 1148 1320 1149 1321 real zjulian 1150 1322 save zjulian 1323 c$OMP THREADPRIVATE(zjulian) 1151 1324 1152 1325 character*20 modname … … 1172 1345 SAVE h_vcol_tot, h_dair_tot, h_qw_tot, h_ql_tot 1173 1346 $ , h_qs_tot, qw_tot, ql_tot, qs_tot , ec_tot 1347 c$OMP THREADPRIVATE(h_vcol_tot, h_dair_tot, h_qw_tot, h_ql_tot, 1348 c$OMP+ h_qs_tot, qw_tot, ql_tot, qs_tot , ec_tot) 1174 1349 REAL d_h_vcol, d_h_dair, d_qt, d_qw, d_ql, d_qs, d_ec 1175 1350 REAL d_h_vcol_phy 1176 1351 REAL fs_bound, fq_bound 1177 1352 SAVE d_h_vcol_phy 1353 c$OMP THREADPRIVATE(d_h_vcol_phy) 1178 1354 REAL zero_v(klon) 1179 1355 CHARACTER*15 ztit 1180 1356 INTEGER ip_ebil ! PRINT level for energy conserv. diag. 1357 SAVE ip_ebil 1358 DATA ip_ebil/0/ 1359 c$OMP THREADPRIVATE(ip_ebil) 1360 INTEGER if_ebil ! level for energy conserv. dignostics 1361 SAVE if_ebil 1362 c$OMP THREADPRIVATE(if_ebil) 1181 1363 c+jld ec_conser 1182 1364 REAL d_t_ec(klon,klev) ! tendance du a la conersion Ec -> E thermique … … 1184 1366 c-jld ec_conser 1185 1367 cIM: t2m, q2m, u10m, v10m et t2mincels, t2maxcels 1186 REAL t2m(klon,nbsrf), q2m(klon,nbsrf) !temperature, humidite a 2m 1187 REAL u10m(klon,nbsrf), v10m(klon,nbsrf) !vents a 10m 1368 REAL,SAVE,ALLOCATABLE :: t2m(:,:), q2m(:,:) !temperature, humidite a 2m 1369 c$OMP THREADPRIVATE(t2m,q2m) 1370 REAL,SAVE,ALLOCATABLE :: u10m(:,:), v10m(:,:) !vents a 10m 1371 c$OMP THREADPRIVATE(u10m,v10m) 1188 1372 REAL zt2m(klon), zq2m(klon) !temp., hum. 2m moyenne s/ 1 maille 1189 1373 REAL zu10m(klon), zv10m(klon) !vents a 10m moyennes s/1 maille … … 1192 1376 cjq Aerosol effects (Johannes Quaas, 27/11/2003) 1193 1377 REAL sulfate(klon, klev) ! SO4 aerosol concentration [ug/m3] 1194 REAL sulfate_pi(klon, klev) ! SO4 aerosol concentration [ug/m3] (pre-industrial value) 1195 SAVE sulfate_pi 1378 REAL,allocatable,save :: sulfate_pi(:,:) ! SO4 aerosol concentration [ug/m3] (pre-industrial value) 1379 c$OMP THREADPRIVATE(sulfate_pi) 1380 cym SAVE sulfate_pi 1196 1381 1197 1382 REAL cldtaupi(klon,klev) ! Cloud optical thickness for pre-industrial (pi) aerosols … … 1203 1388 1204 1389 ! Aerosol optical properties 1205 REAL tau_ae(klon,klev,2), piz_ae(klon,klev,2) 1206 REAL cg_ae(klon,klev,2) 1207 1208 REAL topswad(klon), solswad(klon) ! Aerosol direct effect. 1390 REAL,SAVE,ALLOCATABLE :: tau_ae(:,:,:), piz_ae(:,:,:) 1391 c$OMP THREADPRIVATE(tau_ae,piz_ae) 1392 REAL,SAVE,ALLOCATABLE :: cg_ae(:,:,:) 1393 c$OMP THREADPRIVATE(cg_ae) 1394 1395 REAL,SAVE,ALLOCATABLE :: topswad(:), solswad(:) ! Aerosol direct effect. 1396 c$OMP THREADPRIVATE(topswad,solswad) 1209 1397 ! ok_ade=T -ADE=topswad-topsw 1210 1398 1211 REAL topswai(klon), solswai(klon) ! Aerosol indirect effect. 1399 REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:) ! Aerosol indirect effect. 1400 c$OMP THREADPRIVATE(topswai,solswai) 1212 1401 ! ok_aie=T -> 1213 1402 ! ok_ade=T -AIE=topswai-topswad … … 1221 1410 cym 1222 1411 SAVE ok_ade, ok_aie, bl95_b0, bl95_b1 1223 cym 1224 c Anne 1225 SAVE u10m 1226 SAVE v10m 1227 SAVE t2m 1228 SAVE q2m 1229 SAVE ffonte 1230 SAVE fqcalving 1231 SAVE piz_ae 1232 SAVE tau_ae 1233 SAVE cg_ae 1234 SAVE rain_con 1235 SAVE snow_con 1236 SAVE topswai 1237 SAVE topswad 1238 SAVE solswai 1239 SAVE solswad 1240 SAVE d_u_con 1241 SAVE d_v_con 1242 SAVE rnebcon0 1243 SAVE clwcon0 1244 SAVE paire_ter 1245 c SAVE nhistoW 1246 c SAVE histoW 1247 c SAVE anne 20/09/2005 1248 SAVE pblh 1249 SAVE plcl 1250 SAVE capCL 1251 SAVE oliqCL 1252 SAVE cteiCL 1253 SAVE pblt 1254 SAVE therm 1255 SAVE trmb1 1256 SAVE trmb2 1257 SAVE trmb3 1258 1259 c fin Anne 1260 cjq-end 1412 c$OMP THREADPRIVATE(ok_ade, ok_aie, bl95_b0, bl95_b1) 1413 1261 1414 c 1262 1415 c Declaration des constantes et des fonctions thermodynamiques 1263 1416 c 1417 REAL Field_tmp(klon2,klevp1) 1418 LOGICAL,SAVE :: first=.true. 1419 c$OMP THREADPRIVATE(first) 1264 1420 #include "YOMCST.h" 1265 1421 #include "YOETHF.h" … … 1273 1429 c 1274 1430 c====================================================================== 1275 modname = 'physiq' 1431 1432 cym => necessaire pour iflag_con != 2 1433 pmfd(:,:) = 0. 1434 pen_u(:,:) = 0. 1435 pen_d(:,:) = 0. 1436 pde_d(:,:) = 0. 1437 pde_u(:,:) = 0. 1438 aam=0. 1439 torsfc=0. 1440 cym => pour le couple ocean => revoir dans clmain/intersurf 1441 fluxg(:)=0. 1442 fluxo(:)=0. 1443 1444 if (first) then 1445 1446 allocate( t_ancien(klon,klev), q_ancien(klon,klev)) 1447 allocate( q2(klon,klev+1,nbsrf)) 1448 allocate( swdn0(klon,klevp1), swdn(klon,klevp1)) 1449 allocate( swup0(klon,klevp1), swup(klon,klevp1)) 1450 allocate( SWdn200clr(klon), SWdn200(klon)) 1451 allocate( SWup200clr(klon), SWup200(klon)) 1452 allocate( lwdn0(klon,klevp1), lwdn(klon,klevp1)) 1453 allocate( lwup0(klon,klevp1), lwup(klon,klevp1)) 1454 allocate( LWdn200clr(klon), LWdn200(klon)) 1455 allocate( LWup200clr(klon), LWup200(klon)) 1456 allocate( LWdnTOA(klon), LWdnTOAclr(klon)) 1457 allocate( radsol(klon)) 1458 allocate( rlat(klon)) 1459 allocate( rlon(klon)) 1460 allocate( ftsol(klon,nbsrf)) 1461 allocate( ftsoil(klon,nsoilmx,nbsrf)) 1462 allocate( fevap(klon,nbsrf)) 1463 allocate( fluxlat(klon,nbsrf)) 1464 allocate( deltat(klon)) 1465 allocate( fqsurf(klon,nbsrf)) 1466 allocate( qsol(klon)) 1467 allocate( fsnow(klon,nbsrf)) 1468 allocate( falbe(klon,nbsrf)) 1469 allocate( falblw(klon,nbsrf)) 1470 allocate( zmea(klon)) 1471 allocate( zstd(klon)) 1472 allocate( zsig(klon)) 1473 allocate( zgam(klon)) 1474 allocate( zthe(klon)) 1475 allocate( zpic(klon)) 1476 allocate( zval(klon)) 1477 allocate( rugoro(klon)) 1478 allocate( zuthe(klon),zvthe(klon)) 1479 allocate( agesno(klon,nbsrf)) 1480 allocate( alb_neig(klon)) 1481 allocate( run_off_lic_0(klon)) 1482 allocate( ema_workcbmf(klon)) 1483 allocate( ema_cbmf(klon)) 1484 allocate( ema_pcb(klon)) 1485 allocate( ema_pct(klon)) 1486 allocate( Ma(klon,klev) ) 1487 allocate( qcondc(klon,klev)) 1488 allocate( ema_work1(klon, klev), ema_work2(klon, klev)) 1489 allocate( wd(klon) ) 1490 allocate( pfrac_impa(klon,klev)) 1491 allocate( pfrac_nucl(klon,klev)) 1492 allocate( pfrac_1nucl(klon,klev)) 1493 allocate( rain_fall(klon) ) 1494 allocate( snow_fall(klon) ) 1495 allocate( total_rain(klon), nday_rain(klon)) 1496 allocate( dlw(klon) ) 1497 allocate( fder(klon) ) 1498 allocate( frugs(klon,nbsrf) ) 1499 allocate( pctsrf(klon,nbsrf)) 1500 allocate( albsol(klon)) 1501 allocate( albsollw(klon)) 1502 allocate( wo(klon,klev)) 1503 allocate( clwcon(klon,klev),rnebcon(klon,klev)) 1504 allocate( heat(klon,klev) ) 1505 allocate( heat0(klon,klev) ) 1506 allocate( cool(klon,klev) ) 1507 allocate( cool0(klon,klev) ) 1508 allocate( topsw(klon), toplw(klon), solsw(klon), sollw(klon)) 1509 allocate( sollwdown(klon) ) 1510 allocate( sollwdownclr(klon) ) 1511 allocate( toplwdown(klon) ) 1512 allocate( toplwdownclr(klon) ) 1513 allocate( topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon)) 1514 allocate( albpla(klon)) 1515 allocate( cape(klon) ) 1516 allocate( pbase(klon) ) 1517 allocate( bbase(klon) ) 1518 allocate( ibas_con(klon), itop_con(klon)) 1519 allocate( ratqs(klon,klev)) 1520 allocate( sulfate_pi(klon, klev)) 1521 allocate( paire_ter(klon)) 1522 allocate(tsumSTD(klon,nlevSTD,nout)) 1523 allocate(usumSTD(klon,nlevSTD,nout)) 1524 allocate(vsumSTD(klon,nlevSTD,nout)) 1525 allocate(wsumSTD(klon,nlevSTD,nout)) 1526 allocate(phisumSTD(klon,nlevSTD,nout)) 1527 allocate(qsumSTD(klon,nlevSTD,nout)) 1528 allocate(rhsumSTD(klon,nlevSTD,nout)) 1529 allocate(uvsumSTD(klon,nlevSTD,nout)) 1530 allocate(vqsumSTD(klon,nlevSTD,nout)) 1531 allocate(vTsumSTD(klon,nlevSTD,nout)) 1532 allocate(wqsumSTD(klon,nlevSTD,nout)) 1533 allocate( vphisumSTD(klon,nlevSTD,nout)) 1534 allocate( wTsumSTD(klon,nlevSTD,nout)) 1535 allocate( u2sumSTD(klon,nlevSTD,nout)) 1536 allocate( v2sumSTD(klon,nlevSTD,nout)) 1537 allocate( T2sumSTD(klon,nlevSTD,nout)) 1538 allocate( seed_old(klon,napisccp)) 1539 allocate( pct_ocean(klon,nbregdyn)) 1540 allocate( rlonPOS(klon)) 1541 allocate( newsst(klon)) 1542 allocate( zqasc(klon,klev)) 1543 allocate( therm(klon, nbsrf)) 1544 allocate( rain_con(klon)) 1545 allocate( pblt(klon, nbsrf)) 1546 allocate( t2m(klon,nbsrf), q2m(klon,nbsrf) ) 1547 allocate( u10m(klon,nbsrf), v10m(klon,nbsrf)) 1548 allocate( topswad(klon), solswad(klon)) 1549 allocate( topswai(klon), solswai(klon) ) 1550 allocate( ffonte(klon,nbsrf)) 1551 allocate( fqcalving(klon,nbsrf)) 1552 allocate( fqfonte(klon,nbsrf)) 1553 allocate( pblh(klon, nbsrf)) 1554 allocate( plcl(klon, nbsrf)) 1555 allocate( capCL(klon, nbsrf)) 1556 allocate( oliqCL(klon, nbsrf)) 1557 allocate( cteiCL(klon, nbsrf)) 1558 allocate( trmb1(klon, nbsrf)) 1559 allocate( trmb2(klon, nbsrf)) 1560 allocate( trmb3(klon, nbsrf)) 1561 allocate( clwcon0(klon,klev),rnebcon0(klon,klev)) 1562 allocate( tau_ae(klon,klev,2), piz_ae(klon,klev,2)) 1563 allocate( cg_ae(klon,klev,2)) 1564 allocate( snow_con(klon)) 1565 allocate( tnondef(klon,nlevSTD,nout)) 1566 allocate( d_u_con(klon,klev),d_v_con(klon,klev)) 1567 1568 1569 paire_ter(:)=0. 1570 clwcon(:,:)=0. 1571 rnebcon(:,:)=0. 1572 ratqs(:,:)=0. 1573 run_off_lic_0(:)=0. 1574 sollw(:)=0. 1575 ema_work1(:,:)=0. 1576 ema_work2(:,:)=0. 1577 cym Attention pbase pas initialise dans concvl !!!! 1578 pbase(:)=0 1579 1580 first=.false. 1581 endif 1582 1583 1584 modname = 'physiq' 1276 1585 cIM 1277 1586 IF (ip_ebil_phy.ge.1) THEN … … 1305 1614 ffonte(:,:)=0. 1306 1615 fqcalving(:,:)=0. 1616 fqfonte(:,:)=0. 1307 1617 piz_ae(:,:,:)=0. 1308 1618 tau_ae(:,:,:)=0. … … 1378 1688 . run_off_lic_0) 1379 1689 1690 DO i=1,klon 1691 IF ( abs( pctsrf(i, is_ter) + pctsrf(i, is_lic) + 1692 $ pctsrf(i, is_oce) + pctsrf(i, is_sic) - 1.) .GT. EPSFRA) 1693 $ THEN 1694 WRITE(*,*) 'physiq : pb sous surface au point ', i, 1695 $ pctsrf(i, 1 : nbsrf) 1696 ENDIF 1697 ENDDO 1698 1380 1699 c ATTENTION : il faudra a terme relire q2 dans l'etat initial 1381 1700 q2(:,:,:)=1.e-8 … … 1583 1902 #endif 1584 1903 1904 c#include "ini_histday_seri.h" 1585 1905 #include "ini_histday_seri.h" 1586 1906 … … 1606 1926 c 1607 1927 #ifdef INCA 1928 call VTe(VTphysiq) 1929 call VTb(VTinca) 1608 1930 iii = MOD(NINT(xjour),360) 1609 1931 calday = FLOAT(iii) + gmtime … … 1612 1934 WRITE(lunout,*) 'Appel CHEMINI ...' 1613 1935 #endif 1614 CALL chemini( rpi,1936 CALL chemini( 1615 1937 $ rg, 1616 1938 $ ra, … … 1628 1950 WRITE(lunout,*) 'OK.' 1629 1951 #endif 1952 call VTe(VTinca) 1953 call VTb(VTphysiq) 1630 1954 #endif 1631 1955 c … … 1865 2189 DO nsrf = 1, nbsrf 1866 2190 DO i = 1, klon 1867 c $$$ fsollw(i,nsrf) = sollwdown(i) - RSIGMA*ftsol(i,nsrf)**41868 c $$$ fsollw(i,nsrf) = sollw(i)2191 c@$$ fsollw(i,nsrf) = sollwdown(i) - RSIGMA*ftsol(i,nsrf)**4 2192 c@$$ fsollw(i,nsrf) = sollw(i) 1869 2193 fsollw(i,nsrf) = sollw(i) 1870 2194 $ + 4.0*RSIGMA*ztsol(i)**3 * (ztsol(i)-ftsol(i,nsrf)) … … 1872 2196 ENDDO 1873 2197 ENDDO 1874 2198 2199 cYM !!!!!!!!!!!!!!!!!!!!!!!!!!!! 2200 cYM Attention verrue 2201 cYM ---> A supprimer plus tard 2202 cYM pour etre integre dans 2203 cYM ORCHIDEE 2204 DO i = 1, klon 2205 sollwdown(i)=sollw(i)+RSIGMA*ztsol(i)**4 2206 ENDDO 2207 cYM !!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2208 1875 2209 fder = dlw 1876 2210 2211 if (mydebug) then 2212 call writefield_phy('u_seri',u_seri,llm) 2213 call writefield_phy('v_seri',v_seri,llm) 2214 call writefield_phy('t_seri',t_seri,llm) 2215 call writefield_phy('q_seri',q_seri,llm) 2216 endif 2217 1877 2218 IF (check) THEN 1878 2219 amn=MIN(tslab(1),1000.) … … 1906 2247 s pblh,capCL,oliqCL,cteiCL,pblT, 1907 2248 s therm,trmb1,trmb2,trmb3,plcl, 1908 s fqcalving, f fonte, run_off_lic_0,2249 s fqcalving, fqfonte,ffonte, run_off_lic_0, 1909 2250 cIM "slab" ocean 1910 2251 s fluxo, fluxg, tslab, seaice) … … 1948 2289 ENDDO 1949 2290 ENDDO 2291 2292 if (mydebug) then 2293 call writefield_phy('u_seri',u_seri,llm) 2294 call writefield_phy('v_seri',v_seri,llm) 2295 call writefield_phy('t_seri',t_seri,llm) 2296 call writefield_phy('q_seri',q_seri,llm) 2297 endif 2298 2299 1950 2300 cIM 1951 2301 IF (ip_ebil_phy.ge.2) THEN … … 1975 2325 zxffonte(i) = 0.0 1976 2326 zxfqcalving(i) = 0.0 2327 zxfqfonte(i) = 0.0 1977 2328 cIM cf. AM 081204 BEG 1978 2329 c … … 2016 2367 zxfqcalving(i) = zxfqcalving(i) + 2017 2368 . fqcalving(i,nsrf)*pctsrf(i,nsrf) 2369 zxfqfonte(i) = zxfqfonte(i) + 2370 . fqfonte(i,nsrf)*pctsrf(i,nsrf) 2018 2371 cIM cf. AM 081204 BEG 2019 2372 s_pblh(i) = s_pblh(i) + pblh(i,nsrf)*pctsrf(i,nsrf) … … 2054 2407 ffonte(i,nsrf) = zxffonte(i) 2055 2408 fqcalving(i,nsrf) = zxfqcalving(i) 2409 fqfonte(i,nsrf) = zxfqfonte(i) 2056 2410 pblh(i,nsrf)=s_pblh(i) 2057 2411 plcl(i,nsrf)=s_lcl(i) … … 2168 2522 ENDIF ! ok_cvl 2169 2523 2524 c 2525 c Correction precip 2526 rain_con = rain_con * cvl_corr 2527 snow_con = snow_con * cvl_corr 2528 c 2529 2170 2530 IF (.NOT. ok_gust) THEN 2171 2531 do i = 1, klon … … 2229 2589 ENDDO 2230 2590 ENDDO 2591 2592 if (mydebug) then 2593 call writefield_phy('u_seri',u_seri,llm) 2594 call writefield_phy('v_seri',v_seri,llm) 2595 call writefield_phy('t_seri',t_seri,llm) 2596 call writefield_phy('q_seri',q_seri,llm) 2597 endif 2598 2231 2599 cIM 2232 2600 IF (ip_ebil_phy.ge.2) THEN … … 2429 2797 s , fs_bound, fq_bound ) 2430 2798 END IF 2799 2800 if (mydebug) then 2801 call writefield_phy('u_seri',u_seri,llm) 2802 call writefield_phy('v_seri',v_seri,llm) 2803 call writefield_phy('t_seri',t_seri,llm) 2804 call writefield_phy('q_seri',q_seri,llm) 2805 endif 2806 2431 2807 c 2432 2808 c------------------------------------------------------------------- … … 2477 2853 ELSE IF (iflag_cldcon.eq.3) THEN 2478 2854 c On prend pour les nuages convectifs le max du calcul de la 2479 c convection et du calcul du pas de temps pr écédent diminuéd'un facteur2855 c convection et du calcul du pas de temps precedent diminue d'un facteur 2480 2856 c facttemps 2481 2857 c facttemps=pdtphys/1.e4 … … 2491 2867 enddo 2492 2868 enddo 2869 2870 c 2871 cjq - introduce the aerosol direct and first indirect radiative forcings 2872 cjq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr) 2873 IF (ok_ade.OR.ok_aie) THEN 2874 ! Get sulfate aerosol distribution 2875 CALL readsulfate(rjourvrai, debut, sulfate) 2876 CALL readsulfate_preind(rjourvrai, debut, sulfate_pi) 2877 2878 ! Calculate aerosol optical properties (Olivier Boucher) 2879 CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl, 2880 . tau_ae, piz_ae, cg_ae, aerindex) 2881 cym 2882 ELSE 2883 tau_ae(:,:,:)=0.0 2884 piz_ae(:,:,:)=0.0 2885 cg_ae(:,:,:)=0.0 2886 cym 2887 ENDIF 2493 2888 2494 2889 c … … 2607 3002 . EXP((Lheat *qsat2m(i))/(RCPD*zt2m(i))) 2608 3003 ENDDO 2609 c 2610 cjq - introduce the aerosol direct and first indirect radiative forcings 2611 cjq - Johannes Quaas, 27/11/2003 (quaas@lmd.jussieu.fr) 2612 IF (ok_ade.OR.ok_aie) THEN 2613 ! Get sulfate aerosol distribution 2614 CALL readsulfate(rjourvrai, debut, sulfate) 2615 CALL readsulfate_preind(rjourvrai, debut, sulfate_pi) 2616 2617 ! Calculate aerosol optical properties (Olivier Boucher) 2618 CALL aeropt(pplay, paprs, t_seri, sulfate, rhcl, 2619 . tau_ae, piz_ae, cg_ae, aerindex) 2620 cym 2621 ELSE 2622 tau_ae(:,:,:)=0.0 2623 piz_ae(:,:,:)=0.0 2624 cg_ae(:,:,:)=0.0 2625 cym 2626 ENDIF 3004 2627 3005 2628 3006 #ifdef INCA 3007 call VTe(VTphysiq) 3008 call VTb(VTinca) 2629 3009 calday = FLOAT(julien) + gmtime 2630 3010 2631 3011 #ifdef INCA_AER 2632 call AEROSOL_METEO_CALC(calday,pdtphys,pplay,paprs,t,pmflxr,pmflxs ,2633 & prfl,psfl,pctsrf(1,3),airephy,xjour,rlat,rlon)3012 call AEROSOL_METEO_CALC(calday,pdtphys,pplay,paprs,t,pmflxr,pmflxs 3013 & ,prfl,psfl,pctsrf,airephy,xjour,rlat,rlon,u10m,v10m) 2634 3014 #endif 2635 3015 … … 2684 3064 WRITE(lunout,*)'OK.' 2685 3065 #endif 3066 call VTe(VTinca) 3067 call VTb(VTphysiq) 2686 3068 #endif 2687 3069 c … … 2722 3104 . + falblw(i,is_sic) * pctsrf(i,is_sic) 2723 3105 ENDDO 3106 3107 if (mydebug) then 3108 call writefield_phy('u_seri',u_seri,llm) 3109 call writefield_phy('v_seri',v_seri,llm) 3110 call writefield_phy('t_seri',t_seri,llm) 3111 call writefield_phy('q_seri',q_seri,llm) 3112 endif 3113 2724 3114 CALL radlwsw ! nouveau rayonnement (compatible Arpege-IFS) 2725 3115 e (dist, rmu0, fract, … … 2750 3140 ENDDO 2751 3141 ENDDO 3142 c 3143 if (mydebug) then 3144 call writefield_phy('u_seri',u_seri,llm) 3145 call writefield_phy('v_seri',v_seri,llm) 3146 call writefield_phy('t_seri',t_seri,llm) 3147 call writefield_phy('q_seri',q_seri,llm) 3148 endif 3149 2752 3150 cIM 2753 3151 IF (ip_ebil_phy.ge.2) THEN … … 2837 3235 ENDIF ! fin de test sur ok_orodr 2838 3236 c 3237 if (mydebug) then 3238 call writefield_phy('u_seri',u_seri,llm) 3239 call writefield_phy('v_seri',v_seri,llm) 3240 call writefield_phy('t_seri',t_seri,llm) 3241 call writefield_phy('q_seri',q_seri,llm) 3242 endif 3243 2839 3244 IF (ok_orolf) THEN 2840 3245 c … … 2872 3277 C STRESS NECESSAIRES: TOUTE LA PHYSIQUE 2873 3278 3279 if (mydebug) then 3280 call writefield_phy('u_seri',u_seri,llm) 3281 call writefield_phy('v_seri',v_seri,llm) 3282 call writefield_phy('t_seri',t_seri,llm) 3283 call writefield_phy('q_seri',q_seri,llm) 3284 endif 3285 2874 3286 DO i = 1, klon 2875 3287 zustrph(i)=0. … … 2887 3299 cIM calcul composantes axiales du moment angulaire et couple des montagnes 2888 3300 c 2889 CALL aaam_bud (27,klon,klev,rjourvrai,gmtime, 2890 C ra,rg,romega, 2891 C rlat,rlon,pphis, 2892 C zustrdr,zustrli,zustrph, 2893 C zvstrdr,zvstrli,zvstrph, 2894 C paprs,u,v, 2895 C aam, torsfc) 3301 IF (monocpu) THEN 3302 3303 CALL aaam_bud (27,klon,klev,rjourvrai,gmtime, 3304 C ra,rg,romega, 3305 C rlat,rlon,pphis, 3306 C zustrdr,zustrli,zustrph, 3307 C zvstrdr,zvstrli,zvstrph, 3308 C paprs,u,v, 3309 C aam, torsfc) 3310 ENDIF 2896 3311 cIM cf. FLott END 2897 3312 cIM … … 3058 3473 c 3059 3474 #ifdef INCA 3475 call VTe(VTphysiq) 3476 call VTb(VTinca) 3060 3477 #ifdef INCAINFO 3061 3478 WRITE(lunout,*)'Appel CHEMHOOK_END ...' … … 3068 3485 $ nbtr, 3069 3486 $ paprs, 3070 #ifdef INCA_CH43071 3487 $ q_seri, 3072 #endif3073 3488 $ annee_ref, 3074 3489 $ day_ini, 3490 $ airephy, 3075 3491 #ifdef INCA_AER 3076 3492 $ xjour, 3077 3493 $ pphi, 3078 3494 $ pphis, 3079 $ zx_rh, 3080 $ qx(1,1,1)) 3495 $ zx_rh) 3081 3496 #else 3082 3497 $ xjour) … … 3085 3500 WRITE(lunout,*)'OK.' 3086 3501 #endif 3502 call VTe(VTinca) 3503 call VTb(VTphysiq) 3087 3504 #endif 3088 3505 … … 3091 3508 c Convertir les incrementations en tendances 3092 3509 c 3510 if (mydebug) then 3511 call writefield_phy('u_seri',u_seri,llm) 3512 call writefield_phy('v_seri',v_seri,llm) 3513 call writefield_phy('t_seri',t_seri,llm) 3514 call writefield_phy('q_seri',q_seri,llm) 3515 endif 3516 3093 3517 DO k = 1, klev 3094 3518 DO i = 1, klon -
LMDZ4/trunk/libf/phylmd/phystokenc.F
r541 r766 12 12 I pphis,paire,dtime,itap) 13 13 USE ioipsl 14 USE histcom15 14 USE dimphy 15 USE iophy 16 16 IMPLICIT none 17 17 … … 23 23 c====================================================================== 24 24 #include "dimensions.h" 25 #include "dimphy.h"25 cym#include "dimphy.h" 26 26 #include "tracstoke.h" 27 27 #include "indicesol.h" … … 43 43 integer physid, itap 44 44 save physid 45 c$OMP THREADPRIVATE(physid) 45 46 integer ndex2d(iim*(jjm+1)),ndex3d(iim*(jjm+1)*klev) 46 47 … … 54 55 REAL pen_d(klon,klev) ! flux entraine dans le panache descendant 55 56 REAL pde_d(klon,klev) ! flux detraine dans le panache descendant 56 real pt(klon,klev),t(klon,klev) 57 real pt(klon,klev) 58 REAL,allocatable,save :: t(:,:) 59 c$OMP THREADPRIVATE(t) 57 60 c 58 61 REAL rlon(klon), rlat(klon), dtime … … 69 72 c --------------- 70 73 REAL pfm_therm(klon,klev+1) 71 74 real fm_therm1(klon,klev) 72 75 REAL pentr_therm(klon,klev) 73 REAL entr_therm(klon,klev) 74 REAL fm_therm(klon,klev) 76 77 REAL,allocatable,save :: entr_therm(:,:) 78 REAL,allocatable,save :: fm_therm(:,:) 79 c$OMP THREADPRIVATE(entr_therm) 80 c$OMP THREADPRIVATE(fm_therm) 75 81 c 76 82 c Lessivage: … … 88 94 INTEGER i, k 89 95 c 90 REAL mfu(klon,klev) ! flux de masse dans le panache montant 91 REAL mfd(klon,klev) ! flux de masse dans le panache descendant 92 REAL en_u(klon,klev) ! flux entraine dans le panache montant 93 REAL de_u(klon,klev) ! flux detraine dans le panache montant 94 REAL en_d(klon,klev) ! flux entraine dans le panache descendant 95 REAL de_d(klon,klev) ! flux detraine dans le panache descendant 96 REAL coefh(klon,klev) ! flux detraine dans le panache descendant 97 98 REAL pyu1(klon),pyv1(klon) 99 REAL pftsol(klon,nbsrf),ppsrf(klon,nbsrf) 96 REAL,allocatable,save :: mfu(:,:) ! flux de masse dans le panache montant 97 REAL,allocatable,save :: mfd(:,:) ! flux de masse dans le panache descendant 98 REAL,allocatable,save :: en_u(:,:) ! flux entraine dans le panache montant 99 REAL,allocatable,save :: de_u(:,:) ! flux detraine dans le panache montant 100 REAL,allocatable,save :: en_d(:,:) ! flux entraine dans le panache descendant 101 REAL,allocatable,save :: de_d(:,:) ! flux detraine dans le panache descendant 102 REAL,allocatable,save :: coefh(:,:) ! flux detraine dans le panache descendant 103 104 REAL,allocatable,save :: pyu1(:) 105 REAL,allocatable,save :: pyv1(:) 106 REAL,allocatable,save :: pftsol(:,:) 107 REAL,allocatable,save :: ppsrf(:,:) 108 c$OMP THREADPRIVATE(mfu,mfd,en_u,de_u,en_d,de_d,coefh) 109 c$OMP THREADPRIVATE(pyu1,pyv1,pftsol,ppsrf) 100 110 real pftsol1(klon),pftsol2(klon),pftsol3(klon),pftsol4(klon) 101 111 real ppsrf1(klon),ppsrf2(klon),ppsrf3(klon),ppsrf4(klon) … … 107 117 logical ok_sync 108 118 109 save t,mfu,mfd,en_u,de_u,en_d,de_d,coefh,dtcum 110 save fm_therm,entr_therm 119 save dtcum 111 120 save iadvtr,irec 112 save pyu1,pyv1,pftsol,ppsrf 113 121 c$OMP THREADPRIVATE(dtcum,iadvtr,irec) 114 122 data iadvtr,irec/0,1/ 123 logical,save :: first=.true. 124 c$OMP THREADPRIVATE(first) 115 125 c 116 126 c Couche limite: … … 123 133 print*,'istdyn= ',istdyn 124 134 135 if (first) then 136 137 allocate( t(klon,klev)) 138 allocate( mfu(klon,klev)) 139 allocate( mfd(klon,klev)) 140 allocate( en_u(klon,klev)) 141 allocate( de_u(klon,klev)) 142 allocate( en_d(klon,klev)) 143 allocate( de_d(klon,klev)) 144 allocate( coefh(klon,klev)) 145 allocate( entr_therm(klon,klev)) 146 allocate( fm_therm(klon,klev)) 147 allocate( pyu1(klon)) 148 allocate( pyv1(klon)) 149 allocate( pftsol(klon,nbsrf)) 150 allocate( ppsrf(klon,nbsrf)) 151 152 first=.false. 153 endif 154 125 155 IF (iadvtr.eq.0) THEN 126 156 … … 136 166 ndex3d = 0 137 167 i=itap 138 CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d)139 CALL histwrite (physid,"phis",i,zx_tmp_2d,iim*(jjm+1),ndex2d)168 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d) 169 CALL histwrite_phy(physid,"phis",i,pphis) 140 170 c 141 171 i=itap 142 CALL gr_fi_ecrit(1,klon,iim,jjm+1,paire,zx_tmp_2d)143 CALL histwrite (physid,"aire",i,zx_tmp_2d,iim*(jjm+1),ndex2d)172 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,paire,zx_tmp_2d) 173 CALL histwrite_phy(physid,"aire",i,paire) 144 174 145 175 iadvtr=iadvtr+1 … … 247 277 248 278 ccccc 249 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, t, zx_tmp_3d) 250 CALL histwrite(physid,"t",itap,zx_tmp_3d, 251 . iim*(jjm+1)*klev,ndex3d) 252 253 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, mfu, zx_tmp_3d) 254 CALL histwrite(physid,"mfu",itap,zx_tmp_3d, 255 . iim*(jjm+1)*klev,ndex3d) 256 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, mfd, zx_tmp_3d) 257 CALL histwrite(physid,"mfd",itap,zx_tmp_3d, 258 . iim*(jjm+1)*klev,ndex3d) 259 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, en_u, zx_tmp_3d) 260 CALL histwrite(physid,"en_u",itap,zx_tmp_3d, 261 . iim*(jjm+1)*klev,ndex3d) 262 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, de_u, zx_tmp_3d) 263 CALL histwrite(physid,"de_u",itap,zx_tmp_3d, 264 . iim*(jjm+1)*klev,ndex3d) 265 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, en_d, zx_tmp_3d) 266 CALL histwrite(physid,"en_d",itap,zx_tmp_3d, 267 . iim*(jjm+1)*klev,ndex3d) 268 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, de_d, zx_tmp_3d) 269 CALL histwrite(physid,"de_d",itap,zx_tmp_3d, 270 . iim*(jjm+1)*klev,ndex3d) 271 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, coefh, zx_tmp_3d) 272 CALL histwrite(physid,"coefh",itap,zx_tmp_3d, 273 . iim*(jjm+1)*klev,ndex3d) 279 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, t, zx_tmp_3d) 280 CALL histwrite_phy(physid,"t",itap,t) 281 282 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, mfu, zx_tmp_3d) 283 CALL histwrite_phy(physid,"mfu",itap,mfu) 284 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, mfd, zx_tmp_3d) 285 CALL histwrite_phy(physid,"mfd",itap,mfd) 286 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, en_u, zx_tmp_3d) 287 CALL histwrite_phy(physid,"en_u",itap,en_u) 288 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, de_u, zx_tmp_3d) 289 CALL histwrite_phy(physid,"de_u",itap,de_u) 290 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, en_d, zx_tmp_3d) 291 CALL histwrite_phy(physid,"en_d",itap,en_d) 292 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, de_d, zx_tmp_3d) 293 CALL histwrite_phy(physid,"de_d",itap,de_d) 294 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, coefh, zx_tmp_3d) 295 CALL histwrite_phy(physid,"coefh",itap,coefh) 274 296 275 297 c ajou... … … 280 302 enddo 281 303 282 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, fm_therm1, zx_tmp_3d) 283 CALL histwrite(physid,"fm_th",itap,zx_tmp_3d, 284 . iim*(jjm+1)*klev,ndex3d) 285 c 286 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, entr_therm, zx_tmp_3d) 287 CALL histwrite(physid,"en_th",itap,zx_tmp_3d, 288 . iim*(jjm+1)*klev,ndex3d) 304 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, fm_therm1, zx_tmp_3d) 305 CALL histwrite_phy(physid,"fm_th",itap,fm_therm1) 306 c 307 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1, entr_therm, zx_tmp_3d) 308 CALL histwrite_phy(physid,"en_th",itap,entr_therm) 289 309 cccc 290 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,frac_impa,zx_tmp_3d) 291 CALL histwrite(physid,"frac_impa",itap,zx_tmp_3d, 292 . iim*(jjm+1)*klev,ndex3d) 293 294 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,frac_nucl,zx_tmp_3d) 295 CALL histwrite(physid,"frac_nucl",itap,zx_tmp_3d, 296 . iim*(jjm+1)*klev,ndex3d) 310 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,frac_impa,zx_tmp_3d) 311 CALL histwrite_phy(physid,"frac_impa",itap,frac_impa) 312 313 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,frac_nucl,zx_tmp_3d) 314 CALL histwrite_phy(physid,"frac_nucl",itap,frac_nucl) 297 315 298 CALL gr_fi_ecrit(1, klon,iim,jjm+1, pyu1,zx_tmp_2d) 299 CALL histwrite(physid,"pyu1",itap,zx_tmp_2d,iim*(jjm+1), 300 . ndex2d) 316 cym CALL gr_fi_ecrit(1, klon,iim,jjm+1, pyu1,zx_tmp_2d) 317 CALL histwrite_phy(physid,"pyu1",itap,pyu1) 301 318 302 CALL gr_fi_ecrit(1, klon,iim,jjm+1, pyv1,zx_tmp_2d) 303 CALL histwrite(physid,"pyv1",itap,zx_tmp_2d,iim*(jjm+1) 304 . ,ndex2d) 319 cym CALL gr_fi_ecrit(1, klon,iim,jjm+1, pyv1,zx_tmp_2d) 320 CALL histwrite_phy(physid,"pyv1",itap,pyv1) 305 321 306 CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol1, zx_tmp_2d) 307 CALL histwrite(physid,"ftsol1",itap,zx_tmp_2d, 308 . iim*(jjm+1),ndex2d) 309 CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol2, zx_tmp_2d) 310 CALL histwrite(physid,"ftsol2",itap,zx_tmp_2d, 311 . iim*(jjm+1),ndex2d) 312 CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol3, zx_tmp_2d) 313 CALL histwrite(physid,"ftsol3",itap,zx_tmp_2d, 314 . iim*(jjm+1),ndex2d) 315 CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol4, zx_tmp_2d) 316 CALL histwrite(physid,"ftsol4",itap,zx_tmp_2d, 317 . iim*(jjm+1),ndex2d) 318 319 CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf1, zx_tmp_2d) 320 CALL histwrite(physid,"psrf1",itap,zx_tmp_2d, 321 . iim*(jjm+1),ndex2d) 322 CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf2, zx_tmp_2d) 323 CALL histwrite(physid,"psrf2",itap,zx_tmp_2d, 324 . iim*(jjm+1),ndex2d) 325 CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf3, zx_tmp_2d) 326 CALL histwrite(physid,"psrf3",itap,zx_tmp_2d, 327 . iim*(jjm+1),ndex2d) 328 CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf4, zx_tmp_2d) 329 CALL histwrite(physid,"psrf4",itap,zx_tmp_2d, 330 . iim*(jjm+1),ndex2d) 331 322 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol1, zx_tmp_2d) 323 CALL histwrite_phy(physid,"ftsol1",itap,pftsol1) 324 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol2, zx_tmp_2d) 325 CALL histwrite_phy(physid,"ftsol2",itap,pftsol2) 326 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol3, zx_tmp_2d) 327 CALL histwrite_phy(physid,"ftsol3",itap,pftsol3) 328 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, pftsol4, zx_tmp_2d) 329 CALL histwrite_phy(physid,"ftsol4",itap,pftsol4) 330 331 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf1, zx_tmp_2d) 332 CALL histwrite_phy(physid,"psrf1",itap,ppsrf1) 333 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf2, zx_tmp_2d) 334 CALL histwrite_phy(physid,"psrf2",itap,ppsrf2) 335 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf3, zx_tmp_2d) 336 CALL histwrite_phy(physid,"psrf3",itap,ppsrf3) 337 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1, ppsrf4, zx_tmp_2d) 338 CALL histwrite_phy(physid,"psrf4",itap,ppsrf4) 339 340 c$OMP MASTER 332 341 if (ok_sync) call histsync(physid) 342 c$OMP END MASTER 333 343 c if (ok_sync) call histsync 334 344 -
LMDZ4/trunk/libf/phylmd/phytrac.F
r682 r766 63 63 64 64 USE ioipsl 65 66 #ifdef INCA 67 USE sflx 68 USE chem_tracnm 69 USE species_names 70 USE chem_mods 71 #ifdef INCA_NMHC 72 USE pht_tables, ONLY : jrates 73 USE lightning, ONLY : prod_light 74 #endif 75 #ifdef INCA_CH4 76 USE pht_tables, ONLY : jrates 77 USE lightning, ONLY : prod_light 78 #endif 79 USE transport_controls, ONLY : conv_flg, pbl_flg 80 USE airplane_src, ONLY : ptrop 81 #ifdef INCA_AER 82 USE AEROSOL_MOD, only : ntr,trmx,trnx 83 USE AEROSOL_DIAG,only : cla,las,tausum,angst,aload,cload,totaerh2o,tau, 84 $ emiss20,sconc,scavcoef_st,scavcoef_cv 85 $ ,cload05ss ,cload05bc ,cload05pom ,cload05dust ,cload05so4 86 $ ,cload125ss ,cload125bc ,cload125pom ,cload125dust ,cload125so4 87 USE AEROSOL_PROGNOS, ONLY : md,mdw 88 USE AEROSOL_METEO, only : airm 89 #endif 90 #ifdef INCA_NMHC 91 USE RESISTANCE_DIAGNOSE, ONLY : surf_alb, sol_irrad, surf_temp, surf_wind, 92 $ aero_resist, lamin_resist, surf_resist 93 #endif 94 #endif 65 USE dimphy 66 USE comgeomphy 67 USE iophy 68 USE vampir 69 95 70 IMPLICIT none 96 71 c====================================================================== … … 108 83 #include "YOMCST.h" 109 84 #include "dimensions.h" 110 #include "dimphy.h"85 cym#include "dimphy.h" 111 86 #include "indicesol.h" 112 87 #include "clesphys.h" … … 114 89 #include "paramet.h" 115 90 #include "control.h" 116 #include "comgeomphy.h"91 cym#include "comgeomphy.h" 117 92 #include "advtrac.h" 118 93 #include "thermcell.h" … … 162 137 #ifdef INCA 163 138 REAL flxmass_w(klon,klev) 139 CHARACTER(len=8) :: solsym(nqmax) 164 140 #endif 165 141 c integer iflag_con … … 227 203 cAA Pour l'instant seuls les cas du rn et du pb ont ete envisages. 228 204 229 REAL source(klon ) ! a voir lorsque le flux est prescrit205 REAL source(klon,nqmax) ! a voir lorsque le flux est prescrit 230 206 cAA 231 207 cAA Pour la source de radon et son reservoir de sol 232 208 cAA ................................................ 233 209 234 REAL trs(klon,nbtr) ! Conc. radon ds le sol 235 SAVE trs 236 237 REAL masktr(klon,nbtr) ! Masque reservoir de sol traceur 210 REAL,save,allocatable :: trs(:,:) ! Conc. radon ds le sol 211 c$OMP THREADPRIVATE(trs) 212 cym SAVE trs 213 REAL :: trs_tmp(klon2) 214 REAL,SAVE,ALLOCATABLE :: trs_mpi(:) 215 216 REAL,save,allocatable :: masktr(:,:) ! Masque reservoir de sol traceur 238 217 c Masque de l'echange avec la surface 239 218 c (1 = reservoir) ou (possible => 1 ) 240 SAVE masktr 241 REAL fshtr(klon,nbtr) ! Flux surfacique dans le reservoir de sol 242 SAVE fshtr 243 REAL hsoltr(nbtr) ! Epaisseur equivalente du reservoir de sol 244 SAVE hsoltr 245 REAL tautr(nbtr) ! Constante de decroissance radioactive 246 SAVE tautr 247 REAL vdeptr(nbtr) ! Vitesse de depot sec dans la couche Brownienne 248 SAVE vdeptr 249 REAL scavtr(nbtr) ! Coefficient de lessivage 250 SAVE scavtr 219 c$OMP THREADPRIVATE(masktr) 220 cym SAVE masktr 221 REAL,save,allocatable :: fshtr(:,:) ! Flux surfacique dans le reservoir de sol 222 c$OMP THREADPRIVATE(fshtr) 223 cym SAVE fshtr 224 REAL,save,allocatable :: hsoltr(:) ! Epaisseur equivalente du reservoir de sol 225 c$OMP THREADPRIVATE(hsoltr) 226 cym SAVE hsoltr 227 REAL,save,allocatable :: tautr(:) ! Constante de decroissance radioactive 228 c$OMP THREADPRIVATE(tautr) 229 cym SAVE tautr 230 REAL,save,allocatable :: vdeptr(:) ! Vitesse de depot sec dans la couche Brownienne 231 c$OMP THREADPRIVATE(vdeptr) 232 cym SAVE vdeptr 233 REAL,save,allocatable :: scavtr(:) ! Coefficient de lessivage 234 c$OMP THREADPRIVATE(scavtr) 235 cym SAVE scavtr 251 236 cAA 252 237 CHARACTER*2 itn … … 257 242 INTEGER nid_tra 258 243 SAVE nid_tra 244 c$OMP THREADPRIVATE(nid_tra) 259 245 #ifdef INCA_AER 260 246 INTEGER nid_tra2,nid_tra3 261 247 SAVE nid_tra2,nid_tra3 248 c$OMP THREADPRIVATE(nid_tra2,nid_tra3) 262 249 #endif 263 250 c REAL x(klon,klev,nbtr+2) ! traceurs 264 251 INTEGER ndex(1) 265 252 INTEGER ndex2d(iim*(jjm+1)),ndex3d(iim*(jjm+1)*klev) 253 REAL zx_tmp_fi2d(klon) ! variable temporaire grille physique 254 REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D 266 255 REAL zx_tmp_2d(iim,jjm+1), zx_tmp_3d(iim,jjm+1,klev) 267 256 REAL zx_lon(iim,jjm+1), zx_lat(iim,jjm+1) … … 274 263 c 275 264 c INTEGER ecrit_tra 276 c SAVE ecrit_tra 265 c SAVE ecrit_tra 266 277 267 logical ok_sync 278 268 parameter (ok_sync = .true.) … … 280 270 C nature du traceur 281 271 c 282 logical aerosol(nbtr) ! Nature du traceur272 logical,save,allocatable :: aerosol(:) ! Nature du traceur 283 273 c ! aerosol(it) = true => aerosol 284 274 c ! aerosol(it) = false => gaz 285 275 c ! nat_trac(it) = 1. aerosol 286 logical clsol(nbtr) ! clsol(it) = true => CL sol calculee 287 logical radio(nbtr) ! radio(it)=true => decroisssance radioactive 288 save aerosol,clsol,radio 276 logical,save,allocatable :: clsol(:) ! clsol(it) = true => CL sol calculee 277 logical,save,allocatable :: radio(:) ! radio(it)=true => decroisssance radioactive 278 c$OMP THREADPRIVATE(aerosol,clsol,radio) 279 cym save aerosol,clsol,radio 289 280 C 290 281 c====================================================================== … … 334 325 save first,couchelimite,convection,lessivage, 335 326 s sorties,inirnpb 327 c$OMP THREADPRIVATE(first,couchelimite,convection,lessivage, 328 c$OMP+ sorties,inirnpb) 336 329 c data first,couchelimite,convection,lessivage,sorties 337 330 c s /.true.,.true.,.false.,.true.,.true./ … … 345 338 INTEGER :: lastgas 346 339 INTEGER :: ncsec 347 348 INTEGER :: prt_flag_ts(nbtr)=(/ 349 #ifdef INCA_CH4 350 . 1,1,1,0,0,1,1,1,1,1, 351 . 0,1,0,0,0,0,0,1,0,0, 352 . 0,1,1,1,1,0,1,1,1,0, 353 . 1,1,1,1,1,1,1,1,1,1, 354 . 1,0,0 355 #ifdef INCA_AER 356 . ,1,1,1,1,0,1,1,1,1,0, 357 . 1,1,1,1,1,1,0,1,0,1, 358 . 1,1,1,1,0,1,0,1,1,1 359 #endif 360 #endif 361 #ifdef INCA_NMHC 362 . 1,1,1,1,1,1,1,1,1,1, 363 . 1,1,1,1,1,1,1,1,1,1, 364 . 1,1,1,1,1,1,1,1,1,1, 365 . 1,1,1,1,1,1,1,1,1,1, 366 . 1,1,1,1,1,1,1,1,1,1, 367 . 1,1,1,1,1,1,1,1,1,1, 368 . 1,1,1,1,1,1,1,1,1,1, 369 . 1,1,1,1,1,1,1,1,1,1, 370 . 1,1,1,1,1,1,1 371 #ifdef INCA_AER 372 . ,1,1,1,1,0,1,1,1,1,0, 373 . 1,1,1,1,1,1,0,1,0,1, 374 . 1,1,1,1,0,1,0,1,1,1 375 #endif 376 #endif 377 #if defined(INCA_AER) && !defined(INCA_CH4) && !defined(INCA_NMHC) 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 381 #endif 382 #if defined(INCA) && !defined(INCA_CH4) && !defined(INCA_NMHC) && !defined(INCA_AER) 383 . 1,1,1,1,1,1,1,1,1,1, 384 . 1 385 #endif 386 387 . /) 388 340 INTEGER :: prt_flag_ts(nbtr) 389 341 390 342 REAL, PARAMETER :: dry_mass = 28.966 … … 393 345 REAL :: calday 394 346 REAL :: pdel(klon,klev) 395 REAL :: dummy(klon,klev) = 0.347 REAL :: dummy(klon,klev) 396 348 #endif 397 349 #ifdef INCA_AER … … 400 352 c 401 353 c====================================================================== 354 355 #ifdef INCA 356 prt_flag_ts(:)=(/ 357 #ifdef INCA_CH4 358 . 1,1,1,0,0,1,1,1,1,1, 359 . 0,1,0,0,0,0,0,1,0,0, 360 . 0,1,1,1,1,0,1,1,1,0, 361 . 1,1,1,1,1,1,1,1,1,1, 362 . 1,0,0 363 #ifdef INCA_AER 364 . ,1,1,1,1,0,1,1,1,1,0, 365 . 1,1,1,1,1,1,0,1,0,1, 366 . 1,1,1,1,0,1,0,1,1,1 367 #endif 368 #endif 369 #ifdef INCA_NMHC 370 . 1,1,1,1,1,1,1,1,1,1, 371 . 1,1,1,1,1,1,1,1,1,1, 372 . 1,1,1,1,1,1,1,1,1,1, 373 . 1,1,1,1,1,1,1,1,1,1, 374 . 1,1,1,1,1,1,1,1,1,1, 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 379 #ifdef INCA_AER 380 . ,1,1,1,1,0,1,1,1,1,0, 381 . 1,1,1,1,1,1,0,1,0,1, 382 . 1,1,1,1,0,1,0,1,1,1 383 #endif 384 #endif 385 #if defined(INCA_AER) && !defined(INCA_CH4) && !defined(INCA_NMHC) 386 . 1,1,1,1,1,1,1,1,1,1, 387 . 1,1,1,1,1,1,1,1,1,1, 388 . 1,1,1,1,1,1,1,1,1 389 #endif 390 #if defined(INCA) && !defined(INCA_CH4) && !defined(INCA_NMHC) && !defined(INCA_AER) 391 . 1,1,1,1,1,1,1,1,1,1, 392 . 1 393 #endif 394 395 . /) 396 dummy(:,:) = 0. 397 398 #endif 402 399 modname='phytrac' 403 400 … … 405 402 406 403 if (debutphy) then 407 408 c ecrit_tra = NINT(86400./pdtphys *ecritphy) 404 allocate( trs(klon,nbtr) ) 405 c$OMP MASTER 406 allocate( trs_mpi(klon_mpi) ) 407 c$OMP END MASTER 408 allocate( masktr(klon,nbtr)) 409 allocate( fshtr(klon,nbtr) ) 410 allocate( hsoltr(nbtr)) 411 allocate( tautr(nbtr)) 412 allocate( vdeptr(nbtr)) 413 allocate( scavtr(nbtr)) 414 allocate( aerosol(nbtr)) 415 allocate( clsol(nbtr)) 416 allocate( radio(nbtr)) 417 418 419 ecrit_tra = NINT(86400./pdtphys *ecritphy) 409 420 print*,'dans phytrac ',pdtphys,ecritphy,ecrit_tra 410 421 … … 435 446 c print*,'valeur de debut dans phytrac :',debutphy 436 447 trs(:,:) = 0. 437 438 open (99,file='starttrac',status='old', 448 c$OMP MASTER 449 if (phy_rank==0) then 450 trs_tmp(:)=0. 451 open (99,file='starttrac',status='old', 439 452 . err=999,form='formatted') 440 read(99,*) (trs (i,1),i=1,klon)453 read(99,*) (trs_tmp(i),i=1,klon2) 441 454 999 close(99) 455 endif 456 call ScatterField(trs_tmp,trs_mpi,1) 457 c$OMP END MASTER 458 call ScatterField_omp(trs_mpi,trs(:,1),1) 442 459 c print*, 'apres starttrac' 443 460 … … 470 487 endif 471 488 #ifdef INCA 489 call VTe(VTphysiq) 490 call VTb(VTinca) 472 491 !====================================================================== 473 492 ! Chimie … … 509 528 $ rneb, ! for chimiaq 510 529 $ t_seri, ! for chimiaq 511 $ rh) 530 $ rh, 531 $ lafin) 512 532 ! fin changement anne 513 533 … … 515 535 516 536 CALL chemmain (tr_seri, !mmr 517 $ nas, !nas518 537 $ nstep, !nstep 519 538 $ calday, !calday … … 550 569 $ obuf, !obuf 551 570 $ iip1, !nx 552 $ jjp1) !ny 571 $ jjp1, !ny 572 $ source, 573 $ solsym) 553 574 #ifdef INCAINFO 554 575 #ifdef INCA_AER … … 582 603 END DO 583 604 #endif 605 call VTe(VTinca) 606 call VTb(VTphysiq) 584 607 #else 585 608 … … 755 778 C CALL minmaxqfi(tr_seri(1,1,it),0.,1.e33,'cltracrn it='//itn) 756 779 else ! couche limite avec flux prescrit 757 #ifdef INCA 758 DO k = 1, klon 759 source(k) = eflux(k,it)-dflux(k,it) 760 END DO 761 #else 780 #ifndef INCA 762 781 763 782 Cmaf provisoire source / traceur a creer 764 783 DO i=1, klon 765 source(i ) = 0.0 ! pas de source, pour l'instant784 source(i,it) = 0.0 ! pas de source, pour l'instant 766 785 ENDDO 767 786 C 768 787 #endif 769 788 CALL cltrac(pdtphys, coefh,t_seri, 770 s tr_seri(1,1,it), source ,789 s tr_seri(1,1,it), source(:,it), 771 790 e paprs, pplay, delp, 772 791 s d_tr_cl(1,1,it)) … … 904 923 if (lafin) then 905 924 print*, 'c est la fin de la physique' 906 open (99,file='restarttrac', form='formatted') 907 do i=1,klon 908 write(99,*) trs(i,1) 909 enddo 910 PRINT*, 'Ecriture du fichier restarttrac' 911 close(99) 925 call GatherField_omp(trs(:,1),trs_mpi,1) 926 c$OMP MASTER 927 call GatherField(trs_mpi,trs_tmp,1) 928 if (phy_rank==0) then 929 930 open (99,file='restarttrac', form='formatted') 931 do i=1,klon 932 write(99,*) trs_tmp(i) 933 enddo 934 PRINT*, 'Ecriture du fichier restarttrac' 935 close(99) 936 endif 937 c$OMP END MASTER 912 938 else 913 939 c print*, 'physique pas fini' -
LMDZ4/trunk/libf/phylmd/plevel.F
r524 r766 7 7 c================================================================ 8 8 c================================================================ 9 9 USE dimphy 10 10 IMPLICIT none 11 11 12 #include "dimensions.h"13 #include "dimphy.h"12 cym#include "dimensions.h" 13 cy#include "dimphy.h" 14 14 15 15 c================================================================ … … 42 42 c ------- 43 43 44 INTEGER lt(klon), lb(klon)45 REAL ptop, pbot, aist(klon), aisb(klon)44 cym INTEGER lt(klon), lb(klon) 45 cym REAL ptop, pbot, aist(klon), aisb(klon) 46 46 47 save lt,lb,ptop,pbot,aist,aisb 48 47 cym save lt,lb,ptop,pbot,aist,aisb 48 INTEGER,ALLOCATABLE,SAVE,DIMENSION(:) :: lt,lb,aist,aisb 49 c$OMP THREADPRIVATE(lt,lb,aist,aisb) 50 REAL,SAVE :: ptop, pbot 51 c$OMP THREADPRIVATE(ptop, pbot) 52 LOGICAL,SAVE :: first = .true. 53 c$OMP THREADPRIVATE(first) 49 54 INTEGER i, k 50 55 c 51 56 if (first) then 57 allocate(lt(klon),lb(klon),aist(klon),aisb(klon)) 58 first=.false. 59 endif 60 52 61 c===================================================================== 53 62 if (lnew) then 54 c on r éinitialise les réindicages et les poids63 c on r�nitialise les r�ndicages et les poids 55 64 c===================================================================== 56 65 … … 87 96 c 88 97 c ... Modif . P. Le Van ( 20/01/98) .... 89 c Modif Fr édéric Hourdin (3/01/02)98 c Modif Fr��ic Hourdin (3/01/02) 90 99 91 100 aist(i) = LOG( pgcm(i,lb(i))/ pres ) -
LMDZ4/trunk/libf/phylmd/radiornpb.F
r644 r766 3 3 ! 4 4 SUBROUTINE radiornpb(tr,dtime,tautr,d_tr) 5 USE dimphy 5 6 IMPLICIT none 6 7 c====================================================================== … … 12 13 c Arguments: 13 14 c====================================================================== 14 #include "dimensions.h"15 #include "dimphy.h"15 cym#include "dimensions.h" 16 cym#include "dimphy.h" 16 17 c====================================================================== 17 18 C -
LMDZ4/trunk/libf/phylmd/radlwsw.F
r699 r766 16 16 . cldtaupi, topswai, solswai) 17 17 c 18 USE dimphy 18 19 IMPLICIT none 19 20 c====================================================================== … … 69 70 70 71 c====================================================================== 71 #include "dimensions.h"72 #include "dimphy.h"73 #include "raddim.h"72 cym#include "dimensions.h" 73 cym#include "dimphy.h" 74 cym#include "raddim.h" 74 75 #include "YOETHF.h" 75 76 c … … 403 404 S PTOPSWAD,PSOLSWAD,PTOPSWAI,PSOLSWAI, 404 405 J ok_ade, ok_aie ) 405 406 USE dimphy 406 407 IMPLICIT none 407 408 408 #include "dimensions.h"409 #include "dimphy.h"410 #include "raddim.h"409 cym#include "dimensions.h" 410 cym#include "dimphy.h" 411 cym#include "raddim.h" 411 412 #include "YOMCST.h" 412 413 C … … 509 510 DATA itapsw /0/ 510 511 DATA appel1er /.TRUE./ 512 SAVE itapsw,appel1er 513 c$OMP THREADPRIVATE(appel1er) 514 c$OMP THREADPRIVATE(itapsw) 511 515 cjq-Introduced for aerosol forcings 512 516 real*8 flag_aer … … 522 526 REAL*8 PSOLSWAI(KDLON) ! SHORTWAVE FLUX AT SURFACE(+AEROSOL IND) 523 527 cjq - Fluxes including aerosol effects 524 REAL*8 ZFSUPAD(KDLON,KFLEV+1) 525 REAL*8 ZFSDNAD(KDLON,KFLEV+1) 526 REAL*8 ZFSUPAI(KDLON,KFLEV+1) 527 REAL*8 ZFSDNAI(KDLON,KFLEV+1) 528 REAL*8,allocatable,save :: ZFSUPAD(:,:) 529 c$OMP THREADPRIVATE(ZFSUPAD) 530 REAL*8,allocatable,save :: ZFSDNAD(:,:) 531 c$OMP THREADPRIVATE(ZFSDNAD) 532 REAL*8,allocatable,save :: ZFSUPAI(:,:) 533 c$OMP THREADPRIVATE(ZFSUPAI) 534 REAL*8,allocatable,save :: ZFSDNAI(:,:) 535 c$OMP THREADPRIVATE(ZFSDNAI) 528 536 logical initialized 529 SAVE ZFSUPAD, ZFSDNAD, ZFSUPAI, ZFSDNAI ! aerosol fluxes537 cym SAVE ZFSUPAD, ZFSDNAD, ZFSUPAI, ZFSDNAI ! aerosol fluxes 530 538 !rv 531 539 save flag_aer 540 c$OMP THREADPRIVATE(flag_aer) 532 541 data initialized/.false./ 542 save initialized 543 c$OMP THREADPRIVATE(initialized) 533 544 cjq-end 534 545 if(.not.initialized) then 535 546 flag_aer=0. 536 547 initialized=.TRUE. 548 allocate(ZFSUPAD(KDLON,KFLEV+1)) 549 allocate(ZFSDNAD(KDLON,KFLEV+1)) 550 allocate(ZFSUPAI(KDLON,KFLEV+1)) 551 allocate(ZFSDNAI(KDLON,KFLEV+1)) 552 ZFSUPAD(:,:)=0. 553 ZFSDNAD(:,:)=0. 554 ZFSUPAI(:,:)=0. 555 ZFSDNAI(:,:)=0. 556 537 557 endif 538 558 !rv … … 710 730 S PTAVE,PWV,PAKI,PCLD,PCLEAR,PDSIG,PFACT, 711 731 S PRMU,PSEC,PUD) 732 USE dimphy 712 733 IMPLICIT none 713 #include "dimensions.h"714 #include "dimphy.h"715 #include "raddim.h"734 cym#include "dimensions.h" 735 cym#include "dimphy.h" 736 cym#include "raddim.h" 716 737 #include "radepsi.h" 717 738 #include "radopt.h" … … 761 782 REAL*8 ZPDH2O,ZPDUMG 762 783 SAVE ZPDH2O,ZPDUMG 784 c$OMP THREADPRIVATE(ZPDH2O,ZPDUMG) 763 785 REAL*8 ZPRH2O,ZPRUMG 764 786 SAVE ZPRH2O,ZPRUMG 787 c$OMP THREADPRIVATE(ZPRH2O,ZPRUMG) 765 788 REAL*8 RTDH2O,RTDUMG 766 789 SAVE RTDH2O,RTDUMG 790 c$OMP THREADPRIVATE(RTDH2O,RTDUMG) 767 791 REAL*8 RTH2O ,RTUMG 768 792 SAVE RTH2O ,RTUMG 793 c$OMP THREADPRIVATE(RTH2O ,RTUMG) 769 794 DATA ZPDH2O,ZPDUMG / 0.8 , 0.75 / 770 795 DATA ZPRH2O,ZPRUMG / 30000., 30000. / … … 900 925 S , PDSIG , POMEGA, POZ , PRMU , PSEC , PTAU , PUD 901 926 S , PFD , PFU) 927 USE dimphy 902 928 IMPLICIT none 903 #include "dimensions.h"904 #include "dimphy.h"905 #include "raddim.h"929 cym#include "dimensions.h" 930 cym#include "dimphy.h" 931 cym#include "raddim.h" 906 932 C 907 933 C ------------------------------------------------------------------ … … 991 1017 REAL*8 RSUN(2) 992 1018 SAVE RSUN 1019 c$OMP THREADPRIVATE(RSUN) 993 1020 REAL*8 RRAY(2,6) 994 1021 SAVE RRAY 1022 c$OMP THREADPRIVATE(RRAY) 995 1023 DATA RSUN(1) / 0.441676 / 996 1024 DATA RSUN(2) / 0.558324 / … … 1140 1168 S , PUD ,PWV , PQS 1141 1169 S , PFDOWN,PFUP ) 1170 USE dimphy 1142 1171 IMPLICIT none 1143 #include "dimensions.h"1144 #include "dimphy.h"1145 #include "raddim.h"1172 cym#include "dimensions.h" 1173 cym#include "dimphy.h" 1174 cym#include "raddim.h" 1146 1175 #include "radepsi.h" 1147 1176 C … … 1264 1293 REAL*8 RSUN(2) 1265 1294 SAVE RSUN 1295 c$OMP THREADPRIVATE(RSUN) 1266 1296 REAL*8 RRAY(2,6) 1267 1297 SAVE RRAY 1298 c$OMP THREADPRIVATE(RRAY) 1268 1299 DATA RSUN(1) / 0.441676 / 1269 1300 DATA RSUN(2) / 0.558324 / … … 1686 1717 S , PCGAZ , PPIZAZ, PRAY1 , PRAY2 , PREFZ , PRJ 1687 1718 S , PRK , PRMU0 , PTAUAZ, PTRA1 , PTRA2 ) 1719 USE dimphy 1688 1720 IMPLICIT none 1689 #include "dimensions.h"1690 #include "dimphy.h"1691 #include "raddim.h"1721 cym#include "dimensions.h" 1722 cym#include "dimphy.h" 1723 cym#include "raddim.h" 1692 1724 #include "radepsi.h" 1693 1725 #include "radopt.h" … … 1759 1791 REAL*8 TAUA(2,5), RPIZA(2,5), RCGA(2,5) 1760 1792 SAVE TAUA, RPIZA, RCGA 1793 c$OMP THREADPRIVATE(TAUA, RPIZA, RCGA) 1761 1794 DATA ((TAUA(IN,JA),JA=1,5),IN=1,2) / 1762 1795 S .730719, .912819, .725059, .745405, .682188 , … … 2046 2079 S , PCGAZ , PPIZAZ, PRAY1, PRAY2, PREFZ , PRJ , PRK , PRMUE 2047 2080 S , PTAUAZ, PTRA1 , PTRA2 ) 2081 USE dimphy 2048 2082 IMPLICIT none 2049 #include "dimensions.h"2050 #include "dimphy.h"2051 #include "raddim.h"2083 cym#include "dimensions.h" 2084 cym#include "dimphy.h" 2085 cym#include "raddim.h" 2052 2086 #include "radepsi.h" 2053 2087 #include "radopt.h" … … 2402 2436 SUBROUTINE SWDE (PGG,PREF,PRMUZ,PTO1,PW, 2403 2437 S PRE1,PRE2,PTR1,PTR2) 2438 USE dimphy 2404 2439 IMPLICIT none 2405 #include "dimensions.h"2406 #include "dimphy.h"2407 #include "raddim.h"2440 cym#include "dimensions.h" 2441 cym#include "dimphy.h" 2442 cym#include "raddim.h" 2408 2443 C 2409 2444 C ------------------------------------------------------------------ … … 2533 2568 END 2534 2569 SUBROUTINE SWTT (KNU,KA,PU,PTR) 2570 USE dimphy 2535 2571 IMPLICIT none 2536 #include "dimensions.h"2537 #include "dimphy.h"2538 #include "raddim.h"2572 cym#include "dimensions.h" 2573 cym#include "dimphy.h" 2574 cym#include "raddim.h" 2539 2575 C 2540 2576 C----------------------------------------------------------------------- … … 2583 2619 REAL*8 APAD(2,3,7), BPAD(2,3,7), D(2,3) 2584 2620 SAVE APAD, BPAD, D 2621 c$OMP THREADPRIVATE(APAD, BPAD, D) 2585 2622 DATA ((APAD(1,I,J),I=1,3),J=1,7) / 2586 2623 S 0.912418292E+05, 0.000000000E-00, 0.925887084E-04, … … 2649 2686 END 2650 2687 SUBROUTINE SWTT1(KNU,KABS,KIND, PU, PTR) 2688 USE dimphy 2651 2689 IMPLICIT none 2652 #include "dimensions.h"2653 #include "dimphy.h"2654 #include "raddim.h"2690 cym#include "dimensions.h" 2691 cym#include "dimphy.h" 2692 cym#include "raddim.h" 2655 2693 C 2656 2694 C----------------------------------------------------------------------- … … 2701 2739 REAL*8 APAD(2,3,7), BPAD(2,3,7), D(2,3) 2702 2740 SAVE APAD, BPAD, D 2741 c$OMP THREADPRIVATE(APAD, BPAD, D) 2703 2742 DATA ((APAD(1,I,J),I=1,3),J=1,7) / 2704 2743 S 0.912418292E+05, 0.000000000E-00, 0.925887084E-04, … … 2778 2817 . PTOPLW,PSOLLW,PTOPLW0,PSOLLW0, 2779 2818 . psollwdown, 2819 cIM . psollwdown,psollwdownclr, 2820 cIM . ptoplwdown,ptoplwdownclr) 2780 2821 . plwup, plwdn, plwup0, plwdn0) 2822 USE dimphy 2781 2823 IMPLICIT none 2782 #include "dimensions.h"2783 #include "dimphy.h"2784 #include "raddim.h"2824 cym#include "dimensions.h" 2825 cym#include "dimphy.h" 2826 cym#include "raddim.h" 2785 2827 #include "raddimlw.h" 2786 2828 #include "YOMCST.h" … … 2844 2886 c Rajout LF 2845 2887 real*8 psollwdown(kdlon) ! LONGWAVE downwards flux at surface 2888 c Rajout IM 2889 cIM real*8 psollwdownclr(kdlon) ! LONGWAVE CS downwards flux at surface 2890 cIM real*8 ptoplwdown(kdlon) ! LONGWAVE downwards flux at T.O.A. 2891 cIM real*8 ptoplwdownclr(kdlon) ! LONGWAVE CS downwards flux at T.O.A. 2846 2892 cIM 2847 2893 REAL*8 plwup(KDLON,KFLEV+1) ! LW up total sky … … 2853 2899 REAL*8 ZOZ(KDLON,KFLEV) 2854 2900 c 2855 REAL*8 ZFLUX(KDLON,2,KFLEV+1) ! RADIATIVE FLUXES (1:up; 2:down) 2856 REAL*8 ZFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES 2857 REAL*8 ZBINT(KDLON,KFLEV+1) ! Intermediate variable 2858 REAL*8 ZBSUI(KDLON) ! Intermediate variable 2859 REAL*8 ZCTS(KDLON,KFLEV) ! Intermediate variable 2860 REAL*8 ZCNTRB(KDLON,KFLEV+1,KFLEV+1) ! Intermediate variable 2861 SAVE ZFLUX, ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB 2901 cym REAL*8 ZFLUX(KDLON,2,KFLEV+1) ! RADIATIVE FLUXES (1:up; 2:down) 2902 cym REAL*8 ZFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES 2903 cym REAL*8 ZBINT(KDLON,KFLEV+1) ! Intermediate variable 2904 cym REAL*8 ZBSUI(KDLON) ! Intermediate variable 2905 cym REAL*8,ZCTS(KDLON,KFLEV) ! Intermediate variable 2906 cym REAL*8 ZCNTRB(KDLON,KFLEV+1,KFLEV+1) ! Intermediate variable 2907 cym SAVE ZFLUX, ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB 2908 REAL*8,allocatable,save :: ZFLUX(:,:,:) ! RADIATIVE FLUXES (1:up; 2:down) 2909 REAL*8,allocatable,save :: ZFLUC(:,:,:) ! CLEAR-SKY RADIATIVE FLUXES 2910 REAL*8,allocatable,save :: ZBINT(:,:) ! Intermediate variable 2911 REAL*8,allocatable,save :: ZBSUI(:) ! Intermediate variable 2912 REAL*8,allocatable,save :: ZCTS(:,:) ! Intermediate variable 2913 REAL*8,allocatable,save :: ZCNTRB(:,:,:) ! Intermediate variable 2914 c$OMP THREADPRIVATE(ZFLUX, ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB) 2862 2915 c 2863 2916 INTEGER ilim, i, k, kpl1 … … 2871 2924 LOGICAL appel1er 2872 2925 SAVE appel1er, itaplw0, itaplw 2926 c$OMP THREADPRIVATE(appel1er, itaplw0, itaplw) 2873 2927 DATA appel1er /.TRUE./ 2874 2928 DATA itaplw0,itaplw /0,0/ 2929 2875 2930 C ------------------------------------------------------------------ 2876 2931 IF (appel1er) THEN … … 2878 2933 PRINT*, "LW cloudy-sky calling frequency: ", lwpas 2879 2934 PRINT*, " In general, they should be 1" 2935 cym 2936 allocate(ZFLUX(KDLON,2,KFLEV+1) ) 2937 allocate(ZFLUC(KDLON,2,KFLEV+1) ) 2938 allocate(ZBINT(KDLON,KFLEV+1)) 2939 allocate(ZBSUI(KDLON)) 2940 allocate(ZCTS(KDLON,KFLEV)) 2941 allocate(ZCNTRB(KDLON,KFLEV+1,KFLEV+1)) 2880 2942 appel1er=.FALSE. 2881 2943 ENDIF … … 2940 3002 S PAER,PDP,PPMB,PPSOL,POZ,PTAVE,PVIEW,PWV, 2941 3003 S PABCU) 3004 USE dimphy 2942 3005 IMPLICIT none 2943 #include "dimensions.h"2944 #include "dimphy.h"2945 #include "raddim.h"3006 cym#include "dimensions.h" 3007 cym#include "dimphy.h" 3008 cym#include "raddim.h" 2946 3009 #include "raddimlw.h" 2947 3010 #include "YOMCST.h" … … 3038 3101 REAL*8 TREF 3039 3102 SAVE TREF 3103 c$OMP THREADPRIVATE(TREF) 3040 3104 REAL*8 RT1(2) 3041 3105 SAVE RT1 3106 c$OMP THREADPRIVATE(RT1) 3042 3107 REAL*8 RAER(5,5) 3043 3108 SAVE RAER 3109 c$OMP THREADPRIVATE(RAER) 3044 3110 REAL*8 AT(8,3), BT(8,3) 3045 3111 SAVE AT, BT 3112 c$OMP THREADPRIVATE(AT, BT) 3046 3113 REAL*8 OCT(4) 3047 3114 SAVE OCT 3115 c$OMP THREADPRIVATE(OCT) 3048 3116 DATA TREF /250.0/ 3049 3117 DATA (RT1(IG1),IG1=1,2) / -0.577350269, +0.577350269 / … … 3333 3401 SUBROUTINE LWBV(KLIM,PDP,PDT0,PEMIS,PPMB,PTL,PTAVE,PABCU, 3334 3402 S PFLUC,PBINT,PBSUI,PCTS,PCNTRB) 3403 USE dimphy 3335 3404 IMPLICIT none 3336 #include "dimensions.h"3337 #include "dimphy.h"3338 #include "raddim.h"3405 cym#include "dimensions.h" 3406 cym#include "dimphy.h" 3407 cym#include "raddim.h" 3339 3408 #include "raddimlw.h" 3340 3409 #include "YOMCST.h" … … 3424 3493 R PBINT,PBSUIN,PCTS,PCNTRB, 3425 3494 S PFLUX) 3495 USE dimphy 3426 3496 IMPLICIT none 3427 #include "dimensions.h"3428 #include "dimphy.h"3429 #include "raddim.h"3497 cym#include "dimensions.h" 3498 cym#include "dimphy.h" 3499 cym#include "raddim.h" 3430 3500 #include "radepsi.h" 3431 3501 #include "radopt.h" … … 3829 3899 S , PB,PBINT,PBSUIN,PBSUR,PBTOP,PDBSL 3830 3900 S , PGA,PGB,PGASUR,PGBSUR,PGATOP,PGBTOP) 3901 USE dimphy 3831 3902 IMPLICIT none 3832 #include "dimensions.h"3833 #include "dimphy.h"3834 #include "raddim.h"3903 cym#include "dimensions.h" 3904 cym#include "dimphy.h" 3905 cym#include "raddim.h" 3835 3906 #include "raddimlw.h" 3836 3907 C … … 3925 3996 REAL*8 TINTP(11) 3926 3997 SAVE TINTP 3998 c$OMP THREADPRIVATE(TINTP) 3927 3999 REAL*8 GA(11,16,3), GB(11,16,3) 3928 4000 SAVE GA, GB 4001 c$OMP THREADPRIVATE(GA, GB) 3929 4002 REAL*8 XP(6,6) 3930 4003 SAVE XP 4004 c$OMP THREADPRIVATE(XP) 3931 4005 c 3932 4006 DATA TINTP / 187.5, 200., 212.5, 225., 237.5, 250., … … 5240 5314 R , PGA,PGB,PGASUR,PGBSUR,PGATOP,PGBTOP 5241 5315 S , PCNTRB,PCTS,PFLUC) 5316 USE dimphy 5242 5317 IMPLICIT none 5243 #include "dimensions.h"5244 #include "dimphy.h"5245 #include "raddim.h"5318 cym#include "dimensions.h" 5319 cym#include "dimphy.h" 5320 cym#include "raddim.h" 5246 5321 #include "raddimlw.h" 5247 5322 #include "YOMCST.h" … … 5353 5428 R , PGA,PGB,PGASUR,PGBSUR,PGATOP,PGBTOP 5354 5429 S , PCTS,PFLUC) 5430 USE dimphy 5355 5431 IMPLICIT none 5356 #include "dimensions.h"5357 #include "dimphy.h"5358 #include "raddim.h"5432 cym#include "dimensions.h" 5433 cym#include "dimphy.h" 5434 cym#include "raddim.h" 5359 5435 #include "raddimlw.h" 5360 5436 #include "radopt.h" … … 5685 5761 R , PGA,PGB 5686 5762 S , PCNTRB,PDISD,PDISU) 5763 USE dimphy 5687 5764 IMPLICIT none 5688 #include "dimensions.h"5689 #include "dimphy.h"5690 #include "raddim.h"5765 cym#include "dimensions.h" 5766 cym#include "dimphy.h" 5767 cym#include "raddim.h" 5691 5768 #include "raddimlw.h" 5692 5769 C … … 5937 6014 R , PABCU,PDBSL,PGA,PGB 5938 6015 S , PADJD,PADJU,PCNTRB,PDBDT) 6016 USE dimphy 5939 6017 IMPLICIT none 5940 #include "dimensions.h"5941 #include "dimphy.h"5942 #include "raddim.h"6018 cym#include "dimensions.h" 6019 cym#include "dimphy.h" 6020 cym#include "raddim.h" 5943 6021 #include "raddimlw.h" 5944 6022 C … … 6001 6079 REAL*8 WG1(2) 6002 6080 SAVE WG1 6081 c$OMP THREADPRIVATE(WG1) 6003 6082 DATA (WG1(jk),jk=1,2) /1.0, 1.0/ 6004 6083 C----------------------------------------------------------------------- … … 6144 6223 END 6145 6224 SUBROUTINE LWTT(PGA,PGB,PUU, PTT) 6225 USE dimphy 6146 6226 IMPLICIT none 6147 #include "dimensions.h"6148 #include "dimphy.h"6149 #include "raddim.h"6227 cym#include "dimensions.h" 6228 cym#include "dimphy.h" 6229 cym#include "raddim.h" 6150 6230 #include "raddimlw.h" 6151 6231 C … … 6319 6399 END 6320 6400 SUBROUTINE LWTTM(PGA,PGB,PUU1,PUU2, PTT) 6401 USE dimphy 6321 6402 IMPLICIT none 6322 #include "dimensions.h"6323 #include "dimphy.h"6324 #include "raddim.h"6403 cym#include "dimensions.h" 6404 cym#include "dimphy.h" 6405 cym#include "raddim.h" 6325 6406 #include "raddimlw.h" 6326 6407 C -
LMDZ4/trunk/libf/phylmd/readsulfate.F
r640 r766 2 2 ! $Header$ 3 3 ! 4 SUBROUTINE readsulfate (r_day, first, sulfate )5 4 SUBROUTINE readsulfate (r_day, first, sulfate_p) 5 USE dimphy, klon=>klon2,klon2=>klon 6 6 IMPLICIT none 7 7 … … 34 34 #include "chem.h" 35 35 #include "dimensions.h" 36 #include "dimphy.h"36 cym#include "dimphy.h" 37 37 #include "temps.h" 38 38 c … … 45 45 c Output: 46 46 c ------- 47 REAL*8 sulfate_p(klon_omp,klev) 47 48 REAL*8 sulfate (klon, klev) ! Mass of sulfate (monthly mean data, 48 49 ! from file) [ug SO4/m3] 50 REAL*8,SAVE,ALLOCATABLE :: sulfate_mpi(:,:) 49 51 c 50 52 c Local Variables: … … 62 64 REAL*8 so4_2(iim, jjm+1, klev, 12) ! The sulfate distributions 63 65 64 REAL*8 so4(klon, klev, 12) ! SO4 in right dimension 65 SAVE so4 66 REAL*8 so4_out(klon, klev) 67 SAVE so4_out 66 cym REAL*8 so4(klon, klev, 12) ! SO4 in right dimension 67 cym SAVE so4 68 cym REAL*8 so4_out(klon, klev) 69 cym SAVE so4_out 70 71 REAL*8,allocatable,save :: so4(:, :, :) ! SO4 in right dimension 72 REAL*8,allocatable,save :: so4_out(:, :) 73 c$OMP THREADPRIVATE(so4,so4_out) 68 74 69 75 LOGICAL lnewday 70 76 LOGICAL lonlyone 71 77 PARAMETER (lonlyone=.FALSE.) 72 78 logical,save :: first2=.true. 79 c$OMP THREADPRIVATE(first2) 80 81 c$OMP MASTER 82 if (first2) then 83 84 allocate( so4(klon, klev, 12) ) 85 allocate( so4_out(klon, klev)) 86 allocate(sulfate_mpi(klon_mpi,klev)) 87 first2=.false. 88 89 endif 90 91 if (phy_rank==0) then 92 73 93 iday = INT(r_day) 74 94 … … 265 285 266 286 ENDIF ! Did I have to do anything (was it a new day?) 267 287 288 endif ! phy_rank==0 289 290 call ScatterField(real(sulfate),real(sulfate_mpi),klev) 291 c$OMP END MASTER 292 call ScatterField_omp(real(sulfate_mpi),real(sulfate_p) 293 . ,klev) 294 268 295 RETURN 269 296 END … … 277 304 c----------------------------------------------------------------------------- 278 305 279 SUBROUTINE readsulfate_preind (r_day, first, pi_sulfate )280 306 SUBROUTINE readsulfate_preind (r_day, first, pi_sulfate_p) 307 USE dimphy, klon=>klon2,klon2=>klon 281 308 IMPLICIT none 282 309 … … 305 332 #include "chem.h" 306 333 #include "dimensions.h" 307 #include "dimphy.h"334 cym#include "dimphy.h" 308 335 #include "temps.h" 309 336 c … … 316 343 c Output: 317 344 c ------- 345 REAL*8 pi_sulfate_p (klon_omp, klev) 346 318 347 REAL*8 pi_sulfate (klon, klev) ! Number conc. sulfate (monthly mean data, 319 ! from file) 348 ! from fil 349 REAL*8,SAVE,ALLOCATABLE :: pi_sulfate_mpi(:,:) 320 350 c 321 351 c Local Variables: … … 327 357 INTEGER im, day1, day2, im2, ismaller 328 358 REAL*8 pi_so4_1(iim, jjm+1, klev, 12) 329 330 REAL*8 pi_so4(klon, klev, 12) ! SO4 in right dimension 331 SAVE pi_so4 332 REAL*8 pi_so4_out(klon, klev) 333 SAVE pi_so4_out 359 360 cym REAL*8 pi_so4(klon, klev, 12) ! SO4 in right dimension 361 cym SAVE pi_so4 362 cym REAL*8 pi_so4_out(klon, klev) 363 cym SAVE pi_so4_out 364 365 REAL*8,allocatable,save :: pi_so4(:, :, :) ! SO4 in right dimension 366 REAL*8,allocatable,save :: pi_so4_out(:, :) 367 c$OMP THREADPRIVATE(pi_so4,pi_so4_out) 334 368 335 369 CHARACTER*4 cyear 336 370 LOGICAL lnewday 337 371 logical,save :: first2=.true. 372 c$OMP THREADPRIVATE(first2) 373 374 c$OMP MASTER 375 if (first2) then 376 377 allocate( pi_so4(klon, klev, 12) ) 378 allocate( pi_so4_out(klon, klev)) 379 allocate(pi_sulfate_mpi (klon_mpi, klev)) 380 first2=.false. 381 382 endif 383 384 if (phy_rank==0) then 385 338 386 339 387 … … 479 527 480 528 ENDIF ! Was this the beginning of a new day? 529 530 endif ! phy_rank==0 531 532 call ScatterField(real(pi_sulfate),real(pi_sulfate_mpi),klev) 533 c$OMP END MASTER 534 call ScatterField_omp(real(pi_sulfate_mpi),real(pi_sulfate_p) 535 .,klev) 536 481 537 RETURN 482 538 END -
LMDZ4/trunk/libf/phylmd/soil.F
r524 r766 4 4 SUBROUTINE soil(ptimestep, indice, knon, snow, ptsrf, ptsoil, 5 5 s pcapcal, pfluxgrd) 6 use dimphy 6 7 IMPLICIT NONE 7 8 … … 49 50 c ------------- 50 51 51 #include "dimensions.h"52 cym#include "dimensions.h" 52 53 #include "YOMCST.h" 53 #include "dimphy.h"54 cym#include "dimphy.h" 54 55 #include "dimsoil.h" 55 56 #include "indicesol.h" … … 69 70 70 71 INTEGER ig,jk 71 c $$$ REAL zdz2(nsoilmx),z1(klon)72 c@$$ REAL zdz2(nsoilmx),z1(klon) 72 73 REAL zdz2(nsoilmx),z1(klon,nbsrf) 73 REAL min_period,dalph_soil74 REAL,SAVE :: min_period,dalph_soil 74 75 REAL ztherm_i(klon) 75 76 … … 77 78 c ---------------------- 78 79 REAL dz1(nsoilmx),dz2(nsoilmx) 79 c$$$ REAL zc(klon,nsoilmx),zd(klon,nsoilmx) 80 REAL zc(klon,nsoilmx,nbsrf),zd(klon,nsoilmx,nbsrf) 80 c@$$ REAL zc(klon,nsoilmx),zd(klon,nsoilmx) 81 cym REAL zc(klon,nsoilmx,nbsrf),zd(klon,nsoilmx,nbsrf) 82 REAL,ALLOCATABLE,SAVE :: zc(:,:,:),zd(:,:,:) 83 c$OMP THREADPRIVATE(zc,zd) 81 84 REAL lambda 82 SAVE dz1,dz2,zc,zd,lambda 85 cym SAVE dz1,dz2,zc,zd,lambda 86 SAVE dz1,dz2,lambda 87 c$OMP THREADPRIVATE(dz1,dz2,lambda) 83 88 LOGICAL firstcall, firstsurf(nbsrf) 84 89 SAVE firstcall, firstsurf 90 c$OMP THREADPRIVATE(firstcall, firstsurf) 85 91 REAL isol,isno,iice 86 92 SAVE isol,isno,iice 87 93 c$OMP THREADPRIVATE(isol,isno,iice) 88 94 DATA firstcall/.true./ 89 95 DATA firstsurf/.TRUE.,.TRUE.,.TRUE.,.TRUE./ 90 96 91 97 DATA isol,isno,iice/2000.,2000.,2000./ 92 98 LOGICAL,SAVE :: First=.true. 99 c$OMP THREADPRIVATE(First) 93 100 c----------------------------------------------------------------------- 94 101 c Depthts: … … 103 110 c on corrige si on a un point de terre avec ou sans glace 104 111 c 112 IF (first) THEN 113 allocate(zc(klon,nsoilmx,nbsrf),zd(klon,nsoilmx,nbsrf)) 114 first=.false. 115 ENDIF 116 105 117 IF (indice.EQ.is_sic) THEN 106 118 DO ig = 1, knon … … 128 140 129 141 130 c $$$ IF (firstcall) THEN142 c@$$ IF (firstcall) THEN 131 143 IF (firstsurf(indice)) THEN 132 144 … … 138 150 min_period=1800. ! en secondes 139 151 dalph_soil=2. ! rapport entre les epaisseurs de 2 couches succ. 140 152 c$OMP MASTER 141 153 OPEN(99,file='soil.def',status='old',form='formatted',err=9999) 142 154 READ(99,*) min_period … … 147 159 CLOSE(99) 148 160 9999 CONTINUE 161 c$OMP END MASTER 162 c$OMP BARRIER 149 163 150 164 c la premiere couche represente un dixieme de cycle diurne … … 172 186 C PB 173 187 firstsurf(indice) = .FALSE. 174 c $$$ firstcall =.false.188 c@$$ firstcall =.false. 175 189 176 190 c Initialisations: … … 202 216 c --------------------------------------------------------------- 203 217 204 c $$$ PB ajout pour cas glace de mer218 c@$$ PB ajout pour cas glace de mer 205 219 IF (indice .EQ. is_sic) THEN 206 220 DO ig = 1 , knon -
LMDZ4/trunk/libf/phylmd/suphec.F
r652 r766 9 9 LOGICAL firstcall 10 10 SAVE firstcall 11 c$OMP THREADPRIVATE(firstcall) 11 12 DATA firstcall /.TRUE./ 13 12 14 IF (firstcall) THEN 13 15 PRINT*, 'suphec initialise les constantes du GCM' -
LMDZ4/trunk/libf/phylmd/tetalevel.F
r644 r766 4 4 c================================================================ 5 5 c================================================================ 6 6 USE dimphy 7 7 IMPLICIT none 8 8 9 #include "dimensions.h"10 #include "dimphy.h"9 cym#include "dimensions.h" 10 cym#include "dimphy.h" 11 11 12 12 c================================================================ … … 39 39 c ------- 40 40 c 41 #include "paramet.h"41 cym#include "paramet.h" 42 42 c 43 INTEGER lt(ip1jmp1), lb(ip1jmp1) 44 REAL ptop, pbot, aist(ip1jmp1), aisb(ip1jmp1) 45 save lt,lb,ptop,pbot,aist,aisb 43 INTEGER,ALLOCATABLE,SAVE :: lt(:), lb(:) 44 REAL,ALLOCATABLE,SAVE :: aist(:), aisb(:) 45 REAL,SAVE :: ptop, pbot 46 LOGICAL,SAVE :: first = .TRUE. 47 c$OMP THREADPRIVATE(lt,lb,aist,aisb,ptop, pbot,first) 46 48 47 49 INTEGER i, k 48 50 c 49 51 c PRINT*,'tetalevel pres=',pres 52 IF (first) THEN 53 ALLOCATE(lt(ilon), lb(ilon)) 54 ALLOCATE(aist(ilon), aisb(ilon)) 55 56 first=.FALSE. 57 ENDIF 50 58 c===================================================================== 51 59 if (lnew) then 52 c on r éinitialise les réindicages et les poids60 c on r�nitialise les r�ndicages et les poids 53 61 c===================================================================== 54 62 … … 89 97 c 90 98 c ... Modif . P. Le Van ( 20/01/98) .... 91 c Modif Fr édéric Hourdin (3/01/02)99 c Modif Fr��ic Hourdin (3/01/02) 92 100 93 101 c IF(pgcm(i,lb(i)).NE.0.OR. -
LMDZ4/trunk/libf/phylmd/thermcell.F
r542 r766 6 6 c s ,pu_therm,pv_therm 7 7 s ,r_aspect,l_mix,w2di,tho) 8 8 USE dimphy 9 9 IMPLICIT NONE 10 10 … … 14 14 c de "thermiques" explicitement representes 15 15 c 16 c R éécriture àpartir d'un listing papier à Habas, le 14/02/0017 c 18 c le thermique est suppos é homogène et dissipé par mélange avec19 c son environnement. la longueur l_mix contr ôle l'efficacitédu20 c m élange21 c 22 c Le calcul du transport des diff érentes espèces se fait en prenant16 c Reecriture a partir d'un listing papier à Habas, le 14/02/00 17 c 18 c le thermique est suppose homogene et dissipe par melange avec 19 c son environnement. la longueur l_mix controle l'efficacite du 20 c melange 21 c 22 c Le calcul du transport des differentes especes se fait en prenant 23 23 c en compte: 24 24 c 1. un flux de masse montant … … 33 33 c ------------- 34 34 35 #include "dimensions.h"36 #include "dimphy.h"35 cym#include "dimensions.h" 36 cym#include "dimphy.h" 37 37 #include "YOMCST.h" 38 38 … … 52 52 save idetr 53 53 data idetr/3/ 54 54 c$OMP THREADPRIVATE(idetr) 55 55 c local: 56 56 c ------ … … 85 85 real fracc(klon,klev+1) 86 86 real zf,zf2 87 real thetath2(klon,klev),wth2(klon,klev) 88 common/comtherm/thetath2,wth2 87 real,allocatable,save :: thetath2(:,:),wth2(:,:) 88 c$OMP THREADPRIVATE(thetath2,wth2) 89 cym common/comtherm/thetath2,wth2 89 90 90 91 real count_time … … 93 94 data isplit/0/ 94 95 save isplit 95 96 c$OMP THREADPRIVATE(isplit) 96 97 logical sorties 97 98 real rho(klon,klev),rhobarz(klon,klev+1),masse(klon,klev) … … 120 121 data first /.false./ 121 122 save first 123 c$OMP THREADPRIVATE(first) 122 124 cRC 123 125 … … 132 134 save ncorrec 133 135 data ncorrec/0/ 134 136 c$OMP THREADPRIVATE(ncorrec) 137 logical,save :: firstCall=.true. 138 c$OMP THREADPRIVATE(firstCall) 135 139 c 136 140 c----------------------------------------------------------------------- … … 138 142 c --------------- 139 143 c 144 if (firstcall) then 145 allocate(thetath2(klon,klev),wth2(klon,klev)) 146 thetath2(:,:)=0. 147 wth2(:,:)=0. 148 firstcall=.false. 149 endif 150 140 151 sorties=.true. 141 152 IF(ngrid.NE.klon) THEN … … 501 512 c calcul de la largeur de chaque ascendance dans le cas conservatif. 502 513 c dans ce cas simple, on suppose que la largeur de l'ascendance provenant 503 c d'une couche est égale àla hauteur de la couche alimentante.514 c d'une couche est egale a la hauteur de la couche alimentante. 504 515 c La vitesse maximale dans l'ascendance est aussi prise comme estimation 505 516 c de la vitesse d'entrainement horizontal dans la couche alimentante. … … 540 551 c print*,'10 OK convect8' 541 552 c print*,'WA2 ',wa_moy 542 c calcul de la fraction de la maille concern éepar l'ascendance en tenant553 c calcul de la fraction de la maille concerne par l'ascendance en tenant 543 554 c compte de l'epluchage du thermique. 544 555 c … … 979 990 subroutine dqthermcell(ngrid,nlay,ptimestep,fm,entr,masse 980 991 . ,q,dq,qa) 992 use dimphy 981 993 implicit none 982 994 … … 989 1001 c======================================================================= 990 1002 991 #include "dimensions.h"992 #include "dimphy.h"1003 cym#include "dimensions.h" 1004 cym#include "dimphy.h" 993 1005 994 1006 integer ngrid,nlay … … 1053 1065 . ,fraca,larga 1054 1066 . ,u,v,du,dv,ua,va) 1067 use dimphy 1055 1068 implicit none 1056 1069 … … 1063 1076 c======================================================================= 1064 1077 1065 #include "dimensions.h"1066 #include "dimphy.h"1078 cym#include "dimensions.h" 1079 cym#include "dimphy.h" 1067 1080 1068 1081 integer ngrid,nlay … … 1106 1119 if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt. 1107 1120 s 1.e-5*masse(ig,k)) then 1108 c On it ère sur la valeur du coeff de freinage.1121 c On itere sur la valeur du coeff de freinage. 1109 1122 c gamma0=rho(ig,k)*(zlev(ig,k+1)-zlev(ig,k)) 1110 1123 gamma0=masse(ig,k) … … 1112 1125 s *0.5/larga(ig) 1113 1126 c gamma0=0. 1114 c la premi ère fois on multiplie le coefficient de freinage1127 c la premiere fois on multiplie le coefficient de freinage 1115 1128 c par le module du vent dans la couche en dessous. 1116 1129 dua=ua(ig,k-1)-u(ig,k-1) … … 1166 1179 subroutine dqthermcell2(ngrid,nlay,ptimestep,fm,entr,masse,frac 1167 1180 . ,q,dq,qa) 1181 use dimphy 1168 1182 implicit none 1169 1183 … … 1176 1190 c======================================================================= 1177 1191 1178 #include "dimensions.h"1179 #include "dimphy.h"1192 cym#include "dimensions.h" 1193 cym#include "dimphy.h" 1180 1194 1181 1195 integer ngrid,nlay … … 1246 1260 . ,fraca,larga 1247 1261 . ,u,v,du,dv,ua,va) 1262 use dimphy 1248 1263 implicit none 1249 1264 … … 1256 1271 c======================================================================= 1257 1272 1258 #include "dimensions.h"1259 #include "dimphy.h"1273 cym#include "dimensions.h" 1274 cym#include "dimphy.h" 1260 1275 1261 1276 integer ngrid,nlay … … 1302 1317 if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt. 1303 1318 s 1.e-5*masse(ig,k)) then 1304 c On it ère sur la valeur du coeff de freinage.1319 c On itere sur la valeur du coeff de freinage. 1305 1320 c gamma0=rho(ig,k)*(zlev(ig,k+1)-zlev(ig,k)) 1306 1321 gamma0=masse(ig,k) … … 1313 1328 zf=0. 1314 1329 zf2=1./(1.-zf) 1315 c la premi ère fois on multiplie le coefficient de freinage1330 c la premiere fois on multiplie le coefficient de freinage 1316 1331 c par le module du vent dans la couche en dessous. 1317 1332 dua=ua(ig,k-1)-u(ig,k-1) -
LMDZ4/trunk/libf/phylmd/thermcell.h
r542 r766 7 7 s ,w2di_thermals 8 8 9 c$OMP THREADPRIVATE(/ctherm/) -
LMDZ4/trunk/libf/phylmd/tlift.F
r524 r766 201 201 SNEW=1./SNEW 202 202 TPK(I)=TG+(ALF*QI(I)+ALV*RG*(1.-(ESI/ES)))*SNEW 203 c $$$ PRINT*,'################################'204 c $$$ PRINT*,TPK(I)205 c $$$ PRINT*,(ALF*QI(I)+ALV*RG*(1.-(ESI/ES)))*SNEW203 c@$$ PRINT*,'################################' 204 c@$$ PRINT*,TPK(I) 205 c@$$ PRINT*,(ALF*QI(I)+ALV*RG*(1.-(ESI/ES)))*SNEW 206 206 ENDDO 207 207 CCC CLW(I)=RR(1)-QSAT_NEW -
LMDZ4/trunk/libf/phylmd/transp.F
r524 r766 5 5 e t, q, u, v, geom, 6 6 s vtran_e, vtran_q, utran_e, utran_q) 7 c 7 c 8 USE dimphy 8 9 IMPLICIT none 9 10 c====================================================================== … … 13 14 c====================================================================== 14 15 c 15 #include "dimensions.h"16 #include "dimphy.h"16 cym#include "dimensions.h" 17 cym#include "dimphy.h" 17 18 #include "YOMCST.h" 18 19 c -
LMDZ4/trunk/libf/phylmd/transp_lay.F
r644 r766 3 3 s vtran_e, vtran_q, utran_e, utran_q) 4 4 c 5 USE dimphy 5 6 IMPLICIT none 6 7 c====================================================================== … … 10 11 c====================================================================== 11 12 c 12 #include "dimensions.h"13 #include "dimphy.h"13 cym#include "dimensions.h" 14 cym#include "dimphy.h" 14 15 #include "YOMCST.h" 15 16 c -
LMDZ4/trunk/libf/phylmd/undefSTD.F
r684 r766 2 2 $ dtime,ecrit_hf, 3 3 $ oknondef,tnondef,tsumSTD) 4 USE dimphy 4 5 IMPLICIT none 5 6 c … … 23 24 c==================================================================== 24 25 c 25 #include "dimensions.h"26 integer jjmp127 parameter (jjmp1=jjm+1-1/jjm)28 #include "dimphy.h"26 cym#include "dimensions.h" 27 cym integer jjmp1 28 cym parameter (jjmp1=jjm+1-1/jjm) 29 cym#include "dimphy.h" 29 30 c variables Input 30 31 INTEGER nlevSTD, klevSTD, itap -
LMDZ4/trunk/libf/phylmd/ustarhb.F
r541 r766 3 3 ! 4 4 SUBROUTINE ustarhb(knon,u,v,cd_m, ustar) 5 use dimphy 5 6 IMPLICIT none 6 7 c====================================================================== … … 17 18 c model. J. of Climate, vol. 6, 1825-1842. 18 19 c====================================================================== 19 #include "dimensions.h"20 #include "dimphy.h"20 cym#include "dimensions.h" 21 cym#include "dimphy.h" 21 22 #include "YOMCST.h" 22 23 c -
LMDZ4/trunk/libf/phylmd/vdif_kcay.F
r541 r766 5 5 s ,zlev,zlay,u,v,teta,cd,q2,q2diag,km,kn,ustar 6 6 s ,l_mix) 7 use dimphy 7 8 IMPLICIT NONE 8 9 c....................................................................... 9 #include "dimensions.h"10 #include "dimphy.h"10 cym#include "dimensions.h" 11 cym#include "dimphy.h" 11 12 c....................................................................... 12 13 c … … 195 196 PARAMETER (q2min=1.e-5) 196 197 PARAMETER (q2max=1.E+2) 197 PARAMETER (nlay=klev)198 PARAMETER (nlev=klev+1)198 cym PARAMETER (nlay=klev) 199 cym PARAMETER (nlev=klev+1) 199 200 c 200 201 PARAMETER ( … … 221 222 save first 222 223 data first/.true./ 224 c$OMP THREADPRIVATE(first) 223 225 c....................................................................... 224 226 c traitment des valeur de q2 en entree … … 226 228 c 227 229 c Initialisation de q2 228 230 nlay=klev 231 nlev=klev+1 232 229 233 call yamada(ngrid,dt,g,rconst,plev,temp 230 234 s ,zlev,zlay,u,v,teta,cd,q2diag,km,kn,ustar -
LMDZ4/trunk/libf/phylmd/wrgradsfi.F
r524 r766 2 2 ! $Header$ 3 3 ! 4 subroutine wrgradsfi(if,nl,fieldfi,name,titlevar) 4 subroutine wrgradsfi(if,nl,fieldfi_p,name,titlevar) 5 use dimphy 5 6 implicit none 6 7 … … 8 9 9 10 #include "dimensions.h" 10 #include "dimphy.h"11 cym#include "dimphy.h" 11 12 12 13 c arguments 13 14 integer if,nl 14 real fieldfi(klon,nl) 15 real fieldfi_p(klon,nl) 16 real fieldfi(klon2,nl) 15 17 real fielddyn((iim+1)*(jjm+1),llm) 16 18 character*10 name … … 24 26 25 27 c print*,'Transformation pour ',name 26 call gr_fi_dyn(nl,klon,iim+1,jjm+1,fieldfi,fielddyn) 28 call GatherField(fieldfi_p,fieldfi,nl) 29 30 if (phy_rank==0) then 31 call gr_fi_dyn(nl,klon,iim+1,jjm+1,fieldfi,fielddyn) 27 32 c print*,'Transformation OK ' 28 call wrgrads(if,nl,fielddyn,name,titlevar)33 call wrgrads(if,nl,fielddyn,name,titlevar) 29 34 c print*,'Ecriture ok' 30 35 endif 36 31 37 return 32 38 end -
LMDZ4/trunk/libf/phylmd/write_bilKP_ave.h
r644 r766 11 11 itau_w = itau_phy + itap 12 12 c 13 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ue_lay,zx_tmp_3d) 14 CALL histwrite(nid_bilKPave,"ue",itau_w,zx_tmp_3d, 15 . iim*jjmp1*klev,ndex3d) 13 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ue_lay,zx_tmp_3d) 14 CALL histwrite_phy(nid_bilKPave,"ue",itau_w,ue_lay) 16 15 c 17 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ve_lay,zx_tmp_3d) 18 CALL histwrite(nid_bilKPave,"ve",itau_w,zx_tmp_3d, 19 . iim*jjmp1*klev,ndex3d) 16 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ve_lay,zx_tmp_3d) 17 CALL histwrite_phy(nid_bilKPave,"ve",itau_w,ve_lay) 20 18 c 21 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, uq_lay,zx_tmp_3d) 22 CALL histwrite(nid_bilKPave,"uq",itau_w,zx_tmp_3d, 23 . iim*jjmp1*klev,ndex3d) 19 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, uq_lay,zx_tmp_3d) 20 CALL histwrite_phy(nid_bilKPave,"uq",itau_w,uq_lay) 24 21 c 25 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, vq_lay,zx_tmp_3d) 26 CALL histwrite(nid_bilKPave,"vq",itau_w,zx_tmp_3d, 27 . iim*jjmp1*klev,ndex3d) 22 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, vq_lay,zx_tmp_3d) 23 CALL histwrite_phy(nid_bilKPave,"vq",itau_w,vq_lay) 28 24 c 29 25 c Champs 3D: 30 26 C 31 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 32 CALL histwrite(nid_bilKPave,"temp",itau_w,zx_tmp_3d, 33 . iim*jjmp1*klev,ndex3d) 27 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 28 CALL histwrite_phy(nid_bilKPave,"temp",itau_w,t_seri) 34 29 c 35 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 36 CALL histwrite(nid_bilKPave,"ovap",itau_w,zx_tmp_3d, 37 . iim*jjmp1*klev,ndex3d) 30 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 31 CALL histwrite_phy(nid_bilKPave,"ovap",itau_w,qx(:,:,ivap)) 38 32 c 39 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 40 CALL histwrite(nid_bilKPave,"geop",itau_w,zx_tmp_3d, 41 . iim*jjmp1*klev,ndex3d) 33 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 34 CALL histwrite_phy(nid_bilKPave,"geop",itau_w,zphi) 42 35 c 43 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 44 CALL histwrite(nid_bilKPave,"vitu",itau_w,zx_tmp_3d, 45 . iim*jjmp1*klev,ndex3d) 36 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 37 CALL histwrite_phy(nid_bilKPave,"vitu",itau_w,u_seri) 46 38 c 47 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 48 CALL histwrite(nid_bilKPave,"vitv",itau_w,zx_tmp_3d, 49 . iim*jjmp1*klev,ndex3d) 39 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 40 CALL histwrite_phy(nid_bilKPave,"vitv",itau_w,v_seri) 50 41 c 51 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 52 CALL histwrite(nid_bilKPave,"vitw",itau_w,zx_tmp_3d, 53 . iim*jjmp1*klev,ndex3d) 42 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 43 CALL histwrite_phy(nid_bilKPave,"vitw",itau_w,omega) 54 44 c 55 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 56 CALL histwrite(nid_bilKPave,"pres",itau_w,zx_tmp_3d, 57 . iim*jjmp1*klev,ndex3d) 45 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 46 CALL histwrite_phy(nid_bilKPave,"pres",itau_w,pplay) 58 47 c 59 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, paprs, zx_tmp_3d) 60 CALL histwrite(nid_bilKPave,"play",itau_w,zx_tmp_3d, 61 . iim*jjmp1*klev,ndex3d) 48 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, paprs, zx_tmp_3d) 49 CALL histwrite_phy(nid_bilKPave,"play",itau_w,paprs) 62 50 c 63 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldliq, zx_tmp_3d) 64 CALL histwrite(nid_bilKPave,"oliq",itau_w,zx_tmp_3d, 65 . iim*jjmp1*klev,ndex3d) 51 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldliq, zx_tmp_3d) 52 CALL histwrite_phy(nid_bilKPave,"oliq",itau_w,cldliq) 66 53 c 67 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) 68 CALL histwrite(nid_bilKPave,"dtdyn",itau_w,zx_tmp_3d, 69 . iim*jjmp1*klev,ndex3d) 54 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) 55 CALL histwrite_phy(nid_bilKPave,"dtdyn",itau_w,d_t_dyn) 70 56 c 71 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d) 72 CALL histwrite(nid_bilKPave,"dqdyn",itau_w,zx_tmp_3d, 73 . iim*jjmp1*klev,ndex3d) 57 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d) 58 CALL histwrite_phy(nid_bilKPave,"dqdyn",itau_w,d_q_dyn) 74 59 c 75 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_con, zx_tmp_3d) 76 CALL histwrite(nid_bilKPave,"dtcon",itau_w,zx_tmp_3d, 77 . iim*jjmp1*klev,ndex3d) 60 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_con, zx_tmp_3d) 61 CALL histwrite_phy(nid_bilKPave,"dtcon",itau_w,d_t_con) 78 62 c 79 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_con, zx_tmp_3d) 80 CALL histwrite(nid_bilKPave,"ducon",itau_w,zx_tmp_3d, 81 . iim*jjmp1*klev,ndex3d) 63 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_con, zx_tmp_3d) 64 CALL histwrite_phy(nid_bilKPave,"ducon",itau_w,d_u_con) 82 65 c 83 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_con, zx_tmp_3d) 84 CALL histwrite(nid_bilKPave,"dvcon",itau_w,zx_tmp_3d, 85 . iim*jjmp1*klev,ndex3d) 66 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_con, zx_tmp_3d) 67 CALL histwrite_phy(nid_bilKPave,"dvcon",itau_w,d_v_con) 86 68 c 87 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_con, zx_tmp_3d) 88 CALL histwrite(nid_bilKPave,"dqcon",itau_w,zx_tmp_3d, 89 . iim*jjmp1*klev,ndex3d) 69 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_con, zx_tmp_3d) 70 CALL histwrite_phy(nid_bilKPave,"dqcon",itau_w,d_q_con) 90 71 c 91 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_lsc, zx_tmp_3d) 92 CALL histwrite(nid_bilKPave,"dtlsc",itau_w,zx_tmp_3d, 93 . iim*jjmp1*klev,ndex3d) 72 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_lsc, zx_tmp_3d) 73 CALL histwrite_phy(nid_bilKPave,"dtlsc",itau_w,d_t_lsc) 94 74 c 95 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_lsc, zx_tmp_3d) 96 CALL histwrite(nid_bilKPave,"dqlsc",itau_w,zx_tmp_3d, 97 . iim*jjmp1*klev,ndex3d) 75 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_lsc, zx_tmp_3d) 76 CALL histwrite_phy(nid_bilKPave,"dqlsc",itau_w,d_q_lsc) 98 77 c 99 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d) 100 CALL histwrite(nid_bilKPave,"dtvdf",itau_w,zx_tmp_3d, 101 . iim*jjmp1*klev,ndex3d) 78 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d) 79 CALL histwrite_phy(nid_bilKPave,"dtvdf",itau_w,d_t_vdf) 102 80 c 103 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d) 104 CALL histwrite(nid_bilKPave,"dqvdf",itau_w,zx_tmp_3d, 105 . iim*jjmp1*klev,ndex3d) 81 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d) 82 CALL histwrite_phy(nid_bilKPave,"dqvdf",itau_w,d_q_vdf) 106 83 c 107 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_ajs, zx_tmp_3d) 108 CALL histwrite(nid_bilKPave,"dtajs",itau_w,zx_tmp_3d, 109 . iim*jjmp1*klev,ndex3d) 84 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_ajs, zx_tmp_3d) 85 CALL histwrite_phy(nid_bilKPave,"dtajs",itau_w,d_t_ajs) 110 86 c 111 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_ajs, zx_tmp_3d) 112 CALL histwrite(nid_bilKPave,"dqajs",itau_w,zx_tmp_3d, 113 . iim*jjmp1*klev,ndex3d) 87 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_ajs, zx_tmp_3d) 88 CALL histwrite_phy(nid_bilKPave,"dqajs",itau_w,d_q_ajs) 114 89 c 115 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_eva, zx_tmp_3d) 116 CALL histwrite(nid_bilKPave,"dteva",itau_w,zx_tmp_3d, 117 . iim*jjmp1*klev,ndex3d) 90 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_eva, zx_tmp_3d) 91 CALL histwrite_phy(nid_bilKPave,"dteva",itau_w,d_t_eva) 118 92 c 119 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_eva, zx_tmp_3d) 120 CALL histwrite(nid_bilKPave,"dqeva",itau_w,zx_tmp_3d, 121 . iim*jjmp1*klev,ndex3d) 93 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_eva, zx_tmp_3d) 94 CALL histwrite_phy(nid_bilKPave,"dqeva",itau_w,d_q_eva) 122 95 c 123 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat, zx_tmp_3d) 124 CALL histwrite(nid_bilKPave,"dtswr",itau_w,zx_tmp_3d, 125 . iim*jjmp1*klev,ndex3d) 96 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat, zx_tmp_3d) 97 CALL histwrite_phy(nid_bilKPave,"dtswr",itau_w,heat) 126 98 c 127 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat0, zx_tmp_3d) 128 CALL histwrite(nid_bilKPave,"dtsw0",itau_w,zx_tmp_3d, 129 . iim*jjmp1*klev,ndex3d) 99 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat0, zx_tmp_3d) 100 CALL histwrite_phy(nid_bilKPave,"dtsw0",itau_w,heat0) 130 101 c 131 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool, zx_tmp_3d) 132 CALL histwrite(nid_bilKPave,"dtlwr",itau_w,zx_tmp_3d, 133 . iim*jjmp1*klev,ndex3d) 102 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool, zx_tmp_3d) 103 CALL histwrite_phy(nid_bilKPave,"dtlwr",itau_w,cool) 134 104 c 135 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool0, zx_tmp_3d) 136 CALL histwrite(nid_bilKPave,"dtlw0",itau_w,zx_tmp_3d, 137 . iim*jjmp1*klev,ndex3d) 105 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool0, zx_tmp_3d) 106 CALL histwrite_phy(nid_bilKPave,"dtlw0",itau_w,cool0) 138 107 c 139 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d) 140 CALL histwrite(nid_bilKPave,"duvdf",itau_w,zx_tmp_3d, 141 . iim*jjmp1*klev,ndex3d) 108 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d) 109 CALL histwrite_phy(nid_bilKPave,"duvdf",itau_w,d_u_vdf) 142 110 c 143 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d) 144 CALL histwrite(nid_bilKPave,"dvvdf",itau_w,zx_tmp_3d, 145 . iim*jjmp1*klev,ndex3d) 111 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d) 112 CALL histwrite_phy(nid_bilKPave,"dvvdf",itau_w,d_v_vdf) 146 113 c 147 114 IF (ok_orodr) THEN … … 155 122 ENDDO 156 123 c 157 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oli, zx_tmp_3d) 158 CALL histwrite(nid_bilKPave,"duoli",itau_w,zx_tmp_3d, 159 . iim*jjmp1*klev,ndex3d) 124 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oli, zx_tmp_3d) 125 CALL histwrite_phy(nid_bilKPave,"duoli",d_u_oli) 160 126 c 161 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_oli, zx_tmp_3d) 162 CALL histwrite(nid_bilKPave,"dvoli",itau_w,zx_tmp_3d, 163 . iim*jjmp1*klev,ndex3d) 127 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_oli, zx_tmp_3d) 128 CALL histwrite_phy(nid_bilKPave,"dvoli",itau_w,d_v_oli) 164 129 c 165 130 ENDIF 166 131 ENDIF 167 132 C 168 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u, zx_tmp_3d) 169 CALL histwrite(nid_bilKPave,"duphy",itau_w,zx_tmp_3d, 170 . iim*jjmp1*klev,ndex3d) 133 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u, zx_tmp_3d) 134 CALL histwrite_phy(nid_bilKPave,"duphy",itau_w,d_u) 171 135 c 172 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v, zx_tmp_3d) 173 CALL histwrite(nid_bilKPave,"dvphy",itau_w,zx_tmp_3d, 174 . iim*jjmp1*klev,ndex3d) 136 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v, zx_tmp_3d) 137 CALL histwrite_phy(nid_bilKPave,"dvphy",itau_w,d_v) 175 138 c 176 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 177 CALL histwrite(nid_bilKPave,"dtphy",itau_w,zx_tmp_3d, 178 . iim*jjmp1*klev,ndex3d) 139 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 140 CALL histwrite_phy(nid_bilKPave,"dtphy",itau_w,d_t) 179 141 c 180 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,1), 181 .zx_tmp_3d) 182 CALL histwrite(nid_bilKPave,"dqphy",itau_w,zx_tmp_3d, 183 . iim*jjmp1*klev,ndex3d) 142 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,1), 143 cymf .zx_tmp_3d) 144 CALL histwrite_phy(nid_bilKPave,"dqphy",itau_w,d_qx(:,:,1)) 184 145 c 185 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,2), 186 .zx_tmp_3d) 187 CALL histwrite(nid_bilKPave,"dqlphy",itau_w,zx_tmp_3d, 188 . iim*jjmp1*klev,ndex3d) 146 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,2), 147 cym .zx_tmp_3d) 148 CALL histwrite_phy(nid_bilKPave,"dqlphy",itau_w,d_qx(:,:,2)) 189 149 c 190 150 C -
LMDZ4/trunk/libf/phylmd/write_bilKP_ins.h
r644 r766 1 c1 c 2 2 c $Header$ 3 3 c … … 11 11 c Champs 3D: 12 12 c 13 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ue_lay,zx_tmp_3d) 14 CALL histwrite(nid_bilKPins,"ue",itau_w,zx_tmp_3d, 15 . iim*jjmp1*klev,ndex3d) 13 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ue_lay,zx_tmp_3d) 14 CALL histwrite_phy(nid_bilKPins,"ue",itau_w,ue_lay) 16 15 c 17 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ve_lay,zx_tmp_3d) 18 CALL histwrite(nid_bilKPins,"ve",itau_w,zx_tmp_3d, 19 . iim*jjmp1*klev,ndex3d) 16 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, ve_lay,zx_tmp_3d) 17 CALL histwrite_phy(nid_bilKPins,"ve",itau_w,ve_lay) 20 18 c 21 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, uq_lay,zx_tmp_3d) 22 CALL histwrite(nid_bilKPins,"uq",itau_w,zx_tmp_3d, 23 . iim*jjmp1*klev,ndex3d) 19 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, uq_lay,zx_tmp_3d) 20 CALL histwrite_phy(nid_bilKPins,"uq",itau_w,uq_lay) 24 21 c 25 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, vq_lay,zx_tmp_3d) 26 CALL histwrite(nid_bilKPins,"vq",itau_w,zx_tmp_3d, 27 . iim*jjmp1*klev,ndex3d) 22 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, vq_lay,zx_tmp_3d) 23 CALL histwrite_phy(nid_bilKPins,"vq",itau_w,vq_lay) 28 24 c 29 25 c Champs 3D: 30 26 C 31 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 32 CALL histwrite(nid_bilKPins,"temp",itau_w,zx_tmp_3d, 33 . iim*jjmp1*klev,ndex3d) 27 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 28 CALL histwrite_phy(nid_bilKPins,"temp",itau_w,t_seri) 34 29 c 35 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 36 CALL histwrite(nid_bilKPins,"ovap",itau_w,zx_tmp_3d, 37 . iim*jjmp1*klev,ndex3d) 30 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 31 CALL histwrite_phy(nid_bilKPins,"ovap",itau_w,qx(:,:,ivap)) 38 32 c 39 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 40 CALL histwrite(nid_bilKPins,"geop",itau_w,zx_tmp_3d, 41 . iim*jjmp1*klev,ndex3d) 33 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 34 CALL histwrite_phy(nid_bilKPins,"geop",itau_w,zphi) 42 35 c 43 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 44 CALL histwrite(nid_bilKPins,"vitu",itau_w,zx_tmp_3d, 45 . iim*jjmp1*klev,ndex3d) 36 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 37 CALL histwrite_phy(nid_bilKPins,"vitu",itau_w,u_seri) 46 38 c 47 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 48 CALL histwrite(nid_bilKPins,"vitv",itau_w,zx_tmp_3d, 49 . iim*jjmp1*klev,ndex3d) 39 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 40 CALL histwrite_phy(nid_bilKPins,"vitv",itau_w,v_seri) 50 41 c 51 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 52 CALL histwrite(nid_bilKPins,"vitw",itau_w,zx_tmp_3d, 53 . iim*jjmp1*klev,ndex3d) 42 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 43 CALL histwrite_phy(nid_bilKPins,"vitw",itau_w,omega) 54 44 c 55 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 56 CALL histwrite(nid_bilKPins,"pres",itau_w,zx_tmp_3d, 57 . iim*jjmp1*klev,ndex3d) 45 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 46 CALL histwrite_phy(nid_bilKPins,"pres",itau_w,pplay) 58 47 c 59 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, paprs, zx_tmp_3d) 60 CALL histwrite(nid_bilKPins,"play",itau_w,zx_tmp_3d, 61 . iim*jjmp1*klev,ndex3d) 48 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, paprs, zx_tmp_3d) 49 CALL histwrite_phy(nid_bilKPins,"play",itau_w,paprs) 62 50 c 63 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldliq, zx_tmp_3d) 64 CALL histwrite(nid_bilKPins,"oliq",itau_w,zx_tmp_3d, 65 . iim*jjmp1*klev,ndex3d) 51 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldliq, zx_tmp_3d) 52 CALL histwrite_phy(nid_bilKPins,"oliq",itau_w,cldliq) 66 53 c 67 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) 68 CALL histwrite(nid_bilKPins,"dtdyn",itau_w,zx_tmp_3d, 69 . iim*jjmp1*klev,ndex3d) 54 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) 55 CALL histwrite_phy(nid_bilKPins,"dtdyn",itau_w,d_t_dyn) 70 56 c 71 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d) 72 CALL histwrite(nid_bilKPins,"dqdyn",itau_w,zx_tmp_3d, 73 . iim*jjmp1*klev,ndex3d) 57 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d) 58 CALL histwrite_phy(nid_bilKPins,"dqdyn",itau_w,d_q_dyn) 74 59 c 75 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_con, zx_tmp_3d) 76 CALL histwrite(nid_bilKPins,"dtcon",itau_w,zx_tmp_3d, 77 . iim*jjmp1*klev,ndex3d) 60 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_con, zx_tmp_3d) 61 CALL histwrite_phy(nid_bilKPins,"dtcon",itau_w,d_t_con) 78 62 c 79 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_con, zx_tmp_3d) 80 CALL histwrite(nid_bilKPins,"ducon",itau_w,zx_tmp_3d, 81 . iim*jjmp1*klev,ndex3d) 63 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_con, zx_tmp_3d) 64 CALL histwrite_phy(nid_bilKPins,"ducon",itau_w,d_u_con) 82 65 c 83 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_con, zx_tmp_3d) 84 CALL histwrite(nid_bilKPins,"dvcon",itau_w,zx_tmp_3d, 85 . iim*jjmp1*klev,ndex3d) 66 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_con, zx_tmp_3d) 67 CALL histwrite_phy(nid_bilKPins,"dvcon",itau_w,d_v_con) 86 68 c 87 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_con, zx_tmp_3d) 88 CALL histwrite(nid_bilKPins,"dqcon",itau_w,zx_tmp_3d, 89 . iim*jjmp1*klev,ndex3d) 69 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_con, zx_tmp_3d) 70 CALL histwrite_phy(nid_bilKPins,"dqcon",itau_w,d_q_con) 90 71 c 91 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_lsc, zx_tmp_3d) 92 CALL histwrite(nid_bilKPins,"dtlsc",itau_w,zx_tmp_3d, 93 . iim*jjmp1*klev,ndex3d) 72 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_lsc, zx_tmp_3d) 73 CALL histwrite_phy(nid_bilKPins,"dtlsc",itau_w,d_t_lsc) 94 74 c 95 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_lsc, zx_tmp_3d) 96 CALL histwrite(nid_bilKPins,"dqlsc",itau_w,zx_tmp_3d, 97 . iim*jjmp1*klev,ndex3d) 75 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_lsc, zx_tmp_3d) 76 CALL histwrite_phy(nid_bilKPins,"dqlsc",itau_w,d_q_lsc) 98 77 c 99 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d) 100 CALL histwrite(nid_bilKPins,"dtvdf",itau_w,zx_tmp_3d, 101 . iim*jjmp1*klev,ndex3d) 78 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d) 79 CALL histwrite_phy(nid_bilKPins,"dtvdf",itau_w,d_t_vdf) 102 80 c 103 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d) 104 CALL histwrite(nid_bilKPins,"dqvdf",itau_w,zx_tmp_3d, 105 . iim*jjmp1*klev,ndex3d) 81 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d) 82 CALL histwrite_phy(nid_bilKPins,"dqvdf",itau_w,d_q_vdf) 106 83 c 107 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_ajs, zx_tmp_3d) 108 CALL histwrite(nid_bilKPins,"dtajs",itau_w,zx_tmp_3d, 109 . iim*jjmp1*klev,ndex3d) 84 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_ajs, zx_tmp_3d) 85 CALL histwrite_phy(nid_bilKPins,"dtajs",itau_w,d_t_ajs) 110 86 c 111 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_ajs, zx_tmp_3d) 112 CALL histwrite(nid_bilKPins,"dqajs",itau_w,zx_tmp_3d, 113 . iim*jjmp1*klev,ndex3d) 87 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_ajs, zx_tmp_3d) 88 CALL histwrite_phy(nid_bilKPins,"dqajs",itau_w,d_q_ajs) 114 89 c 115 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_eva, zx_tmp_3d) 116 CALL histwrite(nid_bilKPins,"dteva",itau_w,zx_tmp_3d, 117 . iim*jjmp1*klev,ndex3d) 90 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_eva, zx_tmp_3d) 91 CALL histwrite_phy(nid_bilKPins,"dteva",itau_w,d_t_eva) 118 92 c 119 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_eva, zx_tmp_3d) 120 CALL histwrite(nid_bilKPins,"dqeva",itau_w,zx_tmp_3d, 121 . iim*jjmp1*klev,ndex3d) 93 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_eva, zx_tmp_3d) 94 CALL histwrite_phy(nid_bilKPins,"dqeva",itau_w,d_q_eva) 122 95 c 123 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat, zx_tmp_3d) 124 CALL histwrite(nid_bilKPins,"dtswr",itau_w,zx_tmp_3d, 125 . iim*jjmp1*klev,ndex3d) 96 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat, zx_tmp_3d) 97 CALL histwrite_phy(nid_bilKPins,"dtswr",itau_w,heat) 126 98 c 127 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat0, zx_tmp_3d) 128 CALL histwrite(nid_bilKPins,"dtsw0",itau_w,zx_tmp_3d, 129 . iim*jjmp1*klev,ndex3d) 99 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, heat0, zx_tmp_3d) 100 CALL histwrite_phy(nid_bilKPins,"dtsw0",itau_w,heat0) 130 101 c 131 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool, zx_tmp_3d) 132 CALL histwrite(nid_bilKPins,"dtlwr",itau_w,zx_tmp_3d, 133 . iim*jjmp1*klev,ndex3d) 102 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool, zx_tmp_3d) 103 CALL histwrite_phy(nid_bilKPins,"dtlwr",itau_w,cool) 134 104 c 135 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool0, zx_tmp_3d) 136 CALL histwrite(nid_bilKPins,"dtlw0",itau_w,zx_tmp_3d, 137 . iim*jjmp1*klev,ndex3d) 105 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cool0, zx_tmp_3d) 106 CALL histwrite_phy(nid_bilKPins,"dtlw0",itau_w,cool0) 138 107 c 139 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d) 140 CALL histwrite(nid_bilKPins,"duvdf",itau_w,zx_tmp_3d, 141 . iim*jjmp1*klev,ndex3d) 108 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d) 109 CALL histwrite_phy(nid_bilKPins,"duvdf",itau_w,d_u_vdf) 142 110 c 143 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d) 144 CALL histwrite(nid_bilKPins,"dvvdf",itau_w,zx_tmp_3d, 145 . iim*jjmp1*klev,ndex3d) 111 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d) 112 CALL histwrite_phy(nid_bilKPins,"dvvdf",itau_w,d_v_vdf) 146 113 c 147 114 IF (ok_orodr) THEN … … 155 122 ENDDO 156 123 c 157 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oli, zx_tmp_3d) 158 CALL histwrite(nid_bilKPins,"duoli",itau_w,zx_tmp_3d, 159 . iim*jjmp1*klev,ndex3d) 124 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oli, zx_tmp_3d) 125 CALL histwrite_phy(nid_bilKPins,"duoli",itau_w,d_u_oli) 160 126 c 161 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_oli, zx_tmp_3d) 162 CALL histwrite(nid_bilKPins,"dvoli",itau_w,zx_tmp_3d, 163 . iim*jjmp1*klev,ndex3d) 127 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_oli, zx_tmp_3d) 128 CALL histwrite_phy(nid_bilKPins,"dvoli",itau_w,d_v_oli) 164 129 c 165 130 ENDIF 166 131 ENDIF 167 132 C 168 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u, zx_tmp_3d) 169 CALL histwrite(nid_bilKPins,"duphy",itau_w,zx_tmp_3d, 170 . iim*jjmp1*klev,ndex3d) 133 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u, zx_tmp_3d) 134 CALL histwrite_phy(nid_bilKPins,"duphy",itau_w,d_u) 171 135 c 172 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v, zx_tmp_3d) 173 CALL histwrite(nid_bilKPins,"dvphy",itau_w,zx_tmp_3d, 174 . iim*jjmp1*klev,ndex3d) 136 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v, zx_tmp_3d) 137 CALL histwrite_phy(nid_bilKPins,"dvphy",itau_w,d_v) 175 138 c 176 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 177 CALL histwrite(nid_bilKPins,"dtphy",itau_w,zx_tmp_3d, 178 . iim*jjmp1*klev,ndex3d) 139 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 140 CALL histwrite_phy(nid_bilKPins,"dtphy",itau_w,d_t) 179 141 c 180 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,1), 181 .zx_tmp_3d) 182 CALL histwrite(nid_bilKPins,"dqphy",itau_w,zx_tmp_3d, 183 . iim*jjmp1*klev,ndex3d) 142 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,1), 143 cym .zx_tmp_3d) 144 CALL histwrite_phy(nid_bilKPins,"dqphy",itau_w,d_qx(:,:,1)) 184 145 c 185 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,2), 186 .zx_tmp_3d) 187 CALL histwrite(nid_bilKPins,"dqlphy",itau_w,zx_tmp_3d, 188 . iim*jjmp1*klev,ndex3d) 146 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,2), 147 cym .zx_tmp_3d) 148 CALL histwrite_phy(nid_bilKPins,"dqlphy",itau_w,d_qx(:,:,2)) 189 149 c 190 150 cIM 280405 BEG … … 201 161 IF(bb2.EQ."850") THEN 202 162 c 203 CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,1),zx_tmp_2d) 204 CALL histwrite(nid_bilKPins,"u"//bb2,itau_w,zx_tmp_2d, 205 $ iim*jjmp1,ndex2d) 163 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,1),zx_tmp_2d) 164 CALL histwrite_phy(nid_bilKPins,"u"//bb2,itau_w,usumSTD(:,k,1)) 206 165 c 207 CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,1),zx_tmp_2d) 208 CALL histwrite(nid_bilKPins,"v"//bb2,itau_w,zx_tmp_2d, 209 $ iim*jjmp1,ndex2d) 166 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,1),zx_tmp_2d) 167 CALL histwrite_phy(nid_bilKPins,"v"//bb2,itau_w,vsumSTD(:,k,1)) 210 168 c 211 169 ENDIF !(bb2.EQ."850") -
LMDZ4/trunk/libf/phylmd/write_histISCCP.h
r684 r766 15 15 DO k=1,kmaxm1 16 16 zx_tmp_fi3d(1:klon, 1:lmaxm1)=fq_isccp(1:klon,k,1:lmaxm1,n)*100. 17 CALL gr_fi_ecrit(lmaxm1,klon,iim,jjmp1,zx_tmp_fi3d,18 . zx_tmp_3d)17 cym CALL gr_fi_ecrit(lmaxm1,klon,iim,jjmp1,zx_tmp_fi3d, 18 cym . zx_tmp_3d) 19 19 c 20 20 cIM: champ 3d : (lon,lat,pres) pour un tau fixe 21 21 c 22 CALL histwrite(nid_isccp,"cldISCCP_"//taulev(k)//typinout(n),23 . itau_w,zx_tmp_ 3d,iim*jjmp1*lmaxm1,ndex3d)22 CALL histwrite_phy(nid_isccp,"cldISCCP_"//taulev(k)//typinout(n), 23 . itau_w,zx_tmp_fi3d) 24 24 ENDDO !k 25 25 c 26 CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d)27 CALL histwrite (nid_isccp,"nsunlit"//typinout(n),itau_w,28 . zx_tmp_2d,iim*jjmp1,ndex2d)26 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d) 27 CALL histwrite_phy(nid_isccp,"nsunlit"//typinout(n),itau_w, 28 . nbsunlit(1,:,n)) 29 29 c 30 30 ENDDO ! n=1, napisccp … … 50 50 ENDDO 51 51 ENDIF 52 CALL gr_fi_ecrit(1,klon,iim,jjmp1,fq_is_true,53 . zx_tmp_2d)52 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,fq_is_true, 53 cym . zx_tmp_2d) 54 54 c 55 55 cIM: champ 2d : (lon,lat) pour un tau et une pc fixes 56 56 c 57 CALL histwrite (nid_isccp,pclev(l)//taulev(k)//typinout(n),58 . itau_w, zx_tmp_2d,iim*jjmp1,ndex2d)57 CALL histwrite_phy(nid_isccp,pclev(l)//taulev(k)//typinout(n), 58 . itau_w,fq_is_true(:,:,l,n)) 59 59 ENDDO !l 60 60 ENDDO !k 61 61 c 62 62 c print*,'n=',n,' write_ISCCP avant nbsunlit' 63 CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d)64 CALL histwrite (nid_isccp,"nsunlit"//typinout(n),65 . itau_w, zx_tmp_2d,iim*jjmp1,ndex2d)63 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d) 64 CALL histwrite_phy(nid_isccp,"nsunlit"//typinout(n), 65 . itau_w,nbsunlit(1,:,n)) 66 66 c 67 67 zx_tmp_fi2d(1:klon)=float(seed(1:klon,n)) 68 68 c 69 69 c print*,'n=',n,' write_ISCCP avant seed' 70 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)71 CALL histwrite (nid_isccp,"seed"//verticaxe(n),72 . itau_w,zx_tmp_ 2d,iim*jjmp1,ndex2d)70 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 71 CALL histwrite_phy(nid_isccp,"seed"//verticaxe(n), 72 . itau_w,zx_tmp_fi2d) 73 73 c 74 74 c 9types de nuages ISCCP-D2 … … 80 80 $ fq_is_true(i,1,3,n)+ fq_is_true(i,2,3,n)+ fq_is_true(i,3,3,n) ) 81 81 ENDDO 82 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 83 CALL histwrite(nid_isccp,"cirr",itau_w,zx_tmp_2d, 84 $ iim*jjmp1,ndex2d) 82 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 83 CALL histwrite_phy(nid_isccp,"cirr",itau_w,zx_tmp_fi2d) 85 84 c 86 85 DO i=1, klon … … 90 89 $ fq_is_true(i,4,3,n)+ fq_is_true(i,5,3,n) ) 91 90 ENDDO 92 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 93 CALL histwrite(nid_isccp,"cist",itau_w,zx_tmp_2d, 94 $ iim*jjmp1,ndex2d) 91 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 92 CALL histwrite_phy(nid_isccp,"cist",itau_w,zx_tmp_fi2d) 95 93 c 96 94 DO i=1, klon … … 100 98 $ fq_is_true(i,6,3,n)+ fq_is_true(i,7,3,n) ) 101 99 ENDDO 102 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 103 CALL histwrite(nid_isccp,"deep",itau_w,zx_tmp_2d, 104 $ iim*jjmp1,ndex2d) 100 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 101 CALL histwrite_phy(nid_isccp,"deep",itau_w,zx_tmp_fi2d) 105 102 c 106 103 DO i=1, klon … … 109 106 $ fq_is_true(i,1,5,n)+ fq_is_true(i,2,5,n)+ fq_is_true(i,3,5,n) ) 110 107 ENDDO 111 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 112 CALL histwrite(nid_isccp,"alcu",itau_w,zx_tmp_2d, 113 $ iim*jjmp1,ndex2d) 108 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 109 CALL histwrite_phy(nid_isccp,"alcu",itau_w,zx_tmp_fi2d) 114 110 c 115 111 DO i=1, klon … … 118 114 $ fq_is_true(i,4,5,n)+ fq_is_true(i,5,5,n) ) 119 115 ENDDO 120 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 121 CALL histwrite(nid_isccp,"alst",itau_w,zx_tmp_2d, 122 $ iim*jjmp1,ndex2d) 116 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 117 CALL histwrite_phy(nid_isccp,"alst",itau_w,zx_tmp_fi2d) 123 118 c 124 119 DO i=1, klon … … 127 122 $ fq_is_true(i,6,5,n)+ fq_is_true(i,7,5,n) ) 128 123 ENDDO 129 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 130 CALL histwrite(nid_isccp,"nist",itau_w,zx_tmp_2d, 131 $ iim*jjmp1,ndex2d) 124 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 125 CALL histwrite_phy(nid_isccp,"nist",itau_w,zx_tmp_fi2d) 132 126 c 133 127 DO i=1, klon … … 136 130 $ fq_is_true(i,1,7,n)+ fq_is_true(i,2,7,n)+ fq_is_true(i,3,7,n) ) 137 131 ENDDO 138 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 139 CALL histwrite(nid_isccp,"cumu",itau_w,zx_tmp_2d, 140 $ iim*jjmp1,ndex2d) 132 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 133 CALL histwrite_phy(nid_isccp,"cumu",itau_w,zx_tmp_fi2d) 141 134 c 142 135 DO i=1, klon … … 145 138 $ fq_is_true(i,4,7,n)+ fq_is_true(i,5,7,n) ) 146 139 ENDDO 147 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 148 CALL histwrite(nid_isccp,"stcu",itau_w,zx_tmp_2d, 149 $ iim*jjmp1,ndex2d) 140 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 141 CALL histwrite_phy(nid_isccp,"stcu",itau_w,zx_tmp_fi2d) 150 142 c 151 143 DO i=1, klon … … 154 146 $ fq_is_true(i,6,7,n)+ fq_is_true(i,7,7,n) ) 155 147 ENDDO 156 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 157 CALL histwrite(nid_isccp,"stra",itau_w,zx_tmp_2d, 158 $ iim*jjmp1,ndex2d) 148 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 149 CALL histwrite_phy(nid_isccp,"stra",itau_w,zx_tmp_fi2d) 159 150 c 160 151 c 3_tau_nuages x 3_levels … … 172 163 $ fq_is_true(i,1,7,n)+ fq_is_true(i,2,7,n)+ fq_is_true(i,3,7,n) ) 173 164 ENDDO 174 CALL gr_fi_ecrit(lmax3,klon,iim,jjmp1,cld_fi3d,cld_3d) 175 CALL histwrite(nid_isccp,"thin",itau_w,cld_3d, 176 $ iim*jjmp1*lmax3,ndex3d) 165 cym CALL gr_fi_ecrit(lmax3,klon,iim,jjmp1,cld_fi3d,cld_3d) 166 CALL histwrite_phy(nid_isccp,"thin",itau_w,cld_fi3d) 177 167 c 178 168 DO i=1, klon … … 188 178 $ fq_is_true(i,4,7,n)+ fq_is_true(i,5,7,n) ) 189 179 ENDDO 190 CALL gr_fi_ecrit(lmax3, klon,iim,jjmp1,cld_fi3d,cld_3d) 191 CALL histwrite(nid_isccp,"mid",itau_w,cld_3d, 192 $ iim*jjmp1*lmax3,ndex3d) 180 cym CALL gr_fi_ecrit(lmax3, klon,iim,jjmp1,cld_fi3d,cld_3d) 181 CALL histwrite_phy(nid_isccp,"mid",itau_w,cld_fi3d) 193 182 c 194 183 DO i=1, klon … … 204 193 $ fq_is_true(i,6,7,n)+ fq_is_true(i,7,7,n) ) 205 194 ENDDO 206 CALL gr_fi_ecrit(lmax3, klon,iim,jjmp1,cld_fi3d,cld_3d) 207 CALL histwrite(nid_isccp,"thick",itau_w,cld_3d, 208 $ iim*jjmp1*lmax3,ndex3d) 195 cym CALL gr_fi_ecrit(lmax3, klon,iim,jjmp1,cld_fi3d,cld_3d) 196 CALL histwrite_phy(nid_isccp,"thick",itau_w,cld_fi3d) 209 197 c 210 198 ENDDO ! n=1, napisccp … … 213 201 c 214 202 if (ok_sync) then 203 c$OMP MASTER 215 204 call histsync(nid_isccp) 205 c$OMP END MASTER 216 206 endif 217 207 -
LMDZ4/trunk/libf/phylmd/write_histREGDYN.h
r644 r766 3 3 ! 4 4 if (ok_regdyn) then 5 c 5 6 if (monocpu) then 7 8 6 9 ndex3d = 0 7 10 itau_w = itau_phy + itap … … 56 59 endif 57 60 61 endif ! monocpu 62 58 63 endif -
LMDZ4/trunk/libf/phylmd/write_histday.h
r719 r766 14 14 IF(lev_histday.GE.1) THEN 15 15 c 16 CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d) 17 CALL histwrite(nid_day,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 18 c 19 cIM 310804 CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d) 20 CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d) 21 CALL histwrite(nid_day,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 16 CALL histwrite_phy(nid_day,"phis",itau_w,pphis) 17 18 c 19 CALL histwrite_phy(nid_day,"aire",itau_w,airephy) 22 20 c 23 21 DO i=1, klon … … 25 23 ENDDO 26 24 c 27 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 28 CALL histwrite(nid_day,"contfracATM",itau_w, 29 $ zx_tmp_2d,iim*jjmp1,ndex2d) 30 c 31 CALL gr_fi_ecrit(1,klon,iim,jjmp1,pctsrf_new(:,is_ter),zx_tmp_2d) 32 CALL histwrite(nid_day,"contfracOR",itau_w, 33 $ zx_tmp_2d,iim*jjmp1,ndex2d) 34 c 35 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d) 36 CALL histwrite(nid_day,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 37 C 38 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 39 CALL histwrite(nid_day,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 25 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 26 CALL histwrite_phy(nid_day,"contfracATM",itau_w,zx_tmp_fi2d) 27 c 28 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,pctsrf_new(:,is_ter),zx_tmp_2d) 29 CALL histwrite_phy(nid_day,"contfracOR",itau_w, 30 & pctsrf_new(:,is_ter)) 31 c 32 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d) 33 CALL histwrite_phy(nid_day,"tsol",itau_w,zxtsol) 34 C 35 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 36 CALL histwrite_phy(nid_day,"t2m",itau_w,zt2m) 40 37 c 41 38 c En attendant un eventuel debugage. 42 39 43 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 44 CALL histwrite(nid_day,"t2m_min",itau_w,zx_tmp_2d, 45 . iim*jjmp1,ndex2d) 46 c 47 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 48 CALL histwrite(nid_day,"t2m_max",itau_w,zx_tmp_2d, 49 . iim*jjmp1,ndex2d) 40 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 41 CALL histwrite_phy(nid_day,"t2m_min",itau_w,zt2m) 42 c 43 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 44 CALL histwrite_phy(nid_day,"t2m_max",itau_w,zt2m) 50 45 c 51 46 DO i = 1, klon 52 47 zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i) 53 48 ENDDO 54 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)55 CALL histwrite (nid_day,"plul",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)49 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 50 CALL histwrite_phy(nid_day,"plul",itau_w,zx_tmp_fi2d) 56 51 c 57 52 DO i = 1, klon 58 53 zx_tmp_fi2d(i) = rain_con(i) + snow_con(i) 59 54 ENDDO 60 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)61 CALL histwrite (nid_day,"pluc",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)62 c 63 CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_lsc,zx_tmp_2d)64 CALL histwrite (nid_day,"snowl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)55 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 56 CALL histwrite_phy(nid_day,"pluc",itau_w,zx_tmp_fi2d) 57 c 58 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_lsc,zx_tmp_2d) 59 CALL histwrite_phy(nid_day,"snowl",itau_w,snow_lsc) 65 60 c 66 61 IF(1.EQ.0) THEN 67 CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_con,zx_tmp_2d)68 CALL histwrite (nid_day,"snowc",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)62 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_con,zx_tmp_2d) 63 CALL histwrite_phy(nid_day,"snowc",itau_w,snow_con) 69 64 ENDIF 70 65 c 71 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d)72 CALL histwrite (nid_day,"flat",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)66 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d) 67 CALL histwrite_phy(nid_day,"flat",itau_w,zxfluxlat) 73 68 c 74 69 DO i = 1, klon … … 76 71 ENDDO 77 72 c 78 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 79 CALL histwrite(nid_day,"sicf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 80 c 81 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zq2m,zx_tmp_2d) 82 CALL histwrite(nid_day,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 83 c 84 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zu10m,zx_tmp_2d) 85 CALL histwrite(nid_day,"u10m",itau_w,zx_tmp_2d,iim*jjmp1, 86 . ndex2d) 87 c 88 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zv10m,zx_tmp_2d) 89 CALL histwrite(nid_day,"v10m",itau_w,zx_tmp_2d,iim*jjmp1, 90 . ndex2d) 73 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 74 CALL histwrite_phy(nid_day,"sicf",itau_w,zx_tmp_fi2d) 75 c 76 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zq2m,zx_tmp_2d) 77 CALL histwrite_phy(nid_day,"q2m",itau_w,zq2m) 78 c 79 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zu10m,zx_tmp_2d) 80 CALL histwrite_phy(nid_day,"u10m",itau_w,zu10m) 81 c 82 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zv10m,zx_tmp_2d) 83 CALL histwrite_phy(nid_day,"v10m",itau_w,zv10m) 91 84 c 92 85 DO i=1, klon 93 86 zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i)) 94 87 ENDDO 95 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 96 CALL histwrite(nid_day,"wind10m",itau_w,zx_tmp_2d, 97 $ iim*jjmp1,ndex2d) 98 c 99 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 100 CALL histwrite(nid_day,"wind10max",itau_w,zx_tmp_2d, 101 . iim*jjmp1,ndex2d) 88 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 89 CALL histwrite_phy(nid_day,"wind10m",itau_w,zx_tmp_fi2d) 90 c 91 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 92 CALL histwrite_phy(nid_day,"wind10max",itau_w,zx_tmp_fi2d) 102 93 c 103 94 DO i=1, klon 104 95 zx_tmp_fi2d(i) = paprs(i,1) 105 96 ENDDO 106 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)107 CALL histwrite (nid_day,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)97 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 98 CALL histwrite_phy(nid_day,"psol",itau_w,zx_tmp_fi2d) 108 99 c 109 100 DO i=1, klon 110 101 zx_tmp_fi2d(i) = (rain_fall(i) + snow_fall(i)) 111 102 ENDDO 112 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)113 CALL histwrite (nid_day,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)114 c 115 CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)116 CALL histwrite (nid_day,"snowf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)103 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 104 CALL histwrite_phy(nid_day,"precip",itau_w,zx_tmp_fi2d) 105 c 106 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d) 107 CALL histwrite_phy(nid_day,"snowf",itau_w,snow_fall) 117 108 c 118 109 cIM: 140404 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d) … … 121 112 c . ndex2d) 122 113 c 123 CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d) 124 CALL histwrite(nid_day,"evap",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 125 c 126 CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d) 127 CALL histwrite(nid_day,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 128 c 129 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d) 130 CALL histwrite(nid_day,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 131 c 132 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d) 133 CALL histwrite(nid_day,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 134 c 135 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d) 136 CALL histwrite(nid_day,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 137 c 138 CALL gr_fi_ecrit(1, klon,iim,jjmp1, radsol,zx_tmp_2d) 139 CALL histwrite(nid_day,"radsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 140 c 141 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d) 142 CALL histwrite(nid_day,"cldl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 143 c 144 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d) 145 CALL histwrite(nid_day,"cldm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 146 c 147 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d) 148 CALL histwrite(nid_day,"cldh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 149 c 150 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d) 151 CALL histwrite(nid_day,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 152 c 153 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d) 154 CALL histwrite(nid_day,"cldq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 155 c 156 CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d) 157 CALL histwrite(nid_day,"prw",itau_w,zx_tmp_2d, 158 . iim*jjmp1,ndex2d) 114 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d) 115 CALL histwrite_phy(nid_day,"evap",itau_w,evap) 116 c 117 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d) 118 CALL histwrite_phy(nid_day,"tops",itau_w,topsw) 119 c 120 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d) 121 CALL histwrite_phy(nid_day,"topl",itau_w,toplw) 122 c 123 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d) 124 CALL histwrite_phy(nid_day,"sols",itau_w,solsw) 125 c 126 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d) 127 CALL histwrite_phy(nid_day,"soll",itau_w,sollw) 128 c 129 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, radsol,zx_tmp_2d) 130 CALL histwrite_phy(nid_day,"radsol",itau_w,radsol) 131 c 132 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d) 133 CALL histwrite_phy(nid_day,"cldl",itau_w,cldl) 134 c 135 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d) 136 CALL histwrite_phy(nid_day,"cldm",itau_w,cldm) 137 c 138 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d) 139 CALL histwrite_phy(nid_day,"cldh",itau_w,cldh) 140 c 141 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d) 142 CALL histwrite_phy(nid_day,"cldt",itau_w,cldt) 143 c 144 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d) 145 CALL histwrite_phy(nid_day,"cldq",itau_w,cldq) 146 c 147 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d) 148 CALL histwrite_phy(nid_day,"prw",itau_w,prw) 159 149 160 150 c Ecriture de champs dynamiques sur des niveaux de pression … … 173 163 $ .OR.bb2.EQ."500".OR.bb2.EQ."200") THEN 174 164 c 175 CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,1),zx_tmp_2d) 176 CALL histwrite(nid_day,"u"//bb2,itau_w,zx_tmp_2d, 177 $ iim*jjmp1,ndex2d) 178 c 179 CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,1),zx_tmp_2d) 180 CALL histwrite(nid_day,"v"//bb2,itau_w,zx_tmp_2d, 181 $ iim*jjmp1,ndex2d) 165 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,1),zx_tmp_2d) 166 CALL histwrite_phy(nid_day,"u"//bb2,itau_w,usumSTD(:,k,1)) 167 c 168 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,1),zx_tmp_2d) 169 CALL histwrite_phy(nid_day,"v"//bb2,itau_w,vsumSTD(:,k,1)) 182 170 c 183 171 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.bb2.EQ."500".OR.bb2.EQ."200") THEN … … 187 175 IF(bb2.EQ."500") THEN 188 176 c 189 CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,1),zx_tmp_2d) 190 CALL histwrite(nid_day,"w"//bb2,itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 191 c 192 CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,1),zx_tmp_2d) 193 CALL histwrite(nid_day,"phi"//bb2,itau_w,zx_tmp_2d, 194 $ iim*jjmp1,ndex2d) 177 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,1),zx_tmp_2d) 178 CALL histwrite_phy(nid_day,"w"//bb2,itau_w,wsumSTD(:,k,1)) 179 c 180 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,1),zx_tmp_2d) 181 CALL histwrite_phy(nid_day,"phi"//bb2,itau_w,phisumSTD(:,k,1)) 195 182 196 183 ENDIF !(bb2.EQ."500") THEN … … 198 185 ENDDO !nlevSTD 199 186 c 200 CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d) 201 CALL histwrite(nid_day,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 202 203 CALL gr_fi_ecrit(1,klon,iim,jjmp1,cape,zx_tmp_2d) 204 CALL histwrite(nid_day,"cape_max",itau_w,zx_tmp_2d, 205 . iim*jjmp1,ndex2d) 206 c 207 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 208 CALL histwrite(nid_day,"solldown",itau_w,zx_tmp_2d,iim*jjmp1, 209 . ndex2d) 187 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d) 188 CALL histwrite_phy(nid_day,"slp",itau_w,slp) 189 190 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,cape,zx_tmp_2d) 191 CALL histwrite_phy(nid_day,"cape_max",itau_w,cape) 192 c 193 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 194 CALL histwrite_phy(nid_day,"solldown",itau_w,sollwdown) 210 195 c 211 196 DO i=1, klon 212 197 zx_tmp_fi2d(i)=-1*sens(i) 213 198 ENDDO 214 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)215 CALL histwrite (nid_day,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)199 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 200 CALL histwrite_phy(nid_day,"sens",itau_w,zx_tmp_fi2d) 216 201 c 217 202 zx_tmp_fi2d(1 : klon) = swdn(1 : klon, 1) 218 203 219 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 220 CALL histwrite(nid_day, "SWdnSFC",itau_w,zx_tmp_2d, 221 . iim*jjmp1,ndex2d) 204 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 205 CALL histwrite_phy(nid_day, "SWdnSFC",itau_w,zx_tmp_fi2d) 222 206 c 223 207 IF (OCEAN.EQ.'force ') THEN … … 232 216 ENDIF 233 217 ENDDO 234 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 235 CALL histwrite(nid_day,"lmt_bils",itau_w, 236 . zx_tmp_2d,iim*jjmp1,ndex2d) 218 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 219 CALL histwrite_phy(nid_day,"lmt_bils",itau_w, zx_tmp_fi2d) 237 220 c 238 221 ELSE IF (OCEAN.EQ.'slab ') THEN … … 247 230 ENDIF 248 231 ENDDO 249 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 250 CALL histwrite(nid_day,"slab_bils",itau_w, 251 . zx_tmp_2d,iim*jjmp1,ndex2d) 232 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 233 CALL histwrite_phy(nid_day,"slab_bils",itau_w,zx_tmp_fi2d) 252 234 c 253 235 DO i=1, klon … … 259 241 ENDIF 260 242 ENDDO !i=1, klon 261 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 262 CALL histwrite(nid_day,"tslab",itau_w,zx_tmp_2d, 263 . iim*jjmp1,ndex2d) 264 c 265 CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d) 266 CALL histwrite(nid_day,"seaice",itau_w,zx_tmp_2d, 267 . iim*jjmp1,ndex2d) 268 c 269 CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d) 270 CALL histwrite(nid_day,"siceh",itau_w,zx_tmp_2d, 271 . iim*jjmp1,ndex2d) 243 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 244 CALL histwrite_phy(nid_day,"tslab",itau_w,zx_tmp_fi2d) 245 c 246 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d) 247 CALL histwrite_phy(nid_day,"seaice",itau_w,seaice) 248 c 249 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d) 250 CALL histwrite_phy(nid_day,"siceh",itau_w,seaice/1000.) 272 251 c 273 252 ENDIF !(OCEAN.EQ.'slab ') THEN … … 281 260 ENDDO 282 261 c 283 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 284 CALL histwrite(nid_day,"fluxo",itau_w,zx_tmp_2d, 285 . iim*jjmp1,ndex2d) 262 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 263 CALL histwrite_phy(nid_day,"fluxo",itau_w,zx_tmp_fi2d) 286 264 c 287 265 DO i=1, klon … … 293 271 ENDDO 294 272 c 295 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 296 CALL histwrite(nid_day,"fluxg",itau_w,zx_tmp_2d, 297 . iim*jjmp1,ndex2d) 273 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 274 CALL histwrite_phy(nid_day,"fluxg",itau_w,zx_tmp_fi2d) 298 275 c 299 276 ENDIF !lev_histday.GE.1 … … 301 278 IF(lev_histday.GE.2) THEN 302 279 c 303 CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d)304 CALL histwrite (nid_day,"bils",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)305 c 306 CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)307 CALL histwrite (nid_day,"fder",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)280 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d) 281 CALL histwrite_phy(nid_day,"bils",itau_w, bils) 282 c 283 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d) 284 CALL histwrite_phy(nid_day,"fder",itau_w,fder) 308 285 c 309 286 ENDIF !lev_histday.GE.2 … … 317 294 c Champs 3D: 318 295 c 319 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 320 CALL histwrite(nid_day,"temp",itau_w,zx_tmp_3d, 321 . iim*jjmp1*klev,ndex3d) 322 c 323 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 324 CALL histwrite(nid_day,"ovap",itau_w,zx_tmp_3d, 325 . iim*jjmp1*klev,ndex3d) 326 c 327 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 328 CALL histwrite(nid_day,"geop",itau_w,zx_tmp_3d, 329 . iim*jjmp1*klev,ndex3d) 330 c 331 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 332 CALL histwrite(nid_day,"vitu",itau_w,zx_tmp_3d, 333 . iim*jjmp1*klev,ndex3d) 334 c 335 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 336 CALL histwrite(nid_day,"vitv",itau_w,zx_tmp_3d, 337 . iim*jjmp1*klev,ndex3d) 338 c 339 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 340 CALL histwrite(nid_day,"vitw",itau_w,zx_tmp_3d, 341 . iim*jjmp1*klev,ndex3d) 342 c 343 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 344 CALL histwrite(nid_day,"pres",itau_w,zx_tmp_3d, 345 . iim*jjmp1*klev,ndex3d) 296 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 297 CALL histwrite_phy(nid_day,"temp",itau_w,t_seri) 298 c 299 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 300 CALL histwrite_phy(nid_day,"ovap",itau_w,qx(:,:,ivap)) 301 c 302 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 303 CALL histwrite_phy(nid_day,"geop",itau_w,zphi) 304 c 305 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 306 CALL histwrite_phy(nid_day,"vitu",itau_w,u_seri) 307 c 308 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 309 CALL histwrite_phy(nid_day,"vitv",itau_w,v_seri) 310 c 311 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 312 CALL histwrite_phy(nid_day,"vitw",itau_w,omega) 313 c 314 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 315 CALL histwrite_phy(nid_day,"pres",itau_w,pplay) 346 316 c 347 317 ENDIF !lev_histday.GE.3 … … 356 326 c================================================================= 357 327 zx_tmp_fi2d(1 : klon) = swup( 1 : klon, klevp1 ) 358 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 359 CALL histwrite(nid_day, "SWupTOA",itau_w,zx_tmp_2d, 360 . iim*jjmp1,ndex2d) 328 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 329 CALL histwrite_phy(nid_day, "SWupTOA",itau_w,zx_tmp_fi2d) 361 330 c 362 331 zx_tmp_fi2d(1 : klon) = swup( 1 : klon, 1 ) 363 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 364 CALL histwrite(nid_day, "SWupSFC",itau_w,zx_tmp_2d, 365 . iim*jjmp1,ndex2d) 332 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 333 CALL histwrite_phy(nid_day, "SWupSFC",itau_w,zx_tmp_fi2d) 366 334 c 367 335 zx_tmp_fi2d(1 : klon) = swdn( 1 : klon, klevp1 ) 368 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 369 CALL histwrite(nid_day, "SWdnTOA",itau_w,zx_tmp_2d, 370 . iim*jjmp1,ndex2d) 336 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 337 CALL histwrite_phy(nid_day, "SWdnTOA",itau_w,zx_tmp_fi2d) 371 338 c 372 339 zx_tmp_fi2d(1 : klon) = swup0( 1 : klon, klevp1 ) 373 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 374 CALL histwrite(nid_day, "SWupTOAclr",itau_w,zx_tmp_2d, 375 . iim*jjmp1,ndex2d) 340 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 341 CALL histwrite_phy(nid_day, "SWupTOAclr",itau_w,zx_tmp_fi2d) 376 342 c 377 343 zx_tmp_fi2d(1 : klon) = swup0( 1 : klon, 1 ) 378 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 379 CALL histwrite(nid_day, "SWupSFCclr",itau_w,zx_tmp_2d, 380 . iim*jjmp1,ndex2d) 344 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 345 CALL histwrite_phy(nid_day, "SWupSFCclr",itau_w,zx_tmp_fi2d) 381 346 c 382 347 zx_tmp_fi2d(1 : klon) = swdn0( 1 : klon, klevp1 ) 383 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 384 CALL histwrite(nid_day, "SWdnTOAclr",itau_w,zx_tmp_2d, 385 . iim*jjmp1,ndex2d) 348 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 349 CALL histwrite_phy(nid_day, "SWdnTOAclr",itau_w,zx_tmp_fi2d) 386 350 c 387 351 zx_tmp_fi2d(1 : klon) = swdn0( 1 : klon, 1 ) 388 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 389 CALL histwrite(nid_day, "SWdnSFCclr",itau_w,zx_tmp_2d, 390 . iim*jjmp1,ndex2d) 352 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 353 CALL histwrite_phy(nid_day, "SWdnSFCclr",itau_w,zx_tmp_fi2d) 391 354 c 392 355 cIM AMMA-MIP 393 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 394 CALL histwrite(nid_day,"LWdnSFC",itau_w,zx_tmp_2d,iim*jjmp1, 395 . ndex2d) 356 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 357 CALL histwrite_phy(nid_day,"LWdnSFC",itau_w,sollwdown) 396 358 c 397 359 zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon) 398 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 399 CALL histwrite(nid_day,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1, 400 . ndex2d) 360 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 361 CALL histwrite_phy(nid_day,"LWupSFC",itau_w,zx_tmp_fi2d) 401 362 c 402 363 cIM IF (iflag_con.GE.3) THEN 403 364 cIM ema_pct= 0. CALL gr_fi_ecrit(1, klon,iim,jjmp1, ema_pct,zx_tmp_2d) 404 CALL gr_fi_ecrit(1, klon,iim,jjmp1, meanptop(:,1),zx_tmp_2d) 405 CALL histwrite(nid_day,"ptop",itau_w,zx_tmp_2d,iim*jjmp1, 406 . ndex2d) 365 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, meanptop(:,1),zx_tmp_2d) 366 CALL histwrite_phy(nid_day,"ptop",itau_w,meanptop(:,1)) 407 367 cIM ENDIF 408 368 c 409 369 zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, is_ter) 410 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d ,zx_tmp_2d)411 CALL histwrite (nid_day,"tter",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)370 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d ,zx_tmp_2d) 371 CALL histwrite_phy(nid_day,"tter",itau_w,zx_tmp_fi2d) 412 372 c 413 373 zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, is_lic) 414 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)415 CALL histwrite (nid_day,"tlic",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)374 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 375 CALL histwrite_phy(nid_day,"tlic",itau_w,zx_tmp_fi2d) 416 376 c 417 377 zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, is_oce) 418 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)419 CALL histwrite (nid_day,"toce",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)378 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 379 CALL histwrite_phy(nid_day,"toce",itau_w,zx_tmp_fi2d) 420 380 c 421 381 zx_tmp_fi2d(1 : klon) = ftsol(1 : klon, is_sic) 422 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)423 CALL histwrite (nid_day,"tsic",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)382 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 383 CALL histwrite_phy(nid_day,"tsic",itau_w,zx_tmp_fi2d) 424 384 c 425 385 zx_tmp_fi2d(1 : klon) = t2m(1 : klon, is_ter) 426 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 427 CALL histwrite(nid_day,"t2mter",itau_w,zx_tmp_2d,iim*jjmp1, 428 . ndex2d) 386 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 387 CALL histwrite_phy(nid_day,"t2mter",itau_w,zx_tmp_fi2d) 429 388 c 430 389 zx_tmp_fi2d(1 : klon) = t2m(1 : klon, is_ter) 431 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 432 CALL histwrite(nid_day,"t2mter_min",itau_w,zx_tmp_2d, 433 . iim*jjmp1,ndex2d) 390 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 391 CALL histwrite_phy(nid_day,"t2mter_min",itau_w,zx_tmp_fi2d) 434 392 c 435 393 zx_tmp_fi2d(1 : klon) = t2m(1 : klon, is_ter) 436 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 437 CALL histwrite(nid_day,"t2mter_max",itau_w,zx_tmp_2d, 438 . iim*jjmp1,ndex2d) 394 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 395 CALL histwrite_phy(nid_day,"t2mter_max",itau_w,zx_tmp_fi2d) 439 396 c 440 397 zx_tmp_fi2d(1 : klon) = t2m(1 : klon, is_lic) 441 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 442 CALL histwrite(nid_day,"t2mlic",itau_w,zx_tmp_2d,iim*jjmp1, 443 . ndex2d) 398 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 399 CALL histwrite_phy(nid_day,"t2mlic",itau_w,zx_tmp_fi2d) 444 400 c 445 401 zx_tmp_fi2d(1 : klon) = t2m(1 : klon, is_oce) 446 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 447 CALL histwrite(nid_day,"t2moce",itau_w,zx_tmp_2d,iim*jjmp1, 448 . ndex2d) 402 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 403 CALL histwrite_phy(nid_day,"t2moce",itau_w,zx_tmp_fi2d) 449 404 c 450 405 zx_tmp_fi2d(1 : klon) = t2m(1 : klon, is_sic) 451 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 452 CALL histwrite(nid_day,"t2msic",itau_w,zx_tmp_2d,iim*jjmp1, 453 . ndex2d) 406 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 407 CALL histwrite_phy(nid_day,"t2msic",itau_w,zx_tmp_fi2d) 454 408 c 455 409 zx_tmp_fi2d(1 : klon) = u10m(1 : klon, is_ter) 456 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 457 CALL histwrite(nid_day,"u10mter",itau_w,zx_tmp_2d,iim*jjmp1, 458 . ndex2d) 410 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 411 CALL histwrite_phy(nid_day,"u10mter",itau_w,zx_tmp_fi2d) 459 412 c 460 413 zx_tmp_fi2d(1 : klon) = v10m(1 : klon, is_ter) 461 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 462 CALL histwrite(nid_day,"v10mter",itau_w,zx_tmp_2d,iim*jjmp1, 463 . ndex2d) 414 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 415 CALL histwrite_phy(nid_day,"v10mter",itau_w,zx_tmp_fi2d) 464 416 c 465 417 zx_tmp_fi2d(1 : klon) = u10m(1 : klon, is_lic) 466 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 467 CALL histwrite(nid_day,"u10mlic",itau_w,zx_tmp_2d,iim*jjmp1, 468 . ndex2d) 418 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 419 CALL histwrite_phy(nid_day,"u10mlic",itau_w,zx_tmp_fi2d) 469 420 c 470 421 zx_tmp_fi2d(1 : klon) = v10m(1 : klon, is_lic) 471 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 472 CALL histwrite(nid_day,"v10mlic",itau_w,zx_tmp_2d,iim*jjmp1, 473 . ndex2d) 422 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 423 CALL histwrite_phy(nid_day,"v10mlic",itau_w,zx_tmp_fi2d) 474 424 c 475 425 zx_tmp_fi2d(1 : klon) = u10m(1 : klon, is_oce) 476 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 477 CALL histwrite(nid_day,"u10moce",itau_w,zx_tmp_2d,iim*jjmp1, 478 . ndex2d) 426 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 427 CALL histwrite_phy(nid_day,"u10moce",itau_w,zx_tmp_fi2d) 479 428 c 480 429 zx_tmp_fi2d(1 : klon) = v10m(1 : klon, is_oce) 481 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 482 CALL histwrite(nid_day,"v10moce",itau_w,zx_tmp_2d,iim*jjmp1, 483 . ndex2d) 430 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 431 CALL histwrite_phy(nid_day,"v10moce",itau_w,zx_tmp_fi2d) 484 432 c 485 433 zx_tmp_fi2d(1 : klon) = u10m(1 : klon, is_sic) 486 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 487 CALL histwrite(nid_day,"u10msic",itau_w,zx_tmp_2d,iim*jjmp1, 488 . ndex2d) 434 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 435 CALL histwrite_phy(nid_day,"u10msic",itau_w,zx_tmp_fi2d) 489 436 C 490 437 zx_tmp_fi2d(1 : klon) = v10m(1 : klon, is_sic) 491 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 492 CALL histwrite(nid_day,"v10msic",itau_w,zx_tmp_2d,iim*jjmp1, 493 . ndex2d) 438 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 439 CALL histwrite_phy(nid_day,"v10msic",itau_w,zx_tmp_fi2d) 494 440 C 495 441 DO nsrf = 1, nbsrf 496 442 C 497 443 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100. 498 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)499 CALL histwrite (nid_day,"pourc_"//clnsurf(nsrf),itau_w,500 $ zx_tmp_2d,iim*jjmp1,ndex2d)444 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 445 CALL histwrite_phy(nid_day,"pourc_"//clnsurf(nsrf),itau_w, 446 & zx_tmp_fi2d) 501 447 C 502 448 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf) 503 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)504 CALL histwrite (nid_day,"fract_"//clnsurf(nsrf),itau_w,505 $ zx_tmp_2d,iim*jjmp1,ndex2d)449 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 450 CALL histwrite_phy(nid_day,"fract_"//clnsurf(nsrf),itau_w, 451 & zx_tmp_fi2d) 506 452 C 507 453 zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf) 508 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)509 CALL histwrite (nid_day,"tsol_"//clnsurf(nsrf),itau_w,510 $ zx_tmp_2d,iim*jjmp1,ndex2d)454 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 455 CALL histwrite_phy(nid_day,"tsol_"//clnsurf(nsrf),itau_w, 456 $ zx_tmp_fi2d) 511 457 C 512 458 zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf) 513 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)514 CALL histwrite (nid_day,"sens_"//clnsurf(nsrf),itau_w,515 $ zx_tmp_2d,iim*jjmp1,ndex2d)459 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 460 CALL histwrite_phy(nid_day,"sens_"//clnsurf(nsrf),itau_w, 461 $ zx_tmp_fi2d) 516 462 C 517 463 zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf) 518 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)519 CALL histwrite (nid_day,"lat_"//clnsurf(nsrf),itau_w,520 $ zx_tmp_2d,iim*jjmp1,ndex2d)464 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 465 CALL histwrite_phy(nid_day,"lat_"//clnsurf(nsrf),itau_w, 466 $ zx_tmp_fi2d) 521 467 C 522 468 zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf) 523 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)524 CALL histwrite (nid_day,"taux_"//clnsurf(nsrf),itau_w,525 $ zx_tmp_2d,iim*jjmp1,ndex2d)469 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 470 CALL histwrite_phy(nid_day,"taux_"//clnsurf(nsrf),itau_w, 471 $ zx_tmp_fi2d) 526 472 C 527 473 zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf) 528 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)529 CALL histwrite (nid_day,"tauy_"//clnsurf(nsrf),itau_w,530 $ zx_tmp_2d,iim*jjmp1,ndex2d)474 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 475 CALL histwrite_phy(nid_day,"tauy_"//clnsurf(nsrf),itau_w, 476 $ zx_tmp_fi2d) 531 477 C 532 478 zx_tmp_fi2d(1 : klon) = falbe( 1 : klon, nsrf) 533 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)534 CALL histwrite (nid_day,"albe_"//clnsurf(nsrf),itau_w,535 $ zx_tmp_2d,iim*jjmp1,ndex2d)479 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 480 CALL histwrite_phy(nid_day,"albe_"//clnsurf(nsrf),itau_w, 481 $ zx_tmp_fi2d) 536 482 C 537 483 zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf) 538 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)539 CALL histwrite (nid_day,"rugs_"//clnsurf(nsrf),itau_w,540 $ zx_tmp_2d,iim*jjmp1,ndex2d)484 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 485 CALL histwrite_phy(nid_day,"rugs_"//clnsurf(nsrf),itau_w, 486 $ zx_tmp_fi2d) 541 487 C 542 488 END DO … … 550 496 c rajout sorties F. Aires 551 497 c 552 CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d) 553 CALL histwrite(nid_day,"tops0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 554 c 555 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d) 556 CALL histwrite(nid_day,"topl0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 557 c 558 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d) 559 CALL histwrite(nid_day,"sols0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 560 c 561 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d) 562 CALL histwrite(nid_day,"soll0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 563 c 564 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra, zx_tmp_3d) 565 CALL histwrite(nid_day,"rneb",itau_w,zx_tmp_3d, 566 . iim*jjmp1*klev,ndex3d) 567 c 568 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d) 569 CALL histwrite(nid_day,"rnebcon",itau_w,zx_tmp_3d, 570 . iim*jjmp1*klev,ndex3d) 571 c 572 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d) 573 CALL histwrite(nid_day,"lwcon",itau_w,zx_tmp_3d, 574 . iim*jjmp1*klev,ndex3d) 575 c 576 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d) 577 CALL histwrite(nid_day,"iwcon",itau_w,zx_tmp_3d, 578 . iim*jjmp1*klev,ndex3d) 498 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d) 499 CALL histwrite_phy(nid_day,"tops0",itau_w,topsw0) 500 c 501 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d) 502 CALL histwrite_phy(nid_day,"topl0",itau_w,toplw0) 503 c 504 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d) 505 CALL histwrite_phy(nid_day,"sols0",itau_w,solsw0) 506 c 507 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d) 508 CALL histwrite_phy(nid_day,"soll0",itau_w, sollw0) 509 c 510 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra, zx_tmp_3d) 511 CALL histwrite_phy(nid_day,"rneb",itau_w,cldfra) 512 c 513 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d) 514 CALL histwrite_phy(nid_day,"rnebcon",itau_w,rnebcon) 515 c 516 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d) 517 CALL histwrite_phy(nid_day,"lwcon",itau_w,flwc) 518 c 519 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d) 520 CALL histwrite_phy(nid_day,"iwcon",itau_w,fiwc) 579 521 c 580 522 zx_tmp_fi2d(1:klon) = flwp(1:klon) 581 582 CALL histwrite (nid_day,"lwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)523 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 524 CALL histwrite_phy(nid_day,"lwp",itau_w,zx_tmp_fi2d) 583 525 c 584 526 zx_tmp_fi2d(1:klon) = fiwp(1:klon) 585 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 586 CALL histwrite(nid_day,"iwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 587 c 588 CALL gr_fi_ecrit(1,klon,iim,jjmp1, meantaucld,zx_tmp_2d) 589 CALL histwrite(nid_day,"meantaucld",itau_w,zx_tmp_2d, 590 . iim*jjmp1,ndex2d) 591 c 592 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldtau,zx_tmp_3d) 593 CALL histwrite(nid_day,"cldtau",itau_w,zx_tmp_3d, 594 . iim*jjmp1*klev,ndex3d) 595 c 596 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldemi,zx_tmp_3d) 597 CALL histwrite(nid_day,"cldemi",itau_w,zx_tmp_3d, 598 . iim*jjmp1*klev,ndex3d) 527 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 528 CALL histwrite_phy(nid_day,"iwp",itau_w,zx_tmp_fi2d) 529 c 530 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1, meantaucld,zx_tmp_2d) 531 CALL histwrite_phy(nid_day,"meantaucld",itau_w,meantaucld) 532 c 533 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldtau,zx_tmp_3d) 534 CALL histwrite_phy(nid_day,"cldtau",itau_w,cldtau) 535 c 536 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldemi,zx_tmp_3d) 537 CALL histwrite_phy(nid_day,"cldemi",itau_w,cldemi) 599 538 c 600 539 c 601 540 cIM: 101003 : K/30min ==> K/s 602 541 zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys 603 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 604 CALL histwrite(nid_day,"dtcon",itau_w,zx_tmp_3d, 605 . iim*jjmp1*klev,ndex3d) 542 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 543 CALL histwrite_phy(nid_day,"dtcon",itau_w,zx_tmp_fi3d) 606 544 c 607 545 zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys 608 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 609 CALL histwrite(nid_day,"dqcon",itau_w,zx_tmp_3d, 610 . iim*jjmp1*klev,ndex3d) 611 c 612 DO i=1, klon 613 zx_tmp_fi2d(i)=MIN(100.,rh2m(i)*100.) 614 ENDDO 615 c 616 CALL gr_fi_ecrit(1,klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 617 CALL histwrite(nid_day,"rh2m",itau_w,zx_tmp_2d, 618 . iim*jjmp1,ndex2d) 619 c 620 CALL gr_fi_ecrit(1,klon,iim,jjmp1, qsat2m,zx_tmp_2d) 621 CALL histwrite(nid_day,"qsat2m",itau_w,zx_tmp_2d, 622 . iim*jjmp1,ndex2d) 623 c 624 CALL gr_fi_ecrit(1,klon,iim,jjmp1, tpot,zx_tmp_2d) 625 CALL histwrite(nid_day,"tpot",itau_w,zx_tmp_2d, 626 . iim*jjmp1,ndex2d) 627 c 628 CALL gr_fi_ecrit(1,klon,iim,jjmp1, tpote,zx_tmp_2d) 629 CALL histwrite(nid_day,"tpote",itau_w,zx_tmp_2d, 630 . iim*jjmp1,ndex2d) 546 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 547 CALL histwrite_phy(nid_day,"dqcon",itau_w,zx_tmp_fi3d) 548 c 549 DO i=1, klon 550 zx_tmp_2d(i)=MIN(100.,rh2m(i)*100.) 551 ENDDO 552 c 553 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1, zx_tmp_2d,zx_tmp_2d) 554 CALL histwrite_phy(nid_day,"rh2m",itau_w,zx_tmp_2d) 555 c 556 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1, qsat2m,zx_tmp_2d) 557 CALL histwrite_phy(nid_day,"qsat2m",itau_w,qsat2m) 558 c 559 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1, tpot,zx_tmp_2d) 560 CALL histwrite_phy(nid_day,"tpot",itau_w,tpot) 561 c 562 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1, tpote,zx_tmp_2d) 563 CALL histwrite_phy(nid_day,"tpote",itau_w,tpote) 631 564 c 632 565 ENDIF !lev_histday.GE.5 … … 636 569 c 637 570 if (ok_sync) then 571 c$OMP MASTER 638 572 call histsync(nid_day) 573 c$OMP END MASTER 639 574 endif 640 575 -
LMDZ4/trunk/libf/phylmd/write_histday_seri.h
r644 r766 2 2 c $Header$ 3 3 c 4 IF (monocpu) THEN 5 4 6 IF (type_run.EQ."AMIP") THEN 5 7 c … … 237 239 c 238 240 ENDIF !fin test sur type_run.EQ."AMIP" 241 242 ENDIF ! mono_cpu -
LMDZ4/trunk/libf/phylmd/write_histhf.h
r644 r766 14 14 IF(lev_histhf.GE.1) THEN 15 15 c 16 CALL gr_fi_ecrit(1, klon,iim,jjmp1, paire_ter, zx_tmp_2d) 17 CALL histwrite(nid_hf,"aireTER",itau_w, 18 $ zx_tmp_2d,iim*jjmp1,ndex2d) 16 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, paire_ter, zx_tmp_2d) 17 CALL histwrite_phy(nid_hf,"aireTER",itau_w,paire_ter) 19 18 c 20 19 DO i=1, klon … … 22 21 ENDDO 23 22 c 24 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 25 CALL histwrite(nid_hf,"contfracATM",itau_w, 26 $ zx_tmp_2d,iim*jjmp1,ndex2d) 27 c 28 CALL gr_fi_ecrit(1,klon,iim,jjmp1,pctsrf_new(:,is_ter),zx_tmp_2d) 29 CALL histwrite(nid_hf,"contfracOR",itau_w, 30 $ zx_tmp_2d,iim*jjmp1,ndex2d) 31 c 32 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d) 33 CALL histwrite(nid_hf,"t2m",itau_w,zx_tmp_2d,iim*jjmp1, 34 . ndex2d) 35 c 36 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d) 37 CALL histwrite(nid_hf,"q2m",itau_w,zx_tmp_2d,iim*jjmp1, 38 . ndex2d) 23 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 24 CALL histwrite_phy(nid_hf,"contfracATM",itau_w,zx_tmp_fi2d) 25 c 26 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,pctsrf_new(:,is_ter),zx_tmp_2d) 27 CALL histwrite_phy(nid_hf,"contfracOR",itau_w, 28 . pctsrf_new(:,is_ter)) 29 c 30 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d) 31 CALL histwrite_phy(nid_hf,"t2m",itau_w,zt2m) 32 c 33 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d) 34 CALL histwrite_phy(nid_hf,"q2m",itau_w,zq2m) 39 35 c 40 36 DO i = 1, klon 41 37 zx_tmp_fi2d(i) = paprs(i,1) 42 38 ENDDO 43 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 44 CALL histwrite(nid_hf,"psol",itau_w,zx_tmp_2d,iim*jjmp1, 45 . ndex2d) 39 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 40 CALL histwrite_phy(nid_hf,"psol",itau_w,zx_tmp_fi2d) 46 41 c 47 42 DO i = 1, klon 48 43 zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) 49 44 ENDDO 50 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)51 CALL histwrite (nid_hf,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)45 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 46 CALL histwrite_phy(nid_hf,"precip",itau_w,zx_tmp_fi2d) 52 47 c 53 48 c ENSEMBLES BEG 54 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d) 55 CALL histwrite(nid_hf,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 56 c 57 CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d) 58 CALL histwrite(nid_hf,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 59 c 60 c 61 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d) 62 CALL histwrite(nid_hf,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 63 c 64 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d) 65 CALL histwrite(nid_hf,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 49 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d) 50 CALL histwrite_phy(nid_hf,"tsol",itau_w,zxtsol) 51 c 52 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d) 53 CALL histwrite_phy(nid_hf,"slp",itau_w,slp) 54 c 55 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d) 56 CALL histwrite_phy(nid_hf,"u10m",itau_w,zu10m) 57 c 58 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d) 59 CALL histwrite_phy(nid_hf,"v10m",itau_w,zv10m) 66 60 c 67 61 DO i=1, klon 68 62 zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i)) 69 63 ENDDO 70 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 71 CALL histwrite(nid_hf,"wind10m",itau_w,zx_tmp_2d, 72 $ iim*jjmp1,ndex2d) 64 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 65 CALL histwrite_phy(nid_hf,"wind10m",itau_w,zx_tmp_fi2d) 73 66 c 74 67 DO k=1, nlevSTD … … 85 78 IF(bb2.EQ."500") THEN 86 79 c 87 CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d) 88 CALL histwrite(nid_hf,"phi"//bb2,itau_w,zx_tmp_2d, 89 $ iim*jjmp1,ndex2d) 80 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d) 81 CALL histwrite_phy(nid_hf,"phi"//bb2,itau_w, philevSTD(:,k)) 90 82 ENDIF !bb2.EQ."500" 91 83 ENDDO … … 101 93 cIM 140904 END 102 94 cIM 140904 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d) 103 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)104 CALL histwrite (nid_hf,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)95 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 96 CALL histwrite_phy(nid_hf,"cldt",itau_w,zx_tmp_fi2d) 105 97 c 106 98 zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, is_ter) 107 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 108 CALL histwrite(nid_hf,"SWnetOR",itau_w, 109 $ zx_tmp_2d,iim*jjmp1,ndex2d) 99 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 100 CALL histwrite_phy(nid_hf,"SWnetOR",itau_w, zx_tmp_fi2d) 110 101 c 111 102 zx_tmp_fi2d(1:klon) = solsw(1:klon)/(1.-albsol(1:klon)) 112 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 113 CALL histwrite(nid_hf,"SWdownOR",itau_w, 114 $ zx_tmp_2d,iim*jjmp1,ndex2d) 115 c 116 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 117 CALL histwrite(nid_hf,"LWdownOR",itau_w,zx_tmp_2d,iim*jjmp1, 118 $ ndex2d) 103 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 104 CALL histwrite_phy(nid_hf,"SWdownOR",itau_w, zx_tmp_fi2d) 105 c 106 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 107 CALL histwrite_phy(nid_hf,"LWdownOR",itau_w,sollwdown) 119 108 c 120 109 c … … 137 126 $ bb2.EQ."500".OR.bb2.EQ."200") THEN 138 127 c 139 CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d) 140 CALL histwrite(nid_hf,"t"//bb2,itau_w,zx_tmp_2d, 141 $ iim*jjmp1,ndex2d) 128 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d) 129 CALL histwrite_phy(nid_hf,"t"//bb2,itau_w, tlevSTD(:,k)) 142 130 c 143 131 IF(bb2.NE."500") THEN !bb2.NE."500" 144 132 c 145 CALL gr_fi_ecrit(1, klon,iim,jjmp1,philevSTD(:,k),zx_tmp_2d) 146 CALL histwrite(nid_hf,"phi"//bb2,itau_w,zx_tmp_2d, 147 $ iim*jjmp1,ndex2d) 133 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,philevSTD(:,k),zx_tmp_2d) 134 CALL histwrite_phy(nid_hf,"phi"//bb2,itau_w,philevSTD(:,k)) 148 135 ENDIF !bb2.NE."500" 149 136 c 150 CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d) 151 CALL histwrite(nid_hf,"q"//bb2,itau_w,zx_tmp_2d, 152 $ iim*jjmp1,ndex2d) 153 c 154 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d) 155 CALL histwrite(nid_hf,"u"//bb2,itau_w,zx_tmp_2d, 156 $ iim*jjmp1,ndex2d) 157 c 158 CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d) 159 CALL histwrite(nid_hf,"v"//bb2,itau_w,zx_tmp_2d, 160 $ iim*jjmp1,ndex2d) 137 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d) 138 CALL histwrite_phy(nid_hf,"q"//bb2,itau_w, qlevSTD(:,k)) 139 c 140 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d) 141 CALL histwrite_phy(nid_hf,"u"//bb2,itau_w,ulevSTD(:,k)) 142 c 143 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d) 144 CALL histwrite_phy(nid_hf,"v"//bb2,itau_w, vlevSTD(:,k)) 161 145 c 162 146 ENDIF !bb2.EQ."850".OR.bb2.EQ."700" … … 164 148 c 165 149 IF(1.EQ.0) THEN 166 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)167 CALL histwrite (nid_hf,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)168 c 169 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)170 CALL histwrite (nid_hf,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)150 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d) 151 CALL histwrite_phy(nid_hf,"cdrm",itau_w,cdragm) 152 c 153 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d) 154 CALL histwrite_phy(nid_hf,"cdrh",itau_w,cdragh) 171 155 ENDIF !(1.EQ.0) THEN 172 156 c … … 199 183 IF(bb2.EQ."850".or.bb2.EQ."200") THEN 200 184 c 201 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d) 202 CALL histwrite(nid_hf,"u"//bb2,itau_w,zx_tmp_2d, 203 $ iim*jjmp1,ndex2d) 204 c 205 CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d) 206 CALL histwrite(nid_hf,"v"//bb2,itau_w,zx_tmp_2d, 207 $ iim*jjmp1,ndex2d) 185 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d) 186 CALL histwrite_phy(nid_hf,"u"//bb2,itau_w,ulevSTD(:,k)) 187 c 188 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d) 189 CALL histwrite_phy(nid_hf,"v"//bb2,itau_w,vlevSTD(:,k)) 208 190 c 209 191 ENDIF !bb2.EQ."850".or.bb2.EQ."200" … … 211 193 ENDDO !nlevSTD 212 194 c 213 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)214 CALL histwrite (nid_hf,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)195 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d) 196 CALL histwrite_phy(nid_hf,"topl",itau_w,toplw) 215 197 c 216 198 DO i = 1, klon 217 199 zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) 218 200 ENDDO 219 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)220 CALL histwrite (nid_hf,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)221 c 222 CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)223 CALL histwrite (nid_hf,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)201 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 202 CALL histwrite_phy(nid_hf,"precip",itau_w,zx_tmp_fi2d) 203 c 204 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d) 205 CALL histwrite_phy(nid_hf,"slp",itau_w,slp) 224 206 c 225 207 cIM 280504 BEG … … 241 223 IF(bb2.EQ."850".or.bb2.EQ."500") THEN 242 224 c 243 CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d) 244 CALL histwrite(nid_hf,"t"//bb2,itau_w,zx_tmp_2d, 245 $ iim*jjmp1,ndex2d) 246 c 247 CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d) 248 CALL histwrite(nid_hf,"q"//bb2,itau_w,zx_tmp_2d, 249 $ iim*jjmp1,ndex2d) 225 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d) 226 CALL histwrite_phy(nid_hf,"t"//bb2,itau_w,tlevSTD(:,k)) 227 c 228 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d) 229 CALL histwrite_phy(nid_hf,"q"//bb2,itau_w, qlevSTD(:,k)) 250 230 c 251 231 ENDIF !bb2.EQ."850".or.bb2.EQ."500" … … 253 233 IF(bb2.EQ."500") THEN 254 234 c 255 CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d) 256 CALL histwrite(nid_hf,"phi"//bb2,itau_w,zx_tmp_2d, 257 $ iim*jjmp1,ndex2d) 258 c 259 CALL gr_fi_ecrit(1, klon,iim,jjmp1, wlevSTD(:,k),zx_tmp_2d) 260 CALL histwrite(nid_hf,"w"//bb2,itau_w,zx_tmp_2d, 261 $ iim*jjmp1,ndex2d) 235 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d) 236 CALL histwrite_phy(nid_hf,"phi"//bb2,itau_w, philevSTD(:,k)) 237 c 238 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, wlevSTD(:,k),zx_tmp_2d) 239 CALL histwrite_phy(nid_hf,"w"//bb2,itau_w, wlevSTD(:,k)) 262 240 c 263 241 ENDIF !bb2.EQ."500" … … 265 243 IF(bb3.EQ."50") THEN 266 244 c 267 CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d) 268 CALL histwrite(nid_hf,"t"//bb3,itau_w,zx_tmp_2d, 269 $ iim*jjmp1,ndex2d) 270 c 271 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d) 272 CALL histwrite(nid_hf,"u"//bb3,itau_w,zx_tmp_2d, 273 $ iim*jjmp1,ndex2d) 274 c 275 CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d) 276 CALL histwrite(nid_hf,"v"//bb3,itau_w,zx_tmp_2d, 277 $ iim*jjmp1,ndex2d) 245 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d) 246 CALL histwrite_phy(nid_hf,"t"//bb3,itau_w, tlevSTD(:,k)) 247 c 248 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d) 249 CALL histwrite_phy(nid_hf,"u"//bb3,itau_w, ulevSTD(:,k)) 250 c 251 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d) 252 CALL histwrite_phy(nid_hf,"v"//bb3,itau_w, vlevSTD(:,k)) 278 253 c 279 254 ENDIF !bb3.EQ."50" … … 281 256 ENDDO !k=1, nlevSTD 282 257 c 283 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d) 284 CALL histwrite(nid_hf,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 285 c 286 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d) 287 CALL histwrite(nid_hf,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 288 c 289 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d) 290 CALL histwrite(nid_hf,"t2m",itau_w,zx_tmp_2d,iim*jjmp1, 291 $ ndex2d) 292 c 293 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d) 294 CALL histwrite(nid_hf,"q2m",itau_w,zx_tmp_2d,iim*jjmp1, 295 $ ndex2d) 258 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d) 259 CALL histwrite_phy(nid_hf,"u10m",itau_w,zu10m) 260 c 261 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d) 262 CALL histwrite_phy(nid_hf,"v10m",itau_w,zv10m) 263 c 264 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d) 265 CALL histwrite_phy(nid_hf,"t2m",itau_w, zt2m) 266 c 267 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d) 268 CALL histwrite_phy(nid_hf,"q2m",itau_w,zq2m) 296 269 c 297 270 DO i = 1, klon 298 271 zx_tmp_fi2d(i) = paprs(i,1) 299 272 ENDDO 300 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 301 CALL histwrite(nid_hf,"psol",itau_w,zx_tmp_2d,iim*jjmp1, 302 $ ndex2d) 273 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 274 CALL histwrite_phy(nid_hf,"psol",itau_w,zx_tmp_fi2d) 303 275 c 304 276 cIM 140904 BEG … … 308 280 cIM 140904 END 309 281 cIM 140904 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d) 310 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)311 CALL histwrite (nid_hf,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)282 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 283 CALL histwrite_phy(nid_hf,"cldt",itau_w,zx_tmp_fi2d) 312 284 c 313 285 zx_tmp_fi2d(1 : klon) = zxfluxu(1 : klon, 1) 314 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 315 CALL histwrite(nid_hf,"taux",itau_w, 316 $ zx_tmp_2d,iim*jjmp1,ndex2d) 286 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 287 CALL histwrite_phy(nid_hf,"taux",itau_w,zx_tmp_fi2d) 317 288 C 318 289 zx_tmp_fi2d(1 : klon) = zxfluxv(1 : klon, 1) 319 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 320 CALL histwrite(nid_hf,"tauy",itau_w, 321 $ zx_tmp_2d,iim*jjmp1,ndex2d) 322 c 323 CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d) 324 CALL histwrite(nid_hf,"prw",itau_w,zx_tmp_2d, 325 $ iim*jjmp1,ndex2d) 290 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 291 CALL histwrite_phy(nid_hf,"tauy",itau_w,zx_tmp_fi2d) 292 c 293 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d) 294 CALL histwrite_phy(nid_hf,"prw",itau_w,prw) 326 295 c 327 296 zx_tmp_fi2d(1:klon)=-1*sens(1:klon) 328 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)329 CALL histwrite (nid_hf,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)330 c 331 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d)332 CALL histwrite (nid_hf,"flat",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)297 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 298 CALL histwrite_phy(nid_hf,"sens",itau_w,zx_tmp_fi2d) 299 c 300 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d) 301 CALL histwrite_phy(nid_hf,"flat",itau_w,zxfluxlat) 333 302 c 334 303 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d) 335 c CALL histwrite(nid_hf,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1, 336 c $ ndex2d) 304 c CALL histwrite_phy(nid_hf,"snow_mass",itau_w,zsnow_mass) 337 305 c 338 306 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 ) 339 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 340 CALL histwrite(nid_hf, "SWdnSFC",itau_w,zx_tmp_2d, 341 $ iim*jjmp1,ndex2d) 307 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 308 CALL histwrite_phy(nid_hf, "SWdnSFC",itau_w,zx_tmp_fi2d) 342 309 c 343 310 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 ) 344 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 345 CALL histwrite(nid_hf, "SWupSFC",itau_w,zx_tmp_2d, 346 $ iim*jjmp1,ndex2d) 347 c 348 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 349 CALL histwrite(nid_hf,"LWdnSFC",itau_w,zx_tmp_2d,iim*jjmp1, 350 $ ndex2d) 311 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 312 CALL histwrite_phy(nid_hf, "SWupSFC",itau_w,zx_tmp_fi2d) 313 c 314 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 315 CALL histwrite_phy(nid_hf,"LWdnSFC",itau_w,sollwdown) 351 316 c 352 317 cIM 090904 zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon) 353 318 cIM 130904 zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon) 354 319 zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon) 355 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 356 CALL histwrite(nid_hf,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1, 357 $ ndex2d) 320 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 321 CALL histwrite_phy(nid_hf,"LWupSFC",itau_w,zx_tmp_fi2d) 358 322 c 359 323 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 ) 360 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 361 CALL histwrite(nid_hf, "SWdnTOA",itau_w,zx_tmp_2d, 362 $ iim*jjmp1,ndex2d) 324 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 325 CALL histwrite_phy(nid_hf, "SWdnTOA",itau_w,zx_tmp_fi2d) 363 326 c 364 327 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 ) 365 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)366 CALL histwrite (nid_hf, "SWupTOA",itau_w,zx_tmp_2d,367 $ iim*jjmp1,ndex2d) 368 c 369 CALL gr_fi_ecrit(nbteta,klon,iim,jjmp1,PVteta,zx_tmp_3dte)328 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 329 CALL histwrite_phy(nid_hf, "SWupTOA",itau_w,zx_tmp_fi2d) 330 c 331 IF (monocpu) THEN 332 cym CALL gr_fi_ecrit(nbteta,klon,iim,jjmp1,PVteta,zx_tmp_3dte) 370 333 DO k=1, nbteta 371 CALL histwrite (nid_hf,"PV"//ctetaSTD(k),372 . itau_w, zx_tmp_3dte(:,:,k),iim*jjmp1,ndex2d)334 CALL histwrite_phy(nid_hf,"PV"//ctetaSTD(k), 335 . itau_w,PVteta) 373 336 ENDDO !k=1, nbteta 337 ENDIF 374 338 c 375 339 c … … 384 348 c 385 349 IF (ok_sync) THEN 350 c$OMP MASTER 386 351 call histsync(nid_hf) 352 c$OMP END MASTER 387 353 ENDIF 388 354 -
LMDZ4/trunk/libf/phylmd/write_histhf3d.h
r644 r766 1 1 2 c 2 3 c $Header$ … … 10 11 c Champs 3D: 11 12 c 12 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 13 CALL histwrite(nid_hf3d,"temp",itau_w,zx_tmp_3d, 14 . iim*jjmp1*klev,ndex3d) 13 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 14 CALL histwrite_phy(nid_hf3d,"temp",itau_w,t_seri) 15 15 c 16 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 17 CALL histwrite(nid_hf3d,"ovap",itau_w,zx_tmp_3d, 18 . iim*jjmp1*klev,ndex3d) 16 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 17 CALL histwrite_phy(nid_hf3d,"ovap",itau_w,qx(:,:,ivap)) 19 18 c 20 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 21 CALL histwrite(nid_hf3d,"vitu",itau_w,zx_tmp_3d, 22 . iim*jjmp1*klev,ndex3d) 19 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 20 CALL histwrite_phy(nid_hf3d,"vitu",itau_w,u_seri) 23 21 c 24 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 25 CALL histwrite(nid_hf3d,"vitv",itau_w,zx_tmp_3d, 26 . iim*jjmp1*klev,ndex3d) 27 c 22 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 23 CALL histwrite_phy(nid_hf3d,"vitv",itau_w,v_seri) 28 24 if (ok_sync) then 25 c$OMP MASTER 29 26 call histsync(nid_hf3d) 27 c$OMP END MASTER 30 28 endif -
LMDZ4/trunk/libf/phylmd/write_histins.h
r684 r766 11 11 itau_w = itau_phy + itap 12 12 13 CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)14 CALL histwrite (nid_ins,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)15 c 16 CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)17 CALL histwrite (nid_ins,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)13 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d) 14 CALL histwrite_phy(nid_ins,"phis",itau_w,pphis) 15 c 16 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d) 17 CALL histwrite_phy(nid_ins,"aire",itau_w,airephy) 18 18 19 19 DO i = 1, klon 20 20 zx_tmp_fi2d(i) = paprs(i,1) 21 21 ENDDO 22 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)23 CALL histwrite (nid_ins,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)22 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 23 CALL histwrite_phy(nid_ins,"psol",itau_w,zx_tmp_fi2d) 24 24 c 25 25 DO i = 1, klon 26 26 zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) 27 27 ENDDO 28 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)29 CALL histwrite (nid_ins,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)28 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 29 CALL histwrite_phy(nid_ins,"precip",itau_w,zx_tmp_fi2d) 30 30 c 31 31 DO i = 1, klon 32 32 zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i) 33 33 ENDDO 34 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 35 CALL histwrite (nid_ins,"plul",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)34 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 35 CALL histwrite_phy(nid_ins,"plul",itau_w,zx_tmp_fi2d) 36 36 c 37 37 DO i = 1, klon 38 38 zx_tmp_fi2d(i) = rain_con(i) + snow_con(i) 39 39 ENDDO 40 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)41 CALL histwrite (nid_ins,"pluc",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)42 43 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)44 CALL histwrite (nid_ins,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)40 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 41 CALL histwrite_phy(nid_ins,"pluc",itau_w,zx_tmp_fi2d) 42 43 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d) 44 CALL histwrite_phy(nid_ins,"tsol",itau_w,zxtsol) 45 45 cccIM 46 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m, zx_tmp_2d) 47 CALL histwrite(nid_ins,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 48 c 49 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m, zx_tmp_2d) 50 CALL histwrite(nid_ins,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 51 c 52 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m, zx_tmp_2d) 53 CALL histwrite(nid_ins,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 54 C 55 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m, zx_tmp_2d) 56 CALL histwrite(nid_ins,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 57 c 58 CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d) 59 CALL histwrite(nid_ins,"snow",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 60 61 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d) 62 CALL histwrite(nid_ins,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 63 c 64 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d) 65 CALL histwrite(nid_ins,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 66 c 67 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d) 68 CALL histwrite(nid_ins,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 69 c 70 CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d) 71 CALL histwrite(nid_ins,"evap",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 72 c 73 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d) 74 CALL histwrite(nid_ins,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 75 c 76 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d) 77 CALL histwrite(nid_ins,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 78 c 79 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 80 CALL histwrite(nid_ins,"solldown",itau_w,zx_tmp_2d,iim*jjmp1, 81 . ndex2d) 82 c 83 CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d) 84 CALL histwrite(nid_ins,"bils",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 46 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m, zx_tmp_2d) 47 CALL histwrite_phy(nid_ins,"t2m",itau_w,zt2m) 48 c 49 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m, zx_tmp_2d) 50 CALL histwrite_phy(nid_ins,"q2m",itau_w,zq2m) 51 c 52 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m, zx_tmp_2d) 53 CALL histwrite_phy(nid_ins,"u10m",itau_w,zu10m) 54 C 55 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m, zx_tmp_2d) 56 CALL histwrite_phy(nid_ins,"v10m",itau_w,zv10m) 57 c 58 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d) 59 CALL histwrite_phy(nid_ins,"snow",itau_w,snow_fall) 60 61 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d) 62 CALL histwrite_phy(nid_ins,"cdrm",itau_w,cdragm) 63 c 64 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d) 65 CALL histwrite_phy(nid_ins,"cdrh",itau_w,cdragh) 66 c 67 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d) 68 CALL histwrite_phy(nid_ins,"topl",itau_w,toplw) 69 c 70 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d) 71 CALL histwrite_phy(nid_ins,"evap",itau_w,evap) 72 c 73 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d) 74 CALL histwrite_phy(nid_ins,"sols",itau_w,solsw) 75 c 76 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d) 77 CALL histwrite_phy(nid_ins,"soll",itau_w,sollw) 78 c 79 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 80 CALL histwrite_phy(nid_ins,"solldown",itau_w,sollwdown) 81 c 82 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d) 83 CALL histwrite_phy(nid_ins,"bils",itau_w,bils) 85 84 c 86 85 zx_tmp_fi2d(1:klon)=-1*sens(1:klon) 87 86 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, sens,zx_tmp_2d) 88 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 89 CALL histwrite(nid_ins,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 90 c 91 CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d) 92 CALL histwrite(nid_ins,"fder",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 93 c 94 CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_oce),zx_tmp_2d) 95 CALL histwrite(nid_ins,"dtsvdfo",itau_w,zx_tmp_2d,iim*jjmp1, 96 . ndex2d) 97 c 98 CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_ter),zx_tmp_2d) 99 CALL histwrite(nid_ins,"dtsvdft",itau_w,zx_tmp_2d,iim*jjmp1, 100 . ndex2d) 101 c 102 CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_lic),zx_tmp_2d) 103 CALL histwrite(nid_ins,"dtsvdfg",itau_w,zx_tmp_2d,iim*jjmp1, 104 . ndex2d) 105 c 106 CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_sic),zx_tmp_2d) 107 CALL histwrite(nid_ins,"dtsvdfi",itau_w,zx_tmp_2d,iim*jjmp1, 108 . ndex2d) 87 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 88 CALL histwrite_phy(nid_ins,"sens",itau_w,zx_tmp_fi2d) 89 c 90 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d) 91 CALL histwrite_phy(nid_ins,"fder",itau_w,fder) 92 c 93 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_oce),zx_tmp_2d) 94 CALL histwrite_phy(nid_ins,"dtsvdfo",itau_w,d_ts(:,is_oce)) 95 c 96 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_ter),zx_tmp_2d) 97 CALL histwrite_phy(nid_ins,"dtsvdft",itau_w,d_ts(:,is_ter)) 98 c 99 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_lic),zx_tmp_2d) 100 CALL histwrite_phy(nid_ins,"dtsvdfg",itau_w, d_ts(:,is_lic)) 101 c 102 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, d_ts(1,is_sic),zx_tmp_2d) 103 CALL histwrite_phy(nid_ins,"dtsvdfi",itau_w,d_ts(:,is_sic)) 109 104 110 105 DO nsrf = 1, nbsrf 111 106 CXXX 112 107 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100. 113 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)114 CALL histwrite (nid_ins,"pourc_"//clnsurf(nsrf),itau_w,115 $ zx_tmp_2d,iim*jjmp1,ndex2d)108 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 109 CALL histwrite_phy(nid_ins,"pourc_"//clnsurf(nsrf),itau_w, 110 $ zx_tmp_fi2d) 116 111 C 117 112 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf) 118 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)119 CALL histwrite (nid_ins,"fract_"//clnsurf(nsrf),itau_w,120 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)113 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 114 CALL histwrite_phy(nid_ins,"fract_"//clnsurf(nsrf),itau_w, 115 $ zx_tmp_fi2d) 121 116 C 122 117 zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf) 123 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)124 CALL histwrite (nid_ins,"sens_"//clnsurf(nsrf),itau_w,125 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)118 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 119 CALL histwrite_phy(nid_ins,"sens_"//clnsurf(nsrf),itau_w, 120 $ zx_tmp_fi2d) 126 121 C 127 122 zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf) 128 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)129 CALL histwrite (nid_ins,"lat_"//clnsurf(nsrf),itau_w,130 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)123 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 124 CALL histwrite_phy(nid_ins,"lat_"//clnsurf(nsrf),itau_w, 125 $ zx_tmp_fi2d) 131 126 C 132 127 zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf) 133 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)134 CALL histwrite (nid_ins,"tsol_"//clnsurf(nsrf),itau_w,135 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)128 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 129 CALL histwrite_phy(nid_ins,"tsol_"//clnsurf(nsrf),itau_w, 130 $ zx_tmp_fi2d) 136 131 C 137 132 zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf) 138 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)139 CALL histwrite (nid_ins,"taux_"//clnsurf(nsrf),itau_w,140 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)133 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 134 CALL histwrite_phy(nid_ins,"taux_"//clnsurf(nsrf),itau_w, 135 $ zx_tmp_fi2d) 141 136 C 142 137 zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf) 143 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)144 CALL histwrite (nid_ins,"tauy_"//clnsurf(nsrf),itau_w,145 $ zx_tmp_2d,iim*jjmp1,ndex2d)138 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 139 CALL histwrite_phy(nid_ins,"tauy_"//clnsurf(nsrf),itau_w, 140 $ zx_tmp_fi2d) 146 141 C 147 142 zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf) 148 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)149 CALL histwrite (nid_ins,"rugs_"//clnsurf(nsrf),itau_w,150 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)143 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 144 CALL histwrite_phy(nid_ins,"rugs_"//clnsurf(nsrf),itau_w, 145 $ zx_tmp_fi2d) 151 146 C 152 147 zx_tmp_fi2d(1 : klon) = falbe( 1 : klon, nsrf) 153 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)154 CALL histwrite (nid_ins,"albe_"//clnsurf(nsrf),itau_w,155 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)148 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 149 CALL histwrite_phy(nid_ins,"albe_"//clnsurf(nsrf),itau_w, 150 $ zx_tmp_fi2d) 156 151 C 157 152 END DO 158 CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d) 159 CALL histwrite(nid_ins,"albs",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 160 CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d) 161 CALL histwrite(nid_ins,"albslw",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 153 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d) 154 CALL histwrite_phy(nid_ins,"albs",itau_w,albsol) 155 156 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d) 157 CALL histwrite_phy(nid_ins,"albslw",itau_w,albsollw) 158 162 159 c 163 160 cIM: 140404 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d) 164 161 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d) 165 c CALL histwrite (nid_ins,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,162 c CALL histwrite_phy(nid_ins,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1, 166 163 c . ndex2d) 167 164 c 168 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxrugs,zx_tmp_2d)169 CALL histwrite (nid_ins,"rugs",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)165 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxrugs,zx_tmp_2d) 166 CALL histwrite_phy(nid_ins,"rugs",itau_w,zxrugs) 170 167 c 171 168 cIM cf. AM 081204 BEG … … 174 171 c 175 172 c 176 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d) 177 CALL histwrite(nid_ins,"s_pblh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 178 c 179 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d) 180 CALL histwrite(nid_ins,"s_pblt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 181 c 182 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d) 183 CALL histwrite(nid_ins,"s_lcl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 184 c 185 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d) 186 CALL histwrite(nid_ins,"s_capCL",itau_w,zx_tmp_2d,iim*jjmp1, 187 . ndex2d) 188 c 189 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d) 190 CALL histwrite(nid_ins,"s_oliqCL",itau_w,zx_tmp_2d,iim*jjmp1, 191 . ndex2d) 192 c 193 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d) 194 CALL histwrite(nid_ins,"s_cteiCL",itau_w,zx_tmp_2d,iim*jjmp1, 195 . ndex2d) 196 c 197 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d) 198 CALL histwrite(nid_ins,"s_therm",itau_w,zx_tmp_2d,iim*jjmp1, 199 . ndex2d) 200 c 201 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d) 202 CALL histwrite(nid_ins,"s_trmb1",itau_w,zx_tmp_2d,iim*jjmp1, 203 . ndex2d) 204 c 205 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d) 206 CALL histwrite(nid_ins,"s_trmb2",itau_w,zx_tmp_2d,iim*jjmp1, 207 . ndex2d) 208 c 209 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d) 210 CALL histwrite(nid_ins,"s_trmb3",itau_w,zx_tmp_2d,iim*jjmp1, 211 . ndex2d) 173 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d) 174 CALL histwrite_phy(nid_ins,"s_pblh",itau_w,s_pblh) 175 c 176 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d) 177 CALL histwrite_phy(nid_ins,"s_pblt",itau_w,s_pblt) 178 c 179 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d) 180 CALL histwrite_phy(nid_ins,"s_lcl",itau_w,s_lcl) 181 c 182 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d) 183 CALL histwrite_phy(nid_ins,"s_capCL",itau_w,s_capCL) 184 c 185 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d) 186 CALL histwrite_phy(nid_ins,"s_oliqCL",itau_w,s_oliqCL) 187 c 188 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d) 189 CALL histwrite_phy(nid_ins,"s_cteiCL",itau_w,s_cteiCL) 190 c 191 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d) 192 CALL histwrite_phy(nid_ins,"s_therm",itau_w,s_therm) 193 c 194 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d) 195 CALL histwrite_phy(nid_ins,"s_trmb1",itau_w,s_trmb1) 196 c 197 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d) 198 CALL histwrite_phy(nid_ins,"s_trmb2",itau_w,s_trmb2) 199 c 200 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d) 201 CALL histwrite_phy(nid_ins,"s_trmb3",itau_w,s_trmb3) 212 202 c 213 203 cIM cf. AM 081204 END … … 215 205 c Champs 3D: 216 206 c 217 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 218 CALL histwrite(nid_ins,"temp",itau_w,zx_tmp_3d, 219 . iim*jjmp1*klev,ndex3d) 220 c 221 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 222 CALL histwrite(nid_ins,"vitu",itau_w,zx_tmp_3d, 223 . iim*jjmp1*klev,ndex3d) 224 c 225 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 226 CALL histwrite(nid_ins,"vitv",itau_w,zx_tmp_3d, 227 . iim*jjmp1*klev,ndex3d) 228 c 229 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 230 CALL histwrite(nid_ins,"geop",itau_w,zx_tmp_3d, 231 . iim*jjmp1*klev,ndex3d) 232 c 233 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 234 CALL histwrite(nid_ins,"pres",itau_w,zx_tmp_3d, 235 . iim*jjmp1*klev,ndex3d) 236 c 237 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d) 238 CALL histwrite(nid_ins,"dtvdf",itau_w,zx_tmp_3d, 239 . iim*jjmp1*klev,ndex3d) 240 c 241 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d) 242 CALL histwrite(nid_ins,"dqvdf",itau_w,zx_tmp_3d, 243 . iim*jjmp1*klev,ndex3d) 207 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 208 CALL histwrite_phy(nid_ins,"temp",itau_w,t_seri) 209 c 210 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 211 CALL histwrite_phy(nid_ins,"vitu",itau_w,u_seri) 212 c 213 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 214 CALL histwrite_phy(nid_ins,"vitv",itau_w,v_seri) 215 c 216 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 217 CALL histwrite_phy(nid_ins,"geop",itau_w,zphi) 218 c 219 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 220 CALL histwrite_phy(nid_ins,"pres",itau_w,pplay) 221 c 222 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_vdf, zx_tmp_3d) 223 CALL histwrite_phy(nid_ins,"dtvdf",itau_w,d_t_vdf) 224 c 225 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d) 226 CALL histwrite_phy(nid_ins,"dqvdf",itau_w,d_q_vdf) 244 227 245 228 c 246 229 if (ok_sync) then 230 c$OMP MASTER 247 231 call histsync(nid_ins) 232 c$OMP END MASTER 248 233 endif 249 234 ENDIF -
LMDZ4/trunk/libf/phylmd/write_histmth.h
r684 r766 16 16 c Champs 2D: 17 17 c 18 CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)19 CALL histwrite (nid_mth,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)18 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d) 19 CALL histwrite_phy(nid_mth,"phis",itau_w,pphis) 20 20 C 21 21 cIM 310804 CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d) 22 CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)23 CALL histwrite (nid_mth,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)22 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d) 23 CALL histwrite_phy(nid_mth,"aire",itau_w,airephy) 24 24 c 25 25 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)* 100. 26 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)27 CALL histwrite (nid_mth,"pourc_"//clnsurf(is_ter),itau_w,28 $ zx_tmp_2d,iim*jjmp1,ndex2d)26 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 27 CALL histwrite_phy(nid_mth,"pourc_"//clnsurf(is_ter),itau_w, 28 $ zx_tmp_fi2d) 29 29 c 30 30 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter) 31 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)32 CALL histwrite (nid_mth,"fract_"//clnsurf(is_ter),itau_w,33 $ zx_tmp_2d,iim*jjmp1,ndex2d)34 c 35 CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d)36 CALL histwrite (nid_mth,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)31 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 32 CALL histwrite_phy(nid_mth,"fract_"//clnsurf(is_ter),itau_w, 33 $ zx_tmp_fi2d) 34 c 35 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d) 36 CALL histwrite_phy(nid_mth,"slp",itau_w,slp) 37 37 38 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)39 CALL histwrite (nid_mth,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)40 c 41 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)42 CALL histwrite (nid_mth,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)38 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d) 39 CALL histwrite_phy(nid_mth,"tsol",itau_w,zxtsol) 40 c 41 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d) 42 CALL histwrite_phy(nid_mth,"t2m",itau_w,zt2m) 43 43 c 44 44 c ENSEMBLES BEG 45 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 46 CALL histwrite(nid_mth,"t2m_min",itau_w,zx_tmp_2d, 47 . iim*jjmp1,ndex2d) 48 c 49 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 50 CALL histwrite(nid_mth,"t2m_max",itau_w,zx_tmp_2d, 51 . iim*jjmp1,ndex2d) 45 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 46 CALL histwrite_phy(nid_mth,"t2m_min",itau_w,zt2m) 47 c 48 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 49 CALL histwrite_phy(nid_mth,"t2m_max",itau_w,zt2m) 52 50 c 53 51 c CALL gr_fi_ecrit(1,klon,iim,jjmp1,ftsoil(:,1,is_ter),zx_tmp_2d) 54 52 c CALL gr_fi_ecrit(1,klon,iim,jjmp1,ftsol(:,is_ter),zx_tmp_2d) 55 53 c CALL gr_fi_ecrit(1,klon,iim,jjmp1,ztsol,zx_tmp_2d) 56 c CALL histwrite (nid_mth,"tsoil",itau_w,zx_tmp_2d,54 c CALL histwrite_phy(nid_mth,"tsoil",itau_w,zx_tmp_2d, 57 55 c . iim*jjmp1,ndex2d) 58 56 c … … 60 58 zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i)) 61 59 ENDDO 62 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 63 CALL histwrite(nid_mth,"wind10m",itau_w,zx_tmp_2d, 64 $ iim*jjmp1,ndex2d) 60 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 61 CALL histwrite_phy(nid_mth,"wind10m",itau_w,zx_tmp_fi2d) 65 62 c 66 63 DO i = 1, klon 67 64 zx_tmp_fi2d(i) = pctsrf(i,is_sic) 68 65 ENDDO 69 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)70 CALL histwrite (nid_mth,"sicf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)66 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 67 CALL histwrite_phy(nid_mth,"sicf",itau_w,zx_tmp_fi2d) 71 68 c 72 69 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 73 c CALL histwrite (nid_mth,"temp",itau_w,zx_tmp_3d,70 c CALL histwrite_phy(nid_mth,"temp",itau_w,zx_tmp_3d, 74 71 c . iim*jjmp1*klev,ndex3d) 75 72 c 76 73 c ENSEMBLES END 77 74 c 78 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)79 CALL histwrite (nid_mth,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)80 c 81 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)82 CALL histwrite (nid_mth,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)83 C 84 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)85 CALL histwrite (nid_mth,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)75 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d) 76 CALL histwrite_phy(nid_mth,"q2m",itau_w,zq2m) 77 c 78 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d) 79 CALL histwrite_phy(nid_mth,"u10m",itau_w,zu10m) 80 C 81 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d) 82 CALL histwrite_phy(nid_mth,"v10m",itau_w,zv10m) 86 83 C 87 84 DO i = 1, klon 88 85 zx_tmp_fi2d(i) = paprs(i,1) 89 86 ENDDO 90 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)91 CALL histwrite (nid_mth,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)92 c 93 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxqsurf,zx_tmp_2d)94 CALL histwrite (nid_mth,"qsurf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)87 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 88 CALL histwrite_phy(nid_mth,"psol",itau_w,zx_tmp_fi2d) 89 c 90 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxqsurf,zx_tmp_2d) 91 CALL histwrite_phy(nid_mth,"qsurf",itau_w,zxqsurf) 95 92 c 96 93 if (.not. ok_veget) then 97 CALL gr_fi_ecrit(1, klon,iim,jjmp1, qsol,zx_tmp_2d) 98 CALL histwrite(nid_mth,"qsol",itau_w,zx_tmp_2d,iim*jjmp1 99 $ ,ndex2d) 94 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, qsol,zx_tmp_2d) 95 CALL histwrite_phy(nid_mth,"qsol",itau_w,qsol) 100 96 endif 101 97 c … … 103 99 zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) 104 100 ENDDO 105 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 106 CALL histwrite(nid_mth,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 107 c 108 CALL gr_fi_ecrit(1, klon,iim,jjmp1, nday_rain,zx_tmp_2d) 109 CALL histwrite(nid_mth,"ndayrain",itau_w,zx_tmp_2d, 110 $ iim*jjmp1,ndex2d) 101 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 102 CALL histwrite_phy(nid_mth,"precip",itau_w,zx_tmp_fi2d) 103 c 104 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, nday_rain,zx_tmp_2d) 105 CALL histwrite_phy(nid_mth,"ndayrain",itau_w,nday_rain) 111 106 c 112 107 DO i = 1, klon 113 108 zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i) 114 109 ENDDO 115 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)116 CALL histwrite (nid_mth,"plul",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)110 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 111 CALL histwrite_phy(nid_mth,"plul",itau_w,zx_tmp_fi2d) 117 112 c 118 113 DO i = 1, klon 119 114 zx_tmp_fi2d(i) = rain_con(i) + snow_con(i) 120 115 ENDDO 121 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)122 CALL histwrite (nid_mth,"pluc",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)123 c 124 CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)125 CALL histwrite (nid_mth,"snow",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)116 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 117 CALL histwrite_phy(nid_mth,"pluc",itau_w,zx_tmp_fi2d) 118 c 119 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d) 120 CALL histwrite_phy(nid_mth,"snow",itau_w,snow_fall) 126 121 c 127 122 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d) … … 129 124 c . ndex2d) 130 125 c 131 CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)132 CALL histwrite (nid_mth,"evap",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)133 c 134 CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)135 CALL histwrite (nid_mth,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)136 c 137 CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d)138 CALL histwrite (nid_mth,"tops0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)139 c 140 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)141 CALL histwrite (nid_mth,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)142 c 143 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d)144 CALL histwrite (nid_mth,"topl0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)126 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d) 127 CALL histwrite_phy(nid_mth,"evap",itau_w,evap) 128 c 129 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d) 130 CALL histwrite_phy(nid_mth,"tops",itau_w,topsw) 131 c 132 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d) 133 CALL histwrite_phy(nid_mth,"tops0",itau_w,topsw0) 134 c 135 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d) 136 CALL histwrite_phy(nid_mth,"topl",itau_w,toplw) 137 c 138 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d) 139 CALL histwrite_phy(nid_mth,"topl0",itau_w,toplw0) 145 140 c 146 141 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 ) 147 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)148 CALL histwrite (nid_mth, "SWupTOA",itau_w,zx_tmp_2d,149 . iim*jjmp1,ndex2d) 142 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 143 CALL histwrite_phy(nid_mth, "SWupTOA",itau_w,zx_tmp_fi2d) 144 c 150 145 c 151 146 zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 ) 152 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 153 CALL histwrite(nid_mth, "SWupTOAclr",itau_w,zx_tmp_2d, 154 . iim*jjmp1,ndex2d) 147 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 148 CALL histwrite_phy(nid_mth, "SWupTOAclr",itau_w,zx_tmp_fi2d) 155 149 c 156 150 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 ) 157 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 158 CALL histwrite(nid_mth, "SWdnTOA",itau_w,zx_tmp_2d, 159 . iim*jjmp1,ndex2d) 151 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 152 CALL histwrite_phy(nid_mth, "SWdnTOA",itau_w,zx_tmp_fi2d) 160 153 c 161 154 zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 ) 162 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 163 CALL histwrite(nid_mth, "SWdnTOAclr",itau_w,zx_tmp_2d, 164 . iim*jjmp1,ndex2d) 165 c 166 CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200,zx_tmp_2d) 167 CALL histwrite(nid_mth,"SWup200",itau_w,zx_tmp_2d, 168 $ iim*jjmp1,ndex2d) 169 c 170 CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200clr,zx_tmp_2d) 171 CALL histwrite(nid_mth,"SWup200clr",itau_w,zx_tmp_2d, 172 $ iim*jjmp1,ndex2d) 173 c 174 CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200,zx_tmp_2d) 175 CALL histwrite(nid_mth,"SWdn200",itau_w,zx_tmp_2d, 176 $ iim*jjmp1,ndex2d) 177 c 178 CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200clr,zx_tmp_2d) 179 CALL histwrite(nid_mth,"SWdn200clr",itau_w,zx_tmp_2d, 180 $ iim*jjmp1,ndex2d) 181 c 182 CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200,zx_tmp_2d) 183 CALL histwrite(nid_mth,"LWup200",itau_w,zx_tmp_2d, 184 $ iim*jjmp1,ndex2d) 185 c 186 CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200clr,zx_tmp_2d) 187 CALL histwrite(nid_mth,"LWup200clr",itau_w,zx_tmp_2d, 188 $ iim*jjmp1,ndex2d) 155 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 156 CALL histwrite_phy(nid_mth, "SWdnTOAclr",itau_w,zx_tmp_fi2d) 157 c 158 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200,zx_tmp_2d) 159 CALL histwrite_phy(nid_mth,"SWup200",itau_w,SWup200) 160 c 161 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200clr,zx_tmp_2d) 162 CALL histwrite_phy(nid_mth,"SWup200clr",itau_w,SWup200clr) 163 c 164 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200,zx_tmp_2d) 165 CALL histwrite_phy(nid_mth,"SWdn200",itau_w,SWdn200) 166 c 167 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200clr,zx_tmp_2d) 168 CALL histwrite_phy(nid_mth,"SWdn200clr",itau_w,SWdn200clr) 169 c 170 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200,zx_tmp_2d) 171 CALL histwrite_phy(nid_mth,"LWup200",itau_w,LWup200) 172 c 173 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200clr,zx_tmp_2d) 174 CALL histwrite_phy(nid_mth,"LWup200clr",itau_w,LWup200clr) 189 175 c 190 176 zx_tmp_fi2d(1:klon)=-1*LWdn200(1:klon) 191 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 192 CALL histwrite(nid_mth,"LWdn200",itau_w,zx_tmp_2d, 193 $ iim*jjmp1,ndex2d) 177 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 178 CALL histwrite_phy(nid_mth,"LWdn200",itau_w,zx_tmp_fi2d) 194 179 c 195 180 zx_tmp_fi2d(1:klon)=-1*LWdn200clr(1:klon) 196 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 197 CALL histwrite(nid_mth,"LWdn200clr",itau_w,zx_tmp_2d, 198 $ iim*jjmp1,ndex2d) 181 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 182 CALL histwrite_phy(nid_mth,"LWdn200clr",itau_w,zx_tmp_fi2d) 199 183 c 200 184 c200 END 201 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)202 CALL histwrite (nid_mth,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)203 c 204 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d)205 CALL histwrite (nid_mth,"sols0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)206 c 207 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)208 CALL histwrite (nid_mth,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)209 c 210 CALL gr_fi_ecrit(1, klon,iim,jjmp1, radsol,zx_tmp_2d)211 CALL histwrite (nid_mth,"radsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)212 c 213 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d)214 CALL histwrite (nid_mth,"soll0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)185 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d) 186 CALL histwrite_phy(nid_mth,"sols",itau_w,solsw) 187 c 188 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d) 189 CALL histwrite_phy(nid_mth,"sols0",itau_w,solsw0) 190 c 191 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d) 192 CALL histwrite_phy(nid_mth,"soll",itau_w,sollw) 193 c 194 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, radsol,zx_tmp_2d) 195 CALL histwrite_phy(nid_mth,"radsol",itau_w,radsol) 196 c 197 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d) 198 CALL histwrite_phy(nid_mth,"soll0",itau_w,sollw0) 215 199 c 216 200 c zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, 1) 217 201 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 ) 218 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 219 CALL histwrite(nid_mth, "SWupSFC",itau_w,zx_tmp_2d, 220 . iim*jjmp1,ndex2d) 202 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 203 CALL histwrite_phy(nid_mth, "SWupSFC",itau_w,zx_tmp_fi2d) 221 204 c 222 205 c zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, 1) 223 206 zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 ) 224 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 225 CALL histwrite(nid_mth, "SWupSFCclr",itau_w,zx_tmp_2d, 226 . iim*jjmp1,ndex2d) 207 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 208 CALL histwrite_phy(nid_mth, "SWupSFCclr",itau_w,zx_tmp_fi2d) 227 209 c 228 210 c zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, 1) 229 211 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 ) 230 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 231 CALL histwrite(nid_mth, "SWdnSFC",itau_w,zx_tmp_2d, 232 . iim*jjmp1,ndex2d) 212 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 213 CALL histwrite_phy(nid_mth, "SWdnSFC",itau_w,zx_tmp_fi2d) 233 214 c 234 215 c zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, 1) 235 216 zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 ) 236 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 237 CALL histwrite(nid_mth, "SWdnSFCclr",itau_w,zx_tmp_2d, 238 . iim*jjmp1,ndex2d) 217 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 218 CALL histwrite_phy(nid_mth, "SWdnSFCclr",itau_w,zx_tmp_fi2d) 239 219 c 240 220 cIM 080904 zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon) 241 221 cIM 130904 zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon) 242 222 zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon) 243 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 244 CALL histwrite(nid_mth,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1, 245 . ndex2d) 223 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 224 CALL histwrite_phy(nid_mth,"LWupSFC",itau_w,zx_tmp_fi2d) 246 225 c 247 226 DO i=1, klon … … 252 231 cIM 130904 zx_tmp_fi2d(1:klon)=sollw0(1:klon)-sollwdownclr(1:klon) 253 232 zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon) 254 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 255 CALL histwrite(nid_mth,"LWupSFCclr",itau_w,zx_tmp_2d,iim*jjmp1, 256 . ndex2d) 257 c 258 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 259 CALL histwrite(nid_mth,"LWdnSFC",itau_w,zx_tmp_2d,iim*jjmp1, 260 . ndex2d) 233 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 234 CALL histwrite_phy(nid_mth,"LWupSFCclr",itau_w,zx_tmp_fi2d) 235 c 236 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 237 CALL histwrite_phy(nid_mth,"LWdnSFC",itau_w,sollwdown) 261 238 c 262 239 c DO i=1, klon … … 265 242 c ENDDO !i=1, klon 266 243 c 267 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdownclr,zx_tmp_2d) 268 CALL histwrite(nid_mth,"LWdnSFCclr",itau_w,zx_tmp_2d, 269 $ iim*jjmp1,ndex2d) 270 c 271 CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d) 272 CALL histwrite(nid_mth,"bils",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 244 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdownclr,zx_tmp_2d) 245 CALL histwrite_phy(nid_mth,"LWdnSFCclr",itau_w,sollwdownclr) 246 c 247 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d) 248 CALL histwrite_phy(nid_mth,"bils",itau_w,bils) 273 249 c 274 250 zx_tmp_fi2d(1:klon)=-1*sens(1:klon) 275 251 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, sens,zx_tmp_2d) 276 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)277 CALL histwrite (nid_mth,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)278 c 279 CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)280 CALL histwrite (nid_mth,"fder",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)252 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 253 CALL histwrite_phy(nid_mth,"sens",itau_w,zx_tmp_fi2d) 254 c 255 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d) 256 CALL histwrite_phy(nid_mth,"fder",itau_w,fder) 281 257 c 282 258 c … … 294 270 c 295 271 c 296 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxffonte,zx_tmp_2d) 297 CALL histwrite(nid_mth,"ffonte",itau_w,zx_tmp_2d,iim*jjmp1, 298 $ ndex2d) 299 c 300 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqcalving,zx_tmp_2d) 301 CALL histwrite(nid_mth,"fqcalving",itau_w,zx_tmp_2d,iim*jjmp1, 302 $ ndex2d) 303 c 272 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxffonte,zx_tmp_2d) 273 CALL histwrite_phy(nid_mth,"ffonte",itau_w,zxffonte) 274 c 275 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqcalving,zx_tmp_2d) 276 CALL histwrite_phy(nid_mth,"fqcalving",itau_w,zxfqcalving) 277 278 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqfonte,zx_tmp_2d) 279 CALL histwrite_phy(nid_mth,"fqfonte",itau_w,zxfqfonte) 280 304 281 DO nsrf = 1, nbsrf 305 282 zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf) 306 307 CALL histwrite (nid_mth,"taux_"//clnsurf(nsrf),itau_w,308 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)283 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 284 CALL histwrite_phy(nid_mth,"taux_"//clnsurf(nsrf),itau_w, 285 $ zx_tmp_fi2d) 309 286 C 310 287 zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf) 311 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)312 CALL histwrite (nid_mth,"tauy_"//clnsurf(nsrf),itau_w,313 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)288 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 289 CALL histwrite_phy(nid_mth,"tauy_"//clnsurf(nsrf),itau_w, 290 $ zx_tmp_fi2d) 314 291 ENDDO 315 292 c … … 318 295 IF(nsrf.GT.2) THEN 319 296 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100. 320 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)321 CALL histwrite (nid_mth,"pourc_"//clnsurf(nsrf),itau_w,322 $ zx_tmp_2d,iim*jjmp1,ndex2d)297 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 298 CALL histwrite_phy(nid_mth,"pourc_"//clnsurf(nsrf),itau_w, 299 & zx_tmp_fi2d) 323 300 c 324 301 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf) 325 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)326 CALL histwrite (nid_mth,"fract_"//clnsurf(nsrf),itau_w,327 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)302 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 303 CALL histwrite_phy(nid_mth,"fract_"//clnsurf(nsrf),itau_w, 304 $ zx_tmp_fi2d) 328 305 ENDIF !nsrf.GT.2 329 306 C 330 307 zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf) 331 332 CALL histwrite (nid_mth,"tsol_"//clnsurf(nsrf),itau_w,333 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)308 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 309 CALL histwrite_phy(nid_mth,"tsol_"//clnsurf(nsrf),itau_w, 310 $ zx_tmp_fi2d) 334 311 C 335 312 zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf) 336 337 CALL histwrite (nid_mth,"sens_"//clnsurf(nsrf),itau_w,338 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)313 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 314 CALL histwrite_phy(nid_mth,"sens_"//clnsurf(nsrf),itau_w, 315 $ zx_tmp_fi2d) 339 316 C 340 317 zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf) 341 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)342 CALL histwrite (nid_mth,"lat_"//clnsurf(nsrf),itau_w,343 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)318 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 319 CALL histwrite_phy(nid_mth,"lat_"//clnsurf(nsrf),itau_w, 320 $ zx_tmp_fi2d) 344 321 C 345 322 zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf) 346 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)347 CALL histwrite (nid_mth,"flw_"//clnsurf(nsrf),itau_w,348 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)323 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 324 CALL histwrite_phy(nid_mth,"flw_"//clnsurf(nsrf),itau_w, 325 $ zx_tmp_fi2d) 349 326 c 350 327 zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf) 351 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)352 CALL histwrite (nid_mth,"fsw_"//clnsurf(nsrf),itau_w,353 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)328 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 329 CALL histwrite_phy(nid_mth,"fsw_"//clnsurf(nsrf),itau_w, 330 $ zx_tmp_fi2d) 354 331 C 355 332 zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf) 356 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)357 CALL histwrite (nid_mth,"wbils_"//clnsurf(nsrf),itau_w,358 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)333 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 334 CALL histwrite_phy(nid_mth,"wbils_"//clnsurf(nsrf),itau_w, 335 $ zx_tmp_fi2d) 359 336 C 360 337 zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf) 361 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)362 CALL histwrite (nid_mth,"wbilo_"//clnsurf(nsrf),itau_w,363 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)338 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 339 CALL histwrite_phy(nid_mth,"wbilo_"//clnsurf(nsrf),itau_w, 340 $ zx_tmp_fi2d) 364 341 C 365 342 IF(1.EQ.0) THEN 366 343 C 367 344 zx_tmp_fi2d(1:klon) = fevap(1:klon,nsrf)*pctsrf(1:klon,nsrf) 368 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)369 CALL histwrite (nid_mth,"evapour_"//clnsurf(nsrf),itau_w,370 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)345 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 346 CALL histwrite_phy(nid_mth,"evapour_"//clnsurf(nsrf),itau_w, 347 $ zx_tmp_fi2d) 371 348 C 372 349 zx_tmp_fi2d(1:klon) = (rain_fall(1:klon) + snow_fall(1:klon)) 373 350 $ *pctsrf(1:klon,nsrf) 374 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)375 CALL histwrite (nid_mth,"prepour_"//clnsurf(nsrf),itau_w,376 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)351 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 352 CALL histwrite_phy(nid_mth,"prepour_"//clnsurf(nsrf),itau_w, 353 $ zx_tmp_fi2d) 377 354 C 378 355 ENDIF !(1.EQ.0) THEN … … 380 357 END DO 381 358 c 382 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)383 CALL histwrite (nid_mth,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)384 c 385 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)386 CALL histwrite (nid_mth,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)387 c 388 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d)389 CALL histwrite (nid_mth,"cldl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)390 c 391 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d)392 CALL histwrite (nid_mth,"cldm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)393 c 394 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d)395 CALL histwrite (nid_mth,"cldh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)396 c 397 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d)398 CALL histwrite (nid_mth,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)399 c 400 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d)401 CALL histwrite (nid_mth,"cldq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)359 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d) 360 CALL histwrite_phy(nid_mth,"cdrm",itau_w,cdragm) 361 c 362 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d) 363 CALL histwrite_phy(nid_mth,"cdrh",itau_w,cdragh) 364 c 365 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d) 366 CALL histwrite_phy(nid_mth,"cldl",itau_w,cldl) 367 c 368 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d) 369 CALL histwrite_phy(nid_mth,"cldm",itau_w,cldm) 370 c 371 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d) 372 CALL histwrite_phy(nid_mth,"cldh",itau_w,cldh) 373 c 374 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d) 375 CALL histwrite_phy(nid_mth,"cldt",itau_w,cldt) 376 c 377 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d) 378 CALL histwrite_phy(nid_mth,"cldq",itau_w,cldq) 402 379 c 403 380 zx_tmp_fi2d(1:klon) = flwp(1:klon) 404 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)405 CALL histwrite (nid_mth,"lwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)381 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 382 CALL histwrite_phy(nid_mth,"lwp",itau_w,zx_tmp_fi2d) 406 383 c 407 384 zx_tmp_fi2d(1:klon) = fiwp(1:klon) 408 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)409 CALL histwrite (nid_mth,"iwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)410 c 411 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d)412 CALL histwrite (nid_mth,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)413 c 414 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d)415 CALL histwrite (nid_mth,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)416 c 417 CALL gr_fi_ecrit(1, klon,iim,jjmp1, uq,zx_tmp_2d)418 CALL histwrite (nid_mth,"uq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)419 c 420 CALL gr_fi_ecrit(1, klon,iim,jjmp1, vq,zx_tmp_2d)421 CALL histwrite (nid_mth,"vq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)385 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 386 CALL histwrite_phy(nid_mth,"iwp",itau_w,zx_tmp_fi2d) 387 c 388 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d) 389 CALL histwrite_phy(nid_mth,"ue",itau_w,ue) 390 c 391 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d) 392 CALL histwrite_phy(nid_mth,"ve",itau_w,ve) 393 c 394 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, uq,zx_tmp_2d) 395 CALL histwrite_phy(nid_mth,"uq",itau_w,uq) 396 c 397 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, vq,zx_tmp_2d) 398 CALL histwrite_phy(nid_mth,"vq",itau_w,vq) 422 399 cKE43 423 400 IF (iflag_con.GE.3) THEN ! sb 424 401 c 425 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cape,zx_tmp_2d)426 CALL histwrite (nid_mth,"cape",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)427 c 428 CALL gr_fi_ecrit(1, klon,iim,jjmp1,pbase,zx_tmp_2d)429 CALL histwrite (nid_mth,"pbase",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)430 c 431 CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_pct,zx_tmp_2d)432 CALL histwrite (nid_mth,"ptop",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)433 c 434 CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_cbmf,zx_tmp_2d)435 CALL histwrite (nid_mth,"fbase",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)402 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cape,zx_tmp_2d) 403 CALL histwrite_phy(nid_mth,"cape",itau_w,cape) 404 c 405 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,pbase,zx_tmp_2d) 406 CALL histwrite_phy(nid_mth,"pbase",itau_w,pbase) 407 c 408 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_pct,zx_tmp_2d) 409 CALL histwrite_phy(nid_mth,"ptop",itau_w,ema_pct) 410 c 411 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_cbmf,zx_tmp_2d) 412 CALL histwrite_phy(nid_mth,"fbase",itau_w,ema_cbmf) 436 413 c 437 414 c34EK 438 415 c 439 CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d) 440 CALL histwrite(nid_mth,"prw",itau_w,zx_tmp_2d, 441 . iim*jjmp1,ndex2d) 416 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d) 417 CALL histwrite_phy(nid_mth,"prw",itau_w,prw) 442 418 c 443 419 ENDIF !iflag_con.GE.3 … … 448 424 c 449 425 c 450 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d) 451 CALL histwrite(nid_mth,"s_pblh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 452 c 453 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d) 454 CALL histwrite(nid_mth,"s_pblt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 455 c 456 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d) 457 CALL histwrite(nid_mth,"s_lcl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 458 c 459 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d) 460 CALL histwrite(nid_mth,"s_capCL",itau_w,zx_tmp_2d,iim*jjmp1, 461 . ndex2d) 462 c 463 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d) 464 CALL histwrite(nid_mth,"s_oliqCL",itau_w,zx_tmp_2d,iim*jjmp1, 465 . ndex2d) 466 c 467 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d) 468 CALL histwrite(nid_mth,"s_cteiCL",itau_w,zx_tmp_2d,iim*jjmp1, 469 . ndex2d) 470 c 471 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d) 472 CALL histwrite(nid_mth,"s_therm",itau_w,zx_tmp_2d,iim*jjmp1, 473 . ndex2d) 474 c 475 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d) 476 CALL histwrite(nid_mth,"s_trmb1",itau_w,zx_tmp_2d,iim*jjmp1, 477 . ndex2d) 478 c 479 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d) 480 CALL histwrite(nid_mth,"s_trmb2",itau_w,zx_tmp_2d,iim*jjmp1, 481 . ndex2d) 482 c 483 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d) 484 CALL histwrite(nid_mth,"s_trmb3",itau_w,zx_tmp_2d,iim*jjmp1, 485 . ndex2d) 426 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d) 427 CALL histwrite_phy(nid_mth,"s_pblh",itau_w,s_pblh) 428 c 429 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d) 430 CALL histwrite_phy(nid_mth,"s_pblt",itau_w,s_pblt) 431 c 432 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d) 433 CALL histwrite_phy(nid_mth,"s_lcl",itau_w,s_lcl) 434 c 435 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d) 436 CALL histwrite_phy(nid_mth,"s_capCL",itau_w,s_capCL) 437 c 438 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d) 439 CALL histwrite_phy(nid_mth,"s_oliqCL",itau_w,s_oliqCL) 440 c 441 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d) 442 CALL histwrite_phy(nid_mth,"s_cteiCL",itau_w,s_cteiCL) 443 c 444 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d) 445 CALL histwrite_phy(nid_mth,"s_therm",itau_w,s_therm) 446 c 447 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d) 448 CALL histwrite_phy(nid_mth,"s_trmb1",itau_w,s_trmb1) 449 c 450 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d) 451 CALL histwrite_phy(nid_mth,"s_trmb2",itau_w,s_trmb2) 452 c 453 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d) 454 CALL histwrite_phy(nid_mth,"s_trmb3",itau_w,s_trmb3) 486 455 c 487 456 cIM cf. AM 081204 END … … 502 471 $ bb2.EQ."500".OR.bb2.EQ."200") THEN 503 472 c 504 CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,2),zx_tmp_2d) 505 CALL histwrite(nid_mth,"u"//bb2,itau_w,zx_tmp_2d, 506 $ iim*jjmp1,ndex2d) 507 c 508 CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,2),zx_tmp_2d) 509 CALL histwrite(nid_mth,"v"//bb2,itau_w,zx_tmp_2d, 510 $ iim*jjmp1,ndex2d) 511 c 512 CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,2),zx_tmp_2d) 513 CALL histwrite(nid_mth,"w"//bb2,itau_w,zx_tmp_2d, 514 $ iim*jjmp1,ndex2d) 515 c 516 CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,2),zx_tmp_2d) 517 CALL histwrite(nid_mth,"phi"//bb2,itau_w,zx_tmp_2d, 518 $ iim*jjmp1,ndex2d) 473 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,2),zx_tmp_2d) 474 CALL histwrite_phy(nid_mth,"u"//bb2,itau_w,usumSTD(:,k,2)) 475 c 476 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,2),zx_tmp_2d) 477 CALL histwrite_phy(nid_mth,"v"//bb2,itau_w,vsumSTD(:,k,2)) 478 c 479 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,2),zx_tmp_2d) 480 CALL histwrite_phy(nid_mth,"w"//bb2,itau_w,wsumSTD(:,k,2)) 481 c 482 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,2),zx_tmp_2d) 483 CALL histwrite_phy(nid_mth,"phi"//bb2,itau_w,phisumSTD(:,k,2)) 519 484 c 520 485 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR. … … 529 494 ENDDO 530 495 c 531 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 532 CALL histwrite(nid_mth,"fluxo",itau_w,zx_tmp_2d, 533 . iim*jjmp1,ndex2d) 496 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 497 CALL histwrite_phy(nid_mth,"fluxo",itau_w,zx_tmp_fi2d) 534 498 c 535 499 DO i=1, klon … … 541 505 ENDDO 542 506 c 543 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 544 CALL histwrite(nid_mth,"fluxg",itau_w,zx_tmp_2d, 545 . iim*jjmp1,ndex2d) 507 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 508 CALL histwrite_phy(nid_mth,"fluxg",itau_w,zx_tmp_fi2d) 546 509 c 547 510 DO i=1, klon … … 556 519 ENDDO 557 520 c 558 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 559 CALL histwrite(nid_mth,"t_oce_sic",itau_w,zx_tmp_2d, 560 . iim*jjmp1,ndex2d) 521 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 522 CALL histwrite_phy(nid_mth,"t_oce_sic",itau_w,zx_tmp_fi2d) 561 523 c 562 524 IF (OCEAN.EQ.'force ') THEN … … 571 533 ENDIF 572 534 ENDDO 573 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 574 CALL histwrite(nid_mth,"lmt_bils",itau_w, 575 . zx_tmp_2d,iim*jjmp1,ndex2d) 535 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 536 CALL histwrite_phy(nid_mth,"lmt_bils",itau_w,zx_tmp_fi2d) 576 537 c 577 538 ELSE IF (OCEAN.EQ.'slab ') THEN … … 586 547 ENDIF 587 548 ENDDO 588 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 589 CALL histwrite(nid_mth,"slab_bils",itau_w, 590 . zx_tmp_2d,iim*jjmp1,ndex2d) 549 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 550 CALL histwrite_phy(nid_mth,"slab_bils",itau_w,zx_tmp_fi2d) 591 551 c 592 552 DO i=1, klon … … 598 558 ENDIF 599 559 ENDDO !i=1, klon 600 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 601 CALL histwrite(nid_mth,"tslab",itau_w,zx_tmp_2d, 602 . iim*jjmp1,ndex2d) 603 c 604 CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d) 605 CALL histwrite(nid_mth,"seaice",itau_w,zx_tmp_2d, 606 . iim*jjmp1,ndex2d) 607 c 608 CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d) 609 CALL histwrite(nid_mth,"siceh",itau_w,zx_tmp_2d, 610 . iim*jjmp1,ndex2d) 560 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 561 CALL histwrite_phy(nid_mth,"tslab",itau_w,zx_tmp_fi2d) 562 c 563 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d) 564 CALL histwrite_phy(nid_mth,"seaice",itau_w,seaice) 565 c 566 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d) 567 CALL histwrite_phy(nid_mth,"siceh",itau_w, seaice/1000.) 611 568 c 612 569 ENDIF !OCEAN.EQ.force/slab … … 619 576 C 620 577 c 621 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d) 622 CALL histwrite(nid_mth,"lwcon",itau_w,zx_tmp_3d, 623 . iim*jjmp1*klev,ndex3d) 624 c 625 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d) 626 CALL histwrite(nid_mth,"iwcon",itau_w,zx_tmp_3d, 627 . iim*jjmp1*klev,ndex3d) 628 c 629 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 630 CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d, 631 . iim*jjmp1*klev,ndex3d) 578 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d) 579 CALL histwrite_phy(nid_mth,"lwcon",itau_w,flwc) 580 c 581 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d) 582 CALL histwrite_phy(nid_mth,"iwcon",itau_w,fiwc) 583 c 584 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 585 CALL histwrite_phy(nid_mth,"temp",itau_w,t_seri) 632 586 c 633 587 c#ifdef histmthNMC … … 635 589 c#endif 636 590 c 637 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 638 CALL histwrite(nid_mth,"ovap",itau_w,zx_tmp_3d, 639 . iim*jjmp1*klev,ndex3d) 591 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 592 CALL histwrite_phy(nid_mth,"ovap",itau_w,qx(:,:,ivap)) 640 593 c 641 594 c zx_tmp_fi3d(1:klon,1:klev)=qx(1:klon,1:klev,ivap)/ … … 645 598 c . iim*jjmp1*klev,ndex3d) 646 599 c 647 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 648 CALL histwrite(nid_mth,"geop",itau_w,zx_tmp_3d, 649 . iim*jjmp1*klev,ndex3d) 650 c 651 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 652 CALL histwrite(nid_mth,"vitu",itau_w,zx_tmp_3d, 653 . iim*jjmp1*klev,ndex3d) 654 c 655 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 656 CALL histwrite(nid_mth,"vitv",itau_w,zx_tmp_3d, 657 . iim*jjmp1*klev,ndex3d) 658 c 659 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 660 CALL histwrite(nid_mth,"vitw",itau_w,zx_tmp_3d, 661 . iim*jjmp1*klev,ndex3d) 662 c 663 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 664 CALL histwrite(nid_mth,"pres",itau_w,zx_tmp_3d, 665 . iim*jjmp1*klev,ndex3d) 666 c 667 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra, zx_tmp_3d) 668 CALL histwrite(nid_mth,"rneb",itau_w,zx_tmp_3d, 669 . iim*jjmp1*klev,ndex3d) 670 c 671 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d) 672 CALL histwrite(nid_mth,"rnebcon",itau_w,zx_tmp_3d, 673 . iim*jjmp1*klev,ndex3d) 674 c 675 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_rh, zx_tmp_3d) 676 CALL histwrite(nid_mth,"rhum",itau_w,zx_tmp_3d, 677 . iim*jjmp1*klev,ndex3d) 678 c 600 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 601 CALL histwrite_phy(nid_mth,"geop",itau_w,zphi) 602 c 603 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 604 CALL histwrite_phy(nid_mth,"vitu",itau_w,u_seri) 605 c 606 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 607 CALL histwrite_phy(nid_mth,"vitv",itau_w,v_seri) 608 c 609 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 610 CALL histwrite_phy(nid_mth,"vitw",itau_w,omega) 611 c 612 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 613 CALL histwrite_phy(nid_mth,"pres",itau_w,pplay) 614 c 615 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra, zx_tmp_3d) 616 CALL histwrite_phy(nid_mth,"rneb",itau_w,cldfra) 617 c 618 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d) 619 CALL histwrite_phy(nid_mth,"rnebcon",itau_w,rnebcon) 620 c 621 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_rh, zx_tmp_3d) 622 CALL histwrite_phy(nid_mth,"rhum",itau_w,zx_rh) 623 679 624 DO k=1, klev 680 625 DO i=1, klon … … 691 636 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, wo, zx_tmp_3d) 692 637 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp2_fi3d,zx_tmp_3d) 693 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 694 CALL histwrite(nid_mth,"ozone",itau_w,zx_tmp_3d, 695 . iim*jjmp1*klev,ndex3d) 696 c 697 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 698 CALL histwrite(nid_mth,"dtphy",itau_w,zx_tmp_3d, 699 . iim*jjmp1*klev,ndex3d) 700 c 701 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,ivap), 702 . zx_tmp_3d) 703 CALL histwrite(nid_mth,"dqphy",itau_w,zx_tmp_3d, 704 . iim*jjmp1*klev,ndex3d) 638 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 639 CALL histwrite_phy(nid_mth,"ozone",itau_w,zx_tmp_fi3d) 640 c 641 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 642 CALL histwrite_phy(nid_mth,"dtphy",itau_w,d_t) 643 c 644 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,ivap), 645 cym . zx_tmp_3d) 646 CALL histwrite_phy(nid_mth,"dqphy",itau_w, d_qx(:,:,ivap)) 647 cIM 22.03.04 END 705 648 c 706 649 ENDIF !lev_histmth.GE.2 … … 711 654 c 712 655 zx_tmp_fi2d(1 : klon) = falbe( 1 : klon, nsrf) 713 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)714 CALL histwrite (nid_mth,"albe_"//clnsurf(nsrf),itau_w,715 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)656 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 657 CALL histwrite_phy(nid_mth,"albe_"//clnsurf(nsrf),itau_w, 658 $ zx_tmp_fi2d) 716 659 C 717 660 zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf) 718 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)719 CALL histwrite (nid_mth,"rugs_"//clnsurf(nsrf),itau_w,720 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)661 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 662 CALL histwrite_phy(nid_mth,"rugs_"//clnsurf(nsrf),itau_w, 663 $ zx_tmp_fi2d) 721 664 c 722 665 zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf) 723 CALL gr_fi_ecrit(1, klon,iim,jjmp1, agesno,zx_tmp_2d)724 CALL histwrite (nid_mth,"ages_"//clnsurf(nsrf),itau_w725 $ ,zx_tmp_ 2d,iim*jjmp1,ndex2d)666 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, agesno,zx_tmp_2d) 667 CALL histwrite_phy(nid_mth,"ages_"//clnsurf(nsrf),itau_w 668 $ ,zx_tmp_fi2d) 726 669 c 727 670 ENDDO !nsrf=1, nbsrf 728 671 c 729 CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d)730 CALL histwrite (nid_mth,"albs",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)731 c 732 CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d)733 CALL histwrite (nid_mth,"albslw",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)672 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d) 673 CALL histwrite_phy(nid_mth,"albs",itau_w,albsol) 674 c 675 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d) 676 CALL histwrite_phy(nid_mth,"albslw",itau_w,albsollw) 734 677 c 735 678 ENDIF !lev_histmth.GE.3 … … 738 681 IF(lev_histmth.GE.4) THEN 739 682 c 740 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, clwcon0, zx_tmp_3d) 741 CALL histwrite(nid_mth,"clwcon",itau_w,zx_tmp_3d, 742 . iim*jjmp1*klev,ndex3d) 743 c 683 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, clwcon0, zx_tmp_3d) 684 CALL histwrite_phy(nid_mth,"clwcon",itau_w,clwcon0) 685 744 686 IF (iflag_con.GE.3) THEN 745 687 c 746 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d) 747 CALL histwrite(nid_mth,"Ma",itau_w,zx_tmp_3d, 748 . iim*jjmp1*klev,ndex3d) 749 c 750 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, upwd, zx_tmp_3d) 751 CALL histwrite(nid_mth,"upwd",itau_w,zx_tmp_3d, 752 . iim*jjmp1*klev,ndex3d) 753 c 754 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd, zx_tmp_3d) 755 CALL histwrite(nid_mth,"dnwd",itau_w,zx_tmp_3d, 756 . iim*jjmp1*klev,ndex3d) 757 c 758 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd0, zx_tmp_3d) 759 CALL histwrite(nid_mth,"dnwd0",itau_w,zx_tmp_3d, 760 . iim*jjmp1*klev,ndex3d) 688 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d) 689 CALL histwrite_phy(nid_mth,"Ma",itau_w,Ma) 690 c 691 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, upwd, zx_tmp_3d) 692 CALL histwrite_phy(nid_mth,"upwd",itau_w,upwd) 693 c 694 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd, zx_tmp_3d) 695 CALL histwrite_phy(nid_mth,"dnwd",itau_w,dnwd) 696 c 697 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd0, zx_tmp_3d) 698 CALL histwrite_phy(nid_mth,"dnwd0",itau_w,dnwd0) 761 699 c 762 700 ENDIF !iflag_con.GE.3 763 701 c 764 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) 765 CALL histwrite(nid_mth,"dtdyn",itau_w,zx_tmp_3d, 766 . iim*jjmp1*klev,ndex3d) 767 c 768 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d) 769 CALL histwrite(nid_mth,"dqdyn",itau_w,zx_tmp_3d, 770 . iim*jjmp1*klev,ndex3d) 702 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) 703 CALL histwrite_phy(nid_mth,"dtdyn",itau_w,d_t_dyn) 704 c 705 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d) 706 CALL histwrite_phy(nid_mth,"dqdyn",itau_w,d_q_dyn) 771 707 c 772 708 cIM: 101003 : K/30min ==> K/s 773 709 zx_tmp_fi3d(1:klon,1:klev)=d_t_con(1:klon,1:klev)/pdtphys 774 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 775 CALL histwrite(nid_mth,"dtcon",itau_w,zx_tmp_3d, 776 . iim*jjmp1*klev,ndex3d) 710 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 711 CALL histwrite_phy(nid_mth,"dtcon",itau_w,zx_tmp_fi3d) 777 712 c 778 713 zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys 779 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 780 CALL histwrite(nid_mth,"dqcon",itau_w,zx_tmp_3d, 781 . iim*jjmp1*klev,ndex3d) 714 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 715 CALL histwrite_phy(nid_mth,"dqcon",itau_w,zx_tmp_fi3d) 782 716 c 783 717 cIM: 101003 : K/30min ==> K/s 784 718 zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys 785 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d)786 CALL histwrite (nid_mth,"dtlsc",itau_w,zx_tmp_3d,787 . iim*jjmp1*klev,ndex3d) 719 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 720 CALL histwrite_phy(nid_mth,"dtlsc",itau_w,zx_tmp_fi3d) 721 cIM: 071003 788 722 cIM: 101003 : K/30min ==> K/s 789 723 zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+ 790 724 . d_t_eva(1:klon,1:klev))/pdtphys 791 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d) 792 CALL histwrite(nid_mth,"dtlschr",itau_w,zx_tmp_3d, 793 . iim*jjmp1*klev,ndex3d) 725 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d) 726 CALL histwrite_phy(nid_mth,"dtlschr",itau_w,zx_tmp_fi3d) 794 727 c 795 728 zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys 796 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 797 CALL histwrite(nid_mth,"dqlsc",itau_w,zx_tmp_3d, 798 . iim*jjmp1*klev,ndex3d) 729 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 730 CALL histwrite_phy(nid_mth,"dqlsc",itau_w,zx_tmp_fi3d) 799 731 c 800 732 cIM: 101003 : K/30min ==> K/s 801 733 zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys 802 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 803 CALL histwrite(nid_mth,"dtvdf",itau_w,zx_tmp_3d, 804 . iim*jjmp1*klev,ndex3d) 734 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 735 CALL histwrite_phy(nid_mth,"dtvdf",itau_w,zx_tmp_fi3d) 805 736 c 806 737 zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys 807 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 808 CALL histwrite(nid_mth,"dqvdf",itau_w,zx_tmp_3d, 809 . iim*jjmp1*klev,ndex3d) 738 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 739 CALL histwrite_phy(nid_mth,"dqvdf",itau_w,zx_tmp_fi3d) 810 740 c 811 741 cIM: 101003 : K/30min ==> K/s 812 742 zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys 813 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 814 CALL histwrite(nid_mth,"dteva",itau_w,zx_tmp_3d, 815 . iim*jjmp1*klev,ndex3d) 743 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 744 CALL histwrite_phy(nid_mth,"dteva",itau_w,zx_tmp_fi3d) 816 745 c 817 746 zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys 818 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 819 CALL histwrite(nid_mth,"dqeva",itau_w,zx_tmp_3d, 820 . iim*jjmp1*klev,ndex3d) 747 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 748 CALL histwrite_phy(nid_mth,"dqeva",itau_w,zx_tmp_fi3d) 821 749 c 822 750 zpt_conv = 0. 823 751 where (ptconv) zpt_conv = 1. 824 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zpt_conv, zx_tmp_3d) 825 CALL histwrite(nid_mth,"ptconv",itau_w,zx_tmp_3d, 826 . iim*(jjmp1)*klev,ndex3d) 827 c 828 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ratqs, zx_tmp_3d) 829 CALL histwrite(nid_mth,"ratqs",itau_w,zx_tmp_3d, 830 . iim*(jjmp1)*klev,ndex3d) 752 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zpt_conv, zx_tmp_3d) 753 CALL histwrite_phy(nid_mth,"ptconv",itau_w,zpt_conv) 754 c 755 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ratqs, zx_tmp_3d) 756 CALL histwrite_phy(nid_mth,"ratqs",itau_w,ratqs) 831 757 c 832 758 cIM: 101003 : K/30min ==> K/s 833 759 zx_tmp_fi3d(1:klon,1:klev)=d_t_ajs(1:klon,1:klev)/pdtphys 834 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 835 CALL histwrite(nid_mth,"dtajs",itau_w,zx_tmp_3d, 836 . iim*jjmp1*klev,ndex3d) 760 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 761 CALL histwrite_phy(nid_mth,"dtajs",itau_w,zx_tmp_fi3d) 837 762 c 838 763 zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys 839 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 840 CALL histwrite(nid_mth,"dqajs",itau_w,zx_tmp_3d, 841 . iim*jjmp1*klev,ndex3d) 764 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 765 CALL histwrite_phy(nid_mth,"dqajs",itau_w,zx_tmp_fi3d) 842 766 c 843 767 cIM: 101003 : K/day ==> K/s 844 768 zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY 845 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 846 CALL histwrite(nid_mth,"dtswr",itau_w,zx_tmp_3d, 847 . iim*jjmp1*klev,ndex3d) 769 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 770 CALL histwrite_phy(nid_mth,"dtswr",itau_w,zx_tmp_fi3d) 848 771 c 849 772 cIM: 101003 : K/day ==> K/s 850 773 zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY 851 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 852 CALL histwrite(nid_mth,"dtsw0",itau_w,zx_tmp_3d, 853 . iim*jjmp1*klev,ndex3d) 774 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 775 CALL histwrite_phy(nid_mth,"dtsw0",itau_w,zx_tmp_fi3d) 854 776 c 855 777 cIM: 101003 : K/day ==> K/s 856 778 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY 857 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 858 CALL histwrite(nid_mth,"dtlwr",itau_w,zx_tmp_3d, 859 . iim*jjmp1*klev,ndex3d) 779 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 780 CALL histwrite_phy(nid_mth,"dtlwr",itau_w,zx_tmp_fi3d) 860 781 c 861 782 cIM: 101003 : K/day ==> K/s 862 783 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY 863 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 864 CALL histwrite(nid_mth,"dtlw0",itau_w,zx_tmp_3d, 865 . iim*jjmp1*klev,ndex3d) 784 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 785 CALL histwrite_phy(nid_mth,"dtlw0",itau_w,zx_tmp_fi3d) 866 786 c 867 787 cIM: 101003 : deja en K/s 868 788 zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev) 869 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 870 CALL histwrite(nid_mth,"dtec",itau_w,zx_tmp_3d, 871 . iim*jjmp1*klev,ndex3d) 789 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 790 CALL histwrite_phy(nid_mth,"dtec",itau_w,zx_tmp_fi3d) 872 791 c 873 792 zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys 874 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 875 CALL histwrite(nid_mth,"duvdf",itau_w,zx_tmp_3d, 876 . iim*jjmp1*klev,ndex3d) 793 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 794 CALL histwrite_phy(nid_mth,"duvdf",itau_w,zx_tmp_fi3d) 877 795 c 878 796 zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys 879 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 880 CALL histwrite(nid_mth,"dvvdf",itau_w,zx_tmp_3d, 881 . iim*jjmp1*klev,ndex3d) 797 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 798 CALL histwrite_phy(nid_mth,"dvvdf",itau_w,zx_tmp_fi3d) 882 799 c 883 800 IF (ok_orodr) THEN 884 801 zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys 885 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 886 CALL histwrite(nid_mth,"duoro",itau_w,zx_tmp_3d, 887 . iim*jjmp1*klev,ndex3d) 802 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 803 CALL histwrite_phy(nid_mth,"duoro",itau_w,zx_tmp_fi3d) 888 804 c 889 805 zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys 890 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 891 CALL histwrite(nid_mth,"dvoro",itau_w,zx_tmp_3d, 892 . iim*jjmp1*klev,ndex3d) 806 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 807 CALL histwrite_phy(nid_mth,"dvoro",itau_w,zx_tmp_fi3d) 893 808 c 894 809 ENDIF … … 896 811 IF (ok_orolf) THEN 897 812 zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys 898 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 899 CALL histwrite(nid_mth,"dulif",itau_w,zx_tmp_3d, 900 . iim*jjmp1*klev,ndex3d) 813 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 814 CALL histwrite_phy(nid_mth,"dulif",itau_w,zx_tmp_fi3d) 901 815 c 902 816 zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys 903 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 904 CALL histwrite(nid_mth,"dvlif",itau_w,zx_tmp_3d, 905 . iim*jjmp1*klev,ndex3d) 817 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 818 CALL histwrite_phy(nid_mth,"dvlif",itau_w,zx_tmp_fi3d) 906 819 ENDIF 907 820 C 908 821 IF (nqmax.GE.3) THEN 909 822 DO iq=3,nqmax 910 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d) 911 CALL histwrite(nid_mth,tnom(iq),itau_w,zx_tmp_3d, 912 . iim*jjmp1*klev,ndex3d) 823 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d) 824 CALL histwrite_phy(nid_mth,tnom(iq),itau_w,qx(:,:,iq)) 913 825 ENDDO 914 826 ENDIF … … 922 834 c Champs 2D: 923 835 c 924 CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis/RG,zx_tmp_2d)925 CALL histwrite (nid_mth,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)836 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis/RG,zx_tmp_2d) 837 CALL histwrite_phy(nid_mth,"phis",itau_w,pphis/RG) 926 838 C 927 839 cIM 310804 CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d) 928 CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d)929 CALL histwrite (nid_mth,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)840 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d) 841 CALL histwrite_phy(nid_mth,"aire",itau_w,airephy) 930 842 c 931 843 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)* 100. 932 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)933 CALL histwrite (nid_mth,"pourc_"//clnsurf(is_ter),itau_w,934 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)844 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d) 845 CALL histwrite_phy(nid_mth,"pourc_"//clnsurf(is_ter),itau_w, 846 $ zx_tmp_fi2d) 935 847 c 936 848 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter) 937 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)938 CALL histwrite (nid_mth,"fract_"//clnsurf(is_ter),itau_w,939 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)849 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d) 850 CALL histwrite_phy(nid_mth,"fract_"//clnsurf(is_ter),itau_w, 851 $ zx_tmp_fi2d) 940 852 c 941 853 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_lic)* 100. 942 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)943 CALL histwrite (nid_mth,"pourc_"//clnsurf(is_lic),itau_w,944 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)854 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d) 855 CALL histwrite_phy(nid_mth,"pourc_"//clnsurf(is_lic),itau_w, 856 $ zx_tmp_fi2d) 945 857 c 946 858 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_lic) 947 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d)948 CALL histwrite (nid_mth,"fract_"//clnsurf(is_lic),itau_w,949 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)859 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d) 860 CALL histwrite_phy(nid_mth,"fract_"//clnsurf(is_lic),itau_w, 861 $ zx_tmp_fi2d) 950 862 c 951 863 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_sic)* 100. 952 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)953 CALL histwrite (nid_mth,"pourc_"//clnsurf(is_sic),itau_w,954 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)864 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 865 CALL histwrite_phy(nid_mth,"pourc_"//clnsurf(is_sic),itau_w, 866 $ zx_tmp_fi2d) 955 867 c 956 868 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_sic) 957 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)958 CALL histwrite (nid_mth,"fract_"//clnsurf(is_sic),itau_w,959 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)960 c 961 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d)962 CALL histwrite (nid_mth,"flat",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)869 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 870 CALL histwrite_phy(nid_mth,"fract_"//clnsurf(is_sic),itau_w, 871 $ zx_tmp_fi2d) 872 c 873 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d) 874 CALL histwrite_phy(nid_mth,"flat",itau_w,zxfluxlat) 963 875 c 964 876 zx_tmp_fi2d(1 : klon) = topsw(1:klon)-toplw(1:klon) 965 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 966 CALL histwrite(nid_mth,"bilTOA",itau_w, 967 . zx_tmp_2d,iim*jjmp1,ndex2d) 877 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 878 CALL histwrite_phy(nid_mth,"bilTOA",itau_w,zx_tmp_fi2d) 968 879 c 969 880 c IF(itap.EQ.ecrit_mth) THEN … … 976 887 c ENDDO 977 888 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, tops01,zx_tmp_2d) 978 c CALL histwrite (nid_mth,"tops01",itau_w,zx_tmp_2d,889 c CALL histwrite_phy(nid_mth,"tops01",itau_w,zx_tmp_2d, 979 890 c . iim*jjmp1,ndex2d) 980 891 c ENDIF !itap.EQ.ecrit_mth … … 989 900 ENDDO !l 990 901 c 991 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t,zx_tmp_3d) 992 CALL histwrite(nid_mth,"dtdia",itau_w,zx_tmp_3d, 993 $ iim*jjmp1*klev,ndex3d) 902 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t,zx_tmp_3d) 903 CALL histwrite_phy(nid_mth,"dtdia",itau_w,d_t) 994 904 c 995 905 c temperature tendency due to SW radiation … … 1000 910 ENDDO !l 1001 911 c 1002 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 1003 CALL histwrite(nid_mth,"dtsw",itau_w,zx_tmp_3d, 1004 $ iim*jjmp1*klev,ndex3d) 912 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 913 CALL histwrite_phy(nid_mth,"dtsw",itau_w,zx_tmp_fi3d) 1005 914 c 1006 915 c temperature tendency due to LW radiation … … 1011 920 ENDDO !l 1012 921 c 1013 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 1014 CALL histwrite(nid_mth,"dtlw",itau_w,zx_tmp_3d, 1015 $ iim*jjmp1*klev,ndex3d) 922 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 923 CALL histwrite_phy(nid_mth,"dtlw",itau_w,zx_tmp_fi3d) 1016 924 c 1017 925 c temperature tendency due to moist convective processes … … 1022 930 ENDDO !l 1023 931 c 1024 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 1025 CALL histwrite(nid_mth,"dtcon",itau_w,zx_tmp_3d, 1026 $ iim*jjmp1*klev,ndex3d) 932 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 933 CALL histwrite_phy(nid_mth,"dtcon",itau_w,zx_tmp_fi3d) 1027 934 c 1028 935 c temperature tendency due to dry convective processes … … 1033 940 ENDDO !l 1034 941 c 1035 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 1036 CALL histwrite(nid_mth,"dtajs",itau_w,zx_tmp_3d, 1037 $ iim*jjmp1*klev,ndex3d) 942 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 943 CALL histwrite_phy(nid_mth,"dtajs",itau_w,zx_tmp_fi3d) 1038 944 c 1039 945 c temperature tendency due to large scale precipitation … … 1044 950 ENDDO !l 1045 951 c 1046 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 1047 CALL histwrite(nid_mth,"dtlsc",itau_w,zx_tmp_3d, 1048 $ iim*jjmp1*klev,ndex3d) 952 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 953 CALL histwrite_phy(nid_mth,"dtlsc",itau_w,zx_tmp_fi3d) 1049 954 c 1050 955 c total moisture tendency due to diabatic processes … … 1056 961 ENDDO !l 1057 962 c 1058 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 1059 CALL histwrite(nid_mth,"dqdia",itau_w,zx_tmp_3d, 1060 $ iim*jjmp1*klev,ndex3d) 963 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 964 CALL histwrite_phy(nid_mth,"dqdia",itau_w,zx_tmp_fi3d) 1061 965 c 1062 966 cBEG 210404 BEG … … 1071 975 ENDIF !(ok_orodr.AND.ok_orolf) THEN 1072 976 c 1073 CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_u_oli,zx_tmp_3d) 1074 CALL histwrite(nid_mth,"duoli",itau_w,zx_tmp_3d, 1075 $ iim*jjmp1*klev,ndex3d) 1076 c 1077 CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_v_oli,zx_tmp_3d) 1078 CALL histwrite(nid_mth,"dvoli",itau_w,zx_tmp_3d, 1079 $ iim*jjmp1*klev,ndex3d) 977 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_u_oli,zx_tmp_3d) 978 CALL histwrite_phy(nid_mth,"duoli",itau_w,d_u_oli) 979 c 980 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_v_oli,zx_tmp_3d) 981 CALL histwrite_phy(nid_mth,"dvoli",itau_w,d_v_oli) 1080 982 c 1081 983 zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys 1082 CALL gr_fi_ecrit(klev, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1083 CALL histwrite(nid_mth,"ducon",itau_w,zx_tmp_3d, 1084 $ iim*jjmp1*klev,ndex3d) 984 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 985 CALL histwrite_phy(nid_mth,"ducon",itau_w,zx_tmp_fi3d) 1085 986 c 1086 987 zx_tmp_fi3d(1:klon,1:klev)=d_v_con(1:klon,1:klev)/pdtphys 1087 CALL gr_fi_ecrit(klev, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1088 CALL histwrite(nid_mth,"dvcon",itau_w,zx_tmp_3d, 1089 $ iim*jjmp1*klev,ndex3d) 1090 c 1091 CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_u,zx_tmp_3d) 1092 CALL histwrite(nid_mth,"dutot",itau_w,zx_tmp_3d, 1093 $ iim*jjmp1*klev,ndex3d) 1094 c 1095 CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_v,zx_tmp_3d) 1096 CALL histwrite(nid_mth,"dvtot",itau_w,zx_tmp_3d, 1097 $ iim*jjmp1*klev,ndex3d) 988 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 989 CALL histwrite_phy(nid_mth,"dvcon",itau_w,zx_tmp_fi3d) 990 c 991 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_u,zx_tmp_3d) 992 CALL histwrite_phy(nid_mth,"dutot",itau_w,d_u) 993 c 994 cym CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_v,zx_tmp_3d) 995 CALL histwrite_phy(nid_mth,"dvtot",itau_w,d_v) 1098 996 1099 997 cEND 210404 END … … 1101 999 c cldtrue 1102 1000 c CALL gr_fi_ecrit(klev, klon,iim,jjmp1,cldtrue,zx_tmp_3d) 1103 c CALL histwrite (nid_mth,"cldtrue",itau_w,zx_tmp_3d,1001 c CALL histwrite_phy(nid_mth,"cldtrue",itau_w,zx_tmp_3d, 1104 1002 c $ iim*jjmp1*klev,ndex3d) 1105 1003 c 1106 1004 c CALL gr_fi_ecrit(klev, klon,iim,jjmp1,cldTOA,zx_tmp_3d) 1107 c CALL histwrite (nid_mth,"cldTOA",itau_w,zx_tmp_3d,1005 c CALL histwrite_phy(nid_mth,"cldTOA",itau_w,zx_tmp_3d, 1108 1006 c $ iim*jjmp1*klev,ndex3d) 1109 1007 c 1110 1008 c CALL gr_fi_ecrit(klev, klon,iim,jjmp1,cldSFC,zx_tmp_3d) 1111 c CALL histwrite (nid_mth,"cldSFC",itau_w,zx_tmp_3d,1009 c CALL histwrite_phy(nid_mth,"cldSFC",itau_w,zx_tmp_3d, 1112 1010 c $ iim*jjmp1*klev,ndex3d) 1113 1011 c … … 1116 1014 zx_tmp_fi2d(i)=zustrdr(i)+zustrli(i) 1117 1015 ENDDO 1118 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1119 CALL histwrite(nid_mth,"GWDtaux", 1120 $ itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1016 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1017 CALL histwrite_phy(nid_mth,"GWDtaux",itau_w,zx_tmp_fi2d) 1121 1018 c 1122 1019 DO i=1, klon … … 1124 1021 zx_tmp_fi2d(i)=zvstrdr(i)+zvstrli(i) 1125 1022 ENDDO 1126 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1127 CALL histwrite(nid_mth,"GWDtauy", 1128 $ itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1023 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1024 CALL histwrite_phy(nid_mth,"GWDtauy",itau_w,zx_tmp_fi2d) 1129 1025 c 1130 1026 c220404 END 1131 1027 cAMIP2 END 1132 1028 c 1133 1134 CALL histwrite (nid_mth,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1029 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d) 1030 CALL histwrite_phy(nid_mth,"slp",itau_w,slp) 1135 1031 1136 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d)1137 CALL histwrite (nid_mth,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1138 c 1139 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d)1140 CALL histwrite (nid_mth,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1032 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d) 1033 CALL histwrite_phy(nid_mth,"tsol",itau_w,zxtsol) 1034 c 1035 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d) 1036 CALL histwrite_phy(nid_mth,"t2m",itau_w,zt2m) 1141 1037 c 1142 1038 c ENSEMBLES BEG 1143 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 1144 CALL histwrite(nid_mth,"t2m_min",itau_w,zx_tmp_2d, 1145 . iim*jjmp1,ndex2d) 1146 c 1147 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 1148 CALL histwrite(nid_mth,"t2m_max",itau_w,zx_tmp_2d, 1149 . iim*jjmp1,ndex2d) 1039 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 1040 CALL histwrite_phy(nid_mth,"t2m_min",itau_w,zt2m) 1041 c 1042 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 1043 CALL histwrite_phy(nid_mth,"t2m_max",itau_w,zt2m) 1150 1044 c 1151 1045 c CALL gr_fi_ecrit(1,klon,iim,jjmp1,ftsoil(:,1,is_ter),zx_tmp_2d) 1152 1046 c CALL gr_fi_ecrit(1,klon,iim,jjmp1,ftsol(:,is_ter),zx_tmp_2d) 1153 1047 c CALL gr_fi_ecrit(1,klon,iim,jjmp1,ztsol,zx_tmp_2d) 1154 c CALL histwrite (nid_mth,"tsoil",itau_w,zx_tmp_2d,1048 c CALL histwrite_phy(nid_mth,"tsoil",itau_w,zx_tmp_2d, 1155 1049 c . iim*jjmp1,ndex2d) 1156 1050 c … … 1158 1052 zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i)) 1159 1053 ENDDO 1160 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1161 CALL histwrite(nid_mth,"wind10m",itau_w,zx_tmp_2d, 1162 $ iim*jjmp1,ndex2d) 1054 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1055 CALL histwrite_phy(nid_mth,"wind10m",itau_w,zx_tmp_fi2d) 1163 1056 c 1164 1057 DO i = 1, klon 1165 1058 zx_tmp_fi2d(i) = pctsrf(i,is_sic) 1166 1059 ENDDO 1167 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)1168 CALL histwrite (nid_mth,"sicf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1060 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1061 CALL histwrite_phy(nid_mth,"sicf",itau_w,zx_tmp_fi2d) 1169 1062 c 1170 1063 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 1171 c CALL histwrite (nid_mth,"temp",itau_w,zx_tmp_3d,1064 c CALL histwrite_phy(nid_mth,"temp",itau_w,zx_tmp_3d, 1172 1065 c . iim*jjmp1*klev,ndex3d) 1173 1066 c 1174 1067 c ENSEMBLES END 1175 1068 c 1176 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d)1177 CALL histwrite (nid_mth,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1178 c 1179 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d)1180 CALL histwrite (nid_mth,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1181 C 1182 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d)1183 CALL histwrite (nid_mth,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1069 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d) 1070 CALL histwrite_phy(nid_mth,"q2m",itau_w,zq2m) 1071 c 1072 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d) 1073 CALL histwrite_phy(nid_mth,"u10m",itau_w,zu10m) 1074 C 1075 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d) 1076 CALL histwrite_phy(nid_mth,"v10m",itau_w,zv10m) 1184 1077 C 1185 1078 DO i = 1, klon 1186 1079 zx_tmp_fi2d(i) = paprs(i,1) 1187 1080 ENDDO 1188 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)1189 CALL histwrite (nid_mth,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1190 c 1191 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxqsurf,zx_tmp_2d)1192 CALL histwrite (nid_mth,"qsurf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1081 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1082 CALL histwrite_phy(nid_mth,"psol",itau_w,zx_tmp_fi2d) 1083 c 1084 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxqsurf,zx_tmp_2d) 1085 CALL histwrite_phy(nid_mth,"qsurf",itau_w,zxqsurf) 1193 1086 c 1194 1087 if (.not. ok_veget) then 1195 CALL gr_fi_ecrit(1, klon,iim,jjmp1, qsol,zx_tmp_2d) 1196 CALL histwrite(nid_mth,"qsol",itau_w,zx_tmp_2d,iim*jjmp1 1197 $ ,ndex2d) 1088 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, qsol,zx_tmp_2d) 1089 CALL histwrite_phy(nid_mth,"qsol",itau_w,qsol) 1198 1090 endif 1199 1091 c … … 1201 1093 zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) 1202 1094 ENDDO 1203 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1204 CALL histwrite(nid_mth,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1205 c 1206 CALL gr_fi_ecrit(1, klon,iim,jjmp1, nday_rain,zx_tmp_2d) 1207 CALL histwrite(nid_mth,"ndayrain",itau_w,zx_tmp_2d, 1208 $ iim*jjmp1,ndex2d) 1095 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1096 CALL histwrite_phy(nid_mth,"precip",itau_w,zx_tmp_fi2d) 1097 c 1098 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, nday_rain,zx_tmp_2d) 1099 CALL histwrite_phy(nid_mth,"ndayrain",itau_w,nday_rain) 1209 1100 c 1210 1101 DO i = 1, klon 1211 1102 zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i) 1212 1103 ENDDO 1213 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)1214 CALL histwrite (nid_mth,"plul",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1104 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1105 CALL histwrite_phy(nid_mth,"plul",itau_w,zx_tmp_fi2d) 1215 1106 c 1216 1107 DO i = 1, klon 1217 1108 zx_tmp_fi2d(i) = rain_con(i) + snow_con(i) 1218 1109 ENDDO 1219 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)1220 CALL histwrite (nid_mth,"pluc",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1221 c 1222 CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d)1223 CALL histwrite (nid_mth,"snowf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1110 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1111 CALL histwrite_phy(nid_mth,"pluc",itau_w,zx_tmp_fi2d) 1112 c 1113 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d) 1114 CALL histwrite_phy(nid_mth,"snowf",itau_w,snow_fall) 1224 1115 c 1225 1116 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d) 1226 c CALL histwrite (nid_mth,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1,1117 c CALL histwrite_phy(nid_mth,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1, 1227 1118 c . ndex2d) 1228 1119 c 1229 CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d)1230 CALL histwrite (nid_mth,"evap",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1231 c 1232 CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d)1233 CALL histwrite (nid_mth,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1234 c 1235 CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d)1236 CALL histwrite (nid_mth,"tops0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1237 c 1238 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d)1239 CALL histwrite (nid_mth,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1240 c 1241 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d)1242 CALL histwrite (nid_mth,"topl0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1120 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d) 1121 CALL histwrite_phy(nid_mth,"evap",itau_w,evap) 1122 c 1123 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d) 1124 CALL histwrite_phy(nid_mth,"tops",itau_w,topsw) 1125 c 1126 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d) 1127 CALL histwrite_phy(nid_mth,"tops0",itau_w,topsw0) 1128 c 1129 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d) 1130 CALL histwrite_phy(nid_mth,"topl",itau_w,toplw) 1131 c 1132 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d) 1133 CALL histwrite_phy(nid_mth,"topl0",itau_w,toplw0) 1243 1134 c 1244 1135 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 ) 1245 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1246 CALL histwrite(nid_mth, "SWupTOA",itau_w,zx_tmp_2d, 1247 . iim*jjmp1,ndex2d) 1136 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1137 CALL histwrite_phy(nid_mth, "SWupTOA",itau_w,zx_tmp_fi2d) 1248 1138 c 1249 1139 c 1250 1140 zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 ) 1251 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1252 CALL histwrite(nid_mth, "SWupTOAclr",itau_w,zx_tmp_2d, 1253 . iim*jjmp1,ndex2d) 1141 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1142 CALL histwrite_phy(nid_mth, "SWupTOAclr",itau_w,zx_tmp_fi2d) 1254 1143 c 1255 1144 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 ) 1256 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1257 CALL histwrite(nid_mth, "SWdnTOA",itau_w,zx_tmp_2d, 1258 . iim*jjmp1,ndex2d) 1145 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1146 CALL histwrite_phy(nid_mth, "SWdnTOA",itau_w,zx_tmp_fi2d) 1259 1147 c 1260 1148 zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 ) 1261 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1262 CALL histwrite(nid_mth, "SWdnTOAclr",itau_w,zx_tmp_2d, 1263 . iim*jjmp1,ndex2d) 1264 c 1265 CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200,zx_tmp_2d) 1266 CALL histwrite(nid_mth,"SWup200",itau_w,zx_tmp_2d, 1267 $ iim*jjmp1,ndex2d) 1268 c 1269 CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200clr,zx_tmp_2d) 1270 CALL histwrite(nid_mth,"SWup200clr",itau_w,zx_tmp_2d, 1271 $ iim*jjmp1,ndex2d) 1272 c 1273 CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200,zx_tmp_2d) 1274 CALL histwrite(nid_mth,"SWdn200",itau_w,zx_tmp_2d, 1275 $ iim*jjmp1,ndex2d) 1276 c 1277 CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200clr,zx_tmp_2d) 1278 CALL histwrite(nid_mth,"SWdn200clr",itau_w,zx_tmp_2d, 1279 $ iim*jjmp1,ndex2d) 1280 c 1281 CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200,zx_tmp_2d) 1282 CALL histwrite(nid_mth,"LWup200",itau_w,zx_tmp_2d, 1283 $ iim*jjmp1,ndex2d) 1284 c 1285 CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200clr,zx_tmp_2d) 1286 CALL histwrite(nid_mth,"LWup200clr",itau_w,zx_tmp_2d, 1287 $ iim*jjmp1,ndex2d) 1149 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1150 CALL histwrite_phy(nid_mth, "SWdnTOAclr",itau_w,zx_tmp_fi2d) 1151 c 1152 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200,zx_tmp_2d) 1153 CALL histwrite_phy(nid_mth,"SWup200",itau_w,SWup200) 1154 c 1155 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200clr,zx_tmp_2d) 1156 CALL histwrite_phy(nid_mth,"SWup200clr",itau_w,SWup200clr) 1157 c 1158 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200,zx_tmp_2d) 1159 CALL histwrite_phy(nid_mth,"SWdn200",itau_w,SWdn200) 1160 c 1161 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200clr,zx_tmp_2d) 1162 CALL histwrite_phy(nid_mth,"SWdn200clr",itau_w,SWdn200clr) 1163 c 1164 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200,zx_tmp_2d) 1165 CALL histwrite_phy(nid_mth,"LWup200",itau_w,LWup200) 1166 c 1167 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200clr,zx_tmp_2d) 1168 CALL histwrite_phy(nid_mth,"LWup200clr",itau_w,LWup200clr) 1288 1169 c 1289 1170 zx_tmp_fi2d(1:klon)=-1*LWdn200(1:klon) 1290 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1291 CALL histwrite(nid_mth,"LWdn200",itau_w,zx_tmp_2d, 1292 $ iim*jjmp1,ndex2d) 1171 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1172 CALL histwrite_phy(nid_mth,"LWdn200",itau_w,zx_tmp_fi2d) 1293 1173 c 1294 1174 zx_tmp_fi2d(1:klon)=-1*LWdn200clr(1:klon) 1295 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1296 CALL histwrite(nid_mth,"LWdn200clr",itau_w,zx_tmp_2d, 1297 $ iim*jjmp1,ndex2d) 1175 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1176 CALL histwrite_phy(nid_mth,"LWdn200clr",itau_w,zx_tmp_fi2d) 1298 1177 c 1299 1178 c200 END 1300 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d)1301 CALL histwrite (nid_mth,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1302 c 1303 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d)1304 CALL histwrite (nid_mth,"sols0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1305 c 1306 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d)1307 CALL histwrite (nid_mth,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1308 c 1309 CALL gr_fi_ecrit(1, klon,iim,jjmp1, radsol,zx_tmp_2d)1310 CALL histwrite (nid_mth,"radsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1311 c 1312 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d)1313 CALL histwrite (nid_mth,"soll0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1179 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d) 1180 CALL histwrite_phy(nid_mth,"sols",itau_w,solsw) 1181 c 1182 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d) 1183 CALL histwrite_phy(nid_mth,"sols0",itau_w,solsw0) 1184 c 1185 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d) 1186 CALL histwrite_phy(nid_mth,"soll",itau_w,sollw) 1187 c 1188 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, radsol,zx_tmp_2d) 1189 CALL histwrite_phy(nid_mth,"radsol",itau_w,radsol) 1190 c 1191 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d) 1192 CALL histwrite_phy(nid_mth,"soll0",itau_w,sollw0) 1314 1193 c 1315 1194 c zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, 1) 1316 1195 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 ) 1317 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1318 CALL histwrite(nid_mth, "SWupSFC",itau_w,zx_tmp_2d, 1319 . iim*jjmp1,ndex2d) 1196 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1197 CALL histwrite_phy(nid_mth, "SWupSFC",itau_w,zx_tmp_fi2d) 1320 1198 c 1321 1199 c zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, 1) 1322 1200 zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 ) 1323 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1324 CALL histwrite(nid_mth, "SWupSFCclr",itau_w,zx_tmp_2d, 1325 . iim*jjmp1,ndex2d) 1201 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1202 CALL histwrite_phy(nid_mth, "SWupSFCclr",itau_w,zx_tmp_fi2d) 1326 1203 c 1327 1204 c zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, 1) 1328 1205 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 ) 1329 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1330 CALL histwrite(nid_mth, "SWdnSFC",itau_w,zx_tmp_2d, 1331 . iim*jjmp1,ndex2d) 1206 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1207 CALL histwrite_phy(nid_mth, "SWdnSFC",itau_w,zx_tmp_fi2d) 1332 1208 c 1333 1209 c zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, 1) 1334 1210 zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 ) 1335 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1336 CALL histwrite(nid_mth, "SWdnSFCclr",itau_w,zx_tmp_2d, 1337 . iim*jjmp1,ndex2d) 1211 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1212 CALL histwrite_phy(nid_mth, "SWdnSFCclr",itau_w,zx_tmp_fi2d) 1338 1213 c 1339 1214 cIM 080904 zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon) 1340 1215 cIM 130904 zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon) 1341 1216 zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon) 1342 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 1343 CALL histwrite(nid_mth,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1, 1344 . ndex2d) 1217 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 1218 CALL histwrite_phy(nid_mth,"LWupSFC",itau_w,zx_tmp_fi2d) 1345 1219 c 1346 1220 DO i=1, klon … … 1351 1225 cIM 130904 zx_tmp_fi2d(1:klon)=sollw0(1:klon)-sollwdownclr(1:klon) 1352 1226 zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon) 1353 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 1354 CALL histwrite(nid_mth,"LWupSFCclr",itau_w,zx_tmp_2d,iim*jjmp1, 1355 . ndex2d) 1356 c 1357 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 1358 CALL histwrite(nid_mth,"LWdnSFC",itau_w,zx_tmp_2d,iim*jjmp1, 1359 . ndex2d) 1227 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 1228 CALL histwrite_phy(nid_mth,"LWupSFCclr",itau_w,zx_tmp_fi2d) 1229 c 1230 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 1231 CALL histwrite_phy(nid_mth,"LWdnSFC",itau_w,sollwdown) 1360 1232 c 1361 1233 c DO i=1, klon … … 1364 1236 c ENDDO !i=1, klon 1365 1237 c 1366 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdownclr,zx_tmp_2d) 1367 CALL histwrite(nid_mth,"LWdnSFCclr",itau_w,zx_tmp_2d, 1368 $ iim*jjmp1,ndex2d) 1369 c 1370 CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d) 1371 CALL histwrite(nid_mth,"bils",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1238 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdownclr,zx_tmp_2d) 1239 CALL histwrite_phy(nid_mth,"LWdnSFCclr",itau_w,sollwdownclr) 1240 c 1241 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d) 1242 CALL histwrite_phy(nid_mth,"bils",itau_w,bils) 1372 1243 c 1373 1244 zx_tmp_fi2d(1:klon)=-1*sens(1:klon) 1374 1245 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, sens,zx_tmp_2d) 1375 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)1376 CALL histwrite (nid_mth,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1377 c 1378 CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d)1379 CALL histwrite (nid_mth,"fder",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1246 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1247 CALL histwrite_phy(nid_mth,"sens",itau_w,zx_tmp_fi2d) 1248 c 1249 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d) 1250 CALL histwrite_phy(nid_mth,"fder",itau_w,fder) 1380 1251 c 1381 1252 c … … 1384 1255 c ENDDO 1385 1256 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1386 c CALL histwrite (nid_mth,"frtu",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1257 c CALL histwrite_phy(nid_mth,"frtu",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1387 1258 c 1388 1259 c DO i = 1, klon … … 1390 1261 c ENDDO 1391 1262 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1392 c CALL histwrite(nid_mth,"frtv",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1393 c 1394 c 1395 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxffonte,zx_tmp_2d) 1396 CALL histwrite(nid_mth,"ffonte",itau_w,zx_tmp_2d,iim*jjmp1, 1397 $ ndex2d) 1398 c 1399 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqcalving,zx_tmp_2d) 1400 CALL histwrite(nid_mth,"fqcalving",itau_w,zx_tmp_2d,iim*jjmp1, 1401 $ ndex2d) 1263 c CALL histwrite_phy(nid_mth,"frtv",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1264 c 1265 c 1266 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxffonte,zx_tmp_2d) 1267 CALL histwrite_phy(nid_mth,"ffonte",itau_w,zxffonte) 1268 c 1269 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqcalving,zx_tmp_2d) 1270 CALL histwrite_phy(nid_mth,"fqcalving",itau_w,zxfqcalving) 1402 1271 c 1403 1272 DO nsrf = 1, nbsrf 1404 1273 zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf) 1405 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1406 CALL histwrite (nid_mth,"taux_"//clnsurf(nsrf),itau_w,1407 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1274 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1275 CALL histwrite_phy(nid_mth,"taux_"//clnsurf(nsrf),itau_w, 1276 $ zx_tmp_fi2d) 1408 1277 C 1409 1278 zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf) 1410 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1411 CALL histwrite (nid_mth,"tauy_"//clnsurf(nsrf),itau_w,1412 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1279 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1280 CALL histwrite_phy(nid_mth,"tauy_"//clnsurf(nsrf),itau_w, 1281 $ zx_tmp_fi2d) 1413 1282 ENDDO 1414 1283 c 1415 1284 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, is_oce)*100. 1416 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)1417 CALL histwrite (nid_mth,"pourc_"//clnsurf(is_oce),itau_w,1418 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1285 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1286 CALL histwrite_phy(nid_mth,"pourc_"//clnsurf(is_oce),itau_w, 1287 $ zx_tmp_fi2d) 1419 1288 c 1420 1289 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, is_oce) 1421 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)1422 CALL histwrite (nid_mth,"fract_"//clnsurf(is_oce),itau_w,1423 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1290 cym CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1291 CALL histwrite_phy(nid_mth,"fract_"//clnsurf(is_oce),itau_w, 1292 $ zx_tmp_fi2d) 1424 1293 c 1425 1294 DO nsrf = 1, nbsrf … … 1427 1296 C 1428 1297 zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf) 1429 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1430 CALL histwrite (nid_mth,"tsol_"//clnsurf(nsrf),itau_w,1431 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1298 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1299 CALL histwrite_phy(nid_mth,"tsol_"//clnsurf(nsrf),itau_w, 1300 $ zx_tmp_fi2d) 1432 1301 C 1433 1302 zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf) 1434 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1435 CALL histwrite (nid_mth,"sens_"//clnsurf(nsrf),itau_w,1436 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1303 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1304 CALL histwrite_phy(nid_mth,"sens_"//clnsurf(nsrf),itau_w, 1305 $ zx_tmp_fi2d) 1437 1306 C 1438 1307 zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf) 1439 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1440 CALL histwrite (nid_mth,"lat_"//clnsurf(nsrf),itau_w,1441 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1308 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1309 CALL histwrite_phy(nid_mth,"lat_"//clnsurf(nsrf),itau_w, 1310 $ zx_tmp_fi2d) 1442 1311 C 1443 1312 zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf) 1444 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1445 CALL histwrite (nid_mth,"flw_"//clnsurf(nsrf),itau_w,1446 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1313 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1314 CALL histwrite_phy(nid_mth,"flw_"//clnsurf(nsrf),itau_w, 1315 $ zx_tmp_fi2d) 1447 1316 c 1448 1317 zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf) 1449 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1450 CALL histwrite (nid_mth,"fsw_"//clnsurf(nsrf),itau_w,1451 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1318 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1319 CALL histwrite_phy(nid_mth,"fsw_"//clnsurf(nsrf),itau_w, 1320 $ zx_tmp_fi2d) 1452 1321 C 1453 1322 zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf) 1454 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1455 CALL histwrite (nid_mth,"wbils_"//clnsurf(nsrf),itau_w,1456 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1323 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1324 CALL histwrite_phy(nid_mth,"wbils_"//clnsurf(nsrf),itau_w, 1325 $ zx_tmp_fi2d) 1457 1326 C 1458 1327 zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf) 1459 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1460 CALL histwrite (nid_mth,"wbilo_"//clnsurf(nsrf),itau_w,1461 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1328 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1329 CALL histwrite_phy(nid_mth,"wbilo_"//clnsurf(nsrf),itau_w, 1330 $ zx_tmp_fi2d) 1462 1331 C 1463 1332 IF(1.EQ.0) THEN 1464 1333 C 1465 1334 zx_tmp_fi2d(1:klon) = fevap(1:klon,nsrf)*pctsrf(1:klon,nsrf) 1466 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1467 CALL histwrite (nid_mth,"evapour_"//clnsurf(nsrf),itau_w,1468 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1335 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1336 CALL histwrite_phy(nid_mth,"evapour_"//clnsurf(nsrf),itau_w, 1337 $ zx_tmp_fi2d) 1469 1338 C 1470 1339 zx_tmp_fi2d(1:klon) = (rain_fall(1:klon) + snow_fall(1:klon)) 1471 1340 $ *pctsrf(1:klon,nsrf) 1472 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1473 CALL histwrite (nid_mth,"prepour_"//clnsurf(nsrf),itau_w,1474 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1341 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1342 CALL histwrite_phy(nid_mth,"prepour_"//clnsurf(nsrf),itau_w, 1343 $ zx_tmp_fi2d) 1475 1344 C 1476 1345 ENDIF !(1.EQ.0) THEN … … 1478 1347 END DO 1479 1348 c 1480 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d)1481 CALL histwrite (nid_mth,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1482 c 1483 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d)1484 CALL histwrite (nid_mth,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1485 c 1486 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d)1487 CALL histwrite (nid_mth,"cldl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1488 c 1489 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d)1490 CALL histwrite (nid_mth,"cldm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1491 c 1492 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d)1493 CALL histwrite (nid_mth,"cldh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1494 c 1495 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt*100.,zx_tmp_2d)1496 CALL histwrite (nid_mth,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1497 c 1498 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d)1499 CALL histwrite (nid_mth,"cldq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1349 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d) 1350 CALL histwrite_phy(nid_mth,"cdrm",itau_w,cdragm) 1351 c 1352 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d) 1353 CALL histwrite_phy(nid_mth,"cdrh",itau_w,cdragh) 1354 c 1355 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d) 1356 CALL histwrite_phy(nid_mth,"cldl",itau_w,cldl) 1357 c 1358 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d) 1359 CALL histwrite_phy(nid_mth,"cldm",itau_w,cldm) 1360 c 1361 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d) 1362 CALL histwrite_phy(nid_mth,"cldh",itau_w,cldh) 1363 c 1364 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt*100.,zx_tmp_2d) 1365 CALL histwrite_phy(nid_mth,"cldt",itau_w,cldt*100.) 1366 c 1367 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d) 1368 CALL histwrite_phy(nid_mth,"cldq",itau_w,cldq) 1500 1369 c 1501 1370 zx_tmp_fi2d(1:klon) = flwp(1:klon) 1502 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)1503 CALL histwrite (nid_mth,"lwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1371 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1372 CALL histwrite_phy(nid_mth,"lwp",itau_w,zx_tmp_fi2d) 1504 1373 c 1505 1374 zx_tmp_fi2d(1:klon) = fiwp(1:klon) 1506 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)1507 CALL histwrite (nid_mth,"iwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1508 c 1509 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d)1510 CALL histwrite (nid_mth,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1511 c 1512 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d)1513 CALL histwrite (nid_mth,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1514 c 1515 CALL gr_fi_ecrit(1, klon,iim,jjmp1, uq,zx_tmp_2d)1516 CALL histwrite (nid_mth,"uq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1517 c 1518 CALL gr_fi_ecrit(1, klon,iim,jjmp1, vq,zx_tmp_2d)1519 CALL histwrite (nid_mth,"vq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1375 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1376 CALL histwrite_phy(nid_mth,"iwp",itau_w,zx_tmp_fi2d) 1377 c 1378 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d) 1379 CALL histwrite_phy(nid_mth,"ue",itau_w,ue) 1380 c 1381 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d) 1382 CALL histwrite_phy(nid_mth,"ve",itau_w,ve) 1383 c 1384 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, uq,zx_tmp_2d) 1385 CALL histwrite_phy(nid_mth,"uq",itau_w,uq) 1386 c 1387 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, vq,zx_tmp_2d) 1388 CALL histwrite_phy(nid_mth,"vq",itau_w,vq) 1520 1389 cKE43 1521 1390 IF (iflag_con.GE.3) THEN ! sb 1522 1391 c 1523 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cape,zx_tmp_2d)1524 CALL histwrite (nid_mth,"cape",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1525 c 1526 CALL gr_fi_ecrit(1, klon,iim,jjmp1,pbase,zx_tmp_2d)1527 CALL histwrite (nid_mth,"pbase",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1528 c 1529 CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_pct,zx_tmp_2d)1530 CALL histwrite (nid_mth,"ptop",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1531 c 1532 CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_cbmf,zx_tmp_2d)1533 CALL histwrite (nid_mth,"fbase",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1392 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, cape,zx_tmp_2d) 1393 CALL histwrite_phy(nid_mth,"cape",itau_w,cape) 1394 c 1395 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,pbase,zx_tmp_2d) 1396 CALL histwrite_phy(nid_mth,"pbase",itau_w,pbase) 1397 c 1398 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_pct,zx_tmp_2d) 1399 CALL histwrite_phy(nid_mth,"ptop",itau_w,ema_pct) 1400 c 1401 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_cbmf,zx_tmp_2d) 1402 CALL histwrite_phy(nid_mth,"fbase",itau_w,ema_cbmf) 1534 1403 c 1535 1404 c34EK 1536 1405 c 1537 CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d) 1538 CALL histwrite(nid_mth,"prw",itau_w,zx_tmp_2d, 1539 . iim*jjmp1,ndex2d) 1406 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d) 1407 CALL histwrite_phy(nid_mth,"prw",itau_w,prw) 1540 1408 c 1541 1409 ENDIF !iflag_con.GE.3 … … 1545 1413 c 1546 1414 c 1547 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d) 1548 CALL histwrite(nid_mth,"s_pblh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1549 c 1550 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d) 1551 CALL histwrite(nid_mth,"s_pblt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1552 c 1553 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d) 1554 CALL histwrite(nid_mth,"s_lcl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1555 c 1556 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d) 1557 CALL histwrite(nid_mth,"s_capCL",itau_w,zx_tmp_2d,iim*jjmp1, 1558 . ndex2d) 1559 c 1560 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d) 1561 CALL histwrite(nid_mth,"s_oliqCL",itau_w,zx_tmp_2d,iim*jjmp1, 1562 . ndex2d) 1563 c 1564 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d) 1565 CALL histwrite(nid_mth,"s_cteiCL",itau_w,zx_tmp_2d,iim*jjmp1, 1566 . ndex2d) 1567 c 1568 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d) 1569 CALL histwrite(nid_mth,"s_therm",itau_w,zx_tmp_2d,iim*jjmp1, 1570 . ndex2d) 1571 c 1572 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d) 1573 CALL histwrite(nid_mth,"s_trmb1",itau_w,zx_tmp_2d,iim*jjmp1, 1574 . ndex2d) 1575 c 1576 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d) 1577 CALL histwrite(nid_mth,"s_trmb2",itau_w,zx_tmp_2d,iim*jjmp1, 1578 . ndex2d) 1579 c 1580 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d) 1581 CALL histwrite(nid_mth,"s_trmb3",itau_w,zx_tmp_2d,iim*jjmp1, 1582 . ndex2d) 1415 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d) 1416 CALL histwrite_phy(nid_mth,"s_pblh",itau_w,s_pblh) 1417 c 1418 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d) 1419 CALL histwrite_phy(nid_mth,"s_pblt",itau_w,s_pblt) 1420 c 1421 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d) 1422 CALL histwrite_phy(nid_mth,"s_lcl",itau_w,s_lcl) 1423 c 1424 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d) 1425 CALL histwrite_phy(nid_mth,"s_capCL",itau_w,s_capCL) 1426 c 1427 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d) 1428 CALL histwrite_phy(nid_mth,"s_oliqCL",itau_w,s_oliqCL) 1429 c 1430 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d) 1431 CALL histwrite_phy(nid_mth,"s_cteiCL",itau_w,s_cteiCL) 1432 c 1433 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d) 1434 CALL histwrite_phy(nid_mth,"s_therm",itau_w,s_therm) 1435 c 1436 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d) 1437 CALL histwrite_phy(nid_mth,"s_trmb1",itau_w,s_trmb1) 1438 c 1439 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d) 1440 CALL histwrite_phy(nid_mth,"s_trmb2",itau_w,s_trmb2) 1441 c 1442 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d) 1443 CALL histwrite_phy(nid_mth,"s_trmb3",itau_w,s_trmb3) 1583 1444 c 1584 1445 cIM cf. AM 081204 END … … 1600 1461 $ .OR.bb2.EQ."500".OR.bb2.EQ."200") THEN 1601 1462 c 1602 CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,2),zx_tmp_2d) 1603 CALL histwrite(nid_mth,"u"//bb2,itau_w,zx_tmp_2d, 1604 $ iim*jjmp1,ndex2d) 1605 c 1606 CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,2),zx_tmp_2d) 1607 CALL histwrite(nid_mth,"v"//bb2,itau_w,zx_tmp_2d, 1608 $ iim*jjmp1,ndex2d) 1609 c 1610 CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,2),zx_tmp_2d) 1611 CALL histwrite(nid_mth,"w"//bb2,itau_w,zx_tmp_2d, 1612 $ iim*jjmp1,ndex2d) 1613 c 1614 CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,2),zx_tmp_2d) 1615 CALL histwrite(nid_mth,"phi"//bb2,itau_w,zx_tmp_2d, 1616 $ iim*jjmp1,ndex2d) 1463 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,2),zx_tmp_2d) 1464 CALL histwrite_phy(nid_mth,"u"//bb2,itau_w,usumSTD(:,k,2)) 1465 c 1466 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,2),zx_tmp_2d) 1467 CALL histwrite_phy(nid_mth,"v"//bb2,itau_w,vsumSTD(:,k,2)) 1468 c 1469 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,2),zx_tmp_2d) 1470 CALL histwrite_phy(nid_mth,"w"//bb2,itau_w,wsumSTD(:,k,2)) 1471 c 1472 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,2),zx_tmp_2d) 1473 CALL histwrite_phy(nid_mth,"phi"//bb2,itau_w,phisumSTD(:,k,2)) 1617 1474 c 1618 1475 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700" … … 1627 1484 ENDDO 1628 1485 c 1629 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1630 CALL histwrite(nid_mth,"fluxo",itau_w,zx_tmp_2d, 1631 . iim*jjmp1,ndex2d) 1486 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1487 CALL histwrite_phy(nid_mth,"fluxo",itau_w,zx_tmp_fi2d) 1632 1488 c 1633 1489 DO i=1, klon … … 1639 1495 ENDDO 1640 1496 c 1641 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1642 CALL histwrite(nid_mth,"fluxg",itau_w,zx_tmp_2d, 1643 . iim*jjmp1,ndex2d) 1497 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1498 CALL histwrite_phy(nid_mth,"fluxg",itau_w,zx_tmp_fi2d) 1644 1499 c 1645 1500 DO i=1, klon … … 1654 1509 ENDDO 1655 1510 c 1656 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1657 CALL histwrite(nid_mth,"t_oce_sic",itau_w,zx_tmp_2d, 1658 . iim*jjmp1,ndex2d) 1511 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1512 CALL histwrite_phy(nid_mth,"t_oce_sic",itau_w,zx_tmp_fi2d) 1659 1513 c 1660 1514 IF (OCEAN.EQ.'force ') THEN … … 1669 1523 ENDIF 1670 1524 ENDDO 1671 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)1672 CALL histwrite (nid_mth,"lmt_bils",itau_w,1673 . zx_tmp_ 2d,iim*jjmp1,ndex2d)1525 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1526 CALL histwrite_phy(nid_mth,"lmt_bils",itau_w, 1527 . zx_tmp_fi2d) 1674 1528 c 1675 1529 ELSE IF (OCEAN.EQ.'slab ') THEN … … 1685 1539 ENDIF 1686 1540 ENDDO 1687 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d)1688 CALL histwrite (nid_mth,"slab_bils",itau_w,1689 . zx_tmp_ 2d,iim*jjmp1,ndex2d)1541 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1542 CALL histwrite_phy(nid_mth,"slab_bils",itau_w, 1543 . zx_tmp_fi2d) 1690 1544 c 1691 1545 DO i=1, klon … … 1697 1551 ENDIF 1698 1552 ENDDO !i=1, klon 1699 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1700 CALL histwrite(nid_mth,"tslab",itau_w,zx_tmp_2d, 1701 . iim*jjmp1,ndex2d) 1702 c 1703 CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d) 1704 CALL histwrite(nid_mth,"seaice",itau_w,zx_tmp_2d, 1705 . iim*jjmp1,ndex2d) 1706 c 1707 CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d) 1708 CALL histwrite(nid_mth,"siceh",itau_w,zx_tmp_2d, 1709 . iim*jjmp1,ndex2d) 1553 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1554 CALL histwrite_phy(nid_mth,"tslab",itau_w,zx_tmp_fi2d) 1555 c 1556 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d) 1557 CALL histwrite_phy(nid_mth,"seaice",itau_w,seaice) 1558 c 1559 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d) 1560 CALL histwrite_phy(nid_mth,"siceh",itau_w,seaice/1000.) 1710 1561 c 1711 1562 ENDIF !OCEAN.EQ.force/slab … … 1718 1569 C 1719 1570 c 1720 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d) 1721 CALL histwrite(nid_mth,"lwcon",itau_w,zx_tmp_3d, 1722 . iim*jjmp1*klev,ndex3d) 1723 c 1724 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d) 1725 CALL histwrite(nid_mth,"iwcon",itau_w,zx_tmp_3d, 1726 . iim*jjmp1*klev,ndex3d) 1727 c 1728 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 1729 CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d, 1730 . iim*jjmp1*klev,ndex3d) 1571 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d) 1572 CALL histwrite_phy(nid_mth,"lwcon",itau_w,flwc) 1573 c 1574 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d) 1575 CALL histwrite_phy(nid_mth,"iwcon",itau_w,fiwc) 1576 c 1577 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 1578 CALL histwrite_phy(nid_mth,"temp",itau_w,t_seri) 1731 1579 c 1732 1580 c#ifdef histmthNMC … … 1734 1582 c#endif 1735 1583 c 1736 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 1737 CALL histwrite(nid_mth,"ovap",itau_w,zx_tmp_3d, 1738 . iim*jjmp1*klev,ndex3d) 1584 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 1585 CALL histwrite_phy(nid_mth,"ovap",itau_w, qx(:,:,ivap)) 1739 1586 c 1740 1587 c zx_tmp_fi3d(1:klon,1:klev)=qx(1:klon,1:klev,ivap)/ 1741 1588 c . (1-qx(1:klon,1:klev,ivap)) 1742 1589 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d) 1743 c CALL histwrite (nid_mth,"wvap",itau_w,zx_tmp_3d,1590 c CALL histwrite_phy(nid_mth,"wvap",itau_w,zx_tmp_3d, 1744 1591 c . iim*jjmp1*klev,ndex3d) 1745 1592 c 1746 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 1747 CALL histwrite(nid_mth,"geop",itau_w,zx_tmp_3d, 1748 . iim*jjmp1*klev,ndex3d) 1749 c 1750 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 1751 CALL histwrite(nid_mth,"vitu",itau_w,zx_tmp_3d, 1752 . iim*jjmp1*klev,ndex3d) 1753 c 1754 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 1755 CALL histwrite(nid_mth,"vitv",itau_w,zx_tmp_3d, 1756 . iim*jjmp1*klev,ndex3d) 1757 c 1758 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 1759 CALL histwrite(nid_mth,"vitw",itau_w,zx_tmp_3d, 1760 . iim*jjmp1*klev,ndex3d) 1761 c 1762 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 1763 CALL histwrite(nid_mth,"pres",itau_w,zx_tmp_3d, 1764 . iim*jjmp1*klev,ndex3d) 1765 c 1766 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra*100., zx_tmp_3d) 1767 CALL histwrite(nid_mth,"rneb",itau_w,zx_tmp_3d, 1768 . iim*jjmp1*klev,ndex3d) 1769 c 1770 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d) 1771 CALL histwrite(nid_mth,"rnebcon",itau_w,zx_tmp_3d, 1772 . iim*jjmp1*klev,ndex3d) 1773 c 1774 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_rh, zx_tmp_3d) 1775 CALL histwrite(nid_mth,"rhum",itau_w,zx_tmp_3d, 1776 . iim*jjmp1*klev,ndex3d) 1593 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 1594 CALL histwrite_phy(nid_mth,"geop",itau_w,zphi) 1595 c 1596 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 1597 CALL histwrite_phy(nid_mth,"vitu",itau_w,u_seri) 1598 c 1599 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 1600 CALL histwrite_phy(nid_mth,"vitv",itau_w,v_seri) 1601 c 1602 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 1603 CALL histwrite_phy(nid_mth,"vitw",itau_w,omega) 1604 c 1605 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 1606 CALL histwrite_phy(nid_mth,"pres",itau_w,pplay) 1607 c 1608 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra*100., zx_tmp_3d) 1609 CALL histwrite_phy(nid_mth,"rneb",itau_w,cldfra*100.) 1610 c 1611 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d) 1612 CALL histwrite_phy(nid_mth,"rnebcon",itau_w,rnebcon) 1613 c 1614 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_rh, zx_tmp_3d) 1615 CALL histwrite_phy(nid_mth,"rhum",itau_w,zx_rh) 1777 1616 c 1778 1617 DO k=1, klev … … 1790 1629 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, wo, zx_tmp_3d) 1791 1630 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp2_fi3d,zx_tmp_3d) 1792 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1793 CALL histwrite(nid_mth,"ozone",itau_w,zx_tmp_3d, 1794 . iim*jjmp1*klev,ndex3d) 1795 c 1796 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 1797 CALL histwrite(nid_mth,"dtphy",itau_w,zx_tmp_3d, 1798 . iim*jjmp1*klev,ndex3d) 1799 c 1800 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,ivap), 1801 . zx_tmp_3d) 1802 CALL histwrite(nid_mth,"dqphy",itau_w,zx_tmp_3d, 1803 . iim*jjmp1*klev,ndex3d) 1631 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1632 CALL histwrite_phy(nid_mth,"ozone",itau_w,zx_tmp_fi3d) 1633 c 1634 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 1635 CALL histwrite_phy(nid_mth,"dtphy",itau_w,d_t) 1636 c 1637 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,ivap),zx_tmp_3d) 1638 CALL histwrite_phy(nid_mth,"dqphy",itau_w,d_qx(:,:,ivap)) 1804 1639 c 1805 1640 ENDIF !lev_histmth.GE.2 … … 1810 1645 c 1811 1646 zx_tmp_fi2d(1 : klon) = falbe( 1 : klon, nsrf) 1812 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1813 CALL histwrite (nid_mth,"albe_"//clnsurf(nsrf),itau_w,1814 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1647 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1648 CALL histwrite_phy(nid_mth,"albe_"//clnsurf(nsrf),itau_w, 1649 $ zx_tmp_fi2d) 1815 1650 C 1816 1651 zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf) 1817 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d)1818 CALL histwrite (nid_mth,"rugs_"//clnsurf(nsrf),itau_w,1819 $ zx_tmp_ 2d,iim*jjmp1,ndex2d)1652 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1653 CALL histwrite_phy(nid_mth,"rugs_"//clnsurf(nsrf),itau_w, 1654 $ zx_tmp_fi2d) 1820 1655 c 1821 1656 zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf) 1822 CALL gr_fi_ecrit(1, klon,iim,jjmp1, agesno,zx_tmp_2d)1823 CALL histwrite (nid_mth,"ages_"//clnsurf(nsrf),itau_w1824 $ , zx_tmp_2d,iim*jjmp1,ndex2d)1657 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, agesno,zx_tmp_2d) 1658 CALL histwrite_phy(nid_mth,"ages_"//clnsurf(nsrf),itau_w 1659 $ ,agesno) 1825 1660 c 1826 1661 ENDDO !nsrf=1, nbsrf 1827 1662 c 1828 CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d)1829 CALL histwrite (nid_mth,"albs",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1830 c 1831 CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d)1832 CALL histwrite (nid_mth,"albslw",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)1663 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d) 1664 CALL histwrite_phy(nid_mth,"albs",itau_w,albsol) 1665 c 1666 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d) 1667 CALL histwrite_phy(nid_mth,"albslw",itau_w,albsollw) 1833 1668 c 1834 1669 ENDIF !lev_histmth.GE.3 … … 1837 1672 IF(lev_histmth.GE.4) THEN 1838 1673 c 1839 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, clwcon0, zx_tmp_3d) 1840 CALL histwrite(nid_mth,"clwcon",itau_w,zx_tmp_3d, 1841 . iim*jjmp1*klev,ndex3d) 1674 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, clwcon0, zx_tmp_3d) 1675 CALL histwrite_phy(nid_mth,"clwcon",itau_w,clwcon0) 1842 1676 c 1843 1677 IF (iflag_con.GE.3) THEN 1844 1678 c 1845 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d) 1846 CALL histwrite(nid_mth,"Ma",itau_w,zx_tmp_3d, 1847 . iim*jjmp1*klev,ndex3d) 1848 c 1849 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, upwd, zx_tmp_3d) 1850 CALL histwrite(nid_mth,"upwd",itau_w,zx_tmp_3d, 1851 . iim*jjmp1*klev,ndex3d) 1852 c 1853 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd, zx_tmp_3d) 1854 CALL histwrite(nid_mth,"dnwd",itau_w,zx_tmp_3d, 1855 . iim*jjmp1*klev,ndex3d) 1856 c 1857 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd0, zx_tmp_3d) 1858 CALL histwrite(nid_mth,"dnwd0",itau_w,zx_tmp_3d, 1859 . iim*jjmp1*klev,ndex3d) 1679 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d) 1680 CALL histwrite_phy(nid_mth,"Ma",itau_w,Ma) 1681 c 1682 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, upwd, zx_tmp_3d) 1683 CALL histwrite_phy(nid_mth,"upwd",itau_w,upwd) 1684 c 1685 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd, zx_tmp_3d) 1686 CALL histwrite_phy(nid_mth,"dnwd",itau_w,dnwd) 1687 c 1688 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd0, zx_tmp_3d) 1689 CALL histwrite_phy(nid_mth,"dnwd0",itau_w,dnwd0) 1860 1690 c 1861 1691 ENDIF !iflag_con.GE.3 1862 1692 c 1863 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) 1864 CALL histwrite(nid_mth,"dtdyn",itau_w,zx_tmp_3d, 1865 . iim*jjmp1*klev,ndex3d) 1866 c 1867 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d) 1868 CALL histwrite(nid_mth,"dqdyn",itau_w,zx_tmp_3d, 1869 . iim*jjmp1*klev,ndex3d) 1693 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) 1694 CALL histwrite_phy(nid_mth,"dtdyn",itau_w,d_t_dyn) 1695 c 1696 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d) 1697 CALL histwrite_phy(nid_mth,"dqdyn",itau_w,d_q_dyn) 1870 1698 c 1871 1699 cIM: 101003 : K/30min ==> K/s 1872 1700 c 1873 1701 zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys 1874 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1875 CALL histwrite(nid_mth,"dqcon",itau_w,zx_tmp_3d, 1876 . iim*jjmp1*klev,ndex3d) 1702 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1703 CALL histwrite_phy(nid_mth,"dqcon",itau_w,zx_tmp_fi3d) 1877 1704 c 1878 1705 cIM: 101003 : K/30min ==> K/s 1879 1706 zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+ 1880 1707 . d_t_eva(1:klon,1:klev))/pdtphys 1881 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d) 1882 CALL histwrite(nid_mth,"dtlschr",itau_w,zx_tmp_3d, 1883 . iim*jjmp1*klev,ndex3d) 1708 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d) 1709 CALL histwrite_phy(nid_mth,"dtlschr",itau_w,zx_tmp_fi3d) 1884 1710 c 1885 1711 zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys 1886 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1887 CALL histwrite(nid_mth,"dqlsc",itau_w,zx_tmp_3d, 1888 . iim*jjmp1*klev,ndex3d) 1712 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1713 CALL histwrite_phy(nid_mth,"dqlsc",itau_w,zx_tmp_fi3d) 1889 1714 c 1890 1715 cIM: 101003 : K/30min ==> K/s 1891 1716 zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys 1892 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1893 CALL histwrite(nid_mth,"dtvdf",itau_w,zx_tmp_3d, 1894 . iim*jjmp1*klev,ndex3d) 1717 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1718 CALL histwrite_phy(nid_mth,"dtvdf",itau_w,zx_tmp_fi3d) 1895 1719 c 1896 1720 zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys 1897 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1898 CALL histwrite(nid_mth,"dqvdf",itau_w,zx_tmp_3d, 1899 . iim*jjmp1*klev,ndex3d) 1721 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1722 CALL histwrite_phy(nid_mth,"dqvdf",itau_w,zx_tmp_fi3d) 1900 1723 c 1901 1724 cIM: 101003 : K/30min ==> K/s 1902 1725 zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys 1903 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1904 CALL histwrite(nid_mth,"dteva",itau_w,zx_tmp_3d, 1905 . iim*jjmp1*klev,ndex3d) 1726 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1727 CALL histwrite_phy(nid_mth,"dteva",itau_w,zx_tmp_fi3d) 1906 1728 c 1907 1729 zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys 1908 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1909 CALL histwrite(nid_mth,"dqeva",itau_w,zx_tmp_3d, 1910 . iim*jjmp1*klev,ndex3d) 1730 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1731 CALL histwrite_phy(nid_mth,"dqeva",itau_w,zx_tmp_fi3d) 1911 1732 c 1912 1733 zpt_conv = 0. 1913 1734 where (ptconv) zpt_conv = 1. 1914 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zpt_conv, zx_tmp_3d) 1915 CALL histwrite(nid_mth,"ptconv",itau_w,zx_tmp_3d, 1916 . iim*(jjmp1)*klev,ndex3d) 1917 c 1918 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ratqs, zx_tmp_3d) 1919 CALL histwrite(nid_mth,"ratqs",itau_w,zx_tmp_3d, 1920 . iim*(jjmp1)*klev,ndex3d) 1735 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zpt_conv, zx_tmp_3d) 1736 CALL histwrite_phy(nid_mth,"ptconv",itau_w,zpt_conv) 1737 c 1738 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ratqs, zx_tmp_3d) 1739 CALL histwrite_phy(nid_mth,"ratqs",itau_w,ratqs) 1921 1740 c 1922 1741 zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys 1923 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1924 CALL histwrite(nid_mth,"dqajs",itau_w,zx_tmp_3d, 1925 . iim*jjmp1*klev,ndex3d) 1742 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1743 CALL histwrite_phy(nid_mth,"dqajs",itau_w,zx_tmp_fi3d) 1926 1744 c 1927 1745 cIM: 101003 : K/day ==> K/s 1928 1746 zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY 1929 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1930 CALL histwrite(nid_mth,"dtswr",itau_w,zx_tmp_3d, 1931 . iim*jjmp1*klev,ndex3d) 1747 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1748 CALL histwrite_phy(nid_mth,"dtswr",itau_w,zx_tmp_fi3d) 1932 1749 c 1933 1750 cIM: 101003 : K/day ==> K/s 1934 1751 zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY 1935 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1936 CALL histwrite(nid_mth,"dtsw0",itau_w,zx_tmp_3d, 1937 . iim*jjmp1*klev,ndex3d) 1752 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1753 CALL histwrite_phy(nid_mth,"dtsw0",itau_w,zx_tmp_fi3d) 1938 1754 c 1939 1755 cIM: 101003 : K/day ==> K/s 1940 1756 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY 1941 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1942 CALL histwrite(nid_mth,"dtlwr",itau_w,zx_tmp_3d, 1943 . iim*jjmp1*klev,ndex3d) 1757 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1758 CALL histwrite_phy(nid_mth,"dtlwr",itau_w,zx_tmp_fi3d) 1944 1759 c 1945 1760 cIM: 101003 : K/day ==> K/s 1946 1761 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY 1947 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1948 CALL histwrite(nid_mth,"dtlw0",itau_w,zx_tmp_3d, 1949 . iim*jjmp1*klev,ndex3d) 1762 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1763 CALL histwrite_phy(nid_mth,"dtlw0",itau_w,zx_tmp_fi3d) 1950 1764 c 1951 1765 cIM: 101003 : deja en K/s 1952 1766 zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev) 1953 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1954 CALL histwrite(nid_mth,"dtec",itau_w,zx_tmp_3d, 1955 . iim*jjmp1*klev,ndex3d) 1767 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1768 CALL histwrite_phy(nid_mth,"dtec",itau_w,zx_tmp_fi3d) 1956 1769 c 1957 1770 zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys 1958 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1959 CALL histwrite(nid_mth,"duvdf",itau_w,zx_tmp_3d, 1960 . iim*jjmp1*klev,ndex3d) 1771 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1772 CALL histwrite_phy(nid_mth,"duvdf",itau_w,zx_tmp_fi3d) 1961 1773 c 1962 1774 zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys 1963 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1964 CALL histwrite(nid_mth,"dvvdf",itau_w,zx_tmp_3d, 1965 . iim*jjmp1*klev,ndex3d) 1775 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1776 CALL histwrite_phy(nid_mth,"dvvdf",itau_w,zx_tmp_fi3d) 1966 1777 c 1967 1778 IF (ok_orodr) THEN 1968 1779 zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys 1969 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1970 CALL histwrite(nid_mth,"duoro",itau_w,zx_tmp_3d, 1971 . iim*jjmp1*klev,ndex3d) 1780 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1781 CALL histwrite_phy(nid_mth,"duoro",itau_w,zx_tmp_fi3d) 1972 1782 c 1973 1783 zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys 1974 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1975 CALL histwrite(nid_mth,"dvoro",itau_w,zx_tmp_3d, 1976 . iim*jjmp1*klev,ndex3d) 1784 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1785 CALL histwrite_phy(nid_mth,"dvoro",itau_w,zx_tmp_fi3d) 1977 1786 c 1978 1787 ENDIF … … 1980 1789 IF (ok_orolf) THEN 1981 1790 zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys 1982 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1983 CALL histwrite(nid_mth,"dulif",itau_w,zx_tmp_3d, 1984 . iim*jjmp1*klev,ndex3d) 1791 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1792 CALL histwrite_phy(nid_mth,"dulif",itau_w,zx_tmp_fi3d) 1985 1793 c 1986 1794 zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys 1987 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1988 CALL histwrite(nid_mth,"dvlif",itau_w,zx_tmp_3d, 1989 . iim*jjmp1*klev,ndex3d) 1795 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1796 CALL histwrite_phy(nid_mth,"dvlif",itau_w,zx_tmp_fi3d) 1990 1797 ENDIF 1991 1798 C 1992 1799 IF (nqmax.GE.3) THEN 1993 1800 DO iq=3,nqmax 1994 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d) 1995 CALL histwrite(nid_mth,tnom(iq),itau_w,zx_tmp_3d, 1996 . iim*jjmp1*klev,ndex3d) 1801 cym CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d) 1802 CALL histwrite_phy(nid_mth,tnom(iq),itau_w,qx(:,:,iq)) 1997 1803 ENDDO 1998 1804 ENDIF … … 2003 1809 c 2004 1810 if (ok_sync) then 1811 c$OMP MASTER 2005 1812 call histsync(nid_mth) 1813 c$OMP END MASTER 2006 1814 endif 2007 1815 c -
LMDZ4/trunk/libf/phylmd/write_histmthNMC.h
r694 r766 13 13 IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN 14 14 ccc 15 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,2), 16 $ zx_tmp_NC) 17 CALL histwrite(nid_nmc,"temp",itau_w,zx_tmp_NC, 18 $ iim*jjmp1*nlevSTD,ndex3d) 15 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,2), 16 cym $ zx_tmp_NC) 17 CALL histwrite_phy(nid_nmc,"temp",itau_w,tsumSTD(:,:,2)) 19 18 c 20 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,2), 21 $ zx_tmp_NC) 22 CALL histwrite(nid_nmc,"phi",itau_w,zx_tmp_NC, 23 $ iim*jjmp1*nlevSTD,ndex3d) 19 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,2), 20 cym $ zx_tmp_NC) 21 CALL histwrite_phy(nid_nmc,"phi",itau_w,phisumSTD(:,:,2)) 24 22 c 25 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,2), 26 $ zx_tmp_NC) 27 CALL histwrite(nid_nmc,"q",itau_w,zx_tmp_NC, 28 $ iim*jjmp1*nlevSTD,ndex3d) 23 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,2), 24 cym $ zx_tmp_NC) 25 CALL histwrite_phy(nid_nmc,"q",itau_w,qsumSTD(:,:,2)) 29 26 c 30 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,2), 31 $ zx_tmp_NC) 32 CALL histwrite(nid_nmc,"rh",itau_w,zx_tmp_NC, 33 $ iim*jjmp1*nlevSTD,ndex3d) 27 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,2), 28 cym $ zx_tmp_NC) 29 CALL histwrite_phy(nid_nmc,"rh",itau_w,rhsumSTD(:,:,2)) 34 30 c 35 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,2), 36 $ zx_tmp_NC) 37 CALL histwrite(nid_nmc,"u",itau_w,zx_tmp_NC, 38 $ iim*jjmp1*nlevSTD,ndex3d) 31 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,2), 32 cym $ zx_tmp_NC) 33 CALL histwrite_phy(nid_nmc,"u",itau_w,usumSTD(:,:,2)) 39 34 c 40 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,2), 41 $ zx_tmp_NC) 42 CALL histwrite(nid_nmc,"v",itau_w,zx_tmp_NC, 43 $ iim*jjmp1*nlevSTD,ndex3d) 35 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,2), 36 cym $ zx_tmp_NC) 37 CALL histwrite_phy(nid_nmc,"v",itau_w,vsumSTD(:,:,2)) 44 38 ccc 45 39 ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN 46 40 ccc 47 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,3), 48 $ zx_tmp_NC) 49 CALL histwrite(nid_nmc,"temp",itau_w,zx_tmp_NC, 50 $ iim*jjmp1*nlevSTD,ndex3d) 41 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,3), 42 cym $ zx_tmp_NC) 43 CALL histwrite_phy(nid_nmc,"temp",itau_w,tsumSTD(:,:,3)) 51 44 c 52 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,3), 53 $ zx_tmp_NC) 54 CALL histwrite(nid_nmc,"phi",itau_w,zx_tmp_NC, 55 $ iim*jjmp1*nlevSTD,ndex3d) 45 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,3), 46 cym $ zx_tmp_NC) 47 CALL histwrite_phy(nid_nmc,"phi",itau_w,phisumSTD(:,:,3)) 56 48 c 57 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,3), 58 $ zx_tmp_NC) 59 CALL histwrite(nid_nmc,"q",itau_w,zx_tmp_NC, 60 $ iim*jjmp1*nlevSTD,ndex3d) 49 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,3), 50 cym $ zx_tmp_NC) 51 CALL histwrite_phy(nid_nmc,"q",itau_w,qsumSTD(:,:,3)) 61 52 c 62 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,3), 63 $ zx_tmp_NC) 64 CALL histwrite(nid_nmc,"rh",itau_w,zx_tmp_NC, 65 $ iim*jjmp1*nlevSTD,ndex3d) 53 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,3), 54 cym $ zx_tmp_NC) 55 CALL histwrite_phy(nid_nmc,"rh",itau_w,rhsumSTD(:,:,3)) 66 56 c 67 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,3), 68 $ zx_tmp_NC) 69 CALL histwrite(nid_nmc,"u",itau_w,zx_tmp_NC, 70 $ iim*jjmp1*nlevSTD,ndex3d) 57 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,3), 58 cym $ zx_tmp_NC) 59 CALL histwrite_phy(nid_nmc,"u",itau_w,usumSTD(:,:,3)) 71 60 c 72 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,3), 73 $ zx_tmp_NC) 74 CALL histwrite(nid_nmc,"v",itau_w,zx_tmp_NC, 75 $ iim*jjmp1*nlevSTD,ndex3d) 61 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,3), 62 cym $ zx_tmp_NC) 63 CALL histwrite_phy(nid_nmc,"v",itau_w,vsumSTD(:,:,3)) 76 64 c 77 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wsumSTD(:,:,3), 78 $ zx_tmp_NC) 79 CALL histwrite(nid_nmc,"w",itau_w,zx_tmp_NC, 80 $ iim*jjmp1*nlevSTD,ndex3d) 65 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wsumSTD(:,:,3), 66 cym $ zx_tmp_NC) 67 CALL histwrite_phy(nid_nmc,"w",itau_w,wsumSTD(:,:,3)) 81 68 c 82 69 DO k=1, nlevSTD … … 90 77 ENDDO !k=1, nlevSTD 91 78 c 92 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,zx_tmp_fiNC,zx_tmp_NC) 93 CALL histwrite(nid_nmc,"psbg",itau_w,zx_tmp_NC, 94 $ iim*jjmp1*nlevSTD,ndex3d) 79 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,zx_tmp_fiNC,zx_tmp_NC) 80 CALL histwrite_phy(nid_nmc,"psbg",itau_w,zx_tmp_fiNC) 95 81 c 96 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,uvsumSTD(:,:,3), 97 $ zx_tmp_NC) 98 CALL histwrite(nid_nmc,"uv",itau_w,zx_tmp_NC, 99 $ iim*jjmp1*nlevSTD,ndex3d) 82 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,uvsumSTD(:,:,3), 83 cym $ zx_tmp_NC) 84 CALL histwrite_phy(nid_nmc,"uv",itau_w,uvsumSTD(:,:,3)) 100 85 c 101 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vqsumSTD(:,:,3), 102 $ zx_tmp_NC) 103 CALL histwrite(nid_nmc,"vq",itau_w,zx_tmp_NC, 104 $ iim*jjmp1*nlevSTD,ndex3d) 86 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vqsumSTD(:,:,3), 87 cym $ zx_tmp_NC) 88 CALL histwrite_phy(nid_nmc,"vq",itau_w,vqsumSTD(:,:,3)) 105 89 c 106 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vTsumSTD(:,:,3), 107 $ zx_tmp_NC) 108 CALL histwrite(nid_nmc,"vT",itau_w,zx_tmp_NC, 109 $ iim*jjmp1*nlevSTD,ndex3d) 90 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vTsumSTD(:,:,3), 91 cym $ zx_tmp_NC) 92 CALL histwrite_phy(nid_nmc,"vT",itau_w,vTsumSTD(:,:,3)) 110 93 c 111 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1, wqsumSTD(:,:,3), 112 $ zx_tmp_NC) 113 CALL histwrite(nid_nmc,"wq",itau_w,zx_tmp_NC, 114 $ iim*jjmp1*nlevSTD,ndex3d) 94 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1, wqsumSTD(:,:,3), 95 cym $ zx_tmp_NC) 96 CALL histwrite_phy(nid_nmc,"wq",itau_w,wqsumSTD(:,:,3)) 115 97 c 116 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vphisumSTD(:,:,3), 117 $ zx_tmp_NC) 118 CALL histwrite(nid_nmc,"vphi",itau_w,zx_tmp_NC, 119 $ iim*jjmp1*nlevSTD,ndex3d) 98 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vphisumSTD(:,:,3), 99 cym $ zx_tmp_NC) 100 CALL histwrite_phy(nid_nmc,"vphi",itau_w,vphisumSTD(:,:,3)) 120 101 c 121 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wTsumSTD(:,:,3), 122 $ zx_tmp_NC) 123 CALL histwrite(nid_nmc,"wT",itau_w,zx_tmp_NC, 124 $ iim*jjmp1*nlevSTD,ndex3d) 102 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wTsumSTD(:,:,3), 103 cym $ zx_tmp_NC) 104 CALL histwrite_phy(nid_nmc,"wT",itau_w,wTsumSTD(:,:,3)) 125 105 c 126 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,u2sumSTD(:,:,3), 127 $ zx_tmp_NC) 128 CALL histwrite(nid_nmc,"uxu",itau_w,zx_tmp_NC, 129 $ iim*jjmp1*nlevSTD,ndex3d) 106 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,u2sumSTD(:,:,3), 107 cym $ zx_tmp_NC) 108 CALL histwrite_phy(nid_nmc,"uxu",itau_w,u2sumSTD(:,:,3)) 130 109 c 131 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,v2sumSTD(:,:,3), 132 $ zx_tmp_NC) 133 CALL histwrite(nid_nmc,"vxv",itau_w,zx_tmp_NC, 134 $ iim*jjmp1*nlevSTD,ndex3d) 110 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,v2sumSTD(:,:,3), 111 cym $ zx_tmp_NC) 112 CALL histwrite_phy(nid_nmc,"vxv",itau_w,v2sumSTD(:,:,3)) 135 113 c 136 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,T2sumSTD(:,:,3), 137 $ zx_tmp_NC) 138 CALL histwrite(nid_nmc,"TxT",itau_w,zx_tmp_NC, 139 $ iim*jjmp1*nlevSTD,ndex3d) 114 cym CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,T2sumSTD(:,:,3), 115 cym $ zx_tmp_NC) 116 CALL histwrite_phy(nid_nmc,"TxT",itau_w,T2sumSTD(:,:,3)) 140 117 c 141 118 ENDIF !type_run 142 119 c 143 120 if (ok_sync) then 121 c$OMP MASTER 144 122 call histsync(nid_nmc) 123 c$OMP END MASTER 145 124 endif 146 125 -
LMDZ4/trunk/libf/phylmd/write_histrac.h
r684 r766 2 2 ! $Header$ 3 3 ! 4 #ifndef INCA 4 5 ndex = 0 5 6 ndex2d = 0 … … 8 9 itau_w = itau_phy + nstep 9 10 10 CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d)11 CALL histwrite (nid_tra,"phis",itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)11 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d) 12 CALL histwrite_phy(nid_tra,"phis",itau_w,pphis) 12 13 C 13 CALL gr_fi_ecrit(1,klon,iim,jjm+1,airephy,zx_tmp_2d) 14 CALL histwrite(nid_tra,"aire",itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d) 15 #ifdef INCA 16 CALL gr_fi_ecrit(1, klon,iim,jjm+1, ps,zx_tmp_2d) 17 CALL histwrite(nid_tra,"ps",itau_w,zx_tmp_2d, 18 . iim*(jjm+1),ndex2d) 19 20 CALL gr_fi_ecrit(1, klon,iim,jjm+1, ptrop,zx_tmp_2d) 21 CALL histwrite(nid_tra,"ptrop",itau_w,zx_tmp_2d, 22 . iim*(jjm+1),ndex2d) 23 24 C 3d FIELDS 25 26 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,t_seri, zx_tmp_3d) 27 CALL histwrite(nid_tra,"temp",itau_w,zx_tmp_3d, 28 . iim*(jjm+1)*klev,ndex3d) 29 30 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,u, zx_tmp_3d) 31 CALL histwrite(nid_tra,"u",itau_w,zx_tmp_3d, 32 . iim*(jjm+1)*klev,ndex3d) 33 34 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,v, zx_tmp_3d) 35 CALL histwrite(nid_tra,"v",itau_w,zx_tmp_3d, 36 . iim*(jjm+1)*klev,ndex3d) 37 38 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,sh, zx_tmp_3d) 39 CALL histwrite(nid_tra,"h2o",itau_w,zx_tmp_3d, 40 . iim*(jjm+1)*klev,ndex3d) 41 42 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pdel, zx_tmp_3d) 43 CALL histwrite(nid_tra,"pdel",itau_w,zx_tmp_3d, 44 . iim*(jjm+1)*klev,ndex3d) 45 46 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pplay, zx_tmp_3d) 47 CALL histwrite(nid_tra,"pmid",itau_w,zx_tmp_3d, 48 . iim*(jjm+1)*klev,ndex3d) 49 50 ! Ajout Anne 51 #ifdef INCA_AER 52 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,airm, zx_tmp_3d) 53 CALL histwrite(nid_tra,"airm",itau_w,zx_tmp_3d, 54 . iim*(jjm+1)*klev,ndex) 55 #endif 56 57 ! Fin ajout Anne 58 59 #ifdef INCA 60 #ifdef INCAINFO 61 #ifdef INCA_NMHC 62 DO it=1, phtcnt 63 WRITE(str2,'(i2.2)') it 64 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,it), 65 . zx_tmp_3d) 66 CALL histwrite(nid_tra,"j"//str2,itau_w,zx_tmp_3d, 67 . iim*(jjm+1)*klev,ndex3d) 68 ENDDO 69 70 DO it=1, hetcnt 71 WRITE(str2,'(i2.2)') it 72 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hrates(1,1,it), 73 . zx_tmp_3d) 74 CALL histwrite(nid_tra,"w"//str2,itau_w,zx_tmp_3d, 75 . iim*(jjm+1)*klev,ndex3d) 76 ENDDO 77 78 DO it=1, extcnt 79 WRITE(str2,'(i2.2)') it 80 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,extflx(1,1,it), 81 . zx_tmp_3d) 82 CALL histwrite(nid_tra,"ext"//str2,itau_w,zx_tmp_3d, 83 . iim*(jjm+1)*klev,ndex3d) 84 ENDDO 85 #endif 86 #ifdef INCA_CH4 87 DO it=1, phtcnt 88 WRITE(str2,'(i2.2)') it 89 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,it), 90 . zx_tmp_3d) 91 CALL histwrite(nid_tra,"j"//str2,itau_w,zx_tmp_3d, 92 . iim*(jjm+1)*klev,ndex3d) 93 ENDDO 94 95 DO it=1, hetcnt 96 WRITE(str2,'(i2.2)') it 97 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hrates(1,1,it), 98 . zx_tmp_3d) 99 CALL histwrite(nid_tra,"w"//str2,itau_w,zx_tmp_3d, 100 . iim*(jjm+1)*klev,ndex3d) 101 ENDDO 102 103 DO it=1, extcnt 104 WRITE(str2,'(i2.2)') it 105 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,extflx(1,1,it), 106 . zx_tmp_3d) 107 CALL histwrite(nid_tra,"ext"//str2,itau_w,zx_tmp_3d, 108 . iim*(jjm+1)*klev,ndex3d) 109 ENDDO 110 #endif 111 112 DO it=1, nfs 113 WRITE(str2,'(i2.2)') it 114 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,invariants(1,1,it), 115 . zx_tmp_3d) 116 CALL histwrite(nid_tra,"INV"//str2,itau_w,zx_tmp_3d, 117 . iim*(jjm+1)*klev,ndex3d) 118 ENDDO 119 #else 120 #ifdef INCA_NMHC 121 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,2), 122 . zx_tmp_3d) 123 CALL histwrite(nid_tra,"jO3",itau_w,zx_tmp_3d, 124 . iim*(jjm+1)*klev,ndex3d) 125 126 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,4), 127 . zx_tmp_3d) 128 CALL histwrite(nid_tra,"jNO2",itau_w,zx_tmp_3d, 129 . iim*(jjm+1)*klev,ndex3d) 130 131 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,13), 132 . zx_tmp_3d) 133 CALL histwrite(nid_tra,"jH2O2",itau_w,zx_tmp_3d, 134 . iim*(jjm+1)*klev,ndex3d) 135 136 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hrates(1,1,1), 137 . zx_tmp_3d) 138 CALL histwrite(nid_tra,"wHNO3",itau_w,zx_tmp_3d, 139 . iim*(jjm+1)*klev,ndex3d) 140 141 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,krates(1,1,1), 142 . zx_tmp_3d) 143 CALL histwrite(nid_tra,"kN2O5",itau_w,zx_tmp_3d, 144 . iim*(jjm+1)*klev,ndex3d) 145 146 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,extflx(1,1,1), 147 . zx_tmp_3d) 148 CALL histwrite(nid_tra,"LghtNO",itau_w,zx_tmp_3d, 149 . iim*(jjm+1)*klev,ndex3d) 150 #endif 151 #ifdef INCA_CH4 152 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,2), 153 . zx_tmp_3d) 154 CALL histwrite(nid_tra,"jO3",itau_w,zx_tmp_3d, 155 . iim*(jjm+1)*klev,ndex3d) 156 157 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,4), 158 . zx_tmp_3d) 159 CALL histwrite(nid_tra,"jNO2",itau_w,zx_tmp_3d, 160 . iim*(jjm+1)*klev,ndex3d) 161 162 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,jrates(1,1,13), 163 . zx_tmp_3d) 164 CALL histwrite(nid_tra,"jH2O2",itau_w,zx_tmp_3d, 165 . iim*(jjm+1)*klev,ndex3d) 166 167 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hrates(1,1,1), 168 . zx_tmp_3d) 169 CALL histwrite(nid_tra,"wHNO3",itau_w,zx_tmp_3d, 170 . iim*(jjm+1)*klev,ndex3d) 171 172 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,krates(1,1,1), 173 . zx_tmp_3d) 174 CALL histwrite(nid_tra,"kN2O5",itau_w,zx_tmp_3d, 175 . iim*(jjm+1)*klev,ndex3d) 176 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,extflx(1,1,1), 177 . zx_tmp_3d) 178 CALL histwrite(nid_tra,"LghtNO",itau_w,zx_tmp_3d, 179 . iim*(jjm+1)*klev,ndex3d) 180 #endif 181 #endif 182 ! DO it=1, grpcnt 183 ! 184 ! CALL gr_fi_ecrit(klev,klon,iim,jjm+1,nas(1,1,it),zx_tmp_3d) 185 ! zx_tmp_3d = zx_tmp_3d * dry_mass / nadv_mass(it) 186 ! CALL histwrite(nid_tra,grpsym(it),itau_w,zx_tmp_3d, 187 ! . iim*(jjm+1)*klev,ndex3d) 188 ! ENDDO 189 #endif 190 191 #ifdef INCA_AER 192 193 it = id_CIDUSTM 194 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,scavcoef_st(1,1,it), 195 . zx_tmp_3d) 196 CALL histwrite(nid_tra2,"scavcoef_st",itau_w,zx_tmp_3d, 197 . iim*(jjm+1)*klev,ndex3d) 198 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,scavcoef_cv(1,1,it), 199 . zx_tmp_3d) 200 CALL histwrite(nid_tra2,"scavcoef_cv",itau_w,zx_tmp_3d, 201 . iim*(jjm+1)*klev,ndex3d) 202 203 CALL gr_fi_ecrit(1, klon,iim,jjm+1,angst(1),zx_tmp_2d) 204 CALL histwrite(nid_tra2,"AngstroemComp",itau_w,zx_tmp_2d, 205 . iim*(jjm+1),ndex2d) 206 207 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,totaerh2o(1,1), zx_tmp_3d) 208 CALL histwrite(nid_tra2,"TOTAERH2O",itau_w,zx_tmp_3d, 209 . iim*(jjm+1)*klev,ndex3d) 210 211 #endif 212 #endif 14 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,airephy,zx_tmp_2d) 15 CALL histwrite_phy(nid_tra,"aire",itau_w,airephy) 213 16 214 17 DO it=1,nqmax 215 18 C champs 2D 216 #ifdef INCA217 IF ( prt_flag_ts(it) == 0 ) CYCLE218 219 CALL gr_fi_ecrit(1, klon,iim,jjm+1, eflux(1,it),zx_tmp_2d)220 CALL histwrite(nid_tra,"Emi_"//solsym(it),itau_w,zx_tmp_2d,221 . iim*(jjm+1),ndex2d)222 223 CALL gr_fi_ecrit(1, klon,iim,jjm+1, dvel(1,it),zx_tmp_2d)224 CALL histwrite(nid_tra,"Dep_"//solsym(it),itau_w,zx_tmp_2d,225 . iim*(jjm+1),ndex2d)226 #ifdef INCA_AER227 call diag(airephy,tr_seri,.false.)228 229 CALL gr_fi_ecrit(1, klon,iim,jjm+1,dflux(1,it),zx_tmp_2d)230 CALL histwrite(nid_tra2,"Dry_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)231 232 IF ((it .ge. trmx) .and. (it .le. trnx)) then233 CALL gr_fi_ecrit(1, klon,iim,jjm+1,sflux(1,it),zx_tmp_2d)234 CALL histwrite(nid_tra2,"Sed_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)235 236 CALL gr_fi_ecrit(1, klon,iim,jjm+1,wflux(1,it),zx_tmp_2d)237 CALL histwrite(nid_tra2,"Wet_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)238 CALL gr_fi_ecrit(1, klon,iim,jjm+1,wsflux(1,it),zx_tmp_2d)239 CALL histwrite(nid_tra2,"WetST_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)240 CALL gr_fi_ecrit(1, klon,iim,jjm+1,wcflux(1,it),zx_tmp_2d)241 CALL histwrite(nid_tra2,"WetCV_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)242 243 CALL gr_fi_ecrit(klev, klon,iim,jjm+1,eflux_alt(1,1,it),zx_tmp_3d)244 CALL histwrite(nid_tra2,"Emi_alt_"//solsym(it),itau_w,zx_tmp_3d,iim*(jjm+1)*klev,ndex3d)245 246 CALL gr_fi_ecrit(1, klon,iim,jjm+1,aload(1,it),zx_tmp_2d)247 CALL histwrite(nid_tra2,"Load_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)248 CALL histwrite(nid_tra3,"Inst_Load_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)249 250 CALL gr_fi_ecrit(1, klon,iim,jjm+1,sconc(1,it),zx_tmp_2d)251 CALL histwrite(nid_tra2,"SConc_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)252 253 do la=1,las254 CALL gr_fi_ecrit(1, klon,iim,jjm+1,tausum(1,la,it),zx_tmp_2d)255 CALL histwrite(nid_tra2,"OD"//cla(la)//"_"//solsym(it),itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)256 CALL gr_fi_ecrit(klev, klon,iim,jjm+1,tau(1,1,la,it),zx_tmp_3d)257 CALL histwrite(nid_tra2,"OD3D"//cla(la)//"_"//solsym(it),itau_w,zx_tmp_3d,iim*(jjm+1)*klev,ndex3d)258 enddo259 260 CALL gr_fi_ecrit(klev, klon,iim,jjm+1,md(1,1,it),zx_tmp_3d)261 CALL histwrite(nid_tra2,"MD_"//solsym(it),itau_w,zx_tmp_3d,iim*(jjm+1)*klev,ndex3d)262 263 CALL gr_fi_ecrit(klev, klon,iim,jjm+1,mdw(1,1,it),zx_tmp_3d)264 CALL histwrite(nid_tra2,"MDW_"//solsym(it),itau_w,zx_tmp_3d,iim*(jjm+1)*klev,ndex3d)265 266 CALL gr_fi_ecrit(klev, klon,iim,jjm+1,cload(1,1,it),zx_tmp_3d)267 CALL histwrite(nid_tra2,"CLOAD_"//solsym(it),itau_w,zx_tmp_3d,iim*(jjm+1)*klev,ndex3d)268 19 269 20 270 endif 271 272 273 #endif 274 C champs 3D 275 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,tr_seri(1,1,it),zx_tmp_3d) 276 277 !Prefer vmr to mmr for transported species 278 if( adv_mass(it) /= 0. ) then 279 #ifdef INCA_AER 280 if (it .lt. trmx) then 281 #endif 282 zx_tmp_3d = zx_tmp_3d * dry_mass / adv_mass(it) 283 #ifdef INCA_AER 284 endif 285 #endif 286 else 287 #ifdef INCA_CH4 288 if ( solsym(it) == 'OX' ) then 289 zx_tmp_3d = zx_tmp_3d * dry_mass / nadv_mass(id_o3) 290 end if 291 #endif 292 #ifdef INCA_NMHC 293 if ( solsym(it) == 'OX' ) then 294 zx_tmp_3d = zx_tmp_3d * dry_mass / nadv_mass(id_o3) 295 end if 296 #endif 297 end if 298 299 CALL histwrite(nid_tra,solsym(it),itau_w,zx_tmp_3d, 300 . iim*(jjm+1)*klev,ndex3d) 301 #else 302 303 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,tr_seri(1,1,it),zx_tmp_3d) 304 CALL histwrite(nid_tra,tnom(it+2),itau_w,zx_tmp_3d, 305 . iim*(jjm+1)*klev,ndex3d) 21 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,tr_seri(1,1,it),zx_tmp_3d) 22 CALL histwrite_phy(nid_tra,tnom(it+2),itau_w,tr_seri(:,:,it)) 306 23 if (lessivage) THEN 307 308 CALL histwrite (nid_tra,"fl"//tnom(it+2),itau_w,zx_tmp_3d,309 . iim*(jjm+1)*klev,ndex3d)24 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,flestottr(1,1,it),zx_tmp_3d) 25 CALL histwrite_phy(nid_tra,"fl"//tnom(it+2),itau_w, 26 . flestottr(:,:,it)) 310 27 endif 311 28 312 29 c----Olivia 313 314 CALL histwrite (nid_tra,"d_tr_th_"//tnom(it+2),itau_w,zx_tmp_3d,315 . iim*(jjm+1)*klev,ndex3d)316 317 CALL histwrite (nid_tra,"d_tr_cv_"//tnom(it+2),itau_w,zx_tmp_3d,318 . iim*(jjm+1)*klev,ndex3d)319 320 CALL histwrite (nid_tra,"d_tr_cl_"//tnom(it+2),itau_w,zx_tmp_3d,321 . iim*(jjm+1)*klev,ndex3d)30 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_th(1,1,it),zx_tmp_3d) 31 CALL histwrite_phy(nid_tra,"d_tr_th_"//tnom(it+2),itau_w, 32 . d_tr_th(:,:,it)) 33 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_cv(1,1,it),zx_tmp_3d) 34 CALL histwrite_phy(nid_tra,"d_tr_cv_"//tnom(it+2),itau_w, 35 . d_tr_cv(:,:,it)) 36 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,d_tr_cl(1,1,it),zx_tmp_3d) 37 CALL histwrite_phy(nid_tra,"d_tr_cl_"//tnom(it+2),itau_w, 38 . d_tr_cl(:,:,it)) 322 39 c---fin Olivia 323 40 324 #endif325 41 ENDDO 326 42 327 #ifdef INCA328 !#ifdef INCA_CH4329 CALL gr_fi_ecrit(1, klon,iim,jjm+1, o3_col(1), zx_tmp_2d)330 CALL histwrite(nid_tra,"O3_column",itau_w,zx_tmp_2d,331 . iim*(jjm+1),ndex2d)332 43 333 CALL gr_fi_ecrit(1, klon,iim,jjm+1, co_col(1), zx_tmp_2d) 334 CALL histwrite(nid_tra,"CO_column",itau_w,zx_tmp_2d, 335 . iim*(jjm+1),ndex2d)44 C abder 45 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,yu1,zx_tmp_2d) 46 CALL histwrite_phy(nid_tra,"pyu1",itau_w,yu1) 336 47 337 CALL gr_fi_ecrit(1, klon,iim,jjm+1, ch4_col(1), zx_tmp_2d) 338 CALL histwrite(nid_tra,"CH4_column",itau_w,zx_tmp_2d, 339 . iim*(jjm+1),ndex2d) 48 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,yv1,zx_tmp_2d) 49 CALL histwrite_phy(nid_tra,"pyv1",itau_w,yv1) 340 50 341 CALL gr_fi_ecrit(1, klon,iim,jjm+1, no2_col(1), zx_tmp_2d) 342 CALL histwrite(nid_tra,"NO2_column",itau_w,zx_tmp_2d, 343 . iim*(jjm+1),ndex2d) 51 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol1,zx_tmp_2d) 52 CALL histwrite_phy(nid_tra,"ftsol1",itau_w,pftsol1) 344 53 345 CALL gr_fi_ecrit(1, klon,iim,jjm+1, o3_st_flx(1), zx_tmp_2d) 346 CALL histwrite(nid_tra,"O3_ste",itau_w,zx_tmp_2d, 347 . iim*(jjm+1),ndex2d) 54 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol2,zx_tmp_2d) 55 CALL histwrite_phy(nid_tra,"ftsol2",itau_w,pftsol2) 348 56 349 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,o3_prod(1,1), 350 . zx_tmp_3d) 351 CALL histwrite(nid_tra,"O3_prod",itau_w,zx_tmp_3d, 352 . iim*(jjm+1)*klev,ndex3d) 57 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol3,zx_tmp_2d) 58 CALL histwrite_phy(nid_tra,"ftsol3",itau_w,pftsol3) 353 59 354 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,o3_loss(1,1), 355 . zx_tmp_3d) 356 CALL histwrite(nid_tra,"O3_loss",itau_w,zx_tmp_3d, 357 . iim*(jjm+1)*klev,ndex3d) 358 ! Ajout Anne 359 #ifdef INCA_AER 360 ! for sulfur cycle 60 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol4,zx_tmp_2d) 61 CALL histwrite_phy(nid_tra,"ftsol4",itau_w,pftsol4) 361 62 362 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,SO2_p_dmsoh(1,1), 363 . zx_tmp_3d) 364 CALL histwrite(nid_tra,"SO2_p_dmsoh",itau_w,zx_tmp_3d, 365 . iim*(jjm+1)*klev,ndex) 63 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf1,zx_tmp_2d) 64 CALL histwrite_phy(nid_tra,"psrf1",itau_w,ppsrf1) 366 65 367 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,SO2_p_dmsno3(1,1), 368 . zx_tmp_3d) 369 CALL histwrite(nid_tra,"SO2_p_dmsno3",itau_w,zx_tmp_3d, 370 . iim*(jjm+1)*klev,ndex) 66 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf2,zx_tmp_2d) 67 CALL histwrite_phy(nid_tra,"psrf2",itau_w,ppsrf2) 371 68 372 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,SO2_p_h2soh(1,1), 373 . zx_tmp_3d) 374 CALL histwrite(nid_tra,"SO2_p_h2soh",itau_w,zx_tmp_3d, 375 . iim*(jjm+1)*klev,ndex) 69 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf3,zx_tmp_2d) 70 CALL histwrite_phy(nid_tra,"psrf3",itau_w,ppsrf3) 376 71 377 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,SO2_p_dmsooh(1,1), 378 . zx_tmp_3d)379 CALL histwrite(nid_tra,"SO2_p_dmsooh",itau_w,zx_tmp_3d, 380 . iim*(jjm+1)*klev,ndex)72 cym CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf4,zx_tmp_2d) 73 CALL histwrite_phy(nid_tra,"psrf4",itau_w,ppsrf4) 74 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pplay,zx_tmp_3d) 75 CALL histwrite_phy(nid_tra,"pplay",itau_w,pplay) 381 76 382 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,DMSO_p_dmsoh(1,1), 383 . zx_tmp_3d) 384 CALL histwrite(nid_tra,"DMSO_p_dmsoh",itau_w,zx_tmp_3d, 385 . iim*(jjm+1)*klev,ndex) 386 387 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,ASMSAM_p_dmsooh(1,1), 388 . zx_tmp_3d) 389 CALL histwrite(nid_tra,"ASMSAM_p_dmsooh",itau_w,zx_tmp_3d, 390 . iim*(jjm+1)*klev,ndex) 391 392 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,ASSO4M_p_so2oh(1,1), 393 . zx_tmp_3d) 394 CALL histwrite(nid_tra,"ASSO4M_p_so2oh",itau_w,zx_tmp_3d, 395 . iim*(jjm+1)*klev,ndex) 396 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,ASSO4M_p_so2h2o2(1,1), 397 . zx_tmp_3d) 398 CALL histwrite(nid_tra,"ASSO4M_p_so2h2o2",itau_w,zx_tmp_3d, 399 . iim*(jjm+1)*klev,ndex) 400 401 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,ASSO4M_p_so2o3(1,1), 402 . zx_tmp_3d) 403 CALL histwrite(nid_tra,"ASSO4M_p_so2o3",itau_w,zx_tmp_3d, 404 . iim*(jjm+1)*klev,ndex) 405 406 c closing the sulfur budget 407 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, wet3d_so2(1,1), zx_tmp_3d) 408 CALL histwrite(nid_tra,"Wet3D_SO2",itau_w,zx_tmp_3d, 409 . iim*(jjm+1)*klev,ndex) 410 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, wet3d_dms(1,1), zx_tmp_3d) 411 CALL histwrite(nid_tra,"Wet3D_DMS",itau_w,zx_tmp_3d, 412 . iim*(jjm+1)*klev,ndex) 413 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, wet3d_hno3(1,1), zx_tmp_3d) 414 CALL histwrite(nid_tra,"Wet3D_HNO3",itau_w,zx_tmp_3d, 415 . iim*(jjm+1)*klev,ndex) 416 CALL gr_fi_ecrit(klev,klon,iim,jjm+1, wet3d_h2o2(1,1), zx_tmp_3d) 417 CALL histwrite(nid_tra,"Wet3D_H2O2",itau_w,zx_tmp_3d, 418 . iim*(jjm+1)*klev,ndex) 77 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,t_seri,zx_tmp_3d) 78 CALL histwrite_phy(nid_tra,"t",itau_w,t_seri) 79 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pmfu,zx_tmp_3d) 80 CALL histwrite_phy(nid_tra,"mfu",itau_w,pmfu) 81 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pmfd,zx_tmp_3d) 82 CALL histwrite_phy(nid_tra,"mfd",itau_w,pmfd) 83 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pen_u,zx_tmp_3d) 84 CALL histwrite_phy(nid_tra,"en_u",itau_w,pen_u) 85 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pen_d,zx_tmp_3d) 86 CALL histwrite_phy(nid_tra,"en_d",itau_w,pen_d) 87 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pde_d,zx_tmp_3d) 88 CALL histwrite_phy(nid_tra,"de_d",itau_w,pde_d) 89 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pde_u,zx_tmp_3d) 90 CALL histwrite_phy(nid_tra,"de_u",itau_w,pde_u) 91 cym CALL gr_fi_ecrit(klev,klon,iim,jjm+1,coefh,zx_tmp_3d) 92 CALL histwrite_phy(nid_tra,"coefh",itau_w,coefh) 419 93 420 94 421 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,PH_HIST(1,1), 422 . zx_tmp_3d) 423 CALL histwrite(nid_tra,"PH_HIST",itau_w,zx_tmp_3d, 424 . iim*(jjm+1)*klev,ndex) 425 #endif 95 c abder 426 96 427 #ifdef INCA_CH4 428 DO it=1, grpcnt 429 430 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,nas(1,1,it),zx_tmp_3d) 431 zx_tmp_3d = zx_tmp_3d * dry_mass / nadv_mass(it) 432 CALL histwrite(nid_tra,grpsym(it),itau_w,zx_tmp_3d, 433 . iim*(jjm+1)*klev,ndex3d) 434 ENDDO 97 if (ok_sync) then 98 c$OMP MASTER 99 call histsync(nid_tra) 100 c$OMP END MASTER 101 endif 435 102 436 103 #endif 437 104 438 105 439 #ifdef INCA_NMHC440 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,CO2_basprod(1,1),441 . zx_tmp_3d)442 CALL histwrite(nid_tra,"CO2_basprod",itau_w,zx_tmp_3d,443 . iim*(jjm+1)*klev,ndex)444 106 445 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,CO2_nmhcprod(1,1),446 . zx_tmp_3d)447 CALL histwrite(nid_tra,"CO2_nmhcprod",itau_w,zx_tmp_3d,448 . iim*(jjm+1)*klev,ndex)449 450 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,CO2_radicalprod(1,1),451 . zx_tmp_3d)452 CALL histwrite(nid_tra,"CO2_radicalprod",itau_w,zx_tmp_3d,453 . iim*(jjm+1)*klev,ndex)454 455 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hno3_prod(1,1),456 . zx_tmp_3d)457 CALL histwrite(nid_tra,"HNO3_prod",itau_w,zx_tmp_3d,458 . iim*(jjm+1)*klev,ndex)459 460 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,hno3_loss(1,1),461 . zx_tmp_3d)462 CALL histwrite(nid_tra,"HNO3_loss",itau_w,zx_tmp_3d,463 . iim*(jjm+1)*klev,ndex)464 465 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,co_prod(1,1),466 . zx_tmp_3d)467 CALL histwrite(nid_tra,"CO_prod",itau_w,zx_tmp_3d,468 . iim*(jjm+1)*klev,ndex)469 470 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,co_loss(1,1),471 . zx_tmp_3d)472 CALL histwrite(nid_tra,"CO_loss",itau_w,zx_tmp_3d,473 . iim*(jjm+1)*klev,ndex)474 475 DO it=1, grpcnt476 477 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,nas(1,1,it),zx_tmp_3d)478 zx_tmp_3d = zx_tmp_3d * dry_mass / nadv_mass(it)479 CALL histwrite(nid_tra,grpsym(it),itau_w,zx_tmp_3d,480 . iim*(jjm+1)*klev,ndex3d)481 ENDDO482 483 484 #endif485 486 ! Fin ajout Anne487 488 ! ... Special section for daytime averaging489 ! CALL gr_fi_ecrit(klev,klon,iim,jjm+1,day_cnt(1,1),490 ! . zx_tmp_3d)491 ! CALL histwrite(nid_tra,"day_cnt",itau_w,zx_tmp_3d,492 ! . iim*(jjm+1)*klev,ndex3d)493 ! CALL gr_fi_ecrit(klev,klon,iim,jjm+1,no_daytime(1,1),494 ! . zx_tmp_3d)495 ! CALL histwrite(nid_tra,"NO_day",itau_w,zx_tmp_3d,496 ! . iim*(jjm+1)*klev,ndex3d)497 498 !#endif499 #else500 501 C abder502 CALL gr_fi_ecrit(1,klon,iim,jjm+1,yu1,zx_tmp_2d)503 CALL histwrite(nid_tra,"pyu1",itau_w,zx_tmp_2d,504 s iim*(jjm+1),ndex2d)505 506 CALL gr_fi_ecrit(1,klon,iim,jjm+1,yv1,zx_tmp_2d)507 CALL histwrite(nid_tra,"pyv1",itau_w,zx_tmp_2d,508 s iim*(jjm+1),ndex2d)509 510 CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol1,zx_tmp_2d)511 CALL histwrite(nid_tra,"ftsol1",itau_w,zx_tmp_2d,512 s iim*(jjm+1),ndex2d)513 514 CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol2,zx_tmp_2d)515 CALL histwrite(nid_tra,"ftsol2",itau_w,zx_tmp_2d,516 s iim*(jjm+1),ndex2d)517 518 CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol3,zx_tmp_2d)519 CALL histwrite(nid_tra,"ftsol3",itau_w,zx_tmp_2d,520 s iim*(jjm+1),ndex2d)521 522 CALL gr_fi_ecrit(1,klon,iim,jjm+1,pftsol4,zx_tmp_2d)523 CALL histwrite(nid_tra,"ftsol4",itau_w,zx_tmp_2d,524 s iim*(jjm+1),ndex2d)525 526 CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf1,zx_tmp_2d)527 CALL histwrite(nid_tra,"psrf1",itau_w,zx_tmp_2d,528 s iim*(jjm+1),ndex2d)529 530 CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf2,zx_tmp_2d)531 CALL histwrite(nid_tra,"psrf2",itau_w,zx_tmp_2d,532 s iim*(jjm+1),ndex2d)533 534 CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf3,zx_tmp_2d)535 CALL histwrite(nid_tra,"psrf3",itau_w,zx_tmp_2d,536 s iim*(jjm+1),ndex2d)537 538 CALL gr_fi_ecrit(1,klon,iim,jjm+1,ppsrf4,zx_tmp_2d)539 CALL histwrite(nid_tra,"psrf4",itau_w,zx_tmp_2d,540 s iim*(jjm+1),ndex2d)541 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pplay,zx_tmp_3d)542 CALL histwrite(nid_tra,"pplay",itau_w,zx_tmp_3d,543 . iim*(jjm+1)*klev,ndex3d)544 545 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,t_seri,zx_tmp_3d)546 CALL histwrite(nid_tra,"t",itau_w,zx_tmp_3d,547 . iim*(jjm+1)*klev,ndex3d)548 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pmfu,zx_tmp_3d)549 CALL histwrite(nid_tra,"mfu",itau_w,zx_tmp_3d,550 . iim*(jjm+1)*klev,ndex3d)551 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pmfd,zx_tmp_3d)552 CALL histwrite(nid_tra,"mfd",itau_w,zx_tmp_3d,553 . iim*(jjm+1)*klev,ndex3d)554 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pen_u,zx_tmp_3d)555 CALL histwrite(nid_tra,"en_u",itau_w,zx_tmp_3d,556 . iim*(jjm+1)*klev,ndex3d)557 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pen_d,zx_tmp_3d)558 CALL histwrite(nid_tra,"en_d",itau_w,zx_tmp_3d,559 . iim*(jjm+1)*klev,ndex3d)560 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pde_d,zx_tmp_3d)561 CALL histwrite(nid_tra,"de_d",itau_w,zx_tmp_3d,562 . iim*(jjm+1)*klev,ndex3d)563 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,pde_u,zx_tmp_3d)564 CALL histwrite(nid_tra,"de_u",itau_w,zx_tmp_3d,565 . iim*(jjm+1)*klev,ndex3d)566 CALL gr_fi_ecrit(klev,klon,iim,jjm+1,coefh,zx_tmp_3d)567 CALL histwrite(nid_tra,"coefh",itau_w,zx_tmp_3d,568 . iim*(jjm+1)*klev,ndex3d)569 570 571 c abder572 #endif573 574 if (ok_sync) then575 call histsync(nid_tra)576 #ifdef INCA_AER577 call histsync(nid_tra2)578 call histsync(nid_tra3)579 #endif580 endif581 582 -
LMDZ4/trunk/libf/phylmd/write_paramLMDZ_phy.h
r719 r766 1 1 c 2 IF (monocpu) THEN 3 2 4 ndex2d = 0 3 5 itau_w = itau_phy + itap … … 301 303 . zx_tmp_2d,iim*jjmp1,ndex2d) 302 304 c 303 zx_tmp_2d(1:iim,1:jjmp1)= ecrit_ins305 zx_tmp_2d(1:iim,1:jjmp1)=FLOAT(ecrit_ins) 304 306 CALL histwrite(nid_ctesGCM,"ecrit_ins",itau_w, 305 307 . zx_tmp_2d,iim*jjmp1,ndex2d) 306 308 c 307 zx_tmp_2d(1:iim,1:jjmp1)= ecrit_hf309 zx_tmp_2d(1:iim,1:jjmp1)=FLOAT(ecrit_hf) 308 310 CALL histwrite(nid_ctesGCM,"ecrit_hf",itau_w, 309 311 . zx_tmp_2d,iim*jjmp1,ndex2d) 310 312 c 311 zx_tmp_2d(1:iim,1:jjmp1)= ecrit_day313 zx_tmp_2d(1:iim,1:jjmp1)=FLOAT(ecrit_day) 312 314 CALL histwrite(nid_ctesGCM,"ecrit_day",itau_w, 313 315 . zx_tmp_2d,iim*jjmp1,ndex2d) 314 316 c 315 zx_tmp_2d(1:iim,1:jjmp1)= ecrit_mth317 zx_tmp_2d(1:iim,1:jjmp1)=FLOAT(ecrit_mth) 316 318 CALL histwrite(nid_ctesGCM,"ecrit_mth",itau_w, 317 319 . zx_tmp_2d,iim*jjmp1,ndex2d) 318 320 c 319 zx_tmp_2d(1:iim,1:jjmp1)= ecrit_tra321 zx_tmp_2d(1:iim,1:jjmp1)=FLOAT(ecrit_tra) 320 322 CALL histwrite(nid_ctesGCM,"ecrit_tra",itau_w, 321 323 . zx_tmp_2d,iim*jjmp1,ndex2d) 322 324 c 323 zx_tmp_2d(1:iim,1:jjmp1)= ecrit_reg325 zx_tmp_2d(1:iim,1:jjmp1)=FLOAT(ecrit_reg) 324 326 CALL histwrite(nid_ctesGCM,"ecrit_reg",itau_w, 325 327 . zx_tmp_2d,iim*jjmp1,ndex2d) … … 341 343 endif 342 344 c 345 ENDIF ! mono_cpu -
LMDZ4/trunk/libf/phylmd/yamada.F
r541 r766 5 5 s ,zlev,zlay,u,v,teta,cd,q2,km,kn,ustar 6 6 s ,l_mix) 7 use dimphy 7 8 IMPLICIT NONE 8 9 c....................................................................... 9 #include "dimensions.h"10 #include "dimphy.h"10 cym#include "dimensions.h" 11 cym#include "dimphy.h" 11 12 c....................................................................... 12 13 c … … 48 49 49 50 integer nlay,nlev 50 PARAMETER (nlay=klev)51 PARAMETER (nlev=klev+1)51 cym PARAMETER (nlay=klev) 52 cym PARAMETER (nlev=klev+1) 52 53 53 54 logical first … … 77 78 fsm(ri)=1.96*(0.1912-ri)*(0.2341-ri)/((1.-ri)*(0.2231-ri)) 78 79 80 nlay=klev 81 nlev=klev+1 82 79 83 if (0.eq.1.and.first) then 80 84 do ig=1,1000 -
LMDZ4/trunk/libf/phylmd/yamada4.F
r541 r766 5 5 s ,zlev,zlay,u,v,teta,cd,q2,km,kn,kq,ustar 6 6 s ,iflag_pbl) 7 use dimphy 7 8 IMPLICIT NONE 8 9 c....................................................................... 9 #include "dimensions.h"10 #include "dimphy.h"10 cym#include "dimensions.h" 11 cym#include "dimphy.h" 11 12 c....................................................................... 12 13 c … … 64 65 65 66 integer nlay,nlev 66 PARAMETER (nlay=klev)67 PARAMETER (nlev=klev+1)67 cym PARAMETER (nlay=klev) 68 cym PARAMETER (nlev=klev+1) 68 69 69 70 logical first … … 71 72 save first,ipas 72 73 data first,ipas/.true.,0/ 73 74 c$OMP THREADPRIVATE( first,ipas) 74 75 75 76 integer ig,k … … 82 83 real dtetadz(klon,klev+1) 83 84 real m2cstat,mcstat,kmcstat 84 real l(klon,klev+1) ,l0(klon)85 save l086 85 real l(klon,klev+1) 86 real,allocatable,save :: l0(:) 87 c$OMP THREADPRIVATE(l0) 87 88 real sq(klon),sqz(klon),zz(klon,klev+1) 88 89 integer iter … … 91 92 save ric,rifc,b1,kap 92 93 data ric,rifc,b1,kap/0.195,0.191,16.6,0.4/ 93 94 c$OMP THREADPRIVATE(ric,rifc,b1,kap) 94 95 real frif,falpha,fsm 95 96 real fl,zzz,zl0,zq2,zn2 96 97 97 real rino(klon,klev+1),smyam(klon,klev),styam(klon,klev) 98 s ,lyam(klon,klev),knyam(klon,klev) 99 s ,w2yam(klon,klev),t2yam(klon,klev) 100 common/pbldiag/rino,smyam,styam,lyam,knyam,w2yam,t2yam 101 98 cym real rino(klon,klev+1),smyam(klon,klev),styam(klon,klev) 99 cym s ,lyam(klon,klev),knyam(klon,klev) 100 cym s ,w2yam(klon,klev),t2yam(klon,klev) 101 real,allocatable,save,dimension(:,:) :: rino,smyam,styam,lyam, 102 s knyam,w2yam,t2yam 103 cym common/pbldiag/rino,smyam,styam,lyam,knyam,w2yam,t2yam 104 c$OMP THREADPRIVATE(rino,smyam,styam,lyam,knyam,w2yam,t2yam) 105 logical,save :: firstcall=.true. 106 c$OMP THREADPRIVATE(firstcall) 102 107 frif(ri)=0.6588*(ri+0.1776-sqrt(ri*ri-0.3221*ri+0.03156)) 103 108 falpha(ri)=1.318*(0.2231-ri)/(0.2341-ri) … … 106 111 s max(min(l0(ig)*kap*zlev(ig,k)/(kap*zlev(ig,k)+l0(ig)) 107 112 s ,0.5*sqrt(q2(ig,k))/sqrt(max(n2(ig,k),1.e-10))) ,1.) 113 114 115 nlay=klev 116 nlev=klev+1 117 118 if (firstcall) then 119 allocate(rino(klon,klev+1),smyam(klon,klev),styam(klon,klev)) 120 allocate(lyam(klon,klev),knyam(klon,klev)) 121 allocate(w2yam(klon,klev),t2yam(klon,klev)) 122 allocate(l0(klon)) 123 firstcall=.false. 124 endif 125 108 126 109 127 if (.not.(iflag_pbl.ge.6.and.iflag_pbl.le.9)) then … … 378 396 379 397 c==================================================================== 380 c Calcul des coefficients de m élange398 c Calcul des coefficients de m�ange 381 399 c==================================================================== 382 400 do k=2,klev
Note: See TracChangeset
for help on using the changeset viewer.