Changeset 740 for LMDZ4/branches
- Timestamp:
- Dec 8, 2006, 12:45:43 PM (18 years ago)
- Location:
- LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd
- Files:
-
- 21 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/calcul_STDlev.h
r644 r740 6 6 c 7 7 CALL ini_undefSTD(nlevSTD,itap, 8 $ ecrit_day,ecrit_mth,8 $ dtime,ecrit_day,ecrit_mth, 9 9 $ tnondef,tsumSTD) 10 10 CALL ini_undefSTD(nlevSTD,itap, 11 $ ecrit_day,ecrit_mth,11 $ dtime,ecrit_day,ecrit_mth, 12 12 $ tnondef,usumSTD) 13 13 CALL ini_undefSTD(nlevSTD,itap, 14 $ ecrit_day,ecrit_mth,14 $ dtime,ecrit_day,ecrit_mth, 15 15 $ tnondef,vsumSTD) 16 16 CALL ini_undefSTD(nlevSTD,itap, 17 $ ecrit_day,ecrit_mth,17 $ dtime,ecrit_day,ecrit_mth, 18 18 $ tnondef,wsumSTD) 19 19 CALL ini_undefSTD(nlevSTD,itap, 20 $ ecrit_day,ecrit_mth,20 $ dtime,ecrit_day,ecrit_mth, 21 21 $ tnondef,phisumSTD) 22 22 CALL ini_undefSTD(nlevSTD,itap, 23 $ ecrit_day,ecrit_mth,23 $ dtime,ecrit_day,ecrit_mth, 24 24 $ tnondef,qsumSTD) 25 25 CALL ini_undefSTD(nlevSTD,itap, 26 $ ecrit_day,ecrit_mth,26 $ dtime,ecrit_day,ecrit_mth, 27 27 $ tnondef,rhsumSTD) 28 28 CALL ini_undefSTD(nlevSTD,itap, 29 $ ecrit_day,ecrit_mth,29 $ dtime,ecrit_day,ecrit_mth, 30 30 $ tnondef,uvsumSTD) 31 31 CALL ini_undefSTD(nlevSTD,itap, 32 $ ecrit_day,ecrit_mth,32 $ dtime,ecrit_day,ecrit_mth, 33 33 $ tnondef,vqsumSTD) 34 34 CALL ini_undefSTD(nlevSTD,itap, 35 $ ecrit_day,ecrit_mth,35 $ dtime,ecrit_day,ecrit_mth, 36 36 $ tnondef,vTsumSTD) 37 37 CALL ini_undefSTD(nlevSTD,itap, 38 $ ecrit_day,ecrit_mth,38 $ dtime,ecrit_day,ecrit_mth, 39 39 $ tnondef,wqsumSTD) 40 40 CALL ini_undefSTD(nlevSTD,itap, 41 $ ecrit_day,ecrit_mth,41 $ dtime,ecrit_day,ecrit_mth, 42 42 $ tnondef,vphisumSTD) 43 43 CALL ini_undefSTD(nlevSTD,itap, 44 $ ecrit_day,ecrit_mth,44 $ dtime,ecrit_day,ecrit_mth, 45 45 $ tnondef,wTsumSTD) 46 46 CALL ini_undefSTD(nlevSTD,itap, 47 $ ecrit_day,ecrit_mth,47 $ dtime,ecrit_day,ecrit_mth, 48 48 $ tnondef,u2sumSTD) 49 49 CALL ini_undefSTD(nlevSTD,itap, 50 $ ecrit_day,ecrit_mth,50 $ dtime,ecrit_day,ecrit_mth, 51 51 $ tnondef,v2sumSTD) 52 52 CALL ini_undefSTD(nlevSTD,itap, 53 $ ecrit_day,ecrit_mth,53 $ dtime,ecrit_day,ecrit_mth, 54 54 $ tnondef,T2sumSTD) 55 55 c … … 155 155 c 156 156 cIM on somme les valeurs definies a chaque pas de temps de la physique ou 157 cIM toutes les 6 heures157 cIM toutes les "hautes frequences" 158 158 c 159 159 oknondef(1:klon,1:nlevSTD,1:nout)=.TRUE. 160 160 CALL undefSTD(nlevSTD,itap,tlevSTD, 161 $ ecrit_hf,161 $ dtime,ecrit_hf, 162 162 $ oknondef,tnondef,tsumSTD) 163 163 c 164 164 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 165 165 CALL undefSTD(nlevSTD,itap,ulevSTD, 166 $ ecrit_hf,166 $ dtime,ecrit_hf, 167 167 $ oknondef,tnondef,usumSTD) 168 168 c 169 169 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 170 170 CALL undefSTD(nlevSTD,itap,vlevSTD, 171 $ ecrit_hf,171 $ dtime,ecrit_hf, 172 172 $ oknondef,tnondef,vsumSTD) 173 173 c 174 174 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 175 175 CALL undefSTD(nlevSTD,itap,wlevSTD, 176 $ ecrit_hf,176 $ dtime,ecrit_hf, 177 177 $ oknondef,tnondef,wsumSTD) 178 178 c 179 179 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 180 180 CALL undefSTD(nlevSTD,itap,philevSTD, 181 $ ecrit_hf,181 $ dtime,ecrit_hf, 182 182 $ oknondef,tnondef,phisumSTD) 183 183 c 184 184 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 185 185 CALL undefSTD(nlevSTD,itap,qlevSTD, 186 $ ecrit_hf,186 $ dtime,ecrit_hf, 187 187 $ oknondef,tnondef,qsumSTD) 188 188 c 189 189 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 190 190 CALL undefSTD(nlevSTD,itap,rhlevSTD, 191 $ ecrit_hf,191 $ dtime,ecrit_hf, 192 192 $ oknondef,tnondef,rhsumSTD) 193 193 c 194 194 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 195 195 CALL undefSTD(nlevSTD,itap,uvSTD, 196 $ ecrit_hf,196 $ dtime,ecrit_hf, 197 197 $ oknondef,tnondef,uvsumSTD) 198 198 c 199 199 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 200 200 CALL undefSTD(nlevSTD,itap,vqSTD, 201 $ ecrit_hf,201 $ dtime,ecrit_hf, 202 202 $ oknondef,tnondef,vqsumSTD) 203 203 c 204 204 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 205 205 CALL undefSTD(nlevSTD,itap,vTSTD, 206 $ ecrit_hf,206 $ dtime,ecrit_hf, 207 207 $ oknondef,tnondef,vTsumSTD) 208 208 c 209 209 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 210 210 CALL undefSTD(nlevSTD,itap,wqSTD, 211 $ ecrit_hf,211 $ dtime,ecrit_hf, 212 212 $ oknondef,tnondef,wqsumSTD) 213 213 c 214 214 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 215 215 CALL undefSTD(nlevSTD,itap,vphiSTD, 216 $ ecrit_hf,216 $ dtime,ecrit_hf, 217 217 $ oknondef,tnondef,vphisumSTD) 218 218 c 219 219 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 220 220 CALL undefSTD(nlevSTD,itap,wTSTD, 221 $ ecrit_hf,221 $ dtime,ecrit_hf, 222 222 $ oknondef,tnondef,wTsumSTD) 223 223 c 224 224 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 225 225 CALL undefSTD(nlevSTD,itap,u2STD, 226 $ ecrit_hf,226 $ dtime,ecrit_hf, 227 227 $ oknondef,tnondef,u2sumSTD) 228 228 c 229 229 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 230 230 CALL undefSTD(nlevSTD,itap,v2STD, 231 $ ecrit_hf,231 $ dtime,ecrit_hf, 232 232 $ oknondef,tnondef,v2sumSTD) 233 233 c 234 234 oknondef(1:klon,1:nlevSTD,1:nout)=.FALSE. 235 235 CALL undefSTD(nlevSTD,itap,T2STD, 236 $ ecrit_hf,236 $ dtime,ecrit_hf, 237 237 $ oknondef,tnondef,T2sumSTD) 238 238 c … … 240 240 c 241 241 CALL moy_undefSTD(nlevSTD,itap, 242 $ ecrit_day,ecrit_mth,ecrit_hf2mth,242 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 243 243 $ tnondef,tsumSTD) 244 244 c 245 245 CALL moy_undefSTD(nlevSTD,itap, 246 $ ecrit_day,ecrit_mth,ecrit_hf2mth,246 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 247 247 $ tnondef,usumSTD) 248 248 c 249 249 CALL moy_undefSTD(nlevSTD,itap, 250 $ ecrit_day,ecrit_mth,ecrit_hf2mth,250 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 251 251 $ tnondef,vsumSTD) 252 252 c 253 253 CALL moy_undefSTD(nlevSTD,itap, 254 $ ecrit_day,ecrit_mth,ecrit_hf2mth,254 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 255 255 $ tnondef,wsumSTD) 256 256 c 257 257 CALL moy_undefSTD(nlevSTD,itap, 258 $ ecrit_day,ecrit_mth,ecrit_hf2mth,258 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 259 259 $ tnondef,phisumSTD) 260 260 c 261 261 CALL moy_undefSTD(nlevSTD,itap, 262 $ ecrit_day,ecrit_mth,ecrit_hf2mth,262 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 263 263 $ tnondef,qsumSTD) 264 264 c 265 265 CALL moy_undefSTD(nlevSTD,itap, 266 $ ecrit_day,ecrit_mth,ecrit_hf2mth,266 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 267 267 $ tnondef,rhsumSTD) 268 268 c 269 269 CALL moy_undefSTD(nlevSTD,itap, 270 $ ecrit_day,ecrit_mth,ecrit_hf2mth,270 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 271 271 $ tnondef,uvsumSTD) 272 272 c 273 273 CALL moy_undefSTD(nlevSTD,itap, 274 $ ecrit_day,ecrit_mth,ecrit_hf2mth,274 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 275 275 $ tnondef,vqsumSTD) 276 276 c 277 277 CALL moy_undefSTD(nlevSTD,itap, 278 $ ecrit_day,ecrit_mth,ecrit_hf2mth,278 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 279 279 $ tnondef,vTsumSTD) 280 280 c 281 281 CALL moy_undefSTD(nlevSTD,itap, 282 $ ecrit_day,ecrit_mth,ecrit_hf2mth,282 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 283 283 $ tnondef,wqsumSTD) 284 284 c 285 285 CALL moy_undefSTD(nlevSTD,itap, 286 $ ecrit_day,ecrit_mth,ecrit_hf2mth,286 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 287 287 $ tnondef,vphisumSTD) 288 288 c 289 289 CALL moy_undefSTD(nlevSTD,itap, 290 $ ecrit_day,ecrit_mth,ecrit_hf2mth,290 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 291 291 $ tnondef,wTsumSTD) 292 292 c 293 293 CALL moy_undefSTD(nlevSTD,itap, 294 $ ecrit_day,ecrit_mth,ecrit_hf2mth,294 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 295 295 $ tnondef,u2sumSTD) 296 296 c 297 297 CALL moy_undefSTD(nlevSTD,itap, 298 $ ecrit_day,ecrit_mth,ecrit_hf2mth,298 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 299 299 $ tnondef,v2sumSTD) 300 300 c 301 301 CALL moy_undefSTD(nlevSTD,itap, 302 $ ecrit_day,ecrit_mth,ecrit_hf2mth,302 $ dtime,ecrit_day,ecrit_mth,ecrit_hf2mth, 303 303 $ tnondef,T2sumSTD) 304 304 c -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/calcul_divers.h
r644 r740 5 5 c initialisations diverses au "debut" du mois 6 6 c 7 IF(MOD(itap, ecrit_mth).EQ.1) THEN7 IF(MOD(itap,NINT(ecrit_mth/dtime)).EQ.1) THEN 8 8 DO i=1, klon 9 9 nday_rain(i)=0. … … 19 19 ENDIF !MOD(itap,ecrit_mth).EQ.1 20 20 c 21 IF(MOD(itap, ecrit_day).EQ.0) THEN21 IF(MOD(itap,NINT(ecrit_day/dtime)).EQ.0) THEN 22 22 c 23 23 cIM calcul total_rain, nday_rain … … 27 27 IF(total_rain(i).GT.0.) nday_rain(i)=nday_rain(i)+1. 28 28 ENDDO 29 ENDIF !itap.EQ.ecrit_ mth29 ENDIF !itap.EQ.ecrit_day -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/calcul_simulISCCP.h
r738 r740 86 86 close(99) 87 87 c 88 cIM: calcul coordonnees regions pour statistiques distribution89 cIM: nuages en ftion du regime dynamique pour regions oceaniques90 c91 IF (ok_regdyn) THEN !histREGDYN92 c93 #include "ini_coord_REGDYN.h"94 c95 ENDIF !ok_regdyn96 c97 88 ENDIF !debut 98 89 c … … 140 131 debugcol=0 141 132 c 142 cIM o500 ==> distribution nuage ftion du regime dynamique (vit. verticale a 500 hPa)143 c144 DO k=1, klevm1145 kp1=k+1146 c PRINT*,'k, presnivs',k,presnivs(k), presnivs(kp1)147 if(presnivs(k).GT.50000.AND.presnivs(kp1).LT.50000.) THEN148 DO i=1, klon149 o500(i)=omega(i,k)*RDAY/100.150 c if(i.EQ.1) print*,' 500hPa lev',k,presnivs(k),presnivs(kp1)151 ENDDO152 GOTO 1000153 endif154 1000 continue155 ENDDO156 c157 133 cIM recalcule les nuages vus par satellite, via le simulateur ISCCP 158 134 c … … 184 160 & boxptop) 185 161 c 186 c calcul regime dynamique sur les regions fixees187 c188 IF (ok_regdyn) THEN !histREGDYN189 c190 #include "calcul_REGDYN.h"191 c192 ENDIF !(ok_regdyn) THEN !histREGDYN193 162 cIM ENDIF !(MOD(itaprad,radpas).EQ.0) THEN 194 163 cIM 010904 END -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/clesphys.h
r723 r740 24 24 INTEGER lev_histhf, lev_histday, lev_histmth 25 25 CHARACTER*4 type_run 26 LOGICAL ok_isccp , ok_regdyn26 LOGICAL ok_isccp 27 27 REAL lonmin_ins, lonmax_ins, latmin_ins, latmax_ins 28 28 REAL ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day 29 REAL ecrit_mth, ecrit_tra, ecrit_reg 29 REAL ecrit_mth, ecrit_tra, ecrit_reg, ecrit_ISCCP 30 30 31 31 COMMON/clesphys/cycle_diurne, soil_model, new_oliq, … … 35 35 S , top_height, overlap, cdmmax, cdhmax, ksta, ksta_ter 36 36 S , ok_kzmin, lev_histhf, lev_histday, lev_histmth 37 S , type_run, ok_isccp , ok_regdyn37 S , type_run, ok_isccp 38 38 S , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins 39 39 S , ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day 40 S , ecrit_mth, ecrit_tra, ecrit_reg, bug_ozone40 S , ecrit_mth, ecrit_tra, ecrit_reg, ecrit_ISCCP, bug_ozone -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/conf_phys.F90
r652 r740 5 5 ! 6 6 7 subroutine conf_phys( ocean, ok_veget, ok_journe, ok_mensuel, ok_instan, &7 subroutine conf_phys(pdtphys, ocean, ok_veget, ok_journe, ok_mensuel, ok_instan, & 8 8 & fact_cldcon, facttemps,ok_newmicro,iflag_cldcon, & 9 9 & ratqsbas,ratqshaut,if_ebil, & … … 30 30 ! 31 31 32 ! 32 ! pdtphys: pas d'integration pour la physique (seconde) 33 33 ! ocean: type d'ocean (force, slab, couple) 34 34 ! ok_veget: type de modele de vegetation … … 40 40 ! 41 41 42 42 ! Entree: 43 REAL :: pdtphys 43 44 ! Sortie: 44 45 character (len = 6) :: ocean … … 49 50 real :: fact_cldcon, facttemps,ratqsbas,ratqshaut 50 51 integer :: iflag_cldcon, if_ebil 52 integer :: iflag_thermals,nsplit_thermals 51 53 52 54 ! Local … … 54 56 real :: zzz 55 57 56 integer :: iflag_thermals,nsplit_thermals58 REAL, PARAMETER :: un_jour=86400. 57 59 ! 58 60 ! … … 597 599 598 600 ! 599 !600 !Config Key = ok_regdyn601 !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 601 ! coordonnees (lonmin_ins, lonmax_ins, latmin_ins, latmax_ins) pour la zone 610 602 ! avec sorties instantannees tous les pas de temps de la physique => "histbilKP_ins.nc" … … 643 635 ! 644 636 !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.) 637 !Config Desc = frequence ecriture fichier histins.nc en secondes 638 !Config Def = pdtphys !a chaque pas de temps physique 639 !Config Help = 640 ! 641 ecrit_ins = pdtphys 651 642 call getin('ecrit_ins',ecrit_ins) 652 643 ! 653 644 !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) 645 !Config Desc = frequence ecriture fichier histhf.nc en nombre de jours 646 !Config Def = 0.25 !toutes les 6h 647 !Config Help = 648 ! 649 ecrit_hf = 0.25 660 650 call getin('ecrit_hf',ecrit_hf) 651 ecrit_hf = ecrit_hf * un_jour !ecrit_hf en secondes 652 ! 653 ! 654 !Config Key = ecrit_day 655 !Config Desc = frequence ecriture fichier histday.nc en nombre de jours 656 !Config Def = 1.0 !tous les jours 657 !Config Help = 658 ! 659 ecrit_day = 1.0 660 call getin('ecrit_day',ecrit_day) 661 ecrit_day = ecrit_day * un_jour !ecrit_day en secondes 662 ! 663 !Config Key = ecrit_mth 664 !Config Desc = frequence ecriture fichier histmth.nc en nombre de jours 665 !Config Def = 30. !1fois par mois 666 !Config Help = 667 ! 668 ecrit_mth = 30. 669 call getin('ecrit_mth',ecrit_mth) 670 ecrit_mth = ecrit_mth * un_jour !ecrit_mth en secondes 661 671 ! 662 672 !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 673 !Config Desc = frequence ecriture/calcul fichier histNMC.nc ; calcul a partir des 674 !Config Desc = valeurs haute frequence "hf" et ecriture 1 fois par mois 675 !Config Def = ecrit_mth/ecrit_hf !ecriture mens. a partir de val. inst. toutes les 6h 676 !Config Help = 677 ! 678 ecrit_hf2mth = ecrit_mth/ecrit_hf 668 679 call getin('ecrit_hf2mth',ecrit_hf2mth) 669 680 ! 670 !Config Key = ecrit_day671 !Config Desc =672 !Config Def = NINT(86400./dtime *1.0) !tous les jours673 !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_mth680 !Config Desc =681 !Config Def = NINT(86400./dtime *ecritphy) !1fois par mois682 !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 681 !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) 682 !Config Desc = frequence ecriture fichier histrac.nc en secondes (!) 683 !Config Def = pdtphys !tous les pas de temps physiques 684 !Config Help = 685 ! 686 ecrit_tra = pdtphys 695 687 call getin('ecrit_tra',ecrit_tra) 696 688 ! 689 !Config Key = ecrit_ISCCP 690 !Config Desc = frequence de sortie fichier histISCCP.nc en nombre de jours 691 !Config Def = 1. !1 fois par jour 692 !Config Help = 693 ! 694 ecrit_ISCCP = 1. 695 call getin('ecrit_ISCCP',ecrit_ISCCP) 696 ! 697 ! 697 698 !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 699 !Config Desc = frequence de sortie region du fichier ?? en nombre de jours 700 !Config Def = 0.25 !4 fois par jour 701 !Config Help = 702 ! 703 ecrit_reg = 0.25 !4 fois par jour 704 704 call getin('ecrit_reg',ecrit_reg) 705 ! 705 ecrit_reg = ecrit_reg * un_jour !!ecrit_reg en secondes 706 706 ! 707 707 ! … … 769 769 write(numout,*)' type_run = ',type_run 770 770 write(numout,*)' ok_isccp = ',ok_isccp 771 write(numout,*)' ok_regdyn = ',ok_regdyn772 771 write(numout,*)' lonmin lonmax latmin latmax bilKP_ins =',& 773 772 & lonmin_ins, lonmax_ins, latmin_ins, latmax_ins -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/ini_bilKP_ave.h
r723 r740 5 5 c 6 6 zsto = dtime 7 zout = dtime *ecrit_day7 zout = ecrit_day 8 8 typeval=tave 9 9 c -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/ini_histISCCP.h
r723 r740 11 11 zstophy = dtime 12 12 c 13 c zout : frequence ecriture 14 c 13 15 c ecriture 8 fois par jour 14 16 c zout = dtime * REAL(NINT(86400./dtime*ecrit_isccp)) … … 18 20 c zout = dtime 19 21 c 20 c ecriture mensuelle 21 zout = dtime * ecrit_mth 22 c zout = dtime * ecrit_day 23 c 24 c PRINT*, 'La frequence de sortie ISCCP est de ', ecrit_isccp 22 zout = ecrit_ISCCP 25 23 c 26 24 idayref = day_ref 27 25 CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian) 28 26 write(*,*)'ISCCP ', itau_phy, zjulian 29 c30 27 c 31 28 c definition coordonnees lon,lat en globale -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/ini_histREGDYN.h
r644 r740 38 38 c ecriture mensuelle 39 39 c 40 zout = dtime *ecrit_mth40 zout = ecrit_mth 41 41 cIM 020904 42 42 c zout = dtime * ecrit_day -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/ini_histday.h
r723 r740 5 5 c 6 6 zstophy = dtime 7 zstoday= dtime *ecrit_day8 zout = dtime *ecrit_day7 zstoday= ecrit_day 8 zout = ecrit_day 9 9 c 10 10 idayref = day_ref -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/ini_histday_seri.h
r723 r740 5 5 c 6 6 zstophy = dtime 7 zout = dtime *ecrit_day7 zout = ecrit_day 8 8 c 9 9 idayref = day_ref -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/ini_histhf.h
r723 r740 5 5 IF (ok_hf) THEN 6 6 c 7 zstohf = dtime *ecrit_hf7 zstohf = ecrit_hf 8 8 zstophy = dtime 9 zstoday = dtime *ecrit_day10 zout = dtime *ecrit_hf9 zstoday = ecrit_day 10 zout = ecrit_hf 11 11 c 12 12 idayref = day_ref -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/ini_histhf3d.h
r723 r740 4 4 c sorties hf 3d 5 5 c 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 * ecrit_hf 11 zout = dtime * ecrit_hf 6 zstohf = ecrit_hf 7 zout = ecrit_hf 12 8 c 13 9 c PRINT*, 'La frequence de sortie hf3d est de ', ecrit_hf -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/ini_histins.h
r644 r740 4 4 IF (ok_instan) THEN 5 5 c 6 zsto = dtime *ecrit_ins7 zout = dtime *ecrit_ins6 zsto = ecrit_ins 7 zout = ecrit_ins 8 8 c 9 9 idayref = day_ref … … 24 24 write(*,*)'Inst ', itau_phy, zjulian 25 25 CALL histvert(nid_ins, "presnivs", "Vertical levels", "mb", 26 cIM . klev, presnivs, nvert)27 26 . klev, presnivs/100., nvert) 28 27 c call histvert(nid_ins, 'sig_s', 'Niveaux sigma','-', … … 201 200 . "inst(X)", zsto,zout) 202 201 c 203 c204 cIM cf. AM 081204 BEG205 c HBTM2206 202 CALL histdef(nid_ins, "s_pblh", "Boundary Layer Height", "m", 207 203 . iim,jjmp1,nhori, 1,1,1, -99, 32, … … 247 243 . "inst(X)", zsto,zout) 248 244 c 249 cIM cf. AM 081204 END250 c251 245 c Champs 3D: 252 246 c -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/ini_histmth.h
r723 r740 5 5 c 6 6 zstophy = dtime 7 zstomth = dtime * ecrit_mth!valeurs mensuelles "instantannees"7 zstomth = ecrit_mth !valeurs mensuelles "instantannees" 8 8 zstorad = dtime * FLOAT(radpas) !variables stockees toutes les 2h 9 zstohf = dtime * ecrit_hf!variables stockees toutes les 6h10 zout = dtime * ecrit_mth!frequence des sorties : 1 val. par mois11 c 12 c IMPRINT*,' La zstophy,zstorad,zstohf,zstomth,zout=',13 c IM. zstophy,zstorad,zstohf,zstomth,zout9 zstohf = ecrit_hf !variables stockees toutes les 6h 10 zout = ecrit_mth !frequence des sorties : 1 val. par mois 11 c 12 c PRINT*,' La zstophy,zstorad,zstohf,zstomth,zout=', 13 c . zstophy,zstorad,zstohf,zstomth,zout 14 14 c 15 15 idayref = day_ref -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/ini_histmthNMC.h
r723 r740 5 5 c 6 6 zstophy = dtime 7 zstohf = dtime *ecrit_hf8 zstomth = dtime *ecrit_mth9 zout = dtime *ecrit_mth7 zstohf = ecrit_hf 8 zstomth = ecrit_mth 9 zout = ecrit_mth 10 10 c 11 11 idayref = day_ref -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/ini_histrac.h
r723 r740 39 39 40 40 zsto = pdtphys 41 zout = pdtphys * ecrit_tra 41 zout = ecrit_tra 42 c 43 c print*,'ini_histrac: zsto zout',zsto,zout 42 44 c 43 45 CALL histdef(nid_tra, "phis", "Surface geop. height", "-", -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/ini_undefSTD.F
r644 r740 1 1 SUBROUTINE ini_undefSTD(nlevSTD,itap, 2 $ ecrit_day,ecrit_mth,2 $ dtime, ecrit_day,ecrit_mth, 3 3 $ tnondef,tsumSTD) 4 4 IMPLICIT none … … 33 33 INTEGER nlevSTD, klevSTD, itap 34 34 PARAMETER(klevSTD=17) 35 INTEGER ecrit_day,ecrit_mth 35 071206 36 REAL dtime 37 REAL ecrit_day,ecrit_mth 36 38 c 37 39 c variables locales … … 45 47 c initialisation variables journalieres en debut de journee 46 48 c 47 IF(MOD(itap, ecrit_day).EQ.1.) THEN49 IF(MOD(itap,NINT(ecrit_day/dtime)).EQ.1.) THEN 48 50 DO k=1, nlevSTD 49 51 DO i=1, klon … … 57 59 c en debut de mois : nout=2 58 60 c 59 IF(MOD(itap, ecrit_mth).EQ.1.) THEN61 IF(MOD(itap,NINT(ecrit_mth/dtime)).EQ.1.) THEN 60 62 c 61 63 DO k=1, nlevSTD -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/physiq.F
r738 r740 43 43 #define histmth 44 44 #define histISCCP 45 #define histREGDYN46 45 #define histmthNMC 47 46 c====================================================================== … … 381 380 REAL nbsunlit(nregISCtot,klon) !nbsunlit : moyenne de sunlit 382 381 INTEGER ncol, seed(klon) 382 383 383 cIM ajout seed_re (REAL)et seed_old (integer) 384 384 REAL seed_re(klon), aa 385 385 INTEGER seed_old(klon) 386 386 SAVE seed_old 387 387 388 388 389 … … 439 440 REAL o500(klon) 440 441 c 441 cIM: nbregdyn = nbre regions pour calculs statistiques sur output du ISCCP442 cIM: dynamiques443 INTEGER nreg, nbregdyn444 PARAMETER(nbregdyn=5)445 REAL histoW(kmaxm1,lmaxm1,iwmax,nbregdyn)446 REAL nhistoW(kmaxm1,lmaxm1,iwmax,nbregdyn)447 REAL nhistoWt(kmaxm1,lmaxm1,iwmax,nbregdyn)448 SAVE nhistoWt449 450 INTEGER linv451 INTEGER pct_ocean(klon,nbregdyn)452 442 453 443 c sorties ISCCP 454 444 455 c logical ok_isccp456 c real ecrit_isccp457 445 integer nid_isccp 458 c save ok_isccp, ecrit_isccp, nid_isccp459 446 save nid_isccp 460 447 cIM 090704 BEG 461 448 INTEGER nbapp_isccp,isccppas 462 463 c sorties statistiques regime dynamique464 c logical ok_regdyn465 c real ecrit_regdyn466 integer nid_regdyn467 c save ok_regdyn, ecrit_regdyn, nid_regdyn468 save nid_regdyn469 449 470 450 REAL zx_tau(kmaxm1), zx_pc(lmaxm1), zx_o500(iwmax) … … 546 526 c 547 527 logical ok_hf 548 cIM200505 integer ecrit_hf549 cIM200505 integer ecrit_hf2mth550 cIM200505 save ecrit_hf2mth551 528 c 552 529 integer nid_hf, nid_hf3d 553 cIM200505 save ok_hf, ecrit_hf, nid_hf, nid_hf3d554 530 save ok_hf, nid_hf, nid_hf3d 555 531 … … 557 533 558 534 #ifdef histhf 559 cIM 130904 data ok_hf,ecrit_hf/.true.,0.25/560 535 data ok_hf/.true./ 561 536 #else … … 1034 1009 c 1035 1010 c====================================================================== 1036 cIM200505 INTEGER ecrit_mth1037 cIM200505 SAVE ecrit_mth ! frequence d'ecriture (fichier mensuel)1038 1011 c 1039 1012 cIM cf. AM 081204 BEG … … 1051 1024 cIM cf. AM 081204 END 1052 1025 1053 c1054 cIM200505 INTEGER ecrit_day1055 cIM200505 SAVE ecrit_day ! frequence d'ecriture (fichier journalier)1056 c1057 cIM200505 INTEGER ecrit_ins1058 cIM200505 SAVE ecrit_ins ! frequence d'ecriture (fichier instantane)1059 c1060 cIM200505 INTEGER ecrit_reg1061 cIM200505 SAVE ecrit_reg ! frequence d'ecriture1062 1026 c 1063 1027 integer itau_w ! pas de temps ecriture = itap + itau_phy … … 1258 1222 solswai(:)=0. 1259 1223 solswad(:)=0. 1260 !rv1261 !anne1224 crv 1225 c anne 1262 1226 d_u_con(:,:) = 0.0 1263 1227 d_v_con(:,:) = 0.0 … … 1267 1231 clwcon(:,:) = 0.0 1268 1232 paire_ter(:) = 0.0 1269 nhistoW(:,:,:,:) = 0.0 1270 histoW(:,:,:,:) = 0.0 1271 ! fin anne 1233 c fin anne 1272 1234 1273 1235 cym … … 1278 1240 c appel a la lecture du run.def physique 1279 1241 c 1280 call conf_phys( ocean, ok_veget, ok_journe, ok_mensuel,1242 call conf_phys(pdtphys, ocean, ok_veget, ok_journe, ok_mensuel, 1281 1243 . ok_instan, fact_cldcon, facttemps,ok_newmicro, 1282 1244 . iflag_cldcon,ratqsbas,ratqshaut, if_ebil, … … 1392 1354 ENDIF 1393 1355 c 1394 c1395 1356 lmt_pas = NINT(86400./dtime * 1.0) ! tous les jours 1396 1357 WRITE(lunout,*)'La frequence de lecture surface est de ', 1397 1358 . lmt_pas 1398 c1399 cIM200505 ecrit_mth = NINT(86400./dtime *ecritphy) ! tous les ecritphy jours1400 c IF (ok_mensuel) THEN1401 c WRITE(lunout,*)'La frequence de sortie mensuelle est de ',1402 c . ecrit_mth1403 c ENDIF1404 c ecrit_day = NINT(86400./dtime *1.0) ! tous les jours1405 c IF (ok_journe) THEN1406 c WRITE(lunout,*)'La frequence de sortie journaliere est de ',1407 c . ecrit_day1408 c ENDIF1409 cIM 130904 BEG1410 cIM 080205 ecrit_hf = 86400./dtime *0.25 ! toutes les 6h1411 cIM 1703051412 c ecrit_hf = 86400./dtime/12. ! toutes les 2h1413 cIM 2303051414 cIM200505 ecrit_hf = 86400./dtime *0.25 ! toutes les 6h1415 c1416 cIM200505 ecrit_hf2mth = ecrit_day/ecrit_hf*301417 c1418 cIM200505 IF (ok_journe) THEN1419 cIM200505 WRITE(lunout,*)'La frequence de sortie hf est de ',1420 cIM200505 . ecrit_hf1421 cIM200505 ENDIF1422 cIM 130904 END1423 ccc ecrit_ins = NINT(86400./dtime *0.5) ! 2 fois par jour1424 ccc ecrit_ins = NINT(86400./dtime *0.25) ! 4 fois par jour1425 c ecrit_ins = NINT(86400./dtime/48.) ! a chaque pas de temps ==> PB. dans time_counter pour 1mois1426 c ecrit_ins = NINT(86400./dtime/12.) ! toutes les deux heures1427 cIM200505 ecrit_ins = NINT(86400./dtime/8.) ! toutes les trois heures1428 cIM200505 IF (ok_instan) THEN1429 cIM200505 WRITE(lunout,*)'La frequence de sortie instant. est de ',1430 cIM200505 . ecrit_ins1431 cIM200505 ENDIF1432 cIM200505 ecrit_reg = NINT(86400./dtime *0.25) ! 4 fois par jour1433 cIM200505 IF (ok_region) THEN1434 cIM200505 WRITE(lunout,*)'La frequence de sortie region est de ',1435 cIM200505 . ecrit_reg1436 cIM200505 ENDIF1437 c1438 cIM 230505 BEG1439 ecrit_ins = NINT(ecrit_ins/dtime)1440 ecrit_hf = NINT(ecrit_hf/dtime)1441 c ecrit_hf2mth = 4*301442 ecrit_day = NINT(ecrit_day/dtime)1443 ecrit_mth = NINT(ecrit_mth/dtime)1444 ecrit_tra = NINT(ecrit_tra/dtime)1445 ecrit_reg = NINT(ecrit_reg/dtime)1446 cIM 230505 END1447 1359 c 1448 1360 c Initialiser le couplage si necessaire … … 1496 1408 #ifdef histISCCP 1497 1409 #include "ini_histISCCP.h" 1498 #endif1499 1500 #ifdef histmthNMC1501 #include "ini_histmthNMC.h"1502 #endif1503 1504 #ifdef histREGDYN1505 #include "ini_histREGDYN.h"1506 1410 #endif 1507 1411 … … 2963 2867 #endif 2964 2868 2965 #ifdef histREGDYN2966 #include "write_histREGDYN.h"2967 #endif2968 2969 2869 #ifdef histISCCP 2970 2870 #include "write_histISCCP.h" 2971 2871 #endif 2972 2973 2872 2974 2873 #ifdef histmthNMC -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/phytrac.F
r723 r740 2 2 ! $Header$ 3 3 ! 4 c5 4 c 6 5 SUBROUTINE phytrac (rnpb, … … 155 154 REAL flxmass_w(klon,klev) 156 155 #endif 157 cIM integer iflag_con158 156 #include "clesphys.h" 159 157 … … 266 264 C Variables liees a l'ecriture de la bande histoire : phytrac.nc 267 265 c 268 cIM INTEGER ecrit_tra269 cIM SAVE ecrit_tra270 266 logical ok_sync 271 267 parameter (ok_sync = .true.) … … 387 383 if (debutphy) then 388 384 389 cIM ecrit_tra = NINT(86400./pdtphys *ecritphy) 390 cIM print*,'dans phytrac ',pdtphys,ecritphy,ecrit_tra 385 print*,'dans phytrac ',pdtphys,ecritphy,ecrit_tra 391 386 392 387 if(nbtr.lt.nqmax) then … … 753 748 c si radio=true mais pour l'instant radiornpb propre au cas rnpb 754 749 if(rnpb) then 755 750 c print *, 'decroissance radiactive activee' 756 751 call radiornpb (tr_seri,pdtphys,tautr,d_tr_dec) 757 752 C -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/undefSTD.F
r644 r740 1 1 SUBROUTINE undefSTD(nlevSTD,itap,tlevSTD, 2 $ ecrit_hf,2 $ dtime, ecrit_hf, 3 3 $ oknondef,tnondef,tsumSTD) 4 4 IMPLICIT none … … 30 30 INTEGER nlevSTD, klevSTD, itap 31 31 PARAMETER(klevSTD=17) 32 INTEGERecrit_hf32 REAL dtime, ecrit_hf 33 33 c 34 34 c variables locales … … 63 63 c calcul variables toutes les 6h 64 64 c 65 IF(MOD(itap, ecrit_hf).EQ.0) THEN65 IF(MOD(itap,NINT(ecrit_hf/dtime)).EQ.0) THEN 66 66 c 67 67 DO k=1, nlevSTD … … 78 78 ENDDO !k 79 79 80 ENDIF !MOD(itap,ecrit_hf).EQ.080 ENDIF 81 81 c 82 82 RETURN -
LMDZ4/branches/LMDZ4_V2_patch/libf/phylmd/write_histrac.h
r723 r740 6 6 ndex3d = 0 7 7 c 8 itau_w = itau_phy + nstep 9 8 cIM itau_phy n'est pas defini dans phytrac itau_w = itau_phy + nstep 9 itau_w = nstep 10 c print*,'write_histrac: itau_w itau_phy nstep',itau_w,itau_phy, 11 c $ nstep 12 c 10 13 CALL gr_fi_ecrit(1,klon,iim,jjm+1,pphis,zx_tmp_2d) 11 14 CALL histwrite(nid_tra,"phis",itau_w,zx_tmp_2d,iim*(jjm+1),ndex2d)
Note: See TracChangeset
for help on using the changeset viewer.