Changeset 97 for trunk/libf/dyn3d
- Timestamp:
- Mar 22, 2011, 5:25:44 PM (14 years ago)
- Location:
- trunk/libf/dyn3d
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libf/dyn3d/bilan_dyn.F
r37 r97 915 915 do itr=2,ntr 916 916 do l=1,llm 917 do j=1,jj p1917 do j=1,jjm 918 918 zawQ(1,l,itr,iQ)=zawQ(1,l,itr,iQ)+zwQ(j,l,itr,iQ)*zmasse(j,l) 919 919 enddo -
trunk/libf/dyn3d/calfis.F
r37 r97 21 21 $ pdq, 22 22 $ flxw, 23 $ clesphy0,24 23 $ pdufi, 25 24 $ pdvfi, … … 131 130 REAL pdqfi(iip1,jjp1,llm,nqtot) 132 131 REAL pdpsfi(iip1,jjp1) 133 134 INTEGER longcles135 PARAMETER ( longcles = 20 )136 REAL clesphy0( longcles )137 132 138 133 … … 515 510 . zphis, 516 511 . presnivs, 517 . clesphy0,518 512 . zufi, 519 513 . zvfi, … … 546 540 . zphis, 547 541 . presnivs, 548 . clesphy0,549 542 . zufi, 550 543 . zvfi, -
trunk/libf/dyn3d/ce0l.F90
r1 r97 39 39 #include "temps.h" 40 40 #include "logic.h" 41 INTEGER, PARAMETER :: longcles=2042 REAL, DIMENSION(longcles) :: clesphy043 41 REAL, DIMENSION(iip1,jjp1) :: masque 44 42 CHARACTER(LEN=15) :: calnd 45 43 !------------------------------------------------------------------------------- 46 CALL conf_gcm( 99, .TRUE. , clesphy0)44 CALL conf_gcm( 99, .TRUE. ) 47 45 48 46 CALL Init_Phys_lmdz(iim,jjp1,llm,1,(/(jjm-1)*iim+2/)) -
trunk/libf/dyn3d/conf_gcm.F
r6 r97 4 4 c 5 5 c 6 SUBROUTINE conf_gcm( tapedef, etatinit , clesphy0)6 SUBROUTINE conf_gcm( tapedef, etatinit ) 7 7 c 8 8 USE control_mod … … 22 22 c etatinit : = TRUE , on ne compare pas les valeurs des para- 23 23 c -metres du zoom avec celles lues sur le fichier start . 24 c clesphy0 : sortie .25 24 c 26 25 LOGICAL etatinit 27 26 INTEGER tapedef 28 27 29 INTEGER longcles30 PARAMETER( longcles = 20 )31 REAL clesphy0( longcles )32 c33 28 c Declarations : 34 29 c -------------- … … 147 142 CALL getin('raz_date', raz_date) 148 143 144 !Config Key = resetvarc 145 !Config Desc = Reinit des variables de controle 146 !Config Def = n 147 !Config Help = Reinit des variables de controle 148 resetvarc = .false. 149 CALL getin('resetvarc',resetvarc) 150 149 151 !Config Key = nday 150 152 !Config Desc = Nombre de jours d'integration … … 154 156 nday = 10 155 157 CALL getin('nday',nday) 158 159 !Config Key = less1day 160 !Config Desc = Possibilite d'integrer moins d'un jour 161 !Config Def = n 162 !Config Help = Possibilite d'integrer moins d'un jour 163 less1day = .false. 164 CALL getin('less1day',less1day) 165 166 !Config Key = fractday 167 !Config Desc = integration sur une fraction de jour 168 !Config Def = 0.01 169 !Config Help = integration sur une fraction de jour 170 fractday = 0.01 171 CALL getin('fractday',fractday) 156 172 157 173 !Config Key = day_step … … 360 376 ip_ebil_dyn = 0 361 377 CALL getin('ip_ebil_dyn',ip_ebil_dyn) 362 363 DO i = 1, longcles364 clesphy0(i) = 0.365 ENDDO366 378 367 379 ccc .... P. Le Van , ajout le 7/03/95 .pour le zoom ... … … 611 623 write(lunout,*)' anneeref = ', anneeref 612 624 write(lunout,*)' nday = ', nday 625 if (less1day) then 626 write(lunout,*)' Run only for a fraction of day ! ' 627 write(lunout,*)' fractday = ', fractday 628 endif 613 629 write(lunout,*)' day_step = ', day_step 614 630 write(lunout,*)' iperiod = ', iperiod -
trunk/libf/dyn3d/control_mod.F90
r1 r97 24 24 LOGICAL ok_dyn_ave ! output averaged values of fields in the dynamics 25 25 ! in NetCDF files dyn_hist*ave.nc 26 LOGICAL :: resetvarc ! allows to reset the variables in sortvarc 27 LOGICAL :: less1day ! allows to run less than 1 day (for Venus) 28 REAL :: fractday ! fraction of the day to run in this case 26 29 27 30 END MODULE -
trunk/libf/dyn3d/gcm.F
r7 r97 80 80 #include "indicesol.h" 81 81 #endif 82 INTEGER longcles83 PARAMETER ( longcles = 20 )84 REAL clesphy0( longcles )85 SAVE clesphy086 87 82 88 83 … … 172 167 ! Ehouarn: dump possibility of using defrun 173 168 !#ifdef CPP_IOIPSL 174 CALL conf_gcm( 99, .TRUE. , clesphy0)169 CALL conf_gcm( 99, .TRUE. ) 175 170 !#else 176 171 ! CALL defrun( 99, .TRUE. , clesphy0 ) … … 210 205 call ioconf_calendar('gregorian') 211 206 write(lunout,*)'CALENDRIER CHOISI: Terrestre bissextile' 207 else if (calend == 'titan') then 208 ! call ioconf_calendar('titan') 209 write(lunout,*)'CALENDRIER CHOISI: Titan' 210 abort_message = 'A FAIRE...' 211 call abort_gcm(modname,abort_message,1) 212 else if (calend == 'venus') then 213 ! call ioconf_calendar('venus') 214 write(lunout,*)'CALENDRIER CHOISI: Venus' 215 abort_message = 'A FAIRE...' 216 call abort_gcm(modname,abort_message,1) 212 217 else 213 218 abort_message = 'Mauvais choix de calendrier' … … 361 366 mois = 1 362 367 heure = 0. 368 ! Ce n'est defini pour l'instant que pour la Terre... 369 if (planet_type.eq.'earth') then 363 370 call ymds2ju(annee_ref, mois, day_ref, heure, jD_ref) 364 371 jH_ref = jD_ref - int(jD_ref) … … 373 380 write(lunout,*)'jD_ref+jH_ref,an, mois, jour, heure' 374 381 write(lunout,*)jD_ref+jH_ref,an, mois, jour, heure 382 else 383 ! A voir pour Titan et Venus 384 jD_ref=0 385 jH_ref=0 386 write(lunout,*)'A VOIR POUR VENUS ET TITAN: jD_ref, jH_ref' 387 write(lunout,*)jD_ref,jH_ref 388 endif ! planet_type 375 389 #else 376 390 ! Ehouarn: we still need to define JD_ref and JH_ref … … 460 474 461 475 #ifdef CPP_IOIPSL 476 ! Ce n'est defini pour l'instant que pour la Terre... 477 if (planet_type.eq.'earth') then 462 478 call ju2ymds(jD_ref + day_ini - day_ref, an, mois, jour, heure) 463 479 write (lunout,301)jour, mois, an 464 480 call ju2ymds(jD_ref + day_end - day_ref, an, mois, jour, heure) 465 481 write (lunout,302)jour, mois, an 482 else 483 ! A voir pour Titan et Venus 484 write(lunout,*)'A VOIR POUR VENUS ET TITAN: separation en annees...' 485 endif ! planet_type 486 466 487 301 FORMAT('1'/,15x,'run du ', i2,'/',i2,'/',i4) 467 488 302 FORMAT('1'/,15x,' au ', i2,'/',i2,'/',i4) … … 519 540 520 541 521 CALL leapfrog(ucov,vcov,teta,ps,masse,phis,q, clesphy0,542 CALL leapfrog(ucov,vcov,teta,ps,masse,phis,q, 522 543 . time_0) 523 544 -
trunk/libf/dyn3d/leapfrog.F
r53 r97 4 4 c 5 5 c 6 SUBROUTINE leapfrog(ucov,vcov,teta,ps,masse,phis,q, clesphy0,6 SUBROUTINE leapfrog(ucov,vcov,teta,ps,masse,phis,q, 7 7 & time_0) 8 8 … … 66 66 ! FH 2008/05/09 On elimine toutes les clefs physiques dans la dynamique 67 67 ! #include "clesphys.h" 68 69 INTEGER longcles70 PARAMETER ( longcles = 20 )71 REAL clesphy0( longcles )72 68 73 69 real zqmin,zqmax … … 202 198 203 199 itaufin = nday*day_step 200 if (less1day) then 201 c MODIF VENUS: to run less than one day: 202 itaufin = int(fractday*day_step) 203 endif 204 204 itaufinp1 = itaufin +1 205 205 modname="leapfrog" … … 236 236 CALL pression ( ip1jmp1, ap, bp, ps, p ) 237 237 CALL exner_hyb( ip1jmp1, ps, p,alpha,beta, pks, pk, pkf ) 238 c------------------ 239 c TEST PK MONOTONE 240 c------------------ 241 write(*,*) "Test PK" 242 do ij=1,ip1jmp1 243 do l=2,llm 244 if(pk(ij,l).gt.pk(ij,l-1)) then 245 c write(*,*) ij,l,pk(ij,l) 246 abort_message = 'PK non strictement decroissante' 247 call abort_gcm(modname,abort_message,1) 248 c write(*,*) "ATTENTION, Test PK deconnecté..." 249 endif 250 enddo 251 enddo 252 write(*,*) "Fin Test PK" 253 c stop 254 c------------------ 238 255 239 256 c----------------------------------------------------------------------- … … 430 447 $ du,dv,dteta,dq, 431 448 $ flxw, 432 $ clesphy0,dufi,dvfi,dtetafi,dqfi,dpfi )449 $ dufi,dvfi,dtetafi,dqfi,dpfi ) 433 450 434 451 c ajout des tendances physiques: -
trunk/libf/dyn3d/sortvarc.F
r1 r97 55 55 56 56 REAL SSUM 57 58 logical firstcal 59 data firstcal/.true./ 60 save firstcal 57 61 58 62 c----------------------------------------------------------------------- … … 115 119 * cosphi(ij) 116 120 ENDDO 117 angl(l) = rad sg*121 angl(l) = rad * 118 122 s (SSUM(ip1jm-iip1,ge(iip2),1)-SSUM(jjm-1,ge(iip2),iip1)) 119 123 ENDDO … … 129 133 ang = SSUM( llm, angl, 1 ) 130 134 131 c rday = REAL(INT ( day_ini + time )) 132 c 135 IF (firstcal.and.resetvarc) then 133 136 rday = REAL(INT(time-jD_ref-jH_ref)) 134 IF(ptot0.eq.0.) THEN135 137 PRINT 3500, itau, rday, heure,time 136 138 PRINT*,'WARNING!!! On recalcule les valeurs initiales de :' … … 151 153 ang = ang /ang0 152 154 155 firstcal = .false. 153 156 154 157 PRINT 3500, itau, rday, heure, time -
trunk/libf/dyn3d/sortvarc0.F
r1 r97 116 116 * cosphi(ij) 117 117 ENDDO 118 angl(l) = rad sg*118 angl(l) = rad * 119 119 s (SSUM(ip1jm-iip1,ge(iip2),1)-SSUM(jjm-1,ge(iip2),iip1)) 120 120 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.