[1615] | 1 | ! $Id: physiq.F 1565 2011-08-31 12:53:29Z jghattas $ |
---|
| 2 | !#define IO_DEBUG |
---|
| 3 | |
---|
| 4 | SUBROUTINE physiq (nlon,nlev, & |
---|
| 5 | & debut,lafin,jD_cur, jH_cur,pdtphys, & |
---|
| 6 | & paprs,pplay,pphi,pphis,presnivs,clesphy0, & |
---|
| 7 | & u,v,t,qx, & |
---|
| 8 | & flxmass_w, & |
---|
| 9 | & d_u, d_v, d_t, d_qx, d_ps & |
---|
| 10 | & , dudyn & |
---|
| 11 | & , PVteta) |
---|
| 12 | |
---|
| 13 | USE dimphy |
---|
| 14 | USE infotrac |
---|
| 15 | USE comgeomphy |
---|
| 16 | |
---|
| 17 | IMPLICIT none |
---|
| 18 | !====================================================================== |
---|
| 19 | ! Objet: Moniteur general de la physique du modele |
---|
| 20 | !====================================================================== |
---|
| 21 | ! |
---|
| 22 | ! Arguments: |
---|
| 23 | ! |
---|
| 24 | ! nlon----input-I-nombre de points horizontaux |
---|
| 25 | ! nlev----input-I-nombre de couches verticales, doit etre egale a klev |
---|
| 26 | ! debut---input-L-variable logique indiquant le premier passage |
---|
| 27 | ! lafin---input-L-variable logique indiquant le dernier passage |
---|
| 28 | ! jD_cur -R-jour courant a l'appel de la physique (jour julien) |
---|
| 29 | ! jH_cur -R-heure courante a l'appel de la physique (jour julien) |
---|
| 30 | ! pdtphys-input-R-pas d'integration pour la physique (seconde) |
---|
| 31 | ! paprs---input-R-pression pour chaque inter-couche (en Pa) |
---|
| 32 | ! pplay---input-R-pression pour le mileu de chaque couche (en Pa) |
---|
| 33 | ! pphi----input-R-geopotentiel de chaque couche (g z) (reference sol) |
---|
| 34 | ! pphis---input-R-geopotentiel du sol |
---|
| 35 | ! presnivs-input_R_pressions approximat. des milieux couches ( en PA) |
---|
| 36 | ! u-------input-R-vitesse dans la direction X (de O a E) en m/s |
---|
| 37 | ! v-------input-R-vitesse Y (de S a N) en m/s |
---|
| 38 | ! t-------input-R-temperature (K) |
---|
| 39 | ! qx------input-R-humidite specifique (kg/kg) et d'autres traceurs |
---|
| 40 | ! d_t_dyn-input-R-tendance dynamique pour "t" (K/s) |
---|
| 41 | ! d_q_dyn-input-R-tendance dynamique pour "q" (kg/kg/s) |
---|
| 42 | ! flxmass_w -input-R- flux de masse verticale |
---|
| 43 | ! d_u-----output-R-tendance physique de "u" (m/s/s) |
---|
| 44 | ! d_v-----output-R-tendance physique de "v" (m/s/s) |
---|
| 45 | ! d_t-----output-R-tendance physique de "t" (K/s) |
---|
| 46 | ! d_qx----output-R-tendance physique de "qx" (kg/kg/s) |
---|
| 47 | ! d_ps----output-R-tendance physique de la pression au sol |
---|
| 48 | !IM |
---|
| 49 | ! PVteta--output-R-vorticite potentielle a des thetas constantes |
---|
| 50 | !====================================================================== |
---|
| 51 | #include "dimensions.h" |
---|
| 52 | #include "comcstphy.h" |
---|
| 53 | |
---|
| 54 | integer jjmp1 |
---|
| 55 | parameter (jjmp1=jjm+1-1/jjm) |
---|
| 56 | integer iip1 |
---|
| 57 | parameter (iip1=iim+1) |
---|
| 58 | |
---|
| 59 | INTEGER ivap ! indice de traceurs pour vapeur d'eau |
---|
| 60 | PARAMETER (ivap=1) |
---|
| 61 | INTEGER iliq ! indice de traceurs pour eau liquide |
---|
| 62 | PARAMETER (iliq=2) |
---|
| 63 | |
---|
| 64 | ! |
---|
| 65 | ! |
---|
| 66 | ! Variables argument: |
---|
| 67 | ! |
---|
| 68 | INTEGER nlon |
---|
| 69 | INTEGER nlev |
---|
| 70 | REAL, intent(in):: jD_cur, jH_cur |
---|
| 71 | |
---|
| 72 | REAL pdtphys |
---|
| 73 | LOGICAL debut, lafin |
---|
| 74 | REAL paprs(klon,klev+1) |
---|
| 75 | REAL pplay(klon,klev) |
---|
| 76 | REAL pphi(klon,klev) |
---|
| 77 | REAL pphis(klon) |
---|
| 78 | REAL presnivs(klev) |
---|
| 79 | REAL znivsig(klev) |
---|
| 80 | real pir |
---|
| 81 | |
---|
| 82 | REAL u(klon,klev) |
---|
| 83 | REAL v(klon,klev) |
---|
| 84 | REAL t(klon,klev),theta(klon,klev) |
---|
| 85 | REAL qx(klon,klev,nqtot) |
---|
| 86 | REAL flxmass_w(klon,klev) |
---|
| 87 | REAL omega(klon,klev) ! vitesse verticale en Pa/s |
---|
| 88 | REAL d_u(klon,klev) |
---|
| 89 | REAL d_v(klon,klev) |
---|
| 90 | REAL d_t(klon,klev) |
---|
| 91 | REAL d_qx(klon,klev,nqtot) |
---|
| 92 | REAL d_ps(klon) |
---|
| 93 | real da(klon,klev),phi(klon,klev,klev),mp(klon,klev) |
---|
| 94 | !IM definition dynamique o_trac dans phys_output_open |
---|
| 95 | ! type(ctrl_out) :: o_trac(nqtot) |
---|
| 96 | !FH! REAL PVteta(klon,nbteta) |
---|
| 97 | REAL PVteta(klon,1) |
---|
| 98 | REAL dudyn(iim+1,jjmp1,klev) |
---|
| 99 | |
---|
| 100 | INTEGER longcles |
---|
| 101 | PARAMETER ( longcles = 20 ) |
---|
| 102 | |
---|
| 103 | real temp_newton(klon,klev) |
---|
| 104 | integer k |
---|
| 105 | logical, save :: first=.true. |
---|
| 106 | |
---|
| 107 | REAL clesphy0( longcles ) |
---|
| 108 | |
---|
| 109 | d_u=0. |
---|
| 110 | d_v=0. |
---|
| 111 | d_t=0. |
---|
| 112 | d_qx=0. |
---|
| 113 | d_ps=0. |
---|
| 114 | |
---|
| 115 | d_u(:,1)=-u(:,1)/86400. |
---|
| 116 | do k=1,klev |
---|
| 117 | temp_newton(:,k)=280.+cos(rlatd(:))*40.-pphi(:,k)/rg*6.e-3 |
---|
| 118 | d_t(:,k)=(temp_newton(:,k)-t(:,k))/1.e5 |
---|
| 119 | enddo |
---|
| 120 | |
---|
| 121 | |
---|
| 122 | print*,'COUCOU PHYDEV' |
---|
| 123 | return |
---|
| 124 | end |
---|