source: dynamico_lmdz/simple_physics/phyparam/physics/writefield_mod.F90 @ 4225

Last change on this file since 4225 was 4223, checked in by dubos, 6 years ago

simple_physics : cleanup phyparam and iniphyparam

File size: 1.5 KB
Line 
1MODULE writefield_mod
2  IMPLICIT NONE
3  PRIVATE
4  SAVE
5
6  INTERFACE
7     SUBROUTINE plugin_writefield1(name,longname,unit, var)
8       CHARACTER(*), INTENT(IN) :: name, longname, unit
9       REAL, INTENT(IN)         :: var(:)
10     END SUBROUTINE plugin_writefield1
11     SUBROUTINE plugin_writefield2(name,longname,unit, var)
12       CHARACTER(*), INTENT(IN) :: name, longname, unit
13       REAL, INTENT(IN)         :: var(:,:)
14     END SUBROUTINE plugin_writefield2
15  END INTERFACE
16
17  PROCEDURE(plugin_writefield1), POINTER :: writefield1_plugin => writefield1_unset
18  PROCEDURE(plugin_writefield2), POINTER :: writefield2_plugin => writefield2_unset
19
20  INTERFACE writefield
21     PROCEDURE writefield1_plugin, writefield2_plugin
22  END INTERFACE writefield
23
24  PUBLIC :: writefield, writefield1_plugin, writefield2_plugin
25
26CONTAINS
27
28  SUBROUTINE writefield2_unset(name, longname, unit, var)
29    CHARACTER(*), INTENT(IN) :: name, longname, unit
30    REAL, INTENT(IN)         :: var(:,:)
31    PRINT *, 'FATAL : plugin writefield2 not provided by the driver program'
32    PRINT *, '        see writefield.F90'
33    STOP
34  END SUBROUTINE writefield2_unset
35
36  SUBROUTINE writefield1_unset(name, longname, unit, var)
37    CHARACTER(*), INTENT(IN) :: name, longname, unit
38    REAL, INTENT(IN)         :: var(:)
39    PRINT *, 'FATAL : plugin writefield1 not provided by the driver program'
40    PRINT *, '        see writefield.F90'
41    STOP
42  END SUBROUTINE writefield1_unset
43 
44END MODULE writefield_mod
Note: See TracBrowser for help on using the repository browser.