- Timestamp:
- 2018-10-29T11:08:56+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_AMM15_package/NEMOGCM/NEMO/OPA_SRC/OBS/obs_surf_def.F90
r10246 r10247 50 50 INTEGER :: npj 51 51 INTEGER :: nsurfup !: Observation counter used in obs_oper 52 INTEGER :: nrec !: Number of surface observation records in window 52 53 53 54 ! Arrays with size equal to the number of surface observations … … 56 57 & mi, & !: i-th grid coord. for interpolating to surface observation 57 58 & mj, & !: j-th grid coord. for interpolating to surface observation 59 & mt, & !: time record number for gridded data 58 60 & nsidx,& !: Surface observation number 59 61 & nsfil,& !: Surface observation number in file … … 67 69 & ntyp !: Type of surface observation product 68 70 71 CHARACTER(len=8), POINTER, DIMENSION(:) :: & 72 & cvars !: Variable names 73 74 CHARACTER(len=8), POINTER, DIMENSION(:) :: & 75 & cext !: Extra field names 76 69 77 CHARACTER(LEN=8), POINTER, DIMENSION(:) :: & 70 78 & cwmo !: WMO indentifier … … 90 98 & nsstpmpp !: Global number of surface observations per time step 91 99 100 ! Arrays with size equal to the number of observation records in the window 101 INTEGER, POINTER, DIMENSION(:) :: & 102 & mrecstp ! Time step of the records 103 92 104 ! Arrays used to store source indices when 93 105 ! compressing obs_surf derived types … … 97 109 INTEGER, POINTER, DIMENSION(:) :: & 98 110 & nsind !: Source indices of surface data in compressed data 111 112 ! Is this a gridded product? 113 114 LOGICAL :: lgrid 99 115 100 116 END TYPE obs_surf … … 130 146 !!* Local variables 131 147 INTEGER :: ji 148 INTEGER :: jvar 132 149 133 150 ! Set bookkeeping variables … … 140 157 surf%npi = kpi 141 158 surf%npj = kpj 159 160 ! Allocate arrays of size number of variables 161 162 ALLOCATE( & 163 & surf%cvars(kvar) & 164 & ) 165 166 DO jvar = 1, kvar 167 surf%cvars(jvar) = "NotSet" 168 END DO 142 169 143 170 ! Allocate arrays of number of surface data size … … 146 173 & surf%mi(ksurf), & 147 174 & surf%mj(ksurf), & 175 & surf%mt(ksurf), & 148 176 & surf%nsidx(ksurf), & 149 177 & surf%nsfil(ksurf), & … … 162 190 & ) 163 191 192 surf%mt(:) = -1 193 164 194 165 195 ! Allocate arrays of number of surface data size * number of variables … … 173 203 174 204 ALLOCATE( & 175 & surf%rext(ksurf,kextra) & 176 & ) 205 & surf%rext(ksurf,kextra), & 206 & surf%cext(kextra) & 207 & ) 208 209 surf%rext(:,:) = 0.0_wp 210 211 DO ji = 1, kextra 212 surf%cext(ji) = "NotSet" 213 END DO 177 214 178 215 ! Allocate arrays of number of time step size … … 203 240 204 241 surf%nsurfup = 0 242 243 ! Not gridded by default 244 245 surf%lgrid = .FALSE. 205 246 206 247 END SUBROUTINE obs_surf_alloc … … 228 269 & surf%mi, & 229 270 & surf%mj, & 271 & surf%mt, & 230 272 & surf%nsidx, & 231 273 & surf%nsfil, & … … 254 296 255 297 DEALLOCATE( & 256 & surf%rext & 298 & surf%rext, & 299 & surf%cext & 257 300 & ) 258 301 … … 269 312 & surf%nsstp, & 270 313 & surf%nsstpmpp & 314 & ) 315 316 ! Dellocate arrays of size number of variables 317 318 DEALLOCATE( & 319 & surf%cvars & 271 320 & ) 272 321 … … 350 399 newsurf%mi(insurf) = surf%mi(ji) 351 400 newsurf%mj(insurf) = surf%mj(ji) 401 newsurf%mt(insurf) = surf%mt(ji) 352 402 newsurf%nsidx(insurf) = surf%nsidx(ji) 353 403 newsurf%nsfil(insurf) = surf%nsfil(ji) … … 392 442 ! Set book keeping variables which do not depend on number of obs. 393 443 394 newsurf%nstp = surf%nstp 444 newsurf%nstp = surf%nstp 445 newsurf%cvars(:) = surf%cvars(:) 446 newsurf%cext(:) = surf%cext(:) 447 448 ! Set gridded stuff 449 450 newsurf%mt(insurf) = surf%mt(ji) 395 451 396 452 ! Deallocate temporary data … … 433 489 oldsurf%mi(jj) = surf%mi(ji) 434 490 oldsurf%mj(jj) = surf%mj(ji) 491 oldsurf%mt(jj) = surf%mt(ji) 435 492 oldsurf%nsidx(jj) = surf%nsidx(ji) 436 493 oldsurf%nsfil(jj) = surf%nsfil(ji)
Note: See TracChangeset
for help on using the changeset viewer.