Changeset 735 for LMDZ4


Ignore:
Timestamp:
Nov 10, 2006, 3:50:16 PM (18 years ago)
Author:
Laurent Fairhead
Message:

Modifications version parallele
YM/LF

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  
    6464c
    6565      IF (debut) THEN
     66c$OMP MASTER
    6667c     open(99,file='tautab.bin',access='sequential',
    6768c    $     form='unformatted',status='old')
    68 c     read(99) tautab
     69c     read(99) tautab_omp
    6970c
    7071      open(99,file='tautab.formatted', FORM='FORMATTED')
    71       read(99,'(f30.20)') tautab
     72      read(99,'(f30.20)') tautab_omp
    7273      close(99)
    7374c
    7475      open(99,file='invtau.formatted',form='FORMATTED')
    75       read(99,'(i10)') invtau
     76      read(99,'(i10)') invtau_omp
    7677      close(99)
     78c$OMP END MASTER
     79c$OMP BARRIER
     80      tautab=tautab_omp
     81      invtau=invtau_omp
    7782c
    7883      ENDIF !debut
  • LMDZ4/branches/V3_test/libf/phylmd/conf_phys.F90

    r704 r735  
    874874 & ecrit_hf, ecrit_day, ecrit_mth, ecrit_reg, ecrit_tra
    875875
    876 !$OMP_END_MASTER
     876!$OMP END MASTER
    877877
    878878  return
  • LMDZ4/branches/V3_test/libf/phylmd/ini_histISCCP.h

    r718 r735  
    44      IF (ok_isccp) THEN
    55c
     6c$OMP MASTER
    67      ndex2d = 0
    78      ndex3d = 0
     
    6263c
    6364cIM BEG region
    64 cym Desole dans un premier temps le mode région ne marchera pas
     65cym Desole dans un premier temps le mode region ne marchera pas
    6566cym Il faudra voir dans un second temps pour l'implementer
    66 cym Mais cela posera des problèmes au niveau de la reconstruction
     67cym Mais cela posera des problemes au niveau de la reconstruction
    6768
    6869          imin_ins=1
     
    8182          print*,'On stoke le fichier histISCCP instantanne sur ',
    8283     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)
     84cym          print*,'On stoke le fichier histISCCP instantanne sur ',
     85cym     s   zx_lon(imin_ins,1),zx_lon(imax_ins,1),
     86cym     s   zx_lat(1,jmin_ins),zx_lat(1,jmax_ins)
    8687cIM END region
    8788c
     
    256257        CALL histend(nid_isccp)
    257258c
     259c$OMP END MASTER
    258260      ENDIF ! ok_isccp
  • LMDZ4/branches/V3_test/libf/phylmd/ini_histday.h

    r704 r735  
    33c
    44      IF (ok_journe) THEN
     5
     6c$OMP MASTER
    57c
    68       zstophy = dtime
     
    5961     .                "ave(X)", zstophy,zout)
    6062c
    61 c Champs retires momentannment en attendant un hypothetique
     63c Champs retires momentannement en attendant un hypothetique
    6264c debugage
    6365
     
    644646c
    645647c=================================================================
     648c$OMP END MASTER
    646649      ENDIF ! fin de test sur ok_journe
  • LMDZ4/branches/V3_test/libf/phylmd/ini_histhf.h

    r704 r735  
    44
    55      IF (ok_hf) THEN
     6c$OMP MASTER
    67c
    78       zstohf = ecrit_hf
     
    398399      CALL histend(nid_hf)
    399400c
     401c$OMP END MASTER
    400402      ENDIF ! ok_hf
  • LMDZ4/branches/V3_test/libf/phylmd/ini_histins.h

    r704 r735  
    33!
    44      IF (ok_instan) THEN
     5c$OMP MASTER
    56c
    67          zsto = ecrit_ins
     
    287288         ndex3d = 0
    288289c
     290c$OMP END MASTER
     291
    289292      ENDIF
  • LMDZ4/branches/V3_test/libf/phylmd/ini_histmth.h

    r704 r735  
    33c
    44      IF (ok_mensuel) THEN
     5c$OMP MASTER
    56c
    67       zstophy = dtime
     
    17611762         ndex3d = 0
    17621763c
     1764c$OMP END MASTER
    17631765      ENDIF ! fin de test sur ok_mensuel
  • LMDZ4/branches/V3_test/libf/phylmd/ini_histmthNMC.h

    r704 r735  
    44      IF (ok_mensuel) THEN
    55c
     6c$OMP MASTER
     7
    68       zstophy = dtime
    79       zstohf = ecrit_hf
     
    179181         CALL histend(nid_nmc)
    180182c
     183c$OMP END MASTER
     184
    181185      ENDIF ! fin de test sur ok_mensuel
  • LMDZ4/branches/V3_test/libf/phylmd/interface_surf.F90

    r718 r735  
    233233!jld a rajouter   real, dimension(klon), intent(INOUT):: ffonte
    234234  real, dimension(klon), intent(INOUT):: ffonte
    235 ! Flux d'eau "perdue" par la surface et nessaire pour que limiter la
     235! Flux d'eau "perdue" par la surface et necessaire pour que limiter la
    236236! hauteur de neige, en kg/m2/s. Et quantite d'eau de fonte de la calotte.
    237237!jld a rajouter   real, dimension(klon), intent(INOUT):: fqcalving, fqfonte
     
    471471     & alb_new, z0_new)
    472472
    473 ! calcul snow et qsurf, hydrol adapt!
     473! calcul snow et qsurf, hydrol adapte !
    474474       CALL calbeta(dtime, nisurf, knon, snow, qsol, beta, capsol, dif_grnd)
    475475
     
    15021502#ifdef CPP_PARA
    15031503  USE parallel,only : COMM_LMDZ
    1504 #endif 
     1504#endif
    15051505  USE dimphy
    15061506  IMPLICIT NONE
     
    19271927! initialisation sorties netcdf
    19281928!
    1929  !ym  IO de check deconnectpour le moment en //
     1929 !ym  IO de check deconnecte pour le moment en //
    19301930    IF (monocpu) THEN
    19311931    idayref = day_ini
     
    22702270!      wri_calv = coeff_iceberg * cte_flux_iceberg / (num_antarctic * surf_maille)
    22712271!
    2272 ! on passe les coordonns de la grille
     2272! on passe les coordonnees de la grille
    22732273!
    22742274
     
    22952295      ENDIF 
    22962296!
    2297 ! calcul 3 coordonns du vent
     2297! calcul 3 coordonnees du vent
    22982298!
    22992299      CALL atm2geo (iim , jjphy_nb, wri_taux, wri_tauy, tmp_lon, tmp_lat, &
     
    24852485  REAL :: amn, amx
    24862486  INTEGER, save :: lmt_pas, julien, idayvrai
     2487!$OMP THREADPRIVATE(lmt_pas, julien, idayvrai)
    24872488  REAL, parameter :: unjour=86400.
    24882489  real, allocatable, dimension(:), save :: tmp_tslab, tmp_seaice
    24892490  REAL, allocatable, dimension(:), save :: slab_bils
    24902491  REAL, allocatable, dimension(:), save :: lmt_bils
     2492!$OMP THREADPRIVATE(tmp_tslab, tmp_seaice,slab_bils,lmt_bils)
    24912493  logical,save              :: check = .false.
     2494!$OMP THREADPRIVATE(check)
     2495
    24922496!
    24932497  REAL, parameter :: cyang=50.0 * 4.228e+06 ! capacite calorifique volumetrique de l'eau J/(m2 K)
     
    27452749  integer, dimension(2) :: start, epais
    27462750!
    2747 ! Fin dlaration
     2751! Fin declaration
    27482752!
    27492753 
     
    29682972!   lmt_sst      SST lues dans le fichier de CL
    29692973!   lmt_alb      Albedo lu
    2970 !   lmt_rug      longueur de rugositlue
     2974!   lmt_rug      longueur de rugosite lue
    29712975!   pctsrf_new   sous-maille fractionnelle
    29722976!
     
    30233027!$OMP THREADPRIVATE(start, epais)
    30243028!
    3025 ! Fin dlaration
     3029! Fin declaration
    30263030!
    30273031 
     
    30823086    endif
    30833087!
    3084 ! Lecture rugosit!
     3088! Lecture rugosite !
    30853089    ierr = NF_INQ_VARID(nid, 'RUG', nvarid)
    30863090    if (ierr /= NF_NOERR) then
     
    34643468  real, dimension(klon)     :: tamp
    34653469  logical ,save                  :: check = .false.
     3470!$OMP THREADPRIVATE(check)
    34663471
    34673472!ym  ig = 1
     
    35423547
    35433548! Routine de traitement de la fonte de la neige dans le cas du traitement
    3544 ! de sol simplifi!
     3549! de sol simplifie !
    35453550! LF 03/2001
    35463551! input:
     
    35723577!   dflux_l      derivee du flux de chaleur latente  / Ts
    35733578! in/out:
    3574 !   run_off_lic_0 run off glacier du pas de temps predent
     3579!   run_off_lic_0 run off glacier du pas de temps precedent
    35753580!
    35763581
  • LMDZ4/branches/V3_test/libf/phylmd/iophy.F90

    r704 r735  
    134134  include 'dimensions90.h'
    135135 
    136     real,dimension(klon,nlev),intent(in) :: field_phy
     136    real,dimension(klon_mpi,nlev),intent(in) :: field_phy
    137137    real,dimension(iim,jjphy_nb,nlev),intent(out) :: field_dyn
    138138    integer,intent(in) :: nlev
     
    145145        if (jjphy_begin==jjphy_end) then
    146146          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)
    148148        else
    149149       
     
    163163         
    164164          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)
    166166          else
    167167           field_dyn(:,jjphy_nb,l)=0.
  • LMDZ4/branches/V3_test/libf/phylmd/phyredem.F

    r704 r735  
    9595      real clwcon(klon2,klev),rnebcon(klon2,klev),ratqs(klon2,klev)
    9696      REAL run_off_lic_0(klon2)
     97      REAL masq(klon2)
    9798c
    9899      INTEGER nid, nvarid, idim1, idim2, idim3
     
    138139      REAL,SAVE,ALLOCATABLE :: ratqs_mpi(:,:)
    139140      REAL,SAVE,ALLOCATABLE :: run_off_lic_0_mpi(:)
     141      REAL,SAVE,ALLOCATABLE :: masq_mpi(:)
    140142     
    141143c$OMP MASTER
     
    173175      ALLOCATE( ratqs_mpi(klon_mpi,klev))
    174176      ALLOCATE( run_off_lic_0_mpi(klon_mpi))
     177      ALLOCATE( masq_mpi(klon_mpi))
    175178c$OMP END MASTER
    176179c$OMP BARRIER     
     
    211214      call GatherField_omp( clwcon_p,clwcon_mpi,klev)
    212215      call GatherField_omp( ratqs_p,ratqs_mpi,klev)
    213      
     216      call GatherField_omp( zmasq,masq_mpi,1)
     217
    214218c$OMP MASTER     
    215219      call GatherField( rlat_mpi,rlat,1)
     
    248252      call GatherField( clwcon_mpi,clwcon,klev)
    249253      call GatherField( ratqs_mpi,ratqs,klev)
    250 
     254      call GatherField( masq_mpi,masq,1)
     255     
    251256      DEALLOCATE( rlat_mpi, rlon_mpi)
    252257      DEALLOCATE( tsol_mpi)
     
    282287      DEALLOCATE( ratqs_mpi)
    283288      DEALLOCATE( run_off_lic_0_mpi)
     289      DEALLOCATE( masq_mpi)
    284290
    285291      if (phy_rank==0) then
     
    296302c
    297303      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)
    300306c
    301307      ierr = NF_ENDDEF(nid)
     
    378384      ierr = NF_ENDDEF(nid)
    379385#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)
    383389#endif     
    384390c BP ajout des fraction de chaque sous-surface
     
    396402      ierr = NF_ENDDEF(nid)
    397403#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))
    401407#endif
    402408C
     
    413419      ierr = NF_ENDDEF(nid)
    414420#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))
    418424#endif
    419425C
     
    430436      ierr = NF_ENDDEF(nid)
    431437#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))
    435441#endif
    436442C
     
    447453      ierr = NF_ENDDEF(nid)
    448454#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))
    452458#endif
    453459C
     
    757763#endif
    758764c
     765       endif
     766c$OMP END MASTER
     767cc ----> necessaire pour eviter bug openMP sur SX6
     768c$OMP MASTER
     769      if (phy_rank==0) then
    759770      DO nsrf = 1, nbsrf
    760771        IF (nsrf.LE.99) THEN
  • LMDZ4/branches/V3_test/libf/phylmd/physiq.F

    r726 r735  
    251251      CHARACTER*3 ctetaSTD(nbteta)
    252252      DATA ctetaSTD/'350','380','405'/
     253      SAVE ctetaSTD
    253254c$OMP THREADPRIVATE(ctetaSTD)
    254255      REAL rtetaSTD(nbteta)
    255256      DATA rtetaSTD/350., 380., 405./
     257      SAVE rtetaSTD
    256258c$OMP THREADPRIVATE(rtetaSTD)     
    257259c
     
    299301     .60000., 50000., 40000., 30000., 25000., 20000.,
    300302     .15000., 10000., 7000., 5000., 3000., 2000., 1000./
     303      SAVE rlevstd
    301304c$OMP THREADPRIVATE(rlevSTD)
    302305      CHARACTER*4 clevSTD(nlevSTD)
     
    304307     .'500 ','400 ','300 ','250 ','200 ','150 ','100 ',
    305308     .'70  ','50  ','30  ','20  ','10  '/
     309      SAVE clevSTD
    306310c$OMP THREADPRIVATE(clevSTD)
    307311c
     
    416420      DATA ifreq_isccp/3/
    417421      SAVE ifreq_isccp
    418 c$OMP THREAPRIVATE(ifreq_isccp)
     422c$OMP THREADPRIVATE(ifreq_isccp)
    419423      CHARACTER*5 typinout(napisccp)
    420424      DATA typinout/'i3od'/
    421 c$OMP THREAPRIVATE(typinout)
     425      SAVE typinout
     426c$OMP THREADPRIVATE(typinout)
    422427cIM verif boxptop BEG
    423428      CHARACTER*1 verticaxe(napisccp)
    424429      DATA verticaxe/'1'/
    425 c$OMP THREAPRIVATE(verticaxe)
     430      SAVE verticaxe
     431c$OMP THREADPRIVATE(verticaxe)
    426432cIM verif boxptop END
    427433      INTEGER nvlev(napisccp)
     
    446452cIM verif boxptop END
    447453c
    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)
     456c$OMP THREADPRIVATE(tautab,invtau)
    450457      REAL emsfc_lw
    451458      PARAMETER(emsfc_lw=0.99)
     
    523530c     save ok_isccp, ecrit_isccp, nid_isccp       
    524531      save nid_isccp       
    525 c$OMP THREADPRIVATE(ok_isccp, ecrit_isccp, nid_isccp,nid_isccp)
     532c$OMP THREADPRIVATE(nid_isccp)
     533
    526534c     data ok_isccp,ecrit_isccp/.true.,0.125/     
    527535c     data ok_isccp,ecrit_isccp/.true.,1./     
     
    533541      REAL zx_tau(kmaxm1), zx_pc(lmaxm1), zx_o500(iwmax)
    534542      DATA zx_tau/0.0, 0.3, 1.3, 3.6, 9.4, 23., 60./
     543      SAVE zx_tau
    535544cIM bad 151205     DATA zx_pc/50., 180., 310., 440., 560., 680., 800./
    536545      DATA zx_pc/180., 310., 440., 560., 680., 800., 1000./
     546      SAVE zx_pc
    537547c$OMP THREADPRIVATE(zx_tau,zx_pc)
    538548c cldtopres pression au sommet des nuages
     
    541551      DATA cldtopres/180., 310., 440., 560., 680., 800., 1000./
    542552      DATA cldtopres3/440., 680., 1000./
     553      SAVE cldtopres,cldtopres3
    543554c$OMP THREADPRIVATE(cldtopres,cldtopres3)
    544555cIM 051005 BEG
     
    556567      CHARACTER *3 pclev(lmaxm1)
    557568      DATA pclev/'pc1','pc2','pc3','pc4','pc5','pc6','pc7'/
     569      SAVE taulev,pclev
    558570c$OMP THREADPRIVATE(taulev,pclev)
    559571c
     
    610622     .                'pc= 680-800hPa, tau> 60.',
    611623     .                'pc= 800-1000hPa, tau> 60.'/
     624       SAVE cnameisccp
    612625c$OMP THREADPRIVATE(cnameisccp)
    613626c
     
    838851      REAL yv1(klon)            ! vents dans la premiere couche V
    839852      REAL,SAVE,ALLOCATABLE :: ffonte(:,:)    !Flux thermique utilise pour fondre la neige
    840 c$OMP THREAPRIVATE(ffonte)
     853c$OMP THREADPRIVATE(ffonte)
    841854      REAL,SAVE,ALLOCATABLE :: fqcalving(:,:) !Flux d'eau "perdu" par la surface
    842 c$OMP THREAPRIVATE(fqcalving)
     855c$OMP THREADPRIVATE(fqcalving)
    843856      REAL,SAVE,ALLOCATABLE :: fqfonte(:,:)  !Quantite d'eau de fonte des glaciers
    844 c$OMP THREAPRIVATE(fqcalving)
     857c$OMP THREADPRIVATE(fqfonte)
    845858c                               !et necessaire pour limiter la
    846859c                               !hauteur de neige, en kg/m2/s
     
    10741087c
    10751088      REAL,SAVE,ALLOCATABLE :: pblh(:, :)           ! Hauteur de couche limite
    1076 c$OMP THREAPRIVATE(pblh)
     1089c$OMP THREADPRIVATE(pblh)
    10771090      REAL,SAVE,ALLOCATABLE :: plcl(:, :)           ! Niveau de condensation de la CLA
    1078 c$OMP THREAPRIVATE(plcl)
     1091c$OMP THREADPRIVATE(plcl)
    10791092      REAL,SAVE,ALLOCATABLE :: capCL(:, :)          ! CAPE de couche limite
    1080 c$OMP THREAPRIVATE(capCL)
     1093c$OMP THREADPRIVATE(capCL)
    10811094      REAL,SAVE,ALLOCATABLE :: oliqCL(:, :)          ! eau_liqu integree de couche limite
    1082 c$OMP THREAPRIVATE(oliqCL)
     1095c$OMP THREADPRIVATE(oliqCL)
    10831096      REAL,SAVE,ALLOCATABLE :: cteiCL(:, :)          ! cloud top instab. crit. couche limite
    1084 c$OMP THREAPRIVATE(cteiCL)
     1097c$OMP THREADPRIVATE(cteiCL)
    10851098      REAL,SAVE,ALLOCATABLE :: pblt(:, :)          ! T a la Hauteur de couche limite
    1086 c$OMP THREAPRIVATE(pblt)
     1099c$OMP THREADPRIVATE(pblt)
    10871100      REAL,SAVE,ALLOCATABLE :: therm(:, :)
    1088 c$OMP TREADPRIVATE(therm)
     1101c$OMP THREADPRIVATE(therm)
    10891102      REAL,SAVE,ALLOCATABLE :: trmb1(:, :)          ! deep_cape
    1090 c$OMP TREADPRIVATE(trmb1)
     1103c$OMP THREADPRIVATE(trmb1)
    10911104      REAL,SAVE,ALLOCATABLE :: trmb2(:, :)          ! inhibition
    1092 c$OMP TREADPRIVATE(trmb2)
     1105c$OMP THREADPRIVATE(trmb2)
    10931106      REAL,SAVE,ALLOCATABLE :: trmb3(:, :)          ! Point Omega
    1094 c$OMP TREADPRIVATE(trmb3)
     1107c$OMP THREADPRIVATE(trmb3)
    10951108c Grdeurs de sorties
    10961109      REAL s_pblh(klon), s_lcl(klon), s_capCL(klon)
     
    12891302      REAL zx_tmp_fi2d(klon)      ! variable temporaire grille physique
    12901303      REAL zx_tmp_fi3d(klon,klev) ! variable temporaire pour champs 3D
    1291 #ifdef histmthNMC
     1304c#ifdef histmthNMC
    12921305cym   A voir plus tard !!!!
    12931306cym      REAL zx_tmp_NC(iim,jjmp1,nlevSTD)
    12941307      REAL zx_tmp_fiNC(klon,nlevSTD)
    1295 #endif
     1308c#endif
    12961309      REAL*8 zx_tmp2_fi3d(klon,klev) ! variable temporaire pour champs 3D
    12971310      REAL zx_tmp_2d(iim,jjmp1), zx_tmp_3d(iim,jjmp1,klev)
     
    13021315      SAVE nid_day, nid_mth, nid_ins, nid_nmc, nid_day_seri
    13031316      SAVE nid_ctesGCM
    1304 c$OMP THREADPRIVATE(nid_day, nid_mth, nid_ins, nid_nmc, nid_day_seri,nid_ctesGCM)
     1317c$OMP THREADPRIVATE(nid_day, nid_mth, nid_ins, nid_nmc)
     1318c$OMP THREADPRIVATE(nid_day_seri,nid_ctesGCM)
    13051319c
    13061320cIM 280405 BEG
     
    14031417
    14041418      REAL,SAVE,ALLOCATABLE :: topswai(:), solswai(:) ! Aerosol indirect effect.
    1405 c$OMP THREADPRIVATE(topswai(,solswai)
     1419c$OMP THREADPRIVATE(topswai,solswai)
    14061420      ! ok_aie=T ->
    14071421      !        ok_ade=T -AIE=topswai-topswad
     
    19081922
    19091923c#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"
    19121927
    19131928#endif
     
    28572872      ELSE IF (iflag_cldcon.eq.3) THEN
    28582873c  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 facteur
     2874c  convection et du calcul du pas de temps precedent diminue d'un facteur
    28602875c  facttemps
    28612876c      facttemps=pdtphys/1.e4
     
    28952910c
    28962911      IF (ok_isccp) THEN
    2897 c#include "calcul_simulISCCP.h"
     2912#include "calcul_simulISCCP.h"
    28982913      ENDIF !ok_isccp
    28992914
     
    35813596#endif
    35823597
    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"
    35863601
    35873602#endif
  • LMDZ4/branches/V3_test/libf/phylmd/phytrac.F

    r726 r735  
    403403         if (debutphy) then
    404404           allocate( trs(klon,nbtr) )
     405c$OMP MASTER
    405406           allocate( trs_mpi(klon_mpi) ) 
    406            allocate( masktr(klon,nbtr))
     407c$OMP END MASTER           
     408           allocate( masktr(klon,nbtr))
    407409           allocate( fshtr(klon,nbtr) )
    408410           allocate( hsoltr(nbtr))
  • LMDZ4/branches/V3_test/libf/phylmd/thermcell.F

    r704 r735  
    1414c   de "thermiques" explicitement representes
    1515c
    16 c   R�criture �partir d'un listing papier �Habas, le 14/02/00
    17 c
    18 c   le thermique est suppos�homog�e et dissip�par m�ange avec
    19 c   son environnement. la longueur l_mix contr�e l'efficacit�du
    20 c   mange
    21 c
    22 c   Le calcul du transport des diff�entes esp�es se fait en prenant
     16c   Reecriture a partir d'un listing papier à Habas, le 14/02/00
     17c
     18c   le thermique est suppose homogene et dissipe par melange avec
     19c   son environnement. la longueur l_mix controle l'efficacite du
     20c   melange
     21c
     22c   Le calcul du transport des differentes especes se fait en prenant
    2323c   en compte:
    2424c     1. un flux de masse montant
     
    512512c   calcul de la largeur de chaque ascendance dans le cas conservatif.
    513513c   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.
     514c   d'une couche est egale a la hauteur de la couche alimentante.
    515515c   La vitesse maximale dans l'ascendance est aussi prise comme estimation
    516516c   de la vitesse d'entrainement horizontal dans la couche alimentante.
     
    551551c      print*,'10 OK convect8'
    552552c     print*,'WA2 ',wa_moy
    553 c   calcul de la fraction de la maille concern par l'ascendance en tenant
     553c   calcul de la fraction de la maille concerne par l'ascendance en tenant
    554554c   compte de l'epluchage du thermique.
    555555c
     
    11191119            if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt.
    11201120     s         1.e-5*masse(ig,k)) then
    1121 c   On ite sur la valeur du coeff de freinage.
     1121c   On itere sur la valeur du coeff de freinage.
    11221122c              gamma0=rho(ig,k)*(zlev(ig,k+1)-zlev(ig,k))
    11231123               gamma0=masse(ig,k)
     
    11251125     s         *0.5/larga(ig)
    11261126c              gamma0=0.
    1127 c   la premie fois on multiplie le coefficient de freinage
     1127c   la premiere fois on multiplie le coefficient de freinage
    11281128c   par le module du vent dans la couche en dessous.
    11291129               dua=ua(ig,k-1)-u(ig,k-1)
     
    13171317            if ((fm(ig,k+1)+detr(ig,k))*ptimestep.gt.
    13181318     s         1.e-5*masse(ig,k)) then
    1319 c   On ite sur la valeur du coeff de freinage.
     1319c   On itere sur la valeur du coeff de freinage.
    13201320c              gamma0=rho(ig,k)*(zlev(ig,k+1)-zlev(ig,k))
    13211321               gamma0=masse(ig,k)
     
    13281328               zf=0.
    13291329               zf2=1./(1.-zf)
    1330 c   la premie fois on multiplie le coefficient de freinage
     1330c   la premiere fois on multiplie le coefficient de freinage
    13311331c   par le module du vent dans la couche en dessous.
    13321332               dua=ua(ig,k-1)-u(ig,k-1)
  • LMDZ4/branches/V3_test/libf/phylmd/write_histISCCP.h

    r704 r735  
    201201c
    202202       if (ok_sync) then
     203c$OMP MASTER
    203204        call histsync(nid_isccp)
     205c$OMP END MASTER       
    204206       endif
    205207
  • LMDZ4/branches/V3_test/libf/phylmd/write_histday.h

    r704 r735  
    569569c
    570570      if (ok_sync) then
     571c$OMP MASTER
    571572        call histsync(nid_day)
     573c$OMP END MASTER
    572574      endif
    573575
  • LMDZ4/branches/V3_test/libf/phylmd/write_histhf.h

    r704 r735  
    348348c
    349349      IF (ok_sync) THEN
     350c$OMP MASTER
    350351        call histsync(nid_hf)
     352c$OMP END MASTER
    351353      ENDIF
    352354
  • LMDZ4/branches/V3_test/libf/phylmd/write_histhf3d.h

    r704 r735  
    2323      CALL histwrite_phy(nid_hf3d,"vitv",itau_w,v_seri)
    2424      if (ok_sync) then
     25c$OMP MASTER
    2526        call histsync(nid_hf3d)
     27c$OMP END MASTER     
    2628      endif
  • LMDZ4/branches/V3_test/libf/phylmd/write_histins.h

    r704 r735  
    228228c
    229229      if (ok_sync) then
     230c$OMP MASTER
    230231        call histsync(nid_ins)
     232c$OMP END MASTER
    231233      endif
    232234      ENDIF
  • LMDZ4/branches/V3_test/libf/phylmd/write_histmth.h

    r704 r735  
    18091809c
    18101810      if (ok_sync) then
     1811c$OMP MASTER
    18111812        call histsync(nid_mth)
     1813c$OMP END MASTER
    18121814      endif
    18131815c
  • LMDZ4/branches/V3_test/libf/phylmd/write_histmthNMC.h

    r704 r735  
    119119c
    120120      if (ok_sync) then
     121c$OMP MASTER
    121122        call histsync(nid_nmc)
     123c$OMP END MASTER
    122124      endif
    123125
  • LMDZ4/branches/V3_test/libf/phylmd/write_histrac.h

    r726 r735  
    9696
    9797      if (ok_sync) then
    98          call histsync(nid_tra)
     98c$OMP MASTER
     99        call histsync(nid_tra)
     100c$OMP END MASTER
    99101       endif
    100102
Note: See TracChangeset for help on using the changeset viewer.