SURFEX v8.1
General documentation of Surfex
pgd_grid_io_init.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE pgd_grid_io_init(HPROGRAM,UG,KGRID_PAR,PGRID_PAR,HGRID,ORECT,KIMAX,KJMAX,KDXRATIO,KDYRATIO)
7 ! ######################################
8 !!
9 !! PURPOSE
10 !! -------
11 !!
12 !!
13 !! METHOD
14 !! ------
15 !!
16 !! EXTERNAL
17 !! --------
18 !!
19 !!
20 !! IMPLICIT ARGUMENTS
21 !! ------------------
22 !!
23 !!
24 !! REFERENCE
25 !! ---------
26 !!
27 !! AUTHOR
28 !! ------
29 !!
30 !! V. Masson Meteo-France
31 !!
32 !! MODIFICATION
33 !! ------------
34 !!
35 !! Original 13/10/03
36 !! M.Moge 11/02/15 adding MODULE MODI_PGD_GRID_IO_INIT and INTERFACE + modif of the input args
37 !! M.Moge 11/02/15 change in the input arguments : passing KDXRATIO,KDYRATIO
38 !----------------------------------------------------------------------------
39 !
40 !* 0. DECLARATION
41 ! -----------
42 !
44 !
45 USE yomhook ,ONLY : lhook, dr_hook
46 USE parkind1 ,ONLY : jprb
47 !
48 #ifdef SFX_MNH
49 USE modi_pgd_grid_io_init_mnh
50 #endif
51 IMPLICIT NONE
52 !
53 !* 0.1 Declaration of dummy arguments
54 ! ------------------------------
55 !
56  CHARACTER(LEN=6), INTENT(IN) :: HPROGRAM ! program calling READ_PGD
57 !
58 TYPE(surf_atm_grid_t), INTENT(INOUT) :: UG
59 !
60  INTEGER, OPTIONAL, INTENT(IN) :: KGRID_PAR ! size of PGRID_PAR
61  REAL, DIMENSION(:), OPTIONAL, INTENT(IN) :: PGRID_PAR ! grid parameters
62  CHARACTER(LEN=10), INTENT(IN), OPTIONAL :: HGRID
63  LOGICAL, INTENT(IN), OPTIONAL :: ORECT
64 ! if KIMAX,KJMAX,KDXRATIO,KDYRATIO present, this means we are in PREP_PGD, and we only initialise the child model,
65 ! using a father model read from a file and previously initialized with INI_PARAZ_ll
66  INTEGER, INTENT(IN), OPTIONAL :: KIMAX
67  INTEGER, INTENT(IN), OPTIONAL :: KJMAX
68  INTEGER, INTENT(IN), OPTIONAL :: KDXRATIO
69  INTEGER, INTENT(IN), OPTIONAL :: KDYRATIO
70 !
71 REAL(KIND=JPRB) :: ZHOOK_HANDLE
72 !
73 !
74 !* 0.2 Declaration of local variables
75 ! ------------------------------
76 !
77 !------------------------------------------------------------------------------
78 !
79 IF (lhook) CALL dr_hook('PGD_GRID_IO_INIT',0,zhook_handle)
80 IF (hprogram=='MESONH') THEN
81  IF (PRESENT(kgrid_par).AND.PRESENT(pgrid_par)) THEN
82 #ifdef MNH_PARALLEL
83  IF ( PRESENT(kimax) .AND. PRESENT(kjmax) .AND. PRESENT(hgrid) .AND. PRESENT(orect) &
84  .AND. PRESENT(kdxratio) .AND. PRESENT(kdyratio) ) THEN
85  CALL pgd_grid_io_init_mnh(ug,kgrid_par,pgrid_par,hgrid,orect,kimax,kjmax,kdxratio,kdyratio)
86  ELSE
87  CALL pgd_grid_io_init_mnh(ug,kgrid_par,pgrid_par)
88  ENDIF
89 #endif
90  ELSE
91 #ifndef MNH_PARALLEL
92 #ifdef SFX_MNH
93  CALL pgd_grid_io_init_mnh(ug)
94 #endif
95 #endif
96  ENDIF
97 END IF
98 IF (lhook) CALL dr_hook('PGD_GRID_IO_INIT',1,zhook_handle)
99 !
100 !-------------------------------------------------------------------------------
101 !
102 END SUBROUTINE pgd_grid_io_init
integer, parameter jprb
Definition: parkind1.F90:32
subroutine pgd_grid_io_init(HPROGRAM, UG, KGRID_PAR, PGRID_PAR, HGRID,
logical lhook
Definition: yomhook.F90:15