Changeset 270 for trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F
- Timestamp:
- Aug 18, 2011, 12:09:27 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F
r130 r270 152 152 logical ok_sync 153 153 parameter (ok_sync = .true.) 154 logical physic 154 155 155 156 data callinigrads/.true./ … … 222 223 223 224 itau = 0 225 physic=.true. 226 if (iflag_phys==0.or.iflag_phys==2) physic=.false. 227 224 228 c iday = day_ini+itau/day_step 225 229 c time = REAL(itau-(iday-day_ini)*day_step)/day_step+time_0 … … 322 326 ! Purely Matsuno time stepping 323 327 IF( MOD(itau,iconser) .EQ.0.AND. forward ) conser = .TRUE. 324 IF( MOD(itau,idissip ).EQ.0.AND..NOT.forward ) apdiss = .TRUE. 328 IF( MOD(itau,dissip_period ).EQ.0.AND..NOT.forward ) 329 s apdiss = .TRUE. 325 330 IF( MOD(itau,iphysiq ).EQ.0.AND..NOT.forward 326 s .and. iflag_phys.EQ.1) apphys = .TRUE.331 s .and. physic ) apphys = .TRUE. 327 332 ELSE 328 333 ! Leapfrog/Matsuno time stepping 329 334 IF( MOD(itau ,iconser) .EQ. 0 ) conser = .TRUE. 330 IF( MOD(itau+1,idissip) .EQ. 0 ) apdiss = .TRUE. 331 IF( MOD(itau+1,iphysiq).EQ.0.AND.iflag_phys.EQ.1) apphys=.TRUE. 335 IF( MOD(itau+1,dissip_period).EQ.0 .AND. .NOT. forward ) 336 s apdiss = .TRUE. 337 IF( MOD(itau+1,iphysiq).EQ.0.AND.physic ) apphys=.TRUE. 332 338 END IF 333 339 … … 357 363 c ------------------------------------------------------------- 358 364 359 IF( forward. OR . leapf ) THEN 360 365 ! IF( forward. OR . leapf ) THEN 366 IF((.not.forward).OR. leapf ) THEN 367 ! Ehouarn: gather mass fluxes during backward Matsuno or LF step 361 368 CALL caladvtrac(q,pbaru,pbarv, 362 369 * p, masse, dq, teta, … … 497 504 ENDDO 498 505 ENDDO ! of DO l=1,llm 499 call friction(ucov,vcov,dtvr)500 506 501 if (planet_type.eq."giant") then 502 ! Intrinsic heat flux 503 ! Aymeric -- for giant planets 504 if (ihf .gt. 1.e-6) then 505 !print *, '**** INTRINSIC HEAT FLUX ****', ihf 506 DO ij=1,ip1jmp1 507 teta(ij,1) = teta(ij,1) 508 & + dtvr * aire(ij) * ihf / cpp / masse(ij,1) 509 ENDDO 510 !print *, '**** d teta ' 511 !print *, dtvr * aire(ijb:ije) * ihf / cpp / masse(ijb:ije,1) 512 endif 513 endif 507 if (planet_type.eq."giant") then 508 ! add an intrinsic heat flux at the base of the atmosphere 509 teta(:,1)=teta(:,1)+dtvr*aire(:)*ihf/cpp/masse(:,1) 510 endif 511 512 call friction(ucov,vcov,dtvr) 514 513 515 514
Note: See TracChangeset
for help on using the changeset viewer.