source: trunk/LMDZ.MARS/libf/phy_common/abort_physic.F90 @ 1944

Last change on this file since 1944 was 1682, checked in by emillour, 8 years ago

All GCMs: set things up to enable pluging physics with dynamico

  • dyn3d
  • gcm.F90 : move I/O initialization (dates) to be done before physics

initialization

  • dyn3dpar
  • gcm.F : move I/O initialization (dates) to be done before physics

initialization

  • dynphy_lonlat:
  • inigeomphy_mod.F90 : add ind_cell_glo computation and transfer

to init_geometry

  • phy_common:
  • geometry_mod.F90 : add ind_cell_glo module variable to store global

column index

  • print_control_mod.F90 : make initialization occur via init_print_control_mod

to avoid circular module dependencies

  • init_print_control_mod.F90 : added to initialize print_control_mod module

variables

  • mod_phys_lmdz_mpi_data.F90 : use print_control_mod (rather than iniprint.h)
  • mod_phys_lmdz_para.F90 : use print_control_mod (rather than iniprint.h)
  • mod_phys_lmdz_omp_data.F90 : add is_omp_master (alias of is_omp_root) module

variable and use print_control_mod (rather than
iniprint.h)

  • physics_distribution_mod.F90 : add call to init_dimphy in

init_physics_distribution

  • xios_writefield.F90 : generic routine to output field with XIOS (for debug)
  • misc:
  • handle_err_m.F90 : call abort_physic, rather than abort_gcm
  • wxios.F90 : updates to enable unstructured grids

set module variable g_ctx_name to "LMDZ"
wxios_init(): remove call to wxios_context_init
wxios_context_init(): call xios_context_initialize with COMM_LMDZ_PHY
add routine wxios_set_context() to get handle and set context to XIOS
wxios_domain_param(): change arguments and generate the domain in-place
add wxios_domain_param_unstructured(): generate domain for unstructured case

NB: access is via "domain group" (whereas it is via "domain" in

wxios_domain_param)

  • dynphy_lonlat/phy[std|mars|venus|titan]:
  • iniphysiq_mod.F90 : Remove call to init_dimphy (which is now done in

phy_common/physics_distribution_mod.F90)

EM

File size: 1.3 KB
Line 
1! $Id: $
2      SUBROUTINE abort_physic(modname, message, ierr)
3     
4#ifdef CPP_IOIPSL
5      USE IOIPSL
6#else
7! if not using IOIPSL, we still need to use (a local version of) getin_dump
8      USE ioipsl_getincom
9#endif
10      USE mod_phys_lmdz_para
11      USE print_control_mod, ONLY: lunout
12      IMPLICIT NONE
13!
14! Stops the simulation cleanly, closing files and printing various
15! comments
16!
17!  Input: modname = name of calling program
18!         message = stuff to print
19!         ierr    = severity of situation ( = 0 normal )
20
21      character(len=*), intent(in):: modname
22      integer ierr, ierror_mpi
23      character(len=*), intent(in):: message
24
25      write(lunout,*) 'in abort_physic'
26#ifdef CPP_IOIPSL
27!$OMP MASTER
28      call histclo
29      call restclo
30      if (mpi_rank .eq. 0) then
31         call getin_dump
32      endif
33!$OMP END MASTER
34#endif
35
36      write(lunout,*) 'Stopping in ', modname
37      write(lunout,*) 'Reason = ',message
38      if (ierr .eq. 0) then
39        write(lunout,*) 'Everything is cool'
40      else
41        write(lunout,*) 'Houston, we have a problem, ierr = ', ierr
42#ifdef CPP_MPI
43!$OMP CRITICAL (MPI_ABORT_PHYSIC)
44        call MPI_ABORT(COMM_LMDZ_PHY, 1, ierror_mpi)
45!$OMP END CRITICAL (MPI_ABORT_PHYSIC)
46#else
47        stop 1
48#endif         
49      endif
50      END
Note: See TracBrowser for help on using the repository browser.