Changeset 467 for LMDZ.3.3/branches/rel-LF
- Timestamp:
- Aug 6, 2003, 4:50:49 PM (21 years ago)
- Location:
- LMDZ.3.3/branches/rel-LF/libf/phylmd
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ.3.3/branches/rel-LF/libf/phylmd/clcdrag.F90
r418 r467 40 40 ! 41 41 ! Quelques constantes et options: 42 REAL, PARAMETER :: ckap=0.35, cb=5.0, cc=5.0, cd=5.0, cepdu2=(0.1)**2 42 !!$PB REAL, PARAMETER :: ckap=0.35, cb=5.0, cc=5.0, cd=5.0, cepdu2=(0.1)**2 43 REAL, PARAMETER :: ckap=0.40, cb=5.0, cc=5.0, cd=5.0, cepdu2=(0.1)**2 43 44 ! 44 45 ! Variables locales : … … 68 69 zcdn(i) = (ckap/log(1.+zgeop(i)/(RG*rugos(i))))**2 69 70 ! 70 IF (zri(i) .ge. 0.) THEN ! situation stable 71 !!$ IF (zri(i) .ge. 0.) THEN ! situation stable 72 IF (zri(i) .gt. 0.) THEN ! situation stable 71 73 zri(i) = min(20.,zri(i)) 72 74 IF (.NOT.zxli) THEN … … 75 77 zcfm1(i) = zcdn(i) * FRIV 76 78 FRIH = AMAX1(1./ (1.+3.*CB*zri(i)*ZSCF), 0.1 ) 77 zcfh1(i) = zcdn(i) * FRIH 79 !!$ PB zcfh1(i) = zcdn(i) * FRIH 80 zcfh1(i) = 0.8 * zcdn(i) * FRIH 78 81 pcfm(i) = zcfm1(i) 79 82 pcfh(i) = zcfh1(i) … … 87 90 *(1.0+zgeop(i)/(RG*rugos(i))))) 88 91 zcfm2(i) = zcdn(i)*amax1((1.-2.0*cb*zri(i)*zucf),0.1) 89 zcfh2(i) = zcdn(i)*amax1((1.-3.0*cb*zri(i)*zucf),0.1) 92 !!$PB zcfh2(i) = zcdn(i)*amax1((1.-3.0*cb*zri(i)*zucf),0.1) 93 zcfh2(i) = 0.8 * zcdn(i)*amax1((1.-3.0*cb*zri(i)*zucf),0.1) 90 94 pcfm(i) = zcfm2(i) 91 95 pcfh(i) = zcfh2(i) … … 94 98 pcfh(i) = zcdn(i)* fins(zri(i)) 95 99 ENDIF 96 zcr = (0.0016/(zcdn(i)*SQRT(zdu2)))*ABS(ztvd-ztsolv)**(1./3.)97 IF(nsrf.EQ.is_oce) pcfh(i) = zcdn(i)*(1.0+zcr**1.25)**(1./1.25)100 zcr = (0.0016/(zcdn(i)*SQRT(zdu2)))*ABS(ztvd-ztsolv)**(1./3.) 101 IF(nsrf.EQ.is_oce) pcfh(i) =0.8* zcdn(i)*(1.0+zcr**1.25)**(1./1.25) 98 102 ENDIF 99 103 END DO -
LMDZ.3.3/branches/rel-LF/libf/phylmd/clesphys.h
r433 r467 6 6 REAL co2_ppm, solaire 7 7 REAL*8 RCO2, RCH4, RN2O, RCFC11, RCFC12 8 REAL*8 CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt 9 cIM simulateur ISCCP 10 INTEGER top_height, overlap 11 cIM seuils cdrm, cdrh 12 REAL cdmmax, cdhmax 8 13 9 14 COMMON/clesphys/cycle_diurne, soil_model, new_oliq, 10 15 , ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad, iflag_con 11 16 , , co2_ppm, solaire, RCO2, RCH4, RN2O, RCFC11, RCFC12 17 , , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt 18 , , top_height, overlap, cdmmax, cdhmax -
LMDZ.3.3/branches/rel-LF/libf/phylmd/clesphys.inc
r466 r467 6 6 REAL :: co2_ppm, solaire 7 7 DOUBLE PRECISION :: RCO2, RCH4, RN2O, RCFC11, RCFC12 8 DOUBLE PRECISION :: CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt 9 INTEGER :: top_height, overlap 10 REAL :: cdmmax, cdhmax 8 11 9 12 COMMON/clesphys/cycle_diurne, soil_model, new_oliq, & 10 13 & ok_orodr, ok_orolf, ok_limitvrai, nbapp_rad, iflag_con & 11 & , co2_ppm, solaire, RCO2, RCH4, RN2O, RCFC11, RCFC12 14 & , co2_ppm, solaire, RCO2, RCH4, RN2O, RCFC11, RCFC12 & 15 & , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt & 16 & , top_height, overlap, cdmmax, cdhmax -
LMDZ.3.3/branches/rel-LF/libf/phylmd/clmain.F
r458 r467 7 7 . jour, rmu0, 8 8 . ok_veget, ocean, npas, nexca, ts, 9 . soil_model, ftsoil,qsol,9 . soil_model,cdmmax, cdhmax, ftsoil,qsol, 10 10 . paprs,pplay,radsol,snow,qsurf,evap,albe,alblw, 11 11 . fluxlat, … … 140 140 c$$$ PB ajout pour soil 141 141 LOGICAL soil_model 142 cIM ajout seuils cdrm, cdrh 143 REAL cdmmax, cdhmax 142 144 REAL ftsoil(klon,nsoilmx,nbsrf) 143 145 REAL ytsoil(klon,nsoilmx) … … 481 483 ENDDO 482 484 c 483 c 485 cIM cf JLD : on seuille ycoefm et ycoefh 486 if (nsrf.eq.is_oce) then 487 do j=1,knon 488 c ycoefm(j,1)=min(ycoefm(j,1),1.1E-3) 489 ycoefm(j,1)=min(ycoefm(j,1),cdmmax) 490 c ycoefh(j,1)=min(ycoefh(j,1),1.1E-3) 491 ycoefh(j,1)=min(ycoefh(j,1),cdhmax) 492 enddo 493 endif 494 484 495 c calculer la diffusion des vitesses "u" et "v" 485 496 CALL clvent(knon,dtime,yu1,yv1,ycoefm,yt,yu,ypaprs,ypplay,ydelp, … … 493 504 494 505 c FH modif sur le cdrag temperature 495 do i=1,knon 496 ycoefh(i,1)=ycoefm(i,1)*0.8 497 enddo 506 c$$$PB : déplace dans clcdrag 507 c$$$ do i=1,knon 508 c$$$ ycoefh(i,1)=ycoefm(i,1)*0.8 509 c$$$ enddo 498 510 499 511 c calculer la diffusion de "q" et de "h" … … 520 532 IF (nsrf.EQ.is_oce) THEN 521 533 DO j = 1, knon 522 yrugm(j) = 0.018*ycoefm(j,1) * (yu1(j)**2+yv1(j)**2)/RG 534 yrugm(j) = 0.018*ycoefm(j,1) * (yu1(j)**2+yv1(j)**2)/RG 535 $ + 0.11*14e-6 / sqrt(ycoefm(j,1) * (yu1(j)**2+yv1(j)**2)) 523 536 yrugm(j) = MAX(1.5e-05,yrugm(j)) 524 537 ENDDO … … 1286 1299 REAL t_coup 1287 1300 PARAMETER (t_coup=273.15) 1301 cIM 1302 LOGICAL check 1303 PARAMETER (check=.false.) 1288 1304 c 1289 1305 c contre-gradient pour la chaleur sensible: Kelvin/metre … … 1388 1404 ENDDO 1389 1405 1390 c$$$ PRINT*,' isommet=',isommet,' knon=',knon 1406 IF (check) THEN 1407 PRINT*,' isommet=',isommet,' knon=',knon 1408 ENDIF 1391 1409 1392 1410 DO k = 2, isommet -
LMDZ.3.3/branches/rel-LF/libf/phylmd/conf_phys.F90
r433 r467 168 168 ! 169 169 !valeur AMIP II 170 RCH4 = 1.65E-06* 16.043/28.97170 !OK RCH4 = 1.65E-06* 16.043/28.97 171 171 ! RCH4 = 9.137366240938903E-07 172 172 ! 173 173 !ancienne valeur 174 174 ! RCH4 = 1.72E-06* 16.043/28.97 175 call getin('RCH4', RCH4) 175 !OK call getin('RCH4', RCH4) 176 CH4_ppb = 1650. 177 call getin('CH4_ppb', CH4_ppb) 178 RCH4 = CH4_ppb * 1.0E-09 * 16.043/28.97 176 179 !! 177 180 !Config Key = RN2O … … 182 185 ! 183 186 !valeur AMIP II 184 RN2O = 306.E-09* 44.013/28.97187 !OK RN2O = 306.E-09* 44.013/28.97 185 188 ! RN2O = 4.648939592682085E-07 186 189 ! 187 190 !ancienne valeur 188 191 ! RN2O = 310.E-09* 44.013/28.97 189 call getin('RN2O', RN2O) 192 !OK call getin('RN2O', RN2O) 193 N2O_ppb=306. 194 call getin('N2O_ppb', N2O_ppb) 195 RN2O = N2O_ppb * 1.0E-09 * 44.013/28.97 190 196 !! 191 197 !Config Key = RCFC11 … … 195 201 ! 196 202 ! 197 RCFC11 = 280.E-12* 137.3686/28.97 203 !OK RCFC11 = 280.E-12* 137.3686/28.97 204 CFC11_ppt = 280. 205 call getin('CFC11_ppt',CFC11_ppt) 206 RCFC11=CFC11_ppt* 1.0E-12 * 137.3686/28.97 198 207 ! RCFC11 = 1.327690990680013E-09 199 208 !OK call getin('RCFC11', RCFC11) 200 209 !! 201 210 !Config Key = RCFC12 … … 205 214 ! 206 215 ! 207 RCFC12 = 484.E-12* 120.9140/28.97 216 !OK RCFC12 = 484.E-12* 120.9140/28.97 217 CFC12_ppt = 484. 218 call getin('CFC12_ppt',CFC12_ppt) 219 RCFC12 = CFC12_ppt * 1.0E-12 * 120.9140/28.97 208 220 ! RCFC12 = 2.020102726958923E-09 209 221 !OK call getin('RCFC12', RCFC12) 210 222 !! 211 223 !! Constante solaire & Parametres orbitaux & taux gaz effet de serre END … … 386 398 rad_chau2 = 9.0 387 399 call getin('rad_chau2',rad_chau2) 400 401 ! 402 !Config Key = top_height 403 !Config Desc = 404 !Config Def = 3 405 !Config Help = 406 ! 407 top_height = 3 408 call getin('top_height',top_height) 409 410 ! 411 !Config Key = overlap 412 !Config Desc = 413 !Config Def = 3 414 !Config Help = 415 ! 416 overlap = 3 417 call getin('overlap',overlap) 418 419 420 !IM 421 ! 422 !Config Key = cdmmax 423 !Config Desc = 424 !Config Def = 1.3E-3 425 !Config Help = 426 ! 427 cdmmax = 1.3E-3 428 call getin('cdmmax',cdmmax) 429 430 ! 431 !Config Key = cdhmax 432 !Config Desc = 433 !Config Def = 1.1E-3 434 !Config Help = 435 ! 436 cdhmax = 1.1E-3 437 call getin('cdhmax',cdhmax) 388 438 389 439 ! … … 415 465 write(numout,*)' co2_ppm =',co2_ppm 416 466 write(numout,*)' RCO2 = ',RCO2 417 write(numout,*)' RCH4 = ',RCH4418 write(numout,*)' RN2O = ',RN2O419 write(numout,*)' RCFC11 = ',RCFC11420 write(numout,*)' RCFC12 = ',RCFC12467 write(numout,*)' CH4_ppb =',CH4_ppb,' RCH4 = ',RCH4 468 write(numout,*)' N2O_ppb =',N2O_ppb,' RN2O = ',RN2O 469 write(numout,*)' CFC11_ppt=',CFC11_ppt,' RCFC11 = ',RCFC11 470 write(numout,*)' CFC12_ppt=',CFC12_ppt,' RCFC12 = ',RCFC12 421 471 !IM constantes physiques END 422 472 write(numout,*)' epmax = ', epmax … … 438 488 write(numout,*)' ratqsbas = ',ratqsbas 439 489 write(numout,*)' ratqshaut = ',ratqshaut 490 write(numout,*)' top_height = ',top_height 491 write(numout,*)' overlap = ',overlap 440 492 441 493 return -
LMDZ.3.3/branches/rel-LF/libf/phylmd/ini_histday.h
r463 r467 170 170 . 32, "ave(X)", zsto,zout) 171 171 c 172 CALL histdef(nid_day, "SWupTOAclr", 173 . "SWup clear sky at TOA","W/m2", 174 . iim,jjmp1,nhori, 1,1,1,-99, 175 . 32, "ave(X)", zsto,zout) 176 177 CALL histdef(nid_day, "SWupSFCclr", 178 . "SWup clear sky at surface","W/m2", 179 . iim,jjmp1,nhori, 1,1,1,-99, 180 . 32, "ave(X)", zsto,zout) 181 182 CALL histdef(nid_day, "SWdnTOAclr", 183 . "SWdn clear sky at TOA","W/m2", 184 . iim,jjmp1,nhori, 1,1,1,-99, 185 . 32, "ave(X)", zsto,zout) 186 187 CALL histdef(nid_day, "SWdnSFCclr", 188 . "SWdn clear sky at surface","W/m2", 189 . iim,jjmp1,nhori, 1,1,1,-99, 190 . 32, "ave(X)", zsto,zout) 191 cccIM 192 CALL histdef(nid_day, "prw", "Precipitable water", "kg/m2", 193 . iim,jjmp1,nhori, 1,1,1, -99, 32, 194 . "ave(X)", zsto,zout) 195 c 172 196 c Champs dynamiques sur niveaux de pression 173 197 -
LMDZ.3.3/branches/rel-LF/libf/phylmd/ini_histhf.h
r453 r467 83 83 . "inst(X)", zsto,zout) 84 84 85 CALL histdef(nid_hf, "phi500", "Geopotentiel à500mb", "m2/s2",85 CALL histdef(nid_hf, "phi500", "Geopotentiel a 500mb", "m2/s2", 86 86 . iim,jjmp1,nhori, 1,1,1, -99, 32, 87 87 . "inst(X)", zsto,zout) 88 88 89 cIM cf FH 90 CALL histdef(nid_hf,"u1","Zonal wind at 1st layer", "m/s", 91 . iim,jjmp1,nhori, 1,1,1, -99, 32, 92 . "inst(X)", zsto,zout) 93 94 CALL histdef(nid_hf,"v1","Meridional wind at 1st layer", 95 . "m/s",iim,jjmp1,nhori, 1,1,1, -99, 32, 96 . "inst(X)", zsto,zout) 97 98 CALL histdef(nid_hf, "cdrm", " Momentum drag coef.", "-", 99 . iim,jjmp1,nhori, 1,1,1, -99, 32, 100 . "inst(X)", zsto,zout) 101 102 CALL histdef(nid_hf, "cdrh", "Heat drag coef.", "-", 103 . iim,jjmp1,nhori, 1,1,1, -99, 32, 104 . "inst(X)", zsto,zout) 105 89 106 c 90 107 CALL histend(nid_hf) -
LMDZ.3.3/branches/rel-LF/libf/phylmd/ini_histmth.h
r455 r467 539 539 . iim,jjmp1,nhori, 1,1,1,-99, 540 540 . 32, "ave(X)", zsto,zout) 541 c 542 CALL histdef(nid_mth, "prw", "Precipitable water", "kg/m2", 543 . iim,jjmp1,nhori, 1,1,1, -99, 32, 544 . "ave(X)", zsto,zout) 545 541 546 c Champs interpolles sur des niveaux de pression 542 547 -
LMDZ.3.3/branches/rel-LF/libf/phylmd/interface_surf.F90
r461 r467 264 264 !!$ tsurf_new = 0. 265 265 266 !IM cf JLD 267 ffonte(1:knon)=0. 268 fqcalving(1:knon)=0. 269 266 270 cal = 999999. ; beta = 999999. ; dif_grnd = 999999. ; capsol = 999999. 267 271 alb_new = 999999. ; z0_new = 999999. ; alb_neig = 999999. … … 1096 1100 !IM cf. JP --- 1097 1101 1098 where(cdrag > 0.01) 1099 cdrag = 0.01 1100 endwhere 1102 1103 ! PF et PASB 1104 ! where(cdrag > 0.01) 1105 ! cdrag = 0.01 1106 ! endwhere 1101 1107 ! write(*,*)'Cdrag = ',minval(cdrag),maxval(cdrag) 1102 1108 … … 1116 1122 1117 1123 !IM cf. JP +++ 1118 albedo_keep( :) = (albedo_out(:,1)+albedo_out(:,2))/2.1124 albedo_keep(1:knon) = (albedo_out(1:knon,1)+albedo_out(1:knon,2))/2. 1119 1125 !IM cf. JP --- 1120 1126 … … 1122 1128 1123 1129 !IM cf. JP +++ 1124 swdown_vrai( :) = swnet(:)/(1. - albedo_keep(:))1130 swdown_vrai(1:knon) = swnet(1:knon)/(1. - albedo_keep(1:knon)) 1125 1131 !IM cf. JP --- 1126 1132 -
LMDZ.3.3/branches/rel-LF/libf/phylmd/oasis.F
r421 r467 40 40 #include "mpiclim.h" 41 41 c 42 #include "oasis.h" 43 ! contains the name of communication technique. Here 42 #include "oasis.h" ! contains the name of communication technique. Here 44 43 ! cchan=CLIM only is possible. 45 44 c ! ctype=MPI2 … … 555 554 END 556 555 557 SUBROUTINE halte558 print *, 'Attention dans oasis.F, halte est non defini'559 RETURN560 END561 562 SUBROUTINE locread563 print *, 'Attention dans oasis.F, locread est non defini'564 RETURN565 END566 567 SUBROUTINE locwrite568 print *, 'Attention dans oasis.F, locwrite est non defini'569 RETURN570 END571 572 556 SUBROUTINE pipe_model_define 573 557 print*,'Attention dans oasis.F, pipe_model_define est non defini' … … 590 574 END 591 575 592 SUBROUTINE clim_stepi593 print *, 'Attention dans oasis.F, clim_stepi est non defini'594 RETURN595 END596 597 SUBROUTINE clim_start598 print *, 'Attention dans oasis.F, clim_start est non defini'599 RETURN600 END601 602 SUBROUTINE clim_import603 print *, 'Attention dans oasis.F, clim_import est non defini'604 RETURN605 END606 607 SUBROUTINE clim_export608 print *, 'Attention dans oasis.F, clim_export est non defini'609 RETURN610 END611 612 SUBROUTINE clim_init613 print *, 'Attention dans oasis.F, clim_init est non defini'614 RETURN615 END616 617 SUBROUTINE clim_define618 print *, 'Attention dans oasis.F, clim_define est non defini'619 RETURN620 END621 622 SUBROUTINE clim_quit623 print *, 'Attention dans oasis.F, clim_quit est non defini'624 RETURN625 END626 627 SUBROUTINE svipc_write628 print *, 'Attention dans oasis.F, svipc_write est non defini'629 RETURN630 END631 632 SUBROUTINE svipc_close633 print *, 'Attention dans oasis.F, svipc_close est non defini'634 RETURN635 END636 637 SUBROUTINE svipc_read638 print *, 'Attention dans oasis.F, svipc_read est non defini'639 RETURN640 END641 642 576 SUBROUTINE quitcpl 643 577 print *, 'Attention dans oasis.F, quitcpl est non defini' -
LMDZ.3.3/branches/rel-LF/libf/phylmd/phyetat0.F
r442 r467 4 4 SUBROUTINE phyetat0 (fichnom,dtime,co2_ppm_etat0,solaire_etat0, 5 5 . rlat,rlon, pctsrf, tsol,tsoil,deltat,qsurf,qsol,snow, 6 . albe, evap, rain_fall, snow_fall, solsw, sollw,6 . albe, alblw, evap, rain_fall, snow_fall, solsw, sollw, 7 7 . fder,radsol,frugs,agesno,clesphy0, 8 8 . zmea,zstd,zsig,zgam,zthe,zpic,zval,rugsrel,tabcntr0, … … 34 34 REAL snow(klon,nbsrf) 35 35 REAL albe(klon,nbsrf) 36 cIM BEG alblw 37 REAL alblw(klon,nbsrf) 38 cIM END alblw 36 39 REAL evap(klon,nbsrf) 37 40 REAL radsol(klon) … … 645 648 646 649 c 650 cIM BEG alblw 651 c Lecture de albedo au sol LW: 652 c 653 ierr = NF_INQ_VARID (nid, "ALBLW", nvarid) 654 IF (ierr.NE.NF_NOERR) THEN 655 PRINT*, 'phyetat0: Le champ <ALBLW> est absent' 656 c PRINT*, ' Mais je vais essayer de lire ALBLW**' 657 PRINT*, ' Mais je vais prendre ALBE**' 658 DO nsrf = 1, nbsrf 659 DO i = 1, klon 660 alblw(i,nsrf) = albe(i,nsrf) 661 ENDDO 662 ENDDO 663 c IF (nsrf.GT.99) THEN 664 c PRINT*, "Trop de sous-mailles" 665 c CALL abort 666 c ENDIF 667 c WRITE(str2,'(i2.2)') nsrf 668 c ierr = NF_INQ_VARID (nid, "ALBLW"//str2, nvarid) 669 c IF (ierr.NE.NF_NOERR) THEN 670 c PRINT*, "phyetat0: Le champ <ALBLW"//str2//"> est absent" 671 c CALL abort 672 c ENDIF 673 c#ifdef NC_DOUBLE 674 c ierr = NF_GET_VAR_DOUBLE(nid, nvarid, alblw(1,nsrf)) 675 c#else 676 c ierr = NF_GET_VAR_REAL(nid, nvarid, alblw(1,nsrf)) 677 c#endif 678 c IF (ierr.NE.NF_NOERR) THEN 679 c PRINT*, "phyetat0: Lecture echouee pour <ALBLW"//str2//">" 680 c CALL abort 681 c ENDIF 682 c xmin = 1.0E+20 683 c xmax = -1.0E+20 684 c DO i = 1, klon 685 c xmin = MIN(alblw(i,nsrf),xmin) 686 c xmax = MAX(alblw(i,nsrf),xmax) 687 c ENDDO 688 c PRINT*,'Albedo du sol ALBLW**:', nsrf, xmin, xmax 689 c ENDDO 690 ELSE 691 PRINT*, 'phyetat0: Le champ <ALBLW> est present' 692 PRINT*, ' J ignore donc les autres ALBLW**' 693 #ifdef NC_DOUBLE 694 ierr = NF_GET_VAR_DOUBLE(nid, nvarid, alblw(1,1)) 695 #else 696 ierr = NF_GET_VAR_REAL(nid, nvarid, alblw(1,1)) 697 #endif 698 IF (ierr.NE.NF_NOERR) THEN 699 PRINT*, "phyetat0: Lecture echouee pour <ALBLW>" 700 CALL abort 701 ENDIF 702 xmin = 1.0E+20 703 xmax = -1.0E+20 704 DO i = 1, klon 705 xmin = MIN(alblw(i,1),xmin) 706 xmax = MAX(alblw(i,1),xmax) 707 ENDDO 708 PRINT*,'Neige du sol <ALBLW>', xmin, xmax 709 DO nsrf = 2, nbsrf 710 DO i = 1, klon 711 alblw(i,nsrf) = alblw(i,1) 712 ENDDO 713 ENDDO 714 ENDIF 715 716 cIM END alblw 717 718 c 647 719 c Lecture de evaporation: 648 720 c -
LMDZ.3.3/branches/rel-LF/libf/phylmd/phyredem.F
r443 r467 4 4 SUBROUTINE phyredem (fichnom,dtime,radpas, 5 5 . rlat,rlon, pctsrf,tsol,tsoil,deltat,qsurf,qsol,snow, 6 . albedo, evap, rain_fall, snow_fall,6 . albedo, alblw, evap, rain_fall, snow_fall, 7 7 . solsw, sollw,fder, 8 8 . radsol,frugs,agesno, … … 36 36 REAL snow(klon,nbsrf) 37 37 REAL albedo(klon,nbsrf) 38 cIM BEG 39 REAL alblw(klon,nbsrf) 40 cIM END 38 41 REAL evap(klon,nbsrf) 39 42 REAL rain_fall(klon) … … 360 363 #endif 361 364 ENDDO 365 366 cIM BEG albedo LW 367 DO nsrf = 1, nbsrf 368 IF (nsrf.LE.99) THEN 369 WRITE(str2,'(i2.2)') nsrf 370 ierr = NF_REDEF (nid) 371 #ifdef NC_DOUBLE 372 ierr = NF_DEF_VAR (nid,"ALBLW"//str2,NF_DOUBLE,1,idim2,nvarid) 373 #else 374 ierr = NF_DEF_VAR (nid,"ALBLW"//str2,NF_FLOAT,1,idim2,nvarid) 375 #endif 376 ierr = NF_PUT_ATT_TEXT (nid,nvarid,"title", 23, 377 . "albedo LW de surface No."//str2) 378 ierr = NF_ENDDEF(nid) 379 ELSE 380 PRINT*, "Trop de sous-mailles" 381 CALL abort 382 ENDIF 383 #ifdef NC_DOUBLE 384 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,alblw(1,nsrf)) 385 #else 386 ierr = NF_PUT_VAR_REAL (nid,nvarid,alblw(1,nsrf)) 387 #endif 388 ENDDO 389 cIM END albedo LW 362 390 c 363 391 DO nsrf = 1, nbsrf -
LMDZ.3.3/branches/rel-LF/libf/phylmd/physiq.F
r463 r467 191 191 PARAMETER(klevp1=klev+1) 192 192 #include "raddim.h" 193 REAL*8 ZFSUP(KDLON,KFLEV+1) 194 REAL*8 ZFSDN(KDLON,KFLEV+1) 195 REAL*8 ZFSUP0(KDLON,KFLEV+1) 196 REAL*8 ZFSDN0(KDLON,KFLEV+1) 193 cc REAL*8 ZFSUP(KDLON,KFLEV+1) 194 cc REAL*8 ZFSDN(KDLON,KFLEV+1) 195 cc REAL*8 ZFSUP0(KDLON,KFLEV+1) 196 cc REAL*8 ZFSDN0(KDLON,KFLEV+1) 197 c 198 REAL swdn0(klon,2), swdn(klon,2), swup0(klon,2), swup(klon,2) 199 SAVE swdn0 , swdn, swup0, swup 197 200 198 201 cccIM cf. FH 199 202 real u850(klon),v850(klon),u200(klon),v200(klon) 200 203 real u500(klon),v500(klon),phi500(klon),w500(klon) 204 cIM 205 real prw(klon) 206 207 cIM ISCCP - proprietes microphysiques des nuages convectifs 208 REAL convliq(klon,klev) ! eau liquide nuageuse convective 209 REAL convfra(klon,klev) ! fraction nuageuse convective 210 211 REAL cldl_c(klon),cldm_c(klon),cldh_c(klon) !nuages bas, moyen et haut 212 REAL cldt_c(klon),cldq_c(klon) !nuage total, eau liquide integree 213 REAL cldl_s(klon),cldm_s(klon),cldh_s(klon) !nuages bas, moyen et haut 214 REAL cldt_s(klon),cldq_s(klon) !nuage total, eau liquide integree 215 216 INTEGER kinv, linv 217 218 cIM ISCCP simulator BEGIN 219 INTEGER igfi2D(iim,jjmp1) 220 cv3.4 221 INTEGER debug, debugcol 222 INTEGER npoints 223 PARAMETER(npoints=klon) 224 INTEGER sunlit(klon) 225 226 INTEGER ncol, seed(klon) 227 228 cIM dans clesphys.h top_height, overlap 229 c PARAMETER(ncol=100) 230 c PARAMETER(ncol=625) 231 PARAMETER(ncol=10) 232 REAL tautab(0:255) 233 INTEGER invtau(-20:45000) 234 REAL emsfc_lw 235 PARAMETER(emsfc_lw=0.99) 236 REAL ran0 ! type for random number fuction 237 238 REAL pfull(klon,klev) 239 REAL phalf(klon,klev+1) 240 REAL cldtot(klon,klev) 241 REAL dtau_s(klon,klev) 242 REAL dtau_c(klon,klev) 243 REAL dem_s(klon,klev) 244 REAL dem_c(klon,klev) 245 cPLUS : variables de haut en bas pour le simulateur ISCCP 246 REAL qv(klon,klev) 247 REAL cc(klon,klev) 248 REAL conv(klon,klev) 249 REAL dtau_sH2B(klon,klev) 250 REAL dtau_cH2B(klon,klev) 251 REAL at(klon,klev) 252 REAL dem_sH2B(klon,klev) 253 REAL dem_cH2B(klon,klev) 254 255 c output from ISCCP 256 REAL fq_isccp(klon,7,7) 257 REAL totalcldarea(klon) 258 REAL meanptop(klon) 259 REAL meantaucld(klon) 260 REAL boxtau(klon,ncol) 261 REAL boxptop(klon,ncol) 262 263 c grille 4d physique 264 INTEGER l, ni, nj, kmax, lmax, nrec 265 INTEGER ni1, ni2, nj1, nj2 266 c PARAMETER(kmax=7, lmax=7) 267 PARAMETER(kmax=8, lmax=8) 268 INTEGER kmaxm1, lmaxm1 269 PARAMETER(kmaxm1=kmax-1, lmaxm1=lmax-1) 270 c INTEGER iimx7, jjmx7, jjmp1x7 271 c PARAMETER(iimx7=iim*7, jjmx7=jjm*7, jjmp1x7=jjmp1*7) 272 c REAL fq4d(iim,jjmp1,7,7) 273 c REAL fq3d(iimx7, jjmp1x7) 274 INTEGER iimx8, jjmx8, jjmp1x8 275 PARAMETER(iimx8=iim*8, jjmx8=jjm*8, jjmp1x8=jjmp1*8) 276 REAL fq4d(iim,jjmp1,8,8) 277 REAL fq3d(iimx8, jjmp1x8) 278 cIM180603 SAVE fq3d 279 280 c REAL maxfq3d, minfq3d 281 c 282 INTEGER iw, iwmax 283 REAL wmin, pas_w 284 c PARAMETER(wmin=-100.,pas_w=10.,iwmax=30) 285 PARAMETER(wmin=-200.,pas_w=10.,iwmax=40) 286 REAL o500(klon) 287 INTEGER nreg, nbreg 288 PARAMETER(nbreg=5) 289 c REAL histoW(iwmax,kmaxm1,lmaxm1) 290 REAL histoW(kmaxm1,lmaxm1,iwmax,nbreg) 291 REAL nhistoW(kmaxm1,lmaxm1,iwmax,nbreg) 292 cIM180603 293 c SAVE histoW, nhistoW 294 c SAVE nhistoW 295 REAL nhistoWt(kmaxm1,lmaxm1,iwmax,nbreg) 296 SAVE nhistoWt 297 298 c REAL histoWinv(kmaxm1,lmaxm1,iwmax) 299 c REAL nhistoW(kmaxm1,lmaxm1,iwmax) 300 INTEGER linv 301 c LOGICAL pct_ocean(klon,nbreg) 302 INTEGER pct_ocean(klon,nbreg) 303 REAL rlonPOS(klon) 304 c CHARACTER*4 pdirect 305 306 c sorties ISCCP 307 308 logical ok_isccp 309 real ecrit_isccp 310 integer nid_isccp 311 save ok_isccp, ecrit_isccp, nid_isccp 312 313 #define histISCCP 314 #undef histISCCP 315 #ifdef histISCCP 316 c data ok_isccp,ecrit_isccp/.true.,0.125/ 317 c data ok_isccp,ecrit_isccp/.true.,1./ 318 data ok_isccp/.true./ 319 #else 320 data ok_isccp/.false./ 321 #endif 322 323 REAL zx_tau(kmaxm1), zx_pc(lmaxm1), zx_o500(iwmax) 324 c DATA zx_tau/0.1, 1.3, 3.6, 9.4, 23., 60./ 325 c DATA zx_pc/50., 180., 310., 440., 560., 680., 800., 1015./ 326 c DATA zx_pc/50., 180., 310., 440., 560., 680., 800./ 327 cOK DATA zx_tau/0.0, 0.1, 1.3, 3.6, 9.4, 23., 60./ 328 cOK DATA zx_pc/800., 680., 560., 440., 310., 180., 50./ 329 330 c tester l'alure 331 DATA zx_tau/1., 2., 3., 4., 5., 6., 7./ 332 c DATA zx_pc/1., 2., 3., 4., 5., 6., 7./ 333 DATA zx_pc/7., 6., 5., 4., 3., 2., 1./ 334 335 INTEGER komega, nhoriRD 336 337 c statistiques regime dynamique END 338 339 c REAL del_lon(iim), del_lat(jjmp1) 340 REAL del_lon, del_lat 341 c REAL zx_lonx7(iimx7), zx_latx7(jjmp1x7) 342 REAL zx_lonx8(iimx8), zx_latx8(jjmp1x8) 343 c INTEGER nhorix7 344 INTEGER nhorix8 345 346 cIM ISCCP simulator END 201 347 202 348 logical ok_hf … … 497 643 SAVE topsw0,toplw0,solsw0,sollw0, heat0, cool0 498 644 cccIM 499 SAVE ZFSUP,ZFSDN,ZFSUP0,ZFSDN0500 645 501 646 INTEGER itaprad … … 753 898 CALL phyetat0 ("startphy.nc",dtime,co2_ppm_etat0,solaire_etat0, 754 899 . rlat,rlon,pctsrf, ftsol,ftsoil,deltat,fqsurf,qsol,fsnow, 755 . falbe, f evap, rain_fall,snow_fall,solsw, sollwdown,900 . falbe, falblw, fevap, rain_fall,snow_fall,solsw, sollwdown, 756 901 . dlw,radsol,frugs,agesno,clesphy0, 757 902 . zmea,zstd,zsig,zgam,zthe,zpic,zval,rugoro,tabcntr0, … … 880 1025 c Initialisation des sorties 881 1026 c============================================================= 1027 1028 #ifdef histISCCP 1029 #include "ini_histISCCP.h" 1030 #endif 1031 882 1032 #ifdef histhf 883 1033 #include "ini_histhf.h" … … 958 1108 ENDIF 959 1109 C 960 IF (if_ebil.ge.1) THEN961 1110 DO i = 1, klon 962 1111 ztsol(i) = 0. … … 967 1116 ENDDO 968 1117 ENDDO 1118 C 1119 IF (if_ebil.ge.1) THEN 969 1120 ztit='after dynamic' 970 1121 CALL diagetpq(paire,ztit,ip_ebil,1,1,dtime … … 1072 1223 DO nsrf = 1, nbsrf 1073 1224 DO i = 1, klon 1074 frugs(i,nsrf) = MAX(frugs(i,nsrf),0.001)1075 ccccfrugs(i,nsrf) = MAX(frugs(i,nsrf),0.000015)1225 c frugs(i,nsrf) = MAX(frugs(i,nsrf),0.001) 1226 frugs(i,nsrf) = MAX(frugs(i,nsrf),0.000015) 1076 1227 ENDDO 1077 1228 ENDDO … … 1091 1242 rmu0 = -999.999 1092 1243 ENDIF 1093 C 1244 cIM BEG 1245 DO i=1, klon 1246 sunlit(i)=1 1247 IF(rmu0(i).EQ.0.) sunlit(i)=0 1248 c IF(rmu0(i).EQ.0.) THEN 1249 c sunlit(i)=0 1250 c PRINT*,' il fait nuit ',i,rlat(i),rlon(i) 1251 c ENDIF 1252 ENDDO 1253 cIM END 1094 1254 C Calcul de l'abedo moyen par maille 1095 1255 albsol(:)=0. … … 1103 1263 C 1104 1264 C Repartition sous maille des flux LW et SW 1105 DO nsrf = 1, nbsrf 1106 DO i = 1, klon 1107 fsollw(i,nsrf) = sollwdown(i) - RSIGMA*ftsol(i,nsrf)**4 1108 fsolsw(i,nsrf) = solsw(i)*(1.-falbe(i,nsrf))/(1.-albsol(i)) 1109 ENDDO 1110 ENDDO 1265 C Modif OM+PASB+JLD 1266 C Repartition du longwave par sous-surface linearisee 1267 Cn 1268 DO nsrf = 1, nbsrf 1269 DO i = 1, klon 1270 c$$$ fsollw(i,nsrf) = sollwdown(i) - RSIGMA*ftsol(i,nsrf)**4 1271 c$$$ fsollw(i,nsrf) = sollw(i) 1272 fsollw(i,nsrf) = sollw(i) 1273 $ + 4.0*RSIGMA*ztsol(i)**3 * (ztsol(i)-ftsol(i,nsrf)) 1274 fsolsw(i,nsrf) = solsw(i)*(1.-falbe(i,nsrf))/(1.-albsol(i)) 1275 ENDDO 1276 ENDDO 1111 1277 1112 1278 fder = dlw … … 1116 1282 e julien, rmu0, 1117 1283 e ok_veget, ocean, npas, nexca, ftsol, 1118 $ soil_model, ftsoil, qsol,1284 $ soil_model,cdmmax, cdhmax, ftsoil, qsol, 1119 1285 $ paprs,pplay,radsol, fsnow,fqsurf,fevap,falbe,falblw, 1120 1286 $ fluxlat, … … 1616 1782 enddo 1617 1783 1784 cIM ISCCP simulator BEGIN 1785 IF (ok_isccp) THEN 1786 cIM calcul tau. emi nuages convectifs 1787 convfra(:,:)=rnebcon(:,:) 1788 convliq(:,:)=rnebcon(:,:)*clwcon(:,:) 1789 c CALL newmicro (paprs, pplay,ok_newmicro, 1790 c . t_seri, cldliq, cldfra, cldtau, cldemi, 1791 c . cldh, cldl, cldm, cldt, cldq) 1792 CALL newmicro (paprs, pplay,ok_newmicro, 1793 . t_seri, convliq, convfra, dtau_c, dem_c, 1794 . cldh_c, cldl_c, cldm_c, cldt_c, cldq_c) 1795 1796 cIM calcul tau. emi nuages startiformes 1797 CALL newmicro (paprs, pplay,ok_newmicro, 1798 . t_seri, cldliq, cldfra, dtau_s, dem_s, 1799 . cldh_s, cldl_s, cldm_s, cldt_s, cldq_s) 1800 cIM calcul diagramme (PC, tau) cf. ISCCP D 1801 c seed=50 1802 c seed=ran0(klon) 1803 cT1O3 1804 c top_height=1 1805 cT3O3 1806 c top_height=3 1807 c overlap=3 1808 cIM cf GCM 1809 cldtot(:,:)=min(max(cldfra(:,:),rnebcon(:,:)),1.) 1810 1811 cIM inversion des niveaux de pression ==> de haut en bas 1812 DO k=1,klev 1813 kinv=klev-k+1 1814 DO i=1,klon 1815 pfull(i,k)=pplay(i,kinv) 1816 c on met toutes les variables de Haut 2 Bas 1817 qv(i,k)=q_seri(i,kinv) 1818 cc(i,k)=cldtot(i,kinv) 1819 conv(i,k)=rnebcon(i,kinv) 1820 dtau_sH2B(i,k)=dtau_s(i,kinv) 1821 dtau_cH2B(i,k)=dtau_c(i,kinv) 1822 at(i,k)=t_seri(i,kinv) 1823 dem_sH2B(i,k)=dem_s(i,kinv) 1824 dem_cH2B(i,k)=dem_c(i,kinv) 1825 1826 ENDDO 1827 ENDDO 1828 1829 DO k=1,klev+1 1830 kinv=klev-k+2 1831 DO i=1,klon 1832 phalf(i,k)=paprs(i,kinv) 1833 ENDDO 1834 ENDDO 1835 1836 c open(99,file='tautab.bin',access='sequential', 1837 c $ form='unformatted',status='old') 1838 c read(99) tautab 1839 1840 cIM210503 1841 IF (debut) THEN 1842 open(99,file='tautab.formatted', FORM='FORMATTED') 1843 read(99,'(f30.20)') tautab 1844 close(99) 1845 c 1846 open(99,file='invtau.formatted',form='FORMATTED') 1847 read(99,'(i10)') invtau 1848 close(99) 1849 c 1850 nsrf=3 1851 DO nreg=1, nbreg 1852 DO i=1, klon 1853 1854 c IF (debut) THEN 1855 IF(rlon(i).LT.0.) THEN 1856 rlonPOS(i)=rlon(i)+360. 1857 ELSE 1858 rlonPOS(i)=rlon(i) 1859 ENDIF 1860 c ENDIF 1861 1862 c pct_ocean(i,nreg)=.FALSE. 1863 pct_ocean(i,nreg)=0 1864 1865 c DO nsrf = 1, nbsrf 1866 1867 c test si c'est 1 point d'ocean 1868 IF(pctsrf(i,nsrf).EQ.1.) THEN 1869 1870 IF(nreg.EQ.1) THEN 1871 1872 c TROP 1873 IF(rlat(i).GE.-30.AND.rlat(i).LE.30.) THEN 1874 c pct_ocean(i,nreg)=.TRUE. 1875 pct_ocean(i,nreg)=1 1876 ENDIF 1877 1878 c PACIFIQUE NORD 1879 ELSEIF(nreg.EQ.2) THEN 1880 IF(rlat(i).GE.40.AND.rlat(i).LE.60.) THEN 1881 IF(rlonPOS(i).GE.160..AND.rlonPOS(i).LE.235.) THEN 1882 c pct_ocean(i,nreg)=.TRUE. 1883 pct_ocean(i,nreg)=1 1884 ENDIF 1885 ENDIF 1886 c CALIFORNIE ST-CU 1887 ELSEIF(nreg.EQ.3) THEN 1888 IF(rlonPOS(i).GE.220..AND.rlonPOS(i).LE.250.) THEN 1889 IF(rlat(i).GE.15.AND.rlat(i).LE.35.) THEN 1890 c pct_ocean(i,nreg)=.TRUE. 1891 pct_ocean(i,nreg)=1 1892 ENDIF 1893 ENDIF 1894 c HAWAI 1895 ELSEIF(nreg.EQ.4) THEN 1896 IF(rlonPOS(i).GE.180..AND.rlonPOS(i).LE.220.) THEN 1897 IF(rlat(i).GE.15.AND.rlat(i).LE.35.) THEN 1898 c pct_ocean(i,nreg)=.TRUE. 1899 pct_ocean(i,nreg)=1 1900 ENDIF 1901 ENDIF 1902 c WARM POOL 1903 ELSEIF(nreg.EQ.5) THEN 1904 IF(rlonPOS(i).GE.70..AND.rlonPOS(i).LE.150.) THEN 1905 IF(rlat(i).GE.-5.AND.rlat(i).LE.20.) THEN 1906 c pct_ocean(i,nreg)=.TRUE. 1907 pct_ocean(i,nreg)=1 1908 ENDIF 1909 ENDIF 1910 ENDIF !nbreg 1911 c TROP 1912 c IF(rlat(i).GE.-30.AND.rlat(i).LE.30.) THEN 1913 c pct_ocean(i)=.TRUE. 1914 c WRITE(*,*) 'pct_ocean =',i, rlon(i), rlat(i) 1915 c ENDIF !lon 1916 c ENDIF !lat 1917 1918 ENDIF !pctsrf 1919 c ENDDO 1920 ENDDO !klon 1921 ENDDO !nbreg 1922 1923 cIM somme de toutes les nhistoW BEG 1924 DO nreg = 1, nbreg 1925 DO k = 1, kmaxm1 1926 DO l = 1, lmaxm1 1927 DO iw = 1, iwmax 1928 nhistoWt(k,l,iw,nreg)=0. 1929 ENDDO 1930 ENDDO 1931 ENDDO 1932 ENDDO 1933 cIM somme de toutes les nhistoW END 1934 ENDIF 1935 1936 1937 c CALL ISCCP_CLOUD_TYPES(nlev,ncol,seed,pfull,phalf,qv, 1938 c & cc,conv,dtau_s,dtau_c,top_height,overlap, 1939 c & tautab,invtau,skt,emsfc_lw,at,dem_s,dem_c,fq_isccp, 1940 c & totalcldarea,meanptop,meantaucld,boxtau,boxptop) 1941 1942 c DO i=1, klon 1943 c i=1 1944 c1011 CONTINUE 1945 c 1946 cIM on verifie les donnees de INPUT en dehors du simulateur ISCCP 1947 cIM 1D non-vectorise (!) pour qu'on gagne du temps ... 1948 cIM 1949 c BEGIN find unpermittable data..... 1950 ! ---------------------------------------------------! 1951 ! find unpermittable data..... 1952 ! 1953 c do 13 k=1,klev 1954 c ca prend trop de temps ?? 1955 c cldtot(:,:) = min(max(cldtot(:,:),0.),1.) 1956 c rnebcon(:,:) = min(max(rnebcon(:,:),0.),1.) 1957 c dtau_s(:,:) = max(dtau_s(:,:),0.) 1958 c dem_s(:,:) = min(max(dem_s(:,:),0.),1.) 1959 c dtau_c(:,:) = max(dtau_c(:,:),0.) 1960 c dem_c(:,:) = min(max(dem_c(:,:),0.),1.) 1961 c ca prend trop de temps ?? 1962 1963 c if (cldtot(i,k) .lt. 0.) then 1964 c print *, ' error = cloud fraction less than zero' 1965 c STOP 1966 c end if 1967 c if (cldtot(i,k) .gt. 1.) then 1968 c print *, ' error = cloud fraction greater than 1' 1969 c STOP 1970 c end if 1971 c if (rnebcon(i,k) .lt. 0.) then 1972 c print *, 1973 c & ' error = convective cloud fraction less than zero' 1974 c STOP 1975 c end if 1976 c if (rnebcon(i,k) .gt. 1.) then 1977 c print *, 1978 c & ' error = convective cloud fraction greater than 1' 1979 c STOP 1980 c end if 1981 1982 c if (dtau_s(i,k) .lt. 0.) then 1983 c print *, 1984 c & ' error = stratiform cloud opt. depth less than zero' 1985 c STOP 1986 c end if 1987 c if (dem_s(i,k) .lt. 0.) then 1988 c print *, 1989 c & ' error = stratiform cloud emissivity less than zero' 1990 c STOP 1991 c end if 1992 c if (dem_s(i,k) .gt. 1.) then 1993 c print *, 1994 c & ' error = stratiform cloud emissivity greater than 1' 1995 c STOP 1996 c end if 1997 1998 c if (dtau_c(i,k) .lt. 0.) then 1999 c print *, 2000 c & ' error = convective cloud opt. depth less than zero' 2001 c STOP 2002 c end if 2003 c if (dem_c(i,k) .lt. 0.) then 2004 c print *, 2005 c & ' error = convective cloud emissivity less than zero' 2006 c STOP 2007 c end if 2008 c if (dem_c(i,k) .gt. 1.) then 2009 c print *, 2010 c & ' error = convective cloud emissivity greater than 1' 2011 c STOP 2012 c end if 2013 c13 continue 2014 2015 ! ---------------------------------------------------! 2016 c 2017 c END find unpermittable data..... 2018 cv2.2.1.1 DO i=1, klon 2019 c i=1 2020 c seed=i 2021 c 2022 cv3.4 2023 if (debut) then 2024 DO i=1, klon 2025 seed(i)=i+100 2026 c seed(i)=i+50 2027 ENDDO 2028 endif 2029 c seed=aint(ran0(klon)) 2030 c CALL ISCCP_CLOUD_TYPES(klev,ncol,seed,pfull(i,:),phalf(i,:) 2031 cv2.2.1.1 2032 c CALL ISCCP_CLOUD_TYPES(klev,ncol,seed(i),pfull(i,:),phalf(i,:) 2033 c & ,q_seri(i,:), 2034 c & cldtot(i,:),rnebcon(i,:),dtau_s(i,:),dtau_c(i,:), 2035 c & top_height,overlap, 2036 c & tautab,invtau,ztsol,emsfc_lw,t_seri(i,:),dem_s(i,:), 2037 c & dem_c(i,:), 2038 c & fq_isccp(i,:,:), 2039 c & totalcldarea(i),meanptop(i),meantaucld(i), 2040 c & boxtau(i,:),boxptop(i,:)) 2041 cv2.2.1.1 2042 cv3.4 2043 debug=0 2044 debugcol=0 2045 cIM260503 2046 c o500 ==> distribution nuage ftion du regime dynamique 2047 DO i=1, klon 2048 o500(i)=omega(i,8)*864. 2049 c PRINT*,'pphi8 ',pphi(i,8),'zphi8,11,12',zphi(i,8), 2050 c & zphi(i,11),zphi(i,12) 2051 ENDDO 2052 2053 c axe vertical pour les differents niveaux des histogrammes 2054 c DO iw=1, iwmax 2055 c zx_o500(iw)=wmin+(iw-1./2.)*pas_w 2056 c ENDDO 2057 c PRINT*,' phys AVANT seed(3361)=',seed(3361) 2058 CALL ISCCP_CLOUD_TYPES( 2059 & debug, 2060 & debugcol, 2061 & klon, 2062 & sunlit, 2063 & klev, 2064 & ncol, 2065 & seed, 2066 & pfull, 2067 & phalf, 2068 c var de bas en haut ==> PB ! 2069 c & q_seri, 2070 c & cldtot, 2071 c & rnebcon, 2072 c & dtau_s, 2073 c & dtau_c, 2074 c var de Haut en Bas BEG 2075 & qv, cc, conv, dtau_sH2B, dtau_cH2B, 2076 c var de Haut en Bas END 2077 & top_height, 2078 & overlap, 2079 & tautab, 2080 & invtau, 2081 & ztsol, 2082 & emsfc_lw, 2083 c var de bas en haut ==> PB ! 2084 c & t_seri, 2085 c & dem_s, 2086 c & dem_c, 2087 c var de Haut en Bas BEG 2088 & at, dem_sH2B, dem_cH2B, 2089 cIM260503 2090 c & o500, pct_ocean, 2091 c var de Haut en Bas END 2092 & fq_isccp, 2093 & totalcldarea, 2094 & meanptop, 2095 & meantaucld, 2096 & boxtau, 2097 & boxptop) 2098 c & boxptop, 2099 cIM 260503 2100 c & histoW, 2101 c & nhistoW 2102 c &) 2103 2104 cIM 200603 2105 c PRINT*,'physiq fq_isccp(6,1,1)',fq_isccp(6,1,1) 2106 2107 cIM 200603 2108 cIM somme de toutes les nhistoW BEG 2109 c DO k = 1, kmaxm1 2110 c DO l = 1, lmaxm1 2111 c DO iw = 1, iwmax 2112 c nhistoWt(k,l,iw)=nhistoWt(k,l,iw)+nhistoW(k,l,iw) 2113 ccc IF(k.EQ.1.AND.l.EQ.1.AND.iw.EQ.1) then 2114 c IF(nhistoWt(k,l,iw).NE.0.) THEN 2115 c PRINT*,' physiq nWt', k,l,iw,nhistoWt(k,l,iw) 2116 c ENDIF 2117 c ENDDO 2118 c ENDDO 2119 c ENDDO 2120 cIM somme de toutes les nhistoW END 2121 c PRINT*,' phys APRES seed(3361)=',seed(3361) 2122 cv3.4 2123 c i=i+1 2124 c IF(i.LE.klon) THEN 2125 c GOTO 1011 2126 c ENDIF 2127 cv2.2.1.1 ENDDO 2128 2129 c passage de la grille (klon,7,7) a (iim,jjmp1,7,7) 2130 c minfq3d=100. 2131 c maxfq3d=0. 2132 cIM calcul des correspondances entre la grille physique et 2133 cIM la grille dynamique 2134 c DO i=1, klon 2135 c grid_phys(i)=i 2136 c PRINT*,'i, grid_phys',i,grid_phys(i) 2137 c ENDDO 2138 c CALL gr_fi_dyn(1,klon,iimp1,jjmp1,grid_phys,grid_dyn) 2139 c DO j=1, jjmp1 2140 c DO i=1, iimp1 2141 c PRINT*,'i,j grid_dyn ',i,j,grid_dyn(i,j) 2142 c ENDDO 2143 c ENDDO 2144 c 2145 DO l=1, lmax 2146 DO k=1, kmax 2147 cIM grille physique ==> grille ecriture 2D (iim,jjmp1) 2148 c 2149 DO i=1, iim 2150 fq4d(i,1,k,l)=fq_isccp(1,k,l) 2151 cc PRINT*,'first j=1 i =',i 2152 ENDDO 2153 DO j=2, jjm 2154 DO i=1, iim 2155 cERROR ?? ig=i+iim*(j-1) 2156 ig=i+1+(j-2)*iim 2157 cc PRINT*,'i =',i,'j =',j,'ig=',ig 2158 fq4d(i,j,k,l)=fq_isccp(ig,k,l) 2159 ENDDO 2160 ENDDO 2161 DO i=1, iim 2162 fq4d(i,jjmp1,k,l)=fq_isccp(klon,k,l) 2163 cc PRINT*,'last jjmp1 i =',i 2164 ENDDO 2165 IF(debut) THEN 2166 DO j=1, jjmp1 2167 DO i=1, iim 2168 IF(j.GE.2.AND.j.LE.jjm) THEN 2169 igfi2D(i,j)=i+1+(j-2)*iim 2170 c PRINT*,'i=',i,'j=',j,'ig=',igfi2D(i,j) 2171 ELSEIF(j.EQ.1) THEN 2172 igfi2D(i,j)=1 2173 c PRINT*,'i=',i,'j=',j,'ig=',igfi2D(i,j) 2174 ELSEIF(j.EQ.jjmp1) THEN 2175 igfi2D(i,j)=klon 2176 c PRINT*,'i=',i,'j=',j,'ig=',igfi2D(i,j) 2177 ENDIF 2178 ENDDO 2179 ENDDO 2180 ENDIF 2181 c STOP 2182 c 2183 c CALL gr_fi_ecrit(1,klon,iim,jjmp1,fq_isccp(:,k,l), 2184 c $ fq4d(:,:,k,l)) 2185 ENDDO 2186 ENDDO 2187 DO l=1, lmax 2188 fq4d(:,:,8,l)=-1.e+10 2189 fq4d(:,:,l,8)=-1.e+10 2190 ENDDO 2191 DO l=1, lmax 2192 DO k=1, kmax 2193 DO j=1, jjmp1 2194 DO i=1, iim 2195 2196 c inversion TAU ?! 2197 c ni=(i-1)*lmax+l 2198 c nj=(j-1)*kmax+kmax-k+1 2199 c 2200 c210503 inversion en PC ==> pas besoin !!! 2201 c ni=(i-1)*lmax+lmax-l+1 2202 c nj=(j-1)*kmax+k 2203 c 2204 c210503 2205 ni=(i-1)*lmax+l 2206 nj=(j-1)*kmax+k 2207 2208 c210503 if(k.EQ.8) then 2209 c fq4d(i,j,8,l)=-1.e+10 2210 c endif 2211 2212 c210503 if(l.EQ.8) then 2213 c fq4d(i,j,k,8)=-1.e+10 2214 c endif 2215 2216 fq3d(ni,nj)=fq4d(i,j,k,l) 2217 2218 c if(fq3d(ni,nj).lt.0.) then 2219 c print*,' fq3d LT ZERO ',ni,nj,fq3d(ni,nj) 2220 c endif 2221 c if(fq3d(ni,nj).gt.100.) then 2222 c print*,' fq3d GT 100 ',ni,nj,fq3d(ni,nj) 2223 c endif 2224 c max & min fq3d 2225 c if(fq3d(ni,nj).gt.maxfq3d) maxfq3d=fq3d(ni,nj) 2226 c if(fq3d(ni,nj).lt.minfq3d) minfq3d=fq3d(ni,nj) 2227 2228 ENDDO 2229 ENDDO 2230 c fq4d(:,:,8,l)=-1.e+10 2231 c fq4d(:,:,k,8)=-1.e+10 2232 c k=k+1 2233 c if(k.LE.kmax) then 2234 c goto 1022 2235 c endif 2236 ENDDO 2237 c l=l+1 2238 c if(l.LE.lmax) then 2239 c goto 1021 2240 c endif 2241 ENDDO 2242 2243 c print*,' minfq3d=',minfq3d,' maxfq3d=',maxfq3d 2244 c 2245 c calculs statistiques distribution nuage ftion du regime dynamique 2246 c DO i=1, klon 2247 c! o500(i)=omega(i,9)*864. 2248 c! PRINT*,' o500=',o500(i),' pphi(9)=',pphi(i,9) 2249 c o500(i)=omega(i,8)*864. 2250 cc PRINT*,' pphi(8)',pphi(i,8),'pphi(11)',pphi(i,11), 2251 cc .'pphi(12)',pphi(i,12) 2252 cc PRINT*,' zphi8,11,12=',zphi(i,8),zphi(i,11),zphi(i,12) 2253 cc PRINT*,' o500',o500(i),' w500',w500(i) 2254 c ENDDO 2255 2256 c axe vertical pour les differents niveaux des histogrammes 2257 c DO iw=1, iwmax 2258 c zx_o500(iw)=wmin+(iw-1./2.)*pas_w 2259 c ENDDO 2260 2261 2262 c Ce calcul doit etre fait a partir de valeurs mensuelles ?? 2263 cc CALL histo_o500_pctau(o500,fq4d,histoW) 2264 cc CALL histo_o500_pctau(paire,pctsrf,o500,fq4d,histoW) 2265 cc CALL histo_o500_pctau(pct_ocean,rlat,o500,fq4d,histoW) 2266 ccOK ??? CALL histo_o500_pctau(pct_ocean,o500,fq4d,histoW) 2267 c CALL histo_o500_pctau(klon,pct_ocean,o500,fq4d,histoW,nhistoW) 2268 c CALL histo_o500_pctau(klon,pct_ocean,o500,fq_isccp, 2269 CALL histo_o500_pctau(nbreg,pct_ocean,o500,fq_isccp, 2270 &histoW,nhistoW) 2271 c 2272 cIM somme de toutes les nhistoW BEG 2273 DO nreg=1, nbreg 2274 DO k = 1, kmaxm1 2275 DO l = 1, lmaxm1 2276 DO iw = 1, iwmax 2277 nhistoWt(k,l,iw,nreg)=nhistoWt(k,l,iw,nreg)+ 2278 & nhistoW(k,l,iw,nreg) 2279 ccc IF(k.EQ.1.AND.l.EQ.1.AND.iw.EQ.1) then 2280 c IF(nhistoWt(k,l,iw).NE.0.) THEN 2281 c PRINT*,' physiq nWt', k,l,iw,nhistoWt(k,l,iw) 2282 c ENDIF 2283 ENDDO 2284 ENDDO 2285 ENDDO 2286 ENDDO 2287 cIM somme de toutes les nhistoW END 2288 c 2289 c IF(lafin) THEN 2290 c DO nreg=1, nbreg 2291 c DO iw=1, iwmax 2292 c DO l=1,lmaxm1 2293 c DO k=1,kmaxm1 2294 c IF(histoW(k,l,iw,nreg).NE.0.) then 2295 c PRINT*,'physiq H nH',k,l,iw, 2296 c & histoW(k,l,iw,nreg), 2297 c & nhistoW(k,l,iw,nreg),nhistoWt(k,l,iw,nreg) 2298 c ENDIF 2299 c ENDDO 2300 c ENDDO 2301 c ENDDO 2302 c ENDDO 2303 cIM verif fq_isccp, fq4d, fq3d 2304 c DO l=1, lmaxm1 2305 c DO k=1,kmaxm1 2306 c i=74 2307 c j=36 2308 c DO j=1, jjmp1 2309 c DO i=1, iim 2310 c DO l=1, lmaxm1 2311 c WRITE(*,'(a,3i4,7f10.4)') 2312 c & 'fq_isccp,j,i,l=',j,i,l, 2313 c & (fq_isccp(igfi2D(i,j),k,l),k=1,kmaxm1) 2314 c WRITE(*,'(a,3i4,7f10.4)') 2315 c & 'fq4d,j,i,l=',j,i,l,(fq4d(i,j,k,l),k=1,kmaxm1) 2316 c ENDDO 2317 c ENDDO 2318 c ENDDO 2319 c ni1=(i-1)*8+1 2320 c ni2=i*8 2321 c nj1=(j-1)*8+1 2322 c nj2=j*8 2323 c DO ni=ni1,ni2 2324 c WRITE(*,'(a,2i4,7f10.4)') 2325 c & 'fq3d, ni,nj=',ni,nj, 2326 c & (fq3d(ni,nj),nj=nj1,nj2) 2327 c ENDDO 2328 c ENDIF 2329 2330 c DO iw=1, iwmax 2331 c DO l=1,lmaxm1 2332 c DO k=1,kmaxm1 2333 c PRINT*,' iw,l,k,nhistoW=',iw,l,k,nhistoW(k,l,iw) 2334 c ENDDO 2335 c ENDDO 2336 c ENDDO 2337 2338 c DO iw=1, iwmax 2339 c DO l=1, lmaxm1 2340 c linv=lmaxm1-l+1 2341 c DO k=1, kmaxm1 2342 c histoWinv(k,l,iw)=histoW(iw,k,l) 2343 c ENDDO 2344 c ENDDO 2345 c ENDDO 2346 c 2347 c pb syncronisation ?? : 48 * 30 * 7 (jour1) + 48* 29 * 7 (jour suivant) 2348 c 2349 2350 2351 ENDIF !ok_isccp 2352 cIM ISCCP simulator END 2353 1618 2354 c On prend la somme des fractions nuageuses et des contenus en eau 1619 2355 cldfra(:,:)=min(max(cldfra(:,:),rnebcon(:,:)),1.) … … 1717 2453 cccIMs topsw0,toplw0,solsw0,sollw0) 1718 2454 s topsw0,toplw0,solsw0,sollw0, 1719 s ZFSUP,ZFSDN,ZFSUP0,ZFSDN0)2455 s swdn0, swdn, swup0, swup ) 1720 2456 itaprad = 0 1721 2457 ENDIF … … 1968 2704 cIM cf. FH slp(:) = paprs(:,1)*exp(pphis(:)/(289.*t_seri(:,1))) 1969 2705 slp(:) = paprs(:,1)*exp(pphis(:)/(RD*t_seri(:,1))) 2706 c PRINT*,' physiq slp ',slp(2185),paprs(2185,1),pphis(2185), 2707 c . RD,t_seri(2185,1) 2708 c 2709 ccc prw = eau precipitable 2710 DO i = 1, klon 2711 prw(i) = 0. 2712 DO k = 1, klev 2713 prw(i) = prw(i) + 2714 . q_seri(i,k)*(paprs(i,k)-paprs(i,k+1))/RG 2715 ENDDO 2716 c PRINT*,' i ',i,' prw',prw(i) 2717 ENDDO 1970 2718 c 1971 2719 … … 1973 2721 c Ecriture des sorties 1974 2722 c============================================================= 2723 2724 #ifdef histISCCP 2725 #include "write_histISCCP.h" 2726 #endif 1975 2727 1976 2728 #ifdef histhf … … 2024 2776 CALL phyredem ("restartphy.nc",dtime,radpas, 2025 2777 . rlat, rlon, pctsrf, ftsol, ftsoil, deltat, fqsurf, qsol, 2026 . fsnow, falbe, fevap, rain_fall, snow_fall,2778 . fsnow, falbe,falblw, fevap, rain_fall, snow_fall, 2027 2779 . solsw, sollwdown,dlw, 2028 2780 . radsol,frugs,agesno, -
LMDZ.3.3/branches/rel-LF/libf/phylmd/radlwsw.F
r433 r467 7 7 . sollwdown, 8 8 . topsw0,toplw0,solsw0,sollw0, 9 . ZFSUP,ZFSDN,ZFSUP0,ZFSDN0)9 . swdn0, swdn, swup0, swup ) 10 10 IMPLICIT none 11 11 c====================================================================== … … 98 98 REAL*8 zsolsw0(kdlon), zsollw0(kdlon) 99 99 REAL*8 zznormcp 100 REAL swdn(klon,2),swdn0(klon,2),swup(klon,2),swup0(klon,2) 100 101 c 101 102 c------------------------------------------- … … 234 235 sollw0(iof+i) = zsollw0(i) 235 236 albpla(iof+i) = zalbpla(i) 237 swdn0 ( iof+i,1) = ZFSDN0 ( i,1 ) 238 swdn0 ( iof+i,2) = ZFSDN0 ( i,kflev + 1 ) 239 swdn ( iof+i,1) = ZFSDN ( i,1 ) 240 swdn ( iof+i,2) = ZFSDN ( i,kflev + 1 ) 241 swup0 ( iof+i,1) = ZFSUP0 ( i,1 ) 242 swup0 ( iof+i,2) = ZFSUP0 ( i,kflev + 1 ) 243 swup ( iof+i,1) = ZFSUP ( i,1 ) 244 swup ( iof+i,2) = ZFSUP ( i,kflev + 1 ) 236 245 ENDDO 237 246 DO k = 1, kflev -
LMDZ.3.3/branches/rel-LF/libf/phylmd/write_histday.h
r463 r467 160 160 c . 'Cloud liquid water path','-') 161 161 c 162 zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, klevp1) 162 c zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, klevp1) 163 zx_tmp_fi2d(1 : klon) = swup( 1 : klon, 2 ) 164 163 165 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 164 166 CALL histwrite(nid_day, "SWupTOA",itau_w,zx_tmp_2d, 165 167 . iim*jjmp1,ndex2d) 166 168 c 167 zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, 1) 169 c zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, 1) 170 zx_tmp_fi2d(1 : klon) = swup( 1 : klon, 1 ) 171 168 172 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 169 173 CALL histwrite(nid_day, "SWupSFC",itau_w,zx_tmp_2d, 170 174 . iim*jjmp1,ndex2d) 171 175 c 172 zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, klevp1) 176 c zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, klevp1) 177 zx_tmp_fi2d(1 : klon) = swdn( 1 : klon, 2 ) 178 173 179 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 174 180 CALL histwrite(nid_day, "SWdnTOA",itau_w,zx_tmp_2d, 175 181 . iim*jjmp1,ndex2d) 176 182 c 177 zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, 1) 183 c zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, 1) 184 zx_tmp_fi2d(1 : klon) = swdn( 1 : klon, 1 ) 185 178 186 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 179 187 CALL histwrite(nid_day, "SWdnSFC",itau_w,zx_tmp_2d, 180 188 . iim*jjmp1,ndex2d) 181 189 190 c zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, klevp1) 191 zx_tmp_fi2d(1 : klon) = swup0( 1 : klon, 2 ) 192 193 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 194 CALL histwrite(nid_day, "SWupTOAclr",itau_w,zx_tmp_2d, 195 . iim*jjmp1,ndex2d) 196 197 c zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, 1) 198 zx_tmp_fi2d(1 : klon) = swup0( 1 : klon, 1 ) 199 200 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 201 CALL histwrite(nid_day, "SWupSFCclr",itau_w,zx_tmp_2d, 202 . iim*jjmp1,ndex2d) 203 204 c zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, klevp1) 205 zx_tmp_fi2d(1 : klon) = swdn0( 1 : klon, 2 ) 206 207 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 208 CALL histwrite(nid_day, "SWdnTOAclr",itau_w,zx_tmp_2d, 209 . iim*jjmp1,ndex2d) 210 211 c zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, 1) 212 zx_tmp_fi2d(1 : klon) = swdn0( 1 : klon, 1 ) 213 214 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 215 CALL histwrite(nid_day, "SWdnSFCclr",itau_w,zx_tmp_2d, 216 . iim*jjmp1,ndex2d) 217 cIM 218 CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d) 219 CALL histwrite(nid_day,"prw",itau_w,zx_tmp_2d, 220 . iim*jjmp1,ndex2d) 182 221 183 222 c Ecriture de champs dynamiques sur des niveaux de pression … … 211 250 . iim*jjmp1,ndex2d) 212 251 213 zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, klevp1)214 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)215 CALL histwrite(nid_day, "SWupTOAclr",itau_w,zx_tmp_2d,216 . iim*jjmp1,ndex2d)217 218 zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, 1)219 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)220 CALL histwrite(nid_day, "SWupSFCclr",itau_w,zx_tmp_2d,221 . iim*jjmp1,ndex2d)222 223 zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, klevp1)224 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)225 CALL histwrite(nid_day, "SWdnTOAclr",itau_w,zx_tmp_2d,226 . iim*jjmp1,ndex2d)227 228 zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, 1)229 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d)230 CALL histwrite(nid_day, "SWdnSFCclr",itau_w,zx_tmp_2d,231 . iim*jjmp1,ndex2d)232 252 233 253 c -
LMDZ.3.3/branches/rel-LF/libf/phylmd/write_histmth.h
r463 r467 459 459 c 460 460 cccIM 461 zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, klevp1) 461 c zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, klevp1) 462 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 2 ) 462 463 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 463 464 CALL histwrite(nid_mth, "SWupTOA",itau_w,zx_tmp_2d, 464 465 . iim*jjmp1,ndex2d) 465 466 c 466 zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, 1) 467 c zx_tmp_fi2d(1 : klon) = ZFSUP( 1 : klon, 1) 468 zx_tmp_fi2d(1 : klon) = swup ( 1 : klon, 1 ) 467 469 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 468 470 CALL histwrite(nid_mth, "SWupSFC",itau_w,zx_tmp_2d, 469 471 . iim*jjmp1,ndex2d) 470 472 c 471 zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, klevp1) 473 c zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, klevp1) 474 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 2 ) 472 475 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 473 476 CALL histwrite(nid_mth, "SWdnTOA",itau_w,zx_tmp_2d, 474 477 . iim*jjmp1,ndex2d) 475 478 c 476 zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, 1) 479 c zx_tmp_fi2d(1 : klon) = ZFSDN( 1 : klon, 1) 480 zx_tmp_fi2d(1 : klon) = swdn ( 1 : klon, 1 ) 477 481 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 478 482 CALL histwrite(nid_mth, "SWdnSFC",itau_w,zx_tmp_2d, 479 483 . iim*jjmp1,ndex2d) 480 484 c 485 CALL gr_fi_ecrit(1, klon,iim,jjmp1, prw,zx_tmp_2d) 486 CALL histwrite(nid_mth,"prw",itau_w,zx_tmp_2d, 487 . iim*jjmp1,ndex2d) 488 481 489 cccIM clear sky 482 zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, klevp1) 490 c zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, klevp1) 491 zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 2 ) 483 492 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 484 493 CALL histwrite(nid_mth, "SWupTOAclr",itau_w,zx_tmp_2d, 485 494 . iim*jjmp1,ndex2d) 486 495 c 487 zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, 1) 496 c zx_tmp_fi2d(1 : klon) = ZFSUP0( 1 : klon, 1) 497 zx_tmp_fi2d(1 : klon) = swup0 ( 1 : klon, 1 ) 488 498 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 489 499 CALL histwrite(nid_mth, "SWupSFCclr",itau_w,zx_tmp_2d, 490 500 . iim*jjmp1,ndex2d) 491 501 c 492 zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, klevp1)502 c zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, klevp1) 493 503 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 494 504 CALL histwrite(nid_mth, "SWdnTOAclr",itau_w,zx_tmp_2d, 495 505 . iim*jjmp1,ndex2d) 496 506 c 497 zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, 1) 507 c zx_tmp_fi2d(1 : klon) = ZFSDN0( 1 : klon, 1) 508 zx_tmp_fi2d(1 : klon) = swdn0 ( 1 : klon, 1 ) 498 509 CALL gr_fi_ecrit(1,klon,iim,jjmp1,zx_tmp_fi2d,zx_tmp_2d) 499 510 CALL histwrite(nid_mth, "SWdnSFCclr",itau_w,zx_tmp_2d,
Note: See TracChangeset
for help on using the changeset viewer.