SURFEX v8.1
General documentation of Surfex
modd_off_surfexn.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.
6 !
7 USE yomhook ,ONLY : lhook, dr_hook
8 USE parkind1 ,ONLY : jprb
9 !
10 USE modd_surfex_n, ONLY : surfex_t
11 !
13 !
14 TYPE(surfex_t), ALLOCATABLE, TARGET, SAVE :: ysurf_list(:)
15 TYPE(surfex_t), POINTER :: ysc => null()
16 !$OMP THREADPRIVATE(YSC)
17 !
18 CONTAINS
19 !
20 SUBROUTINE goto_model(KMODEL)
21 
22 INTEGER, INTENT(IN) :: KMODEL
23 REAL(KIND=JPRB) :: ZHOOK_HANDLE
24 IF (lhook) CALL dr_hook("MODD_OFF_SURFEX_n:GOTO_MODEL",0,zhook_handle)
25 !
26 ysc => ysurf_list(kmodel)
27 icurrent_model = kmodel
28 !
29 IF (lhook) CALL dr_hook("MODD_OFF_SURFEX_n:GOTO_MODEL",1,zhook_handle)
30 !
31 END SUBROUTINE goto_model
32 !
33 SUBROUTINE surfex_alloc_list(KMODEL)
34 !
35 USE modi_surfex_alloc
36 !
37 IMPLICIT NONE
38 !
39 INTEGER, INTENT(IN) :: KMODEL
40 INTEGER :: J
41 REAL(KIND=JPRB) :: ZHOOK_HANDLE
42 IF (lhook) CALL dr_hook("MODD_OFF_SURFEX_n:SURFEX_ALLOC_LIST",0,zhook_handle)
43 !
45 !
46 ALLOCATE(ysurf_list(kmodel))
47 !
48 DO j = 1,kmodel
49  CALL surfex_alloc(ysurf_list(j))
50 ENDDO
51 !
52 IF (lhook) CALL dr_hook("MODD_OFF_SURFEX_n:SURFEX_ALLOC_LIST",1,zhook_handle)
53 !
54 END SUBROUTINE surfex_alloc_list
55 !
56 SUBROUTINE surfex_deallo_list
57 !
58 USE modi_surfex_deallo
59 !
60 INTEGER :: J
61 REAL(KIND=JPRB) :: ZHOOK_HANDLE
62 IF (lhook) CALL dr_hook("MODD_OFF_SURFEX_n:SURFEX_DEALLO_LIST",0,zhook_handle)
63 !
64 DO j=1,SIZE(ysurf_list)
65  CALL surfex_deallo(ysurf_list(j))
66 ENDDO
67 !
68 IF (ASSOCIATED(ysc)) NULLIFY(ysc)
69 IF (ALLOCATED(ysurf_list)) DEALLOCATE(ysurf_list)
70 !
71 IF (lhook) CALL dr_hook("MODD_OFF_SURFEX_n:SURFEX_DEALLO_LIST",1,zhook_handle)
72 !
73 END SUBROUTINE surfex_deallo_list
74 !
75 END MODULE modd_off_surfex_n
subroutine surfex_alloc(YDSURFEX)
Definition: surfex_alloc.F90:6
subroutine surfex_deallo(YDSURFEX)
subroutine goto_model(KMODEL)
subroutine surfex_deallo_list
integer, parameter jprb
Definition: parkind1.F90:32
type(surfex_t), pointer ysc
logical lhook
Definition: yomhook.F90:15
type(surfex_t), dimension(:), allocatable, target, save ysurf_list
subroutine surfex_alloc_list(KMODEL)