Ignore:
Timestamp:
Feb 27, 2008, 4:19:37 PM (16 years ago)
Author:
Laurent Fairhead
Message:

travail de Yann sur dynzon
"débranchement" de dyn_hist, dyn_histv, dyn_hist_ave
SD
LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4_V3_patches/libf/dyn3dpar/leapfrog_p.F

    r774 r916  
    66#define IO_DEBUG
    77
    8 !#undef CPP_IOIPSL
     8c#undef CPP_IOIPSL
    99
    1010      SUBROUTINE leapfrog_p(ucov,vcov,teta,ps,masse,phis,nq,q,clesphy0,
     
    481481c$OMP MASTER
    482482       call VTb(VThallo)
     483c$OMP END MASTER
     484
    483485       call Register_Hallo(ucov,ip1jmp1,llm,1,1,1,1,TestRequest)
    484486       call Register_Hallo(vcov,ip1jm,llm,1,1,1,1,TestRequest)
     
    496498
    497499       call SendRequest(TestRequest)
     500c$OMP BARRIER
    498501       call WaitRequest(TestRequest)
     502
     503c$OMP MASTER
    499504       call VTe(VThallo)
    500 
     505c$OMP END MASTER
     506c$OMP BARRIER
    501507     
    502508      if (debug) then   
     
    514520     .                reshape(q(:,:,j),(/iip1,jmp1,llm/)))
    515521        enddo       
     522c$OMP BARRIER
    516523      endif
    517 c$OMP END MASTER
    518 c$OMP BARRIER
     524
    519525     
    520526      True_itau=True_itau+1
     
    531537      call VTb(VTcaldyn)
    532538c$OMP END MASTER
    533 c$OMP BARRIER
    534539      var_time=time+iday-day_ini
    535 cc$OMP PARALLEL DEFAULT(SHARED)
    536 cc$OMP+         PRIVATE(rdaym_ini,rdayvrai,ijb,ije,
    537 cc$OMP+                 tppn,tpn,tpps,tps)
    538 
    539 cc$OMP+         SHARED(itau,ucov,vcov,teta,ps,masse,pk,pkf,phis ,
    540 cc$OMP+                phi,conser,du,dv,dteta,dp,w, pbaru,pbarv,
    541 cc$OMP+                time, iday,day_ini,forward,leapf, iapptrac,
    542 cc$OMP+                q,dq,p,VTcaldyn,offline,dtvr,itau)     
    543 
     540
     541c$OMP BARRIER
     542!      CALL FTRACE_REGION_BEGIN("caldyn")
    544543      CALL caldyn_p
    545544     $  ( itau,ucov,vcov,teta,ps,masse,pk,pkf,phis ,
    546545     $    phi,conser,du,dv,dteta,dp,w, pbaru,pbarv, time+iday-day_ini )
    547546
    548 ccc$OMP END PARALLEL     
     547!      CALL FTRACE_REGION_END("caldyn")
    549548c$OMP MASTER
    550549      call VTe(VTcaldyn)
    551550c$OMP END MASTER     
     551
     552cc$OMP BARRIER
     553cc$OMP MASTER
    552554c      call WriteField_p('du',reshape(du,(/iip1,jmp1,llm/)))
    553555c      call WriteField_p('dv',reshape(dv,(/iip1,jjm,llm/)))
     
    557559c      call WriteField_p('pbaru',reshape(pbaru,(/iip1,jmp1,llm/)))
    558560c      call WriteField_p('pbarv',reshape(pbarv,(/iip1,jjm,llm/)))
     561c      call WriteField_p('p',reshape(p,(/iip1,jmp1,llmp1/)))
     562c      call WriteField_p('masse',reshape(masse,(/iip1,jmp1,llm/)))
     563c      call WriteField_p('pk',reshape(pk,(/iip1,jmp1,llm/)))
     564cc$OMP END MASTER
    559565
    560566c-----------------------------------------------------------------------
     
    587593       IF (offline) THEN
    588594Cmaf stokage du flux de masse pour traceurs OFF-LINE
    589 #undef CPP_IOIPSL
     595
    590596#ifdef CPP_IOIPSL
    591            CALL fluxstokenc(pbaru,pbarv,masse,teta,phi,phis,
     597           CALL fluxstokenc_p(pbaru,pbarv,masse,teta,phi,phis,
    592598     .   dtvr, itau)
    593599#endif
     
    662668c$OMP END MASTER
    663669
    664 c$OMP BARRIER
    665670         CALL pression_p (  ip1jmp1, ap, bp, ps,  p      )
    666671
     672c$OMP BARRIER
     673
    667674         CALL exner_hyb_p(  ip1jmp1, ps, p,alpha,beta,pks, pk, pkf )
     675c$OMP BARRIER
    668676           rdaym_ini  = itau * dtvr / daysec
    669677           rdayvrai   = rdaym_ini  + day_ini
     
    690698c$OMP MASTER
    691699        call VTb(VThallo)
     700c$OMP END MASTER
     701
    692702        call SetTag(Request_physic,800)
    693703       
     
    726736     *                               jj_Nb_physic,2,2,Request_physic)
    727737#endif
     738       
     739        call SendRequest(Request_Physic)
     740c$OMP BARRIER
     741        call WaitRequest(Request_Physic)       
     742
     743c$OMP BARRIER
     744c$OMP MASTER
    728745        call SetDistrib(jj_nb_Physic)
    729        
    730         call SendRequest(Request_Physic)
    731         call WaitRequest(Request_Physic)       
    732        
    733746        call VTe(VThallo)
    734        
    735747        call VTb(VTphysiq)
    736748c$OMP END MASTER
     
    773785c$OMP MASTER
    774786        call SetDistrib(jj_nb_Physic_bis)
    775 
    776787        call VTb(VThallo)
     788c$OMP END MASTER
     789c$OMP BARRIER
    777790 
    778791        call Register_Hallo(dufi,ip1jmp1,llm,
     
    794807       
    795808        call SendRequest(Request_Physic)
     809c$OMP BARRIER
    796810        call WaitRequest(Request_Physic)
    797811             
     812c$OMP BARRIER
     813c$OMP MASTER
    798814        call VTe(VThallo)
    799  
    800815        call SetDistrib(jj_nb_Physic)
    801816c$OMP END MASTER
    802817c$OMP BARRIER   
    803                 ijb=ij_begin
     818       
     819        ijb=ij_begin
    804820        if (.not. pole_nord) then
    805821       
     
    842858c$OMP MASTER
    843859        call VTe(VTphysiq)
    844 
    845860        call VTb(VThallo)
     861c$OMP END MASTER
    846862
    847863        call SetTag(Request_physic,800)
     
    878894
    879895        call SendRequest(Request_Physic)
     896c$OMP BARRIER
    880897        call WaitRequest(Request_Physic)     
    881898
    882         call VTe(VThallo)
    883 
    884         call SetDistrib(jj_Nb_caldyn)
     899c$OMP BARRIER
     900c$OMP MASTER
     901       call VTe(VThallo)
     902       call SetDistrib(jj_Nb_caldyn)
    885903c$OMP END MASTER
    886904c$OMP BARRIER
     
    931949       ENDIF
    932950
    933 c$OMP BARRIER
    934951        CALL pression_p ( ip1jmp1, ap, bp, ps, p                  )
     952c$OMP BARRIER
     953
     954
    935955        CALL exner_hyb_p( ip1jmp1, ps, p,alpha,beta, pks, pk, pkf )
    936956c$OMP BARRIER
     
    956976
    957977c$OMP BARRIER
    958 c$OMP MASTER
     978
    959979        call Register_SwapFieldHallo(ucov,ucov,ip1jmp1,llm,
    960980     *                          jj_Nb_dissip,1,1,Request_dissip)
     
    973993
    974994        call SendRequest(Request_dissip)       
     995c$OMP BARRIER
    975996        call WaitRequest(Request_dissip)       
     997
     998c$OMP BARRIER
     999c$OMP MASTER
    9761000        call SetDistrib(jj_Nb_dissip)
    977        
    978         call VTe(VThallo)
    979 
     1001        call VTe(VThallo)
    9801002        call VTb(VTdissipation)
    981        
    9821003        call start_timer(timer_dissip)
    9831004c$OMP END MASTER
     
    10161037            call suspend_timer(timer_dissip)
    10171038            call VTb(VThallo)
    1018 
     1039c$OMP END MASTER
    10191040            call Register_Hallo(ucov,ip1jmp1,llm,1,1,1,1,Request_Dissip)
    10201041            call Register_Hallo(vcov,ip1jm,llm,1,1,1,1,Request_Dissip)
    10211042            call SendRequest(Request_Dissip)
     1043c$OMP BARRIER
    10221044            call WaitRequest(Request_Dissip)
     1045c$OMP MASTER
    10231046            call VTe(VThallo)
    10241047            call resume_timer(timer_dissip)
     
    11151138c$OMP MASTER
    11161139        call VTe(VTdissipation)
    1117 
    11181140        call stop_timer(timer_dissip)
    1119        
    11201141        call VTb(VThallo)
    1121 
     1142c$OMP END MASTER
    11221143        call Register_SwapField(ucov,ucov,ip1jmp1,llm,
    11231144     *                          jj_Nb_caldyn,Request_dissip)
     
    11361157
    11371158        call SendRequest(Request_dissip)       
     1159c$OMP BARRIER
    11381160        call WaitRequest(Request_dissip)       
     1161
     1162c$OMP BARRIER
     1163c$OMP MASTER
    11391164        call SetDistrib(jj_Nb_caldyn)
    11401165        call VTe(VThallo)
     
    11421167        print *,'fin dissipation'
    11431168c$OMP END MASTER
     1169c$OMP BARRIER
    11441170      END IF
    11451171
     
    12111237        call finalize_parallel
    12121238c$OMP END MASTER
     1239c$OMP BARRIER
    12131240        RETURN
    12141241      ENDIF
     
    12441271            IF(MOD(itau,iperiod).EQ.0 .OR. itau.EQ.itaufin) THEN
    12451272c$OMP BARRIER
    1246 c$OMP MASTER
    12471273               IF(itau.EQ.itaufin) THEN
    12481274                  iav=1
     
    12501276                  iav=0
    12511277               ENDIF
    1252 #ifdef CPP_IOIPSL
    1253              call Register_Hallo(vcov,ip1jm,llm,1,0,0,1,TestRequest)
    1254               call SendRequest(TestRequest)
    1255               call WaitRequest(TestRequest)
    1256 
    1257               CALL writedynav_p(histaveid, nqmx, itau,vcov ,
    1258      ,                          ucov,teta,pk,phi,q,masse,ps,phis)
     1278c#ifdef CPP_IOIPSL
     1279c             call Register_Hallo(vcov,ip1jm,llm,1,0,0,1,TestRequest)
     1280c             call SendRequest(TestRequest)
     1281cc$OMP BARRIER
     1282c              call WaitRequest(TestRequest)
     1283cc$OMP MASTER
     1284c              CALL writedynav_p(histaveid, nqmx, itau,vcov ,
     1285c     ,                          ucov,teta,pk,phi,q,masse,ps,phis)
     1286cc$OMP END MASTER
    12591287c               call bilan_dyn_p(2,dtvr*iperiod,dtvr*day_step*periodav,
    12601288c     ,           ps,masse,pk,pbaru,pbarv,teta,phi,ucov,vcov,q)
    1261 #endif
    1262 c$OMP END MASTER
     1289c#endif
    12631290            ENDIF
    12641291
     
    13021329        enddo
    13031330       
    1304 #ifdef CPP_IOIPSL
     1331c#ifdef CPP_IOIPSL
    13051332 
    1306         CALL writehist_p(histid,histvid, nqmx,itau,vcov,
    1307      s                       ucov,teta,phi,q,masse,ps,phis)
     1333c        CALL writehist_p(histid,histvid, nqmx,itau,vcov,
     1334c     s                       ucov,teta,phi,q,masse,ps,phis)
    13081335c#else
    13091336c       call Gather_Field(unat,ip1jmp1,llm,0)
     
    13181345c#include "write_grads_dyn.h"
    13191346c       endif
    1320 #endif
     1347c#endif
    13211348c$OMP END MASTER
    13221349           ENDIF
     
    14021429                  iav=0
    14031430               ENDIF
    1404 #ifdef CPP_IOIPSL
    1405 c$OMP BARRIER
    1406 c$OMP MASTER
    1407 
    1408               call Register_Hallo(vcov,ip1jm,llm,1,0,0,1,TestRequest)
    1409               call SendRequest(TestRequest)
    1410               call WaitRequest(TestRequest)
    1411 
    1412               CALL writedynav_p(histaveid, nqmx, itau,vcov ,
    1413      ,                          ucov,teta,pk,phi,q,masse,ps,phis)
     1431c#ifdef CPP_IOIPSL
     1432cc$OMP BARRIER
     1433
     1434c              call Register_Hallo(vcov,ip1jm,llm,1,0,0,1,TestRequest)
     1435c              call SendRequest(TestRequest)
     1436cc$OMP BARRIER
     1437c              call WaitRequest(TestRequest)
     1438
     1439cc$OMP MASTER
     1440c              CALL writedynav_p(histaveid, nqmx, itau,vcov ,
     1441c     ,                          ucov,teta,pk,phi,q,masse,ps,phis)
    14141442c               call bilan_dyn_p (2,dtvr*iperiod,dtvr*day_step*periodav,
    14151443c     ,           ps,masse,pk,pbaru,pbarv,teta,phi,ucov,vcov,q)
    1416 c$OMP END MASTER
    1417 #endif
     1444cc$OMP END MASTER
     1445c#endif
    14181446            ENDIF
    14191447
     
    14511479        enddo
    14521480
    1453 #ifdef CPP_IOIPSL
    1454 
    1455        CALL writehist_p( histid, histvid, nqmx, itau,vcov ,
    1456      ,                           ucov,teta,phi,q,masse,ps,phis)
     1481c#ifdef CPP_IOIPSL
     1482
     1483c       CALL writehist_p( histid, histvid, nqmx, itau,vcov ,
     1484c     ,                           ucov,teta,phi,q,masse,ps,phis)
    14571485c#else
    14581486c      call Gather_Field(unat,ip1jmp1,llm,0)
     
    14671495c#include "write_grads_dyn.h"
    14681496c      endif
    1469 #endif
     1497c#endif
    14701498
    14711499c$OMP END MASTER
Note: See TracChangeset for help on using the changeset viewer.