Changeset 1176 for LMDZ4/branches/LMDZ4-dev/libf/phylmd
- Timestamp:
- Jun 11, 2009, 10:54:10 AM (16 years ago)
- Location:
- LMDZ4/branches/LMDZ4-dev/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/phylmd/clesphys.h
r1168 r1176 1 1 ! 2 ! 2 ! $Id$ 3 3 ! 4 4 ! ATTENTION!!!!: ce fichier include est compatible format fixe/format libre -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/conf_phys.F90
r1168 r1176 1 1 2 2 ! 3 ! $ Header$3 ! $Id$ 4 4 ! 5 5 ! … … 133 133 REAL,SAVE :: lonmin_ins_omp, lonmax_ins_omp, latmin_ins_omp, latmax_ins_omp 134 134 REAL,SAVE :: ecrit_hf_omp, ecrit_day_omp, ecrit_mth_omp, ecrit_reg_omp 135 REAL,SAVE :: ecrit_ins_omp 135 136 REAL,SAVE :: ecrit_LES_omp 136 137 REAL,SAVE :: ecrit_tra_omp … … 1070 1071 ecrit_hf_omp = 1./8. 1071 1072 call getin('ecrit_hf',ecrit_hf_omp) 1073 ! 1074 !Config Key = ecrit_ins 1075 !Config Desc = 1076 !Config Def = 1./48. ! toutes les 1/2 h 1077 !Config Help = 1078 ! 1079 ecrit_ins_omp = 1./48. 1080 call getin('ecrit_ins',ecrit_ins_omp) 1072 1081 ! 1073 1082 !Config Key = ecrit_day … … 1369 1378 latmax_ins = latmax_ins_omp 1370 1379 ecrit_hf = ecrit_hf_omp 1380 ecrit_ins = ecrit_ins_omp 1371 1381 ecrit_day = ecrit_day_omp 1372 1382 ecrit_mth = ecrit_mth_omp … … 1518 1528 write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',& 1519 1529 lonmin_ins, lonmax_ins, latmin_ins, latmax_ins 1520 write(numout,*)' ecrit_ hf, day, mth, reg, tra, ISCCP, LES',&1521 ecrit_hf, ecrit_ day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP, ecrit_LES1530 write(numout,*)' ecrit_ hf, ins, day, mth, reg, tra, ISCCP, LES',& 1531 ecrit_hf, ecrit_ins, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP, ecrit_LES 1522 1532 1523 1533 write(numout,*) 'ok_strato = ', ok_strato -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/phys_output_mod.F90
r1168 r1176 1 ! 2 ! $Id$ 3 ! 1 4 ! Abderrahmane 12 2007 2 5 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 19 22 integer, dimension(nfiles), save :: lev_files 20 23 integer, dimension(nfiles), save :: nid_files 21 24 !$OMP THREADPRIVATE(clef_files, lev_files,nid_files) 25 22 26 integer, dimension(nfiles), private, save :: nhorim, nvertm 23 real, dimension(nfiles), private, save :: zstophym, zoutm 27 real, dimension(nfiles), private, save :: zoutm 28 real, private, save :: zdtime 24 29 CHARACTER(len=20), dimension(nfiles), private, save :: type_ecri 30 !$OMP THREADPRIVATE(nhorim, nvertm, zoutm,zdtime,type_ecri) 25 31 26 32 ! integer, save :: nid_hf3d … … 473 479 integer :: imin_ins, imax_ins 474 480 integer :: jmin_ins, jmax_ins 481 CHARACTER(len=20), dimension(nfiles) :: type_ecri_files 475 482 476 483 !!!!!!!!!! stockage dans une region limitee pour chaque fichier !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 491 498 name_files(5) = 'histLES' 492 499 493 type_ecri (1) = 'ave(X)'494 type_ecri (2) = 'ave(X)'495 type_ecri (3) = 'ave(X)'496 type_ecri (4) = 'inst(X)'497 type_ecri (5) = 'ave(X)'500 type_ecri_files(1) = 'ave(X)' 501 type_ecri_files(2) = 'ave(X)' 502 type_ecri_files(3) = 'inst(X)' 503 type_ecri_files(4) = 'inst(X)' 504 type_ecri_files(5) = 'ave(X)' 498 505 499 506 clef_files(1) = ok_mensuel … … 524 531 call getin('phys_out_levmax',levmax) 525 532 call getin('phys_out_filenames',name_files) 526 call getin('phys_out_filetypes',type_ecri )533 call getin('phys_out_filetypes',type_ecri_files) 527 534 call getin('phys_out_filekeys',clef_files) 528 535 call getin('phys_out_filelevels',lev_files) 529 536 call getin('phys_out_filetimesteps',ecrit_files) 537 538 type_ecri(:) = type_ecri_files(:) 530 539 531 540 !!!!!!!!!!!!!!!!!!!!!!! Boucle sur les fichiers !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 534 543 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 535 544 545 zdtime = dtime ! Frequence ou l on moyenne 546 536 547 DO iff=1,nfiles 537 548 538 549 IF (clef_files(iff)) THEN 539 550 540 zstophym(iff) = dtime ! Frequence ou l on moyenne541 551 zoutm(iff) = ecrit_files(iff) ! Frequence ou l on ecrit 542 552 … … 606 616 CALL histdef2d(iff,o_aire%flag,o_aire%name,"Grid area", "-") 607 617 CALL histdef2d(iff,o_contfracATM%flag,o_contfracATM%name,"% sfce ter+lic", "-") 608 type_ecri(1) = 'ave(X)' 609 type_ecri(2) = 'ave(X)' 610 type_ecri(3) = 'ave(X)' 611 type_ecri(4) = 'inst(X)' 612 type_ecri(5) = 'ave(X)' 618 type_ecri(:) = type_ecri_files(:) 613 619 614 620 !!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 631 637 type_ecri(5) = 't_max(X)' 632 638 CALL histdef2d(iff,o_t2m_max%flag,o_t2m_max%name, "Temp 2m max", "K" ) 633 type_ecri(1) = 'ave(X)' 634 type_ecri(2) = 'ave(X)' 635 type_ecri(3) = 'ave(X)' 636 type_ecri(4) = 'inst(X)' 637 type_ecri(5) = 'ave(X)' 639 type_ecri(:) = type_ecri_files(:) 638 640 CALL histdef2d(iff,o_wind10m%flag,o_wind10m%name, "10-m wind speed", "m/s") 639 641 CALL histdef2d(iff,o_wind10max%flag,o_wind10max%name, "10m wind speed max", "m/s") … … 714 716 type_ecri(5) = 't_max(X)' 715 717 CALL histdef2d(iff,o_tke_max_srf(nsrf)%flag,o_tke_max_srf(nsrf)%name,"Max Turb. Kinetic Energy "//clnsurf(nsrf),"-") 716 type_ecri(1) = 'ave(X)' 717 type_ecri(2) = 'ave(X)' 718 type_ecri(3) = 'ave(X)' 719 type_ecri(4) = 'inst(X)' 720 type_ecri(5) = 'ave(X)' 718 type_ecri(:) = type_ecri_files(:) 721 719 endif 722 720 CALL histdef2d(iff,o_albe_srf(nsrf)%flag,o_albe_srf(nsrf)%name,"Albedo surf. "//clnsurf(nsrf),"-") … … 764 762 type_ecri(5) = 't_max(X)' 765 763 CALL histdef2d(iff,o_cape_max%flag,o_cape_max%name, "CAPE max.", "J/kg") 766 type_ecri(1) = 'ave(X)' 767 type_ecri(2) = 'ave(X)' 768 type_ecri(3) = 'ave(X)' 769 type_ecri(4) = 'inst(X)' 770 type_ecri(5) = 'ave(X)' 764 type_ecri(:) = type_ecri_files(:) 771 765 CALL histdef3d(iff,o_upwd%flag,o_upwd%name, "saturated updraft", "kg/m2/s") 772 766 CALL histdef3d(iff,o_Ma%flag,o_Ma%name, "undilute adiab updraft", "kg/m2/s") … … 793 787 ! on ecrit u v t q a 850 700 500 200 au niv 3 794 788 795 zstophym(iff) = ecrit_files(iff)796 789 type_ecri(1) = 'inst(X)' 797 790 type_ecri(2) = 'inst(X)' … … 817 810 ENDIF !(bb2.EQ."850".OR.bb2.EQ."700".OR."500".OR.bb2.EQ."200") 818 811 ENDDO 819 zstophym(iff) = dtime 820 type_ecri(1) = 'ave(X)' 821 type_ecri(2) = 'ave(X)' 822 type_ecri(3) = 'ave(X)' 823 type_ecri(4) = 'inst(X)' 824 type_ecri(5) = 'ave(X)' 812 type_ecri(:) = type_ecri_files(:) 825 813 826 814 CALL histdef2d(iff,o_t_oce_sic%flag,o_t_oce_sic%name, "Temp mixte oce-sic", "K") … … 890 878 type_ecri(5) = 't_max(X)' 891 879 CALL histdef3d(iff,o_tke_max%flag,o_tke_max%name, "TKE max", "m2/s2") 892 type_ecri(1) = 'ave(X)' 893 type_ecri(2) = 'ave(X)' 894 type_ecri(3) = 'ave(X)' 895 type_ecri(4) = 'inst(X)' 896 type_ecri(5) = 'ave(X)' 880 type_ecri(:) = type_ecri_files(:) 897 881 endif 898 882 … … 904 888 type_ecri(5) = 't_max(X)' 905 889 CALL histdef3d(iff,o_kz_max%flag,o_kz_max%name, "Kz melange max", "m2/s" ) 906 type_ecri(1) = 'ave(X)' 907 type_ecri(2) = 'ave(X)' 908 type_ecri(3) = 'ave(X)' 909 type_ecri(4) = 'inst(X)' 910 type_ecri(5) = 'ave(X)' 890 type_ecri(:) = type_ecri_files(:) 911 891 CALL histdef3d(iff,o_clwcon%flag,o_clwcon%name, "Convective Cloud Liquid water content", "kg/kg") 912 892 CALL histdef3d(iff,o_dtdyn%flag,o_dtdyn%name, "Dynamics dT", "K/s") … … 1021 1001 character(len=*) :: unitvar 1022 1002 1003 real zstophym 1004 1005 if (type_ecri(iff)=='inst(X)') then 1006 zstophym=zoutm(iff) 1007 else 1008 zstophym=zdtime 1009 endif 1010 1023 1011 ! Appel a la lecture des noms et niveau d'ecriture des variables dans output.def 1024 1012 call conf_physoutputs(nomvar,flag_var) … … 1027 1015 call histdef (nid_files(iff),nomvar,titrevar,unitvar, & 1028 1016 iim,jj_nb,nhorim(iff), 1,1,1, -99, 32, & 1029 type_ecri(iff), zstophym (iff),zoutm(iff))1017 type_ecri(iff), zstophym,zoutm(iff)) 1030 1018 endif 1031 1019 end subroutine histdef2d … … 1050 1038 character(len=*) :: unitvar 1051 1039 1040 real zstophym 1041 1052 1042 ! Appel a la lecture des noms et niveau d'ecriture des variables dans output.def 1053 1043 call conf_physoutputs(nomvar,flag_var) 1044 1045 if (type_ecri(iff)=='inst(X)') then 1046 zstophym=zoutm(iff) 1047 else 1048 zstophym=zdtime 1049 endif 1054 1050 1055 1051 if ( flag_var(iff)<=lev_files(iff) ) then … … 1057 1053 iim, jj_nb, nhorim(iff), klev, levmin(iff), & 1058 1054 levmax(iff)-levmin(iff)+1, nvertm(iff), 32, type_ecri(iff), & 1059 zstophym (iff), zoutm(iff))1055 zstophym, zoutm(iff)) 1060 1056 endif 1061 1057 end subroutine histdef3d -
LMDZ4/branches/LMDZ4-dev/libf/phylmd/physiq.F
r1168 r1176 1 ! 2 ! $Id$ 3 ! 1 4 c#define IO_DEBUG 2 5 … … 1420 1423 . lmt_pas 1421 1424 c 1422 cIM200505 ecrit_mth = NINT(86400./dtime *ecritphy) ! tous les ecritphy jours1423 c IF (ok_mensuel) THEN1424 c WRITE(lunout,*)'La frequence de sortie mensuelle est de ',1425 c . ecrit_mth1426 c ENDIF1427 c ecrit_day = NINT(86400./dtime *1.0) ! tous les jours1428 c IF (ok_journe) THEN1429 c WRITE(lunout,*)'La frequence de sortie journaliere est de ',1430 c . ecrit_day1431 c ENDIF1432 cIM 130904 BEG1433 cIM 080205 ecrit_hf = 86400./dtime *0.25 ! toutes les 6h1434 cIM 1703051435 c ecrit_hf = 86400./dtime/12. ! toutes les 2h1436 cIM 2303051437 cIM200505 ecrit_hf = 86400./dtime *0.25 ! toutes les 6h1438 c1439 cIM200505 ecrit_hf2mth = ecrit_day/ecrit_hf*301440 c1441 cIM200505 IF (ok_journe) THEN1442 cIM200505 WRITE(lunout,*)'La frequence de sortie hf est de ',1443 cIM200505 . ecrit_hf1444 cIM200505 ENDIF1445 cIM 130904 END1446 ccc ecrit_ins = NINT(86400./dtime *0.5) ! 2 fois par jour1447 ccc ecrit_ins = NINT(86400./dtime *0.25) ! 4 fois par jour1448 c ecrit_ins = NINT(86400./dtime/48.) ! a chaque pas de temps ==> PB. dans time_counter pour 1mois1449 c ecrit_ins = NINT(86400./dtime/12.) ! toutes les deux heures1450 cIM200505 ecrit_ins = NINT(86400./dtime/8.) ! toutes les trois heures1451 cIM200505 IF (ok_instan) THEN1452 cIM200505 WRITE(lunout,*)'La frequence de sortie instant. est de ',1453 cIM200505 . ecrit_ins1454 cIM200505 ENDIF1455 cIM200505 ecrit_reg = NINT(86400./dtime *0.25) ! 4 fois par jour1456 cIM200505 IF (ok_region) THEN1457 cIM200505 WRITE(lunout,*)'La frequence de sortie region est de ',1458 cIM200505 . ecrit_reg1459 cIM200505 ENDIF1460 cIM 030306 BEG1461 cIM ecrit_hf2mth = nombre de pas de temps de calcul de hf par mois apres lequel on ecrit1462 cIM : ne pas modifier ecrit_hf2mth1463 c1464 1425 cIM 250308bad guide ecrit_hf2mth = 30*1/ecrit_hf 1465 1426 ecrit_hf2mth = ecrit_mth/ecrit_hf 1466 c ecrit_ins en secondes, chaque pas de temps de la physique 1467 ecrit_ins = dtime 1468 cIM on passe les frequences de jours en secondes : ecrit_ins, ecrit_hf, ecrit_day, ecrit_mth, ecrit_tra, ecrit_reg 1427 1469 1428 ecrit_hf = ecrit_hf * un_jour 1470 1429 !IM … … 1474 1433 !IM 1475 1434 ecrit_mth = ecrit_mth * un_jour 1435 ecrit_ins = ecrit_ins * un_jour 1476 1436 ecrit_reg = ecrit_reg * un_jour 1477 1437 ecrit_tra = ecrit_tra * un_jour
Note: See TracChangeset
for help on using the changeset viewer.