Changeset 67 for trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2
- Timestamp:
- Feb 16, 2011, 7:28:48 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F
r65 r67 209 209 !************************************************** 210 210 ! IMPORTANT: pour travailler avec grid nesting 211 ! mieux vaut ne pas utiliser de SAVE ??211 ! une dimension supplementaire liee au nest 212 212 !************************************************** 213 REAL, DIMENSION(: ), ALLOCATABLE, SAVE :: &213 REAL, DIMENSION(:,:), ALLOCATABLE, SAVE :: & 214 214 dp_save 215 REAL, DIMENSION(:,: ), ALLOCATABLE, SAVE :: &215 REAL, DIMENSION(:,:,:), ALLOCATABLE, SAVE :: & 216 216 du_save, dv_save, dt_save 217 REAL, DIMENSION(:,:,: ), ALLOCATABLE, SAVE :: &217 REAL, DIMENSION(:,:,:,:), ALLOCATABLE, SAVE :: & 218 218 dq_save 219 219 … … 327 327 !firstcall=.false. ! just in case you'd want to get rid of the physics 328 328 test=0 329 ALLOCATE(dp_save(ngrid)) !! here are the arrays that would be useful to save physics tendencies 330 ALLOCATE(du_save(ngrid,nlayer)) 331 ALLOCATE(dv_save(ngrid,nlayer)) 332 ALLOCATE(dt_save(ngrid,nlayer)) 333 ALLOCATE(dq_save(ngrid,nlayer,nq)) 334 dp_save(:)=0. !! initialize these arrays ... 335 du_save(:,:)=0. 336 dv_save(:,:)=0. 337 dt_save(:,:)=0. 338 dq_save(:,:,:)=0. 329 330 PRINT *, 'ALLOCATED dp_save ???', ALLOCATED( dp_save ), id 331 IF( .NOT. ALLOCATED( dp_save ) ) THEN 332 PRINT *, '**** check **** OK I ALLOCATE one save ARRAY for all NESTS ', max_dom, id 333 !! here are the arrays that would be useful to save physics tendencies 334 ALLOCATE(dp_save(ngrid,max_dom)) 335 ALLOCATE(du_save(ngrid,nlayer,max_dom)) 336 ALLOCATE(dv_save(ngrid,nlayer,max_dom)) 337 ALLOCATE(dt_save(ngrid,nlayer,max_dom)) 338 ALLOCATE(dq_save(ngrid,nlayer,nq,max_dom)) 339 dp_save(:,:)=0. !! initialize these arrays ... 340 du_save(:,:,:)=0. 341 dv_save(:,:,:)=0. 342 dt_save(:,:,:)=0. 343 dq_save(:,:,:,:)=0. 344 ENDIF 345 339 346 !! put here some general information you'd like to print just once 340 347 print *, 'TILES: ', i_start,i_end, j_start, j_end ! numbers for simple runs, arrays for parallel runs … … 411 418 412 419 print *, 'check dynamics' 413 print *, 'u', MAXVAL(u), MINVAL(u) 414 print *, 'v', MAXVAL(v), MINVAL(v) 415 print *, 'w', MAXVAL(w), MINVAL(w) 416 print *, 't', MAXVAL(t), MINVAL(t, MASK = t > 0) 420 !!! in some cases, weird values are displayed 421 !!! despite the fact that outputs are OK... 422 !print *, 'u', MAXVAL(u), MINVAL(u) 423 !print *, 'v', MAXVAL(v), MINVAL(v) 424 !print *, 'w', MAXVAL(w), MINVAL(w) 425 !print *, 't', MAXVAL(t), MINVAL(t, MASK = t > 0) 426 print *, 'u', u(10,1,10), u(10,15,10) 427 print *, 'v', v(10,1,10), v(10,15,10) 428 print *, 'w', w(10,1,10), w(10,15,10) 429 print *, 't', t(10,1,10), t(10,15,10) 417 430 418 431 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 494 507 IF (test.NE.0) THEN 495 508 print *,'** Mars ** NO CALL FOR PHYSICS, go to next step...',test 496 pdpsrf(:)=dp_save(:) 497 pdu(:,:)=du_save(:,:) 498 pdv(:,:)=dv_save(:,:) 499 pdt(:,:)=dt_save(:,:) 500 pdq(:,:,:)=dq_save(:,:,:) 501 !!!!!TEST TEST 502 !!!!!pour le nesting c est mieux de les mettre dans la physique, les SAVE 509 pdpsrf(:)=dp_save(:,id) 510 pdu(:,:)=du_save(:,:,id) 511 pdv(:,:)=dv_save(:,:,id) 512 pdt(:,:)=dt_save(:,:,id) 513 pdq(:,:,:)=dq_save(:,:,:,id) 503 514 !!! 504 515 !!! BIG LOOP : 2. calculate physical tendencies … … 1004 1015 ! PHYSIQ TENDENCIES ARE SAVED TO BE SPLIT WITHIN INTERMEDIATE DYNAMICAL TIMESTEPS ! 1005 1016 !---------------------------------------------------------------------------------! 1006 dp_save(: )=pdpsrf(:)1007 du_save(:,: )=pdu(:,:)1008 dv_save(:,: )=pdv(:,:)1009 dt_save(:,: )=pdt(:,:)1010 dq_save(:,:,: )=pdq(:,:,:)1017 dp_save(:,id)=pdpsrf(:) 1018 du_save(:,:,id)=pdu(:,:) 1019 dv_save(:,:,id)=pdv(:,:) 1020 dt_save(:,:,id)=pdt(:,:) 1021 dq_save(:,:,:,id)=pdq(:,:,:) 1011 1022 1012 1023 ENDIF call_physics … … 1113 1124 PRINT *, '** Mars ** Results from LMD physics' 1114 1125 PRINT *, 'u non-zero tendencies' 1115 PRINT *, 'max',MAXVAL(RUBLTEN, MASK=RUBLTEN/=0.),& 1116 ' at',MAXLOC(RUBLTEN, MASK=RUBLTEN/=0.) 1117 PRINT *, 'min',MINVAL(RUBLTEN, MASK=RUBLTEN/=0.),& 1118 ' at',MINLOC(RUBLTEN, MASK=RUBLTEN/=0.) 1126 !!PRINT *, 'max',MAXVAL(RUBLTEN, MASK=RUBLTEN/=0.),& 1127 !! ' at',MAXLOC(RUBLTEN, MASK=RUBLTEN/=0.) 1128 !!PRINT *, 'min',MINVAL(RUBLTEN, MASK=RUBLTEN/=0.),& 1129 !! ' at',MINLOC(RUBLTEN, MASK=RUBLTEN/=0.) 1130 PRINT *, RUBLTEN(10,1,10), RUBLTEN(10,15,10) 1119 1131 PRINT *, 'v non-zero tendencies' 1120 PRINT *, 'max',MAXVAL(RVBLTEN, MASK=RVBLTEN/=0.),& 1121 ' at',MAXLOC(RVBLTEN, MASK=RVBLTEN/=0.) 1122 PRINT *, 'min',MINVAL(RVBLTEN, MASK=RVBLTEN/=0.),& 1123 ' at',MINLOC(RVBLTEN, MASK=RVBLTEN/=0.) 1132 !!PRINT *, 'max',MAXVAL(RVBLTEN, MASK=RVBLTEN/=0.),& 1133 !! ' at',MAXLOC(RVBLTEN, MASK=RVBLTEN/=0.) 1134 !!PRINT *, 'min',MINVAL(RVBLTEN, MASK=RVBLTEN/=0.),& 1135 !! ' at',MINLOC(RVBLTEN, MASK=RVBLTEN/=0.) 1136 PRINT *, RVBLTEN(10,1,10), RVBLTEN(10,15,10) 1124 1137 !!! STOP IF CRASH 1125 1138 !IF (MAXVAL(RUBLTEN, MASK=RUBLTEN/=0.) == 0.) STOP
Note: See TracChangeset
for help on using the changeset viewer.