libsim Versione 7.1.11

◆ map_inv_distinct_network()

integer function, dimension(dim) map_inv_distinct_network ( type(vol7d_network), dimension(:), intent(in)  vect,
integer, intent(in)  dim,
logical, dimension(:), intent(in), optional  mask,
logical, intent(in), optional  back 
)

map inv distinct

Definizione alla linea 907 del file vol7d_network_class.F90.

909! Copyright (C) 2010 ARPA-SIM <urpsim@smr.arpa.emr.it>
910! authors:
911! Davide Cesari <dcesari@arpa.emr.it>
912! Paolo Patruno <ppatruno@arpa.emr.it>
913
914! This program is free software; you can redistribute it and/or
915! modify it under the terms of the GNU General Public License as
916! published by the Free Software Foundation; either version 2 of
917! the License, or (at your option) any later version.
918
919! This program is distributed in the hope that it will be useful,
920! but WITHOUT ANY WARRANTY; without even the implied warranty of
921! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
922! GNU General Public License for more details.
923
924! You should have received a copy of the GNU General Public License
925! along with this program. If not, see <http://www.gnu.org/licenses/>.
926#include "config.h"
927
935USE kinds
938IMPLICIT NONE
939
940integer, parameter :: network_name_len=20
941
946TYPE vol7d_network
947 character(len=network_name_len) :: name
948END TYPE vol7d_network
949
951TYPE(vol7d_network),PARAMETER :: vol7d_network_miss=vol7d_network(cmiss)
952
956INTERFACE init
957 MODULE PROCEDURE vol7d_network_init
958END INTERFACE
959
962INTERFACE delete
963 MODULE PROCEDURE vol7d_network_delete
964END INTERFACE
965
969INTERFACE OPERATOR (==)
970 MODULE PROCEDURE vol7d_network_eq
971END INTERFACE
972
976INTERFACE OPERATOR (/=)
977 MODULE PROCEDURE vol7d_network_ne
978END INTERFACE
979
983INTERFACE OPERATOR (>)
984 MODULE PROCEDURE vol7d_network_gt
985END INTERFACE
986
990INTERFACE OPERATOR (<)
991 MODULE PROCEDURE vol7d_network_lt
992END INTERFACE
993
997INTERFACE OPERATOR (>=)
998 MODULE PROCEDURE vol7d_network_ge
999END INTERFACE
1000
1004INTERFACE OPERATOR (<=)
1005 MODULE PROCEDURE vol7d_network_le
1006END INTERFACE
1007
1008#define VOL7D_POLY_TYPE TYPE(vol7d_network)
1009#define VOL7D_POLY_TYPES _network
1010#define ENABLE_SORT
1011#include "array_utilities_pre.F90"
1012
1014INTERFACE display
1015 MODULE PROCEDURE display_network
1016END INTERFACE
1017
1019INTERFACE c_e
1020 MODULE PROCEDURE c_e_network
1021END INTERFACE
1022
1024INTERFACE to_char
1025 MODULE PROCEDURE to_char_network
1026END INTERFACE
1027
1028CONTAINS
1029
1035FUNCTION vol7d_network_new(name) RESULT(this)
1036CHARACTER(len=*),INTENT(in),OPTIONAL :: name
1037
1038TYPE(vol7d_network) :: this
1039
1040CALL init(this, name)
1041
1042END FUNCTION vol7d_network_new
1043
1044
1048SUBROUTINE vol7d_network_init(this, name)
1049TYPE(vol7d_network),INTENT(INOUT) :: this
1050CHARACTER(len=*),INTENT(in),OPTIONAL :: name
1051
1052IF (PRESENT(name)) THEN
1053 this%name = lowercase(name)
1054ELSE
1055 this%name = cmiss
1056END IF
1057
1058END SUBROUTINE vol7d_network_init
1059
1060
1062SUBROUTINE vol7d_network_delete(this)
1063TYPE(vol7d_network),INTENT(INOUT) :: this
1064
1065this%name = cmiss
1066
1067END SUBROUTINE vol7d_network_delete
1068
1069
1070subroutine display_network(this)
1071
1072TYPE(vol7d_network),INTENT(in) :: this
1073
1074print*,to_char_network(this)
1075
1076end subroutine display_network
1077
1078
1079elemental function c_e_network(this) result(res)
1080
1081TYPE(vol7d_network),INTENT(in) :: this
1082logical :: res
1083
1084res = .not. this == vol7d_network_miss
1085
1086end function c_e_network
1087
1088
1089elemental character(len=20) function to_char_network(this)
1090
1091TYPE(vol7d_network),INTENT(in) :: this
1092
1093to_char_network="Network: "//trim(this%name)
1094
1095return
1096
1097end function to_char_network
1098
1099
1100ELEMENTAL FUNCTION vol7d_network_eq(this, that) RESULT(res)
1101TYPE(vol7d_network),INTENT(IN) :: this, that
1102LOGICAL :: res
1103
1104res = (this%name == that%name)
1105
1106END FUNCTION vol7d_network_eq
1107
1108
1109ELEMENTAL FUNCTION vol7d_network_ne(this, that) RESULT(res)
1110TYPE(vol7d_network),INTENT(IN) :: this, that
1111LOGICAL :: res
1112
1113res = .NOT.(this == that)
1114
1115END FUNCTION vol7d_network_ne
1116
1117
1118ELEMENTAL FUNCTION vol7d_network_gt(this, that) RESULT(res)
1119TYPE(vol7d_network),INTENT(IN) :: this, that
1120LOGICAL :: res
1121
1122res = this%name > that%name
1123
1124END FUNCTION vol7d_network_gt
1125
1126ELEMENTAL FUNCTION vol7d_network_lt(this, that) RESULT(res)
1127TYPE(vol7d_network),INTENT(IN) :: this, that
1128LOGICAL :: res
1129
1130res = this%name < that%name
1131
1132END FUNCTION vol7d_network_lt
1133
1134
1135ELEMENTAL FUNCTION vol7d_network_ge(this, that) RESULT(res)
1136TYPE(vol7d_network),INTENT(IN) :: this, that
1137LOGICAL :: res
1138
1139res = this%name >= that%name
1140
1141END FUNCTION vol7d_network_ge
1142
1143ELEMENTAL FUNCTION vol7d_network_le(this, that) RESULT(res)
1144TYPE(vol7d_network),INTENT(IN) :: this, that
1145LOGICAL :: res
1146
1147res = this%name <= that%name
1148
1149END FUNCTION vol7d_network_le
1150
1151
1152#include "array_utilities_inc.F90"
1153
1154
1155END MODULE vol7d_network_class
Check object presence.
Distruttore per la classe vol7d_network.
Costruttore per la classe vol7d_network.
return network object in a pretty string
Utilities for CHARACTER variables.
Definition of constants to be used for declaring variables of a desired type.
Definition: kinds.F90:251
Definitions of constants and functions for working with missing values.
Classe per la gestione delle reti di stazioni per osservazioni meteo e affini.
Definisce la rete a cui appartiene una stazione.

Generated with Doxygen.