SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
pack_ch_isba_patchn.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 pack_ch_isba_patch_n (CHI, PKCI, &
7  kmask,ksize,knpatch,kpatch)
8 !##############################################
9 !
10 !
11 !!**** *PACK_CH_ISBA_PATCH_n * - packs chemistry variables
12 !!
13 !! PURPOSE
14 !! -------
15 !
16 !!** METHOD
17 !! ------
18 !!
19 !! REFERENCE
20 !! ---------
21 !!
22 !!
23 !! AUTHOR
24 !! ------
25 !! V. Masson
26 !!
27 !! MODIFICATIONS
28 !! -------------
29 !! Original 01/2004
30 !!------------------------------------------------------------------
31 !
32 !
33 !
34 USE modd_ch_isba_n, ONLY : ch_isba_t
36 !
37 USE yomhook ,ONLY : lhook, dr_hook
38 USE parkind1 ,ONLY : jprb
39 !
40 IMPLICIT NONE
41 !
42 !
43 TYPE(ch_isba_t), INTENT(INOUT) :: chi
44 TYPE(pack_ch_isba_t), INTENT(INOUT) :: pkci
45 !
46 INTEGER, INTENT(IN) :: ksize, kpatch, knpatch
47 !
48 INTEGER, DIMENSION(:), INTENT(IN) :: kmask
49 !
50 INTEGER jj, ji
51 REAL(KIND=JPRB) :: zhook_handle
52 !
53 !------------------------------------------------------------------------
54 !
55 ! Packed surface module variables:
56 !
57 IF (lhook) CALL dr_hook('PACK_CH_ISBA_PATCH_N',0,zhook_handle)
58 !
59 ALLOCATE(pkci%XBLOCK_SIMPLE(ksize,2))
60 !
61 pkci%XP_SOILRC_SO2 => pkci%XBLOCK_SIMPLE(:,1)
62 pkci%XP_SOILRC_O3 => pkci%XBLOCK_SIMPLE(:,2)
63 !
64 ALLOCATE(pkci%XP_DEP(ksize,chi%SVI%NBEQ))
65 !
66 !------------------------------------------------------------------------
67 !
68 IF (knpatch==1) THEN
69  pkci%XP_SOILRC_SO2 (:) = chi%XSOILRC_SO2 (:, 1)
70  pkci%XP_SOILRC_O3 (:) = chi%XSOILRC_O3 (:, 1)
71 ELSE
72  DO jj=1,ksize
73  ji = kmask(jj)
74  pkci%XP_SOILRC_SO2 (jj) = chi%XSOILRC_SO2 (ji, kpatch)
75  pkci%XP_SOILRC_O3 (jj) = chi%XSOILRC_O3 (ji, kpatch)
76  ENDDO
77 END IF
78 IF (lhook) CALL dr_hook('PACK_CH_ISBA_PATCH_N',1,zhook_handle)
79 !
80 !------------------------------------------------------------------------
81 !
82 END SUBROUTINE pack_ch_isba_patch_n
subroutine pack_ch_isba_patch_n(CHI, PKCI, KMASK, KSIZE, KNPATCH, KPATCH)