Changeset 1999 for LMDZ5/branches/testing/libf/dyn3dpar/leapfrog_p.F
- Timestamp:
- Mar 20, 2014, 10:57:19 AM (10 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 1922-1927,1929-1933,1937-1939,1943-1997
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/dyn3dpar/leapfrog_p.F
r1910 r1999 17 17 USE vampir 18 18 USE timer_filtre, ONLY : print_filtre_timer 19 USE infotrac 19 USE infotrac, ONLY: nqtot 20 20 USE guide_p_mod, ONLY : guide_main 21 21 USE getparam 22 USE control_mod 23 22 USE control_mod, ONLY: nday, day_step, planet_type, offline, 23 & iconser, iphysiq, iperiod, dissip_period, 24 & iecri, ip_ebil_dyn, ok_dynzon, ok_dyn_ins, 25 & periodav, ok_dyn_ave, output_grads_dyn, 26 & iapp_tracvl 24 27 IMPLICIT NONE 25 28 … … 70 73 #include "academic.h" 71 74 72 INTEGER longcles 73 PARAMETER ( longcles = 20 ) 74 REAL clesphy0( longcles ) 75 INTEGER,PARAMETER :: longcles = 20 76 REAL,INTENT(IN) :: clesphy0( longcles ) ! not used 77 REAL,INTENT(IN) :: time_0 ! not used 78 79 c dynamical variables: 80 REAL,INTENT(INOUT) :: ucov(ip1jmp1,llm) ! zonal covariant wind 81 REAL,INTENT(INOUT) :: vcov(ip1jm,llm) ! meridional covariant wind 82 REAL,INTENT(INOUT) :: teta(ip1jmp1,llm) ! potential temperature 83 REAL,INTENT(INOUT) :: ps(ip1jmp1) ! surface pressure (Pa) 84 REAL,INTENT(INOUT) :: masse(ip1jmp1,llm) ! air mass 85 REAL,INTENT(INOUT) :: phis(ip1jmp1) ! geopotentiat at the surface 86 REAL,INTENT(INOUT) :: q(ip1jmp1,llm,nqtot) ! advected tracers 87 88 REAL,SAVE :: p (ip1jmp1,llmp1 ) ! interlayer pressure 89 REAL,SAVE :: pks(ip1jmp1) ! exner at the surface 90 REAL,SAVE :: pk(ip1jmp1,llm) ! exner at mid-layer 91 REAL,SAVE :: pkf(ip1jmp1,llm) ! filtered exner at mid-layer 92 REAL,SAVE :: phi(ip1jmp1,llm) ! geopotential 93 REAL,SAVE :: w(ip1jmp1,llm) ! vertical velocity 75 94 76 95 real zqmin,zqmax 77 78 c variables dynamiques79 REAL :: vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants80 REAL :: teta(ip1jmp1,llm) ! temperature potentielle81 REAL :: q(ip1jmp1,llm,nqtot) ! champs advectes82 REAL :: ps(ip1jmp1) ! pression au sol83 REAL,SAVE :: p (ip1jmp1,llmp1 ) ! pression aux interfac.des couches84 REAL,SAVE :: pks(ip1jmp1) ! exner au sol85 REAL,SAVE :: pk(ip1jmp1,llm) ! exner au milieu des couches86 REAL,SAVE :: pkf(ip1jmp1,llm) ! exner filt.au milieu des couches87 REAL :: masse(ip1jmp1,llm) ! masse d'air88 REAL :: phis(ip1jmp1) ! geopotentiel au sol89 REAL,SAVE :: phi(ip1jmp1,llm) ! geopotentiel90 REAL,SAVE :: w(ip1jmp1,llm) ! vitesse verticale91 96 92 97 c variables dynamiques intermediaire pour le transport … … 123 128 124 129 REAL SSUM 125 REAL time_0126 130 ! REAL,SAVE :: finvmaold(ip1jmp1,llm) 127 131 … … 603 607 604 608 IF( forward. OR . leapf ) THEN 605 cc$OMP PARALLEL DEFAULT(SHARED) 606 c 609 ! Ehouarn: NB: fields sent to advtrac are those at the beginning of the time step 607 610 CALL caladvtrac_p(q,pbaru,pbarv, 608 611 * p, masse, dq, teta, … … 616 619 617 620 ENDIF ! of IF( forward. OR . leapf ) 618 cc$OMP END PARALLEL619 621 620 622 c----------------------------------------------------------------------- … … 763 765 call Register_SwapFieldHallo(masse,masse,ip1jmp1,llm, 764 766 * jj_Nb_physic,1,2,Request_physic) 767 768 call Register_SwapFieldHallo(ps,ps,ip1jmp1,1, 769 * jj_Nb_physic,2,2,Request_physic) 765 770 766 771 call Register_SwapFieldHallo(p,p,ip1jmp1,llmp1, … … 907 912 $ ucov, vcov, teta , q ,ps , 908 913 $ dufi, dvfi, dtetafi , dqfi ,dpfi ) 909 914 ! since addfi updates ps(), also update p(), masse() and pk() 915 CALL pression_p(ip1jmp1,ap,bp,ps,p) 916 c$OMP BARRIER 917 CALL massdair_p(p,masse) 918 c$OMP BARRIER 919 if (pressure_exner) then 920 CALL exner_hyb_p(ip1jmp1,ps,p,alpha,beta,pks,pk,pkf) 921 else 922 CALL exner_milieu_p(ip1jmp1,ps,p,beta,pks,pk,pkf) 923 endif 924 c$OMP BARRIER 925 910 926 IF (ok_strato) THEN 911 927 CALL top_bound_p(vcov,ucov,teta,masse,dtphys) … … 930 946 931 947 call Register_SwapField(masse,masse,ip1jmp1,llm, 948 * jj_Nb_caldyn,Request_physic) 949 950 call Register_SwapField(ps,ps,ip1jmp1,1, 932 951 * jj_Nb_caldyn,Request_physic) 933 952 … … 1044 1063 CALL exner_milieu_p( ip1jmp1, ps, p, beta, pks, pk, pkf ) 1045 1064 endif 1065 c$OMP BARRIER 1066 CALL massdair_p(p,masse) 1046 1067 c$OMP BARRIER 1047 1068
Note: See TracChangeset
for help on using the changeset viewer.