Changeset 2814
- Timestamp:
- Mar 6, 2017, 5:38:36 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/fisrtilp.F90
r2807 r2814 53 53 ! Principaux inputs: 54 54 ! 55 REAL dtime ! intervalle du temps (s) 56 REAL paprs(klon,klev+1) ! pression a inter-couche 57 REAL pplay(klon,klev) ! pression au milieu de couche 58 REAL t(klon,klev) ! temperature (K) 59 REAL q(klon,klev) ! humidite specifique (kg/kg) 55 REAL, INTENT(IN) :: dtime ! intervalle du temps (s) 56 REAL, DIMENSION(klon,klev+1), INTENT(IN) :: paprs ! pression a inter-couche 57 REAL, DIMENSION(klon,klev), INTENT(IN) :: pplay ! pression au milieu de couche 58 REAL, DIMENSION(klon,klev), INTENT(IN) :: t ! temperature (K) 59 REAL, DIMENSION(klon,klev), INTENT(IN) :: q ! humidite specifique (kg/kg) 60 LOGICAL, DIMENSION(klon,klev), INTENT(IN) :: ptconv ! points ou le schema de conv. prof. est actif 61 INTEGER, INTENT(IN) :: iflag_cld_th 62 INTEGER, INTENT(IN) :: iflag_ice_thermo 63 ! 64 ! Inputs lies aux thermiques 65 ! 66 REAL, DIMENSION(klon,klev), INTENT(IN) :: ztv 67 REAL, DIMENSION(klon,klev), INTENT(IN) :: zqta, fraca 68 REAL, DIMENSION(klon,klev), INTENT(IN) :: zpspsk, ztla 69 REAL, DIMENSION(klon,klev), INTENT(IN) :: zthl 70 ! 71 ! Input/output 72 REAL, DIMENSION(klon,klev), INTENT(INOUT):: ratqs ! determine la largeur de distribution de vapeur 60 73 ! 61 74 ! Principaux outputs: 62 75 ! 63 REAL d_t(klon,klev) ! incrementation de la temperature (K) 64 REAL d_q(klon,klev) ! incrementation de la vapeur d'eau 65 REAL d_ql(klon,klev) ! incrementation de l'eau liquide 66 REAL d_qi(klon,klev) ! incrementation de l'eau glace 67 REAL rneb(klon,klev) ! fraction nuageuse 68 REAL radliq(klon,klev) ! eau liquide utilisee dans rayonnements 69 REAL rhcl(klon,klev) ! humidite relative en ciel clair 70 REAL rain(klon) ! pluies (mm/s) 71 REAL snow(klon) ! neige (mm/s) 72 REAL prfl(klon,klev+1) ! flux d'eau precipitante aux interfaces (kg/m2/s) 73 REAL psfl(klon,klev+1) ! flux d'eau precipitante aux interfaces (kg/m2/s) 74 ! 75 ! Autres arguments 76 ! 77 REAL ztv(klon,klev) 78 REAL zqta(klon,klev),fraca(klon,klev) 79 REAL sigma1(klon,klev),sigma2(klon,klev) 80 REAL qltot(klon,klev),ctot(klon,klev) 81 REAL zpspsk(klon,klev),ztla(klon,klev) 82 REAL zthl(klon,klev) 83 REAL ztfondue, qsl, qsi 84 85 logical lognormale(klon) 86 logical ice_thermo 76 REAL, DIMENSION(klon,klev), INTENT(OUT) :: d_t ! incrementation de la temperature (K) 77 REAL, DIMENSION(klon,klev), INTENT(OUT) :: d_q ! incrementation de la vapeur d'eau 78 REAL, DIMENSION(klon,klev), INTENT(OUT) :: d_ql ! incrementation de l'eau liquide 79 REAL, DIMENSION(klon,klev), INTENT(OUT) :: d_qi ! incrementation de l'eau glace 80 REAL, DIMENSION(klon,klev), INTENT(OUT) :: rneb ! fraction nuageuse 81 REAL, DIMENSION(klon,klev), INTENT(OUT) :: radliq ! eau liquide utilisee dans rayonnements 82 REAL, DIMENSION(klon,klev), INTENT(OUT) :: rhcl ! humidite relative en ciel clair 83 REAL, DIMENSION(klon), INTENT(OUT) :: rain 84 REAL, DIMENSION(klon), INTENT(OUT) :: snow 85 REAL, DIMENSION(klon,klev+1), INTENT(OUT) :: prfl 86 REAL, DIMENSION(klon,klev+1), INTENT(OUT) :: psfl 87 87 88 88 !AA 89 89 ! Coeffients de fraction lessivee : pour OFF-LINE 90 90 ! 91 REAL pfrac_nucl(klon,klev)92 REAL pfrac_1nucl(klon,klev)93 REAL pfrac_impa(klon,klev)91 REAL, DIMENSION(klon,klev), INTENT(OUT) :: pfrac_nucl 92 REAL, DIMENSION(klon,klev), INTENT(OUT) :: pfrac_1nucl 93 REAL, DIMENSION(klon,klev), INTENT(OUT) :: pfrac_impa 94 94 ! 95 95 ! Fraction d'aerosols lessivee par impaction et par nucleation 96 96 ! POur ON-LINE 97 97 ! 98 REAL frac_impa(klon,klev) 99 REAL frac_nucl(klon,klev) 100 real zct ,zcl 98 REAL, DIMENSION(klon,klev), INTENT(OUT) :: frac_impa 99 REAL, DIMENSION(klon,klev), INTENT(OUT) :: frac_nucl 101 100 !AA 101 ! -------------------------------------------------------------------------------- 102 102 ! 103 103 ! Options du programme: … … 107 107 108 108 INTEGER ninter ! sous-intervals pour la precipitation 109 INTEGER ncoreczq110 INTEGER iflag_cld_th111 INTEGER iflag_ice_thermo112 109 PARAMETER (ninter=5) 113 110 LOGICAL evap_prec ! evaporation de la pluie 114 111 PARAMETER (evap_prec=.TRUE.) 115 REAL ratqs(klon,klev) ! determine la largeur de distribution de vapeur 116 logical ptconv(klon,klev) ! determine la largeur de distribution de vapeur 112 ! 113 LOGICAL cpartiel ! condensation partielle 114 PARAMETER (cpartiel=.TRUE.) 115 REAL t_coup 116 PARAMETER (t_coup=234.0) 117 REAL DDT0 118 PARAMETER (DDT0=.01) 119 REAL ztfondue 120 PARAMETER (ztfondue=278.15) 121 ! -------------------------------------------------------------------------------- 122 ! 123 ! Variables locales: 124 ! 125 INTEGER i, k, n, kk 126 REAL qsl, qsi 127 real zct ,zcl 128 INTEGER ncoreczq 129 REAL ctot(klon,klev) 130 REAL zqs(klon), zdqs(klon), zdelta, zcor, zcvm5 131 REAL zdqsdT_raw(klon) 132 REAL Tbef(klon),qlbef(klon),DT(klon),num,denom 133 134 logical lognormale(klon) 135 logical ice_thermo 136 LOGICAL convergence(klon) 137 INTEGER n_i(klon), iter 138 REAL cste 117 139 118 140 real zpdf_sig(klon),zpdf_k(klon),zpdf_delta(klon) … … 120 142 real erf 121 143 REAL qcloud(klon) 122 !123 LOGICAL cpartiel ! condensation partielle124 PARAMETER (cpartiel=.TRUE.)125 REAL t_coup126 PARAMETER (t_coup=234.0)127 !128 ! Variables locales:129 !130 INTEGER i, k, n, kk131 REAL zqs(klon), zdqs(klon), zdelta, zcor, zcvm5132 REAL zdqsdT_raw(klon)133 REAL Tbef(klon),qlbef(klon),DT(klon),num,denom134 LOGICAL convergence(klon)135 REAL DDT0136 PARAMETER (DDT0=.01)137 INTEGER n_i(klon), iter138 REAL cste139 144 140 145 REAL zrfl(klon), zrfln(klon), zqev, zqevt … … 150 155 REAL zdz(klon),zrho(klon),ztot , zrhol(klon) 151 156 REAL zchau ,zfroi ,zfice(klon),zneb(klon) 152 REAL zmelt, zpluie, zice, zcondold 153 PARAMETER (ztfondue=278.15) 157 REAL zmelt, zpluie, zice 154 158 REAL dzfice(klon) 155 159 REAL zsolid … … 434 438 zt(i) = zt(i) - zqev & 435 439 * RLVTT/RCPD/(1.0+RVTMP2*(zq(i)+zmqc(i))) 436 !!JLD debut de partie a supprimer a t herme440 !!JLD debut de partie a supprimer a terme 437 441 else ! if (fl_cor_ebil .GT. 0) 438 442 ! Calcul de l'evaporation du flux de precip herite … … 457 461 * RLVTT/RCPD/(1.0+RVTMP2*zq(i)) 458 462 end if ! if (fl_cor_ebil .GT. 0) 459 !!JLD fin de partie a supprimer a t herme463 !!JLD fin de partie a supprimer a terme 460 464 zrfl(i) = zrfln(i) 461 465 zifl(i) = 0.
Note: See TracChangeset
for help on using the changeset viewer.