00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 subroutine psmile_trf_lonlat_2d_dble (x_coords, y_coords, &
00012 coords_shape, grid_valid_shape, &
00013 sin_values, cos_values, ierror)
00014
00015
00016
00017 use PRISM_constants
00018
00019 use PSMILe, dummy_interface => PSMILe_Trf_lonlat_2d_dble
00020
00021 implicit none
00022
00023
00024
00025 Integer, Intent (In) :: coords_shape (2, ndim_2d)
00026
00027
00028
00029 Double Precision, Intent (In) :: x_coords(coords_shape(1,1):
00030 coords_shape(2,1),
00031 coords_shape(1,2):
00032 coords_shape(2,2))
00033 Double Precision, Intent (In) :: y_coords(coords_shape(1,1):
00034 coords_shape(2,1),
00035 coords_shape(1,2):
00036 coords_shape(2,2))
00037
00038
00039
00040 Integer, Intent (In) :: grid_valid_shape (2, ndim_2d)
00041
00042
00043
00044
00045
00046
00047 Double Precision, Intent (Out) :: sin_values (grid_valid_shape(1,1):
00048 grid_valid_shape(2,1),
00049 grid_valid_shape(1,2):
00050 grid_valid_shape(2,2),
00051 2)
00052
00053
00054
00055 Double Precision, Intent (Out) :: cos_values (grid_valid_shape(1,1):
00056 grid_valid_shape(2,1),
00057 grid_valid_shape(1,2):
00058 grid_valid_shape(2,2),
00059 2)
00060
00061
00062
00063 Integer, Intent (Out) :: ierror
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074 Integer, Parameter :: lon = 1
00075 Integer, Parameter :: lat = 2
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103 Character(len=len_cvs_string), save :: mycvs =
00104 '$Id: psmile_trf_lonlat_2d_dble.F90 2325 2010-04-21 15:00:07Z valcke $'
00105
00106
00107
00108
00109 #ifdef VERBOSE
00110 print 9990, trim(ch_id)
00111
00112 call psmile_flushstd
00113 #endif /* VERBOSE */
00114
00115 ierror = 0
00116
00117 #ifdef PRISM_ASSERTION
00118 #endif
00119
00120
00121
00122
00123
00124
00125
00126
00127 sin_values (:, :, lon) = &
00128 x_coords (grid_valid_shape(1,1):grid_valid_shape(2,1), &
00129 grid_valid_shape(1,2):grid_valid_shape(2,2)) * &
00130 dble_deg2rad
00131
00132 sin_values (:, :, lat) = &
00133 y_coords (grid_valid_shape(1,1):grid_valid_shape(2,1), &
00134 grid_valid_shape(1,2):grid_valid_shape(2,2)) * &
00135 dble_deg2rad
00136
00137
00138
00139 cos_values = cos (sin_values)
00140 sin_values = sin (sin_values)
00141
00142
00143
00144 #ifdef VERBOSE
00145 print 9980, trim(ch_id), ierror
00146
00147 call psmile_flushstd
00148 #endif /* VERBOSE */
00149
00150
00151
00152 9990 format (1x, a, ': psmile_trf_lonlat_2d_dble')
00153 9980 format (1x, a, ': psmile_trf_lonlat_2d_dble: eof, ierror =', i3)
00154
00155 end subroutine PSMILe_Trf_lonlat_2d_dble