Changeset 2251 for LMDZ5/trunk/libf/phylmd
- Timestamp:
- Mar 26, 2015, 6:28:25 PM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/phyetat0.F90
r2243 r2251 552 552 ENDDO 553 553 ELSE 554 PRINT*,'AVANT phyetat0_srf'555 554 found=phyetat0_srf(1,z0m,"RUG","Z0m ancien",0.001) 556 PRINT*,'APRES phyetat0_srf'557 555 IF (found) THEN 558 556 z0h(:,1:nbsrf)=z0m(:,1:nbsrf) … … 751 749 ENDIF !(iflag_pbl>1 .AND. iflag_wake>=1 .AND. iflag_pbl_split >=1 ) 752 750 753 ! zmax0 754 CALL get_field("ZMAX0", zmax0, found) 755 IF (.NOT. found) THEN 756 PRINT*, "phyetat0: Le champ <ZMAX0> est absent" 757 PRINT*, "Depart legerement fausse. Mais je continue" 758 zmax0=40. 759 ENDIF 760 PRINT*, '(ecart-type) zmax0:', MINval(zmax0),MAXval(zmax0) 761 762 ! f0(ig)=1.e-5 763 ! f0 764 CALL get_field("F0", f0, found) 765 IF (.NOT. found) THEN 766 PRINT*, "phyetat0: Le champ <f0> est absent" 767 PRINT*, "Depart legerement fausse. Mais je continue" 768 f0=1.e-5 769 ENDIF 770 PRINT*, '(ecart-type) f0:', MINval(f0),MAXval(f0) 771 772 ! sig1 or ema_work1 773 774 CALL get_field("sig1", sig1, found) 775 IF (.NOT. found) CALL get_field("EMA_WORK1", sig1, found) 776 IF (.NOT. found) THEN 777 PRINT*, "phyetat0: Le champ sig1 est absent" 778 PRINT*, "Depart legerement fausse. Mais je continue" 779 sig1=0. 780 ELSE 781 PRINT*, 'sig1:',minval(sig1(:,:)),maxval(sig1(:,:)) 782 ENDIF 783 784 ! w01 or ema_work2 785 786 CALL get_field("w01", w01, found) 787 IF (.NOT. found) CALL get_field("EMA_WORK2", w01, found) 788 IF (.NOT. found) THEN 789 PRINT*, "phyetat0: Le champ w01 est absent" 790 PRINT*, "Depart legerement fausse. Mais je continue" 791 w01=0. 792 ELSE 793 PRINT*, 'w01:', minval(w01(:,:)),maxval(w01(:,:)) 794 ENDIF 795 796 ! wake_deltat 797 798 CALL get_field("WAKE_DELTAT", wake_deltat, found) 799 IF (.NOT. found) THEN 800 PRINT*, "phyetat0: Le champ <WAKE_DELTAT> est absent" 801 PRINT*, "Depart legerement fausse. Mais je continue" 802 wake_deltat=0. 803 ELSE 804 PRINT*, 'wake_deltat:', minval(wake_deltat(:,:)),maxval(wake_deltat(:,:)) 805 ENDIF 806 807 ! wake_deltaq 808 751 !================================== 752 ! thermiques, poches, convection 753 !================================== 754 755 found=phyetat0_get(1,w01,"w01","w01",0.) 756 found=phyetat0_get(1,sig1,"sig1","sig1",0.) 757 758 found=phyetat0_get(klev,wake_deltat,"WAKE_DELTAT","Delta T wake/env",0.) 809 759 found=phyetat0_get(klev,wake_deltaq,"WAKE_DELTAQ","Delta hum. wake/env",0.) 810 ! CALL get_field("WAKE_DELTAQ", wake_deltaq, found) 811 ! IF (.NOT. found) THEN 812 ! PRINT*, "phyetat0: Le champ <WAKE_DELTAQ> est absent" 813 ! PRINT*, "Depart legerement fausse. Mais je continue" 814 ! wake_deltaq=0. 815 ! ELSE 816 ! PRINT*, 'wake_deltaq:', minval(wake_deltaq(:,:)),maxval(wake_deltaq(:,:)) 817 ! ENDIF 818 819 ! wake_s 820 821 CALL get_field("WAKE_S", wake_s, found) 822 IF (.NOT. found) THEN 823 PRINT*, "phyetat0: Le champ <WAKE_S> est absent" 824 PRINT*, "Depart legerement fausse. Mais je continue" 825 wake_s=0. 826 ENDIF 827 PRINT*, '(ecart-type) wake_s:', MINval(wake_s),MAXval(wake_s) 828 829 ! wake_cstar 830 831 CALL get_field("WAKE_CSTAR", wake_cstar, found) 832 IF (.NOT. found) THEN 833 PRINT*, "phyetat0: Le champ <WAKE_CSTAR> est absent" 834 PRINT*, "Depart legerement fausse. Mais je continue" 835 wake_cstar=0. 836 ENDIF 837 PRINT*, '(ecart-type) wake_cstar:', MINval(wake_cstar),MAXval(wake_cstar) 838 839 ! wake_pe 840 841 CALL get_field("WAKE_PE", wake_pe, found) 842 IF (.NOT. found) THEN 843 PRINT*, "phyetat0: Le champ <WAKE_PE> est absent" 844 PRINT*, "Depart legerement fausse. Mais je continue" 845 wake_pe=0. 846 ENDIF 847 xmin = 1.0E+20 848 xmax = -1.0E+20 849 xmin = MINval(wake_pe) 850 xmax = MAXval(wake_pe) 851 PRINT*, '(ecart-type) wake_pe:', xmin, xmax 852 853 ! wake_fip 854 855 CALL get_field("WAKE_FIP", wake_fip, found) 856 IF (.NOT. found) THEN 857 PRINT*, "phyetat0: Le champ <WAKE_FIP> est absent" 858 PRINT*, "Depart legerement fausse. Mais je continue" 859 wake_fip=0. 860 ENDIF 861 xmin = 1.0E+20 862 xmax = -1.0E+20 863 xmin = MINval(wake_fip) 864 xmax = MAXval(wake_fip) 865 PRINT*, '(ecart-type) wake_fip:', xmin, xmax 866 867 ! thermiques 868 869 CALL get_field("FM_THERM", fm_therm, found) 870 IF (.NOT. found) THEN 871 PRINT*, "phyetat0: Le champ <fm_therm> est absent" 872 PRINT*, "Depart legerement fausse. Mais je continue" 873 fm_therm=0. 874 ENDIF 875 xmin = 1.0E+20 876 xmax = -1.0E+20 877 xmin = MINval(fm_therm) 878 xmax = MAXval(fm_therm) 879 PRINT*, '(ecart-type) fm_therm:', xmin, xmax 880 881 CALL get_field("ENTR_THERM", entr_therm, found) 882 IF (.NOT. found) THEN 883 PRINT*, "phyetat0: Le champ <entr_therm> est absent" 884 PRINT*, "Depart legerement fausse. Mais je continue" 885 entr_therm=0. 886 ENDIF 887 xmin = 1.0E+20 888 xmax = -1.0E+20 889 xmin = MINval(entr_therm) 890 xmax = MAXval(entr_therm) 891 PRINT*, '(ecart-type) entr_therm:', xmin, xmax 892 893 CALL get_field("DETR_THERM", detr_therm, found) 894 IF (.NOT. found) THEN 895 PRINT*, "phyetat0: Le champ <detr_therm> est absent" 896 PRINT*, "Depart legerement fausse. Mais je continue" 897 detr_therm=0. 898 ENDIF 899 xmin = 1.0E+20 900 xmax = -1.0E+20 901 xmin = MINval(detr_therm) 902 xmax = MAXval(detr_therm) 903 PRINT*, '(ecart-type) detr_therm:', xmin, xmax 904 905 CALL get_field("ALE_BL", ale_bl, found) 906 IF (.NOT. found) THEN 907 PRINT*, "phyetat0: Le champ <ale_bl> est absent" 908 PRINT*, "Depart legerement fausse. Mais je continue" 909 ale_bl=0. 910 ENDIF 911 xmin = 1.0E+20 912 xmax = -1.0E+20 913 xmin = MINval(ale_bl) 914 xmax = MAXval(ale_bl) 915 PRINT*, '(ecart-type) ale_bl:', xmin, xmax 916 917 CALL get_field("ALE_BL_TRIG", ale_bl_trig, found) 918 IF (.NOT. found) THEN 919 PRINT*, "phyetat0: Le champ <ale_bl_trig> est absent" 920 PRINT*, "Depart legerement fausse. Mais je continue" 921 ale_bl_trig=0. 922 ENDIF 923 xmin = 1.0E+20 924 xmax = -1.0E+20 925 xmin = MINval(ale_bl_trig) 926 xmax = MAXval(ale_bl_trig) 927 PRINT*, '(ecart-type) ale_bl_trig:', xmin, xmax 928 929 CALL get_field("ALP_BL", alp_bl, found) 930 IF (.NOT. found) THEN 931 PRINT*, "phyetat0: Le champ <alp_bl> est absent" 932 PRINT*, "Depart legerement fausse. Mais je continue" 933 alp_bl=0. 934 ENDIF 935 xmin = 1.0E+20 936 xmax = -1.0E+20 937 xmin = MINval(alp_bl) 938 xmax = MAXval(alp_bl) 939 PRINT*, '(ecart-type) alp_bl:', xmin, xmax 940 760 found=phyetat0_get(1,wake_s,"WAKE_S","???",0.) 761 found=phyetat0_get(1,wake_cstar,"WAKE_CSTAR","???",0.) 762 found=phyetat0_get(1,wake_pe,"WAKE_PE","???",0.) 763 found=phyetat0_get(1,wake_fip,"WAKE_FIP","???",0.) 764 765 766 found=phyetat0_get(1,zmax0,"ZMAX0","ZMAX0",40.) 767 found=phyetat0_get(1,f0,"F0","F0",1.e-5) 768 found=phyetat0_get(klev,fm_therm,"FM_THERM","Thermals mass flux",0.) 769 found=phyetat0_get(klev,entr_therm,"ENTR_THERM","Thermals Entrain.",0.) 770 found=phyetat0_get(klev,detr_therm,"DETR_THERM","Thermals Detrain.",0.) 771 772 773 found=phyetat0_get(1,ale_bl,"ALE_BL","ALE BL",0.) 774 found=phyetat0_get(1,ale_bl_trig,"ALE_BL_TRIG","ALE BL_TRIG",0.) 775 found=phyetat0_get(1,alp_bl,"ALP_BL","ALP BL",0.) 776 777 778 !=========================================== 941 779 ! Read and send field trs to traclmdz 780 !=========================================== 942 781 943 782 IF (type_trac == 'lmdz') THEN 944 783 DO it=1, nbtr 945 784 iiq=niadv(it+2) 946 CALL get_field("trs_"//tname(iiq), trs(:, it), found) 947 IF (.NOT. found) THEN 948 PRINT*, & 949 "phyetat0: Le champ <trs_"//tname(iiq)//"> est absent" 950 PRINT*, "Depart legerement fausse. Mais je continue" 951 trs(:, it) = 0. 952 ENDIF 953 xmin = 1.0E+20 954 xmax = -1.0E+20 955 xmin = MINval(trs(:, it)) 956 xmax = MAXval(trs(:, it)) 957 PRINT*, "(ecart-type) trs_"//tname(iiq)//" :", xmin, xmax 958 785 found=phyetat0_get(1,trs(:,it),"trs_"//tname(iiq),"Surf trac"//tname(iiq),0.) 959 786 END DO 960 787 CALL traclmdz_from_restart(trs) 961 788 962 789 IF (carbon_cycle_cpl) THEN 963 ALLOCATE(co2_send(klon), stat=ierr) 964 IF (ierr /= 0) CALL abort_gcm & 965 ('phyetat0', 'pb allocation co2_send', 1) 966 CALL get_field("co2_send", co2_send, found) 967 IF (.NOT. found) THEN 968 PRINT*, "phyetat0: Le champ <co2_send> est absent" 969 PRINT*, "Initialisation uniforme a co2_ppm=", co2_ppm 970 co2_send(:) = co2_ppm 971 END IF 790 found=phyetat0_get(1,co2_send,"co2_send","co2 send",0.) 972 791 END IF 973 792 END IF 974 793 794 !=========================================== 795 ! ondes de gravite non orographiques 796 !=========================================== 797 975 798 if (ok_gwd_rando) then 976 799 call get_field("du_gwd_rando", du_gwd_rando, found) 977 if (.not. found) then 978 print *, "du_gwd_rando not found, setting it to 0." 979 du_gwd_rando = 0. 980 end if 981 982 call get_field("dv_gwd_rando", dv_gwd_rando, found) 983 if (.not. found) then 984 print *, "dv_gwd_rando not found, setting it to 0." 985 dv_gwd_rando = 0. 986 end if 800 found=phyetat0_get(klev,du_gwd_rando,"du_gwd_rando","du_gwd_rando",0.) 801 found=phyetat0_get(klev,dv_gwd_rando,"dv_gwd_rando","dv_gwd_rando",0.) 987 802 end if 988 803 989 ! Initialize Slab variables 804 !=========================================== 805 ! Initialize ocean 806 !=========================================== 807 990 808 IF ( type_ocean == 'slab' ) THEN 991 print*, "calling slab_init"992 809 CALL ocean_slab_init(dtime, pctsrf) 993 ! tslab 994 CALL get_field("tslab", tslab, found) 810 found=phyetat0_get(nslay,tslab,"tslab","tslab",0.) 995 811 IF (.NOT. found) THEN 996 812 PRINT*, "phyetat0: Le champ <tslab> est absent" … … 1000 816 END DO 1001 817 END IF 818 1002 819 ! Sea ice variables 820 found=phyetat0_get(1,tice,"slab_tice","slab_tice",0.) 1003 821 IF (version_ocean == 'sicINT') THEN 1004 CALL get_field("slab_tice", tice, found)1005 822 IF (.NOT. found) THEN 1006 823 PRINT*, "phyetat0: Le champ <tice> est absent" … … 1008 825 tice(:)=ftsol(:,is_sic) 1009 826 END IF 1010 CALL get_field("seaice", seaice, found)1011 827 IF (.NOT. found) THEN 1012 828 PRINT*, "phyetat0: Le champ <seaice> est absent"
Note: See TracChangeset
for help on using the changeset viewer.