psmile_neigh_extra_search_init.F90
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 subroutine psmile_neigh_extra_search_init (search, grid_id, &
00012 extra_search, ierror)
00013
00014
00015
00016 use PRISM_constants
00017
00018 use PSMILe, dummy_interface => PSMILe_Neigh_extra_search_init
00019
00020 Implicit none
00021
00022
00023
00024 Type (Enddef_search), Intent (In) :: search
00025
00026
00027
00028 Integer, Intent(In) :: grid_id
00029
00030
00031
00032
00033
00034 Type (Extra_search_info), Intent (InOut) :: extra_search
00035
00036
00037
00038
00039
00040
00041
00042
00043 Integer, Intent (Out) :: ierror
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 Integer, Parameter :: nerrp = 2
00055 Integer :: ierrp (nerrp)
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078 Character(len=len_cvs_string), save :: mycvs =
00079 '$Id: psmile_neigh_extra_search_init.F90 2082 2009-10-21 13:31:19Z hanke $'
00080
00081
00082
00083
00084
00085 #ifdef VERBOSE
00086 print 9990, trim(ch_id)
00087
00088 call psmile_flushstd
00089 #endif /* VERBOSE */
00090
00091
00092
00093 ierror = 0
00094
00095 Allocate (extra_search%len_extra (search%npart), &
00096 extra_search%len_req (search%npart), &
00097 extra_search%indices_req(search%npart), &
00098 extra_search%required (search%npart), &
00099 STAT = ierror)
00100
00101 if ( ierror > 0 ) then
00102 ierrp (1) = ierror
00103 ierrp (2) = search%npart * 4
00104
00105 ierror = PRISM_Error_Alloc
00106 call psmile_error ( ierror, 'len_extra, len_req, ...', &
00107 ierrp, 2, __FILE__, __LINE__ )
00108 return
00109 endif
00110
00111 Nullify (extra_search%indices)
00112
00113
00114
00115 Nullify (extra_search%dist_dble)
00116 Nullify (extra_search%cos_search_dble)
00117 Nullify (extra_search%sin_search_dble)
00118 Nullify (extra_search%z_search_dble)
00119
00120 Nullify (extra_search%dist_real)
00121 Nullify (extra_search%cos_search_real)
00122 Nullify (extra_search%sin_search_real)
00123 Nullify (extra_search%z_search_real)
00124
00125
00126
00127
00128 extra_search%len_extra (:) = 0
00129 extra_search%len_req (:) = 0
00130
00131 extra_search%n_extra = 0
00132 extra_search%n_req = 0
00133
00134 extra_search%global_marker = Grids(grid_id)%grid_shape(1,1) - 4
00135
00136
00137
00138 #ifdef VERBOSE
00139 print 9980, trim(ch_id)
00140
00141 call psmile_flushstd
00142 #endif /* VERBOSE */
00143
00144
00145
00146 9990 format (1x, a, ': psmile_neigh_extra_search_init:')
00147 9980 format (1x, a, ': psmile_neigh_extra_search_init: eof')
00148
00149 end subroutine psmile_neigh_extra_search_init