2100
2101
2103
2104
2105
2106 integer, intent(in) :: ng, model
2107
2108
2109
2110 logical :: Ldefine, got_var(NV)
2111
2112 integer, parameter :: Natt = 25
2113
2114 integer :: i, j, nvd3, nvd4, nvd5
2115 integer :: recdim, status
2116
2117 integer :: DimIDs(nDimID)
2118 integer :: r2dgrd(4), ru2dgrd(4), rv2dgrd(4)
2119 integer :: sp2dgrd(3), sr2dgrd(3), su2dgrd(3), sv2dgrd(3)
2120 integer :: sr3dgrd(4), su3dgrd(4), sv3dgrd(4)
2121 integer :: t2dgrd(4), u2dgrd(4), v2dgrd(4)
2122
2123# ifdef SOLVE3D
2124 integer :: itrc
2125
2126 integer :: k3dgrd(5), t3dgrd(5)
2127 integer :: r3dgrd(4), ru3dgrd(5), rv3dgrd(5)
2128 integer :: u3dgrd(5), v3dgrd(5), w3dgrd(4)
2129# endif
2130
2131 real(r8) :: Aval(6)
2132
2133 character (len=256) :: ncname
2134 character (len=MaxLen) :: Vinfo(Natt)
2135
2136 character (len=*), parameter :: MyFile = &
2137 & __FILE__//", def_rst_pio"
2138
2139 TYPE (Var_desc_t) :: varDesc
2140
2141 sourcefile=myfile
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2152 ncname=rst(ng)%name
2153 ldefine=.false.
2154 IF (((nrrec(ng).eq.0).and.(iic(ng).eq.ntstart(ng))).or. &
2155 & ((nrrec(ng).ne.0).and. &
2156 & (trim(ncname).ne.trim(ini(ng)%name)))) THEN
2157 ldefine=.true.
2158 END IF
2159
2160 IF (master) THEN
2161 IF (ldefine) THEN
2162 WRITE (stdout,10) ng, trim(ncname)
2163 ELSE
2164 WRITE (stdout,20) ng, trim(ncname)
2165 END IF
2166 END IF
2167
2168
2169
2170
2171
2172 define : IF (ldefine) THEN
2174 IF (founderror(exit_flag, noerror, __line__, myfile)) THEN
2175 IF (master) WRITE (stdout,30) trim(ncname)
2176 RETURN
2177 END IF
2178
2179
2180
2181
2182
2183 dimids=0
2184
2185 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'xi_rho', &
2186 & iobounds(ng)%xi_rho, dimids( 1))
2187 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2188
2189 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'xi_u', &
2190 & iobounds(ng)%xi_u, dimids( 2))
2191 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2192
2193 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'xi_v', &
2194 & iobounds(ng)%xi_v, dimids( 3))
2195 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2196
2197 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'xi_psi', &
2198 & iobounds(ng)%xi_psi, dimids( 4))
2199 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2200
2201 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'eta_rho', &
2202 & iobounds(ng)%eta_rho, dimids( 5))
2203 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2204
2205 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'eta_u', &
2206 & iobounds(ng)%eta_u, dimids( 6))
2207 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2208
2209 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'eta_v', &
2210 & iobounds(ng)%eta_v, dimids( 7))
2211 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2212
2213 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'eta_psi', &
2214 & iobounds(ng)%eta_psi, dimids( 8))
2215 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2216
2217# if !defined PERFECT_RESTART && \
2218 (defined write_water && defined masking)
2219 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'xy_rho', &
2220 & iobounds(ng)%xy_rho, dimids(17))
2221 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2222
2223 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'xy_u', &
2224 & iobounds(ng)%xy_u, dimids(18))
2225 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2226
2227 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'xy_v', &
2228 & iobounds(ng)%xy_v, dimids(19))
2229 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2230# endif
2231
2232# ifdef SOLVE3D
2233# if !defined PERFECT_RESTART && \
2234 (defined write_water && defined masking)
2235 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'xyz_rho', &
2236 & iobounds(ng)%xy_rho*n(ng), dimids(20))
2237 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2238
2239 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'xyz_u', &
2240 & iobounds(ng)%xy_u*n(ng), dimids(21))
2241 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2242
2243 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'xyz_v', &
2244 & iobounds(ng)%xy_v*n(ng), dimids(22))
2245 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2246
2247 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'xyz_w', &
2248 & iobounds(ng)%xy_rho*(n(ng)+1), dimids(23))
2249 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2250# endif
2251
2252 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'N', &
2253 & n(ng), dimids( 9))
2254 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2255
2256 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 's_rho', &
2257 & n(ng), dimids( 9))
2258 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2259
2260 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 's_w', &
2261 & n(ng)+1, dimids(10))
2262 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2263
2264 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'tracer', &
2265 & nt(ng), dimids(11))
2266 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2267
2268# ifdef SEDIMENT
2269 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'NST', &
2270 & nst, dimids(32))
2271 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2272
2273 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'Nbed', &
2274 & nbed, dimids(16))
2275 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2276
2277# if !defined PERFECT_RESTART && \
2278 (defined write_water && defined masking)
2279 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'xybed', &
2280 & iobounds(ng)%xy_rho*nbed, dimids(24))
2281 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2282# endif
2283# endif
2284
2285# ifdef ECOSIM
2286 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'Nbands', &
2287 & nbands, dimids(33))
2288 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2289
2290 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'Nphy', &
2291 & nphy, dimids(25))
2292 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2293
2294 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'Nbac', &
2295 & nbac, dimids(26))
2296 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2297
2298 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'Ndom', &
2299 & ndom, dimids(27))
2300 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2301
2302 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'Nfec', &
2303 & nfec, dimids(28))
2304 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2305# endif
2306# endif
2307
2308 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'boundary', &
2309 & 4, dimids(14))
2310 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2311
2312# ifdef FOUR_DVAR
2313 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'Nstate', &
2314 & nstatevar(ng), dimids(29))
2315 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2316# endif
2317
2318# ifdef PERFECT_RESTART
2319 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'two', &
2320 & 2, dimids(30))
2321 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2322
2323 status=def_dim(ng, model, rst(ng)%pioFile, ncname, 'three', &
2324 & 3, dimids(31))
2325 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2326# endif
2327
2328 status=def_dim(ng, model, rst(ng)%pioFile, ncname, &
2329 & trim(adjustl(vname(5,idtime))), &
2330 & pio_unlimited, dimids(12))
2331 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2332
2333 recdim=dimids(12)
2334
2335
2336
2337# if !defined PERFECT_RESTART && \
2338 (defined write_water && defined masking)
2339 nvd3=2
2340 nvd4=2
2341 nvd5=2
2342# else
2343 nvd3=3
2344 nvd4=4
2345 nvd5=5
2346# endif
2347
2348
2349
2350# if !defined PERFECT_RESTART && \
2351 (defined write_water && defined masking)
2352 t2dgrd(1)=dimids(17)
2353 t2dgrd(2)=dimids(12)
2354 sr2dgrd(1)=dimids(17)
2355 sr2dgrd(2)=dimids(12)
2356# ifdef SOLVE3D
2357 t3dgrd(1)=dimids(20)
2358 t3dgrd(2)=dimids(12)
2359 r3dgrd(1)=dimids(20)
2360 r3dgrd(2)=dimids(12)
2361# endif
2362# else
2363 t2dgrd(1)=dimids( 1)
2364 t2dgrd(2)=dimids( 5)
2365 sr2dgrd(1)=dimids( 1)
2366 sr2dgrd(2)=dimids( 5)
2367 sr2dgrd(3)=dimids(12)
2368# ifdef PERFECT_RESTART
2369 t2dgrd(3)=dimids(31)
2370 t2dgrd(4)=dimids(12)
2371# else
2372 t2dgrd(3)=dimids(12)
2373# endif
2374# ifdef SOLVE3D
2375 t3dgrd(1)=dimids( 1)
2376 t3dgrd(2)=dimids( 5)
2377 t3dgrd(3)=dimids( 9)
2378 r3dgrd(1)=dimids( 1)
2379 r3dgrd(2)=dimids( 5)
2380 r3dgrd(3)=dimids( 9)
2381# ifdef PERFECT_RESTART
2382 t3dgrd(4)=dimids(30)
2383 t3dgrd(5)=dimids(12)
2384# else
2385 t3dgrd(4)=dimids(12)
2386# endif
2387 r3dgrd(4)=dimids(12)
2388# endif
2389# endif
2390
2391
2392
2393 sp2dgrd(1)=dimids( 4)
2394 sp2dgrd(2)=dimids( 8)
2395 sp2dgrd(3)=dimids(12)
2396
2397
2398
2399# if !defined PERFECT_RESTART && \
2400 (defined write_water && defined masking)
2401 u2dgrd(1)=dimids(18)
2402 u2dgrd(2)=dimids(12)
2403# ifdef SOLVE3D
2404 u3dgrd(1)=dimids(21)
2405 u3dgrd(2)=dimids(12)
2406# endif
2407# else
2408 u2dgrd(1)=dimids( 2)
2409 u2dgrd(2)=dimids( 6)
2410# ifdef PERFECT_RESTART
2411 u2dgrd(3)=dimids(31)
2412 u2dgrd(4)=dimids(12)
2413# else
2414 u2dgrd(3)=dimids(12)
2415# endif
2416# ifdef SOLVE3D
2417 u3dgrd(1)=dimids( 2)
2418 u3dgrd(2)=dimids( 6)
2419 u3dgrd(3)=dimids( 9)
2420# ifdef PERFECT_RESTART
2421 u3dgrd(4)=dimids(30)
2422 u3dgrd(5)=dimids(12)
2423# else
2424 u3dgrd(4)=dimids(12)
2425# endif
2426# endif
2427# endif
2428
2429
2430
2431# if !defined PERFECT_RESTART && \
2432 (defined write_water && defined masking)
2433 v2dgrd(1)=dimids(19)
2434 v2dgrd(2)=dimids(12)
2435# ifdef SOLVE3D
2436 v3dgrd(1)=dimids(22)
2437 v3dgrd(2)=dimids(12)
2438# endif
2439# else
2440 v2dgrd(1)=dimids( 3)
2441 v2dgrd(2)=dimids( 7)
2442# ifdef PERFECT_RESTART
2443 v2dgrd(3)=dimids(31)
2444 v2dgrd(4)=dimids(12)
2445# else
2446 v2dgrd(3)=dimids(12)
2447# endif
2448# ifdef SOLVE3D
2449 v3dgrd(1)=dimids( 3)
2450 v3dgrd(2)=dimids( 7)
2451 v3dgrd(3)=dimids( 9)
2452# ifdef PERFECT_RESTART
2453 v3dgrd(4)=dimids(30)
2454 v3dgrd(5)=dimids(12)
2455# else
2456 v3dgrd(4)=dimids(12)
2457# endif
2458# endif
2459# endif
2460# ifdef PERFECT_RESTART
2461
2462
2463
2464# if !defined PERFECT_RESTART && \
2465 (defined write_water && defined masking)
2466 r2dgrd(1)=dimids(17)
2467 r2dgrd(2)=dimids(12)
2468# else
2469 r2dgrd(1)=dimids( 1)
2470 r2dgrd(2)=dimids( 5)
2471 r2dgrd(3)=dimids(30)
2472 r2dgrd(4)=dimids(12)
2473# endif
2474
2475
2476
2477# if !defined PERFECT_RESTART && \
2478 (defined write_water && defined masking)
2479 ru2dgrd(1)=dimids(18)
2480 ru2dgrd(2)=dimids(12)
2481# ifdef SOLVE3D
2482 ru2dgrd(1)=dimids(21)
2483 ru2dgrd(2)=dimids(12)
2484# endif
2485# else
2486 ru2dgrd(1)=dimids( 2)
2487 ru2dgrd(2)=dimids( 6)
2488 ru2dgrd(3)=dimids(30)
2489 ru2dgrd(4)=dimids(12)
2490# ifdef SOLVE3D
2491 ru3dgrd(1)=dimids( 2)
2492 ru3dgrd(2)=dimids( 6)
2493 ru3dgrd(3)=dimids(10)
2494 ru3dgrd(4)=dimids(30)
2495 ru3dgrd(5)=dimids(12)
2496# endif
2497# endif
2498
2499
2500
2501# if !defined PERFECT_RESTART && \
2502 (defined write_water && defined masking)
2503 rv2dgrd(1)=dimids(19)
2504 rv2dgrd(2)=dimids(12)
2505# ifdef SOLVE3D
2506 rv3dgrd(1)=dimids(22)
2507 rv3dgrd(2)=dimids(12)
2508# endif
2509# else
2510 rv2dgrd(1)=dimids( 3)
2511 rv2dgrd(2)=dimids( 7)
2512 rv2dgrd(3)=dimids(30)
2513 rv2dgrd(4)=dimids(12)
2514# ifdef SOLVE3D
2515 rv3dgrd(1)=dimids( 3)
2516 rv3dgrd(2)=dimids( 7)
2517 rv3dgrd(3)=dimids(10)
2518 rv3dgrd(4)=dimids(30)
2519 rv3dgrd(5)=dimids(12)
2520# endif
2521# endif
2522# endif
2523# ifdef SOLVE3D
2524
2525
2526
2527# if !defined PERFECT_RESTART && \
2528 (defined write_water && defined masking)
2529 w3dgrd(1)=dimids(23)
2530 w3dgrd(2)=dimids(12)
2531# ifdef PERFECT_RESTART
2532 k3dgrd(1)=dimids(23)
2533 k3dgrd(2)=dimids(12)
2534# endif
2535# else
2536 w3dgrd(1)=dimids( 1)
2537 w3dgrd(2)=dimids( 5)
2538 w3dgrd(3)=dimids(10)
2539 w3dgrd(4)=dimids(12)
2540# ifdef PERFECT_RESTART
2541 k3dgrd(1)=dimids( 1)
2542 k3dgrd(2)=dimids( 5)
2543 k3dgrd(3)=dimids(10)
2544 k3dgrd(4)=dimids(30)
2545 k3dgrd(5)=dimids(12)
2546# endif
2547# endif
2548# endif
2549
2550
2551
2552# if !defined PERFECT_RESTART && \
2553 (defined write_water && defined masking)
2554 su2dgrd(1)=dimids(18)
2555 su2dgrd(2)=dimids(12)
2556 sv2dgrd(1)=dimids(19)
2557 sv2dgrd(2)=dimids(12)
2558# else
2559 su2dgrd(1)=dimids( 2)
2560 su2dgrd(2)=dimids( 6)
2561 su2dgrd(3)=dimids(12)
2562 sv2dgrd(1)=dimids( 3)
2563 sv2dgrd(2)=dimids( 7)
2564 sv2dgrd(3)=dimids(12)
2565# endif
2566# ifdef SOLVE3D
2567# if !defined PERFECT_RESTART && \
2568 (defined write_water && defined masking)
2569 sr3dgrd(1)=dimids(24)
2570 sr3dgrd(2)=dimids(12)
2571 su3dgrd(1)=dimids(21)
2572 su3dgrd(2)=dimids(12)
2573 sv3dgrd(1)=dimids(22)
2574 sv3dgrd(2)=dimids(12)
2575# else
2576 sr3dgrd(1)=dimids( 1)
2577 sr3dgrd(2)=dimids( 5)
2578 sr3dgrd(3)=dimids(16)
2579 sr3dgrd(4)=dimids(12)
2580 su3dgrd(1)=dimids( 2)
2581 su3dgrd(2)=dimids( 6)
2582 su3dgrd(3)=dimids( 9)
2583 su3dgrd(4)=dimids(12)
2584 sv3dgrd(1)=dimids( 3)
2585 sv3dgrd(2)=dimids( 7)
2586 sv3dgrd(3)=dimids( 9)
2587 sv3dgrd(4)=dimids(12)
2588# endif
2589# endif
2590
2591
2592
2593 rst(ng)%Rindex=0
2594
2595
2596
2597 DO i=1,natt
2598 DO j=1,len(vinfo(1))
2599 vinfo(i)(j:j)=' '
2600 END DO
2601 END DO
2602 DO i=1,6
2603 aval(i)=0.0_r8
2604 END DO
2605
2606
2607
2608
2609
2610 CALL def_info (ng, model, rst(ng)%pioFile, ncname, dimids)
2611 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2612
2613
2614
2615
2616
2617# ifdef PERFECT_RESTART
2618
2619
2620
2621# ifdef SOLVE3D
2622 vinfo( 1)='nstp'
2623 vinfo( 2)='3D equations time level index, nstp'
2624 status=def_var(ng, model, rst(ng)%pioFile, vardesc, pio_int, &
2625 & 1, (/recdim/), aval, vinfo, ncname, &
2626 & setparaccess = .true.)
2627 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2628
2629 vinfo( 1)='nrhs'
2630 vinfo( 2)='3D equations time level index, nrhs'
2631 status=def_var(ng, model, rst(ng)%pioFile, vardesc, pio_int, &
2632 & 1, (/recdim/), aval, vinfo, ncname, &
2633 & setparaccess = .true.)
2634 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2635
2636 vinfo( 1)='nnew'
2637 vinfo( 2)='3D equations time level index, nnew'
2638 status=def_var(ng, model, rst(ng)%pioFile, vardesc, pio_int, &
2639 & 1, (/recdim/), aval, vinfo, ncname, &
2640 & setparaccess = .true.)
2641 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2642
2643# endif
2644 vinfo( 1)='kstp'
2645 vinfo( 2)='3D equations time level index, kstp'
2646 status=def_var(ng, model, rst(ng)%pioFile, vardesc, pio_int, &
2647 & 1, (/recdim/), aval, vinfo, ncname, &
2648 & setparaccess = .true.)
2649 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2650
2651 vinfo( 1)='krhs'
2652 vinfo( 2)='3D equations time level index, krhs'
2653 status=def_var(ng, model, rst(ng)%pioFile, vardesc, pio_int, &
2654 & 1, (/recdim/), aval, vinfo, ncname, &
2655 & setparaccess = .true.)
2656 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2657
2658 vinfo( 1)='knew'
2659 vinfo( 2)='3D equations time level index, knew'
2660 status=def_var(ng, model, rst(ng)%pioFile, vardesc, pio_int, &
2661 & 1, (/recdim/), aval, vinfo, ncname, &
2662 & setparaccess = .true.)
2663 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2664# endif
2665
2666
2667
2668 vinfo( 1)=vname(1,idtime)
2669 vinfo( 2)=vname(2,idtime)
2670 WRITE (vinfo( 3),'(a,a)') 'seconds since ', trim(rclock%string)
2671 vinfo( 4)=trim(rclock%calendar)
2672 vinfo(14)=vname(4,idtime)
2673 vinfo(21)=vname(6,idtime)
2674 rst(ng)%pioVar(idtime)%dkind=
pio_tout
2675 rst(ng)%pioVar(idtime)%gtype=0
2676
2677 status=def_var(ng, model, rst(ng)%pioFile, &
2678 & rst(ng)%pioVar(idtime)%vd, &
2679 &
pio_tout, 1, (/recdim/), aval, vinfo, ncname, &
2680 & setparaccess = .true.)
2681 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2682
2683# ifdef WET_DRY
2684
2685
2686
2687 vinfo( 1)=vname(1,idpwet)
2688 vinfo( 2)=vname(2,idpwet)
2689 vinfo( 3)=vname(3,idpwet)
2690 vinfo( 9)='land'
2691 vinfo(10)='water'
2692 vinfo(14)=vname(4,idpwet)
2693 vinfo(16)=vname(1,idtime)
2694 vinfo(21)=vname(6,idpwet)
2695 vinfo(22)='coordinates'
2696 aval(5)=real(iinfo(1,idpwet,ng),r8)
2697 rst(ng)%pioVar(idpwet)%dkind=
pio_frst
2698 rst(ng)%pioVar(idpwet)%gtype=p2dvar
2699
2700 status=def_var(ng, model, rst(ng)%pioFile, &
2701 & rst(ng)%pioVar(idpwet)%vd, &
2702 &
pio_frst, nvd3, sp2dgrd, aval, vinfo, ncname, &
2703 & setfillval = .false.)
2704 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2705
2706
2707
2708 vinfo( 1)=vname(1,idrwet)
2709 vinfo( 2)=vname(2,idrwet)
2710 vinfo( 3)=vname(3,idrwet)
2711 vinfo( 9)='land'
2712 vinfo(10)='water'
2713 vinfo(14)=vname(4,idrwet)
2714 vinfo(16)=vname(1,idtime)
2715 vinfo(21)=vname(6,idrwet)
2716 vinfo(22)='coordinates'
2717 aval(5)=real(iinfo(1,idrwet,ng),r8)
2718 rst(ng)%pioVar(idrwet)%dkind=
pio_frst
2719 rst(ng)%pioVar(idrwet)%gtype=r2dvar
2720
2721 status=def_var(ng, model, rst(ng)%pioFile, &
2722 & rst(ng)%pioVar(idrwet)%vd, &
2723 &
pio_frst, nvd3, sr2dgrd, aval, vinfo, ncname, &
2724 & setfillval = .false.)
2725 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2726
2727
2728
2729 vinfo( 1)=vname(1,iduwet)
2730 vinfo( 2)=vname(2,iduwet)
2731 vinfo( 3)=vname(3,iduwet)
2732 vinfo( 9)='land'
2733 vinfo(10)='water'
2734 vinfo(14)=vname(4,iduwet)
2735 vinfo(16)=vname(1,idtime)
2736 vinfo(21)=vname(6,iduwet)
2737 vinfo(22)='coordinates'
2738 aval(5)=real(iinfo(1,iduwet,ng),r8)
2739 rst(ng)%pioVar(iduwet)%dkind=
pio_frst
2740 rst(ng)%pioVar(iduwet)%gtype=u2dvar
2741
2742 status=def_var(ng, model, rst(ng)%pioFile, &
2743 & rst(ng)%pioVar(iduwet)%vd, &
2744 &
pio_frst, nvd3, su2dgrd, aval, vinfo, ncname, &
2745 & setfillval = .false.)
2746 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2747
2748
2749
2750 vinfo( 1)=vname(1,idvwet)
2751 vinfo( 2)=vname(2,idvwet)
2752 vinfo( 3)=vname(3,idvwet)
2753 vinfo(14)=vname(4,idvwet)
2754 vinfo(16)=vname(1,idtime)
2755 vinfo( 9)='land'
2756 vinfo(10)='water'
2757 vinfo(21)=vname(6,idvwet)
2758 vinfo(22)='coordinates'
2759 aval(5)=real(iinfo(1,idvwet,ng),r8)
2760 rst(ng)%pioVar(idvwet)%dkind=
pio_frst
2761 rst(ng)%pioVar(idvwet)%gtype=v2dvar
2762
2763 status=def_var(ng, model, rst(ng)%pioFile, &
2764 & rst(ng)%pioVar(idvwet)%vd, &
2765 &
pio_frst, nvd3, sv2dgrd, aval, vinfo, ncname, &
2766 & setfillval = .false.)
2767 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2768# endif
2769# if defined SEDIMENT && defined SED_MORPH
2770
2771
2772
2773 vinfo( 1)=vname(1,idbath)
2774 vinfo( 2)=vname(2,idbath)
2775 vinfo( 3)=vname(3,idbath)
2776 vinfo(14)=vname(4,idbath)
2777 vinfo(16)=vname(1,idtime)
2778 vinfo(21)=vname(6,idbath)
2779 vinfo(22)='coordinates'
2780 aval(5)=real(iinfo(1,idbath,ng),r8)
2781 rst(ng)%pioVar(idbath)%dkind=
pio_frst
2782 rst(ng)%pioVar(idbath)%gtype=r2dvar
2783
2784 status=def_var(ng, model, rst(ng)%pioFile, &
2785 & rst(ng)%pioVar(idbath)%vd, &
2786 &
pio_frst, nvd3, t2dgrd, aval, vinfo, ncname, &
2787 & setfillval = .false.)
2788 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2789# endif
2790
2791
2792
2793 vinfo( 1)=vname(1,idfsur)
2794 vinfo( 2)=vname(2,idfsur)
2795 vinfo( 3)=vname(3,idfsur)
2796 vinfo(14)=vname(4,idfsur)
2797 vinfo(16)=vname(1,idtime)
2798# if defined WRITE_WATER && defined MASKING
2799# if !defined WET_DRY && defined PERFECT_RESTART
2800 vinfo(24)='_FillValue'
2801 aval(6)=spval
2802# else
2803 vinfo(20)='mask_rho'
2804# endif
2805# endif
2806 vinfo(21)=vname(6,idfsur)
2807 vinfo(22)='coordinates'
2808 aval(5)=real(iinfo(1,idfsur,ng),r8)
2809 rst(ng)%pioVar(idfsur)%dkind=
pio_frst
2810 rst(ng)%pioVar(idfsur)%gtype=r2dvar
2811
2812# ifdef PERFECT_RESTART
2813 status=def_var(ng, model, rst(ng)%pioFile, &
2814 & rst(ng)%pioVar(idfsur)%vd, &
2815# ifdef WET_DRY
2816 &
pio_frst, nvd4, t2dgrd, aval, vinfo, ncname, &
2817 & setfillval = .false.)
2818# else
2819 &
pio_frst, nvd4, t2dgrd, aval, vinfo, ncname)
2820# endif
2821# else
2822 status=def_var(ng, model, rst(ng)%pioFile, &
2823 & rst(ng)%pioVar(idfsur)%vd, &
2824# ifdef WET_DRY
2825 &
pio_frst, nvd3, t2dgrd, aval, vinfo, ncname, &
2826 & setfillval = .false.)
2827# else
2828 &
pio_frst, nvd3, t2dgrd, aval, vinfo, ncname)
2829
2830# endif
2831# endif
2832 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2833
2834# ifdef PERFECT_RESTART
2835
2836
2837
2838 vinfo( 1)=vname(1,idrzet)
2839 vinfo( 2)=vname(2,idrzet)
2840 vinfo( 3)=vname(3,idrzet)
2841 vinfo(14)=vname(4,idrzet)
2842 vinfo(16)=vname(1,idtime)
2843# if defined WRITE_WATER && defined MASKING
2844# if defined PERFECT_RESTART
2845 vinfo(24)='_FillValue'
2846 aval(6)=spval
2847# else
2848 vinfo(20)='mask_rho'
2849# endif
2850# endif
2851 vinfo(21)=vname(6,idrzet)
2852 vinfo(22)='coordinates'
2853 aval(5)=real(iinfo(1,idfsur,ng),r8)
2854 rst(ng)%pioVar(idrzet)%dkind=
pio_frst
2855 rst(ng)%pioVar(idrzet)%gtype=r2dvar
2856
2857 status=def_var(ng, model, rst(ng)%pioFile, &
2858 & rst(ng)%pioVar(idrzet)%vd, &
2859 &
pio_frst, nvd4, r2dgrd, aval, vinfo, ncname)
2860 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2861# endif
2862
2863
2864
2865 vinfo( 1)=vname(1,idubar)
2866 vinfo( 2)=vname(2,idubar)
2867 vinfo( 3)=vname(3,idubar)
2868 vinfo(14)=vname(4,idubar)
2869 vinfo(16)=vname(1,idtime)
2870# if defined WRITE_WATER && defined MASKING
2871# if defined PERFECT_RESTART
2872 vinfo(24)='_FillValue'
2873 aval(6)=spval
2874# else
2875 vinfo(20)='mask_u'
2876# endif
2877# endif
2878 vinfo(21)=vname(6,idubar)
2879 vinfo(22)='coordinates'
2880 aval(5)=real(iinfo(1,idubar,ng),r8)
2881 rst(ng)%pioVar(idubar)%dkind=
pio_frst
2882 rst(ng)%pioVar(idubar)%gtype=u2dvar
2883
2884# ifdef PERFECT_RESTART
2885 status=def_var(ng, model, rst(ng)%pioFile, &
2886 & rst(ng)%pioVar(idubar)%vd, &
2887 &
pio_frst, nvd4, u2dgrd, aval, vinfo, ncname)
2888# else
2889 status=def_var(ng, model, rst(ng)%pioFile, &
2890 & rst(ng)%pioVar(idubar)%vd, &
2891 &
pio_frst, nvd3, u2dgrd, aval, vinfo, ncname)
2892# endif
2893 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2894
2895# ifdef PERFECT_RESTART
2896
2897
2898
2899 vinfo( 1)=vname(1,idru2d)
2900 vinfo( 2)=vname(2,idru2d)
2901 vinfo( 3)=vname(3,idru2d)
2902 vinfo(14)=vname(4,idru2d)
2903 vinfo(16)=vname(1,idtime)
2904# if defined WRITE_WATER && defined MASKING
2905# if defined PERFECT_RESTART
2906 vinfo(24)='_FillValue'
2907 aval(6)=spval
2908# else
2909 vinfo(20)='mask_u'
2910# endif
2911# endif
2912 vinfo(21)=vname(6,idru2d)
2913 vinfo(22)='coordinates'
2914 aval(5)=real(iinfo(1,idru2d,ng),r8)
2915 rst(ng)%pioVar(idru2d)%dkind=
pio_frst
2916 rst(ng)%pioVar(idru2d)%gtype=u2dvar
2917
2918 status=def_var(ng, model, rst(ng)%pioFile, &
2919 & rst(ng)%pioVar(idru2d)%vd, &
2920 &
pio_frst, nvd4, ru2dgrd, aval, vinfo, ncname)
2921 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2922# endif
2923
2924
2925
2926 vinfo( 1)=vname(1,idvbar)
2927 vinfo( 2)=vname(2,idvbar)
2928 vinfo( 3)=vname(3,idvbar)
2929 vinfo(14)=vname(4,idvbar)
2930 vinfo(16)=vname(1,idtime)
2931# if defined WRITE_WATER && defined MASKING
2932# if defined PERFECT_RESTART
2933 vinfo(24)='_FillValue'
2934 aval(6)=spval
2935# else
2936 vinfo(20)='mask_v'
2937# endif
2938# endif
2939 vinfo(21)=vname(6,idvbar)
2940 vinfo(22)='coordinates'
2941 aval(5)=real(iinfo(1,idvbar,ng),r8)
2942 rst(ng)%pioVar(idvbar)%dkind=
pio_frst
2943 rst(ng)%pioVar(idvbar)%gtype=v2dvar
2944
2945# ifdef PERFECT_RESTART
2946 status=def_var(ng, model, rst(ng)%pioFile, &
2947 & rst(ng)%pioVar(idvbar)%vd, &
2948 &
pio_frst, nvd4, v2dgrd, aval, vinfo, ncname)
2949# else
2950 status=def_var(ng, model, rst(ng)%pioFile, &
2951 & rst(ng)%pioVar(idvbar)%vd, &
2952 &
pio_frst, nvd3, v2dgrd, aval, vinfo, ncname)
2953# endif
2954 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2955
2956# ifdef PERFECT_RESTART
2957
2958
2959
2960 vinfo( 1)=vname(1,idrv2d)
2961 vinfo( 2)=vname(2,idrv2d)
2962 vinfo( 3)=vname(3,idrv2d)
2963 vinfo(14)=vname(4,idrv2d)
2964 vinfo(16)=vname(1,idtime)
2965# if defined WRITE_WATER && defined MASKING
2966# if defined PERFECT_RESTART
2967 vinfo(24)='_FillValue'
2968 aval(6)=spval
2969# else
2970 vinfo(20)='mask_v'
2971# endif
2972# endif
2973 vinfo(21)=vname(6,idrv2d)
2974 vinfo(22)='coordinates'
2975 aval(5)=real(iinfo(1,idrv2d,ng),r8)
2976 rst(ng)%pioVar(idrv2d)%dkind=
pio_frst
2977 rst(ng)%pioVar(idrv2d)%gtype=v2dvar
2978
2979 status=def_var(ng, model, rst(ng)%pioFile, &
2980 & rst(ng)%pioVar(idrv2d)%vd, &
2981 &
pio_frst, nvd4, rv2dgrd, aval, vinfo, ncname)
2982 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2983# endif
2984# ifdef SOLVE3D
2985
2986
2987
2988 vinfo( 1)=vname(1,iduvel)
2989 vinfo( 2)=vname(2,iduvel)
2990 vinfo( 3)=vname(3,iduvel)
2991 vinfo(14)=vname(4,iduvel)
2992 vinfo(16)=vname(1,idtime)
2993# if defined WRITE_WATER && defined MASKING
2994# if defined PERFECT_RESTART
2995 vinfo(24)='_FillValue'
2996 aval(6)=spval
2997# else
2998 vinfo(20)='mask_u'
2999# endif
3000# endif
3001 vinfo(21)=vname(6,iduvel)
3002 vinfo(22)='coordinates'
3003 aval(5)=real(iinfo(1,iduvel,ng),r8)
3004 rst(ng)%pioVar(iduvel)%dkind=
pio_frst
3005 rst(ng)%pioVar(iduvel)%gtype=u3dvar
3006
3007# ifdef PERFECT_RESTART
3008 status=def_var(ng, model, rst(ng)%pioFile, &
3009 & rst(ng)%pioVar(iduvel)%vd, &
3010 &
pio_frst, nvd5, u3dgrd, aval, vinfo, ncname)
3011# else
3012 status=def_var(ng, model, rst(ng)%pioFile, &
3013 & rst(ng)%pioVar(iduvel)%vd, &
3014 &
pio_frst, nvd4, u3dgrd, aval, vinfo, ncname)
3015# endif
3016 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3017
3018# ifdef PERFECT_RESTART
3019
3020
3021
3022
3023
3024
3025 vinfo( 1)=vname(1,idru3d)
3026 vinfo( 2)=vname(2,idru3d)
3027 vinfo( 3)=vname(3,idru3d)
3028 vinfo(14)=vname(4,idru3d)
3029 vinfo(16)=vname(1,idtime)
3030# if defined WRITE_WATER && defined MASKING
3031# if defined PERFECT_RESTART
3032 vinfo(24)='_FillValue'
3033 aval(6)=spval
3034# else
3035 vinfo(20)='mask_u'
3036# endif
3037# endif
3038 vinfo(21)=vname(6,idru3d)
3039 vinfo(22)='coordinates'
3040 aval(5)=real(-u3dvar,r8)
3041 rst(ng)%pioVar(idru3d)%dkind=
pio_frst
3042 rst(ng)%pioVar(idru3d)%gtype=u3dvar
3043
3044 status=def_var(ng, model, rst(ng)%pioFile, &
3045 & rst(ng)%pioVar(idru3d)%vd, &
3046 &
pio_frst, nvd5, ru3dgrd, aval, vinfo, ncname)
3047 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3048# endif
3049
3050
3051
3052 vinfo( 1)=vname(1,idvvel)
3053 vinfo( 2)=vname(2,idvvel)
3054 vinfo( 3)=vname(3,idvvel)
3055 vinfo(14)=vname(4,idvvel)
3056 vinfo(16)=vname(1,idtime)
3057# if defined WRITE_WATER && defined MASKING
3058# if defined PERFECT_RESTART
3059 vinfo(24)='_FillValue'
3060 aval(6)=spval
3061# else
3062 vinfo(20)='mask_v'
3063# endif
3064# endif
3065 vinfo(21)=vname(6,idvvel)
3066 vinfo(22)='coordinates'
3067 aval(5)=real(iinfo(1,idvvel,ng),r8)
3068 rst(ng)%pioVar(idvvel)%dkind=
pio_frst
3069 rst(ng)%pioVar(idvvel)%gtype=v3dvar
3070
3071# ifdef PERFECT_RESTART
3072 status=def_var(ng, model, rst(ng)%pioFile, &
3073 & rst(ng)%pioVar(idvvel)%vd, &
3074 &
pio_frst, nvd5, v3dgrd, aval, vinfo, ncname)
3075# else
3076 status=def_var(ng, model, rst(ng)%pioFile, &
3077 & rst(ng)%pioVar(idvvel)%vd, &
3078 &
pio_frst, nvd4, v3dgrd, aval, vinfo, ncname)
3079# endif
3080 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3081
3082# ifdef PERFECT_RESTART
3083
3084
3085
3086
3087
3088
3089 vinfo( 1)=vname(1,idrv3d)
3090 vinfo( 2)=vname(2,idrv3d)
3091 vinfo( 3)=vname(3,idrv3d)
3092 vinfo(14)=vname(4,idrv3d)
3093 vinfo(16)=vname(1,idtime)
3094# if defined WRITE_WATER && defined MASKING
3095# if defined PERFECT_RESTART
3096 vinfo(24)='_FillValue'
3097 aval(6)=spval
3098# else
3099 vinfo(20)='mask_v'
3100# endif
3101# endif
3102 vinfo(21)=vname(6,idrv3d)
3103 vinfo(22)='coordinates'
3104 aval(5)=real(-v3dvar,r8)
3105 rst(ng)%pioVar(idrv3d)%dkind=
pio_frst
3106 rst(ng)%pioVar(idrv3d)%gtype=v3dvar
3107
3108 status=def_var(ng, model, rst(ng)%pioFile, &
3109 & rst(ng)%pioVar(idrv3d)%vd, &
3110 &
pio_frst, nvd5, rv3dgrd, aval, vinfo, ncname)
3111 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3112# endif
3113
3114
3115
3116 DO itrc=1,nt(ng)
3117 vinfo( 1)=vname(1,idtvar(itrc))
3118 vinfo( 2)=vname(2,idtvar(itrc))
3119 vinfo( 3)=vname(3,idtvar(itrc))
3120 vinfo(14)=vname(4,idtvar(itrc))
3121 vinfo(16)=vname(1,idtime)
3122# ifdef SEDIMENT
3123 DO i=1,nst
3124 IF (itrc.eq.idsed(i)) THEN
3125 WRITE (vinfo(19),40) 1000.0_r8*sd50(i,ng)
3126 END IF
3127 END DO
3128# endif
3129# if defined WRITE_WATER && defined MASKING
3130# if defined PERFECT_RESTART
3131 vinfo(24)='_FillValue'
3132 aval(6)=spval
3133# else
3134 vinfo(20)='mask_rho'
3135# endif
3136# endif
3137 vinfo(21)=vname(6,idtvar(itrc))
3138 vinfo(22)='coordinates'
3139 aval(5)=real(r3dvar,r8)
3140 rst(ng)%pioTrc(itrc)%dkind=
pio_frst
3141 rst(ng)%pioTrc(itrc)%gtype=r3dvar
3142
3143# ifdef PERFECT_RESTART
3144 status=def_var(ng, model, rst(ng)%pioFile, &
3145 & rst(ng)%pioTrc(itrc)%vd, &
3146 &
pio_frst, nvd5, t3dgrd, aval, vinfo, ncname)
3147# else
3148 status=def_var(ng, model, rst(ng)%pioFile, &
3149 & rst(ng)%pioTrc(itrc)%vd, &
3150 &
pio_frst, nvd4, t3dgrd, aval, vinfo, ncname)
3151# endif
3152 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3153 END DO
3154
3155
3156
3157 vinfo( 1)=vname(1,iddano)
3158 vinfo( 2)=vname(2,iddano)
3159 vinfo( 3)=vname(3,iddano)
3160 vinfo(14)=vname(4,iddano)
3161 vinfo(16)=vname(1,idtime)
3162# if defined WRITE_WATER && defined MASKING
3163# if defined PERFECT_RESTART
3164 vinfo(24)='_FillValue'
3165 aval(6)=spval
3166# else
3167 vinfo(20)='mask_rho'
3168# endif
3169# endif
3170 vinfo(21)=vname(6,iddano)
3171 vinfo(22)='coordinates'
3172 aval(5)=real(iinfo(1,iddano,ng),r8)
3173 rst(ng)%pioVar(iddano)%dkind=
pio_frst
3174 rst(ng)%pioVar(iddano)%gtype=r3dvar
3175
3176 status=def_var(ng, model, rst(ng)%pioFile, &
3177 & rst(ng)%pioVar(iddano)%vd, &
3178 &
pio_frst, nvd4, r3dgrd, aval, vinfo, ncname)
3179 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3180
3181# ifdef LMD_SKPP
3182
3183
3184
3185 vinfo( 1)=vname(1,idhsbl)
3186 vinfo( 2)=vname(2,idhsbl)
3187 vinfo( 3)=vname(3,idhsbl)
3188 vinfo(14)=vname(4,idhsbl)
3189 vinfo(16)=vname(1,idtime)
3190# if defined WRITE_WATER && defined MASKING
3191# if defined PERFECT_RESTART
3192 vinfo(24)='_FillValue'
3193 aval(6)=spval
3194# else
3195 vinfo(20)='mask_rho'
3196# endif
3197# endif
3198 vinfo(21)=vname(6,idhsbl)
3199 vinfo(22)='coordinates'
3200 aval(5)=real(iinfo(1,idhsbl,ng),r8)
3201 rst(ng)%pioVar(idhsbl)%dkind=
pio_frst
3202 rst(ng)%pioVar(idhsbl)%gtype=r2dvar
3203
3204 status=def_var(ng, model, rst(ng)%pioFile, &
3205 & rst(ng)%pioVar(idhsbl)%vd, &
3206 &
pio_frst, nvd3, sr2dgrd, aval, vinfo, ncname)
3207 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3208# endif
3209
3210# ifdef LMD_BKPP
3211
3212
3213
3214 vinfo( 1)=vname(1,idhbbl)
3215 vinfo( 2)=vname(2,idhbbl)
3216 vinfo( 3)=vname(3,idhbbl)
3217 vinfo(14)=vname(4,idhbbl)
3218 vinfo(16)=vname(1,idtime)
3219# if defined WRITE_WATER && defined MASKING
3220# if defined PERFECT_RESTART
3221 vinfo(24)='_FillValue'
3222 aval(6)=spval
3223# else
3224 vinfo(20)='mask_rho'
3225# endif
3226# endif
3227 vinfo(21)=vname(6,idhbbl)
3228 vinfo(22)='coordinates'
3229 aval(5)=real(iinfo(1,idhbbl,ng),r8)
3230 rst(ng)%pioVar(idhbbl)%dkind=
pio_frst
3231 rst(ng)%pioVar(idhbbl)%gtype=r2dvar
3232
3233 status=def_var(ng, model, rst(ng)%pioFile, &
3234 & rst(ng)%pioVar(idhbbl)%vd, &
3235 &
pio_frst, nvd3, sr2dgrd, aval, vinfo, ncname)
3236 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3237# endif
3238# if defined PERFECT_RESTART && defined LMD_NONLOCAL
3239
3240
3241
3242 DO itrc=1,nat
3243 vinfo( 1)=vname(1,idghat(itrc))
3244 vinfo( 2)=vname(2,idghat(itrc))
3245 vinfo( 3)=vname(3,idghat(itrc))
3246 vinfo(14)=vname(4,idghat(itrc))
3247 vinfo(16)=vname(1,idtime)
3248# if defined WRITE_WATER && defined MASKING
3249 vinfo(20)='mask_rho'
3250# endif
3251 vinfo(21)=vname(6,idghat(itrc))
3252 vinfo(22)='coordinates'
3253 aval(5)=real(iinfo(1,idghat(itrc),ng),r8)
3254 rst(ng)%pioVar(idghat(itrc))%dkind=
pio_frst
3255 rst(ng)%pioVar(idghat(itrc))%gtype=w3dvar
3256
3257 status=def_var(ng, model, rst(ng)%pioFile, &
3258 & rst(ng)%pioVar(idghat(itrc))%vd, &
3259 &
pio_frst, nvd4, w3dgrd, aval, vinfo, ncname)
3260 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3261 END DO
3262# endif
3263# if defined BVF_MIXING || defined LMD_MIXING || \
3264 defined gls_mixing || defined my25_mixing
3265
3266
3267
3268 vinfo( 1)=vname(1,idvvis)
3269 vinfo( 2)=vname(2,idvvis)
3270 vinfo( 3)=vname(3,idvvis)
3271 vinfo(14)=vname(4,idvvis)
3272 vinfo(16)=vname(1,idtime)
3273 vinfo(21)=vname(6,idvvis)
3274 vinfo(22)='coordinates'
3275 aval(5)=real(iinfo(1,idvvis,ng),r8)
3276 rst(ng)%pioVar(idvvis)%dkind=
pio_frst
3277 rst(ng)%pioVar(idvvis)%gtype=w3dvar
3278
3279 status=def_var(ng, model, rst(ng)%pioFile, &
3280 & rst(ng)%pioVar(idvvis)%vd, &
3281 &
pio_frst, nvd4, w3dgrd, aval, vinfo, ncname, &
3282 & setfillval = .false.)
3283 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3284
3285
3286
3287 vinfo( 1)=vname(1,idtdif)
3288 vinfo( 2)=vname(2,idtdif)
3289 vinfo( 3)=vname(3,idtdif)
3290 vinfo(14)=vname(4,idtdif)
3291 vinfo(16)=vname(1,idtime)
3292 vinfo(21)=vname(6,idtdif)
3293 vinfo(22)='coordinates'
3294 aval(5)=real(iinfo(1,idtdif,ng),r8)
3295 rst(ng)%pioVar(idtdif)%dkind=
pio_frst
3296 rst(ng)%pioVar(idtdif)%gtype=w3dvar
3297
3298 status=def_var(ng, model, rst(ng)%pioFile, &
3299 & rst(ng)%pioVar(idtdif)%vd, &
3300 &
pio_frst, nvd4, w3dgrd, aval, vinfo, ncname, &
3301 & setfillval = .false.)
3302 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3303
3304# ifdef SALINITY
3305
3306
3307
3308 vinfo( 1)=vname(1,idsdif)
3309 vinfo( 2)=vname(2,idsdif)
3310 vinfo( 3)=vname(3,idsdif)
3311 vinfo(14)=vname(4,idsdif)
3312 vinfo(16)=vname(1,idtime)
3313 vinfo(21)=vname(6,idsdif)
3314 vinfo(22)='coordinates'
3315 aval(5)=real(iinfo(1,idsdif,ng),r8)
3316 rst(ng)%pioVar(idsdif)%dkind=
pio_frst
3317 rst(ng)%pioVar(idsdif)%gtype=w3dvar
3318
3319 status=def_var(ng, model, rst(ng)%pioFile, &
3320 & rst(ng)%pioVar(idsdif)%vd, &
3321 &
pio_frst, nvd4, w3dgrd, aval, vinfo, ncname, &
3322 & setfillval = .false.)
3323 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3324# endif
3325# endif
3326# if defined PERFECT_RESTART && \
3327 (defined gls_mixing || defined my25_mixing)
3328
3329
3330
3331 vinfo( 1)=vname(1,idmtke)
3332 vinfo( 2)=vname(2,idmtke)
3333 vinfo( 3)=vname(3,idmtke)
3334 vinfo(14)=vname(4,idmtke)
3335 vinfo(16)=vname(1,idtime)
3336 vinfo(21)=vname(6,idmtke)
3337 vinfo(22)='coordinates'
3338 aval(5)=real(iinfo(1,idmtke,ng),r8)
3339 rst(ng)%pioVar(idmtke)%dkind=
pio_frst
3340 rst(ng)%pioVar(idmtke)%gtype=w3dvar
3341
3342 status=def_var(ng, model, rst(ng)%pioFile, &
3343 & rst(ng)%pioVar(idmtke)%vd, &
3344 &
pio_frst, nvd5, k3dgrd, aval, vinfo, ncname, &
3345 & setfillval = .false.)
3346 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3347
3348
3349
3350 vinfo( 1)=vname(1,idmtls)
3351 vinfo( 2)=vname(2,idmtls)
3352 vinfo( 3)=vname(3,idmtls)
3353 vinfo(14)=vname(4,idmtls)
3354 vinfo(16)=vname(1,idtime)
3355 vinfo(21)=vname(6,idmtls)
3356 vinfo(22)='coordinates'
3357 aval(5)=real(iinfo(1,idmtls,ng),r8)
3358 rst(ng)%pioVar(idmtls)%dkind=
pio_frst
3359 rst(ng)%pioVar(idmtls)%gtype=w3dvar
3360
3361 status=def_var(ng, model, rst(ng)%pioFile, &
3362 & rst(ng)%pioVar(idmtls)%vd, &
3363 &
pio_frst, nvd5, k3dgrd, aval, vinfo, ncname, &
3364 & setfillval = .false.)
3365 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3366
3367
3368
3369 vinfo( 1)=vname(1,idvmls)
3370 vinfo( 2)=vname(2,idvmls)
3371 vinfo( 3)=vname(3,idvmls)
3372 vinfo(14)=vname(4,idvmls)
3373 vinfo(16)=vname(1,idtime)
3374# if defined WRITE_WATER && defined MASKING
3375# if defined PERFECT_RESTART
3376 vinfo(24)='_FillValue'
3377 aval(6)=spval
3378# else
3379 vinfo(20)='mask_rho'
3380# endif
3381# endif
3382 vinfo(21)=vname(6,idvmls)
3383 vinfo(22)='coordinates'
3384 aval(5)=real(iinfo(1,idvmls,ng),r8)
3385 rst(ng)%pioVar(idvmls)%dkind=
pio_frst
3386 rst(ng)%pioVar(idvmls)%gtype=w3dvar
3387
3388 status=def_var(ng, model, rst(ng)%pioFile, &
3389 & rst(ng)%pioVar(idvmls)%vd, &
3390 &
pio_frst, nvd4, w3dgrd, aval, vinfo, ncname)
3391 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3392
3393
3394
3395 vinfo( 1)=vname(1,idvmkk)
3396 vinfo( 2)=vname(2,idvmkk)
3397 vinfo( 3)=vname(3,idvmkk)
3398 vinfo(14)=vname(4,idvmkk)
3399 vinfo(16)=vname(1,idtime)
3400# if defined WRITE_WATER && defined MASKING
3401# if defined PERFECT_RESTART
3402 vinfo(24)='_FillValue'
3403 aval(6)=spval
3404# else
3405 vinfo(20)='mask_rho'
3406# endif
3407# endif
3408 vinfo(21)=vname(6,idvmkk)
3409 vinfo(22)='coordinates'
3410 aval(5)=real(iinfo(1,idvmkk,ng),r8)
3411 rst(ng)%pioVar(idvmkk)%dkind=
pio_frst
3412 rst(ng)%pioVar(idvmkk)%gtype=w3dvar
3413
3414 status=def_var(ng, model, rst(ng)%pioFile, &
3415 & rst(ng)%pioVar(idvmkk)%vd, &
3416 &
pio_frst, nvd4, w3dgrd, aval, vinfo, ncname)
3417 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3418
3419# ifdef GLS_MIXING
3420
3421
3422
3423 vinfo( 1)=vname(1,idvmkp)
3424 vinfo( 2)=vname(2,idvmkp)
3425 vinfo( 3)=vname(3,idvmkp)
3426 vinfo(14)=vname(4,idvmkp)
3427 vinfo(16)=vname(1,idtime)
3428# if defined WRITE_WATER && defined MASKING
3429# if defined PERFECT_RESTART
3430 vinfo(24)='_FillValue'
3431 aval(6)=spval
3432# else
3433 vinfo(20)='mask_rho'
3434# endif
3435# endif
3436 vinfo(21)=vname(6,idvmkp)
3437 vinfo(22)='coordinates'
3438 aval(5)=real(iinfo(1,idvmkp,ng),r8)
3439 rst(ng)%pioVar(idvmkp)%dkind=
pio_frst
3440 rst(ng)%pioVar(idvmkp)%gtype=w3dvar
3441
3442 status=def_var(ng, model, rst(ng)%pioFile, &
3443 & rst(ng)%pioVar(idvmkp)%vd, &
3444 &
pio_frst, nvd4, w3dgrd, aval, vinfo, ncname)
3445 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3446# endif
3447# endif
3448# ifdef SEDIMENT
3449# ifdef BEDLOAD
3450
3451
3452
3453 DO i=1,nst
3454 vinfo( 1)=vname(1,idubld(i))
3455 vinfo( 2)=vname(2,idubld(i))
3456 vinfo( 3)=vname(3,idubld(i))
3457 vinfo(14)=vname(4,idubld(i))
3458 vinfo(16)=vname(1,idtime)
3459# if defined WRITE_WATER && defined MASKING
3460# if defined PERFECT_RESTART
3461 vinfo(24)='_FillValue'
3462 aval(6)=spval
3463# else
3464 vinfo(20)='mask_u'
3465# endif
3466# endif
3467 vinfo(21)=vname(6,idubld(i))
3468 vinfo(22)='coordinates'
3469 aval(5)=real(iinfo(1,idubld(i),ng),r8)
3470 rst(ng)%pioVar(idubld(i))%dkind=
pio_frst
3471 rst(ng)%pioVar(idubld(i))%gtype=u2dvar
3472
3473 status=def_var(ng, model, rst(ng)%pioFile, &
3474 & rst(ng)%pioVar(idubld(i))%vd, &
3475 &
pio_frst, nvd3, su2dgrd, aval, vinfo, ncname)
3476 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3477
3478
3479
3480 vinfo( 1)=vname(1,idvbld(i))
3481 vinfo( 2)=vname(2,idvbld(i))
3482 vinfo( 3)=vname(3,idvbld(i))
3483 vinfo(14)=vname(4,idvbld(i))
3484 vinfo(16)=vname(1,idtime)
3485# if defined WRITE_WATER && defined MASKING
3486# if defined PERFECT_RESTART
3487 vinfo(24)='_FillValue'
3488 aval(6)=spval
3489# else
3490 vinfo(20)='mask_v'
3491# endif
3492# endif
3493 vinfo(21)=vname(6,idvbld(i))
3494 vinfo(22)='coordinates'
3495 aval(5)=real(iinfo(1,idvbld(i),ng),r8)
3496 rst(ng)%pioVar(idvbld(i))%dkind=
pio_frst
3497 rst(ng)%pioVar(idvbld(i))%gtype=v2dvar
3498
3499 status=def_var(ng, model, rst(ng)%pioFile, &
3500 & rst(ng)%pioVar(idvbld(i))%vd, &
3501 &
pio_frst, nvd3, sv2dgrd, aval, vinfo, ncname)
3502 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3503 END DO
3504# endif
3505
3506
3507
3508 DO i=1,nst
3509 vinfo( 1)=vname(1,idfrac(i))
3510 vinfo( 2)=vname(2,idfrac(i))
3511 vinfo( 3)=vname(3,idfrac(i))
3512 vinfo(14)=vname(4,idfrac(i))
3513 vinfo(16)=vname(1,idtime)
3514 WRITE (vinfo(19),40) 1000.0_r8*sd50(i,ng)
3515# if defined WRITE_WATER && defined MASKING
3516# if defined PERFECT_RESTART
3517 vinfo(24)='_FillValue'
3518 aval(6)=spval
3519# else
3520 vinfo(20)='mask_rho'
3521# endif
3522# endif
3523 vinfo(21)=vname(6,idfrac(i))
3524 vinfo(22)='coordinates'
3525 aval(5)=real(iinfo(1,idfrac(i),ng),r8)
3526 rst(ng)%pioVar(idfrac(i))%dkind=
pio_frst
3527 rst(ng)%pioVar(idfrac(i))%gtype=b3dvar
3528
3529 status=def_var(ng, model, rst(ng)%pioFile, &
3530 & rst(ng)%pioVar(idfrac(i))%vd, &
3531 &
pio_frst, nvd4, sr3dgrd, aval, vinfo, ncname)
3532 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3533 END DO
3534
3535
3536
3537 DO i=1,nst
3538 vinfo( 1)=vname(1,idbmas(i))
3539 vinfo( 2)=vname(2,idbmas(i))
3540 vinfo( 3)=vname(3,idbmas(i))
3541 vinfo(14)=vname(4,idbmas(i))
3542 vinfo(16)=vname(1,idtime)
3543 WRITE (vinfo(19),40) 1000.0_r8*sd50(i,ng)
3544# if defined WRITE_WATER && defined MASKING
3545# if defined PERFECT_RESTART
3546 vinfo(24)='_FillValue'
3547 aval(6)=spval
3548# else
3549 vinfo(20)='mask_rho'
3550# endif
3551# endif
3552 vinfo(21)=vname(6,idbmas(i))
3553 vinfo(22)='coordinates'
3554 aval(5)=real(iinfo(1,idbmas(i),ng),r8)
3555 rst(ng)%pioVar(idbmas(i))%dkind=
pio_frst
3556 rst(ng)%pioVar(idbmas(i))%gtype=b3dvar
3557
3558 status=def_var(ng, model, rst(ng)%pioFile, &
3559 & rst(ng)%pioVar(idbmas(i))%vd, &
3560 &
pio_frst, nvd4, sr3dgrd, aval, vinfo, ncname)
3561 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3562 END DO
3563
3564
3565
3566 DO i=1,mbedp
3567 vinfo( 1)=vname(1,idsbed(i))
3568 vinfo( 2)=vname(2,idsbed(i))
3569 vinfo( 3)=vname(3,idsbed(i))
3570 vinfo(14)=vname(4,idsbed(i))
3571 vinfo(16)=vname(1,idtime)
3572# if defined WRITE_WATER && defined MASKING
3573# if defined PERFECT_RESTART
3574 vinfo(24)='_FillValue'
3575 aval(6)=spval
3576# else
3577 vinfo(20)='mask_rho'
3578# endif
3579# endif
3580 vinfo(21)=vname(6,idsbed(i))
3581 vinfo(22)='coordinates'
3582 aval(5)=real(iinfo(1,idsbed(i),ng),r8)
3583 rst(ng)%pioVar(idsbed(i))%dkind=
pio_frst
3584 rst(ng)%pioVar(idsbed(i))%gtype=b3dvar
3585
3586 status=def_var(ng, model, rst(ng)%pioFile, &
3587 & rst(ng)%pioVar(idsbed(i))%vd, &
3588 &
pio_frst, nvd4, sr3dgrd, aval, vinfo, ncname)
3589 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3590 END DO
3591# endif
3592# if defined SEDIMENT || defined BBL_MODEL
3593
3594
3595
3596
3597
3598
3599 DO i=1,6
3600 vinfo( 1)=vname(1,idbott(i))
3601 vinfo( 2)=vname(2,idbott(i))
3602 vinfo( 3)=vname(3,idbott(i))
3603 vinfo(14)=vname(4,idbott(i))
3604 vinfo(16)=vname(1,idtime)
3605# if defined WRITE_WATER && defined MASKING
3606# if defined PERFECT_RESTART
3607 vinfo(24)='_FillValue'
3608 aval(6)=spval
3609# else
3610 vinfo(20)='mask_rho'
3611# endif
3612# endif
3613 vinfo(21)=vname(6,idbott(i))
3614 vinfo(22)='coordinates'
3615 aval(5)=real(iinfo(1,idbott(i),ng),r8)
3616 rst(ng)%pioVar(idbott(i))%dkind=
pio_frst
3617 rst(ng)%pioVar(idbott(i))%gtype=r2dvar
3618
3619 status=def_var(ng, model, rst(ng)%pioFile, &
3620 & rst(ng)%pioVar(idbott(i))%vd, &
3621 &
pio_frst, nvd3, sr2dgrd, aval, vinfo, ncname)
3622 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3623 END DO
3624# endif
3625# endif
3626# ifdef WEC
3627
3628
3629
3630 vinfo( 1)=vname(1,idu2sd)
3631 vinfo( 2)=vname(2,idu2sd)
3632 vinfo( 3)=vname(3,idu2sd)
3633 vinfo(14)=vname(4,idu2sd)
3634 vinfo(16)=vname(1,idtime)
3635# if defined WRITE_WATER && defined MASKING
3636 vinfo(20)='mask_u'
3637# endif
3638 vinfo(21)=vname(6,idu2sd)
3639 vinfo(22)='coordinates'
3640 aval(5)=real(iinfo(1,idu2sd,ng),r8)
3641 rst(ng)%pioVar(idu2sd)%dkind=
pio_frst
3642 rst(ng)%pioVar(idu2sd)%gtype=u2dvar
3643
3644 status=def_var(ng, model, rst(ng)%pioFile, &
3645 & rst(ng)%pioVar(idu2sd)%vd, &
3646 &
pio_frst, nvd3, u2dgrd, aval, vinfo, ncname)
3647 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3648
3649
3650
3651 vinfo( 1)=vname(1,idv2sd)
3652 vinfo( 2)=vname(2,idv2sd)
3653 vinfo( 3)=vname(3,idv2sd)
3654 vinfo(14)=vname(4,idv2sd)
3655 vinfo(16)=vname(1,idtime)
3656# if defined WRITE_WATER && defined MASKING
3657 vinfo(20)='mask_u'
3658# endif
3659 vinfo(21)=vname(6,idv2sd)
3660 vinfo(22)='coordinates'
3661 aval(5)=real(iinfo(1,idv2sd,ng),r8)
3662 rst(ng)%pioVar(idv2sd)%dkind=
pio_frst
3663 rst(ng)%pioVar(idv2sd)%gtype=v2dvar
3664
3665 status=def_var(ng, model, rst(ng)%pioFile, &
3666 & rst(ng)%pioVar(idv2sd)%vd, &
3667 &
pio_frst, nvd3, u2dgrd, aval, vinfo, ncname)
3668 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3669
3670# ifdef SOLVE3D
3671
3672
3673
3674 vinfo( 1)=vname(1,idu3sd)
3675 vinfo( 2)=vname(2,idu3sd)
3676 vinfo( 3)=vname(3,idu3sd)
3677 vinfo(14)=vname(4,idu3sd)
3678 vinfo(16)=vname(1,idtime)
3679# if defined WRITE_WATER && defined MASKING
3680 vinfo(20)='mask_u'
3681# endif
3682 vinfo(21)=vname(6,idu3sd)
3683 vinfo(22)='coordinates'
3684 aval(5)=real(iinfo(1,idu3sd,ng),r8)
3685 rst(ng)%pioVar(idu3sd)%dkind=
pio_fout
3686 rst(ng)%pioVar(idu3sd)%gtype=u3dvar
3687
3688 status=def_var(ng, model, rst(ng)%pioFile, &
3689 & rst(ng)%pioVar(idu3sd)%vd, &
3690 &
pio_frst, nvd4, u3dgrd, aval, vinfo, ncname)
3691 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3692
3693
3694
3695 vinfo( 1)=vname(1,idv3sd)
3696 vinfo( 2)=vname(2,idv3sd)
3697 vinfo( 3)=vname(3,idv3sd)
3698 vinfo(14)=vname(4,idv3sd)
3699 vinfo(16)=vname(1,idtime)
3700# if defined WRITE_WATER && defined MASKING
3701 vinfo(20)='mask_v'
3702# endif
3703 vinfo(21)=vname(6,idv3sd)
3704 vinfo(22)='coordinates'
3705 aval(5)=real(iinfo(1,idv3sd,ng),r8)
3706 rst(ng)%pioVar(idv3sd)%dkind=
pio_frst
3707 rst(ng)%pioVar(idv3sd)%gtype=v3dvar
3708
3709 status=def_var(ng, model, rst(ng)%pioFile, &
3710 & rst(ng)%pioVar(idv3sd)%vd, &
3711 &
pio_frst, nvd4, v3dgrd, aval, vinfo, ncname)
3712 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3713 END IF
3714# endif
3715# endif
3716# ifdef ICE_MODEL
3717
3718
3719
3720
3721
3722 CALL ice_def_pio (ng, model, ldefine, hout, rst, &
3723 & t2dgrd, u2dgrd, v2dgrd)
3724 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3725# endif
3726
3727
3728
3729
3730
3732 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3733
3734
3735
3736
3737
3738 CALL wrt_info (ng, model, rst(ng)%pioFile, ncname)
3739 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3740
3741 END IF define
3742
3743
3744
3745
3746
3747
3748 query : IF (.not.ldefine) THEN
3749 ncname=rst(ng)%name
3750
3751
3752
3754 IF (founderror(exit_flag, noerror, __line__, myfile)) THEN
3755 WRITE (stdout,50) trim(ncname)
3756 RETURN
3757 END IF
3758
3759
3760
3762 & piofile = rst(ng)%pioFile)
3763 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3764
3765
3766
3768 & piofile = rst(ng)%pioFile)
3769 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3770
3771
3772
3773 DO i=1,nv
3774 got_var(i)=.false.
3775 END DO
3776
3777
3778
3779
3780 DO i=1,n_var
3781 IF (trim(var_name(i)).eq.trim(vname(1,idtime))) THEN
3782 got_var(idtime)=.true.
3783 rst(ng)%pioVar(idtime)%vd=
var_desc(i)
3784 rst(ng)%pioVar(idtime)%dkind=
pio_tout
3785 rst(ng)%pioVar(idtime)%gtype=0
3786# if defined SEDIMENT && defined SED_MORPH
3787 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idbath))) THEN
3788 got_var(idbath)=.true.
3789 rst(ng)%pioVar(idbath)%vd=
var_desc(i)
3790 rst(ng)%pioVar(idbath)%dkind=
pio_frst
3791 rst(ng)%pioVar(idbath)%gtype=r2dvar
3792# endif
3793# if defined WET_DRY
3794 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idrwet))) THEN
3795 got_var(idrwet)=.true.
3796 rst(ng)%pioVar(idrwet)%vd=
var_desc(i)
3797 rst(ng)%pioVar(idrwet)%dkind=
pio_frst
3798 rst(ng)%pioVar(idrwet)%gtype=r2dvar
3799 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduwet))) THEN
3800 got_var(iduwet)=.true.
3801 rst(ng)%pioVar(iduwet)%vd=
var_desc(i)
3802 rst(ng)%pioVar(iduwet)%dkind=
pio_frst
3803 rst(ng)%pioVar(iduwet)%gtype=u2dvar
3804 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvwet))) THEN
3805 got_var(idvwet)=.true.
3806 rst(ng)%pioVar(idvwet)%vd=
var_desc(i)
3807 rst(ng)%pioVar(idvwet)%dkind=
pio_frst
3808 rst(ng)%pioVar(idvwet)%gtype=v2dvar
3809 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idpwet))) THEN
3810 got_var(idpwet)=.true.
3811 rst(ng)%pioVar(idpwet)%vd=
var_desc(i)
3812 rst(ng)%pioVar(idpwet)%dkind=
pio_frst
3813 rst(ng)%pioVar(idpwet)%gtype=p2dvar
3814# endif
3815 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idfsur))) THEN
3816 got_var(idfsur)=.true.
3817 rst(ng)%pioVar(idfsur)%vd=
var_desc(i)
3818 rst(ng)%pioVar(idfsur)%dkind=
pio_frst
3819 rst(ng)%pioVar(idfsur)%gtype=r2dvar
3820# ifdef PERFECT_RESTART
3821 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idrzet))) THEN
3822 got_var(idrzet)=.true.
3823 rst(ng)%pioVar(idrzet)%vd=
var_desc(i)
3824 rst(ng)%pioVar(idrzet)%dkind=
pio_frst
3825 rst(ng)%pioVar(idrzet)%gtype=r2dvar
3826# endif
3827 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idubar))) THEN
3828 got_var(idubar)=.true.
3829 rst(ng)%pioVar(idubar)%vd=
var_desc(i)
3830 rst(ng)%pioVar(idubar)%dkind=
pio_frst
3831 rst(ng)%pioVar(idubar)%gtype=u2dvar
3832# ifdef PERFECT_RESTART
3833 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idru2d))) THEN
3834 got_var(idru2d)=.true.
3835 rst(ng)%pioVar(idru2d)%vd=
var_desc(i)
3836 rst(ng)%pioVar(idru2d)%dkind=
pio_frst
3837 rst(ng)%pioVar(idru2d)%gtype=u2dvar
3838# endif
3839 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvbar))) THEN
3840 got_var(idvbar)=.true.
3841 rst(ng)%pioVar(idvbar)%vd=
var_desc(i)
3842 rst(ng)%pioVar(idvbar)%dkind=
pio_frst
3843 rst(ng)%pioVar(idvbar)%gtype=v2dvar
3844# ifdef PERFECT_RESTART
3845 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idrv2d))) THEN
3846 got_var(idrv2d)=.true.
3847 rst(ng)%pioVar(idrv2d)%vd=
var_desc(i)
3848 rst(ng)%pioVar(idrv2d)%dkind=
pio_frst
3849 rst(ng)%pioVar(idrv2d)%gtype=v2dvar
3850# endif
3851# ifdef SOLVE3D
3852 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduvel))) THEN
3853 got_var(iduvel)=.true.
3854 rst(ng)%pioVar(iduvel)%vd=
var_desc(i)
3855 rst(ng)%pioVar(iduvel)%dkind=
pio_frst
3856 rst(ng)%pioVar(iduvel)%gtype=u3dvar
3857# ifdef PERFECT_RESTART
3858 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idru3d))) THEN
3859 got_var(idru3d)=.true.
3860 rst(ng)%pioVar(idru3d)%vd=
var_desc(i)
3861 rst(ng)%pioVar(idru3d)%dkind=
pio_frst
3862 rst(ng)%pioVar(idru3d)%gtype=u3dvar
3863# endif
3864 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvvel))) THEN
3865 got_var(idvvel)=.true.
3866 rst(ng)%pioVar(idvvel)%vd=
var_desc(i)
3867 rst(ng)%pioVar(idvvel)%dkind=
pio_frst
3868 rst(ng)%pioVar(idvvel)%gtype=v3dvar
3869# ifdef PERFECT_RESTART
3870 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idrv3d))) THEN
3871 got_var(idrv3d)=.true.
3872 rst(ng)%pioVar(idrv3d)%vd=
var_desc(i)
3873 rst(ng)%pioVar(idrv3d)%dkind=
pio_frst
3874 rst(ng)%pioVar(idrv3d)%gtype=v3dvar
3875# endif
3876 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iddano))) THEN
3877 got_var(iddano)=.true.
3878 rst(ng)%pioVar(iddano)%vd=
var_desc(i)
3879 rst(ng)%pioVar(iddano)%dkind=
pio_frst
3880 rst(ng)%pioVar(iddano)%gtype=r3dvar
3881# ifdef LMD_SKPP
3882 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idhsbl))) THEN
3883 got_var(idhsbl)=.true.
3884 rst(ng)%pioVar(idhsbl)%vd=
var_desc(i)
3885 rst(ng)%pioVar(idhsbl)%dkind=
pio_frst
3886 rst(ng)%pioVar(idhsbl)%gtype=r2dvar
3887# endif
3888# ifdef LMD_BKPP
3889 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idhbbl))) THEN
3890 got_var(idhbbl)=.true.
3891 rst(ng)%pioVar(idhbbl)%vd=
var_desc(i)
3892 rst(ng)%pioVar(idhbbl)%dkind=
pio_frst
3893 rst(ng)%pioVar(idhbbl)%gtype=r2dvar
3894# endif
3895# if defined PERFECT_RESTART && defined LMD_NONLOCAL
3896 ELSE IF (trim(var_name(i)).eq. &
3897 & trim(vname(1,idghat(itemp)))) THEN
3898 got_var(idghat(itemp))=.true.
3899 rst(ng)%pioVar(idghat(itemp))%vd=
var_desc(i)
3900 rst(ng)%pioVar(idghat(itemp))%dkind=
pio_frst
3901 rst(ng)%pioVar(idghat(itemp))%gtype=w3dvar
3902# ifdef SALINITY
3903 ELSE IF (trim(var_name(i)).eq. &
3904 & trim(vname(1,idghat(isalt)))) THEN
3905 got_var(idghat(isalt))=.true.
3906 rst(ng)%pioVar(idghat(isalt))%vd=
var_desc(i)
3907 rst(ng)%pioVar(idghat(isalt))%dkind=
pio_frst
3908 rst(ng)%pioVar(idghat(isalt))%gtype=w3dvar
3909# endif
3910# endif
3911 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvvis))) THEN
3912 got_var(idvvis)=.true.
3913 rst(ng)%pioVar(idvvis)%vd=
var_desc(i)
3914 rst(ng)%pioVar(idvvis)%dkind=
pio_frst
3915 rst(ng)%pioVar(idvvis)%gtype=w3dvar
3916 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idtdif))) THEN
3917 got_var(idtdif)=.true.
3918 rst(ng)%pioVar(idtdif)%vd=
var_desc(i)
3919 rst(ng)%pioVar(idtdif)%dkind=
pio_frst
3920 rst(ng)%pioVar(idtdif)%gtype=w3dvar
3921 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idsdif))) THEN
3922 got_var(idsdif)=.true.
3923 rst(ng)%pioVar(idsdif)%vd=
var_desc(i)
3924 rst(ng)%pioVar(idsdif)%dkind=
pio_frst
3925 rst(ng)%pioVar(idsdif)%gtype=w3dvar
3926# if defined PERFECT_RESTART && \
3927 (defined gls_mixing || defined my25_mixing)
3928 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idmtke))) THEN
3929 got_var(idmtke)=.true.
3930 rst(ng)%pioVar(idmtke)%vd=
var_desc(i)
3931 rst(ng)%pioVar(idmtke)%dkind=
pio_frst
3932 rst(ng)%pioVar(idmtke)%gtype=w3dvar
3933 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idmtls))) THEN
3934 got_var(idmtls)=.true.
3935 rst(ng)%pioVar(idmtls)%vd=
var_desc(i)
3936 rst(ng)%pioVar(idmtls)%dkind=
pio_frst
3937 rst(ng)%pioVar(idmtls)%gtype=w3dvar
3938 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvmls))) THEN
3939 got_var(idvmls)=.true.
3940 rst(ng)%pioVar(idvmls)%vd=
var_desc(i)
3941 rst(ng)%pioVar(idvmls)%dkind=
pio_frst
3942 rst(ng)%pioVar(idvmls)%gtype=w3dvar
3943 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvmkk))) THEN
3944 got_var(idvmkk)=.true.
3945 rst(ng)%pioVar(idvmkk)%vd=
var_desc(i)
3946 rst(ng)%pioVar(idvmkk)%dkind=
pio_frst
3947 rst(ng)%pioVar(idvmkk)%gtype=w3dvar
3948# ifdef GLS_MIXING
3949 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvmkp))) THEN
3950 got_var(idvmkp)=.true.
3951 rst(ng)%pioVar(idvmkp)%vd=
var_desc(i)
3952 rst(ng)%pioVar(idvmkp)%dkind=
pio_frst
3953 rst(ng)%pioVar(idvmkp)%gtype=w3dvar
3954# endif
3955# endif
3956# endif
3957# ifdef WEC
3958 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idu2sd))) THEN
3959 got_var(idu2sd)=.true.
3960 rst(ng)%pioVar(idu2sd)%vd=
var_desc(i)
3961 rst(ng)%pioVar(idu2sd)%dkind=
pio_frst
3962 rst(ng)%pioVar(idu2sd)%gtype=u2dvar
3963 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idv2sd))) THEN
3964 got_var(idv2sd)=.true.
3965 rst(ng)%pioVar(idv2rs)%vd=
var_desc(i)
3966 rst(ng)%pioVar(idv2rs)%dkind=
pio_frst
3967 rst(ng)%pioVar(idv2rs)%gtype=v2dvar
3968# ifdef SOLVE3D
3969 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idu3sd))) THEN
3970 got_var(idu3sd)=.true.
3971 rst(ng)%pioVar(idu3sd)%vd=
var_desc(i)
3972 rst(ng)%pioVar(idu3sd)%dkind=
pio_frst
3973 rst(ng)%pioVar(idu3sd)%gtype=u3dvar
3974 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idv3sd))) THEN
3975 got_var(idv3sd)=.true.
3976 rst(ng)%pioVar(idv3sd)%vd=
var_desc(i)
3977 rst(ng)%pioVar(idv3sd)%dkind=
pio_frst
3978 rst(ng)%pioVar(idv3sd)%gtype=v3dvar
3979# endif
3980# endif
3981 END IF
3982# ifdef SOLVE3D
3983 DO itrc=1,nt(ng)
3984 IF (trim(var_name(i)).eq.trim(vname(1,idtvar(itrc)))) THEN
3985 got_var(idtvar(itrc))=.true.
3986 rst(ng)%pioTrc(itrc)%vd=
var_desc(i)
3987 rst(ng)%pioTrc(itrc)%dkind=
pio_frst
3988 rst(ng)%pioTrc(itrc)%gtype=r3dvar
3989 END IF
3990 END DO
3991# ifdef SEDIMENT
3992 DO itrc=1,nst
3993 IF (trim(var_name(i)).eq. &
3994 & trim(vname(1,idfrac(itrc)))) THEN
3995 got_var(idfrac(itrc))=.true.
3996 rst(ng)%pioVar(idfrac(itrc))%vd=
var_desc(i)
3997 rst(ng)%pioVar(idfrac(itrc))%dkind=
pio_frst
3998 rst(ng)%pioVar(idfrac(itrc))%gtype=b3dvar
3999 ELSE IF (trim(var_name(i)).eq. &
4000 & trim(vname(1,idbmas(itrc)))) THEN
4001 got_var(idbmas(itrc))=.true.
4002 rst(ng)%pioVar(idbmas(itrc))%vd=
var_desc(i)
4003 rst(ng)%pioVar(idbmas(itrc))%dkind=
pio_frst
4004 rst(ng)%pioVar(idbmas(itrc))%gtype=b3dvar
4005# ifdef BEDLOAD
4006 ELSE IF (trim(var_name(i)).eq. &
4007 & trim(vname(1,idubld(itrc)))) THEN
4008 got_var(idubld(itrc))=.true.
4009 rst(ng)%pioVar(idubld(itrc))%vd=
var_desc(i)
4010 rst(ng)%pioVar(idubld(itrc))%dkind=
pio_frst
4011 rst(ng)%pioVar(idubld(itrc))%gtype=u2dvar
4012 ELSE IF (trim(var_name(i)).eq. &
4013 & trim(vname(1,idvbld(itrc)))) THEN
4014 got_var(idvbld(itrc))=.true.
4015 rst(ng)%pioVar(idvbld(itrc))%vd=
var_desc(i)
4016 rst(ng)%pioVar(idvbld(itrc))%dkind=
pio_frst
4017 rst(ng)%pioVar(idvbld(itrc))%gtype=v2dvar
4018# endif
4019 END IF
4020 END DO
4021 DO itrc=1,mbedp
4022 IF (trim(var_name(i)).eq.trim(vname(1,idsbed(itrc)))) THEN
4023 got_var(idsbed(itrc))=.true.
4024 rst(ng)%pioVar(idsbed(itrc))%vd=
var_desc(i)
4025 rst(ng)%pioVar(idsbed(itrc))%dkind=
pio_frst
4026 rst(ng)%pioVar(idsbed(itrc))%gtype=b3dvar
4027 END IF
4028 END DO
4029# endif
4030# if defined SEDIMENT || defined BBL_MODEL
4031 DO itrc=1,6
4032 IF (trim(var_name(i)).eq.trim(vname(1,idbott(itrc)))) THEN
4033 got_var(idbott(itrc))=.true.
4034 rst(ng)%pioVar(idbott(itrc))%vd=
var_desc(i)
4035 rst(ng)%pioVar(idbott(itrc))%dkind=
pio_frst
4036 rst(ng)%pioVar(idbott(itrc))%gtype=r2dvar
4037 END IF
4038 END DO
4039# endif
4040# endif
4041 END DO
4042
4043
4044
4045
4046 IF (.not.got_var(idtime)) THEN
4047 IF (master) WRITE (stdout,60) trim(vname(1,idtime)), &
4048 & trim(ncname)
4049 exit_flag=3
4050 RETURN
4051 END IF
4052# if defined SEDIMENT && defined SED_MORPH
4053 IF (.not.got_var(idbath)) THEN
4054 IF (master) WRITE (stdout,60) trim(vname(1,idbath)), &
4055 & trim(ncname)
4056 exit_flag=3
4057 RETURN
4058 END IF
4059# endif
4060# if defined WET_DRY
4061 IF (.not.got_var(idrwet)) THEN
4062 IF (master) WRITE (stdout,60) trim(vname(1,idrwet)), &
4063 & trim(ncname)
4064 exit_flag=3
4065 RETURN
4066 END IF
4067 IF (.not.got_var(iduwet)) THEN
4068 IF (master) WRITE (stdout,60) trim(vname(1,iduwet)), &
4069 & trim(ncname)
4070 exit_flag=3
4071 RETURN
4072 END IF
4073 IF (.not.got_var(idvwet)) THEN
4074 IF (master) WRITE (stdout,60) trim(vname(1,idvwet)), &
4075 & trim(ncname)
4076 exit_flag=3
4077 RETURN
4078 END IF
4079 IF (.not.got_var(idpwet)) THEN
4080 IF (master) WRITE (stdout,60) trim(vname(1,idpwet)), &
4081 & trim(ncname)
4082 exit_flag=3
4083 RETURN
4084 END IF
4085# endif
4086 IF (.not.got_var(idfsur)) THEN
4087 IF (master) WRITE (stdout,60) trim(vname(1,idfsur)), &
4088 & trim(ncname)
4089 exit_flag=3
4090 RETURN
4091 END IF
4092# ifdef PERFECT_RESTART
4093 IF (.not.got_var(idrzet)) THEN
4094 IF (master) WRITE (stdout,60) trim(vname(1,idrzet)), &
4095 & trim(ncname)
4096 exit_flag=3
4097 RETURN
4098 END IF
4099# endif
4100 IF (.not.got_var(idubar)) THEN
4101 IF (master) WRITE (stdout,60) trim(vname(1,idubar)), &
4102 & trim(ncname)
4103 exit_flag=3
4104 RETURN
4105 END IF
4106# ifdef PERFECT_RESTART
4107 IF (.not.got_var(idru2d)) THEN
4108 IF (master) WRITE (stdout,60) trim(vname(1,idru2d)), &
4109 & trim(ncname)
4110 exit_flag=3
4111 RETURN
4112 END IF
4113# endif
4114 IF (.not.got_var(idvbar)) THEN
4115 IF (master) WRITE (stdout,60) trim(vname(1,idvbar)), &
4116 & trim(ncname)
4117 exit_flag=3
4118 RETURN
4119 END IF
4120# ifdef PERFECT_RESTART
4121 IF (.not.got_var(idrv2d)) THEN
4122 IF (master) WRITE (stdout,60) trim(vname(1,idrv2d)), &
4123 & trim(ncname)
4124 exit_flag=3
4125 RETURN
4126 END IF
4127# endif
4128# ifdef SOLVE3D
4129 IF (.not.got_var(iduvel)) THEN
4130 IF (master) WRITE (stdout,60) trim(vname(1,iduvel)), &
4131 & trim(ncname)
4132 exit_flag=3
4133 RETURN
4134 END IF
4135# ifdef PERFECT_RESTART
4136 IF (.not.got_var(idru3d)) THEN
4137 IF (master) WRITE (stdout,60) trim(vname(1,idru3d)), &
4138 & trim(ncname)
4139 exit_flag=3
4140 RETURN
4141 END IF
4142# endif
4143 IF (.not.got_var(idvvel)) THEN
4144 IF (master) WRITE (stdout,60) trim(vname(1,idvvel)), &
4145 & trim(ncname)
4146 exit_flag=3
4147 RETURN
4148 END IF
4149# ifdef PERFECT_RESTART
4150 IF (.not.got_var(idrv3d)) THEN
4151 IF (master) WRITE (stdout,60) trim(vname(1,idrv3d)), &
4152 & trim(ncname)
4153 exit_flag=3
4154 RETURN
4155 END IF
4156# endif
4157 IF (.not.got_var(iddano)) THEN
4158 IF (master) WRITE (stdout,60) trim(vname(1,iddano)), &
4159 & trim(ncname)
4160 exit_flag=3
4161 RETURN
4162 END IF
4163# if defined PERFECT_RESTART && \
4164 (defined gls_mixing || defined my25_mixing)
4165 IF (.not.got_var(idmtke)) THEN
4166 IF (master) WRITE (stdout,60) trim(vname(1,idmtke)), &
4167 & trim(ncname)
4168 exit_flag=3
4169 RETURN
4170 END IF
4171 IF (.not.got_var(idmtls)) THEN
4172 IF (master) WRITE (stdout,60) trim(vname(1,idmtls)), &
4173 & trim(ncname)
4174 exit_flag=3
4175 RETURN
4176 END IF
4177 IF (.not.got_var(idvmls)) THEN
4178 IF (master) WRITE (stdout,60) trim(vname(1,idvmls)), &
4179 & trim(ncname)
4180 exit_flag=3
4181 RETURN
4182 END IF
4183 IF (.not.got_var(idvmkk)) THEN
4184 IF (master) WRITE (stdout,60) trim(vname(1,idvmkk)), &
4185 & trim(ncname)
4186 exit_flag=3
4187 RETURN
4188 END IF
4189# ifdef GLS_MIXING
4190 IF (.not.got_var(idvmkp)) THEN
4191 IF (master) WRITE (stdout,60) trim(vname(1,idvmkp)), &
4192 & trim(ncname)
4193 exit_flag=3
4194 RETURN
4195 END IF
4196# endif
4197# endif
4198# endif
4199# ifdef WEC
4200 IF (.not.got_var(idu2sd)) THEN
4201 IF (master) WRITE (stdout,60) trim(vname(1,idu2sd)), &
4202 & trim(ncname)
4203 exit_flag=3
4204 RETURN
4205 END IF
4206 IF (.not.got_var(idv2sd)) THEN
4207 IF (master) WRITE (stdout,60) trim(vname(1,idv2sd)), &
4208 & trim(ncname)
4209 exit_flag=3
4210 RETURN
4211 END IF
4212# ifdef SOLVE3D
4213 IF (.not.got_var(idu3sd)) THEN
4214 IF (master) WRITE (stdout,60) trim(vname(1,idu3sd)), &
4215 & trim(ncname)
4216 exit_flag=3
4217 RETURN
4218 END IF
4219 IF (.not.got_var(idv3sd)) THEN
4220 IF (master) WRITE (stdout,60) trim(vname(1,idv3sd)), &
4221 & trim(ncname)
4222 exit_flag=3
4223 RETURN
4224 END IF
4225# endif
4226# endif
4227# ifdef SOLVE3D
4228 DO itrc=1,nt(ng)
4229 IF (.not.got_var(idtvar(itrc))) THEN
4230 IF (master) WRITE (stdout,60) trim(vname(1,idtvar(itrc))), &
4231 & trim(ncname)
4232 exit_flag=3
4233 RETURN
4234 END IF
4235 END DO
4236# ifdef SEDIMENT
4237 DO i=1,nst
4238 IF (.not.got_var(idfrac(i))) THEN
4239 IF (master) WRITE (stdout,60) trim(vname(1,idfrac(i))), &
4240 & trim(ncname)
4241 exit_flag=3
4242 RETURN
4243 END IF
4244 IF (.not.got_var(idbmas(i))) THEN
4245 IF (master) WRITE (stdout,60) trim(vname(1,idbmas(i))), &
4246 & trim(ncname)
4247 exit_flag=3
4248 RETURN
4249 END IF
4250# ifdef BEDLOAD
4251 IF (.not.got_var(idubld(i))) THEN
4252 IF (master) WRITE (stdout,60) trim(vname(1,idubld(i))), &
4253 & trim(ncname)
4254 exit_flag=3
4255 RETURN
4256 END IF
4257 IF (.not.got_var(idvbld(i))) THEN
4258 IF (master) WRITE (stdout,60) trim(vname(1,idvbld(i))), &
4259 & trim(ncname)
4260 exit_flag=3
4261 RETURN
4262 END IF
4263# endif
4264 END DO
4265 DO i=1,mbedp
4266 IF (.not.got_var(idsbed(i))) THEN
4267 IF (master) WRITE (stdout,60) trim(vname(1,idsbed(i))), &
4268 & trim(ncname)
4269 exit_flag=3
4270 RETURN
4271 END IF
4272 END DO
4273# endif
4274# if defined SEDIMENT || defined BBL_MODEL
4275 DO i=1,6
4276 IF (.not.got_var(idbott(i))) THEN
4277 IF (master) WRITE (stdout,60) trim(vname(1,idbott(i))), &
4278 & trim(ncname)
4279 exit_flag=3
4280 RETURN
4281 END IF
4282 END DO
4283# endif
4284# endif
4285# ifdef ICE_MODEL
4286
4287
4288
4289
4290 CALL ice_def_pio (ng, model, ldefine, hout, rst)
4291# endif
4292
4293
4294
4295 IF (lcyclerst(ng)) THEN
4296 rst(ng)%Rindex=0
4297 ELSE
4298 rst(ng)%Rindex=rec_size
4299 END IF
4300 END IF query
4301
4302 10 FORMAT (2x,'DEF_RST_PIO - creating restart file,',t56, &
4303 & 'Grid ',i2.2,': ',a)
4304 20 FORMAT (2x,'DEF_RST_PIO - inquiring restart file,',t56, &
4305 & 'Grid ',i2.2,': ',a)
4306 30 FORMAT (/,' DEF_RST_PIO - unable to create restart NetCDF', &
4307 & ' file:',a)
4308 40 FORMAT (1pe11.4,1x,'millimeter')
4309 50 FORMAT (/,' DEF_RST_PIO - unable to open restart NetCDF', &
4310 & ' file: ',a)
4311 60 FORMAT (/,' DEF_RST_PIO - unable to find variable: ',a,2x, &
4312 & ' in restart NetCDF file: ',a)
4313
4314 RETURN
integer, parameter pio_fout
type(var_desc_t), dimension(:), pointer var_desc
integer, parameter pio_frst
subroutine, public pio_netcdf_create(ng, model, ncname, piofile)
subroutine, public pio_netcdf_inq_var(ng, model, ncname, piofile, myvarname, searchvar, piovar, nvardim, nvaratt)
subroutine, public pio_netcdf_open(ng, model, ncname, omode, piofile)
subroutine, public pio_netcdf_check_dim(ng, model, ncname, piofile)
integer, parameter pio_tout
subroutine, public pio_netcdf_enddef(ng, model, ncname, piofile)