Ignore:
Timestamp:
Sep 29, 2016, 11:26:46 PM (9 years ago)
Author:
Laurent Fairhead
Message:

Merged trunk changes r2593:2640 into testing branch

Location:
LMDZ5/branches/testing
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/branches/testing

  • LMDZ5/branches/testing/libf/dynphy_lonlat/calfis.F

    r2435 r2641  
    3434      USE callphysiq_mod, ONLY: call_physiq
    3535#endif
    36 
     36      USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, kappa, pi
     37      USE comvert_mod, ONLY: preff, presnivs
     38     
    3739      IMPLICIT NONE
    3840c=======================================================================
     
    8991c    ------------------
    9092
    91 #include "dimensions.h"
    92 #include "paramet.h"
    93 #include "temps.h"
     93      include "dimensions.h"
     94      include "paramet.h"
    9495
    9596      INTEGER ngridmx
    9697      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    9798
    98 #include "comconst.h"
    99 #include "comvert.h"
    100 #include "comgeom2.h"
    101 #include "iniprint.h"
     99      include "comgeom2.h"
     100      include "iniprint.h"
    102101
    103102c    Arguments :
     
    142141c
    143142      REAL zrot(iip1,jjm,llm) ! AdlC May 2014
    144       REAL zufi(ngridmx,llm), zvfi(ngridmx,llm), zrfi(ngridmx,llm)
     143      REAL zufi(ngridmx,llm), zvfi(ngridmx,llm)
     144      REAL zrfi(ngridmx,llm) ! relative wind vorticity
    145145      REAL ztfi(ngridmx,llm),zqfi(ngridmx,llm,nqtot)
     146      REAL zpk(ngridmx,llm)
    146147c
    147148      REAL pcvgu(ngridmx,llm), pcvgv(ngridmx,llm)
     
    212213
    213214
    214 c   42. pression intercouches :
     215c   42. pression intercouches et fonction d'Exner:
    215216c
    216217c   -----------------------------------------------------------------
     
    223224       unskap   = 1./ kappa
    224225c
    225       DO l = 1, llmp1
     226      DO l = 1, llm
     227        zpk(   1,l ) = ppk(1,1,l)
    226228        zplev( 1,l ) = pp(1,1,l)
    227229        ig0 = 2
    228230          DO j = 2, jjm
    229231             DO i =1, iim
     232              zpk(   ig0,l ) = ppk(i,j,l)
    230233              zplev( ig0,l ) = pp(i,j,l)
    231234              ig0 = ig0 +1
    232235             ENDDO
    233236          ENDDO
     237        zpk(   ngridmx,l ) = ppk(1,jjp1,l)
    234238        zplev( ngridmx,l ) = pp(1,jjp1,l)
    235239      ENDDO
     240        zplev( 1,llmp1 ) = pp(1,1,llmp1)
     241        ig0 = 2
     242          DO j = 2, jjm
     243             DO i =1, iim
     244              zplev( ig0,llmp1 ) = pp(i,j,llmp1)
     245              ig0 = ig0 +1
     246             ENDDO
     247          ENDDO
     248        zplev( ngridmx,llmp1 ) = pp(1,jjp1,llmp1)
    236249c
    237250c
     
    472485     &                   jD_cur,jH_cur_split,zdt_split,
    473486     &                   zplev,zplay,
    474      &                   zphi,zphis,
     487     &                   zpk,zphi,zphis,
    475488     &                   presnivs,
    476489     &                   zufi,zvfi,zrfi,ztfi,zqfi,
  • LMDZ5/branches/testing/libf/dynphy_lonlat/calfis_loc.F

    r2435 r2641  
    5050      USE callphysiq_mod, ONLY: call_physiq
    5151#endif
     52      USE comvert_mod, ONLY: preff, presnivs
     53      USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, kappa, pi
    5254
    5355#ifdef CPP_PARA
     
    107109c    ------------------
    108110
    109 #include "dimensions.h"
    110 #include "paramet.h"
    111 #include "temps.h"
     111      include "dimensions.h"
     112      include "paramet.h"
    112113
    113114      INTEGER ngridmx
    114115      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    115116
    116 #include "comconst.h"
    117 #include "comvert.h"
    118 #include "comgeom2.h"
    119 #include "iniprint.h"
     117      include "comgeom2.h"
     118      include "iniprint.h"
    120119#ifdef CPP_MPI
    121120      include 'mpif.h'
     
    163162      REAL,ALLOCATABLE,SAVE :: zufi(:,:), zvfi(:,:), zrfi(:,:)
    164163      REAL,ALLOCATABLE,SAVE :: ztfi(:,:),zqfi(:,:,:)
     164      REAL,ALLOCATABLE,SAVE ::  zpk(:,:)
    165165c
    166166      REAL,ALLOCATABLE,SAVE :: pcvgu(:,:), pcvgv(:,:)
     
    175175      REAL,ALLOCATABLE,SAVE :: zplev_omp(:,:)
    176176      REAL,ALLOCATABLE,SAVE :: zplay_omp(:,:)
     177      REAL,ALLOCATABLE,SAVE :: zpk_omp(:,:)
    177178      REAL,ALLOCATABLE,SAVE :: zphi_omp(:,:)
    178179      REAL,ALLOCATABLE,SAVE :: zphis_omp(:)
     
    212213!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    213214
    214 c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zphi_omp,zphis_omp,
     215c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zpk_omp,zphi_omp,zphis_omp,
    215216c$OMP+                 presnivs_omp,zufi_omp,zvfi_omp,ztfi_omp,
    216217c$OMP+                 zrfi_omp,zqfi_omp,zdufi_omp,zdvfi_omp,
     
    276277      ALLOCATE(zdufi2(klon+iim,llm),zdvfi2(klon+iim,llm))
    277278      ALLOCATE(flxwfi(klon,llm))
     279      ALLOCATE(zpk(klon,llm))
    278280c$OMP END MASTER
    279 c$OMP BARRIER    
     281c$OMP BARRIER         
    280282      ELSE
    281283          debut = .FALSE.
     
    329331      ENDDO
    330332c$OMP END DO NOWAIT
     333
     334c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     335      DO l=1,llm
     336        do ig0=1,klon
     337          i=index_i(ig0)
     338          j=index_j(ig0)
     339          zpk(ig0,l)=ppk(i,j,l)
     340        enddo
     341      ENDDO
     342c$OMP END DO NOWAIT
     343
    331344c
    332345c
     
    365378           enddo
    366379         ENDDO
    367 c$OMP END DO NOWAIT     
     380c$OMP END DO NOWAIT       
    368381      ENDDO
    369382
     
    382395           enddo
    383396         ENDDO
    384 c$OMP END DO NOWAIT     
     397c$OMP END DO NOWAIT       
    385398
    386399c      CALL gr_dyn_fi_p(llm,iip1,jjp1,klon,pphi,zphi)
     
    403416c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    404417      DO l=1,llm
    405         DO ig=1,klon
    406            zphi(ig,l)=zphi(ig,l)-zphis(ig)
    407         ENDDO
     418        DO ig=1,klon
     419           zphi(ig,l)=zphi(ig,l)-zphis(ig)
     420        ENDDO
    408421      ENDDO
    409422c$OMP END DO NOWAIT
     
    532545           DO i=2,iim
    533546             z1(i)   =(rlonu(i)-rlonu(i-1))*pvcov(i,jjm,l)/cv(i,jjm)
    534            ENDDO
     547           ENDDO
    535548 
    536549           DO i=1,iim
    537550              zcos(i)    = COS(rlonv(i))*z1(i)
    538551              zsin(i)    = SIN(rlonv(i))*z1(i)
    539            ENDDO
     552           ENDDO
    540553 
    541554           zufi(klon,l)  = SSUM(iim,zcos,1)/pi
     
    572585        allocate(zplev_omp(klon,llm+1))
    573586        allocate(zplay_omp(klon,llm))
     587        allocate(zpk_omp(klon,llm))
    574588        allocate(zphi_omp(klon,llm))
    575589        allocate(zphis_omp(klon))
     
    590604        allocate(zdpsrf_omp(klon))
    591605        allocate(flxwfi_omp(klon,llm))
    592         first_omp=.false.
     606        first_omp=.false.
    593607      endif
    594608       
    595            
     609           
    596610      klon=klon_omp
    597611      offset=klon_omp_begin-1
     
    600614        do i=1,klon
    601615          zplev_omp(i,l)=zplev(offset+i,l)
    602         enddo
    603       enddo
    604          
     616        enddo
     617      enddo
     618         
    605619       do l=1,llm
    606620        do i=1,klon 
    607           zplay_omp(i,l)=zplay(offset+i,l)
     621          zplay_omp(i,l)=zplay(offset+i,l)
     622        enddo
     623      enddo
     624       
     625       do l=1,llm
     626        do i=1,klon 
     627          zpk_omp(i,l)=zpk(offset+i,l)
    608628        enddo
    609629      enddo
     
    611631      do l=1,llm
    612632        do i=1,klon
    613           zphi_omp(i,l)=zphi(offset+i,l)
    614         enddo
    615       enddo
    616        
     633          zphi_omp(i,l)=zphi(offset+i,l)
     634        enddo
     635      enddo
     636       
    617637      do i=1,klon
    618         zphis_omp(i)=zphis(offset+i)
     638        zphis_omp(i)=zphis(offset+i)
    619639      enddo
    620640     
    621        
     641       
    622642      do l=1,llm
    623643        presnivs_omp(l)=presnivs(l)
    624644      enddo
    625        
    626       do l=1,llm
    627         do i=1,klon
    628           zufi_omp(i,l)=zufi(offset+i,l)
    629         enddo
    630       enddo
    631        
    632       do l=1,llm
    633         do i=1,klon
    634           zvfi_omp(i,l)=zvfi(offset+i,l)
    635         enddo
    636       enddo
    637        
    638       do l=1,llm
    639         do i=1,klon
    640           zrfi_omp(i,l)=zrfi(offset+i,l)
    641         enddo
    642       enddo
    643        
    644       do l=1,llm
    645         do i=1,klon
    646           ztfi_omp(i,l)=ztfi(offset+i,l)
    647         enddo
    648       enddo
    649        
     645       
     646      do l=1,llm
     647        do i=1,klon
     648          zufi_omp(i,l)=zufi(offset+i,l)
     649        enddo
     650      enddo
     651       
     652      do l=1,llm
     653        do i=1,klon
     654          zvfi_omp(i,l)=zvfi(offset+i,l)
     655        enddo
     656      enddo
     657       
     658      do l=1,llm
     659        do i=1,klon
     660          zrfi_omp(i,l)=zrfi(offset+i,l)
     661        enddo
     662      enddo
     663       
     664      do l=1,llm
     665        do i=1,klon
     666          ztfi_omp(i,l)=ztfi(offset+i,l)
     667        enddo
     668      enddo
     669       
    650670      do iq=1,nqtot
    651671        do l=1,llm
    652672          do i=1,klon
    653673            zqfi_omp(i,l,iq)=zqfi(offset+i,l,iq)
    654           enddo
    655         enddo
    656       enddo
    657        
    658       do l=1,llm
    659         do i=1,klon
    660           zdufi_omp(i,l)=zdufi(offset+i,l)
    661         enddo
    662       enddo
    663        
    664       do l=1,llm
    665         do i=1,klon
    666           zdvfi_omp(i,l)=zdvfi(offset+i,l)
    667         enddo
    668       enddo
    669        
     674          enddo
     675        enddo
     676      enddo
     677       
     678      do l=1,llm
     679        do i=1,klon
     680          zdufi_omp(i,l)=zdufi(offset+i,l)
     681        enddo
     682      enddo
     683       
     684      do l=1,llm
     685        do i=1,klon
     686          zdvfi_omp(i,l)=zdvfi(offset+i,l)
     687        enddo
     688      enddo
     689       
    670690      do l=1,llm
    671691        do i=1,klon
    672692          zdtfi_omp(i,l)=zdtfi(offset+i,l)
    673         enddo
    674       enddo
    675        
     693        enddo
     694      enddo
     695       
    676696      do iq=1,nqtot
    677697        do l=1,llm
    678698          do i=1,klon
    679             zdqfi_omp(i,l,iq)=zdqfi(offset+i,l,iq)
    680           enddo
     699            zdqfi_omp(i,l,iq)=zdqfi(offset+i,l,iq)
     700          enddo
    681701        enddo
    682702      enddo
    683        
     703             
    684704      do i=1,klon
    685         zdpsrf_omp(i)=zdpsrf(offset+i)
     705        zdpsrf_omp(i)=zdpsrf(offset+i)
    686706      enddo
    687707
     
    689709        do i=1,klon
    690710          flxwfi_omp(i,l)=flxwfi(offset+i,l)
    691         enddo
     711        enddo
    692712      enddo
    693713     
     
    715735     &                   jD_cur,jH_cur_split,zdt_split,
    716736     &                   zplev_omp,zplay_omp,
    717      &                   zphi_omp,zphis_omp,
     737     &                   zpk_omp,zphi_omp,zphis_omp,
    718738     &                   presnivs_omp,
    719739     &                   zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp,
     
    749769        do i=1,klon
    750770          zplev(offset+i,l)=zplev_omp(i,l)
    751         enddo
    752       enddo
    753          
     771        enddo
     772      enddo
     773         
    754774       do l=1,llm
    755775        do i=1,klon 
    756           zplay(offset+i,l)=zplay_omp(i,l)
    757         enddo
    758       enddo
    759        
    760       do l=1,llm
    761         do i=1,klon
    762           zphi(offset+i,l)=zphi_omp(i,l)
    763         enddo
    764       enddo
    765        
     776          zplay(offset+i,l)=zplay_omp(i,l)
     777        enddo
     778      enddo
     779       
     780      do l=1,llm
     781        do i=1,klon
     782          zphi(offset+i,l)=zphi_omp(i,l)
     783        enddo
     784      enddo
     785       
    766786
    767787      do i=1,klon
    768         zphis(offset+i)=zphis_omp(i)
     788        zphis(offset+i)=zphis_omp(i)
    769789      enddo
    770790     
    771        
     791       
    772792      do l=1,llm
    773793        presnivs(l)=presnivs_omp(l)
    774794      enddo
    775        
    776       do l=1,llm
    777         do i=1,klon
    778           zufi(offset+i,l)=zufi_omp(i,l)
    779         enddo
    780       enddo
    781        
    782       do l=1,llm
    783         do i=1,klon
    784           zvfi(offset+i,l)=zvfi_omp(i,l)
    785         enddo
    786       enddo
    787        
    788       do l=1,llm
    789         do i=1,klon
    790           ztfi(offset+i,l)=ztfi_omp(i,l)
    791         enddo
    792       enddo
    793        
     795       
     796      do l=1,llm
     797        do i=1,klon
     798          zufi(offset+i,l)=zufi_omp(i,l)
     799        enddo
     800      enddo
     801       
     802      do l=1,llm
     803        do i=1,klon
     804          zvfi(offset+i,l)=zvfi_omp(i,l)
     805        enddo
     806      enddo
     807       
     808      do l=1,llm
     809        do i=1,klon
     810          ztfi(offset+i,l)=ztfi_omp(i,l)
     811        enddo
     812      enddo
     813       
    794814      do iq=1,nqtot
    795815        do l=1,llm
    796816          do i=1,klon
    797817            zqfi(offset+i,l,iq)=zqfi_omp(i,l,iq)
    798           enddo
    799         enddo
    800       enddo
    801        
    802       do l=1,llm
    803         do i=1,klon
    804           zdufi(offset+i,l)=zdufi_omp(i,l)
    805         enddo
    806       enddo
    807        
    808       do l=1,llm
    809         do i=1,klon
    810           zdvfi(offset+i,l)=zdvfi_omp(i,l)
    811         enddo
    812       enddo
    813        
     818          enddo
     819        enddo
     820      enddo
     821       
     822      do l=1,llm
     823        do i=1,klon
     824          zdufi(offset+i,l)=zdufi_omp(i,l)
     825        enddo
     826      enddo
     827       
     828      do l=1,llm
     829        do i=1,klon
     830          zdvfi(offset+i,l)=zdvfi_omp(i,l)
     831        enddo
     832      enddo
     833       
    814834      do l=1,llm
    815835        do i=1,klon
    816836          zdtfi(offset+i,l)=zdtfi_omp(i,l)
    817         enddo
    818       enddo
    819        
     837        enddo
     838      enddo
     839       
    820840      do iq=1,nqtot
    821841        do l=1,llm
    822842          do i=1,klon
    823             zdqfi(offset+i,l,iq)=zdqfi_omp(i,l,iq)
    824           enddo
     843            zdqfi(offset+i,l,iq)=zdqfi_omp(i,l,iq)
     844          enddo
    825845        enddo
    826846      enddo
    827        
     847             
    828848      do i=1,klon
    829         zdpsrf(offset+i)=zdpsrf_omp(i)
     849        zdpsrf(offset+i)=zdpsrf_omp(i)
    830850      enddo
    831851     
     
    929949       
    930950       if (.not. is_south_pole_dyn) then
    931         pdpsfi(:,jj_end:jj_end+1)=0
     951        pdpsfi(:,jj_end:jj_end+1)=0
    932952       endif
    933953c$OMP END MASTER
     
    10451065        pdqfi(:,jj_begin:jj_end,l,:)=0.
    10461066      ENDDO
    1047 c$OMP END DO NOWAIT     
     1067c$OMP END DO NOWAIT       
    10481068
    10491069C
     
    10561076!CDIR ON_ADB(index_j)
    10571077!cdir NODEP           
    1058              DO ig0=kstart,kend
     1078             DO ig0=kstart,kend
    10591079              i=index_i(ig0)
    10601080              j=index_j(ig0)
     
    10621082              if (i==1) pdqfi(iip1,j,l,iiq) = zdqfi(ig0,l,iq)
    10631083            ENDDO
    1064            
    1065             IF (is_north_pole_dyn) then
    1066               DO i=1,iip1
     1084           
     1085            IF (is_north_pole_dyn) then
     1086              DO i=1,iip1
    10671087                pdqfi(i,1,l,iiq)    = zdqfi(1,l,iq)
    1068               ENDDO
    1069             ENDIF
    1070            
    1071             IF (is_south_pole_dyn) then
    1072               DO i=1,iip1
     1088              ENDDO
     1089            ENDIF
     1090           
     1091            IF (is_south_pole_dyn) then
     1092              DO i=1,iip1
    10731093                pdqfi(i,jjp1,l,iiq) = zdqfi(klon,l,iq)
    1074               ENDDO
    1075             ENDIF
    1076            
     1094              ENDDO
     1095            ENDIF
     1096           
    10771097         ENDDO
    1078 c$OMP END DO NOWAIT     
     1098c$OMP END DO NOWAIT       
    10791099      ENDDO
    10801100     
     
    11361156           pdvfi(i,j,l)=0.5*(zdvfi2(ig0,l)+zdvfi2(ig0+iim,l))*cv(i,j)
    11371157           if (i==1) pdvfi(iip1,j,l) = 0.5*(zdvfi2(ig0,l)+
    1138      $                                      zdvfi2(ig0+iim,l))
    1139      $                                    *cv(i,j)
     1158     $                                            zdvfi2(ig0+iim,l))
     1159     $                                          *cv(i,j)
    11401160        enddo
    11411161         
  • LMDZ5/branches/testing/libf/dynphy_lonlat/calfis_p.F

    r2435 r2641  
    4747      USE callphysiq_mod, ONLY: call_physiq
    4848#endif
     49      USE comvert_mod, ONLY: preff, presnivs
     50      USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, kappa, pi
    4951
    5052      IMPLICIT NONE
     
    105107#include "dimensions.h"
    106108#include "paramet.h"
    107 #include "temps.h"
    108109
    109110      INTEGER ngridmx
    110111      PARAMETER( ngridmx = 2+(jjm-1)*iim - 1/jjm   )
    111112
    112 #include "comconst.h"
    113 #include "comvert.h"
    114113#include "comgeom2.h"
    115114#include "iniprint.h"
     
    159158      REAL,ALLOCATABLE,SAVE :: zphi(:,:),zphis(:)
    160159c
    161       REAL zrot(iip1,jjb_v:jje_v,llm) ! AdlC May 2014
     160!      REAL zrot(iip1,jjb_v:jje_v,llm) ! AdlC May 2014
     161      REAL :: zrot(iip1,jjm,llm)
    162162      REAL,ALLOCATABLE,SAVE :: zufi(:,:), zvfi(:,:), zrfi(:,:)
    163163      REAL,ALLOCATABLE,SAVE :: ztfi(:,:),zqfi(:,:,:)
     164      REAL,ALLOCATABLE,SAVE ::  zpk(:,:)
    164165c
    165166      REAL,ALLOCATABLE,SAVE :: pcvgu(:,:), pcvgv(:,:)
     
    174175      REAL,ALLOCATABLE,SAVE :: zplev_omp(:,:)
    175176      REAL,ALLOCATABLE,SAVE :: zplay_omp(:,:)
     177      REAL,ALLOCATABLE,SAVE :: zpk_omp(:,:)
    176178      REAL,ALLOCATABLE,SAVE :: zphi_omp(:,:)
    177179      REAL,ALLOCATABLE,SAVE :: zphis_omp(:)
     
    211213!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    212214
    213 c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zphi_omp,zphis_omp,
     215c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zpk_omp,zphi_omp,zphis_omp,
    214216c$OMP+                 presnivs_omp,zufi_omp,zvfi_omp,ztfi_omp,
    215217c$OMP+                 zrfi_omp,zqfi_omp,zdufi_omp,zdvfi_omp,
     
    275277      ALLOCATE(zdufi2(klon+iim,llm),zdvfi2(klon+iim,llm))
    276278      ALLOCATE(flxwfi(klon,llm))
     279      ALLOCATE(zpk(klon,llm))
    277280c$OMP END MASTER
    278 c$OMP BARRIER    
     281c$OMP BARRIER         
    279282      ELSE
    280283          debut = .FALSE.
     
    328331      ENDDO
    329332c$OMP END DO NOWAIT
     333
     334c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     335      DO l=1,llm
     336        do ig0=1,klon
     337          i=index_i(ig0)
     338          j=index_j(ig0)
     339          zpk(ig0,l)=ppk(i,j,l)
     340        enddo
     341      ENDDO
     342c$OMP END DO NOWAIT
     343
    330344c
    331345c
     
    364378           enddo
    365379         ENDDO
    366 c$OMP END DO NOWAIT     
     380c$OMP END DO NOWAIT       
    367381      ENDDO
    368382
     
    379393c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    380394      DO l=1,llm
    381         DO ig=1,klon
    382            zphi(ig,l)=zphi(ig,l)-zphis(ig)
    383         ENDDO
     395        DO ig=1,klon
     396           zphi(ig,l)=zphi(ig,l)-zphis(ig)
     397        ENDDO
    384398      ENDDO
    385399c$OMP END DO NOWAIT
     
    509523           DO i=2,iim
    510524             z1(i)   =(rlonu(i)-rlonu(i-1))*pvcov(i,jjm,l)/cv(i,jjm)
    511            ENDDO
     525           ENDDO
    512526 
    513527           DO i=1,iim
    514528              zcos(i)    = COS(rlonv(i))*z1(i)
    515529              zsin(i)    = SIN(rlonv(i))*z1(i)
    516            ENDDO
     530           ENDDO
    517531 
    518532           zufi(klon,l)  = SSUM(iim,zcos,1)/pi
     
    537551        allocate(zplev_omp(klon,llm+1))
    538552        allocate(zplay_omp(klon,llm))
     553        allocate(zpk_omp(klon,llm))
    539554        allocate(zphi_omp(klon,llm))
    540555        allocate(zphis_omp(klon))
     
    555570        allocate(zdpsrf_omp(klon))
    556571        allocate(flxwfi_omp(klon,llm))
    557         first_omp=.false.
     572        first_omp=.false.
    558573      endif
    559574       
    560            
     575           
    561576      klon=klon_omp
    562577      offset=klon_omp_begin-1
     
    565580        do i=1,klon
    566581          zplev_omp(i,l)=zplev(offset+i,l)
    567         enddo
    568       enddo
    569          
     582        enddo
     583      enddo
     584         
    570585       do l=1,llm
    571586        do i=1,klon 
    572           zplay_omp(i,l)=zplay(offset+i,l)
     587          zplay_omp(i,l)=zplay(offset+i,l)
     588        enddo
     589      enddo
     590       
     591       do l=1,llm
     592        do i=1,klon 
     593          zpk_omp(i,l)=zpk(offset+i,l)
    573594        enddo
    574595      enddo
     
    576597      do l=1,llm
    577598        do i=1,klon
    578           zphi_omp(i,l)=zphi(offset+i,l)
    579         enddo
    580       enddo
    581        
     599          zphi_omp(i,l)=zphi(offset+i,l)
     600        enddo
     601      enddo
     602       
    582603      do i=1,klon
    583         zphis_omp(i)=zphis(offset+i)
     604        zphis_omp(i)=zphis(offset+i)
    584605      enddo
    585606     
    586        
     607       
    587608      do l=1,llm
    588609        presnivs_omp(l)=presnivs(l)
    589610      enddo
    590        
    591       do l=1,llm
    592         do i=1,klon
    593           zufi_omp(i,l)=zufi(offset+i,l)
    594         enddo
    595       enddo
    596        
    597       do l=1,llm
    598         do i=1,klon
    599           zvfi_omp(i,l)=zvfi(offset+i,l)
    600         enddo
    601       enddo
    602        
    603       do l=1,llm
    604         do i=1,klon
    605           zrfi_omp(i,l)=zrfi(offset+i,l)
    606         enddo
    607       enddo
    608        
    609        
    610       do l=1,llm
    611         do i=1,klon
    612           ztfi_omp(i,l)=ztfi(offset+i,l)
    613         enddo
    614       enddo
    615        
     611       
     612      do l=1,llm
     613        do i=1,klon
     614          zufi_omp(i,l)=zufi(offset+i,l)
     615        enddo
     616      enddo
     617       
     618      do l=1,llm
     619        do i=1,klon
     620          zvfi_omp(i,l)=zvfi(offset+i,l)
     621        enddo
     622      enddo
     623       
     624      do l=1,llm
     625        do i=1,klon
     626          zrfi_omp(i,l)=zrfi(offset+i,l)
     627        enddo
     628      enddo
     629       
     630       
     631      do l=1,llm
     632        do i=1,klon
     633          ztfi_omp(i,l)=ztfi(offset+i,l)
     634        enddo
     635      enddo
     636       
    616637      do iq=1,nqtot
    617638        do l=1,llm
    618639          do i=1,klon
    619640            zqfi_omp(i,l,iq)=zqfi(offset+i,l,iq)
    620           enddo
    621         enddo
    622       enddo
    623        
    624       do l=1,llm
    625         do i=1,klon
    626           zdufi_omp(i,l)=zdufi(offset+i,l)
    627         enddo
    628       enddo
    629        
    630       do l=1,llm
    631         do i=1,klon
    632           zdvfi_omp(i,l)=zdvfi(offset+i,l)
    633         enddo
    634       enddo
    635        
     641          enddo
     642        enddo
     643      enddo
     644       
     645      do l=1,llm
     646        do i=1,klon
     647          zdufi_omp(i,l)=zdufi(offset+i,l)
     648        enddo
     649      enddo
     650       
     651      do l=1,llm
     652        do i=1,klon
     653          zdvfi_omp(i,l)=zdvfi(offset+i,l)
     654        enddo
     655      enddo
     656       
    636657      do l=1,llm
    637658        do i=1,klon
    638659          zdtfi_omp(i,l)=zdtfi(offset+i,l)
    639         enddo
    640       enddo
    641        
     660        enddo
     661      enddo
     662       
    642663      do iq=1,nqtot
    643664        do l=1,llm
    644665          do i=1,klon
    645             zdqfi_omp(i,l,iq)=zdqfi(offset+i,l,iq)
    646           enddo
     666            zdqfi_omp(i,l,iq)=zdqfi(offset+i,l,iq)
     667          enddo
    647668        enddo
    648669      enddo
    649        
     670             
    650671      do i=1,klon
    651         zdpsrf_omp(i)=zdpsrf(offset+i)
     672        zdpsrf_omp(i)=zdpsrf(offset+i)
    652673      enddo
    653674
     
    655676        do i=1,klon
    656677          flxwfi_omp(i,l)=flxwfi(offset+i,l)
    657         enddo
     678        enddo
    658679      enddo
    659680     
     
    680701     &                   jD_cur,jH_cur_split,zdt_split,
    681702     &                   zplev_omp,zplay_omp,
    682      &                   zphi_omp,zphis_omp,
     703     &                   zpk_omp,zphi_omp,zphis_omp,
    683704     &                   presnivs_omp,
    684705     &                   zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp,
     
    712733        do i=1,klon
    713734          zplev(offset+i,l)=zplev_omp(i,l)
    714         enddo
    715       enddo
    716          
     735        enddo
     736      enddo
     737         
    717738       do l=1,llm
    718739        do i=1,klon 
    719           zplay(offset+i,l)=zplay_omp(i,l)
    720         enddo
    721       enddo
    722        
    723       do l=1,llm
    724         do i=1,klon
    725           zphi(offset+i,l)=zphi_omp(i,l)
    726         enddo
    727       enddo
    728        
     740          zplay(offset+i,l)=zplay_omp(i,l)
     741        enddo
     742      enddo
     743       
     744      do l=1,llm
     745        do i=1,klon
     746          zphi(offset+i,l)=zphi_omp(i,l)
     747        enddo
     748      enddo
     749       
    729750
    730751      do i=1,klon
    731         zphis(offset+i)=zphis_omp(i)
     752        zphis(offset+i)=zphis_omp(i)
    732753      enddo
    733754     
    734        
     755       
    735756      do l=1,llm
    736757        presnivs(l)=presnivs_omp(l)
    737758      enddo
    738        
    739       do l=1,llm
    740         do i=1,klon
    741           zufi(offset+i,l)=zufi_omp(i,l)
    742         enddo
    743       enddo
    744        
    745       do l=1,llm
    746         do i=1,klon
    747           zvfi(offset+i,l)=zvfi_omp(i,l)
    748         enddo
    749       enddo
    750        
    751       do l=1,llm
    752         do i=1,klon
    753           ztfi(offset+i,l)=ztfi_omp(i,l)
    754         enddo
    755       enddo
    756        
     759       
     760      do l=1,llm
     761        do i=1,klon
     762          zufi(offset+i,l)=zufi_omp(i,l)
     763        enddo
     764      enddo
     765       
     766      do l=1,llm
     767        do i=1,klon
     768          zvfi(offset+i,l)=zvfi_omp(i,l)
     769        enddo
     770      enddo
     771       
     772      do l=1,llm
     773        do i=1,klon
     774          ztfi(offset+i,l)=ztfi_omp(i,l)
     775        enddo
     776      enddo
     777       
    757778      do iq=1,nqtot
    758779        do l=1,llm
    759780          do i=1,klon
    760781            zqfi(offset+i,l,iq)=zqfi_omp(i,l,iq)
    761           enddo
    762         enddo
    763       enddo
    764        
    765       do l=1,llm
    766         do i=1,klon
    767           zdufi(offset+i,l)=zdufi_omp(i,l)
    768         enddo
    769       enddo
    770        
    771       do l=1,llm
    772         do i=1,klon
    773           zdvfi(offset+i,l)=zdvfi_omp(i,l)
    774         enddo
    775       enddo
    776        
     782          enddo
     783        enddo
     784      enddo
     785       
     786      do l=1,llm
     787        do i=1,klon
     788          zdufi(offset+i,l)=zdufi_omp(i,l)
     789        enddo
     790      enddo
     791       
     792      do l=1,llm
     793        do i=1,klon
     794          zdvfi(offset+i,l)=zdvfi_omp(i,l)
     795        enddo
     796      enddo
     797       
    777798      do l=1,llm
    778799        do i=1,klon
    779800          zdtfi(offset+i,l)=zdtfi_omp(i,l)
    780         enddo
    781       enddo
    782        
     801        enddo
     802      enddo
     803       
    783804      do iq=1,nqtot
    784805        do l=1,llm
    785806          do i=1,klon
    786             zdqfi(offset+i,l,iq)=zdqfi_omp(i,l,iq)
    787           enddo
     807            zdqfi(offset+i,l,iq)=zdqfi_omp(i,l,iq)
     808          enddo
    788809        enddo
    789810      enddo
    790        
     811             
    791812      do i=1,klon
    792         zdpsrf(offset+i)=zdpsrf_omp(i)
     813        zdpsrf(offset+i)=zdpsrf_omp(i)
    793814      enddo
    794815     
     
    891912       pdpsfi(:,jj_begin)=0   
    892913       if (.not. is_south_pole_dyn) then
    893         pdpsfi(:,jj_end)=0
     914        pdpsfi(:,jj_end)=0
    894915       endif
    895916c$OMP END MASTER
     
    975996        pdqfi(:,:,l,:)=0.
    976997      ENDDO
    977 c$OMP END DO NOWAIT     
     998c$OMP END DO NOWAIT       
    978999
    9791000C
     
    9861007!CDIR ON_ADB(index_j)
    9871008!cdir NODEP           
    988              DO ig0=kstart,kend
     1009             DO ig0=kstart,kend
    9891010              i=index_i(ig0)
    9901011              j=index_j(ig0)
     
    9921013              if (i==1) pdqfi(iip1,j,l,iiq) = zdqfi(ig0,l,iq)
    9931014            ENDDO
    994            
    995             IF (is_north_pole_dyn) then
    996               DO i=1,iip1
     1015           
     1016            IF (is_north_pole_dyn) then
     1017              DO i=1,iip1
    9971018                pdqfi(i,1,l,iiq)    = zdqfi(1,l,iq)
    998               ENDDO
    999             ENDIF
    1000            
    1001             IF (is_south_pole_dyn) then
    1002               DO i=1,iip1
     1019              ENDDO
     1020            ENDIF
     1021           
     1022            IF (is_south_pole_dyn) then
     1023              DO i=1,iip1
    10031024                pdqfi(i,jjp1,l,iiq) = zdqfi(klon,l,iq)
    1004               ENDDO
    1005             ENDIF
    1006            
     1025              ENDDO
     1026            ENDIF
     1027           
    10071028         ENDDO
    1008 c$OMP END DO NOWAIT     
     1029c$OMP END DO NOWAIT       
    10091030      ENDDO
    10101031     
     
    10661087           pdvfi(i,j,l)=0.5*(zdvfi2(ig0,l)+zdvfi2(ig0+iim,l))*cv(i,j)
    10671088           if (i==1) pdvfi(iip1,j,l) = 0.5*(zdvfi2(ig0,l)+
    1068      $                                      zdvfi2(ig0+iim,l))
    1069      $                                    *cv(i,j)
     1089     $                                            zdvfi2(ig0+iim,l))
     1090     $                                          *cv(i,j)
    10701091        enddo
    10711092         
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/callphysiq_mod.F90

    r2435 r2641  
    1212                       jD_cur,jH_cur_split,zdt_split,                     &
    1313                       zplev_omp,zplay_omp,                               &
    14                        zphi_omp,zphis_omp,                                &
     14                       zpk_omp,zphi_omp,zphis_omp,                        &
    1515                       presnivs_omp,                                      &
    1616                       zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp,      &
     
    3535  REAL,INTENT(IN) :: zplev_omp(klon,llm+1) ! interlayer pressure (Pa)
    3636  REAL,INTENT(IN) :: zplay_omp(klon,llm) ! mid-layer pressure (Pa)
     37  REAL,INTENT(IN) :: zpk_omp(klon,llm) ! Exner function
    3738  REAL,INTENT(IN) :: zphi_omp(klon,llm) ! geopotential at midlayer
    3839  REAL,INTENT(IN) :: zphis_omp(klon) ! surface geopotential
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/ce0l.F90

    r2471 r2641  
    3434  USE mod_interface_dyn_phys, ONLY: init_interface_dyn_phys
    3535#endif
     36  USE comconst_mod, ONLY: cpp, daysec, dtphys, dtvr, g, kappa, omeg, r, rad, &
     37                          pi, jmp1
     38  USE logic_mod, ONLY: iflag_phys, ok_etat0, ok_limit
     39  USE comvert_mod, ONLY: pa, preff, pressure_exner
     40  USE temps_mod, ONLY: calend, day_ini, dt
    3641
    3742  IMPLICIT NONE
     
    4247  include "paramet.h"
    4348  include "comgeom2.h"
    44   include "comconst.h"
    45   include "comvert.h"
    4649  include "iniprint.h"
    47   include "temps.h"
    48   include "logic.h"
    4950  REAL               :: masque(iip1,jjp1)             !--- CONTINENTAL MASK
    5051  REAL               :: phis  (iip1,jjp1)             !--- GROUND GEOPOTENTIAL
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/etat0dyn_netcdf.F90

    r2435 r2641  
    3636  USE ioipsl,         ONLY: flininfo, flinopen, flinget, flinclo, histclo
    3737  USE assert_eq_m,    ONLY: assert_eq
     38  USE comconst_mod, ONLY: pi, cpp, kappa
     39  USE comvert_mod, ONLY: ap, bp, preff, pressure_exner
     40  USE temps_mod, ONLY: annee_ref, day_ref, itau_dyn, itau_phy
     41 
    3842  IMPLICIT NONE
    3943
     
    4549  include "paramet.h"
    4650  include "comgeom2.h"
    47   include "comvert.h"
    48   include "comconst.h"
    49   include "temps.h"
    5051  include "comdissnew.h"
    51   include "serre.h"
    5252  REAL, SAVE :: deg2rad
    5353  INTEGER,            SAVE      :: iml_dyn, jml_dyn, llm_dyn, ttm_dyn, fid_dyn
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/etat0phys_netcdf.F90

    r2542 r2641  
    4444    zmax0,fevap, rnebcon,falb_dir, wake_fip,    agesno,  detr_therm, pbl_tke,  &
    4545    phys_state_var_init
     46  USE comconst_mod, ONLY: pi, dtvr
    4647
    4748  PRIVATE
     
    5253  include "paramet.h"
    5354  include "comgeom2.h"
    54   include "comconst.h"
    5555  include "dimsoil.h"
    56   include "temps.h"
    5756  include "clesphys.h"
    5857  REAL, SAVE :: deg2rad
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90

    r2594 r2641  
    1212                     prad,pg,pr,pcpp,iflag_phys)
    1313  USE dimphy, ONLY: init_dimphy
     14  USE comvert_mod, ONLY: preff, ap, bp, presnivs, scaleheight, pseudoalt
    1415  USE inigeomphy_mod, ONLY: inigeomphy
    15   USE mod_grid_phy_lmdz, ONLY: klon_glo ! number of atmospheric columns (on full grid)
     16  USE mod_grid_phy_lmdz, ONLY: nbp_lon,nbp_lat,nbp_lev,klon_glo ! number of atmospheric columns (on full grid)
    1617  USE mod_phys_lmdz_para, ONLY: klon_omp ! number of columns (on local omp grid)
    1718  USE vertical_layers_mod, ONLY : init_vertical_layers
     
    2829  USE CHEM_REP, ONLY : Init_chem_rep_phys
    2930#endif
    30   USE control_mod, ONLY: dayref,anneeref,day_step,nday,offline, iphysiq
     31  USE control_mod, ONLY: dayref,anneeref,day_step,nday,offline, iphysiq, config_inca
    3132  USE inifis_mod, ONLY: inifis
    3233  USE time_phylmdz_mod, ONLY: init_time
     34  USE temps_mod, ONLY: annee_ref, day_ini, day_ref, start_time, calend
    3335  USE infotrac_phy, ONLY: init_infotrac_phy
    3436  USE phystokenc_mod, ONLY: init_phystokenc
     
    5052
    5153  include "dimensions.h"
    52   include "comvert.h"
    53   include "comconst.h"
    5454  include "iniprint.h"
    55   include "temps.h"
    5655  include "tracstoke.h"
    5756
     
    9998  ! --> now initialize things specific to the phylmd physics package
    10099 
    101 !$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/)
     100!!$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/)
     101!$OMP PARALLEL DEFAULT(SHARED) &
     102!       Copy all threadprivate variables in temps_mod
     103!$OMP COPYIN(annee_ref, day_ini, day_ref, start_time)
    102104
    103105  ! copy over preff , ap(), bp(), etc
     
    139141     call init_const_lmdz( &
    140142          anneeref,dayref, iphysiq,day_step,nday,  &
    141           nbsrf, is_oce,is_sic, is_ter,is_lic, calend)
     143          nbsrf, is_oce,is_sic, is_ter,is_lic, calend, &
     144          config_inca)
    142145     call init_inca_para( &
    143146          nbp_lon,nbp_lat,nbp_lev,klon_glo,mpi_size, &
     
    145148#endif
    146149  END IF
    147 !$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/)
    148150
     151!!$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/)
     152!$OMP PARALLEL DEFAULT(SHARED)
    149153  ! Additional initializations for aquaplanets
    150154  IF (iflag_phys>=100) THEN
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/init_ssrf_m.F90

    r2435 r2641  
    99  USE grid_atob_m,        ONLY: grille_m
    1010  USE ioipsl,             ONLY: flininfo, flinopen, flinget, flinclo
     11  USE comconst_mod, ONLY: im, pi
    1112
    1213  CHARACTER(LEN=256), PARAMETER :: icefname="landiceref.nc", icevar="landice"
     
    1718  include "paramet.h"
    1819  include "comgeom2.h"
    19   include "comconst.h"
    2020
    2121CONTAINS
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/limit_netcdf.F90

    r2594 r2641  
    6767                  NF90_DEF_DIM, NF90_DEF_VAR, NF90_PUT_VAR, NF90_PUT_ATT,      &
    6868                  NF90_NOERR,   NF90_NOWRITE, NF90_DOUBLE,  NF90_GLOBAL,       &
    69                   NF90_CLOBBER, NF90_ENDDEF,  NF90_UNLIMITED, NF90_FLOAT
     69                  NF90_CLOBBER, NF90_ENDDEF,  NF90_UNLIMITED, NF90_FLOAT
    7070  USE inter_barxy_m,      ONLY: inter_barxy
    7171  USE netcdf95,           ONLY: nf95_def_var, nf95_put_att, nf95_put_var
     72  USE comconst_mod, ONLY: pi
    7273  IMPLICIT NONE
    7374!-------------------------------------------------------------------------------
     
    8182!-------------------------------------------------------------------------------
    8283! Local variables:
    83   include "logic.h"
    8484  include "comgeom2.h"
    85   include "comconst.h"
    8685
    8786!--- INPUT NETCDF FILES NAMES --------------------------------------------------
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phylmd/test_disvert_m.F90

    r2435 r2641  
    1515    use exner_hyb_m, only: exner_hyb
    1616    use vertical_layers_mod, only: ap,bp,preff
     17    use comconst_mod, only: kappa, cpp
    1718
    1819    ! For llm:
    1920    include "dimensions.h"
    20 
    21     ! For kappa, cpp:
    22     include "comconst.h"
    2321
    2422    ! Local:
  • LMDZ5/branches/testing/libf/dynphy_lonlat/phymar/iniphysiq_mod.F90

    r2594 r2641  
    1212                     prad,pg,pr,pcpp,iflag_phys)
    1313  USE dimphy, ONLY: init_dimphy
     14  USE comvert_mod, ONLY: preff, ap, bp, presnivs, scaleheight, pseudoalt
    1415  USE inigeomphy_mod, ONLY: inigeomphy
     16  USE vertical_layers_mod, ONLY : init_vertical_layers
    1517  USE infotrac, ONLY: nqtot
    1618  USE comcstphy, ONLY: rradius, & ! planet radius (m)
     
    6971!$OMP PARALLEL
    7072
     73  ! copy over preff , ap(), bp(), etc
     74  CALL init_vertical_layers(nlayer,preff,scaleheight, &
     75                            ap,bp,presnivs,pseudoalt)
     76
    7177  ! Initialize tracer names, numbers, etc. for physics
    7278  CALL init_infotrac_phy(nqtot)
Note: See TracChangeset for help on using the changeset viewer.