Changes in / [e31b3b5:ec7fc72] in flexpart.git


Ignore:
Location:
src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • src/ecmwf_mod.f90

    r8ed5f11 rdb712a8  
    2222!*******************************************************************************
    2323!   Include file for calculation of particle trajectories (Program FLEXPART)   *
     24!        This file contains ECMWF specific parameters used in FLEXPART         *
     25!        Note that module name differs from file name.                         *
     26!        The makefile selects either this file, or gfs_mod.f90, depending      *
     27!        on target.                                                            *
    2428!                                                                              *
    25 !       This file contains ECMWF specific parameters used in FLEXPART          *
    26 !       Note that module name differs from file name.                          *
    27 !       The makefile selects either this file, or gfs_mod.f90, depending       *
    28 !       on target.                                                             *
     29!        Author: ESO                                                           *
    2930!                                                                              *
    30 !       Author: ESO                                                            *
    31 !                                                                              *
    32 !       2015                                                                   *
     31!        2015                                                                  *
    3332!                                                                              *
    3433!*******************************************************************************
     
    4544  integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138 !ECMWF new
    4645  integer,parameter :: nxshift=359
     46!  integer,parameter :: nxmax=361,nymax=181,nuvzmax=138,nwzmax=138,nzmax=138 !test BUG
    4747!  integer,parameter :: nxshift=0
    4848
     49!
    4950  !*********************************************
    5051  ! Maximum dimensions of the nested input grids
     
    5455!  integer,parameter :: maxnests=1,nxmaxn=86,nymaxn=31
    5556
    56   ! nxmax,nymax        maximum dimension of wind fields in x and y
    57   !                    direction, respectively
    58   ! nuvzmax,nwzmax     maximum dimension of (u,v) and (w) wind fields in z
    59   !                    direction (for fields on eta levels)
    60   ! nzmax              maximum dimension of wind fields in z direction
    61   !                    for the transformed Cartesian coordinates
    62   ! nxshift            for global grids (in x), the grid can be shifted by
    63   !                    nxshift grid points, in order to accomodate nested
    64   !                    grids, and output grids overlapping the domain "boundary"
    65   !                    nxshift must not be negative; "normal" setting would be 0
    6657
    6758end module wind_mod
  • src/gfs_mod.f90

    r8ed5f11 rb0434e1  
    2222!*******************************************************************************
    2323!   Include file for calculation of particle trajectories (Program FLEXPART)   *
     24!        This file contains GFS specific parameters used in FLEXPART           *
     25!        Note that module name differs from file name.                         *
     26!        The makefile selects either this file, or ecmwf_mod.f90, depending    *
     27!        on target.                                                            *
    2428!                                                                              *
    25 !       This file contains GFS specific parameters used in FLEXPART            *
    26 !       Note that module name differs from file name.                          *
    27 !       The makefile selects either this file, or ecmwf_mod.f90, depending     *
    28 !       on target.                                                             *
     29!        Author: ESO                                                           *
    2930!                                                                              *
    30 !       Author: ESO                                                            *
    31 !                                                                              *
    32 !       2015                                                                   *
     31!        2015                                                                  *
    3332!                                                                              *
    3433!*******************************************************************************
     
    4544  integer,parameter :: nxshift=0     ! for GFS or FNL
    4645
    47   !*********************************************
    48   ! Maximum dimensions of the nested input grids
    49   !*********************************************
    50 
    5146  integer,parameter :: maxnests=1,nxmaxn=361,nymaxn=181
    52 
    53   ! nxmax,nymax        maximum dimension of wind fields in x and y
    54   !                    direction, respectively
    55   ! nuvzmax,nwzmax     maximum dimension of (u,v) and (w) wind fields in z
    56   !                    direction (for fields on eta levels)
    57   ! nzmax              maximum dimension of wind fields in z direction
    58   !                    for the transformed Cartesian coordinates
    59   ! nxshift            for global grids (in x), the grid can be shifted by
    60   !                    nxshift grid points, in order to accomodate nested
    61   !                    grids, and output grids overlapping the domain "boundary"
    62   !                    nxshift must not be negative; "normal" setting would be 0
    6347end module wind_mod
  • src/mpi_mod.f90

    rec7fc72 rec7fc72  
    195195    if (dep_prec==dp) then
    196196      mp_cp = MPI_REAL8
    197       ! TODO: write info message for serial version as well
    198       if (lroot.and.verbosity>0) write(*,*) 'Using double precision for deposition fields'
     197      if (lroot) write(*,*) 'Using double precision for deposition fields'
    199198    else if (dep_prec==sp) then
    200199      mp_cp = MPI_REAL4
    201       if (lroot.and.verbosity>0) write(*,*) 'Using single precision for deposition fields'
     200      if (lroot) write(*,*) 'Using single precision for deposition fields'
    202201    else
    203202      write(*,*) 'ERROR: something went wrong setting MPI real precision'
  • src/par_mod.f90

    r8ed5f11 r1c3c778  
    2828!        1997                                                                  *
    2929!                                                                              *
    30 !        Update 15 August 2013 IP                                              *
    31 !                                                                              *
    32 !        ESO 2016:                                                             *
    33 !          GFS specific parameters moved to gfs_mod.f90                        *
    34 !          ECMWF specific parameters moved to ecmwf_mod.f90                    *
     30!        Last update 15 August 2013 IP                                         *
    3531!                                                                              *
    3632!*******************************************************************************
     
    3834module par_mod
    3935
    40 !************************************************************************
    4136! wind_mod: is gfs_mod.f90 for target gfs, ecmwf_mod.f90 for target ecmwf
    4237!************************************************************************
     
    140135  !*********************************************
    141136 
    142   ! Moved to ecmwf_mod.f90 (for ECMWF) / gfs_mod.f90 (for GFS)
     137  ! nxmax,nymax,nuvzmax,nwzmax,nzmax:
     138  ! Moved to ecmwf.f90 (for ECMWF) / gfs.f90 (GFS)
    143139 
     140
     141  !integer,parameter :: nxmax=361,nymax=181,nuvzmax=92,nwzmax=92,nzmax=92 !FNL XF
     142  !integer,parameter :: nxmax=361,nymax=181,nuvzmax=152,nwzmax=152,nzmax=152 !ECMWF new
     143  !integer,parameter :: nxmax=361,nymax=181,nuvzmax=92,nwzmax=92,nzmax=92 !ECMWF
     144  !integer,parameter :: nxmax=721,nymax=361,nuvzmax=64,nwzmax=64,nzmax=64
     145
     146!  integer,parameter :: nxshift=359 ! for ECMWF
     147  !integer,parameter :: nxshift=0     ! for GFS or FNL
     148
    144149  integer,parameter :: nconvlevmax = nuvzmax-1
    145150  integer,parameter :: na = nconvlevmax+1
     151
     152  ! moved to gfs_mod.f90 / ecmwf_mod.f90
     153  !
     154  ! nxmax,nymax        maximum dimension of wind fields in x and y
     155  !                    direction, respectively
     156  ! nuvzmax,nwzmax     maximum dimension of (u,v) and (w) wind fields in z
     157  !                    direction (for fields on eta levels)
     158  ! nzmax              maximum dimension of wind fields in z direction
     159  !                    for the transformed Cartesian coordinates
     160  ! nxshift            for global grids (in x), the grid can be shifted by
     161  !                    nxshift grid points, in order to accomodate nested
     162  !                    grids, and output grids overlapping the domain "boundary"
     163  !                    nxshift must not be negative; "normal" setting would be 0
    146164
    147165  ! ntracermax         maximum number of tracer species in convection
    148166  ! nconvlevmax        maximum number of levels for convection
    149167  ! na                 parameter used in Emanuel's convect subroutine
     168
     169
     170  !*********************************************
     171  ! Maximum dimensions of the nested input grids
     172  !*********************************************
     173
     174  !integer,parameter :: maxnests=0, nxmaxn=0, nymaxn=0
     175  !integer,parameter :: maxnests=0,nxmaxn=351,nymaxn=351 !ECMWF
     176
     177  !integer,parameter :: maxnests=1, nxmaxn=201, nymaxn=161 ! FNL XF
     178  ! maxnests                maximum number of nested grids
     179  ! nxmaxn,nymaxn           maximum dimension of nested wind fields in
     180  !                         x and y direction, respectively
    150181
    151182
     
    186217  !**************************************************
    187218
    188   integer,parameter :: maxpart=10000
     219  integer,parameter :: maxpart=40000000
    189220  integer,parameter :: maxspec=1
    190221  real,parameter :: minmass=0.0001
  • src/timemanager_mpi.f90

    rec7fc72 rec7fc72  
    228228    if (mp_measure_time.and..not.(lmpreader.and.lmp_use_reader)) call mpif_mtime('getfields',0)
    229229
    230 ! Two approaches to MPI getfields is implemented:
    231230! Version 1 (lmp_sync=.true.) uses a read-ahead process where send/recv is done
    232231! in sync at start of each new field time interval
    233 !
    234 ! Version 2 (lmp_sync=.false.) is for holding three fields in memory. Uses a
    235 ! read-ahead process where sending/receiving of the 3rd fields is done in
    236 ! the background in parallel with performing computations with fields 1&2
    237 !********************************************************************************
    238 
    239232    if (lmp_sync.and.lmp_use_reader.and.memstat.gt.0) then
    240233      call mpif_gf_send_vars(memstat)
    241234      if (numbnests>0) call mpif_gf_send_vars_nest(memstat)
    242 ! Version 2  (lmp_sync=.false.) is also used whenever 2 new fields are
     235! Version 2  (lmp_sync=.false., see below) is also used whenever 2 new fields are
    243236! read (as at first time step), in which case async send/recv is impossible.
    244237    else if (.not.lmp_sync.and.lmp_use_reader.and.memstat.ge.32) then
     
    247240    end if
    248241
     242! Version 2 (lmp_sync=.false.) is for holding three fields in memory. Uses a
     243! read-ahead process where sending/receiving of the 3rd fields is done in
     244! the background in parallel with performing computations with fields 1&2
     245!********************************************************************************
    249246    if (.not.lmp_sync) then
    250247   
    251 ! Reader process:
     248! READER PROCESS:
    252249      if (memstat.gt.0..and.memstat.lt.32.and.lmp_use_reader.and.lmpreader) then
    253250        if (mp_dev_mode) write(*,*) 'Reader process: calling mpif_gf_send_vars_async'
     
    255252      end if
    256253
    257 ! Completion check:
     254! COMPLETION CHECK:
    258255! Issued at start of each new field period.
    259256      if (memstat.ne.0.and.memstat.lt.32.and.lmp_use_reader) then
     
    261258      end if
    262259
    263 ! Recveiving process(es):
    264 ! eso TODO: at this point we do not know if clwc/ciwc will be available
    265 ! at next time step. Issue receive request anyway, cancel at mpif_gf_request
     260! RECVEIVING PROCESS(ES):
     261      ! eso TODO: at this point we do not know if clwc/ciwc will be available
     262      ! at next time step. Issue receive request anyway, cancel at mpif_gf_request
    266263      if (memstat.gt.0.and.lmp_use_reader.and..not.lmpreader) then
    267264        if (mp_dev_mode) write(*,*) 'Receiving process: calling mpif_gf_send_vars_async. PID: ', mp_pid
Note: See TracChangeset for help on using the changeset viewer.
hosted by ZAMG