SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
unpack_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 unpack_ch_isba_patch_n (CHI, PKCI, &
7  kmask,ksize,knpatch,kpatch)
8 !##############################################
9 !
10 !!**** *UNPACK_CH_ISBA_PATCH_n* - unpacks ISBA prognostic variables
11 !!
12 !! PURPOSE
13 !! -------
14 !
15 !!** METHOD
16 !! ------
17 !!
18 !! REFERENCE
19 !! ---------
20 !!
21 !!
22 !! AUTHOR
23 !! ------
24 !! A. Boone
25 !!
26 !! MODIFICATIONS
27 !! -------------
28 !! Original 01/2004
29 !!------------------------------------------------------------------
30 !
31 !
32 !
33 USE modd_ch_isba_n, ONLY : ch_isba_t
35 !
36 USE modd_surf_par, ONLY : xundef
37 !
38 !
39 USE yomhook ,ONLY : lhook, dr_hook
40 USE parkind1 ,ONLY : jprb
41 !
42 IMPLICIT NONE
43 !
44 !
45 TYPE(ch_isba_t), INTENT(INOUT) :: chi
46 TYPE(pack_ch_isba_t), INTENT(INOUT) :: pkci
47 !
48 INTEGER, INTENT(IN) :: ksize, kpatch, knpatch
49 !
50 INTEGER, DIMENSION(:), INTENT(IN) :: kmask
51 !
52 INTEGER :: jj, ji, jsv
53 REAL(KIND=JPRB) :: zhook_handle
54 !
55 !
56 ! Only save values for patches which are in use:
57 !
58 IF (lhook) CALL dr_hook('UNPACK_CH_ISBA_PATCH_N',0,zhook_handle)
59  chi%XDEP(:,:,kpatch) = xundef
60 !
61 IF (knpatch==1) THEN
62  DO jsv=1,SIZE(chi%XDEP,2)
63  chi%XDEP(:,jsv,kpatch) = pkci%XP_DEP (:,jsv)
64  END DO
65 
66 ELSE
67  DO jsv=1,SIZE(chi%XDEP,2)
68  DO jj=1,ksize
69  ji = kmask(jj)
70  chi%XDEP(ji,jsv,kpatch) = pkci%XP_DEP (jj,jsv)
71  END DO
72  END DO
73 END IF
74 !
75 pkci%XP_SOILRC_SO2 => null()
76 pkci%XP_SOILRC_O3 => null()
77 !
78 DEALLOCATE(pkci%XBLOCK_SIMPLE)
79 DEALLOCATE(pkci%XP_DEP)
80 !
81 IF (lhook) CALL dr_hook('UNPACK_CH_ISBA_PATCH_N',1,zhook_handle)
82 !
83 END SUBROUTINE unpack_ch_isba_patch_n
subroutine unpack_ch_isba_patch_n(CHI, PKCI, KMASK, KSIZE, KNPATCH, KPATCH)