Changeset 52
- Timestamp:
- Jan 31, 2011, 12:42:42 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 28 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/000-README-svn
r42 r52 34 34 -- pour verifier les fichiers modifies, ajoutes, etc... avant un commit faire 35 35 svn status 36 svn status -qu [pour enlever les cas "?"] 36 37 37 38 -- si vous etes perdus, faites -
trunk/arch/arch-AMD64_CICLAD.path
r1 r52 1 1 NETCDF_LIBDIR=/opt/netcdf/pgf/lib 2 2 NETCDF_INCDIR=/opt/netcdf/pgf/include 3 IOIPSL_INCDIR=$ LMDGCM/../../lib4 IOIPSL_LIBDIR=$ LMDGCM/../../lib3 IOIPSL_INCDIR=$trunk/ioipsl/lib 4 IOIPSL_LIBDIR=$trunk/ioipsl/lib 5 5 ORCH_INCDIR=$LMDGCM/../../lib 6 6 ORCH_LIBDIR=$LMDGCM/../../lib -
trunk/chantiers/commit_importants.log
r51 r52 329 329 * Reste a tester le nesting qui devrait induire des modifications dues a des lignes trop longues... ce sera transparent du point de vue GCM. 330 330 331 331 ******************** 332 **** commit_v52 **** 333 ******************** 334 335 ********** chantier principal du commit 336 ********** --- version LMDZ5 qui fonctionne pour tests geantes 337 ********** --- prochaine etape, tests sur GNOME 338 339 M libf/dyn3dpar/comconst.h 340 M libf/dyn3dpar/conf_planete.F90 341 ajout du flux de chaleur intrinseque: ihf 342 [par defaut il est nul] 343 344 M libf/dyn3dpar/gcm.F 345 changements cosmetiques 346 [pour diff plus efficace avec version non par] 347 348 M libf/dyn3dpar/iniacademic.F 349 possibilites de variations latitudinales 350 de temperature plus originales 351 [seulement pour planet_type.eq."giant"] 352 353 M libf/dyn3dpar/leapfrog_p.F 354 1. ajout d'une tendance causee par le flux de chaleur intrinseque 355 (seulement prise en compte si planet_type.eq."giant") 356 2. correction bugs problematiques a la compilation et au run 357 --> probleme dans les boucles (l'indice etait llm et non l) 358 --> ajout de SAVE pour les variables paralleles 359 --> correction des declarations de variables manquantes 360 361 M libf/dyn3dpar/calfis_p.F 362 correction d'une deuxieme parenthese manquante sur ALLOCATE(zteta(klon,llm)) 363 364 M libf/phylmd/regr_lat_time_climoz_m.F90 365 erreur a la compilation avec FCM... il s'agit d'une routine terrestre 366 il y a visiblement un probleme avec o3_in 367 en attendant, les lignes sont commentees avec !AS 368 369 A deftanks/giant 8 fichiers 370 ajout de fichiers de configuration typiques pour les geantes gazeuses 371 [experimental pour le moment... on est loin de jupiter] 372 --> comparaisons entre un run ancien [avec LMDZ5-dev sur SVN ipsl sans cp var] 373 et run avec version sur ce SVN planeto donne des resultats similaires 374 375 ********** pratique 376 377 A ioipsl 378 A ioipsl/compile_ioipsl.bash 379 A ioipsl/util 16 fichiers 380 script et utilitaire pour compiler IOIPSL de facon independante 381 il suffit d'executer ./compile_ioipsl.bash 382 383 M arch/arch-AMD64_CICLAD.path 384 si IOIPSL a ete compile avec la methode precedente, les bons 385 PATH sont definis dans ce fichier [le NETCDF est aussi OK] 386 387 M 000-README-svn 388 mise a jour options "svn status" 389 390 M mars/libf/phymars/meso_callkeys.h 391 mise a jour mineure du fichier 392 [ecri_phys etait defini mais pas dans la liste] -
trunk/libf/dyn3dpar/calfis_p.F
r8 r52 288 288 ALLOCATE(flxwfi(klon,llm)) 289 289 ! ADAPTATION GCM POUR CP(T) 290 ALLOCATE(zteta(klon,llm) 290 ALLOCATE(zteta(klon,llm)) 291 291 ALLOCATE(zpk(klon,llm)) 292 292 c$OMP END MASTER -
trunk/libf/dyn3dpar/comconst.h
r8 r52 11 11 & ,dissip_factz,dissip_deltaz,dissip_zref & 12 12 & ,tau_top_bound, & 13 & daylen,year_day,molmass 13 & daylen,year_day,molmass, ihf 14 14 COMMON/cpdetvenus/nu_venus,t0_venus 15 15 … … 36 36 37 37 REAL nu_venus,t0_venus ! coeffs needed for Cp(T), Venus atmosphere 38 REAL ihf ! (W/m2) intrinsic heat flux for giant planets 38 39 39 40 -
trunk/libf/dyn3dpar/conf_planete.F90
r1 r52 64 64 CALL getin('omeg',omeg) 65 65 66 ! Intrinsic heat flux [default is none] 67 ! Aymeric -- for giant planets 68 ! [matters only if planet_type="giant"] 69 ihf = 0. 70 CALL getin('ihf',ihf) 71 72 73 66 74 END SUBROUTINE conf_planete -
trunk/libf/dyn3dpar/gcm.F
r8 r52 59 59 c Declarations: 60 60 c ------------- 61 61 62 #include "dimensions.h" 62 63 #include "paramet.h" … … 67 68 #include "logic.h" 68 69 #include "temps.h" 70 !!!!!!!!!!!#include "control.h" 69 71 #include "ener.h" 70 72 #include "description.h" … … 73 75 #include "iniprint.h" 74 76 #include "tracstoke.h" 75 76 77 #ifdef INCA 77 78 ! Only INCA needs these informations (from the Earth's physics) 78 79 #include "indicesol.h" 79 80 #endif 80 81 81 INTEGER longcles 82 82 PARAMETER ( longcles = 20 ) … … 93 93 REAL vcov(ip1jm,llm),ucov(ip1jmp1,llm) ! vents covariants 94 94 REAL teta(ip1jmp1,llm) ! temperature potentielle 95 REAL, ALLOCATABLE, DIMENSION(:,:,:) :: q! champs advectes95 REAL, ALLOCATABLE, DIMENSION(:,:,:):: q! champs advectes 96 96 REAL ps(ip1jmp1) ! pression au sol 97 97 c REAL p (ip1jmp1,llmp1 ) ! pression aux interfac.des couches … … 219 219 #endif 220 220 ! endif ! of if (planet_type.eq."earth") 221 221 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 222 c 222 223 c Initialisations pour Cp(T) Venus 223 224 call ini_cpdet 224 225 c 225 226 c----------------------------------------------------------------------- 226 227 c Choix du calendrier … … 244 245 endif 245 246 #endif 247 c----------------------------------------------------------------------- 246 248 247 249 IF (config_inca /= 'none') THEN … … 289 291 & teta,q,masse,ps,phis, time_0) 290 292 endif ! of if (planet_type.eq."mars") 291 293 292 294 c write(73,*) 'ucov',ucov 293 295 c write(74,*) 'vcov',vcov … … 304 306 CALL iniacademic(vcov,ucov,teta,q,masse,ps,phis,time_0) 305 307 endif 308 306 309 307 310 c----------------------------------------------------------------------- … … 350 353 write(lunout,*)' Pas de remise a zero' 351 354 ENDIF 355 352 356 c if (annee_ref .ne. anneeref .or. day_ref .ne. dayref) then 353 357 c write(lunout,*) … … 432 436 c Initialisation de la physique : 433 437 c ------------------------------- 434 IF (call_iniphys.and.iflag_phys.eq.1) THEN 438 439 IF (call_iniphys.and.(iflag_phys.eq.1)) THEN 435 440 latfi(1)=rlatu(1) 436 441 lonfi(1)=0. … … 450 455 zcvfi(ngridmx) = cv(ip1jm-iim) 451 456 CALL gr_dyn_fi(1,iip1,jjp1,ngridmx,aire,airefi) 452 453 457 WRITE(lunout,*) 454 458 . 'GCM: WARNING!!! vitesse verticale nulle dans la physique' 459 455 460 ! Initialisation de la physique: pose probleme quand on tourne 456 461 ! SANS physique, car iniphysiq.F est dans le repertoire phy[]... … … 462 467 call_iniphys=.false. 463 468 ENDIF ! of IF (call_iniphys.and.(iflag_phys.eq.1)) 464 469 !#endif 465 470 466 471 c----------------------------------------------------------------------- … … 508 513 IF (mpi_rank==0) then 509 514 if (ok_dyn_ins) then 510 ! initialize output file for instantaneous outputs 511 ! t_ops = iecri * daysec ! do operations every t_ops 512 t_ops =((1.0*iecri)/day_step) * daysec 513 t_wrt = daysec ! iecri * daysec ! write output every t_wrt 514 t_wrt = daysec ! iecri * daysec ! write output every t_wrt 515 CALL inithist(day_ref,annee_ref,time_step, 515 ! initialize output file for instantaneous outputs 516 ! t_ops = iecri * daysec ! do operations every t_ops 517 t_ops =((1.0*iecri)/day_step) * daysec 518 t_wrt = daysec ! iecri * daysec ! write output every t_wrt 519 CALL inithist(day_ref,annee_ref,time_step, 516 520 & t_ops,t_wrt) 517 521 endif -
trunk/libf/dyn3dpar/iniacademic.F
r7 r52 96 96 ! -------------------------------------- 97 97 c 98 99 print *, 'This is iniacademic' 100 98 101 ! initialize planet radius, rotation rate,... 99 102 call conf_planete … … 155 158 teta0=315. ! mean Teta (S.H. 315K) 156 159 CALL getin('teta0',teta0) 160 print *, 'iniacademic - teta0 ', teta0 161 print *, 'iniacademic - rad ', rad 157 162 ttp=200. ! Tropopause temperature (S.H. 200K) 158 163 CALL getin('ttp',ttp) … … 200 205 tetajl(j,l)=teta0-delt_y*ddsin*ddsin+eps*ddsin 201 206 & -delt_z*(1.-ddsin*ddsin)*log(zsig) 207 !! Aymeric -- tests particuliers 208 if (planet_type=="giant") then 209 tetajl(j,l)=teta0+(delt_y* 210 & ((sin(rlatu(j)*3.14159*eps+0.0001))**2) 211 & / ((rlatu(j)*3.14159*eps+0.0001)**2)) 212 & -delt_z*log(zsig) 213 !!! ddsin=sin(2.5*3.14159*rlatu(j)) 214 !!! tetajl(j,l)=teta0-delt_y*ddsin*ddsin 215 !!!! & -delt_z*(1.-ddsin*ddsin)*log(zsig) 216 endif 202 217 ! Profil stratospherique isotherme (+vortex) 203 218 w_pv=(1.-tanh((rlatu(j)-phi_pv)/dphi_pv))/2. … … 217 232 enddo 218 233 enddo 234 PRINT *, 'iniacademic - check',tetajl(:,int(llm/2)),rlatu(:) 219 235 220 236 -
trunk/libf/dyn3dpar/leapfrog_p.F
r8 r52 117 117 REAL,DIMENSION(:,:,:),ALLOCATABLE,SAVE :: dqfi 118 118 119 !! Aymeric -- cp(T) comme dans leapfrog.F, SAVE OK ??? 120 REAL,SAVE :: duspg(ip1jmp1,llm) ! for bilan_dyn 121 122 119 123 c variables pour le fichier histoire 120 124 REAL dtav ! intervalle de temps elementaire … … 177 181 178 182 logical , parameter :: flag_verif = .false. 179 183 184 ! for CP(T) -- Aymeric 185 real :: dtec 186 real,external :: cpdet 187 real,save :: ztetaec(ip1jmp1,llm) !!SAVE ??? 188 180 189 c declaration liees au parallelisme 181 190 INTEGER :: ierr … … 560 569 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 561 570 do l=1,llm 562 tsurpk(ijb:ije,l lm)=cpp*temp(ijb:ije,llm)/pk(ijb:ije,llm)571 tsurpk(ijb:ije,l)=cpp*temp(ijb:ije,l)/pk(ijb:ije,l) 563 572 enddo 564 573 !$OMP END DO … … 999 1008 enddo ! of do l=1,llm 1000 1009 !$OMP END DO 1010 1011 if (planet_type.eq."giant") then 1012 ! Intrinsic heat flux 1013 ! Aymeric -- for giant planets 1014 if (ihf .gt. 1.e-6) then 1015 !print *, '**** INTRINSIC HEAT FLUX ****', ihf 1016 teta(ijb:ije,1) = teta(ijb:ije,1) 1017 & + dtvr * aire(ijb:ije) * ihf / cpp / masse(ijb:ije,1) 1018 !print *, '**** d teta ' 1019 !print *, dtvr * aire(ijb:ije) * ihf / cpp / masse(ijb:ije,1) 1020 endif 1021 endif 1001 1022 1002 1023 call Register_Hallo(ucov,ip1jmp1,llm,0,1,1,0,Request_Physic) … … 1463 1484 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 1464 1485 do l=1,llm 1465 tsurpk(ijb:ije,l lm)=cpp*temp(ijb:ije,llm)/pk(ijb:ije,llm)1486 tsurpk(ijb:ije,l)=cpp*temp(ijb:ije,l)/pk(ijb:ije,l) 1466 1487 enddo 1467 1488 !$OMP END DO … … 1685 1706 ije=ij_end 1686 1707 !$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 1687 do l=1,llm 1688 tsurpk(ijb:ije,l lm)=cpp*temp(ijb:ije,llm)/1689 & pk(ijb:ije,l lm)1708 do l=1,llm 1709 tsurpk(ijb:ije,l)=cpp*temp(ijb:ije,l)/ 1710 & pk(ijb:ije,l) 1690 1711 enddo 1691 1712 !$OMP END DO -
trunk/libf/phylmd/regr_lat_time_climoz_m.F90
r1 r52 239 239 end if 240 240 241 if (desc_lat) o3_in = o3_in(n_lat:1:-1, :, :, :) 242 if (desc_plev) o3_in = o3_in(:, n_plev:1:-1, :, :) 241 !!!! Aymeric; problem with compilation here.... pb with o3_in 242 !AS if (desc_lat) o3_in = o3_in(n_lat:1:-1, :, :, :) 243 !AS if (desc_plev) o3_in = o3_in(:, n_plev:1:-1, :, :) 243 244 244 245 do m = 1, read_climoz … … 251 252 ! Next to the south pole: 252 253 j = 1 253 do while (o3_in(j, 1, l, m) == missing_value)254 j = j + 1255 end do256 if (j > 1) o3_in(:j-1, :, l, m) = &257 spread(o3_in(j, :, l, m), dim=1, ncopies=j-1)254 !AS do while (o3_in(j, 1, l, m) == missing_value) 255 !AS j = j + 1 256 !AS end do 257 !AS if (j > 1) o3_in(:j-1, :, l, m) = & 258 !AS spread(o3_in(j, :, l, m), dim=1, ncopies=j-1) 258 259 259 260 ! Next to the north pole: 260 261 j = n_lat 261 do while (o3_in(j, 1, l, m) == missing_value)262 j = j - 1263 end do264 if (j < n_lat) o3_in(j+1:, :, l, m) = &265 spread(o3_in(j, :, l, m), dim=1, ncopies=n_lat-j)262 !AS do while (o3_in(j, 1, l, m) == missing_value) 263 !AS j = j - 1 264 !AS end do 265 !AS if (j < n_lat) o3_in(j+1:, :, l, m) = & 266 !AS spread(o3_in(j, :, l, m), dim=1, ncopies=n_lat-j) 266 267 267 268 ! Take care of missing values at high pressure: … … 272 273 ! missing values so the highest level has a valid value. 273 274 k = 2 274 do while (o3_in(j, k, l, m) /= missing_value .and. k < n_plev)275 k = k + 1276 end do275 !AS do while (o3_in(j, k, l, m) /= missing_value .and. k < n_plev) 276 !AS k = k + 1 277 !AS end do 277 278 ! Replace missing values with the valid value at the 278 279 ! lowest level above missing values: 279 if (o3_in(j, k, l, m) == missing_value) &280 o3_in(j, k:n_plev, l, m) = o3_in(j, k-1, l, m)280 !AS if (o3_in(j, k, l, m) == missing_value) & 281 !AS o3_in(j, k:n_plev, l, m) = o3_in(j, k-1, l, m) 281 282 end do 282 283 end do … … 298 299 print *, & 299 300 "Found 12 months in ozone climatologies, assuming periodicity..." 300 o3_regr_lat(jjm+1:1:-1, :, 1:12, :) = regr1_step_av(o3_in, &301 xs=sin(lat_in_edg), xt=sin((/- pi / 2, rlatv(jjm:1:-1), pi / 2/)))301 !AS o3_regr_lat(jjm+1:1:-1, :, 1:12, :) = regr1_step_av(o3_in, & 302 !AS xs=sin(lat_in_edg), xt=sin((/- pi / 2, rlatv(jjm:1:-1), pi / 2/))) 302 303 ! (invert order of indices in "o3_regr_lat" because "rlatu" is 303 304 ! in descending order) … … 309 310 else 310 311 print *, "Using 14 months in ozone climatologies..." 311 o3_regr_lat(jjm+1:1:-1, :, :, :) = regr1_step_av(o3_in, &312 xs=sin(lat_in_edg), xt=sin((/- pi / 2, rlatv(jjm:1:-1), pi / 2/)))312 !AS o3_regr_lat(jjm+1:1:-1, :, :, :) = regr1_step_av(o3_in, & 313 !AS xs=sin(lat_in_edg), xt=sin((/- pi / 2, rlatv(jjm:1:-1), pi / 2/))) 313 314 ! (invert order of indices in "o3_regr_lat" because "rlatu" is 314 315 ! in descending order) -
trunk/mars/libf/phymars/meso_callkeys.h
r47 r52 15 15 16 16 COMMON/callkeys_i/iradia,iaervar,iddist,ilwd,ilwb,ilwn,ncouche & 17 & ,dustbin,nqchem_min 17 & ,dustbin,nqchem_min,ecri_phys 18 18 19 19 COMMON/callkeys_r/topdustref,solarcondate,semi,alphan
Note: See TracChangeset
for help on using the changeset viewer.