Changeset 735 for LMDZ4/branches/V3_test/libf
- Timestamp:
- Nov 10, 2006, 3:50:16 PM (18 years ago)
- Location:
- LMDZ4/branches/V3_test/libf/phylmd
- Files:
-
- 22 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/V3_test/libf/phylmd/calcul_simulISCCP.h
r684 r735 64 64 c 65 65 IF (debut) THEN 66 c$OMP MASTER 66 67 c open(99,file='tautab.bin',access='sequential', 67 68 c $ form='unformatted',status='old') 68 c read(99) tautab 69 c read(99) tautab_omp 69 70 c 70 71 open(99,file='tautab.formatted', FORM='FORMATTED') 71 read(99,'(f30.20)') tautab 72 read(99,'(f30.20)') tautab_omp 72 73 close(99) 73 74 c 74 75 open(99,file='invtau.formatted',form='FORMATTED') 75 read(99,'(i10)') invtau 76 read(99,'(i10)') invtau_omp 76 77 close(99) 78 c$OMP END MASTER 79 c$OMP BARRIER 80 tautab=tautab_omp 81 invtau=invtau_omp 77 82 c 78 83 ENDIF !debut -
LMDZ4/branches/V3_test/libf/phylmd/conf_phys.F90
r704 r735 874 874 & ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra 875 875 876 !$OMP _END_MASTER876 !$OMP END MASTER 877 877 878 878 return -
LMDZ4/branches/V3_test/libf/phylmd/ini_histISCCP.h
r718 r735 4 4 IF (ok_isccp) THEN 5 5 c 6 c$OMP MASTER 6 7 ndex2d = 0 7 8 ndex3d = 0 … … 62 63 c 63 64 cIM BEG region 64 cym Desole dans un premier temps le mode r égion ne marchera pas65 cym Desole dans un premier temps le mode region ne marchera pas 65 66 cym Il faudra voir dans un second temps pour l'implementer 66 cym Mais cela posera des probl èmes au niveau de la reconstruction67 cym Mais cela posera des problemes au niveau de la reconstruction 67 68 68 69 imin_ins=1 … … 81 82 print*,'On stoke le fichier histISCCP instantanne sur ', 82 83 s imin_ins,imax_ins,jmin_ins,jmax_ins 83 print*,'On stoke le fichier histISCCP instantanne sur ',84 s zx_lon(imin_ins,1),zx_lon(imax_ins,1),85 s zx_lat(1,jmin_ins),zx_lat(1,jmax_ins)84 cym print*,'On stoke le fichier histISCCP instantanne sur ', 85 cym s zx_lon(imin_ins,1),zx_lon(imax_ins,1), 86 cym s zx_lat(1,jmin_ins),zx_lat(1,jmax_ins) 86 87 cIM END region 87 88 c … … 256 257 CALL histend(nid_isccp) 257 258 c 259 c$OMP END MASTER 258 260 ENDIF ! ok_isccp -
LMDZ4/branches/V3_test/libf/phylmd/ini_histday.h
r704 r735 3 3 c 4 4 IF (ok_journe) THEN 5 6 c$OMP MASTER 5 7 c 6 8 zstophy = dtime … … 59 61 . "ave(X)", zstophy,zout) 60 62 c 61 c Champs retires momentann �ment en attendant un hypothetique63 c Champs retires momentannement en attendant un hypothetique 62 64 c debugage 63 65 … … 644 646 c 645 647 c================================================================= 648 c$OMP END MASTER 646 649 ENDIF ! fin de test sur ok_journe -
LMDZ4/branches/V3_test/libf/phylmd/ini_histhf.h
r704 r735 4 4 5 5 IF (ok_hf) THEN 6 c$OMP MASTER 6 7 c 7 8 zstohf = ecrit_hf … … 398 399 CALL histend(nid_hf) 399 400 c 401 c$OMP END MASTER 400 402 ENDIF ! ok_hf -
LMDZ4/branches/V3_test/libf/phylmd/ini_histins.h
r704 r735 3 3 ! 4 4 IF (ok_instan) THEN 5 c$OMP MASTER 5 6 c 6 7 zsto = ecrit_ins … … 287 288 ndex3d = 0 288 289 c 290 c$OMP END MASTER 291 289 292 ENDIF -
LMDZ4/branches/V3_test/libf/phylmd/ini_histmth.h
r704 r735 3 3 c 4 4 IF (ok_mensuel) THEN 5 c$OMP MASTER 5 6 c 6 7 zstophy = dtime … … 1761 1762 ndex3d = 0 1762 1763 c 1764 c$OMP END MASTER 1763 1765 ENDIF ! fin de test sur ok_mensuel -
LMDZ4/branches/V3_test/libf/phylmd/ini_histmthNMC.h
r704 r735 4 4 IF (ok_mensuel) THEN 5 5 c 6 c$OMP MASTER 7 6 8 zstophy = dtime 7 9 zstohf = ecrit_hf … … 179 181 CALL histend(nid_nmc) 180 182 c 183 c$OMP END MASTER 184 181 185 ENDIF ! fin de test sur ok_mensuel -
LMDZ4/branches/V3_test/libf/phylmd/interface_surf.F90
r718 r735 233 233 !jld a rajouter real, dimension(klon), intent(INOUT):: ffonte 234 234 real, dimension(klon), intent(INOUT):: ffonte 235 ! Flux d'eau "perdue" par la surface et n �essaire pour que limiter la235 ! Flux d'eau "perdue" par la surface et necessaire pour que limiter la 236 236 ! hauteur de neige, en kg/m2/s. Et quantite d'eau de fonte de la calotte. 237 237 !jld a rajouter real, dimension(klon), intent(INOUT):: fqcalving, fqfonte … … 471 471 & alb_new, z0_new) 472 472 ! 473 ! calcul snow et qsurf, hydrol adapt �!473 ! calcul snow et qsurf, hydrol adapte ! 474 474 CALL calbeta(dtime, nisurf, knon, snow, qsol, beta, capsol, dif_grnd) 475 475 … … 1502 1502 #ifdef CPP_PARA 1503 1503 USE parallel,only : COMM_LMDZ 1504 #endif 1504 #endif 1505 1505 USE dimphy 1506 1506 IMPLICIT NONE … … 1927 1927 ! initialisation sorties netcdf 1928 1928 ! 1929 !ym IO de check deconnect �pour le moment en //1929 !ym IO de check deconnecte pour le moment en // 1930 1930 IF (monocpu) THEN 1931 1931 idayref = day_ini … … 2270 2270 ! wri_calv = coeff_iceberg * cte_flux_iceberg / (num_antarctic * surf_maille) 2271 2271 ! 2272 ! on passe les coordonn �s de la grille2272 ! on passe les coordonnees de la grille 2273 2273 ! 2274 2274 … … 2295 2295 ENDIF 2296 2296 ! 2297 ! calcul 3 coordonn �s du vent2297 ! calcul 3 coordonnees du vent 2298 2298 ! 2299 2299 CALL atm2geo (iim , jjphy_nb, wri_taux, wri_tauy, tmp_lon, tmp_lat, & … … 2485 2485 REAL :: amn, amx 2486 2486 INTEGER, save :: lmt_pas, julien, idayvrai 2487 !$OMP THREADPRIVATE(lmt_pas, julien, idayvrai) 2487 2488 REAL, parameter :: unjour=86400. 2488 2489 real, allocatable, dimension(:), save :: tmp_tslab, tmp_seaice 2489 2490 REAL, allocatable, dimension(:), save :: slab_bils 2490 2491 REAL, allocatable, dimension(:), save :: lmt_bils 2492 !$OMP THREADPRIVATE(tmp_tslab, tmp_seaice,slab_bils,lmt_bils) 2491 2493 logical,save :: check = .false. 2494 !$OMP THREADPRIVATE(check) 2495 2492 2496 ! 2493 2497 REAL, parameter :: cyang=50.0 * 4.228e+06 ! capacite calorifique volumetrique de l'eau J/(m2 K) … … 2745 2749 integer, dimension(2) :: start, epais 2746 2750 ! 2747 ! Fin d �laration2751 ! Fin declaration 2748 2752 ! 2749 2753 … … 2968 2972 ! lmt_sst SST lues dans le fichier de CL 2969 2973 ! lmt_alb Albedo lu 2970 ! lmt_rug longueur de rugosit �lue2974 ! lmt_rug longueur de rugosite lue 2971 2975 ! pctsrf_new sous-maille fractionnelle 2972 2976 ! … … 3023 3027 !$OMP THREADPRIVATE(start, epais) 3024 3028 ! 3025 ! Fin d �laration3029 ! Fin declaration 3026 3030 ! 3027 3031 … … 3082 3086 endif 3083 3087 ! 3084 ! Lecture rugosit �!3088 ! Lecture rugosite ! 3085 3089 ierr = NF_INQ_VARID(nid, 'RUG', nvarid) 3086 3090 if (ierr /= NF_NOERR) then … … 3464 3468 real, dimension(klon) :: tamp 3465 3469 logical ,save :: check = .false. 3470 !$OMP THREADPRIVATE(check) 3466 3471 3467 3472 !ym ig = 1 … … 3542 3547 3543 3548 ! Routine de traitement de la fonte de la neige dans le cas du traitement 3544 ! de sol simplifi �!3549 ! de sol simplifie ! 3545 3550 ! LF 03/2001 3546 3551 ! input: … … 3572 3577 ! dflux_l derivee du flux de chaleur latente / Ts 3573 3578 ! in/out: 3574 ! run_off_lic_0 run off glacier du pas de temps pr �edent3579 ! run_off_lic_0 run off glacier du pas de temps precedent 3575 3580 ! 3576 3581 -
LMDZ4/branches/V3_test/libf/phylmd/iophy.F90
r704 r735 134 134 include 'dimensions90.h' 135 135 136 real,dimension(klon ,nlev),intent(in) :: field_phy136 real,dimension(klon_mpi,nlev),intent(in) :: field_phy 137 137 real,dimension(iim,jjphy_nb,nlev),intent(out) :: field_dyn 138 138 integer,intent(in) :: nlev … … 145 145 if (jjphy_begin==jjphy_end) then 146 146 field_dyn(:,1,l)=0. 147 field_dyn(iiphy_begin:iiphy_end,1,l)=field_phy(1:klon ,l)147 field_dyn(iiphy_begin:iiphy_end,1,l)=field_phy(1:klon_mpi,l) 148 148 else 149 149 … … 163 163 164 164 if (jjphy_end==jjm+1) then 165 field_dyn(:,jjphy_nb,l)=field_phy(klon ,l)165 field_dyn(:,jjphy_nb,l)=field_phy(klon_mpi,l) 166 166 else 167 167 field_dyn(:,jjphy_nb,l)=0. -
LMDZ4/branches/V3_test/libf/phylmd/phyredem.F
r704 r735 95 95 real clwcon(klon2,klev),rnebcon(klon2,klev),ratqs(klon2,klev) 96 96 REAL run_off_lic_0(klon2) 97 REAL masq(klon2) 97 98 c 98 99 INTEGER nid, nvarid, idim1, idim2, idim3 … … 138 139 REAL,SAVE,ALLOCATABLE :: ratqs_mpi(:,:) 139 140 REAL,SAVE,ALLOCATABLE :: run_off_lic_0_mpi(:) 141 REAL,SAVE,ALLOCATABLE :: masq_mpi(:) 140 142 141 143 c$OMP MASTER … … 173 175 ALLOCATE( ratqs_mpi(klon_mpi,klev)) 174 176 ALLOCATE( run_off_lic_0_mpi(klon_mpi)) 177 ALLOCATE( masq_mpi(klon_mpi)) 175 178 c$OMP END MASTER 176 179 c$OMP BARRIER … … 211 214 call GatherField_omp( clwcon_p,clwcon_mpi,klev) 212 215 call GatherField_omp( ratqs_p,ratqs_mpi,klev) 213 216 call GatherField_omp( zmasq,masq_mpi,1) 217 214 218 c$OMP MASTER 215 219 call GatherField( rlat_mpi,rlat,1) … … 248 252 call GatherField( clwcon_mpi,clwcon,klev) 249 253 call GatherField( ratqs_mpi,ratqs,klev) 250 254 call GatherField( masq_mpi,masq,1) 255 251 256 DEALLOCATE( rlat_mpi, rlon_mpi) 252 257 DEALLOCATE( tsol_mpi) … … 282 287 DEALLOCATE( ratqs_mpi) 283 288 DEALLOCATE( run_off_lic_0_mpi) 289 DEALLOCATE( masq_mpi) 284 290 285 291 if (phy_rank==0) then … … 296 302 c 297 303 ierr = NF_DEF_DIM (nid, "index", length, idim1) 298 ierr = NF_DEF_DIM (nid, "points_physiques", klon , idim2)299 ierr = NF_DEF_DIM (nid, "horizon_vertical", klon *klev, idim3)304 ierr = NF_DEF_DIM (nid, "points_physiques", klon2, idim2) 305 ierr = NF_DEF_DIM (nid, "horizon_vertical", klon2*klev, idim3) 300 306 c 301 307 ierr = NF_ENDDEF(nid) … … 378 384 ierr = NF_ENDDEF(nid) 379 385 #ifdef NC_DOUBLE 380 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid, zmasq)381 #else 382 ierr = NF_PUT_VAR_REAL (nid,nvarid, zmasq)386 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,masq) 387 #else 388 ierr = NF_PUT_VAR_REAL (nid,nvarid,masq) 383 389 #endif 384 390 c BP ajout des fraction de chaque sous-surface … … 396 402 ierr = NF_ENDDEF(nid) 397 403 #ifdef NC_DOUBLE 398 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon , is_ter))399 #else 400 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon , is_ter))404 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2, is_ter)) 405 #else 406 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_ter)) 401 407 #endif 402 408 C … … 413 419 ierr = NF_ENDDEF(nid) 414 420 #ifdef NC_DOUBLE 415 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon ,is_lic))416 #else 417 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon , is_lic))421 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2,is_lic)) 422 #else 423 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_lic)) 418 424 #endif 419 425 C … … 430 436 ierr = NF_ENDDEF(nid) 431 437 #ifdef NC_DOUBLE 432 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon , is_oce))433 #else 434 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon , is_oce))438 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2, is_oce)) 439 #else 440 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_oce)) 435 441 #endif 436 442 C … … 447 453 ierr = NF_ENDDEF(nid) 448 454 #ifdef NC_DOUBLE 449 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon , is_sic))450 #else 451 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon , is_sic))455 ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2, is_sic)) 456 #else 457 ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_sic)) 452 458 #endif 453 459 C … … 757 763 #endif 758 764 c 765 endif 766 c$OMP END MASTER 767 cc ----> necessaire pour eviter bug openMP sur SX6 768 c$OMP MASTER 769 if (phy_rank==0) then 759 770 DO nsrf = 1, nbsrf 760 771 IF (nsrf.LE.99) THEN -
LMDZ4/branches/V3_test/libf/phylmd/physiq.F
r726 r735 251 251 CHARACTER*3 ctetaSTD(nbteta) 252 252 DATA ctetaSTD/'350','380','405'/ 253 SAVE ctetaSTD 253 254 c$OMP THREADPRIVATE(ctetaSTD) 254 255 REAL rtetaSTD(nbteta) 255 256 DATA rtetaSTD/350., 380., 405./ 257 SAVE rtetaSTD 256 258 c$OMP THREADPRIVATE(rtetaSTD) 257 259 c … … 299 301 .60000., 50000., 40000., 30000., 25000., 20000., 300 302 .15000., 10000., 7000., 5000., 3000., 2000., 1000./ 303 SAVE rlevstd 301 304 c$OMP THREADPRIVATE(rlevSTD) 302 305 CHARACTER*4 clevSTD(nlevSTD) … … 304 307 .'500 ','400 ','300 ','250 ','200 ','150 ','100 ', 305 308 .'70 ','50 ','30 ','20 ','10 '/ 309 SAVE clevSTD 306 310 c$OMP THREADPRIVATE(clevSTD) 307 311 c … … 416 420 DATA ifreq_isccp/3/ 417 421 SAVE ifreq_isccp 418 c$OMP THREA PRIVATE(ifreq_isccp)422 c$OMP THREADPRIVATE(ifreq_isccp) 419 423 CHARACTER*5 typinout(napisccp) 420 424 DATA typinout/'i3od'/ 421 c$OMP THREAPRIVATE(typinout) 425 SAVE typinout 426 c$OMP THREADPRIVATE(typinout) 422 427 cIM verif boxptop BEG 423 428 CHARACTER*1 verticaxe(napisccp) 424 429 DATA verticaxe/'1'/ 425 c$OMP THREAPRIVATE(verticaxe) 430 SAVE verticaxe 431 c$OMP THREADPRIVATE(verticaxe) 426 432 cIM verif boxptop END 427 433 INTEGER nvlev(napisccp) … … 446 452 cIM verif boxptop END 447 453 c 448 REAL tautab(0:255) 449 INTEGER invtau(-20:45000) 454 REAL,SAVE :: tautab_omp(0:255),tautab(0:255) 455 INTEGER,SAVE :: invtau_omp(-20:45000),invtau(-20:45000) 456 c$OMP THREADPRIVATE(tautab,invtau) 450 457 REAL emsfc_lw 451 458 PARAMETER(emsfc_lw=0.99) … … 523 530 c save ok_isccp, ecrit_isccp, nid_isccp 524 531 save nid_isccp 525 c$OMP THREADPRIVATE(ok_isccp, ecrit_isccp, nid_isccp,nid_isccp) 532 c$OMP THREADPRIVATE(nid_isccp) 533 526 534 c data ok_isccp,ecrit_isccp/.true.,0.125/ 527 535 c data ok_isccp,ecrit_isccp/.true.,1./ … … 533 541 REAL zx_tau(kmaxm1), zx_pc(lmaxm1), zx_o500(iwmax) 534 542 DATA zx_tau/0.0, 0.3, 1.3, 3.6, 9.4, 23., 60./ 543 SAVE zx_tau 535 544 cIM bad 151205 DATA zx_pc/50., 180., 310., 440., 560., 680., 800./ 536 545 DATA zx_pc/180., 310., 440., 560., 680., 800., 1000./ 546 SAVE zx_pc 537 547 c$OMP THREADPRIVATE(zx_tau,zx_pc) 538 548 c cldtopres pression au sommet des nuages … … 541 551 DATA cldtopres/180., 310., 440., 560., 680., 800., 1000./ 542 552 DATA cldtopres3/440., 680., 1000./ 553 SAVE cldtopres,cldtopres3 543 554 c$OMP THREADPRIVATE(cldtopres,cldtopres3) 544 555 cIM 051005 BEG … … 556 567 CHARACTER *3 pclev(lmaxm1) 557 568 DATA pclev/'pc1','pc2','pc3','pc4','pc5','pc6','pc7'/ 569 SAVE taulev,pclev 558 570 c$OMP THREADPRIVATE(taulev,pclev) 559 571 c … … 610 622 . 'pc= 680-800hPa, tau> 60.', 611 623 . 'pc= 800-1000hPa, tau> 60.'/ 624 SAVE cnameisccp 612 625 c$OMP THREADPRIVATE(cnameisccp) 613 626 c … … 838 851 REAL yv1(klon) ! vents dans la premiere couche V 839 852 REAL,SAVE,ALLOCATABLE :: ffonte(:,:) !Flux thermique utilise pour fondre la neige 840 c$OMP THREA PRIVATE(ffonte)853 c$OMP THREADPRIVATE(ffonte) 841 854 REAL,SAVE,ALLOCATABLE :: fqcalving(:,:) !Flux d'eau "perdu" par la surface 842 c$OMP THREA PRIVATE(fqcalving)855 c$OMP THREADPRIVATE(fqcalving) 843 856 REAL,SAVE,ALLOCATABLE :: fqfonte(:,:) !Quantite d'eau de fonte des glaciers 844 c$OMP THREA PRIVATE(fqcalving)857 c$OMP THREADPRIVATE(fqfonte) 845 858 c !et necessaire pour limiter la 846 859 c !hauteur de neige, en kg/m2/s … … 1074 1087 c 1075 1088 REAL,SAVE,ALLOCATABLE :: pblh(:, :) ! Hauteur de couche limite 1076 c$OMP THREA PRIVATE(pblh)1089 c$OMP THREADPRIVATE(pblh) 1077 1090 REAL,SAVE,ALLOCATABLE :: plcl(:, :) ! Niveau de condensation de la CLA 1078 c$OMP THREA PRIVATE(plcl)1091 c$OMP THREADPRIVATE(plcl) 1079 1092 REAL,SAVE,ALLOCATABLE :: capCL(:, :) ! CAPE de couche limite 1080 c$OMP THREA PRIVATE(capCL)1093 c$OMP THREADPRIVATE(capCL) 1081 1094 REAL,SAVE,ALLOCATABLE :: oliqCL(:, :) ! eau_liqu integree de couche limite 1082 c$OMP THREA PRIVATE(oliqCL)1095 c$OMP THREADPRIVATE(oliqCL) 1083 1096 REAL,SAVE,ALLOCATABLE :: cteiCL(:, :) ! cloud top instab. crit. couche limite 1084 c$OMP THREA PRIVATE(cteiCL)1097 c$OMP THREADPRIVATE(cteiCL) 1085 1098 REAL,SAVE,ALLOCATABLE :: pblt(:, :) ! T a la Hauteur de couche limite 1086 c$OMP THREA PRIVATE(pblt)1099 c$OMP THREADPRIVATE(pblt) 1087 1100 REAL,SAVE,ALLOCATABLE :: therm(:, :) 1088 c$OMP T READPRIVATE(therm)1101 c$OMP THREADPRIVATE(therm) 1089 1102 REAL,SAVE,ALLOCATABLE :: trmb1(:, :) ! deep_cape 1090 c$OMP T READPRIVATE(trmb1)1103 c$OMP THREADPRIVATE(trmb1) 1091 1104 REAL,SAVE,ALLOCATABLE :: trmb2(:, :) ! inhibition 1092 c$OMP T READPRIVATE(trmb2)1105 c$OMP THREADPRIVATE(trmb2) 1093 1106 REAL,SAVE,ALLOCATABLE :: trmb3(:, :) ! Point Omega 1094 c$OMP T READPRIVATE(trmb3)1107 c$OMP THREADPRIVATE(trmb3) 1095 1108 c Grdeurs de sorties 1096 1109 REAL s_pblh(klon), s_lcl(klon), s_capCL(klon) … … 1289 1302 REAL zx_tmp_fi2d(klon) ! variable temporaire grille physique 1290 1303 REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D 1291 #ifdef histmthNMC1304 c#ifdef histmthNMC 1292 1305 cym A voir plus tard !!!! 1293 1306 cym REAL zx_tmp_NC(iim,jjmp1,nlevSTD) 1294 1307 REAL zx_tmp_fiNC(klon,nlevSTD) 1295 #endif1308 c#endif 1296 1309 REAL*8 zx_tmp2_fi3d(klon,klev) ! variable temporaire pour champs 3D 1297 1310 REAL zx_tmp_2d(iim,jjmp1), zx_tmp_3d(iim,jjmp1,klev) … … 1302 1315 SAVE nid_day, nid_mth, nid_ins, nid_nmc, nid_day_seri 1303 1316 SAVE nid_ctesGCM 1304 c$OMP THREADPRIVATE(nid_day, nid_mth, nid_ins, nid_nmc, nid_day_seri,nid_ctesGCM) 1317 c$OMP THREADPRIVATE(nid_day, nid_mth, nid_ins, nid_nmc) 1318 c$OMP THREADPRIVATE(nid_day_seri,nid_ctesGCM) 1305 1319 c 1306 1320 cIM 280405 BEG … … 1403 1417 1404 1418 REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:) ! Aerosol indirect effect. 1405 c$OMP THREADPRIVATE(topswai (,solswai)1419 c$OMP THREADPRIVATE(topswai,solswai) 1406 1420 ! ok_aie=T -> 1407 1421 ! ok_ade=T -AIE=topswai-topswad … … 1908 1922 1909 1923 c#include "ini_histday_seri.h" 1910 1911 c#include "ini_paramLMDZ_phy.h" 1924 #include "ini_histday_seri.h" 1925 1926 #include "ini_paramLMDZ_phy.h" 1912 1927 1913 1928 #endif … … 2857 2872 ELSE IF (iflag_cldcon.eq.3) THEN 2858 2873 c On prend pour les nuages convectifs le max du calcul de la 2859 c convection et du calcul du pas de temps pr ��ent diminu�d'un facteur2874 c convection et du calcul du pas de temps precedent diminue d'un facteur 2860 2875 c facttemps 2861 2876 c facttemps=pdtphys/1.e4 … … 2895 2910 c 2896 2911 IF (ok_isccp) THEN 2897 c#include "calcul_simulISCCP.h"2912 #include "calcul_simulISCCP.h" 2898 2913 ENDIF !ok_isccp 2899 2914 … … 3581 3596 #endif 3582 3597 3583 c#include "write_histday_seri.h"3584 3585 c#include "write_paramLMDZ_phy.h"3598 #include "write_histday_seri.h" 3599 3600 #include "write_paramLMDZ_phy.h" 3586 3601 3587 3602 #endif -
LMDZ4/branches/V3_test/libf/phylmd/phytrac.F
r726 r735 403 403 if (debutphy) then 404 404 allocate( trs(klon,nbtr) ) 405 c$OMP MASTER 405 406 allocate( trs_mpi(klon_mpi) ) 406 allocate( masktr(klon,nbtr)) 407 c$OMP END MASTER 408 allocate( masktr(klon,nbtr)) 407 409 allocate( fshtr(klon,nbtr) ) 408 410 allocate( hsoltr(nbtr)) -
LMDZ4/branches/V3_test/libf/phylmd/thermcell.F
r704 r735 14 14 c de "thermiques" explicitement representes 15 15 c 16 c R �criture �partir d'un listing papier �Habas, le 14/02/0017 c 18 c le thermique est suppos �homog�e et dissip�par m�ange avec19 c son environnement. la longueur l_mix contr �e l'efficacit�du20 c m �ange21 c 22 c Le calcul du transport des diff �entes esp�es se fait en prenant16 c Reecriture a partir d'un listing papier à Habas, le 14/02/00 17 c 18 c le thermique est suppose homogene et dissipe par melange avec 19 c son environnement. la longueur l_mix controle l'efficacite du 20 c melange 21 c 22 c Le calcul du transport des differentes especes se fait en prenant 23 23 c en compte: 24 24 c 1. un flux de masse montant … … 512 512 c calcul de la largeur de chaque ascendance dans le cas conservatif. 513 513 c dans ce cas simple, on suppose que la largeur de l'ascendance provenant 514 c d'une couche est �ale �la hauteur de la couche alimentante.514 c d'une couche est egale a la hauteur de la couche alimentante. 515 515 c La vitesse maximale dans l'ascendance est aussi prise comme estimation 516 516 c de la vitesse d'entrainement horizontal dans la couche alimentante. … … 551 551 c print*,'10 OK convect8' 552 552 c print*,'WA2 ',wa_moy 553 c calcul de la fraction de la maille concern �par l'ascendance en tenant553 c calcul de la fraction de la maille concerne par l'ascendance en tenant 554 554 c compte de l'epluchage du thermique. 555 555 c … … 1119 1119 if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt. 1120 1120 s 1.e-5*masse(ig,k)) then 1121 c On it �e sur la valeur du coeff de freinage.1121 c On itere sur la valeur du coeff de freinage. 1122 1122 c gamma0=rho(ig,k)*(zlev(ig,k+1)-zlev(ig,k)) 1123 1123 gamma0=masse(ig,k) … … 1125 1125 s *0.5/larga(ig) 1126 1126 c gamma0=0. 1127 c la premi �e fois on multiplie le coefficient de freinage1127 c la premiere fois on multiplie le coefficient de freinage 1128 1128 c par le module du vent dans la couche en dessous. 1129 1129 dua=ua(ig,k-1)-u(ig,k-1) … … 1317 1317 if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt. 1318 1318 s 1.e-5*masse(ig,k)) then 1319 c On it �e sur la valeur du coeff de freinage.1319 c On itere sur la valeur du coeff de freinage. 1320 1320 c gamma0=rho(ig,k)*(zlev(ig,k+1)-zlev(ig,k)) 1321 1321 gamma0=masse(ig,k) … … 1328 1328 zf=0. 1329 1329 zf2=1./(1.-zf) 1330 c la premi �e fois on multiplie le coefficient de freinage1330 c la premiere fois on multiplie le coefficient de freinage 1331 1331 c par le module du vent dans la couche en dessous. 1332 1332 dua=ua(ig,k-1)-u(ig,k-1) -
LMDZ4/branches/V3_test/libf/phylmd/write_histISCCP.h
r704 r735 201 201 c 202 202 if (ok_sync) then 203 c$OMP MASTER 203 204 call histsync(nid_isccp) 205 c$OMP END MASTER 204 206 endif 205 207 -
LMDZ4/branches/V3_test/libf/phylmd/write_histday.h
r704 r735 569 569 c 570 570 if (ok_sync) then 571 c$OMP MASTER 571 572 call histsync(nid_day) 573 c$OMP END MASTER 572 574 endif 573 575 -
LMDZ4/branches/V3_test/libf/phylmd/write_histhf.h
r704 r735 348 348 c 349 349 IF (ok_sync) THEN 350 c$OMP MASTER 350 351 call histsync(nid_hf) 352 c$OMP END MASTER 351 353 ENDIF 352 354 -
LMDZ4/branches/V3_test/libf/phylmd/write_histhf3d.h
r704 r735 23 23 CALL histwrite_phy(nid_hf3d,"vitv",itau_w,v_seri) 24 24 if (ok_sync) then 25 c$OMP MASTER 25 26 call histsync(nid_hf3d) 27 c$OMP END MASTER 26 28 endif -
LMDZ4/branches/V3_test/libf/phylmd/write_histins.h
r704 r735 228 228 c 229 229 if (ok_sync) then 230 c$OMP MASTER 230 231 call histsync(nid_ins) 232 c$OMP END MASTER 231 233 endif 232 234 ENDIF -
LMDZ4/branches/V3_test/libf/phylmd/write_histmth.h
r704 r735 1809 1809 c 1810 1810 if (ok_sync) then 1811 c$OMP MASTER 1811 1812 call histsync(nid_mth) 1813 c$OMP END MASTER 1812 1814 endif 1813 1815 c -
LMDZ4/branches/V3_test/libf/phylmd/write_histmthNMC.h
r704 r735 119 119 c 120 120 if (ok_sync) then 121 c$OMP MASTER 121 122 call histsync(nid_nmc) 123 c$OMP END MASTER 122 124 endif 123 125 -
LMDZ4/branches/V3_test/libf/phylmd/write_histrac.h
r726 r735 96 96 97 97 if (ok_sync) then 98 call histsync(nid_tra) 98 c$OMP MASTER 99 call histsync(nid_tra) 100 c$OMP END MASTER 99 101 endif 100 102
Note: See TracChangeset
for help on using the changeset viewer.