- Timestamp:
- May 25, 2005, 3:10:09 PM (20 years ago)
- Location:
- LMDZ4/trunk
- Files:
-
- 24 added
- 38 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/trunk/libf/dyn3d/advx.F
r524 r644 106 106 DO j = 1,jjp1 107 107 DO i = 1,iim 108 sqi = sqi + S0(i,j,l,9) 108 cIM 240305 sqi = sqi + S0(i,j,l,9) 109 sqi = sqi + S0(i,j,l,ntra) 109 110 ENDDO 110 111 ENDDO … … 483 484 DO j = 1, jjp1 484 485 DO i = 1, iim 485 sqf = sqf + S0(i,j,l,9) 486 cIM 240405 sqf = sqf + S0(i,j,l,9) 487 sqf = sqf + S0(i,j,l,ntra) 486 488 END DO 487 489 END DO -
LMDZ4/trunk/libf/dyn3d/advz.F
r524 r644 105 105 DO j = 1,jjp1 106 106 DO i = 1,iim 107 sqi = sqi + S0(i,j,l,9) 107 cIM 240305 sqi = sqi + S0(i,j,l,9) 108 sqi = sqi + S0(i,j,l,ntra) 108 109 ENDDO 109 110 ENDDO … … 307 308 DO j = 1,jjp1 308 309 DO i = 1,iim 309 sqf = sqf + S0(i,j,l,9) 310 cIM 240305 sqf = sqf + S0(i,j,l,9) 311 sqf = sqf + S0(i,j,l,ntra) 310 312 ENDDO 311 313 ENDDO -
LMDZ4/trunk/libf/dyn3d/calfis.F
r616 r644 162 162 REAL zsinbis(iim),zcosbis(iim),z1bis(iim) 163 163 REAL unskap, pksurcp 164 164 c 165 cIM diagnostique PVteta, Amip2 166 INTEGER ntetaSTD 167 PARAMETER(ntetaSTD=3) 168 REAL rtetaSTD(ntetaSTD) 169 DATA rtetaSTD/350., 380., 405./ 170 REAL PVteta(ngridmx,ntetaSTD) 171 c 165 172 #ifdef INCA 166 173 REAL flxw(iip1,jjp1,llm) … … 430 437 431 438 ENDDO 432 433 439 c 440 cIM calcul PV a teta=350, 380, 405K 441 CALL PVtheta(ngridmx,llm,pucov,pvcov,pteta, 442 $ ztfi,zplay,zplev, 443 $ ntetaSTD,rtetaSTD,PVteta) 444 c 434 445 #ifdef INCA 435 446 CALL gr_dyn_fi(llm,iip1,jjp1,ngridmx,flxw,flxwfi) … … 468 479 . zdtfi, 469 480 . zdqfi, 470 . zdpsrf) 481 . zdpsrf, 482 cIM diagnostique PVteta, Amip2 483 . pducov, 484 . PVteta) 471 485 472 486 500 CONTINUE -
LMDZ4/trunk/libf/dyn3d/etat0_netcdf.F
r528 r644 43 43 REAL :: radsol(klon),rain_fall(klon), snow_fall(klon) 44 44 REAL :: solsw(klon), sollw(klon), fder(klon) 45 REAL :: deltat(klon), frugs(klon,nbsrf), agesno(klon,nbsrf) 45 cIM "slab" ocean 46 REAL :: tslab(klon), seaice(klon) 47 REAL :: frugs(klon,nbsrf), agesno(klon,nbsrf) 46 48 REAL :: rugmer(klon) 47 49 REAL :: zmea(iip1*jjp1), zstd(iip1*jjp1) … … 365 367 . jjm, rlonu, rlatv , interbar ) 366 368 ! 367 varname = 'deltat' 368 deltat(:) = 0.0 369 CALL startget(varname,iip1,jjp1,rlonv,rlatu,klon,deltat,0.0, 369 cIM "slab" ocean 370 varname = 'tslab' 371 tslab(:) = 0.0 372 CALL startget(varname,iip1,jjp1,rlonv,rlatu,klon,tslab,0.0, 373 . jjm, rlonu, rlatv , interbar ) 374 c 375 varname = 'seaice' 376 seaice(:) = 0.0 377 CALL startget(varname,iip1,jjp1,rlonv,rlatu,klon,seaice,0.0, 370 378 . jjm, rlonu, rlatv , interbar ) 371 379 ! … … 651 659 q_ancien = 0. 652 660 agesno = 0. 653 deltat = 0. 661 cIM "slab" ocean 662 tslab(1:klon) = tsolsrf(1:klon,is_oce) 663 seaice = 0. !kg m-2 664 c 654 665 frugs(1:klon,is_oce) = rugmer(1:klon) 655 666 frugs(1:klon,is_ter) = MAX(1.0e-05, zstd(1:klon)*zsig(1:klon)/2.0) … … 664 675 cIM call phyredem("startphy.nc",phystep,radpas, co2_ppm, solaire, 665 676 call phyredem("startphy.nc",phystep,radpas, 666 $ latfi, lonfi, pctsrf, tsolsrf, tsoil, deltat, qsolsrf, qsol, 677 $ latfi, lonfi, pctsrf, tsolsrf, tsoil, tslab, seaice, 678 $ qsolsrf, qsol, 667 679 $ snsrf, 668 680 $ albe, alblw, evap, rain_fall, snow_fall, solsw, sollw, fder, -
LMDZ4/trunk/libf/dyn3d/guide.F
r617 r644 81 81 INTEGER step_rea,count_no_rea 82 82 83 cIM 180305 real aire_min,aire_max 83 84 integer ilon,ilat 84 85 real factt,ztau(ip1jmp1) -
LMDZ4/trunk/libf/dyn3d/startvar.F
r533 r644 521 521 CASE ('snow') 522 522 champ(:) = 0.0 523 CASE ('deltat') 523 cIM "slab" ocean 524 CASE ('tslab') 525 champ(:) = 0.0 526 CASE ('seaice') 524 527 champ(:) = 0.0 525 528 CASE ('rugmer') -
LMDZ4/trunk/libf/phylmd/clesphys.h
r524 r644 22 22 cIM lev_histmth : niveau sorties mensuelles 23 23 INTEGER lev_histhf, lev_histday, lev_histmth 24 CHARACTER*4 type_run 25 LOGICAL ok_isccp, ok_regdyn 26 REAL lonmin_ins, lonmax_ins, latmin_ins, latmax_ins 27 INTEGER ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day 28 INTEGER ecrit_mth, ecrit_tra, ecrit_reg 24 29 25 30 COMMON/clesphys/cycle_diurne, soil_model, new_oliq, … … 29 34 , , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter 30 35 , , ok_kzmin, lev_histhf, lev_histday, lev_histmth 36 , , type_run, ok_isccp, ok_regdyn 37 , , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins 38 , , ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day 39 , , ecrit_mth, ecrit_tra, ecrit_reg -
LMDZ4/trunk/libf/phylmd/clesphys.inc
r524 r644 15 15 LOGICAL :: ok_kzmin 16 16 INTEGER :: lev_histhf, lev_histday, lev_histmth 17 CHARACTER (len=4) type_run 18 LOGICAL ok_isccp, ok_regdyn 19 REAL lonmin_ins, lonmax_ins, latmin_ins, latmax_ins 20 INTEGER ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day 21 INTEGER ecrit_mth, ecrit_tra, ecrit_reg 17 22 18 23 COMMON/clesphys/cycle_diurne, soil_model, new_oliq, & … … 21 26 & , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt & 22 27 & , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter & 23 & , ok_kzmin, lev_histhf, lev_histday, lev_histmth 28 & , ok_kzmin, lev_histhf, lev_histday, lev_histmth & 29 & , type_run, ok_isccp, ok_regdyn & 30 & , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins & 31 & , ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day & 32 & , ecrit_mth, ecrit_tra, ecrit_reg -
LMDZ4/trunk/libf/phylmd/clmain.F
r590 r644 10 10 . soil_model,cdmmax, cdhmax, 11 11 . ksta, ksta_ter, ok_kzmin, ftsoil,qsol, 12 . paprs,pplay,radsol,snow,qsurf,evap,albe,alblw, 12 cIM BAD . paprs,pplay,radsol,snow,qsurf,evap,albe,alblw, 13 . paprs,pplay,snow,qsurf,evap,albe,alblw, 13 14 . fluxlat, 14 15 . rain_f, snow_f, solsw, sollw, sollwdown, fder, … … 20 21 . dflux_t,dflux_q, 21 22 . zcoefh,zu1,zv1, t2m, q2m, u10m, v10m, 22 . fqcalving,ffonte, run_off_lic_0) 23 cIM cf. AM : pbl 24 . pblh,capCL,oliqCL,cteiCL,pblT, 25 . therm,trmb1,trmb2,trmb3,plcl, 26 . fqcalving,ffonte, run_off_lic_0, 27 cIM "slab" ocean 28 . flux_o, flux_g, tslab, seaice) 23 29 cAA . itr, tr, flux_surf, d_tr) 24 30 cAA REM: … … 72 78 c dflux_t derive du flux sensible 73 79 c dflux_q derive du flux latent 80 cIM "slab" ocean 81 c flux_g---output-R- flux glace (pour OCEAN='slab ') 82 c flux_o---output-R- flux ocean (pour OCEAN='slab ') 83 c tslab-in/output-R temperature du slab ocean (en Kelvin) ! uniqmnt pour slab 84 c seaice---output-R- glace de mer (kg/m2) (pour OCEAN='slab ') 85 ccc 74 86 c ffonte----Flux thermique utilise pour fondre la neige 75 87 c fqcalving-Flux d'eau "perdue" par la surface et necessaire pour limiter la … … 82 94 c flux_surf--input-R- flux de traceurs a la surface 83 95 c d_tr-------output-R tendance de traceurs 96 cIM cf. AM : PBL 97 c trmb1-------deep_cape 98 c trmb2--------inhibition 99 c trmb3-------Point Omega 100 c Cape(klon)-------Cape du thermique 101 c EauLiq(klon)-------Eau liqu integr du thermique 102 c ctei(klon)-------Critere d'instab d'entrainmt des nuages de CL 103 c lcl------- Niveau de condensation 104 c pblh------- HCL 105 c pblT------- T au nveau HCL 84 106 c====================================================================== 85 107 #include "dimensions.h" … … 96 118 REAL t(klon,klev), q(klon,klev) 97 119 REAL u(klon,klev), v(klon,klev) 98 REAL paprs(klon,klev+1), pplay(klon,klev), radsol(klon) 120 cIM 230604 BAD REAL radsol(klon) ??? 121 REAL paprs(klon,klev+1), pplay(klon,klev) 99 122 REAL rlon(klon), rlat(klon), cufi(klon), cvfi(klon) 100 123 REAL d_t(klon, klev), d_q(klon, klev) … … 102 125 REAL flux_t(klon,klev, nbsrf), flux_q(klon,klev, nbsrf) 103 126 REAL dflux_t(klon), dflux_q(klon) 127 cIM "slab" ocean 128 REAL flux_o(klon), flux_g(klon) 129 REAL y_flux_o(klon), y_flux_g(klon) 130 REAL tslab(klon), ytslab(klon) 131 REAL seaice(klon), y_seaice(klon) 104 132 cIM cf JLD 105 133 REAL y_fqcalving(klon), y_ffonte(klon) … … 189 217 REAL ycoefm0(klon,klev), ycoefh0(klon,klev) 190 218 219 cIM 081204 hcl_Anne ? BEG 191 220 real yzlay(klon,klev),yzlev(klon,klev+1),yteta(klon,klev) 192 221 real ykmm(klon,klev+1),ykmn(klon,klev+1) … … 194 223 real yq2(klon,klev+1),q2(klon,klev+1,nbsrf) 195 224 real q2diag(klon,klev+1) 196 real yustar(klon),y_cd_m(klon),y_cd_h(klon) 197 198 199 200 201 225 cIM 081204 real yustar(klon),y_cd_m(klon),y_cd_h(klon) 226 cIM 081204 hcl_Anne ? END 202 227 c 203 228 #include "YOMCST.h" … … 241 266 c 242 267 REAL yt2m(klon), yq2m(klon), yu10m(klon) 268 REAL yustar(klon) 243 269 c -- LOOP 244 270 REAL yu10mx(klon) … … 247 273 c -- LOOP 248 274 c 275 REAL yt10m(klon), yq10m(klon) 276 cIM cf. AM : pbl, hbtm2 (Comme les autres diagnostics on cumule ds physic ce qui 277 c permet de sortir les grdeurs par sous surface) 278 REAL pblh(klon,nbsrf) 279 REAL plcl(klon,nbsrf) 280 REAL capCL(klon,nbsrf) 281 REAL oliqCL(klon,nbsrf) 282 REAL cteiCL(klon,nbsrf) 283 REAL pblT(klon,nbsrf) 284 REAL therm(klon,nbsrf) 285 REAL trmb1(klon,nbsrf) 286 REAL trmb2(klon,nbsrf) 287 REAL trmb3(klon,nbsrf) 288 REAL ypblh(klon) 289 REAL ylcl(klon) 290 REAL ycapCL(klon) 291 REAL yoliqCL(klon) 292 REAL ycteiCL(klon) 293 REAL ypblT(klon) 294 REAL ytherm(klon) 295 REAL ytrmb1(klon) 296 REAL ytrmb2(klon) 297 REAL ytrmb3(klon) 298 REAL y_cd_h(klon), y_cd_m(klon) 299 c REAL ygamt(klon,2:klev) ! contre-gradient pour temperature 300 c REAL ygamq(klon,2:klev) ! contre-gradient pour humidite 249 301 REAL uzon(klon), vmer(klon) 250 302 REAL tair1(klon), qair1(klon), tairsol(klon) … … 269 321 call flush(6) 270 322 endif 271 IF ( first_appel) THEN272 !first_appel=.false.323 IF (debugindex .and. first_appel) THEN 324 first_appel=.false. 273 325 ! 274 326 ! initialisation sorties netcdf … … 447 499 ypct(j) = pctsrf(i,nsrf) 448 500 yts(j) = ts(i,nsrf) 501 cIM "slab" ocean 502 ytslab(i) = tslab(i) 503 c 449 504 ysnow(j) = snow(i,nsrf) 450 505 yqsurf(j) = qsurf(i,nsrf) … … 504 559 c 505 560 c 506 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc507 561 c calculer Cdrag et les coefficients d'echange 508 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc509 510 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc511 c Calcul anciens du LMD. Effectues de toutes facons.512 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc513 514 562 CALL coefkz(nsrf, knon, ypaprs, ypplay, 515 563 cIM 261103 … … 519 567 . yqsurf, 520 568 . ycoefm, ycoefh) 521 522 CALL coefkz2(nsrf, knon, ypaprs, ypplay,yt, 569 cIM 081204 BEG 570 cCR test 571 if (iflag_pbl.eq.1) then 572 cIM 081204 END 573 CALL coefkz2(nsrf, knon, ypaprs, ypplay,yt, 523 574 . ycoefm0, ycoefh0) 524 if (first_appel) then 525 if (prt_level > 9) THEN 526 WRITE(lunout,*)'Apres coefkz2 ' 527 WRITE(lunout,*)'nsrf,knon,yts,yrugos,yqsurf', 528 . nsrf,knon,yts,yrugos,yqsurf 529 WRITE(lunout,*)'ypaprs(1,k),ypplay(1,k),yu,yv,yt' 530 do k=1,klev 531 WRITE(lunout,*)ypaprs(1,k),ypplay(1,k), 532 . yu(1,k),yv(1,k),yt(1,k) 533 enddo 534 do k=1,klev 535 WRITE(lunout,*)ycoefm(1,k),ycoefh(1,k), 536 . ycoefm0(1,k),ycoefh0(1,k) 537 enddo 538 ENDIF 539 first_appel=.false. 575 DO k = 1, klev 576 DO i = 1, knon 577 ycoefm(i,k) = MAX(ycoefm(i,k),ycoefm0(i,k)) 578 ycoefh(i,k) = MAX(ycoefh(i,k),ycoefh0(i,k)) 579 ENDDO 580 ENDDO 540 581 endif 541 542 DO k = 1, klev543 DO i = 1, knon544 ycoefm(i,k) = MAX(ycoefm(i,k),ycoefm0(i,k))545 ycoefh(i,k) = MAX(ycoefh(i,k),ycoefh0(i,k))546 ENDDO547 ENDDO548 549 582 c 550 583 cIM cf JLD : on seuille ycoefm et ycoefh … … 690 723 s y_d_t, y_d_q, y_d_ts, yz0_new, 691 724 s y_flux_t, y_flux_q, y_dflux_t, y_dflux_q, 692 s y_fqcalving,y_ffonte,y_run_off_lic_0) 725 s y_fqcalving,y_ffonte,y_run_off_lic_0, 726 cIM "slab" ocean 727 s y_flux_o, y_flux_g, ytslab, y_seaice) 693 728 c 694 729 c calculer la longueur de rugosite sur ocean … … 829 864 ENDDO 830 865 c 831 if (check) THEN832 WRITE(*,*)' avant stdlevvar. nsrf=',nsrf833 IF(nsrf.EQ.3) THEN834 j=1465835 WRITE(*,*)' INstO',klon,knon,nsrf,zxli,uzon(j),vmer(j),836 & tair1(j),qair1(j),zgeo1(j),tairsol(j),qairsol(j),rugo1(j),837 & psfce(j),patm(j)838 ENDIF839 WRITE(*,*)' qairsol (min, max)'840 $ , minval(qairsol(1:knon)), maxval(qairsol(1:knon))841 call flush(6)842 ENDIF843 c844 866 CALL stdlevvar(klon, knon, nsrf, zxli, 845 867 & uzon, vmer, tair1, qair1, zgeo1, 846 868 & tairsol, qairsol, rugo1, psfce, patm, 847 & yt2m, yq2m, yu10m) 848 849 c 850 if (check) THEN 851 IF(nsrf.EQ.3) THEN 852 j=1465 853 WRITE(*,*)' OUstd',klon,knon,nsrf,zxli,uzon(j),vmer(j), 854 & tair1(j),qair1(j),zgeo1(j),tairsol(j),qairsol(j),rugo1(j), 855 & psfce(j),patm(j) 856 WRITE(*,*)' tqu',yt2m(j),yq2m(j),yu10m(j) 857 call flush(6) 858 ENDIF 859 ENDIF 869 cIM & yt2m, yq2m, yu10m) 870 & yt2m, yq2m, yt10m, yq10m, yu10m, yustar) 871 cIM 081204 END 872 c 860 873 c 861 874 DO j=1, knon … … 863 876 t2m(i,nsrf)=yt2m(j) 864 877 865 if (check) THEN866 IF(nsrf.EQ.3 .and. j.EQ.1465) THEN867 WRITE(*,*) 't2m APRES stdlev',j,i,tair1(j),t2m(i,nsrf),868 $ tairsol(j),rlon(i),rlat(i)869 call flush(6)870 ENDIF871 ENDIF872 878 c 873 879 q2m(i,nsrf)=yq2m(j) … … 878 884 c 879 885 ENDDO 886 c 887 cIM cf AM : pbl, HBTM 888 DO i = 1, knon 889 y_cd_h(i) = ycoefh(i,1) 890 y_cd_m(i) = ycoefm(i,1) 891 ENDDO 892 c print*,'appel hbtm2' 893 CALL HBTM(knon, ypaprs, ypplay, 894 . yt2m,yt10m,yq2m,yq10m,yustar, 895 . y_flux_t,y_flux_q,yu,yv,yt,yq, 896 . ypblh,ycapCL,yoliqCL,ycteiCL,ypblT, 897 . ytherm,ytrmb1,ytrmb2,ytrmb3,ylcl) 898 c print*,'fin hbtm2' 899 c 900 DO j=1, knon 901 i = ni(j) 902 pblh(i,nsrf) = ypblh(j) 903 plcl(i,nsrf) = ylcl(j) 904 capCL(i,nsrf) = ycapCL(j) 905 oliqCL(i,nsrf) = yoliqCL(j) 906 cteiCL(i,nsrf) = ycteiCL(j) 907 pblT(i,nsrf) = ypblT(j) 908 therm(i,nsrf) = ytherm(j) 909 trmb1(i,nsrf) = ytrmb1(j) 910 trmb2(i,nsrf) = ytrmb2(j) 911 trmb3(i,nsrf) = ytrmb3(j) 912 ENDDO 913 c 880 914 #else 881 DO j=1, knon 882 i = ni(j) 883 t2m(i,nsrf)=0. 884 q2m(i,nsrf)=0. 885 u10m(i,nsrf)=0. 886 v10m(i,nsrf)=0. 887 ENDDO 915 cIM cf AM : pbl, HBTM 916 DO j=1, knon 917 i = ni(j) 918 pblh(i,nsrf) = 0. 919 plcl(i,nsrf) = 0. 920 capCL(i,nsrf) = 0. 921 oliqCL(i,nsrf) = 0. 922 cteiCL(i,nsrf) = 0. 923 pblT(i,nsrf) = 0. 924 therm(i,nsrf) = 0. 925 trmb1(i,nsrf) = 0. 926 trmb2(i,nsrf) = 0. 927 trmb3(i,nsrf) = 0. 928 ENDDO 929 DO j=1, knon 930 i = ni(j) 931 t2m(i,nsrf)=0. 932 q2m(i,nsrf)=0. 933 u10m(i,nsrf)=0. 934 v10m(i,nsrf)=0. 935 ENDDO 888 936 #endif 889 937 … … 894 942 enddo 895 943 enddo 896 c 897 944 cIM "slab" ocean 945 IF(OCEAN.EQ.'slab '.OR.OCEAN.EQ.'force ') THEN 946 IF (nsrf.EQ.is_oce) THEN 947 DO j = 1, knon 948 c on projette sur la grille globale 949 i = ni(j) 950 IF(pctsrf_new(i,is_oce).GT.epsfra) THEN 951 flux_o(i) = y_flux_o(j) 952 ELSE 953 flux_o(i) = 0. 954 ENDIF 955 ENDDO 956 ENDIF 957 c 958 IF (nsrf.EQ.is_sic) THEN 959 DO j = 1, knon 960 i = ni(j) 961 cIM 230604 on pondere lorsque l'on fait le bilan au sol : flux_g(i) = y_flux_g(j)*ypct(j) 962 IF(pctsrf_new(i,is_sic).GT.epsfra) THEN 963 flux_g(i) = y_flux_g(j) 964 ELSE 965 flux_g(i) = 0. 966 ENDIF 967 ENDDO 968 ENDIF !nsrf.EQ.is_sic 969 ENDIF !OCEAN 970 c 971 IF(OCEAN.EQ.'slab ') THEN 972 IF(nsrf.EQ.is_oce) then 973 tslab(1:klon) = ytslab(1:klon) 974 seaice(1:klon) = y_seaice(1:klon) 975 ENDIF !nsrf 976 ENDIF !OCEAN 898 977 99999 CONTINUE 899 c900 978 C 901 979 C On utilise les nouvelles surfaces … … 924 1002 s d_t, d_q, d_ts, z0_new, 925 1003 s flux_t, flux_q,dflux_s,dflux_l, 926 s fqcalving,ffonte,run_off_lic_0) 1004 s fqcalving,ffonte,run_off_lic_0, 1005 cIM "slab" ocean 1006 s flux_o,flux_g,tslab,seaice) 927 1007 928 1008 USE interface_surf … … 1001 1081 c hauteur de neige, en kg/m2/s 1002 1082 REAL fqcalving(klon) 1083 cIM "slab" ocean 1084 REAL tslab(klon) !temperature du slab ocean (K) (OCEAN='slab ') 1085 REAL seaice(klon) ! glace de mer en kg/m2 1086 REAL flux_o(klon) ! flux entre l'ocean et l'atmosphere W/m2 1087 REAL flux_g(klon) ! flux entre l'ocean et la glace de mer W/m2 1088 c 1003 1089 c====================================================================== 1004 1090 REAL t_grnd ! temperature de rappel pour glace de mer … … 1199 1285 zlev1(1:knon) = delp(1:knon,1) 1200 1286 c swnet = swdown * (1. - albedo) 1201 swdown(1:knon) = swnet(1:knon) 1287 c 1288 cIM swdown=flux SW incident sur terres 1289 cIM swdown=flux SW net sur les autres surfaces 1290 cIM swdown(1:knon) = swnet(1:knon) 1291 if(nisurf.eq.is_ter) THEN 1292 swdown(1:knon) = swnet(1:knon)/(1-albedo(1:knon)) 1293 else 1294 swdown(1:knon) = swnet(1:knon) 1295 endif 1202 1296 c enddo 1203 1297 ccanopy = co2_ppm … … 1220 1314 s evap, fluxsens, fluxlat, dflux_l, dflux_s, 1221 1315 s tsol_rad, tsurf_new, alb_new, alblw, emis_new, z0_new, 1222 s pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0) 1316 s pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0, 1317 cIM "slab" ocean 1318 s flux_o, flux_g, tslab, seaice) 1223 1319 1224 1320 … … 1472 1568 c Variables locales: 1473 1569 c 1474 INTEGER i, k 1570 INTEGER i, k, kk !IM 120704 1475 1571 REAL zgeop(klon,klev) 1476 1572 REAL zmgeom(klon) -
LMDZ4/trunk/libf/phylmd/cltracrn.F
r524 r644 82 82 cAA que le pondere par la fraction de nature de sol. 83 83 c 84 print*,'PASSAGE DANS CLTRACRN'84 c print*,'PASSAGE DANS CLTRACRN' 85 85 86 86 DO i = 1,klon -
LMDZ4/trunk/libf/phylmd/conf_phys.F90
r585 r644 22 22 include "clesphys.inc" 23 23 include "compbl.h" 24 #include "control.inc" 24 25 ! 25 26 ! Configuration de la "physique" de LMDZ a l'aide de la fonction … … 577 578 578 579 ! 579 ! 580 !Config Key = 581 !Config Desc = 582 !Config Def = 583 !Config Help = 584 ! 585 ! = 586 ! call getin('',) 587 ! 588 ! 589 ! 590 ! 580 !Config Key = type_run 581 !Config Desc = 582 !Config Def = 'AMIP' ou 'ENSP' 583 !Config Help = 584 ! 585 type_run = 'AMIP' 586 call getin('type_run',type_run) 587 588 ! 589 !Config Key = ok_isccp 590 !Config Desc = 591 !Config Def = .true. 592 !Config Help = 593 ! 594 ! ok_isccp = .true. 595 ok_isccp = .false. 596 call getin('ok_isccp',ok_isccp) 597 598 ! 599 ! 600 !Config Key = ok_regdyn 601 !Config Desc = 602 !Config Def = 'AMIP' 603 !Config Help = 604 ! 605 ! ok_regdyn = .true. 606 ok_regdyn = .false. 607 call getin('ok_regdyn',ok_regdyn) 608 ! 609 ! coordonnees (lonmin_ins, lonmax_ins, latmin_ins, latmax_ins) pour la zone 610 ! avec sorties instantannees tous les pas de temps de la physique => "histbilKP_ins.nc" 611 ! 612 !Config Key = lonmin_ins 613 !Config Desc = 100. 614 !Config Def = longitude minimale sorties "bilKP_ins" 615 !Config Help = 616 ! 617 lonmin_ins = 100. 618 call getin('lonmin_ins',lonmin_ins) 619 ! 620 !Config Key = lonmax_ins 621 !Config Desc = 130. 622 !Config Def = longitude maximale sorties "bilKP_ins" 623 !Config Help = 624 ! 625 lonmax_ins = 130. 626 call getin('lonmax_ins',lonmax_ins) 627 ! 628 !Config Key = latmin_ins 629 !Config Desc = -20. 630 !Config Def = latitude minimale sorties "bilKP_ins" 631 !Config Help = 632 ! 633 latmin_ins = -20. 634 call getin('latmin_ins',latmin_ins) 635 ! 636 !Config Key = latmax_ins 637 !Config Desc = 20. 638 !Config Def = latitude maximale sorties "bilKP_ins" 639 !Config Help = 640 ! 641 latmax_ins = 20. 642 call getin('latmax_ins',latmax_ins) 643 ! 644 !Config Key = ecrit_ins 645 !Config Desc = 646 !Config Def = NINT(86400./dtime/48.) !a chaque pas de temps physique 647 !Config Help = 648 ! 649 ! ecrit_ins = NINT(86400./dtime/48.) 650 ecrit_ins = NINT(86400./48.) 651 call getin('ecrit_ins',ecrit_ins) 652 ! 653 !Config Key = ecrit_hf 654 !Config Desc = 655 !Config Def = NINT(86400./dtime *0.25) !toutes les 6h 656 !Config Help = 657 ! 658 ! ecrit_hf = NINT(86400./dtime *0.25) 659 ecrit_hf = NINT(86400. *0.25) 660 call getin('ecrit_hf',ecrit_hf) 661 ! 662 !Config Key = ecrit_hf2mth 663 !Config Desc = 664 !Config Def = 4*30 !ecriture mens. a partir de val. inst. toutes les 6h 665 !Config Help = 666 ! 667 ecrit_hf2mth = 4*30 668 call getin('ecrit_hf2mth',ecrit_hf2mth) 669 ! 670 !Config Key = ecrit_day 671 !Config Desc = 672 !Config Def = NINT(86400./dtime *1.0) !tous les jours 673 !Config Help = 674 ! 675 ! ecrit_day = NINT(86400./dtime *1.0) 676 ecrit_day = NINT(86400. *1.0) 677 call getin('ecrit_day',ecrit_day) 678 ! 679 !Config Key = ecrit_mth 680 !Config Desc = 681 !Config Def = NINT(86400./dtime *ecritphy) !1fois par mois 682 !Config Help = 683 ! 684 ! ecrit_mth = NINT(86400./dtime *ecritphy) 685 ecrit_mth = NINT(86400. *ecritphy) 686 call getin('ecrit_mth',ecrit_mth) 687 ! 688 !Config Key = ecrit_tra 689 !Config Desc = 690 !Config Def = NINT(86400./dtime * ecritphy) !tous les pas de temps physiques 691 !Config Help = 692 ! 693 ! ecrit_tra = NINT(86400./dtime * ecritphy) 694 ecrit_tra = NINT(86400.* ecritphy) 695 call getin('ecrit_tra',ecrit_tra) 696 ! 697 !Config Key = ecrit_reg 698 !Config Desc = 699 !Config Def = NINT(86400./dtime *0.25) !4 fois par jour 700 !Config Help = 701 ! 702 ! ecrit_reg = NINT(86400./dtime *0.25) !4 fois par jour 703 ecrit_reg = NINT(86400. *0.25) !4 fois par jour 704 call getin('ecrit_reg',ecrit_reg) 705 ! 706 591 707 592 708 write(numout,*)' ##############################################' … … 642 758 write(numout,*)' iflag_pbl = ', iflag_pbl 643 759 write(numout,*)' iflag_thermals = ', iflag_thermals 644 760 write(numout,*)' type_run = ',type_run 761 write(numout,*)' ok_isccp = ',ok_isccp 762 write(numout,*)' ok_regdyn = ',ok_regdyn 763 write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',& 764 & lonmin_ins, lonmax_ins, latmin_ins, latmax_ins 765 write(numout,*)' ecrit_ ins, hf, hf2mth, day, mth, reg, tra',& 766 & ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra 645 767 return 646 768 -
LMDZ4/trunk/libf/phylmd/ini_histISCCP.h
r524 r644 7 7 c zout et zsto. 8 8 c dtime est passe par ailleurs a histbeg 9 c zsto = frequence de stockage des champs9 c zstophy = frequence de stockage des champs tous les pdt physiques 10 10 c zout = frequence d'ecriture des champs 11 zsto= dtime11 zstophy = dtime 12 12 c 13 13 c ecriture 8 fois par jour … … 15 15 c ecriture toutes les 2h (12 fois par jour) 16 16 c zout = dtime * 4. 17 c ecriture toutes les 1/ h (48 fois par jour)17 c ecriture toutes les 1/2 h (48 fois par jour) 18 18 c zout = dtime 19 19 c 20 20 c ecriture mensuelle 21 21 zout = dtime * ecrit_mth 22 c 23 print*,'ISCCP zout,zsto=',zout,zsto 22 c zout = dtime * ecrit_day 24 23 c 25 24 c PRINT*, 'La frequence de sortie ISCCP est de ', ecrit_isccp … … 48 47 . lmaxm1, cldtopres, nvert,'down') 49 48 c 49 IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN 50 c 50 51 c variables a ecrire 51 52 c … … 54 55 . "LMDZ ISCCP cld", "%", 55 56 . iim, jjmp1,nhori,lmaxm1,1,lmaxm1,nvert,32, 56 . "ave(X)", zsto ,zout)57 . "ave(X)", zstophy,zout) 57 58 ENDDO 58 59 c … … 60 61 . "Nb of calls with sunlit ", "%", 61 62 . iim, jjmp1,nhori,1,1,1,-99,32, 62 . "ave(X)", zsto,zout) 63 . "ave(X)", zstophy,zout) 64 c 65 ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN 66 c 67 DO k=1, kmaxm1 68 DO l=1, lmaxm1 69 c 70 CALL histdef(nid_isccp, pclev(l)//taulev(k), 71 . "LMDZ ISCCP cld "//cnameisccp(l,k), "%", 72 . iim, jjmp1,nhori,1,1,1,-99,32, 73 . "ave(X)", zstophy,zout) 74 c 75 ENDDO 76 ENDDO 77 c 78 CALL histdef(nid_isccp, "nsunlit", 79 . "Nb of calls with sunlit ", "%", 80 . iim, jjmp1,nhori,1,1,1,-99,32, 81 . "ave(X)", zstophy,zout) 82 c 83 ENDIF 63 84 c 64 85 CALL histend(nid_isccp) -
LMDZ4/trunk/libf/phylmd/ini_histREGDYN.h
r524 r644 5 5 IF (ok_regdyn) THEN 6 6 c 7 PRINT*, 'La frequence de sortie REGDYN est de ', ecrit_mth 8 c PRINT*, 'La frequence de sortie REGDYN est de ', ecrit_regdyn 9 cIM cf. LF 7 cIM PRINT*, 'La frequence de sortie REGDYN est de ', ecrit_mth 8 c 10 9 idayref = day_ref 11 10 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) 12 13 cccIM CALL ymds2ju(anne_ini, 1, 1, 0.0, zjulian)14 c CALL ymds2ju(annee_ref, 1, 1, 0.0, zjulian)15 c zjulian = zjulian + day_ini16 11 c 17 18 12 c axe vertical pour les differents niveaux des histogrammes 19 13 DO iw=1, iwmax … … 28 22 . "mb/day", 29 23 . iwmax, zx_o500, komega) 30 24 c 31 25 c pour les champs instantannes, il faut mettre la meme valeur pour 32 c zout et tsto.26 c zout et zsto. 33 27 c dtime est passe par ailleurs a histbeg 34 28 c 35 29 c zout = dtime * REAL(NINT(86400./dtime*ecrit_regdyn)) 36 30 c zsto = zout 37 31 c print*,'zout,zsto=',zout,zsto 32 c 33 c stockage a chaque pas de temps de la physique 34 c 35 zstophy = dtime 36 cIM 020904 zstophy = dtime * nbapp_isccp 37 38 38 c ecriture mensuelle 39 39 c 40 zsto = dtime41 40 zout = dtime * ecrit_mth 41 cIM 020904 42 c zout = dtime * ecrit_day 42 43 c zout = dtime * REAL(NINT(86400./dtime*ecrit_regdyn)) 43 44 … … 48 49 CALL histdef(nid_regdyn, "hw1", "Tropics Histogram ", "%", 49 50 & kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32, 50 & "ave(X)", zsto ,zout)51 & "ave(X)", zstophy,zout) 51 52 52 53 CALL histdef(nid_regdyn, "nh1", "Nb of pixels Tropics Histo", 53 54 & "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 54 & 32,"ave(X)", zsto ,zout)55 & 32,"ave(X)", zstophy,zout) 55 56 c 56 57 57 CALL histdef(nid_regdyn, "nht1","Total Nb pixels Tropics Histo" 58 & ,"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 59 & 32,"ave(X)", zsto,zout) 58 CALL histdef(nid_regdyn, "nht1", 59 & "Total Nb pixels Tropics Histo", 60 & "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 61 & 32,"ave(X)", zstophy,zout) 60 62 c 61 63 c PAN 62 64 CALL histdef(nid_regdyn, "hw2", "North Pacific Histogram", "%", 63 65 & kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32, 64 & "ave(X)", zsto ,zout)66 & "ave(X)", zstophy,zout) 65 67 66 68 CALL histdef(nid_regdyn, "nh2", "Nb of pixels North Pacific", 67 69 & "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 68 & 32,"ave(X)", zsto ,zout)70 & 32,"ave(X)", zstophy,zout) 69 71 c 70 72 71 CALL histdef(nid_regdyn, "nht2", "Total Nb pixels North Pacific72 & Histo"73 & ,"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,74 & 32,"ave(X)", zsto ,zout)73 CALL histdef(nid_regdyn, "nht2", 74 & "Total Nb pixels North Pacific Histo", 75 & "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 76 & 32,"ave(X)", zstophy,zout) 75 77 c CAL 76 78 CALL histdef(nid_regdyn, "hw3", "California Histogram", "%", 77 79 & kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32, 78 & "ave(X)", zsto ,zout)80 & "ave(X)", zstophy,zout) 79 81 80 CALL histdef(nid_regdyn, "nh3", "Nb of pixels California81 & Histo",82 CALL histdef(nid_regdyn, "nh3", 83 & "Nb of pixels California Histo", 82 84 & "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 83 & 32,"ave(X)", zsto ,zout)85 & 32,"ave(X)", zstophy,zout) 84 86 c 85 87 86 CALL histdef(nid_regdyn, "nht3", "Total Nb pixels California87 & Histo"88 & ,"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,89 & 32,"ave(X)", zsto ,zout)88 CALL histdef(nid_regdyn, "nht3", 89 & "Total Nb pixels California Histo", 90 & "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 91 & 32,"ave(X)", zstophy,zout) 90 92 c HAW 91 93 CALL histdef(nid_regdyn, "hw4", "Hawai Histogram", "%", 92 94 & kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32, 93 & "ave(X)", zsto ,zout)95 & "ave(X)", zstophy,zout) 94 96 95 97 CALL histdef(nid_regdyn, "nh4", "Nb of pixels Hawai Histo", 96 98 & "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 97 & 32,"ave(X)", zsto ,zout)99 & 32,"ave(X)", zstophy,zout) 98 100 c 99 101 100 CALL histdef(nid_regdyn, "nht4","Total Nb pixels Hawai Histo" 101 & ,"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 102 & 32,"ave(X)", zsto,zout) 102 CALL histdef(nid_regdyn, "nht4", 103 & "Total Nb pixels Hawai Histo", 104 & "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 105 & 32,"ave(X)", zstophy,zout) 103 106 c WAP 104 107 CALL histdef(nid_regdyn, "hw5", "Warm Pool Histogram", "%", 105 108 & kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 32, 106 & "ave(X)", zsto ,zout)109 & "ave(X)", zstophy,zout) 107 110 108 111 CALL histdef(nid_regdyn, "nh5", "Nb of pixels Warm Pool Histo", 109 112 & "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 110 & 32,"ave(X)", zsto ,zout)113 & 32,"ave(X)", zstophy,zout) 111 114 c 112 115 113 CALL histdef(nid_regdyn, "nht5", "Total Nb pixels Warm Pool114 & Histo"115 & ,"%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega,116 & 32,"ave(X)", zsto ,zout)116 CALL histdef(nid_regdyn, "nht5", 117 & "Total Nb pixels Warm Pool Histo", 118 & "%",kmaxm1,lmaxm1,nhoriRD, iwmax,1,iwmax, komega, 119 & 32,"ave(X)", zstophy,zout) 117 120 c 118 121 CALL histend(nid_regdyn) -
LMDZ4/trunk/libf/phylmd/ini_histday.h
r577 r644 1 ! 2 !$Header$3 ! 1 c 2 c $Header$ 3 c 4 4 IF (ok_journe) THEN 5 5 c 6 zsto = dtime 7 zout = dtime * FLOAT(ecrit_day) 8 zsto1= dtime * FLOAT(ecrit_day) 9 c zout = dtime * REAL(ecrit_day) 10 c zsto1= dtime * REAL(ecrit_day) 6 zstophy = dtime 7 zstoday= dtime * FLOAT(ecrit_day) 8 zout = dtime * FLOAT(ecrit_day) 11 9 c 12 10 idayref = day_ref … … 25 23 . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 26 24 . nhori, nid_day) 27 write(*,*)'Journee ', itau_phy, zjulian28 25 CALL histvert(nid_day, "presnivs", "Vertical levels", "mb", 29 . klev, presnivs , nvert)26 . klev, presnivs/100., nvert) 30 27 c 31 28 IF(lev_histday.GE.1) THEN 32 29 c 33 CALL histdef(nid_day, "phis", "Surface geop. height", " -",34 . iim,jjmp1,nhori, 1,1,1, -99, 32, 35 . "once", zsto ,zout)30 CALL histdef(nid_day, "phis", "Surface geop. height", "m2/s2", 31 . iim,jjmp1,nhori, 1,1,1, -99, 32, 32 . "once", zstophy,zout) 36 33 c 37 34 CALL histdef(nid_day, "aire", "Grid area", "-", 38 35 . iim,jjmp1,nhori, 1,1,1, -99, 32, 39 . "once", zsto ,zout)36 . "once", zstophy,zout) 40 37 c 41 38 CALL histdef(nid_day, "contfracATM","% sfce ter+lic ","-", 42 39 . iim,jjmp1,nhori, 1,1,1, -99, 32, 43 . "once", zsto ,zout)40 . "once", zstophy,zout) 44 41 c 45 42 CALL histdef(nid_day, "contfracOR","% sfce terre OR", "-", 46 43 . iim,jjmp1,nhori, 1,1,1, -99, 32, 47 . "once", zsto ,zout)44 . "once", zstophy,zout) 48 45 c 49 46 c Champs 2D: … … 51 48 CALL histdef(nid_day, "tsol", "Surface Temperature", "K", 52 49 . iim,jjmp1,nhori, 1,1,1, -99, 32, 53 . "ave(X)", zsto ,zout)50 . "ave(X)", zstophy,zout) 54 51 c 55 52 CALL histdef(nid_day, "t2m", "Temperature 2m", "K", 56 53 . iim,jjmp1,nhori, 1,1,1, -99, 32, 57 . "ave(X)", zsto ,zout)54 . "ave(X)", zstophy,zout) 58 55 c 59 56 c Champs retires momentannéement en attendant un hypothetique … … 63 60 . "K", 64 61 . iim,jjmp1,nhori, 1,1,1, -99, 32, 65 . t2mincels, zsto ,zout)62 . t2mincels, zstophy,zout) 66 63 c 67 64 CALL histdef(nid_day, "t2m_max", "Temp. 2m max.", 68 65 . "K", 69 66 . iim,jjmp1,nhori, 1,1,1, -99, 32, 70 . t2maxcels, zsto ,zout)67 . t2maxcels, zstophy,zout) 71 68 c 72 69 CALL histdef(nid_day, "plul", "Large-scale Precip.", 73 70 . "kg/(s*m2)", 74 71 . iim,jjmp1,nhori, 1,1,1, -99, 32, 75 . "ave(X)", zsto ,zout)72 . "ave(X)", zstophy,zout) 76 73 c 77 74 CALL histdef(nid_day, "pluc", "Convective Precip.", 78 75 . "kg/(s*m2)", 79 76 . iim,jjmp1,nhori, 1,1,1, -99, 32, 80 . "ave(X)", zsto ,zout)77 . "ave(X)", zstophy,zout) 81 78 c 82 79 CALL histdef(nid_day, "snowl", "Solid Large-scale Precip.", 83 . "kg/( s*m2)",84 . iim,jjmp1,nhori, 1,1,1, -99, 32, 85 . "ave(X)", zsto ,zout)80 . "kg/(m2*s)", 81 . iim,jjmp1,nhori, 1,1,1, -99, 32, 82 . "ave(X)", zstophy,zout) 86 83 c 87 84 IF(1.EQ.0) THEN !snowc=0. 88 85 CALL histdef(nid_day, "snowc", "Solid Convective Precip.", 89 . "kg/( s*m2)",90 . iim,jjmp1,nhori, 1,1,1, -99, 32, 91 . "ave(X)", zsto ,zout)86 . "kg/(m2*s)", 87 . iim,jjmp1,nhori, 1,1,1, -99, 32, 88 . "ave(X)", zstophy,zout) 92 89 ENDIF !snowc=0. 93 90 c 94 91 CALL histdef(nid_day, "flat", "Latent heat flux", "W/m2", 95 92 . iim,jjmp1,nhori, 1,1,1, -99, 32, 96 . "ave(X)", zsto ,zout)93 . "ave(X)", zstophy,zout) 97 94 c 98 95 CALL histdef(nid_day, "sicf", "Sea-ice fraction", "-", 99 96 . iim,jjmp1,nhori, 1,1,1, -99, 32, 100 . "inst(X)", zsto 1,zout)97 . "inst(X)", zstoday,zout) 101 98 c 102 99 CALL histdef(nid_day, "q2m", "Specific humidity", "kg/kg", 103 100 . iim,jjmp1,nhori, 1,1,1, -99, 32, 104 . "ave(X)", zsto ,zout)101 . "ave(X)", zstophy,zout) 105 102 c 106 103 CALL histdef(nid_day, "u10m", "Vent zonal 10m", "m/s", 107 104 . iim,jjmp1,nhori, 1,1,1, -99, 32, 108 . "ave(X)", zsto ,zout)105 . "ave(X)", zstophy,zout) 109 106 c 110 107 CALL histdef(nid_day, "v10m", "Vent meridien 10m", "m/s", 111 108 . iim,jjmp1,nhori, 1,1,1, -99, 32, 112 . "ave(X)", zsto ,zout)109 . "ave(X)", zstophy,zout) 113 110 c 114 111 CALL histdef(nid_day, "wind10m","10-m wind speed","m/s", 115 112 . iim,jjmp1,nhori, 1,1,1, -99, 32, 116 . "ave(X)", zsto ,zout)113 . "ave(X)", zstophy,zout) 117 114 c 118 115 CALL histdef(nid_day, "wind10max", "10-m wind speed max.", 119 116 . "m/s", 120 117 . iim,jjmp1,nhori, 1,1,1, -99, 32, 121 . t2maxcels, zsto ,zout)118 . t2maxcels, zstophy,zout) 122 119 c 123 120 CALL histdef(nid_day, "psol", "Surface Pressure", "Pa", 124 121 . iim,jjmp1,nhori, 1,1,1, -99, 32, 125 . "ave(X)", zsto ,zout)122 . "ave(X)", zstophy,zout) 126 123 c 127 124 CALL histdef(nid_day, "precip","Precipitation Totale liq+sol" 128 125 . , "kg/(s*m2)", 129 126 . iim,jjmp1,nhori, 1,1,1, -99, 32, 130 . "ave(X)", zsto ,zout)131 c 132 CALL histdef(nid_day, "snowf", "Snow fall", "kg/( s*m2)",133 . iim,jjmp1,nhori, 1,1,1, -99, 32, 134 . "ave(X)", zsto ,zout)135 c 136 137 138 . "ave(X)", zsto,zout)139 c 140 CALL histdef(nid_day, "evap", "Evaporation", "kg/( s*m2)",141 . iim,jjmp1,nhori, 1,1,1, -99, 32, 142 . "ave(X)", zsto ,zout)127 . "ave(X)", zstophy,zout) 128 c 129 CALL histdef(nid_day, "snowf", "Snow fall", "kg/(m2*s)", 130 . iim,jjmp1,nhori, 1,1,1, -99, 32, 131 . "ave(X)", zstophy,zout) 132 c 133 c CALL histdef(nid_day, "snow_mass", "Snow Mass", "kg/m2", 134 c . iim,jjmp1,nhori, 1,1,1, -99, 32, 135 c . "ave(X)", zstophy,zout) 136 c 137 CALL histdef(nid_day, "evap", "Evaporation", "kg/(m2*s)", 138 . iim,jjmp1,nhori, 1,1,1, -99, 32, 139 . "ave(X)", zstophy,zout) 143 140 c 144 141 CALL histdef(nid_day, "tops", "Solar rad. at TOA", "W/m2", 145 142 . iim,jjmp1,nhori, 1,1,1, -99, 32, 146 . "ave(X)", zsto ,zout)143 . "ave(X)", zstophy,zout) 147 144 c 148 145 CALL histdef(nid_day, "topl", "IR rad. at TOA", "W/m2", 149 146 . iim,jjmp1,nhori, 1,1,1, -99, 32, 150 . "ave(X)", zsto ,zout)147 . "ave(X)", zstophy,zout) 151 148 c 152 149 CALL histdef(nid_day, "sols", "Net Solar rad. at surf.", 153 150 . "W/m2", 154 151 . iim,jjmp1,nhori, 1,1,1, -99, 32, 155 . "ave(X)", zsto ,zout)152 . "ave(X)", zstophy,zout) 156 153 c 157 154 CALL histdef(nid_day, "soll", "Net IR rad. at surface", "W/m2", 158 155 . iim,jjmp1,nhori, 1,1,1, -99, 32, 159 . "ave(X)", zsto ,zout)156 . "ave(X)", zstophy,zout) 160 157 c 161 158 CALL histdef(nid_day, "cldl", "Low-level cloudiness", "-", 162 159 . iim,jjmp1,nhori, 1,1,1, -99, 32, 163 . "ave(X)", zsto ,zout)160 . "ave(X)", zstophy,zout) 164 161 c 165 162 CALL histdef(nid_day, "cldm", "Mid-level cloudiness", "-", 166 163 . iim,jjmp1,nhori, 1,1,1, -99, 32, 167 . "ave(X)", zsto ,zout)164 . "ave(X)", zstophy,zout) 168 165 c 169 166 CALL histdef(nid_day, "cldh", "High-level cloudiness", "-", 170 167 . iim,jjmp1,nhori, 1,1,1, -99, 32, 171 . "ave(X)", zsto ,zout)168 . "ave(X)", zstophy,zout) 172 169 c 173 170 CALL histdef(nid_day, "cldt", "Total cloudiness", "-", 174 171 . iim,jjmp1,nhori, 1,1,1, -99, 32, 175 . "ave(X)", zsto ,zout)172 . "ave(X)", zstophy,zout) 176 173 c 177 174 CALL histdef(nid_day, "cldq", "Cloud liquid water path", 178 175 . "kg/m2", 179 176 . iim,jjmp1,nhori, 1,1,1, -99, 32, 180 . "ave(X)", zsto ,zout)177 . "ave(X)", zstophy,zout) 181 178 c 182 179 CALL histdef(nid_day, "prw", "Precipitable water", "kg/m2", 183 180 . iim,jjmp1,nhori, 1,1,1, -99, 32, 184 . "ave(X)", zsto ,zout)181 . "ave(X)", zstophy,zout) 185 182 c 186 183 c Champs dynamiques sur niveaux de pression 187 DO k=1, nlevENS 188 c 189 CALL histdef(nid_day, "u"//clev(k), 190 . "Zonal wind"//clev(k)//"mb","m/s", 191 . iim,jjmp1,nhori, 1,1,1, -99, 32, 192 . "ave(X)", zsto,zout) 193 c 194 CALL histdef(nid_day, "v"//clev(k), 195 . "Meridional wind"//clev(k)//"mb","m/s", 196 . iim,jjmp1,nhori, 1,1,1, -99, 32, 197 . "ave(X)", zsto,zout) 198 c 199 ENDDO !nlevENS 200 c 201 CALL histdef(nid_day, "w500", "Verical wind 500mb", "m/s", 202 . iim,jjmp1,nhori, 1,1,1, -99, 32, 203 . "ave(X)", zsto,zout) 204 c 205 CALL histdef(nid_day,"phi500", "Geopotentiel a 500mb","m2/s2", 206 . iim,jjmp1,nhori, 1,1,1, -99, 32, 207 . "ave(X)", zsto,zout) 184 c 185 c DO k=1, nlevENS 186 DO k=1, nlevSTD 187 c 188 c bb=clevSTD(k) 189 c 190 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 191 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 192 c aa=clevSTD(k) 193 c bb2=clevSTD(k) 194 c ENDIF 195 c 196 IF(bb2.EQ."850".OR.bb2.EQ."700" 197 . .OR.bb2.EQ."500".OR.bb2.EQ."200") THEN 198 c 199 CALL histdef(nid_day, "u"//bb2, 200 . "Zonal wind "//bb2//"mb","m/s", 201 . iim,jjmp1,nhori, 1,1,1, -99, 32, 202 . "inst(X)", zout,zout) 203 c 204 CALL histdef(nid_day, "v"//bb2, 205 . "Meridional wind "//bb2//"mb","m/s", 206 . iim,jjmp1,nhori, 1,1,1, -99, 32, 207 . "inst(X)", zout,zout) 208 c 209 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.bb2.EQ."500".OR.bb2.EQ."200") THEN 210 c 211 IF(bb2.EQ."500") THEN 212 c 213 CALL histdef(nid_day, "w"//bb2, "Vertical wind "//bb2//"mb", 214 . "m/s", 215 . iim,jjmp1,nhori, 1,1,1, -99, 32, 216 . "inst(X)", zout,zout) 217 c 218 CALL histdef(nid_day,"phi"//bb2, "Geopotential "//bb2//"mb", 219 . "m", 220 . iim,jjmp1,nhori, 1,1,1, -99, 32, 221 . "inst(X)", zout,zout) 222 c 223 ENDIF !(bb2.EQ."500") 224 c 225 ENDDO !nlevSTD 208 226 c 209 227 CALL histdef(nid_day, "slp", "Sea Level Pressure", "Pa", 210 228 . iim,jjmp1,nhori, 1,1,1, -99, 32, 211 . "ave(X)", zsto ,zout)229 . "ave(X)", zstophy,zout) 212 230 c 213 231 CALL histdef(nid_day, "cape_max", "CAPE max.", 214 232 . "J/kg", 215 233 . iim,jjmp1,nhori, 1,1,1, -99, 32, 216 . capemaxcels, zsto ,zout)234 . capemaxcels, zstophy,zout) 217 235 c 218 236 CALL histdef(nid_day, "solldown", "Down. IR rad. at surface", 219 237 . "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32, 220 . "ave(X)", zsto ,zout)238 . "ave(X)", zstophy,zout) 221 239 c 222 240 CALL histdef(nid_day, "sens", "Sensible heat flux", "W/m2", 223 241 . iim,jjmp1,nhori, 1,1,1, -99, 32, 224 . "ave(X)", zsto ,zout)242 . "ave(X)", zstophy,zout) 225 243 c 226 244 CALL histdef(nid_day, "SWdnSFC", "SWdn at surface","W/m2", 227 245 . iim,jjmp1,nhori, 1,1,1,-99, 228 . 32, "ave(X)", zsto,zout) 246 . 32, "ave(X)", zstophy,zout) 247 c 248 cIM diagnostiques flux ocean-atm ou ocean-glace de mer 249 cIM pour utilisation dans un modele de "slab" ocean 250 c 251 IF (OCEAN.EQ.'force ') THEN 252 c 253 CALL histdef(nid_day, "lmt_bils", 254 . "Bilan au sol atmosphere forcee", "W/m2", 255 . iim,jjmp1,nhori, 1,1,1, -99, 32, 256 . "ave(X)", zstophy,zout) 257 c 258 ELSE IF (OCEAN.EQ.'slab ') THEN 259 c 260 CALL histdef(nid_day, "slab_bils", 261 . "Bilan au sol slab", "W/m2", 262 . iim,jjmp1,nhori, 1,1,1, -99, 32, 263 . "ave(X)", zstophy,zout) 264 c 265 CALL histdef(nid_day, "tslab", "Slab SST ", "K", 266 . iim,jjmp1,nhori, 1,1,1, -99, 32, 267 . "ave(X)", zstophy,zout) 268 c 269 CALL histdef(nid_day, "seaice", "Slab seaice", "kg/m2", 270 . iim,jjmp1,nhori, 1,1,1, -99, 32, 271 . "ave(X)", zstophy,zout) 272 c 273 CALL histdef(nid_day, "siceh", "Slab seaice height", "m", 274 . iim,jjmp1,nhori, 1,1,1, -99, 32, 275 . "ave(X)", zstophy,zout) 276 c 277 ENDIF !OCEAN.EQ.force/slab 278 c 279 CALL histdef(nid_day, "fluxo", 280 . "Flux turbulents ocean-atmosphere", "W/m2", 281 . iim,jjmp1,nhori, 1,1,1, -99, 32, 282 . "ave(X)", zstophy,zout) 283 c 284 CALL histdef(nid_day, "fluxg", 285 . "Flux ocean-glace de mer", "W/m2", 286 . iim,jjmp1,nhori, 1,1,1, -99, 32, 287 . "ave(X)", zstophy,zout) 229 288 c 230 289 ENDIF !lev_histday.GE.1 … … 234 293 CALL histdef(nid_day, "bils", "Surf. total heat flux", "W/m2", 235 294 . iim,jjmp1,nhori, 1,1,1, -99, 32, 236 . "ave(X)", zsto ,zout)295 . "ave(X)", zstophy,zout) 237 296 c 238 297 CALL histdef(nid_day, "fder", "Heat flux derivation", "W/m2/K", 239 298 . iim,jjmp1,nhori, 1,1,1, -99, 32, 240 . "ave(X)", zsto ,zout)299 . "ave(X)", zstophy,zout) 241 300 c 242 301 ENDIF !lev_histday.GE.2 … … 252 311 CALL histdef(nid_day, "temp", "Air temperature", "K", 253 312 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 254 . "ave(X)", zsto ,zout)313 . "ave(X)", zstophy,zout) 255 314 c 256 315 CALL histdef(nid_day, "ovap", "Specific humidity", "kg/kg", 257 316 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 258 . "ave(X)", zsto ,zout)259 c 260 CALL histdef(nid_day, "geop", "Geopotential height", "m ",261 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 262 . "ave(X)", zsto ,zout)317 . "ave(X)", zstophy,zout) 318 c 319 CALL histdef(nid_day, "geop", "Geopotential height", "m2/s2", 320 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 321 . "ave(X)", zstophy,zout) 263 322 c 264 323 CALL histdef(nid_day, "vitu", "Zonal wind", "m/s", 265 324 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 266 . "ave(X)", zsto ,zout)325 . "ave(X)", zstophy,zout) 267 326 c 268 327 CALL histdef(nid_day, "vitv", "Meridional wind", "m/s", 269 328 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 270 . "ave(X)", zsto ,zout)271 c 272 CALL histdef(nid_day, "vitw", "Vertical wind", " Pa/s",273 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 274 . "ave(X)", zsto ,zout)329 . "ave(X)", zstophy,zout) 330 c 331 CALL histdef(nid_day, "vitw", "Vertical wind", "m/s", 332 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 333 . "ave(X)", zstophy,zout) 275 334 c 276 335 CALL histdef(nid_day, "pres", "Air pressure", "Pa", 277 336 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 278 . "ave(X)", zsto ,zout)337 . "ave(X)", zstophy,zout) 279 338 c 280 339 c================================================================= … … 292 351 CALL histdef(nid_day, "SWupTOA", "SWup at TOA","W/m2", 293 352 . iim,jjmp1,nhori, 1,1,1,-99, 294 . 32, "ave(X)", zsto ,zout)353 . 32, "ave(X)", zstophy,zout) 295 354 c 296 355 CALL histdef(nid_day, "SWupSFC", "SWup at surface","W/m2", 297 356 . iim,jjmp1,nhori, 1,1,1,-99, 298 . 32, "ave(X)", zsto ,zout)357 . 32, "ave(X)", zstophy,zout) 299 358 c 300 359 CALL histdef(nid_day, "SWdnTOA", "SWdn at TOA","W/m2", 301 360 . iim,jjmp1,nhori, 1,1,1,-99, 302 . 32, "ave(X)", zsto ,zout)361 . 32, "ave(X)", zstophy,zout) 303 362 c 304 363 CALL histdef(nid_day, "SWupTOAclr", 305 364 . "SWup clear sky at TOA","W/m2", 306 365 . iim,jjmp1,nhori, 1,1,1,-99, 307 . 32, "ave(X)", zsto ,zout)366 . 32, "ave(X)", zstophy,zout) 308 367 309 368 CALL histdef(nid_day, "SWupSFCclr", 310 369 . "SWup clear sky at surface","W/m2", 311 370 . iim,jjmp1,nhori, 1,1,1,-99, 312 . 32, "ave(X)", zsto ,zout)371 . 32, "ave(X)", zstophy,zout) 313 372 314 373 CALL histdef(nid_day, "SWdnTOAclr", 315 374 . "SWdn clear sky at TOA","W/m2", 316 375 . iim,jjmp1,nhori, 1,1,1,-99, 317 . 32, "ave(X)", zsto ,zout)376 . 32, "ave(X)", zstophy,zout) 318 377 319 378 CALL histdef(nid_day, "SWdnSFCclr", 320 379 . "SWdn clear sky at surface","W/m2", 321 380 . iim,jjmp1,nhori, 1,1,1,-99, 322 . 32, "ave(X)", zsto ,zout)381 . 32, "ave(X)", zstophy,zout) 323 382 c 324 383 c================================================================= … … 328 387 c================================================================= 329 388 c 330 CALL histdef(nid_day, "tter", "Surface Temperature ", "K",331 . iim,jjmp1,nhori, 1,1,1, -99, 32, 332 . "ave(X)", zsto ,zout)333 c 334 CALL histdef(nid_day, "tlic", "Surface Temperature ", "K",335 . iim,jjmp1,nhori, 1,1,1, -99, 32, 336 . "ave(X)", zsto ,zout)337 c 338 CALL histdef(nid_day, "toce", "Surface Temperature ", "K",339 . iim,jjmp1,nhori, 1,1,1, -99, 32, 340 . "ave(X)", zsto ,zout)341 c 342 CALL histdef(nid_day, "tsic", "Surface Temperature ", "K",343 . iim,jjmp1,nhori, 1,1,1, -99, 32, 344 . "ave(X)", zsto ,zout)345 c 346 CALL histdef(nid_day, "t2mter", "Temp.ter re 2m", "K",347 . iim,jjmp1,nhori, 1,1,1, -99, 32, 348 . "ave(X)", zsto ,zout)389 CALL histdef(nid_day, "tter", "Surface Temperature ter", "K", 390 . iim,jjmp1,nhori, 1,1,1, -99, 32, 391 . "ave(X)", zstophy,zout) 392 c 393 CALL histdef(nid_day, "tlic", "Surface Temperature lic", "K", 394 . iim,jjmp1,nhori, 1,1,1, -99, 32, 395 . "ave(X)", zstophy,zout) 396 c 397 CALL histdef(nid_day, "toce", "Surface Temperature oce", "K", 398 . iim,jjmp1,nhori, 1,1,1, -99, 32, 399 . "ave(X)", zstophy,zout) 400 c 401 CALL histdef(nid_day, "tsic", "Surface Temperature sic", "K", 402 . iim,jjmp1,nhori, 1,1,1, -99, 32, 403 . "ave(X)", zstophy,zout) 404 c 405 CALL histdef(nid_day, "t2mter", "Temp.tere 2m", "K", 406 . iim,jjmp1,nhori, 1,1,1, -99, 32, 407 . "ave(X)", zstophy,zout) 349 408 c 350 409 CALL histdef(nid_day, "t2mlic", "Temp.lic 2m", "K", 351 410 . iim,jjmp1,nhori, 1,1,1, -99, 32, 352 . "ave(X)", zsto ,zout)411 . "ave(X)", zstophy,zout) 353 412 c 354 413 CALL histdef(nid_day, "t2moce", "Temp.oce 2m", "K", 355 414 . iim,jjmp1,nhori, 1,1,1, -99, 32, 356 . "ave(X)", zsto ,zout)415 . "ave(X)", zstophy,zout) 357 416 c 358 417 CALL histdef(nid_day, "t2msic", "Temp.sic 2m", "K", 359 418 . iim,jjmp1,nhori, 1,1,1, -99, 32, 360 . "ave(X)", zsto ,zout)419 . "ave(X)", zstophy,zout) 361 420 c 362 421 CALL histdef(nid_day, "t2mter_min", "Temp.terre 2m min.", 363 422 . "K", 364 423 . iim,jjmp1,nhori, 1,1,1, -99, 32, 365 . t2mincels, zsto ,zout)424 . t2mincels, zstophy,zout) 366 425 c 367 426 CALL histdef(nid_day, "t2mter_max", "Temp.terre 2m max.", 368 427 . "K", 369 428 . iim,jjmp1,nhori, 1,1,1, -99, 32, 370 . t2maxcels, zsto ,zout)429 . t2maxcels, zstophy,zout) 371 430 c 372 431 CALL histdef(nid_day, "u10mter", "Vent zonal ter 10m", "m/s", 373 432 . iim,jjmp1,nhori, 1,1,1, -99, 32, 374 . "ave(X)", zsto ,zout)433 . "ave(X)", zstophy,zout) 375 434 c 376 435 CALL histdef(nid_day, "u10mlic", "Vent zonal lic 10m", "m/s", 377 436 . iim,jjmp1,nhori, 1,1,1, -99, 32, 378 . "ave(X)", zsto ,zout)437 . "ave(X)", zstophy,zout) 379 438 c 380 439 CALL histdef(nid_day, "u10moce", "Vent zonal oce 10m", "m/s", 381 440 . iim,jjmp1,nhori, 1,1,1, -99, 32, 382 . "ave(X)", zsto ,zout)441 . "ave(X)", zstophy,zout) 383 442 c 384 443 CALL histdef(nid_day, "u10msic", "Vent zonal sic 10m", 385 444 . "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32, 386 . "ave(X)", zsto ,zout)445 . "ave(X)", zstophy,zout) 387 446 c 388 447 CALL histdef(nid_day, "v10mter", "Vent meridien ter 10m", 389 448 . "m/s", iim,jjmp1,nhori, 1,1,1, -99, 32, 390 . "ave(X)", zsto ,zout)449 . "ave(X)", zstophy,zout) 391 450 c 392 451 CALL histdef(nid_day, "v10mlic", "Vent meridien lic 10m", 393 452 . "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32, 394 . "ave(X)", zsto ,zout)453 . "ave(X)", zstophy,zout) 395 454 c 396 455 CALL histdef(nid_day, "v10moce", "Vent meridien oce 10m", 397 456 . "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32, 398 . "ave(X)", zsto ,zout)457 . "ave(X)", zstophy,zout) 399 458 c 400 459 CALL histdef(nid_day, "v10msic", "Vent meridien sic 10m", 401 460 . "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32, 402 . "ave(X)", zsto ,zout)461 . "ave(X)", zstophy,zout) 403 462 c 404 463 DO nsrf = 1, nbsrf 405 464 C 406 465 call histdef(nid_day, "pourc_"//clnsurf(nsrf), 407 $ "Fraction"//clnsurf(nsrf), "W/m2", 408 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 409 $ "ave(X)", zsto,zout) 466 $ "% "//clnsurf(nsrf), "%", 467 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 468 $ "ave(X)", zstophy,zout) 469 C 470 call histdef(nid_day, "fract_"//clnsurf(nsrf), 471 $ "Fraction "//clnsurf(nsrf), "1", 472 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 473 $ "ave(X)", zstophy,zout) 410 474 C 411 475 call histdef(nid_day, "tsol_"//clnsurf(nsrf), 412 $ " Fraction"//clnsurf(nsrf), "W/m2",413 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 414 $ "ave(X)", zsto ,zout)476 $ "Temperature "//clnsurf(nsrf), "K", 477 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 478 $ "ave(X)", zstophy,zout) 415 479 C 416 480 call histdef(nid_day, "sens_"//clnsurf(nsrf), 417 481 $ "Sensible heat flux "//clnsurf(nsrf), "W/m2", 418 482 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 419 $ "ave(X)", zsto ,zout)483 $ "ave(X)", zstophy,zout) 420 484 c 421 485 call histdef(nid_day, "lat_"//clnsurf(nsrf), 422 486 $ "Latent heat flux "//clnsurf(nsrf), "W/m2", 423 487 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 424 $ "ave(X)", zsto ,zout)488 $ "ave(X)", zstophy,zout) 425 489 C 426 490 call histdef(nid_day, "taux_"//clnsurf(nsrf), 427 $ "Zonal wind stress "//clnsurf(nsrf),"Pa",428 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 429 $ "ave(X)", zsto ,zout)491 $ "Zonal wind stress "//clnsurf(nsrf),"Pa", 492 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 493 $ "ave(X)", zstophy,zout) 430 494 431 495 call histdef(nid_day, "tauy_"//clnsurf(nsrf), 432 $ "Meridional xind stress "//clnsurf(nsrf), "Pa",433 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 434 $ "ave(X)", zsto ,zout)496 $ "Meridional wind stress "//clnsurf(nsrf), "Pa", 497 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 498 $ "ave(X)", zstophy,zout) 435 499 C 436 500 call histdef(nid_day, "albe_"//clnsurf(nsrf), 437 $ "Albedo surf. "//clnsurf(nsrf), " W/m2",438 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 439 $ "ave(X)", zsto ,zout)501 $ "Albedo surf. "//clnsurf(nsrf), "-", 502 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 503 $ "ave(X)", zstophy,zout) 440 504 C 441 505 call histdef(nid_day, "rugs_"//clnsurf(nsrf), 442 $ " Latent heat flux "//clnsurf(nsrf), "W/m2",443 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 444 $ "ave(X)", zsto ,zout)506 $ "Rugosite "//clnsurf(nsrf), "m", 507 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 508 $ "ave(X)", zstophy,zout) 445 509 C 446 510 END DO … … 452 516 c================================================================= 453 517 ENDIF !lev_histday.GE.4 518 c 519 IF(lev_histday.GE.5) THEN !lev_histday.GE.5 520 c 521 c rajout sorties F. Aires 522 CALL histdef(nid_day, "tops0", "CS Solar rad. at TOA", 523 . "W/m2", 524 . iim,jjmp1,nhori, 1,1,1, -99, 32, 525 . "ave(X)", zstophy,zout) 526 c 527 CALL histdef(nid_day, "topl0", "CS IR rad. at TOA", 528 . "W/m2", 529 . iim,jjmp1,nhori, 1,1,1, -99, 32, 530 . "ave(X)", zstophy,zout) 531 c 532 CALL histdef(nid_day, "sols0", "CS Net Solar rad. at surf.", 533 . "W/m2", 534 . iim,jjmp1,nhori, 1,1,1, -99, 32, 535 . "ave(X)", zstophy,zout) 536 c 537 CALL histdef(nid_day, "soll0", "CS Net IR rad. at surface", 538 . "W/m2", 539 . iim,jjmp1,nhori, 1,1,1, -99, 32, 540 . "ave(X)", zstophy,zout) 541 c 542 CALL histdef(nid_day, "rneb", "Cloud fraction", "-", 543 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 544 . "ave(X)", zstophy,zout) 545 c 546 CALL histdef(nid_day, "rnebcon", "Convective Cloud Fraction" 547 . , "-", 548 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 549 . "ave(X)", zstophy,zout) 550 c 551 CALL histdef(nid_day,"lwcon","Cloud liquid water content", 552 . "kg/kg", 553 . iim,jjmp1,nhori, klev,1,klev, nvert, 32, 554 . "ave(X)", zstophy,zout) 555 c 556 CALL histdef(nid_day,"iwcon","Cloud ice water content","kg/kg", 557 . iim,jjmp1,nhori, klev,1,klev, nvert, 32, 558 . "ave(X)", zstophy,zout) 559 c 560 CALL histdef(nid_day,"lwp","Cloud water path","kg/m2", 561 . iim,jjmp1,nhori, 1,1,1, -99, 32, 562 . "ave(X)", zstophy,zout) 563 c 564 CALL histdef(nid_day,"iwp","Cloud ice water path","kg/m2", 565 . iim,jjmp1,nhori, 1,1,1, -99, 32, 566 . "ave(X)", zstophy,zout) 567 c 568 CALL histdef(nid_day,"meantaucld", 569 . "ISCCP mean cloud optical thickness","1", 570 . iim,jjmp1,nhori, 1,1,1, -99, 32, 571 . "ave(X)", zstophy,zout) 572 c 573 CALL histdef(nid_day,"cldtau","Cloud optical thickness","1", 574 . iim,jjmp1,nhori, klev,1,klev, nvert, 32, 575 . "ave(X)", zstophy,zout) 576 c 577 CALL histdef(nid_day,"cldemi","Cloud optical emissivity","1", 578 . iim,jjmp1,nhori, klev,1,klev, nvert, 32, 579 . "ave(X)", zstophy,zout) 580 c 581 ENDIF !lev_histday.GE.5 454 582 c================================================================= 455 583 c -
LMDZ4/trunk/libf/phylmd/ini_histhf.h
r590 r644 5 5 IF (ok_hf) THEN 6 6 c 7 zout = dtime * REAL(NINT(86400./dtime*ecrit_hf))8 zsto = zout9 zsto1 = dtime10 PRINT*, 'La frequence de sortie instant. est de ', ecrit_hf7 zstohf = dtime * FLOAT(ecrit_hf) 8 zstophy = dtime 9 zstoday = dtime * FLOAT(ecrit_day) 10 zout = dtime * FLOAT(ecrit_hf) 11 11 c 12 12 idayref = day_ref … … 21 21 22 22 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 23 24 cccIM CALL histbeg("histhf", iim,zx_lon, jjmp1,zx_lat,25 23 CALL histbeg("histhf", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 26 24 . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, … … 28 26 29 27 CALL histvert(nid_hf, "presnivs", "Vertical levels", "mb", 30 . klev, presnivs, nvert) 31 c 32 28 . klev, presnivs/100., nvert) 29 c 30 31 IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN 32 c 33 33 IF(lev_histhf.GE.1) THEN 34 34 c 35 c CALL histdef(nid_hf, "phis", "Surface geop. height", "-",36 c . iim,jjmp1,nhori, 1,1,1, -99, 32,37 c . "once", zsto,zout)38 c39 c CALL histdef(nid_hf, "aire", "Grid area", "-",40 c . iim,jjmp1,nhori, 1,1,1, -99, 32,41 c . "once", zsto,zout)42 c43 35 CALL histdef(nid_hf, "aireTER","Grid area CONT","-", 44 36 . iim,jjmp1,nhori, 1,1,1, -99, 32, 45 . "once", zsto ,zout)37 . "once", zstohf,zout) 46 38 c 47 39 CALL histdef(nid_hf, "contfracATM","% sfce ter+lic ","-", 48 40 . iim,jjmp1,nhori, 1,1,1, -99, 32, 49 . "once", zsto ,zout)41 . "once", zstohf,zout) 50 42 c 51 43 CALL histdef(nid_hf, "contfracOR","% sfce terre OR", "-", 52 44 . iim,jjmp1,nhori, 1,1,1, -99, 32, 53 . "once", zsto ,zout)45 . "once", zstohf,zout) 54 46 c 55 47 c Champs 2D: … … 57 49 CALL histdef(nid_hf, "t2m", "Temperature 2m", "K", 58 50 . iim,jjmp1,nhori, 1,1,1, -99, 32, 59 . "inst(X)", zsto ,zout)51 . "inst(X)", zstohf,zout) 60 52 c 61 53 CALL histdef(nid_hf, "q2m", "Specific humidity", "kg/kg", 62 54 . iim,jjmp1,nhori, 1,1,1, -99, 32, 63 . "inst(X)", zsto ,zout)55 . "inst(X)", zstohf,zout) 64 56 c 65 57 CALL histdef(nid_hf, "psol", "Surface Pressure", "Pa", 66 58 . iim,jjmp1,nhori, 1,1,1, -99, 32, 67 . "inst(X)", zsto,zout) 68 c 69 print*,'ATTENTION METTRE AVE(X) POUR LES PRECIPS' 70 71 CALL histdef(nid_hf, "rain", "Precipitation", "kg/m^2s", 59 . "inst(X)", zstohf,zout) 60 c 61 CALL histdef(nid_hf, "precip", "Precipitation", "kg/(s*m2)", 72 62 . iim,jjmp1,nhori, 1,1,1, -99, 32, 73 . "ave(X)", zsto 1,zout)63 . "ave(X)", zstophy,zout) 74 64 c 75 65 cIM ENSEMBLES BEG 76 c77 66 CALL histdef(nid_hf, "tsol", "Surface Temperature", "K", 78 67 . iim,jjmp1,nhori, 1,1,1, -99, 32, 79 . "inst(X)", zsto ,zout)68 . "inst(X)", zstohf,zout) 80 69 c 81 70 CALL histdef(nid_hf, "slp", "Sea Level Pressure", "Pa", 82 71 . iim,jjmp1,nhori, 1,1,1, -99, 32, 83 . "inst(X)", zsto,zout) 84 c 72 . "inst(X)", zstohf,zout) 85 73 c 86 74 CALL histdef(nid_hf, "u10m", "Vent zonal 10m", "m/s", 87 75 . iim,jjmp1,nhori, 1,1,1, -99, 32, 88 . "inst(X)", zsto ,zout)76 . "inst(X)", zstohf,zout) 89 77 c 90 78 CALL histdef(nid_hf, "v10m", "Vent meridien 10m", "m/s", 91 79 . iim,jjmp1,nhori, 1,1,1, -99, 32, 92 . "inst(X)", zsto ,zout)80 . "inst(X)", zstohf,zout) 93 81 c 94 82 CALL histdef(nid_hf, "wind10m","10-m wind speed","m/s", 95 83 . iim,jjmp1,nhori, 1,1,1, -99, 32, 96 . "inst(X)", zsto,zout) 97 c 98 DO k=1, nlevENS 99 IF(clev(k).EQ."500") THEN 100 CALL histdef(nid_hf, "phi"//clev(k), 101 . "Geopotential"//clev(k)//"mb", "m2/s2", 102 . iim,jjmp1,nhori, 1,1,1, -99, 32, 103 . "inst(X)", zsto,zout) 104 ENDIF !clev(k).EQ."500" 105 ENDDO !k=1, nlevENS 84 . "inst(X)", zstohf,zout) 85 c 86 DO k=1, nlevSTD 87 c 88 c bb=clevSTD(k) 89 c 90 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 91 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 92 c 93 c IF(k.GE.2) THEN 94 c aa=clevSTD(k) 95 c bb=aa(1:lnblnk1(aa)) 96 c ENDIF 97 c 98 IF(bb2.EQ."500") THEN 99 CALL histdef(nid_hf, "phi"//bb2, 100 . "Geopotential "//bb2//"mb", "m", 101 . iim,jjmp1,nhori, 1,1,1, -99, 32, 102 . "inst(X)", zstohf,zout) 103 ENDIF !bb2.EQ."500" 104 ENDDO !k=1, nlevSTD 106 105 c 107 106 ENDIF !lev_histhf.GE.1 … … 109 108 IF(lev_histhf.GE.2) THEN 110 109 c 111 CALL histdef(nid_hf, "cldt", "Total cloudiness", "-", 112 . iim,jjmp1,nhori, 1,1,1, -99, 32, 113 . "ave(X)", zsto1,zout) 114 c 115 c -- LOOP 110 CALL histdef(nid_hf, "cldt", "Total cloudiness", "%", 111 . iim,jjmp1,nhori, 1,1,1, -99, 32, 112 . "ave(X)", zstophy,zout) 113 c 114 CALL histdef(nid_hf, "SWnetOR", 115 . "Sfce net SW radiation OR", "W/m2", 116 . iim,jjmp1,nhori, 1,1,1, -99, 32, 117 . "ave(X)", zstophy,zout) 118 c 116 119 CALL histdef(nid_hf, "SWdownOR", 117 . "Sfce incident SW down radiation OR", "W/m^2", 118 . iim,jjmp1,nhori, 1,1,1, -99, 32, 119 . "ave(X)", zsto1,zout) 120 c 121 CALL histdef(nid_hf, "SWnetOR", 122 . "Sfce incident SW net radiation OR", "W/m^2", 123 . iim,jjmp1,nhori, 1,1,1, -99, 32, 124 . "ave(X)", zsto1,zout) 125 c -- LOOP 120 . "Sfce incident SW radiation OR", "W/m2", 121 . iim,jjmp1,nhori, 1,1,1, -99, 32, 122 . "ave(X)", zstophy,zout) 126 123 c 127 124 CALL histdef(nid_hf, "LWdownOR", 128 . "Sfce incident LW radiation OR", "W/m ^2",129 . iim,jjmp1,nhori, 1,1,1, -99, 32, 130 . "ave(X)", zsto 1,zout)125 . "Sfce incident LW radiation OR", "W/m2", 126 . iim,jjmp1,nhori, 1,1,1, -99, 32, 127 . "ave(X)", zstophy,zout) 131 128 ENDIF !lev_histhf.GE.2 132 129 c … … 135 132 IF(lev_histhf.GE.3) THEN 136 133 c 137 DO k=1, nlevENS 138 c 139 CALL histdef(nid_hf, "t"//clev(k), 140 . "Temperature"//clev(k)//"mb","K", 141 . iim,jjmp1,nhori, 1,1,1, -99, 32, 142 . "inst(X)", zsto,zout) 143 c 144 IF(clev(k).NE."500") THEN 145 CALL histdef(nid_hf, "phi"//clev(k), 146 . "Geopotential"//clev(k)//"mb", "m2/s2", 147 . iim,jjmp1,nhori, 1,1,1, -99, 32, 148 . "inst(X)", zsto,zout) 134 DO k=1, nlevSTD 135 c 136 c bb=clevSTD(k) 137 c 138 c IF(k.GE.2) THEN 139 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 140 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 141 c aa=clevSTD(k) 142 c bb=aa(1:lnblnk1(aa)) 143 c ENDIF 144 c 145 IF(bb2.EQ."850".or.bb2.EQ."700".OR. 146 $ bb2.EQ."500".or.bb2.EQ."200") THEN 147 c 148 CALL histdef(nid_hf, "t"//bb2, 149 . "Temperature "//bb2//"mb","K", 150 . iim,jjmp1,nhori, 1,1,1, -99, 32, 151 . "inst(X)", zstohf,zout) 152 c 153 IF(bb2.NE."500") THEN 154 CALL histdef(nid_hf, "phi"//bb2, 155 . "Geopotential "//bb2//"mb", "m", 156 . iim,jjmp1,nhori, 1,1,1, -99, 32, 157 . "inst(X)", zstohf,zout) 149 158 ENDIF 150 159 c 151 CALL histdef(nid_hf, "q"//clev(k), 152 . "Specific humidity"//clev(k)//"mb","kg/kg", 153 . iim,jjmp1,nhori, 1,1,1, -99, 32, 154 . "inst(X)", zsto,zout) 155 c 156 IF(1.EQ.0) THEN 157 CALL histdef(nid_hf, "rh"//clev(k), 158 . "Relative humidity"//clev(k)//"mb", "%", 159 . iim,jjmp1,nhori, 1,1,1, -99, 32, 160 . "inst(X)", zsto,zout) 161 ENDIF 162 c 163 CALL histdef(nid_hf, "u"//clev(k), 164 . "Zonal wind"//clev(k)//"mb","m/s", 165 . iim,jjmp1,nhori, 1,1,1, -99, 32, 166 . "inst(X)", zsto,zout) 167 c 168 CALL histdef(nid_hf, "v"//clev(k), 169 . "Meridional wind"//clev(k)//"mb","m/s", 170 . iim,jjmp1,nhori, 1,1,1, -99, 32, 171 . "inst(X)", zsto,zout) 172 c 173 ENDDO !nlevENS 174 IF(1.EQ.0) THEN 175 CALL histdef(nid_hf, "cdrm", " Momentum drag coef.", "-", 176 . iim,jjmp1,nhori, 1,1,1, -99, 32, 177 . "inst(X)", zsto,zout) 178 c 179 CALL histdef(nid_hf, "cdrh", "Heat drag coef.", "-", 180 . iim,jjmp1,nhori, 1,1,1, -99, 32, 181 . "inst(X)", zsto,zout) 182 ENDIF !(1.EQ.0) THEN 160 CALL histdef(nid_hf, "q"//bb2, 161 . "Specific humidity "//bb2//"mb","kg/kg", 162 . iim,jjmp1,nhori, 1,1,1, -99, 32, 163 . "inst(X)", zstohf,zout) 164 c 165 CALL histdef(nid_hf, "u"//bb2, 166 . "Zonal wind "//bb2//"mb","m/s", 167 . iim,jjmp1,nhori, 1,1,1, -99, 32, 168 . "inst(X)", zstohf,zout) 169 c 170 CALL histdef(nid_hf, "v"//bb2, 171 . "Meridional wind "//bb2//"mb","m/s", 172 . iim,jjmp1,nhori, 1,1,1, -99, 32, 173 . "inst(X)", zstohf,zout) 174 c 175 ENDIF !IF(bb2.EQ."850".or.bb2.EQ."700".OR. 176 c 177 ENDDO !nlevSTD 183 178 c 184 179 ENDIF !lev_histhf.GE.3 185 180 c 186 181 IF(lev_histhf.GE.4) THEN 182 c 183 cIM sorties hf 3D 184 c 185 #undef histhf3d 187 186 #define histhf3d 188 187 #ifdef histhf3d … … 191 190 ENDIF !lev_histhf.GE.4 192 191 c 193 c#define histhf3d 194 c#ifdef histhf3d 195 c#include "ini_histhf3d.h" 196 c#endif 197 c 198 CALL histend(nid_hf) 199 c 200 endif ! ok_hf 192 ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN 193 c 194 IF(lev_histhf.GE.1) THEN 195 c 196 DO k=1, nlevSTD 197 c 198 c 199 c bb=clevSTD(k) 200 c 201 c IF(k.GE.2) THEN 202 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 203 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 204 c aa=clevSTD(k) 205 c bb=aa(1:lnblnk1(aa)) 206 c ENDIF 207 c 208 IF(bb2.EQ."850".or.bb2.EQ."200") THEN 209 c 210 CALL histdef(nid_hf, "u"//bb2, 211 . "Zonal wind "//bb2//"mb","m/s", 212 . iim,jjmp1,nhori, 1,1,1, -99, 32, 213 . "inst(X)", zstohf,zstohf) 214 c 215 CALL histdef(nid_hf, "v"//bb2, 216 . "Meridional wind "//bb2//"mb","m/s", 217 . iim,jjmp1,nhori, 1,1,1, -99, 32, 218 . "inst(X)", zstohf,zstohf) 219 c 220 ENDIF !bb2.EQ."850".or.bb2.EQ."200" 221 ENDDO !k=1, nlevSTD 222 c 223 CALL histdef(nid_hf, "topl", 224 . "Outgoing longwave radiation", "W/m2", 225 . iim,jjmp1,nhori, 1,1,1, -99, 32, 226 . "ave(X)", zstophy,zout) 227 c 228 CALL histdef(nid_hf, "precip","Total precipitation rate", 229 . "kg/(s*m2)",iim,jjmp1,nhori, 1,1,1, -99, 32, 230 . "ave(X)", zstophy,zout) 231 c 232 CALL histdef(nid_hf, "slp", 233 . "Mean sea-level pressure", "Pa", 234 . iim,jjmp1,nhori, 1,1,1, -99, 32, 235 . "inst(X)", zstohf,zout) 236 c 237 cIM 280504 BEG 238 ENDIF !(lev_histhf.GE.1) THEN 239 c 240 IF(lev_histhf.GE.2) THEN 241 c 242 DO k=1, nlevSTD 243 c 244 c bb=clevSTD(k) 245 c 246 c IF(k.GE.2) THEN 247 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 248 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 249 c aa=clevSTD(k) 250 c bb=aa(1:lnblnk1(aa)) 251 c ENDIF 252 c 253 IF(bb2.EQ."850".OR.bb2.EQ."500") THEN 254 c 255 CALL histdef(nid_hf, "t"//bb2, 256 . "Temperature "//bb2//"mb","K", 257 . iim,jjmp1,nhori, 1,1,1, -99, 32, 258 . "inst(X)", zstohf,zstohf) 259 c 260 CALL histdef(nid_hf, "q"//bb2, 261 . "Specific humidity "//bb2//"mb","kg/kg", 262 . iim,jjmp1,nhori, 1,1,1, -99, 32, 263 . "inst(X)", zstohf,zstohf) 264 c 265 ENDIF !bb2 266 c 267 IF(bb2.EQ."500") THEN 268 c 269 CALL histdef(nid_hf, "phi"//bb2, 270 . "Geopotential "//bb2//"mb", "m", 271 . iim,jjmp1,nhori, 1,1,1, -99, 32, 272 . "inst(X)", zstohf,zstohf) 273 c 274 CALL histdef(nid_hf, "w"//bb2, 275 . "Vertical motion "//bb2//"mb","Pa/s", 276 . iim,jjmp1,nhori, 1,1,1, -99, 32, 277 . "inst(X)", zstohf,zstohf) 278 ENDIF !bb2.EQ."500" 279 c 280 IF(bb3.EQ."50") THEN 281 c 282 CALL histdef(nid_hf, "t"//bb3, 283 . "Temperature "//bb3//"mb","K", 284 . iim,jjmp1,nhori, 1,1,1, -99, 32, 285 . "inst(X)", zstohf,zstohf) 286 c 287 CALL histdef(nid_hf, "u"//bb3, 288 . "Zonal wind "//bb3//"mb","m/s", 289 . iim,jjmp1,nhori, 1,1,1, -99, 32, 290 . "inst(X)", zstohf,zstohf) 291 c 292 CALL histdef(nid_hf, "v"//bb3, 293 . "Meridional wind "//bb3//"mb","m/s", 294 . iim,jjmp1,nhori, 1,1,1, -99, 32, 295 . "inst(X)", zstohf,zstohf) 296 c 297 ENDIF !bb3 298 c 299 ENDDO !k=1, nlevSTD 300 c 301 CALL histdef(nid_hf, "u10m", "Vent zonal 10m", "m/s", 302 . iim,jjmp1,nhori, 1,1,1, -99, 32, 303 . "inst(X)", zstohf,zout) 304 c 305 CALL histdef(nid_hf, "v10m", "Vent meridien 10m", "m/s", 306 . iim,jjmp1,nhori, 1,1,1, -99, 32, 307 . "inst(X)", zstohf,zout) 308 c 309 CALL histdef(nid_hf, "t2m", "Temperature 2m", "K", 310 . iim,jjmp1,nhori, 1,1,1, -99, 32, 311 . "inst(X)", zstohf,zout) 312 c 313 CALL histdef(nid_hf, "q2m", "Specific humidity", "kg/kg", 314 . iim,jjmp1,nhori, 1,1,1, -99, 32, 315 . "inst(X)", zstohf,zout) 316 c 317 CALL histdef(nid_hf, "psol", "Surface Pressure", "Pa", 318 . iim,jjmp1,nhori, 1,1,1, -99, 32, 319 . "inst(X)", zstohf,zout) 320 c 321 CALL histdef(nid_hf, "cldt", "Total cloudiness", "%", 322 . iim,jjmp1,nhori, 1,1,1, -99, 32, 323 . "ave(X)", zstohf,zout) 324 c 325 CALL histdef(nid_hf, "taux", 326 $ "Zonal wind stress","Pa", 327 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 328 $ "ave(X)", zstohf,zout) 329 c 330 CALL histdef(nid_hf, "tauy", 331 $ "Meridional wind stress ", "Pa", 332 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 333 $ "ave(X)", zstohf,zout) 334 c 335 CALL histdef(nid_hf, "prw", "Precipitable water", "kg/m2", 336 . iim,jjmp1,nhori, 1,1,1, -99, 32, 337 cIM 090904 . "ave(X)", zstohf,zout) 338 . "ave(X)", zstophy,zout) 339 c 340 CALL histdef(nid_hf, "sens", "Sensible heat flux", "W/m2", 341 . iim,jjmp1,nhori, 1,1,1, -99, 32, 342 cIM 090904 . "ave(X)", zstohf,zout) 343 . "ave(X)", zstophy,zout) 344 c 345 CALL histdef(nid_hf, "flat", "Latent heat flux", "W/m2", 346 . iim,jjmp1,nhori, 1,1,1, -99, 32, 347 . "ave(X)", zstohf,zout) 348 c 349 c CALL histdef(nid_hf, "snow_mass", "Snow Mass", "kg/m2", 350 c . iim,jjmp1,nhori, 1,1,1, -99, 32, 351 c . "ave(X)", zstohf,zout) 352 c 353 CALL histdef(nid_hf, "SWdnSFC", "SWdn at surface","W/m2", 354 . iim,jjmp1,nhori, 1,1,1,-99, 355 . 32, "ave(X)", zstohf,zout) 356 c 357 CALL histdef(nid_hf, "SWupSFC", "SWup at surface","W/m2", 358 . iim,jjmp1,nhori, 1,1,1,-99, 359 . 32, "ave(X)", zstohf,zout) 360 c 361 CALL histdef(nid_hf,"LWdnSFC","Down. IR rad. at surface", 362 . "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32, 363 . "ave(X)", zstohf,zout) 364 c 365 CALL histdef(nid_hf,"LWupSFC","Upwd. IR rad. at surface", 366 . "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32, 367 . "ave(X)", zstohf,zout) 368 c 369 CALL histdef(nid_hf, "SWdnTOA", "SWdn at TOA","W/m2", 370 . iim,jjmp1,nhori, 1,1,1,-99, 371 . 32, "ave(X)", zstohf,zout) 372 c 373 CALL histdef(nid_hf, "SWupTOA", "SWup at TOA","W/m2", 374 . iim,jjmp1,nhori, 1,1,1,-99, 375 . 32, "ave(X)", zstohf,zout) 376 c 377 DO k=1, nbteta 378 CALL histdef(nid_hf, "PV"//ctetaSTD(k), 379 $ "Vorticite potentielle "//ctetaSTD(k)//"K", 380 $ "1/(Pa*s)",iim,jjmp1,nhori, 1,1,1, -99, 381 $ 32, "inst(X)", zstohf,zout) 382 ENDDO !k=1, nbteta 383 c 384 c planetary boundary layer height 385 c 386 c ENDIF !1.EQ.0 387 c 388 ENDIF !(lev_histhf.GE.2) THEN 389 cIM 280504 END 390 c 391 ENDIF !type_run 392 c 393 CALL histend(nid_hf) 394 c 395 ENDIF ! ok_hf -
LMDZ4/trunk/libf/phylmd/ini_histhf3d.h
r524 r644 1 !2 ! $Header$3 !4 5 c IF (ok_hf) THEN6 1 c 7 zout = dtime * REAL(NINT(86400./dtime*ecrit_hf)) 8 zsto = zout 9 zsto1 = dtime 10 PRINT*, 'La frequence de sortie instant. est de ', ecrit_hf 2 c $Header$ 11 3 c 12 cIM cf LF 13 idayref = day_ref 14 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) 15 16 cccIM CALL ymds2ju(anne_ini, 1, 1, 0.0, zjulian) 17 c CALL ymds2ju(annee_ref, 1, 1, 0.0, zjulian) 18 c zjulian = zjulian + day_ini 19 cIM cf LF 20 4 c sorties hf 3d 21 5 c 22 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon) 23 DO i = 1, iim 24 zx_lon(i,1) = rlon(i+1) 25 zx_lon(i,jjmp1) = rlon(i+1) 26 ENDDO 27 28 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 29 30 cccIM CALL histbeg("histhf", iim,zx_lon, jjmp1,zx_lat, 31 CALL histbeg("histhf3d", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 6 cIM 130904 zstohf = dtime * REAL(NINT(86400./dtime*ecrit_hf)) 7 cIM 130904 zout = dtime * REAL(NINT(86400./dtime*ecrit_hf)) 8 cIM zstohf = dtime * FLOAT(ecrit_hf) 9 cIM zout = dtime * FLOAT(ecrit_hf) 10 zstohf = dtime * FLOAT(ecrit_hf) 11 zout = dtime * FLOAT(ecrit_hf) 12 c 13 c PRINT*, 'La frequence de sortie hf3d est de ', ecrit_hf 14 c 15 idayref = day_ref 16 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) 17 c 18 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlon,zx_lon) 19 DO i = 1, iim 20 zx_lon(i,1) = rlon(i+1) 21 zx_lon(i,jjmp1) = rlon(i+1) 22 ENDDO 23 c 24 CALL gr_fi_ecrit(1,klon,iim,jjmp1,rlat,zx_lat) 25 CALL histbeg("histhf3d", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 32 26 . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 33 27 . nhori, nid_hf3d) 34 35 CALL histvert(nid_hf3d, "presnivs", "Vertical levels", "mb",36 . klev, presnivs, nvert)37 28 c 38 39 c IF(lev_histhf.GE.4) THEN 29 CALL histvert(nid_hf3d, "presnivs", "Vertical levels", "mb", 30 . klev, presnivs/100., nvert) 40 31 c 41 32 c Champs 3D: 42 33 c 43 34 CALL histdef(nid_hf3d, "temp", "Air temperature", "K", 44 35 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 45 . "ave(X)", zsto ,zout)36 . "ave(X)", zstohf,zout) 46 37 c 47 38 CALL histdef(nid_hf3d, "ovap", "Specific humidity", "kg/kg", 48 39 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 49 . "ave(X)", zsto ,zout)40 . "ave(X)", zstohf,zout) 50 41 c 51 42 CALL histdef(nid_hf3d, "vitu", "Zonal wind", "m/s", 52 43 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 53 . "ave(X)", zsto ,zout)44 . "ave(X)", zstohf,zout) 54 45 c 55 46 CALL histdef(nid_hf3d, "vitv", "Meridional wind", "m/s", 56 47 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 57 . "ave(X)", zsto ,zout)48 . "ave(X)", zstohf,zout) 58 49 c 59 c ENDIF 50 CALL histend(nid_hf3d) 60 51 c 61 CALL histend(nid_hf3d)62 c63 c endif ! ok_hf -
LMDZ4/trunk/libf/phylmd/ini_histins.h
r524 r644 24 24 write(*,*)'Inst ', itau_phy, zjulian 25 25 CALL histvert(nid_ins, "presnivs", "Vertical levels", "mb", 26 . klev, presnivs, nvert) 26 cIM . klev, presnivs, nvert) 27 . klev, presnivs/100., nvert) 27 28 c call histvert(nid_ins, 'sig_s', 'Niveaux sigma','-', 28 29 c . klev, znivsig, nvert) … … 88 89 . "inst(X)", zsto,zout) 89 90 c 90 91 92 91 c CALL histdef(nid_ins, "snow_mass", "Snow Mass", "kg/m2", 92 c . iim,jjmp1,nhori, 1,1,1, -99, 32, 93 c . "inst(X)", zsto,zout) 93 94 c 94 95 CALL histdef(nid_ins, "topl", "OLR", "W/m2", … … 143 144 C 144 145 call histdef(nid_ins, "pourc_"//clnsurf(nsrf), 145 $ "Fraction"//clnsurf(nsrf), "W/m2", 146 $ "% "//clnsurf(nsrf), "%", 147 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 148 $ "inst(X)", zsto,zout) 149 150 call histdef(nid_ins, "fract_"//clnsurf(nsrf), 151 $ "Fraction "//clnsurf(nsrf), "1", 146 152 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 147 153 $ "inst(X)", zsto,zout) … … 196 202 c 197 203 c 204 cIM cf. AM 081204 BEG 205 c HBTM2 206 CALL histdef(nid_ins, "s_pblh", "Boundary Layer Height", "m", 207 . iim,jjmp1,nhori, 1,1,1, -99, 32, 208 . "inst(X)", zsto,zout) 209 c 210 CALL histdef(nid_ins, "s_pblt", "T at Boundary Layer Height", 211 . "K", 212 . iim,jjmp1,nhori, 1,1,1, -99, 32, 213 . "inst(X)", zsto,zout) 214 c 215 CALL histdef(nid_ins, "s_lcl", "Condensation level", "m", 216 . iim,jjmp1,nhori, 1,1,1, -99, 32, 217 . "inst(X)", zsto,zout) 218 c 219 CALL histdef(nid_ins, "s_capCL", "Conv avlbl pot ener for 220 . ABL", "J/m2", 221 . iim,jjmp1,nhori, 1,1,1, -99, 32, 222 . "inst(X)", zsto,zout) 223 c 224 CALL histdef(nid_ins, "s_oliqCL", "Liq Water in BL", "kg/m2", 225 . iim,jjmp1,nhori, 1,1,1, -99, 32, 226 . "inst(X)", zsto,zout) 227 c 228 CALL histdef(nid_ins, "s_cteiCL", "Instability criteria 229 . (ABL)", "K", 230 . iim,jjmp1,nhori, 1,1,1, -99, 32, 231 . "inst(X)", zsto,zout) 232 c 233 CALL histdef(nid_ins, "s_therm", "Exces du thermique", "K", 234 . iim,jjmp1,nhori, 1,1,1, -99, 32, 235 . "inst(X)", zsto,zout) 236 c 237 CALL histdef(nid_ins, "s_trmb1", "deep_cape(HBTM2)", "J/m2", 238 . iim,jjmp1,nhori, 1,1,1, -99, 32, 239 . "inst(X)", zsto,zout) 240 c 241 CALL histdef(nid_ins, "s_trmb2", "inhibition (HBTM2)", "J/m2", 242 . iim,jjmp1,nhori, 1,1,1, -99, 32, 243 . "inst(X)", zsto,zout) 244 c 245 CALL histdef(nid_ins, "s_trmb3", "Point Omega (HBTM2)", "m", 246 . iim,jjmp1,nhori, 1,1,1, -99, 32, 247 . "inst(X)", zsto,zout) 248 c 249 cIM cf. AM 081204 END 250 c 198 251 c Champs 3D: 199 252 c -
LMDZ4/trunk/libf/phylmd/ini_histmth.h
r619 r644 1 ! 2 !$Header$3 ! 1 c 2 c $Header$ 3 c 4 4 IF (ok_mensuel) THEN 5 5 c 6 zsto= dtime7 zout = dtime * ecrit_mth8 c 9 c zsto1: pour des valeurs "instantannees" mensuelles 10 zsto1 = dtime * ecrit_mth11 c zsto2: pour des flux radiatifs calcules tous les 2 heures12 zsto2 = dtime * radpas 13 PRINT*,' zsto,zsto1,zsto2,zout=',zsto, zsto1, zsto2,zout6 zstophy = dtime 7 zstomth = dtime * FLOAT(ecrit_mth) !valeurs mensuelles "instantannees" 8 zstorad = dtime * FLOAT(radpas) !variables stockees toutes les 2h 9 zstohf = dtime *FLOAT(ecrit_hf) !variables stockees toutes les 6h 10 zout = dtime * FLOAT(ecrit_mth) !frequence des sorties : 1 val. par mois 11 c 12 cIM PRINT*,' La zstophy,zstorad,zstohf,zstomth,zout=', 13 cIM . zstophy,zstorad,zstohf,zstomth,zout 14 14 c 15 15 idayref = day_ref … … 21 21 zx_lon(i,jjmp1) = rlon(i+1) 22 22 ENDDO 23 c 24 cIM cf. AM 081204 BEG region 25 c imin_histmth=1 26 c imax_histmth=iim 27 c jmin_histmth=1 28 c jmax_histmth=jjmp1 29 c do i=1,iim-1 30 c if(zx_lon(i,1).lt.lonmin_histmth) imin_histmth=i 31 c if(zx_lon(i,1).le.lonmax_histmth) imax_histmth=i+1 32 c enddo 33 c do j=1,jjmp1-1 34 c if(zx_lat(1,j).ge.latmin_histmth) jmax_histmth=j 35 c if(zx_lat(1,j).gt.latmax_histmth) jmin_histmth=j 36 c enddo 37 c 38 c print*,'On stoke le fichier instantanne sur, ', 39 c s imin_histmth,imax_histmth,jmin_histmth,jmax_histmth 40 c print*,'On stoke le fichier instantanne sur, ', 41 c s zx_lon(imin_histmth,1),zx_lon(imax_histmth,1), 42 c s zx_lat(1,jmin_histmth),zx_lat(1,jmax_histmth) 43 cIM cf. AM 081204 END region 44 c 23 45 DO ll=1,klev 24 46 znivsig(ll)=float(ll) … … 28 50 . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 29 51 . nhori, nid_mth) 30 write(*,*)'Mensuel ', itau_phy, zjulian 52 c 53 cIM cf. AM 081204 BEG region 54 c CALL histbeg("histmth.nc", iim,zx_lon(:,1), jjmp1,zx_lat(1,:), 55 c . imin_histmth,imax_histmth-imin_histmth+1 56 c . ,jmin_histmth,jmax_histmth-jmin_histmth+1 57 c . , itau_phy, zjulian, dtime, 58 c . nhori, nid_mth) 59 cIM 081204 END 60 c 31 61 CALL histvert(nid_mth, "presnivs", "Vertical levels", "mb", 32 . klev, presnivs, nvert) 33 c call histvert(nid_mth, 'sig_s', 'Niveaux sigma','-', 34 c . klev, znivsig, nvert) 35 c 62 . klev, presnivs/100., nvert) 63 c 64 IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN 36 65 c 37 66 IF(lev_histmth.GE.1) THEN 38 CALL histdef(nid_mth, "phis", "Surface geop. height", "-", 39 . iim,jjmp1,nhori, 1,1,1, -99, 32, 40 . "once", zsto,zout) 67 c 68 CALL histdef(nid_mth, "phis", 69 . "Surface geop. height", "m2/s2", 70 . iim,jjmp1,nhori, 1,1,1, -99, 32, 71 . "once", zstophy,zout) 41 72 c 42 73 CALL histdef(nid_mth, "aire", "Grid area", "-", 43 74 . iim,jjmp1,nhori, 1,1,1, -99, 32, 44 . "once", zsto,zout) 45 c 46 call histdef(nid_mth, "pourc_"//clnsurf(is_ter), 47 $ "Fraction "//clnsurf(is_ter), "W/m2", 48 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 49 $ "once", zsto,zout) 75 . "once", zstophy,zout) 76 c 77 CALL histdef(nid_mth, "pourc_"//clnsurf(is_ter), 78 . "% "//clnsurf(is_ter), "%", 79 . iim,jjmp1,nhori, 1,1,1, -99, 32, 80 . "once", zstophy,zout) 81 c 82 CALL histdef(nid_mth, "fract_"//clnsurf(is_ter), 83 . "Fraction "//clnsurf(is_ter), "1", 84 . iim,jjmp1,nhori, 1,1,1, -99, 32, 85 . "once", zstophy,zout) 50 86 c 51 87 c Champs 2D: … … 53 89 CALL histdef(nid_mth, "slp", "Sea Level Pressure", "Pa", 54 90 . iim,jjmp1,nhori, 1,1,1, -99, 32, 55 . "ave(X)", zsto ,zout)91 . "ave(X)", zstophy,zout) 56 92 c 57 93 CALL histdef(nid_mth, "tsol", "Surface Temperature", "K", 58 94 . iim,jjmp1,nhori, 1,1,1, -99, 32, 59 . "ave(X)", zsto ,zout)95 . "ave(X)", zstophy,zout) 60 96 c 61 97 CALL histdef(nid_mth, "t2m", "Temperature 2m", "K", 62 98 . iim,jjmp1,nhori, 1,1,1, -99, 32, 63 . "ave(X)", zsto,zout) 99 . "ave(X)", zstophy,zout) 100 c 64 101 c ENSEMBLES BEG 65 102 CALL histdef(nid_mth, "t2m_min", "Temp. 2m min.", 66 103 . "K", 67 104 . iim,jjmp1,nhori, 1,1,1, -99, 32, 68 . t2mincels, zsto ,zout)105 . t2mincels, zstophy,zout) 69 106 c 70 107 CALL histdef(nid_mth, "t2m_max", "Temp. 2m max.", 71 108 . "K", 72 109 . iim,jjmp1,nhori, 1,1,1, -99, 32, 73 . t2maxcels, zsto ,zout)110 . t2maxcels, zstophy,zout) 74 111 c 75 112 c CALL histdef(nid_mth, "tsoil", "Sfce soil Temperature", 76 113 c . "K", 77 114 c . iim,jjmp1,nhori, 1,1,1, -99, 32, 78 c . "ave(X)", zsto ,zout)115 c . "ave(X)", zstophy,zout) 79 116 c 80 117 CALL histdef(nid_mth, "wind10m","10-m wind speed","m/s", 81 118 . iim,jjmp1,nhori, 1,1,1, -99, 32, 82 . "ave(X)", zsto ,zout)119 . "ave(X)", zstophy,zout) 83 120 c 84 121 CALL histdef(nid_mth, "sicf", "Sea-ice fraction", "-", 85 122 . iim,jjmp1,nhori, 1,1,1, -99, 32, 86 . "ave(X)", zsto,zout) 87 123 . "ave(X)", zstophy,zout) 88 124 c 89 125 c ENSEMBLES END 90 126 CALL histdef(nid_mth, "q2m", "Specific humidity 2m", "kg/kg", 91 127 . iim,jjmp1,nhori, 1,1,1, -99, 32, 92 . "ave(X)", zsto ,zout)128 . "ave(X)", zstophy,zout) 93 129 c 94 130 CALL histdef(nid_mth, "u10m", "Vent zonal 10m", "m/s", 95 131 . iim,jjmp1,nhori, 1,1,1, -99, 32, 96 . "ave(X)", zsto ,zout)132 . "ave(X)", zstophy,zout) 97 133 c 98 134 CALL histdef(nid_mth, "v10m", "Vent meridien 10m", "m/s", 99 135 . iim,jjmp1,nhori, 1,1,1, -99, 32, 100 . "ave(X)", zsto ,zout)136 . "ave(X)", zstophy,zout) 101 137 c 102 138 CALL histdef(nid_mth, "psol", "Surface Pressure", "Pa", 103 139 . iim,jjmp1,nhori, 1,1,1, -99, 32, 104 . "ave(X)", zsto ,zout)140 . "ave(X)", zstophy,zout) 105 141 c 106 142 CALL histdef(nid_mth, "qsurf", "Surface Air humidity", "kg/kg", 107 143 . iim,jjmp1,nhori, 1,1,1, -99, 32, 108 . "ave(X)", zsto ,zout)144 . "ave(X)", zstophy,zout) 109 145 c 110 146 if (.not. ok_veget) then 111 147 CALL histdef(nid_mth, "qsol", "Soil watter content", "mm", 112 148 . iim,jjmp1,nhori, 1,1,1, -99, 32, 113 . "ave(X)", zsto ,zout)149 . "ave(X)", zstophy,zout) 114 150 endif 115 151 c … … 117 153 . "Number of day with rain (liq+sol)", "-", 118 154 . iim,jjmp1,nhori, 1,1,1, -99, 32, 119 . "inst(X)", zsto 1,zout)155 . "inst(X)", zstomth,zout) 120 156 c 121 157 CALL histdef(nid_mth, "precip", "Precipitation Totale liq+sol", 122 158 . "kg/(s*m2)", 123 159 . iim,jjmp1,nhori, 1,1,1, -99, 32, 124 . "ave(X)", zsto ,zout)160 . "ave(X)", zstophy,zout) 125 161 c 126 162 CALL histdef(nid_mth, "plul", "Large-scale Precip.", 127 163 . "kg/(s*m2)", 128 164 . iim,jjmp1,nhori, 1,1,1, -99, 32, 129 . "ave(X)", zsto ,zout)165 . "ave(X)", zstophy,zout) 130 166 c 131 167 CALL histdef(nid_mth, "pluc", "Convective Precip.", 132 168 . "kg/(s*m2)", 133 169 . iim,jjmp1,nhori, 1,1,1, -99, 32, 134 . "ave(X)", zsto ,zout)170 . "ave(X)", zstophy,zout) 135 171 c 136 172 CALL histdef(nid_mth, "snow", "Snow fall", "kg/(s*m2)", 137 173 . iim,jjmp1,nhori, 1,1,1, -99, 32, 138 . "ave(X)", zsto ,zout)139 c 140 141 142 . "ave(X)", zsto,zout)174 . "ave(X)", zstophy,zout) 175 c 176 c CALL histdef(nid_mth, "snow_mass", "Snow Mass", "kg/m2", 177 c . iim,jjmp1,nhori, 1,1,1, -99, 32, 178 c . "ave(X)", zstophy,zout) 143 179 c 144 180 CALL histdef(nid_mth, "evap", "Evaporation", "kg/(s*m2)", 145 181 . iim,jjmp1,nhori, 1,1,1, -99, 32, 146 . "ave(X)", zsto ,zout)182 . "ave(X)", zstophy,zout) 147 183 c 148 184 CALL histdef(nid_mth, "tops", "Solar rad. at TOA", "W/m2", 149 185 . iim,jjmp1,nhori, 1,1,1, -99, 32, 150 . "ave(X)", zsto ,zout)151 c 152 CALL histdef(nid_mth, "tops0", " Solar rad. at TOA", "W/m2",153 . iim,jjmp1,nhori, 1,1,1, -99, 32, 154 . "ave(X)", zsto ,zout)186 . "ave(X)", zstophy,zout) 187 c 188 CALL histdef(nid_mth, "tops0", "CS Solar rad. at TOA", "W/m2", 189 . iim,jjmp1,nhori, 1,1,1, -99, 32, 190 . "ave(X)", zstophy,zout) 155 191 c 156 192 CALL histdef(nid_mth, "topl", "IR rad. at TOA", "W/m2", 157 193 . iim,jjmp1,nhori, 1,1,1, -99, 32, 158 . "ave(X)", zsto ,zout)194 . "ave(X)", zstophy,zout) 159 195 c 160 196 CALL histdef(nid_mth, "topl0", "IR rad. at TOA", "W/m2", 161 197 . iim,jjmp1,nhori, 1,1,1, -99, 32, 162 . "ave(X)", zsto ,zout)198 . "ave(X)", zstophy,zout) 163 199 c 164 200 CALL histdef(nid_mth, "SWupTOA", "SWup at TOA","W/m2", 165 201 . iim,jjmp1,nhori, 1,1,1,-99, 166 . 32, "ave(X)", zsto 2,zout)202 . 32, "ave(X)", zstophy,zout) 167 203 c 168 204 CALL histdef(nid_mth, "SWupTOAclr", 169 205 . "SWup clear sky at TOA","W/m2", 170 206 . iim,jjmp1,nhori, 1,1,1,-99, 171 . 32, "ave(X)", zsto 2,zout)207 . 32, "ave(X)", zstophy,zout) 172 208 c 173 209 CALL histdef(nid_mth, "SWdnTOA", "SWdn at TOA","W/m2", 174 210 . iim,jjmp1,nhori, 1,1,1,-99, 175 . 32, "ave(X)", zsto 2,zout)211 . 32, "ave(X)", zstophy,zout) 176 212 c 177 213 CALL histdef(nid_mth, "SWdnTOAclr", 178 214 . "SWdn clear sky at TOA","W/m2", 179 215 . iim,jjmp1,nhori, 1,1,1,-99, 180 . 32, "ave(X)", zsto 2,zout)181 c 182 CALL histdef(nid_mth, "SWup200", "SWup at 200 hPa","W/m2",183 . iim,jjmp1,nhori, 1,1,1,-99, 184 . 32, "ave(X)", zsto 2,zout)216 . 32, "ave(X)", zstophy,zout) 217 c 218 CALL histdef(nid_mth, "SWup200", "SWup at 200mb","W/m2", 219 . iim,jjmp1,nhori, 1,1,1,-99, 220 . 32, "ave(X)", zstophy,zout) 185 221 c 186 222 CALL histdef(nid_mth, "SWup200clr", 187 . "SWup clear sky at 200 hPa","W/m2",188 . iim,jjmp1,nhori, 1,1,1,-99, 189 . 32, "ave(X)", zsto 2,zout)190 c 191 CALL histdef(nid_mth, "SWdn200", "SWdn at 200 hPa","W/m2",192 . iim,jjmp1,nhori, 1,1,1,-99, 193 . 32, "ave(X)", zsto 2,zout)223 . "SWup clear sky at 200mb","W/m2", 224 . iim,jjmp1,nhori, 1,1,1,-99, 225 . 32, "ave(X)", zstophy,zout) 226 c 227 CALL histdef(nid_mth, "SWdn200", "SWdn at 200mb","W/m2", 228 . iim,jjmp1,nhori, 1,1,1,-99, 229 . 32, "ave(X)", zstophy,zout) 194 230 c 195 231 CALL histdef(nid_mth, "SWdn200clr", 196 . "SWdn clear sky at 200 hPa","W/m2",197 . iim,jjmp1,nhori, 1,1,1,-99, 198 . 32, "ave(X)", zsto 2,zout)199 c 200 CALL histdef(nid_mth, "LWup200", "LWup at 200 hPa","W/m2",201 . iim,jjmp1,nhori, 1,1,1,-99, 202 . 32, "ave(X)", zsto 2,zout)232 . "SWdn clear sky at 200mb","W/m2", 233 . iim,jjmp1,nhori, 1,1,1,-99, 234 . 32, "ave(X)", zstophy,zout) 235 c 236 CALL histdef(nid_mth, "LWup200", "LWup at 200mb","W/m2", 237 . iim,jjmp1,nhori, 1,1,1,-99, 238 . 32, "ave(X)", zstophy,zout) 203 239 c 204 240 CALL histdef(nid_mth, "LWup200clr", 205 . "LWup clear sky at 200 hPa","W/m2",206 . iim,jjmp1,nhori, 1,1,1,-99, 207 . 32, "ave(X)", zsto 2,zout)208 c 209 CALL histdef(nid_mth, "LWdn200", "LWdn at 200 hPa","W/m2",210 . iim,jjmp1,nhori, 1,1,1,-99, 211 . 32, "ave(X)", zsto 2,zout)241 . "LWup clear sky at 200mb","W/m2", 242 . iim,jjmp1,nhori, 1,1,1,-99, 243 . 32, "ave(X)", zstophy,zout) 244 c 245 CALL histdef(nid_mth, "LWdn200", "LWdn at 200mb","W/m2", 246 . iim,jjmp1,nhori, 1,1,1,-99, 247 . 32, "ave(X)", zstophy,zout) 212 248 c 213 249 CALL histdef(nid_mth, "LWdn200clr", 214 . "LWdn clear sky at 200 hPa","W/m2",215 . iim,jjmp1,nhori, 1,1,1,-99, 216 . 32, "ave(X)", zsto 2,zout)250 . "LWdn clear sky at 200mb","W/m2", 251 . iim,jjmp1,nhori, 1,1,1,-99, 252 . 32, "ave(X)", zstophy,zout) 217 253 c 218 254 CALL histdef(nid_mth, "sols", "Solar rad. at surf.", "W/m2", 219 255 . iim,jjmp1,nhori, 1,1,1, -99, 32, 220 . "ave(X)", zsto ,zout)256 . "ave(X)", zstophy,zout) 221 257 c 222 258 CALL histdef(nid_mth, "sols0", "Solar rad. at surf.", "W/m2", 223 259 . iim,jjmp1,nhori, 1,1,1, -99, 32, 224 . "ave(X)", zsto ,zout)260 . "ave(X)", zstophy,zout) 225 261 c 226 262 CALL histdef(nid_mth, "soll", "IR rad. at surface", "W/m2", 227 263 . iim,jjmp1,nhori, 1,1,1, -99, 32, 228 . "ave(X)", zsto ,zout)264 . "ave(X)", zstophy,zout) 229 265 c 230 266 CALL histdef(nid_mth, "soll0", "IR rad. at surface", "W/m2", 231 267 . iim,jjmp1,nhori, 1,1,1, -99, 32, 232 . "ave(X)", zsto ,zout)268 . "ave(X)", zstophy,zout) 233 269 c 234 270 CALL histdef(nid_mth, "SWupSFC", "SWup at surface","W/m2", 235 271 . iim,jjmp1,nhori, 1,1,1,-99, 236 . 32, "ave(X)", zsto 2,zout)272 . 32, "ave(X)", zstophy,zout) 237 273 c 238 274 CALL histdef(nid_mth, "SWupSFCclr", 239 275 . "SWup clear sky at surface","W/m2", 240 276 . iim,jjmp1,nhori, 1,1,1,-99, 241 . 32, "ave(X)", zsto 2,zout)277 . 32, "ave(X)", zstophy,zout) 242 278 c 243 279 CALL histdef(nid_mth, "SWdnSFC", "SWdn at surface","W/m2", 244 280 . iim,jjmp1,nhori, 1,1,1,-99, 245 . 32, "ave(X)", zsto 2,zout)281 . 32, "ave(X)", zstophy,zout) 246 282 c 247 283 CALL histdef(nid_mth, "SWdnSFCclr", 248 284 . "SWdn clear sky at surface","W/m2", 249 285 . iim,jjmp1,nhori, 1,1,1,-99, 250 . 32, "ave(X)", zsto 2,zout)286 . 32, "ave(X)", zstophy,zout) 251 287 c 252 288 CALL histdef(nid_mth,"LWupSFC","Upwd. IR rad. at surface", 253 289 . "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32, 254 . "ave(X)", zsto 2,zout)290 . "ave(X)", zstophy,zout) 255 291 c 256 292 CALL histdef(nid_mth,"LWdnSFC","Down. IR rad. at surface", 257 293 . "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32, 258 . "ave(X)", zsto 2,zout)294 . "ave(X)", zstophy,zout) 259 295 c 260 296 CALL histdef(nid_mth,"LWupSFCclr", 261 297 . "CS Upwd. IR rad. at surface", 262 298 . "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32, 263 . "ave(X)", zsto 2,zout)299 . "ave(X)", zstophy,zout) 264 300 c 265 301 CALL histdef(nid_mth,"LWdnSFCclr", 266 302 . "Down. CS IR rad. at surface", 267 303 . "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32, 268 . "ave(X)", zsto 2,zout)304 . "ave(X)", zstophy,zout) 269 305 c 270 306 CALL histdef(nid_mth, "bils", "Surf. total heat flux", "W/m2", 271 307 . iim,jjmp1,nhori, 1,1,1, -99, 32, 272 . "ave(X)", zsto ,zout)308 . "ave(X)", zstophy,zout) 273 309 c 274 310 CALL histdef(nid_mth, "sens", "Sensible heat flux", "W/m2", 275 311 . iim,jjmp1,nhori, 1,1,1, -99, 32, 276 . "ave(X)", zsto ,zout)312 . "ave(X)", zstophy,zout) 277 313 c 278 314 CALL histdef(nid_mth, "fder", "Heat flux derivation", "W/m2", 279 315 . iim,jjmp1,nhori, 1,1,1, -99, 32, 280 . "ave(X)", zsto,zout) 281 c 282 c Effets des aerosols 283 c 284 c IF (ok_ade.OR.ok_aie) THEN 285 CALL histdef(nid_mth, "topsad", "ADE at TOA", "W/m2", 286 . iim,jjmp1,nhori, 1,1,1, -99, 32, 287 . "ave(X)", zsto,zout) 288 c 289 CALL histdef(nid_mth, "solsad", "ADE at sfc", "W/m2", 290 . iim,jjmp1,nhori, 1,1,1, -99, 32, 291 . "ave(X)", zsto,zout) 292 c 293 CALL histdef(nid_mth, "topsai", "AIE at TOA", "W/m2", 294 . iim,jjmp1,nhori, 1,1,1, -99, 32, 295 . "ave(X)", zsto,zout) 296 c 297 CALL histdef(nid_mth, "solsai", "AIE at sfc", "W/m2", 298 . iim,jjmp1,nhori, 1,1,1, -99, 32, 299 . "ave(X)", zsto,zout) 300 c endif 301 c 302 316 . "ave(X)", zstophy,zout) 303 317 c 304 318 c CALL histdef(nid_mth, "frtu", "Zonal wind stress", "Pa", 305 319 c . iim,jjmp1,nhori, 1,1,1, -99, 32, 306 c . "ave(X)", zsto ,zout)320 c . "ave(X)", zstophy,zout) 307 321 c 308 322 c CALL histdef(nid_mth, "frtv", "Meridional wind stress", "Pa", 309 323 c . iim,jjmp1,nhori, 1,1,1, -99, 32, 310 c . "ave(X)", zsto ,zout)324 c . "ave(X)", zstophy,zout) 311 325 c 312 326 CALL histdef(nid_mth, "ffonte","Thermal flux for snow melting", 313 327 . "W/m2",iim,jjmp1,nhori, 1,1,1, -99, 32, 314 . "ave(X)", zsto ,zout)328 . "ave(X)", zstophy,zout) 315 329 c 316 330 CALL histdef(nid_mth, "fqcalving","Ice Calving", 317 331 . "kg/m2/s",iim,jjmp1,nhori, 1,1,1, -99, 32, 318 . "ave(X)", zsto ,zout)319 c IM: 171003332 . "ave(X)", zstophy,zout) 333 c 320 334 DO nsrf = 1, nbsrf 321 335 call histdef(nid_mth, "taux_"//clnsurf(nsrf), 322 336 $ "Zonal wind stress"//clnsurf(nsrf), "Pa", 323 337 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 324 $ "ave(X)", zsto ,zout)338 $ "ave(X)", zstophy,zout) 325 339 326 340 call histdef(nid_mth, "tauy_"//clnsurf(nsrf), 327 $ "Meridional xind stress "//clnsurf(nsrf), "Pa",328 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 329 $ "ave(X)", zsto ,zout)341 $ "Meridional wind stress "//clnsurf(nsrf), "Pa", 342 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 343 $ "ave(X)", zstophy,zout) 330 344 ENDDO 331 cIM: 171003332 345 c 333 346 DO nsrf = 1, nbsrf 334 347 C 335 IF(nsrf.GT. 1) THEN348 IF(nsrf.GT.2) THEN 336 349 call histdef(nid_mth, "pourc_"//clnsurf(nsrf), 337 $ "Fraction "//clnsurf(nsrf), "W/m2", 338 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 339 $ "ave(X)", zsto,zout) 340 ENDIF !nsrf.GT.1 350 $ "% "//clnsurf(nsrf), "%", 351 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 352 $ "ave(X)", zstophy,zout) 353 c 354 call histdef(nid_mth, "fract_"//clnsurf(nsrf), 355 $ "Fraction "//clnsurf(nsrf), "1", 356 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 357 $ "ave(X)", zstophy,zout) 358 ENDIF !nsrf.GT.2 341 359 C 342 360 call histdef(nid_mth, "tsol_"//clnsurf(nsrf), 343 $ " Fraction "//clnsurf(nsrf), "W/m2",344 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 345 $ "ave(X)", zsto ,zout)361 $ "Temperature "//clnsurf(nsrf), "K", 362 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 363 $ "ave(X)", zstophy,zout) 346 364 C 347 365 call histdef(nid_mth, "sens_"//clnsurf(nsrf), 348 366 $ "Sensible heat flux "//clnsurf(nsrf), "W/m2", 349 367 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 350 $ "ave(X)", zsto ,zout)368 $ "ave(X)", zstophy,zout) 351 369 c 352 370 call histdef(nid_mth, "lat_"//clnsurf(nsrf), 353 371 $ "Latent heat flux "//clnsurf(nsrf), "W/m2", 354 372 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 355 $ "ave(X)", zsto ,zout)373 $ "ave(X)", zstophy,zout) 356 374 C 357 375 call histdef(nid_mth, "flw_"//clnsurf(nsrf), 358 376 $ "LW "//clnsurf(nsrf), "W/m2", 359 377 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 360 $ "ave(X)", zsto 2,zout)378 $ "ave(X)", zstophy,zout) 361 379 c 362 380 call histdef(nid_mth, "fsw_"//clnsurf(nsrf), 363 381 $ "SW "//clnsurf(nsrf), "W/m2", 364 382 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 365 $ "ave(X)", zsto 2,zout)383 $ "ave(X)", zstophy,zout) 366 384 C 367 385 call histdef(nid_mth, "wbils_"//clnsurf(nsrf), 368 386 $ "Bilan sol "//clnsurf(nsrf), "W/m2", 369 387 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 370 $ "ave(X)", zsto,zout) 388 $ "ave(X)", zstophy,zout) 389 C 390 cIM 250105 BEG 391 IF(1.EQ.0) THEN 392 C 393 call histdef(nid_mth, "evapour_"//clnsurf(nsrf), 394 $ "Evap*pourc "//clnsurf(nsrf), "kg/(s*m2)", 395 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 396 $ "ave(X)", zstophy,zout) 397 C 398 call histdef(nid_mth, "prepour_"//clnsurf(nsrf), 399 $ "Precip*pourc "//clnsurf(nsrf), "kg/(s*m2)", 400 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 401 $ "ave(X)", zstophy,zout) 402 C 403 ENDIF !(1.EQ.0) THEN 404 cIM 250105 END 371 405 C 372 406 END DO … … 374 408 CALL histdef(nid_mth, "cdrm", "Momentum drag coef.", "-", 375 409 . iim,jjmp1,nhori, 1,1,1, -99, 32, 376 . "ave(X)", zsto ,zout)410 . "ave(X)", zstophy,zout) 377 411 c 378 412 CALL histdef(nid_mth, "cdrh", "Heat drag coef.", "-", 379 413 . iim,jjmp1,nhori, 1,1,1, -99, 32, 380 . "ave(X)", zsto ,zout)414 . "ave(X)", zstophy,zout) 381 415 c 382 416 CALL histdef(nid_mth, "cldl", "Low-level cloudiness", "-", 383 417 . iim,jjmp1,nhori, 1,1,1, -99, 32, 384 . "ave(X)", zsto ,zout)418 . "ave(X)", zstophy,zout) 385 419 c 386 420 CALL histdef(nid_mth, "cldm", "Mid-level cloudiness", "-", 387 421 . iim,jjmp1,nhori, 1,1,1, -99, 32, 388 . "ave(X)", zsto ,zout)422 . "ave(X)", zstophy,zout) 389 423 c 390 424 CALL histdef(nid_mth, "cldh", "High-level cloudiness", "-", 391 425 . iim,jjmp1,nhori, 1,1,1, -99, 32, 392 . "ave(X)", zsto ,zout)426 . "ave(X)", zstophy,zout) 393 427 c 394 428 CALL histdef(nid_mth, "cldt", "Total cloudiness", "-", 395 429 . iim,jjmp1,nhori, 1,1,1, -99, 32, 396 . "ave(X)", zsto ,zout)430 . "ave(X)", zstophy,zout) 397 431 c 398 432 CALL histdef(nid_mth,"cldq","Cloud liquid water path","kg/m2", 399 433 . iim,jjmp1,nhori, 1,1,1, -99, 32, 400 . "ave(X)", zsto ,zout)401 c IM: 071003434 . "ave(X)", zstophy,zout) 435 c 402 436 CALL histdef(nid_mth,"lwp","Cloud water path","kg/m2", 403 437 . iim,jjmp1,nhori, 1,1,1, -99, 32, 404 . "ave(X)", zsto ,zout)438 . "ave(X)", zstophy,zout) 405 439 c 406 440 CALL histdef(nid_mth,"iwp","Cloud ice water path","kg/m2", 407 441 . iim,jjmp1,nhori, 1,1,1, -99, 32, 408 . "ave(X)", zsto,zout) 409 cIM: 071003 442 . "ave(X)", zstophy,zout) 410 443 c 411 444 CALL histdef(nid_mth, "ue", "Zonal energy transport", "-", 412 445 . iim,jjmp1,nhori, 1,1,1, -99, 32, 413 . "ave(X)", zsto ,zout)446 . "ave(X)", zstophy,zout) 414 447 c 415 448 CALL histdef(nid_mth, "ve", "Merid energy transport", "-", 416 449 . iim,jjmp1,nhori, 1,1,1, -99, 32, 417 . "ave(X)", zsto ,zout)450 . "ave(X)", zstophy,zout) 418 451 c 419 452 CALL histdef(nid_mth, "uq", "Zonal humidity transport", "-", 420 453 . iim,jjmp1,nhori, 1,1,1, -99, 32, 421 . "ave(X)", zsto ,zout)454 . "ave(X)", zstophy,zout) 422 455 c 423 456 CALL histdef(nid_mth, "vq", "Merid humidity transport", "-", 424 457 . iim,jjmp1,nhori, 1,1,1, -99, 32, 425 . "ave(X)", zsto ,zout)458 . "ave(X)", zstophy,zout) 426 459 cKE43 427 460 IF(iflag_con.GE.3) THEN ! sb … … 429 462 CALL histdef(nid_mth, "cape", "Conv avlbl pot ener", "J/kg", 430 463 . iim,jjmp1,nhori, 1,1,1, -99, 32, 431 . "ave(X)", zsto ,zout)432 c 433 CALL histdef(nid_mth, "pbase", "Cld base pressure", " hPa",434 . iim,jjmp1,nhori, 1,1,1, -99, 32, 435 . "ave(X)", zsto ,zout)436 c 437 CALL histdef(nid_mth, "ptop", "Cld top pressure", " hPa",438 . iim,jjmp1,nhori, 1,1,1, -99, 32, 439 . "ave(X)", zsto ,zout)464 . "ave(X)", zstophy,zout) 465 c 466 CALL histdef(nid_mth, "pbase", "Cld base pressure", "mb", 467 . iim,jjmp1,nhori, 1,1,1, -99, 32, 468 . "ave(X)", zstophy,zout) 469 c 470 CALL histdef(nid_mth, "ptop", "Cld top pressure", "mb", 471 . iim,jjmp1,nhori, 1,1,1, -99, 32, 472 . "ave(X)", zstophy,zout) 440 473 c 441 474 CALL histdef(nid_mth, "fbase", "Cld base mass flux", "kg/m2/s", 442 475 . iim,jjmp1,nhori, 1,1,1, -99, 32, 443 . "ave(X)", zsto,zout) 476 . "ave(X)", zstophy,zout) 477 c 478 CALL histdef(nid_mth, "prw", "Precipitable water", "kg/m2", 479 . iim,jjmp1,nhori, 1,1,1, -99, 32, 480 . "ave(X)", zstophy,zout) 444 481 c 445 482 ENDIF !iflag_con .GE. 3 446 c447 CALL histdef(nid_mth, "prw", "Precipitable water", "kg/m2",448 . iim,jjmp1,nhori, 1,1,1, -99, 32,449 . "ave(X)", zsto,zout)450 c451 483 c34EK 484 cIM cf. AM 081204 BEG 485 c34EK 486 c HBTM2 487 CALL histdef(nid_mth, "s_pblh", "Boundary Layer Height", "m", 488 . iim,jjmp1,nhori, 1,1,1, -99, 32, 489 . "ave(X)", zstophy,zout) 490 CALL histdef(nid_mth, "s_pblt", "t at Boundary Layer Height", 491 . "K", 492 . iim,jjmp1,nhori, 1,1,1, -99, 32, 493 . "ave(X)", zstophy,zout) 494 CALL histdef(nid_mth, "s_lcl", "Condensation level", "m", 495 . iim,jjmp1,nhori, 1,1,1, -99, 32, 496 . "ave(X)", zstophy,zout) 497 CALL histdef(nid_mth, "s_capCL", "Conv avlbl pot ener 498 . for ABL", "J/m2", 499 . iim,jjmp1,nhori, 1,1,1, -99, 32, 500 . "ave(X)", zstophy,zout) 501 CALL histdef(nid_mth, "s_oliqCL", "Liq Water in BL", "kg/m2", 502 . iim,jjmp1,nhori, 1,1,1, -99, 32, 503 . "ave(X)", zstophy,zout) 504 CALL histdef(nid_mth, "s_cteiCL", "Instability criteria 505 . (ABL)", "K", 506 . iim,jjmp1,nhori, 1,1,1, -99, 32, 507 . "ave(X)", zstophy,zout) 508 CALL histdef(nid_mth, "s_therm", "Exces du thermique", "K", 509 . iim,jjmp1,nhori, 1,1,1, -99, 32, 510 . "ave(X)", zstophy,zout) 511 CALL histdef(nid_mth, "s_trmb1", "deep_cape(HBTM2)", "J/m2", 512 . iim,jjmp1,nhori, 1,1,1, -99, 32, 513 . "ave(X)", zstophy,zout) 514 CALL histdef(nid_mth, "s_trmb2", "inhibition (HBTM2)", "J/m2", 515 . iim,jjmp1,nhori, 1,1,1, -99, 32, 516 . "ave(X)", zstophy,zout) 517 CALL histdef(nid_mth, "s_trmb3", "Point Omega (HBTM2)", "m", 518 . iim,jjmp1,nhori, 1,1,1, -99, 32, 519 . "ave(X)", zstophy,zout) 520 c 521 cIM cf. AM 081204 END 452 522 c 453 523 c Champs interpolles sur des niveaux de pression 454 DO k=1, nlevENS 455 CALL histdef(nid_mth, "u"//clev(k), 456 . "Zonal wind"//clev(k)//"mb","m/s", 457 . iim,jjmp1,nhori, 1,1,1, -99, 32, 458 . "ave(X)", zsto,zout) 459 c 460 CALL histdef(nid_mth, "v"//clev(k), 461 . "Meridional wind"//clev(k)//"mb","m/s", 462 . iim,jjmp1,nhori, 1,1,1, -99, 32, 463 . "ave(X)", zsto,zout) 464 c 465 CALL histdef(nid_mth, "w"//clev(k), 466 . "Vertical wind"//clev(k)//"mb","Pa/s", 467 . iim,jjmp1,nhori, 1,1,1, -99, 32, 468 . "ave(X)", zsto,zout) 469 c 470 CALL histdef(nid_mth, "phi"//clev(k), 471 . "Geopotential"//clev(k)//"mb","m2/s2", 472 . iim,jjmp1,nhori, 1,1,1, -99, 32, 473 . "ave(X)", zsto,zout) 474 c 475 ENDDO 524 DO k=1, nlevSTD 525 c 526 c bb=clevSTD(k) 527 c 528 c IF(k.GE.2) THEN 529 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 530 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 531 c aa=clevSTD(k) 532 c bb=aa(1:lnblnk1(aa)) 533 c ENDIF 534 c 535 IF(bb2.EQ."850".OR.bb2.EQ."700".OR. 536 $ bb2.EQ."500".OR.bb2.EQ."200") THEN 537 c 538 CALL histdef(nid_mth, "u"//bb2, 539 . "Zonal wind "//bb2//"mb","m/s", 540 . iim,jjmp1,nhori, 1,1,1, -99, 32, 541 . "inst(X)", zout,zout) 542 c 543 CALL histdef(nid_mth, "v"//bb2, 544 . "Meridional wind "//bb2//"mb","m/s", 545 . iim,jjmp1,nhori, 1,1,1, -99, 32, 546 . "inst(X)", zout,zout) 547 c 548 CALL histdef(nid_mth, "w"//bb2, 549 . "Vertical wind "//bb2//"mb","m/s", 550 . iim,jjmp1,nhori, 1,1,1, -99, 32, 551 . "inst(X)", zout,zout) 552 c 553 CALL histdef(nid_mth, "phi"//bb2, 554 . "Geopotential "//bb2//"mb","m", 555 . iim,jjmp1,nhori, 1,1,1, -99, 32, 556 . "inst(X)", zout,zout) 557 c 558 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR. 559 ENDDO 560 c 561 cIM diagnostiques flux ocean-atm ou ocean-glace de mer 562 cIM pour utilisation dans un modele de "slab" ocean 563 c 564 CALL histdef(nid_mth, "fluxo", 565 . "Flux turbulents ocean-atmosphere", "W/m2", 566 . iim,jjmp1,nhori, 1,1,1, -99, 32, 567 . "ave(X)", zstophy,zout) 568 c 569 CALL histdef(nid_mth, "fluxg", 570 . "Flux turbulents ocean-glace de mer","W/m2", 571 . iim,jjmp1,nhori, 1,1,1, -99, 32, 572 . "ave(X)", zstophy,zout) 573 c 574 IF (OCEAN.EQ.'force ') THEN 575 c 576 CALL histdef(nid_mth, "lmt_bils", 577 . "Bilan au sol atmosphere forcee", "W/m2", 578 . iim,jjmp1,nhori, 1,1,1, -99, 32, 579 . "ave(X)", zstophy,zout) 580 c 581 ELSE IF (OCEAN.EQ.'slab ') THEN 582 c 583 CALL histdef(nid_mth, "slab_bils", 584 . "Bilan au sol Slab", "W/m2", 585 . iim,jjmp1,nhori, 1,1,1, -99, 32, 586 . "ave(X)", zstophy,zout) 587 c 588 CALL histdef(nid_mth, "tslab", "Slab SST ", "K", 589 . iim,jjmp1,nhori, 1,1,1, -99, 32, 590 . "ave(X)", zstophy,zout) 591 c 592 CALL histdef(nid_mth, "seaice", "Slab seaice", "kg/m2", 593 . iim,jjmp1,nhori, 1,1,1, -99, 32, 594 . "ave(X)", zstophy,zout) 595 c 596 CALL histdef(nid_mth, "siceh", "Slab seaice height", "m", 597 . iim,jjmp1,nhori, 1,1,1, -99, 32, 598 . "ave(X)", zstophy,zout) 599 c 600 ENDIF 601 c 476 602 ENDIF !lev_histmth.GE.1 477 603 c … … 481 607 c 482 608 c 483 CALL histdef(nid_mth,"lwcon","Cloud water content","kg/kg", 609 CALL histdef(nid_mth,"lwcon","Cloud liquid water content", 610 . "kg/kg", 484 611 . iim,jjmp1,nhori, klev,1,klev, nvert, 32, 485 . "ave(X)", zsto ,zout)612 . "ave(X)", zstophy,zout) 486 613 c 487 614 CALL histdef(nid_mth,"iwcon","Cloud ice water content","kg/kg", 488 615 . iim,jjmp1,nhori, klev,1,klev, nvert, 32, 489 . "ave(X)", zsto ,zout)616 . "ave(X)", zstophy,zout) 490 617 c 491 618 CALL histdef(nid_mth, "temp", "Air temperature", "K", 492 619 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 493 . "ave(X)", zsto ,zout)620 . "ave(X)", zstophy,zout) 494 621 c 495 622 CALL histdef(nid_mth, "ovap", "Specific humidity", "kg/kg", 496 623 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 497 . "ave(X)", zsto ,zout)624 . "ave(X)", zstophy,zout) 498 625 c 499 626 c CALL histdef(nid_mth,"wvap","Water vapor mixing ratio","kg/kg", 500 627 c . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 501 c . "ave(X)", zsto ,zout)502 c 503 CALL histdef(nid_mth, "geop", "Geopotential height", "m ",504 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 505 . "ave(X)", zsto ,zout)628 c . "ave(X)", zstophy,zout) 629 c 630 CALL histdef(nid_mth, "geop", "Geopotential height", "m2/s2", 631 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 632 . "ave(X)", zstophy,zout) 506 633 c 507 634 CALL histdef(nid_mth, "vitu", "Zonal wind", "m/s", 508 635 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 509 . "ave(X)", zsto ,zout)636 . "ave(X)", zstophy,zout) 510 637 c 511 638 CALL histdef(nid_mth, "vitv", "Meridional wind", "m/s", 512 639 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 513 . "ave(X)", zsto ,zout)514 c 515 CALL histdef(nid_mth, "vitw", "Vertical wind", " Pa/s",516 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 517 . "ave(X)", zsto ,zout)640 . "ave(X)", zstophy,zout) 641 c 642 CALL histdef(nid_mth, "vitw", "Vertical wind", "m/s", 643 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 644 . "ave(X)", zstophy,zout) 518 645 c 519 646 CALL histdef(nid_mth, "pres", "Air pressure", "Pa", 520 647 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 521 . "ave(X)", zsto ,zout)648 . "ave(X)", zstophy,zout) 522 649 c 523 650 CALL histdef(nid_mth, "rneb", "Cloud fraction", "-", 524 651 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 525 . "ave(X)", zsto ,zout)652 . "ave(X)", zstophy,zout) 526 653 c 527 654 CALL histdef(nid_mth, "rnebcon", "Convective Cloud Fraction" 528 655 . , "-", 529 656 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 530 . "ave(X)", zsto ,zout)657 . "ave(X)", zstophy,zout) 531 658 c 532 659 CALL histdef(nid_mth, "rhum", "Relative humidity", "-", 533 660 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 534 . "ave(X)", zsto,zout) 535 c 536 CALL histdef(nid_mth, "ozone", "Ozone concentration", "-", 537 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 538 . "ave(X)", zsto,zout) 661 . "ave(X)", zstophy,zout) 662 c 663 CALL histdef(nid_mth, "ozone", "Ozone concentration", "ppmv", 664 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 665 . "ave(X)", zstophy,zout) 666 c 667 CALL histdef(nid_mth, "upwd", "saturated updraft", "kg/m2/s", 668 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 669 . "ave(X)", zstophy,zout) 539 670 c 540 671 CALL histdef(nid_mth, "dtphy", "Physics dT", "K/s", 541 672 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 542 . "ave(X)", zsto,zout) 543 c 544 CALL histdef(nid_mth, "dqphy", "Physics dQ", "kg/kg/s", 545 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 546 . "ave(X)", zsto,zout) 547 c 548 c#define histmthNMC 549 c#ifdef histmthNMC 550 c#include "ini_histmthNMC.h" 551 c#endif 673 . "ave(X)", zstophy,zout) 674 c 675 CALL histdef(nid_mth, "dqphy", "Physics dQ", "(kg/kg)/s", 676 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 677 . "ave(X)", zstophy,zout) 552 678 c 553 679 ENDIF !lev_histmth.GE.2 … … 560 686 $ "Albedo surf. "//clnsurf(nsrf), "-", 561 687 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 562 $ "ave(X)", zsto ,zout)688 $ "ave(X)", zstophy,zout) 563 689 c 564 690 call histdef(nid_mth, "rugs_"//clnsurf(nsrf), 565 691 $ "Latent heat flux "//clnsurf(nsrf), "W/m2", 566 692 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 567 $ "ave(X)", zsto ,zout)693 $ "ave(X)", zstophy,zout) 568 694 c 569 695 CALL histdef(nid_mth, "ages_"//clnsurf(nsrf), "Snow age","day", 570 696 . iim,jjmp1,nhori, 1,1,1, -99, 32, 571 . "ave(X)", zsto ,zout)697 . "ave(X)", zstophy,zout) 572 698 c 573 699 ENDDO !nsrf=1, nbsrf … … 575 701 CALL histdef(nid_mth, "albs", "Surface albedo", "-", 576 702 . iim,jjmp1,nhori, 1,1,1, -99, 32, 577 . "ave(X)", zsto ,zout)703 . "ave(X)", zstophy,zout) 578 704 CALL histdef(nid_mth, "albslw", "Surface albedo LW", "-", 579 705 . iim,jjmp1,nhori, 1,1,1, -99, 32, 580 . "ave(X)", zsto ,zout)706 . "ave(X)", zstophy,zout) 581 707 c 582 708 ENDIF !lev_histmth.GE.3 … … 588 714 . , "kg/kg", 589 715 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 590 . "ave(X)", zsto,zout) 591 c 592 IF (iflag_con.GE.3) THEN 716 . "ave(X)", zstophy,zout) 593 717 c 594 718 CALL histdef(nid_mth,"Ma","undilute adiab updraft","kg/m2/s", 595 719 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 596 . "ave(X)", zsto,zout) 597 c 598 CALL histdef(nid_mth, "upwd", "saturated updraft", "kg/m2/s", 599 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 600 . "ave(X)", zsto,zout) 720 . "ave(X)", zstophy,zout) 601 721 c 602 722 CALL histdef(nid_mth, "dnwd", "saturated downdraft","kg/m2/s", 603 723 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 604 . "ave(X)", zsto ,zout)724 . "ave(X)", zstophy,zout) 605 725 c 606 726 CALL histdef(nid_mth, "dnwd0", "unsat. downdraft", "kg/m2/s", 607 727 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 608 . "ave(X)", zsto,zout) 609 ENDIF !iflag_con.GE.3 610 c 728 . "ave(X)", zstophy,zout) 611 729 c 612 730 CALL histdef(nid_mth, "dtdyn", "Dynamics dT", "K/s", 613 731 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 614 . "ave(X)", zsto ,zout)615 c 616 CALL histdef(nid_mth, "dqdyn", "Dynamics dQ", " kg/kg/s",617 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 618 . "ave(X)", zsto ,zout)732 . "ave(X)", zstophy,zout) 733 c 734 CALL histdef(nid_mth, "dqdyn", "Dynamics dQ", "(kg/kg)/s", 735 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 736 . "ave(X)", zstophy,zout) 619 737 c 620 738 CALL histdef(nid_mth, "dtcon", "Convection dT", "K/s", 621 739 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 622 . "ave(X)", zsto ,zout)740 . "ave(X)", zstophy,zout) 623 741 c 624 742 c CALL histdef(nid_mth, "ducon", "Convection du", "m/s2", 625 743 c . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 626 c . "ave(X)", zsto ,zout)627 c 628 CALL histdef(nid_mth, "dqcon", "Convection dQ", " kg/kg/s",629 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 630 . "ave(X)", zsto ,zout)744 c . "ave(X)", zstophy,zout) 745 c 746 CALL histdef(nid_mth, "dqcon", "Convection dQ", "(kg/kg)/s", 747 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 748 . "ave(X)", zstophy,zout) 631 749 c 632 750 CALL histdef(nid_mth, "dtlsc", "Condensation dT", "K/s", 633 751 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 634 . "ave(X)", zsto ,zout)635 c IM: 071003752 . "ave(X)", zstophy,zout) 753 c 636 754 CALL histdef(nid_mth, "dtlschr", 637 755 $ "Large-scale condensational heating rate", "K/s",iim,jjmp1 638 $ ,nhori, klev,1,klev,nvert, 32,"ave(X)", zsto ,zout)639 c 640 CALL histdef(nid_mth, "dqlsc", "Condensation dQ", " kg/kg/s",641 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 642 . "ave(X)", zsto ,zout)756 $ ,nhori, klev,1,klev,nvert, 32,"ave(X)", zstophy,zout) 757 c 758 CALL histdef(nid_mth, "dqlsc", "Condensation dQ", "(kg/kg)/s", 759 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 760 . "ave(X)", zstophy,zout) 643 761 c 644 762 CALL histdef(nid_mth, "dtvdf", "Boundary-layer dT", "K/s", 645 763 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 646 . "ave(X)", zsto ,zout)647 c 648 CALL histdef(nid_mth, "dqvdf", "Boundary-layer dQ", "kg/kg/s",649 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 650 . "ave(X)", zsto ,zout)764 . "ave(X)", zstophy,zout) 765 c 766 CALL histdef(nid_mth, "dqvdf","Boundary-layer dQ","(kg/kg)/s", 767 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 768 . "ave(X)", zstophy,zout) 651 769 c 652 770 CALL histdef(nid_mth, "dteva", "Reevaporation dT", "K/s", 653 771 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 654 . "ave(X)", zsto ,zout)655 c 656 CALL histdef(nid_mth, "dqeva", "Reevaporation dQ", "kg/kg/s",657 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 658 . "ave(X)", zsto ,zout)772 . "ave(X)", zstophy,zout) 773 c 774 CALL histdef(nid_mth, "dqeva","Reevaporation dQ","(kg/kg)/s", 775 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 776 . "ave(X)", zstophy,zout) 659 777 660 778 CALL histdef(nid_mth, "ptconv", "POINTS CONVECTIFS"," ", 661 779 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 662 . "ave(X)", zsto ,zout)780 . "ave(X)", zstophy,zout) 663 781 664 782 CALL histdef(nid_mth, "ratqs", "RATQS"," ", 665 783 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 666 . "ave(X)", zsto ,zout)784 . "ave(X)", zstophy,zout) 667 785 668 786 c 669 787 CALL histdef(nid_mth, "dtajs", "Dry adjust. dT", "K/s", 670 788 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 671 . "ave(X)", zsto ,zout)789 . "ave(X)", zstophy,zout) 672 790 673 CALL histdef(nid_mth, "dqajs", "Dry adjust. dQ", "kg/kg/s",674 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 675 . "ave(X)", zsto ,zout)791 CALL histdef(nid_mth,"dqajs","Dry adjust. dQ","(kg/kg)/s", 792 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 793 . "ave(X)", zstophy,zout) 676 794 c 677 795 CALL histdef(nid_mth, "dtswr", "SW radiation dT", "K/s", 678 796 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 679 . "ave(X)", zsto ,zout)797 . "ave(X)", zstophy,zout) 680 798 c 681 799 CALL histdef(nid_mth, "dtsw0", "CS SW radiation dT", "K/s", 682 800 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 683 . "ave(X)", zsto ,zout)801 . "ave(X)", zstophy,zout) 684 802 c 685 803 CALL histdef(nid_mth, "dtlwr", "LW radiation dT", "K/s", 686 804 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 687 . "ave(X)", zsto ,zout)805 . "ave(X)", zstophy,zout) 688 806 c 689 807 CALL histdef(nid_mth,"dtlw0","CS LW radiation dT","K/s", 690 808 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 691 . "ave(X)", zsto ,zout)809 . "ave(X)", zstophy,zout) 692 810 c 693 811 CALL histdef(nid_mth, "dtec", "Cinetic dissip dT", "K/s", 694 812 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 695 . "ave(X)", zsto ,zout)813 . "ave(X)", zstophy,zout) 696 814 c 697 815 CALL histdef(nid_mth, "duvdf", "Boundary-layer dU", "m/s2", 698 816 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 699 . "ave(X)", zsto ,zout)817 . "ave(X)", zstophy,zout) 700 818 c 701 819 CALL histdef(nid_mth, "dvvdf", "Boundary-layer dV", "m/s2", 702 820 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 703 . "ave(X)", zsto ,zout)821 . "ave(X)", zstophy,zout) 704 822 c 705 823 IF (ok_orodr) THEN 706 824 CALL histdef(nid_mth, "duoro", "Orography dU", "m/s2", 707 825 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 708 . "ave(X)", zsto ,zout)826 . "ave(X)", zstophy,zout) 709 827 c 710 828 CALL histdef(nid_mth, "dvoro", "Orography dV", "m/s2", 711 829 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 712 . "ave(X)", zsto ,zout)830 . "ave(X)", zstophy,zout) 713 831 c 714 832 ENDIF … … 717 835 CALL histdef(nid_mth, "dulif", "Orography dU", "m/s2", 718 836 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 719 . "ave(X)", zsto ,zout)837 . "ave(X)", zstophy,zout) 720 838 c 721 839 CALL histdef(nid_mth, "dvlif", "Orography dV", "m/s2", 722 840 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 723 . "ave(X)", zsto ,zout)841 . "ave(X)", zstophy,zout) 724 842 ENDIF 725 c 726 c Effets des aerosols 727 c 728 c IF (ok_ade.OR.ok_aie) THEN 729 CALL histdef(nid_mth, "re", "CDR", "um", 730 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 731 . "ave(X)", zsto,zout) 732 c 733 CALL histdef(nid_mth, "redenom", "CDR denominator", "-", 734 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 735 . "ave(X)", zsto,zout) 736 c 737 CALL histdef(nid_mth, "tau", "cloud opt thickness", "-", 738 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 739 . "ave(X)", zsto,zout) 740 c 741 CALL histdef(nid_mth, "taupi", "cloud opt thickn. (pi)", "-", 742 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 743 . "ave(X)", zsto,zout) 744 c endif 745 c 843 C 746 844 if (nqmax.GE.3) THEN 747 DO iq=3,nqmax 748 iiq=niadv(iq) 749 CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-", 750 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 751 . "ave(X)", zsto,zout) 845 DO iq=1,nqmax-2 846 IF (iq.LE.99) THEN 847 WRITE(str2,'(i2.2)') iq 848 CALL histdef(nid_mth, "trac"//str2, "Tracer No."//str2, "-", 849 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 850 . "ave(X)", zstophy,zout) 851 ELSE 852 PRINT*, "Trop de traceurs" 853 CALL abort 854 ENDIF 752 855 ENDDO 753 856 ENDIF … … 755 858 ENDIF !lev_histmth.GE.4 756 859 c 860 ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN 861 c 862 IF(lev_histmth.GE.1) THEN 863 c 864 CALL histdef(nid_mth, "phis", "Surface geop. height", "m", 865 . iim,jjmp1,nhori, 1,1,1, -99, 32, 866 . "once", zstophy,zout) 867 c 868 CALL histdef(nid_mth, "aire", "Grid area", "-", 869 . iim,jjmp1,nhori, 1,1,1, -99, 32, 870 . "once", zstophy,zout) 871 c 872 CALL histdef(nid_mth, "pourc_"//clnsurf(is_ter), 873 . "% "//clnsurf(is_ter), "%", 874 . iim,jjmp1,nhori, 1,1,1, -99, 32, 875 . "once", zstophy,zout) 876 c 877 CALL histdef(nid_mth, "fract_"//clnsurf(is_ter), 878 . "Fraction "//clnsurf(is_ter), "1", 879 . iim,jjmp1,nhori, 1,1,1, -99, 32, 880 . "once", zstophy,zout) 881 c 882 CALL histdef(nid_mth, "pourc_"//clnsurf(is_lic), 883 . "% "//clnsurf(is_lic), "%", 884 . iim,jjmp1,nhori, 1,1,1, -99, 32, 885 . "once", zstophy,zout) 886 c 887 CALL histdef(nid_mth, "fract_"//clnsurf(is_lic), 888 . "Fraction "//clnsurf(is_lic), "1", 889 . iim,jjmp1,nhori, 1,1,1, -99, 32, 890 . "once", zstophy,zout) 891 c 892 CALL histdef(nid_mth, "pourc_"//clnsurf(is_sic), 893 . "% "//clnsurf(is_sic), "%", 894 . iim,jjmp1,nhori, 1,1,1, -99, 32, 895 . "ave(X)", zstophy,zout) 896 c 897 CALL histdef(nid_mth, "fract_"//clnsurf(is_sic), 898 . "Fraction "//clnsurf(is_sic), "1", 899 . iim,jjmp1,nhori, 1,1,1, -99, 32, 900 . "ave(X)", zstophy,zout) 901 c 902 CALL histdef(nid_mth, "flat", "Latent heat flux", "W/m2", 903 . iim,jjmp1,nhori, 1,1,1, -99, 32, 904 . "ave(X)", zstophy,zout) 905 c 906 CALL histdef(nid_mth, "bilTOA", 907 . "Net radiation at TOA", "W/m2", 908 . iim,jjmp1,nhori, 1,1,1, -99, 32, 909 . "ave(X)", zstophy,zout) 910 c 911 c 912 c CALL histdef(nid_mth, "tops01", 913 c . "TOA reflected clear-sky shortwave 914 c . radiation (method 1)", "W/m2", 915 c . iim,jjmp1,nhori, 1,1,1, -99, 32, 916 c . "ave(X)", zstophy,zout) 917 c 918 CALL histdef(nid_mth, "dtdia","dtdia","K/s", 919 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 920 . "ave(X)", zstophy,zout) 921 c 922 CALL histdef(nid_mth, "dtsw","dtsw","K/s", 923 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 924 . "ave(X)", zstophy,zout) 925 c 926 CALL histdef(nid_mth, "dtlw","dtlw","K/s", 927 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 928 . "ave(X)", zstophy,zout) 929 c 930 CALL histdef(nid_mth, "dtcon","dtcon","K/s", 931 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 932 . "ave(X)", zstophy,zout) 933 c 934 CALL histdef(nid_mth, "dtajs","dtajs","K/s", 935 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 936 . "ave(X)", zstophy,zout) 937 c 938 CALL histdef(nid_mth, "dtlsc","dtlsc","K/s", 939 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 940 . "ave(X)", zstophy,zout) 941 c 942 CALL histdef(nid_mth, "dqdia","dqdia","(kg/kg)/s", 943 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 944 . "ave(X)", zstophy,zout) 945 c 946 CALL histdef(nid_mth, "duoli", 947 . "duoli","m/s2", 948 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 949 . "ave(X)", zstophy,zout) 950 c 951 CALL histdef(nid_mth, "dvoli", 952 . "dvoli","m/s2", 953 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 954 . "ave(X)", zstophy,zout) 955 c 956 CALL histdef(nid_mth, "ducon", 957 . "ducon","m/s2", 958 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 959 . "ave(X)", zstophy,zout) 960 c 961 CALL histdef(nid_mth, "dvcon", 962 . "dvcon","m/s2", 963 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 964 . "ave(X)", zstophy,zout) 965 c 966 CALL histdef(nid_mth, "dutot", 967 . "dutot","m/s2", 968 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 969 . "ave(X)", zstophy,zout) 970 c 971 CALL histdef(nid_mth, "dvtot", 972 . "dvtot","m/s2", 973 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 974 . "ave(X)", zstophy,zout) 975 c 976 c CALL histdef(nid_mth, "cldtrue", 977 c . "TRUE Cloud fraction ","%", 978 c . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 979 c . "inst(X)", zout,zout) 980 c 981 c CALL histdef(nid_mth, "cldTOA", 982 c . "Cloud amount (satellite view)","%", 983 c . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 984 c . "ave(X)", zstophy,zout) 985 c 986 c CALL histdef(nid_mth, "cldSFC", 987 c . "Cloud amount (surface view)","%", 988 c . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 989 c . "ave(X)", zstophy,zout) 990 c 991 CALL histdef(nid_mth, "GWDtaux", 992 . "GWD induced Ewd wind stress","Pa", 993 . iim,jjmp1,nhori, 1,1,1, -99, 32, 994 . "ave(X)", zstophy,zout) 995 c 996 CALL histdef(nid_mth, "GWDtauy", 997 . "GWD induced Nwd wind stress","Pa", 998 . iim,jjmp1,nhori, 1,1,1, -99, 32, 999 . "ave(X)", zstophy,zout) 1000 c 1001 c Champs 2D: 1002 c 1003 CALL histdef(nid_mth, "slp", "Sea Level Pressure", "Pa", 1004 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1005 . "ave(X)", zstorad,zout) 1006 c 1007 CALL histdef(nid_mth, "tsol", "Surface Temperature", "K", 1008 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1009 . "ave(X)", zstophy,zout) 1010 c 1011 CALL histdef(nid_mth, "t2m", "Temperature 2m", "K", 1012 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1013 . "ave(X)", zstorad,zout) 1014 c 1015 CALL histdef(nid_mth, "t2m_min", "Temp. 2m min.", 1016 . "K", 1017 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1018 . t2mincels, zstophy,zout) 1019 c 1020 CALL histdef(nid_mth, "t2m_max", "Temp. 2m max.", 1021 . "K", 1022 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1023 . t2maxcels, zstophy,zout) 1024 c 1025 c CALL histdef(nid_mth, "tsoil", "Sfce soil Temperature", 1026 c . "K", 1027 c . iim,jjmp1,nhori, 1,1,1, -99, 32, 1028 c . "ave(X)", zstophy,zout) 1029 c 1030 CALL histdef(nid_mth, "wind10m","10-m wind speed","m/s", 1031 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1032 . "ave(X)", zstorad,zout) 1033 c 1034 CALL histdef(nid_mth, "sicf", "Sea-ice fraction", "-", 1035 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1036 . "ave(X)", zstophy,zout) 1037 1038 c 1039 CALL histdef(nid_mth, "q2m","Specific humidity 2m","kg/kg", 1040 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1041 . "ave(X)", zstorad,zout) 1042 c 1043 CALL histdef(nid_mth, "u10m", "Vent zonal 10m", "m/s", 1044 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1045 . "ave(X)", zstorad,zout) 1046 c 1047 CALL histdef(nid_mth, "v10m", "Vent meridien 10m", "m/s", 1048 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1049 . "ave(X)", zstorad,zout) 1050 c 1051 CALL histdef(nid_mth, "psol", "Surface Pressure", "Pa", 1052 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1053 . "ave(X)", zstorad,zout) 1054 c 1055 CALL histdef(nid_mth, "qsurf","Surface Air humidity","kg/kg", 1056 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1057 . "ave(X)", zstophy,zout) 1058 c 1059 if (.not. ok_veget) then 1060 CALL histdef(nid_mth, "qsol", "Soil watter content", "mm", 1061 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1062 . "ave(X)", zstophy,zout) 1063 endif 1064 c 1065 CALL histdef(nid_mth, "ndayrain", 1066 . "Number of day with rain (liq+sol)", "-", 1067 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1068 . "inst(X)", zstomth,zout) 1069 c 1070 CALL histdef(nid_mth, "precip", "Precipitation Totale liq+sol", 1071 . "kg/(s*m2)", 1072 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1073 . "ave(X)", zstophy,zout) 1074 c 1075 CALL histdef(nid_mth, "plul", "Large-scale Precip.", 1076 . "kg/(s*m2)", 1077 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1078 . "ave(X)", zstophy,zout) 1079 c 1080 CALL histdef(nid_mth, "pluc", "Convective Precip.", 1081 . "kg/(s*m2)", 1082 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1083 . "ave(X)", zstophy,zout) 1084 c 1085 CALL histdef(nid_mth, "snowf", "Snow fall", "kg/(s*m2)", 1086 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1087 . "ave(X)", zstophy,zout) 1088 c 1089 c CALL histdef(nid_mth, "snow_mass", "Snow Mass", "kg/m2", 1090 c . iim,jjmp1,nhori, 1,1,1, -99, 32, 1091 c . "ave(X)", zstophy,zout) 1092 c 1093 CALL histdef(nid_mth, "evap", 1094 . "Evaporation plus sublimation rate", "kg/(s*m2)", 1095 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1096 . "ave(X)", zstophy,zout) 1097 c 1098 CALL histdef(nid_mth, "tops", "Solar rad. at TOA", "W/m2", 1099 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1100 . "ave(X)", zstophy,zout) 1101 c 1102 CALL histdef(nid_mth, "tops0", "CS Solar rad. at TOA", "W/m2", 1103 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1104 . "ave(X)", zstophy,zout) 1105 c 1106 CALL histdef(nid_mth, "topl", "IR rad. at TOA", "W/m2", 1107 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1108 . "ave(X)", zstophy,zout) 1109 c 1110 CALL histdef(nid_mth, "topl0", "IR rad. at TOA", "W/m2", 1111 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1112 . "ave(X)", zstophy,zout) 1113 c 1114 CALL histdef(nid_mth, "SWupTOA", "SWup at TOA","W/m2", 1115 . iim,jjmp1,nhori, 1,1,1,-99, 1116 . 32, "ave(X)", zstophy,zout) 1117 c 1118 CALL histdef(nid_mth, "SWupTOAclr", 1119 . "SWup clear sky at TOA","W/m2", 1120 . iim,jjmp1,nhori, 1,1,1,-99, 1121 . 32, "ave(X)", zstophy,zout) 1122 c 1123 CALL histdef(nid_mth, "SWdnTOA", "SWdn at TOA","W/m2", 1124 . iim,jjmp1,nhori, 1,1,1,-99, 1125 . 32, "ave(X)", zstophy,zout) 1126 c 1127 CALL histdef(nid_mth, "SWdnTOAclr", 1128 . "SWdn clear sky at TOA","W/m2", 1129 . iim,jjmp1,nhori, 1,1,1,-99, 1130 . 32, "ave(X)", zstophy,zout) 1131 c 1132 CALL histdef(nid_mth, "SWup200", "SWup at 200mb","W/m2", 1133 . iim,jjmp1,nhori, 1,1,1,-99, 1134 . 32, "ave(X)", zstophy,zout) 1135 c 1136 CALL histdef(nid_mth, "SWup200clr", 1137 . "SWup clear sky at 200mb","W/m2", 1138 . iim,jjmp1,nhori, 1,1,1,-99, 1139 . 32, "ave(X)", zstophy,zout) 1140 c 1141 CALL histdef(nid_mth, "SWdn200", "SWdn at 200mb","W/m2", 1142 . iim,jjmp1,nhori, 1,1,1,-99, 1143 . 32, "ave(X)", zstophy,zout) 1144 c 1145 CALL histdef(nid_mth, "SWdn200clr", 1146 . "SWdn clear sky at 200mb","W/m2", 1147 . iim,jjmp1,nhori, 1,1,1,-99, 1148 . 32, "ave(X)", zstophy,zout) 1149 c 1150 CALL histdef(nid_mth, "LWup200", "LWup at 200mb","W/m2", 1151 . iim,jjmp1,nhori, 1,1,1,-99, 1152 . 32, "ave(X)", zstophy,zout) 1153 c 1154 CALL histdef(nid_mth, "LWup200clr", 1155 . "LWup clear sky at 200mb","W/m2", 1156 . iim,jjmp1,nhori, 1,1,1,-99, 1157 . 32, "ave(X)", zstophy,zout) 1158 c 1159 CALL histdef(nid_mth, "LWdn200", "LWdn at 200mb","W/m2", 1160 . iim,jjmp1,nhori, 1,1,1,-99, 1161 . 32, "ave(X)", zstophy,zout) 1162 c 1163 CALL histdef(nid_mth, "LWdn200clr", 1164 . "LWdn clear sky at 200mb","W/m2", 1165 . iim,jjmp1,nhori, 1,1,1,-99, 1166 . 32, "ave(X)", zstophy,zout) 1167 c 1168 CALL histdef(nid_mth, "sols", "Solar rad. at surf.", "W/m2", 1169 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1170 . "ave(X)", zstophy,zout) 1171 c 1172 CALL histdef(nid_mth, "sols0", "Solar rad. at surf.", "W/m2", 1173 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1174 . "ave(X)", zstophy,zout) 1175 c 1176 CALL histdef(nid_mth, "soll", "IR rad. at surface", "W/m2", 1177 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1178 . "ave(X)", zstophy,zout) 1179 c 1180 CALL histdef(nid_mth, "soll0", "IR rad. at surface", "W/m2", 1181 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1182 . "ave(X)", zstophy,zout) 1183 c 1184 CALL histdef(nid_mth, "SWupSFC", "SWup at surface","W/m2", 1185 . iim,jjmp1,nhori, 1,1,1,-99, 1186 . 32, "ave(X)", zstophy,zout) 1187 c 1188 CALL histdef(nid_mth, "SWupSFCclr", 1189 . "SWup clear sky at surface","W/m2", 1190 . iim,jjmp1,nhori, 1,1,1,-99, 1191 . 32, "ave(X)", zstophy,zout) 1192 c 1193 CALL histdef(nid_mth, "SWdnSFC", "SWdn at surface","W/m2", 1194 . iim,jjmp1,nhori, 1,1,1,-99, 1195 . 32, "ave(X)", zstophy,zout) 1196 c 1197 CALL histdef(nid_mth, "SWdnSFCclr", 1198 . "SWdn clear sky at surface","W/m2", 1199 . iim,jjmp1,nhori, 1,1,1,-99, 1200 . 32, "ave(X)", zstophy,zout) 1201 c 1202 CALL histdef(nid_mth,"LWupSFC","Upwd. IR rad. at surface", 1203 . "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32, 1204 . "ave(X)", zstophy,zout) 1205 c 1206 CALL histdef(nid_mth,"LWdnSFC","Down. IR rad. at surface", 1207 . "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32, 1208 . "ave(X)", zstophy,zout) 1209 c 1210 CALL histdef(nid_mth,"LWupSFCclr", 1211 . "CS Upwd. IR rad. at surface", 1212 . "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32, 1213 . "ave(X)", zstophy,zout) 1214 c 1215 CALL histdef(nid_mth,"LWdnSFCclr", 1216 . "Down. CS IR rad. at surface", 1217 . "W/m2", iim,jjmp1,nhori, 1,1,1, -99, 32, 1218 . "ave(X)", zstophy,zout) 1219 c 1220 CALL histdef(nid_mth, "bils", "Surf. total heat flux", "W/m2", 1221 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1222 . "ave(X)", zstophy,zout) 1223 c 1224 CALL histdef(nid_mth, "sens", "Sensible heat flux", "W/m2", 1225 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1226 . "ave(X)", zstophy,zout) 1227 c 1228 CALL histdef(nid_mth, "fder", "Heat flux derivation", "W/m2", 1229 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1230 . "ave(X)", zstophy,zout) 1231 c 1232 c CALL histdef(nid_mth, "frtu", "Zonal wind stress", "Pa", 1233 c . iim,jjmp1,nhori, 1,1,1, -99, 32, 1234 c . "ave(X)", zstophy,zout) 1235 c 1236 c CALL histdef(nid_mth, "frtv", "Meridional wind stress", "Pa", 1237 c . iim,jjmp1,nhori, 1,1,1, -99, 32, 1238 c . "ave(X)", zstophy,zout) 1239 c 1240 CALL histdef(nid_mth, "ffonte","Thermal flux for snow melting", 1241 . "W/m2",iim,jjmp1,nhori, 1,1,1, -99, 32, 1242 . "ave(X)", zstophy,zout) 1243 c 1244 CALL histdef(nid_mth, "fqcalving","Ice Calving", 1245 . "kg/m2/s",iim,jjmp1,nhori, 1,1,1, -99, 32, 1246 . "ave(X)", zstophy,zout) 1247 c 1248 DO nsrf = 1, nbsrf 1249 call histdef(nid_mth, "taux_"//clnsurf(nsrf), 1250 $ "Zonal wind stress"//clnsurf(nsrf), "Pa", 1251 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1252 $ "ave(X)", zstophy,zout) 1253 1254 call histdef(nid_mth, "tauy_"//clnsurf(nsrf), 1255 $ "Meridional wind stress "//clnsurf(nsrf), "Pa", 1256 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1257 $ "ave(X)", zstophy,zout) 1258 ENDDO 1259 c 1260 call histdef(nid_mth, "pourc_"//clnsurf(is_oce), 1261 $ "% "//clnsurf(is_oce), "%", 1262 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1263 $ "ave(X)", zstophy,zout) 1264 c 1265 call histdef(nid_mth, "fract_"//clnsurf(is_oce), 1266 $ "Fraction "//clnsurf(is_oce), "1", 1267 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1268 $ "ave(X)", zstophy,zout) 1269 C 1270 DO nsrf = 1, nbsrf 1271 C 1272 call histdef(nid_mth, "tsol_"//clnsurf(nsrf), 1273 $ "Temperature "//clnsurf(nsrf), "K", 1274 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1275 $ "ave(X)", zstophy,zout) 1276 C 1277 call histdef(nid_mth, "sens_"//clnsurf(nsrf), 1278 $ "Sensible heat flux "//clnsurf(nsrf), "W/m2", 1279 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1280 $ "ave(X)", zstophy,zout) 1281 c 1282 call histdef(nid_mth, "lat_"//clnsurf(nsrf), 1283 $ "Latent heat flux "//clnsurf(nsrf), "W/m2", 1284 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1285 $ "ave(X)", zstophy,zout) 1286 C 1287 call histdef(nid_mth, "flw_"//clnsurf(nsrf), 1288 $ "LW "//clnsurf(nsrf), "W/m2", 1289 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1290 $ "ave(X)", zstophy,zout) 1291 c 1292 call histdef(nid_mth, "fsw_"//clnsurf(nsrf), 1293 $ "SW "//clnsurf(nsrf), "W/m2", 1294 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1295 $ "ave(X)", zstophy,zout) 1296 C 1297 call histdef(nid_mth, "wbils_"//clnsurf(nsrf), 1298 $ "Bilan sol "//clnsurf(nsrf), "W/m2", 1299 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1300 $ "ave(X)", zstophy,zout) 1301 C 1302 cIM 250105 BEG 1303 IF(1.EQ.0) THEN 1304 C 1305 call histdef(nid_mth, "evapour_"//clnsurf(nsrf), 1306 $ "Evap*pourc "//clnsurf(nsrf), "kg/(s*m2)", 1307 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1308 $ "ave(X)", zstophy,zout) 1309 C 1310 call histdef(nid_mth, "prepour_"//clnsurf(nsrf), 1311 $ "Precip*pourc "//clnsurf(nsrf), "kg/(s*m2)", 1312 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1313 $ "ave(X)", zstophy,zout) 1314 C 1315 ENDIF !(1.EQ.0) THEN 1316 cIM 250105 END 1317 C 1318 END DO 1319 c 1320 CALL histdef(nid_mth, "cdrm", "Momentum drag coef.", "-", 1321 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1322 . "ave(X)", zstophy,zout) 1323 c 1324 CALL histdef(nid_mth, "cdrh", "Heat drag coef.", "-", 1325 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1326 . "ave(X)", zstophy,zout) 1327 c 1328 CALL histdef(nid_mth, "cldl", "Low-level cloudiness", "-", 1329 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1330 . "ave(X)", zstophy,zout) 1331 c 1332 CALL histdef(nid_mth, "cldm", "Mid-level cloudiness", "-", 1333 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1334 . "ave(X)", zstophy,zout) 1335 c 1336 CALL histdef(nid_mth, "cldh", "High-level cloudiness", "-", 1337 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1338 . "ave(X)", zstophy,zout) 1339 c 1340 CALL histdef(nid_mth, "cldt", "Total cloudiness", "%", 1341 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1342 . "ave(X)", zstophy,zout) 1343 c 1344 CALL histdef(nid_mth,"cldq","Cloud liquid water path","kg/m2", 1345 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1346 . "ave(X)", zstophy,zout) 1347 c 1348 CALL histdef(nid_mth,"lwp","Cloud water path","kg/m2", 1349 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1350 . "ave(X)", zstophy,zout) 1351 c 1352 CALL histdef(nid_mth,"iwp","Cloud ice water path","kg/m2", 1353 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1354 . "ave(X)", zstophy,zout) 1355 c 1356 CALL histdef(nid_mth, "ue", "Zonal energy transport", "-", 1357 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1358 . "ave(X)", zstophy,zout) 1359 c 1360 CALL histdef(nid_mth, "ve", "Merid energy transport", "-", 1361 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1362 . "ave(X)", zstophy,zout) 1363 c 1364 CALL histdef(nid_mth, "uq", "Zonal humidity transport", "-", 1365 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1366 . "ave(X)", zstophy,zout) 1367 c 1368 CALL histdef(nid_mth, "vq", "Merid humidity transport", "-", 1369 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1370 . "ave(X)", zstophy,zout) 1371 cKE43 1372 IF(iflag_con.GE.3) THEN ! sb 1373 c 1374 CALL histdef(nid_mth, "cape", "Conv avlbl pot ener", "J/kg", 1375 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1376 . "ave(X)", zstophy,zout) 1377 c 1378 CALL histdef(nid_mth, "pbase", "Cld base pressure", "mb", 1379 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1380 . "ave(X)", zstophy,zout) 1381 c 1382 CALL histdef(nid_mth, "ptop", "Cld top pressure", "mb", 1383 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1384 . "ave(X)", zstophy,zout) 1385 c 1386 CALL histdef(nid_mth, "fbase", "Cld base mass flux", "kg/m2/s", 1387 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1388 . "ave(X)", zstophy,zout) 1389 c 1390 CALL histdef(nid_mth, "prw", "Precipitable water", "kg/m2", 1391 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1392 . "ave(X)", zstophy,zout) 1393 c 1394 ENDIF !iflag_con .GE. 3 1395 c34EK 1396 cIM cf. AM 081204 BEG 1397 c34EK 1398 c HBTM2 1399 CALL histdef(nid_mth, "s_pblh", "Boundary Layer Height", "m", 1400 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1401 . "ave(X)", zstophy,zout) 1402 CALL histdef(nid_mth, "s_pblt", "T at Boundary Layer Height", 1403 . "K", 1404 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1405 . "ave(X)", zstophy,zout) 1406 CALL histdef(nid_mth, "s_lcl", "Condensation level", "m", 1407 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1408 . "ave(X)", zstophy,zout) 1409 CALL histdef(nid_mth,"s_capCL","Conv avlbl pot ener for ABL", 1410 . "J/m2", 1411 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1412 . "ave(X)", zstophy,zout) 1413 CALL histdef(nid_mth, "s_oliqCL", "Liq Water in BL", "kg/m2", 1414 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1415 . "ave(X)", zstophy,zout) 1416 CALL histdef(nid_mth,"s_cteiCL","Instability criteria (ABL)", 1417 . "K", 1418 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1419 . "ave(X)", zstophy,zout) 1420 CALL histdef(nid_mth, "s_therm", "Exces du thermique", "K", 1421 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1422 . "ave(X)", zstophy,zout) 1423 CALL histdef(nid_mth, "s_trmb1", "deep_cape(HBTM2)", "J/m2", 1424 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1425 . "ave(X)", zstophy,zout) 1426 CALL histdef(nid_mth, "s_trmb2", "inhibition (HBTM2)", "J/m2", 1427 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1428 . "ave(X)", zstophy,zout) 1429 CALL histdef(nid_mth, "s_trmb3", "Point Omega (HBTM2)", "m", 1430 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1431 . "ave(X)", zstophy,zout) 1432 c 1433 cIM cf. AM 081204 END 1434 c 1435 c Champs interpolles sur des niveaux de pression 1436 DO k=1, nlevSTD 1437 c 1438 c bb=clevSTD(k) 1439 c 1440 c IF(k.GE.2) THEN 1441 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 1442 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 1443 c aa=clevSTD(k) 1444 c bb=aa(1:lnblnk1(aa)) 1445 c ENDIF 1446 c 1447 IF(bb2.EQ."850".OR.bb2.EQ."700" 1448 $ .OR.bb2.EQ."500".OR.bb2.EQ."200") THEN 1449 c 1450 CALL histdef(nid_mth, "u"//bb2, 1451 . "Zonal wind "//bb2//"mb","m/s", 1452 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1453 . "inst(X)", zout,zout) 1454 c 1455 CALL histdef(nid_mth, "v"//bb2, 1456 . "Meridional wind "//bb2//"mb","m/s", 1457 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1458 . "inst(X)", zout,zout) 1459 c 1460 CALL histdef(nid_mth, "w"//bb2, 1461 . "Vertical wind "//bb2//"mb","m/s", 1462 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1463 . "inst(X)", zout,zout) 1464 c 1465 CALL histdef(nid_mth, "phi"//bb2, 1466 . "Geopotential "//bb2//"mb","m", 1467 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1468 . "inst(X)", zout,zout) 1469 c 1470 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700" 1471 c 1472 ENDDO !nlevSTD 1473 c 1474 cIM diagnostiques flux ocean-atm ou ocean-glace de mer 1475 cIM pour utilisation dans un modele de "slab" ocean 1476 c 1477 CALL histdef(nid_mth, "fluxo", 1478 . "Flux turbulents ocean-atmosphere", "W/m2", 1479 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1480 . "ave(X)", zstophy,zout) 1481 c 1482 CALL histdef(nid_mth, "fluxg", 1483 . "Flux turbulents ocean-glace de mer","W/m2", 1484 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1485 . "ave(X)", zstophy,zout) 1486 c 1487 IF (OCEAN.EQ.'force ') THEN 1488 c 1489 CALL histdef(nid_mth, "lmt_bils", 1490 . "Bilan au sol atmosphere forcee", "W/m2", 1491 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1492 . "ave(X)", zstophy,zout) 1493 c 1494 ELSE IF (OCEAN.EQ.'slab ') THEN 1495 c 1496 CALL histdef(nid_mth, "slab_bils", 1497 . "Bilan au sol Slab", "W/m2", 1498 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1499 . "ave(X)", zstophy,zout) 1500 c 1501 CALL histdef(nid_mth, "tslab", "Slab SST ", "K", 1502 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1503 . "ave(X)", zstophy,zout) 1504 c 1505 CALL histdef(nid_mth, "seaice", "Slab seaice", "kg/m2", 1506 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1507 . "ave(X)", zstophy,zout) 1508 c 1509 CALL histdef(nid_mth, "siceh", "Slab seaice height", "m", 1510 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1511 . "ave(X)", zstophy,zout) 1512 c 1513 ENDIF !OCEAN.EQ.slab/force 1514 c 1515 ENDIF !lev_histmth.GE.1 1516 c 1517 IF(lev_histmth.GE.2) THEN 1518 c 1519 c Champs 3D: 1520 c 1521 c 1522 CALL histdef(nid_mth,"lwcon","Cloud liquid water content", 1523 . "kg/kg", 1524 . iim,jjmp1,nhori, klev,1,klev, nvert, 32, 1525 . "ave(X)", zstophy,zout) 1526 c 1527 CALL histdef(nid_mth,"iwcon","Cloud ice water content","kg/kg", 1528 . iim,jjmp1,nhori, klev,1,klev, nvert, 32, 1529 . "ave(X)", zstophy,zout) 1530 c 1531 CALL histdef(nid_mth, "temp", "Air temperature", "K", 1532 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1533 . "ave(X)", zstophy,zout) 1534 c 1535 CALL histdef(nid_mth, "ovap", "Specific humidity", "kg/kg", 1536 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1537 . "ave(X)", zstophy,zout) 1538 c 1539 c CALL histdef(nid_mth,"wvap","Water vapor mixing ratio","kg/kg", 1540 c . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1541 c . "ave(X)", zstophy,zout) 1542 c 1543 CALL histdef(nid_mth, "geop", "Geopotential height", "m2/s2", 1544 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1545 . "ave(X)", zstophy,zout) 1546 c 1547 CALL histdef(nid_mth, "vitu", "Zonal wind", "m/s", 1548 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1549 . "ave(X)", zstophy,zout) 1550 c 1551 CALL histdef(nid_mth, "vitv", "Meridional wind", "m/s", 1552 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1553 . "ave(X)", zstophy,zout) 1554 c 1555 CALL histdef(nid_mth, "vitw", "Vertical wind", "m/s", 1556 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1557 . "ave(X)", zstophy,zout) 1558 c 1559 CALL histdef(nid_mth, "pres", "Air pressure", "Pa", 1560 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1561 . "ave(X)", zstophy,zout) 1562 c 1563 CALL histdef(nid_mth, "rneb", "Cloud fraction", "%", 1564 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1565 . "ave(X)", zstophy,zout) 1566 c 1567 CALL histdef(nid_mth, "rnebcon", "Convective Cloud Fraction" 1568 . , "-", 1569 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1570 . "ave(X)", zstophy,zout) 1571 c 1572 CALL histdef(nid_mth, "rhum", "Relative humidity", "-", 1573 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1574 . "ave(X)", zstophy,zout) 1575 c 1576 CALL histdef(nid_mth, "ozone", "Ozone concentration", "ppmv", 1577 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1578 . "ave(X)", zstophy,zout) 1579 c 1580 CALL histdef(nid_mth, "upwd", "saturated updraft", "kg/m2/s", 1581 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1582 . "ave(X)", zstophy,zout) 1583 c 1584 CALL histdef(nid_mth, "dtphy", "Physics dT", "K/s", 1585 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1586 . "ave(X)", zstophy,zout) 1587 c 1588 CALL histdef(nid_mth, "dqphy","Physics dQ","(kg/kg)/s", 1589 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1590 . "ave(X)", zstophy,zout) 1591 c 1592 ENDIF !lev_histmth.GE.2 1593 c 1594 IF(lev_histmth.GE.3) THEN 1595 c 1596 DO nsrf=1, nbsrf 1597 c 1598 call histdef(nid_mth, "albe_"//clnsurf(nsrf), 1599 $ "Albedo surf. "//clnsurf(nsrf), "-", 1600 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1601 $ "ave(X)", zstophy,zout) 1602 c 1603 call histdef(nid_mth, "rugs_"//clnsurf(nsrf), 1604 $ "Rugosite "//clnsurf(nsrf), "m", 1605 $ iim,jjmp1,nhori, 1,1,1, -99, 32, 1606 $ "ave(X)", zstophy,zout) 1607 c 1608 CALL histdef(nid_mth, "ages_"//clnsurf(nsrf), "Snow age","day", 1609 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1610 . "ave(X)", zstophy,zout) 1611 c 1612 ENDDO !nsrf=1, nbsrf 1613 c 1614 CALL histdef(nid_mth, "albs", "Surface albedo", "-", 1615 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1616 . "ave(X)", zstophy,zout) 1617 CALL histdef(nid_mth, "albslw", "Surface albedo LW", "-", 1618 . iim,jjmp1,nhori, 1,1,1, -99, 32, 1619 . "ave(X)", zstophy,zout) 1620 c 1621 ENDIF !lev_histmth.GE.3 1622 c 1623 IF(lev_histmth.GE.4) THEN 1624 c 1625 CALL histdef(nid_mth, "clwcon", 1626 . "Convective Cloud Liquid water content" 1627 . , "kg/kg", 1628 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1629 . "ave(X)", zstophy,zout) 1630 c 1631 CALL histdef(nid_mth,"Ma","undilute adiab updraft","kg/m2/s", 1632 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1633 . "ave(X)", zstophy,zout) 1634 c 1635 CALL histdef(nid_mth, "dnwd", "saturated downdraft","kg/m2/s", 1636 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1637 . "ave(X)", zstophy,zout) 1638 c 1639 CALL histdef(nid_mth, "dnwd0", "unsat. downdraft", "kg/m2/s", 1640 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1641 . "ave(X)", zstophy,zout) 1642 c 1643 CALL histdef(nid_mth, "dtdyn", "Dynamics dT", "K/s", 1644 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1645 . "ave(X)", zstophy,zout) 1646 c 1647 CALL histdef(nid_mth, "dqdyn","Dynamics dQ","(kg/kg)/s", 1648 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1649 . "ave(X)", zstophy,zout) 1650 c 1651 CALL histdef(nid_mth, "dqcon","Convection dQ","(kg/kg)/s", 1652 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1653 . "ave(X)", zstophy,zout) 1654 c 1655 CALL histdef(nid_mth, "dtlschr", 1656 $ "Large-scale condensational heating rate", "K/s",iim,jjmp1 1657 $ ,nhori, klev,1,klev,nvert, 32,"ave(X)", zstophy,zout) 1658 c 1659 CALL histdef(nid_mth, "dqlsc","Condensation dQ","(kg/kg)/s", 1660 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1661 . "ave(X)", zstophy,zout) 1662 c 1663 CALL histdef(nid_mth, "dtvdf", "Boundary-layer dT", "K/s", 1664 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1665 . "ave(X)", zstophy,zout) 1666 c 1667 CALL histdef(nid_mth, "dqvdf","Boundary-layer dQ","(kg/kg)/s", 1668 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1669 . "ave(X)", zstophy,zout) 1670 c 1671 CALL histdef(nid_mth, "dteva", "Reevaporation dT", "K/s", 1672 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1673 . "ave(X)", zstophy,zout) 1674 c 1675 CALL histdef(nid_mth,"dqeva","Reevaporation dQ","(kg/kg)/s", 1676 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1677 . "ave(X)", zstophy,zout) 1678 1679 CALL histdef(nid_mth, "ptconv", "POINTS CONVECTIFS"," ", 1680 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1681 . "ave(X)", zstophy,zout) 1682 1683 CALL histdef(nid_mth, "ratqs", "RATQS"," ", 1684 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1685 . "ave(X)", zstophy,zout) 1686 1687 c 1688 CALL histdef(nid_mth, "dqajs","Dry adjust. dQ","(kg/kg)/s", 1689 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1690 . "ave(X)", zstophy,zout) 1691 c 1692 CALL histdef(nid_mth, "dtswr", "SW radiation dT", "K/s", 1693 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1694 . "ave(X)", zstophy,zout) 1695 c 1696 CALL histdef(nid_mth, "dtsw0", "CS SW radiation dT", "K/s", 1697 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1698 . "ave(X)", zstophy,zout) 1699 c 1700 CALL histdef(nid_mth, "dtlwr", "LW radiation dT", "K/s", 1701 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1702 . "ave(X)", zstophy,zout) 1703 c 1704 CALL histdef(nid_mth,"dtlw0","CS LW radiation dT","K/s", 1705 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1706 . "ave(X)", zstophy,zout) 1707 c 1708 CALL histdef(nid_mth, "dtec", "Cinetic dissip dT", "K/s", 1709 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1710 . "ave(X)", zstophy,zout) 1711 c 1712 CALL histdef(nid_mth, "duvdf", "Boundary-layer dU", "m/s2", 1713 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1714 . "ave(X)", zstophy,zout) 1715 c 1716 CALL histdef(nid_mth, "dvvdf", "Boundary-layer dV", "m/s2", 1717 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1718 . "ave(X)", zstophy,zout) 1719 c 1720 IF (ok_orodr) THEN 1721 CALL histdef(nid_mth, "duoro", "Orography dU", "m/s2", 1722 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1723 . "ave(X)", zstophy,zout) 1724 c 1725 CALL histdef(nid_mth, "dvoro", "Orography dV", "m/s2", 1726 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1727 . "ave(X)", zstophy,zout) 1728 c 1729 ENDIF 1730 C 1731 IF (ok_orolf) THEN 1732 CALL histdef(nid_mth, "dulif", "Orography dU", "m/s2", 1733 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1734 . "ave(X)", zstophy,zout) 1735 c 1736 CALL histdef(nid_mth, "dvlif", "Orography dV", "m/s2", 1737 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1738 . "ave(X)", zstophy,zout) 1739 ENDIF 1740 C 1741 if (nqmax.GE.3) THEN 1742 DO iq=1,nqmax-2 1743 IF (iq.LE.99) THEN 1744 WRITE(str2,'(i2.2)') iq 1745 CALL histdef(nid_mth, "trac"//str2, "Tracer No."//str2, "-", 1746 . iim,jjmp1,nhori, klev,1,klev,nvert, 32, 1747 . "ave(X)", zstophy,zout) 1748 ELSE 1749 PRINT*, "Trop de traceurs" 1750 CALL abort 1751 ENDIF 1752 ENDDO 1753 ENDIF 1754 c 1755 ENDIF !lev_histmth.GE.4 1756 c 1757 ENDIF !type_run.EQ."CLIM".OR.type_run.EQ."ENSP") 1758 c 757 1759 CALL histend(nid_mth) 758 1760 c -
LMDZ4/trunk/libf/phylmd/ini_histmthNMC.h
r524 r644 4 4 IF (ok_mensuel) THEN 5 5 c 6 zsto = dtime 7 zout = dtime * ecrit_mth 6 zstophy = dtime 7 zstohf = dtime * FLOAT(ecrit_hf) 8 zstomth = dtime * FLOAT(ecrit_mth) 9 zout = dtime * FLOAT(ecrit_mth) 8 10 c 9 11 idayref = day_ref … … 22 24 . 1,iim,1,jjmp1, itau_phy, zjulian, dtime, 23 25 . nhori, nid_nmc) 24 write(*,*)'Mensuel NMC ', itau_phy, zjulian 26 c 25 27 CALL histvert(nid_nmc, "presnivs", "Vertical levels", "mb", 26 . klev, presnivs, nvert) 27 c call histvert(nid_nmc, 'sig_s', 'Niveaux sigma','-', 28 c . klev, znivsig, nvert) 28 . nlevSTD, rlevSTD/100., nvert) 29 ccc 30 ccc Champs 3D interpolles sur des niveaux de pression du NMC 31 ccc 32 IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN 29 33 c 30 c Champs 2D: 31 32 c Champs interpolles sur des niveaux de pression du NMC 33 c IMIMIM 110304 BEG 34 CALL histdef(nid_nmc, "temp", 35 . "Temperature","K", 36 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 37 . "inst(X)", zout,zout) 34 38 c 35 DO k=1, nlevSTD 39 CALL histdef(nid_nmc, "phi", 40 . "Geopotential", "m", 41 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 42 . "inst(X)", zout,zout) 36 43 c 37 bb=clevSTD(k) 44 CALL histdef(nid_nmc, "q", 45 . "Specific humidity","kg/kg", 46 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 47 . "inst(X)", zout,zout) 38 48 c 39 IF(k.GE.2) THEN40 aa=clevSTD(k)41 bb=aa(1:lnblnk1(aa))42 ENDIF49 CALL histdef(nid_nmc, "rh", 50 . "Relative humidity", "%", 51 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 52 . "inst(X)", zout,zout) 43 53 c 44 CALL histdef(nid_nmc, " t"//bb,45 . " Temperature"//bb//"mb","K",46 . iim,jjmp1,nhori, 1,1,1, -99, 32,47 . " ave(X)", zsto,zout)54 CALL histdef(nid_nmc, "u", 55 . "Zonal wind","m/s", 56 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 57 . "inst(X)", zout,zout) 48 58 c 49 CALL histdef(nid_nmc, "phi"//bb,50 . "Geopotential"//bb//"mb", "m2/s2",51 . iim,jjmp1,nhori, 1,1,1, -99, 32,52 . " ave(X)", zsto,zout)59 CALL histdef(nid_nmc, "v", 60 . "Meridional wind","m/s", 61 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 62 . "inst(X)", zout,zout) 53 63 c 54 CALL histdef(nid_nmc, "q"//bb, 55 . "Specific humidity"//bb//"mb","kg/kg", 56 . iim,jjmp1,nhori, 1,1,1, -99, 32, 57 . "ave(X)", zsto,zout) 64 ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN 58 65 c 59 CALL histdef(nid_nmc, "rh"//bb, 60 . "Relative humidity"//bb//"mb", "%", 61 . iim,jjmp1,nhori, 1,1,1, -99, 32, 62 . "ave(X)", zsto,zout) 66 c ATTENTION : pour AMIP2 on interpole t,u,v,wphi,q,rh 67 c sur les niveaux du NMC et on somme & moyenne 68 c toutes les 6 heures par des routines undefSTD et 69 c moy_undefSTD pour eliminer les valeurs "undef" 70 c de la moyenne mensuelle 71 c ======> le "inst(X)" ci-dessous est par consequence factice ! 63 72 c 64 CALL histdef(nid_nmc, " u"//bb,65 . " Zonal wind"//bb//"mb","K",66 . iim,jjmp1,nhori, 1,1,1, -99, 32,67 . " ave(X)", zsto,zout)73 CALL histdef(nid_nmc, "temp", 74 . "Temperature","K", 75 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 76 . "inst(X)", zout,zout) 68 77 c 69 CALL histdef(nid_nmc, "v"//bb,70 . "Meridional wind"//bb//"mb","K",71 . iim,jjmp1,nhori, 1,1,1, -99, 32,72 . " ave(X)", zsto,zout)78 CALL histdef(nid_nmc, "phi", 79 . "Geopotential ", "m", 80 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 81 . "inst(X)", zout,zout) 73 82 c 74 ENDDO !nlevSTD 75 c IMIMIM 110304 END 83 CALL histdef(nid_nmc, "q", 84 . "Specific humidity","kg/kg", 85 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 86 . "inst(X)", zout,zout) 87 c 88 CALL histdef(nid_nmc, "rh", 89 . "Relative humidity", "%", 90 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 91 . "inst(X)", zout,zout) 92 c 93 CALL histdef(nid_nmc, "u", 94 . "Zonal wind","m/s", 95 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 96 . "inst(X)", zout,zout) 97 c 98 CALL histdef(nid_nmc, "v", 99 . "Meridional wind","m/s", 100 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 101 . "inst(X)", zout,zout) 102 c 103 CALL histdef(nid_nmc, "w", 104 . "Vertical motion","Pa/s", 105 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 106 . "inst(X)", zout,zout) 107 c 108 c ATTENTION : pour AMIP2 on interpole t,u,v,wphi,q,rh 109 c sur les niveaux du NMC et on somme & moyenne 110 c toutes les 6 heures par des routines undefSTD et 111 c moy_undefSTD pour eliminer les valeurs "undef" 112 c de la moyenne mensuelle 113 c ======> le "inst(X)" ci-dessus est par consequence factice ! 114 c 115 c 116 CALL histdef(nid_nmc, "psbg", 117 . "Pressure sfce below ground","%", 118 . iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 119 . "inst(X)", zout,zout) 120 c 121 CALL histdef(nid_nmc, "uv", 122 . "uv ", 123 . "m2/s2",iim,jjmp1,nhori, nlevSTD,1,nlevSTD, nvert, 32, 124 . "inst(X)", zout,zout) 125 c 126 CALL histdef(nid_nmc, "vq", 127 . "vq ", 128 . "m/s * (kg/kg)",iim,jjmp1,nhori, 129 . nlevSTD,1,nlevSTD, nvert, 32, 130 . "inst(X)", zout,zout) 131 c 132 CALL histdef(nid_nmc, "vT", 133 . "vT ", 134 . "mK/s",iim,jjmp1,nhori, 135 . nlevSTD,1,nlevSTD, nvert, 32, 136 . "inst(X)", zout,zout) 137 c 138 CALL histdef(nid_nmc, "wq", 139 . "wq ", 140 . "(Pa/s)*(kg/kg)",iim,jjmp1,nhori, 141 . nlevSTD,1,nlevSTD, nvert, 32, 142 . "inst(X)", zout,zout) 143 c 144 CALL histdef(nid_nmc, "vphi", 145 . "vphi ", 146 . "m2/s",iim,jjmp1,nhori, 147 . nlevSTD,1,nlevSTD, nvert, 32, 148 . "inst(X)", zout,zout) 149 c 150 CALL histdef(nid_nmc, "wT", 151 . "wT ", 152 . "K*Pa/s",iim,jjmp1,nhori, 153 . nlevSTD,1,nlevSTD, nvert, 32, 154 . "inst(X)", zout,zout) 155 c 156 CALL histdef(nid_nmc, "uxu", 157 . "u2 ", 158 . "m2/s2",iim,jjmp1,nhori, 159 . nlevSTD,1,nlevSTD, nvert, 32, 160 . "inst(X)", zout,zout) 161 c 162 CALL histdef(nid_nmc, "vxv", 163 . "v2 ", 164 . "m2/s2",iim,jjmp1,nhori, 165 . nlevSTD,1,nlevSTD, nvert, 32, 166 . "inst(X)", zout,zout) 167 c 168 CALL histdef(nid_nmc, "TxT", 169 . "T2 ", 170 . "K2",iim,jjmp1,nhori, 171 . nlevSTD,1,nlevSTD, nvert, 32, 172 . "inst(X)", zout,zout) 173 c 174 ENDIF !(type_run.EQ."AMIP") 76 175 77 176 CALL histend(nid_nmc) 78 177 c 79 c ndex2d = 080 c81 178 ENDIF ! fin de test sur ok_mensuel 82 -
LMDZ4/trunk/libf/phylmd/interface_surf.F90
r623 r644 74 74 & evap, fluxsens, fluxlat, dflux_l, dflux_s, & 75 75 & tsol_rad, tsurf_new, alb_new, alblw, emis_new, & 76 & z0_new, pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0) 76 & z0_new, pctsrf_new, agesno,fqcalving,ffonte, run_off_lic_0,& 77 !IM "slab" ocean 78 & flux_o, flux_g, tslab, seaice) 77 79 78 80 … … 125 127 ! albedo albedo de la surface 126 128 ! tsurf temperature de surface 129 ! tslab temperature slab ocean 130 ! pctsrf_slab pourcentages (0-1) des sous-surfaces dans le slab 131 ! tmp_pctsrf_slab = pctsrf_slab 127 132 ! p1lay pression 1er niveau (milieu de couche) 128 133 ! ps pression au sol … … 179 184 real, dimension(klon), intent(IN) :: ps, albedo 180 185 real, dimension(klon), intent(IN) :: tsurf, p1lay 186 !IM: "slab" ocean 187 real, dimension(klon), intent(INOUT) :: tslab 188 real, allocatable, dimension(:), save :: tmp_tslab 189 real, dimension(klon), intent(OUT) :: flux_o, flux_g 190 real, dimension(klon), intent(INOUT) :: seaice ! glace de mer (kg/m2) 181 191 REAL, DIMENSION(klon), INTENT(INOUT) :: radsol,fder 182 192 real, dimension(klon), intent(IN) :: zmasq … … 212 222 !jld a rajouter real, dimension(klon), intent(INOUT):: fqcalving 213 223 real, dimension(klon), intent(INOUT):: fqcalving 224 !IM: "slab" ocean 225 real, dimension(klon) :: new_dif_grnd 226 !IM: "slab" ocean - Local 227 real, parameter :: t_grnd=271.35 228 real, dimension(klon) :: zx_sl 229 integer i 230 real, allocatable, dimension(:), save :: tmp_flux_o, tmp_flux_g 231 real, allocatable, dimension(:), save :: tmp_radsol 232 real, allocatable, dimension(:,:), save :: tmp_pctsrf_slab 233 real, allocatable, dimension(:), save :: tmp_seaice 214 234 215 235 ! Local … … 287 307 tsurf_new = 999999. 288 308 alblw = 999999. 309 310 !IM: "slab" ocean; initialisations 311 flux_o = 0. 312 flux_g = 0. 313 ! 314 if (.not. allocated(tmp_flux_o)) then 315 allocate(tmp_flux_o(klon), stat = error) 316 DO i=1, knon 317 tmp_flux_o(knindex(i))=flux_o(i) 318 ENDDO 319 if (error /= 0) then 320 abort_message='Pb allocation tmp_flux_o' 321 call abort_gcm(modname,abort_message,1) 322 endif 323 endif 324 if (.not. allocated(tmp_flux_g)) then 325 allocate(tmp_flux_g(klon), stat = error) 326 DO i=1, knon 327 tmp_flux_g(knindex(i))=flux_g(i) 328 ENDDO 329 if (error /= 0) then 330 abort_message='Pb allocation tmp_flux_g' 331 call abort_gcm(modname,abort_message,1) 332 endif 333 endif 334 if (.not. allocated(tmp_radsol)) then 335 allocate(tmp_radsol(klon), stat = error) 336 if (error /= 0) then 337 abort_message='Pb allocation tmp_radsol' 338 call abort_gcm(modname,abort_message,1) 339 endif 340 endif 341 DO i=1, knon 342 tmp_radsol(knindex(i))=radsol(i) 343 ENDDO 344 if (.not. allocated(tmp_pctsrf_slab)) then 345 allocate(tmp_pctsrf_slab(klon,nbsrf), stat = error) 346 if (error /= 0) then 347 abort_message='Pb allocation tmp_pctsrf_slab' 348 call abort_gcm(modname,abort_message,1) 349 endif 350 DO i=1, klon 351 tmp_pctsrf_slab(i,1:nbsrf)=pctsrf(i,1:nbsrf) 352 ENDDO 353 endif 354 ! 355 if (.not. allocated(tmp_seaice)) then 356 allocate(tmp_seaice(klon), stat = error) 357 if (error /= 0) then 358 abort_message='Pb allocation tmp_seaice' 359 call abort_gcm(modname,abort_message,1) 360 endif 361 DO i=1, klon 362 tmp_seaice(i)=seaice(i) 363 ENDDO 364 endif 365 ! 366 if (.not. allocated(tmp_tslab)) then 367 allocate(tmp_tslab(klon), stat = error) 368 if (error /= 0) then 369 abort_message='Pb allocation tmp_tslab' 370 call abort_gcm(modname,abort_message,1) 371 endif 372 endif 373 DO i=1, klon 374 tmp_tslab(i)=tslab(i) 375 ENDDO 376 ! 289 377 ! Aiguillage vers les differents schemas de surface 290 378 … … 465 553 & pctsrf_new) 466 554 467 ! else if (ocean == 'slab ') then 468 ! call interfoce(nisurf) 555 !IM: "slab" ocean 556 else if (ocean == 'slab ') then 557 tsurf_new = tsurf 558 pctsrf_new = tmp_pctsrf_slab 559 ! 469 560 else ! lecture conditions limites 470 561 call interfoce(itime, dtime, jour, & … … 504 595 !!$ endwhere 505 596 597 !IM: flux ocean-atmosphere utile pour le "slab" ocean 598 DO i=1, knon 599 zx_sl(i) = RLVTT 600 if (tsurf_new(i) .LT. RTT) zx_sl(i) = RLSTT 601 flux_o(i) = fluxsens(i)-evap(i)*zx_sl(i) 602 tmp_flux_o(knindex(i)) = flux_o(i) 603 tmp_radsol(knindex(i))=radsol(i) 604 ENDDO 506 605 ! 507 606 ! 2eme appel a interfoce pour le cumul des champs (en particulier … … 524 623 & pctsrf_new) 525 624 526 ! else if (ocean == 'slab ') then 527 ! call interfoce(nisurf) 528 625 !IM: "slab" ocean 626 else if (ocean == 'slab ') then 627 ! 628 seaice=tmp_seaice 629 cumul = .true. 630 call interfoce(klon, debut, itime, dtime, jour, & 631 & tmp_radsol, tmp_flux_o, tmp_flux_g, pctsrf, & 632 & tslab, seaice, pctsrf_new) 633 ! 634 tmp_pctsrf_slab=pctsrf_new 635 DO i=1, knon 636 tsurf_new(i)=tslab(knindex(i)) 637 ENDDO !i 638 ! 529 639 endif 530 640 … … 585 695 beta = 1.0 586 696 587 ! else if (ocean == 'slab ') then 588 ! call interfoce(nisurf) 697 !IM: "slab" ocean 698 else if (ocean == 'slab ') then 699 pctsrf_new=tmp_pctsrf_slab 700 ! 701 DO ii = 1, knon 702 tsurf_new(ii) = tsurf(ii) 703 IF (pctsrf_new(knindex(ii),nisurf) < EPSFRA) then 704 snow(ii) = 0.0 705 tsurf_new(ii) = RTT - 1.8 706 IF (soil_model) tsoil(ii,:) = RTT -1.8 707 ENDIF 708 ENDDO 709 710 CALL calbeta(dtime, nisurf, knon, snow, qsol, beta, capsol, dif_grnd) 711 712 IF (soil_model) THEN 713 CALL soil(dtime, nisurf, knon,snow, tsurf_new, tsoil,soilcap, soilflux) 714 cal(1:knon) = RCPD / soilcap(1:knon) 715 radsol(1:knon) = radsol(1:knon) + soilflux(1:knon) 716 ELSE 717 dif_grnd = 1.0 / tau_gl 718 cal = RCPD * calice 719 WHERE (snow > 0.0) cal = RCPD * calsno 720 ENDIF 721 tsurf_temp = tsurf_new 722 beta = 1.0 723 ! 589 724 ELSE 590 725 ! ! lecture conditions limites … … 596 731 !IM cf LF 597 732 DO ii = 1, knon 598 IF (pctsrf_new(ii,nisurf) < EPSFRA) then 733 tsurf_new(ii) = tsurf(ii) 734 !IMbad IF (pctsrf_new(ii,nisurf) < EPSFRA) then 735 IF (pctsrf_new(knindex(ii),nisurf) < EPSFRA) then 599 736 snow(ii) = 0.0 600 737 !IM cf LF/JLD tsurf(ii) = RTT - 1.8 … … 617 754 WHERE (snow > 0.0) cal = RCPD * calsno 618 755 ENDIF 619 tsurf_temp = tsurf 756 !IMbadtsurf_temp = tsurf 757 tsurf_temp = tsurf_new 620 758 beta = 1.0 621 759 ENDIF … … 627 765 & petAcoef, peqAcoef, petBcoef, peqBcoef, & 628 766 & tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 767 ! 768 !IM: flux entre l'ocean et la glace de mer pour le "slab" ocean 769 DO i = 1, knon 770 flux_g(i) = 0.0 771 ! 772 !IM: faire dependre le coefficient de conduction de la glace de mer 773 ! de l'epaisseur de la glace de mer, dans l'hypothese ou le coeff. 774 ! actuel correspond a 3m de glace de mer, cf. L.Li 775 ! 776 ! IF(1.EQ.0) THEN 777 ! IF(siceh(i).GT.0.) THEN 778 ! new_dif_grnd(i) = dif_grnd(i)*3./siceh(i) 779 ! ELSE 780 ! new_dif_grnd(i) = 0. 781 ! ENDIF 782 ! ENDIF !(1.EQ.0) THEN 783 ! 784 IF (cal(i).GT.1.0e-15) flux_g(i)=(tsurf_new(i)-t_grnd) & 785 & * dif_grnd(i) *RCPD/cal(i) 786 ! & * new_dif_grnd(i) *RCPD/cal(i) 787 tmp_flux_g(knindex(i))=flux_g(i) 788 tmp_radsol(knindex(i))=radsol(i) 789 ENDDO 629 790 630 791 IF (ocean /= 'couple') THEN … … 744 905 alb_new(1 : knon) = alb_neig(1 : knon)*zfra(1:knon) + & 745 906 & 0.6 * (1.0-zfra(1:knon)) 746 !IM cf FH/GK alb_new(1 : knon) = 0.6 907 ! 908 !IM: plusieurs choix/tests sur l'albedo des "glaciers continentaux" 909 ! alb_new(1 : knon) = 0.6 !IM cf FH/GK 747 910 ! alb_new(1 : knon) = 0.82 748 !IM cf JLD/ GK 749 !IM: 211003 Ksta0.77 alb_new(1 : knon) = 0.77 750 !IM: KstaTER0.8 & LMD_ARMIP5 alb_new(1 : knon) = 0.8 911 ! alb_new(1 : knon) = 0.77 !211003 Ksta0.77 912 ! alb_new(1 : knon) = 0.8 !KstaTER0.8 & LMD_ARMIP5 751 913 !IM: KstaTER0.77 & LMD_ARMIP6 752 914 alb_new(1 : knon) = 0.77 … … 1137 1299 resolution(igrid,2) = cvfi(ij) 1138 1300 enddo 1301 !IM tester la resolution que recoit Orchidee 1302 IF((maxval(resolution(:,2)) == 0.).OR. & 1303 & (maxval(resolution(:,1)) == 0.)) THEN 1304 abort_message='STOP interfsol : resolution recue par Orchidee = 0.' 1305 call abort_gcm(modname,abort_message,1) 1306 ENDIF 1139 1307 1140 1308 endif ! (fin debut) … … 1187 1355 1188 1356 !IM cf. JP +++ 1189 swdown_vrai(1:knon) = swnet(1:knon)/(1. - albedo_keep(1:knon)) 1357 !IM swdown_vrai(1:knon) = swnet(1:knon)/(1. - albedo_keep(1:knon)) 1358 !IM modification faite dans clmain 1359 swdown_vrai(1:knon) = swdown(1:knon) 1190 1360 !IM cf. JP --- 1191 1361 … … 1887 2057 !######################################################################### 1888 2058 ! 1889 1890 SUBROUTINE interfoce_slab(nisurf) 1891 1892 ! Cette routine sert d'interface entre le modele atmospherique et un 1893 ! modele de 'slab' ocean 1894 ! 1895 ! L. Fairhead 02/2000 2059 SUBROUTINE interfoce_slab(klon, debut, itap, dtime, ijour, & 2060 & radsol, fluxo, fluxg, pctsrf, & 2061 & tslab, seaice, pctsrf_slab) 2062 ! 2063 ! Cette routine calcule la temperature d'un slab ocean, la glace de mer 2064 ! et les pourcentages de la maille couverte par l'ocean libre et/ou 2065 ! la glace de mer pour un "slab" ocean de 50m 2066 ! 2067 ! I. Musat 04.02.2005 1896 2068 ! 1897 2069 ! input: 1898 ! nisurf index de la surface a traiter (1 = sol continental) 1899 ! 1900 ! output: 1901 ! 1902 2070 ! klon nombre total de points de grille 2071 ! debut logical: 1er appel a la physique 2072 ! itap numero du pas de temps 2073 ! dtime pas de temps de la physique (en s) 2074 ! ijour jour dans l'annee en cours 2075 ! radsol rayonnement net au sol (LW + SW) 2076 ! fluxo flux turbulent (sensible + latent) sur les mailles oceaniques 2077 ! fluxg flux de conduction entre la surface de la glace de mer et l'ocean 2078 ! pctsrf tableau des pourcentages de surface de chaque maille 2079 ! output: 2080 ! tslab temperature de l'ocean libre 2081 ! seaice glace de mer (kg/m2) 2082 ! pctsrf_slab "pourcentages" (valeurs entre 0. et 1.) surfaces issus du slab 2083 ! 2084 #include "indicesol.inc" 2085 #include "clesphys.inc" 1903 2086 ! Parametres d'entree 1904 integer, intent(IN) :: nisurf 1905 2087 integer, intent(IN) :: klon 2088 logical, intent(IN) :: debut 2089 INTEGER, intent(IN) :: itap 2090 REAL, intent(IN) :: dtime 2091 INTEGER, intent(IN) :: ijour 2092 REAL, dimension(klon), intent(IN) :: radsol 2093 REAL, dimension(klon), intent(IN) :: fluxo 2094 REAL, dimension(klon), intent(IN) :: fluxg 2095 real, dimension(klon, nbsrf), intent(IN) :: pctsrf 2096 ! Parametres de sortie 2097 real, dimension(klon), intent(INOUT) :: tslab 2098 real, dimension(klon), intent(INOUT) :: seaice ! glace de mer (kg/m2) 2099 real, dimension(klon, nbsrf), intent(OUT) :: pctsrf_slab 2100 ! 2101 ! Variables locales : 2102 INTEGER, save :: lmt_pas, julien, idayvrai 2103 REAL, parameter :: unjour=86400. 2104 real, allocatable, dimension(:), save :: tmp_tslab, tmp_seaice 2105 REAL, allocatable, dimension(:), save :: slab_bils 2106 REAL, allocatable, dimension(:), save :: lmt_bils 2107 logical,save :: check = .false. 2108 ! 2109 REAL, parameter :: cyang=50.0 * 4.228e+06 ! capacite calorifique volumetrique de l'eau J/(m2 K) 2110 REAL, parameter :: cbing=0.334e+05 ! J/kg 2111 real, dimension(klon) :: siceh !hauteur de la glace de mer (m) 2112 INTEGER :: i 2113 integer :: sum_error, error 2114 REAL :: zz, za, zb 2115 ! 2116 character (len = 80) :: abort_message 2117 character (len = 20) :: modname = 'interfoce_slab' 2118 ! 2119 julien = MOD(ijour,360) 2120 sum_error = 0 2121 IF (debut) THEN 2122 allocate(slab_bils(klon), stat = error); sum_error = sum_error + error 2123 allocate(lmt_bils(klon), stat = error); sum_error = sum_error + error 2124 allocate(tmp_tslab(klon), stat = error); sum_error = sum_error + error 2125 allocate(tmp_seaice(klon), stat = error); sum_error = sum_error + error 2126 if (sum_error /= 0) then 2127 abort_message='Pb allocation var. slab_bils,lmt_bils,tmp_tslab,tmp_seaice' 2128 call abort_gcm(modname,abort_message,1) 2129 endif 2130 tmp_tslab=tslab 2131 tmp_seaice=seaice 2132 lmt_pas = nint(86400./dtime * 1.0) ! pour une lecture une fois par jour 2133 ! 2134 IF (check) THEN 2135 PRINT*,'interfoce_slab klon, debut, itap, dtime, ijour, & 2136 & lmt_pas ', klon, debut, itap, dtime, ijour, & 2137 & lmt_pas 2138 ENDIF !check 2139 ! 2140 PRINT*, '************************' 2141 PRINT*, 'SLAB OCEAN est actif, prenez precautions !' 2142 PRINT*, '************************' 2143 ! 2144 ! a mettre un slab_bils aussi en force !!! 2145 ! 2146 DO i = 1, klon 2147 slab_bils(i) = 0.0 2148 ENDDO 2149 ! 2150 ENDIF !debut 2151 pctsrf_slab(1:klon,1:nbsrf) = pctsrf(1:klon,1:nbsrf) 2152 ! 2153 ! lecture du bilan au sol lmt_bils issu d'une simulation forcee en debut de journee 2154 ! 2155 IF (MOD(itap,lmt_pas) .EQ. 1) THEN !1er pas de temps de la journee 2156 idayvrai = ijour 2157 CALL condsurf(julien,idayvrai, lmt_bils) 2158 ENDIF !(MOD(itap-1,lmt_pas) .EQ. 0) THEN 2159 2160 DO i = 1, klon 2161 IF((pctsrf_slab(i,is_oce).GT.epsfra).OR. & 2162 & (pctsrf_slab(i,is_sic).GT.epsfra)) THEN 2163 ! 2164 ! fabriquer de la glace si congelation atteinte: 2165 ! 2166 IF (tmp_tslab(i).LT.(RTT-1.8)) THEN 2167 zz = (RTT-1.8)-tmp_tslab(i) 2168 tmp_seaice(i) = tmp_seaice(i) + cyang/cbing * zz 2169 seaice(i) = tmp_seaice(i) 2170 tmp_tslab(i) = RTT-1.8 2171 ENDIF 2172 ! 2173 ! faire fondre de la glace si temperature est superieure a 0: 2174 ! 2175 IF ((tmp_tslab(i).GT.RTT) .AND. (tmp_seaice(i).GT.0.0)) THEN 2176 zz = cyang/cbing * (tmp_tslab(i)-RTT) 2177 zz = MIN(zz,tmp_seaice(i)) 2178 tmp_seaice(i) = tmp_seaice(i) - zz 2179 seaice(i) = tmp_seaice(i) 2180 tmp_tslab(i) = tmp_tslab(i) - zz*cbing/cyang 2181 ENDIF 2182 ! 2183 ! limiter la glace de mer a 10 metres (10000 kg/m2) 2184 ! 2185 IF(tmp_seaice(i).GT.45.) THEN 2186 tmp_seaice(i) = MIN(tmp_seaice(i),10000.0) 2187 ELSE 2188 tmp_seaice(i) = 0. 2189 ENDIF 2190 seaice(i) = tmp_seaice(i) 2191 siceh(i)=tmp_seaice(i)/1000. !en metres 2192 ! 2193 ! determiner la nature du sol (glace de mer ou ocean libre): 2194 ! 2195 ! on fait dependre la fraction de seaice "pctsrf(i,is_sic)" 2196 ! de l'epaisseur de seaice : 2197 ! pctsrf(i,is_sic)=1. si l'epaisseur de la glace de mer est >= a 20cm 2198 ! et pctsrf(i,is_sic) croit lineairement avec seaice de 0. a 20cm d'epaisseur 2199 ! 2200 pctsrf_slab(i,is_sic)=MIN(siceh(i)/0.20, & 2201 & 1.-(pctsrf_slab(i,is_ter)+pctsrf_slab(i,is_lic))) 2202 pctsrf_slab(i,is_oce)=1.0 - & 2203 & (pctsrf_slab(i,is_ter)+pctsrf_slab(i,is_lic)+pctsrf_slab(i,is_sic)) 2204 ENDIF !pctsrf 2205 ENDDO 2206 ! 2207 ! Calculer le bilan du flux de chaleur au sol : 2208 ! 2209 DO i = 1, klon 2210 za = radsol(i) + fluxo(i) 2211 zb = fluxg(i) 2212 IF((pctsrf_slab(i,is_oce).GT.epsfra).OR. & 2213 & (pctsrf_slab(i,is_sic).GT.epsfra)) THEN 2214 slab_bils(i)=slab_bils(i)+(za*pctsrf_slab(i,is_oce) & 2215 & +zb*pctsrf_slab(i,is_sic))/ FLOAT(lmt_pas) 2216 ENDIF 2217 ENDDO !klon 2218 ! 2219 ! calcul tslab 2220 ! 2221 IF (MOD(itap,lmt_pas).EQ.0) THEN !fin de journee 2222 DO i = 1, klon 2223 IF ((pctsrf_slab(i,is_oce).GT.epsfra).OR. & 2224 & (pctsrf_slab(i,is_sic).GT.epsfra)) THEN 2225 tmp_tslab(i) = tmp_tslab(i) + & 2226 & (slab_bils(i)-lmt_bils(i)) & 2227 & /cyang*unjour 2228 ! on remet l'accumulation a 0 2229 slab_bils(i) = 0. 2230 ENDIF !pctsrf 2231 ENDDO !klon 2232 ENDIF !(MOD(itap,lmt_pas).EQ.0) THEN 2233 ! 2234 tslab = tmp_tslab 2235 seaice = tmp_seaice 1906 2236 END SUBROUTINE interfoce_slab 1907 2237 ! -
LMDZ4/trunk/libf/phylmd/orografi.F
r622 r644 113 113 d_t(i,klev+1-k) = dtime*pdtdt(i,k) 114 114 pustr(i) = pustr(i) 115 . +rg*pdudt(i,k)*(papmh(i,k+1)-papmh(i,k)) 115 cIM BUG . +rg*pdudt(i,k)*(papmh(i,k+1)-papmh(i,k)) 116 . +pdudt(i,k)*(papmh(i,k+1)-papmh(i,k))/RG 116 117 pvstr(i) = pvstr(i) 117 . +rg*pdvdt(i,k)*(papmh(i,k+1)-papmh(i,k)) 118 cIM BUG . +rg*pdvdt(i,k)*(papmh(i,k+1)-papmh(i,k)) 119 . +pdvdt(i,k)*(papmh(i,k+1)-papmh(i,k))/RG 118 120 ENDDO 119 121 ENDDO … … 1402 1404 d_t(i,klev+1-k) = dtime*pdtdt(i,k) 1403 1405 pustr(i) = pustr(i) 1404 . +RG*pdudt(i,k)*(papmh(i,k+1)-papmh(i,k)) 1406 cIM BUG . +RG*pdudt(i,k)*(papmh(i,k+1)-papmh(i,k)) 1407 . +pdudt(i,k)*(papmh(i,k+1)-papmh(i,k))/RG 1405 1408 pvstr(i) = pvstr(i) 1406 . +RG*pdvdt(i,k)*(papmh(i,k+1)-papmh(i,k)) 1409 cIM BUG . +RG*pdvdt(i,k)*(papmh(i,k+1)-papmh(i,k)) 1410 . +pdvdt(i,k)*(papmh(i,k+1)-papmh(i,k))/RG 1407 1411 ENDDO 1408 1412 ENDDO -
LMDZ4/trunk/libf/phylmd/phyetat0.F
r541 r644 5 5 c 6 6 SUBROUTINE phyetat0 (fichnom,dtime,co2_ppm_etat0,solaire_etat0, 7 . rlat,rlon, pctsrf, tsol,tsoil,deltat,qsurf,qsol,snow, 7 . rlat,rlon, pctsrf, tsol,tsoil, 8 cIM "slab" ocean 9 . tslab,seaice, 10 . qsurf,qsol,snow, 8 11 . albe, alblw, evap, rain_fall, snow_fall, solsw, sollw, 9 12 . fder,radsol,frugs,agesno,clesphy0, … … 32 35 REAL tsol(klon,nbsrf) 33 36 REAL tsoil(klon,nsoilmx,nbsrf) 34 REAL deltat(klon) 37 cIM "slab" ocean 38 REAL tslab(klon), seaice(klon) 35 39 REAL qsurf(klon,nbsrf) 36 40 REAL qsol(klon) 37 41 REAL snow(klon,nbsrf) 38 42 REAL albe(klon,nbsrf) 39 cIM BEG alblw40 43 REAL alblw(klon,nbsrf) 41 cIM END alblw42 44 REAL evap(klon,nbsrf) 43 45 REAL radsol(klon) … … 420 422 ENDDO 421 423 c 422 c Lecture de deltat (pour slab ocean seulement): 423 c 424 ierr = NF_INQ_VARID (nid, "DELTAT", nvarid) 425 IF (ierr.NE.NF_NOERR) THEN 426 PRINT*, "phyetat0: Le champ <DELTAT> est absent" 427 CALL abort 428 ENDIF 429 #ifdef NC_DOUBLE 430 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, deltat) 431 #else 432 ierr = NF_GET_VAR_REAL(nid, nvarid, deltat) 433 #endif 434 IF (ierr.NE.NF_NOERR) THEN 435 PRINT*, "phyetat0: Lecture echouee pour <DELTAT>" 436 CALL abort 437 ENDIF 438 xmin = 1.0E+20 439 xmax = -1.0E+20 440 DO i = 1, klon 441 xmin = MIN(deltat(i),xmin) 442 xmax = MAX(deltat(i),xmax) 443 ENDDO 444 PRINT*,'Ecart de la SST deltat:', xmin, xmax 424 cIM "slab" ocean 425 c 426 c Lecture de tslab (pour slab ocean seulement): 427 c 428 ierr = NF_INQ_VARID (nid, "TSLAB", nvarid) 429 IF (ierr.NE.NF_NOERR) THEN 430 PRINT*, "phyetat0: Le champ <TSLAB> est absent" 431 CALL abort 432 ENDIF 433 #ifdef NC_DOUBLE 434 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, tslab) 435 #else 436 ierr = NF_GET_VAR_REAL(nid, nvarid, tslab) 437 #endif 438 IF (ierr.NE.NF_NOERR) THEN 439 PRINT*, "phyetat0: Lecture echouee pour <TSLAB>" 440 CALL abort 441 ENDIF 442 xmin = 1.0E+20 443 xmax = -1.0E+20 444 DO i = 1, klon 445 xmin = MIN(tslab(i),xmin) 446 xmax = MAX(tslab(i),xmax) 447 ENDDO 448 PRINT*,'Ecart de la SST tslab:', xmin, xmax 449 c 450 c Lecture de seaice (pour slab ocean seulement): 451 c 452 ierr = NF_INQ_VARID (nid, "SEAICE", nvarid) 453 IF (ierr.NE.NF_NOERR) THEN 454 PRINT*, "phyetat0: Le champ <SEAICE> est absent" 455 CALL abort 456 ENDIF 457 #ifdef NC_DOUBLE 458 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, seaice) 459 #else 460 ierr = NF_GET_VAR_REAL(nid, nvarid, seaice) 461 #endif 462 IF (ierr.NE.NF_NOERR) THEN 463 PRINT*, "phyetat0: Lecture echouee pour <SEAICE>" 464 CALL abort 465 ENDIF 466 xmin = 1.0E+20 467 xmax = -1.0E+20 468 DO i = 1, klon 469 xmin = MIN(seaice(i),xmin) 470 xmax = MAX(seaice(i),xmax) 471 ENDDO 472 PRINT*,'Masse de la glace de mer seaice:', xmin, xmax 445 473 c 446 474 c Lecture de l'humidite de l'air juste au dessus du sol: … … 652 680 653 681 c 654 cIM BEG alblw655 682 c Lecture de albedo au sol LW: 656 683 c … … 690 717 ENDDO 691 718 ENDIF 692 693 cIM END alblw694 695 719 c 696 720 c Lecture de evaporation: -
LMDZ4/trunk/libf/phylmd/phyredem.F
r541 r644 4 4 c 5 5 SUBROUTINE phyredem (fichnom,dtime,radpas, 6 . rlat,rlon, pctsrf,tsol,tsoil,deltat,qsurf,qsol,snow, 6 . rlat,rlon, pctsrf,tsol,tsoil, 7 cIM "slab" ocean 8 . tslab,seaice, 9 . qsurf,qsol,snow, 7 10 . albedo, alblw, evap, rain_fall, snow_fall, 8 11 . solsw, sollw,fder, … … 31 34 REAL tsol(klon,nbsrf) 32 35 REAL tsoil(klon,nsoilmx,nbsrf) 33 REAL deltat(klon) 36 cIM "slab" ocean 37 REAL tslab(klon), seaice(klon) 34 38 REAL qsurf(klon,nbsrf) 35 39 REAL qsol(klon) … … 288 292 ENDDO 289 293 c 290 c 291 ierr = NF_REDEF (nid) 292 #ifdef NC_DOUBLE 293 ierr = NF_DEF_VAR (nid, " DELTAT", NF_DOUBLE, 1, idim2,nvarid)294 #else 295 ierr = NF_DEF_VAR (nid, " DELTAT", NF_FLOAT, 1, idim2,nvarid)294 cIM "slab" ocean 295 ierr = NF_REDEF (nid) 296 #ifdef NC_DOUBLE 297 ierr = NF_DEF_VAR (nid, "TSLAB", NF_DOUBLE, 1, idim2,nvarid) 298 #else 299 ierr = NF_DEF_VAR (nid, "TSLAB", NF_FLOAT, 1, idim2,nvarid) 296 300 #endif 297 301 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 33, … … 299 303 ierr = NF_ENDDEF(nid) 300 304 #ifdef NC_DOUBLE 301 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,deltat) 302 #else 303 ierr = NF_PUT_VAR_REAL (nid,nvarid,deltat) 305 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,tslab) 306 #else 307 ierr = NF_PUT_VAR_REAL (nid,nvarid,tslab) 308 #endif 309 c 310 ierr = NF_REDEF (nid) 311 #ifdef NC_DOUBLE 312 ierr = NF_DEF_VAR (nid, "SEAICE", NF_DOUBLE, 1, idim2,nvarid) 313 #else 314 ierr = NF_DEF_VAR (nid, "SEAICE", NF_FLOAT, 1, idim2,nvarid) 315 #endif 316 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 33, 317 . "Glace de mer kg/m2 (pour slab-ocean)") 318 ierr = NF_ENDDEF(nid) 319 #ifdef NC_DOUBLE 320 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,seaice) 321 #else 322 ierr = NF_PUT_VAR_REAL (nid,nvarid,seaice) 304 323 #endif 305 324 c -
LMDZ4/trunk/libf/phylmd/physiq.F
r625 r644 11 11 . flxmass_w, 12 12 #endif 13 . d_u, d_v, d_t, d_qx, d_ps) 13 . d_u, d_v, d_t, d_qx, d_ps 14 cIM Amip2 15 . , dudyn 16 . , PVteta) 14 17 15 18 USE ioipsl … … 40 43 #define histins 41 44 c#define histISCCP 42 #define histREGDYN43 #define histmthNMC45 c#define histREGDYN 46 c#define histmthNMC 44 47 c====================================================================== 45 48 c modif ( P. Le Van , 12/10/98 ) … … 73 76 c d_qx----output-R-tendance physique de "qx" (kg/kg/s) 74 77 c d_ps----output-R-tendance physique de la pression au sol 78 cIM 79 c PVteta--output-R-vorticite potentielle a des thetas constantes 75 80 c====================================================================== 76 81 #include "dimensions.h" … … 116 121 c parameter (ocean = 'couple') 117 122 logical ok_ocean 123 SAVE ok_ocean 124 c 125 cIM "slab" ocean 126 REAL tslab(klon) !Temperature du slab-ocean 127 REAL seaice(klon) !glace de mer (kg/m2) 128 REAL fluxo(klon) !flux turbulents ocean-glace de mer 129 REAL fluxg(klon) !flux turbulents ocean-atmosphere 130 c 118 131 c====================================================================== 119 132 c Clef controlant l'activation du cycle diurne: … … 188 201 REAL znivsig(klev) 189 202 REAL zsurf(nbsrf) 190 203 cIM 204 INTEGER kinv 205 real pir 206 cMI 191 207 REAL u(klon,klev) 192 208 REAL v(klon,klev) … … 213 229 REAL d_ps(klon) 214 230 real da(klon,klev),phi(klon,klev,klev),mp(klon,klev) 231 c 232 cIM Amip2 PV a theta constante 233 c 234 INTEGER nbteta 235 PARAMETER(nbteta=3) 236 CHARACTER*3 ctetaSTD(nbteta) 237 DATA ctetaSTD/'350','380','405'/ 238 REAL rtetaSTD(nbteta) 239 DATA rtetaSTD/350., 380., 405./ 240 c 241 REAL PVteta(klon,nbteta) 242 REAL zx_tmp_3dte(iim,jjmp1,nbteta) 243 c 244 cMI Amip2 PV a theta constante 215 245 216 246 INTEGER klevp1, klevm1 … … 238 268 SAVE LWdnTOA, LWdnTOAclr 239 269 c 240 c vents meridien et zonal a un niveau de pression 270 cIM Amip2 271 c variables a une pression donnee 241 272 c 242 273 integer nlevSTD … … 246 277 .60000., 50000., 40000., 30000., 25000., 20000., 247 278 .15000., 10000., 7000., 5000., 3000., 2000., 1000./ 248 CHARACTER* 5 clevSTD(nlevSTD), aa, bb279 CHARACTER*4 clevSTD(nlevSTD) 249 280 DATA clevSTD/'1000','925 ','850 ','700 ','600 ', 250 281 .'500 ','400 ','300 ','250 ','200 ','150 ','100 ', 251 282 .'70 ','50 ','30 ','20 ','10 '/ 252 283 c 284 CHARACTER*3 bb2 285 CHARACTER*2 bb3 286 c 253 287 real tlevSTD(klon,nlevSTD), qlevSTD(klon,nlevSTD) 254 288 real rhlevSTD(klon,nlevSTD), philevSTD(klon,nlevSTD) 255 289 real ulevSTD(klon,nlevSTD), vlevSTD(klon,nlevSTD) 256 c 257 cIM ENSEMBLES BEG 258 c 259 integer nlevENS 260 PARAMETER(nlevENS=4) 261 integer indENS(nlevENS) 262 save indENS 263 real rlevENS(nlevENS) 264 DATA rlevENS/85000., 70000., 50000., 20000./ 265 CHARACTER*3 clev(nlevENS) 266 DATA clev/'850','700','500','200'/ 267 268 real tlev(klon,nlevENS), qlev(klon,nlevENS), rhlev(klon,nlevENS) 269 real ulev(klon,nlevENS), vlev(klon,nlevENS), philev(klon,nlevENS) 270 real wlev(klon,nlevENS) 271 cIM ENSEMBLES END 290 real wlevSTD(klon,nlevSTD) 291 c 292 c nout : niveau de output des variables a une pression donnee 293 INTEGER nout 294 PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC 295 c 296 REAL tsumSTD(klon,nlevSTD,nout) 297 REAL usumSTD(klon,nlevSTD,nout), vsumSTD(klon,nlevSTD,nout) 298 REAL wsumSTD(klon,nlevSTD,nout), phisumSTD(klon,nlevSTD,nout) 299 REAL qsumSTD(klon,nlevSTD,nout), rhsumSTD(klon,nlevSTD,nout) 300 c 301 SAVE tsumSTD, usumSTD, vsumSTD, wsumSTD, phisumSTD, 302 . qsumSTD, rhsumSTD 303 c 304 logical oknondef(klon,nlevSTD,nout) 305 real tnondef(klon,nlevSTD,nout) 306 save tnondef 307 c 308 c les produits uvSTD, vqSTD, .., T2STD sont calcules 309 c a partir des valeurs instantannees toutes les 6 h 310 c qui sont moyennees sur le mois 311 c 312 real uvSTD(klon,nlevSTD) 313 real vqSTD(klon,nlevSTD) 314 real vTSTD(klon,nlevSTD) 315 real wqSTD(klon,nlevSTD) 316 c 317 real uvsumSTD(klon,nlevSTD,nout) 318 real vqsumSTD(klon,nlevSTD,nout) 319 real vTsumSTD(klon,nlevSTD,nout) 320 real wqsumSTD(klon,nlevSTD,nout) 321 c 322 real vphiSTD(klon,nlevSTD) 323 real wTSTD(klon,nlevSTD) 324 real u2STD(klon,nlevSTD) 325 real v2STD(klon,nlevSTD) 326 real T2STD(klon,nlevSTD) 327 c 328 real vphisumSTD(klon,nlevSTD,nout) 329 real wTsumSTD(klon,nlevSTD,nout) 330 real u2sumSTD(klon,nlevSTD,nout) 331 real v2sumSTD(klon,nlevSTD,nout) 332 real T2sumSTD(klon,nlevSTD,nout) 333 c 334 SAVE uvsumSTD, vqsumSTD, vTsumSTD, wqsumSTD 335 SAVE vphisumSTD, wTsumSTD, u2sumSTD, v2sumSTD, T2sumSTD 336 cMI Amip2 337 c 338 #include "radepsi.h" 339 #include "radopt.h" 340 c 272 341 c 273 342 c prw: precipitable water … … 282 351 REAL cldt_s(klon),cldq_s(klon) !nuage total, eau liquide integree 283 352 284 INTEGER linv,kp1353 INTEGER kp1 285 354 c flwp, fiwp = Liquid Water Path & Ice Water Path (kg/m2) 286 355 c flwc, fiwc = Liquid Water Content & Ice Water Content (kg/kg) … … 292 361 REAL flwc_s(klon,klev), fiwc_s(klon,klev) 293 362 294 c ISCCP simulator v3.4363 cIM ISCCP simulator v3.4 295 364 c dans clesphys.h top_height, overlap 296 365 cv3.4 … … 322 391 REAL emsfc_lw 323 392 PARAMETER(emsfc_lw=0.99) 324 393 c REAL ran0 ! type for random number fuction 325 394 c 326 395 REAL cldtot(klon,klev) … … 351 420 REAL boxptop(klon,ncol) 352 421 c 353 INTEGER l, ni, nj,kmax, lmax422 INTEGER l, kmax, lmax 354 423 PARAMETER(kmax=8, lmax=8) 355 424 INTEGER kmaxm1, lmaxm1 … … 358 427 PARAMETER(iimx7=iim*kmaxm1, jjmx7=jjm*lmaxm1, 359 428 .jjmp1x7=jjmp1*lmaxm1) 360 REAL fq4d(iim,jjmp1,kmaxm1,lmaxm1)361 REAL fq3d(iimx7, jjmp1x7)362 429 c 363 430 INTEGER iw, iwmax … … 376 443 SAVE nhistoWt 377 444 445 INTEGER linv 378 446 INTEGER pct_ocean(klon,nbregdyn) 379 REAL rlonPOS(klon)380 447 381 448 c sorties ISCCP 382 449 383 384 450 c logical ok_isccp 451 c real ecrit_isccp 385 452 integer nid_isccp 386 save ok_isccp, ecrit_isccp, nid_isccp 387 388 #ifdef histISCCP 389 data ok_isccp/.true./ 390 #else 391 data ok_isccp/.false./ 392 #endif 453 c save ok_isccp, ecrit_isccp, nid_isccp 454 save nid_isccp 455 cIM 090704 BEG 456 INTEGER nbapp_isccp,isccppas 457 458 #undef histISCCP 459 #define histISCCP 460 c data ok_isccp,ecrit_isccp/.true.,0.125/ 461 c data ok_isccp,ecrit_isccp/.true.,1./ 462 cIM 190504 data ok_isccp/.true./ 463 cIM 190504 #else 464 cIM 190504 data ok_isccp/.false./ 465 cIM 190504 #endif 393 466 394 467 c sorties statistiques regime dynamique 395 396 468 c logical ok_regdyn 469 c real ecrit_regdyn 397 470 integer nid_regdyn 398 save ok_regdyn, ecrit_regdyn, nid_regdyn 399 400 #ifdef histREGDYN 471 c save ok_regdyn, ecrit_regdyn, nid_regdyn 472 save nid_regdyn 473 474 #undef histREGDYN 475 #define histREGDYN 476 cIM 190504 #ifdef histREGDYN 401 477 c data ok_regdyn,ecrit_regdyn/.true.,0.125/ 402 478 c data ok_regdyn,ecrit_regdyn/.true.,1./ 403 404 #else405 406 #endif479 cIM 190504 data ok_regdyn/.true./ 480 cIM 190504 #else 481 cIM 190504 data ok_regdyn/.false./ 482 cIM 190504 #endif 407 483 408 484 REAL zx_tau(kmaxm1), zx_pc(lmaxm1), zx_o500(iwmax) … … 418 494 c taulev: numero du niveau de tau dans les sorties ISCCP 419 495 CHARACTER *4 taulev(kmaxm1) 420 DATA taulev/'tau1','tau2','tau3','tau4','tau5','tau6','tau7'/ 421 422 REAL zx_lonx7(iimx7), zx_latx7(jjmp1x7) 423 INTEGER nhorix7 496 c DATA taulev/'tau1','tau2','tau3','tau4','tau5','tau6','tau7'/ 497 DATA taulev/'tau0','tau1','tau2','tau3','tau4','tau5','tau6'/ 498 CHARACTER *3 pclev(lmaxm1) 499 DATA pclev/'pc1','pc2','pc3','pc4','pc5','pc6','pc7'/ 500 c 501 c cnameisccp 502 CHARACTER *27 cnameisccp(lmaxm1,kmaxm1) 503 DATA cnameisccp/'pc< 50hPa, tau< 0.3', 504 . 'pc= 50-180hPa, tau< 0.3', 505 . 'pc= 180-310hPa, tau< 0.3', 506 . 'pc= 310-440hPa, tau< 0.3', 507 . 'pc= 440-560hPa, tau< 0.3', 508 . 'pc= 560-680hPa, tau< 0.3', 509 . 'pc= 680-800hPa, tau< 0.3', 510 . 'pc< 50hPa, tau= 0.3-1.3', 511 . 'pc= 50-180hPa, tau= 0.3-1.3', 512 . 'pc= 180-310hPa, tau= 0.3-1.3', 513 . 'pc= 310-440hPa, tau= 0.3-1.3', 514 . 'pc= 440-560hPa, tau= 0.3-1.3', 515 . 'pc= 560-680hPa, tau= 0.3-1.3', 516 . 'pc= 680-800hPa, tau= 0.3-1.3', 517 . 'pc< 50hPa, tau= 1.3-3.6', 518 . 'pc= 50-180hPa, tau= 1.3-3.6', 519 . 'pc= 180-310hPa, tau= 1.3-3.6', 520 . 'pc= 310-440hPa, tau= 1.3-3.6', 521 . 'pc= 440-560hPa, tau= 1.3-3.6', 522 . 'pc= 560-680hPa, tau= 1.3-3.6', 523 . 'pc= 680-800hPa, tau= 1.3-3.6', 524 . 'pc< 50hPa, tau= 3.6-9.4', 525 . 'pc= 50-180hPa, tau= 3.6-9.4', 526 . 'pc= 180-310hPa, tau= 3.6-9.4', 527 . 'pc= 310-440hPa, tau= 3.6-9.4', 528 . 'pc= 440-560hPa, tau= 3.6-9.4', 529 . 'pc= 560-680hPa, tau= 3.6-9.4', 530 . 'pc= 680-800hPa, tau= 3.6-9.4', 531 . 'pc< 50hPa, tau= 9.4-23', 532 . 'pc= 50-180hPa, tau= 9.4-23', 533 . 'pc= 180-310hPa, tau= 9.4-23', 534 . 'pc= 310-440hPa, tau= 9.4-23', 535 . 'pc= 440-560hPa, tau= 9.4-23', 536 . 'pc= 560-680hPa, tau= 9.4-23', 537 . 'pc= 680-800hPa, tau= 9.4-23', 538 . 'pc< 50hPa, tau= 23-60', 539 . 'pc= 50-180hPa, tau= 23-60', 540 . 'pc= 180-310hPa, tau= 23-60', 541 . 'pc= 310-440hPa, tau= 23-60', 542 . 'pc= 440-560hPa, tau= 23-60', 543 . 'pc= 560-680hPa, tau= 23-60', 544 . 'pc= 680-800hPa, tau= 23-60', 545 . 'pc< 50hPa, tau> 60.', 546 . 'pc= 50-180hPa, tau> 60.', 547 . 'pc= 180-310hPa, tau> 60.', 548 . 'pc= 310-440hPa, tau> 60.', 549 . 'pc= 440-560hPa, tau> 60.', 550 . 'pc= 560-680hPa, tau> 60.', 551 . 'pc= 680-800hPa, tau> 60.'/ 552 c 553 c REAL zx_lonx7(iimx7), zx_latx7(jjmp1x7) 554 c INTEGER nhorix7 424 555 cIM: region='3d' <==> sorties en global 425 556 CHARACTER*3 region 426 557 PARAMETER(region='3d') 427 558 c 559 cIM ISCCP simulator v3.4 560 c 428 561 logical ok_hf 429 real ecrit_hf 562 cIM200505 integer ecrit_hf 563 cIM200505 integer ecrit_hf2mth 564 cIM200505 save ecrit_hf2mth 565 c 430 566 integer nid_hf, nid_hf3d 431 save ok_hf, ecrit_hf, nid_hf, nid_hf3d 567 cIM200505 save ok_hf, ecrit_hf, nid_hf, nid_hf3d 568 save ok_hf, nid_hf, nid_hf3d 432 569 433 570 c QUESTION : noms de variables ? 434 571 435 572 #ifdef histhf 436 data ok_hf,ecrit_hf/.true.,0.25/ 573 cIM 130904 data ok_hf,ecrit_hf/.true.,0.25/ 574 data ok_hf/.true./ 437 575 #else 438 576 data ok_hf/.false./ … … 465 603 REAL rlon(klon) 466 604 SAVE rlon ! longitude pour chaque point 605 c 606 REAL rlonPOS(klon) 607 SAVE rlonPOS ! longitudes > 0. pour chaque point 467 608 c 468 609 cc INTEGER iflag_con … … 534 675 SAVE rugoro ! longueur de rugosite de l'OESM 535 676 c 536 REAL zulow(klon),zvlow(klon),zustr(klon), zvstr(klon) 677 cIM 141004 REAL zulow(klon),zvlow(klon),zustr(klon), zvstr(klon) 678 REAL zulow(klon),zvlow(klon) 537 679 c 538 680 REAL zuthe(klon),zvthe(klon) … … 621 763 REAL snow_fall(klon) ! neige 622 764 save snow_fall, rain_fall 623 cIM 050204 BEG 765 cIM cf FH pour Tiedtke 080604 766 REAL rain_tiedtke(klon),snow_tiedtke(klon) 767 c 624 768 REAL total_rain(klon), nday_rain(klon) 625 save total_rain,nday_rain626 c IM 050204 END769 save nday_rain 770 c 627 771 REAL evap(klon), devap(klon) ! evaporation et sa derivee 628 772 REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee … … 655 799 REAL pctsrf_new(klon,nbsrf) !pourcentage surfaces issus d'ORCHIDEE 656 800 REAL paire_ter(klon) !surfaces terre 657 c IM801 c 658 802 SAVE pctsrf ! sous-fraction du sol 659 803 REAL albsol(klon) … … 699 843 EXTERNAL lnblnk1 !enleve les blancs a la fin d'une variable de type 700 844 !caracter 845 EXTERNAL ini_undefSTD !initialise a 0 une variable a 1 niveau de pression 846 EXTERNAL undefSTD !somme les valeurs definies d'1 var a 1 niveau de pression 847 c EXTERNAL moy_undefSTD !moyenne d'1 var a 1 niveau de pression 848 c EXTERNAL moyglo_aire !moyenne globale d'1 var ponderee par l'aire de la maille (moyglo_pondaire) 849 c !par la masse/airetot (moyglo_pondaima) et la vraie masse (moyglo_pondmass) 701 850 c 702 851 c Variables locales … … 704 853 real clwcon(klon,klev),rnebcon(klon,klev) 705 854 real clwcon0(klon,klev),rnebcon0(klon,klev) 855 cIM cf. AM 081204 BEG 856 real clwcon0th(klon,klev),rnebcon0th(klon,klev) 857 cIM cf. AM 081204 END 706 858 save rnebcon, clwcon 707 859 … … 770 922 REAL zx_t, zx_qs, zdelta, zcor, zfra, zlvdcp, zlsdcp 771 923 real zqsat(klon,klev) 772 INTEGER i, k, iq, ig, j, iiq,nsrf, ll924 INTEGER i, k, iq, ig, j, nsrf, ll 773 925 REAL t_coup 774 926 PARAMETER (t_coup=234.0) 775 927 c 776 928 REAL zphi(klon,klev) 777 REAL zx_tmp_x(iim), zx_tmp_yjjmp1778 929 REAL zx_relief(iim,jjmp1) 779 930 REAL zx_aire(iim,jjmp1) 931 c 932 cIM cf. AM Variables locales pour la CLA (hbtm2) 933 c 934 REAL pblh(klon, nbsrf) ! Hauteur de couche limite 935 REAL plcl(klon, nbsrf) ! Niveau de condensation de la CLA 936 REAL capCL(klon, nbsrf) ! CAPE de couche limite 937 REAL oliqCL(klon, nbsrf) ! eau_liqu integree de couche limite 938 REAL cteiCL(klon, nbsrf) ! cloud top instab. crit. couche limite 939 REAL pblt(klon, nbsrf) ! T a la Hauteur de couche limite 940 REAL therm(klon, nbsrf) 941 REAL trmb1(klon, nbsrf) ! deep_cape 942 REAL trmb2(klon, nbsrf) ! inhibition 943 REAL trmb3(klon, nbsrf) ! Point Omega 944 c Grdeurs de sorties 945 REAL s_pblh(klon), s_lcl(klon), s_capCL(klon) 946 REAL s_oliqCL(klon), s_cteiCL(klon), s_pblt(klon) 947 REAL s_therm(klon), s_trmb1(klon), s_trmb2(klon) 948 REAL s_trmb3(klon) 780 949 cKE43 781 950 c Variables locales pour la convection de K. Emanuel (sb): … … 796 965 INTEGER iflagctrl(klon) ! flag fonctionnement de convect 797 966 c -- convect43: 798 INTEGER ntra ! nb traceurs 967 INTEGER ntra ! nb traceurs pour convect4.3 799 968 REAL pori_con(klon) ! pressure at the origin level of lifted parcel 800 969 REAL plcl_con(klon),dtma_con(klon),dtlcl_con(klon) … … 820 989 REAL d_u_ajs(klon,klev), d_v_ajs(klon,klev) 821 990 REAL d_t_eva(klon,klev),d_q_eva(klon,klev) 991 REAL d_t_oli(klon,klev) !tendances dues a oro et lif 822 992 REAL rneb(klon,klev) 993 c 994 ********************************************************* 995 * declarations 996 real zqasc(klon,klev) 997 save zqasc 998 999 ********************************************************* 1000 cIM 081204 END 823 1001 c 824 1002 REAL pmfu(klon,klev), pmfd(klon,klev) … … 863 1041 864 1042 logical ptconv(klon,klev) 865 1043 cIM cf. AM 081204 BEG 1044 logical ptconvth(klon,klev) 1045 cIM cf. AM 081204 END 866 1046 c 867 1047 c Variables liees a l'ecriture de la bande histoire physique 868 1048 c 869 INTEGER ecrit_mth 870 SAVE ecrit_mth ! frequence d'ecriture (fichier mensuel) 871 c 872 INTEGER ecrit_day 873 SAVE ecrit_day ! frequence d'ecriture (fichier journalier) 874 c 875 INTEGER ecrit_ins 876 SAVE ecrit_ins ! frequence d'ecriture (fichier instantane) 877 c 878 INTEGER ecrit_reg 879 SAVE ecrit_reg ! frequence d'ecriture 1049 c====================================================================== 1050 cIM200505 INTEGER ecrit_mth 1051 cIM200505 SAVE ecrit_mth ! frequence d'ecriture (fichier mensuel) 1052 c 1053 cIM cf. AM 081204 BEG 1054 c declarations pour sortir sur une sous-region 1055 integer imin_ins,imax_ins,jmin_ins,jmax_ins 1056 save imin_ins,imax_ins,jmin_ins,jmax_ins 1057 c real lonmin_ins,lonmax_ins,latmin_ins 1058 c s ,latmax_ins 1059 c data lonmin_ins,lonmax_ins,latmin_ins 1060 c s ,latmax_ins/ 1061 c valeurs initiales s -5.,20.,41.,55./ 1062 c s 100.,130.,-20.,20./ 1063 c s -180.,180.,-90.,90./ 1064 c====================================================================== 1065 cIM cf. AM 081204 END 1066 1067 c 1068 cIM200505 INTEGER ecrit_day 1069 cIM200505 SAVE ecrit_day ! frequence d'ecriture (fichier journalier) 1070 c 1071 cIM200505 INTEGER ecrit_ins 1072 cIM200505 SAVE ecrit_ins ! frequence d'ecriture (fichier instantane) 1073 c 1074 cIM200505 INTEGER ecrit_reg 1075 cIM200505 SAVE ecrit_reg ! frequence d'ecriture 880 1076 c 881 1077 integer itau_w ! pas de temps ecriture = itap + itau_phy … … 898 1094 c 899 1095 INTEGER ndex2d(iim*jjmp1),ndex3d(iim*jjmp1*klev) 1096 c 1097 cIM AMIP2 BEG 1098 REAL moyglo, mountor 1099 cIM 141004 BEG 1100 REAL zustrdr(klon), zvstrdr(klon) 1101 REAL zustrli(klon), zvstrli(klon) 1102 REAL zustrph(klon), zvstrph(klon) 1103 REAL aam, torsfc 1104 cIM 141004 END 1105 cIM 190504 BEG 1106 INTEGER ij, imp1jmp1 1107 PARAMETER(imp1jmp1=(iim+1)*jjmp1) 1108 REAL zx_tmp(imp1jmp1), airedyn(iim+1,jjmp1) 1109 REAL padyn(iim+1,jjmp1,klev+1) 1110 REAL dudyn(iim+1,jjmp1,klev) 1111 REAL rlatdyn(iim+1,jjmp1) 1112 cIM 190504 END 1113 LOGICAL ok_msk 1114 REAL msk(klon) 1115 cIM 1116 REAL airetot, pi 1117 REAL zm_wo(jjmp1, klev) 1118 cIM AMIP2 END 1119 c 900 1120 REAL zx_tmp_fi2d(klon) ! variable temporaire grille physique 901 1121 REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D 1122 REAL*8 zx_tmp2_fi3d(klon,klev) ! variable temporaire pour champs 3D 902 1123 REAL zx_tmp_2d(iim,jjmp1), zx_tmp_3d(iim,jjmp1,klev) 903 1124 REAL zx_lon(iim,jjmp1), zx_lat(iim,jjmp1) 904 1125 c 905 INTEGER nid_day, nid_mth, nid_ins, nid_nmc 906 SAVE nid_day, nid_mth, nid_ins, nid_nmc 907 c 908 INTEGER nhori, nvert 1126 INTEGER nid_day, nid_mth, nid_ins, nid_nmc, nid_day_seri 1127 SAVE nid_day, nid_mth, nid_ins, nid_nmc, nid_day_seri 1128 c 1129 cIM 280405 BEG 1130 INTEGER nid_bilKPins, nid_bilKPave 1131 SAVE nid_bilKPins, nid_bilKPave 1132 c 1133 REAL ve_lay(klon,klev) ! transport meri. de l'energie a chaque niveau vert. 1134 REAL vq_lay(klon,klev) ! transport meri. de l'eau a chaque niveau vert. 1135 REAL ue_lay(klon,klev) ! transport zonal de l'energie a chaque niveau vert. 1136 REAL uq_lay(klon,klev) ! transport zonal de l'eau a chaque niveau vert. 1137 c 1138 cIM 280405 END 1139 c 1140 INTEGER nhori, nvert, nvert1 1141 c REAL zstok 909 1142 REAL zsto, zout, zsto1, zsto2 1143 c REAL zstoave, zstoin 1144 REAL zstophy, zstorad, zstohf, zstoday, zstomth 910 1145 real zjulian 911 1146 save zjulian … … 954 1189 REAL zu10m(klon), zv10m(klon) !vents a 10m moyennes s/1 maille 955 1190 CHARACTER*40 t2mincels, t2maxcels !t2m min., t2m max 1191 CHARACTER*40 tinst, tave, typeval 956 1192 cjq Aerosol effects (Johannes Quaas, 27/11/2003) 957 1193 REAL sulfate(klon, klev) ! SO4 aerosol concentration [ug/m3] … … 1041 1277 IF (debut) THEN 1042 1278 CALL suphec ! initialiser constantes et parametres phys. 1043 c 1044 cIM 050204 BEG 1045 DO i=1, klon 1046 nday_rain(i)=0. 1047 ENDDO 1048 cIM 050204 END 1049 c 1279 ENDIF 1280 1281 1050 1282 c====================================================================== 1051 cIM BEG1052 DO k=1, nlevENS1053 DO l=1, nlevSTD1054 c1055 bb=clevSTD(l)1056 c1057 IF(l.GE.2) THEN1058 aa=clevSTD(l)1059 bb=aa(1:lnblnk1(aa))1060 ENDIF1061 c1062 IF(bb.EQ.clev(k)) THEN1063 c print*,'k=',k,'l=',l,'clev=',clev(k)1064 indENS(k)=l1065 c print*,'k=',k,'l=',l,'clev=',clev(k),'indENS=',indENS(k)1066 ENDIF1067 c1068 ENDDO1069 ENDDO1070 c1071 ENDIF !debut1072 cIM END1073 1283 xjour = rjourvrai 1074 1284 c … … 1098 1308 itaprad = 0 1099 1309 CALL phyetat0 ("startphy.nc",dtime,co2_ppm_etat0,solaire_etat0, 1100 . rlat,rlon,pctsrf, ftsol,ftsoil,deltat,fqsurf,qsol,fsnow, 1310 . rlat,rlon,pctsrf, ftsol,ftsoil, 1311 cIM "slab" ocean 1312 . tslab,seaice, 1313 . fqsurf,qsol,fsnow, 1101 1314 . falbe, falblw, fevap, rain_fall,snow_fall,solsw, sollwdown, 1102 1315 . dlw,radsol,frugs,agesno,clesphy0, … … 1116 1329 ENDIF 1117 1330 1331 cIM cf. AM 081204 BEG 1332 PRINT*,'cycle_diurne3 =',cycle_diurne 1333 cIM cf. AM 081204 END 1334 c 1335 IF(ocean.NE.'force ') THEN 1336 ok_ocean=.TRUE. 1337 ENDIF 1118 1338 c 1119 1339 CALL printflag( tabcntr0,radpas,ok_ocean,ok_oasis ,ok_journe, … … 1191 1411 . lmt_pas 1192 1412 c 1193 ecrit_mth = NINT(86400./dtime *ecritphy) ! tous les ecritphy jours 1194 IF (ok_mensuel) THEN 1195 WRITE(lunout,*)'La frequence de sortie mensuelle est de ', 1196 . ecrit_mth 1197 ENDIF 1198 ecrit_day = NINT(86400./dtime *1.0) ! tous les jours 1199 IF (ok_journe) THEN 1200 WRITE(lunout,*)'La frequence de sortie journaliere est de ', 1201 . ecrit_day 1202 ENDIF 1413 cIM200505 ecrit_mth = NINT(86400./dtime *ecritphy) ! tous les ecritphy jours 1414 c IF (ok_mensuel) THEN 1415 c WRITE(lunout,*)'La frequence de sortie mensuelle est de ', 1416 c . ecrit_mth 1417 c ENDIF 1418 c ecrit_day = NINT(86400./dtime *1.0) ! tous les jours 1419 c IF (ok_journe) THEN 1420 c WRITE(lunout,*)'La frequence de sortie journaliere est de ', 1421 c . ecrit_day 1422 c ENDIF 1423 cIM 130904 BEG 1424 cIM 080205 ecrit_hf = 86400./dtime *0.25 ! toutes les 6h 1425 cIM 170305 1426 c ecrit_hf = 86400./dtime/12. ! toutes les 2h 1427 cIM 230305 1428 cIM200505 ecrit_hf = 86400./dtime *0.25 ! toutes les 6h 1429 c 1430 cIM200505 ecrit_hf2mth = ecrit_day/ecrit_hf*30 1431 c 1432 cIM200505 IF (ok_journe) THEN 1433 cIM200505 WRITE(lunout,*)'La frequence de sortie hf est de ', 1434 cIM200505 . ecrit_hf 1435 cIM200505 ENDIF 1436 cIM 130904 END 1203 1437 ccc ecrit_ins = NINT(86400./dtime *0.5) ! 2 fois par jour 1204 1438 ccc ecrit_ins = NINT(86400./dtime *0.25) ! 4 fois par jour 1205 ecrit_ins = NINT(86400./dtime/48.) ! a chaque pas de temps ==> PB. dans time_counter pour 1mois 1206 ecrit_ins = NINT(86400./dtime/12.) ! toutes les deux heures 1207 IF (ok_instan) THEN 1208 WRITE(lunout,*)'La frequence de sortie instant. est de ', 1209 . ecrit_ins 1210 ENDIF 1211 ecrit_reg = NINT(86400./dtime *0.25) ! 4 fois par jour 1212 IF (ok_region) THEN 1213 WRITE(lunout,*)'La frequence de sortie region est de ', 1214 . ecrit_reg 1215 ENDIF 1216 1439 c ecrit_ins = NINT(86400./dtime/48.) ! a chaque pas de temps ==> PB. dans time_counter pour 1mois 1440 c ecrit_ins = NINT(86400./dtime/12.) ! toutes les deux heures 1441 cIM200505 ecrit_ins = NINT(86400./dtime/8.) ! toutes les trois heures 1442 cIM200505 IF (ok_instan) THEN 1443 cIM200505 WRITE(lunout,*)'La frequence de sortie instant. est de ', 1444 cIM200505 . ecrit_ins 1445 cIM200505 ENDIF 1446 cIM200505 ecrit_reg = NINT(86400./dtime *0.25) ! 4 fois par jour 1447 cIM200505 IF (ok_region) THEN 1448 cIM200505 WRITE(lunout,*)'La frequence de sortie region est de ', 1449 cIM200505 . ecrit_reg 1450 cIM200505 ENDIF 1451 c 1452 cIM 230505 BEG 1453 ecrit_ins = NINT(ecrit_ins/dtime) 1454 ecrit_hf = NINT(ecrit_hf/dtime) 1455 c ecrit_hf2mth = 4*30 1456 ecrit_day = NINT(ecrit_day/dtime) 1457 ecrit_mth = NINT(ecrit_mth/dtime) 1458 ecrit_tra = NINT(ecrit_tra/dtime) 1459 ecrit_reg = NINT(ecrit_reg/dtime) 1460 cIM 230505 END 1217 1461 c 1218 1462 c Initialiser le couplage si necessaire … … 1229 1473 endif 1230 1474 c 1231 c1232 cIM1233 1475 capemaxcels = 't_max(X)' 1234 1476 t2mincels = 't_min(X)' 1235 1477 t2maxcels = 't_max(X)' 1236 1478 tinst = 'inst(X)' 1479 tave = 'ave(X)' 1480 cIM cf. AM 081204 BEG 1481 write(lunout,*)'AVANT HIST IFLAG_CON=',iflag_con 1482 cIM cf. AM 081204 END 1237 1483 c 1238 1484 c============================================================= … … 1248 1494 #ifdef histday 1249 1495 #include "ini_histday.h" 1496 cIM rajout diagnostiques bilan KP pour analyse MJO par Jun-Ichi Yano 1497 c#include "ini_bilKP_ins.h" 1498 c#include "ini_bilKP_ave.h" 1499 #include "ini_histday_seri.h" 1250 1500 #endif 1251 1501 … … 1273 1523 #include "ini_histISCCP.h" 1274 1524 #endif 1525 1526 c#undef histmthNMC 1527 c#define histmthNMC 1528 #ifdef histmthNMC 1529 #include "ini_histmthNMC.h" 1530 #endif 1531 1275 1532 #endif 1276 1533 … … 1504 1761 rmu0 = -999.999 1505 1762 ENDIF 1506 cIM BEG 1507 DO i=1, klon 1508 sunlit(i)=1 1509 IF(rmu0(i).EQ.0.) sunlit(i)=0 1510 nbsunlit(1,i)=FLOAT(sunlit(i)) 1511 ENDDO 1512 cIM END 1763 c 1513 1764 C Calcul de l'abedo moyen par maille 1514 1765 albsol(:)=0. … … 1545 1796 $ soil_model,cdmmax, cdhmax, 1546 1797 $ ksta, ksta_ter, ok_kzmin, ftsoil, qsol, 1547 $ paprs,pplay,radsol, fsnow,fqsurf,fevap,falbe,falblw, 1798 cIM BAD $ paprs,pplay,radsol, fsnow,fqsurf,fevap,falbe,falblw, 1799 $ paprs,pplay, fsnow,fqsurf,fevap,falbe,falblw, 1548 1800 $ fluxlat, 1549 cIM cf. JLD e rain_fall, snow_fall, solsw, sollw, sollwdown, fder,1550 e rain_fall, snow_fall,fsolsw, fsollw, sollwdown, fder,1801 e rain_fall, snow_fall, 1802 e fsolsw, fsollw, sollwdown, fder, 1551 1803 e rlon, rlat, cuphy, cvphy, frugs, 1552 1804 e debut, lafin, agesno,rugoro , … … 1556 1808 s dsens, devap, 1557 1809 s ycoefh,yu1,yv1, t2m, q2m, u10m, v10m, 1558 s fqcalving, ffonte, run_off_lic_0) 1810 cIM cf. AM 081204 BEG 1811 s pblh,capCL,oliqCL,cteiCL,pblT, 1812 s therm,trmb1,trmb2,trmb3,plcl, 1813 cIM cf. AM 081204 END 1814 s fqcalving, ffonte, run_off_lic_0, 1815 cIM "slab" ocean 1816 s fluxo, fluxg, tslab, seaice) 1559 1817 c 1560 1818 CXXX PB … … 1623 1881 zxffonte(i) = 0.0 1624 1882 zxfqcalving(i) = 0.0 1883 cIM cf. AM 081204 BEG 1884 c 1885 s_pblh(i) = 0.0 1886 s_lcl(i) = 0.0 1887 s_capCL(i) = 0.0 1888 s_oliqCL(i) = 0.0 1889 s_cteiCL(i) = 0.0 1890 s_pblT(i) = 0.0 1891 s_therm(i) = 0.0 1892 s_trmb1(i) = 0.0 1893 s_trmb2(i) = 0.0 1894 s_trmb3(i) = 0.0 1625 1895 c 1626 1896 IF ( abs( pctsrf(i, is_ter) + pctsrf(i, is_lic) + … … 1649 1919 zxfqcalving(i) = zxfqcalving(i) + 1650 1920 . fqcalving(i,nsrf)*pctsrf(i,nsrf) 1921 cIM cf. AM 081204 BEG 1922 s_pblh(i) = s_pblh(i) + pblh(i,nsrf)*pctsrf(i,nsrf) 1923 s_lcl(i) = s_lcl(i) + plcl(i,nsrf)*pctsrf(i,nsrf) 1924 s_capCL(i) = s_capCL(i) + capCL(i,nsrf) *pctsrf(i,nsrf) 1925 s_oliqCL(i) = s_oliqCL(i) + oliqCL(i,nsrf) *pctsrf(i,nsrf) 1926 s_cteiCL(i) = s_cteiCL(i) + cteiCL(i,nsrf) *pctsrf(i,nsrf) 1927 s_pblT(i) = s_pblT(i) + pblT(i,nsrf) *pctsrf(i,nsrf) 1928 s_therm(i) = s_therm(i) + therm(i,nsrf) *pctsrf(i,nsrf) 1929 s_trmb1(i) = s_trmb1(i) + trmb1(i,nsrf) *pctsrf(i,nsrf) 1930 s_trmb2(i) = s_trmb2(i) + trmb2(i,nsrf) *pctsrf(i,nsrf) 1931 s_trmb3(i) = s_trmb3(i) + trmb3(i,nsrf) *pctsrf(i,nsrf) 1651 1932 c ENDIF 1652 1933 ENDDO … … 1668 1949 IF (pctsrf(i,nsrf) .LT. epsfra) 1669 1950 . fqcalving(i,nsrf) = zxfqcalving(i) 1951 cIM cf. AM 081204 BEG 1952 IF (pctsrf(i,nsrf) .LT. epsfra) pblh(i,nsrf)=s_pblh(i) 1953 IF (pctsrf(i,nsrf) .LT. epsfra) plcl(i,nsrf)=s_lcl(i) 1954 IF (pctsrf(i,nsrf) .LT. epsfra) capCL(i,nsrf)=s_capCL(i) 1955 IF (pctsrf(i,nsrf) .LT. epsfra) oliqCL(i,nsrf)=s_oliqCL(i) 1956 IF (pctsrf(i,nsrf) .LT. epsfra) cteiCL(i,nsrf)=s_cteiCL(i) 1957 IF (pctsrf(i,nsrf) .LT. epsfra) pblT(i,nsrf)=s_pblT(i) 1958 IF (pctsrf(i,nsrf) .LT. epsfra) therm(i,nsrf)=s_therm(i) 1959 IF (pctsrf(i,nsrf) .LT. epsfra) trmb1(i,nsrf)=s_trmb1(i) 1960 IF (pctsrf(i,nsrf) .LT. epsfra) trmb2(i,nsrf)=s_trmb2(i) 1961 IF (pctsrf(i,nsrf) .LT. epsfra) trmb3(i,nsrf)=s_trmb3(i) 1670 1962 ENDDO 1671 1963 ENDDO … … 2040 2332 c 1. NUAGES CONVECTIFS 2041 2333 c 2042 IF (iflag_cldcon.eq.-1) THEN ! seulement pour Tiedtke 2334 cIM cf FH 2335 c IF (iflag_cldcon.eq.-1) THEN ! seulement pour Tiedtke 2336 IF (iflag_cldcon.le.-1) THEN ! seulement pour Tiedtke 2337 snow_tiedtke=0. 2338 c print*,'avant calcul de la pseudo precip ' 2339 c print*,'iflag_cldcon',iflag_cldcon 2340 if (iflag_cldcon.eq.-1) then 2341 rain_tiedtke=rain_con 2342 else 2343 c print*,'calcul de la pseudo precip ' 2344 rain_tiedtke=0. 2345 c print*,'calcul de la pseudo precip 0' 2346 do k=1,klev 2347 do i=1,klon 2348 if (d_q_con(i,k).lt.0.) then 2349 rain_tiedtke(i)=rain_tiedtke(i)-d_q_con(i,k)/pdtphys 2350 s *(paprs(i,k)-paprs(i,k+1))/rg 2351 endif 2352 enddo 2353 enddo 2354 endif 2355 c 2356 c call dump2d(iim,jjm,rain_tiedtke(2:klon-1),'PSEUDO PRECIP ') 2357 c 2043 2358 2044 2359 c Nuages diagnostiques pour Tiedtke 2045 2360 CALL diagcld1(paprs,pplay, 2046 . rain_con,snow_con,ibas_con,itop_con, 2361 cIM cf FH . rain_con,snow_con,ibas_con,itop_con, 2362 . rain_tiedtke,snow_tiedtke,ibas_con,itop_con, 2047 2363 . diafra,dialiq) 2048 2364 DO k = 1, klev … … 2072 2388 enddo 2073 2389 2390 c 2074 2391 cIM calcul nuages par le simulateur ISCCP 2392 c 2075 2393 IF (ok_isccp) THEN 2076 cIM calcul tau. emi nuages convectifs 2077 convfra(:,:)=rnebcon(:,:) 2078 convliq(:,:)=rnebcon(:,:)*clwcon(:,:) 2079 CALL newmicro (paprs, pplay,ok_newmicro, 2080 . t_seri, convliq, convfra, dtau_c, dem_c, 2081 . cldh_c, cldl_c, cldm_c, cldt_c, cldq_c, 2082 . flwp_c, fiwp_c, flwc_c, fiwc_c, 2083 e ok_aie, 2084 e sulfate, sulfate_pi, 2085 e bl95_b0, bl95_b1, 2086 s cldtaupi, re, fl) 2087 c 2088 cIM calcul tau. emi nuages startiformes 2089 CALL newmicro (paprs, pplay,ok_newmicro, 2090 . t_seri, cldliq, cldfra, dtau_s, dem_s, 2091 . cldh_s, cldl_s, cldm_s, cldt_s, cldq_s, 2092 . flwp_s, fiwp_s, flwc_s, fiwc_s, 2093 e ok_aie, 2094 e sulfate, sulfate_pi, 2095 e bl95_b0, bl95_b1, 2096 s cldtaupi, re, fl) 2097 c 2098 cldtot(:,:)=min(max(cldfra(:,:),rnebcon(:,:)),1.) 2099 2100 cIM inversion des niveaux de pression ==> de haut en bas 2101 CALL haut2bas(klon, klev, pplay, pfull) 2102 CALL haut2bas(klon, klev, q_seri, qv) 2103 CALL haut2bas(klon, klev, cldtot, cc) 2104 CALL haut2bas(klon, klev, rnebcon, conv) 2105 CALL haut2bas(klon, klev, dtau_s, dtau_sH2B) 2106 CALL haut2bas(klon, klev, dtau_c, dtau_cH2B) 2107 CALL haut2bas(klon, klev, t_seri, at) 2108 CALL haut2bas(klon, klev, dem_s, dem_sH2B) 2109 CALL haut2bas(klon, klev, dem_c, dem_cH2B) 2110 CALL haut2bas(klon, klevp1, paprs, phalf) 2111 2112 c open(99,file='tautab.bin',access='sequential', 2113 c $ form='unformatted',status='old') 2114 c read(99) tautab 2115 2116 cIM210503 2117 IF (debut) THEN 2118 open(99,file='tautab.formatted', FORM='FORMATTED') 2119 read(99,'(f30.20)') tautab 2120 close(99) 2121 c 2122 open(99,file='invtau.formatted',form='FORMATTED') 2123 read(99,'(i10)') invtau 2124 close(99) 2125 c 2126 cIM: calcul coordonnees regions pour statistiques distribution 2127 cIM: nuages en ftion du regime dynamique pour regions oceaniques 2128 IF (ok_regdyn) THEN !histREGDYN 2129 nsrf=3 2130 DO nreg=1, nbregdyn 2131 DO i=1, klon 2132 2133 c IF (debut) THEN 2134 IF(rlon(i).LT.0.) THEN 2135 rlonPOS(i)=rlon(i)+360. 2136 ELSE 2137 rlonPOS(i)=rlon(i) 2138 ENDIF 2139 c ENDIF 2140 2141 pct_ocean(i,nreg)=0 2142 2143 c test si c'est 1 point d'ocean 2144 IF(pctsrf(i,nsrf).EQ.1.) THEN 2145 2146 IF(nreg.EQ.1) THEN 2147 2148 c TROP 2149 IF(rlat(i).GE.-30.AND.rlat(i).LE.30.) THEN 2150 pct_ocean(i,nreg)=1 2151 ENDIF 2152 2153 c PACIFIQUE NORD 2154 ELSEIF(nreg.EQ.2) THEN 2155 IF(rlat(i).GE.40.AND.rlat(i).LE.60.) THEN 2156 IF(rlonPOS(i).GE.160..AND.rlonPOS(i).LE.235.) THEN 2157 pct_ocean(i,nreg)=1 2158 ENDIF 2159 ENDIF 2160 c CALIFORNIE ST-CU 2161 ELSEIF(nreg.EQ.3) THEN 2162 IF(rlonPOS(i).GE.220..AND.rlonPOS(i).LE.250.) THEN 2163 IF(rlat(i).GE.15.AND.rlat(i).LE.35.) THEN 2164 pct_ocean(i,nreg)=1 2165 ENDIF 2166 ENDIF 2167 c HAWAI 2168 ELSEIF(nreg.EQ.4) THEN 2169 IF(rlonPOS(i).GE.180..AND.rlonPOS(i).LE.220.) THEN 2170 IF(rlat(i).GE.15.AND.rlat(i).LE.35.) THEN 2171 pct_ocean(i,nreg)=1 2172 ENDIF 2173 ENDIF 2174 c WARM POOL 2175 ELSEIF(nreg.EQ.5) THEN 2176 IF(rlonPOS(i).GE.70..AND.rlonPOS(i).LE.150.) THEN 2177 IF(rlat(i).GE.-5.AND.rlat(i).LE.20.) THEN 2178 pct_ocean(i,nreg)=1 2179 ENDIF 2180 ENDIF 2181 ENDIF !nbregdyn 2182 c TROP 2183 c IF(rlat(i).GE.-30.AND.rlat(i).LE.30.) THEN 2184 c pct_ocean(i)=.TRUE. 2185 c WRITE(*,*) 'pct_ocean =',i, rlon(i), rlat(i) 2186 c ENDIF !lon 2187 c ENDIF !lat 2188 2189 ENDIF !pctsrf 2190 ENDDO !klon 2191 ENDDO !nbregdyn 2192 ENDIF !ok_regdyn 2193 2194 cIM somme de toutes les nhistoW BEG 2195 DO nreg = 1, nbregdyn 2196 DO k = 1, kmaxm1 2197 DO l = 1, lmaxm1 2198 DO iw = 1, iwmax 2199 nhistoWt(k,l,iw,nreg)=0. 2200 ENDDO !iw 2201 ENDDO !l 2202 ENDDO !k 2203 ENDDO !nreg 2204 cIM somme de toutes les nhistoW END 2205 ENDIF 2206 cIM: initialisation de seed 2207 DO i=1, klon 2208 seed(i)=i+100 2209 ENDDO 2210 2211 cIM: pas de debug, debugcol 2212 debug=0 2213 debugcol=0 2214 cIM260503 2215 c o500 ==> distribution nuage ftion du regime dynamique a 500 hPa 2216 DO k=1, klevm1 2217 kp1=k+1 2218 c PRINT*,'k, presnivs',k,presnivs(k), presnivs(kp1) 2219 if(presnivs(k).GT.50000.AND.presnivs(kp1).LT.50000.) THEN 2220 DO i=1, klon 2221 o500(i)=omega(i,k)*RDAY/100. 2222 c if(i.EQ.1) print*,' 500hPa lev',k,presnivs(k),presnivs(kp1) 2223 ENDDO 2224 GOTO 1000 2225 endif 2226 1000 continue 2227 ENDDO 2228 2229 CALL ISCCP_CLOUD_TYPES( 2230 & debug, 2231 & debugcol, 2232 & klon, 2233 & sunlit, 2234 & klev, 2235 & ncol, 2236 & seed, 2237 & pfull, 2238 & phalf, 2239 & qv, cc, conv, dtau_sH2B, dtau_cH2B, 2240 & top_height, 2241 & overlap, 2242 & tautab, 2243 & invtau, 2244 & ztsol, 2245 & emsfc_lw, 2246 & at, dem_sH2B, dem_cH2B, 2247 & fq_isccp, 2248 & totalcldarea, 2249 & meanptop, 2250 & meantaucld, 2251 & boxtau, 2252 & boxptop) 2253 2254 2255 c passage de la grille (klon,7,7) a (iim,jjmp1,7,7) 2256 DO l=1, lmaxm1 2257 DO k=1, kmaxm1 2258 DO i=1, iim 2259 fq4d(i,1,k,l)=fq_isccp(1,k,l) 2260 ENDDO 2261 DO j=2, jjm 2262 DO i=1, iim 2263 ig=i+1+(j-2)*iim 2264 fq4d(i,j,k,l)=fq_isccp(ig,k,l) 2265 ENDDO 2266 ENDDO 2267 DO i=1, iim 2268 fq4d(i,jjmp1,k,l)=fq_isccp(klon,k,l) 2269 ENDDO 2270 ENDDO 2271 ENDDO 2272 c 2273 DO l=1, lmaxm1 2274 DO k=1, kmaxm1 2275 DO j=1, jjmp1 2276 DO i=1, iim 2277 ni=(i-1)*lmaxm1+l 2278 nj=(j-1)*kmaxm1+k 2279 fq3d(ni,nj)=fq4d(i,j,k,l) 2280 ENDDO 2281 ENDDO 2282 ENDDO 2283 ENDDO 2284 2285 c 2286 c calculs statistiques distribution nuage ftion du regime dynamique 2287 c 2288 c Ce calcul doit etre fait a partir de valeurs mensuelles ?? 2289 CALL histo_o500_pctau(nbregdyn,pct_ocean,o500,fq_isccp, 2290 &histoW,nhistoW) 2291 c 2292 c nhistoWt = somme de toutes les nhistoW 2293 DO nreg=1, nbregdyn 2294 DO k = 1, kmaxm1 2295 DO l = 1, lmaxm1 2296 DO iw = 1, iwmax 2297 nhistoWt(k,l,iw,nreg)=nhistoWt(k,l,iw,nreg)+ 2298 & nhistoW(k,l,iw,nreg) 2299 ENDDO 2300 ENDDO 2301 ENDDO 2302 ENDDO 2303 c 2394 #include "calcul_simulISCCP.h" 2304 2395 ENDIF !ok_isccp 2305 2396 … … 2571 2662 e igwd,idx,itest, 2572 2663 e t_seri, u_seri, v_seri, 2573 s zulow, zvlow, zustr, zvstr, 2664 cIM 141004 s zulow, zvlow, zustr, zvstr, 2665 s zulow, zvlow, zustrdr, zvstrdr, 2574 2666 s d_t_oro, d_u_oro, d_v_oro) 2575 2667 c … … 2603 2695 e itest, 2604 2696 e t_seri, u_seri, v_seri, 2605 s zulow, zvlow, zustr , zvstr,2697 s zulow, zvlow, zustrli, zvstrli, 2606 2698 s d_t_lif, d_u_lif, d_v_lif) 2607 2699 c … … 2616 2708 c 2617 2709 ENDIF ! fin de test sur ok_orolf 2710 c 2711 cIM cf. FLott BEG 2712 C STRESS NECESSAIRES: TOUTE LA PHYSIQUE 2713 2714 DO i = 1, klon 2715 zustrph(i)=0. 2716 zvstrph(i)=0. 2717 ENDDO 2718 DO k = 1, klev 2719 DO i = 1, klon 2720 zustrph(i)=zustrph(i)+(u_seri(i,k)-u(i,k))/dtime* 2721 c (paprs(i,k)-paprs(i,k+1))/rg 2722 zvstrph(i)=zvstrph(i)+(v_seri(i,k)-v(i,k))/dtime* 2723 c (paprs(i,k)-paprs(i,k+1))/rg 2724 ENDDO 2725 ENDDO 2726 c 2727 cIM calcul composantes axiales du moment angulaire et couple des montagnes 2728 c 2729 CALL aaam_bud (27,klon,klev,rjourvrai,gmtime, 2730 C ra,rg,romega, 2731 C rlat,rlon,pphis, 2732 C zustrdr,zustrli,zustrph, 2733 C zvstrdr,zvstrli,zvstrph, 2734 C paprs,u,v, 2735 C aam, torsfc) 2736 cIM cf. FLott END 2618 2737 c 2619 2738 IF (if_ebil.ge.2) THEN … … 2712 2831 s ve, vq, ue, uq) 2713 2832 c 2833 cIM diag. bilKP 2834 c 2835 CALL transp_lay (paprs,zxtsol, 2836 e t_seri, q_seri, u_seri, v_seri, zphi, 2837 s ve_lay, vq_lay, ue_lay, uq_lay) 2838 c 2714 2839 c Accumuler les variables a stocker dans les fichiers histoire: 2715 c2716 c2717 2840 c 2718 2841 c+jld ec_conser … … 2750 2873 c======================================================================= 2751 2874 2752 c Interpollation sur quelques niveaux de pression 2753 c ----------------------------------------------- 2754 c 2755 c on moyenne mensuellement les champs 3D et on les interpole sur les niveaux STD 2756 c if(itap.EQ.1.OR.itap.EQ.13.OR.itap.EQ.25.OR.itap.EQ.37) THEN 2757 c if(MOD(itap,12).EQ.1) THEN 2758 cIM 120304 END 2759 DO k=1, nlevSTD 2760 call plevel(klon,klev,.true.,pplay,rlevSTD(k), 2761 . t_seri,tlevSTD(:,k)) 2762 call plevel(klon,klev,.false.,pplay,rlevSTD(k), 2763 . u_seri,ulevSTD(:,k)) 2764 call plevel(klon,klev,.false.,pplay,rlevSTD(k), 2765 . v_seri,vlevSTD(:,k)) 2766 call plevel(klon,klev,.false.,pplay,rlevSTD(k), 2767 . zphi,philevSTD(:,k)) 2768 call plevel(klon,klev,.false.,pplay,rlevSTD(k), 2769 . qx(:,:,ivap),qlevSTD(:,k)) 2770 call plevel(klon,klev,.false.,pplay,rlevSTD(k), 2771 . zx_rh,rhlevSTD(:,k)) 2772 ENDDO !nlevSTD 2773 c ENSEMBLES BEG 2774 DO k=1, nlevENS 2775 cIM 170304 2776 tlev(:,k)=tlevSTD(:,indENS(k)) 2777 ulev(:,k)=ulevSTD(:,indENS(k)) 2778 vlev(:,k)=vlevSTD(:,indENS(k)) 2779 philev(:,k)=philevSTD(:,indENS(k)) 2780 qlev(:,k)=qlevSTD(:,indENS(k)) 2781 rhlev(:,k)=rhlevSTD(:,indENS(k)) 2782 c 2783 call plevel(klon,klevp1,.true.,paprs,rlevENS(k), 2784 . omega,wlev(:,k)) 2785 c 2786 ENDDO !k=1, nlevENS 2787 cIM 100304 BEG 2788 cIM interpolation a chaque pas de temps du SWup(clr) et SWdn(clr) a 200 hPa 2789 call plevel(klon,klevp1,.true.,paprs,20000., 2790 $ swdn0,SWdn200clr) 2791 call plevel(klon,klevp1,.false.,paprs,20000., 2792 $ swdn,SWdn200) 2793 call plevel(klon,klevp1,.false.,paprs,20000., 2794 $ swup0,SWup200clr) 2795 call plevel(klon,klevp1,.false.,paprs,20000., 2796 $ swup,SWup200) 2797 c 2798 call plevel(klon,klevp1,.false.,paprs,20000., 2799 $ lwdn0,LWdn200clr) 2800 call plevel(klon,klevp1,.false.,paprs,20000., 2801 $ lwdn,LWdn200) 2802 call plevel(klon,klevp1,.false.,paprs,20000., 2803 $ lwup0,LWup200clr) 2804 call plevel(klon,klevp1,.false.,paprs,20000., 2805 $ lwup,LWup200) 2806 c 2807 cIM 100304 END 2808 c 2809 c ENSEMBLES END 2875 cIM Interpolation sur les niveaux de pression du NMC 2876 c ------------------------------------------------- 2877 c 2878 #include "calcul_STDlev.h" 2810 2879 c 2811 2880 c slp sea level pressure … … 2821 2890 ENDDO 2822 2891 c 2823 cIM sorties bilans energie cinetique et potentielle MJO 2824 DO k = 1, klev 2825 DO i = 1, klon 2826 d_u_oli(i,k) = d_u_oro(i,k) + d_u_lif(i,k) 2827 d_v_oli(i,k) = d_v_oro(i,k) + d_v_lif(i,k) 2828 ENDDO 2829 ENDDO 2830 c 2831 IF (MOD(itap-1,lmt_pas) .EQ. 0) THEN 2832 cIM PRINT *,' PHYS cond julien ',julien 2833 c CALL ozonecm( FLOAT(julien), rlat, paprs, wo) 2834 DO i = 1, klon 2835 total_rain(i)=rain_fall(i)+snow_fall(i) 2836 IF(total_rain(i).GT.0.) nday_rain(i)=nday_rain(i)+1. 2837 ENDDO 2838 c 2839 ENDIF 2840 c surface terre 2841 IF (debut) THEN 2842 DO i=1, klon 2843 IF(pctsrf_new(i,is_ter).GT.0.) THEN 2844 paire_ter(i)=airephy(i)*pctsrf_new(i,is_ter) 2845 ENDIF 2846 ENDDO 2847 ENDIF 2848 cIM 050204 END 2849 2892 cIM initialisation + calculs divers diag AMIP2 2893 c 2894 #include "calcul_divers.h" 2895 c 2850 2896 c============================================================= 2851 2897 c … … 2872 2918 ENDIF 2873 2919 c 2920 cIM rajout diagnostiques bilan KP pour analyse MJO par Jun-Ichi Yano 2921 c#include "write_bilKP_ins.h" 2922 c#include "write_bilKP_ave.h" 2923 c 2874 2924 c Sauvegarder les valeurs de t et q a la fin de la physique: 2875 2925 c … … 2893 2943 #ifdef histday 2894 2944 #include "write_histday.h" 2945 #include "write_histday_seri.h" 2895 2946 #endif 2896 2947 … … 2910 2961 #include "write_histISCCP.h" 2911 2962 #endif 2963 2912 2964 2913 2965 #ifdef histmthNMC … … 2957 3009 ccc IF (ok_oasis) CALL quitcpl 2958 3010 CALL phyredem ("restartphy.nc",dtime,radpas, 2959 . rlat, rlon, pctsrf, ftsol, ftsoil, deltat, fqsurf, qsol, 3011 . rlat, rlon, pctsrf, ftsol, ftsoil, 3012 cIM "slab" ocean 3013 . tslab, seaice, 3014 . fqsurf, qsol, 2960 3015 . fsnow, falbe,falblw, fevap, rain_fall, snow_fall, 2961 3016 . solsw, sollwdown,dlw, -
LMDZ4/trunk/libf/phylmd/phytrac.F
r625 r644 628 628 629 629 if (thermiques) then 630 print*,'calcul de leffet des thermiques'630 c print*,'calcul de leffet des thermiques' 631 631 nsplit=10 632 632 DO it=1, nqmax … … 652 652 enddo 653 653 enddo ! nsplit 654 print*,'apres thermiques'654 c print*,'apres thermiques' 655 655 c call dump2d(iim,jjm-1,d_tr_th(1,1,1),'d_tr_th ') 656 656 c do k=1,klev … … 868 868 close(99) 869 869 else 870 print*, 'physique pas fini'870 c print*, 'physique pas fini' 871 871 endif 872 872 -
LMDZ4/trunk/libf/phylmd/raddim.h
r621 r644 1 1 ! 2 ! $Header 2 ! $Header$ 3 3 ! 4 4 INTEGER kdlon, kflev 5 PARAMETER (kdlon= klon,kflev=klev)5 PARAMETER (kdlon=149,kflev=klev) -
LMDZ4/trunk/libf/phylmd/radiornpb.F
r524 r644 21 21 REAL tautr(nbtr) 22 22 C 23 WRITE(*,'(''PASSAGE radiornpb ... '',$)')23 c WRITE(*,'(''PASSAGE radiornpb ... '',$)') 24 24 C Attention, pour un pas de temps beaucoup plus petit que la decroissance!!! 25 25 … … 48 48 ENDDO 49 49 c 50 WRITE(*,*) ' radiornpb OK'50 c WRITE(*,*) ' radiornpb OK' 51 51 c 52 52 RETURN -
LMDZ4/trunk/libf/phylmd/radlwsw.F
r557 r644 89 89 real topsw0(klon), toplw0(klon), solsw0(klon), sollw0(klon) 90 90 real sollwdown(klon) 91 c ccIM91 cIM output 3D 92 92 REAL*8 ZFSUP(KDLON,KFLEV+1) 93 93 REAL*8 ZFSDN(KDLON,KFLEV+1) 94 94 REAL*8 ZFSUP0(KDLON,KFLEV+1) 95 95 REAL*8 ZFSDN0(KDLON,KFLEV+1) 96 cIM 97 cIM 98 cIM real sollwdownclr(klon) !LWdnSFCclr 99 cIM real toplwdown(klon) !LWdnTOA 100 cIM real toplwdownclr(klon) !LWdnTOAclr 96 c 101 97 REAL*8 ZFLUP(KDLON,KFLEV+1) 102 98 REAL*8 ZFLDN(KDLON,KFLEV+1) … … 134 130 REAL*8 ztopsw(kdlon), ztoplw(kdlon) 135 131 REAL*8 zsolsw(kdlon), zsollw(kdlon), zalbpla(kdlon) 136 cIM BEG132 cIM 137 133 REAL*8 zsollwdown(kdlon) 138 cIM REAL*8 zsollwdown(kdlon), zsollwdownclr(kdlon) 139 cIM REAL*8 ztoplwdown(kdlon), ztoplwdownclr(kdlon) 140 cIM END 134 c 141 135 REAL*8 ztopsw0(kdlon), ztoplw0(kdlon) 142 136 REAL*8 zsolsw0(kdlon), zsollw0(kdlon) 143 137 REAL*8 zznormcp 144 cIM 080304 REAL swdn(klon,2),swdn0(klon,2),swup(klon,2),swup0(klon,2)138 cIM output 3D : SWup, SWdn, LWup, LWdn 145 139 REAL swdn(klon,kflev+1),swdn0(klon,kflev+1) 146 140 REAL swup(klon,kflev+1),swup0(klon,kflev+1) 147 cIM BEG148 141 REAL lwdn(klon,kflev+1),lwdn0(klon,kflev+1) 149 142 REAL lwup(klon,kflev+1),lwup0(klon,kflev+1) 150 cIM END151 143 c-OB 152 144 cjq the following quantities are needed for the aerosol radiative forcings … … 308 300 . ztoplw,zsollw,ztoplw0,zsollw0, 309 301 . zsollwdown, 310 cIM . zsollwdown,zsollwdownclr,311 cIM . ztoplwdown,ztoplwdownclr)312 302 . ZFLUP, ZFLDN, ZFLUP0,ZFLDN0) 313 303 cIM ctes ds clesphys.h CALL SW(PSCT, RCO2, zrmu0, zfract, … … 334 324 sollwdown(iof+i) = zsollwdown(i) 335 325 cIM 336 cIM sollwdownclr(iof+i) = zsollwdownclr(i)337 cIM BEG338 cIM toplwdown(iof+i) = ztoplwdown(i)339 cIM toplwdownclr(iof+i) = ztoplwdownclr(i)340 cIM END341 cIM 110304 BEG342 326 DO k = 1, kflev+1 343 327 lwdn0 ( iof+i,k) = ZFLDN0 ( i,k) … … 346 330 lwup ( iof+i,k) = ZFLUP ( i,k) 347 331 ENDDO 348 c IM 110304 END332 c 349 333 topsw0(iof+i) = ztopsw0(i) 350 334 toplw0(iof+i) = ztoplw0(i) … … 352 336 sollw0(iof+i) = zsollw0(i) 353 337 albpla(iof+i) = zalbpla(i) 354 cIM 080304 BEG338 cIM 355 339 DO k = 1, kflev+1 356 340 swdn0 ( iof+i,k) = ZFSDN0 ( i,k) … … 359 343 swup ( iof+i,k) = ZFSUP ( i,k) 360 344 ENDDO !k=1, kflev+1 361 cIM 080304 END362 c swdn0 ( iof+i,1) = ZFSDN0 ( i,1 )363 c swdn0 ( iof+i,2) = ZFSDN0 ( i,kflev + 1 )364 c swdn ( iof+i,1) = ZFSDN ( i,1 )365 c swdn ( iof+i,2) = ZFSDN ( i,kflev + 1 )366 c swup0 ( iof+i,1) = ZFSUP0 ( i,1 )367 c swup0 ( iof+i,2) = ZFSUP0 ( i,kflev + 1 )368 c swup ( iof+i,1) = ZFSUP ( i,1 )369 c swup ( iof+i,2) = ZFSUP ( i,kflev + 1 )370 345 ENDDO 371 346 cjq-transform the aerosol forcings, if they have … … 2803 2778 . PTOPLW,PSOLLW,PTOPLW0,PSOLLW0, 2804 2779 . psollwdown, 2805 cIM . psollwdown,psollwdownclr,2806 cIM . ptoplwdown,ptoplwdownclr)2807 2780 . plwup, plwdn, plwup0, plwdn0) 2808 2781 IMPLICIT none … … 2871 2844 c Rajout LF 2872 2845 real*8 psollwdown(kdlon) ! LONGWAVE downwards flux at surface 2873 c Rajout IM2874 cIM real*8 psollwdownclr(kdlon) ! LONGWAVE CS downwards flux at surface2875 cIM real*8 ptoplwdown(kdlon) ! LONGWAVE downwards flux at T.O.A.2876 cIM real*8 ptoplwdownclr(kdlon) ! LONGWAVE CS downwards flux at T.O.A.2877 2846 cIM 2878 2847 REAL*8 plwup(KDLON,KFLEV+1) ! LW up total sky … … 2953 2922 PTOPLW0(i) = ZFLUC(i,1,KFLEV+1) + ZFLUC(i,2,KFLEV+1) 2954 2923 psollwdown(i) = -ZFLUX(i,2,1) 2955 cIM 2956 cIM psollwdownclr(i) = -ZFLUC(i,2,1) 2957 cIM ptoplwdown(i) = ZFLUX(i,2,KFLEV+1) 2958 cIM ptoplwdownclr(i) = ZFLUC(i,2,KFLEV+1) 2959 cIM 2924 c 2960 2925 cIM attention aux signes !; LWtop >0, LWdn < 0 2961 2926 DO k = 1, KFLEV+1 -
LMDZ4/trunk/libf/phylmd/stdlevvar.F90
r539 r644 3 3 ! 4 4 SUBROUTINE stdlevvar(klon, knon, nsrf, zxli, & 5 &u1, v1, t1, q1, z1, &6 &ts1, qsurf, rugos, psol, pat1, &7 & t_2m, q_2m, u_10m)5 u1, v1, t1, q1, z1, & 6 ts1, qsurf, rugos, psol, pat1, & 7 t_2m, q_2m, t_10m, q_10m, u_10m, ustar) 8 8 IMPLICIT NONE 9 9 !------------------------------------------------------------------------- … … 16 16 ! 17 17 ! I. Musat, 01.07.2002 18 ! 19 !AM On rajoute en sortie t et q a 10m pr le calcule d'hbtm2 dans clmain 20 ! 18 21 !------------------------------------------------------------------------- 19 22 ! … … 36 39 ! q_2m---output-R- humidite relative a 2m 37 40 ! u_10m--output-R- vitesse du vent a 10m 41 !AM 42 ! t_10m--output-R- temperature de l'air a 10m 43 ! q_10m--output-R- humidite specifique a 10m 44 ! ustar--output-R- u* 38 45 ! 39 46 INTEGER, intent(in) :: klon, knon, nsrf … … 43 50 REAL, dimension(klon), intent(in) :: psol, pat1 44 51 ! 45 REAL, dimension(klon), intent(out) :: t_2m, q_2m, u_10m 52 REAL, dimension(klon), intent(out) :: t_2m, q_2m, ustar 53 REAL, dimension(klon), intent(out) :: u_10m, t_10m, q_10m 46 54 !------------------------------------------------------------------------- 47 55 #include "YOMCST.inc" … … 67 75 ! ri1 : nb. de Richardson entre la surface --> la 1ere couche 68 76 REAL, dimension(klon) :: ri1 69 REAL, dimension(klon) :: ustar,testar, qstar77 REAL, dimension(klon) :: testar, qstar 70 78 REAL, dimension(klon) :: zdte, zdq 71 79 ! lmon : longueur de Monin-Obukhov selon Hess, Colman and McAvaney … … 101 109 ustar(i) = sqrt(cdram(i) * speed(i) * speed(i)) 102 110 zdte(i) = tpot(i) - ts1(i) 103 ! PRINT*,'AVANT i,zdte',i,zdte(i) 104 !IM cf FH : on prend le max : pour eviter le plantage sur SUN 111 zdq(i) = max(q1(i),0.0) - max(qsurf(i),0.0) 112 ! 113 ! 105 114 !IM BUG BUG BUG zdte(i) = max(zdte(i),1.e-10) 106 115 zdte(i) = sign(max(abs(zdte(i)),1.e-10),zdte(i)) 107 ! PRINT*,'APRES i,zdte',i,zdte(i)108 !109 zdq(i) = max(q1(i),0.0) - max(qsurf(i),0.0)110 116 ! 111 117 testar(i) = (cdrah(i) * zdte(i) * speed(i))/ustar(i) … … 260 266 ! 261 267 u_10m(i) = u_zref_p(i) * ok_pred(i) + u_zref_c(i) * ok_corr(i) 268 ! 269 !AM 270 q_zref_c(i) = q_zref(i) 271 temp_c(i) = temp(i) 272 t_10m(i) = temp_p(i) * ok_pred(i) + temp_c(i) * ok_corr(i) 273 q_10m(i) = q_zref_p(i) * ok_pred(i) + q_zref_c(i) * ok_corr(i) 274 !MA 262 275 ENDDO 263 276 ! -
LMDZ4/trunk/libf/phylmd/write_histISCCP.h
r524 r644 8 8 c 9 9 itau_w = itau_phy + itap 10 c 11 IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN 10 12 c 11 13 DO k=1,kmaxm1 … … 24 26 . zx_tmp_2d,iim*jjmp1,ndex2d) 25 27 c 28 ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN 29 c 30 DO k=1, kmaxm1 31 DO l=1, lmaxm1 32 c 33 zx_tmp_fi2d(1:klon)=fq_isccp(1:klon,k,l)*100. 34 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d, 35 . zx_tmp_2d) 36 c 37 cIM: champ 2d : (lon,lat) pour un tau et une pc fixes 38 c 39 CALL histwrite(nid_isccp,pclev(l)//taulev(k),itau_w, 40 . zx_tmp_2d,iim*jjmp1,ndex2d) 41 ENDDO !l 42 ENDDO !k 43 c 44 CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:),zx_tmp_2d) 45 CALL histwrite(nid_isccp,"nsunlit",itau_w, 46 . zx_tmp_2d,iim*jjmp1,ndex2d) 47 c 48 ENDIF 49 c 26 50 if (ok_sync) then 27 51 call histsync(nid_isccp) -
LMDZ4/trunk/libf/phylmd/write_histREGDYN.h
r524 r644 3 3 ! 4 4 if (ok_regdyn) then 5 6 c Comprendre comment marche el i=nint(zout/zsto)7 5 c 8 ndex2d = 09 6 ndex3d = 0 7 itau_w = itau_phy + itap 10 8 c 11 c itap = 012 c zsto = dtime * REAL(NINT(86400./dtime*ecrit_regdyn))13 c zout = dtime * ecrit_mth14 15 c zsto = dtime16 c zout = dtime * ecrit_mth17 c zsto = dtime * REAL(NINT(86400./dtime*ecrit_regdyn))18 itau_w = itau_phy + itap19 20 9 CALL histwrite(nid_regdyn,"hw1",itau_w,histoW(:,:,:,1), 21 10 & kmaxm1*lmaxm1*iwmax,ndex3d) -
LMDZ4/trunk/libf/phylmd/write_histday.h
r532 r644 1 ! 2 !$Header$3 ! 4 IF(ok_journe) THEN1 c 2 c $Header$ 3 c 4 if (ok_journe) THEN 5 5 c 6 6 ndex2d = 0 … … 9 9 c Champs 2D: 10 10 c 11 zsto = dtime12 zout = dtime * FLOAT(ecrit_day)13 11 itau_w = itau_phy + itap 14 12 15 i = NINT(zout/zsto)16 CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)17 13 c 18 14 IF(lev_histday.GE.1) THEN 19 15 c 16 CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d) 20 17 CALL histwrite(nid_day,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 21 varname = 'phis' 22 vartitle= 'Surface geop. height' 23 varunits= '-' 24 c 25 i = NINT(zout/zsto) 18 c 19 cIM 310804 CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d) 26 20 CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d) 27 21 CALL histwrite(nid_day,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 28 varname = 'aire'29 vartitle= 'Grid area'30 varunits= '-'31 22 c 32 23 DO i=1, klon … … 125 116 CALL histwrite(nid_day,"snowf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 126 117 c 127 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d) 128 CALL histwrite(nid_day,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1, 129 . ndex2d) 118 cIM: 140404 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d) 119 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d) 120 c CALL histwrite(nid_day,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1, 121 c . ndex2d) 130 122 c 131 123 CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d) … … 164 156 165 157 c Ecriture de champs dynamiques sur des niveaux de pression 166 DO k=1, nlevENS 167 c 168 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulev(:,k),zx_tmp_2d) 169 CALL histwrite(nid_day,"u"//clev(k),itau_w,zx_tmp_2d, 158 c DO k=1, nlevENS 159 DO k=1, nlevSTD 160 c 161 c bb=clevSTD(k) 162 c 163 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 164 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 165 c aa=clevSTD(k) 166 c bb=aa(1:lnblnk1(aa)) 167 c ENDIF 168 c 169 IF(bb2.EQ."850".OR.bb2.EQ."700" 170 $ .OR.bb2.EQ."500".OR.bb2.EQ."200") THEN 171 c 172 CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,1),zx_tmp_2d) 173 CALL histwrite(nid_day,"u"//bb2,itau_w,zx_tmp_2d, 170 174 $ iim*jjmp1,ndex2d) 171 175 c 172 CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlev(:,k),zx_tmp_2d)173 CALL histwrite(nid_day,"v"// clev(k),itau_w,zx_tmp_2d,176 CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,1),zx_tmp_2d) 177 CALL histwrite(nid_day,"v"//bb2,itau_w,zx_tmp_2d, 174 178 $ iim*jjmp1,ndex2d) 175 179 c 176 ENDDO !nlevENS 177 c 178 DO k=1, nlevENS 179 IF(clev(k).EQ."500") THEN 180 c 181 CALL gr_fi_ecrit(1, klon,iim,jjmp1, wlev(:,indENS(k)),zx_tmp_2d) 182 CALL histwrite(nid_day,"w500",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 183 c 184 c DO i=1, klon 185 c print*,' ind, phi 500hPa',i,indENS(k),philev(:,indENS(k)) 186 c print*,' ind, phi 500hPa',i,indENS(k) 187 c ENDDO 188 c 189 cBAD CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,indENS(k)),zx_tmp_2d) 190 CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,k),zx_tmp_2d) 191 CALL histwrite(nid_day,"phi500",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 192 c 193 ENDIF !clev(k).EQ.500 194 ENDDO !k=1, nlevENS 180 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR.bb2.EQ."500".OR.bb2.EQ."200") THEN 181 c 182 c w500 183 c 184 IF(bb2.EQ."500") THEN 185 c 186 CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,1),zx_tmp_2d) 187 CALL histwrite(nid_day,"w"//bb2,itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 188 c 189 CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,1),zx_tmp_2d) 190 CALL histwrite(nid_day,"phi"//bb2,itau_w,zx_tmp_2d, 191 $ iim*jjmp1,ndex2d) 192 193 ENDIF !(bb2.EQ."500") THEN 194 c 195 ENDDO !nlevSTD 195 196 c 196 197 CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d) … … 216 217 CALL histwrite(nid_day, "SWdnSFC",itau_w,zx_tmp_2d, 217 218 . iim*jjmp1,ndex2d) 219 c 220 IF (OCEAN.EQ.'force ') THEN 221 c 222 DO i=1, klon 223 IF((pctsrf(i,is_oce).GT.epsfra).OR. 224 . (pctsrf(i,is_sic).GT.epsfra)) THEN 225 zx_tmp_fi2d(i) = (radsol(i) + fluxo(i))*pctsrf(i,is_oce)+ 226 . fluxg(i)*pctsrf(i,is_sic) 227 ELSE 228 zx_tmp_fi2d(i) = 1.E+20 229 ENDIF 230 ENDDO 231 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 232 CALL histwrite(nid_day,"lmt_bils",itau_w, 233 . zx_tmp_2d,iim*jjmp1,ndex2d) 234 c 235 ELSE IF (OCEAN.EQ.'slab ') THEN 236 c 237 DO i=1, klon 238 IF((pctsrf(i,is_oce).GT.epsfra).OR. 239 . (pctsrf(i,is_sic).GT.epsfra)) THEN 240 zx_tmp_fi2d(i) = (radsol(i) + fluxo(i))*pctsrf(i,is_oce)+ 241 . fluxg(i)*pctsrf(i,is_sic) 242 ELSE 243 zx_tmp_fi2d(i) = 1.E+20 244 ENDIF 245 ENDDO 246 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 247 CALL histwrite(nid_day,"slab_bils",itau_w, 248 . zx_tmp_2d,iim*jjmp1,ndex2d) 249 c 250 DO i=1, klon 251 IF(pctsrf(i,is_oce).GT.epsfra.OR. 252 $ pctsrf(i,is_sic).GT.epsfra) THEN 253 zx_tmp_fi2d(i)=tslab(i) 254 ELSE 255 zx_tmp_fi2d(i) = 1.E+20 256 ENDIF 257 ENDDO !i=1, klon 258 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 259 CALL histwrite(nid_day,"tslab",itau_w,zx_tmp_2d, 260 . iim*jjmp1,ndex2d) 261 c 262 CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d) 263 CALL histwrite(nid_day,"seaice",itau_w,zx_tmp_2d, 264 . iim*jjmp1,ndex2d) 265 c 266 CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d) 267 CALL histwrite(nid_day,"siceh",itau_w,zx_tmp_2d, 268 . iim*jjmp1,ndex2d) 269 c 270 ENDIF !(OCEAN.EQ.'slab ') THEN 271 c 272 DO i=1, klon 273 IF (pctsrf(i,is_oce).GT.epsfra) THEN 274 zx_tmp_fi2d(i) = fluxo(i) 275 ELSE 276 zx_tmp_fi2d(i) = 1.E+20 277 ENDIF 278 ENDDO 279 c 280 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 281 CALL histwrite(nid_day,"fluxo",itau_w,zx_tmp_2d, 282 . iim*jjmp1,ndex2d) 283 c 284 DO i=1, klon 285 IF (pctsrf(i,is_sic).GT.epsfra) THEN 286 zx_tmp_fi2d(i) = fluxg(i) 287 ELSE 288 zx_tmp_fi2d(i) = 1.E+20 289 ENDIF 290 ENDDO 291 c 292 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 293 CALL histwrite(nid_day,"fluxg",itau_w,zx_tmp_2d, 294 . iim*jjmp1,ndex2d) 218 295 c 219 296 ENDIF !lev_histday.GE.1 … … 398 475 DO nsrf = 1, nbsrf 399 476 C 477 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100. 478 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 479 CALL histwrite(nid_day,"pourc_"//clnsurf(nsrf),itau_w, 480 $ zx_tmp_2d,iim*jjmp1,ndex2d) 481 C 400 482 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf) 401 483 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 402 CALL histwrite(nid_day," pourc_"//clnsurf(nsrf),itau_w,484 CALL histwrite(nid_day,"fract_"//clnsurf(nsrf),itau_w, 403 485 $ zx_tmp_2d,iim*jjmp1,ndex2d) 404 486 C … … 444 526 ENDIF !lev_histday.GE.4 445 527 c 528 IF(lev_histday.GE.5) THEN !lev_histday.GE.5 529 c 530 c rajout sorties F. Aires 531 c 532 CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d) 533 CALL histwrite(nid_day,"tops0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 534 c 535 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d) 536 CALL histwrite(nid_day,"topl0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 537 c 538 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d) 539 CALL histwrite(nid_day,"sols0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 540 c 541 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d) 542 CALL histwrite(nid_day,"soll0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 543 c 544 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra, zx_tmp_3d) 545 CALL histwrite(nid_day,"rneb",itau_w,zx_tmp_3d, 546 . iim*jjmp1*klev,ndex3d) 547 c 548 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d) 549 CALL histwrite(nid_day,"rnebcon",itau_w,zx_tmp_3d, 550 . iim*jjmp1*klev,ndex3d) 551 c 552 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d) 553 CALL histwrite(nid_day,"lwcon",itau_w,zx_tmp_3d, 554 . iim*jjmp1*klev,ndex3d) 555 c 556 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d) 557 CALL histwrite(nid_day,"iwcon",itau_w,zx_tmp_3d, 558 . iim*jjmp1*klev,ndex3d) 559 c 560 zx_tmp_fi2d(1:klon) = flwp(1:klon) 561 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 562 CALL histwrite(nid_day,"lwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 563 c 564 zx_tmp_fi2d(1:klon) = fiwp(1:klon) 565 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 566 CALL histwrite(nid_day,"iwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 567 c 568 CALL gr_fi_ecrit(1,klon,iim,jjmp1, meantaucld,zx_tmp_2d) 569 CALL histwrite(nid_day,"meantaucld",itau_w,zx_tmp_2d, 570 . iim*jjmp1,ndex2d) 571 c 572 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldtau,zx_tmp_3d) 573 CALL histwrite(nid_day,"cldtau",itau_w,zx_tmp_3d, 574 . iim*jjmp1*klev,ndex3d) 575 c 576 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldemi,zx_tmp_3d) 577 CALL histwrite(nid_day,"cldemi",itau_w,zx_tmp_3d, 578 . iim*jjmp1*klev,ndex3d) 579 c 580 ENDIF !lev_histday.GE.5 446 581 c================================================================= 447 582 c================================================================= -
LMDZ4/trunk/libf/phylmd/write_histhf.h
r610 r644 4 4 if (ok_hf) then 5 5 6 c Comprendre comment marche el i=nint(zout/zsto) 7 c 8 c print*,'ACRITURE HF !!! ACRITURE HF !!! ACRITURE HF !!! ' 6 c 9 7 ndex2d = 0 10 8 ndex3d = 0 11 9 c 12 zsto = dtime13 zout = dtime * ecrit_hf14 10 itau_w = itau_phy + itap 15 11 c 12 IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN 13 c 16 14 IF(lev_histhf.GE.1) THEN 17 15 c 18 c i = NINT(zout/zsto)19 c CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis,zx_tmp_2d)20 c CALL histwrite(nid_hf,"phis",i,zx_tmp_2d,iim*jjmp1,ndex2d)21 c22 c i = NINT(zout/zsto)23 c CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d)24 c CALL histwrite(nid_hf,"aire",i,zx_tmp_2d,iim*jjmp1,ndex2d)25 C26 16 CALL gr_fi_ecrit(1, klon,iim,jjmp1, paire_ter, zx_tmp_2d) 27 17 CALL histwrite(nid_hf,"aireTER",itau_w, … … 59 49 ENDDO 60 50 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 61 CALL histwrite(nid_hf," rain",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)51 CALL histwrite(nid_hf,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 62 52 c 63 53 c ENSEMBLES BEG … … 68 58 CALL histwrite(nid_hf,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 69 59 c 60 c 70 61 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d) 71 62 CALL histwrite(nid_hf,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) … … 81 72 $ iim*jjmp1,ndex2d) 82 73 c 83 DO k=1, nlevENS 84 IF(clev(k).EQ."500") THEN 85 CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,k),zx_tmp_2d) 86 CALL histwrite(nid_hf,"phi"//clev(k),itau_w,zx_tmp_2d, 87 $ iim*jjmp1,ndex2d) 88 ENDIF !clev(k).EQ."500" 74 DO k=1, nlevSTD 75 c 76 c bb=clevSTD(k) 77 c 78 c IF(k.GE.2) THEN 79 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 80 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 81 c aa=clevSTD(k) 82 c bb=aa(1:lnblnk1(aa)) 83 c ENDIF 84 c 85 IF(bb2.EQ."500") THEN 86 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) 90 ENDIF !bb2.EQ."500" 89 91 ENDDO 90 92 c … … 93 95 IF(lev_histhf.GE.2) THEN 94 96 c 95 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt,zx_tmp_2d) 97 cIM 140904 BEG 98 DO i = 1, klon 99 zx_tmp_fi2d(i) = cldt(i)*100. 100 ENDDO 101 cIM 140904 END 102 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) 96 104 CALL histwrite(nid_hf,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 97 105 c … … 115 123 IF(lev_histhf.GE.3) THEN 116 124 c 117 DO k=1, nlevENS 118 c 119 CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlev(:,k),zx_tmp_2d) 120 CALL histwrite(nid_hf,"t"//clev(k),itau_w,zx_tmp_2d, 121 $ iim*jjmp1,ndex2d) 122 c 123 IF(clev(k).NE."500") THEN !clev(k).NE."500" 124 CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,k),zx_tmp_2d) 125 CALL histwrite(nid_hf,"phi"//clev(k),itau_w,zx_tmp_2d, 126 $ iim*jjmp1,ndex2d) 127 ENDIF !clev(k).NE."500" 128 c 129 CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlev(:,k),zx_tmp_2d) 130 CALL histwrite(nid_hf,"q"//clev(k),itau_w,zx_tmp_2d, 131 $ iim*jjmp1,ndex2d) 132 c 133 IF(1.EQ.0) THEN 134 CALL gr_fi_ecrit(1, klon,iim,jjmp1, rhlev(:,k),zx_tmp_2d) 135 CALL histwrite(nid_hf,"rh"//clev(k),itau_w,zx_tmp_2d, 136 $ iim*jjmp1,ndex2d) 137 ENDIF !1.EQ.0 138 c 139 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulev(:,k),zx_tmp_2d) 140 CALL histwrite(nid_hf,"u"//clev(k),itau_w,zx_tmp_2d, 141 $ iim*jjmp1,ndex2d) 142 c 143 CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlev(:,k),zx_tmp_2d) 144 CALL histwrite(nid_hf,"v"//clev(k),itau_w,zx_tmp_2d, 145 $ iim*jjmp1,ndex2d) 146 c 125 DO k=1, nlevSTD 126 c 127 c bb=clevSTD(k) 128 c 129 c IF(k.GE.2) THEN 130 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 131 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 132 c aa=clevSTD(k) 133 c bb=aa(1:lnblnk1(aa)) 134 c ENDIF 135 c 136 IF(bb2.EQ."850".OR.bb2.EQ."700".OR. 137 $ bb2.EQ."500".OR.bb2.EQ."200") THEN 138 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) 142 c 143 IF(bb2.NE."500") THEN !bb2.NE."500" 144 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) 148 ENDIF !bb2.NE."500" 149 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) 161 c 162 ENDIF !bb2.EQ."850".OR.bb2.EQ."700" 147 163 ENDDO !nlevENS 148 164 c … … 159 175 IF(lev_histhf.GE.4) THEN 160 176 c 177 #undef histhf3d 161 178 #define histhf3d 162 179 #ifdef histhf3d … … 166 183 ENDIF !lev_histhf.GE.4 167 184 c 168 if (ok_sync) then 185 ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN 186 c 187 IF(lev_histhf.GE.1) THEN 188 c 189 DO k=1, nlevSTD 190 c bb=clevSTD(k) 191 c 192 c IF(k.GE.2) THEN 193 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 194 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 195 c aa=clevSTD(k) 196 c bb=aa(1:lnblnk1(aa)) 197 c ENDIF 198 c 199 IF(bb2.EQ."850".or.bb2.EQ."200") THEN 200 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) 208 c 209 ENDIF !bb2.EQ."850".or.bb2.EQ."200" 210 c 211 ENDDO !nlevSTD 212 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) 215 c 216 DO i = 1, klon 217 zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) 218 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) 224 c 225 cIM 280504 BEG 226 ENDIF !(lev_histhf.GE.1) THEN 227 c 228 IF(lev_histhf.GE.2) THEN 229 c 230 DO k=1, nlevSTD 231 c 232 c bb=clevSTD(k) 233 c 234 c IF(k.GE.2) THEN 235 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 236 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 237 c aa=clevSTD(k) 238 c bb=aa(1:lnblnk1(aa)) 239 c ENDIF 240 c 241 IF(bb2.EQ."850".or.bb2.EQ."500") THEN 242 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) 250 c 251 ENDIF !bb2.EQ."850".or.bb2.EQ."500" 252 c 253 IF(bb2.EQ."500") THEN 254 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) 262 c 263 ENDIF !bb2.EQ."500" 264 c 265 IF(bb3.EQ."50") THEN 266 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) 278 c 279 ENDIF !bb3.EQ."50" 280 c 281 ENDDO !k=1, nlevSTD 282 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) 296 c 297 DO i = 1, klon 298 zx_tmp_fi2d(i) = paprs(i,1) 299 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) 303 c 304 cIM 140904 BEG 305 DO i = 1, klon 306 zx_tmp_fi2d(i) = cldt(i)*100. 307 ENDDO 308 cIM 140904 END 309 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) 312 c 313 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) 317 C 318 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) 326 c 327 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) 333 c 334 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) 337 c 338 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) 342 c 343 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) 351 c 352 cIM 090904 zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon) 353 cIM 130904 zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon) 354 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) 358 c 359 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) 363 c 364 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) 370 DO k=1, nbteta 371 CALL histwrite(nid_hf,"PV"//ctetaSTD(k), 372 . itau_w,zx_tmp_3dte(:,:,k),iim*jjmp1,ndex2d) 373 ENDDO !k=1, nbteta 374 c 375 c 376 c planetary boundary layer height 377 c 378 c ENDIF !1.EQ.0 379 c 380 ENDIF !(lev_histhf.GE.2) THEN 381 cIM 280504 END 382 c 383 ENDIF !type_run 384 c 385 IF (ok_sync) THEN 169 386 call histsync(nid_hf) 170 endif387 ENDIF 171 388 172 endif389 ENDIF -
LMDZ4/trunk/libf/phylmd/write_histhf3d.h
r524 r644 1 !2 ! $Header$3 !4 c if (ok_hf) then5 6 c Comprendre comment marche el i=nint(zout/zsto)7 1 c 8 c print*,'ACRITURE HF !!! ACRITURE HF !!! ACRITURE HF !!! ' 2 c $Header$ 3 c 4 c 9 5 ndex2d = 0 10 6 ndex3d = 0 11 7 c 12 zsto = dtime13 zout = dtime * ecrit_hf14 8 itau_w = itau_phy + itap 15 c16 c IF(lev_histhf.GE.1) THEN17 9 c 18 10 c Champs 3D: … … 34 26 . iim*jjmp1*klev,ndex3d) 35 27 c 36 c ENDIF !lev_histhf.GE.137 c38 28 if (ok_sync) then 39 29 call histsync(nid_hf3d) 40 30 endif 41 42 c endif -
LMDZ4/trunk/libf/phylmd/write_histins.h
r524 r644 114 114 DO nsrf = 1, nbsrf 115 115 CXXX 116 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100. 117 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 118 CALL histwrite(nid_ins,"pourc_"//clnsurf(nsrf),itau_w, 119 $ zx_tmp_2d,iim*jjmp1,ndex2d) 120 C 116 121 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf) 117 122 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 118 CALL histwrite(nid_ins," pourc_"//clnsurf(nsrf),itau_w,123 CALL histwrite(nid_ins,"fract_"//clnsurf(nsrf),itau_w, 119 124 $ zx_tmp_2d,iim*jjmp1,ndex2d) 120 125 C … … 160 165 CALL histwrite(nid_ins,"albslw",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 161 166 c 162 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d) 163 CALL histwrite(nid_ins,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1, 164 . ndex2d) 167 cIM: 140404 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d) 168 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d) 169 c CALL histwrite(nid_ins,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1, 170 c . ndex2d) 165 171 c 166 172 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxrugs,zx_tmp_2d) 167 173 CALL histwrite(nid_ins,"rugs",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 174 c 175 cIM cf. AM 081204 BEG 176 c 177 cHBTM2 178 c 179 c 180 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d) 181 CALL histwrite(nid_ins,"s_pblh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 182 c 183 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d) 184 CALL histwrite(nid_ins,"s_pblt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 185 c 186 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d) 187 CALL histwrite(nid_ins,"s_lcl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 188 c 189 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d) 190 CALL histwrite(nid_ins,"s_capCL",itau_w,zx_tmp_2d,iim*jjmp1, 191 . ndex2d) 192 c 193 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d) 194 CALL histwrite(nid_ins,"s_oliqCL",itau_w,zx_tmp_2d,iim*jjmp1, 195 . ndex2d) 196 c 197 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d) 198 CALL histwrite(nid_ins,"s_cteiCL",itau_w,zx_tmp_2d,iim*jjmp1, 199 . ndex2d) 200 c 201 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d) 202 CALL histwrite(nid_ins,"s_therm",itau_w,zx_tmp_2d,iim*jjmp1, 203 . ndex2d) 204 c 205 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d) 206 CALL histwrite(nid_ins,"s_trmb1",itau_w,zx_tmp_2d,iim*jjmp1, 207 . ndex2d) 208 c 209 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d) 210 CALL histwrite(nid_ins,"s_trmb2",itau_w,zx_tmp_2d,iim*jjmp1, 211 . ndex2d) 212 c 213 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d) 214 CALL histwrite(nid_ins,"s_trmb3",itau_w,zx_tmp_2d,iim*jjmp1, 215 . ndex2d) 216 c 217 cIM cf. AM 081204 END 168 218 c 169 219 c Champs 3D: -
LMDZ4/trunk/libf/phylmd/write_histmth.h
r619 r644 1 ! 2 !$Header$3 ! 1 c 2 c $Header$ 3 c 4 4 IF (ok_mensuel) THEN 5 5 c … … 7 7 ndex3d = 0 8 8 9 zsto = dtime10 zout = dtime * ecrit_mth11 9 itau_w = itau_phy + itap 12 10 13 i = NINT(zout/zsto) 11 c 12 IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN 14 13 c 15 14 IF(lev_histmth.GE.1) THEN … … 20 19 CALL histwrite(nid_mth,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 21 20 C 22 i = NINT(zout/zsto)21 cIM 310804 CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d) 23 22 CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d) 24 23 CALL histwrite(nid_mth,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 25 24 c 26 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, is_ter)27 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d ,zx_tmp_2d)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) 28 27 CALL histwrite(nid_mth,"pourc_"//clnsurf(is_ter),itau_w, 28 $ zx_tmp_2d,iim*jjmp1,ndex2d) 29 c 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, 29 33 $ zx_tmp_2d,iim*jjmp1,ndex2d) 30 34 c … … 121 125 CALL histwrite(nid_mth,"snow",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 122 126 c 123 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxsnow,zx_tmp_2d) 124 CALL histwrite(nid_mth,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1, 125 . ndex2d) 126 c 127 cIM: 071003 128 c zx_tmp_fi2d(1:klon)=evap(1:klon)*86400. 129 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 127 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d) 128 c CALL histwrite(nid_mth,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1, 129 c . ndex2d) 130 c 130 131 CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d) 131 132 CALL histwrite(nid_mth,"evap",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) … … 143 144 CALL histwrite(nid_mth,"topl0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 144 145 c 145 c zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, klevp1)146 cIM 080304 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 2 )147 146 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 ) 148 147 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) … … 150 149 . iim*jjmp1,ndex2d) 151 150 c 152 c153 c zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, klevp1)154 cIM 080304 zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 2 )155 151 zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 ) 156 152 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) … … 158 154 . iim*jjmp1,ndex2d) 159 155 c 160 c zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, klevp1)161 cIM 080304 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 2 )162 156 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 ) 163 157 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) … … 165 159 . iim*jjmp1,ndex2d) 166 160 c 167 c zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, klevp1)168 cIM 080304 zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 2 )169 161 zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 ) 170 162 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) … … 243 235 . iim*jjmp1,ndex2d) 244 236 c 245 zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon) 237 cIM 080904 zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon) 238 cIM 130904 zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon) 239 zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon) 246 240 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 247 241 CALL histwrite(nid_mth,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1, 248 242 . ndex2d) 249 243 c 250 zx_tmp_fi2d(1:klon)=sollw0(1:klon)+sollwdownclr(1:klon) 244 DO i=1, klon 245 sollwdownclr(i)=-1.*lwdn0(i,1) 246 ENDDO !i=1, klon 247 248 cIM 080904 zx_tmp_fi2d(1:klon)=sollw0(1:klon)+sollwdownclr(1:klon) 249 cIM 130904 zx_tmp_fi2d(1:klon)=sollw0(1:klon)-sollwdownclr(1:klon) 250 zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon) 251 251 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 252 252 CALL histwrite(nid_mth,"LWupSFCclr",itau_w,zx_tmp_2d,iim*jjmp1, … … 257 257 . ndex2d) 258 258 c 259 DO i=1, klon 260 sollwdownclr(i)=lwdn0(i,1) 261 ENDDO !i=1, klon 259 c DO i=1, klon 260 cIM 080904 sollwdownclr(i)=lwdn0(i,1) 261 c sollwdownclr(i)=-1.*lwdn0(i,1) 262 c ENDDO !i=1, klon 262 263 c 263 264 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdownclr,zx_tmp_2d) 264 265 CALL histwrite(nid_mth,"LWdnSFCclr",itau_w,zx_tmp_2d, 265 266 $ iim*jjmp1,ndex2d) 266 c267 c268 c effets des aerosols269 c270 c IF (ok_ade.OR.ok_aie) THEN271 zx_tmp_fi2d(1:klon) = topswai(1:klon) - topswad(1:klon)272 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, topswad,zx_tmp_2d)273 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d ,zx_tmp_2d)274 CALL histwrite(nid_mth,"topsad",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)275 c276 zx_tmp_fi2d(1:klon) = solswai(1:klon) - solswad(1:klon)277 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, solswad,zx_tmp_2d)278 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d ,zx_tmp_2d)279 CALL histwrite(nid_mth,"solsad",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)280 c281 zx_tmp_fi2d(1:klon) = topsw(1:klon) - topswai(1:klon)282 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, topswai,zx_tmp_2d)283 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d ,zx_tmp_2d)284 CALL histwrite(nid_mth,"topsai",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)285 c286 zx_tmp_fi2d(1:klon) = solsw(1:klon) - solswai(1:klon)287 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, solswai,zx_tmp_2d)288 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d ,zx_tmp_2d)289 CALL histwrite(nid_mth,"solsai",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d)290 c endif291 267 c 292 268 CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d) … … 322 298 CALL histwrite(nid_mth,"fqcalving",itau_w,zx_tmp_2d,iim*jjmp1, 323 299 $ ndex2d) 324 c IM: 171003300 c 325 301 DO nsrf = 1, nbsrf 326 302 zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf) … … 334 310 $ zx_tmp_2d,iim*jjmp1,ndex2d) 335 311 ENDDO 336 cIM: 171003 337 c 338 cIM if ( lev_histday.gt.1 ) then 312 c 339 313 DO nsrf = 1, nbsrf 340 314 CYYY 341 IF(nsrf.GT. 1) THEN342 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf) 315 IF(nsrf.GT.2) THEN 316 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100. 343 317 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 344 318 CALL histwrite(nid_mth,"pourc_"//clnsurf(nsrf),itau_w, 345 319 $ zx_tmp_2d,iim*jjmp1,ndex2d) 346 ENDIF !nsrf.GT.1 320 c 321 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf) 322 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 323 CALL histwrite(nid_mth,"fract_"//clnsurf(nsrf),itau_w, 324 $ zx_tmp_2d,iim*jjmp1,ndex2d) 325 ENDIF !nsrf.GT.2 347 326 C 348 327 zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf) … … 376 355 $ zx_tmp_2d,iim*jjmp1,ndex2d) 377 356 C 378 357 IF(1.EQ.0) THEN 358 C 359 zx_tmp_fi2d(1:klon) = fevap(1:klon,nsrf)*pctsrf(1:klon,nsrf) 360 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 361 CALL histwrite(nid_mth,"evapour_"//clnsurf(nsrf),itau_w, 362 $ zx_tmp_2d,iim*jjmp1,ndex2d) 363 C 364 zx_tmp_fi2d(1:klon) = (rain_fall(1:klon) + snow_fall(1:klon)) 365 $ *pctsrf(1:klon,nsrf) 366 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 367 CALL histwrite(nid_mth,"prepour_"//clnsurf(nsrf),itau_w, 368 $ zx_tmp_2d,iim*jjmp1,ndex2d) 369 C 370 ENDIF !(1.EQ.0) THEN 371 C 379 372 END DO 380 cIM endif !lev_histday381 382 373 c 383 374 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d) … … 438 429 c34EK 439 430 c 440 ENDIF !iflag_con.GE.3441 c442 431 CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d) 443 432 CALL histwrite(nid_mth,"prw",itau_w,zx_tmp_2d, 444 433 . iim*jjmp1,ndex2d) 445 434 c 446 c 447 c 435 ENDIF !iflag_con.GE.3 436 c 437 c 438 cIM cf. AM 081204 BEG 439 cHBTM2 440 c 441 c 442 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d) 443 CALL histwrite(nid_mth,"s_pblh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 444 c 445 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d) 446 CALL histwrite(nid_mth,"s_pblt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 447 c 448 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d) 449 CALL histwrite(nid_mth,"s_lcl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 450 c 451 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d) 452 CALL histwrite(nid_mth,"s_capCL",itau_w,zx_tmp_2d,iim*jjmp1, 453 . ndex2d) 454 c 455 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d) 456 CALL histwrite(nid_mth,"s_oliqCL",itau_w,zx_tmp_2d,iim*jjmp1, 457 . ndex2d) 458 c 459 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d) 460 CALL histwrite(nid_mth,"s_cteiCL",itau_w,zx_tmp_2d,iim*jjmp1, 461 . ndex2d) 462 c 463 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d) 464 CALL histwrite(nid_mth,"s_therm",itau_w,zx_tmp_2d,iim*jjmp1, 465 . ndex2d) 466 c 467 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d) 468 CALL histwrite(nid_mth,"s_trmb1",itau_w,zx_tmp_2d,iim*jjmp1, 469 . ndex2d) 470 c 471 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d) 472 CALL histwrite(nid_mth,"s_trmb2",itau_w,zx_tmp_2d,iim*jjmp1, 473 . ndex2d) 474 c 475 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d) 476 CALL histwrite(nid_mth,"s_trmb3",itau_w,zx_tmp_2d,iim*jjmp1, 477 . ndex2d) 478 c 479 cIM cf. AM 081204 END 448 480 c 449 481 c Champs interpolles sur des niveaux de pression 450 DO k=1, nlevENS 451 c 452 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulev(:,k),zx_tmp_2d) 453 CALL histwrite(nid_mth,"u"//clev(k),itau_w,zx_tmp_2d, 482 DO k=1, nlevSTD 483 c 484 c bb=clevSTD(k) 485 c 486 c IF(k.GE.2) THEN 487 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 488 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 489 c aa=clevSTD(k) 490 c bb=aa(1:lnblnk1(aa)) 491 c ENDIF 492 c 493 IF(bb2.EQ."850".OR.bb2.EQ."700".OR. 494 $ bb2.EQ."500".OR.bb2.EQ."200") THEN 495 c 496 CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,2),zx_tmp_2d) 497 CALL histwrite(nid_mth,"u"//bb2,itau_w,zx_tmp_2d, 454 498 $ iim*jjmp1,ndex2d) 455 499 c 456 CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlev(:,k),zx_tmp_2d)457 CALL histwrite(nid_mth,"v"// clev(k),itau_w,zx_tmp_2d,500 CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,2),zx_tmp_2d) 501 CALL histwrite(nid_mth,"v"//bb2,itau_w,zx_tmp_2d, 458 502 $ iim*jjmp1,ndex2d) 459 503 c 460 CALL gr_fi_ecrit(1, klon,iim,jjmp1, wlev(:,k),zx_tmp_2d) 461 CALL histwrite(nid_mth,"w"//clev(k),itau_w,zx_tmp_2d, 462 $ iim*jjmp1,ndex2d) 463 c 464 CALL gr_fi_ecrit(1, klon,iim,jjmp1, philev(:,k),zx_tmp_2d) 465 CALL histwrite(nid_mth,"phi"//clev(k),itau_w,zx_tmp_2d, 466 $ iim*jjmp1,ndex2d) 467 c 468 ENDDO !nlevENS 504 CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,2),zx_tmp_2d) 505 CALL histwrite(nid_mth,"w"//bb2,itau_w,zx_tmp_2d, 506 $ iim*jjmp1,ndex2d) 507 c 508 CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,2),zx_tmp_2d) 509 CALL histwrite(nid_mth,"phi"//bb2,itau_w,zx_tmp_2d, 510 $ iim*jjmp1,ndex2d) 511 c 512 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR. 513 ENDDO !nlevSTD 514 c 515 DO i=1, klon 516 IF (pctsrf(i,is_oce).GT.epsfra) THEN 517 zx_tmp_fi2d(i) = fluxo(i) 518 ELSE 519 zx_tmp_fi2d(i) = 1.E+20 520 ENDIF 521 ENDDO 522 c 523 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 524 CALL histwrite(nid_mth,"fluxo",itau_w,zx_tmp_2d, 525 . iim*jjmp1,ndex2d) 526 c 527 DO i=1, klon 528 IF (pctsrf(i,is_sic).GT.epsfra) THEN 529 zx_tmp_fi2d(i) = fluxg(i) 530 ELSE 531 zx_tmp_fi2d(i) = 1.E+20 532 ENDIF 533 ENDDO 534 c 535 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 536 CALL histwrite(nid_mth,"fluxg",itau_w,zx_tmp_2d, 537 . iim*jjmp1,ndex2d) 538 c 539 IF (OCEAN.EQ.'force ') THEN 540 c 541 DO i=1, klon 542 IF((pctsrf(i,is_oce).GT.epsfra).OR. 543 . (pctsrf(i,is_sic).GT.epsfra)) THEN 544 zx_tmp_fi2d(i) = (radsol(i) + fluxo(i))*pctsrf(i,is_oce)+ 545 . fluxg(i)*pctsrf(i,is_sic) 546 ELSE 547 zx_tmp_fi2d(i) = 1.E+20 548 ENDIF 549 ENDDO 550 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 551 CALL histwrite(nid_mth,"lmt_bils",itau_w, 552 . zx_tmp_2d,iim*jjmp1,ndex2d) 553 c 554 ELSE IF (OCEAN.EQ.'slab ') THEN 555 c 556 DO i=1, klon 557 IF((pctsrf(i,is_oce).GT.epsfra).OR. 558 . (pctsrf(i,is_sic).GT.epsfra)) THEN 559 zx_tmp_fi2d(i) = (radsol(i) + fluxo(i))*pctsrf(i,is_oce)+ 560 . fluxg(i)*pctsrf(i,is_sic) 561 ELSE 562 zx_tmp_fi2d(i) = 1.E+20 563 ENDIF 564 ENDDO 565 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 566 CALL histwrite(nid_mth,"slab_bils",itau_w, 567 . zx_tmp_2d,iim*jjmp1,ndex2d) 568 c 569 DO i=1, klon 570 IF(pctsrf(i,is_oce).GT.epsfra.OR. 571 $ pctsrf(i,is_sic).GT.epsfra) THEN 572 zx_tmp_fi2d(i)=tslab(i) 573 ELSE 574 zx_tmp_fi2d(i) = 1.E+20 575 ENDIF 576 ENDDO !i=1, klon 577 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 578 CALL histwrite(nid_mth,"tslab",itau_w,zx_tmp_2d, 579 . iim*jjmp1,ndex2d) 580 c 581 CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d) 582 CALL histwrite(nid_mth,"seaice",itau_w,zx_tmp_2d, 583 . iim*jjmp1,ndex2d) 584 c 585 CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d) 586 CALL histwrite(nid_mth,"siceh",itau_w,zx_tmp_2d, 587 . iim*jjmp1,ndex2d) 588 c 589 ENDIF !OCEAN.EQ.force/slab 590 c 469 591 ENDIF !lev_histmth.GE.1 470 592 c … … 494 616 . iim*jjmp1*klev,ndex3d) 495 617 c 496 cIM: 071003497 618 c zx_tmp_fi3d(1:klon,1:klev)=qx(1:klon,1:klev,ivap)/ 498 619 c . (1-qx(1:klon,1:klev,ivap)) … … 533 654 . iim*jjmp1*klev,ndex3d) 534 655 c 535 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, wo, zx_tmp_3d) 656 DO k=1, klev 657 DO i=1, klon 658 cIM 151004 zx_tmp_fi3d(i,k)=MAX(wo(i,k),1.0e-12)*RG/46.6968 659 c $ /(paprs(i,k)-paprs(i,k+1)) 660 c $ *(paprs(i,1)/101325.0) 661 c zx_tmp2_fi3d(i,k)=MAX(wo(i,k)*1.0e+6,1.0e-6)*RG/46.6968 662 zx_tmp_fi3d(i,k)=wo(i,k)*RG/46.6968 663 $ /(paprs(i,k)-paprs(i,k+1)) 664 $ *(paprs(i,1)/101325.0) 665 ENDDO !i 666 ENDDO !k 667 c 668 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, wo, zx_tmp_3d) 669 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp2_fi3d,zx_tmp_3d) 670 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 536 671 CALL histwrite(nid_mth,"ozone",itau_w,zx_tmp_3d, 537 672 . iim*jjmp1*klev,ndex3d) 538 673 c 539 cIM 22.03.04 BEG540 674 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 541 675 CALL histwrite(nid_mth,"dtphy",itau_w,zx_tmp_3d, … … 546 680 CALL histwrite(nid_mth,"dqphy",itau_w,zx_tmp_3d, 547 681 . iim*jjmp1*klev,ndex3d) 548 cIM 22.03.04 END549 682 c 550 683 ENDIF !lev_histmth.GE.2 … … 586 719 . iim*jjmp1*klev,ndex3d) 587 720 c 588 IF (iflag_con.GE.3) THEN589 c590 721 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d) 591 722 CALL histwrite(nid_mth,"Ma",itau_w,zx_tmp_3d, … … 604 735 . iim*jjmp1*klev,ndex3d) 605 736 c 606 ENDIF !iflag_con.GE.3607 737 c 608 738 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) … … 620 750 . iim*jjmp1*klev,ndex3d) 621 751 c 622 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_con, zx_tmp_3d) 752 zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys 753 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 623 754 CALL histwrite(nid_mth,"dqcon",itau_w,zx_tmp_3d, 624 755 . iim*jjmp1*klev,ndex3d) … … 629 760 CALL histwrite(nid_mth,"dtlsc",itau_w,zx_tmp_3d, 630 761 . iim*jjmp1*klev,ndex3d) 631 cIM: 071003632 762 cIM: 101003 : K/30min ==> K/s 633 763 zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+ … … 637 767 . iim*jjmp1*klev,ndex3d) 638 768 c 639 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_lsc, zx_tmp_3d) 769 zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys 770 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 640 771 CALL histwrite(nid_mth,"dqlsc",itau_w,zx_tmp_3d, 641 772 . iim*jjmp1*klev,ndex3d) … … 647 778 . iim*jjmp1*klev,ndex3d) 648 779 c 649 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_vdf, zx_tmp_3d) 780 zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys 781 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 650 782 CALL histwrite(nid_mth,"dqvdf",itau_w,zx_tmp_3d, 651 783 . iim*jjmp1*klev,ndex3d) … … 657 789 . iim*jjmp1*klev,ndex3d) 658 790 c 659 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_eva, zx_tmp_3d) 791 zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys 792 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 660 793 CALL histwrite(nid_mth,"dqeva",itau_w,zx_tmp_3d, 661 794 . iim*jjmp1*klev,ndex3d) … … 677 810 . iim*jjmp1*klev,ndex3d) 678 811 c 679 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_ajs, zx_tmp_3d) 812 zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys 813 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 680 814 CALL histwrite(nid_mth,"dqajs",itau_w,zx_tmp_3d, 681 815 . iim*jjmp1*klev,ndex3d) 682 816 c 683 817 cIM: 101003 : K/day ==> K/s 684 cIM: LMD_ARMIP3 zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)*pdtphys/RDAY685 818 zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY 686 819 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) … … 689 822 c 690 823 cIM: 101003 : K/day ==> K/s 691 cIM: LMD_ARMIP3 zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)*pdtphys/RDAY692 824 zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY 693 825 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) … … 696 828 c 697 829 cIM: 101003 : K/day ==> K/s 698 cIM: LMD_ARMIP3 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)*pdtphys/RDAY699 830 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY 700 831 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) … … 703 834 c 704 835 cIM: 101003 : K/day ==> K/s 705 cIM: LMD_ARMIP3 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)*pdtphys/RDAY706 836 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY 707 837 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) … … 715 845 . iim*jjmp1*klev,ndex3d) 716 846 c 717 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_vdf, zx_tmp_3d) 847 zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys 848 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 718 849 CALL histwrite(nid_mth,"duvdf",itau_w,zx_tmp_3d, 719 850 . iim*jjmp1*klev,ndex3d) 720 851 c 721 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_vdf, zx_tmp_3d) 852 zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys 853 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 722 854 CALL histwrite(nid_mth,"dvvdf",itau_w,zx_tmp_3d, 723 855 . iim*jjmp1*klev,ndex3d) 724 856 c 725 857 IF (ok_orodr) THEN 726 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_oro, zx_tmp_3d) 858 zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(1:klon,1:klev)/pdtphys 859 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 727 860 CALL histwrite(nid_mth,"duoro",itau_w,zx_tmp_3d, 728 861 . iim*jjmp1*klev,ndex3d) 729 862 c 730 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_oro, zx_tmp_3d) 863 zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys 864 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 731 865 CALL histwrite(nid_mth,"dvoro",itau_w,zx_tmp_3d, 732 866 . iim*jjmp1*klev,ndex3d) … … 735 869 C 736 870 IF (ok_orolf) THEN 737 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_u_lif, zx_tmp_3d) 871 zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys 872 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 738 873 CALL histwrite(nid_mth,"dulif",itau_w,zx_tmp_3d, 739 874 . iim*jjmp1*klev,ndex3d) 740 875 c 741 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_v_lif, zx_tmp_3d) 876 zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys 877 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 742 878 CALL histwrite(nid_mth,"dvlif",itau_w,zx_tmp_3d, 743 879 . iim*jjmp1*klev,ndex3d) 744 880 ENDIF 745 881 C 746 c747 c effets des aerosols748 c749 c IF (ok_ade.OR.ok_aie) THEN750 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, re, zx_tmp_3d)751 CALL histwrite(nid_mth,"re",itau_w,zx_tmp_3d,752 . iim*jjmp1*klev,ndex3d)753 c754 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fl, zx_tmp_3d)755 CALL histwrite(nid_mth,"redenom",itau_w,zx_tmp_3d,756 . iim*jjmp1*klev,ndex3d)757 c758 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldtau, zx_tmp_3d)759 CALL histwrite(nid_mth,"tau",itau_w,zx_tmp_3d,760 . iim*jjmp1*klev,ndex3d)761 c762 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldtaupi, zx_tmp_3d)763 CALL histwrite(nid_mth,"taupi",itau_w,zx_tmp_3d,764 . iim*jjmp1*klev,ndex3d)765 c endif766 c767 882 IF (nqmax.GE.3) THEN 768 DO iq=3,nqmax 769 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq), zx_tmp_3d) 770 CALL histwrite(nid_mth,tnom(iq),itau_w,zx_tmp_3d, 771 . iim*jjmp1*klev,ndex3d) 772 ENDDO 883 DO iq=1,nqmax-2 884 IF (iq.LE.99) THEN 885 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq+2), zx_tmp_3d) 886 WRITE(str2,'(i2.2)') iq 887 CALL histwrite(nid_mth,"trac"//str2,itau_w,zx_tmp_3d, 888 . iim*jjmp1*klev,ndex3d) 889 ELSE 890 PRINT*, "Trop de traceurs" 891 CALL abort 773 892 ENDIF 893 ENDDO 894 ENDIF 774 895 c 775 896 ENDIF !lev_histmth.GE.4 897 c 898 ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN 899 c 900 IF(lev_histmth.GE.1) THEN 901 c 902 c Champs 2D: 903 c 904 CALL gr_fi_ecrit(1,klon,iim,jjmp1,pphis/RG,zx_tmp_2d) 905 CALL histwrite(nid_mth,"phis",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 906 C 907 cIM 310804 CALL gr_fi_ecrit(1,klon,iim,jjmp1,paire,zx_tmp_2d) 908 CALL gr_fi_ecrit(1,klon,iim,jjmp1,airephy,zx_tmp_2d) 909 CALL histwrite(nid_mth,"aire",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 910 c 911 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter)* 100. 912 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d) 913 CALL histwrite(nid_mth,"pourc_"//clnsurf(is_ter),itau_w, 914 $ zx_tmp_2d,iim*jjmp1,ndex2d) 915 c 916 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_ter) 917 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d) 918 CALL histwrite(nid_mth,"fract_"//clnsurf(is_ter),itau_w, 919 $ zx_tmp_2d,iim*jjmp1,ndex2d) 920 c 921 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_lic)* 100. 922 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d) 923 CALL histwrite(nid_mth,"pourc_"//clnsurf(is_lic),itau_w, 924 $ zx_tmp_2d,iim*jjmp1,ndex2d) 925 c 926 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_lic) 927 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d, zx_tmp_2d) 928 CALL histwrite(nid_mth,"fract_"//clnsurf(is_lic),itau_w, 929 $ zx_tmp_2d,iim*jjmp1,ndex2d) 930 c 931 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_sic)* 100. 932 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 933 CALL histwrite(nid_mth,"pourc_"//clnsurf(is_sic),itau_w, 934 $ zx_tmp_2d,iim*jjmp1,ndex2d) 935 c 936 zx_tmp_fi2d(1 : klon) = pctsrf(1 : klon, is_sic) 937 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 938 CALL histwrite(nid_mth,"fract_"//clnsurf(is_sic),itau_w, 939 $ zx_tmp_2d,iim*jjmp1,ndex2d) 940 c 941 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfluxlat,zx_tmp_2d) 942 CALL histwrite(nid_mth,"flat",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 943 c 944 zx_tmp_fi2d(1 : klon) = topsw(1:klon)-toplw(1:klon) 945 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 946 CALL histwrite(nid_mth,"bilTOA",itau_w, 947 . zx_tmp_2d,iim*jjmp1,ndex2d) 948 c 949 c IF(itap.EQ.ecrit_mth) THEN 950 c DO i=1, klon 951 c IF(nday_clr(i).GT.0.) THEN 952 c tops01(i)=tops01(i)/nday_clr(i) 953 c ELSE 954 c tops01(i)=1.e+20 955 c ENDIF 956 c ENDDO 957 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, tops01,zx_tmp_2d) 958 c CALL histwrite(nid_mth,"tops01",itau_w,zx_tmp_2d, 959 c . iim*jjmp1,ndex2d) 960 c ENDIF !itap.EQ.ecrit_mth 961 c 962 c220404 BEG 963 c 964 c temperature tendency due to total diabatic heating 965 DO l=1, klev 966 DO i=1, klon 967 d_t(i,l) = (t_seri(i,l)-t(i,l))/dtime 968 ENDDO !i 969 ENDDO !l 970 c 971 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t,zx_tmp_3d) 972 CALL histwrite(nid_mth,"dtdia",itau_w,zx_tmp_3d, 973 $ iim*jjmp1*klev,ndex3d) 974 c 975 c temperature tendency due to SW radiation 976 DO l=1, klev 977 DO i=1, klon 978 zx_tmp_fi3d(i,l)=heat(i,l)/RDAY 979 ENDDO !i 980 ENDDO !l 981 c 982 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 983 CALL histwrite(nid_mth,"dtsw",itau_w,zx_tmp_3d, 984 $ iim*jjmp1*klev,ndex3d) 985 c 986 c temperature tendency due to LW radiation 987 DO l=1, klev 988 DO i=1, klon 989 zx_tmp_fi3d(i,l)=-1*cool(i,l)/RDAY 990 ENDDO !i 991 ENDDO !l 992 c 993 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 994 CALL histwrite(nid_mth,"dtlw",itau_w,zx_tmp_3d, 995 $ iim*jjmp1*klev,ndex3d) 996 c 997 c temperature tendency due to moist convective processes 998 DO l=1, klev 999 DO i=1, klon 1000 zx_tmp_fi3d(i,l)=d_t_con(i,l)/pdtphys 1001 ENDDO !i 1002 ENDDO !l 1003 c 1004 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 1005 CALL histwrite(nid_mth,"dtcon",itau_w,zx_tmp_3d, 1006 $ iim*jjmp1*klev,ndex3d) 1007 c 1008 c temperature tendency due to dry convective processes 1009 DO l=1, klev 1010 DO i=1, klon 1011 zx_tmp_fi3d(i,l)=d_t_ajs(i,l)/pdtphys 1012 ENDDO !i 1013 ENDDO !l 1014 c 1015 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 1016 CALL histwrite(nid_mth,"dtajs",itau_w,zx_tmp_3d, 1017 $ iim*jjmp1*klev,ndex3d) 1018 c 1019 c temperature tendency due to large scale precipitation 1020 DO l=1, klev 1021 DO i=1, klon 1022 zx_tmp_fi3d(i,l)=d_t_lsc(i,l)/pdtphys 1023 ENDDO !i 1024 ENDDO !l 1025 c 1026 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 1027 CALL histwrite(nid_mth,"dtlsc",itau_w,zx_tmp_3d, 1028 $ iim*jjmp1*klev,ndex3d) 1029 c 1030 c total moisture tendency due to diabatic processes 1031 DO l=1, klev 1032 DO i=1, klon 1033 d_qx(i,l,ivap) = ( q_seri(i,l) - qx(i,l,ivap) ) / dtime 1034 zx_tmp_fi3d(i,l)=d_qx(i,l,ivap) 1035 ENDDO !i 1036 ENDDO !l 1037 c 1038 CALL gr_fi_ecrit(klev, klon,iim,jjmp1, zx_tmp_fi3d,zx_tmp_3d) 1039 CALL histwrite(nid_mth,"dqdia",itau_w,zx_tmp_3d, 1040 $ iim*jjmp1*klev,ndex3d) 1041 c 1042 cBEG 210404 BEG 1043 c 1044 IF(ok_orodr.AND.ok_orolf) THEN 1045 DO k = 1, klev 1046 DO i = 1, klon 1047 d_u_oli(i,k) = (d_u_oro(i,k) + d_u_lif(i,k))/pdtphys 1048 d_v_oli(i,k) = (d_v_oro(i,k) + d_v_lif(i,k))/pdtphys 1049 ENDDO 1050 ENDDO 1051 ENDIF !(ok_orodr.AND.ok_orolf) THEN 1052 c 1053 CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_u_oli,zx_tmp_3d) 1054 CALL histwrite(nid_mth,"duoli",itau_w,zx_tmp_3d, 1055 $ iim*jjmp1*klev,ndex3d) 1056 c 1057 CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_v_oli,zx_tmp_3d) 1058 CALL histwrite(nid_mth,"dvoli",itau_w,zx_tmp_3d, 1059 $ iim*jjmp1*klev,ndex3d) 1060 c 1061 zx_tmp_fi3d(1:klon,1:klev)=d_u_con(1:klon,1:klev)/pdtphys 1062 CALL gr_fi_ecrit(klev, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1063 CALL histwrite(nid_mth,"ducon",itau_w,zx_tmp_3d, 1064 $ iim*jjmp1*klev,ndex3d) 1065 c 1066 zx_tmp_fi3d(1:klon,1:klev)=d_v_con(1:klon,1:klev)/pdtphys 1067 CALL gr_fi_ecrit(klev, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1068 CALL histwrite(nid_mth,"dvcon",itau_w,zx_tmp_3d, 1069 $ iim*jjmp1*klev,ndex3d) 1070 c 1071 CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_u,zx_tmp_3d) 1072 CALL histwrite(nid_mth,"dutot",itau_w,zx_tmp_3d, 1073 $ iim*jjmp1*klev,ndex3d) 1074 c 1075 CALL gr_fi_ecrit(klev, klon,iim,jjmp1,d_v,zx_tmp_3d) 1076 CALL histwrite(nid_mth,"dvtot",itau_w,zx_tmp_3d, 1077 $ iim*jjmp1*klev,ndex3d) 1078 1079 cEND 210404 END 1080 c 1081 c cldtrue 1082 c CALL gr_fi_ecrit(klev, klon,iim,jjmp1,cldtrue,zx_tmp_3d) 1083 c CALL histwrite(nid_mth,"cldtrue",itau_w,zx_tmp_3d, 1084 c $ iim*jjmp1*klev,ndex3d) 1085 c 1086 c CALL gr_fi_ecrit(klev, klon,iim,jjmp1,cldTOA,zx_tmp_3d) 1087 c CALL histwrite(nid_mth,"cldTOA",itau_w,zx_tmp_3d, 1088 c $ iim*jjmp1*klev,ndex3d) 1089 c 1090 c CALL gr_fi_ecrit(klev, klon,iim,jjmp1,cldSFC,zx_tmp_3d) 1091 c CALL histwrite(nid_mth,"cldSFC",itau_w,zx_tmp_3d, 1092 c $ iim*jjmp1*klev,ndex3d) 1093 c 1094 DO i=1, klon 1095 cIM 151004 zx_tmp_fi2d(i)=GWDtaux1(i,1)-GWDtaux0(i,1) 1096 zx_tmp_fi2d(i)=zustrdr(i)+zustrli(i) 1097 ENDDO 1098 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1099 CALL histwrite(nid_mth,"GWDtaux", 1100 $ itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1101 c 1102 DO i=1, klon 1103 cIM 151004 zx_tmp_fi2d(i)=GWDtauy1(i,1)-GWDtauy0(i,1) 1104 zx_tmp_fi2d(i)=zvstrdr(i)+zvstrli(i) 1105 ENDDO 1106 CALL gr_fi_ecrit(1, klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1107 CALL histwrite(nid_mth,"GWDtauy", 1108 $ itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1109 c 1110 c220404 END 1111 cAMIP2 END 1112 c 1113 CALL gr_fi_ecrit(1, klon,iim,jjmp1, slp,zx_tmp_2d) 1114 CALL histwrite(nid_mth,"slp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1115 1116 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxtsol,zx_tmp_2d) 1117 CALL histwrite(nid_mth,"tsol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1118 c 1119 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zt2m,zx_tmp_2d) 1120 CALL histwrite(nid_mth,"t2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1121 c 1122 c ENSEMBLES BEG 1123 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 1124 CALL histwrite(nid_mth,"t2m_min",itau_w,zx_tmp_2d, 1125 . iim*jjmp1,ndex2d) 1126 c 1127 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zt2m,zx_tmp_2d) 1128 CALL histwrite(nid_mth,"t2m_max",itau_w,zx_tmp_2d, 1129 . iim*jjmp1,ndex2d) 1130 c 1131 c CALL gr_fi_ecrit(1,klon,iim,jjmp1,ftsoil(:,1,is_ter),zx_tmp_2d) 1132 c CALL gr_fi_ecrit(1,klon,iim,jjmp1,ftsol(:,is_ter),zx_tmp_2d) 1133 c CALL gr_fi_ecrit(1,klon,iim,jjmp1,ztsol,zx_tmp_2d) 1134 c CALL histwrite(nid_mth,"tsoil",itau_w,zx_tmp_2d, 1135 c . iim*jjmp1,ndex2d) 1136 c 1137 DO i=1, klon 1138 zx_tmp_fi2d(i)=SQRT(zu10m(i)*zu10m(i)+zv10m(i)*zv10m(i)) 1139 ENDDO 1140 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1141 CALL histwrite(nid_mth,"wind10m",itau_w,zx_tmp_2d, 1142 $ iim*jjmp1,ndex2d) 1143 c 1144 DO i = 1, klon 1145 zx_tmp_fi2d(i) = pctsrf(i,is_sic) 1146 ENDDO 1147 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1148 CALL histwrite(nid_mth,"sicf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1149 c 1150 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 1151 c CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d, 1152 c . iim*jjmp1*klev,ndex3d) 1153 c 1154 c ENSEMBLES END 1155 c 1156 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zq2m,zx_tmp_2d) 1157 CALL histwrite(nid_mth,"q2m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1158 c 1159 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zu10m,zx_tmp_2d) 1160 CALL histwrite(nid_mth,"u10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1161 C 1162 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zv10m,zx_tmp_2d) 1163 CALL histwrite(nid_mth,"v10m",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1164 C 1165 DO i = 1, klon 1166 zx_tmp_fi2d(i) = paprs(i,1) 1167 ENDDO 1168 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1169 CALL histwrite(nid_mth,"psol",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1170 c 1171 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxqsurf,zx_tmp_2d) 1172 CALL histwrite(nid_mth,"qsurf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1173 c 1174 if (.not. ok_veget) then 1175 CALL gr_fi_ecrit(1, klon,iim,jjmp1, qsol,zx_tmp_2d) 1176 CALL histwrite(nid_mth,"qsol",itau_w,zx_tmp_2d,iim*jjmp1 1177 $ ,ndex2d) 1178 endif 1179 c 1180 DO i = 1, klon 1181 zx_tmp_fi2d(i) = rain_fall(i) + snow_fall(i) 1182 ENDDO 1183 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1184 CALL histwrite(nid_mth,"precip",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1185 c 1186 CALL gr_fi_ecrit(1, klon,iim,jjmp1, nday_rain,zx_tmp_2d) 1187 CALL histwrite(nid_mth,"ndayrain",itau_w,zx_tmp_2d, 1188 $ iim*jjmp1,ndex2d) 1189 c 1190 DO i = 1, klon 1191 zx_tmp_fi2d(i) = rain_lsc(i) + snow_lsc(i) 1192 ENDDO 1193 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1194 CALL histwrite(nid_mth,"plul",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1195 c 1196 DO i = 1, klon 1197 zx_tmp_fi2d(i) = rain_con(i) + snow_con(i) 1198 ENDDO 1199 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1200 CALL histwrite(nid_mth,"pluc",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1201 c 1202 CALL gr_fi_ecrit(1, klon,iim,jjmp1, snow_fall,zx_tmp_2d) 1203 CALL histwrite(nid_mth,"snowf",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1204 c 1205 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zsnow_mass,zx_tmp_2d) 1206 c CALL histwrite(nid_mth,"snow_mass",itau_w,zx_tmp_2d,iim*jjmp1, 1207 c . ndex2d) 1208 c 1209 CALL gr_fi_ecrit(1, klon,iim,jjmp1, evap,zx_tmp_2d) 1210 CALL histwrite(nid_mth,"evap",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1211 c 1212 CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw,zx_tmp_2d) 1213 CALL histwrite(nid_mth,"tops",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1214 c 1215 CALL gr_fi_ecrit(1, klon,iim,jjmp1, topsw0,zx_tmp_2d) 1216 CALL histwrite(nid_mth,"tops0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1217 c 1218 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw,zx_tmp_2d) 1219 CALL histwrite(nid_mth,"topl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1220 c 1221 CALL gr_fi_ecrit(1, klon,iim,jjmp1, toplw0,zx_tmp_2d) 1222 CALL histwrite(nid_mth,"topl0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1223 c 1224 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, klevp1 ) 1225 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1226 CALL histwrite(nid_mth, "SWupTOA",itau_w,zx_tmp_2d, 1227 . iim*jjmp1,ndex2d) 1228 c 1229 c 1230 zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, klevp1 ) 1231 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1232 CALL histwrite(nid_mth, "SWupTOAclr",itau_w,zx_tmp_2d, 1233 . iim*jjmp1,ndex2d) 1234 c 1235 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, klevp1 ) 1236 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1237 CALL histwrite(nid_mth, "SWdnTOA",itau_w,zx_tmp_2d, 1238 . iim*jjmp1,ndex2d) 1239 c 1240 zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, klevp1 ) 1241 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1242 CALL histwrite(nid_mth, "SWdnTOAclr",itau_w,zx_tmp_2d, 1243 . iim*jjmp1,ndex2d) 1244 c 1245 CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200,zx_tmp_2d) 1246 CALL histwrite(nid_mth,"SWup200",itau_w,zx_tmp_2d, 1247 $ iim*jjmp1,ndex2d) 1248 c 1249 CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWup200clr,zx_tmp_2d) 1250 CALL histwrite(nid_mth,"SWup200clr",itau_w,zx_tmp_2d, 1251 $ iim*jjmp1,ndex2d) 1252 c 1253 CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200,zx_tmp_2d) 1254 CALL histwrite(nid_mth,"SWdn200",itau_w,zx_tmp_2d, 1255 $ iim*jjmp1,ndex2d) 1256 c 1257 CALL gr_fi_ecrit(1, klon,iim,jjmp1, SWdn200clr,zx_tmp_2d) 1258 CALL histwrite(nid_mth,"SWdn200clr",itau_w,zx_tmp_2d, 1259 $ iim*jjmp1,ndex2d) 1260 c 1261 CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200,zx_tmp_2d) 1262 CALL histwrite(nid_mth,"LWup200",itau_w,zx_tmp_2d, 1263 $ iim*jjmp1,ndex2d) 1264 c 1265 CALL gr_fi_ecrit(1, klon,iim,jjmp1, LWup200clr,zx_tmp_2d) 1266 CALL histwrite(nid_mth,"LWup200clr",itau_w,zx_tmp_2d, 1267 $ iim*jjmp1,ndex2d) 1268 c 1269 zx_tmp_fi2d(1:klon)=-1*LWdn200(1:klon) 1270 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1271 CALL histwrite(nid_mth,"LWdn200",itau_w,zx_tmp_2d, 1272 $ iim*jjmp1,ndex2d) 1273 c 1274 zx_tmp_fi2d(1:klon)=-1*LWdn200clr(1:klon) 1275 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1276 CALL histwrite(nid_mth,"LWdn200clr",itau_w,zx_tmp_2d, 1277 $ iim*jjmp1,ndex2d) 1278 c 1279 c200 END 1280 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw,zx_tmp_2d) 1281 CALL histwrite(nid_mth,"sols",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1282 c 1283 CALL gr_fi_ecrit(1, klon,iim,jjmp1, solsw0,zx_tmp_2d) 1284 CALL histwrite(nid_mth,"sols0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1285 c 1286 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw,zx_tmp_2d) 1287 CALL histwrite(nid_mth,"soll",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1288 c 1289 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollw0,zx_tmp_2d) 1290 CALL histwrite(nid_mth,"soll0",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1291 c 1292 c zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, 1) 1293 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 ) 1294 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1295 CALL histwrite(nid_mth, "SWupSFC",itau_w,zx_tmp_2d, 1296 . iim*jjmp1,ndex2d) 1297 c 1298 c zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, 1) 1299 zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 ) 1300 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1301 CALL histwrite(nid_mth, "SWupSFCclr",itau_w,zx_tmp_2d, 1302 . iim*jjmp1,ndex2d) 1303 c 1304 c zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, 1) 1305 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 ) 1306 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1307 CALL histwrite(nid_mth, "SWdnSFC",itau_w,zx_tmp_2d, 1308 . iim*jjmp1,ndex2d) 1309 c 1310 c zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, 1) 1311 zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 ) 1312 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1313 CALL histwrite(nid_mth, "SWdnSFCclr",itau_w,zx_tmp_2d, 1314 . iim*jjmp1,ndex2d) 1315 c 1316 cIM 080904 zx_tmp_fi2d(1:klon)=sollw(1:klon)+sollwdown(1:klon) 1317 cIM 130904 zx_tmp_fi2d(1:klon)=sollw(1:klon)-sollwdown(1:klon) 1318 zx_tmp_fi2d(1:klon)=sollwdown(1:klon)-sollw(1:klon) 1319 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 1320 CALL histwrite(nid_mth,"LWupSFC",itau_w,zx_tmp_2d,iim*jjmp1, 1321 . ndex2d) 1322 c 1323 DO i=1, klon 1324 sollwdownclr(i)=-1.*lwdn0(i,1) 1325 ENDDO !i=1, klon 1326 c 1327 cIM 080904 zx_tmp_fi2d(1:klon)=sollw0(1:klon)+sollwdownclr(1:klon) 1328 cIM 130904 zx_tmp_fi2d(1:klon)=sollw0(1:klon)-sollwdownclr(1:klon) 1329 zx_tmp_fi2d(1:klon)=sollwdownclr(1:klon)-sollw0(1:klon) 1330 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d, zx_tmp_2d) 1331 CALL histwrite(nid_mth,"LWupSFCclr",itau_w,zx_tmp_2d,iim*jjmp1, 1332 . ndex2d) 1333 c 1334 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdown,zx_tmp_2d) 1335 CALL histwrite(nid_mth,"LWdnSFC",itau_w,zx_tmp_2d,iim*jjmp1, 1336 . ndex2d) 1337 c 1338 c DO i=1, klon 1339 cIM 08004 sollwdownclr(i)=lwdn0(i,1) 1340 c sollwdownclr(i)=-1.*lwdn0(i,1) 1341 c ENDDO !i=1, klon 1342 c 1343 CALL gr_fi_ecrit(1, klon,iim,jjmp1, sollwdownclr,zx_tmp_2d) 1344 CALL histwrite(nid_mth,"LWdnSFCclr",itau_w,zx_tmp_2d, 1345 $ iim*jjmp1,ndex2d) 1346 c 1347 CALL gr_fi_ecrit(1, klon,iim,jjmp1, bils,zx_tmp_2d) 1348 CALL histwrite(nid_mth,"bils",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1349 c 1350 zx_tmp_fi2d(1:klon)=-1*sens(1:klon) 1351 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, sens,zx_tmp_2d) 1352 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1353 CALL histwrite(nid_mth,"sens",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1354 c 1355 CALL gr_fi_ecrit(1, klon,iim,jjmp1, fder,zx_tmp_2d) 1356 CALL histwrite(nid_mth,"fder",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1357 c 1358 c 1359 c DO i = 1, klon 1360 c zx_tmp_fi2d(i) = fluxu(i,1) 1361 c ENDDO 1362 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1363 c CALL histwrite(nid_mth,"frtu",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1364 c 1365 c DO i = 1, klon 1366 c zx_tmp_fi2d(i) = fluxv(i,1) 1367 c ENDDO 1368 c CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1369 c CALL histwrite(nid_mth,"frtv",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1370 c 1371 c 1372 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxffonte,zx_tmp_2d) 1373 CALL histwrite(nid_mth,"ffonte",itau_w,zx_tmp_2d,iim*jjmp1, 1374 $ ndex2d) 1375 c 1376 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zxfqcalving,zx_tmp_2d) 1377 CALL histwrite(nid_mth,"fqcalving",itau_w,zx_tmp_2d,iim*jjmp1, 1378 $ ndex2d) 1379 c 1380 DO nsrf = 1, nbsrf 1381 zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf) 1382 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1383 CALL histwrite(nid_mth,"taux_"//clnsurf(nsrf),itau_w, 1384 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1385 C 1386 zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf) 1387 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1388 CALL histwrite(nid_mth,"tauy_"//clnsurf(nsrf),itau_w, 1389 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1390 ENDDO 1391 c 1392 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, is_oce)*100. 1393 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1394 CALL histwrite(nid_mth,"pourc_"//clnsurf(is_oce),itau_w, 1395 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1396 c 1397 zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, is_oce) 1398 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 1399 CALL histwrite(nid_mth,"fract_"//clnsurf(is_oce),itau_w, 1400 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1401 c 1402 DO nsrf = 1, nbsrf 1403 CYYY 1404 C 1405 zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf) 1406 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1407 CALL histwrite(nid_mth,"tsol_"//clnsurf(nsrf),itau_w, 1408 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1409 C 1410 zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf) 1411 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1412 CALL histwrite(nid_mth,"sens_"//clnsurf(nsrf),itau_w, 1413 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1414 C 1415 zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf) 1416 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1417 CALL histwrite(nid_mth,"lat_"//clnsurf(nsrf),itau_w, 1418 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1419 C 1420 zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf) 1421 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1422 CALL histwrite(nid_mth,"flw_"//clnsurf(nsrf),itau_w, 1423 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1424 c 1425 zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf) 1426 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1427 CALL histwrite(nid_mth,"fsw_"//clnsurf(nsrf),itau_w, 1428 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1429 C 1430 zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf) 1431 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1432 CALL histwrite(nid_mth,"wbils_"//clnsurf(nsrf),itau_w, 1433 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1434 C 1435 IF(1.EQ.0) THEN 1436 C 1437 zx_tmp_fi2d(1:klon) = fevap(1:klon,nsrf)*pctsrf(1:klon,nsrf) 1438 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1439 CALL histwrite(nid_mth,"evapour_"//clnsurf(nsrf),itau_w, 1440 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1441 C 1442 zx_tmp_fi2d(1:klon) = (rain_fall(1:klon) + snow_fall(1:klon)) 1443 $ *pctsrf(1:klon,nsrf) 1444 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1445 CALL histwrite(nid_mth,"prepour_"//clnsurf(nsrf),itau_w, 1446 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1447 C 1448 ENDIF !(1.EQ.0) THEN 1449 C 1450 END DO 1451 c 1452 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragm,zx_tmp_2d) 1453 CALL histwrite(nid_mth,"cdrm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1454 c 1455 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cdragh,zx_tmp_2d) 1456 CALL histwrite(nid_mth,"cdrh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1457 c 1458 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldl,zx_tmp_2d) 1459 CALL histwrite(nid_mth,"cldl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1460 c 1461 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldm,zx_tmp_2d) 1462 CALL histwrite(nid_mth,"cldm",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1463 c 1464 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldh,zx_tmp_2d) 1465 CALL histwrite(nid_mth,"cldh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1466 c 1467 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldt*100.,zx_tmp_2d) 1468 CALL histwrite(nid_mth,"cldt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1469 c 1470 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cldq,zx_tmp_2d) 1471 CALL histwrite(nid_mth,"cldq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1472 c 1473 zx_tmp_fi2d(1:klon) = flwp(1:klon) 1474 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1475 CALL histwrite(nid_mth,"lwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1476 c 1477 zx_tmp_fi2d(1:klon) = fiwp(1:klon) 1478 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1479 CALL histwrite(nid_mth,"iwp",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1480 c 1481 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ue,zx_tmp_2d) 1482 CALL histwrite(nid_mth,"ue",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1483 c 1484 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ve,zx_tmp_2d) 1485 CALL histwrite(nid_mth,"ve",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1486 c 1487 CALL gr_fi_ecrit(1, klon,iim,jjmp1, uq,zx_tmp_2d) 1488 CALL histwrite(nid_mth,"uq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1489 c 1490 CALL gr_fi_ecrit(1, klon,iim,jjmp1, vq,zx_tmp_2d) 1491 CALL histwrite(nid_mth,"vq",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1492 cKE43 1493 IF (iflag_con.GE.3) THEN ! sb 1494 c 1495 CALL gr_fi_ecrit(1, klon,iim,jjmp1, cape,zx_tmp_2d) 1496 CALL histwrite(nid_mth,"cape",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1497 c 1498 CALL gr_fi_ecrit(1, klon,iim,jjmp1,pbase,zx_tmp_2d) 1499 CALL histwrite(nid_mth,"pbase",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1500 c 1501 CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_pct,zx_tmp_2d) 1502 CALL histwrite(nid_mth,"ptop",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1503 c 1504 CALL gr_fi_ecrit(1, klon,iim,jjmp1,ema_cbmf,zx_tmp_2d) 1505 CALL histwrite(nid_mth,"fbase",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1506 c 1507 c34EK 1508 c 1509 CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d) 1510 CALL histwrite(nid_mth,"prw",itau_w,zx_tmp_2d, 1511 . iim*jjmp1,ndex2d) 1512 c 1513 ENDIF !iflag_con.GE.3 1514 c 1515 cIM cf. AM 081204 BEG 1516 cHBTM2 1517 c 1518 c 1519 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblh,zx_tmp_2d) 1520 CALL histwrite(nid_mth,"s_pblh",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1521 c 1522 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_pblt,zx_tmp_2d) 1523 CALL histwrite(nid_mth,"s_pblt",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1524 c 1525 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_lcl,zx_tmp_2d) 1526 CALL histwrite(nid_mth,"s_lcl",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1527 c 1528 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_capCL,zx_tmp_2d) 1529 CALL histwrite(nid_mth,"s_capCL",itau_w,zx_tmp_2d,iim*jjmp1, 1530 . ndex2d) 1531 c 1532 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_oliqCL,zx_tmp_2d) 1533 CALL histwrite(nid_mth,"s_oliqCL",itau_w,zx_tmp_2d,iim*jjmp1, 1534 . ndex2d) 1535 c 1536 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_cteiCL,zx_tmp_2d) 1537 CALL histwrite(nid_mth,"s_cteiCL",itau_w,zx_tmp_2d,iim*jjmp1, 1538 . ndex2d) 1539 c 1540 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_therm,zx_tmp_2d) 1541 CALL histwrite(nid_mth,"s_therm",itau_w,zx_tmp_2d,iim*jjmp1, 1542 . ndex2d) 1543 c 1544 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb1,zx_tmp_2d) 1545 CALL histwrite(nid_mth,"s_trmb1",itau_w,zx_tmp_2d,iim*jjmp1, 1546 . ndex2d) 1547 c 1548 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb2,zx_tmp_2d) 1549 CALL histwrite(nid_mth,"s_trmb2",itau_w,zx_tmp_2d,iim*jjmp1, 1550 . ndex2d) 1551 c 1552 CALL gr_fi_ecrit(1, klon,iim,jjmp1, s_trmb3,zx_tmp_2d) 1553 CALL histwrite(nid_mth,"s_trmb3",itau_w,zx_tmp_2d,iim*jjmp1, 1554 . ndex2d) 1555 c 1556 cIM cf. AM 081204 END 1557 c 1558 c Champs interpolles sur des niveaux de pression 1559 c DO k=1, nlevENS 1560 DO k=1, nlevSTD 1561 c 1562 c bb=clevSTD(k) 1563 c 1564 c IF(k.GE.2) THEN 1565 IF(k.GE.2.AND.k.LE.12) bb2=clevSTD(k) 1566 IF(k.GE.13.AND.k.LE.17) bb3=clevSTD(k) 1567 c aa=clevSTD(k) 1568 c bb=aa(1:lnblnk1(aa)) 1569 c ENDIF 1570 c 1571 IF(bb2.EQ."850".OR.bb2.EQ."700" 1572 $ .OR.bb2.EQ."500".OR.bb2.EQ."200") THEN 1573 c 1574 CALL gr_fi_ecrit(1, klon,iim,jjmp1,usumSTD(:,k,2),zx_tmp_2d) 1575 CALL histwrite(nid_mth,"u"//bb2,itau_w,zx_tmp_2d, 1576 $ iim*jjmp1,ndex2d) 1577 c 1578 CALL gr_fi_ecrit(1, klon,iim,jjmp1,vsumSTD(:,k,2),zx_tmp_2d) 1579 CALL histwrite(nid_mth,"v"//bb2,itau_w,zx_tmp_2d, 1580 $ iim*jjmp1,ndex2d) 1581 c 1582 CALL gr_fi_ecrit(1, klon,iim,jjmp1,wsumSTD(:,k,2),zx_tmp_2d) 1583 CALL histwrite(nid_mth,"w"//bb2,itau_w,zx_tmp_2d, 1584 $ iim*jjmp1,ndex2d) 1585 c 1586 CALL gr_fi_ecrit(1, klon,iim,jjmp1,phisumSTD(:,k,2),zx_tmp_2d) 1587 CALL histwrite(nid_mth,"phi"//bb2,itau_w,zx_tmp_2d, 1588 $ iim*jjmp1,ndex2d) 1589 c 1590 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700" 1591 ENDDO !nlevSTD 1592 c 1593 DO i=1, klon 1594 IF (pctsrf(i,is_oce).GT.epsfra) THEN 1595 zx_tmp_fi2d(i) = fluxo(i) 1596 ELSE 1597 zx_tmp_fi2d(i) = 1.E+20 1598 ENDIF 1599 ENDDO 1600 c 1601 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1602 CALL histwrite(nid_mth,"fluxo",itau_w,zx_tmp_2d, 1603 . iim*jjmp1,ndex2d) 1604 c 1605 DO i=1, klon 1606 IF (pctsrf(i,is_sic).GT.epsfra) THEN 1607 zx_tmp_fi2d(i) = fluxg(i) 1608 ELSE 1609 zx_tmp_fi2d(i) = 1.E+20 1610 ENDIF 1611 ENDDO 1612 c 1613 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1614 CALL histwrite(nid_mth,"fluxg",itau_w,zx_tmp_2d, 1615 . iim*jjmp1,ndex2d) 1616 c 1617 IF (OCEAN.EQ.'force ') THEN 1618 c 1619 DO i=1, klon 1620 IF((pctsrf(i,is_oce).GT.epsfra).OR. 1621 . (pctsrf(i,is_sic).GT.epsfra)) THEN 1622 zx_tmp_fi2d(i) = (radsol(i) + fluxo(i))*pctsrf(i,is_oce)+ 1623 . fluxg(i)*pctsrf(i,is_sic) 1624 ELSE 1625 zx_tmp_fi2d(i) = 1.E+20 1626 ENDIF 1627 ENDDO 1628 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1629 CALL histwrite(nid_mth,"lmt_bils",itau_w, 1630 . zx_tmp_2d,iim*jjmp1,ndex2d) 1631 c 1632 ELSE IF (OCEAN.EQ.'slab ') THEN 1633 c 1634 c 1635 DO i=1, klon 1636 IF((pctsrf(i,is_oce).GT.epsfra).OR. 1637 . (pctsrf(i,is_sic).GT.epsfra)) THEN 1638 zx_tmp_fi2d(i) = (radsol(i) + fluxo(i))*pctsrf(i,is_oce)+ 1639 . fluxg(i)*pctsrf(i,is_sic) 1640 ELSE 1641 zx_tmp_fi2d(i) = 1.E+20 1642 ENDIF 1643 ENDDO 1644 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1645 CALL histwrite(nid_mth,"slab_bils",itau_w, 1646 . zx_tmp_2d,iim*jjmp1,ndex2d) 1647 c 1648 DO i=1, klon 1649 IF(pctsrf(i,is_oce).GT.epsfra.OR. 1650 $ pctsrf(i,is_sic).GT.epsfra) THEN 1651 zx_tmp_fi2d(i)=tslab(i) 1652 ELSE 1653 zx_tmp_fi2d(i) = 1.E+20 1654 ENDIF 1655 ENDDO !i=1, klon 1656 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d,zx_tmp_2d) 1657 CALL histwrite(nid_mth,"tslab",itau_w,zx_tmp_2d, 1658 . iim*jjmp1,ndex2d) 1659 c 1660 CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice,zx_tmp_2d) 1661 CALL histwrite(nid_mth,"seaice",itau_w,zx_tmp_2d, 1662 . iim*jjmp1,ndex2d) 1663 c 1664 CALL gr_fi_ecrit(1, klon,iim,jjmp1, seaice/1000.,zx_tmp_2d) 1665 CALL histwrite(nid_mth,"siceh",itau_w,zx_tmp_2d, 1666 . iim*jjmp1,ndex2d) 1667 c 1668 ENDIF !OCEAN.EQ.force/slab 1669 c 1670 ENDIF !lev_histmth.GE.1 1671 c 1672 IF(lev_histmth.GE.2) THEN 1673 c 1674 c Champs 3D: 1675 C 1676 c 1677 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, flwc,zx_tmp_3d) 1678 CALL histwrite(nid_mth,"lwcon",itau_w,zx_tmp_3d, 1679 . iim*jjmp1*klev,ndex3d) 1680 c 1681 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, fiwc,zx_tmp_3d) 1682 CALL histwrite(nid_mth,"iwcon",itau_w,zx_tmp_3d, 1683 . iim*jjmp1*klev,ndex3d) 1684 c 1685 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, t_seri, zx_tmp_3d) 1686 CALL histwrite(nid_mth,"temp",itau_w,zx_tmp_3d, 1687 . iim*jjmp1*klev,ndex3d) 1688 c 1689 c#ifdef histmthNMC 1690 c#include "write_histmthNMC.h" 1691 c#endif 1692 c 1693 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,ivap), zx_tmp_3d) 1694 CALL histwrite(nid_mth,"ovap",itau_w,zx_tmp_3d, 1695 . iim*jjmp1*klev,ndex3d) 1696 c 1697 c zx_tmp_fi3d(1:klon,1:klev)=qx(1:klon,1:klev,ivap)/ 1698 c . (1-qx(1:klon,1:klev,ivap)) 1699 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d) 1700 c CALL histwrite(nid_mth,"wvap",itau_w,zx_tmp_3d, 1701 c . iim*jjmp1*klev,ndex3d) 1702 c 1703 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zphi, zx_tmp_3d) 1704 CALL histwrite(nid_mth,"geop",itau_w,zx_tmp_3d, 1705 . iim*jjmp1*klev,ndex3d) 1706 c 1707 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, u_seri, zx_tmp_3d) 1708 CALL histwrite(nid_mth,"vitu",itau_w,zx_tmp_3d, 1709 . iim*jjmp1*klev,ndex3d) 1710 c 1711 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, v_seri, zx_tmp_3d) 1712 CALL histwrite(nid_mth,"vitv",itau_w,zx_tmp_3d, 1713 . iim*jjmp1*klev,ndex3d) 1714 c 1715 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, omega, zx_tmp_3d) 1716 CALL histwrite(nid_mth,"vitw",itau_w,zx_tmp_3d, 1717 . iim*jjmp1*klev,ndex3d) 1718 c 1719 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, pplay, zx_tmp_3d) 1720 CALL histwrite(nid_mth,"pres",itau_w,zx_tmp_3d, 1721 . iim*jjmp1*klev,ndex3d) 1722 c 1723 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, cldfra*100., zx_tmp_3d) 1724 CALL histwrite(nid_mth,"rneb",itau_w,zx_tmp_3d, 1725 . iim*jjmp1*klev,ndex3d) 1726 c 1727 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, rnebcon, zx_tmp_3d) 1728 CALL histwrite(nid_mth,"rnebcon",itau_w,zx_tmp_3d, 1729 . iim*jjmp1*klev,ndex3d) 1730 c 1731 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_rh, zx_tmp_3d) 1732 CALL histwrite(nid_mth,"rhum",itau_w,zx_tmp_3d, 1733 . iim*jjmp1*klev,ndex3d) 1734 c 1735 DO k=1, klev 1736 DO i=1, klon 1737 cIM 151004 zx_tmp_fi3d(i,k)=MAX(wo(i,k),1.0e-12)*RG/46.6968 1738 c $ /(paprs(i,k)-paprs(i,k+1)) 1739 c $ *(paprs(i,1)/101325.0) 1740 c zx_tmp2_fi3d(i,k)=MAX(wo(i,k)*1.0e+6,1.0e-6)*RG/46.6968 1741 zx_tmp_fi3d(i,k)=wo(i,k)*RG/46.6968 1742 $ /(paprs(i,k)-paprs(i,k+1)) 1743 $ *(paprs(i,1)/101325.0) 1744 ENDDO !i 1745 ENDDO !k 1746 c 1747 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1, wo, zx_tmp_3d) 1748 c CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp2_fi3d,zx_tmp_3d) 1749 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1750 CALL histwrite(nid_mth,"ozone",itau_w,zx_tmp_3d, 1751 . iim*jjmp1*klev,ndex3d) 1752 c 1753 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t, zx_tmp_3d) 1754 CALL histwrite(nid_mth,"dtphy",itau_w,zx_tmp_3d, 1755 . iim*jjmp1*klev,ndex3d) 1756 c 1757 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_qx(:,:,ivap), 1758 . zx_tmp_3d) 1759 CALL histwrite(nid_mth,"dqphy",itau_w,zx_tmp_3d, 1760 . iim*jjmp1*klev,ndex3d) 1761 c 1762 ENDIF !lev_histmth.GE.2 1763 c 1764 IF(lev_histmth.GE.3) THEN 1765 c 1766 DO nsrf=1, nbsrf 1767 c 1768 zx_tmp_fi2d(1 : klon) = falbe( 1 : klon, nsrf) 1769 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1770 CALL histwrite(nid_mth,"albe_"//clnsurf(nsrf),itau_w, 1771 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1772 C 1773 zx_tmp_fi2d(1 : klon) = frugs( 1 : klon, nsrf) 1774 CALL gr_fi_ecrit(1, klon,iim,jjmp1, zx_tmp_fi2d , zx_tmp_2d) 1775 CALL histwrite(nid_mth,"rugs_"//clnsurf(nsrf),itau_w, 1776 $ zx_tmp_2d,iim*jjmp1,ndex2d) 1777 c 1778 zx_tmp_fi2d(1 : klon) = agesno( 1 : klon, nsrf) 1779 CALL gr_fi_ecrit(1, klon,iim,jjmp1, agesno,zx_tmp_2d) 1780 CALL histwrite(nid_mth,"ages_"//clnsurf(nsrf),itau_w 1781 $ ,zx_tmp_2d,iim*jjmp1,ndex2d) 1782 c 1783 ENDDO !nsrf=1, nbsrf 1784 c 1785 CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsol,zx_tmp_2d) 1786 CALL histwrite(nid_mth,"albs",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1787 c 1788 CALL gr_fi_ecrit(1, klon,iim,jjmp1, albsollw,zx_tmp_2d) 1789 CALL histwrite(nid_mth,"albslw",itau_w,zx_tmp_2d,iim*jjmp1,ndex2d) 1790 c 1791 ENDIF !lev_histmth.GE.3 1792 c 1793 c 1794 IF(lev_histmth.GE.4) THEN 1795 c 1796 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, clwcon0, zx_tmp_3d) 1797 CALL histwrite(nid_mth,"clwcon",itau_w,zx_tmp_3d, 1798 . iim*jjmp1*klev,ndex3d) 1799 c 1800 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, Ma, zx_tmp_3d) 1801 CALL histwrite(nid_mth,"Ma",itau_w,zx_tmp_3d, 1802 . iim*jjmp1*klev,ndex3d) 1803 c 1804 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, upwd, zx_tmp_3d) 1805 CALL histwrite(nid_mth,"upwd",itau_w,zx_tmp_3d, 1806 . iim*jjmp1*klev,ndex3d) 1807 c 1808 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd, zx_tmp_3d) 1809 CALL histwrite(nid_mth,"dnwd",itau_w,zx_tmp_3d, 1810 . iim*jjmp1*klev,ndex3d) 1811 c 1812 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, dnwd0, zx_tmp_3d) 1813 CALL histwrite(nid_mth,"dnwd0",itau_w,zx_tmp_3d, 1814 . iim*jjmp1*klev,ndex3d) 1815 c 1816 c 1817 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_t_dyn, zx_tmp_3d) 1818 CALL histwrite(nid_mth,"dtdyn",itau_w,zx_tmp_3d, 1819 . iim*jjmp1*klev,ndex3d) 1820 c 1821 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, d_q_dyn, zx_tmp_3d) 1822 CALL histwrite(nid_mth,"dqdyn",itau_w,zx_tmp_3d, 1823 . iim*jjmp1*klev,ndex3d) 1824 c 1825 cIM: 101003 : K/30min ==> K/s 1826 c 1827 zx_tmp_fi3d(1:klon,1:klev)=d_q_con(1:klon,1:klev)/pdtphys 1828 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1829 CALL histwrite(nid_mth,"dqcon",itau_w,zx_tmp_3d, 1830 . iim*jjmp1*klev,ndex3d) 1831 c 1832 cIM: 101003 : K/30min ==> K/s 1833 zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+ 1834 . d_t_eva(1:klon,1:klev))/pdtphys 1835 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zx_tmp_fi3d, zx_tmp_3d) 1836 CALL histwrite(nid_mth,"dtlschr",itau_w,zx_tmp_3d, 1837 . iim*jjmp1*klev,ndex3d) 1838 c 1839 zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys 1840 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1841 CALL histwrite(nid_mth,"dqlsc",itau_w,zx_tmp_3d, 1842 . iim*jjmp1*klev,ndex3d) 1843 c 1844 cIM: 101003 : K/30min ==> K/s 1845 zx_tmp_fi3d(1:klon,1:klev)=d_t_vdf(1:klon,1:klev)/pdtphys 1846 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1847 CALL histwrite(nid_mth,"dtvdf",itau_w,zx_tmp_3d, 1848 . iim*jjmp1*klev,ndex3d) 1849 c 1850 zx_tmp_fi3d(1:klon,1:klev)=d_q_vdf(1:klon,1:klev)/pdtphys 1851 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1852 CALL histwrite(nid_mth,"dqvdf",itau_w,zx_tmp_3d, 1853 . iim*jjmp1*klev,ndex3d) 1854 c 1855 cIM: 101003 : K/30min ==> K/s 1856 zx_tmp_fi3d(1:klon,1:klev)=d_t_eva(1:klon,1:klev)/pdtphys 1857 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1858 CALL histwrite(nid_mth,"dteva",itau_w,zx_tmp_3d, 1859 . iim*jjmp1*klev,ndex3d) 1860 c 1861 zx_tmp_fi3d(1:klon,1:klev)=d_q_eva(1:klon,1:klev)/pdtphys 1862 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1863 CALL histwrite(nid_mth,"dqeva",itau_w,zx_tmp_3d, 1864 . iim*jjmp1*klev,ndex3d) 1865 c 1866 zpt_conv = 0. 1867 where (ptconv) zpt_conv = 1. 1868 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, zpt_conv, zx_tmp_3d) 1869 CALL histwrite(nid_mth,"ptconv",itau_w,zx_tmp_3d, 1870 . iim*(jjmp1)*klev,ndex3d) 1871 c 1872 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, ratqs, zx_tmp_3d) 1873 CALL histwrite(nid_mth,"ratqs",itau_w,zx_tmp_3d, 1874 . iim*(jjmp1)*klev,ndex3d) 1875 c 1876 zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys 1877 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1878 CALL histwrite(nid_mth,"dqajs",itau_w,zx_tmp_3d, 1879 . iim*jjmp1*klev,ndex3d) 1880 c 1881 cIM: 101003 : K/day ==> K/s 1882 zx_tmp_fi3d(1:klon,1:klev)=heat(1:klon,1:klev)/RDAY 1883 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1884 CALL histwrite(nid_mth,"dtswr",itau_w,zx_tmp_3d, 1885 . iim*jjmp1*klev,ndex3d) 1886 c 1887 cIM: 101003 : K/day ==> K/s 1888 zx_tmp_fi3d(1:klon,1:klev)=heat0(1:klon,1:klev)/RDAY 1889 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1890 CALL histwrite(nid_mth,"dtsw0",itau_w,zx_tmp_3d, 1891 . iim*jjmp1*klev,ndex3d) 1892 c 1893 cIM: 101003 : K/day ==> K/s 1894 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool(1:klon,1:klev)/RDAY 1895 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1896 CALL histwrite(nid_mth,"dtlwr",itau_w,zx_tmp_3d, 1897 . iim*jjmp1*klev,ndex3d) 1898 c 1899 cIM: 101003 : K/day ==> K/s 1900 zx_tmp_fi3d(1:klon,1:klev)=-1.*cool0(1:klon,1:klev)/RDAY 1901 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1902 CALL histwrite(nid_mth,"dtlw0",itau_w,zx_tmp_3d, 1903 . iim*jjmp1*klev,ndex3d) 1904 c 1905 cIM: 101003 : deja en K/s 1906 zx_tmp_fi3d(1:klon,1:klev)=d_t_ec(1:klon,1:klev) 1907 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1908 CALL histwrite(nid_mth,"dtec",itau_w,zx_tmp_3d, 1909 . iim*jjmp1*klev,ndex3d) 1910 c 1911 zx_tmp_fi3d(1:klon,1:klev)=d_u_vdf(1:klon,1:klev)/pdtphys 1912 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1913 CALL histwrite(nid_mth,"duvdf",itau_w,zx_tmp_3d, 1914 . iim*jjmp1*klev,ndex3d) 1915 c 1916 zx_tmp_fi3d(1:klon,1:klev)=d_v_vdf(1:klon,1:klev)/pdtphys 1917 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1918 CALL histwrite(nid_mth,"dvvdf",itau_w,zx_tmp_3d, 1919 . iim*jjmp1*klev,ndex3d) 1920 c 1921 IF (ok_orodr) THEN 1922 zx_tmp_fi3d(1:klon,1:klev)=d_u_oro(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,"duoro",itau_w,zx_tmp_3d, 1925 . iim*jjmp1*klev,ndex3d) 1926 c 1927 zx_tmp_fi3d(1:klon,1:klev)=d_v_oro(1:klon,1:klev)/pdtphys 1928 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1929 CALL histwrite(nid_mth,"dvoro",itau_w,zx_tmp_3d, 1930 . iim*jjmp1*klev,ndex3d) 1931 c 1932 ENDIF 1933 C 1934 IF (ok_orolf) THEN 1935 zx_tmp_fi3d(1:klon,1:klev)=d_u_lif(1:klon,1:klev)/pdtphys 1936 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1937 CALL histwrite(nid_mth,"dulif",itau_w,zx_tmp_3d, 1938 . iim*jjmp1*klev,ndex3d) 1939 c 1940 zx_tmp_fi3d(1:klon,1:klev)=d_v_lif(1:klon,1:klev)/pdtphys 1941 CALL gr_fi_ecrit(klev,klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 1942 CALL histwrite(nid_mth,"dvlif",itau_w,zx_tmp_3d, 1943 . iim*jjmp1*klev,ndex3d) 1944 ENDIF 1945 C 1946 IF (nqmax.GE.3) THEN 1947 DO iq=1,nqmax-2 1948 IF (iq.LE.99) THEN 1949 CALL gr_fi_ecrit(klev,klon,iim,jjmp1, qx(1,1,iq+2), zx_tmp_3d) 1950 WRITE(str2,'(i2.2)') iq 1951 CALL histwrite(nid_mth,"trac"//str2,itau_w,zx_tmp_3d, 1952 . iim*jjmp1*klev,ndex3d) 1953 ELSE 1954 PRINT*, "Trop de traceurs" 1955 CALL abort 1956 ENDIF 1957 ENDDO 1958 ENDIF 1959 c 1960 ENDIF !lev_histmth.GE.4 1961 c 1962 ENDIF !(type_run.EQ."AMIP") 776 1963 c 777 1964 if (ok_sync) then 778 1965 call histsync(nid_mth) 779 1966 endif 780 ENDIF 1967 c 1968 ENDIF !ok_mensuel -
LMDZ4/trunk/libf/phylmd/write_histmthNMC.h
r524 r644 5 5 IF (ok_mensuel) THEN 6 6 c 7 ndex2d = 0 8 ndex3d = 0 7 ndex3d = 0 8 itau_w = itau_phy + itap 9 ccc 10 c Champs interpolles sur des niveaux de pression du NMC 9 11 c 10 c Champs 2D: 12 c PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC 13 ccc 14 IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN 15 ccc 16 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,2), 17 $ zx_tmp_3d) 18 CALL histwrite(nid_nmc,"temp",itau_w,zx_tmp_3d, 19 $ iim*jjmp1*nlevSTD,ndex3d) 11 20 c 12 13 zsto = dtime 14 zout = dtime * ecrit_mth 15 itau_w = itau_phy + itap 16 17 i = NINT(zout/zsto) 21 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,2), 22 $ zx_tmp_3d) 23 CALL histwrite(nid_nmc,"phi",itau_w,zx_tmp_3d, 24 $ iim*jjmp1*nlevSTD,ndex3d) 18 25 c 19 c Champs interpolles sur des niveaux de pression du NMC 20 c110304 BEG 21 DO k=1, nlevSTD 26 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,2), 27 $ zx_tmp_3d) 28 CALL histwrite(nid_nmc,"q",itau_w,zx_tmp_3d, 29 $ iim*jjmp1*nlevSTD,ndex3d) 22 30 c 23 bb=clevSTD(k) 31 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,2), 32 $ zx_tmp_3d) 33 CALL histwrite(nid_nmc,"rh",itau_w,zx_tmp_3d, 34 $ iim*jjmp1*nlevSTD,ndex3d) 24 35 c 25 IF(k.GE.2) THEN 26 aa=clevSTD(k) 27 bb=aa(1:lnblnk1(aa)) 36 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,2), 37 $ zx_tmp_3d) 38 CALL histwrite(nid_nmc,"u",itau_w,zx_tmp_3d, 39 $ iim*jjmp1*nlevSTD,ndex3d) 40 c 41 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,2), 42 $ zx_tmp_3d) 43 CALL histwrite(nid_nmc,"v",itau_w,zx_tmp_3d, 44 $ iim*jjmp1*nlevSTD,ndex3d) 45 ccc 46 ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN 47 ccc 48 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,3), 49 $ zx_tmp_3d) 50 CALL histwrite(nid_nmc,"temp",itau_w,zx_tmp_3d, 51 $ iim*jjmp1*nlevSTD,ndex3d) 52 c 53 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,3), 54 $ zx_tmp_3d) 55 CALL histwrite(nid_nmc,"phi",itau_w,zx_tmp_3d, 56 $ iim*jjmp1*nlevSTD,ndex3d) 57 c 58 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,3), 59 $ zx_tmp_3d) 60 CALL histwrite(nid_nmc,"q",itau_w,zx_tmp_3d, 61 $ iim*jjmp1*nlevSTD,ndex3d) 62 c 63 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,3), 64 $ zx_tmp_3d) 65 CALL histwrite(nid_nmc,"rh",itau_w,zx_tmp_3d, 66 $ iim*jjmp1*nlevSTD,ndex3d) 67 c 68 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,3), 69 $ zx_tmp_3d) 70 CALL histwrite(nid_nmc,"u",itau_w,zx_tmp_3d, 71 $ iim*jjmp1*nlevSTD,ndex3d) 72 c 73 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,3), 74 $ zx_tmp_3d) 75 CALL histwrite(nid_nmc,"v",itau_w,zx_tmp_3d, 76 $ iim*jjmp1*nlevSTD,ndex3d) 77 c 78 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wsumSTD(:,:,3), 79 $ zx_tmp_3d) 80 CALL histwrite(nid_nmc,"w",itau_w,zx_tmp_3d, 81 $ iim*jjmp1*nlevSTD,ndex3d) 82 c 83 DO k=1, nlevSTD 84 DO i=1, klon 85 IF(tnondef(i,k,3).NE.1.E+20) THEN 86 zx_tmp_fi3d(i,k) = (100.*tnondef(i,k,3))/FLOAT(ecrit_hf2mth) 87 ELSE 88 zx_tmp_fi3d(i,k) = 1.E+20 28 89 ENDIF 90 ENDDO 91 ENDDO !k=1, nlevSTD 29 92 c 30 CALL gr_fi_ecrit(1, klon,iim,jjmp1, tlevSTD(:,k),zx_tmp_2d)31 CALL histwrite(nid_nmc,"t"//bb,itau_w,zx_tmp_2d,32 $ iim*jjmp1 ,ndex2d)93 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,zx_tmp_fi3d,zx_tmp_3d) 94 CALL histwrite(nid_nmc,"psbg",itau_w,zx_tmp_3d, 95 $ iim*jjmp1*nlevSTD,ndex3d) 33 96 c 34 CALL gr_fi_ecrit(1, klon,iim,jjmp1, philevSTD(:,k),zx_tmp_2d) 35 CALL histwrite(nid_nmc,"phi"//bb,itau_w,zx_tmp_2d, 36 $ iim*jjmp1,ndex2d) 97 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,uvsumSTD(:,:,3), 98 $ zx_tmp_3d) 99 CALL histwrite(nid_nmc,"uv",itau_w,zx_tmp_3d, 100 $ iim*jjmp1*nlevSTD,ndex3d) 37 101 c 38 CALL gr_fi_ecrit(1, klon,iim,jjmp1, qlevSTD(:,k),zx_tmp_2d) 39 CALL histwrite(nid_nmc,"q"//bb,itau_w,zx_tmp_2d, 40 $ iim*jjmp1,ndex2d) 102 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vqsumSTD(:,:,3), 103 $ zx_tmp_3d) 104 CALL histwrite(nid_nmc,"vq",itau_w,zx_tmp_3d, 105 $ iim*jjmp1*nlevSTD,ndex3d) 41 106 c 42 CALL gr_fi_ecrit(1, klon,iim,jjmp1, rhlevSTD(:,k),zx_tmp_2d) 43 CALL histwrite(nid_nmc,"rh"//bb,itau_w,zx_tmp_2d, 44 $ iim*jjmp1,ndex2d) 107 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vTsumSTD(:,:,3), 108 $ zx_tmp_3d) 109 CALL histwrite(nid_nmc,"vT",itau_w,zx_tmp_3d, 110 $ iim*jjmp1*nlevSTD,ndex3d) 45 111 c 46 CALL gr_fi_ecrit(1, klon,iim,jjmp1, ulevSTD(:,k),zx_tmp_2d) 47 CALL histwrite(nid_nmc,"u"//bb,itau_w,zx_tmp_2d, 48 $ iim*jjmp1,ndex2d) 112 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1, wqsumSTD(:,:,3), 113 $ zx_tmp_3d) 114 CALL histwrite(nid_nmc,"wq",itau_w,zx_tmp_3d, 115 $ iim*jjmp1*nlevSTD,ndex3d) 49 116 c 50 CALL gr_fi_ecrit(1, klon,iim,jjmp1, vlevSTD(:,k),zx_tmp_2d) 51 CALL histwrite(nid_nmc,"v"//bb,itau_w,zx_tmp_2d, 52 $ iim*jjmp1,ndex2d) 117 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vphisumSTD(:,:,3), 118 $ zx_tmp_3d) 119 CALL histwrite(nid_nmc,"vphi",itau_w,zx_tmp_3d, 120 $ iim*jjmp1*nlevSTD,ndex3d) 53 121 c 54 ENDDO !k=1, nlevSTD 55 ccc 56 c110304 END 122 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wTsumSTD(:,:,3), 123 $ zx_tmp_3d) 124 CALL histwrite(nid_nmc,"wT",itau_w,zx_tmp_3d, 125 $ iim*jjmp1*nlevSTD,ndex3d) 126 c 127 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,u2sumSTD(:,:,3), 128 $ zx_tmp_3d) 129 CALL histwrite(nid_nmc,"uxu",itau_w,zx_tmp_3d, 130 $ iim*jjmp1*nlevSTD,ndex3d) 131 c 132 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,v2sumSTD(:,:,3), 133 $ zx_tmp_3d) 134 CALL histwrite(nid_nmc,"vxv",itau_w,zx_tmp_3d, 135 $ iim*jjmp1*nlevSTD,ndex3d) 136 c 137 CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,T2sumSTD(:,:,3), 138 $ zx_tmp_3d) 139 CALL histwrite(nid_nmc,"TxT",itau_w,zx_tmp_3d, 140 $ iim*jjmp1*nlevSTD,ndex3d) 141 c 142 ENDIF !type_run 57 143 c 58 144 if (ok_sync) then -
LMDZ4/trunk/makegcm
r637 r644 729 729 \mv $libf/grid/dimensions90.tmp $libf/grid/dimensions90.h 730 730 endif 731 sed - e 's/^c/\!/' -e 's/^ s/ \&/' $libf/dyn3d/paramet.h >! $libf/dyn3d/paramet90.tmp731 sed -n -e 's/^c/\!/' -e '1 h' -e '2,$ H' -e '$ { x ; s/\n s/ \&\n \& /g ; p }' $libf/dyn3d/paramet.h >! $libf/dyn3d/paramet90.tmp 732 732 if ( ! -f $libf/dyn3d/paramet90.h || `diff $libf/dyn3d/paramet90.tmp $libf/dyn3d/paramet90.h | wc -w` ) then 733 733 \mv $libf/dyn3d/paramet90.tmp $libf/dyn3d/paramet90.h 734 endif 735 sed -n -e 's/^c/\!/' -e '1 h' -e '2,$ H' -e '$ { x ; s/\n \./ \&\n \& /g ; p }' $libf/dyn3d/control.h >! $libf/dyn3d/control.tmp 736 if ( ! -f $libf/dyn3d/control.inc || `diff $libf/dyn3d/control.tmp $libf/dyn3d/control.inc | wc -w` ) then 737 \mv $libf/dyn3d/control.tmp $libf/dyn3d/control.inc 734 738 endif 735 739 sed -e 's/^c/\!/' $libf/dyn3dpar/paramet.h >! $libf/dyn3dpar/paramet90.h
Note: See TracChangeset
for help on using the changeset viewer.