SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
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 :: YSURF_CUR => NULL()
16 !$OMP THREADPRIVATE(YSURF_CUR)
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 ysurf_cur => 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 !
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(ysurf_cur)) nullify(ysurf_cur)
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:5
subroutine surfex_deallo(YDSURFEX)
subroutine surfex_deallo_list
subroutine goto_model(KMODEL)
subroutine surfex_alloc_list(KMODEL)