Ignore:
Timestamp:
Dec 20, 2013, 4:04:56 PM (11 years ago)
Author:
emillour
Message:

Mars GCM:
Series of changes to enable running in parallel (using LMDZ.COMMON dynamics);
Current LMDZ.MARS can still notheless be compiled and run in serial mode
"as previously".
Summary of main changes:

  • Main programs (newstart, start2archive, xvik) that used to be in dyn3d have been moved to phymars.
  • dyn3d/control.h is now module control_mod.F90
  • rearanged input/outputs routines everywhere to handle serial/MPI cases. physdem.F => phyredem.F90 , phyetat0.F => phyetat0.F90 ; all read/write routines for startfi files are gathered in module iostart.F90
  • added parallelism related routines init_phys_lmdz.F90, comgeomphy.F90, dimphy.F90, iniphysiq.F90, mod_grid_phy_lmdz.F90, mod_phys_lmdz_mpi_data.F90, mod_phys_lmdz_mpi_transfert.F90, mod_phys_lmdz_omp_data.F90, mod_phys_lmdz_omp_transfert.F90, mod_phys_lmdz_para.F90, mod_phys_lmdz_transfert_para.F90 in phymars and mod_const_mpi.F90 in dyn3d (for compliance with parallel case)
  • created generic routines 'planetwide_maxval' and 'planetwide_minval', in module "planetwide_mod", that enable obtaining the min and max of a field over the whole planet.

EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/eofdump_mod.F90

    r1047 r1130  
    2727      integer,intent(in) :: ngrid ! total number of physics grid points
    2828      integer,intent(in) :: nlayer ! number of atmospheric layers
    29       real*4 u(ngrid,nlayer)
    30       real*4 v(ngrid,nlayer)
    31       real*4 t(ngrid,nlayer)
    32       real*4 rho(ngrid,nlayer)
    33       real*4 ps(ngrid)
     29      real,intent(in) :: u(ngrid,nlayer)
     30      real,intent(in) :: v(ngrid,nlayer)
     31      real,intent(in) :: t(ngrid,nlayer)
     32      real,intent(in) :: rho(ngrid,nlayer)
     33      real,intent(in) :: ps(ngrid)
    3434      integer,save :: count=0
    3535      integer i,j,l, ig
     
    5656          do j=1+eofskip/2,jjm+1,eofskip
    5757            ig = 1+ (j-2)*iim +i
     58#ifdef NC_DOUBLE
     59            write(uedata) (real(u(ig,l)),l=1,nlayer)
     60            write(uedata) (real(v(ig,l)),l=1,nlayer)
     61            write(uedata) (real(t(ig,l)),l=1,nlayer)
     62            write(uedata) (real(rho(ig,l)),l=1,nlayer)
     63            write(uedata) real(ps(ig))
     64#else
    5865            write(uedata) (u(ig,l),l=1,nlayer)
    5966            write(uedata) (v(ig,l),l=1,nlayer)
     
    6168            write(uedata) (rho(ig,l),l=1,nlayer)
    6269            write(uedata) ps(ig)
     70#endif
    6371          enddo
    6472        enddo
     
    112120          if(j.eq.1) stop 'Problem in ineofdump.F'
    113121          if(j.eq.jjm+1) stop 'Problem in ineofdump.F'
     122#ifdef NC_DOUBLE
     123          write(uehead,*) real(long(ig)*180./pi),real(lati(ig)*180./pi)
     124#else
    114125          write(uehead,*) long(ig)*180./pi, lati(ig)*180./pi
     126#endif
    115127!         write(*,*) 'eof grid j=',j,' lat= ', lati(ig)*180./pi
    116128        enddo
    117129      enddo
    118130
     131#ifdef NC_DOUBLE
     132      write(uehead,*) real(aps)
     133      write(uehead,*) real(bps)
     134#else
    119135      write(uehead,*) aps
    120136      write(uehead,*) bps
     137#endif
    121138      close(uehead)
    122139!
Note: See TracChangeset for help on using the changeset viewer.