Ignore:
Timestamp:
Feb 19, 2011, 1:40:07 AM (14 years ago)
Author:
aslmd
Message:

LMD_MM_MARS: ajout d'une option -DSPECIAL_NEST_SAVE qui reprend les modifications de la revision 67 pour runs de nest sur iDataplex avec IFORT+MPI. l'option doit rester inactive pour les runs nestes ferme planeto PGI+MPI car l experience montre que les modifications de la revision 67 (maintenant incluses dans l'option SPECIAL_NEST_SAVE dans module_lmd_driver.F) cassent le fonctionnement dans ce cas.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/mesoscale/LMD_MM_MARS/SRC/WRFV2/phys/module_lmd_driver.F

    r67 r70  
    209209!**************************************************
    210210! IMPORTANT: pour travailler avec grid nesting
    211 !  une dimension supplementaire liee au nest
     211! --- deux comportements distincts du save
     212! ... ex1: ferme planeto avec PGF+MPI: standard
     213! ... ex2: iDataPlex avec IFORT+MPI: SPECIAL_NEST_SAVE
    212214!**************************************************
     215#ifdef SPECIAL_NEST_SAVE
     216      !  une dimension supplementaire liee au nest
    213217      REAL, DIMENSION(:,:), ALLOCATABLE, SAVE :: &
    214218             dp_save
     
    217221      REAL, DIMENSION(:,:,:,:), ALLOCATABLE, SAVE :: &
    218222             dq_save     
     223#else
     224      REAL, DIMENSION(:), ALLOCATABLE, SAVE :: &
     225             dp_save
     226      REAL, DIMENSION(:,:), ALLOCATABLE, SAVE :: &
     227             du_save, dv_save, dt_save
     228      REAL, DIMENSION(:,:,:), ALLOCATABLE, SAVE :: &
     229             dq_save     
     230#endif
    219231
    220232!!!IDEALIZED IDEALIZED
     
    327339      !firstcall=.false. ! just in case you'd want to get rid of the physics
    328340test=0
    329 
     341#ifdef SPECIAL_NEST_SAVE
    330342PRINT *, 'ALLOCATED dp_save ???', ALLOCATED( dp_save ), id
    331343IF( .NOT. ALLOCATED( dp_save  ) ) THEN
     
    343355   dq_save(:,:,:,:)=0.
    344356ENDIF
    345 
     357#else
     358ALLOCATE(dp_save(ngrid)) !! here are the arrays that would be useful to save physics tendencies
     359ALLOCATE(du_save(ngrid,nlayer))
     360ALLOCATE(dv_save(ngrid,nlayer))
     361ALLOCATE(dt_save(ngrid,nlayer))     
     362ALLOCATE(dq_save(ngrid,nlayer,nq))
     363dp_save(:)=0.    !! initialize these arrays ...
     364du_save(:,:)=0.
     365dv_save(:,:)=0.
     366dt_save(:,:)=0.   
     367dq_save(:,:,:)=0.
     368#endif
    346369!! put here some general information you'd like to print just once
    347370    print *, 'TILES: ', i_start,i_end, j_start, j_end  ! numbers for simple runs, arrays for parallel runs
     
    507530IF (test.NE.0) THEN
    508531print *,'** Mars ** NO CALL FOR PHYSICS, go to next step...',test
     532#ifdef SPECIAL_NEST_SAVE
    509533pdpsrf(:)=dp_save(:,id)
    510534pdu(:,:)=du_save(:,:,id)
     
    512536pdt(:,:)=dt_save(:,:,id)
    513537pdq(:,:,:)=dq_save(:,:,:,id)
     538#else
     539pdpsrf(:)=dp_save(:)
     540pdu(:,:)=du_save(:,:)
     541pdv(:,:)=dv_save(:,:)
     542pdt(:,:)=dt_save(:,:)
     543pdq(:,:,:)=dq_save(:,:,:)
     544#endif
    514545!!!
    515546!!! BIG LOOP : 2. calculate physical tendencies
     
    10151046! PHYSIQ TENDENCIES ARE SAVED TO BE SPLIT WITHIN INTERMEDIATE DYNAMICAL TIMESTEPS !
    10161047!---------------------------------------------------------------------------------!
     1048#ifdef SPECIAL_NEST_SAVE
    10171049dp_save(:,id)=pdpsrf(:)
    10181050du_save(:,:,id)=pdu(:,:)
     
    10201052dt_save(:,:,id)=pdt(:,:)
    10211053dq_save(:,:,:,id)=pdq(:,:,:)
     1054#else
     1055dp_save(:)=pdpsrf(:)
     1056du_save(:,:)=pdu(:,:)
     1057dv_save(:,:)=pdv(:,:)
     1058dt_save(:,:)=pdt(:,:)
     1059dq_save(:,:,:)=pdq(:,:,:)
     1060#endif
    10221061
    10231062ENDIF call_physics
Note: See TracChangeset for help on using the changeset viewer.