Changeset 5134 for LMDZ6/branches/Amaury_dev/libf/phylmd
- Timestamp:
- Jul 26, 2024, 5:56:37 PM (11 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/phylmd
- Files:
-
- 1 deleted
- 40 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/aeropt_spl.f90
r5105 r5134 10 10 USE dimphy 11 11 USE infotrac 12 IMPLICIT none12 IMPLICIT NONE 13 13 ! 14 14 INCLUDE "chem.h" -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/cltrac_spl.f90
r5105 r5134 3 3 4 4 USE dimphy 5 IMPLICIT none5 IMPLICIT NONE 6 6 !====================================================================== 7 7 ! Auteur(s): O. Boucher (LOA/LMD) date: 19961127 -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/condsurfc.f90
r5117 r5134 5 5 USE dimphy 6 6 USE netcdf, ONLY: nf90_close, nf90_noerr, nf90_inq_varid, nf90_open, nf90_nowrite, nf90_get_var 7 IMPLICIT none7 IMPLICIT NONE 8 8 9 9 ! Lire les conditions aux limites du modele pour la chimie. -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/condsurfc_new.f90
r5117 r5134 7 7 USE dimphy 8 8 USE netcdf, ONLY: nf90_get_var, nf90_close, nf90_noerr, nf90_inq_varid, nf90_open, nf90_nowrite 9 IMPLICIT none9 IMPLICIT NONE 10 10 11 11 ! Lire les conditions aux limites du modele pour la chimie. -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/condsurfs.f90
r5117 r5134 6 6 USE netcdf, ONLY: nf90_close, nf90_noerr, nf90_inq_varid, nf90_open, & 7 7 nf90_nowrite, nf90_get_var 8 IMPLICIT none8 IMPLICIT NONE 9 9 10 10 ! Lire les conditions aux limites du modele pour la chimie. -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/condsurfs_new.f90
r5117 r5134 10 10 USE dimphy 11 11 USE netcdf, ONLY: nf90_get_var, nf90_inq_varid, nf90_close, nf90_noerr, nf90_open, nf90_nowrite 12 IMPLICIT none12 IMPLICIT NONE 13 13 14 14 ! Lire les conditions aux limites du modele pour la chimie. -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/lsc_scav_orig.F90
r5117 r5134 21 21 !===================================================================== 22 22 23 include"dimensions.h"24 include"chem.h"25 include"YOECUMF.h"23 INCLUDE "dimensions.h" 24 INCLUDE "chem.h" 25 INCLUDE "YOECUMF.h" 26 26 27 27 REAL,INTENT(IN) :: pdtime ! time step (s) -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/lsc_scav_spl.F90
r5117 r5134 23 23 ! SPLA version taken from trunk revision 2041 24 24 25 include"dimensions.h"26 include"chem.h"27 include"YOECUMF.h"25 INCLUDE "dimensions.h" 26 INCLUDE "chem.h" 27 INCLUDE "YOECUMF.h" 28 28 29 29 REAL,INTENT(IN) :: pdtime ! time step (s) -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/phys_output_write_spl_mod.F90
r5123 r5134 75 75 !JE20150620>> 76 76 77 ! Author: Abderrahmane IDELKADI (original includefile)77 ! Author: Abderrahmane IDELKADI (original INCLUDE file) 78 78 ! Author: Laurent FAIRHEAD (transformation to module/subroutine) 79 79 ! Author: Ulysse GERARD (effective implementation) … … 396 396 USE lmdz_yomcst 397 397 USE lmdz_iniprint, ONLY: lunout, prt_level 398 USE lmdz_alpale 398 399 399 400 IMPLICIT NONE … … 401 402 ! INCLUDE "temps.h" 402 403 INCLUDE "clesphys.h" 403 INCLUDE "alpale.h"404 404 INCLUDE "compbl.h" 405 405 INCLUDE "dimensions.h" -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/phytracr_spl_mod.F90
r5133 r5134 798 798 799 799 USE lmdz_yomcst 800 801 IMPLICIT none 800 USE lmdz_alpale 801 802 IMPLICIT NONE 802 803 803 804 !====================================================================== … … 817 818 INCLUDE "YOETHF.h" 818 819 INCLUDE "paramet.h" 819 INCLUDE "alpale.h"820 820 821 821 !====================================================================== … … 1161 1161 ! JE for updating in cltrac 1162 1162 REAL, DIMENSION(klon, klev) :: delp ! epaisseur de couche (Pa) 1163 !! JE for includegas to particle conversion in output1163 !! JE for INCLUDE gas to particle conversion in output 1164 1164 ! REAL his_g2pgas(klon) ! gastoparticle in gas units (check!) 1165 1165 ! REAL his_g2paer(klon) ! gastoparticle in aerosol units (check!) -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/tiedqneg.f90
r5106 r5134 2 2 3 3 USE dimphy 4 IMPLICIT none4 IMPLICIT NONE 5 5 !====================================================================== 6 6 ! Auteur(s): CG (LGGE/CNRS) date: 19950201 -
LMDZ6/branches/Amaury_dev/libf/phylmd/add_phys_tend_mod.F90
r5117 r5134 108 108 USE phys_output_var_mod, ONLY: d_qw_col, d_ql_col, d_qs_col, d_qbs_col, d_qt_col, d_ek_col, d_h_dair_col & 109 109 , d_h_qw_col, d_h_ql_col, d_h_qs_col, d_h_qbs_col, d_h_col 110 IMPLICIT none110 IMPLICIT NONE 111 111 INCLUDE "YOMCST.h" 112 112 INCLUDE "clesphys.h" … … 507 507 USE phys_output_var_mod, ONLY: d_qw_col, d_ql_col, d_qs_col, d_qbs_col, d_qt_col, d_ek_col, d_h_dair_col & 508 508 , d_h_qw_col, d_h_ql_col, d_h_qs_col, d_h_qbs_col, d_h_col 509 IMPLICIT none509 IMPLICIT NONE 510 510 include "YOMCST.h" 511 511 include "clesphys.h" … … 656 656 zh_qw_col, zh_ql_col, zh_qs_col, zh_qbs_col, zh_col) 657 657 658 IMPLICIT none658 IMPLICIT NONE 659 659 INCLUDE "YOMCST.h" 660 660 … … 736 736 , rain_lsc, snow_lsc 737 737 USE climb_hq_mod, ONLY: d_h_col_vdf, f_h_bnd 738 IMPLICIT none738 IMPLICIT NONE 739 739 INCLUDE "YOMCST.h" 740 740 -
LMDZ6/branches/Amaury_dev/libf/phylmd/add_wake_tend.F90
r5116 r5134 13 13 14 14 USE lmdz_print_control, ONLY: prt_level 15 IMPLICIT none15 IMPLICIT NONE 16 16 17 17 ! Arguments : -
LMDZ6/branches/Amaury_dev/libf/phylmd/alpale_th.F90
r5117 r5134 21 21 USE lmdz_print_control, ONLY: mydebug=>debug , lunout, prt_level 22 22 USE lmdz_abort_physic, ONLY: abort_physic 23 USE lmdz_alpale 23 24 24 25 IMPLICIT NONE … … 47 48 48 49 REAL, DIMENSION(klon), INTENT(OUT) :: birth_rate 49 50 include "alpale.h"51 50 52 51 ! Local variables -
LMDZ6/branches/Amaury_dev/libf/phylmd/calbeta.F90
r5099 r5134 8 8 USE indice_sol_mod 9 9 10 IMPLICIT none10 IMPLICIT NONE 11 11 12 12 INCLUDE "flux_arp.h" -
LMDZ6/branches/Amaury_dev/libf/phylmd/cfmip_point_locations.F90
r5116 r5134 5 5 6 6 SUBROUTINE read_CFMIP_point_locations(npCFMIP, tab, lonCFMIP, latCFMIP) 7 IMPLICIT none7 IMPLICIT NONE 8 8 INTEGER :: npCFMIP 9 9 REAL, DIMENSION(npCFMIP) :: lonCFMIP, latCFMIP … … 35 35 USE lmdz_grid_phy, ONLY: nbp_lon, nbp_lat, klon_glo 36 36 37 IMPLICIT none37 IMPLICIT NONE 38 38 INTEGER :: npCFMIP 39 39 REAL, DIMENSION(npCFMIP) :: lonCFMIP, latCFMIP -
LMDZ6/branches/Amaury_dev/libf/phylmd/cmp_seri_mod.F90
r5117 r5134 26 26 t_seri 27 27 28 IMPLICIT none28 IMPLICIT NONE 29 29 ! Local : 30 30 !-------- … … 62 62 t_seri 63 63 USE lmdz_print_control, ONLY: prt_level 64 IMPLICIT none64 IMPLICIT NONE 65 65 ! Arguments : 66 66 !------------ -
LMDZ6/branches/Amaury_dev/libf/phylmd/coefcdrag.F90
r5117 r5134 10 10 USE lmdz_abort_physic, ONLY: abort_physic 11 11 12 IMPLICIT none12 IMPLICIT NONE 13 13 !------------------------------------------------------------------------- 14 14 ! Objet : calcul des cdrags pour le moment (cdram) et les flux de chaleur -
LMDZ6/branches/Amaury_dev/libf/phylmd/conf_phys_m.F90
r5117 r5134 37 37 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_STRATAER 38 38 USE lmdz_abort_physic, ONLY: abort_physic 39 USE lmdz_alpale 39 40 40 41 INCLUDE "conema3.h" … … 42 43 INCLUDE "YOMCST.h" 43 44 INCLUDE "YOMCST2.h" 44 INCLUDE "alpale.h"45 45 46 46 !IM : on inclut/initialise les taux de CH4, N2O, CFC11 et CFC12 -
LMDZ6/branches/Amaury_dev/libf/phylmd/create_etat0_unstruct_mod.F90
r5116 r5134 92 92 USE lmdz_geometry 93 93 USE lmdz_ioipsl_getin_p, ONLY: getin_p 94 USE lmdz_alpale 94 95 95 96 IMPLICIT NONE … … 114 115 115 116 INCLUDE "compbl.h" 116 INCLUDE "alpale.h" 117 117 118 118 INTEGER :: ji,j,i 119 119 -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_1dutils.f90
r5133 r5134 6 6 CONTAINS 7 7 REAL FUNCTION fq_sat(kelvin, millibar) 8 IMPLICIT none8 IMPLICIT NONE 9 9 !====================================================================== 10 10 ! Autheur(s): Z.X. Li (LMD/CNRS) -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_old_1dconv.f90
r5128 r5134 632 632 SUBROUTINE rdgrads(itape, icount, nl, z, ht, hq, hw, hu, hv, hthtur, hqtur, & 633 633 & ts_fcg, ts, imp_fcg, Turb_fcg) 634 IMPLICIT none634 IMPLICIT NONE 635 635 INTEGER itape, icount, icomp, nl 636 636 REAL z(nl), ht(nl), hq(nl), hw(nl), hu(nl), hv(nl) -
LMDZ6/branches/Amaury_dev/libf/phylmd/ener_conserv.F90
r5117 r5134 31 31 USE lmdz_abort_physic, ONLY: abort_physic 32 32 33 IMPLICIT none33 IMPLICIT NONE 34 34 INCLUDE "YOMCST.h" 35 35 INCLUDE "YOETHF.h" -
LMDZ6/branches/Amaury_dev/libf/phylmd/gr_fi_ecrit.F90
r5099 r5134 1 1 SUBROUTINE gr_fi_ecrit(nfield,nlon,iim,jjmp1,fi,ecrit) 2 IMPLICIT none2 IMPLICIT NONE 3 3 4 4 ! Tranformer une variable de la grille physique a -
LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/surf_inlandsis_mod.F90
r5128 r5134 1042 1042 USE indice_sol_mod 1043 1043 1044 IMPLICIT none1044 IMPLICIT NONE 1045 1045 !====================================================================== 1046 1046 ! Auteur(s) HJ PUNGE (LSCE) date: 07/2009 … … 1278 1278 USE dimphy 1279 1279 1280 IMPLICIT none1280 IMPLICIT NONE 1281 1281 1282 1282 include "clesphys.h" -
LMDZ6/branches/Amaury_dev/libf/phylmd/iophys.F90
r5119 r5134 187 187 #ifdef und 188 188 SUBROUTINE gr_fi_ecrit(nfield,nlon,iim,jjmp1,fi,ecrit) 189 IMPLICIT none189 IMPLICIT NONE 190 190 191 191 !======================================================================= -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_alpale.f90
r5133 r5134 1 SUBROUTINE alpale( debut, itap, dtime, paprs, omega, t_seri, & 2 alp_offset, it_wape_prescr, wape_prescr, fip_prescr, & 3 ale_bl_prescr, alp_bl_prescr, & 4 wake_pe, wake_fip, & 5 Ale_bl, Ale_bl_trig, Alp_bl, & 6 Ale, Alp, Ale_wake, Alp_wake ) 7 8 ! ************************************************************** 9 ! * 10 ! ALPALE * 11 ! * 12 ! * 13 ! written by : Jean-Yves Grandpeix, 12/05/2016 * 14 ! modified by : * 15 ! ************************************************************** 16 17 USE dimphy 18 USE lmdz_ioipsl_getin_p, ONLY: getin_p 19 USE lmdz_print_control, ONLY: mydebug=>debug , lunout, prt_level 20 USE phys_local_var_mod, ONLY: zw2 ! Variables internes non sauvegardees de la physique 21 USE lmdz_abort_physic, ONLY: abort_physic 22 23 IMPLICIT NONE 24 25 !================================================================ 26 ! Auteur(s) : Jean-Yves Grandpeix, 12/05/2016 27 ! Objet : Sums up all contributions to Ale and Alp 28 !================================================================ 29 30 ! Input arguments 31 !---------------- 32 LOGICAL, INTENT(IN) :: debut 33 INTEGER, INTENT(IN) :: itap 34 REAL, INTENT(IN) :: dtime 35 INTEGER, INTENT(IN) :: it_wape_prescr 36 REAL, INTENT(IN) :: wape_prescr, fip_prescr 37 REAL, INTENT(IN) :: Ale_bl_prescr, Alp_bl_prescr 38 REAL, INTENT(IN) :: alp_offset 39 REAL, DIMENSION(klon,klev+1), INTENT(IN) :: paprs 40 REAL, DIMENSION(klon,klev), INTENT(IN) :: t_seri 41 REAL, DIMENSION(klon,klev), INTENT(IN) :: omega 42 REAL, DIMENSION(klon), INTENT(IN) :: wake_pe, wake_fip 43 REAL, DIMENSION(klon), INTENT(IN) :: Ale_bl, Ale_bl_trig, Alp_bl 44 45 46 ! Output arguments 47 !---------------- 48 REAL, DIMENSION(klon), INTENT(OUT) :: Ale, Alp 49 REAL, DIMENSION(klon), INTENT(OUT) :: Ale_wake, Alp_wake 50 51 include "alpale.h" 52 include "YOMCST.h" 53 include "YOETHF.h" 54 55 ! Local variables 56 !---------------- 57 INTEGER :: i, k 58 REAL, DIMENSION(klon) :: www 59 REAL, SAVE :: ale_max=1000. 60 REAL, SAVE :: alp_max=2. 61 CHARACTER*20 modname 62 CHARACTER*80 abort_message 1 ! Contains the alpale subroutine, as well as the old content from alpale.h 2 3 MODULE lmdz_alpale 4 IMPLICIT NONE; PRIVATE 5 PUBLIC alpale 6 7 !===================================================================== 8 ! Specifique de Ale/Alp : 9 !===================================================================== 10 PUBLIC iflag_trig_bl, iflag_clos_bl, tau_trig_shallow, tau_trig_deep, iflag_strig, & 11 alp_bl_k, s_trig, h_trig, iflag_coupl, iflag_clos, iflag_wake 12 ! dans alealp_th, thermcell_alp, physiq_mod, conf_phys 13 INTEGER :: iflag_trig_bl, iflag_clos_bl, iflag_strig 14 INTEGER :: tau_trig_shallow, tau_trig_deep 15 REAL :: s_trig, h_trig 16 ! thermcell_alp et convection ... 17 INTEGER :: iflag_coupl, iflag_clos, iflag_wake 18 ! thermcell_alp 19 REAL :: alp_bl_k 20 !$OMP THREADPRIVATE(iflag_trig_bl, iflag_clos_bl, tau_trig_shallow, tau_trig_deep, iflag_strig) 21 !$OMP THREADPRIVATE(alp_bl_k, s_trig, h_trig, iflag_coupl, iflag_clos, iflag_wake) 22 23 CONTAINS 24 25 SUBROUTINE alpale(debut, itap, dtime, paprs, omega, t_seri, & 26 alp_offset, it_wape_prescr, wape_prescr, fip_prescr, & 27 ale_bl_prescr, alp_bl_prescr, & 28 wake_pe, wake_fip, & 29 Ale_bl, Ale_bl_trig, Alp_bl, & 30 Ale, Alp, Ale_wake, Alp_wake) 31 32 ! ************************************************************** 33 ! * 34 ! ALPALE * 35 ! * 36 ! * 37 ! written by : Jean-Yves Grandpeix, 12/05/2016 * 38 ! modified by : * 39 ! ************************************************************** 40 41 USE dimphy 42 USE lmdz_ioipsl_getin_p, ONLY: getin_p 43 USE lmdz_print_control, ONLY: mydebug => debug, lunout, prt_level 44 USE phys_local_var_mod, ONLY: zw2 ! Variables internes non sauvegardees de la physique 45 USE lmdz_abort_physic, ONLY: abort_physic 46 47 IMPLICIT NONE 48 49 !================================================================ 50 ! Auteur(s) : Jean-Yves Grandpeix, 12/05/2016 51 ! Objet : Sums up all contributions to Ale and Alp 52 !================================================================ 53 54 ! Input arguments 55 !---------------- 56 LOGICAL, INTENT(IN) :: debut 57 INTEGER, INTENT(IN) :: itap 58 REAL, INTENT(IN) :: dtime 59 INTEGER, INTENT(IN) :: it_wape_prescr 60 REAL, INTENT(IN) :: wape_prescr, fip_prescr 61 REAL, INTENT(IN) :: Ale_bl_prescr, Alp_bl_prescr 62 REAL, INTENT(IN) :: alp_offset 63 REAL, DIMENSION(klon, klev + 1), INTENT(IN) :: paprs 64 REAL, DIMENSION(klon, klev), INTENT(IN) :: t_seri 65 REAL, DIMENSION(klon, klev), INTENT(IN) :: omega 66 REAL, DIMENSION(klon), INTENT(IN) :: wake_pe, wake_fip 67 REAL, DIMENSION(klon), INTENT(IN) :: Ale_bl, Ale_bl_trig, Alp_bl 68 69 70 ! Output arguments 71 !---------------- 72 REAL, DIMENSION(klon), INTENT(OUT) :: Ale, Alp 73 REAL, DIMENSION(klon), INTENT(OUT) :: Ale_wake, Alp_wake 74 75 include "YOMCST.h" 76 include "YOETHF.h" 77 78 ! Local variables 79 !---------------- 80 INTEGER :: i, k 81 REAL, DIMENSION(klon) :: www 82 REAL, SAVE :: ale_max = 1000. 83 REAL, SAVE :: alp_max = 2. 84 CHARACTER*20 modname 85 CHARACTER*80 abort_message 63 86 64 87 65 88 !$OMP THREADPRIVATE(ale_max,alp_max) 66 89 67 ! Calcul de l'energie disponible ALE (J/kg) et de la puissance 68 ! disponible ALP (W/m2) pour le soulevement des particules dans 69 ! le modele convectif 70 71 do i = 1,klon 72 ALE(i) = 0. 73 ALP(i) = 0. 74 enddo 75 76 !calcul de ale_wake et alp_wake 77 IF (iflag_wake>=1) THEN 78 IF (itap <= it_wape_prescr) THEN 79 do i = 1,klon 80 ale_wake(i) = wape_prescr 81 alp_wake(i) = fip_prescr 82 enddo 83 else 84 do i = 1,klon 85 !jyg ALE=WAPE au lieu de ALE = 1/2 Cstar**2 86 !cc ale_wake(i) = 0.5*wake_cstar(i)**2 87 ale_wake(i) = wake_pe(i) 88 alp_wake(i) = wake_fip(i) 89 enddo 90 endif 91 else 92 do i = 1,klon 93 ale_wake(i) = 0. 94 alp_wake(i) = 0. 90 ! Calcul de l'energie disponible ALE (J/kg) et de la puissance 91 ! disponible ALP (W/m2) pour le soulevement des particules dans 92 ! le modele convectif 93 94 do i = 1, klon 95 ALE(i) = 0. 96 ALP(i) = 0. 97 enddo 98 99 !calcul de ale_wake et alp_wake 100 IF (iflag_wake>=1) THEN 101 IF (itap <= it_wape_prescr) THEN 102 do i = 1, klon 103 ale_wake(i) = wape_prescr 104 alp_wake(i) = fip_prescr 105 enddo 106 else 107 do i = 1, klon 108 !jyg ALE=WAPE au lieu de ALE = 1/2 Cstar**2 109 !cc ale_wake(i) = 0.5*wake_cstar(i)**2 110 ale_wake(i) = wake_pe(i) 111 alp_wake(i) = wake_fip(i) 112 enddo 113 endif 114 else 115 do i = 1, klon 116 ale_wake(i) = 0. 117 alp_wake(i) = 0. 118 enddo 119 endif 120 !combinaison avec ale et alp de couche limite: constantes si pas 121 !de couplage, valeurs calculees dans le thermique sinon 122 IF (iflag_coupl==0) THEN 123 IF (debut.AND.prt_level>9) & 124 WRITE(lunout, *)'ALE et ALP imposes' 125 do i = 1, klon 126 !on ne couple que ale 127 ! ALE(i) = max(ale_wake(i),Ale_bl(i)) 128 ALE(i) = max(ale_wake(i), ale_bl_prescr) 129 !on ne couple que alp 130 ! ALP(i) = alp_wake(i) + Alp_bl(i) 131 ALP(i) = alp_wake(i) + alp_bl_prescr 132 enddo 133 else 134 IF(prt_level>9)WRITE(lunout, *)'ALE et ALP couples au thermique' 135 ! do i = 1,klon 136 ! ALE(i) = max(ale_wake(i),Ale_bl(i)) 137 ! avant ALP(i) = alp_wake(i) + Alp_bl(i) 138 ! ALP(i) = alp_wake(i) + Alp_bl(i) + alp_offset ! modif sb 139 ! WRITE(20,*)'ALE',ALE(i),Ale_bl(i),ale_wake(i) 140 ! WRITE(21,*)'ALP',ALP(i),Alp_bl(i),alp_wake(i) 141 ! enddo 142 143 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 144 ! Modif FH 2010/04/27. Sans doute temporaire. 145 ! Deux options pour le alp_offset : constant si >?? 0 ou 146 ! proportionnel ??a w si <0 147 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 148 ! Estimation d'une vitesse verticale effective pour ALP 149 IF (1==0) THEN 150 www(1:klon) = 0. 151 do k = 2, klev - 1 152 do i = 1, klon 153 www(i) = max(www(i), -omega(i, k) * RD * t_seri(i, k) & 154 / (RG * paprs(i, k)) * zw2(i, k) * zw2(i, k)) 155 ! if (paprs(i,k)>pbase(i)) THEN 156 ! calcul approche de la vitesse verticale en m/s 157 ! www(i)=max(www(i),-omega(i,k)*RD*temp(i,k)/(RG*paprs(i,k)) 158 ! endif 159 ! Le 0.1 est en gros H / ps = 1e4 / 1e5 95 160 enddo 96 endif 97 !combinaison avec ale et alp de couche limite: constantes si pas 98 !de couplage, valeurs calculees dans le thermique sinon 99 IF (iflag_coupl==0) THEN 100 IF (debut.AND.prt_level>9) & 101 WRITE(lunout,*)'ALE et ALP imposes' 102 do i = 1,klon 103 !on ne couple que ale 104 ! ALE(i) = max(ale_wake(i),Ale_bl(i)) 105 ALE(i) = max(ale_wake(i),ale_bl_prescr) 106 !on ne couple que alp 107 ! ALP(i) = alp_wake(i) + Alp_bl(i) 108 ALP(i) = alp_wake(i) + alp_bl_prescr 109 enddo 110 else 111 IF(prt_level>9)WRITE(lunout,*)'ALE et ALP couples au thermique' 112 ! do i = 1,klon 113 ! ALE(i) = max(ale_wake(i),Ale_bl(i)) 114 ! avant ALP(i) = alp_wake(i) + Alp_bl(i) 115 ! ALP(i) = alp_wake(i) + Alp_bl(i) + alp_offset ! modif sb 116 ! WRITE(20,*)'ALE',ALE(i),Ale_bl(i),ale_wake(i) 117 ! WRITE(21,*)'ALP',ALP(i),Alp_bl(i),alp_wake(i) 118 ! enddo 119 120 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 121 ! Modif FH 2010/04/27. Sans doute temporaire. 122 ! Deux options pour le alp_offset : constant si >?? 0 ou 123 ! proportionnel ??a w si <0 124 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 125 ! Estimation d'une vitesse verticale effective pour ALP 126 IF (1==0) THEN 127 www(1:klon)=0. 128 do k=2,klev-1 129 do i=1,klon 130 www(i)=max(www(i),-omega(i,k)*RD*t_seri(i,k) & 131 /(RG*paprs(i,k)) *zw2(i,k)*zw2(i,k)) 132 ! if (paprs(i,k)>pbase(i)) THEN 133 ! calcul approche de la vitesse verticale en m/s 134 ! www(i)=max(www(i),-omega(i,k)*RD*temp(i,k)/(RG*paprs(i,k)) 135 ! endif 136 ! Le 0.1 est en gros H / ps = 1e4 / 1e5 137 enddo 138 enddo 139 do i=1,klon 140 IF (www(i)>0. .AND. ale_bl(i)>0. ) www(i)=www(i)/ale_bl(i) 141 enddo 142 ENDIF 143 144 145 do i = 1,klon 146 ALE(i) = max(ale_wake(i),Ale_bl(i)) 147 !cc nrlmd le 10/04/2012----------Stochastic triggering------------ 148 IF (iflag_trig_bl>=1) THEN 149 ALE(i) = max(ale_wake(i),Ale_bl_trig(i)) 150 endif 151 !cc fin nrlmd le 10/04/2012 152 IF (alp_offset>=0.) THEN 153 ALP(i) = alp_wake(i) + Alp_bl(i) + alp_offset ! modif sb 154 else 155 abort_message ='Ne pas passer la car www non calcule' 156 CALL abort_physic (modname,abort_message,1) 157 158 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 159 ! _ _ 160 ! Ajout d'une composante 3 * A * w w'2 a w'3 avec 161 ! w=www : w max sous pbase ou A est la fraction 162 ! couverte par les ascendances w' on utilise le fait 163 ! que A * w'3 = ALP et donc A * w'2 ~ ALP / sqrt(ALE) 164 ! (on ajoute 0.1 pour les singularites) 165 ALP(i)=alp_wake(i)*(1.+3.*www(i)/( sqrt(ale_wake(i))+0.1) ) & 166 +alp_bl(i) *(1.+3.*www(i)/( sqrt(ale_bl(i)) +0.1) ) 167 ! ALP(i)=alp_wake(i)+Alp_bl(i)+alp_offset*min(omega(i,6),0.) 168 ! if (alp(i)<0.) THEN 169 ! PRINT*,'ALP ',alp(i),alp_wake(i) & 170 ! ,Alp_bl(i),alp_offset*min(omega(i,6),0.) 171 ! endif 172 endif 173 enddo 174 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 175 176 endif 177 do i=1,klon 178 IF (alp(i)>alp_max) THEN 179 IF(prt_level>9)WRITE(lunout,*) & 180 'WARNING SUPER ALP (seuil=',alp_max, & 181 '): i, alp, alp_wake,ale',i,alp(i),alp_wake(i),ale(i) 182 alp(i)=alp_max 183 endif 184 IF (ale(i)>ale_max) THEN 185 IF(prt_level>9)WRITE(lunout,*) & 186 'WARNING SUPER ALE (seuil=',ale_max, & 187 '): i, alp, alp_wake,ale',i,ale(i),ale_wake(i),alp(i) 188 ale(i)=ale_max 189 endif 190 enddo 191 192 !fin calcul ale et alp 193 !======================================================================= 194 195 196 RETURN 161 enddo 162 do i = 1, klon 163 IF (www(i)>0. .AND. ale_bl(i)>0.) www(i) = www(i) / ale_bl(i) 164 enddo 165 ENDIF 166 167 do i = 1, klon 168 ALE(i) = max(ale_wake(i), Ale_bl(i)) 169 !cc nrlmd le 10/04/2012----------Stochastic triggering------------ 170 IF (iflag_trig_bl>=1) THEN 171 ALE(i) = max(ale_wake(i), Ale_bl_trig(i)) 172 endif 173 !cc fin nrlmd le 10/04/2012 174 IF (alp_offset>=0.) THEN 175 ALP(i) = alp_wake(i) + Alp_bl(i) + alp_offset ! modif sb 176 else 177 abort_message = 'Ne pas passer la car www non calcule' 178 CALL abort_physic (modname, abort_message, 1) 179 180 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 181 ! _ _ 182 ! Ajout d'une composante 3 * A * w w'2 a w'3 avec 183 ! w=www : w max sous pbase ou A est la fraction 184 ! couverte par les ascendances w' on utilise le fait 185 ! que A * w'3 = ALP et donc A * w'2 ~ ALP / sqrt(ALE) 186 ! (on ajoute 0.1 pour les singularites) 187 ALP(i) = alp_wake(i) * (1. + 3. * www(i) / (sqrt(ale_wake(i)) + 0.1)) & 188 + alp_bl(i) * (1. + 3. * www(i) / (sqrt(ale_bl(i)) + 0.1)) 189 ! ALP(i)=alp_wake(i)+Alp_bl(i)+alp_offset*min(omega(i,6),0.) 190 ! if (alp(i)<0.) THEN 191 ! PRINT*,'ALP ',alp(i),alp_wake(i) & 192 ! ,Alp_bl(i),alp_offset*min(omega(i,6),0.) 193 ! endif 194 endif 195 enddo 196 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 197 198 endif 199 do i = 1, klon 200 IF (alp(i)>alp_max) THEN 201 IF(prt_level>9)WRITE(lunout, *) & 202 'WARNING SUPER ALP (seuil=', alp_max, & 203 '): i, alp, alp_wake,ale', i, alp(i), alp_wake(i), ale(i) 204 alp(i) = alp_max 205 endif 206 IF (ale(i)>ale_max) THEN 207 IF(prt_level>9)WRITE(lunout, *) & 208 'WARNING SUPER ALE (seuil=', ale_max, & 209 '): i, alp, alp_wake,ale', i, ale(i), ale_wake(i), alp(i) 210 ale(i) = ale_max 211 endif 212 enddo 213 214 !fin calcul ale et alp 215 !======================================================================= 216 217 RETURN 197 218 END 198 219 220 END MODULE lmdz_alpale -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_cloudth.F90
r5117 r5134 2122 2122 USE phys_state_var_mod, ONLY: fm_therm, detr_therm, entr_therm 2123 2123 2124 IMPLICIT none2124 IMPLICIT NONE 2125 2125 2126 2126 INCLUDE "YOMCST.h" -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_lscp_old.F90
r5117 r5134 27 27 28 28 29 IMPLICIT none29 IMPLICIT NONE 30 30 !====================================================================== 31 31 ! Auteur(s): Z.X. Li (LMD/CNRS) -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_thermcell_alp.F90
r5119 r5134 21 21 USE indice_sol_mod 22 22 USE lmdz_thermcell_main, ONLY: thermcell_tke_transport 23 USE lmdz_alpale 24 23 25 IMPLICIT NONE 24 26 … … 40 42 INCLUDE "YOETHF.h" 41 43 INCLUDE "FCTTRE.h" 42 INCLUDE "alpale.h"43 44 44 45 ! arguments: -
LMDZ6/branches/Amaury_dev/libf/phylmd/o3_chem_m.F90
r5119 r5134 2 2 module o3_chem_m 3 3 4 IMPLICIT none4 IMPLICIT NONE 5 5 6 6 PRIVATE o3_prod -
LMDZ6/branches/Amaury_dev/libf/phylmd/perturb_radlwsw.F90
r5117 r5134 4 4 5 5 USE dimphy 6 IMPLICIT none6 IMPLICIT NONE 7 7 INCLUDE "flux_arp.h" 8 8 -
LMDZ6/branches/Amaury_dev/libf/phylmd/phyetat0_mod.F90
r5117 r5134 42 42 USE netcdf, ONLY: missing_val_netcdf => nf90_fill_real 43 43 USE config_ocean_skin_m, ONLY: activate_ocean_skin 44 45 IMPLICIT none 44 USE lmdz_alpale 45 46 IMPLICIT NONE 46 47 !====================================================================== 47 48 ! Auteur(s) Z.X. Li (LMD/CNRS) date: 19930818 … … 50 51 include "dimsoil.h" 51 52 include "clesphys.h" 52 include "alpale.h"53 53 include "compbl.h" 54 54 include "YOMCST.h" -
LMDZ6/branches/Amaury_dev/libf/phylmd/phyredem.F90
r5117 r5134 42 42 USE config_ocean_skin_m, ONLY: activate_ocean_skin 43 43 USE lmdz_abort_physic, ONLY: abort_physic 44 45 IMPLICIT none 44 USE lmdz_alpale 45 46 IMPLICIT NONE 46 47 47 48 include "dimsoil.h" 48 49 include "clesphys.h" 49 include "alpale.h"50 50 include "compbl.h" 51 51 !====================================================================== -
LMDZ6/branches/Amaury_dev/libf/phylmd/phys_output_write_mod.F90
r5132 r5134 467 467 USE tracinca_mod, ONLY: config_inca 468 468 USE config_ocean_skin_m, ONLY: activate_ocean_skin 469 470 469 USE lmdz_vertical_layers, ONLY: presnivs 470 USE lmdz_alpale 471 471 472 472 IMPLICIT NONE 473 473 474 474 INCLUDE "clesphys.h" 475 INCLUDE "alpale.h"476 475 INCLUDE "compbl.h" 477 476 INCLUDE "YOMCST.h" -
LMDZ6/branches/Amaury_dev/libf/phylmd/physiq_mod.F90
r5133 r5134 350 350 USE output_physiqex_mod, ONLY: output_physiqex 351 351 USE lmdz_simu_airs, ONLY: simu_airs 352 USE lmdz_alpale 352 353 353 354 IMPLICIT NONE … … 405 406 include "dimsoil.h" 406 407 include "clesphys.h" 407 include "alpale.h"408 408 include "dimpft.h" 409 409 !====================================================================== -
LMDZ6/branches/Amaury_dev/libf/phylmd/physiqex_mod.F90
r5117 r5134 22 22 USE output_physiqex_mod, ONLY: output_physiqex 23 23 24 IMPLICIT none24 IMPLICIT NONE 25 25 26 26 ! Routine argument: -
LMDZ6/branches/Amaury_dev/libf/phylmd/qcheck.F90
r5099 r5134 1 1 FUNCTION qcheck(klon,klev,paprs,q,ql,aire) 2 IMPLICIT none2 IMPLICIT NONE 3 3 4 4 ! Calculer et imprimer l'eau totale. A utiliser pour verifier -
LMDZ6/branches/Amaury_dev/libf/phylmd/reevap.F90
r5117 r5134 5 5 USE add_phys_tend_mod, ONLY: fl_cor_ebil 6 6 7 IMPLICIT none7 IMPLICIT NONE 8 8 !>====================================================================== 9 9 -
LMDZ6/branches/Amaury_dev/libf/phylmd/screenp_mod.F90
r5117 r5134 19 19 ustar, testar, qstar, zref, & 20 20 delu, delte, delq) 21 IMPLICIT none21 IMPLICIT NONE 22 22 !------------------------------------------------------------------------- 23 23 … … 126 126 zref, & 127 127 delu, delte, delq) 128 IMPLICIT none128 IMPLICIT NONE 129 129 !------------------------------------------------------------------------- 130 130 -
LMDZ6/branches/Amaury_dev/libf/phylmd/water_int.F90
r5103 r5134 6 6 !============================================================= 7 7 8 IMPLICIT none8 IMPLICIT NONE 9 9 10 10 ! Arguments
Note: See TracChangeset
for help on using the changeset viewer.