source: trunk/LMDZ.COMMON/libf/misc/handle_err_m.F90 @ 3452

Last change on this file since 3452 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.2 KB
Line 
1! $Id$
2module handle_err_m
3
4  implicit none
5
6contains
7
8  subroutine handle_err(message, ncerr, ncid, varid)
9
10    use netcdf, only: nf90_strerror, nf90_noerr, nf90_close
11
12    character(len=*), intent(in):: message
13    ! (should include name of calling procedure)
14
15    integer, intent(in):: ncerr
16
17    integer, intent(in), optional :: ncid
18    ! (Provide this argument if you want "handle_err" to try to close
19    ! the file.)
20
21    integer, intent(in), optional :: varid
22
23    ! Variable local to the procedure:
24    integer ncerr_close
25
26    !-------------------
27
28    if (ncerr /= nf90_noerr) then
29       print *, message, ":"
30       if (present(varid)) print *, "varid = ", varid
31       print *, trim(nf90_strerror(ncerr))
32       if (present(ncid)) then
33          ! Try to close, to leave the file in a consistent state:
34          ncerr_close = nf90_close(ncid)
35          ! (do not call "nf95_close", we do not want to recurse)
36          if (ncerr_close /= nf90_noerr) then
37             print *, "nf90_close:"
38             print *, trim(nf90_strerror(ncerr_close))
39          end if
40       end if
41       call abort_physic("NetCDF95 handle_err", "", 1)
42    end if
43
44  end subroutine handle_err
45
46end module handle_err_m
Note: See TracBrowser for help on using the repository browser.