[270] | 1 | MODULE IAXIS |
---|
| 2 | USE, INTRINSIC :: ISO_C_BINDING |
---|
| 3 | USE AXIS_INTERFACE |
---|
| 4 | USE AXISGROUP_INTERFACE |
---|
| 5 | |
---|
| 6 | TYPE XAxisHandle |
---|
| 7 | INTEGER(kind = C_INTPTR_T) :: daddr |
---|
| 8 | END TYPE XAxisHandle |
---|
| 9 | |
---|
| 10 | TYPE XAxisGroupHandle |
---|
| 11 | INTEGER(kind = C_INTPTR_T) :: daddr |
---|
| 12 | END TYPE XAxisGroupHandle |
---|
| 13 | |
---|
| 14 | !---------------------------------------------------------------------------- |
---|
| 15 | INTERFACE set_axis_attributes |
---|
| 16 | MODULE PROCEDURE set_axis_attributes_id,set_axis_attributes_hdl |
---|
| 17 | END INTERFACE |
---|
| 18 | |
---|
| 19 | INTERFACE set_axis_group_attributes |
---|
| 20 | MODULE PROCEDURE set_axisgroup_attributes_id,set_axisgroup_attributes_hdl |
---|
| 21 | END INTERFACE |
---|
| 22 | !---------------------------------------------------------------------------- |
---|
| 23 | |
---|
| 24 | CONTAINS ! Fonctions disponibles pour les utilisateurs. |
---|
| 25 | |
---|
| 26 | SUBROUTINE set_axis_attributes_id(axis_id, name_, standard_name_, long_name_, unit_, size_, zvalue_) |
---|
| 27 | IMPLICIT NONE |
---|
| 28 | TYPE(XAxisHandle) :: axis_hdl |
---|
| 29 | CHARACTER(len = *) , INTENT(IN) :: axis_id |
---|
| 30 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ |
---|
| 31 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ |
---|
| 32 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ |
---|
| 33 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_ |
---|
| 34 | INTEGER , OPTIONAL, INTENT(IN) :: size_ |
---|
| 35 | REAL (kind = 8), dimension(*), OPTIONAL, INTENT(IN) :: zvalue_(:) |
---|
| 36 | |
---|
| 37 | CALL axis_handle_create(axis_hdl, axis_id) |
---|
| 38 | CALL set_axis_attributes_hdl(axis_hdl, name_, standard_name_, long_name_, unit_, size_, zvalue_) |
---|
| 39 | |
---|
| 40 | END SUBROUTINE set_axis_attributes_id |
---|
| 41 | |
---|
| 42 | SUBROUTINE set_axis_attributes_hdl(axis_hdl, name_, standard_name_, long_name_, unit_, size_, zvalue_) |
---|
| 43 | IMPLICIT NONE |
---|
| 44 | TYPE(XAxisHandle) , INTENT(IN) :: axis_hdl |
---|
| 45 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ |
---|
| 46 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ |
---|
| 47 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ |
---|
| 48 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_ |
---|
| 49 | INTEGER , OPTIONAL, INTENT(IN) :: size_ |
---|
| 50 | REAL (kind = 8), dimension(*), OPTIONAL, INTENT(IN) :: zvalue_(:) |
---|
| 51 | |
---|
| 52 | IF (PRESENT(name_)) THEN |
---|
| 53 | CALL xios_set_axis_name(axis_hdl%daddr, name_, len(name_)) |
---|
| 54 | END IF |
---|
| 55 | IF (PRESENT(standard_name_)) THEN |
---|
| 56 | CALL xios_set_axis_standard_name(axis_hdl%daddr, standard_name_, len(standard_name_)) |
---|
| 57 | END IF |
---|
| 58 | IF (PRESENT(long_name_)) THEN |
---|
| 59 | CALL xios_set_axis_long_name(axis_hdl%daddr, long_name_, len(long_name_)) |
---|
| 60 | END IF |
---|
| 61 | IF (PRESENT(unit_)) THEN |
---|
| 62 | CALL xios_set_axis_unit(axis_hdl%daddr, unit_, len(unit_)) |
---|
| 63 | END IF |
---|
| 64 | IF (PRESENT(size_)) THEN |
---|
| 65 | CALL xios_set_axis_size(axis_hdl%daddr, size_) |
---|
| 66 | END IF |
---|
| 67 | IF (PRESENT(zvalue_)) THEN |
---|
| 68 | CALL xios_set_axis_zvalue(axis_hdl%daddr, zvalue_, size(zvalue_, 1)) |
---|
| 69 | END IF |
---|
| 70 | END SUBROUTINE set_axis_attributes_hdl |
---|
| 71 | |
---|
| 72 | SUBROUTINE set_axisgroup_attributes_id(axisgroup_id, name_, standard_name_, long_name_, unit_, size_, zvalue_) |
---|
| 73 | IMPLICIT NONE |
---|
| 74 | TYPE(XAxisGroupHandle) :: axisgroup_hdl |
---|
| 75 | CHARACTER(len = *) , INTENT(IN) :: axisgroup_id |
---|
| 76 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ |
---|
| 77 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ |
---|
| 78 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ |
---|
| 79 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_ |
---|
| 80 | INTEGER , OPTIONAL, INTENT(IN) :: size_ |
---|
| 81 | REAL (kind = 8), dimension(*), OPTIONAL, INTENT(IN) :: zvalue_(:) |
---|
| 82 | |
---|
| 83 | CALL axisgroup_handle_create(axisgroup_hdl, axisgroup_id) |
---|
| 84 | CALL set_axisgroup_attributes_hdl(axisgroup_hdl, name_, standard_name_, long_name_, unit_, size_, zvalue_) |
---|
| 85 | |
---|
| 86 | END SUBROUTINE set_axisgroup_attributes_id |
---|
| 87 | |
---|
| 88 | SUBROUTINE set_axisgroup_attributes_hdl(axisgroup_hdl, name_, standard_name_, long_name_, unit_, size_, zvalue_) |
---|
| 89 | IMPLICIT NONE |
---|
| 90 | TYPE(XAxisGroupHandle) , INTENT(IN) :: axisgroup_hdl |
---|
| 91 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: name_ |
---|
| 92 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: standard_name_ |
---|
| 93 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: long_name_ |
---|
| 94 | CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: unit_ |
---|
| 95 | INTEGER , OPTIONAL, INTENT(IN) :: size_ |
---|
| 96 | REAL (kind = 8), dimension(*), OPTIONAL, INTENT(IN) :: zvalue_(:) |
---|
| 97 | |
---|
| 98 | IF (PRESENT(name_)) THEN |
---|
| 99 | CALL xios_set_axisgroup_name(axisgroup_hdl%daddr, name_, len(name_)) |
---|
| 100 | END IF |
---|
| 101 | IF (PRESENT(standard_name_)) THEN |
---|
| 102 | CALL xios_set_axisgroup_standard_name(axisgroup_hdl%daddr, standard_name_, len(standard_name_)) |
---|
| 103 | END IF |
---|
| 104 | IF (PRESENT(long_name_)) THEN |
---|
| 105 | CALL xios_set_axisgroup_long_name(axisgroup_hdl%daddr, long_name_, len(long_name_)) |
---|
| 106 | END IF |
---|
| 107 | IF (PRESENT(unit_)) THEN |
---|
| 108 | CALL xios_set_axisgroup_unit(axisgroup_hdl%daddr, unit_, len(unit_)) |
---|
| 109 | END IF |
---|
| 110 | IF (PRESENT(size_)) THEN |
---|
| 111 | CALL xios_set_axisgroup_size(axisgroup_hdl%daddr, size_) |
---|
| 112 | END IF |
---|
| 113 | IF (PRESENT(zvalue_)) THEN |
---|
| 114 | CALL xios_set_axisgroup_zvalue(axisgroup_hdl%daddr, zvalue_, size(zvalue_, 1)) |
---|
| 115 | END IF |
---|
| 116 | END SUBROUTINE set_axisgroup_attributes_hdl |
---|
| 117 | |
---|
| 118 | SUBROUTINE axis_handle_create(ret, idt) |
---|
| 119 | IMPLICIT NONE |
---|
| 120 | TYPE(XAxisHandle) , INTENT(OUT):: ret |
---|
| 121 | CHARACTER(len = *), INTENT(IN) :: idt |
---|
| 122 | CALL xios_axis_handle_create(ret%daddr, idt, len(idt)) |
---|
| 123 | END SUBROUTINE axis_handle_create |
---|
| 124 | |
---|
| 125 | SUBROUTINE axisgroup_handle_create(ret, idt) |
---|
| 126 | IMPLICIT NONE |
---|
| 127 | TYPE(XAxisGroupHandle), INTENT(OUT):: ret |
---|
| 128 | CHARACTER(len = *) , INTENT(IN) :: idt |
---|
| 129 | CALL xios_axisgroup_handle_create(ret%daddr, idt, len(idt)) |
---|
| 130 | END SUBROUTINE axisgroup_handle_create |
---|
| 131 | |
---|
| 132 | END MODULE IAXIS |
---|