Changeset 1987 for LMDZ5/trunk/libf/dyn3dmem
- Timestamp:
- Feb 24, 2014, 4:05:47 PM (11 years ago)
- Location:
- LMDZ5/trunk/libf/dyn3dmem
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/dyn3dmem/addfi_loc.F
r1907 r1987 55 55 c ----------- 56 56 c 57 REAL pdt 58 c 59 REAL pvcov(ijb_v:ije_v,llm),pucov(ijb_u:ije_u,llm) 60 REAL pteta(ijb_u:ije_u,llm),pq(ijb_u:ije_u,llm,nqtot) 61 REAL pps(ijb_u:ije_u) 62 c 63 REAL pdvfi(ijb_v:ije_v,llm),pdufi(ijb_u:ije_u,llm) 64 REAL pdqfi(ijb_u:ije_u,llm,nqtot),pdhfi(ijb_u:ije_u,llm) 65 REAL pdpfi(ijb_u:ije_u) 66 c 67 LOGICAL leapf,forward 57 REAL,INTENT(IN) :: pdt ! time step for the integration (s) 58 c 59 REAL,INTENT(INOUT) :: pvcov(ijb_v:ije_v,llm) ! covariant meridional wind 60 REAL,INTENT(INOUT) :: pucov(ijb_u:ije_u,llm) ! covariant zonal wind 61 REAL,INTENT(INOUT) :: pteta(ijb_u:ije_u,llm) ! potential temperature 62 REAL,INTENT(INOUT) :: pq(ijb_u:ije_u,llm,nqtot) ! tracers 63 REAL,INTENT(INOUT) :: pps(ijb_u:ije_u) ! surface pressure (Pa) 64 c respective tendencies (.../s) to add 65 REAL,INTENT(IN) :: pdvfi(ijb_v:ije_v,llm) 66 REAL,INTENT(IN) :: pdufi(ijb_u:ije_u,llm) 67 REAL,INTENT(IN) :: pdqfi(ijb_u:ije_u,llm,nqtot) 68 REAL,INTENT(IN) :: pdhfi(ijb_u:ije_u,llm) 69 REAL,INTENT(IN) :: pdpfi(ijb_u:ije_u) 70 c 71 LOGICAL,INTENT(IN) :: leapf,forward ! not used 68 72 c 69 73 c … … 73 77 REAL xpn(iim),xps(iim),tpn,tps 74 78 INTEGER j,k,iq,ij 75 REAL qtestw, qtestt 76 PARAMETER ( qtestw = 1.0e-15 ) 77 PARAMETER ( qtestt = 1.0e-40 ) 79 REAL,PARAMETER :: qtestw = 1.0e-15 80 REAL,PARAMETER :: qtestt = 1.0e-40 78 81 79 82 REAL SSUM -
LMDZ5/trunk/libf/dyn3dmem/advtrac_loc.F
r1907 r1987 24 24 USE Vampir 25 25 USE times 26 USE infotrac 27 USE control_mod 28 USE advtrac_mod 26 USE infotrac, ONLY: nqtot, iadv 27 USE control_mod, ONLY: iapp_tracvl, day_step, planet_type 28 USE advtrac_mod, ONLY: finmasse 29 29 IMPLICIT NONE 30 30 c -
LMDZ5/trunk/libf/dyn3dmem/caldyn_loc.F
r1907 r1987 1 1 ! 2 ! $ Header$2 ! $Id: $ 3 3 ! 4 c5 c6 4 #undef DEBUG_IO 7 5 !#define DEBUG_IO … … 12 10 USE parallel_lmdz 13 11 USE Write_Field_loc 14 USE caldyn_mod 12 USE caldyn_mod, ONLY: vcont, ucont, ang, p, massebx, masseby, 13 & vorpot, ecin, bern, massebxy, convm 15 14 16 15 IMPLICIT NONE 17 16 18 c=======================================================================19 c 20 cAuteur : P. Le Van21 c 22 cObjet:23 c------24 c 25 cCalcul des tendances dynamiques.26 c 27 cModif 04/93 F.Forget28 c=======================================================================17 !======================================================================= 18 ! 19 ! Auteur : P. Le Van 20 ! 21 ! Objet: 22 ! ------ 23 ! 24 ! Calcul des tendances dynamiques. 25 ! 26 ! Modif 04/93 F.Forget 27 !======================================================================= 29 28 30 c-----------------------------------------------------------------------31 c0. Declarations:32 c----------------29 !----------------------------------------------------------------------- 30 ! 0. Declarations: 31 ! ---------------- 33 32 34 33 #include "dimensions.h" … … 38 37 #include "comgeom.h" 39 38 40 cArguments:41 c----------39 ! Arguments: 40 ! ---------- 42 41 43 LOGICAL conser 42 LOGICAL,INTENT(IN) :: conser ! triggers printing some diagnostics ! not used 43 INTEGER,INTENT(IN) :: itau ! time step index ! not used 44 REAL,INTENT(IN) :: vcov(ijb_v:ije_v,llm) ! covariant meridional wind 45 REAL,INTENT(IN) :: ucov(ijb_u:ije_u,llm) ! covariant zonal wind 46 REAL,INTENT(IN) :: teta(ijb_u:ije_u,llm) ! potential temperature 47 REAL,INTENT(IN) :: ps(ijb_u:ije_u) ! surface pressure 48 REAL,INTENT(IN) :: phis(ijb_u:ije_u) ! geopotential at the surface 49 REAL,INTENT(IN) :: pk(iip1,jjb_u:jje_u,llm) ! Exner at mid-layer 50 REAL,INTENT(IN) :: pkf(ijb_u:ije_u,llm) ! filtered Exner 51 REAL,INTENT(IN) :: phi(ijb_u:ije_u,llm) ! geopotential 52 REAL,INTENT(OUT) :: masse(ijb_u:ije_u,llm) ! air mass 53 REAL,INTENT(OUT) :: dv(ijb_v:ije_v,llm) ! tendency on vcov 54 REAL,INTENT(OUT) :: du(ijb_u:ije_u,llm) ! tendency on ucov 55 REAL,INTENT(OUT) :: dteta(ijb_u:ije_u,llm) ! tenddency on teta 56 REAL,INTENT(OUT) :: dp(ijb_u:ije_u) ! tendency on ps 57 REAL,INTENT(OUT) :: w(ijb_u:ije_u,llm) ! vertical velocity 58 REAL,INTENT(OUT) :: pbaru(ijb_u:ije_u,llm) ! mass flux in the zonal direction 59 REAL,INTENT(OUT) :: pbarv(ijb_v:ije_v,llm) ! mass flux in the meridional direction 60 REAL,INTENT(IN) :: time ! current time 44 61 45 INTEGER itau 46 REAL vcov(ijb_v:ije_v,llm),ucov(ijb_u:ije_u,llm) 47 REAL teta(ijb_u:ije_u,llm) 48 REAL ps(ijb_u:ije_u),phis(ijb_u:ije_u) 49 REAL pk(iip1,jjb_u:jje_u,llm),pkf(ijb_u:ije_u,llm) 50 REAL phi(ijb_u:ije_u,llm),masse(ijb_u:ije_u,llm) 51 REAL dv(ijb_v:ije_v,llm),du(ijb_u:ije_u,llm) 52 REAL dteta(ijb_u:ije_u,llm),dp(ijb_u:ije_u) 53 REAL w(ijb_u:ije_u,llm) 54 REAL pbaru(ijb_u:ije_u,llm),pbarv(ijb_v:ije_v,llm) 55 REAL time 56 57 c Local: 58 c ------ 62 ! Local: 63 ! ------ 59 64 60 65 INTEGER ij,l,ijb,ije,ierr 61 66 62 67 63 c----------------------------------------------------------------------- 64 c Calcul des tendances dynamiques: 65 c -------------------------------- 68 !----------------------------------------------------------------------- 69 ! Compute dynamical tendencies: 70 !-------------------------------- 71 72 ! compute contravariant winds ucont() and vcont 66 73 CALL covcont_loc ( llm , ucov , vcov , ucont, vcont ) 74 ! compute pressure p() 67 75 CALL pression_loc ( ip1jmp1, ap , bp , ps , p ) 68 76 cym CALL psextbar ( ps , psexbarxy ) 69 77 c$OMP BARRIER 78 ! compute mass in each atmospheric mesh: masse() 70 79 CALL massdair_loc ( p , masse ) 80 ! compute X and Y-averages of mass, massebx() and masseby() 71 81 CALL massbar_loc ( masse, massebx , masseby ) 82 ! compute XY-average of mass, massebxy() 72 83 call massbarxy_loc( masse, massebxy ) 84 ! compute mass fluxes pbaru() and pbarv() 73 85 CALL flumass_loc ( massebx, masseby,vcont,ucont,pbaru,pbarv ) 86 ! compute dteta() , horizontal converging flux of theta 74 87 CALL dteta1_loc ( teta , pbaru , pbarv, dteta ) 88 ! compute convm(), horizontal converging flux of mass 75 89 CALL convmas1_loc ( pbaru, pbarv , convm ) 76 90 c$OMP BARRIER … … 95 109 ijb=ij_begin 96 110 ije=ij_end 97 111 ! compute pressure variation due to mass convergence 98 112 DO ij =ijb, ije 99 113 dp( ij ) = convm( ij,1 ) / airesurg( ij ) … … 101 115 c$OMP END MASTER 102 116 c$OMP BARRIER 117 118 ! compute vertical velocity w() 103 119 CALL vitvert_loc ( convm , w ) 120 ! compute potential vorticity vorpot() 104 121 CALL tourpot_loc ( vcov , ucov , massebxy , vorpot ) 122 ! compute rotation induced du() and dv() 105 123 CALL dudv1_loc ( vorpot , pbaru , pbarv , du , dv ) 106 124 … … 111 129 call WriteField_v('dv',dv) 112 130 #endif 131 132 ! compute kinetic energy ecin() 113 133 CALL enercin_loc ( vcov , ucov , vcont , ucont , ecin ) 134 ! compute Bernouilli function bern() 114 135 CALL bernoui_loc ( ip1jmp1, llm , phi , ecin , bern) 136 ! compute and add du() and dv() contributions from Bernouilli and pressure 115 137 CALL dudv2_loc ( teta , pkf , bern , du , dv ) 116 138 … … 137 159 c$OMP END DO 138 160 161 ! compute vertical advection contributions to du(), dv() and dteta() 139 162 CALL advect_new_loc(ang,vcov,teta,w,massebx,masseby,du,dv,dteta) 140 163 … … 158 181 c$OMP END DO NOWAIT 159 182 183 ! Ehouarn: NB: output of control variables not implemented... 160 184 161 185 RETURN -
LMDZ5/trunk/libf/dyn3dmem/calfis_loc.F
r1907 r1987 41 41 Use Write_field_p 42 42 USE Times 43 USE infotrac 44 USE control_mod 43 USE infotrac, ONLY: nqtot, niadv, tname 44 USE control_mod, ONLY: planet_type, nsplit_phys 45 45 46 46 IMPLICIT NONE … … 115 115 c Arguments : 116 116 c ----------- 117 LOGICAL lafin 118 ! REAL heure 119 REAL, intent(in):: jD_cur, jH_cur 120 REAL pvcov(iip1,jjb_v:jje_v,llm) 121 REAL pucov(iip1,jjb_u:jje_u,llm) 122 REAL pteta(iip1,jjb_u:jje_u,llm) 123 REAL pmasse(iip1,jjb_u:jje_u,llm) 124 REAL pq(iip1,jjb_u:jje_u,llm,nqtot) 125 REAL pphis(iip1,jjb_u:jje_u) 126 REAL pphi(iip1,jjb_u:jje_u,llm) 127 c 128 REAL pdvcov(iip1,jjb_v:jje_v,llm) 129 REAL pducov(iip1,jjb_u:jje_u,llm) 130 REAL pdteta(iip1,jjb_u:jje_u,llm) 131 REAL pdq(iip1,jjb_u:jje_u,llm,nqtot) 132 REAL flxw(iip1,jjb_u:jje_u,llm) ! Flux de masse verticale sur la grille dynamique 133 c 134 REAL pps(iip1,jjb_u:jje_u) 135 REAL pp(iip1,jjb_u:jje_u,llmp1) 136 REAL ppk(iip1,jjb_u:jje_u,llm) 137 c 138 REAL pdvfi(iip1,jjb_v:jje_v,llm) 139 REAL pdufi(iip1,jjb_u:jje_u,llm) 140 REAL pdhfi(iip1,jjb_u:jje_u,llm) 141 REAL pdqfi(iip1,jjb_u:jje_u,llm,nqtot) 142 REAL pdpsfi(iip1,jjb_u:jje_u) 143 144 INTEGER longcles 145 PARAMETER ( longcles = 20 ) 146 REAL clesphy0( longcles ) 117 LOGICAL,INTENT(IN) :: lafin ! .true. for the very last call to physics 118 REAL,INTENT(IN):: jD_cur, jH_cur 119 REAL,INTENT(IN):: pvcov(iip1,jjb_v:jje_v,llm) ! covariant meridional velocity 120 REAL,INTENT(IN):: pucov(iip1,jjb_u:jje_u,llm) ! covariant zonal velocity 121 REAL,INTENT(IN):: pteta(iip1,jjb_u:jje_u,llm) ! potential temperature 122 REAL,INTENT(IN):: pmasse(iip1,jjb_u:jje_u,llm) ! mass in each cell ! not used 123 REAL,INTENT(IN):: pq(iip1,jjb_u:jje_u,llm,nqtot) ! tracers 124 REAL,INTENT(IN):: pphis(iip1,jjb_u:jje_u) ! surface geopotential 125 REAL,INTENT(IN):: pphi(iip1,jjb_u:jje_u,llm) ! geopotential 126 127 REAL,INTENT(IN) :: pdvcov(iip1,jjb_v:jje_v,llm) ! dynamical tendency on vcov ! not used 128 REAL,INTENT(IN) :: pducov(iip1,jjb_u:jje_u,llm) ! dynamical tendency on ucov 129 REAL,INTENT(IN) :: pdteta(iip1,jjb_u:jje_u,llm) ! dynamical tendency on teta ! not used 130 REAL,INTENT(IN) :: pdq(iip1,jjb_u:jje_u,llm,nqtot) ! dynamical tendency on tracers ! not used 131 132 REAL,INTENT(IN) :: pps(iip1,jjb_u:jje_u) ! surface pressure (Pa) 133 REAL,INTENT(IN) :: pp(iip1,jjb_u:jje_u,llmp1) ! pressure at mesh interfaces (Pa) 134 REAL,INTENT(IN) :: ppk(iip1,jjb_u:jje_u,llm) ! Exner at mid-layer 135 REAL,INTENT(IN) :: flxw(iip1,jjb_u:jje_u,llm) ! Vertical mass flux on dynamics grid 136 137 ! tendencies (in */s) from the physics 138 REAL,INTENT(OUT) :: pdvfi(iip1,jjb_v:jje_v,llm) ! tendency on covariant meridional wind 139 REAL,INTENT(OUT) :: pdufi(iip1,jjb_u:jje_u,llm) ! tendency on covariant zonal wind 140 REAL,INTENT(OUT) :: pdhfi(iip1,jjb_u:jje_u,llm) ! tendency on potential temperature (K/s) 141 REAL,INTENT(OUT) :: pdqfi(iip1,jjb_u:jje_u,llm,nqtot) ! tendency on tracers 142 REAL,INTENT(OUT) :: pdpsfi(iip1,jjb_u:jje_u) ! tendency on surface pressure (Pa/s) 143 144 INTEGER,PARAMETER :: longcles = 20 145 REAL,INTENT(IN) :: clesphy0( longcles ) ! unused 147 146 148 147 … … 221 220 c 222 221 cIM diagnostique PVteta, Amip2 223 INTEGER ntetaSTD 224 PARAMETER(ntetaSTD=3) 225 REAL rtetaSTD(ntetaSTD) 226 DATA rtetaSTD/350., 380., 405./ ! Earth-specific values, beware !! 222 INTEGER,PARAMETER :: ntetaSTD=3 223 REAL,SAVE :: rtetaSTD(ntetaSTD)=(/350.,380.,405./) ! Earth-specific, beware !! 227 224 REAL PVteta(klon,ntetaSTD) 228 225 … … 230 227 REAL SSUM 231 228 232 LOGICAL firstcal, debut 233 DATA firstcal/.true./ 234 SAVE firstcal,debut 229 LOGICAL,SAVE :: firstcal=.true., debut=.true. 235 230 c$OMP THREADPRIVATE(firstcal,debut) 236 231 -
LMDZ5/trunk/libf/dyn3dmem/call_calfis_mod.F90
r1907 r1987 91 91 INCLUDE "iniprint.h" 92 92 93 REAL :: clesphy0( : )94 INTEGER :: itau95 LOGICAL :: lafin96 REAL :: ucov_dyn(ijb_u:ije_u,llm)97 REAL :: vcov_dyn(ijb_v:ije_v,llm)98 REAL :: teta_dyn(ijb_u:ije_u,llm)99 REAL :: masse_dyn(ijb_u:ije_u,llm)100 REAL :: ps_dyn(ijb_u:ije_u)101 REAL :: phis_dyn(ijb_u:ije_u)102 REAL :: q_dyn(ijb_u:ije_u,llm,nqtot)103 REAL :: flxw_dyn(ijb_u:ije_u,llm)93 INTEGER,INTENT(IN) :: itau ! (time) iteration step number 94 LOGICAL,INTENT(IN) :: lafin ! .true. if final time step 95 REAL,INTENT(IN) :: clesphy0( : ) ! not used 96 REAL,INTENT(INOUT) :: ucov_dyn(ijb_u:ije_u,llm) ! covariant zonal wind 97 REAL,INTENT(INOUT) :: vcov_dyn(ijb_v:ije_v,llm) ! covariant meridional wind 98 REAL,INTENT(INOUT) :: teta_dyn(ijb_u:ije_u,llm) ! potential temperature 99 REAL,INTENT(INOUT) :: masse_dyn(ijb_u:ije_u,llm) ! air mass 100 REAL,INTENT(INOUT) :: ps_dyn(ijb_u:ije_u) ! surface pressure 101 REAL,INTENT(INOUT) :: phis_dyn(ijb_u:ije_u) ! surface geopotential 102 REAL,INTENT(INOUT) :: q_dyn(ijb_u:ije_u,llm,nqtot) ! advected tracers 103 REAL,INTENT(INOUT) :: flxw_dyn(ijb_u:ije_u,llm) ! vertical mass flux 104 104 105 105 REAL :: dufi_tmp(iip1,llm) … … 134 134 !$OMP MASTER 135 135 CALL suspend_timer(timer_caldyn) 136 WRITE(lunout,*) 'leapfrog_p: Entree dans la physique : Iteration No ',itau 136 IF (prt_level >= 10) THEN 137 WRITE(lunout,*) 'leapfrog_p: Entree dans la physique : Iteration No ',itau 138 ENDIF 137 139 !$OMP END MASTER 138 140 … … 335 337 ucov, vcov, teta , q ,ps , & 336 338 dufi, dvfi, dtetafi , dqfi ,dpfi ) 339 ! since addfi updates ps(), also update p(), masse() and pk() 340 CALL pression_loc(ip1jmp1,ap,bp,ps,p) 341 !$OMP BARRIER 342 CALL massdair_loc(p,masse) 343 !$OMP BARRIER 344 if (pressure_exner) then 345 CALL exner_hyb_loc(ijnb_u,ps,p,alpha,beta,pks,pk,pkf) 346 else 347 CALL exner_milieu_loc(ijnb_u,ps,p,beta,pks,pk,pkf) 348 endif 349 !$OMP BARRIER 337 350 338 351 #ifdef DEBUG_IO -
LMDZ5/trunk/libf/dyn3dmem/call_dissip_mod.F90
r1907 r1987 87 87 IMPLICIT NONE 88 88 INCLUDE 'comgeom.h' 89 REAL :: ucov_dyn(ijb_u:ije_u,llm)90 REAL :: vcov_dyn(ijb_v:ije_v,llm)91 REAL :: teta_dyn(ijb_u:ije_u,llm)92 REAL :: p_dyn(ijb_u:ije_u,llmp1 )93 REAL :: pk_dyn(ijb_u:ije_u,llm)94 REAL :: ps_dyn(ijb_u:ije_u)89 REAL,INTENT(INOUT) :: ucov_dyn(ijb_u:ije_u,llm) ! covariant zonal wind 90 REAL,INTENT(INOUT) :: vcov_dyn(ijb_v:ije_v,llm) ! covariant meridional wind 91 REAL,INTENT(INOUT) :: teta_dyn(ijb_u:ije_u,llm) ! covariant meridional wind 92 REAL,INTENT(INOUT) :: p_dyn(ijb_u:ije_u,llmp1 ) ! pressure at interlayer 93 REAL,INTENT(INOUT) :: pk_dyn(ijb_u:ije_u,llm) ! Exner at midlayer 94 REAL,INTENT(INOUT) :: ps_dyn(ijb_u:ije_u) ! surface pressure 95 95 REAL :: tppn(iim),tpps(iim) 96 96 REAL :: tpn,tps -
LMDZ5/trunk/libf/dyn3dmem/dissip_loc.F
r1907 r1987 1 ! 2 ! $Id: $ 3 ! 1 4 SUBROUTINE dissip_loc( vcov,ucov,teta,p, dv,du,dh ) 2 5 c 3 6 USE parallel_lmdz 4 7 USE write_field_loc 5 USE dissip_mod 8 USE dissip_mod, ONLY: dissip_allocate 6 9 IMPLICIT NONE 7 10 … … 35 38 c ---------- 36 39 37 REAL vcov(ijb_v:ije_v,llm),ucov(ijb_u:ije_u,llm) 38 REAL teta(ijb_u:ije_u,llm) 39 REAL p( ijb_u:ije_u,llmp1 ) 40 REAL dv(ijb_v:ije_v,llm),du(ijb_u:ije_u,llm),dh(ijb_u:ije_u,llm) 40 REAL,INTENT(IN) :: vcov(ijb_v:ije_v,llm) ! covariant meridional wind 41 REAL,INTENT(IN) :: ucov(ijb_u:ije_u,llm) ! covariant zonal wind 42 REAL,INTENT(IN) :: teta(ijb_u:ije_u,llm) ! potential temperature 43 REAL,INTENT(IN) :: p(ijb_u:ije_u,llmp1) ! interlayer pressure 44 ! tendencies (.../s) on covariant winds and potential temperature 45 REAL,INTENT(OUT) :: dv(ijb_v:ije_v,llm) 46 REAL,INTENT(OUT) :: du(ijb_u:ije_u,llm) 47 REAL,INTENT(OUT) :: dh(ijb_u:ije_u,llm) 41 48 42 49 c Local: -
LMDZ5/trunk/libf/dyn3dmem/leapfrog_loc.F
r1907 r1987 80 80 ! include "mpif.h" 81 81 82 INTEGER longcles 83 PARAMETER ( longcles = 20 ) 84 REAL clesphy0( longcles ) 82 INTEGER,PARAMETER :: longcles = 20 83 REAL,INTENT(IN) :: clesphy0( longcles ) ! not used 84 REAL,INTENT(IN) :: time_0 ! not used 85 86 c dynamical variables: 87 REAL,INTENT(IN) :: ucov0(ijb_u:ije_u,llm) ! zonal covariant wind 88 REAL,INTENT(IN) :: vcov0(ijb_v:ije_v,llm) ! meridional covariant wind 89 REAL,INTENT(IN) :: teta0(ijb_u:ije_u,llm) ! potential temperature 90 REAL,INTENT(IN) :: q0(ijb_u:ije_u,llm,nqtot) ! advected tracers 91 REAL,INTENT(IN) :: ps0(ijb_u:ije_u) ! surface pressure (Pa) 92 REAL,INTENT(IN) :: masse0(ijb_u:ije_u,llm) ! air mass 93 REAL,INTENT(IN) :: phis0(ijb_u:ije_u) ! geopotentiat at the surface 85 94 86 95 real zqmin,zqmax 87 88 c variables dynamiques89 REAL :: vcov0(ijb_v:ije_v,llm),ucov0(ijb_u:ije_u,llm) ! vents covariants90 REAL :: teta0(ijb_u:ije_u,llm) ! temperature potentielle91 REAL :: q0(ijb_u:ije_u,llm,nqtot) ! champs advectes92 REAL :: ps0(ijb_u:ije_u) ! pression au sol93 REAL :: masse0(ijb_u:ije_u,llm) ! masse d'air94 REAL :: phis0(ijb_u:ije_u) ! geopotentiel au sol95 96 96 97 ! REAL,SAVE,ALLOCATABLE :: p (:,: ) ! pression aux interfac.des couches … … 133 134 REAL time 134 135 135 REAL SSUM 136 REAL time_0 136 REAL SSUM 137 137 ! REAL,SAVE,ALLOCATABLE :: finvmaold(:,:) 138 138 … … 670 670 671 671 IF( forward. OR . leapf ) THEN 672 673 672 ! Ehouarn: NB: fields sent to advtrac are those at the beginning of the time step 674 673 CALL caladvtrac_loc(q,pbaru,pbarv, 675 674 * p, masse, dq, teta, … … 680 679 ! enddo 681 680 682 c 681 ! Ehouarn: Storage of mass flux for off-line tracers... not implemented... 682 683 683 ENDIF ! of IF( forward. OR . leapf ) 684 684 … … 1140 1140 endif 1141 1141 c$OMP BARRIER 1142 CALL massdair_loc(p,masse) 1143 c$OMP BARRIER 1142 1144 1143 1145 cc$OMP END PARALLEL -
LMDZ5/trunk/libf/dyn3dmem/leapfrog_mod.F90
r1907 r1987 1 1 MODULE leapfrog_mod 2 2 3 REAL,POINTER,SAVE :: ucov(:,:) 4 REAL,POINTER,SAVE :: vcov(:,:) 5 REAL,POINTER,SAVE :: teta(:,:) 6 REAL,POINTER,SAVE :: ps(:) 7 REAL,POINTER,SAVE :: masse(:,:) 8 REAL,POINTER,SAVE :: phis(:) 9 REAL,POINTER,SAVE :: q(:,:,:) 10 REAL,POINTER,SAVE :: p(:,:) 11 REAL,POINTER,SAVE :: pks(:) 12 REAL,POINTER,SAVE :: pk(:,:) 13 REAL,POINTER,SAVE :: pkf(:,:) 14 REAL,POINTER,SAVE :: phi(:,:) 15 REAL,POINTER,SAVE :: w(:,:) 3 REAL,POINTER,SAVE :: ucov(:,:) ! zonal covariant wind 4 REAL,POINTER,SAVE :: vcov(:,:) ! meridional covariant wind 5 REAL,POINTER,SAVE :: teta(:,:) ! potential temperature 6 REAL,POINTER,SAVE :: ps(:) ! surface pressure 7 REAL,POINTER,SAVE :: masse(:,:) ! air mass 8 REAL,POINTER,SAVE :: phis(:) ! geopotential at the surface 9 REAL,POINTER,SAVE :: q(:,:,:) ! advected tracers 10 REAL,POINTER,SAVE :: p(:,:) ! interlayer pressure 11 REAL,POINTER,SAVE :: pks(:) ! Exner at the surface 12 REAL,POINTER,SAVE :: pk(:,:) ! Exner at mid-layer 13 REAL,POINTER,SAVE :: pkf(:,:) ! filtered Exner 14 REAL,POINTER,SAVE :: phi(:,:) ! geopotential 15 REAL,POINTER,SAVE :: w(:,:) ! vertical velocity 16 16 REAL,POINTER,SAVE :: pbaru(:,:) 17 17 REAL,POINTER,SAVE :: pbarv(:,:) -
LMDZ5/trunk/libf/dyn3dmem/pression_loc.F
r1907 r1987 1 1 SUBROUTINE pression_loc( ngrid, ap, bp, ps, p ) 2 USE parallel_lmdz 2 USE parallel_lmdz, ONLY: ij_begin, ij_end, ijb_u, ije_u, 3 & pole_nord, pole_sud, omp_chunk 3 4 c 4 5 … … 16 17 #include "paramet.h" 17 18 c 18 INTEGER ngrid19 INTEGER,INTENT(IN) :: ngrid ! not used 19 20 INTEGER l,ij 20 21 21 REAL ap( llmp1 ), bp( llmp1 ), ps( ijb_u:ije_u )22 REAL p( ijb_u:ije_u,llmp1 )22 REAL,INTENT(IN) :: ap( llmp1 ), bp( llmp1 ), ps( ijb_u:ije_u ) 23 REAL,INTENT(OUT) :: p( ijb_u:ije_u,llmp1 ) 23 24 24 25 INTEGER ijb,ije
Note: See TracChangeset
for help on using the changeset viewer.