Changeset 5093 for LMDZ6/branches/Amaury_dev/libf
- Timestamp:
- Jul 21, 2024, 1:07:18 PM (7 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf
- Files:
-
- 53 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3d/bilan_dyn.F
r5082 r5093 26 26 c==================================================================== 27 27 c 28 c Sous-programme consacre �des diagnostics dynamiques de base28 c Sous-programme consacre à des diagnostics dynamiques de base 29 29 c 30 30 c … … 89 89 real ww 90 90 91 c variables dynamiques interm �diaires91 c variables dynamiques intermédiaires 92 92 REAL vcont(iip1,jjm,llm),ucont(iip1,jjp1,llm) 93 93 REAL ang(iip1,jjp1,llm),unat(iip1,jjp1,llm) … … 97 97 REAL bern(iip1,jjp1,llm) 98 98 99 c champ contenant les scalaires advect �s.99 c champ contenant les scalaires advectés. 100 100 real Q(iip1,jjp1,llm,nQ) 101 101 102 c champs cumul �s102 c champs cumulés 103 103 real ps_cum(iip1,jjp1) 104 104 real masse_cum(iip1,jjp1,llm) … … 308 308 c ---------------------------- 309 309 310 c �nergie cin�tique310 c énergie cinétique 311 311 ucont(:,:,:)=0 312 312 CALL covcont(llm,ucov,vcov,ucont,vcont) 313 313 CALL enercin(vcov,ucov,vcont,ucont,ecin) 314 314 315 c moment cin �tique315 c moment cinétique 316 316 do l=1,llm 317 317 ang(:,:,l)=ucov(:,:,l)+constang(:,:) … … 373 373 enddo 374 374 375 c flux m �ridien375 c flux méridien 376 376 c ------------- 377 377 do iQ=1,nQ … … 440 440 441 441 c===================================================================== 442 c Transport m �ridien442 c Transport méridien 443 443 c===================================================================== 444 444 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/guide_mod.F90
r5088 r5093 99 99 CALL getpar('guide_teta',.false.,guide_teta,'guidage de T par Teta') 100 100 101 CALL getpar('guide_add',.false.,guide_add,'for �age constant?')101 CALL getpar('guide_add',.false.,guide_add,'forçage constant?') 102 102 CALL getpar('guide_zon',.false.,guide_zon,'guidage moy zonale') 103 103 if (guide_zon .and. abs(grossismx - 1.) > 0.01) & … … 121 121 122 122 123 ! Sauvegarde du for �age123 ! Sauvegarde du forçage 124 124 CALL getpar('guide_sav',.false.,guide_sav,'sauvegarde guidage') 125 125 CALL getpar('iguide_sav',4,iguide_sav,'freq. sauvegarde guidage') … … 1719 1719 call nf95_put_var(nid, varid_alpha_q, alpha_q) 1720 1720 ! -------------------------------------------------------------------- 1721 ! Cr �ation des variables sauvegard�es1721 ! Création des variables sauvegardées 1722 1722 ! -------------------------------------------------------------------- 1723 1723 ierr = nf90_redef(nid) -
LMDZ6/branches/Amaury_dev/libf/dyn3d/tetaleveli1j.F
r5086 r5093 57 57 c===================================================================== 58 58 if (lnew) then 59 c on r �initialise les r�indicages et les poids59 c on réinitialise les réindicages et les poids 60 60 c===================================================================== 61 61 … … 96 96 c 97 97 c ... Modif . P. Le Van ( 20/01/98) .... 98 c Modif Fr �d�ric Hourdin (3/01/02)98 c Modif Frédéric Hourdin (3/01/02) 99 99 100 100 IF(pgcm(i,lb(i))==0.OR. -
LMDZ6/branches/Amaury_dev/libf/dyn3d/tetaleveli1j1.F
r5086 r5093 57 57 c===================================================================== 58 58 if (lnew) then 59 c on r �initialise les r�indicages et les poids59 c on réinitialise les réindicages et les poids 60 60 c===================================================================== 61 61 … … 96 96 c 97 97 c ... Modif . P. Le Van ( 20/01/98) .... 98 c Modif Fr �d�ric Hourdin (3/01/02)98 c Modif Frédéric Hourdin (3/01/02) 99 99 100 100 IF(pgcm(i,lb(i))==0.OR. -
LMDZ6/branches/Amaury_dev/libf/dyn3d/top_bound.F
r5082 r5093 27 27 c ------ 28 28 c 29 c Dissipation lin �aire (ex top_bound de la physique)29 c Dissipation linéaire (ex top_bound de la physique) 30 30 c 31 31 c======================================================================= -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/comdissnew.h
r1952 r5093 5 5 ! ATTENTION!!!!: ce fichier include est compatible format fixe/format libre 6 6 ! veillez à n'utiliser que des ! pour les commentaires 7 ! et à bien positionner les & des lignes de continuation 7 ! et à bien positionner les & des lignes de continuation 8 8 ! (les placer en colonne 6 et en colonne 73) 9 9 ! -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/disvert_noterre.F
r5086 r5093 24 24 c 25 25 c======================================================================= 26 c Discretisation verticale en coordonn �e hybride (ou sigma)26 c Discretisation verticale en coordonnée hybride (ou sigma) 27 27 c 28 28 c======================================================================= … … 208 208 c Calcul au milieu des couches : 209 209 c WARNING : le choix de placer le milieu des couches au niveau de 210 c pression interm �diaire est arbitraire et pourrait etre modifi�.210 c pression intermédiaire est arbitraire et pourrait etre modifié. 211 211 c Le calcul du niveau pour la derniere couche 212 212 c (on met la meme distance (en log pression) entre P(llm) 213 213 c et P(llm -1) qu'entre P(llm-1) et P(llm-2) ) est 214 c Specifique. Ce choix est sp �cifi�ici ET dans exner_milieu.F214 c Specifique. Ce choix est spécifié ici ET dans exner_milieu.F 215 215 216 216 DO l = 1, llm-1 … … 284 284 c L'objectif est de calculer newsig telle que 285 285 c (1 -pa/preff)*exp(1-1./newsig**2)+(pa/preff)*newsig = sig 286 c Cela ne se r �soud pas analytiquement:287 c => on r �soud par iterration bourrine286 c Cela ne se résoud pas analytiquement: 287 c => on résoud par iterration bourrine 288 288 c ---------------------------------------------- 289 289 c Information : where exp(1-1./x**2) become << x … … 320 320 newsig=(X2+newsig)*0.5 321 321 end if 322 c Test : on arete lorsque on approxime sig � moins de 0.01 m pr�s322 c Test : on arete lorsque on approxime sig à moins de 0.01 m près 323 323 c (en pseudo altitude) : 324 324 IF(abs(10.*log(F))<1.E-5) goto 999 -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/interpre.F
r5086 r5093 41 41 42 42 c CALCUL DE LA PRESSION DE SURFACE 43 c Les coefficients ap et bp sont pass �s en common44 c Calcul de la pression au sol en mb optimis �e pour43 c Les coefficients ap et bp sont passés en common 44 c Calcul de la pression au sol en mb optimisée pour 45 45 c la vectorialisation 46 46 … … 67 67 c RECONSTRUCTION DES CHAMPS CONTRAVARIANTS 68 68 c Le programme ppm3d travaille avec les composantes 69 c de vitesse et pas les flux, on doit donc passer de l'un �l'autre70 c Dans le m �me temps, on fait le changement d'orientation du vent en v69 c de vitesse et pas les flux, on doit donc passer de l'un à l'autre 70 c Dans le même temps, on fait le changement d'orientation du vent en v 71 71 do l=1,llm 72 72 do j=1,jjm … … 99 99 100 100 c INVERSION DES NIVEAUX 101 c le programme ppm3d travaille avec une 3 �me coordonn�e invers�e par rapport101 c le programme ppm3d travaille avec une 3ème coordonnée inversée par rapport 102 102 c de celle du LMDZ: z=1<=>niveau max, z=llm+1<=>surface 103 c On passe donc des niveaux du LMDZ �ceux de Lin103 c On passe donc des niveaux du LMDZ à ceux de Lin 104 104 105 105 do l=1,llm+1 -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/ppm3d.F
r5079 r5093 68 68 implicit none 69 69 70 c rajout de d �clarations70 c rajout de déclarations 71 71 c integer Jmax,kmax,ndt0,nstep,k,j,i,ic,l,js,jn,imh,iad,jad,krd 72 72 c integer iu,iiu,j2,jmr,js0,jt … … 769 769 DO k=1,NLAY 770 770 DO I=1,IMR 771 c j=1 c'est le p �le Sud, j=JNP c'est le p�le Nord771 c j=1 c'est le pôle Sud, j=JNP c'est le pôle Nord 772 772 Q(I, 2,k,IC) = Q(I, 1,k,IC) 773 773 Q(I,JMR,k,IC) = Q(I,JNP,k,IC) -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/traceurpole.F
r2622 r5093 28 28 29 29 30 c On impose une seule valeur au pôle Sud j=jjm+1=jjp1 30 c On impose une seule valeur au pôle Sud j=jjm+1=jjp1 31 31 sommemasses=0 32 32 sommemqs=0 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/bilan_dyn_loc.F
r5082 r5093 30 30 c==================================================================== 31 31 c 32 c Sous-programme consacre �des diagnostics dynamiques de base32 c Sous-programme consacre à des diagnostics dynamiques de base 33 33 c 34 34 c … … 88 88 real ww 89 89 90 c variables dynamiques interm �diaires90 c variables dynamiques intermédiaires 91 91 REAL,SAVE,ALLOCATABLE :: vcont(:,:,:),ucont(:,:,:) 92 92 REAL,SAVE,ALLOCATABLE :: ang(:,:,:),unat(:,:,:) … … 96 96 REAL,SAVE,ALLOCATABLE :: bern(:,:,:) 97 97 98 c champ contenant les scalaires advect �s.98 c champ contenant les scalaires advectés. 99 99 real,SAVE,ALLOCATABLE :: Q(:,:,:,:) 100 100 101 c champs cumul �s101 c champs cumulés 102 102 real,SAVE,ALLOCATABLE :: ps_cum(:,:) 103 103 real,SAVE,ALLOCATABLE :: masse_cum(:,:,:) … … 370 370 jje=jj_end 371 371 372 c �nergie cin�tique372 c énergie cinétique 373 373 ! ucont(:,jjb:jje,:)=0 374 374 … … 382 382 CALL enercin_loc(vcov,ucov,vcont,ucont,ecin) 383 383 384 c moment cin �tique384 c moment cinétique 385 385 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 386 386 do l=1,llm … … 490 490 enddo 491 491 492 c flux m �ridien492 c flux méridien 493 493 c ------------- 494 494 do iQ=1,nQ … … 642 642 643 643 c===================================================================== 644 c Transport m �ridien644 c Transport méridien 645 645 c===================================================================== 646 646 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/conf_gcm.F90
r5082 r5093 121 121 122 122 !Config Key = prt_level 123 !Config Desc = niveau d'impressions de d �bogage123 !Config Desc = niveau d'impressions de débogage 124 124 !Config Def = 0 125 !Config Help = Niveau d'impression pour le d �bogage125 !Config Help = Niveau d'impression pour le débogage 126 126 !Config (0 = minimum d'impression) 127 127 prt_level = 0 … … 921 921 922 922 !Config Key = use_mpi_alloc 923 !Config Desc = Utilise un buffer MPI en m �moire globale923 !Config Desc = Utilise un buffer MPI en mémoire globale 924 924 !Config Def = false 925 925 !Config Help = permet d'activer l'utilisation d'un buffer MPI 926 !Config en m �moire globale a l'aide de la fonction MPI_ALLOC.927 !Config Cela peut am �liorer la bande passante des transferts MPI926 !Config en mémoire globale a l'aide de la fonction MPI_ALLOC. 927 !Config Cela peut améliorer la bande passante des transferts MPI 928 928 !Config d'un facteur 2 929 929 use_mpi_alloc=.FALSE. … … 933 933 !Config Desc = activation de la version strato 934 934 !Config Def = .FALSE. 935 !Config Help = active la version stratosph �rique de LMDZ de F. Lott935 !Config Help = active la version stratosphérique de LMDZ de F. Lott 936 936 937 937 ok_strato=.FALSE. -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/guide_loc_mod.F90
r5088 r5093 100 100 CALL getpar('guide_teta',.false.,guide_teta,'guidage de T par Teta') 101 101 102 CALL getpar('guide_add',.false.,guide_add,'for �age constant?')102 CALL getpar('guide_add',.false.,guide_add,'foréage constant?') 103 103 CALL getpar('guide_zon',.false.,guide_zon,'guidage moy zonale') 104 104 if (guide_zon .and. abs(grossismx - 1.) > 0.01) & … … 121 121 CALL getpar('plim_guide_BL',85000.,plim_guide_BL,'BL top presnivs value') 122 122 123 ! Sauvegarde du for �age123 ! Sauvegarde du forçage 124 124 CALL getpar('guide_sav',.false.,guide_sav,'sauvegarde guidage') 125 125 CALL getpar('iguide_sav',4,iguide_sav,'freq. sauvegarde guidage') … … 2269 2269 call nf95_put_var(nid, varid_alpha_q, zq) 2270 2270 ! -------------------------------------------------------------------- 2271 ! Cr �ation des variables sauvegard�es2271 ! Création des variables sauvegardées 2272 2272 ! -------------------------------------------------------------------- 2273 2273 ierr = nf90_redef(nid) -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/parallel_lmdz.F90
r5089 r5093 222 222 !Config Desc = taille des blocs openmp 223 223 !Config Def = 1 224 !Config Help = defini la taille des packets d'it �ration openmp224 !Config Help = defini la taille des packets d'itération openmp 225 225 !Config distribue a chaque tache lors de l'entree dans une 226 226 !Config boucle parallelisee -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/times.F90
r4600 r5093 194 194 endif 195 195 196 ENDIF ! using_mp �196 ENDIF ! using_mpi 197 197 end subroutine allgather_timer_average 198 198 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/top_bound_loc.F
r5082 r5093 27 27 c ------ 28 28 c 29 c Dissipation lin �aire (ex top_bound de la physique)29 c Dissipation linéaire (ex top_bound de la physique) 30 30 c 31 31 c======================================================================= -
LMDZ6/branches/Amaury_dev/libf/dynphy_lonlat/lmdz_calfis_loc.F90
r5090 r5093 187 187 ! Introduction du splitting (FH) 188 188 ! Question pour Yann : 189 ! J'ai �t� surpris au d�but que les tableaux zufi_omp, zdufi_omp n'co soitent189 ! J'ai été surpris au début que les tableaux zufi_omp, zdufi_omp n'co soitent 190 190 ! en SAVE. Je crois comprendre que c'est parce que tu voulais qu'il 191 191 ! soit allocatable (plutot par exemple que de passer une dimension 192 ! d �pendant du process en argument des routines) et que, du coup,193 ! le SAVE �vite d'avoir � refaire l'allocation �chaque appel.192 ! dépendant du process en argument des routines) et que, du coup, 193 ! le SAVE évite d'avoir à refaire l'allocation à chaque appel. 194 194 ! Tu confirmes ? 195 ! J'ai suivi le m �me principe pour les zdufic_omp195 ! J'ai suivi le même principe pour les zdufic_omp 196 196 ! Mais c'est surement bien que tu controles. 197 197 ! -
LMDZ6/branches/Amaury_dev/libf/misc/iniprint.h
r2352 r5093 4 4 ! 5 5 ! gestion des impressions de sorties et de débogage 6 ! lunout: unité du fichier dans lequel se font les sorties 6 ! lunout: unité du fichier dans lequel se font les sorties 7 7 ! (par defaut 6, la sortie standard) 8 8 ! prt_level: niveau d'impression souhaité (0 = minimum) -
LMDZ6/branches/Amaury_dev/libf/misc/write_field.F90
r5090 r5093 282 282 //trim(int2str(pos+offset)) & 283 283 //'," ---> ",g22.16," | ")' 284 ! d �pent de l'impl�mention, sur compaq, c'est necessaire284 ! dépend de l'implémention, sur compaq, c'est necessaire 285 285 ! Pos=Pos+ColumnSize 286 286 endif -
LMDZ6/branches/Amaury_dev/libf/phy_common/mod_phys_lmdz_mpi_transfert.F90
r5081 r5093 65 65 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 66 66 67 !! -- Les chaine de charact �re -- !!67 !! -- Les chaine de charactère -- !! 68 68 69 69 SUBROUTINE bcast_mpi_c(var1) -
LMDZ6/branches/Amaury_dev/libf/phy_common/mod_phys_lmdz_omp_transfert.F90
r5058 r5093 109 109 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 110 110 111 !! -- Les chaine de charact �re -- !!111 !! -- Les chaine de charactère -- !! 112 112 113 113 SUBROUTINE bcast_omp_c(var) -
LMDZ6/branches/Amaury_dev/libf/phylmd/add_wake_tend.F90
r5081 r5093 1 1 SUBROUTINE add_wake_tend(zddeltat, zddeltaq, zds, zdas, zddensw, zddensaw, zoccur, text, abortphy) 2 2 !=================================================================== 3 ! Ajoute les tendances li �es aux diverses parametrisations physiques aux3 ! Ajoute les tendances liées aux diverses parametrisations physiques aux 4 4 ! variables d'etat des poches froides. 5 5 !=================================================================== -
LMDZ6/branches/Amaury_dev/libf/phylmd/calcul_fluxs_mod.F90
r5082 r5093 55 55 ! dflux_s derivee du flux de chaleur sensible / Ts 56 56 ! dflux_l derivee du flux de chaleur latente / Ts 57 ! sens_prec_liq flux sensible li �aux echanges de precipitations liquides57 ! sens_prec_liq flux sensible lié aux echanges de precipitations liquides 58 58 ! sens_prec_sol precipitations solides 59 ! lat_prec_liq flux latent li �aux echanges de precipitations liquides59 ! lat_prec_liq flux latent lié aux echanges de precipitations liquides 60 60 ! lat_prec_sol precipitations solides 61 61 -
LMDZ6/branches/Amaury_dev/libf/phylmd/cosp/cosp_output_write_mod.F90
r5082 r5093 457 457 458 458 ! ug On récupère le type écrit de la structure: 459 ! Assez moche, �|refaire si meilleure méthode...459 ! Assez moche, à refaire si meilleure méthode... 460 460 IF (INDEX(var%cosp_typeecrit(iff), "once") > 0) THEN 461 461 typeecrit = 'once' … … 559 559 560 560 ! ug On récupère le type écrit de la structure: 561 ! Assez moche, �|refaire si meilleure méthode...561 ! Assez moche, à refaire si meilleure méthode... 562 562 IF (INDEX(var%cosp_typeecrit(iff), "once") > 0) THEN 563 563 typeecrit = 'once' -
LMDZ6/branches/Amaury_dev/libf/phylmd/cosp/lidar_simulator.F90
r5087 r5093 690 690 ! Lum_norm=f(tetaS,tau_cloud) derived from adding-doubling calculations 691 691 ! valid ONLY ABOVE OCEAN (albedo_sfce=5%) 692 ! valid only in one viewing direction (theta_v=30 �, phi_s-phi_v=320�)692 ! valid only in one viewing direction (theta_v=30°, phi_s-phi_v=320°) 693 693 ! based on adding-doubling radiative transfer computation 694 694 ! for tau values (0 to 100) and for tetas values (0 to 80) -
LMDZ6/branches/Amaury_dev/libf/phylmd/cosp2/cosp_output_write_mod.F90
r5082 r5093 474 474 475 475 ! ug On récupère le type écrit de la structure: 476 ! Assez moche, �|refaire si meilleure méthode...476 ! Assez moche, à refaire si meilleure méthode... 477 477 IF (INDEX(var%cosp_typeecrit(iff), "once") > 0) THEN 478 478 typeecrit = 'once' … … 576 576 577 577 ! ug On récupère le type écrit de la structure: 578 ! Assez moche, �|refaire si meilleure méthode...578 ! Assez moche, à refaire si meilleure méthode... 579 579 IF (INDEX(var%cosp_typeecrit(iff), "once") > 0) THEN 580 580 typeecrit = 'once' -
LMDZ6/branches/Amaury_dev/libf/phylmd/cosp2/parasol.F90
r5082 r5093 81 81 ! Lum_norm=f(PARASOL_SZA,tau_cloud) derived from adding-doubling calculations 82 82 ! valid ONLY ABOVE OCEAN (albedo_sfce=5%) 83 ! valid only in one viewing direction (theta_v=30 �, phi_s-phi_v=320�)83 ! valid only in one viewing direction (theta_v=30°, phi_s-phi_v=320°) 84 84 ! based on adding-doubling radiative transfer computation 85 85 ! for PARASOL_TAU values (0 to 100) and for PARASOL_SZA values (0 to 80) -
LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/lmdz_cosp_output_write_mod.F90
r5082 r5093 670 670 671 671 ! ug On récupère le type écrit de la structure: 672 ! Assez moche, �|refaire si meilleure méthode...672 ! Assez moche, à refaire si meilleure méthode... 673 673 IF (INDEX(var%cosp_typeecrit(iff), "once") > 0) THEN 674 674 typeecrit = 'once' … … 766 766 767 767 ! ug On récupère le type écrit de la structure: 768 ! Assez moche, �|refaire si meilleure méthode...768 ! Assez moche, à refaire si meilleure méthode... 769 769 IF (INDEX(var%cosp_typeecrit(iff), "once") > 0) THEN 770 770 typeecrit = 'once' -
LMDZ6/branches/Amaury_dev/libf/phylmd/cospv2/parasol.F90
r5082 r5093 81 81 ! Lum_norm=f(PARASOL_SZA,tau_cloud) derived from adding-doubling calculations 82 82 ! valid ONLY ABOVE OCEAN (albedo_sfce=5%) 83 ! valid only in one viewing direction (theta_v=30 �, phi_s-phi_v=320�)83 ! valid only in one viewing direction (theta_v=30°, phi_s-phi_v=320°) 84 84 ! based on adding-doubling radiative transfer computation 85 85 ! for PARASOL_TAU values (0 to 100) and for PARASOL_SZA values (0 to 80) -
LMDZ6/branches/Amaury_dev/libf/phylmd/cv30_routines.F90
r5086 r5093 3082 3082 3083 3083 ! fraction deau condensee dans les melanges convertie en precip : epm 3084 ! et eau condens �e pr�cipit�e dans masse d'air satur�: l_m*dM_m/dzdz.dzdz3084 ! et eau condensée précipitée dans masse d'air saturé : l_m*dM_m/dzdz.dzdz 3085 3085 DO j = 1, nam1 3086 3086 DO k = 1, j - 1 … … 3277 3277 3278 3278 ! On fait varier epmax en fn de la cape 3279 ! Il faut donc recalculer ep, et hp qui a d �j� �t� calcul�et3280 ! qui en d �pend3281 ! Toutes les autres variables fn de ep sont calcul �es plus bas.3279 ! Il faut donc recalculer ep, et hp qui a déjà été calculé et 3280 ! qui en dépend 3281 ! Toutes les autres variables fn de ep sont calculées plus bas. 3282 3282 3283 3283 INCLUDE "cvthermo.h" -
LMDZ6/branches/Amaury_dev/libf/phylmd/cv3_routines.F90
r5086 r5093 1101 1101 1102 1102 !JAM-------------------------------------------------------------------- 1103 ! Calcul de la quantit �d'eau sous forme de glace1103 ! Calcul de la quantité d'eau sous forme de glace 1104 1104 ! -------------------------------------------------------------------- 1105 1105 INTEGER nl, len … … 3072 3072 !!---end jyg--- 3073 3073 3074 ! --------retour �la formulation originale d'Emanuel.3074 ! --------retour à la formulation originale d'Emanuel. 3075 3075 IF (cvflag_ice) THEN 3076 3076 … … 3082 3082 3083 3083 !JAM Attention: evap=sigt*E 3084 ! Modification: evap devient l' �vaporation en milieu de couche3085 ! car n �cessaire dans cv3_yield3086 ! Du coup, il faut modifier pas mal d' �quations...3084 ! Modification: evap devient l'évaporation en milieu de couche 3085 ! car nécessaire dans cv3_yield 3086 ! Du coup, il faut modifier pas mal d'équations... 3087 3087 ! et l'expression de afac qui devient afac1 3088 3088 ! revap=sqrt((prec(i+1)+prec(i))/2) … … 3103 3103 !JYG Dans sa formulation originale, Emanuel calcule l'evaporation par: 3104 3104 ! c evap(il,i)=sigt*afac*revap 3105 ! ce qui n'est pas correct. Dans cv_routines, la formulation a �t�modifiee.3105 ! ce qui n'est pas correct. Dans cv_routines, la formulation a été modifiee. 3106 3106 ! Ici,l'evaporation evap est simplement calculee par l'equation de 3107 3107 ! conservation. … … 4902 4902 ENDDO ! k 4903 4903 4904 ! 14/01/15 AJ delta n'a rien � faire l�...4904 ! 14/01/15 AJ delta n'a rien à faire là... 4905 4905 DO il = 1, ncum ! cld 4906 4906 !! IF (wa(il,i)>0.0 .AND. iflag(il)<=1) & ! cld … … 4918 4918 4919 4919 ! IM cf. FH 4920 ! 14/01/15 AJ ne correspond pas � ce qui a �t� cod� par JYG et SB4920 ! 14/01/15 AJ ne correspond pas à ce qui a été codé par JYG et SB 4921 4921 4922 4922 IF (iflag_clw==0) THEN ! cld … … 4991 4991 4992 4992 ! fraction deau condensee dans les melanges convertie en precip : epm 4993 ! et eau condens �e pr�cipit�e dans masse d'air satur�: l_m*dM_m/dzdz.dzdz4993 ! et eau condensée précipitée dans masse d'air saturé : l_m*dM_m/dzdz.dzdz 4994 4994 DO j = 1, nl 4995 4995 DO k = 1, nl … … 5141 5141 5142 5142 ! On fait varier epmax en fn de la cape 5143 ! Il faut donc recalculer ep, et hp qui a d �j� �t� calcul�et5144 ! qui en d �pend5145 ! Toutes les autres variables fn de ep sont calcul �es plus bas.5143 ! Il faut donc recalculer ep, et hp qui a déjà été calculé et 5144 ! qui en dépend 5145 ! Toutes les autres variables fn de ep sont calculées plus bas. 5146 5146 5147 5147 include "cvthermo.h" … … 5178 5178 5179 5179 ! il faut calculer la cape: on fait un calcule simple car tant qu'on ne 5180 ! connait pas ep, on ne connait pas les m �langes, ddfts etc... qui sont5180 ! connait pas ep, on ne connait pas les mélanges, ddfts etc... qui sont 5181 5181 ! necessaires au calcul de la cape dans la nouvelle physique 5182 5182 -
LMDZ6/branches/Amaury_dev/libf/phylmd/cv_driver.F90
r3492 r5093 568 568 ,cape,ep,hp,icb,inb,clw,nk,t,h,lv & 569 569 ,epmax_diag) 570 ! on écrase ep et recalcule hp570 ! on écrase ep et recalcule hp 571 571 END IF 572 572 … … 699 699 ! si icvflag_Tpa=0, alors la fraction de glace dans l'ascendance adiabatique est 700 700 ! fonction de la temperature de l'environnement et la temperature de l'ascendance est 701 ! calculee en deux itérations, une en supposant qu'il n'y a pas de glace et l'autre 701 ! calculee en deux itérations, une en supposant qu'il n'y a pas de glace et l'autre 702 702 ! en ajoutant la glace (ancien schéma d'Arnaud Jam). 703 703 ! si icvflag_Tpa=1, alors la fraction de glace dans l'ascendance adiabatique est -
LMDZ6/branches/Amaury_dev/libf/phylmd/cvltr.F90
r5082 r5093 49 49 REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: sij ! fraction dair de lenv 50 50 REAL,DIMENSION(klon,klev),INTENT(IN) :: wght_cvfd ! weights of the layers feeding convection 51 REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: elij ! contenu en eau condens �e sp�cifique/conc deau condens�e massique51 REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: elij ! contenu en eau condensée spécifique/conc deau condensée massique 52 52 REAL,DIMENSION(klon,klev,klev),INTENT(IN) :: epmlmMm ! eau condensee precipitee dans mel masse dair sat 53 53 REAL,DIMENSION(klon,klev),INTENT(IN) :: eplaMm ! eau condensee precipitee dans aa masse dair sat 54 54 55 REAL,DIMENSION(klon,klev),INTENT(IN) :: clw ! contenu en eau condens �e dans lasc adiab55 REAL,DIMENSION(klon,klev),INTENT(IN) :: clw ! contenu en eau condensée dans lasc adiab 56 56 REAL,DIMENSION(klon),INTENT(IN) :: sigd 57 57 INTEGER,DIMENSION(klon),INTENT(IN) :: icb,inb … … 80 80 81 81 ! RomP ! les variables sont nettoyees des valeurs aberrantes 82 REAL,DIMENSION(klon,klev) :: Pa, Pm ! pluie AA et m �langes, var temporaire82 REAL,DIMENSION(klon,klev) :: Pa, Pm ! pluie AA et mélanges, var temporaire 83 83 REAL,DIMENSION(klon,klev) :: pmflxs,pmflxr ! pmflxrIN,pmflxsIN sans valeur aberante 84 84 REAL,DIMENSION(klon,klev) :: mp ! flux de masse … … 155 155 ! On prend la moyenne des precip entre le niveau i+1 et i 156 156 ! I=3/4* (P(1+1)+P(i))/2 / (sigd*r*rho_l) 157 ! 1000kg/m3= densit �de l'eau157 ! 1000kg/m3= densité de l'eau 158 158 ! 0.75e-3 = 3/4 /1000 159 ! Par la suite, I est tout le temps multipli �par sig_d pour avoir l'impaction sur la surface de la maille160 ! on le n �glige ici pour simplifier le code159 ! Par la suite, I est tout le temps multiplié par sig_d pour avoir l'impaction sur la surface de la maille 160 ! on le néglige ici pour simplifier le code 161 161 do j=1,klev-1 162 162 do i=1,klon … … 201 201 END DO 202 202 203 ! suppression des valeurs tr �s faibles (~1e-320)203 ! suppression des valeurs très faibles (~1e-320) 204 204 ! multiplication de levaporation pour lavoir par unite de temps 205 205 ! et par unite de surface de la maille … … 468 468 kappa(i,j)=1. 469 469 if(j==1) then 470 qDi(i,j,it)=qDi(i,j+1,it) !orig tr(i,j,it) ! mp(1)=0 donc tout vient de la couche sup �rieure470 qDi(i,j,it)=qDi(i,j+1,it) !orig tr(i,j,it) ! mp(1)=0 donc tout vient de la couche supérieure 471 471 elseif(mp(i,j+1)>mp(i,j).and.mp(i,j+1)>1.e-10) then 472 472 qDi(i,j,it)=qDi(i,j+1,it) -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/mod_1D_amma_read.F90
r5088 r5093 389 389 endif 390 390 if (annee_ref==2006 .and. day1<day_ini_amma) then 391 print*,'AMMA a d �but�le 10 juillet 2006',day1,day_ini_amma391 print*,'AMMA a débuté le 10 juillet 2006',day1,day_ini_amma 392 392 print*,'Changer dayref dans run.def' 393 393 stop -
LMDZ6/branches/Amaury_dev/libf/phylmd/hbtm_mod.F90
r3774 r5093 181 181 ! ++ r4 = 35.86 7.66 Kelvin 182 182 ! ++ q_sat = eps*e_sat/(p-(1-eps)*e_sat) 183 ! ++ deriv �:183 ! ++ derivé : 184 184 ! ++ ========= 185 185 ! ++ r3*(Tf-r4)*q_sat(T,p) -
LMDZ6/branches/Amaury_dev/libf/phylmd/init_be.F90
r5082 r5093 62 62 WRITE(*,*)'PASSAGE init_be ...' 63 63 64 ! la source est maintenant d �finie independemment de la valeur de klev.64 ! la source est maintenant définie independemment de la valeur de klev. 65 65 !!! Source actuellement definie pour klev = 19 et klev >= 39 66 66 !! IF (klev /= 19 .AND. klev<39) CALL abort_physic("init_be","Source du be7 necessite klev=19 ou klev>=39",1) -
LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_tso.F
r3900 r5093 623 623 c #EU TsisSV(ikl,isl) = max(TaT_SV(ikl)-15.,TsisSV(ikl,isl)) 624 624 625 !XF 18/11/2018 to avoid ST reaching 70 �C!!625 !XF 18/11/2018 to avoid ST reaching 70°C!! 626 626 !It is an error compensation but does not work over tundra 627 627 -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_thermcell_alp.F90
r5087 r5093 29 29 ! Nicolas Rochetin et Jean-Yves Grandpeix 30 30 ! pour la fermeture stochastique. 2012 31 ! Fr �d�ric Hourdin :31 ! Frédéric Hourdin : 32 32 ! netoyage informatique. 2022 33 33 ! … … 81 81 INTEGER ig,k,l 82 82 integer nsrf 83 real rhobarz0(ngrid) ! Densit �au LCL83 real rhobarz0(ngrid) ! Densité au LCL 84 84 logical ok_lcl(ngrid) ! Existence du LCL des thermiques 85 85 integer klcl(ngrid) ! Niveau du LCL 86 86 real interp(ngrid) ! Coef d'interpolation pour le LCL 87 87 !--Triggering 88 real, parameter :: su_cst=4e4 ! Surface unite: celle d'un updraft �l�mentaire88 real, parameter :: su_cst=4e4 ! Surface unite: celle d'un updraft élémentaire 89 89 real, parameter :: hcoef=1 ! Coefficient directeur pour le calcul de s2 90 real, parameter :: hmincoef=0.3 ! Coefficient directeur pour l'ordonn �e � l'origine pour le calcul de s291 real, parameter :: eps1=0.3 ! Fraction de surface occup �e par la population 1 : eps1=n1*s1/(fraca0*Sd)92 real, dimension(ngrid) :: hmin ! Ordonn �e �l'origine pour le calcul de s290 real, parameter :: hmincoef=0.3 ! Coefficient directeur pour l'ordonnée à l'origine pour le calcul de s2 91 real, parameter :: eps1=0.3 ! Fraction de surface occupée par la population 1 : eps1=n1*s1/(fraca0*Sd) 92 real, dimension(ngrid) :: hmin ! Ordonnée à l'origine pour le calcul de s2 93 93 real, dimension(ngrid) :: zmax_moy ! Hauteur moyenne des thermiques : zmax_moy = zlcl + 0.33 (zmax-zlcl) 94 94 real, parameter :: zmax_moy_coef=0.33 … … 100 100 real, dimension(ngrid,nlay) :: pbl_tke_max ! Profil de TKE moyenne 101 101 real, dimension(ngrid) :: pbl_tke_max0 ! TKE moyenne au LCL 102 real, dimension(ngrid,nlay) :: w_ls ! Vitesse verticale grande �chelle (m/s)103 real, parameter :: coef_m=1. ! On consid �re un rendement pour alp_bl_fluct_m104 real, parameter :: coef_tke=1. ! On consid �re un rendement pour alp_bl_fluct_tke102 real, dimension(ngrid,nlay) :: w_ls ! Vitesse verticale grande échelle (m/s) 103 real, parameter :: coef_m=1. ! On considère un rendement pour alp_bl_fluct_m 104 real, parameter :: coef_tke=1. ! On considère un rendement pour alp_bl_fluct_tke 105 105 real :: zdp 106 106 real, dimension(ngrid) :: alp_int,dp_int … … 171 171 !!jyg fin 172 172 173 !------------Calcul des propri �t�s du thermique au LCL173 !------------Calcul des propriétés du thermique au LCL 174 174 IF ( (iflag_trig_bl>=1) .or. (iflag_clos_bl>=1) ) THEN 175 175 … … 198 198 enddo 199 199 200 !-----Calcul de la TKE transport �e par les thermiques : therm_tke_max200 !-----Calcul de la TKE transportée par les thermiques : therm_tke_max 201 201 call thermcell_tke_transport(ngrid,nlay,ptimestep,fm0,entr0, & ! in 202 202 rg,pplev,therm_tke_max) ! out 203 203 ! print *,' thermcell_tke_transport -> ' !!jyg 204 204 205 !-----Calcul des profils verticaux de TKE hors thermiques : env_tke_max, et de la vitesse verticale grande �chelle : W_ls205 !-----Calcul des profils verticaux de TKE hors thermiques : env_tke_max, et de la vitesse verticale grande échelle : W_ls 206 206 do l=1,nlay 207 207 do ig=1,ngrid 208 pbl_tke_max(ig,l)=fraca(ig,l)*therm_tke_max(ig,l)+(1.-fraca(ig,l))*env_tke_max(ig,l) ! Recalcul de TKE moyenne apr �s transport de TKE_TH209 env_tke_max(ig,l)=(pbl_tke_max(ig,l)-fraca(ig,l)*therm_tke_max(ig,l))/(1.-fraca(ig,l)) ! Recalcul de TKE dans l'environnement apr �s transport de TKE_TH210 w_ls(ig,l)=-1.*omega(ig,l)/(RG*rhobarz(ig,l)) ! Vitesse verticale de grande �chelle208 pbl_tke_max(ig,l)=fraca(ig,l)*therm_tke_max(ig,l)+(1.-fraca(ig,l))*env_tke_max(ig,l) ! Recalcul de TKE moyenne après transport de TKE_TH 209 env_tke_max(ig,l)=(pbl_tke_max(ig,l)-fraca(ig,l)*therm_tke_max(ig,l))/(1.-fraca(ig,l)) ! Recalcul de TKE dans l'environnement après transport de TKE_TH 210 w_ls(ig,l)=-1.*omega(ig,l)/(RG*rhobarz(ig,l)) ! Vitesse verticale de grande échelle 211 211 enddo 212 212 enddo … … 253 253 254 254 255 !-----Epaisseur du nuage (depth) et d �termination de la queue du spectre de panaches (n2,s2) et du panache le plus gros (s_max)255 !-----Epaisseur du nuage (depth) et détermination de la queue du spectre de panaches (n2,s2) et du panache le plus gros (s_max) 256 256 do ig=1,ngrid 257 257 zmax_moy(ig)=zlcl(ig)+zmax_moy_coef*(zmax(ig)-zlcl(ig)) … … 328 328 enddo 329 329 330 !-----S �curit�ALP infinie330 !-----Sécurité ALP infinie 331 331 do ig=1,ngrid 332 332 if (fraca0(ig)>0.98) alp_bl_stat(ig)=2. -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_thermcell_dry.F90
r5087 r5093 90 90 ! 1. le flux de masse en haut f_star(ig,l+1) 91 91 ! 2. la temperature potentielle virtuelle dans la couche ztva(ig,l) 92 ! 3. la vitesse au carr �en haut zw2(ig,l+1)92 ! 3. la vitesse au carré en haut zw2(ig,l+1) 93 93 !------------------------------------------------------------------------ 94 94 -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_thermcell_dv2.F90
r5087 r5093 113 113 zf2=1. 114 114 115 ! la premi �re fois on multiplie le coefficient de freinage115 ! la première fois on multiplie le coefficient de freinage 116 116 ! par le module du vent dans la couche en dessous. 117 117 ! Mais pourquoi donc ??? -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_thermcell_flux2.F90
r5087 r5093 174 174 ! FH Version en cours de test; 175 175 ! par rapport a thermcell_flux, on fait une grande boucle sur "l" 176 ! et on modifie le flux avec tous les contr �les appliques d'affilee176 ! et on modifie le flux avec tous les contrôles appliques d'affilee 177 177 ! pour la meme couche 178 178 ! Momentanement, on duplique le calcule du flux pour pouvoir comparer -
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_thermcell_height.F90
r5087 r5093 39 39 enddo 40 40 41 ! On traite le cas particulier qu'il faudrait �viter ou le thermique41 ! On traite le cas particulier qu'il faudrait éviter ou le thermique 42 42 ! atteind le haut du modele ... 43 43 do ig=1,ngrid -
LMDZ6/branches/Amaury_dev/libf/phylmd/o3_chem_m.F90
r5086 r5093 24 24 25 25 integer, intent(in):: julien ! jour julien, 1 <= julien <= 360 26 real, intent(in):: gmtime ! heure de la journ �e en fraction de jour26 real, intent(in):: gmtime ! heure de la journée en fraction de jour 27 27 real, intent(in):: t_seri(:, :) ! (klon, nbp_lev) temperature, in K 28 28 … … 59 59 real earth_long 60 60 ! (longitude vraie de la Terre dans son orbite solaire, par 61 ! rapport au point vernal (21 mars), en degr �s)61 ! rapport au point vernal (21 mars), en degrés) 62 62 63 63 real pmu0(klon) ! mean of cosine of solar zenith angle during "pdtphys" -
LMDZ6/branches/Amaury_dev/libf/phylmd/phyaqua_mod.F90
r5090 r5093 942 942 if (type_profil==20) then 943 943 print*,'Profile SST 20' 944 ! Méthode 13 "Qmax2K" plateau réel �| l'Equateur augmenté +2K944 ! Méthode 13 "Qmax2K" plateau réel é| l'Equateur augmenté +2K 945 945 946 946 do j=1,klon … … 951 951 if (type_profil==21) then 952 952 print*,'Profile SST 21' 953 ! Méthode 13 "Qmax2K" plateau réel �| l'Equateur augmenté +2K953 ! Méthode 13 "Qmax2K" plateau réel é| l'Equateur augmenté +2K 954 954 do j=1,klon 955 955 phy_sst(j,i)=252.+55.*(1-sin(rlatd(j))**2) -
LMDZ6/branches/Amaury_dev/libf/phylmd/phys_output_var_mod.F90
r5087 r5093 164 164 165 165 REAL, SAVE, ALLOCATABLE:: tkt(:) ! (klon) 166 ! �paisseur (m) de la couche de diffusion thermique (microlayer)166 ! épaisseur (m) de la couche de diffusion thermique (microlayer) 167 167 ! cool skin thickness 168 168 169 169 REAL, SAVE, ALLOCATABLE:: tks(:) ! (klon) 170 ! �paisseur (m) de la couche de diffusion de masse (microlayer)170 ! épaisseur (m) de la couche de diffusion de masse (microlayer) 171 171 172 172 REAL, SAVE, ALLOCATABLE:: taur(:) ! (klon) momentum flux due to rain, in Pa -
LMDZ6/branches/Amaury_dev/libf/phylmd/plevel.F90
r5088 r5093 74 74 ! ===================================================================== 75 75 IF (lnew) THEN 76 ! on r �nitialise les r�ndicages et les poids76 ! on rénitialise les réndicages et les poids 77 77 ! ===================================================================== 78 78 … … 108 108 109 109 ! ... Modif . P. Le Van ( 20/01/98) .... 110 ! Modif Fr ��ic Hourdin (3/01/02)110 ! Modif Frédéric Hourdin (3/01/02) 111 111 112 112 aist(i) = log(pgcm(i,lb(i))/pres)/log(pgcm(i,lb(i))/pgcm(i,lt(i))) -
LMDZ6/branches/Amaury_dev/libf/phylmd/qsatseaw_1D.F90
r4722 r5093 48 48 !! Zeng, X., Zhao, M., and Dickinson, R. E., 1998 : Intercomparaison of bulk 49 49 !! aerodynamic algorithm for the computation of sea surface fluxes using 50 !! TOGA COARE and TAO data. Journal of Climate, vol 11, n �10, pp 2628--264450 !! TOGA COARE and TAO data. Journal of Climate, vol 11, n°10, pp 2628--2644 51 51 !! 52 52 !! -
LMDZ6/branches/Amaury_dev/libf/phylmd/slab_heat_transp_mod.F90
r5082 r5093 409 409 ELSE 410 410 alpha(:)=alpham 411 ! Tsurf-Tdeep ~ 10 �in the Tropics411 ! Tsurf-Tdeep ~ 10° in the Tropics 412 412 ENDIF 413 413 -
LMDZ6/branches/Amaury_dev/libf/phylmd/surf_land_orchidee_mod.F90
r5082 r5093 254 254 IF ( .NOT. ALLOCATED(albedo_keep)) THEN 255 255 !ym ALLOCATE(albedo_keep(klon)) 256 !ym bizarre que non allou �en knon precedement256 !ym bizarre que non alloué en knon precedement 257 257 ALLOCATE(albedo_keep(knon)) 258 258 ALLOCATE(zlev(knon)) -
LMDZ6/branches/Amaury_dev/libf/phylmd/surf_ocean_mod.F90
r5087 r5093 142 142 143 143 REAL, intent(out):: tkt(:) ! (knon) 144 ! �paisseur (m) de la couche de diffusion thermique (microlayer)144 ! épaisseur (m) de la couche de diffusion thermique (microlayer) 145 145 ! cool skin thickness 146 146 147 147 REAL, intent(out):: tks(:) ! (knon) 148 ! �paisseur (m) de la couche de diffusion de masse (microlayer)148 ! épaisseur (m) de la couche de diffusion de masse (microlayer) 149 149 150 150 REAL, intent(out):: taur(:) ! (knon) -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/add_wake_tend.F90
r5082 r5093 5 5 ) 6 6 !=================================================================== 7 ! Ajoute les tendances li �es aux diverses parametrisations physiques aux7 ! Ajoute les tendances liées aux diverses parametrisations physiques aux 8 8 ! variables d'etat des poches froides. 9 9 !=================================================================== -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/lmdz_wake.F90
r5086 r5093 127 127 ! wdens_ref: initial number of wakes per unit area (3D) or per 128 128 ! unit length (2D), at the beginning of each time step 129 ! Tgw : 1 sur la p �riode de onde de gravit�130 ! Cgw : vitesse de propagation de onde de gravit �129 ! Tgw : 1 sur la période de onde de gravité 130 ! Cgw : vitesse de propagation de onde de gravité 131 131 ! LL : distance entre 2 poches 132 132 133 133 ! ------------------------------------------------------------------------- 134 ! D �claration de variables134 ! Déclaration de variables 135 135 ! ------------------------------------------------------------------------- 136 136 … … 196 196 ! ------------------- 197 197 198 ! Variables �fixer198 ! Variables à fixer 199 199 INTEGER, SAVE :: igout 200 200 !$OMP THREADPRIVATE(igout) … … 383 383 ! Configuration de coefgw,stark,wdens (22/02/06 by YU Jingmei) 384 384 385 ! coefgw : Coefficient pour les ondes de gravit �385 ! coefgw : Coefficient pour les ondes de gravité 386 386 ! stark : Coefficient k dans Cstar=k*sqrt(2*WAPE) 387 ! wdens : Densit �surfacique de poche froide387 ! wdens : Densité surfacique de poche froide 388 388 ! ------------------------------------------------------------------------- 389 389 … … 1088 1088 1089 1089 ! cc nrlmd Ajout d'un recalcul de wdens dans le cas d'un entrainement 1090 ! n �gatif de ktop �kupper --------1091 ! cc On calcule pour cela une densit �wdens0 pour laquelle on1090 ! négatif de ktop à kupper -------- 1091 ! cc On calcule pour cela une densité wdens0 pour laquelle on 1092 1092 ! aurait un entrainement nul --- 1093 1093 !jyg< … … 1096 1096 ! des descentes unsaturees. Nous faisons alors l'hypothese que la 1097 1097 ! convection profonde cree directement de nouvelles poches, sans passer 1098 ! par les thermiques. La nouvelle valeur de wdens est alors impos �e.1098 ! par les thermiques. La nouvelle valeur de wdens est alors imposée. 1099 1099 1100 1100 DO i = 1, klon … … 1195 1195 DO i = 1, klon 1196 1196 IF (wk_adv(i)) THEN 1197 ! cc nrlmd Introduction du taux de mortalit �des poches et1197 ! cc nrlmd Introduction du taux de mortalité des poches et 1198 1198 ! test sur sigmaw_max=0.4 1199 1199 ! cc d_sigmaw(i) = gfl(i)*Cstar(i)*dtimesub … … 1308 1308 1309 1309 ! c DO i=1,klon 1310 ! c print*,'Pente entre 0 et kupper (r �f�rence)'1310 ! c print*,'Pente entre 0 et kupper (référence)' 1311 1311 ! c $ ,omg(i,kupper(i)+1)/(pupper(i)-ph(i,1)) 1312 1312 ! c print*,'Pente entre ktop et kupper' … … 1602 1602 1603 1603 1604 ! Coefficient de r �partition1604 ! Coefficient de répartition 1605 1605 1606 1606 crep(i, k) = crep_sol*(ph(i,kupper(i))-ph(i,k))/ & … … 1646 1646 ! 1647 1647 1648 ! cc nrlmd Prise en compte du taux de mortalit �1649 ! cc D �finitions de entr, detr1648 ! cc nrlmd Prise en compte du taux de mortalité 1649 ! cc Définitions de entr, detr 1650 1650 !jyg< 1651 1651 !! detr(i, k) = 0. … … 1664 1664 1665 1665 1666 ! ajout d'un effet onde de gravit �-Tgw(k)*deltatw(k) 03/02/06 YU1666 ! ajout d'un effet onde de gravité -Tgw(k)*deltatw(k) 03/02/06 YU 1667 1667 ! Jingmei 1668 1668 … … 2601 2601 discrim = b*b - 4.*a*c 2602 2602 ! print*, 'x, a, b, c, discrim', x, a, b, c, discrim 2603 IF (a+b>=0.) THEN !! Condition suffisante pour la positivit �de ovap2603 IF (a+b>=0.) THEN !! Condition suffisante pour la positivité de ovap 2604 2604 alpha1(i) = 1. 2605 2605 ELSE -
LMDZ6/branches/Amaury_dev/libf/phylmdiso/phyaqua_mod.F90
r5090 r5093 963 963 if (type_profil==20) then 964 964 print*,'Profile SST 20' 965 ! Méthode 13 "Qmax2K" plateau réel �| l'Equateur augmenté +2K965 ! Méthode 13 "Qmax2K" plateau réel é| l'Equateur augmenté +2K 966 966 967 967 do j=1,klon … … 972 972 if (type_profil==21) then 973 973 print*,'Profile SST 21' 974 ! Méthode 13 "Qmax2K" plateau réel �| l'Equateur augmenté +2K974 ! Méthode 13 "Qmax2K" plateau réel é| l'Equateur augmenté +2K 975 975 do j=1,klon 976 976 phy_sst(j,i)=252.+55.*(1-sin(rlatd(j))**2)
Note: See TracChangeset
for help on using the changeset viewer.