Changeset 845 for LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd
- Timestamp:
- Sep 14, 2007, 4:01:10 PM (17 years ago)
- Location:
- LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/albedo.F
r766 r845 21 21 cym#include "dimphy.h" 22 22 #include "YOMCST.h" 23 #include "clesphys.h" 23 24 c 24 REAL fmagic ! un facteur magique pour regler l'albedo 25 c fmagic -> clesphys.h/.inc 26 c REAL fmagic ! un facteur magique pour regler l'albedo 25 27 ccc PARAMETER (fmagic=0.7) 26 28 cccIM => a remplacer 27 29 c PARAMETER (fmagic=1.32) 28 30 c PARAMETER (fmagic=1.0) 29 31 c PARAMETER (fmagic=0.7) 30 32 INTEGER npts ! il controle la precision de l'integration … … 144 146 cym#include "dimensions.h" 145 147 cym#include "dimphy.h" 148 #include "clesphys.h" 146 149 REAL rmu0(klon), albedo(klon) 147 150 c 148 151 c REAL fmagic ! un facteur magique pour regler l'albedo 149 152 ccc PARAMETER (fmagic=0.7) 150 153 cccIM => a remplacer 151 154 c PARAMETER (fmagic=1.32) 152 155 c PARAMETER (fmagic=1.0) 153 156 c PARAMETER (fmagic=0.7) 154 157 c -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/calcul_simulISCCP.h
r766 r845 10 10 c 11 11 nbapp_isccp=30 !appel toutes les 15h 12 isccppas=NINT((itap*dtime)/3600.) !Nb. d'heures de la physique12 cIM 170107 isccppas=NINT((itap*dtime)/3600.) !Nb. d'heures de la physique 13 13 freqin_pdt(n)=ifreq_isccp(n) 14 14 c -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/clesphys.h
r793 r845 31 31 !IM ok_kzmin : clef calcul Kzmin dans la CL de surface cf FH 32 32 LOGICAL ok_kzmin 33 !IM fmagic : parametre pour regler l albedo sur ocean 34 REAL fmagic 33 35 !IM lev_histhf : niveau sorties 6h 34 36 !IM lev_histday : niveau sorties journalieres … … 40 42 REAL ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day 41 43 REAL ecrit_mth, ecrit_tra, ecrit_reg 42 REAL freq in_isccp, freqout_isccp44 REAL freq_ISCCP, ecrit_ISCCP 43 45 INTEGER :: ip_ebil_phy 44 46 LOGICAL ok_slab_sicOBS … … 49 51 & , CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt & 50 52 & , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter & 51 & , ok_kzmin, lev_histhf, lev_histday, lev_histmth&53 & , ok_kzmin, fmagic, lev_histhf, lev_histday, lev_histmth & 52 54 & , type_run, ok_isccp, ok_regdyn & 53 55 & , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins & 54 56 & , ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day & 55 57 & , ecrit_mth, ecrit_tra, ecrit_reg & 56 & , freq in_isccp, freqout_isccp, ip_ebil_phy&58 & , freq_ISCCP, ecrit_ISCCP, ip_ebil_phy & 57 59 & , ok_slab_sicOBS, ok_lic_melt, cvl_corr 58 60 -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/conf_phys.F90
r793 r845 5 5 ! 6 6 7 subroutine conf_phys(ocean, ok_veget, ok_journe, ok_mensuel, ok_instan, &7 subroutine conf_phys(ocean, ok_veget, ok_journe, ok_mensuel, ok_instan, ok_hf, & 8 8 & fact_cldcon, facttemps,ok_newmicro,iflag_cldcon, & 9 9 !IM& ratqsbas,ratqshaut,ip_ebil_phy, & … … 19 19 include "fisrtilp.h" 20 20 include "nuage.h" 21 21 include "YOMCST.h" 22 22 !IM : on inclut/initialise les taux de CH4, N2O, CFC11 et CFC12 23 23 include "clesphys.h" … … 35 35 ! ok_veget: type de modele de vegetation 36 36 ! ok_journe: sorties journalieres 37 ! ok_hf: sorties haute frequence 37 38 ! ok_mensuel: sorties mensuelles 38 39 ! ok_instan: sorties instantanees … … 45 46 character (len = 6) :: ocean 46 47 logical :: ok_veget, ok_newmicro 47 logical :: ok_journe, ok_mensuel, ok_instan 48 logical :: ok_journe, ok_mensuel, ok_instan, ok_hf 48 49 LOGICAL :: ok_ade, ok_aie 49 50 REAL :: bl95_b0, bl95_b1 … … 53 54 character (len = 6),SAVE :: ocean_omp 54 55 logical,SAVE :: ok_veget_omp, ok_newmicro_omp 55 logical,SAVE :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp 56 logical,SAVE :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp, ok_hf_omp 56 57 LOGICAL,SAVE :: ok_ade_omp, ok_aie_omp 57 58 REAL,SAVE :: bl95_b0_omp, bl95_b1_omp 59 REAL,SAVE :: freq_ISCCP_omp, ecrit_ISCCP_omp 58 60 real,SAVE :: fact_cldcon_omp, facttemps_omp,ratqsbas_omp 59 61 real,SAVE :: ratqshaut_omp … … 80 82 REAL,SAVE :: cdmmax_omp,cdhmax_omp,ksta_omp,ksta_ter_omp 81 83 LOGICAL,SAVE :: ok_kzmin_omp 84 REAL, SAVE :: fmagic_omp 82 85 INTEGER,SAVE :: iflag_pbl_omp,lev_histhf_omp,lev_histday_omp,lev_histmth_omp 83 86 CHARACTER*4, SAVE :: type_run_omp … … 119 122 call getin('OK_journe', ok_journe_omp) 120 123 ! 124 !Config Key = ok_hf 125 !Config Desc = Pour des sorties haute frequence 126 !Config Def = .false. 127 !Config Help = Pour creer le fichier histhf contenant les sorties 128 ! haute frequence ( 3h ou 6h) 129 ! 130 ok_hf_omp = .false. 131 call getin('ok_hf', ok_hf_omp) 132 ! 121 133 !Config Key = OK_mensuel 122 134 !Config Desc = Pour des sorties mensuelles … … 171 183 call getin('bl95_b1', bl95_b1_omp) 172 184 173 ! 185 !Config Key = freq_ISCCP 186 !Config Desc = Frequence d'appel du simulateur ISCCP en secondes; 187 ! par defaut 10800, i.e. 3 heures 188 !Config Def = 10800. 189 !Config Help = Used in ini_histISCCP.h 190 ! 191 freq_ISCCP_omp = 10800. 192 call getin('freq_ISCCP', freq_ISCCP_omp) 193 ! 194 !Config Key = ecrit_ISCCP 195 !Config Desc = Frequence d'ecriture des resultats du simulateur ISCCP en nombre de jours; 196 ! par defaut 1., i.e. 1 jour 197 !Config Def = 1. 198 !Config Help = Used in ini_histISCCP.h 199 ! 200 ! 201 ecrit_ISCCP_omp = 1. 202 call getin('ecrit_ISCCP', ecrit_ISCCP_omp) 174 203 ! 175 204 !Config Key = ip_ebil_phy … … 562 591 call getin('ok_kzmin',ok_kzmin_omp) 563 592 593 ! 594 !Config Key = fmagic 595 !Config Desc = 596 !Config Def = 1. 597 !Config Help = Used in albedo.F 598 ! 599 fmagic_omp = 1. 600 call getin('fmagic',fmagic_omp) 601 564 602 !Config Key = ok_lic_melt 565 603 !Config Desc = Prise en compte de la fonte de la calotte dans le bilan d'eau … … 636 674 call getin('type_run',type_run_omp) 637 675 638 676 ! 639 677 !Config Key = ok_isccp 640 678 !Config Desc = … … 693 731 !Config Desc = 694 732 !Config Def = 1.0 !tous les jours 695 !Config Help = 733 !Config Help = nombre de jours pour ecriture fichier histday.nc 696 734 ! 697 735 ecrit_day_omp = 1.0 … … 773 811 ksta_ter = ksta_ter_omp 774 812 ok_kzmin = ok_kzmin_omp 813 fmagic = fmagic_omp 775 814 iflag_pbl = iflag_pbl_omp 776 815 lev_histhf = lev_histhf_omp … … 782 821 ok_newmicro = ok_newmicro_omp 783 822 ok_journe = ok_journe_omp 823 ok_hf = ok_hf_omp 784 824 ok_mensuel = ok_mensuel_omp 785 825 ok_instan = ok_instan_omp 826 freq_ISCCP = freq_ISCCP_omp 827 ecrit_ISCCP = ecrit_ISCCP_omp 786 828 ok_ade = ok_ade_omp 787 829 ok_aie = ok_aie_omp … … 818 860 write(numout,*)' Config veget = ', ok_veget 819 861 write(numout,*)' Sortie journaliere = ', ok_journe 862 write(numout,*)' Sortie haute frequence = ', ok_hf 820 863 write(numout,*)' Sortie mensuelle = ', ok_mensuel 821 864 write(numout,*)' Sortie instantanee = ', ok_instan 865 write(numout,*)' Frequence appel simulateur ISCCP, freq_ISCCP =', freq_ISCCP 866 write(numout,*)' Frequence appel simulateur ISCCP, ecrit_ISCCP =', ecrit_ISCCP 822 867 write(numout,*)' Sortie bilan d''energie, ip_ebil_phy =', ip_ebil_phy 823 868 write(numout,*)' Excentricite = ',R_ecc … … 858 903 write(numout,*)' ksta_ter = ',ksta_ter 859 904 write(numout,*)' ok_kzmin = ',ok_kzmin 905 write(numout,*)' fmagic = ',fmagic 860 906 write(numout,*)' ok_ade = ',ok_ade 861 907 write(numout,*)' ok_aie = ',ok_aie … … 871 917 write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',& 872 918 & lonmin_ins, lonmax_ins, latmin_ins, latmax_ins 873 write(numout,*)' ecrit_ hf, day, mth, reg ',&874 & ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra 919 write(numout,*)' ecrit_ hf, day, mth, reg, tra, ISCCP',& 920 & ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra, ecrit_ISCCP 875 921 876 922 !$OMP END MASTER -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/cpl_mod.F90
r793 r845 17 17 ! Use statements 18 18 !************************************************************************************* 19 USE dimphy, ONLY : klon , zmasq19 USE dimphy, ONLY : klon 20 20 USE mod_phys_lmdz_para 21 21 USE ioipsl … … 71 71 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: pctsrf_sav 72 72 !$OMP THREADPRIVATE(pctsrf_sav) 73 REAL, ALLOCATABLE, DIMENSION(:,:), SAVE :: zmasq2D74 !$OMP THREADPRIVATE(zmasq2D)75 73 INTEGER, ALLOCATABLE, DIMENSION(:), SAVE :: unity 76 74 !$OMP THREADPRIVATE(unity) … … 181 179 ALLOCATE(read_alb_sic(iim, jj_nb), stat = error) 182 180 sum_error = sum_error + error 183 ALLOCATE(zmasq2D(iim, jj_nb), stat = error)184 sum_error = sum_error + error185 186 181 187 182 IF (sum_error /= 0) THEN … … 202 197 cpl_taux = 0. ; cpl_tauy = 0. ; cpl_rriv2D = 0. ; cpl_rcoa2D = 0. 203 198 cpl_rlic2D = 0. ; cpl_windsp = 0. 204 205 !*************************************************************************************206 ! Transform the land-ocean mask into 2D grid.207 ! Colorize zmasq2D with 99 so that after gath2cpl points not valid can be recognized.208 !209 !*************************************************************************************210 zmasq2D(:,:) = 99.211 CALL gath2cpl(zmasq, zmasq2D, klon, unity)212 199 213 200 !************************************************************************************* … … 936 923 INTEGER, DIMENSION(iim*(jjm+1)) :: ndexct 937 924 REAL :: Up, Down 938 REAL, DIMENSION(iim, jj_nb) :: tmp_lon, tmp_lat939 REAL, DIMENSION(iim, jj_nb, 4) :: pctsrf2D940 REAL, DIMENSION(iim, jj_nb) :: deno925 REAL, DIMENSION(iim, jj_nb) :: tmp_lon, tmp_lat 926 REAL, DIMENSION(iim, jj_nb, 4) :: pctsrf2D 927 REAL, DIMENSION(iim, jj_nb) :: deno 941 928 CHARACTER(len = 20) :: modname = 'cpl_send_all' 942 929 CHARACTER(len = 80) :: abort_message 943 930 944 931 ! Variables with fields to coupler 945 REAL, DIMENSION(iim, jj_nb) :: tmp_taux946 REAL, DIMENSION(iim, jj_nb) :: tmp_tauy947 REAL, DIMENSION(iim, jj_nb) :: tmp_calv932 REAL, DIMENSION(iim, jj_nb) :: tmp_taux 933 REAL, DIMENSION(iim, jj_nb) :: tmp_tauy 934 REAL, DIMENSION(iim, jj_nb) :: tmp_calv 948 935 ! Table with all fields to send to coupler 949 REAL, DIMENSION(iim, jj_nb, jpflda2o1+jpflda2o2) :: tab_flds936 REAL, DIMENSION(iim, jj_nb, jpflda2o1+jpflda2o2) :: tab_flds 950 937 #ifdef CPP_PARA 951 938 INCLUDE 'mpif.h' … … 1036 1023 tmp_tauy(:,:) = 0.0 1037 1024 1038 ! For all valid grid cells not entier land 1039 WHERE (zmasq2D /= 1. .AND. zmasq2D /=99. ) 1040 deno = pctsrf2D(:,:,is_oce) + pctsrf2D(:,:,is_sic) ! fraction oce+seaice 1025 1026 ! fraction oce+seaice 1027 deno = pctsrf2D(:,:,is_oce) + pctsrf2D(:,:,is_sic) 1028 ! For all valid grid cells containing some fraction of ocean or sea-ice 1029 WHERE ( deno(:,:) /= 0 ) 1030 tab_flds(:,:,15) = cpl_rain2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1031 cpl_rain2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1032 tab_flds(:,:,16) = cpl_snow2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1033 cpl_snow2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1041 1034 1042 tab_flds(:,:,15) = cpl_rain2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno + & 1043 cpl_rain2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno 1044 tab_flds(:,:,16) = cpl_snow2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno + & 1045 cpl_snow2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno 1046 1047 tmp_taux = cpl_taux2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno + & 1048 cpl_taux2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno 1049 tmp_tauy = cpl_tauy2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno + & 1050 cpl_tauy2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno 1035 tmp_taux = cpl_taux2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1036 cpl_taux2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1037 tmp_tauy = cpl_tauy2D(:,:,1) * pctsrf2D(:,:,is_oce) / deno(:,:) + & 1038 cpl_tauy2D(:,:,2) * pctsrf2D(:,:,is_sic) / deno(:,:) 1051 1039 ENDWHERE 1052 1040 -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/cv3_routines.F
r776 r845 1075 1075 endif 1076 1076 506 continue 1077 buoy(icb(i),k)=buoybase(i) 1077 cIM cf. CRio/JYG 270807 buoy(icb(i),k)=buoybase(i) 1078 buoy(i,icb(i))=buoybase(i) 1078 1079 505 continue 1079 1080 … … 1204 1205 enddo 1205 1206 enddo 1206 1207 1207 1208 do 600 k=minorig+1,nl 1208 1209 do 590 i=1,ncum -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/ini_histISCCP.h
r776 r845 15 15 cIM 300505 zstophy = dtime 16 16 c appel du simulateur toutes les 3heures 17 zcals(1) = dtime *6. !toutes les 3h (en s) 17 !IM on lit la frequence d'appel dans physiq.def 18 ! zcals(1) = dtime *6. !toutes les 3h (en s) 19 zcals(1) = freq_ISCCP !toutes les freq_ISCCP secondes 18 20 DO n=1, napisccp 19 21 zcalh(n) = zcals(n)/3600. !stoutes les Xh (en heures) … … 29 31 c IF(freqout_isccp.EQ.1.) THEN 30 32 c ecriture jounaliere 31 zout_isccp(1) = ecrit_day !(en s) 33 !IM on ecrit les resultats du simulateur ISCCP toutes les 34 ! ecrit_ISCCP secondes zout_isccp(1) = ecrit_day !(en s) 35 zout_isccp(1) = ecrit_ISCCP !(en s) 32 36 c ecriture mensuelle 33 37 c zout = dtime * ecrit_mth !(en s) … … 37 41 c le nombre de sous-colonnes ncol : ncol=(100.*zcalh)/zoutd 38 42 ncol(n)=NINT((100.*zcalh(n))/zoutj(n)) 39 PRINT*,'n ncol',n,ncol(n) 43 IF(ncol(n).GT.ncolmx) THEN 44 PRINT*,'Warning: Augmenter le nombre colonnes du simulateur' 45 PRINT*,' ISCCP ncol=', ncol,' ncolmx=',ncolmx 46 c PRINT*,'n ncol',n,ncol(n) 47 CALL abort 48 ENDIF 40 49 c 41 50 DO l=1, ncol(n) … … 80 89 cym enddo 81 90 c 82 print*,'On stoke le fichier histISCCP instantannesur ',91 print*,'On stoke le fichier histISCCP sur ', 83 92 s imin_ins,imax_ins,jmin_ins,jmax_ins 84 93 cym print*,'On stoke le fichier histISCCP instantanne sur ', … … 94 103 CALL histbeg_phy("histISCCP.nc", itau_phy, zjulian, dtime, 95 104 . nhori, nid_isccp) 96 97 105 ENDIF !(1.EQ.0) THEN 98 106 c … … 106 114 CALL histbeg_phy("histISCCP.nc", itau_phy, zjulian, dtime, 107 115 . nhori, nid_isccp) 108 109 116 c 110 117 IF(type_run.EQ."ENSP".OR.type_run.EQ."CLIM") THEN … … 128 135 c 129 136 DO k=1, kmaxm1 130 CALL histdef(nid_isccp, "cldISCCP_"//taulev(k)// typinout(n),137 CALL histdef(nid_isccp, "cldISCCP_"//taulev(k)//verticaxe(n), 131 138 . "LMDZ ISCCP cld", "%", 132 139 . iim, jj_nb,nhori,lmaxm1,1,lmaxm1,nvert,32, … … 134 141 ENDDO 135 142 c 136 CALL histdef(nid_isccp, "nsunlit"// typinout(n),143 CALL histdef(nid_isccp, "nsunlit"//verticaxe(n), 137 144 . "Nb of calls with sunlit ", "%", 138 145 . iim, jj_nb,nhori,1,1,1,-99,32, … … 150 157 DO l=1, lmaxm1 151 158 c 152 CALL histdef(nid_isccp, pclev(l)//taulev(k)// typinout(n),159 CALL histdef(nid_isccp, pclev(l)//taulev(k)//verticaxe(n), 153 160 . "LMDZ ISCCP cld "//cnameisccp(l,k), "%", 154 161 . iim, jj_nb,nhori,1,1,1,-99,32, … … 159 166 c 160 167 c print*,'n=',n,' avant histdef(..Nb of calls sunlit' 161 CALL histdef(nid_isccp, "nsunlit"// typinout(n),168 CALL histdef(nid_isccp, "nsunlit"//verticaxe(n), 162 169 . "Nb of calls with sunlit ", "%", 163 170 . iim, jj_nb,nhori,1,1,1,-99,32, -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/ini_histmth.h
r776 r845 833 833 C 834 834 if (nqmax.GE.3) THEN 835 DO iq=1,nqmax-2 836 IF (iq.LE.99) THEN 837 WRITE(str2,'(i2.2)') iq 838 CALL histdef(nid_mth, "trac"//str2, "Tracer No."//str2, "-", 839 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 840 . "ave(X)", zstophy,zout) 841 ELSE 842 PRINT*, "Trop de traceurs" 843 CALL abort 844 ENDIF 845 ENDDO 835 DO iq=3,nqmax 836 iiq=niadv(iq) 837 CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-", 838 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 839 . "ave(X)", zstophy,zout) 840 ENDDO 846 841 ENDIF 847 842 c … … 1745 1740 C 1746 1741 if (nqmax.GE.3) THEN 1747 DO iq=3,nqmax1748 iiq=niadv(iq)1749 CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-",1750 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 1751 . "ave(X)", zstophy,zout) 1752 ENDDO1753 ENDIF1742 DO iq=3,nqmax 1743 iiq=niadv(iq) 1744 CALL histdef(nid_mth, tnom(iq), ttext(iiq), "-", 1745 . iim,jj_nb,nhori, klev,1,klev,nvert, 32, 1746 . "ave(X)", zstophy,zout) 1747 ENDDO 1748 ENDIF 1754 1749 1755 1750 ENDIF !lev_histmth.GE.4 -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/ini_paramLMDZ_phy.h
r776 r845 347 347 . "once", zstophy,zout) 348 348 c 349 CALL histdef(nid_ctesGCM, "freq in_isccp",350 . "freq in_isccp", "-",351 . iim,jjmp1,nhori, 1,1,1, -99, 32, 352 . "once", zstophy,zout) 353 c 354 CALL histdef(nid_ctesGCM, " freqout_isccp",355 . " freqout_isccp", "-",349 CALL histdef(nid_ctesGCM, "freq_ISCCP", 350 . "freq_ISCCP", "-", 351 . iim,jjmp1,nhori, 1,1,1, -99, 32, 352 . "once", zstophy,zout) 353 c 354 CALL histdef(nid_ctesGCM, "ecrit_ISCCP", 355 . "ecrit_ISCCP", "-", 356 356 . iim,jjmp1,nhori, 1,1,1, -99, 32, 357 357 . "once", zstophy,zout) -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/physiq.F
r800 r845 385 385 INTEGER jmin_debut, nbptj 386 386 cIM parametres ISCCP BEG 387 INTEGER nbapp_isccp,isccppas 387 INTEGER nbapp_isccp 388 ! INTEGER nbapp_isccp,isccppas 389 ! PARAMETER(isccppas=6) !appel du simulateurs tous les 6pas de temps de la physique 390 ! !i.e. toutes les 3 heures 388 391 INTEGER n, napisccp 389 392 c PARAMETER(napisccp=3) … … 419 422 INTEGER ncolmx, seed(klon,napisccp) 420 423 REAL nbsunlit(nregISCtot,klon,napisccp) !nbsunlit : moyenne de sunlit 421 PARAMETER(ncolmx=350) 424 c PARAMETER(ncolmx=1500) 425 PARAMETER(ncolmx=300) 422 426 c 423 427 cIM verif boxptop BEG … … 495 499 c$OMP THREADPRIVATE(nid_isccp) 496 500 497 c data ok_isccp,ecrit_isccp/.true.,0.125/498 c data ok_isccp,ecrit_isccp/.true.,1./499 cIM 190504 data ok_isccp/.true./500 cIM 190504 #else501 cIM 190504 data ok_isccp/.false./502 cIM 190504 #endif503 504 501 REAL zx_tau(kmaxm1), zx_pc(lmaxm1), zx_o500(iwmax) 505 502 DATA zx_tau/0.0, 0.3, 1.3, 3.6, 9.4, 23., 60./ 506 503 SAVE zx_tau 507 cIM bad 151205 DATA zx_pc/50., 180., 310., 440., 560., 680., 800./508 504 DATA zx_pc/180., 310., 440., 560., 680., 800., 1000./ 509 505 SAVE zx_pc … … 600 596 c QUESTION : noms de variables ? 601 597 602 #ifdef histhf603 data ok_hf/.true./604 #else605 data ok_hf/.false./606 #endif598 c#ifdef histhf 599 c data ok_hf/.true./ 600 c#else 601 c data ok_hf/.false./ 602 c#endif 607 603 INTEGER longcles 608 604 PARAMETER ( longcles = 20 ) … … 1167 1163 REAL tabcntr0( length ) 1168 1164 c 1169 1170 1165 INTEGER ndex2d(iim*jjmp1),ndex3d(iim*jjmp1*klev) 1171 1166 cIM … … 1526 1521 c 1527 1522 call conf_phys(ocean, ok_veget, ok_journe, ok_mensuel, 1528 . ok_instan, fact_cldcon, facttemps,ok_newmicro, 1523 . ok_instan, ok_hf, 1524 . fact_cldcon, facttemps,ok_newmicro, 1529 1525 cIM . iflag_cldcon,ratqsbas,ratqshaut, if_ebil, 1530 1526 . iflag_cldcon,ratqsbas,ratqshaut, … … 1696 1692 cIM on passe les frequences de jours en secondes : ecrit_ins, ecrit_hf, ecrit_day, ecrit_mth, ecrit_tra, ecrit_reg 1697 1693 ecrit_hf = ecrit_hf * un_jour 1698 ecrit_day = ecrit_day * un_jour 1694 !IM 1695 IF(ecrit_day.LE.1.) THEN 1696 ecrit_day = ecrit_day * un_jour !en secondes 1697 ENDIF 1698 !IM 1699 1699 ecrit_mth = ecrit_mth * un_jour 1700 1700 ecrit_reg = ecrit_reg * un_jour 1701 1701 ecrit_tra = ecrit_tra * un_jour 1702 ecrit_ISCCP = ecrit_ISCCP * un_jour 1703 c 1704 PRINT*,'physiq ecrit_ hf day mth reg tra ISCCP',ecrit_hf, 1705 . ecrit_day,ecrit_mth,ecrit_reg,ecrit_tra,ecrit_ISCCP 1702 1706 cIM 030306 END 1703 1707 … … 1744 1748 #endif 1745 1749 1746 c#include "ini_histday_seri.h"1747 1750 #include "ini_histday_seri.h" 1748 1751 … … 2532 2535 cIM calcul nuages par le simulateur ISCCP 2533 2536 c 2537 #ifdef histISCCP 2534 2538 IF (ok_isccp) THEN 2539 cIM appel simulateur toutes les NINT(freq_ISCCP/dtime) heures 2540 IF (MOD(itap,NINT(freq_ISCCP/dtime)).EQ.0) THEN 2535 2541 #include "calcul_simulISCCP.h" 2542 ENDIF !(MOD(itap,NINT(freq_ISCCP/dtime)) 2536 2543 ENDIF !ok_isccp 2544 #endif 2537 2545 2538 2546 c On prend la somme des fractions nuageuses et des contenus en eau -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/surf_land_orchidee_mod.F90
r812 r845 371 371 #endif 372 372 #ifdef ORC_PREPAR 373 ! Interface for version 1.8 or earlier of ORCHIDEE373 ! Interface for ORCHIDEE version 1.9 or earlier compiled in sequential mode(without preprocessing flag CPP_PARA) 374 374 CALL intersurf_main (itime+itau_phy-1, iim, jjm+1, knon, ktindex, dtime, & 375 375 lrestart_read, lrestart_write, lalo, & … … 383 383 384 384 #else 385 ! Interface for ORCHIDEE version 1.9 compiled in parallel mode(with preprocessing flag CPP_PARA) 385 386 CALL intersurf_main (itime+itau_phy-1, iim, jjm+1, offset, knon, ktindex, & 386 387 orch_comm, dtime, lrestart_read, lrestart_write, lalo, & … … 406 407 407 408 #ifdef ORC_PREPAR 408 ! Interface for version 1.8 or earlier of ORCHIDEE409 CALL intersurf_main (itime+itau_phy -1, iim, jjm+1, knon, ktindex, dtime, &409 ! Interface for ORCHIDEE version 1.9 or earlier compiled in sequential mode(without preprocessing flag CPP_PARA) 410 CALL intersurf_main (itime+itau_phy, iim, jjm+1, knon, ktindex, dtime, & 410 411 lrestart_read, lrestart_write, lalo, & 411 412 contfrac, neighbours, resolution, date0, & 412 413 zlev, u1_lay, v1_lay, spechum, temp_air, epot_air, ccanopy, & 413 414 cdrag, petA_orc, peqA_orc, petB_orc, peqB_orc, & 414 precip_rain, precip_snow, lwdown, swnet, swdown , ps, &415 precip_rain, precip_snow, lwdown, swnet, swdown_vrai, ps, & 415 416 evap, fluxsens, fluxlat, coastalflow, riverflow, & 416 417 tsol_rad, tsurf_new, qsurf, albedo_out, emis_new, z0_new, & … … 418 419 419 420 #else 420 421 ! Interface for ORCHIDEE version 1.9 compiled in parallel mode(with preprocessing flag CPP_PARA) 421 422 CALL intersurf_main (itime+itau_phy, iim, jjm+1,offset, knon, ktindex, & 422 423 orch_comm,dtime, lrestart_read, lrestart_write, lalo, & -
LMDZ4/branches/LMDZ4_V3_patches/libf/phylmd/write_histISCCP.h
r776 r845 20 20 cIM: champ 3d : (lon,lat,pres) pour un tau fixe 21 21 c 22 CALL histwrite_phy(nid_isccp,"cldISCCP_"//taulev(k)// typinout(n),22 CALL histwrite_phy(nid_isccp,"cldISCCP_"//taulev(k)//verticaxe(n), 23 23 . itau_w,zx_tmp_fi3d) 24 24 ENDDO !k 25 25 c 26 26 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d) 27 CALL histwrite_phy(nid_isccp,"nsunlit"// typinout(n),itau_w,27 CALL histwrite_phy(nid_isccp,"nsunlit"//verticaxe(n),itau_w, 28 28 . nbsunlit(1,:,n)) 29 29 c … … 55 55 cIM: champ 2d : (lon,lat) pour un tau et une pc fixes 56 56 c 57 CALL histwrite_phy(nid_isccp,pclev(l)//taulev(k)// typinout(n),58 . itau_w,fq_is_true(:, :,l,n))57 CALL histwrite_phy(nid_isccp,pclev(l)//taulev(k)//verticaxe(n), 58 . itau_w,fq_is_true(:,k,l,n)) 59 59 ENDDO !l 60 60 ENDDO !k … … 62 62 c print*,'n=',n,' write_ISCCP avant nbsunlit' 63 63 cym CALL gr_fi_ecrit(1, klon,iim,jjmp1,nbsunlit(1,:,n),zx_tmp_2d) 64 CALL histwrite_phy(nid_isccp,"nsunlit"// typinout(n),64 CALL histwrite_phy(nid_isccp,"nsunlit"//verticaxe(n), 65 65 . itau_w,nbsunlit(1,:,n)) 66 66 c
Note: See TracChangeset
for help on using the changeset viewer.