2701
2702
2704
2705
2706
2707 integer, intent(in) :: ng, model
2708
2709 logical, intent(in) :: ldef
2710
2711
2712
2713 logical :: got_var(NV)
2714
2715 integer, parameter :: Natt = 25
2716
2717 integer :: i, ifield, itrc, j, nvd3, nvd4
2718# if defined WRITE_WATER && defined MASKING
2719 integer :: xy_pdim, xyz_pdim
2720# endif
2721 integer :: recdim, status
2722
2723 integer :: DimIDs(nDimID)
2724 integer :: p2dgrd(3), t2dgrd(3), u2dgrd(3), v2dgrd(3)
2725
2726# ifdef SOLVE3D
2727# ifdef SEDIMENT
2728 integer :: b3dgrd(4)
2729# endif
2730 integer :: p3dgrd(4), t3dgrd(4), u3dgrd(4), v3dgrd(4), w3dgrd(4)
2731# endif
2732
2733 real(r8) :: Aval(6)
2734
2735# ifdef ADJOINT
2736 character (len=21) :: Prefix
2737# else
2738 character (len=13) :: Prefix
2739# endif
2740 character (len=256) :: ncname
2741 character (len=MaxLen) :: Vinfo(Natt)
2742
2743 character (len=*), parameter :: MyFile = &
2744 & __FILE__//", def_avg_pio"
2745
2746 sourcefile=myfile
2747
2748
2749
2750
2751
2752 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2753 ncname=avg(ng)%name
2754
2755 IF (master) THEN
2756 IF (ldef) THEN
2757 WRITE (stdout,10) ng, trim(ncname)
2758 ELSE
2759 WRITE (stdout,20) ng, trim(ncname)
2760 END IF
2761 END IF
2762
2763
2764
2765
2766
2767 define : IF (ldef) THEN
2769 & avg(ng)%pioFile)
2770 IF (founderror(exit_flag, noerror, __line__, myfile)) THEN
2771 IF (master) WRITE (stdout,30) trim(ncname)
2772 RETURN
2773 END IF
2774
2775
2776
2777
2778
2779 dimids=0
2780
2781 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xi_rho', &
2782 & iobounds(ng)%xi_rho, dimids( 1))
2783 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2784
2785 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xi_u', &
2786 & iobounds(ng)%xi_u, dimids( 2))
2787 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2788
2789 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xi_v', &
2790 & iobounds(ng)%xi_v, dimids( 3))
2791 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2792
2793 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xi_psi', &
2794 & iobounds(ng)%xi_psi, dimids( 4))
2795 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2796
2797 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'eta_rho', &
2798 & iobounds(ng)%eta_rho, dimids( 5))
2799 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2800
2801 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'eta_u', &
2802 & iobounds(ng)%eta_u, dimids( 6))
2803 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2804
2805 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'eta_v', &
2806 & iobounds(ng)%eta_v, dimids( 7))
2807 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2808
2809 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'eta_psi', &
2810 & iobounds(ng)%eta_psi, dimids( 8))
2811 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2812
2813# if defined WRITE_WATER && defined MASKING
2814 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xy_rho', &
2815 & iobounds(ng)%xy_rho, dimids(17))
2816 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2817
2818 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xy_u', &
2819 & iobounds(ng)%xy_u, dimids(18))
2820 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2821
2822 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xy_v', &
2823 & iobounds(ng)%xy_v, dimids(19))
2824 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2825
2826 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xy_psi', &
2827 & iobounds(ng)%xy_psi, xy_pdim)
2828 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2829# endif
2830
2831# ifdef SOLVE3D
2832# if defined WRITE_WATER && defined MASKING
2833 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xyz_rho', &
2834 & iobounds(ng)%xy_rho*n(ng), dimids(20))
2835 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2836
2837 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xyz_u', &
2838 & iobounds(ng)%xy_u*n(ng), dimids(21))
2839 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2840
2841 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xyz_v', &
2842 & iobounds(ng)%xy_v*n(ng), dimids(22))
2843 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2844
2845 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xyz_w', &
2846 & iobounds(ng)%xy_rho*(n(ng)+1), dimids(23))
2847 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2848
2849 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xyz_psi', &
2850 & iobounds(ng)%xy_psi*n(ng), xyz_pdim)
2851 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2852# endif
2853
2854 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 's_rho', &
2855 & n(ng), dimids( 9))
2856 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2857
2858 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 's_w', &
2859 & n(ng)+1, dimids(10))
2860 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2861
2862 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'tracer', &
2863 & nt(ng), dimids(11))
2864 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2865
2866# ifdef SEDIMENT
2867 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'NST', &
2868 & nst, dimids(32))
2869 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2870
2871 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'Nbed', &
2872 & nbed, dimids(16))
2873 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2874
2875# if defined WRITE_WATER && defined MASKING
2876 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'xybed', &
2877 & iobounds(ng)%xy_rho*nbed, dimids(24))
2878 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2879# endif
2880# endif
2881
2882# ifdef ECOSIM
2883 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'Nbands', &
2884 & nbands, dimids(33))
2885 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2886
2887 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'Nphy', &
2888 & nphy, dimids(25))
2889 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2890
2891 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'Nbac', &
2892 & nbac, dimids(26))
2893 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2894
2895 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'Ndom', &
2896 & ndom, dimids(27))
2897 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2898
2899 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'Nfec', &
2900 & nfec, dimids(28))
2901 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2902# endif
2903# endif
2904
2905 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'boundary', &
2906 & 4, dimids(14))
2907 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2908
2909# ifdef FOUR_DVAR
2910 status=def_dim(ng, model, avg(ng)%pioFile, ncname, 'Nstate', &
2911 & nstatevar(ng), dimids(29))
2912 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2913# endif
2914
2915 status=def_dim(ng, model, avg(ng)%pioFile, ncname, &
2916 & trim(adjustl(vname(5,idtime))), &
2917 & pio_unlimited, dimids(12))
2918 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
2919
2920 recdim=dimids(12)
2921
2922
2923
2924# if defined WRITE_WATER && defined MASKING
2925 nvd3=2
2926 nvd4=2
2927# else
2928 nvd3=3
2929 nvd4=4
2930# endif
2931
2932
2933
2934# if defined WRITE_WATER && defined MASKING
2935 t2dgrd(1)=dimids(17)
2936 t2dgrd(2)=dimids(12)
2937# ifdef SOLVE3D
2938 t3dgrd(1)=dimids(20)
2939 t3dgrd(2)=dimids(12)
2940# endif
2941# else
2942 t2dgrd(1)=dimids( 1)
2943 t2dgrd(2)=dimids( 5)
2944 t2dgrd(3)=dimids(12)
2945# ifdef SOLVE3D
2946 t3dgrd(1)=dimids( 1)
2947 t3dgrd(2)=dimids( 5)
2948 t3dgrd(3)=dimids( 9)
2949 t3dgrd(4)=dimids(12)
2950# endif
2951# endif
2952
2953
2954
2955# if defined WRITE_WATER && defined MASKING
2956 u2dgrd(1)=dimids(18)
2957 u2dgrd(2)=dimids(12)
2958# ifdef SOLVE3D
2959 u3dgrd(1)=dimids(21)
2960 u3dgrd(2)=dimids(12)
2961# endif
2962# else
2963 u2dgrd(1)=dimids( 2)
2964 u2dgrd(2)=dimids( 6)
2965 u2dgrd(3)=dimids(12)
2966# ifdef SOLVE3D
2967 u3dgrd(1)=dimids( 2)
2968 u3dgrd(2)=dimids( 6)
2969 u3dgrd(3)=dimids( 9)
2970 u3dgrd(4)=dimids(12)
2971# endif
2972# endif
2973
2974
2975
2976# if defined WRITE_WATER && defined MASKING
2977 v2dgrd(1)=dimids(19)
2978 v2dgrd(2)=dimids(12)
2979# ifdef SOLVE3D
2980 v3dgrd(1)=dimids(22)
2981 v3dgrd(2)=dimids(12)
2982# endif
2983# else
2984 v2dgrd(1)=dimids( 3)
2985 v2dgrd(2)=dimids( 7)
2986 v2dgrd(3)=dimids(12)
2987# ifdef SOLVE3D
2988 v3dgrd(1)=dimids( 3)
2989 v3dgrd(2)=dimids( 7)
2990 v3dgrd(3)=dimids( 9)
2991 v3dgrd(4)=dimids(12)
2992# endif
2993# endif
2994
2995
2996
2997# if defined WRITE_WATER && defined MASKING
2998 p2dgrd(1)=xy_pdim
2999 p2dgrd(2)=dimids(12)
3000# ifdef SOLVE3D
3001 p3dgrd(1)=xyz_pdim
3002 p3dgrd(2)=dimids(12)
3003# endif
3004# else
3005 p2dgrd(1)=dimids( 4)
3006 p2dgrd(2)=dimids( 8)
3007 p2dgrd(3)=dimids(12)
3008# ifdef SOLVE3D
3009 p3dgrd(1)=dimids( 4)
3010 p3dgrd(2)=dimids( 8)
3011 p3dgrd(3)=dimids( 9)
3012 p3dgrd(4)=dimids(12)
3013# endif
3014# endif
3015# ifdef SOLVE3D
3016
3017
3018
3019# if defined WRITE_WATER && defined MASKING
3020 w3dgrd(1)=dimids(23)
3021 w3dgrd(2)=dimids(12)
3022# else
3023 w3dgrd(1)=dimids( 1)
3024 w3dgrd(2)=dimids( 5)
3025 w3dgrd(3)=dimids(10)
3026 w3dgrd(4)=dimids(12)
3027# endif
3028# ifdef SEDIMENT
3029
3030
3031
3032# if defined WRITE_WATER && defined MASKING
3033 b3dgrd(1)=dimids(24)
3034 b3dgrd(2)=dimids(12)
3035# else
3036 b3dgrd(1)=dimids( 1)
3037 b3dgrd(2)=dimids( 5)
3038 b3dgrd(3)=dimids(16)
3039 b3dgrd(4)=dimids(12)
3040# endif
3041# endif
3042# endif
3043
3044
3045
3046 avg(ng)%Rindex=0
3047
3048
3049
3050 DO i=1,natt
3051 DO j=1,len(vinfo(1))
3052 vinfo(i)(j:j)=' '
3053 END DO
3054 END DO
3055 DO i=1,6
3056 aval(i)=0.0_r8
3057 END DO
3058
3059
3060
3061# ifdef ADJOINT
3062
3063 prefix='adjoint'
3064# else
3065
3066 prefix=char(32)
3067# endif
3068
3069
3070
3071
3072
3073 CALL def_info (ng, model, avg(ng)%pioFile, ncname, dimids)
3074 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3075
3076
3077
3078
3079
3080
3081
3082 vinfo( 1)=vname(1,idtime)
3083 WRITE (vinfo( 2),'(a,a)') 'averaged ', trim(vname(2,idtime))
3084 WRITE (vinfo( 3),'(a,a)') 'seconds since ', trim(rclock%string)
3085 vinfo( 4)=trim(rclock%calendar)
3086 vinfo(14)=vname(4,idtime)
3087 vinfo(21)=vname(6,idtime)
3088 avg(ng)%pioVar(idtime)%dkind=
pio_tout
3089 avg(ng)%pioVar(idtime)%gtype=0
3090
3091 status=def_var(ng, model, avg(ng)%pioFile, &
3092 & avg(ng)%pioVar(idtime)%vd, &
3093 &
pio_tout, 1, (/recdim/), aval, vinfo, ncname, &
3094 & setparaccess = .true.)
3095 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3096
3097
3098
3099 IF (aout(idfsur,ng)) THEN
3100 vinfo( 1)=vname(1,idfsur)
3101 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idfsur))
3102 vinfo( 3)=vname(3,idfsur)
3103 vinfo(14)=vname(4,idfsur)
3104 vinfo(16)=vname(1,idtime)
3105# if !defined WET_DRY && (defined WRITE_WATER && defined MASKING)
3106 vinfo(20)='mask_rho'
3107# endif
3108 vinfo(21)=vname(6,idfsur)
3109 vinfo(22)='coordinates'
3110 aval(5)=real(iinfo(1,idfsur,ng),r8)
3111 avg(ng)%pioVar(idfsur)%dkind=
pio_fout
3112 avg(ng)%pioVar(idfsur)%gtype=r2dvar
3113
3114 status=def_var(ng, model, avg(ng)%pioFile, &
3115 & avg(ng)%pioVar(idfsur)%vd, &
3116 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3117 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3118 END IF
3119
3120# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
3121
3122
3123
3124 IF (aout(idfsud,ng)) THEN
3125 vinfo( 1)=vname(1,idfsud)
3126 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idfsud))
3127 vinfo( 3)=vname(3,idfsud)
3128 vinfo(14)=vname(4,idfsud)
3129 vinfo(16)=vname(1,idtime)
3130# if defined WRITE_WATER && defined MASKING
3131 vinfo(20)='mask_rho'
3132# endif
3133 vinfo(21)=vname(6,idfsud)
3134 vinfo(22)='coordinates'
3135 aval(5)=real(iinfo(1,idfsud,ng),r8)
3136 avg(ng)%pioVar(idfsud)%dkind=
pio_fout
3137 avg(ng)%pioVar(idfsud)%gtype=r2dvar
3138
3139 status=def_var(ng, model, avg(ng)%pioFile, &
3140 & avg(ng)%pioVar(idfsud)%vd, &
3141 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3142 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3143 END IF
3144# endif
3145
3146
3147
3148 IF (aout(idubar,ng)) THEN
3149 vinfo( 1)=vname(1,idubar)
3150 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idubar))
3151 vinfo( 3)=vname(3,idubar)
3152 vinfo(14)=vname(4,idubar)
3153 vinfo(16)=vname(1,idtime)
3154# if defined WRITE_WATER && defined MASKING
3155 vinfo(20)='mask_u'
3156# endif
3157 vinfo(21)=vname(6,idubar)
3158 vinfo(22)='coordinates'
3159 aval(5)=real(iinfo(1,idubar,ng),r8)
3160 avg(ng)%pioVar(idubar)%dkind=
pio_fout
3161 avg(ng)%pioVar(idubar)%gtype=u2dvar
3162
3163 status=def_var(ng, model, avg(ng)%pioFile, &
3164 & avg(ng)%pioVar(idubar)%vd, &
3165 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
3166 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3167 END IF
3168
3169# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
3170
3171
3172
3173 IF (aout(idu2dd,ng)) THEN
3174 vinfo( 1)=vname(1,idu2dd)
3175 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idu2dd))
3176 vinfo( 3)=vname(3,idu2dd)
3177 vinfo(14)=vname(4,idu2dd)
3178 vinfo(16)=vname(1,idtime)
3179# if defined WRITE_WATER && defined MASKING
3180 vinfo(20)='mask_u'
3181# endif
3182 vinfo(21)=vname(6,idu2dd)
3183 vinfo(22)='coordinates'
3184 aval(5)=real(iinfo(1,idu2dd,ng),r8)
3185 avg(ng)%pioVar(idu2dd)%dkind=
pio_fout
3186 avg(ng)%pioVar(idu2dd)%gtype=u2dvar
3187
3188 status=def_var(ng, model, avg(ng)%pioFile, &
3189 & avg(ng)%pioVar(idu2dd)%vd, &
3190 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
3191 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3192 END IF
3193# endif
3194
3195
3196
3197 IF (aout(idvbar,ng)) THEN
3198 vinfo( 1)=vname(1,idvbar)
3199 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idvbar))
3200 vinfo( 3)=vname(3,idvbar)
3201 vinfo(14)=vname(4,idvbar)
3202 vinfo(16)=vname(1,idtime)
3203# if defined WRITE_WATER && defined MASKING
3204 vinfo(20)='mask_v'
3205# endif
3206 vinfo(21)=vname(6,idvbar)
3207 vinfo(22)='coordinates'
3208 aval(5)=real(iinfo(1,idvbar,ng),r8)
3209 avg(ng)%pioVar(idvbar)%dkind=
pio_fout
3210 avg(ng)%pioVar(idvbar)%gtype=v2dvar
3211
3212 status=def_var(ng, model, avg(ng)%pioFile, &
3213 & avg(ng)%pioVar(idvbar)%vd, &
3214 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3215 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3216 END IF
3217
3218# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
3219
3220
3221
3222 IF (aout(idv2dd,ng)) THEN
3223 vinfo( 1)=vname(1,idv2dd)
3224 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idv2dd))
3225 vinfo( 3)=vname(3,idv2dd)
3226 vinfo(14)=vname(4,idv2dd)
3227 vinfo(16)=vname(1,idtime)
3228# if defined WRITE_WATER && defined MASKING
3229 vinfo(20)='mask_v'
3230# endif
3231 vinfo(21)=vname(6,idv2dd)
3232 vinfo(22)='coordinates'
3233 aval(5)=real(iinfo(1,idv2dd,ng),r8)
3234 avg(ng)%pioVar(idv2dd)%dkind=
pio_fout
3235 avg(ng)%pioVar(idv2dd)%gtype=v2dvar
3236
3237 status=def_var(ng, model, avg(ng)%pioFile, &
3238 & avg(ng)%pioVar(idv2dd)%vd, &
3239 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3240 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3241 END IF
3242# endif
3243
3244
3245
3246 IF (aout(idu2de,ng)) THEN
3247 vinfo( 1)=vname(1,idu2de)
3248 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idu2de))
3249 vinfo( 3)=vname(3,idu2de)
3250 vinfo(14)=vname(4,idu2de)
3251 vinfo(16)=vname(1,idtime)
3252# if defined WRITE_WATER && defined MASKING
3253 vinfo(20)='mask_rho'
3254# endif
3255 vinfo(21)=vname(6,idu2de)
3256 vinfo(22)='coordinates'
3257 aval(5)=real(iinfo(1,idu2de,ng),r8)
3258 avg(ng)%pioVar(idu2de)%dkind=
pio_fout
3259 avg(ng)%pioVar(idu2de)%gtype=r2dvar
3260
3261 status=def_var(ng, model, avg(ng)%pioFile, &
3262 & avg(ng)%pioVar(idu2de)%vd, &
3263 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3264 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3265 END IF
3266
3267
3268
3269 IF (aout(idv2dn,ng)) THEN
3270 vinfo( 1)=vname(1,idv2dn)
3271 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idv2dn))
3272 vinfo( 3)=vname(3,idv2dn)
3273 vinfo(14)=vname(4,idv2dn)
3274 vinfo(16)=vname(1,idtime)
3275# if defined WRITE_WATER && defined MASKING
3276 vinfo(20)='mask_rho'
3277# endif
3278 vinfo(21)=vname(6,idv2dn)
3279 vinfo(22)='coordinates'
3280 aval(5)=real(iinfo(1,idv2dn,ng),r8)
3281 avg(ng)%pioVar(idv2dn)%dkind=
pio_fout
3282 avg(ng)%pioVar(idv2dn)%gtype=r2dvar
3283
3284 status=def_var(ng, model, avg(ng)%pioFile, &
3285 & avg(ng)%pioVar(idv2dn)%vd, &
3286 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3287 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3288 END IF
3289
3290# ifdef SOLVE3D
3291# ifdef FORWARD_WRITE
3292
3293
3294
3295 IF (aout(idufx1,ng)) THEN
3296 vinfo( 1)=vname(1,idufx1)
3297 vinfo( 2)=vname(2,idufx1)
3298 vinfo( 3)=vname(3,idufx1)
3299 vinfo(14)=vname(4,idufx1)
3300 vinfo(16)=vname(1,idtime)
3301# if defined WRITE_WATER && defined MASKING
3302 vinfo(20)='mask_u'
3303# endif
3304 vinfo(21)=vname(6,idufx1)
3305 vinfo(22)='coordinates'
3306 aval(5)=real(u2dvar,r8)
3307 avg(ng)%pioVar(idufx1)%dkind=
pio_fout
3308 avg(ng)%pioVar(idufx1)%gtype=u2dvar
3309
3310 status=def_var(ng, model, avg(ng)%pioFile, &
3311 & avg(ng)%pioVar(idufx1)%vd, &
3312 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
3313 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3314 END IF
3315
3316 IF (aout(idufx2,ng)) THEN
3317 vinfo( 1)=vname(1,idufx2)
3318 vinfo( 2)=vname(2,idufx2)
3319 vinfo( 3)=vname(3,idufx2)
3320 vinfo(14)=vname(4,idufx2)
3321 vinfo(16)=vname(1,idtime)
3322# if defined WRITE_WATER && defined MASKING
3323 vinfo(20)='mask_u'
3324# endif
3325 vinfo(21)=vname(6,idufx2)
3326 vinfo(22)='coordinates'
3327 aval(5)=real(u2dvar,r8)
3328 avg(ng)%pioVar(idufx2)%dkind=
pio_fout
3329 avg(ng)%pioVar(idufx2)%gtype=u2dvar
3330
3331 status=def_var(ng, model, avg(ng)%pioFile, &
3332 & avg(ng)%pioVar(idufx2)%vd, &
3333 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
3334 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3335 END IF
3336
3337 IF (aout(idvfx1,ng)) THEN
3338 vinfo( 1)=vname(1,idvfx1)
3339 vinfo( 2)=vname(2,idvfx1)
3340 vinfo( 3)=vname(3,idvfx1)
3341 vinfo(14)=vname(4,idvfx1)
3342 vinfo(16)=vname(1,idtime)
3343# if defined WRITE_WATER && defined MASKING
3344 vinfo(20)='mask_v'
3345# endif
3346 vinfo(21)=vname(6,idvfx1)
3347 vinfo(22)='coordinates'
3348 aval(5)=real(v2dvar,r8)
3349 avg(ng)%pioVar(idvfx1)%dkind=
pio_fout
3350 avg(ng)%pioVar(idvfx1)%gtype=v2dvar
3351
3352 status=def_var(ng, model, avg(ng)%pioFile, &
3353 & avg(ng)%pioVar(idvfx1)%vd, &
3354 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3355 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3356 END IF
3357
3358 IF (aout(idvfx2,ng)) THEN
3359 vinfo( 1)=vname(1,idvfx2)
3360 vinfo( 2)=vname(2,idvfx2)
3361 vinfo( 3)=vname(3,idvfx2)
3362 vinfo(14)=vname(4,idvfx2)
3363 vinfo(16)=vname(1,idtime)
3364# if defined WRITE_WATER && defined MASKING
3365 vinfo(20)='mask_v'
3366# endif
3367 vinfo(21)=vname(6,idvfx2)
3368 vinfo(22)='coordinates'
3369 aval(5)=real(v2dvar,r8)
3370 avg(ng)%pioVar(idvfx2)%dkind=
pio_fout
3371 avg(ng)%pioVar(idvfx2)%gtype=v2dvar
3372
3373 status=def_var(ng, model, avg(ng)%pioFile, &
3374 & avg(ng)%pioVar(idvfx2)%vd, &
3375 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3376 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3377 END IF
3378# endif
3379
3380
3381
3382 IF (aout(iduvel,ng)) THEN
3383 vinfo( 1)=vname(1,iduvel)
3384 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,iduvel))
3385 vinfo( 3)=vname(3,iduvel)
3386 vinfo(14)=vname(4,iduvel)
3387 vinfo(16)=vname(1,idtime)
3388# if defined WRITE_WATER && defined MASKING
3389 vinfo(20)='mask_u'
3390# endif
3391 vinfo(21)=vname(6,iduvel)
3392 vinfo(22)='coordinates'
3393 aval(5)=real(iinfo(1,iduvel,ng),r8)
3394 avg(ng)%pioVar(iduvel)%dkind=
pio_fout
3395 avg(ng)%pioVar(iduvel)%gtype=u3dvar
3396
3397 status=def_var(ng, model, avg(ng)%pioFile, &
3398 & avg(ng)%pioVar(iduvel)%vd, &
3399 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
3400 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3401 END IF
3402
3403# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
3404
3405
3406
3407 IF (aout(idu3dd,ng)) THEN
3408 vinfo( 1)=vname(1,idu3dd)
3409 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idu3dd))
3410 vinfo( 3)=vname(3,idu3dd)
3411 vinfo(14)=vname(4,idu3dd)
3412 vinfo(16)=vname(1,idtime)
3413# if defined WRITE_WATER && defined MASKING
3414 vinfo(20)='mask_u'
3415# endif
3416 vinfo(21)=vname(6,idu3dd)
3417 vinfo(22)='coordinates'
3418 aval(5)=real(iinfo(1,idu3dd,ng),r8)
3419 avg(ng)%pioVar(idu3dd)%dkind=
pio_fout
3420 avg(ng)%pioVar(idu3dd)%gtype=u3dvar
3421
3422 status=def_var(ng, model, avg(ng)%pioFile, &
3423 & avg(ng)%pioVar(idu3dd)%vd, &
3424 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
3425 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3426 END IF
3427# endif
3428
3429
3430
3431 IF (aout(idvvel,ng)) THEN
3432 vinfo( 1)=vname(1,idvvel)
3433 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idvvel))
3434 vinfo( 3)=vname(3,idvvel)
3435 vinfo(14)=vname(4,idvvel)
3436 vinfo(16)=vname(1,idtime)
3437# if defined WRITE_WATER && defined MASKING
3438 vinfo(20)='mask_v'
3439# endif
3440 vinfo(21)=vname(6,idvvel)
3441 vinfo(22)='coordinates'
3442 aval(5)=real(iinfo(1,idvvel,ng),r8)
3443 avg(ng)%pioVar(idvvel)%dkind=
pio_fout
3444 avg(ng)%pioVar(idvvel)%gtype=v3dvar
3445
3446 status=def_var(ng, model, avg(ng)%pioFile, &
3447 & avg(ng)%pioVar(idvvel)%vd, &
3448 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
3449 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3450 END IF
3451
3452# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
3453
3454
3455
3456 IF (aout(idv3dd,ng)) THEN
3457 vinfo( 1)=vname(1,idv3dd)
3458 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idv3dd))
3459 vinfo( 3)=vname(3,idv3dd)
3460 vinfo(14)=vname(4,idv3dd)
3461 vinfo(16)=vname(1,idtime)
3462# if defined WRITE_WATER && defined MASKING
3463 vinfo(20)='mask_v'
3464# endif
3465 vinfo(21)=vname(6,idv3dd)
3466 vinfo(22)='coordinates'
3467 aval(5)=real(iinfo(1,idv3dd,ng),r8)
3468 avg(ng)%pioVar(idv3dd)%dkind=
pio_fout
3469 avg(ng)%pioVar(idv3dd)%gtype=v3dvar
3470
3471 status=def_var(ng, model, avg(ng)%pioFile, &
3472 & avg(ng)%pioVar(idv3dd)%vd, &
3473 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
3474 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3475 END IF
3476# endif
3477
3478
3479
3480 IF (aout(idu3de,ng)) THEN
3481 vinfo( 1)=vname(1,idu3de)
3482 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idu3de))
3483 vinfo( 3)=vname(3,idu3de)
3484 vinfo(14)=vname(4,idu3de)
3485 vinfo(16)=vname(1,idtime)
3486# if defined WRITE_WATER && defined MASKING
3487 vinfo(20)='mask_rho'
3488# endif
3489 vinfo(21)=vname(6,idu3de)
3490 vinfo(22)='coordinates'
3491 aval(5)=real(iinfo(1,idu3de,ng),r8)
3492 avg(ng)%pioVar(idu3de)%dkind=
pio_fout
3493 avg(ng)%pioVar(idu3de)%gtype=r3dvar
3494
3495 status=def_var(ng, model, avg(ng)%pioFile, &
3496 & avg(ng)%pioVar(idu3de)%vd, &
3497 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3498 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3499 END IF
3500
3501
3502
3503 IF (aout(idv3dn,ng)) THEN
3504 vinfo( 1)=vname(1,idv3dn)
3505 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idv3dn))
3506 vinfo( 3)=vname(3,idv3dn)
3507 vinfo(14)=vname(4,idv3dn)
3508 vinfo(16)=vname(1,idtime)
3509# if defined WRITE_WATER && defined MASKING
3510 vinfo(20)='mask_rho'
3511# endif
3512 vinfo(21)=vname(6,idv3dn)
3513 vinfo(22)='coordinates'
3514 aval(5)=real(iinfo(1,idv3dn,ng),r8)
3515 avg(ng)%pioVar(idv3dn)%dkind=
pio_fout
3516 avg(ng)%pioVar(idv3dn)%gtype=r3dvar
3517
3518 status=def_var(ng, model, avg(ng)%pioFile, &
3519 & avg(ng)%pioVar(idv3dn)%vd, &
3520 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3521 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3522 END IF
3523
3524
3525
3526 IF (aout(idovel,ng)) THEN
3527 vinfo( 1)=vname(1,idovel)
3528 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idovel))
3529 vinfo( 3)=vname(3,idovel)
3530 vinfo(14)=vname(4,idovel)
3531 vinfo(16)=vname(1,idtime)
3532# if defined WRITE_WATER && defined MASKING
3533 vinfo(20)='mask_rho'
3534# endif
3535 vinfo(21)=vname(6,idovel)
3536 vinfo(22)='coordinates'
3537 aval(5)=real(iinfo(1,idovel,ng),r8)
3538 avg(ng)%pioVar(idovel)%dkind=
pio_fout
3539 avg(ng)%pioVar(idovel)%gtype=w3dvar
3540
3541 status=def_var(ng, model, avg(ng)%pioFile, &
3542 & avg(ng)%pioVar(idovel)%vd, &
3543 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname)
3544 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3545 END IF
3546
3547
3548
3549 IF (aout(idwvel,ng)) THEN
3550 vinfo( 1)=vname(1,idwvel)
3551 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idwvel))
3552 vinfo( 3)=vname(3,idwvel)
3553 vinfo(14)=vname(4,idwvel)
3554 vinfo(16)=vname(1,idtime)
3555# if defined WRITE_WATER && defined MASKING
3556 vinfo(20)='mask_rho'
3557# endif
3558 vinfo(21)=vname(6,idwvel)
3559 vinfo(22)='coordinates'
3560 aval(5)=real(iinfo(1,idwvel,ng),r8)
3561 avg(ng)%pioVar(idwvel)%dkind=
pio_fout
3562 avg(ng)%pioVar(idwvel)%gtype=w3dvar
3563
3564 status=def_var(ng, model, avg(ng)%pioFile, &
3565 & avg(ng)%pioVar(idwvel)%vd, &
3566 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname)
3567 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3568 END IF
3569
3570
3571
3572 DO itrc=1,nt(ng)
3573 IF (aout(idtvar(itrc),ng)) THEN
3574 vinfo( 1)=vname(1,idtvar(itrc))
3575 WRITE (vinfo( 2),'(a,1x,a)') prefix, &
3576 & trim(vname(2,idtvar(itrc)))
3577 vinfo( 3)=vname(3,idtvar(itrc))
3578 vinfo(14)=vname(4,idtvar(itrc))
3579 vinfo(16)=vname(1,idtime)
3580# ifdef SEDIMENT
3581 DO i=1,nst
3582 IF (itrc.eq.idsed(i)) THEN
3583 WRITE (vinfo(19),40) 1000.0_r8*sd50(i,ng)
3584 END IF
3585 END DO
3586# endif
3587# if defined WRITE_WATER && defined MASKING
3588 vinfo(20)='mask_rho'
3589# endif
3590 vinfo(21)=vname(6,idtvar(itrc))
3591 vinfo(22)='coordinates'
3592 aval(5)=real(r3dvar,r8)
3593 avg(ng)%pioTrc(itrc)%dkind=
pio_fout
3594 avg(ng)%pioTrc(itrc)%gtype=r3dvar
3595
3596 status=def_var(ng, model, avg(ng)%pioFile, &
3597 & avg(ng)%pioTrc(itrc)%vd, &
3598 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3599 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3600 END IF
3601 END DO
3602
3603# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
3604
3605
3606
3607 DO itrc=1,nat
3608 IF (aout(idtrcd(itrc),ng)) THEN
3609 ifield=idtrcd(itrc)
3610 vinfo( 1)=vname(1,ifield)
3611 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,ifield))
3612 vinfo( 3)=vname(3,ifield)
3613 vinfo(14)=vname(4,ifield)
3614 vinfo(16)=vname(1,idtime)
3615# if defined WRITE_WATER && defined MASKING
3616 vinfo(20)='mask_rho'
3617# endif
3618 vinfo(21)=vname(6,ifield)
3619 vinfo(22)='coordinates'
3620 aval(5)=real(r3dvar,r8)
3621 avg(ng)%pioVar(ifield)%dkind=
pio_fout
3622 avg(ng)%pioVar(ifield)%gtype=r3dvar
3623
3624 status=def_var(ng, model, avg(ng)%pioFile, &
3625 & avg(ng)%pioVar(ifield)%vd, &
3626 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3627 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3628 END IF
3629 END DO
3630# endif
3631
3632
3633
3634 IF (aout(iddano,ng)) THEN
3635 vinfo( 1)=vname(1,iddano)
3636 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,iddano))
3637 vinfo( 3)=vname(3,iddano)
3638 vinfo(14)=vname(4,iddano)
3639 vinfo(16)=vname(1,idtime)
3640# if defined WRITE_WATER && defined MASKING
3641 vinfo(20)='mask_rho'
3642# endif
3643 vinfo(21)=vname(6,iddano)
3644 vinfo(22)='coordinates'
3645 aval(5)=real(iinfo(1,iddano,ng),r8)
3646 avg(ng)%pioVar(iddano)%dkind=
pio_fout
3647 avg(ng)%pioVar(iddano)%gtype=r3dvar
3648
3649 status=def_var(ng, model, avg(ng)%pioFile, &
3650 & avg(ng)%pioVar(iddano)%vd, &
3651 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3652 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3653 END IF
3654
3655# ifdef LMD_SKPP
3656
3657
3658
3659 IF (aout(idhsbl,ng)) THEN
3660 vinfo( 1)=vname(1,idhsbl)
3661 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idhsbl))
3662 vinfo( 3)=vname(3,idhsbl)
3663 vinfo(14)=vname(4,idhsbl)
3664 vinfo(16)=vname(1,idtime)
3665# if defined WRITE_WATER && defined MASKING
3666 vinfo(20)='mask_rho'
3667# endif
3668 vinfo(21)=vname(6,idhsbl)
3669 vinfo(22)='coordinates'
3670 aval(5)=real(iinfo(1,idhsbl,ng),r8)
3671 avg(ng)%pioVar(idhsbl)%dkind=
pio_fout
3672 avg(ng)%pioVar(idhsbl)%gtype=r2dvar
3673
3674 status=def_var(ng, model, avg(ng)%pioFile, &
3675 & avg(ng)%pioVar(idhsbl)%vd, &
3676 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3677 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3678 END IF
3679# endif
3680# ifdef LMD_BKPP
3681
3682
3683
3684 IF (aout(idhbbl,ng)) THEN
3685 vinfo( 1)=vname(1,idhbbl)
3686 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idhbbl))
3687 vinfo( 3)=vname(3,idhbbl)
3688 vinfo(14)=vname(4,idhbbl)
3689 vinfo(16)=vname(1,idtime)
3690# if defined WRITE_WATER && defined MASKING
3691 vinfo(20)='mask_rho'
3692# endif
3693 vinfo(21)=vname(6,idhbbl)
3694 vinfo(22)='coordinates'
3695 aval(5)=real(iinfo(1,idhbbl,ng),r8)
3696 avg(ng)%pioVar(idhbbl)%dkind=
pio_fout
3697 avg(ng)%pioVar(idhbbl)%gtype=r2dvar
3698
3699 status=def_var(ng, model, avg(ng)%pioFile, &
3700 & avg(ng)%pioVar(idhbbl)%vd, &
3701 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3702 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3703 END IF
3704# endif
3705# endif
3706
3707
3708
3709 IF (aout(id2dpv,ng)) THEN
3710 vinfo( 1)=vname(1,id2dpv)
3711 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,id2dpv))
3712 vinfo( 3)=vname(3,id2dpv)
3713 vinfo(14)=vname(4,id2dpv)
3714 vinfo(16)=vname(1,idtime)
3715# if defined WRITE_WATER && defined MASKING
3716 vinfo(20)='mask_psi'
3717# endif
3718 vinfo(21)=vname(6,id2dpv)
3719 vinfo(22)='coordinates'
3720 aval(5)=real(p2dvar,r8)
3721 avg(ng)%pioVar(id2dpv)%dkind=
pio_fout
3722 avg(ng)%pioVar(id2dpv)%gtype=p2dvar
3723
3724 status=def_var(ng, model, avg(ng)%pioFile, &
3725 & avg(ng)%pioVar(id2dpv)%vd, &
3726 &
pio_fout, nvd3, p2dgrd, aval, vinfo, ncname)
3727 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3728 END IF
3729
3730
3731
3732 IF (aout(id2drv,ng)) THEN
3733 vinfo( 1)=vname(1,id2drv)
3734 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,id2drv))
3735 vinfo( 3)=vname(3,id2drv)
3736 vinfo(14)=vname(4,id2drv)
3737 vinfo(16)=vname(1,idtime)
3738# if defined WRITE_WATER && defined MASKING
3739 vinfo(20)='mask_psi'
3740# endif
3741 vinfo(21)=vname(6,id2drv)
3742 vinfo(22)='coordinates'
3743 aval(5)=real(p2dvar,r8)
3744 avg(ng)%pioVar(id2drv)%dkind=
pio_fout
3745 avg(ng)%pioVar(id2drv)%gtype=p2dvar
3746
3747 status=def_var(ng, model, avg(ng)%pioFile, &
3748 & avg(ng)%pioVar(id2drv)%vd, &
3749 &
pio_fout, nvd3, p2dgrd, aval, vinfo, ncname)
3750 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3751 END IF
3752
3753# ifdef SOLVE3D
3754
3755
3756
3757 IF (aout(id3dpv,ng)) THEN
3758 vinfo( 1)=vname(1,id3dpv)
3759 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,id3dpv))
3760 vinfo( 3)=vname(3,id3dpv)
3761 vinfo(14)=vname(4,id3dpv)
3762 vinfo(16)=vname(1,idtime)
3763# if defined WRITE_WATER && defined MASKING
3764 vinfo(20)='mask_psi'
3765# endif
3766 vinfo(21)=vname(6,id3dpv)
3767 vinfo(22)='coordinates'
3768 aval(5)=real(p3dvar,r8)
3769 avg(ng)%pioVar(id3dpv)%dkind=
pio_fout
3770 avg(ng)%pioVar(id3dpv)%gtype=p3dvar
3771
3772 status=def_var(ng, model, avg(ng)%pioFile, &
3773 & avg(ng)%pioVar(id3dpv)%vd, &
3774 &
pio_fout, nvd4, p3dgrd, aval, vinfo, ncname)
3775 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3776 END IF
3777
3778
3779
3780 IF (aout(id3drv,ng)) THEN
3781 vinfo( 1)=vname(1,id3drv)
3782 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,id3drv))
3783 vinfo( 3)=vname(3,id3drv)
3784 vinfo(14)=vname(4,id3drv)
3785 vinfo(16)=vname(1,idtime)
3786# if defined WRITE_WATER && defined MASKING
3787 vinfo(20)='mask_psi'
3788# endif
3789 vinfo(21)=vname(6,id3drv)
3790 vinfo(22)='coordinates'
3791 aval(5)=real(p3dvar,r8)
3792 avg(ng)%pioVar(id3drv)%dkind=
pio_fout
3793 avg(ng)%pioVar(id3drv)%gtype=p3dvar
3794
3795 status=def_var(ng, model, avg(ng)%pioFile, &
3796 & avg(ng)%pioVar(id3drv)%vd, &
3797 &
pio_fout, nvd4, p3dgrd, aval, vinfo, ncname)
3798 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3799 END IF
3800# endif
3801
3802
3803
3804 IF (aout(idzzav,ng)) THEN
3805 vinfo( 1)=vname(1,idzzav)
3806 vinfo( 2)=trim(vname(2,idzzav))
3807 vinfo( 3)=vname(3,idzzav)
3808 vinfo(14)=vname(4,idzzav)
3809 vinfo(16)=vname(1,idtime)
3810# if defined WRITE_WATER && defined MASKING
3811 vinfo(20)='mask_rho'
3812# endif
3813 vinfo(21)=vname(6,idzzav)
3814 vinfo(22)='coordinates'
3815 aval(5)=real(r2dvar,r8)
3816 avg(ng)%pioVar(idzzav)%dkind=
pio_fout
3817 avg(ng)%pioVar(idzzav)%gtype=r2dvar
3818
3819 status=def_var(ng, model, avg(ng)%pioFile, &
3820 & avg(ng)%pioVar(idzzav)%vd, &
3821 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
3822 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3823 END IF
3824
3825
3826
3827 IF (aout(idu2av,ng)) THEN
3828 vinfo( 1)=vname(1,idu2av)
3829 vinfo( 2)=trim(vname(2,idu2av))
3830 vinfo( 3)=vname(3,idu2av)
3831 vinfo(14)=vname(4,idu2av)
3832 vinfo(16)=vname(1,idtime)
3833# if defined WRITE_WATER && defined MASKING
3834 vinfo(20)='mask_u'
3835# endif
3836 vinfo(21)=vname(6,idu2av)
3837 vinfo(22)='coordinates'
3838 aval(5)=real(u2dvar,r8)
3839 avg(ng)%pioVar(idu2av)%dkind=
pio_fout
3840 avg(ng)%pioVar(idu2av)%gtype=u2dvar
3841
3842 status=def_var(ng, model, avg(ng)%pioFile, &
3843 & avg(ng)%pioVar(idu2av)%vd, &
3844 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
3845 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3846 END IF
3847
3848
3849
3850 IF (aout(idv2av,ng)) THEN
3851 vinfo( 1)=vname(1,idv2av)
3852 vinfo( 2)=trim(vname(2,idv2av))
3853 vinfo( 3)=vname(3,idv2av)
3854 vinfo(14)=vname(4,idv2av)
3855 vinfo(16)=vname(1,idtime)
3856# if defined WRITE_WATER && defined MASKING
3857 vinfo(20)='mask_v'
3858# endif
3859 vinfo(21)=vname(6,idv2av)
3860 vinfo(22)='coordinates'
3861 aval(5)=real(v2dvar,r8)
3862 avg(ng)%pioVar(idv2av)%dkind=
pio_fout
3863 avg(ng)%pioVar(idv2av)%gtype=v2dvar
3864
3865 status=def_var(ng, model, avg(ng)%pioFile, &
3866 & avg(ng)%pioVar(idv2av)%vd, &
3867 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
3868 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3869 END IF
3870
3871# ifdef SOLVE3D
3872
3873
3874
3875 IF (aout(idhuav,ng)) THEN
3876 vinfo( 1)=vname(1,idhuav)
3877 vinfo( 2)=trim(vname(2,idhuav))
3878 vinfo( 3)=vname(3,idhuav)
3879 vinfo(14)=vname(4,idhuav)
3880 vinfo(16)=vname(1,idtime)
3881# if defined WRITE_WATER && defined MASKING
3882 vinfo(20)='mask_u'
3883# endif
3884 vinfo(21)=vname(6,idhuav)
3885 vinfo(22)='coordinates'
3886 aval(5)=real(u3dvar,r8)
3887 avg(ng)%pioVar(idhuav)%dkind=
pio_fout
3888 avg(ng)%pioVar(idhuav)%gtype=u3dvar
3889
3890 status=def_var(ng, model, avg(ng)%pioFile, &
3891 & avg(ng)%pioVar(idhuav)%vd, &
3892 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
3893 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3894 END IF
3895
3896
3897
3898 IF (aout(idhvav,ng)) THEN
3899 vinfo( 1)=vname(1,idhvav)
3900 vinfo( 2)=trim(vname(2,idhvav))
3901 vinfo( 3)=vname(3,idhvav)
3902 vinfo(14)=vname(4,idhvav)
3903 vinfo(16)=vname(1,idtime)
3904# if defined WRITE_WATER && defined MASKING
3905 vinfo(20)='mask_v'
3906# endif
3907 vinfo(21)=vname(6,idhvav)
3908 vinfo(22)='coordinates'
3909 aval(5)=real(v3dvar,r8)
3910 avg(ng)%pioVar(idhvav)%dkind=
pio_fout
3911 avg(ng)%pioVar(idhvav)%gtype=v3dvar
3912
3913 status=def_var(ng, model, avg(ng)%pioFile, &
3914 & avg(ng)%pioVar(idhvav)%vd, &
3915 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
3916 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3917 END IF
3918
3919
3920
3921 IF (aout(iduuav,ng)) THEN
3922 vinfo( 1)=vname(1,iduuav)
3923 vinfo( 2)=trim(vname(2,iduuav))
3924 vinfo( 3)=vname(3,iduuav)
3925 vinfo(14)=vname(4,iduuav)
3926 vinfo(16)=vname(1,idtime)
3927# if defined WRITE_WATER && defined MASKING
3928 vinfo(20)='mask_u'
3929# endif
3930 vinfo(21)=vname(6,iduuav)
3931 vinfo(22)='coordinates'
3932 aval(5)=real(u3dvar,r8)
3933 avg(ng)%pioVar(iduuav)%dkind=
pio_fout
3934 avg(ng)%pioVar(iduuav)%gtype=u3dvar
3935
3936 status=def_var(ng, model, avg(ng)%pioFile, &
3937 & avg(ng)%pioVar(iduuav)%vd, &
3938 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
3939 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3940 END IF
3941
3942
3943
3944 IF (aout(iduvav,ng)) THEN
3945 vinfo( 1)=vname(1,iduvav)
3946 vinfo( 2)=trim(vname(2,iduvav))
3947 vinfo( 3)=vname(3,iduvav)
3948 vinfo(14)=vname(4,iduvav)
3949 vinfo(16)=vname(1,idtime)
3950# if defined WRITE_WATER && defined MASKING
3951 vinfo(20)='mask_rho'
3952# endif
3953 vinfo(21)=vname(6,iduvav)
3954 vinfo(22)='coordinates'
3955 aval(5)=real(r3dvar,r8)
3956 avg(ng)%pioVar(iduvav)%dkind=
pio_fout
3957 avg(ng)%pioVar(iduvav)%gtype=r3dvar
3958
3959 status=def_var(ng, model, avg(ng)%pioFile, &
3960 & avg(ng)%pioVar(iduvav)%vd, &
3961 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
3962 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3963 END IF
3964
3965
3966
3967 IF (aout(idvvav,ng)) THEN
3968 vinfo( 1)=vname(1,idvvav)
3969 vinfo( 2)=trim(vname(2,idvvav))
3970 vinfo( 3)=vname(3,idvvav)
3971 vinfo(14)=vname(4,idvvav)
3972 vinfo(16)=vname(1,idtime)
3973# if defined WRITE_WATER && defined MASKING
3974 vinfo(20)='mask_v'
3975# endif
3976 vinfo(21)=vname(6,idvvav)
3977 vinfo(22)='coordinates'
3978 aval(5)=real(v3dvar,r8)
3979 avg(ng)%pioVar(idvvav)%dkind=
pio_fout
3980 avg(ng)%pioVar(idvvav)%gtype=v3dvar
3981
3982 status=def_var(ng, model, avg(ng)%pioFile, &
3983 & avg(ng)%pioVar(idvvav)%vd, &
3984 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
3985 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
3986 END IF
3987
3988
3989
3990 DO itrc=1,nt(ng)
3991 IF (aout(idttav(itrc),ng)) THEN
3992 vinfo( 1)=vname(1,idttav(itrc))
3993 vinfo( 2)=trim(vname(2,idttav(itrc)))
3994 vinfo( 3)=vname(3,idttav(itrc))
3995 vinfo(14)=vname(4,idttav(itrc))
3996 vinfo(16)=vname(1,idtime)
3997# if defined WRITE_WATER && defined MASKING
3998 vinfo(20)='mask_rho'
3999# endif
4000 vinfo(21)=vname(6,idttav(itrc))
4001 vinfo(22)='coordinates'
4002 aval(5)=real(r3dvar,r8)
4003 avg(ng)%pioVar(idttav(itrc))%dkind=
pio_fout
4004 avg(ng)%pioVar(idttav(itrc))%gtype=r3dvar
4005
4006 status=def_var(ng, model, avg(ng)%pioFile, &
4007 & avg(ng)%pioVar(idttav(itrc))%vd, &
4008 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
4009 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4010 END IF
4011 END DO
4012
4013
4014
4015 DO itrc=1,nt(ng)
4016 IF (aout(ihutav(itrc),ng)) THEN
4017 vinfo( 1)=vname(1,ihutav(itrc))
4018 vinfo( 2)=trim(vname(2,ihutav(itrc)))
4019 vinfo( 3)=vname(3,ihutav(itrc))
4020 vinfo(14)=vname(4,ihutav(itrc))
4021 vinfo(16)=vname(1,idtime)
4022# if defined WRITE_WATER && defined MASKING
4023 vinfo(20)='mask_u'
4024# endif
4025 vinfo(21)=vname(6,ihutav(itrc))
4026 vinfo(22)='coordinates'
4027 aval(5)=real(u3dvar,r8)
4028 avg(ng)%pioVar(ihutav(itrc))%dkind=
pio_fout
4029 avg(ng)%pioVar(ihutav(itrc))%gtype=u3dvar
4030
4031 status=def_var(ng, model, avg(ng)%pioFile, &
4032 & avg(ng)%pioVar(ihutav(itrc))%vd, &
4033 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
4034 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4035 END IF
4036
4037 IF (aout(ihvtav(itrc),ng)) THEN
4038 vinfo( 1)=vname(1,ihvtav(itrc))
4039 vinfo( 2)=trim(vname(2,ihvtav(itrc)))
4040 vinfo( 3)=vname(3,ihvtav(itrc))
4041 vinfo(14)=vname(4,ihvtav(itrc))
4042 vinfo(16)=vname(1,idtime)
4043# if defined WRITE_WATER && defined MASKING
4044 vinfo(20)='mask_v'
4045# endif
4046 vinfo(21)=vname(6,ihvtav(itrc))
4047 vinfo(22)='coordinates'
4048 aval(5)=real(v3dvar,r8)
4049 avg(ng)%pioVar(ihvtav(itrc))%dkind=
pio_fout
4050 avg(ng)%pioVar(ihvtav(itrc))%gtype=v3dvar
4051
4052 status=def_var(ng, model, avg(ng)%pioFile, &
4053 & avg(ng)%pioVar(ihvtav(itrc))%vd, &
4054 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
4055 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4056 END IF
4057 END DO
4058
4059
4060
4061 DO itrc=1,nt(ng)
4062 IF (aout(idutav(itrc),ng)) THEN
4063 vinfo( 1)=vname(1,idutav(itrc))
4064 vinfo( 2)=trim(vname(2,idutav(itrc)))
4065 vinfo( 3)=vname(3,idutav(itrc))
4066 vinfo(14)=vname(4,idutav(itrc))
4067 vinfo(16)=vname(1,idtime)
4068# if defined WRITE_WATER && defined MASKING
4069 vinfo(20)='mask_u'
4070# endif
4071 vinfo(21)=vname(6,idutav(itrc))
4072 vinfo(22)='coordinates'
4073 aval(5)=real(u3dvar,r8)
4074 avg(ng)%pioVar(idutav(itrc))%dkind=
pio_fout
4075 avg(ng)%pioVar(idutav(itrc))%gtype=u3dvar
4076
4077 status=def_var(ng, model, avg(ng)%pioFile, &
4078 & avg(ng)%pioVar(idutav(itrc))%vd, &
4079 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
4080 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4081 END IF
4082
4083 IF (aout(idvtav(itrc),ng)) THEN
4084 vinfo( 1)=vname(1,idvtav(itrc))
4085 vinfo( 2)=trim(vname(2,idvtav(itrc)))
4086 vinfo( 3)=vname(3,idvtav(itrc))
4087 vinfo(14)=vname(4,idvtav(itrc))
4088 vinfo(16)=vname(1,idtime)
4089# if defined WRITE_WATER && defined MASKING
4090 vinfo(20)='mask_v'
4091# endif
4092 vinfo(21)=vname(6,idvtav(itrc))
4093 vinfo(22)='coordinates'
4094 aval(5)=real(v3dvar,r8)
4095 avg(ng)%pioVar(idvtav(itrc))%dkind=
pio_fout
4096 avg(ng)%pioVar(idvtav(itrc))%gtype=v3dvar
4097
4098 status=def_var(ng, model, avg(ng)%pioFile, &
4099 & avg(ng)%pioVar(idvtav(itrc))%vd, &
4100 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
4101 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4102 END IF
4103 END DO
4104
4105# if defined LMD_MIXING || defined MY25_MIXING || defined GLS_MIXING
4106
4107
4108
4109 IF (aout(idvvis,ng)) THEN
4110 vinfo( 1)=vname(1,idvvis)
4111 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idvvis))
4112 vinfo( 3)=vname(3,idvvis)
4113 vinfo(14)=vname(4,idvvis)
4114 vinfo(16)=vname(1,idtime)
4115 vinfo(21)=vname(6,idvvis)
4116 vinfo(22)='coordinates'
4117 aval(5)=real(iinfo(1,idvvis,ng),r8)
4118 avg(ng)%pioVar(idvvis)%dkind=
pio_fout
4119 avg(ng)%pioVar(idvvis)%gtype=w3dvar
4120
4121 status=def_var(ng, model, avg(ng)%pioFile, &
4122 & avg(ng)%pioVar(idvvis)%vd, &
4123 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
4124 & setfillval = .false.)
4125 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4126 END IF
4127
4128
4129
4130 IF (aout(idtdif,ng)) THEN
4131 vinfo( 1)=vname(1,idtdif)
4132 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idtdif))
4133 vinfo( 3)=vname(3,idtdif)
4134 vinfo(14)=vname(4,idtdif)
4135 vinfo(16)=vname(1,idtime)
4136 vinfo(21)=vname(6,idtdif)
4137 vinfo(22)='coordinates'
4138 aval(5)=real(iinfo(1,idtdif,ng),r8)
4139 avg(ng)%pioVar(idtdif)%dkind=
pio_fout
4140 avg(ng)%pioVar(idtdif)%gtype=w3dvar
4141
4142 status=def_var(ng, model, avg(ng)%pioFile, &
4143 & avg(ng)%pioVar(idtdif)%vd, &
4144 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
4145 & setfillval = .false.)
4146 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4147 END IF
4148
4149# ifdef SALINITY
4150
4151
4152
4153 IF (aout(idsdif,ng)) THEN
4154 vinfo( 1)=vname(1,idsdif)
4155 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idsdif))
4156 vinfo( 3)=vname(3,idsdif)
4157 vinfo(14)=vname(4,idsdif)
4158 vinfo(16)=vname(1,idtime)
4159 vinfo(21)=vname(6,idsdif)
4160 vinfo(22)='coordinates'
4161 aval(5)=real(iinfo(1,idsdif,ng),r8)
4162 avg(ng)%pioVar(idsdif)%dkind=
pio_fout
4163 avg(ng)%pioVar(idsdif)%gtype=w3dvar
4164
4165 status=def_var(ng, model, avg(ng)%pioFile, &
4166 & avg(ng)%pioVar(idsdif)%vd, &
4167 &
pio_fout, nvd4, w3dgrd, aval, vinfo, ncname, &
4168 & setfillval = .false.)
4169 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4170 END IF
4171# endif
4172# endif
4173# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
4174
4175
4176
4177 IF (aout(idpair,ng)) THEN
4178 vinfo( 1)=vname(1,idpair)
4179 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idpair))
4180 vinfo( 3)=vname(3,idpair)
4181 vinfo(14)=vname(4,idpair)
4182 vinfo(16)=vname(1,idtime)
4183# if defined WRITE_WATER && defined MASKING
4184 vinfo(20)='mask_rho'
4185# endif
4186 vinfo(21)=vname(6,idpair)
4187 vinfo(22)='coordinates'
4188 aval(5)=real(iinfo(1,idpair,ng),r8)
4189 avg(ng)%pioVar(idpair)%dkind=
pio_fout
4190 avg(ng)%pioVar(idpair)%gtype=r2dvar
4191
4192 status=def_var(ng, model, avg(ng)%pioFile, &
4193 & avg(ng)%pioVar(idpair)%vd, &
4194 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4195 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4196 END IF
4197# endif
4198# if defined BULK_FLUXES
4199
4200
4201
4202 IF (aout(idtair,ng)) THEN
4203 vinfo( 1)=vname(1,idtair)
4204 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idtair))
4205 vinfo( 3)=vname(3,idtair)
4206 vinfo(14)=vname(4,idtair)
4207 vinfo(16)=vname(1,idtime)
4208# if defined WRITE_WATER && defined MASKING
4209 vinfo(20)='mask_rho'
4210# endif
4211 vinfo(21)=vname(6,idtair)
4212 vinfo(22)='coordinates'
4213 aval(5)=real(iinfo(1,idtair,ng),r8)
4214 avg(ng)%pioVar(idtair)%dkind=
pio_fout
4215 avg(ng)%pioVar(idtair)%gtype=r2dvar
4216
4217 status=def_var(ng, model, avg(ng)%pioFile, &
4218 & avg(ng)%pioVar(idtair)%vd, &
4219 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4220 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4221 END IF
4222# endif
4223# if defined BULK_FLUXES || defined ECOSIM
4224
4225
4226
4227 IF (aout(iduair,ng)) THEN
4228 vinfo( 1)=vname(1,iduair)
4229 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,iduair))
4230 vinfo( 3)=vname(3,iduair)
4231 vinfo(14)=vname(4,iduair)
4232 vinfo(16)=vname(1,idtime)
4233# if defined WRITE_WATER && defined MASKING
4234 vinfo(20)='mask_rho'
4235# endif
4236 vinfo(21)=vname(6,iduair)
4237 vinfo(22)='coordinates'
4238 aval(5)=real(iinfo(1,iduair,ng),r8)
4239 avg(ng)%pioVar(iduair)%dkind=
pio_fout
4240 avg(ng)%pioVar(iduair)%gtype=r2dvar
4241
4242 status=def_var(ng, model, avg(ng)%pioFile, &
4243 & avg(ng)%pioVar(iduair)%vd, &
4244 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4245 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4246 END IF
4247
4248 IF (aout(idvair,ng)) THEN
4249 vinfo( 1)=vname(1,idvair)
4250 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idvair))
4251 vinfo( 3)=vname(3,idvair)
4252 vinfo(14)=vname(4,idvair)
4253 vinfo(16)=vname(1,idtime)
4254# if defined WRITE_WATER && defined MASKING
4255 vinfo(20)='mask_rho'
4256# endif
4257 vinfo(21)=vname(6,idvair)
4258 vinfo(22)='coordinates'
4259 aval(5)=real(iinfo(1,idvair,ng),r8)
4260 avg(ng)%pioVar(idvair)%dkind=
pio_fout
4261 avg(ng)%pioVar(idvair)%gtype=r2dvar
4262
4263 status=def_var(ng, model, avg(ng)%pioFile, &
4264 & avg(ng)%pioVar(idvair)%vd, &
4265 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4266 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4267 END IF
4268
4269
4270
4271 IF (aout(iduaie,ng)) THEN
4272 vinfo( 1)=vname(1,iduaie)
4273 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,iduaie))
4274 vinfo( 3)=vname(3,iduaie)
4275 vinfo(14)=vname(4,iduaie)
4276 vinfo(16)=vname(1,idtime)
4277# if defined WRITE_WATER && defined MASKING
4278 vinfo(20)='mask_rho'
4279# endif
4280 vinfo(21)=vname(6,iduaie)
4281 vinfo(22)='coordinates'
4282 aval(5)=real(iinfo(1,iduaie,ng),r8)
4283 avg(ng)%pioVar(iduaie)%dkind=
pio_fout
4284 avg(ng)%pioVar(iduaie)%gtype=r2dvar
4285
4286 status=def_var(ng, model, avg(ng)%pioFile, &
4287 & avg(ng)%pioVar(iduaie)%vd, &
4288 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4289 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4290 END IF
4291
4292 IF (aout(idvain,ng)) THEN
4293 vinfo( 1)=vname(1,idvain)
4294 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idvain))
4295 vinfo( 3)=vname(3,idvain)
4296 vinfo(14)=vname(4,idvain)
4297 vinfo(16)=vname(1,idtime)
4298# if defined WRITE_WATER && defined MASKING
4299 vinfo(20)='mask_rho'
4300# endif
4301 vinfo(21)=vname(6,idvain)
4302 vinfo(22)='coordinates'
4303 aval(5)=real(iinfo(1,idvain,ng),r8)
4304 avg(ng)%pioVar(idvain)%dkind=
pio_fout
4305 avg(ng)%pioVar(idvain)%gtype=r2dvar
4306
4307 status=def_var(ng, model, avg(ng)%pioFile, &
4308 & avg(ng)%pioVar(idvain)%vd, &
4309 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4310 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4311 END IF
4312# endif
4313
4314
4315
4316 IF (aout(idtsur(itemp),ng)) THEN
4317 vinfo( 1)=vname(1,idtsur(itemp))
4318 WRITE (vinfo( 2),'(a,1x,a)') prefix, &
4319 & trim(vname(2,idtsur(itemp)))
4320 vinfo( 3)=vname(3,idtsur(itemp))
4321 vinfo(11)='upward flux, cooling'
4322 vinfo(12)='downward flux, heating'
4323 vinfo(14)=vname(4,idtsur(itemp))
4324 vinfo(16)=vname(1,idtime)
4325# if defined WRITE_WATER && defined MASKING
4326 vinfo(20)='mask_rho'
4327# endif
4328 vinfo(21)=vname(6,idtsur(itemp))
4329 vinfo(22)='coordinates'
4330 aval(5)=real(iinfo(1,idtsur(itemp),ng),r8)
4331 avg(ng)%pioVar(idtsur(itemp))%dkind=
pio_fout
4332 avg(ng)%pioVar(idtsur(itemp))%gtype=r2dvar
4333
4334 status=def_var(ng, model, avg(ng)%pioFile, &
4335 & avg(ng)%pioVar(idtsur(itemp))%vd, &
4336 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4337 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4338 END IF
4339
4340# ifdef SALINITY
4341
4342
4343
4344 IF (aout(idtsur(isalt),ng)) THEN
4345 vinfo( 1)=vname(1,idtsur(isalt))
4346 WRITE (vinfo( 2),'(a,1x,a)') prefix, &
4347 & trim(vname(2,idtsur(isalt)))
4348 vinfo( 3)=vname(3,idtsur(isalt))
4349 vinfo(11)='upward flux, freshening (net precipitation)'
4350 vinfo(12)='downward flux, salting (net evaporation)'
4351 vinfo(14)=vname(4,idtsur(isalt))
4352 vinfo(16)=vname(1,idtime)
4353# if defined WRITE_WATER && defined MASKING
4354 vinfo(20)='mask_rho'
4355# endif
4356 vinfo(21)=vname(6,idtsur(isalt))
4357 vinfo(22)='coordinates'
4358 aval(5)=real(iinfo(1,idtsur(isalt),ng),r8)
4359 avg(ng)%pioVar(idtsur(isalt))%dkind=
pio_fout
4360 avg(ng)%pioVar(idtsur(isalt))%gtype=r2dvar
4361
4362 status=def_var(ng, model, avg(ng)%pioFile, &
4363 & avg(ng)%pioVar(idtsur(isalt))%vd, &
4364 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4365 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4366 END IF
4367# endif
4368
4369# if defined BULK_FLUXES || defined FRC_COUPLING
4370
4371
4372
4373 IF (aout(idlhea,ng)) THEN
4374 vinfo( 1)=vname(1,idlhea)
4375 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idlhea))
4376 vinfo( 3)=vname(3,idlhea)
4377 vinfo(11)='upward flux, cooling'
4378 vinfo(12)='downward flux, heating'
4379 vinfo(14)=vname(4,idlhea)
4380 vinfo(16)=vname(1,idtime)
4381# if defined WRITE_WATER && defined MASKING
4382 vinfo(20)='mask_rho'
4383# endif
4384 vinfo(21)=vname(6,idlhea)
4385 vinfo(22)='coordinates'
4386 aval(5)=real(iinfo(1,idlhea,ng),r8)
4387 avg(ng)%pioVar(idlhea)%dkind=
pio_fout
4388 avg(ng)%pioVar(idlhea)%gtype=r2dvar
4389
4390 status=def_var(ng, model, avg(ng)%pioFile, &
4391 & avg(ng)%pioVar(idlhea)%vd, &
4392 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4393 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4394 END IF
4395
4396
4397
4398 IF (aout(idshea,ng)) THEN
4399 vinfo( 1)=vname(1,idshea)
4400 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idshea))
4401 vinfo( 3)=vname(3,idshea)
4402 vinfo(11)='upward flux, cooling'
4403 vinfo(12)='downward flux, heating'
4404 vinfo(14)=vname(4,idshea)
4405 vinfo(16)=vname(1,idtime)
4406# if defined WRITE_WATER && defined MASKING
4407 vinfo(20)='mask_rho'
4408# endif
4409 vinfo(21)=vname(6,idshea)
4410 vinfo(22)='coordinates'
4411 aval(5)=real(iinfo(1,idshea,ng),r8)
4412 avg(ng)%pioVar(idshea)%dkind=
pio_fout
4413 avg(ng)%pioVar(idshea)%gtype=r2dvar
4414
4415 status=def_var(ng, model, avg(ng)%pioFile, &
4416 & avg(ng)%pioVar(idshea)%vd, &
4417 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4418 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4419 END IF
4420
4421
4422
4423 IF (aout(idlrad,ng)) THEN
4424 vinfo( 1)=vname(1,idlrad)
4425 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idlrad))
4426 vinfo( 3)=vname(3,idlrad)
4427 vinfo(11)='upward flux, cooling'
4428 vinfo(12)='downward flux, heating'
4429 vinfo(14)=vname(4,idlrad)
4430 vinfo(16)=vname(1,idtime)
4431# if defined WRITE_WATER && defined MASKING
4432 vinfo(20)='mask_rho'
4433# endif
4434 vinfo(21)=vname(6,idlrad)
4435 vinfo(22)='coordinates'
4436 aval(5)=real(iinfo(1,idlrad,ng),r8)
4437 avg(ng)%pioVar(idlrad)%dkind=
pio_fout
4438 avg(ng)%pioVar(idlrad)%gtype=r2dvar
4439
4440 status=def_var(ng, model, avg(ng)%pioFile, &
4441 & avg(ng)%pioVar(idlrad)%vd, &
4442 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4443 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4444 END IF
4445# endif
4446
4447# ifdef BULK_FLUXES
4448# ifdef EMINUSP
4449
4450
4451
4452 IF (aout(idevap,ng)) THEN
4453 vinfo( 1)=vname(1,idevap)
4454 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idevap))
4455 vinfo( 3)=vname(3,idevap)
4456 vinfo(11)='downward flux, freshening (condensation)'
4457 vinfo(12)='upward flux, salting (evaporation)'
4458 vinfo(14)=vname(4,idevap)
4459 vinfo(16)=vname(1,idtime)
4460# if defined WRITE_WATER && defined MASKING
4461 vinfo(20)='mask_rho'
4462# endif
4463 vinfo(21)=vname(6,idevap)
4464 vinfo(22)='coordinates'
4465 aval(5)=real(iinfo(1,idevap,ng),r8)
4466 avg(ng)%pioVar(idevap)%dkind=
pio_fout
4467 avg(ng)%pioVar(idevap)%gtype=r2dvar
4468
4469 status=def_var(ng, model, avg(ng)%pioFile, &
4470 & avg(ng)%pioVar(idevap)%vd, &
4471 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4472 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4473 END IF
4474
4475
4476
4477 IF (aout(idrain,ng)) THEN
4478 vinfo( 1)=vname(1,idrain)
4479 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idrain))
4480 vinfo( 3)=vname(3,idrain)
4481 vinfo(12)='downward flux, freshening (precipitation)'
4482 vinfo(14)=vname(4,idrain)
4483 vinfo(16)=vname(1,idtime)
4484# if defined WRITE_WATER && defined MASKING
4485 vinfo(20)='mask_rho'
4486# endif
4487 vinfo(21)=vname(6,idrain)
4488 vinfo(22)='coordinates'
4489 aval(5)=real(iinfo(1,idrain,ng),r8)
4490 avg(ng)%pioVar(idrain)%dkind=
pio_fout
4491 avg(ng)%pioVar(idrain)%gtype=r2dvar
4492
4493 status=def_var(ng, model, avg(ng)%pioFile, &
4494 & avg(ng)%pioVar(idrain)%vd, &
4495 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4496 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4497 END IF
4498# endif
4499# endif
4500# ifdef SHORTWAVE
4501
4502
4503
4504 IF (aout(idsrad,ng)) THEN
4505 vinfo( 1)=vname(1,idsrad)
4506 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idsrad))
4507 vinfo( 3)=vname(3,idsrad)
4508 vinfo(11)='upward flux, cooling'
4509 vinfo(12)='downward flux, heating'
4510 vinfo(14)=vname(4,idsrad)
4511 vinfo(16)=vname(1,idtime)
4512# if defined WRITE_WATER && defined MASKING
4513 vinfo(20)='mask_rho'
4514# endif
4515 vinfo(21)=vname(6,idsrad)
4516 vinfo(22)='coordinates'
4517 aval(5)=real(iinfo(1,idsrad,ng),r8)
4518 avg(ng)%pioVar(idsrad)%dkind=
pio_fout
4519 avg(ng)%pioVar(idsrad)%gtype=r2dvar
4520
4521 status=def_var(ng, model, avg(ng)%pioFile, &
4522 & avg(ng)%pioVar(idsrad)%vd, &
4523 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
4524 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4525 END IF
4526# endif
4527# endif
4528
4529
4530
4531 IF (aout(idusms,ng)) THEN
4532 vinfo( 1)=vname(1,idusms)
4533 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idusms))
4534 vinfo( 3)=vname(3,idusms)
4535 vinfo(14)=vname(4,idusms)
4536 vinfo(16)=vname(1,idtime)
4537# if defined WRITE_WATER && defined MASKING
4538 vinfo(20)='mask_u'
4539# endif
4540 vinfo(21)=vname(6,idusms)
4541 vinfo(22)='coordinates'
4542 aval(5)=real(iinfo(1,idusms,ng),r8)
4543 avg(ng)%pioVar(idusms)%dkind=
pio_fout
4544 avg(ng)%pioVar(idusms)%gtype=u2dvar
4545
4546 status=def_var(ng, model, avg(ng)%pioFile, &
4547 & avg(ng)%pioVar(idusms)%vd, &
4548 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
4549 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4550 END IF
4551
4552
4553
4554 IF (aout(idvsms,ng)) THEN
4555 vinfo( 1)=vname(1,idvsms)
4556 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idvsms))
4557 vinfo( 3)=vname(3,idvsms)
4558 vinfo(14)=vname(4,idvsms)
4559 vinfo(16)=vname(1,idtime)
4560# if defined WRITE_WATER && defined MASKING
4561 vinfo(20)='mask_v'
4562# endif
4563 vinfo(21)=vname(6,idvsms)
4564 vinfo(22)='coordinates'
4565 aval(5)=real(iinfo(1,idvsms,ng),r8)
4566 avg(ng)%pioVar(idvsms)%dkind=
pio_fout
4567 avg(ng)%pioVar(idvsms)%gtype=v2dvar
4568
4569 status=def_var(ng, model, avg(ng)%pioFile, &
4570 & avg(ng)%pioVar(idvsms)%vd, &
4571 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
4572 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4573 END IF
4574
4575
4576
4577 IF (aout(idubms,ng)) THEN
4578 vinfo( 1)=vname(1,idubms)
4579 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idubms))
4580 vinfo( 3)=vname(3,idubms)
4581 vinfo(14)=vname(4,idubms)
4582 vinfo(16)=vname(1,idtime)
4583# if defined WRITE_WATER && defined MASKING
4584 vinfo(20)='mask_u'
4585# endif
4586 vinfo(21)=vname(6,idubms)
4587 vinfo(22)='coordinates'
4588 aval(5)=real(iinfo(1,idubms,ng),r8)
4589 avg(ng)%pioVar(idubms)%dkind=
pio_fout
4590 avg(ng)%pioVar(idubms)%gtype=u2dvar
4591
4592 status=def_var(ng, model, avg(ng)%pioFile, &
4593 & avg(ng)%pioVar(idubms)%vd, &
4594 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
4595 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4596 END IF
4597
4598
4599
4600 IF (aout(idvbms,ng)) THEN
4601 vinfo( 1)=vname(1,idvbms)
4602 WRITE (vinfo( 2),'(a,1x,a)') prefix, trim(vname(2,idvbms))
4603 vinfo( 3)=vname(3,idvbms)
4604 vinfo(14)=vname(4,idvbms)
4605 vinfo(16)=vname(1,idtime)
4606# if defined WRITE_WATER && defined MASKING
4607 vinfo(20)='mask_v'
4608# endif
4609 vinfo(21)=vname(6,idvbms)
4610 vinfo(22)='coordinates'
4611 aval(5)=real(iinfo(1,idvbms,ng),r8)
4612 avg(ng)%pioVar(idvbms)%dkind=
pio_fout
4613 avg(ng)%pioVar(idvbms)%gtype=v2dvar
4614
4615 status=def_var(ng, model, avg(ng)%pioFile, &
4616 & avg(ng)%pioVar(idvbms)%vd, &
4617 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
4618 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4619 END IF
4620
4621# if (defined BBL_MODEL || defined WAVES_OUTPUT) && defined SOLVE3D
4622
4623
4624
4625
4626
4627 CALL bbl_def_pio (ng, model, ldef, aout, avg, &
4628 & t2dgrd, u2dgrd, v2dgrd)
4629 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4630# endif
4631
4632# if defined ICE_MODEL && defined SOLVE3D
4633
4634
4635
4636
4637
4638 CALL ice_def_pio (ng, model, ldef, aout, avg, &
4639 & t2dgrd, u2dgrd, v2dgrd)
4640 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4641# endif
4642
4643# if defined SEDIMENT && defined SOLVE3D
4644
4645
4646
4647
4648
4649 CALL sediment_def_pio (ng, model, ldef, aout, avg, &
4650 & t2dgrd, u2dgrd, v2dgrd)
4651 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4652# endif
4653
4654# if defined WEC_VF && defined SOLVE3D
4655
4656
4657
4658
4659
4660 CALL wec_def_pio (ng, model, ldef, aout, avg, &
4661 & t2dgrd, u2dgrd, v2dgrd, &
4662 & t3dgrd, u3dgrd, v3dgrd, w3dgrd)
4663 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4664# endif
4665
4666
4667
4668
4669
4671 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4672
4673
4674
4675
4676
4677 CALL wrt_info (ng, model, avg(ng)%pioFile, ncname)
4678 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4679 END IF define
4680
4681
4682
4683
4684
4685
4686 query : IF (.not.ldef) THEN
4687 ncname=avg(ng)%name
4688
4689
4690
4692 IF (founderror(exit_flag, noerror, __line__, myfile)) THEN
4693 WRITE (stdout,50) trim(ncname)
4694 RETURN
4695 END IF
4696
4697
4698
4700 & piofile = avg(ng)%pioFile)
4701 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4702
4703
4704
4706 & piofile = avg(ng)%pioFile)
4707 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
4708
4709
4710
4711 DO i=1,nv
4712 got_var(i)=.false.
4713 END DO
4714
4715
4716
4717
4718 DO i=1,n_var
4719 IF (trim(var_name(i)).eq.trim(vname(1,idtime))) THEN
4720 got_var(idtime)=.true.
4721 avg(ng)%pioVar(idtime)%vd=
var_desc(i)
4722 avg(ng)%pioVar(idtime)%dkind=
pio_tout
4723 avg(ng)%pioVar(idtime)%gtype=0
4724# ifdef WET_DRY
4725 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idrwet))) THEN
4726 got_var(idrwet)=.true.
4727 avg(ng)%pioVar(idrwet)%vd=
var_desc(i)
4728 avg(ng)%pioVar(idrwet)%dkind=
pio_fout
4729 avg(ng)%pioVar(idrwet)%gtype=r2dvar
4730# endif
4731 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idfsur))) THEN
4732 got_var(idfsur)=.true.
4733 avg(ng)%pioVar(idfsur)%vd=
var_desc(i)
4734 avg(ng)%pioVar(idfsur)%dkind=
pio_fout
4735 avg(ng)%pioVar(idfsur)%gtype=r2dvar
4736 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idubar))) THEN
4737 got_var(idubar)=.true.
4738 avg(ng)%pioVar(idubar)%vd=
var_desc(i)
4739 avg(ng)%pioVar(idubar)%dkind=
pio_fout
4740 avg(ng)%pioVar(idubar)%gtype=u2dvar
4741 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvbar))) THEN
4742 got_var(idvbar)=.true.
4743 avg(ng)%pioVar(idvbar)%vd=
var_desc(i)
4744 avg(ng)%pioVar(idvbar)%dkind=
pio_fout
4745 avg(ng)%pioVar(idvbar)%gtype=v2dvar
4746# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
4747 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idfsud))) THEN
4748 got_var(idfsud)=.true.
4749 avg(ng)%pioVar(idfsud)%vd=
var_desc(i)
4750 avg(ng)%pioVar(idfsud)%dkind=
pio_fout
4751 avg(ng)%pioVar(idfsud)%gtype=r2dvar
4752 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idu2dd))) THEN
4753 got_var(idu2dd)=.true.
4754 avg(ng)%pioVar(idu2dd)%vd=
var_desc(i)
4755 avg(ng)%pioVar(idu2dd)%dkind=
pio_fout
4756 avg(ng)%pioVar(idu2dd)%gtype=u2dvar
4757 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idv2dd))) THEN
4758 got_var(idv2dd)=.true.
4759 avg(ng)%pioVar(idv2dd)%vd=
var_desc(i)
4760 avg(ng)%pioVar(idv2dd)%dkind=
pio_fout
4761 avg(ng)%pioVar(idv2dd)%gtype=v2dvar
4762# endif
4763 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idu2de))) THEN
4764 got_var(idu2de)=.true.
4765 avg(ng)%pioVar(idu2de)%vd=
var_desc(i)
4766 avg(ng)%pioVar(idu2de)%dkind=
pio_fout
4767 avg(ng)%pioVar(idu2de)%gtype=r2dvar
4768 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idv2dn))) THEN
4769 got_var(idv2dn)=.true.
4770 avg(ng)%pioVar(idv2dn)%vd=
var_desc(i)
4771 avg(ng)%pioVar(idv2dn)%dkind=
pio_fout
4772 avg(ng)%pioVar(idv2dn)%gtype=r2dvar
4773# ifdef SOLVE3D
4774# ifdef FORWARD_WRITE
4775 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idufx1))) THEN
4776 got_var(idufx1)=.true.
4777 avg(ng)%pioVar(idufx1)%vd=
var_desc(i)
4778 avg(ng)%pioVar(idufx1)%dkind=
pio_fout
4779 avg(ng)%pioVar(idufx1)%gtype=u2dvar
4780 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idufx2))) THEN
4781 got_var(idufx2)=.true.
4782 avg(ng)%pioVar(idufx2)%vd=
var_desc(i)
4783 avg(ng)%pioVar(idufx2)%dkind=
pio_fout
4784 avg(ng)%pioVar(idufx2)%gtype=u2dvar
4785 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvfx1))) THEN
4786 got_var(idvfx1)=.true.
4787 avg(ng)%pioVar(idvfx1)%vd=
var_desc(i)
4788 avg(ng)%pioVar(idvfx1)%dkind=
pio_fout
4789 avg(ng)%pioVar(idvfx1)%gtype=v2dvar
4790 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvfx2))) THEN
4791 got_var(idvfx2)=.true.
4792 avg(ng)%pioVar(idvfx2)%vd=
var_desc(i)
4793 avg(ng)%pioVar(idvfx2)%dkind=
pio_fout
4794 avg(ng)%pioVar(idvfx2)%gtype=v2dvar
4795# endif
4796 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduvel))) THEN
4797 got_var(iduvel)=.true.
4798 avg(ng)%pioVar(iduvel)%vd=
var_desc(i)
4799 avg(ng)%pioVar(iduvel)%dkind=
pio_fout
4800 avg(ng)%pioVar(iduvel)%gtype=u3dvar
4801 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvvel))) THEN
4802 got_var(idvvel)=.true.
4803 avg(ng)%pioVar(idvvel)%vd=
var_desc(i)
4804 avg(ng)%pioVar(idvvel)%dkind=
pio_fout
4805 avg(ng)%pioVar(idvvel)%gtype=v3dvar
4806# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
4807 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idu3dd))) THEN
4808 got_var(idu3dd)=.true.
4809 avg(ng)%pioVar(idu3dd)%vd=
var_desc(i)
4810 avg(ng)%pioVar(idu3dd)%dkind=
pio_fout
4811 avg(ng)%pioVar(idu3dd)%gtype=u3dvar
4812 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idv3dd))) THEN
4813 got_var(idv3dd)=.true.
4814 avg(ng)%pioVar(idv3dd)%vd=
var_desc(i)
4815 avg(ng)%pioVar(idv3dd)%dkind=
pio_fout
4816 avg(ng)%pioVar(idv3dd)%gtype=v3dvar
4817# endif
4818 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idu3de))) THEN
4819 got_var(idu3de)=.true.
4820 avg(ng)%pioVar(idu3de)%vd=
var_desc(i)
4821 avg(ng)%pioVar(idu3de)%dkind=
pio_fout
4822 avg(ng)%pioVar(idu3de)%gtype=r3dvar
4823 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idv3dn))) THEN
4824 got_var(idv3dn)=.true.
4825 avg(ng)%pioVar(idv3dn)%vd=
var_desc(i)
4826 avg(ng)%pioVar(idv3dn)%dkind=
pio_fout
4827 avg(ng)%pioVar(idv3dn)%gtype=r3dvar
4828 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idovel))) THEN
4829 got_var(idovel)=.true.
4830 avg(ng)%pioVar(idovel)%vd=
var_desc(i)
4831 avg(ng)%pioVar(idovel)%dkind=
pio_fout
4832 avg(ng)%pioVar(idovel)%gtype=w3dvar
4833 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idwvel))) THEN
4834 got_var(idwvel)=.true.
4835 avg(ng)%pioVar(idwvel)%vd=
var_desc(i)
4836 avg(ng)%pioVar(idwvel)%dkind=
pio_fout
4837 avg(ng)%pioVar(idwvel)%gtype=w3dvar
4838 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iddano))) THEN
4839 got_var(iddano)=.true.
4840 avg(ng)%pioVar(iddano)%vd=
var_desc(i)
4841 avg(ng)%pioVar(iddano)%dkind=
pio_fout
4842 avg(ng)%pioVar(iddano)%gtype=r3dvar
4843# ifdef LMD_SKPP
4844 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idhsbl))) THEN
4845 got_var(idhsbl)=.true.
4846 avg(ng)%pioVar(idhsbl)%vd=
var_desc(i)
4847 avg(ng)%pioVar(idhsbl)%dkind=
pio_fout
4848 avg(ng)%pioVar(idhsbl)%gtype=r2dvar
4849# endif
4850# ifdef LMD_BKPP
4851 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idhbbl))) THEN
4852 got_var(idhbbl)=.true.
4853 avg(ng)%pioVar(idhbbl)%vd=
var_desc(i)
4854 avg(ng)%pioVar(idhbbl)%dkind=
pio_fout
4855 avg(ng)%pioVar(idhbbl)%gtype=r2dvar
4856# endif
4857# endif
4858 ELSE IF (trim(var_name(i)).eq.trim(vname(1,id2dpv))) THEN
4859 got_var(id2dpv)=.true.
4860 avg(ng)%pioVar(id2dpv)%vd=
var_desc(i)
4861 avg(ng)%pioVar(id2dpv)%dkind=
pio_fout
4862 avg(ng)%pioVar(id2dpv)%gtype=p2dvar
4863 ELSE IF (trim(var_name(i)).eq.trim(vname(1,id2drv))) THEN
4864 got_var(id2drv)=.true.
4865 avg(ng)%pioVar(id2drv)%vd=
var_desc(i)
4866 avg(ng)%pioVar(id2drv)%dkind=
pio_fout
4867 avg(ng)%pioVar(id2drv)%gtype=p2dvar
4868# ifdef SOLVE3D
4869 ELSE IF (trim(var_name(i)).eq.trim(vname(1,id3dpv))) THEN
4870 got_var(id3dpv)=.true.
4871 avg(ng)%pioVar(id3dpv)%vd=
var_desc(i)
4872 avg(ng)%pioVar(id3dpv)%dkind=
pio_fout
4873 avg(ng)%pioVar(id3dpv)%gtype=p3dvar
4874 ELSE IF (trim(var_name(i)).eq.trim(vname(1,id3drv))) THEN
4875 got_var(id3drv)=.true.
4876 avg(ng)%pioVar(id3drv)%vd=
var_desc(i)
4877 avg(ng)%pioVar(id3drv)%dkind=
pio_fout
4878 avg(ng)%pioVar(id3drv)%gtype=p3dvar
4879# endif
4880 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idzzav))) THEN
4881 got_var(idzzav)=.true.
4882 avg(ng)%pioVar(idzzav)%vd=
var_desc(i)
4883 avg(ng)%pioVar(idzzav)%dkind=
pio_fout
4884 avg(ng)%pioVar(idzzav)%gtype=r2dvar
4885 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idu2av))) THEN
4886 got_var(idu2av)=.true.
4887 avg(ng)%pioVar(idu2av)%vd=
var_desc(i)
4888 avg(ng)%pioVar(idu2av)%dkind=
pio_fout
4889 avg(ng)%pioVar(idu2av)%gtype=u2dvar
4890 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idv2av))) THEN
4891 got_var(idv2av)=.true.
4892 avg(ng)%pioVar(idv2av)%vd=
var_desc(i)
4893 avg(ng)%pioVar(idv2av)%dkind=
pio_fout
4894 avg(ng)%pioVar(idv2av)%gtype=v2dvar
4895# ifdef SOLVE3D
4896 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idhuav))) THEN
4897 got_var(idhuav)=.true.
4898 avg(ng)%pioVar(idhuav)%vd=
var_desc(i)
4899 avg(ng)%pioVar(idhuav)%dkind=
pio_fout
4900 avg(ng)%pioVar(idhuav)%gtype=u3dvar
4901 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idhvav))) THEN
4902 got_var(idhvav)=.true.
4903 avg(ng)%pioVar(idhvav)%vd=
var_desc(i)
4904 avg(ng)%pioVar(idhvav)%dkind=
pio_fout
4905 avg(ng)%pioVar(idhvav)%gtype=v3dvar
4906 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduuav))) THEN
4907 got_var(iduuav)=.true.
4908 avg(ng)%pioVar(iduuav)%vd=
var_desc(i)
4909 avg(ng)%pioVar(idhvav)%dkind=
pio_fout
4910 avg(ng)%pioVar(idhvav)%gtype=v3dvar
4911 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduvav))) THEN
4912 got_var(iduvav)=.true.
4913 avg(ng)%pioVar(iduvav)%vd=
var_desc(i)
4914 avg(ng)%pioVar(iduvav)%dkind=
pio_fout
4915 avg(ng)%pioVar(iduvav)%gtype=r3dvar
4916 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvvav))) THEN
4917 got_var(idvvav)=.true.
4918 avg(ng)%pioVar(idvvav)%vd=
var_desc(i)
4919 avg(ng)%pioVar(idvvav)%dkind=
pio_fout
4920 avg(ng)%pioVar(idvvav)%gtype=v3dvar
4921# if defined LMD_MIXING || defined MY25_MIXING || defined GLS_MIXING
4922 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvvis))) THEN
4923 got_var(idvvis)=.true.
4924 avg(ng)%pioVar(idvvis)%vd=
var_desc(i)
4925 avg(ng)%pioVar(idvvis)%dkind=
pio_fout
4926 avg(ng)%pioVar(idvvis)%gtype=w3dvar
4927 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idtdif))) THEN
4928 got_var(idtdif)=.true.
4929 avg(ng)%pioVar(idtdif)%vd=
var_desc(i)
4930 avg(ng)%pioVar(idtdif)%dkind=
pio_fout
4931 avg(ng)%pioVar(idtdif)%gtype=w3dvar
4932 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idsdif))) THEN
4933 got_var(idsdif)=.true.
4934 avg(ng)%pioVar(idsdif)%vd=
var_desc(i)
4935 avg(ng)%pioVar(idsdif)%dkind=
pio_fout
4936 avg(ng)%pioVar(idsdif)%gtype=w3dvar
4937# endif
4938# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
4939 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idpair))) THEN
4940 got_var(idpair)=.true.
4941 avg(ng)%pioVar(idpair)%vd=
var_desc(i)
4942 avg(ng)%pioVar(idpair)%dkind=
pio_fout
4943 avg(ng)%pioVar(idpair)%gtype=r2dvar
4944# endif
4945# if defined BULK_FLUXES || defined ECOSIM
4946 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduair))) THEN
4947 got_var(iduair)=.true.
4948 avg(ng)%pioVar(iduair)%vd=
var_desc(i)
4949 avg(ng)%pioVar(iduair)%dkind=
pio_fout
4950 avg(ng)%pioVar(iduair)%gtype=r2dvar
4951 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvair))) THEN
4952 got_var(idvair)=.true.
4953 avg(ng)%pioVar(idvair)%vd=
var_desc(i)
4954 avg(ng)%pioVar(idvair)%dkind=
pio_fout
4955 avg(ng)%pioVar(idvair)%gtype=r2dvar
4956 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduaie))) THEN
4957 got_var(iduaie)=.true.
4958 avg(ng)%pioVar(iduaie)%vd=
var_desc(i)
4959 avg(ng)%pioVar(iduaie)%dkind=
pio_fout
4960 avg(ng)%pioVar(iduaie)%gtype=r2dvar
4961 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvain))) THEN
4962 got_var(idvain)=.true.
4963 avg(ng)%pioVar(idvain)%vd=
var_desc(i)
4964 avg(ng)%pioVar(idvain)%dkind=
pio_fout
4965 avg(ng)%pioVar(idvain)%gtype=r2dvar
4966# endif
4967 ELSE IF (trim(var_name(i)).eq. &
4968 & trim(vname(1,idtsur(itemp)))) THEN
4969 got_var(idtsur(itemp))=.true.
4970 avg(ng)%pioVar(idtsur(itemp))%vd=
var_desc(i)
4971 avg(ng)%pioVar(idtsur(itemp))%dkind=
pio_fout
4972 avg(ng)%pioVar(idtsur(itemp))%gtype=r2dvar
4973# ifdef SALINITY
4974 ELSE IF (trim(var_name(i)).eq. &
4975 & trim(vname(1,idtsur(isalt)))) THEN
4976 got_var(idtsur(isalt))=.true.
4977 avg(ng)%pioVar(idtsur(isalt))%vd=
var_desc(i)
4978 avg(ng)%pioVar(idtsur(isalt))%dkind=
pio_fout
4979 avg(ng)%pioVar(idtsur(isalt))%gtype=r2dvar
4980# endif
4981# if defined BULK_FLUXES || defined FRC_COUPLING
4982 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idlhea))) THEN
4983 got_var(idlhea)=.true.
4984 avg(ng)%pioVar(idlhea)%vd=
var_desc(i)
4985 avg(ng)%pioVar(idlhea)%dkind=
pio_fout
4986 avg(ng)%pioVar(idlhea)%gtype=r2dvar
4987 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idshea))) THEN
4988 got_var(idshea)=.true.
4989 avg(ng)%pioVar(idshea)%vd=
var_desc(i)
4990 avg(ng)%pioVar(idshea)%dkind=
pio_fout
4991 avg(ng)%pioVar(idshea)%gtype=r2dvar
4992 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idlrad))) THEN
4993 got_var(idlrad)=.true.
4994 avg(ng)%pioVar(idlrad)%vd=
var_desc(i)
4995 avg(ng)%pioVar(idlrad)%dkind=
pio_fout
4996 avg(ng)%pioVar(idlrad)%gtype=r2dvar
4997# endif
4998# ifdef BULK_FLUXES
4999 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idtair))) THEN
5000 got_var(idtair)=.true.
5001 avg(ng)%pioVar(idtair)%vd=
var_desc(i)
5002 avg(ng)%pioVar(idtair)%dkind=
pio_fout
5003 avg(ng)%pioVar(idtair)%gtype=r2dvar
5004# ifdef EMINUSP
5005 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idevap))) THEN
5006 got_var(idevap)=.true.
5007 avg(ng)%pioVar(idevap)%vd=
var_desc(i)
5008 avg(ng)%pioVar(idevap)%dkind=
pio_fout
5009 avg(ng)%pioVar(idevap)%gtype=r2dvar
5010 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idrain))) THEN
5011 got_var(idrain)=.true.
5012 avg(ng)%pioVar(idrain)%vd=
var_desc(i)
5013 avg(ng)%pioVar(idrain)%dkind=
pio_fout
5014 avg(ng)%pioVar(idrain)%gtype=r2dvar
5015# endif
5016# endif
5017# ifdef SHORTWAVE
5018 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idsrad))) THEN
5019 got_var(idsrad)=.true.
5020 avg(ng)%pioVar(idsrad)%vd=
var_desc(i)
5021 avg(ng)%pioVar(idsrad)%dkind=
pio_fout
5022 avg(ng)%pioVar(idsrad)%gtype=r2dvar
5023# endif
5024# endif
5025 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idusms))) THEN
5026 got_var(idusms)=.true.
5027 avg(ng)%pioVar(idusms)%vd=
var_desc(i)
5028 avg(ng)%pioVar(idusms)%dkind=
pio_fout
5029 avg(ng)%pioVar(idusms)%gtype=u2dvar
5030 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvsms))) THEN
5031 got_var(idvsms)=.true.
5032 avg(ng)%pioVar(idvsms)%vd=
var_desc(i)
5033 avg(ng)%pioVar(idvsms)%dkind=
pio_fout
5034 avg(ng)%pioVar(idvsms)%gtype=v2dvar
5035 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idubms))) THEN
5036 got_var(idubms)=.true.
5037 avg(ng)%pioVar(idubms)%vd=
var_desc(i)
5038 avg(ng)%pioVar(idubms)%dkind=
pio_fout
5039 avg(ng)%pioVar(idubms)%gtype=u2dvar
5040 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvbms))) THEN
5041 got_var(idvbms)=.true.
5042 avg(ng)%pioVar(idvbms)%vd=
var_desc(i)
5043 avg(ng)%pioVar(idvbms)%dkind=
pio_fout
5044 avg(ng)%pioVar(idvbms)%gtype=v2dvar
5045 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idubrs))) THEN
5046 got_var(idubrs)=.true.
5047 avg(ng)%pioVar(idubrs)%vd=
var_desc(i)
5048 avg(ng)%pioVar(idubrs)%dkind=
pio_fout
5049 avg(ng)%pioVar(idubrs)%gtype=v2dvar
5050 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvbrs))) THEN
5051 got_var(idvbrs)=.true.
5052 avg(ng)%pioVar(idvbrs)%vd=
var_desc(i)
5053 avg(ng)%pioVar(idvbrs)%dkind=
pio_fout
5054 avg(ng)%pioVar(idvbrs)%gtype=v2dvar
5055 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idubws))) THEN
5056 got_var(idubws)=.true.
5057 avg(ng)%pioVar(idubws)%vd=
var_desc(i)
5058 avg(ng)%pioVar(idubws)%dkind=
pio_fout
5059 avg(ng)%pioVar(idubws)%gtype=v2dvar
5060 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvbws))) THEN
5061 got_var(idvbws)=.true.
5062 avg(ng)%pioVar(idvbws)%vd=
var_desc(i)
5063 avg(ng)%pioVar(idvbws)%dkind=
pio_fout
5064 avg(ng)%pioVar(idvbws)%gtype=v2dvar
5065 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idubcs))) THEN
5066 got_var(idubcs)=.true.
5067 avg(ng)%pioVar(idubcs)%vd=
var_desc(i)
5068 avg(ng)%pioVar(idubcs)%dkind=
pio_fout
5069 avg(ng)%pioVar(idubcs)%gtype=v2dvar
5070 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvbcs))) THEN
5071 got_var(idvbcs)=.true.
5072 avg(ng)%pioVar(idvbcs)%vd=
var_desc(i)
5073 avg(ng)%pioVar(idvbcs)%dkind=
pio_fout
5074 avg(ng)%pioVar(idvbcs)%gtype=v2dvar
5075 ELSE IF (trim(var_name(i)).eq.trim(vname(1,iduvwc))) THEN
5076 got_var(iduvwc)=.true.
5077 avg(ng)%pioVar(iduvwc)%vd=
var_desc(i)
5078 avg(ng)%pioVar(iduvwc)%dkind=
pio_fout
5079 avg(ng)%pioVar(iduvwc)%gtype=v2dvar
5080 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idubot))) THEN
5081 got_var(idubot)=.true.
5082 avg(ng)%pioVar(idubot)%vd=
var_desc(i)
5083 avg(ng)%pioVar(idubot)%dkind=
pio_fout
5084 avg(ng)%pioVar(idubot)%gtype=v2dvar
5085 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvbot))) THEN
5086 got_var(idvbot)=.true.
5087 avg(ng)%pioVar(idvbot)%vd=
var_desc(i)
5088 avg(ng)%pioVar(idvbot)%dkind=
pio_fout
5089 avg(ng)%pioVar(idvbot)%gtype=v2dvar
5090 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idubur))) THEN
5091 got_var(idubur)=.true.
5092 avg(ng)%pioVar(idubur)%vd=
var_desc(i)
5093 avg(ng)%pioVar(idubur)%dkind=
pio_fout
5094 avg(ng)%pioVar(idubur)%gtype=v2dvar
5095 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvbvr))) THEN
5096 got_var(idvbvr)=.true.
5097 avg(ng)%pioVar(idvbvr)%vd=
var_desc(i)
5098 avg(ng)%pioVar(idvbvr)%dkind=
pio_fout
5099 avg(ng)%pioVar(idvbvr)%gtype=v2dvar
5100 END IF
5101# ifdef SOLVE3D
5102 DO itrc=1,nt(ng)
5103 IF (trim(var_name(i)).eq.trim(vname(1,idtvar(itrc)))) THEN
5104 got_var(idtvar(itrc))=.true.
5105 avg(ng)%pioTrc(itrc)%vd=
var_desc(i)
5106 avg(ng)%pioTrc(itrc)%dkind=
pio_fout
5107 avg(ng)%pioTrc(itrc)%gtype=r3dvar
5108 END IF
5109 END DO
5110 DO itrc=1,nat
5111 IF (trim(var_name(i)).eq.trim(vname(1,ihutav(itrc)))) THEN
5112 got_var(ihutav(itrc))=.true.
5113 avg(ng)%pioVar(ihutav(itrc))%vd=
var_desc(i)
5114 avg(ng)%pioVar(ihutav(itrc))%dkind=
pio_fout
5115 avg(ng)%pioVar(ihutav(itrc))%gtype=u3dvar
5116 ELSE IF (trim(var_name(i)).eq. &
5117 & trim(vname(1,ihvtav(itrc)))) THEN
5118 got_var(ihvtav(itrc))=.true.
5119 avg(ng)%pioVar(ihvtav(itrc))%vd=
var_desc(i)
5120 avg(ng)%pioVar(ihvtav(itrc))%dkind=
pio_fout
5121 avg(ng)%pioVar(ihvtav(itrc))%gtype=v3dvar
5122 ELSE IF (trim(var_name(i)).eq. &
5123 & trim(vname(1,idutav(itrc)))) THEN
5124 got_var(idutav(itrc))=.true.
5125 avg(ng)%pioVar(idutav(itrc))%vd=
var_desc(i)
5126 avg(ng)%pioVar(idutav(itrc))%dkind=
pio_fout
5127 avg(ng)%pioVar(idutav(itrc))%gtype=u3dvar
5128 ELSE IF (trim(var_name(i)).eq. &
5129 & trim(vname(1,idvtav(itrc)))) THEN
5130 got_var(idvtav(itrc))=.true.
5131 avg(ng)%pioVar(idvtav(itrc))%vd=
var_desc(i)
5132 avg(ng)%pioVar(idvtav(itrc))%dkind=
pio_fout
5133 avg(ng)%pioVar(idvtav(itrc))%gtype=v3dvar
5134 ELSE IF (trim(var_name(i)).eq. &
5135 & trim(vname(1,idttav(itrc)))) THEN
5136 got_var(idttav(itrc))=.true.
5137 avg(ng)%pioVar(idttav(itrc))%vd=
var_desc(i)
5138 avg(ng)%pioVar(idttav(itrc))%dkind=
pio_fout
5139 avg(ng)%pioVar(idttav(itrc))%gtype=r3dvar
5140 END IF
5141 END DO
5142# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
5143 DO itrc=1,nat
5144 IF (trim(var_name(i)).eq.trim(vname(1,idtrcd(itrc)))) THEN
5145 got_var(idtrcd(itrc))=.true.
5146 avg(ng)%pioVar(idtrcd(itrc))%vd=
var_desc(i)
5147 avg(ng)%pioVar(idtrcd(itrc))%dkind=
pio_fout
5148 avg(ng)%pioVar(idtrcd(itrc))%gtype=r3dvar
5149 END IF
5150 END DO
5151# endif
5152# endif
5153 END DO
5154
5155
5156
5157 IF (.not.got_var(idtime)) THEN
5158 IF (master) WRITE (stdout,60) trim(vname(1,idtime)), &
5159 & trim(ncname)
5160 exit_flag=3
5161 RETURN
5162 END IF
5163 IF (.not.got_var(idfsur).and.aout(idfsur,ng)) THEN
5164 IF (master) WRITE (stdout,60) trim(vname(1,idfsur)), &
5165 & trim(ncname)
5166 exit_flag=3
5167 RETURN
5168 END IF
5169 IF (.not.got_var(idubar).and.aout(idubar,ng)) THEN
5170 IF (master) WRITE (stdout,60) trim(vname(1,idubar)), &
5171 & trim(ncname)
5172 exit_flag=3
5173 RETURN
5174 END IF
5175 IF (.not.got_var(idvbar).and.aout(idvbar,ng)) THEN
5176 IF (master) WRITE (stdout,60) trim(vname(1,idvbar)), &
5177 & trim(ncname)
5178 exit_flag=3
5179 RETURN
5180 END IF
5181# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
5182 IF (.not.got_var(idfsud).and.aout(idfsud,ng)) THEN
5183 IF (master) WRITE (stdout,60) trim(vname(1,idfsud)), &
5184 & trim(ncname)
5185 exit_flag=3
5186 RETURN
5187 END IF
5188 IF (.not.got_var(idu2dd).and.aout(idu2dd,ng)) THEN
5189 IF (master) WRITE (stdout,60) trim(vname(1,idu2dd)), &
5190 & trim(ncname)
5191 exit_flag=3
5192 RETURN
5193 END IF
5194 IF (.not.got_var(idv2dd).and.aout(idv2dd,ng)) THEN
5195 IF (master) WRITE (stdout,60) trim(vname(1,idv2dd)), &
5196 & trim(ncname)
5197 exit_flag=3
5198 RETURN
5199 END IF
5200# endif
5201 IF (.not.got_var(idu2de).and.aout(idu2de,ng)) THEN
5202 IF (master) WRITE (stdout,60) trim(vname(1,idu2de)), &
5203 & trim(ncname)
5204 exit_flag=3
5205 RETURN
5206 END IF
5207 IF (.not.got_var(idv2dn).and.aout(idv2dn,ng)) THEN
5208 IF (master) WRITE (stdout,60) trim(vname(1,idv2dn)), &
5209 & trim(ncname)
5210 exit_flag=3
5211 RETURN
5212 END IF
5213# ifdef SOLVE3D
5214# ifdef FORWARD_WRITE
5215 IF (.not.got_var(idufx1).and.aout(idufx1,ng)) THEN
5216 IF (master) WRITE (stdout,60) trim(vname(1,idufx1)), &
5217 & trim(ncname)
5218 exit_flag=3
5219 RETURN
5220 END IF
5221 IF (.not.got_var(idufx2).and.aout(idufx2,ng)) THEN
5222 IF (master) WRITE (stdout,60) trim(vname(1,idufx2)), &
5223 & trim(ncname)
5224 exit_flag=3
5225 RETURN
5226 END IF
5227 IF (.not.got_var(idvfx1).and.aout(idvfx1,ng)) THEN
5228 IF (master) WRITE (stdout,60) trim(vname(1,idvfx1)), &
5229 & trim(ncname)
5230 exit_flag=3
5231 RETURN
5232 END IF
5233 IF (.not.got_var(idvfx2).and.aout(idvfx2,ng)) THEN
5234 IF (master) WRITE (stdout,60) trim(vname(1,idvfx2)), &
5235 & trim(ncname)
5236 exit_flag=3
5237 RETURN
5238 END IF
5239# endif
5240 IF (.not.got_var(iduvel).and.aout(iduvel,ng)) THEN
5241 IF (master) WRITE (stdout,60) trim(vname(1,iduvel)), &
5242 & trim(ncname)
5243 exit_flag=3
5244 RETURN
5245 END IF
5246 IF (.not.got_var(idvvel).and.aout(idvvel,ng)) THEN
5247 IF (master) WRITE (stdout,60) trim(vname(1,idvvel)), &
5248 & trim(ncname)
5249 exit_flag=3
5250 RETURN
5251 END IF
5252# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
5253 IF (.not.got_var(idu3dd).and.aout(idu3dd,ng)) THEN
5254 IF (master) WRITE (stdout,60) trim(vname(1,idu3dd)), &
5255 & trim(ncname)
5256 exit_flag=3
5257 RETURN
5258 END IF
5259 IF (.not.got_var(idv3dd).and.aout(idv3dd,ng)) THEN
5260 IF (master) WRITE (stdout,60) trim(vname(1,idv3dd)), &
5261 & trim(ncname)
5262 exit_flag=3
5263 RETURN
5264 END IF
5265# endif
5266 IF (.not.got_var(idu3de).and.aout(idu3de,ng)) THEN
5267 IF (master) WRITE (stdout,60) trim(vname(1,idu3de)), &
5268 & trim(ncname)
5269 exit_flag=3
5270 RETURN
5271 END IF
5272 IF (.not.got_var(idv3dn).and.aout(idv3dn,ng)) THEN
5273 IF (master) WRITE (stdout,60) trim(vname(1,idv3dn)), &
5274 & trim(ncname)
5275 exit_flag=3
5276 RETURN
5277 END IF
5278 IF (.not.got_var(idovel).and.aout(idovel,ng)) THEN
5279 IF (master) WRITE (stdout,60) trim(vname(1,idovel)), &
5280 & trim(ncname)
5281 exit_flag=3
5282 RETURN
5283 END IF
5284 IF (.not.got_var(idwvel).and.aout(idwvel,ng)) THEN
5285 IF (master) WRITE (stdout,60) trim(vname(1,idwvel)), &
5286 & trim(ncname)
5287 exit_flag=3
5288 RETURN
5289 END IF
5290 IF (.not.got_var(iddano).and.aout(iddano,ng)) THEN
5291 IF (master) WRITE (stdout,60) trim(vname(1,iddano)), &
5292 & trim(ncname)
5293 exit_flag=3
5294 RETURN
5295 END IF
5296# ifdef LMD_SKPP
5297 IF (.not.got_var(idhsbl).and.aout(idhsbl,ng)) THEN
5298 IF (master) WRITE (stdout,60) trim(vname(1,idhsbl)), &
5299 & trim(ncname)
5300 exit_flag=3
5301 RETURN
5302 END IF
5303# endif
5304# ifdef LMD_BKPP
5305 IF (.not.got_var(idhbbl).and.aout(idhbbl,ng)) THEN
5306 IF (master) WRITE (stdout,60) trim(vname(1,idhbbl)), &
5307 & trim(ncname)
5308 exit_flag=3
5309 RETURN
5310 END IF
5311# endif
5312# endif
5313 IF (.not.got_var(id2dpv).and.aout(id2dpv,ng)) THEN
5314 IF (master) WRITE (stdout,60) trim(vname(1,id2dpv)), &
5315 & trim(ncname)
5316 exit_flag=3
5317 RETURN
5318 END IF
5319 IF (.not.got_var(id2drv).and.aout(id2drv,ng)) THEN
5320 IF (master) WRITE (stdout,60) trim(vname(1,id2drv)), &
5321 & trim(ncname)
5322 exit_flag=3
5323 RETURN
5324 END IF
5325# ifdef SOLVE3D
5326 IF (.not.got_var(id3dpv).and.aout(id3dpv,ng)) THEN
5327 IF (master) WRITE (stdout,60) trim(vname(1,id3dpv)), &
5328 & trim(ncname)
5329 exit_flag=3
5330 RETURN
5331 END IF
5332 IF (.not.got_var(id3drv).and.aout(id3drv,ng)) THEN
5333 IF (master) WRITE (stdout,60) trim(vname(1,id3drv)), &
5334 & trim(ncname)
5335 exit_flag=3
5336 RETURN
5337 END IF
5338# endif
5339 IF (.not.got_var(idzzav).and.aout(idzzav,ng)) THEN
5340 IF (master) WRITE (stdout,60) trim(vname(1,idzzav)), &
5341 & trim(ncname)
5342 exit_flag=3
5343 RETURN
5344 END IF
5345 IF (.not.got_var(idu2av).and.aout(idu2av,ng)) THEN
5346 IF (master) WRITE (stdout,60) trim(vname(1,idu2av)), &
5347 & trim(ncname)
5348 exit_flag=3
5349 RETURN
5350 END IF
5351 IF (.not.got_var(idv2av).and.aout(idv2av,ng)) THEN
5352 IF (master) WRITE (stdout,60) trim(vname(1,idv2av)), &
5353 & trim(ncname)
5354 exit_flag=3
5355 RETURN
5356 END IF
5357# ifdef SOLVE3D
5358 IF (.not.got_var(idhuav).and.aout(idhuav,ng)) THEN
5359 IF (master) WRITE (stdout,60) trim(vname(1,idhuav)), &
5360 & trim(ncname)
5361 exit_flag=3
5362 RETURN
5363 END IF
5364 IF (.not.got_var(idhvav).and.aout(idhvav,ng)) THEN
5365 IF (master) WRITE (stdout,60) trim(vname(1,idhvav)), &
5366 & trim(ncname)
5367 exit_flag=3
5368 RETURN
5369 END IF
5370 IF (.not.got_var(iduuav).and.aout(iduuav,ng)) THEN
5371 IF (master) WRITE (stdout,60) trim(vname(1,iduuav)), &
5372 & trim(ncname)
5373 exit_flag=3
5374 RETURN
5375 END IF
5376 IF (.not.got_var(iduvav).and.aout(iduvav,ng)) THEN
5377 IF (master) WRITE (stdout,60) trim(vname(1,iduvav)), &
5378 & trim(ncname)
5379 exit_flag=3
5380 RETURN
5381 END IF
5382 IF (.not.got_var(idvvav).and.aout(idvvav,ng)) THEN
5383 IF (master) WRITE (stdout,60) trim(vname(1,idvvav)), &
5384 & trim(ncname)
5385 exit_flag=3
5386 RETURN
5387 END IF
5388# if defined LMD_MIXING || defined MY25_MIXING || defined GLS_MIXING
5389 IF (.not.got_var(idvvis).and.aout(idvvis,ng)) THEN
5390 IF (master) WRITE (stdout,60) trim(vname(1,idvvis)), &
5391 & trim(ncname)
5392 exit_flag=3
5393 RETURN
5394 END IF
5395 IF (.not.got_var(idtdif).and.aout(idtdif,ng)) THEN
5396 IF (master) WRITE (stdout,60) trim(vname(1,idtdif)), &
5397 & trim(ncname)
5398 exit_flag=3
5399 RETURN
5400 END IF
5401# ifdef SALINITY
5402 IF (.not.got_var(idsdif).and.aout(idsdif,ng)) THEN
5403 IF (master) WRITE (stdout,60) trim(vname(1,idsdif)), &
5404 & trim(ncname)
5405 exit_flag=3
5406 RETURN
5407 END IF
5408# endif
5409# endif
5410# if defined BULK_FLUXES || defined ECOSIM || defined ATM_PRESS
5411 IF (.not.got_var(idpair).and.aout(idpair,ng)) THEN
5412 IF (master) WRITE (stdout,60) trim(vname(1,idpair)), &
5413 & trim(ncname)
5414 exit_flag=3
5415 RETURN
5416 END IF
5417# endif
5418# if defined BULK_FLUXES || defined ECOSIM
5419 IF (.not.got_var(iduair).and.aout(iduair,ng)) THEN
5420 IF (master) WRITE (stdout,60) trim(vname(1,iduair)), &
5421 & trim(ncname)
5422 exit_flag=3
5423 RETURN
5424 END IF
5425 IF (.not.got_var(idvair).and.aout(idvair,ng)) THEN
5426 IF (master) WRITE (stdout,60) trim(vname(1,idvair)), &
5427 & trim(ncname)
5428 exit_flag=3
5429 RETURN
5430 END IF
5431 IF (.not.got_var(iduaie).and.aout(iduaie,ng)) THEN
5432 IF (master) WRITE (stdout,60) trim(vname(1,iduaie)), &
5433 & trim(ncname)
5434 exit_flag=3
5435 RETURN
5436 END IF
5437 IF (.not.got_var(idvain).and.aout(idvain,ng)) THEN
5438 IF (master) WRITE (stdout,60) trim(vname(1,idvain)), &
5439 & trim(ncname)
5440 exit_flag=3
5441 RETURN
5442 END IF
5443# endif
5444 IF (.not.got_var(idtsur(itemp)).and.aout(idtsur(itemp),ng)) THEN
5445 IF (master) WRITE (stdout,60) trim(vname(1,idtsur(itemp))), &
5446 & trim(ncname)
5447 exit_flag=3
5448 RETURN
5449 END IF
5450# ifdef SALINITY
5451 IF (.not.got_var(idtsur(isalt)).and.aout(idtsur(isalt),ng)) THEN
5452 IF (master) WRITE (stdout,60) trim(vname(1,idtsur(isalt))), &
5453 & trim(ncname)
5454 exit_flag=3
5455 RETURN
5456 END IF
5457# endif
5458# if defined BULK_FLUXES || defined FRC_COUPLING
5459 IF (.not.got_var(idlhea).and.aout(idlhea,ng)) THEN
5460 IF (master) WRITE (stdout,60) trim(vname(1,idlhea)), &
5461 & trim(ncname)
5462 exit_flag=3
5463 RETURN
5464 END IF
5465 IF (.not.got_var(idshea).and.aout(idshea,ng)) THEN
5466 IF (master) WRITE (stdout,60) trim(vname(1,idshea)), &
5467 & trim(ncname)
5468 exit_flag=3
5469 RETURN
5470 END IF
5471 IF (.not.got_var(idlrad).and.aout(idlrad,ng)) THEN
5472 IF (master) WRITE (stdout,60) trim(vname(1,idlrad)), &
5473 & trim(ncname)
5474 exit_flag=3
5475 RETURN
5476 END IF
5477# endif
5478# ifdef BULK_FLUXES
5479 IF (.not.got_var(idtair).and.aout(idtair,ng)) THEN
5480 IF (master) WRITE (stdout,60) trim(vname(1,idtair)), &
5481 & trim(ncname)
5482 exit_flag=3
5483 RETURN
5484 END IF
5485# ifdef EMINUSP
5486 IF (.not.got_var(idevap).and.aout(idevap,ng)) THEN
5487 IF (master) WRITE (stdout,60) trim(vname(1,idevap)), &
5488 & trim(ncname)
5489 exit_flag=3
5490 RETURN
5491 END IF
5492 IF (.not.got_var(idrain).and.aout(idrain,ng)) THEN
5493 IF (master) WRITE (stdout,60) trim(vname(1,idrain)), &
5494 & trim(ncname)
5495 exit_flag=3
5496 RETURN
5497 END IF
5498# endif
5499# endif
5500# ifdef SHORTWAVE
5501 IF (.not.got_var(idsrad).and.aout(idsrad,ng)) THEN
5502 IF (master) WRITE (stdout,60) trim(vname(1,idsrad)), &
5503 & trim(ncname)
5504 exit_flag=3
5505 RETURN
5506 END IF
5507# endif
5508# endif
5509 IF (.not.got_var(idusms).and.aout(idusms,ng)) THEN
5510 IF (master) WRITE (stdout,60) trim(vname(1,idusms)), &
5511 & trim(ncname)
5512 exit_flag=3
5513 RETURN
5514 END IF
5515 IF (.not.got_var(idvsms).and.aout(idvsms,ng)) THEN
5516 IF (master) WRITE (stdout,60) trim(vname(1,idvsms)), &
5517 & trim(ncname)
5518 exit_flag=3
5519 RETURN
5520 END IF
5521 IF (.not.got_var(idubms).and.aout(idubms,ng)) THEN
5522 IF (master) WRITE (stdout,60) trim(vname(1,idubms)), &
5523 & trim(ncname)
5524 exit_flag=3
5525 RETURN
5526 END IF
5527 IF (.not.got_var(idvbms).and.aout(idvbms,ng)) THEN
5528 IF (master) WRITE (stdout,60) trim(vname(1,idvbms)), &
5529 & trim(ncname)
5530 exit_flag=3
5531 RETURN
5532 END IF
5533# ifdef SOLVE3D
5534 DO itrc=1,nt(ng)
5535 IF (.not.got_var(idtvar(itrc)).and.aout(idtvar(itrc),ng)) THEN
5536 IF (master) WRITE (stdout,60) trim(vname(1,idtvar(itrc))), &
5537 & trim(ncname)
5538 exit_flag=3
5539 RETURN
5540 END IF
5541 END DO
5542 DO itrc=1,nat
5543 IF (.not.got_var(ihutav(itrc)).and.aout(ihutav(itrc),ng)) THEN
5544 IF (master) WRITE (stdout,60) trim(vname(1,ihutav(itrc))), &
5545 & trim(ncname)
5546 exit_flag=3
5547 RETURN
5548 END IF
5549 IF (.not.got_var(ihvtav(itrc)).and.aout(ihvtav(itrc),ng)) THEN
5550 IF (master) WRITE (stdout,60) trim(vname(1,ihvtav(itrc))), &
5551 & trim(ncname)
5552 exit_flag=3
5553 RETURN
5554 END IF
5555 IF (.not.got_var(idutav(itrc)).and.aout(idutav(itrc),ng)) THEN
5556 IF (master) WRITE (stdout,60) trim(vname(1,idutav(itrc))), &
5557 & trim(ncname)
5558 exit_flag=3
5559 RETURN
5560 END IF
5561 IF (.not.got_var(idvtav(itrc)).and.aout(idvtav(itrc),ng)) THEN
5562 IF (master) WRITE (stdout,60) trim(vname(1,idvtav(itrc))), &
5563 & trim(ncname)
5564 exit_flag=3
5565 RETURN
5566 END IF
5567 IF (.not.got_var(idttav(itrc)).and.aout(idttav(itrc),ng)) THEN
5568 IF (master) WRITE (stdout,60) trim(vname(1,idttav(itrc))), &
5569 & trim(ncname)
5570 exit_flag=3
5571 RETURN
5572 END IF
5573 END DO
5574# if defined AVERAGES_DETIDE && (defined SSH_TIDES || defined UV_TIDES)
5575 DO itrc=1,nat
5576 IF (.not.got_var(idtrcd(itrc)).and.aout(idtrcd(itrc),ng)) THEN
5577 IF (master) WRITE (stdout,60) trim(vname(1,idtrcd(itrc))), &
5578 & trim(ncname)
5579 exit_flag=3
5580 RETURN
5581 END IF
5582 END DO
5583# endif
5584# endif
5585
5586# if (defined BBL_MODEL || defined WAVES_OUTPUT) && defined SOLVE3D
5587
5588
5589
5590
5591
5592 CALL bbl_def_pio (ng, model, ldef, aout, avg)
5593 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
5594# endif
5595
5596# if defined ICE_MODEL && defined SOLVE3D
5597
5598
5599
5600
5601 CALL ice_def_pio (ng, model, ldef, aout, avg)
5602# endif
5603
5604# if defined SEDIMENT && defined SOLVE3D
5605
5606
5607
5608
5609 CALL sediment_def_pio (ng, model, ldef, aout, avg)
5610 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
5611# endif
5612
5613# if defined WEC_VF && defined SOLVE3D
5614
5615
5616
5617
5618 CALL wec_def_pio (ng, model, ldef, aout, avg)
5619 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
5620# endif
5621
5622
5623
5624 IF (nrst(ng).eq.navg(ng)) THEN
5625 IF (ndefavg(ng).gt.0) THEN
5626 avg(ng)%Rindex=((ntstart(ng)-1)- &
5627 & ndefavg(ng)*((ntstart(ng)-1)/ndefavg(ng)))/ &
5628 & navg(ng)
5629 ELSE
5630 avg(ng)%Rindex=(ntstart(ng)-1)/navg(ng)
5631 END IF
5632 ELSE
5633 avg(ng)%Rindex=rec_size
5634 END IF
5635 END IF query
5636
5637
5638
5639
5640# ifdef ADJOINT
5641
5642
5643 avgtime(ng)=time(ng)+0.5_r8*real(navg(ng),r8)*dt(ng)
5644# else
5645
5646
5647 IF (ntsavg(ng).eq.1) THEN
5648 avgtime(ng)=time(ng)-0.5_r8*real(navg(ng),r8)*dt(ng)
5649 ELSE
5650 avgtime(ng)=time(ng)+real(ntsavg(ng),r8)*dt(ng)- &
5651 & 0.5_r8*real(navg(ng),r8)*dt(ng)
5652 END IF
5653# endif
5654
5655 10 FORMAT (2x,'DEF_AVG_PIO - creating average file,',t56, &
5656 & 'Grid ',i2.2,': ',a)
5657 20 FORMAT (2x,'DEF_AVG_PIO - inquiring average file',t56, &
5658 & 'Grid ',i2.2,': ',a)
5659 30 FORMAT (/,' DEF_AVG_PIO - unable to create averages NetCDF', &
5660 & ' file: ',a)
5661 40 FORMAT (1pe11.4,1x,'millimeter')
5662 50 FORMAT (/,' DEF_AVG_PIO - unable to open averages NetCDF' &
5663 & ' file: ',a)
5664 60 FORMAT (/,' DEF_AVG_PIO - unable to find variable: ',a,2x, &
5665 & ' in averages NetCDF file: ',a)
5666
5667 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)