prismtrs_resize_remap_vars.F90
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 subroutine prismtrs_resize_remap_vars(increment, id_epio_id, num_wts)
00011
00012
00013
00014
00015
00016
00017 USE PRISMDrv, dummy_INTERFACE => PRISMTrs_resize_remap_vars
00018 IMPLICIT NONE
00019 integer, intent(in) ::
00020 increment,
00021 id_epio_id,
00022 num_wts
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 CHARACTER(LEN=len_cvs_string), SAVE :: mycvs =
00047 '$Id: prismtrs_resize_remap_vars.F90 2082 2009-10-21 13:31:19Z hanke $'
00048
00049
00050 integer ::
00051 ierr,
00052 mxlinks,
00053 il_max_links_map1
00054 integer, dimension(:), allocatable ::
00055 add1_tmp,
00056 add2_tmp
00057
00058 double precision, dimension(:,:), allocatable ::
00059 wts_tmp
00060
00061 #ifdef VERBOSE
00062 PRINT *, '| | | | | | | Enter PRISMTrs_resize_remap_vars'
00063 call psmile_flushstd
00064 #endif
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075 mxlinks = size(Drv_Epios(id_epio_id)%grid1_add_map1)
00076 allocate (add1_tmp(mxlinks), add2_tmp(mxlinks), &
00077 wts_tmp(num_wts,mxlinks))
00078
00079 add1_tmp = Drv_Epios(id_epio_id)%grid1_add_map1
00080 add2_tmp = Drv_Epios(id_epio_id)%grid2_add_map1
00081 wts_tmp = Drv_Epios(id_epio_id)%wts_map1
00082
00083
00084
00085
00086
00087
00088 deallocate (Drv_Epios(id_epio_id)%grid1_add_map1, &
00089 Drv_Epios(id_epio_id)%grid2_add_map1, &
00090 Drv_Epios(id_epio_id)%wts_map1)
00091 Drv_Epios(id_epio_id)%max_links_map1 = mxlinks + increment
00092 il_max_links_map1 = Drv_Epios(id_epio_id)%max_links_map1
00093 allocate (Drv_Epios(id_epio_id)%grid1_add_map1(il_max_links_map1), &
00094 Drv_Epios(id_epio_id)%grid2_add_map1(il_max_links_map1), &
00095 Drv_Epios(id_epio_id)%wts_map1(num_wts,il_max_links_map1))
00096
00097
00098
00099
00100
00101
00102 mxlinks = min(mxlinks, il_max_links_map1)
00103 Drv_Epios(id_epio_id)%grid1_add_map1(1:mxlinks) = add1_tmp (1:mxlinks)
00104 Drv_Epios(id_epio_id)%grid2_add_map1(1:mxlinks) = add2_tmp (1:mxlinks)
00105 Drv_Epios(id_epio_id)%wts_map1 (:,1:mxlinks) = wts_tmp(:,1:mxlinks)
00106 deallocate(add1_tmp, add2_tmp, wts_tmp)
00107
00108 #ifdef VERBOSE
00109 PRINT *, '| | | | | | | Quit PRISMTrs_resize_remap_vars'
00110 call psmile_flushstd
00111 #endif
00112
00113
00114 end subroutine prismtrs_resize_remap_vars
00115