2239
2240
2242
2243
2244
2245 logical, intent(in) :: ldef
2246 integer, intent(in) :: ng, model
2247
2248
2249
2250 logical :: got_var(NV)
2251
2252 integer, parameter :: Natt = 25
2253
2254 integer :: i, j, ifield, itrc, nvd3, nvd4, varid
2255 integer :: recdim, status
2256# ifdef ADJUST_BOUNDARY
2257 integer :: IorJdim
2258# endif
2259 integer :: DimIDs(nDimID)
2260 integer :: t2dgrd(3), u2dgrd(3), v2dgrd(3)
2261
2262# ifdef SOLVE3D
2263# ifdef SEDIMENT
2264 integer :: b3dgrd(4)
2265# endif
2266 integer :: t3dgrd(4), u3dgrd(4), v3dgrd(4), w3dgrd(4)
2267# endif
2268# ifdef WET_DRY
2269 integer :: sp2dgrd(3)
2270# endif
2271
2272 real(r8) :: Aval(6)
2273
2274 character (len=256) :: ncname
2275 character (len=MaxLen) :: Vinfo(Natt)
2276
2277 character (len=*), parameter :: MyFile = &
2278 & __FILE__//", def_quick_pio"
2279
2280 sourcefile=myfile
2281
2282
2283
2284
2285
2286 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2287 ncname=qck(ng)%name
2288
2289 IF (master) THEN
2290 IF (ldef) THEN
2291 WRITE (stdout,10) ng, trim(ncname)
2292 ELSE
2293 WRITE (stdout,20) ng, trim(ncname)
2294 END IF
2295 END IF
2296
2297
2298
2299
2300
2301 define : IF (ldef) THEN
2303 IF (founderror(exit_flag, noerror, __line__, myfile)) THEN
2304 IF (master) WRITE (stdout,30) trim(ncname)
2305 RETURN
2306 END IF
2307
2308
2309
2310
2311
2312 dimids=0
2313
2314 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'xi_rho', &
2315 & iobounds(ng)%xi_rho, dimids( 1))
2316 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2317
2318 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'xi_u', &
2319 & iobounds(ng)%xi_u, dimids( 2))
2320 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2321
2322 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'xi_v', &
2323 & iobounds(ng)%xi_v, dimids( 3))
2324 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2325
2326 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'xi_psi', &
2327 & iobounds(ng)%xi_psi, dimids( 4))
2328 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2329
2330 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'eta_rho', &
2331 & iobounds(ng)%eta_rho, dimids( 5))
2332 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2333
2334 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'eta_u', &
2335 & iobounds(ng)%eta_u, dimids( 6))
2336 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2337
2338 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'eta_v', &
2339 & iobounds(ng)%eta_v, dimids( 7))
2340 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2341
2342 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'eta_psi', &
2343 & iobounds(ng)%eta_psi, dimids( 8))
2344 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2345
2346# ifdef ADJUST_BOUNDARY
2347 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'IorJ', &
2348 & iobounds(ng)%IorJ, iorjdim)
2349 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2350# endif
2351
2352# if defined WRITE_WATER && defined MASKING
2353 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'xy_rho', &
2354 & iobounds(ng)%xy_rho, dimids(17))
2355 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2356
2357 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'xy_u', &
2358 & iobounds(ng)%xy_u, dimids(18))
2359 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2360
2361 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'xy_v', &
2362 & iobounds(ng)%xy_v, dimids(19))
2363 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2364# endif
2365
2366# ifdef SOLVE3D
2367# if defined WRITE_WATER && defined MASKING
2368 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'xyz_rho', &
2369 & iobounds(ng)%xy_rho*n(ng), dimids(20))
2370 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2371
2372 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'xyz_u', &
2373 & iobounds(ng)%xy_u*n(ng), dimids(21))
2374 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2375
2376 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'xyz_v', &
2377 & iobounds(ng)%xy_v*n(ng), dimids(22))
2378 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2379
2380 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'xyz_w', &
2381 & iobounds(ng)%xy_rho*(n(ng)+1), dimids(23))
2382 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2383# endif
2384
2385 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'N', &
2386 & n(ng), dimids( 9))
2387 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2388
2389 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 's_rho', &
2390 & n(ng), dimids( 9))
2391 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2392
2393 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 's_w', &
2394 & n(ng)+1, dimids(10))
2395 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2396
2397 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'tracer', &
2398 & nt(ng), dimids(11))
2399 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2400
2401# ifdef SEDIMENT
2402 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'NST', &
2403 & nst, dimids(32))
2404 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2405
2406 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'Nbed', &
2407 & nbed, dimids(16))
2408 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2409
2410# if defined WRITE_WATER && defined MASKING
2411 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'xybed', &
2412 & iobounds(ng)%xy_rho*nbed, dimids(24))
2413 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2414# endif
2415# endif
2416
2417# ifdef ECOSIM
2418 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'Nbands', &
2419 & nbands, dimids(33))
2420 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2421
2422 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'Nphy', &
2423 & nphy, dimids(25))
2424 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2425
2426 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'Nbac', &
2427 & nbac, dimids(26))
2428 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2429
2430 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'Ndom', &
2431 & ndom, dimids(27))
2432 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2433
2434 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'Nfec', &
2435 & nfec, dimids(28))
2436 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2437# endif
2438# endif
2439
2440 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'boundary', &
2441 & 4, dimids(14))
2442 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2443
2444# ifdef FOUR_DVAR
2445 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'Nstate', &
2446 & nstatevar(ng), dimids(29))
2447 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2448# endif
2449
2450# ifdef ADJUST_BOUNDARY
2451 status=def_dim(ng, model, qck(ng)%pioFile, ncname, 'obc_adjust',&
2452 & nbrec(ng), dimids(31))
2453 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2454# endif
2455
2456 status=def_dim(ng, model, qck(ng)%pioFile, ncname, &
2457 & trim(adjustl(vname(5,idtime))), &
2458 & pio_unlimited, dimids(12))
2459 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2460
2461 recdim=dimids(12)
2462
2463
2464
2465# if defined WRITE_WATER && defined MASKING
2466 nvd3=2
2467 nvd4=2
2468# else
2469 nvd3=3
2470 nvd4=4
2471# endif
2472
2473
2474
2475# if defined WRITE_WATER && defined MASKING
2476 t2dgrd(1)=dimids(17)
2477 t2dgrd(2)=dimids(12)
2478# ifdef SOLVE3D
2479 t3dgrd(1)=dimids(20)
2480 t3dgrd(2)=dimids(12)
2481# endif
2482# else
2483 t2dgrd(1)=dimids( 1)
2484 t2dgrd(2)=dimids( 5)
2485 t2dgrd(3)=dimids(12)
2486# ifdef SOLVE3D
2487 t3dgrd(1)=dimids( 1)
2488 t3dgrd(2)=dimids( 5)
2489 t3dgrd(3)=dimids( 9)
2490 t3dgrd(4)=dimids(12)
2491# endif
2492# endif
2493# ifdef WET_DRY
2494
2495
2496
2497 sp2dgrd(1)=dimids( 4)
2498 sp2dgrd(2)=dimids( 8)
2499 sp2dgrd(3)=dimids(12)
2500# endif
2501
2502
2503
2504# if defined WRITE_WATER && defined MASKING
2505 u2dgrd(1)=dimids(18)
2506 u2dgrd(2)=dimids(12)
2507# ifdef SOLVE3D
2508 u3dgrd(1)=dimids(21)
2509 u3dgrd(2)=dimids(12)
2510# endif
2511# else
2512 u2dgrd(1)=dimids( 2)
2513 u2dgrd(2)=dimids( 6)
2514 u2dgrd(3)=dimids(12)
2515# ifdef SOLVE3D
2516 u3dgrd(1)=dimids( 2)
2517 u3dgrd(2)=dimids( 6)
2518 u3dgrd(3)=dimids( 9)
2519 u3dgrd(4)=dimids(12)
2520# endif
2521# endif
2522
2523
2524
2525# if defined WRITE_WATER && defined MASKING
2526 v2dgrd(1)=dimids(19)
2527 v2dgrd(2)=dimids(12)
2528# ifdef SOLVE3D
2529 v3dgrd(1)=dimids(22)
2530 v3dgrd(2)=dimids(12)
2531# endif
2532# else
2533 v2dgrd(1)=dimids( 3)
2534 v2dgrd(2)=dimids( 7)
2535 v2dgrd(3)=dimids(12)
2536# ifdef SOLVE3D
2537 v3dgrd(1)=dimids( 3)
2538 v3dgrd(2)=dimids( 7)
2539 v3dgrd(3)=dimids( 9)
2540 v3dgrd(4)=dimids(12)
2541# endif
2542# endif
2543# ifdef SOLVE3D
2544
2545
2546
2547# if defined WRITE_WATER && defined MASKING
2548 w3dgrd(1)=dimids(23)
2549 w3dgrd(2)=dimids(12)
2550# else
2551 w3dgrd(1)=dimids( 1)
2552 w3dgrd(2)=dimids( 5)
2553 w3dgrd(3)=dimids(10)
2554 w3dgrd(4)=dimids(12)
2555# endif
2556# ifdef SEDIMENT
2557
2558
2559
2560# if defined WRITE_WATER && defined MASKING
2561 b3dgrd(1)=dimids(24)
2562 b3dgrd(2)=dimids(12)
2563# else
2564 b3dgrd(1)=dimids( 1)
2565 b3dgrd(2)=dimids( 5)
2566 b3dgrd(3)=dimids(16)
2567 b3dgrd(4)=dimids(12)
2568# endif
2569# endif
2570# endif
2571
2572
2573
2574 qck(ng)%Rindex=0
2575
2576
2577
2578 DO i=1,natt
2579 DO j=1,len(vinfo(1))
2580 vinfo(i)(j:j)=' '
2581 END DO
2582 END DO
2583 DO i=1,6
2584 aval(i)=0.0_r8
2585 END DO
2586
2587
2588
2589
2590
2591 CALL def_info (ng, model, qck(ng)%pioFile, ncname, dimids)
2592 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2593
2594
2595
2596
2597
2598
2599
2600 vinfo( 1)=vname(1,idtime)
2601 vinfo( 2)=vname(2,idtime)
2602 WRITE (vinfo( 3),'(a,a)') 'seconds since ', trim(rclock%string)
2603 vinfo( 4)=trim(rclock%calendar)
2604 vinfo(14)=vname(4,idtime)
2605 vinfo(21)=vname(6,idtime)
2606 qck(ng)%pioVar(idtime)%dkind=
pio_tout
2607 qck(ng)%pioVar(idtime)%gtype=0
2608
2609 status=def_var(ng, model, qck(ng)%pioFile, &
2610 & qck(ng)%pioVar(idtime)%vd, &
2611 &
pio_tout, 1, (/recdim/), aval, vinfo, ncname, &
2612 & setparaccess = .true.)
2613 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2614
2615# ifdef WET_DRY
2616
2617
2618
2619 vinfo( 1)=vname(1,idpwet)
2620 vinfo( 2)=vname(2,idpwet)
2621 vinfo( 3)=vname(3,idpwet)
2622 vinfo( 9)='land'
2623 vinfo(10)='water'
2624 vinfo(14)=vname(4,idpwet)
2625 vinfo(16)=vname(1,idtime)
2626 vinfo(21)=vname(6,idpwet)
2627 vinfo(22)='coordinates'
2628 aval(5)=real(iinfo(1,idpwet,ng),r8)
2629 qck(ng)%pioVar(idpwet)%dkind=
pio_fout
2630 qck(ng)%pioVar(idpwet)%gtype=p2dvar
2631
2632 status=def_var(ng, model, qck(ng)%pioFile, &
2633 & qck(ng)%pioVar(idpwet)%vd, &
2634 &
pio_fout, nvd3, sp2dgrd, aval, vinfo, ncname, &
2635 & setfillval = .false.)
2636 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2637
2638
2639
2640 vinfo( 1)=vname(1,idrwet)
2641 vinfo( 2)=vname(2,idrwet)
2642 vinfo( 3)=vname(3,idrwet)
2643 vinfo( 9)='land'
2644 vinfo(10)='water'
2645 vinfo(14)=vname(4,idrwet)
2646 vinfo(16)=vname(1,idtime)
2647 vinfo(21)=vname(6,idrwet)
2648 vinfo(22)='coordinates'
2649 aval(5)=real(iinfo(1,idrwet,ng),r8)
2650 qck(ng)%pioVar(idrwet)%dkind=
pio_fout
2651 qck(ng)%pioVar(idrwet)%gtype=r2dvar
2652
2653 status=def_var(ng, model, qck(ng)%pioFile, &
2654 & qck(ng)%pioVar(idrwet)%vd, &
2655 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname, &
2656 & setfillval = .false.)
2657 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2658
2659
2660
2661 vinfo( 1)=vname(1,iduwet)
2662 vinfo( 2)=vname(2,iduwet)
2663 vinfo( 3)=vname(3,iduwet)
2664 vinfo( 9)='land'
2665 vinfo(10)='water'
2666 vinfo(14)=vname(4,iduwet)
2667 vinfo(16)=vname(1,idtime)
2668 vinfo(21)=vname(6,iduwet)
2669 vinfo(22)='coordinates'
2670 aval(5)=real(iinfo(1,iduwet,ng),r8)
2671 qck(ng)%pioVar(iduwet)%dkind=
pio_fout
2672 qck(ng)%pioVar(iduwet)%gtype=u2dvar
2673
2674 status=def_var(ng, model, qck(ng)%pioFile, &
2675 & qck(ng)%pioVar(iduwet)%vd, &
2676 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname, &
2677 & setfillval = .false.)
2678 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2679
2680
2681
2682 vinfo( 1)=vname(1,idvwet)
2683 vinfo( 2)=vname(2,idvwet)
2684 vinfo( 3)=vname(3,idvwet)
2685 vinfo(14)=vname(4,idvwet)
2686 vinfo(16)=vname(1,idtime)
2687 vinfo( 9)='land'
2688 vinfo(10)='water'
2689 vinfo(21)=vname(6,idvwet)
2690 vinfo(22)='coordinates'
2691 aval(5)=real(iinfo(1,idvwet,ng),r8)
2692 qck(ng)%pioVar(idvwet)%dkind=
pio_fout
2693 qck(ng)%pioVar(idvwet)%gtype=v2dvar
2694
2695 status=def_var(ng, model, qck(ng)%pioFile, &
2696 & qck(ng)%pioVar(idvwet)%vd, &
2697 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname, &
2698 & setfillval = .false.)
2699 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2700# endif
2701# ifdef SOLVE3D
2702
2703
2704
2705 IF (qout(idpthr,ng)) THEN
2706 vinfo( 1)=vname(1,idpthr)
2707 WRITE (vinfo( 2),40) trim(vname(2,idpthr))
2708 vinfo( 3)=vname(3,idpthr)
2709 vinfo(14)=vname(4,idpthr)
2710 vinfo(16)=vname(1,idtime)
2711# if defined WRITE_WATER && defined MASKING
2712 vinfo(20)='mask_rho'
2713# endif
2714 vinfo(21)=vname(6,idpthr)
2715 vinfo(22)='coordinates'
2716 aval(5)=real(iinfo(1,idpthr,ng),r8)
2717 qck(ng)%pioVar(idpthr)%dkind=
pio_fout
2718 qck(ng)%pioVar(idpthr)%gtype=r3dvar
2719
2720 status=def_var(ng, model, qck(ng)%pioFile, &
2721 & qck(ng)%pioVar(idpthr)%vd, &
2722 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname, &
2723 & setfillval = .false.)
2724 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2725 END IF
2726
2727
2728
2729 IF (qout(idpthu,ng)) THEN
2730 vinfo( 1)=vname(1,idpthu)
2731 WRITE (vinfo( 2),40) trim(vname(2,idpthu))
2732 vinfo( 3)=vname(3,idpthu)
2733 vinfo(14)=vname(4,idpthu)
2734 vinfo(16)=vname(1,idtime)
2735# if defined WRITE_WATER && defined MASKING
2736 vinfo(20)='mask_u'
2737# endif
2738 vinfo(21)=vname(6,idpthu)
2739 vinfo(22)='coordinates'
2740 aval(5)=real(iinfo(1,idpthu,ng),r8)
2741 qck(ng)%pioVar(idpthu)%dkind=
pio_fout
2742 qck(ng)%pioVar(idpthu)%gtype=u3dvar
2743
2744 status=def_var(ng, model, qck(ng)%pioFile, &
2745 & qck(ng)%pioVar(idpthu)%vd, &
2746 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname, &
2747 & setfillval = .false.)
2748 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2749 END IF
2750
2751
2752
2753 IF (qout(idpthv,ng)) THEN
2754 vinfo( 1)=vname(1,idpthv)
2755 WRITE (vinfo( 2),40) trim(vname(2,idpthv))
2756 vinfo( 3)=vname(3,idpthv)
2757 vinfo(14)=vname(4,idpthv)
2758 vinfo(16)=vname(1,idtime)
2759# if defined WRITE_WATER && defined MASKING
2760 vinfo(20)='mask_v'
2761# endif
2762 vinfo(21)=vname(6,idpthv)
2763 vinfo(22)='coordinates'
2764 aval(5)=real(iinfo(1,idpthv,ng),r8)
2765 qck(ng)%pioVar(idpthv)%dkind=
pio_fout
2766 qck(ng)%pioVar(idpthv)%gtype=v3dvar
2767
2768 status=def_var(ng, model, qck(ng)%pioFile, &
2769 & qck(ng)%pioVar(idpthv)%vd, &
2770 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname, &
2771 & setfillval = .false.)
2772 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2773 END IF
2774
2775
2776
2777 IF (qout(idpthw,ng)) THEN
2778 vinfo( 1)=vname(1,idpthw)
2779 WRITE (vinfo( 2),40) trim(vname(2,idpthw))
2780 vinfo( 3)=vname(3,idpthw)
2781 vinfo(14)=vname(4,idpthw)
2782 vinfo(16)=vname(1,idtime)
2783# if defined WRITE_WATER && defined MASKING
2784 vinfo(20)='mask_rho'
2785# endif
2786 vinfo(21)=vname(6,idpthw)
2787 vinfo(22)='coordinates'
2788 aval(5)=real(iinfo(1,idpthw,ng),r8)
2789 qck(ng)%pioVar(idpthw)%dkind=
pio_fout
2790 qck(ng)%pioVar(idpthw)%gtype=w3dvar
2791
2792 status=def_var(ng, model, qck(ng)%pioFile, &
2793 & qck(ng)%pioVar(idpthw)%vd, &
2794 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
2795 & setfillval = .false.)
2796 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2797 END IF
2798# endif
2799
2800
2801
2802 IF (qout(idfsur,ng)) THEN
2803 vinfo( 1)=vname(1,idfsur)
2804 vinfo( 2)=vname(2,idfsur)
2805 vinfo( 3)=vname(3,idfsur)
2806 vinfo(14)=vname(4,idfsur)
2807 vinfo(16)=vname(1,idtime)
2808# if defined WRITE_WATER && defined MASKING
2809 vinfo(20)='mask_rho'
2810# endif
2811 vinfo(21)=vname(6,idfsur)
2812 vinfo(22)='coordinates'
2813 aval(5)=real(iinfo(1,idfsur,ng),r8)
2814 qck(ng)%pioVar(idfsur)%dkind=
pio_fout
2815 qck(ng)%pioVar(idfsur)%gtype=r2dvar
2816
2817 status=def_var(ng, model, qck(ng)%pioFile, &
2818 & qck(ng)%pioVar(idfsur)%vd, &
2819# ifdef WET_DRY
2820 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname, &
2821 & setfillval = .false.)
2822# else
2823 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
2824# endif
2825 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2826 END IF
2827
2828
2829
2830 IF (qout(idubar,ng)) THEN
2831 vinfo( 1)=vname(1,idubar)
2832 vinfo( 2)=vname(2,idubar)
2833 vinfo( 3)=vname(3,idubar)
2834 vinfo(14)=vname(4,idubar)
2835 vinfo(16)=vname(1,idtime)
2836# if defined WRITE_WATER && defined MASKING
2837 vinfo(20)='mask_u'
2838# endif
2839 vinfo(21)=vname(6,idubar)
2840 vinfo(22)='coordinates'
2841 aval(5)=real(iinfo(1,idubar,ng),r8)
2842 qck(ng)%pioVar(idubar)%dkind=
pio_fout
2843 qck(ng)%pioVar(idubar)%gtype=u2dvar
2844
2845 status=def_var(ng, model, qck(ng)%pioFile, &
2846 & qck(ng)%pioVar(idubar)%vd, &
2847 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
2848 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2849 END IF
2850
2851
2852
2853 IF (qout(idvbar,ng)) THEN
2854 vinfo( 1)=vname(1,idvbar)
2855 vinfo( 2)=vname(2,idvbar)
2856 vinfo( 3)=vname(3,idvbar)
2857 vinfo(14)=vname(4,idvbar)
2858 vinfo(16)=vname(1,idtime)
2859# if defined WRITE_WATER && defined MASKING
2860 vinfo(20)='mask_v'
2861# endif
2862 vinfo(21)=vname(6,idvbar)
2863 vinfo(22)='coordinates'
2864 aval(5)=real(iinfo(1,idvbar,ng),r8)
2865 qck(ng)%pioVar(idvbar)%dkind=
pio_fout
2866 qck(ng)%pioVar(idvbar)%gtype=v2dvar
2867
2868 status=def_var(ng, model, qck(ng)%pioFile, &
2869 & qck(ng)%pioVar(idvbar)%vd, &
2870 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
2871 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2872 END IF
2873
2874
2875
2876 IF (qout(idu2de,ng)) THEN
2877 vinfo( 1)=vname(1,idu2de)
2878 vinfo( 2)=vname(2,idu2de)
2879 vinfo( 3)=vname(3,idu2de)
2880 vinfo(14)=vname(4,idu2de)
2881 vinfo(16)=vname(1,idtime)
2882# if defined WRITE_WATER && defined MASKING
2883 vinfo(20)='mask_rho'
2884# endif
2885 vinfo(21)=vname(6,idu2de)
2886 vinfo(22)='coordinates'
2887 aval(5)=real(iinfo(1,idu2de,ng),r8)
2888 qck(ng)%pioVar(idu2de)%dkind=
pio_fout
2889 qck(ng)%pioVar(idu2de)%gtype=r2dvar
2890
2891 status=def_var(ng, model, qck(ng)%pioFile, &
2892 & qck(ng)%pioVar(idu2de)%vd, &
2893 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
2894 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2895 END IF
2896
2897
2898
2899 IF (qout(idv2dn,ng)) THEN
2900 vinfo( 1)=vname(1,idv2dn)
2901 vinfo( 2)=vname(2,idv2dn)
2902 vinfo( 3)=vname(3,idv2dn)
2903 vinfo(14)=vname(4,idv2dn)
2904 vinfo(16)=vname(1,idtime)
2905# if defined WRITE_WATER && defined MASKING
2906 vinfo(20)='mask_rho'
2907# endif
2908 vinfo(21)=vname(6,idv2dn)
2909 vinfo(22)='coordinates'
2910 aval(5)=real(iinfo(1,idv2dn,ng),r8)
2911 qck(ng)%pioVar(idv2dn)%dkind=
pio_fout
2912 qck(ng)%pioVar(idv2dn)%gtype=r2dvar
2913
2914 status=def_var(ng, model, qck(ng)%pioFile, &
2915 & qck(ng)%pioVar(idv2dn)%vd, &
2916 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
2917 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2918 END IF
2919
2920# ifdef SOLVE3D
2921
2922
2923
2924 IF (qout(iduvel,ng)) THEN
2925 vinfo( 1)=vname(1,iduvel)
2926 vinfo( 2)=vname(2,iduvel)
2927 vinfo( 3)=vname(3,iduvel)
2928 vinfo(14)=vname(4,iduvel)
2929 vinfo(16)=vname(1,idtime)
2930# if defined WRITE_WATER && defined MASKING
2931 vinfo(20)='mask_u'
2932# endif
2933 vinfo(21)=vname(6,iduvel)
2934 vinfo(22)='coordinates'
2935 aval(5)=real(iinfo(1,iduvel,ng),r8)
2936 qck(ng)%pioVar(iduvel)%dkind=
pio_fout
2937 qck(ng)%pioVar(iduvel)%gtype=u3dvar
2938
2939 status=def_var(ng, model, qck(ng)%pioFile, &
2940 & qck(ng)%pioVar(iduvel)%vd, &
2941 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
2942 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2943 END IF
2944
2945
2946
2947 IF (qout(idvvel,ng)) THEN
2948 vinfo( 1)=vname(1,idvvel)
2949 vinfo( 2)=vname(2,idvvel)
2950 vinfo( 3)=vname(3,idvvel)
2951 vinfo(14)=vname(4,idvvel)
2952 vinfo(16)=vname(1,idtime)
2953# if defined WRITE_WATER && defined MASKING
2954 vinfo(20)='mask_v'
2955# endif
2956 vinfo(21)=vname(6,idvvel)
2957 vinfo(22)='coordinates'
2958 aval(5)=real(iinfo(1,idvvel,ng),r8)
2959 qck(ng)%pioVar(idvvel)%dkind=
pio_fout
2960 qck(ng)%pioVar(idvvel)%gtype=v3dvar
2961
2962 status=def_var(ng, model, qck(ng)%pioFile, &
2963 & qck(ng)%pioVar(idvvel)%vd, &
2964 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
2965 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2966 END IF
2967
2968
2969
2970 IF (qout(idusur,ng)) THEN
2971 vinfo( 1)=vname(1,idusur)
2972 vinfo( 2)=vname(2,idusur)
2973 vinfo( 3)=vname(3,idusur)
2974 vinfo(14)=vname(4,idusur)
2975 vinfo(16)=vname(1,idtime)
2976# if defined WRITE_WATER && defined MASKING
2977 vinfo(20)='mask_u'
2978# endif
2979 vinfo(21)=vname(6,idusur)
2980 vinfo(22)='coordinates'
2981 aval(5)=real(iinfo(1,idusur,ng),r8)
2982 qck(ng)%pioVar(idusur)%dkind=
pio_fout
2983 qck(ng)%pioVar(idusur)%gtype=u2dvar
2984
2985 status=def_var(ng, model, qck(ng)%pioFile, &
2986 & qck(ng)%pioVar(idusur)%vd, &
2987 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
2988 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2989 END IF
2990
2991
2992
2993 IF (qout(idvsur,ng)) THEN
2994 vinfo( 1)=vname(1,idvsur)
2995 vinfo( 2)=vname(2,idvsur)
2996 vinfo( 3)=vname(3,idvsur)
2997 vinfo(14)=vname(4,idvsur)
2998 vinfo(16)=vname(1,idtime)
2999# if defined WRITE_WATER && defined MASKING
3000 vinfo(20)='mask_v'
3001# endif
3002 vinfo(21)=vname(6,idvsur)
3003 vinfo(22)='coordinates'
3004 aval(5)=real(iinfo(1,idvsur,ng),r8)
3005 qck(ng)%pioVar(idvsur)%dkind=
pio_fout
3006 qck(ng)%pioVar(idvsur)%gtype=v2dvar
3007
3008 status=def_var(ng, model, qck(ng)%pioFile, &
3009 & qck(ng)%pioVar(idvsur)%vd, &
3010 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3011 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3012 END IF
3013
3014
3015
3016 IF (qout(idu3de,ng)) THEN
3017 vinfo( 1)=vname(1,idu3de)
3018 vinfo( 2)=vname(2,idu3de)
3019 vinfo( 3)=vname(3,idu3de)
3020 vinfo(14)=vname(4,idu3de)
3021 vinfo(16)=vname(1,idtime)
3022# if defined WRITE_WATER && defined MASKING
3023 vinfo(20)='mask_rho'
3024# endif
3025 vinfo(21)=vname(6,idu3de)
3026 vinfo(22)='coordinates'
3027 aval(5)=real(iinfo(1,idu3de,ng),r8)
3028 qck(ng)%pioVar(idu3de)%dkind=
pio_fout
3029 qck(ng)%pioVar(idu3de)%gtype=r3dvar
3030
3031 status=def_var(ng, model, qck(ng)%pioFile, &
3032 & qck(ng)%pioVar(idu3de)%vd, &
3033 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3034 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3035 END IF
3036
3037
3038
3039 IF (qout(idv3dn,ng)) THEN
3040 vinfo( 1)=vname(1,idv3dn)
3041 vinfo( 2)=vname(2,idv3dn)
3042 vinfo( 3)=vname(3,idv3dn)
3043 vinfo(14)=vname(4,idv3dn)
3044 vinfo(16)=vname(1,idtime)
3045# if defined WRITE_WATER && defined MASKING
3046 vinfo(20)='mask_rho'
3047# endif
3048 vinfo(21)=vname(6,idv3dn)
3049 vinfo(22)='coordinates'
3050 aval(5)=real(iinfo(1,idv3dn,ng),r8)
3051 qck(ng)%pioVar(idv3dn)%dkind=
pio_fout
3052 qck(ng)%pioVar(idv3dn)%gtype=r3dvar
3053
3054 status=def_var(ng, model, qck(ng)%pioFile, &
3055 & qck(ng)%pioVar(idv3dn)%vd, &
3056 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3057 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3058 END IF
3059
3060
3061
3062 IF (qout(idusue,ng)) THEN
3063 vinfo( 1)=vname(1,idusue)
3064 vinfo( 2)=vname(2,idusue)
3065 vinfo( 3)=vname(3,idusue)
3066 vinfo(14)=vname(4,idusue)
3067 vinfo(16)=vname(1,idtime)
3068# if defined WRITE_WATER && defined MASKING
3069 vinfo(20)='mask_rho'
3070# endif
3071 vinfo(21)=vname(6,idusue)
3072 vinfo(22)='coordinates'
3073 aval(5)=real(iinfo(1,idusue,ng),r8)
3074 qck(ng)%pioVar(idusue)%dkind=
pio_fout
3075 qck(ng)%pioVar(idusue)%gtype=r2dvar
3076
3077 status=def_var(ng, model, qck(ng)%pioFile, &
3078 & qck(ng)%pioVar(idusue)%vd, &
3079 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3080 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3081 END IF
3082
3083
3084
3085 IF (qout(idvsun,ng)) THEN
3086 vinfo( 1)=vname(1,idvsun)
3087 vinfo( 2)=vname(2,idvsun)
3088 vinfo( 3)=vname(3,idvsun)
3089 vinfo(14)=vname(4,idvsun)
3090 vinfo(16)=vname(1,idtime)
3091# if defined WRITE_WATER && defined MASKING
3092 vinfo(20)='mask_rho'
3093# endif
3094 vinfo(21)=vname(6,idvsun)
3095 vinfo(22)='coordinates'
3096 aval(5)=real(iinfo(1,idvsun,ng),r8)
3097 qck(ng)%pioVar(idvsun)%dkind=
pio_fout
3098 qck(ng)%pioVar(idvsun)%gtype=r2dvar
3099
3100 status=def_var(ng, model, qck(ng)%pioFile, &
3101 & qck(ng)%pioVar(idvsun)%vd, &
3102 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3103 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3104 END IF
3105
3106
3107
3108 IF (qout(idwvel,ng)) THEN
3109 vinfo( 1)=vname(1,idwvel)
3110 vinfo( 2)=vname(2,idwvel)
3111 vinfo( 3)=vname(3,idwvel)
3112 vinfo(14)=vname(4,idwvel)
3113 vinfo(16)=vname(1,idtime)
3114# if defined WRITE_WATER && defined MASKING
3115 vinfo(20)='mask_rho'
3116# endif
3117 vinfo(21)=vname(6,idwvel)
3118 vinfo(22)='coordinates'
3119 aval(5)=real(iinfo(1,idwvel,ng),r8)
3120 qck(ng)%pioVar(idwvel)%dkind=
pio_fout
3121 qck(ng)%pioVar(idwvel)%gtype=w3dvar
3122
3123 status=def_var(ng, model, qck(ng)%pioFile, &
3124 & qck(ng)%pioVar(idwvel)%vd, &
3125 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname)
3126 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3127 END IF
3128
3129
3130
3131 IF (qout(idovel,ng)) THEN
3132 vinfo( 1)=vname(1,idovel)
3133 vinfo( 2)=vname(2,idovel)
3134 vinfo( 3)='meter second-1'
3135 vinfo(14)=vname(4,idovel)
3136 vinfo(16)=vname(1,idtime)
3137# if defined WRITE_WATER && defined MASKING
3138 vinfo(20)='mask_rho'
3139# endif
3140 vinfo(21)=vname(6,idovel)
3141 vinfo(22)='coordinates'
3142 aval(5)=real(iinfo(1,idovel,ng),r8)
3143 qck(ng)%pioVar(idovel)%dkind=
pio_fout
3144 qck(ng)%pioVar(idovel)%gtype=w3dvar
3145
3146 status=def_var(ng, model, qck(ng)%pioFile, &
3147 & qck(ng)%pioVar(idovel)%vd, &
3148 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname)
3149 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3150 END IF
3151
3152
3153
3154 DO itrc=1,nt(ng)
3155 IF (qout(idtvar(itrc),ng)) THEN
3156 vinfo( 1)=vname(1,idtvar(itrc))
3157 vinfo( 2)=vname(2,idtvar(itrc))
3158 vinfo( 3)=vname(3,idtvar(itrc))
3159 vinfo(14)=vname(4,idtvar(itrc))
3160 vinfo(16)=vname(1,idtime)
3161# ifdef SEDIMENT
3162 DO i=1,nst
3163 IF (itrc.eq.idsed(i)) THEN
3164 WRITE (vinfo(19),50) 1000.0_r8*sd50(i,ng)
3165 END IF
3166 END DO
3167# endif
3168# if defined WRITE_WATER && defined MASKING
3169 vinfo(20)='mask_rho'
3170# endif
3171 vinfo(21)=vname(6,idtvar(itrc))
3172 vinfo(22)='coordinates'
3173 aval(5)=real(r3dvar,r8)
3174 qck(ng)%pioTrc(itrc)%dkind=
pio_fout
3175 qck(ng)%pioTrc(itrc)%gtype=r3dvar
3176
3177 status=def_var(ng, model, qck(ng)%pioFile, &
3178 & qck(ng)%pioTrc(itrc)%vd, &
3179 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3180 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3181 END IF
3182 END DO
3183
3184
3185
3186 DO itrc=1,nt(ng)
3187 IF (qout(idsurt(itrc),ng)) THEN
3188 vinfo( 1)=vname(1,idsurt(itrc))
3189 vinfo( 2)=vname(2,idsurt(itrc))
3190 vinfo( 3)=vname(3,idsurt(itrc))
3191 vinfo(14)=vname(4,idsurt(itrc))
3192 vinfo(16)=vname(1,idtime)
3193# ifdef SEDIMENT
3194 DO i=1,nst
3195 IF (itrc.eq.idsed(i)) THEN
3196 WRITE (vinfo(19),50) 1000.0_r8*sd50(i,ng)
3197 END IF
3198 END DO
3199# endif
3200# if defined WRITE_WATER && defined MASKING
3201 vinfo(20)='mask_rho'
3202# endif
3203 vinfo(21)=vname(6,idsurt(itrc))
3204 vinfo(22)='coordinates'
3205 aval(5)=real(r2dvar,r8)
3206 qck(ng)%pioVar(idsurt(itrc))%dkind=
pio_fout
3207 qck(ng)%pioVar(idsurt(itrc))%gtype=r2dvar
3208
3209 status=def_var(ng, model, qck(ng)%pioFile, &
3210 & qck(ng)%pioVar(idsurt(itrc))%vd, &
3211 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3212 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3213 END IF
3214 END DO
3215
3216
3217
3218 IF (qout(iddano,ng)) THEN
3219 vinfo( 1)=vname(1,iddano)
3220 vinfo( 2)=vname(2,iddano)
3221 vinfo( 3)=vname(3,iddano)
3222 vinfo(14)=vname(4,iddano)
3223 vinfo(16)=vname(1,idtime)
3224# if defined WRITE_WATER && defined MASKING
3225 vinfo(20)='mask_rho'
3226# endif
3227 vinfo(21)=vname(6,iddano)
3228 vinfo(22)='coordinates'
3229 aval(5)=real(iinfo(1,iddano,ng),r8)
3230 qck(ng)%pioVar(iddano)%dkind=
pio_fout
3231 qck(ng)%pioVar(iddano)%gtype=r3dvar
3232
3233 status=def_var(ng, model, qck(ng)%pioFile, &
3234 & qck(ng)%pioVar(iddano)%vd, &
3235 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3236 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3237 END IF
3238
3239# ifdef LMD_SKPP
3240
3241
3242
3243 IF (qout(idhsbl,ng)) THEN
3244 vinfo( 1)=vname(1,idhsbl)
3245 vinfo( 2)=vname(2,idhsbl)
3246 vinfo( 3)=vname(3,idhsbl)
3247 vinfo(14)=vname(4,idhsbl)
3248 vinfo(16)=vname(1,idtime)
3249# if defined WRITE_WATER && defined MASKING
3250 vinfo(20)='mask_rho'
3251# endif
3252 vinfo(21)=vname(6,idhsbl)
3253 vinfo(22)='coordinates'
3254 aval(5)=real(iinfo(1,idhsbl,ng),r8)
3255 qck(ng)%pioVar(idhsbl)%dkind=
pio_fout
3256 qck(ng)%pioVar(idhsbl)%gtype=r2dvar
3257
3258 status=def_var(ng, model, qck(ng)%pioFile, &
3259 & qck(ng)%pioVar(idhsbl)%vd, &
3260 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3261 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3262 END IF
3263# endif
3264# ifdef LMD_BKPP
3265
3266
3267
3268 IF (qout(idhbbl,ng)) THEN
3269 vinfo( 1)=vname(1,idhbbl)
3270 vinfo( 2)=vname(2,idhbbl)
3271 vinfo( 3)=vname(3,idhbbl)
3272 vinfo(14)=vname(4,idhbbl)
3273 vinfo(16)=vname(1,idtime)
3274# if defined WRITE_WATER && defined MASKING
3275 vinfo(20)='mask_rho'
3276# endif
3277 vinfo(21)=vname(6,idhbbl)
3278 vinfo(22)='coordinates'
3279 aval(5)=real(iinfo(1,idhbbl,ng),r8)
3280 qck(ng)%pioVar(idhbbl)%dkind=
pio_fout
3281 qck(ng)%pioVar(idhbbl)%gtype=r2dvar
3282
3283 status=def_var(ng, model, qck(ng)%pioFile, &
3284 & qck(ng)%pioVar(idhbbl)%vd, &
3285 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3286 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3287 END IF
3288# endif
3289
3290
3291
3292 IF (qout(idvvis,ng)) THEN
3293 vinfo( 1)=vname(1,idvvis)
3294 vinfo( 2)=vname(2,idvvis)
3295 vinfo( 3)=vname(3,idvvis)
3296 vinfo(14)=vname(4,idvvis)
3297 vinfo(16)=vname(1,idtime)
3298# if defined WRITE_WATER && defined MASKING
3299 vinfo(20)='mask_rho'
3300# endif
3301 vinfo(21)=vname(6,idvvis)
3302 vinfo(22)='coordinates'
3303 aval(5)=real(iinfo(1,idvvis,ng),r8)
3304 qck(ng)%pioVar(idvvis)%dkind=
pio_fout
3305 qck(ng)%pioVar(idvvis)%gtype=w3dvar
3306
3307 status=def_var(ng, model, qck(ng)%pioFile, &
3308 & qck(ng)%pioVar(idvvis)%vd, &
3309 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
3310 & setfillval = .false.)
3311 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3312 END IF
3313
3314
3315
3316 IF (qout(idtdif,ng)) THEN
3317 vinfo( 1)=vname(1,idtdif)
3318 vinfo( 2)=vname(2,idtdif)
3319 vinfo( 3)=vname(3,idtdif)
3320 vinfo(14)=vname(4,idtdif)
3321 vinfo(16)=vname(1,idtime)
3322# if defined WRITE_WATER && defined MASKING
3323 vinfo(20)='mask_rho'
3324# endif
3325 vinfo(21)=vname(6,idtdif)
3326 vinfo(22)='coordinates'
3327 aval(5)=real(iinfo(1,idtdif,ng),r8)
3328 qck(ng)%pioVar(idtdif)%dkind=
pio_fout
3329 qck(ng)%pioVar(idtdif)%gtype=w3dvar
3330
3331 status=def_var(ng, model, qck(ng)%pioFile, &
3332 & qck(ng)%pioVar(idtdif)%vd, &
3333 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
3334 & setfillval = .false.)
3335 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3336 END IF
3337
3338# ifdef SALINITY
3339
3340
3341
3342 IF (qout(idsdif,ng)) THEN
3343 vinfo( 1)=vname(1,idsdif)
3344 vinfo( 2)=vname(2,idsdif)
3345 vinfo( 3)=vname(3,idsdif)
3346 vinfo(14)=vname(4,idsdif)
3347 vinfo(16)=vname(1,idtime)
3348# if defined WRITE_WATER && defined MASKING
3349 vinfo(20)='mask_rho'
3350# endif
3351 vinfo(21)=vname(6,idsdif)
3352 vinfo(22)='coordinates'
3353 aval(5)=real(iinfo(1,idsdif,ng),r8)
3354 qck(ng)%pioVar(idsdif)%dkind=
pio_fout
3355 qck(ng)%pioVar(idsdif)%gtype=w3dvar
3356
3357 status=def_var(ng, model, qck(ng)%pioFile, &
3358 & qck(ng)%pioVar(idsdif)%vd, &
3359 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
3360 & setfillval = .false.)
3361 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3362 END IF
3363# endif
3364# if defined GLS_MIXING || defined MY25_MIXING
3365
3366
3367
3368 IF (qout(idmtke,ng)) THEN
3369 vinfo( 1)=vname(1,idmtke)
3370 vinfo( 2)=vname(2,idmtke)
3371 vinfo( 3)=vname(3,idmtke)
3372 vinfo(14)=vname(4,idmtke)
3373 vinfo(16)=vname(1,idtime)
3374# if defined WRITE_WATER && defined MASKING
3375 vinfo(20)='mask_rho'
3376# endif
3377 vinfo(21)=vname(6,idmtke)
3378 vinfo(22)='coordinates'
3379 aval(5)=real(iinfo(1,idmtke,ng),r8)
3380 qck(ng)%pioVar(idmtke)%dkind=
pio_fout
3381 qck(ng)%pioVar(idmtke)%gtype=w3dvar
3382
3383 status=def_var(ng, model, qck(ng)%pioFile, &
3384 & qck(ng)%pioVar(idmtke)%vd, &
3385 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
3386 & setfillval = .false.)
3387 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3388 END IF
3389
3390
3391
3392 IF (qout(idmtls,ng)) THEN
3393 vinfo( 1)=vname(1,idmtls)
3394 vinfo( 2)=vname(2,idmtls)
3395 vinfo( 3)=vname(3,idmtls)
3396 vinfo(14)=vname(4,idmtls)
3397 vinfo(16)=vname(1,idtime)
3398# if defined WRITE_WATER && defined MASKING
3399 vinfo(20)='mask_rho'
3400# endif
3401 vinfo(21)=vname(6,idmtls)
3402 vinfo(22)='coordinates'
3403 aval(5)=real(iinfo(1,idmtls,ng),r8)
3404 qck(ng)%pioVar(idmtls)%dkind=
pio_fout
3405 qck(ng)%pioVar(idmtls)%gtype=w3dvar
3406
3407 status=def_var(ng, model, qck(ng)%pioFile, &
3408 & qck(ng)%pioVar(idmtls)%vd, &
3409 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
3410 & setfillval = .false.)
3411 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3412 END IF
3413# endif
3414# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
3415
3416
3417
3418 IF (qout(idpair,ng)) THEN
3419 vinfo( 1)=vname(1,idpair)
3420 vinfo( 2)=vname(2,idpair)
3421 vinfo( 3)=vname(3,idpair)
3422 vinfo(14)=vname(4,idpair)
3423 vinfo(16)=vname(1,idtime)
3424# if defined WRITE_WATER && defined MASKING
3425 vinfo(20)='mask_rho'
3426# endif
3427 vinfo(21)=vname(6,idpair)
3428 vinfo(22)='coordinates'
3429 aval(5)=real(iinfo(1,idpair,ng),r8)
3430 qck(ng)%pioVar(idpair)%dkind=
pio_fout
3431 qck(ng)%pioVar(idpair)%gtype=r2dvar
3432
3433 status=def_var(ng, model, qck(ng)%pioFile, &
3434 & qck(ng)%pioVar(idpair)%vd, &
3435 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3436 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3437 END IF
3438# endif
3439# if defined BULK_FLUXES || defined ECOSIM
3440
3441
3442
3443 IF (qout(iduair,ng)) THEN
3444 vinfo( 1)=vname(1,iduair)
3445 vinfo( 2)=vname(2,iduair)
3446 vinfo( 3)=vname(3,iduair)
3447 vinfo(14)=vname(4,iduair)
3448 vinfo(16)=vname(1,idtime)
3449# if defined WRITE_WATER && defined MASKING
3450 vinfo(20)='mask_rho'
3451# endif
3452 vinfo(21)=vname(6,iduair)
3453 vinfo(22)='coordinates'
3454 aval(5)=real(iinfo(1,iduair,ng),r8)
3455 qck(ng)%pioVar(iduair)%dkind=
pio_fout
3456 qck(ng)%pioVar(iduair)%gtype=r2dvar
3457
3458 status=def_var(ng, model, qck(ng)%pioFile, &
3459 & qck(ng)%pioVar(iduair)%vd, &
3460 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3461 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3462 END IF
3463
3464 IF (qout(idvair,ng)) THEN
3465 vinfo( 1)=vname(1,idvair)
3466 vinfo( 2)=vname(2,idvair)
3467 vinfo( 3)=vname(3,idvair)
3468 vinfo(14)=vname(4,idvair)
3469 vinfo(16)=vname(1,idtime)
3470# if defined WRITE_WATER && defined MASKING
3471 vinfo(20)='mask_rho'
3472# endif
3473 vinfo(21)=vname(6,idvair)
3474 vinfo(22)='coordinates'
3475 aval(5)=real(iinfo(1,idvair,ng),r8)
3476 qck(ng)%pioVar(idvair)%dkind=
pio_fout
3477 qck(ng)%pioVar(idvair)%gtype=r2dvar
3478
3479 status=def_var(ng, model, qck(ng)%pioFile, &
3480 & qck(ng)%pioVar(idvair)%vd, &
3481 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3482 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3483 END IF
3484
3485
3486
3487 IF (qout(iduaie,ng)) THEN
3488 vinfo( 1)=vname(1,iduaie)
3489 vinfo( 2)=vname(2,iduaie)
3490 vinfo( 3)=vname(3,iduaie)
3491 vinfo(14)=vname(4,iduaie)
3492 vinfo(16)=vname(1,idtime)
3493# if defined WRITE_WATER && defined MASKING
3494 vinfo(20)='mask_rho'
3495# endif
3496 vinfo(21)=vname(6,iduaie)
3497 vinfo(22)='coordinates'
3498 aval(5)=real(iinfo(1,iduaie,ng),r8)
3499 qck(ng)%pioVar(iduaie)%dkind=
pio_fout
3500 qck(ng)%pioVar(iduaie)%gtype=r2dvar
3501
3502 status=def_var(ng, model, qck(ng)%pioFile, &
3503 & qck(ng)%pioVar(iduaie)%vd, &
3504 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3505 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3506 END IF
3507
3508 IF (qout(idvain,ng)) THEN
3509 vinfo( 1)=vname(1,idvain)
3510 vinfo( 2)=vname(2,idvain)
3511 vinfo( 3)=vname(3,idvain)
3512 vinfo(14)=vname(4,idvain)
3513 vinfo(16)=vname(1,idtime)
3514# if defined WRITE_WATER && defined MASKING
3515 vinfo(20)='mask_rho'
3516# endif
3517 vinfo(21)=vname(6,idvain)
3518 vinfo(22)='coordinates'
3519 aval(5)=real(iinfo(1,idvain,ng),r8)
3520 qck(ng)%pioVar(idvain)%dkind=
pio_fout
3521 qck(ng)%pioVar(idvain)%gtype=r2dvar
3522
3523 status=def_var(ng, model, qck(ng)%pioFile, &
3524 & qck(ng)%pioVar(idvain)%vd, &
3525 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3526 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3527 END IF
3528# endif
3529
3530
3531
3532 DO itrc=1,nat
3533 IF (qout(idtsur(itrc),ng)) THEN
3534 vinfo( 1)=vname(1,idtsur(itrc))
3535 vinfo( 2)=vname(2,idtsur(itrc))
3536 vinfo( 3)=vname(3,idtsur(itrc))
3537 IF (itrc.eq.itemp) THEN
3538 vinfo(11)='upward flux, cooling'
3539 vinfo(12)='downward flux, heating'
3540 ELSE IF (itrc.eq.isalt) THEN
3541 vinfo(11)='upward flux, freshening (net precipitation)'
3542 vinfo(12)='downward flux, salting (net evaporation)'
3543 END IF
3544 vinfo(14)=vname(4,idtsur(itrc))
3545 vinfo(16)=vname(1,idtime)
3546# if defined WRITE_WATER && defined MASKING
3547 vinfo(20)='mask_rho'
3548# endif
3549 vinfo(21)=vname(6,idtsur(itrc))
3550 vinfo(22)='coordinates'
3551 aval(5)=real(iinfo(1,idtsur(itrc),ng),r8)
3552 qck(ng)%pioVar(idtsur(itrc))%dkind=
pio_fout
3553 qck(ng)%pioVar(idtsur(itrc))%gtype=r2dvar
3554
3555 status=def_var(ng, model, qck(ng)%pioFile, &
3556 & qck(ng)%pioVar(idtsur(itrc))%vd, &
3557 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3558 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3559 END IF
3560 END DO
3561
3562# if defined BULK_FLUXES || defined FRC_COUPLING
3563
3564
3565
3566 IF (qout(idlhea,ng)) THEN
3567 vinfo( 1)=vname(1,idlhea)
3568 vinfo( 2)=vname(2,idlhea)
3569 vinfo( 3)=vname(3,idlhea)
3570 vinfo(11)='upward flux, cooling'
3571 vinfo(12)='downward flux, heating'
3572 vinfo(14)=vname(4,idlhea)
3573 vinfo(16)=vname(1,idtime)
3574# if defined WRITE_WATER && defined MASKING
3575 vinfo(20)='mask_rho'
3576# endif
3577 vinfo(21)=vname(6,idlhea)
3578 vinfo(22)='coordinates'
3579 aval(5)=real(iinfo(1,idlhea,ng),r8)
3580 qck(ng)%pioVar(idlhea)%dkind=
pio_fout
3581 qck(ng)%pioVar(idlhea)%gtype=r2dvar
3582
3583 status=def_var(ng, model, qck(ng)%pioFile, &
3584 & qck(ng)%pioVar(idlhea)%vd, &
3585 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3586 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3587 END IF
3588
3589
3590
3591 IF (qout(idshea,ng)) THEN
3592 vinfo( 1)=vname(1,idshea)
3593 vinfo( 2)=vname(2,idshea)
3594 vinfo( 3)=vname(3,idshea)
3595 vinfo(11)='upward flux, cooling'
3596 vinfo(12)='downward flux, heating'
3597 vinfo(14)=vname(4,idshea)
3598 vinfo(16)=vname(1,idtime)
3599# if defined WRITE_WATER && defined MASKING
3600 vinfo(20)='mask_rho'
3601# endif
3602 vinfo(21)=vname(6,idshea)
3603 vinfo(22)='coordinates'
3604 aval(5)=real(iinfo(1,idshea,ng),r8)
3605 qck(ng)%pioVar(idshea)%dkind=
pio_fout
3606 qck(ng)%pioVar(idshea)%gtype=r2dvar
3607
3608 status=def_var(ng, model, qck(ng)%pioFile, &
3609 & qck(ng)%pioVar(idshea)%vd, &
3610 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3611 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3612 END IF
3613
3614
3615
3616 IF (qout(idlrad,ng)) THEN
3617 vinfo( 1)=vname(1,idlrad)
3618 vinfo( 2)=vname(2,idlrad)
3619 vinfo( 3)=vname(3,idlrad)
3620 vinfo(11)='upward flux, cooling'
3621 vinfo(12)='downward flux, heating'
3622 vinfo(14)=vname(4,idlrad)
3623 vinfo(16)=vname(1,idtime)
3624# if defined WRITE_WATER && defined MASKING
3625 vinfo(20)='mask_rho'
3626# endif
3627 vinfo(21)=vname(6,idlrad)
3628 vinfo(22)='coordinates'
3629 aval(5)=real(iinfo(1,idlrad,ng),r8)
3630 qck(ng)%pioVar(idlrad)%dkind=
pio_fout
3631 qck(ng)%pioVar(idlrad)%gtype=r2dvar
3632
3633 status=def_var(ng, model, qck(ng)%pioFile, &
3634 & qck(ng)%pioVar(idlrad)%vd, &
3635 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3636 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3637 END IF
3638# endif
3639
3640# if defined BULK_FLUXES
3641
3642
3643
3644 IF (qout(idtair,ng)) THEN
3645 vinfo( 1)=vname(1,idtair)
3646 vinfo( 2)=vname(2,idtair)
3647 vinfo( 3)=vname(3,idtair)
3648 vinfo(14)=vname(4,idtair)
3649 vinfo(16)=vname(1,idtime)
3650# if defined WRITE_WATER && defined MASKING
3651 vinfo(20)='mask_rho'
3652# endif
3653 vinfo(21)=vname(6,idtair)
3654 vinfo(22)='coordinates'
3655 aval(5)=real(iinfo(1,idtair,ng),r8)
3656 qck(ng)%pioVar(idtair)%dkind=
pio_fout
3657 qck(ng)%pioVar(idtair)%gtype=r2dvar
3658
3659 status=def_var(ng, model, qck(ng)%pioFile, &
3660 & qck(ng)%pioVar(idtair)%vd, &
3661 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3662 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3663 END IF
3664
3665# ifdef EMINUSP
3666
3667
3668
3669 IF (qout(idevap,ng)) THEN
3670 vinfo( 1)=vname(1,idevap)
3671 vinfo( 2)=vname(2,idevap)
3672 vinfo( 3)=vname(3,idevap)
3673 vinfo(11)='downward flux, freshening (condensation)'
3674 vinfo(12)='upward flux, salting (evaporation)'
3675 vinfo(14)=vname(4,idevap)
3676 vinfo(16)=vname(1,idtime)
3677# if defined WRITE_WATER && defined MASKING
3678 vinfo(20)='mask_rho'
3679# endif
3680 vinfo(21)=vname(6,idevap)
3681 vinfo(22)='coordinates'
3682 aval(5)=real(iinfo(1,idevap,ng),r8)
3683 qck(ng)%pioVar(idevap)%dkind=
pio_fout
3684 qck(ng)%pioVar(idevap)%gtype=r2dvar
3685
3686 status=def_var(ng, model, qck(ng)%pioFile, &
3687 & qck(ng)%pioVar(idevap)%vd, &
3688 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3689 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3690 END IF
3691
3692
3693
3694 IF (qout(idrain,ng)) THEN
3695 vinfo( 1)=vname(1,idrain)
3696 vinfo( 2)=vname(2,idrain)
3697 vinfo( 3)=vname(3,idrain)
3698 vinfo(11)='upward flux, salting (NOT POSSIBLE)'
3699 vinfo(12)='downward flux, freshening (precipitation)'
3700 vinfo(14)=vname(4,idrain)
3701 vinfo(16)=vname(1,idtime)
3702# if defined WRITE_WATER && defined MASKING
3703 vinfo(20)='mask_rho'
3704# endif
3705 vinfo(21)=vname(6,idrain)
3706 vinfo(22)='coordinates'
3707 aval(5)=real(iinfo(1,idrain,ng),r8)
3708 qck(ng)%pioVar(idrain)%dkind=
pio_fout
3709 qck(ng)%pioVar(idrain)%gtype=r2dvar
3710
3711 status=def_var(ng, model, qck(ng)%pioFile, &
3712 & qck(ng)%pioVar(idrain)%vd, &
3713 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3714 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3715 END IF
3716# endif
3717# endif
3718
3719
3720
3721 IF (qout(idempf,ng)) THEN
3722 vinfo( 1)=vname(1,idempf)
3723 vinfo( 2)=vname(2,idempf)
3724 vinfo( 3)=vname(3,idempf)
3725 vinfo(11)='upward flux, freshening (net precipitation)'
3726 vinfo(12)='downward flux, salting (net evaporation)'
3727 vinfo(14)=vname(4,idempf)
3728 vinfo(16)=vname(1,idtime)
3729# if defined WRITE_WATER && defined MASKING
3730 vinfo(20)='mask_rho'
3731# endif
3732 vinfo(21)=vname(6,idempf)
3733 vinfo(22)='coordinates'
3734 aval(5)=real(iinfo(1,idempf,ng),r8)
3735 qck(ng)%pioVar(idempf)%dkind=
pio_fout
3736 qck(ng)%pioVar(idempf)%gtype=r2dvar
3737
3738 status=def_var(ng, model, qck(ng)%pioFile, &
3739 & qck(ng)%pioVar(idempf)%vd, &
3740 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3741 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3742 END IF
3743
3744# ifdef SHORTWAVE
3745
3746
3747
3748 IF (qout(idsrad,ng)) THEN
3749 vinfo( 1)=vname(1,idsrad)
3750 vinfo( 2)=vname(2,idsrad)
3751 vinfo( 3)=vname(3,idsrad)
3752 vinfo(11)='upward flux, cooling'
3753 vinfo(12)='downward flux, heating'
3754 vinfo(14)=vname(4,idsrad)
3755 vinfo(16)=vname(1,idtime)
3756# if defined WRITE_WATER && defined MASKING
3757 vinfo(20)='mask_rho'
3758# endif
3759 vinfo(21)=vname(6,idsrad)
3760 vinfo(22)='coordinates'
3761 aval(5)=real(iinfo(1,idsrad,ng),r8)
3762 qck(ng)%pioVar(idsrad)%dkind=
pio_fout
3763 qck(ng)%pioVar(idsrad)%gtype=r2dvar
3764
3765 status=def_var(ng, model, qck(ng)%pioFile, &
3766 & qck(ng)%pioVar(idsrad)%vd, &
3767 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3768 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3769 END IF
3770# endif
3771# endif
3772
3773
3774
3775 IF (qout(idusms,ng)) THEN
3776 vinfo( 1)=vname(1,idusms)
3777 vinfo( 2)=vname(2,idusms)
3778 vinfo( 3)=vname(3,idusms)
3779 vinfo(14)=vname(4,idusms)
3780 vinfo(16)=vname(1,idtime)
3781# if defined WRITE_WATER && defined MASKING
3782 vinfo(20)='mask_u'
3783# endif
3784 vinfo(21)=vname(6,idusms)
3785 vinfo(22)='coordinates'
3786 aval(5)=real(iinfo(1,idusms,ng),r8)
3787 qck(ng)%pioVar(idusms)%dkind=
pio_fout
3788 qck(ng)%pioVar(idusms)%gtype=u2dvar
3789
3790 status=def_var(ng, model, qck(ng)%pioFile, &
3791 & qck(ng)%pioVar(idusms)%vd, &
3792 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
3793 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3794 END IF
3795
3796
3797
3798 IF (qout(idvsms,ng)) THEN
3799 vinfo( 1)=vname(1,idvsms)
3800 vinfo( 2)=vname(2,idvsms)
3801 vinfo( 3)=vname(3,idvsms)
3802 vinfo(14)=vname(4,idvsms)
3803 vinfo(16)=vname(1,idtime)
3804# if defined WRITE_WATER && defined MASKING
3805 vinfo(20)='mask_v'
3806# endif
3807 vinfo(21)=vname(6,idvsms)
3808 vinfo(22)='coordinates'
3809 aval(5)=real(iinfo(1,idvsms,ng),r8)
3810 qck(ng)%pioVar(idvsms)%dkind=
pio_fout
3811 qck(ng)%pioVar(idvsms)%gtype=v2dvar
3812
3813 status=def_var(ng, model, qck(ng)%pioFile, &
3814 & qck(ng)%pioVar(idvsms)%vd, &
3815 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3816 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3817 END IF
3818
3819
3820
3821 IF (qout(idubms,ng)) THEN
3822 vinfo( 1)=vname(1,idubms)
3823 vinfo( 2)=vname(2,idubms)
3824 vinfo( 3)=vname(3,idubms)
3825 vinfo(14)=vname(4,idubms)
3826 vinfo(16)=vname(1,idtime)
3827# if defined WRITE_WATER && defined MASKING
3828 vinfo(20)='mask_u'
3829# endif
3830 vinfo(21)=vname(6,idubms)
3831 vinfo(22)='coordinates'
3832 aval(5)=real(iinfo(1,idubms,ng),r8)
3833 qck(ng)%pioVar(idubms)%dkind=
pio_fout
3834 qck(ng)%pioVar(idubms)%gtype=u2dvar
3835
3836 status=def_var(ng, model, qck(ng)%pioFile, &
3837 & qck(ng)%pioVar(idubms)%vd, &
3838 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
3839 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3840 END IF
3841
3842
3843
3844 IF (qout(idvbms,ng)) THEN
3845 vinfo( 1)=vname(1,idvbms)
3846 vinfo( 2)=vname(2,idvbms)
3847 vinfo( 3)=vname(3,idvbms)
3848 vinfo(14)=vname(4,idvbms)
3849 vinfo(16)=vname(1,idtime)
3850# if defined WRITE_WATER && defined MASKING
3851 vinfo(20)='mask_v'
3852# endif
3853 vinfo(21)=vname(6,idvbms)
3854 vinfo(22)='coordinates'
3855 aval(5)=real(iinfo(1,idvbms,ng),r8)
3856 qck(ng)%pioVar(idvbms)%dkind=
pio_fout
3857 qck(ng)%pioVar(idvbms)%gtype=v2dvar
3858
3859 status=def_var(ng, model, qck(ng)%pioFile, &
3860 & qck(ng)%pioVar(idvbms)%vd, &
3861 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3862 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3863 END IF
3864
3865# if (defined BBL_MODEL || defined WAVES_OUTPUT) && defined SOLVE3D
3866
3867
3868
3869
3870
3871 CALL bbl_def_pio (ng, model, ldef, qout, qck, &
3872 & t2dgrd, u2dgrd, v2dgrd)
3873 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3874# endif
3875
3876# if defined ICE_MODEL && defined SOLVE3D
3877
3878
3879
3880
3881
3882 CALL ice_def_pio (ng, model, ldef, qout, qck, &
3883 & t2dgrd, u2dgrd, v2dgrd)
3884 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3885# endif
3886
3887# if defined SEDIMENT && defined SOLVE3D
3888
3889
3890
3891
3892
3893 CALL sediment_def_pio (ng, model, ldef, qout, qck, &
3894 & t2dgrd, u2dgrd, v2dgrd)
3895 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3896# endif
3897
3898# if defined WEC_VF && defined SOLVE3D
3899
3900
3901
3902
3903
3904 CALL wec_def_pio (ng, model, ldef, qout, qck, &
3905 & t2dgrd, u2dgrd, v2dgrd, &
3906 & t3dgrd, u3dgrd, v3dgrd, w3dgrd)
3907 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3908# endif
3909
3910
3911
3912
3913
3915 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3916
3917
3918
3919
3920
3921 CALL wrt_info (ng, model, qck(ng)%pioFile, ncname)
3922 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3923 END IF define
3924
3925
3926
3927
3928
3929
3930 query : IF (.not.ldef) THEN
3931 ncname=qck(ng)%name
3932
3933
3934
3936 IF (founderror(exit_flag, noerror, __line__, myfile)) THEN
3937 WRITE (stdout,60) trim(ncname)
3938 RETURN
3939 END IF
3940
3941
3942
3944 & piofile = qck(ng)%pioFile)
3945 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3946
3947
3948
3950 & piofile = qck(ng)%pioFile)
3951 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3952
3953
3954
3955 DO i=1,nv
3956 got_var(i)=.false.
3957 END DO
3958
3959
3960
3961
3962 DO i=1,n_var
3963 IF (trim(var_name(i)).eq.trim(vname(1,idtime))) THEN
3964 got_var(idtime)=.true.
3965 qck(ng)%pioVar(idtime)%vd=
var_desc(i)
3966 qck(ng)%pioVar(idtime)%dkind=
pio_tout
3967 qck(ng)%pioVar(idtime)%gtype=0
3968# if defined WET_DRY
3969 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idpwet))) THEN
3970 got_var(idpwet)=.true.
3971 qck(ng)%pioVar(idpwet)%vd=
var_desc(i)
3972 qck(ng)%pioVar(idpwet)%dkind=
pio_fout
3973 qck(ng)%pioVar(idpwet)%gtype=p2dvar
3974 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idrwet))) THEN
3975 got_var(idrwet)=.true.
3976 qck(ng)%pioVar(idrwet)%vd=
var_desc(i)
3977 qck(ng)%pioVar(idrwet)%dkind=
pio_fout
3978 qck(ng)%pioVar(idrwet)%gtype=r2dvar
3979 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduwet))) THEN
3980 got_var(iduwet)=.true.
3981 qck(ng)%pioVar(iduwet)%vd=
var_desc(i)
3982 qck(ng)%pioVar(iduwet)%dkind=
pio_fout
3983 qck(ng)%pioVar(iduwet)%gtype=u2dvar
3984 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvwet))) THEN
3985 got_var(idvwet)=.true.
3986 qck(ng)%pioVar(idvwet)%vd=
var_desc(i)
3987 qck(ng)%pioVar(idvwet)%dkind=
pio_fout
3988 qck(ng)%pioVar(idvwet)%gtype=v2dvar
3989# endif
3990# ifdef SOLVE3D
3991 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idpthr))) THEN
3992 got_var(idpthr)=.true.
3993 qck(ng)%pioVar(idpthr)%vd=
var_desc(i)
3994 qck(ng)%pioVar(idpthr)%dkind=
pio_fout
3995 qck(ng)%pioVar(idpthr)%gtype=r3dvar
3996 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idpthu))) THEN
3997 got_var(idpthu)=.true.
3998 qck(ng)%pioVar(idpthu)%vd=
var_desc(i)
3999 qck(ng)%pioVar(idpthu)%dkind=
pio_fout
4000 qck(ng)%pioVar(idpthu)%gtype=u3dvar
4001 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idpthv))) THEN
4002 got_var(idpthv)=.true.
4003 qck(ng)%pioVar(idpthv)%vd=
var_desc(i)
4004 qck(ng)%pioVar(idpthv)%dkind=
pio_fout
4005 qck(ng)%pioVar(idpthv)%gtype=v3dvar
4006 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idpthw))) THEN
4007 got_var(idpthw)=.true.
4008 qck(ng)%pioVar(idpthw)%vd=
var_desc(i)
4009 qck(ng)%pioVar(idpthw)%dkind=
pio_fout
4010 qck(ng)%pioVar(idpthw)%gtype=w3dvar
4011# endif
4012 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idfsur))) THEN
4013 got_var(idfsur)=.true.
4014 qck(ng)%pioVar(idfsur)%vd=
var_desc(i)
4015 qck(ng)%pioVar(idfsur)%dkind=
pio_fout
4016 qck(ng)%pioVar(idfsur)%gtype=r2dvar
4017 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idubar))) THEN
4018 got_var(idubar)=.true.
4019 qck(ng)%pioVar(idubar)%vd=
var_desc(i)
4020 qck(ng)%pioVar(idubar)%dkind=
pio_fout
4021 qck(ng)%pioVar(idubar)%gtype=u2dvar
4022 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvbar))) THEN
4023 got_var(idvbar)=.true.
4024 qck(ng)%pioVar(idvbar)%vd=
var_desc(i)
4025 qck(ng)%pioVar(idvbar)%dkind=
pio_fout
4026 qck(ng)%pioVar(idvbar)%gtype=v2dvar
4027 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idu2de))) THEN
4028 got_var(idu2de)=.true.
4029 qck(ng)%pioVar(idu2de)%vd=
var_desc(i)
4030 qck(ng)%pioVar(idu2de)%dkind=
pio_fout
4031 qck(ng)%pioVar(idu2de)%gtype=r2dvar
4032 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idv2dn))) THEN
4033 got_var(idv2dn)=.true.
4034 qck(ng)%pioVar(idv2dn)%vd=
var_desc(i)
4035 qck(ng)%pioVar(idv2dn)%dkind=
pio_fout
4036 qck(ng)%pioVar(idv2dn)%gtype=r2dvar
4037# ifdef SOLVE3D
4038 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduvel))) THEN
4039 got_var(iduvel)=.true.
4040 qck(ng)%pioVar(iduvel)%vd=
var_desc(i)
4041 qck(ng)%pioVar(iduvel)%dkind=
pio_fout
4042 qck(ng)%pioVar(iduvel)%gtype=u3dvar
4043 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvvel))) THEN
4044 got_var(idvvel)=.true.
4045 qck(ng)%pioVar(idvvel)%vd=
var_desc(i)
4046 qck(ng)%pioVar(idvvel)%dkind=
pio_fout
4047 qck(ng)%pioVar(idvvel)%gtype=v3dvar
4048 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idusur))) THEN
4049 got_var(idusur)=.true.
4050 qck(ng)%pioVar(idusur)%vd=
var_desc(i)
4051 qck(ng)%pioVar(idusur)%dkind=
pio_fout
4052 qck(ng)%pioVar(idusur)%gtype=u2dvar
4053 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvsur))) THEN
4054 got_var(idvsur)=.true.
4055 qck(ng)%pioVar(idvsur)%vd=
var_desc(i)
4056 qck(ng)%pioVar(idvsur)%dkind=
pio_fout
4057 qck(ng)%pioVar(idvsur)%gtype=v2dvar
4058 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idu3de))) THEN
4059 got_var(idu3de)=.true.
4060 qck(ng)%pioVar(idu3de)%vd=
var_desc(i)
4061 qck(ng)%pioVar(idu3de)%dkind=
pio_fout
4062 qck(ng)%pioVar(idu3de)%gtype=r3dvar
4063 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idv3dn))) THEN
4064 got_var(idv3dn)=.true.
4065 qck(ng)%pioVar(idv3dn)%vd=
var_desc(i)
4066 qck(ng)%pioVar(idv3dn)%dkind=
pio_fout
4067 qck(ng)%pioVar(idv3dn)%gtype=r3dvar
4068 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idusue))) THEN
4069 got_var(idusue)=.true.
4070 qck(ng)%pioVar(idusue)%vd=
var_desc(i)
4071 qck(ng)%pioVar(idusue)%dkind=
pio_fout
4072 qck(ng)%pioVar(idusue)%gtype=r2dvar
4073 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvsun))) THEN
4074 got_var(idvsun)=.true.
4075 qck(ng)%pioVar(idvsun)%vd=
var_desc(i)
4076 qck(ng)%pioVar(idvsun)%dkind=
pio_fout
4077 qck(ng)%pioVar(idvsun)%gtype=r2dvar
4078 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idwvel))) THEN
4079 got_var(idwvel)=.true.
4080 qck(ng)%pioVar(idwvel)%vd=
var_desc(i)
4081 qck(ng)%pioVar(idwvel)%dkind=
pio_fout
4082 qck(ng)%pioVar(idwvel)%gtype=w3dvar
4083 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idovel))) THEN
4084 got_var(idovel)=.true.
4085 qck(ng)%pioVar(idovel)%vd=
var_desc(i)
4086 qck(ng)%pioVar(idovel)%dkind=
pio_fout
4087 qck(ng)%pioVar(idovel)%gtype=w3dvar
4088 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iddano))) THEN
4089 got_var(iddano)=.true.
4090 qck(ng)%pioVar(iddano)%vd=
var_desc(i)
4091 qck(ng)%pioVar(iddano)%dkind=
pio_fout
4092 qck(ng)%pioVar(iddano)%gtype=r3dvar
4093# ifdef LMD_SKPP
4094 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idhsbl))) THEN
4095 got_var(idhsbl)=.true.
4096 qck(ng)%pioVar(idhsbl)%vd=
var_desc(i)
4097 qck(ng)%pioVar(idhsbl)%dkind=
pio_fout
4098 qck(ng)%pioVar(idhsbl)%gtype=r2dvar
4099# endif
4100# ifdef LMD_BKPP
4101 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idhbbl))) THEN
4102 got_var(idhbbl)=.true.
4103 qck(ng)%pioVar(idhbbl)%vd=
var_desc(i)
4104 qck(ng)%pioVar(idhbbl)%dkind=
pio_fout
4105 qck(ng)%pioVar(idhbbl)%gtype=r2dvar
4106# endif
4107 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvvis))) THEN
4108 got_var(idvvis)=.true.
4109 qck(ng)%pioVar(idvvis)%vd=
var_desc(i)
4110 qck(ng)%pioVar(idvvis)%dkind=
pio_fout
4111 qck(ng)%pioVar(idvvis)%gtype=w3dvar
4112 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idtdif))) THEN
4113 got_var(idtdif)=.true.
4114 qck(ng)%pioVar(idtdif)%vd=
var_desc(i)
4115 qck(ng)%pioVar(idtdif)%dkind=
pio_fout
4116 qck(ng)%pioVar(idtdif)%gtype=w3dvar
4117 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idsdif))) THEN
4118 got_var(idsdif)=.true.
4119 qck(ng)%pioVar(idsdif)%vd=
var_desc(i)
4120 qck(ng)%pioVar(idsdif)%dkind=
pio_fout
4121 qck(ng)%pioVar(idsdif)%gtype=w3dvar
4122# if defined GLS_MIXING || defined MY25_MIXING
4123 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idmtke))) THEN
4124 got_var(idmtke)=.true.
4125 qck(ng)%pioVar(idmtke)%vd=
var_desc(i)
4126 qck(ng)%pioVar(idmtke)%dkind=
pio_fout
4127 qck(ng)%pioVar(idmtke)%gtype=w3dvar
4128 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idmtls))) THEN
4129 got_var(idmtls)=.true.
4130 qck(ng)%pioVar(idmtls)%vd=
var_desc(i)
4131 qck(ng)%pioVar(idmtls)%dkind=
pio_fout
4132 qck(ng)%pioVar(idmtls)%gtype=w3dvar
4133# endif
4134# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
4135 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idpair))) THEN
4136 got_var(idpair)=.true.
4137 qck(ng)%pioVar(idpair)%vd=
var_desc(i)
4138 qck(ng)%pioVar(idpair)%dkind=
pio_fout
4139 qck(ng)%pioVar(idpair)%gtype=r2dvar
4140# endif
4141# if defined BULK_FLUXES || defined ECOSIM
4142 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduair))) THEN
4143 got_var(iduair)=.true.
4144 qck(ng)%pioVar(iduair)%vd=
var_desc(i)
4145 qck(ng)%pioVar(iduair)%dkind=
pio_fout
4146 qck(ng)%pioVar(iduair)%gtype=r2dvar
4147 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvair))) THEN
4148 got_var(idvair)=.true.
4149 qck(ng)%pioVar(idvair)%vd=
var_desc(i)
4150 qck(ng)%pioVar(idvair)%dkind=
pio_fout
4151 qck(ng)%pioVar(idvair)%gtype=r2dvar
4152 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduaie))) THEN
4153 got_var(iduair)=.true.
4154 qck(ng)%pioVar(iduaie)%vd=
var_desc(i)
4155 qck(ng)%pioVar(iduaie)%dkind=
pio_fout
4156 qck(ng)%pioVar(iduaie)%gtype=r2dvar
4157 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvain))) THEN
4158 got_var(idvair)=.true.
4159 qck(ng)%pioVar(idvain)%vd=
var_desc(i)
4160 qck(ng)%pioVar(idvain)%dkind=
pio_fout
4161 qck(ng)%pioVar(idvain)%gtype=r2dvar
4162# endif
4163# if defined BULK_FLUXES || defined FRC_COUPLING
4164 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idlhea))) THEN
4165 got_var(idlhea)=.true.
4166 qck(ng)%pioVar(idlhea)%vd=
var_desc(i)
4167 qck(ng)%pioVar(idlhea)%dkind=
pio_fout
4168 qck(ng)%pioVar(idlhea)%gtype=r2dvar
4169 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idshea))) THEN
4170 got_var(idshea)=.true.
4171 qck(ng)%pioVar(idshea)%vd=
var_desc(i)
4172 qck(ng)%pioVar(idshea)%dkind=
pio_fout
4173 qck(ng)%pioVar(idshea)%gtype=r2dvar
4174 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idlrad))) THEN
4175 got_var(idlrad)=.true.
4176 qck(ng)%pioVar(idlrad)%vd=
var_desc(i)
4177 qck(ng)%pioVar(idlrad)%dkind=
pio_fout
4178 qck(ng)%pioVar(idlrad)%gtype=r2dvar
4179# endif
4180# ifdef BULK_FLUXES
4181 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idtair))) THEN
4182 got_var(idtair)=.true.
4183 qck(ng)%pioVar(idtair)%vd=
var_desc(i)
4184 qck(ng)%pioVar(idtair)%dkind=
pio_fout
4185 qck(ng)%pioVar(idtair)%gtype=r2dvar
4186# ifdef EMINUSP
4187 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idevap))) THEN
4188 got_var(idevap)=.true.
4189 qck(ng)%pioVar(idevap)%vd=
var_desc(i)
4190 qck(ng)%pioVar(idevap)%dkind=
pio_fout
4191 qck(ng)%pioVar(idevap)%gtype=r2dvar
4192 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idrain))) THEN
4193 got_var(idrain)=.true.
4194 qck(ng)%pioVar(idrain)%vd=
var_desc(i)
4195 qck(ng)%pioVar(idrain)%dkind=
pio_fout
4196 qck(ng)%pioVar(idrain)%gtype=r2dvar
4197# endif
4198# endif
4199 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idempf))) THEN
4200 got_var(idempf)=.true.
4201 qck(ng)%pioVar(idempf)%vd=
var_desc(i)
4202 qck(ng)%pioVar(idempf)%dkind=
pio_fout
4203 qck(ng)%pioVar(idempf)%gtype=r2dvar
4204# ifdef SHORTWAVE
4205 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idsrad))) THEN
4206 got_var(idsrad)=.true.
4207 qck(ng)%pioVar(idsrad)%vd=
var_desc(i)
4208 qck(ng)%pioVar(idsrad)%dkind=
pio_fout
4209 qck(ng)%pioVar(idsrad)%gtype=r2dvar
4210# endif
4211# endif
4212 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idusms))) THEN
4213 got_var(idusms)=.true.
4214 qck(ng)%pioVar(idusms)%vd=
var_desc(i)
4215 qck(ng)%pioVar(idusms)%dkind=
pio_fout
4216 qck(ng)%pioVar(idusms)%gtype=u2dvar
4217 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvsms))) THEN
4218 got_var(idvsms)=.true.
4219 qck(ng)%pioVar(idvsms)%vd=
var_desc(i)
4220 qck(ng)%pioVar(idvsms)%dkind=
pio_fout
4221 qck(ng)%pioVar(idvsms)%gtype=v2dvar
4222 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idubms))) THEN
4223 got_var(idubms)=.true.
4224 qck(ng)%pioVar(idubms)%vd=
var_desc(i)
4225 qck(ng)%pioVar(idubms)%dkind=
pio_fout
4226 qck(ng)%pioVar(idubms)%gtype=u2dvar
4227 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvbms))) THEN
4228 got_var(idvbms)=.true.
4229 qck(ng)%pioVar(idvbms)%vd=
var_desc(i)
4230 qck(ng)%pioVar(idvbms)%dkind=
pio_fout
4231 qck(ng)%pioVar(idvbms)%gtype=v2dvar
4232 END IF
4233# ifdef SOLVE3D
4234 DO itrc=1,nt(ng)
4235 IF (trim(var_name(i)).eq.trim(vname(1,idtvar(itrc)))) THEN
4236 got_var(idtvar(itrc))=.true.
4237 qck(ng)%pioTrc(itrc)%vd=
var_desc(i)
4238 qck(ng)%pioTrc(itrc)%dkind=
pio_fout
4239 qck(ng)%pioTrc(itrc)%gtype=r3dvar
4240 ELSE IF (trim(var_name(i)).eq. &
4241 & trim(vname(1,idsurt(itrc)))) THEN
4242 got_var(idsurt(itrc))=.true.
4243 qck(ng)%pioVar(idsurt(itrc))%vd=
var_desc(i)
4244 qck(ng)%pioVar(idsurt(itrc))%dkind=
pio_fout
4245 qck(ng)%pioVar(idsurt(itrc))%gtype=r2dvar
4246 END IF
4247 END DO
4248 DO itrc=1,nat
4249 IF (trim(var_name(i)).eq.trim(vname(1,idtsur(itrc)))) THEN
4250 got_var(idtsur(itrc))=.true.
4251 qck(ng)%pioVar(idtsur(itrc))%vd=
var_desc(i)
4252 qck(ng)%pioVar(idtsur(itrc))%dkind=
pio_fout
4253 qck(ng)%pioVar(idtsur(itrc))%gtype=r2dvar
4254 END IF
4255 END DO
4256# endif
4257 END DO
4258
4259
4260
4261
4262 IF (.not.got_var(idtime)) THEN
4263 IF (master) WRITE (stdout,70) trim(vname(1,idtime)), &
4264 & trim(ncname)
4265 exit_flag=3
4266 RETURN
4267 END IF
4268# if defined WET_DRY
4269 IF (.not.got_var(idpwet)) THEN
4270 IF (master) WRITE (stdout,70) trim(vname(1,idpwet)), &
4271 & trim(ncname)
4272 exit_flag=3
4273 RETURN
4274 END IF
4275 IF (.not.got_var(idrwet)) THEN
4276 IF (master) WRITE (stdout,70) trim(vname(1,idrwet)), &
4277 & trim(ncname)
4278 exit_flag=3
4279 RETURN
4280 END IF
4281 IF (.not.got_var(iduwet)) THEN
4282 IF (master) WRITE (stdout,70) trim(vname(1,iduwet)), &
4283 & trim(ncname)
4284 exit_flag=3
4285 RETURN
4286 END IF
4287 IF (.not.got_var(idvwet)) THEN
4288 IF (master) WRITE (stdout,70) trim(vname(1,idvwet)), &
4289 & trim(ncname)
4290 exit_flag=3
4291 RETURN
4292 END IF
4293# endif
4294# ifdef SOLVE3D
4295 IF (.not.got_var(idpthr).and.qout(idpthr,ng)) THEN
4296 IF (master) WRITE (stdout,70) trim(vname(1,idpthr)), &
4297 & trim(ncname)
4298 exit_flag=3
4299 RETURN
4300 END IF
4301 IF (.not.got_var(idpthu).and.qout(idpthu,ng)) THEN
4302 IF (master) WRITE (stdout,70) trim(vname(1,idpthu)), &
4303 & trim(ncname)
4304 exit_flag=3
4305 RETURN
4306 END IF
4307 IF (.not.got_var(idpthv).and.qout(idpthv,ng)) THEN
4308 IF (master) WRITE (stdout,70) trim(vname(1,idpthv)), &
4309 & trim(ncname)
4310 exit_flag=3
4311 RETURN
4312 END IF
4313 IF (.not.got_var(idpthw).and.qout(idpthw,ng)) THEN
4314 IF (master) WRITE (stdout,70) trim(vname(1,idpthw)), &
4315 & trim(ncname)
4316 exit_flag=3
4317 RETURN
4318 END IF
4319# endif
4320 IF (.not.got_var(idfsur).and.qout(idfsur,ng)) THEN
4321 IF (master) WRITE (stdout,70) trim(vname(1,idfsur)), &
4322 & trim(ncname)
4323 exit_flag=3
4324 RETURN
4325 END IF
4326 IF (.not.got_var(idubar).and.qout(idubar,ng)) THEN
4327 IF (master) WRITE (stdout,70) trim(vname(1,idubar)), &
4328 & trim(ncname)
4329 exit_flag=3
4330 RETURN
4331 END IF
4332 IF (.not.got_var(idvbar).and.qout(idvbar,ng)) THEN
4333 IF (master) WRITE (stdout,70) trim(vname(1,idvbar)), &
4334 & trim(ncname)
4335 exit_flag=3
4336 RETURN
4337 END IF
4338 IF (.not.got_var(idu2de).and.qout(idu2de,ng)) THEN
4339 IF (master) WRITE (stdout,70) trim(vname(1,idu2de)), &
4340 & trim(ncname)
4341 exit_flag=3
4342 RETURN
4343 END IF
4344 IF (.not.got_var(idv2dn).and.qout(idv2dn,ng)) THEN
4345 IF (master) WRITE (stdout,70) trim(vname(1,idv2dn)), &
4346 & trim(ncname)
4347 exit_flag=3
4348 RETURN
4349 END IF
4350# ifdef SOLVE3D
4351 IF (.not.got_var(iduvel).and.qout(iduvel,ng)) THEN
4352 IF (master) WRITE (stdout,70) trim(vname(1,iduvel)), &
4353 & trim(ncname)
4354 exit_flag=3
4355 RETURN
4356 END IF
4357 IF (.not.got_var(idvvel).and.qout(idvvel,ng)) THEN
4358 IF (master) WRITE (stdout,70) trim(vname(1,idvvel)), &
4359 & trim(ncname)
4360 exit_flag=3
4361 RETURN
4362 END IF
4363 IF (.not.got_var(idusur).and.qout(idusur,ng)) THEN
4364 IF (master) WRITE (stdout,70) trim(vname(1,idusur)), &
4365 & trim(ncname)
4366 exit_flag=3
4367 RETURN
4368 END IF
4369 IF (.not.got_var(idvsur).and.qout(idvsur,ng)) THEN
4370 IF (master) WRITE (stdout,70) trim(vname(1,idvsur)), &
4371 & trim(ncname)
4372 exit_flag=3
4373 RETURN
4374 END IF
4375 IF (.not.got_var(idu3de).and.qout(idu3de,ng)) THEN
4376 IF (master) WRITE (stdout,70) trim(vname(1,idu3de)), &
4377 & trim(ncname)
4378 exit_flag=3
4379 RETURN
4380 END IF
4381 IF (.not.got_var(idv3dn).and.qout(idv3dn,ng)) THEN
4382 IF (master) WRITE (stdout,70) trim(vname(1,idv3dn)), &
4383 & trim(ncname)
4384 exit_flag=3
4385 RETURN
4386 END IF
4387 IF (.not.got_var(idusue).and.qout(idusue,ng)) THEN
4388 IF (master) WRITE (stdout,70) trim(vname(1,idusue)), &
4389 & trim(ncname)
4390 exit_flag=3
4391 RETURN
4392 END IF
4393 IF (.not.got_var(idvsun).and.qout(idvsun,ng)) THEN
4394 IF (master) WRITE (stdout,70) trim(vname(1,idvsun)), &
4395 & trim(ncname)
4396 exit_flag=3
4397 RETURN
4398 END IF
4399 IF (.not.got_var(idwvel).and.qout(idwvel,ng)) THEN
4400 IF (master) WRITE (stdout,70) trim(vname(1,idwvel)), &
4401 & trim(ncname)
4402 exit_flag=3
4403 RETURN
4404 END IF
4405 IF (.not.got_var(idovel).and.qout(idovel,ng)) THEN
4406 IF (master) WRITE (stdout,70) trim(vname(1,idovel)), &
4407 & trim(ncname)
4408 exit_flag=3
4409 RETURN
4410 END IF
4411 IF (.not.got_var(iddano).and.qout(iddano,ng)) THEN
4412 IF (master) WRITE (stdout,70) trim(vname(1,iddano)), &
4413 & trim(ncname)
4414 exit_flag=3
4415 RETURN
4416 END IF
4417# ifdef LMD_SKPP
4418 IF (.not.got_var(idhsbl).and.qout(idhsbl,ng)) THEN
4419 IF (master) WRITE (stdout,70) trim(vname(1,idhsbl)), &
4420 & trim(ncname)
4421 exit_flag=3
4422 RETURN
4423 END IF
4424# endif
4425# ifdef LMD_BKPP
4426 IF (.not.got_var(idhbbl).and.qout(idhbbl,ng)) THEN
4427 IF (master) WRITE (stdout,70) trim(vname(1,idhbbl)), &
4428 & trim(ncname)
4429 exit_flag=3
4430 RETURN
4431 END IF
4432# endif
4433 IF (.not.got_var(idvvis).and.qout(idvvis,ng)) THEN
4434 IF (master) WRITE (stdout,70) trim(vname(1,idvvis)), &
4435 & trim(ncname)
4436 exit_flag=3
4437 RETURN
4438 END IF
4439 IF (.not.got_var(idtdif).and.qout(idtdif,ng)) THEN
4440 IF (master) WRITE (stdout,70) trim(vname(1,idtdif)), &
4441 & trim(ncname)
4442 exit_flag=3
4443 RETURN
4444 END IF
4445# ifdef SALINITY
4446 IF (.not.got_var(idsdif).and.qout(idsdif,ng)) THEN
4447 IF (master) WRITE (stdout,70) trim(vname(1,idsdif)), &
4448 & trim(ncname)
4449 exit_flag=3
4450 RETURN
4451 END IF
4452# endif
4453# if defined GLS_MIXING || defined MY25_MIXING
4454 IF (.not.got_var(idmtke).and.qout(idmtke,ng)) THEN
4455 IF (master) WRITE (stdout,70) trim(vname(1,idmtke)), &
4456 & trim(ncname)
4457 exit_flag=3
4458 RETURN
4459 END IF
4460 IF (.not.got_var(idmtls).and.qout(idmtls,ng)) THEN
4461 IF (master) WRITE (stdout,70) trim(vname(1,idmtls)), &
4462 & trim(ncname)
4463 exit_flag=3
4464 RETURN
4465 END IF
4466# endif
4467# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
4468 IF (.not.got_var(idpair).and.qout(idpair,ng)) THEN
4469 IF (master) WRITE (stdout,70) trim(vname(1,idpair)), &
4470 & trim(ncname)
4471 exit_flag=3
4472 RETURN
4473 END IF
4474# endif
4475# if defined BULK_FLUXES || defined ECOSIM
4476 IF (.not.got_var(iduair).and.qout(iduair,ng)) THEN
4477 IF (master) WRITE (stdout,70) trim(vname(1,iduair)), &
4478 & trim(ncname)
4479 exit_flag=3
4480 RETURN
4481 END IF
4482 IF (.not.got_var(idvair).and.qout(idvair,ng)) THEN
4483 IF (master) WRITE (stdout,70) trim(vname(1,idvair)), &
4484 & trim(ncname)
4485 exit_flag=3
4486 RETURN
4487 END IF
4488 IF (.not.got_var(iduaie).and.qout(iduaie,ng)) THEN
4489 IF (master) WRITE (stdout,70) trim(vname(1,iduaie)), &
4490 & trim(ncname)
4491 exit_flag=3
4492 RETURN
4493 END IF
4494 IF (.not.got_var(idvain).and.qout(idvain,ng)) THEN
4495 IF (master) WRITE (stdout,70) trim(vname(1,idvain)), &
4496 & trim(ncname)
4497 exit_flag=3
4498 RETURN
4499 END IF
4500# endif
4501# if defined BULK_FLUXES || defined FRC_COUPLING
4502 IF (.not.got_var(idlhea).and.qout(idlhea,ng)) THEN
4503 IF (master) WRITE (stdout,70) trim(vname(1,idlhea)), &
4504 & trim(ncname)
4505 exit_flag=3
4506 RETURN
4507 END IF
4508 IF (.not.got_var(idshea).and.qout(idshea,ng)) THEN
4509 IF (master) WRITE (stdout,70) trim(vname(1,idshea)), &
4510 & trim(ncname)
4511 exit_flag=3
4512 RETURN
4513 END IF
4514 IF (.not.got_var(idlrad).and.qout(idlrad,ng)) THEN
4515 IF (master) WRITE (stdout,70) trim(vname(1,idlrad)), &
4516 & trim(ncname)
4517 exit_flag=3
4518 RETURN
4519 END IF
4520# endif
4521# ifdef BULK_FLUXES
4522 IF (.not.got_var(idtair).and.qout(idtair,ng)) THEN
4523 IF (master) WRITE (stdout,70) trim(vname(1,idtair)), &
4524 & trim(ncname)
4525 exit_flag=3
4526 RETURN
4527 END IF
4528# ifdef EMINUSP
4529 IF (.not.got_var(idevap).and.qout(idevap,ng)) THEN
4530 IF (master) WRITE (stdout,70) trim(vname(1,idevap)), &
4531 & trim(ncname)
4532 exit_flag=3
4533 RETURN
4534 END IF
4535 IF (.not.got_var(idrain).and.qout(idrain,ng)) THEN
4536 IF (master) WRITE (stdout,70) trim(vname(1,idrain)), &
4537 & trim(ncname)
4538 exit_flag=3
4539 RETURN
4540 END IF
4541# endif
4542# endif
4543 IF (.not.got_var(idempf).and.qout(idempf,ng)) THEN
4544 IF (master) WRITE (stdout,70) trim(vname(1,idempf)), &
4545 & trim(ncname)
4546 exit_flag=3
4547 RETURN
4548 END IF
4549# ifdef SHORTWAVE
4550 IF (.not.got_var(idsrad).and.qout(idsrad,ng)) THEN
4551 IF (master) WRITE (stdout,70) trim(vname(1,idsrad)), &
4552 & trim(ncname)
4553 exit_flag=3
4554 RETURN
4555 END IF
4556# endif
4557# endif
4558 IF (.not.got_var(idusms).and.qout(idusms,ng)) THEN
4559 IF (master) WRITE (stdout,70) trim(vname(1,idusms)), &
4560 & trim(ncname)
4561 exit_flag=3
4562 RETURN
4563 END IF
4564 IF (.not.got_var(idvsms).and.qout(idvsms,ng)) THEN
4565 IF (master) WRITE (stdout,70) trim(vname(1,idvsms)), &
4566 & trim(ncname)
4567 exit_flag=3
4568 RETURN
4569 END IF
4570 IF (.not.got_var(idubms).and.qout(idubms,ng)) THEN
4571 IF (master) WRITE (stdout,70) trim(vname(1,idubms)), &
4572 & trim(ncname)
4573 exit_flag=3
4574 RETURN
4575 END IF
4576 IF (.not.got_var(idvbms).and.qout(idvbms,ng)) THEN
4577 IF (master) WRITE (stdout,70) trim(vname(1,idvbms)), &
4578 & trim(ncname)
4579 exit_flag=3
4580 RETURN
4581 END IF
4582# ifdef SOLVE3D
4583 DO itrc=1,nt(ng)
4584 IF (.not.got_var(idtvar(itrc)).and.qout(idtvar(itrc),ng)) THEN
4585 IF (master) WRITE (stdout,70) trim(vname(1,idtvar(itrc))), &
4586 & trim(ncname)
4587 exit_flag=3
4588 RETURN
4589 END IF
4590 IF (.not.got_var(idsurt(itrc)).and.qout(idsurt(itrc),ng)) THEN
4591 IF (master) WRITE (stdout,70) trim(vname(1,idsurt(itrc))), &
4592 & trim(ncname)
4593 exit_flag=3
4594 RETURN
4595 END IF
4596 END DO
4597 DO itrc=1,nat
4598 IF (.not.got_var(idtsur(itrc)).and.qout(idtsur(itrc),ng)) THEN
4599 IF (master) WRITE (stdout,70) trim(vname(1,idtsur(itrc))), &
4600 & trim(ncname)
4601 exit_flag=3
4602 RETURN
4603 END IF
4604 END DO
4605# endif
4606
4607# if (defined BBL_MODEL || defined WAVES_OUTPUT) && defined SOLVE3D
4608
4609
4610
4611
4612
4613 CALL bbl_def_pio (ng, model, ldef, qout, qck)
4614 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4615# endif
4616
4617# if defined ICE_MODEL && defined SOLVE3D
4618
4619
4620
4621
4622 CALL ice_def_pio (ng, model, ldef, qout, qck)
4623# endif
4624
4625# if defined SEDIMENT && defined SOLVE3D
4626
4627
4628
4629
4630 CALL sediment_def_pio (ng, model, ldef, qout, qck)
4631 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4632# endif
4633
4634# if defined WEC_VF && defined SOLVE3D
4635
4636
4637
4638
4639 CALL wec_def_pio (ng, model, ldef, qout, qck)
4640 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4641# endif
4642
4643
4644
4645 IF (ndefqck(ng).gt.0) THEN
4646 qck(ng)%Rindex=((ntstart(ng)-1)- &
4647 & ndefqck(ng)*((ntstart(ng)-1)/ndefqck(ng)))/ &
4648 & nqck(ng)
4649 ELSE
4650 qck(ng)%Rindex=(ntstart(ng)-1)/nqck(ng)
4651 END IF
4652 qck(ng)%Rindex=min(qck(ng)%Rindex,rec_size)
4653 END IF query
4654
4655 10 FORMAT (2x,'DEF_QUICK_PIO - creating quicksave file,',t56, &
4656 & 'Grid ',i2.2,': ',a)
4657 20 FORMAT (2x,'DEF_QUICK_PIO - inquiring quicksave file,',t56, &
4658 & 'Grid ',i2.2,': ',a)
4659 30 FORMAT (/,' DEF_QUICK_PIO - unable to create quicksave NetCDF', &
4660 & ' file:', 1x,a)
4661 40 FORMAT ('time dependent',1x,a)
4662 50 FORMAT (1pe11.4,1x,'millimeter')
4663 60 FORMAT (/,' DEF_QUICK_PIO - unable to open quicksave NetCDF', &
4664 & ' file: ',a)
4665 70 FORMAT (/,' DEF_QUICK_PIO - unable to find variable: ',a,2x, &
4666 & ' in quicksave NetCDF file: ',a)
4667
4668 RETURN
integer, parameter pio_fout
type(var_desc_t), dimension(:), pointer var_desc
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)