680
681
683
684
685
686 integer, intent(in) :: ng
687
688
689
690 logical :: Ldefine, got_var(NV)
691
692 integer, parameter :: Natt = 25
693
694 integer :: i, j, nvd3, nvd4
695 integer :: recdim, status
696 integer :: Fcount
697
698 integer :: DimIDs(nDimID)
699 integer :: t2dgrd(3), u2dgrd(3), v2dgrd(3)
700
701# ifdef SOLVE3D
702 integer :: itrc
703
704 integer :: t3dgrd(4), u3dgrd(4), v3dgrd(4)
705# endif
706
707 real(r8) :: Aval(6)
708
709 character (len=256) :: ncname
710 character (len=MaxLen) :: Vinfo(Natt)
711
712 character (len=*), parameter :: MyFile = &
713 & __FILE__//", def_impulse_pio"
714
715 sourcefile=myfile
716
717
718
719
720
721 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
722 ncname=tlf(ng)%name
723
724 IF (master) THEN
725 IF (ldeftlf(ng)) THEN
726 WRITE (stdout,10) ng, trim(ncname)
727 ELSE
728 WRITE (stdout,20) ng, trim(ncname)
729 END IF
730 END IF
731
732 define : IF (ldeftlf(ng)) THEN
734 IF (founderror(exit_flag, noerror, __line__, myfile)) THEN
735 IF (master) WRITE (stdout,30) trim(ncname)
736 RETURN
737 END IF
738
739
740
741
742
743 dimids=0
744
745 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'xi_rho', &
746 & iobounds(ng)%xi_rho, dimids( 1))
747 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
748
749 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'xi_u', &
750 & iobounds(ng)%xi_u, dimids( 2))
751 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
752
753 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'xi_v', &
754 & iobounds(ng)%xi_v, dimids( 3))
755 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
756
757 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'xi_psi', &
758 & iobounds(ng)%xi_psi, dimids( 4))
759 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
760
761 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'eta_rho', &
762 & iobounds(ng)%eta_rho, dimids( 5))
763 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
764
765 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'eta_u', &
766 & iobounds(ng)%eta_u, dimids( 6))
767 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
768
769 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'eta_v', &
770 & iobounds(ng)%eta_v, dimids( 7))
771 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
772
773 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'eta_psi', &
774 & iobounds(ng)%eta_psi, dimids( 8))
775 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
776
777# if defined WRITE_WATER && defined MASKING
778 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'xy_rho', &
779 & iobounds(ng)%xy_rho, dimids(17))
780 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
781
782 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'xy_u', &
783 & iobounds(ng)%xy_u, dimids(18))
784 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
785
786 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'xy_v', &
787 & iobounds(ng)%xy_v, dimids(19))
788 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
789# endif
790
791# ifdef SOLVE3D
792# if defined WRITE_WATER && defined MASKING
793 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'xyz_rho', &
794 & iobounds(ng)%xy_rho*n(ng), dimids(20))
795 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
796
797 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'xyz_u', &
798 & iobounds(ng)%xy_u*n(ng), dimids(21))
799 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
800
801 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'xyz_v', &
802 & iobounds(ng)%xy_v*n(ng), dimids(22))
803 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
804
805 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'xyz_w', &
806 & iobounds(ng)%xy_rho*(n(ng)+1), dimids(23))
807 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
808# endif
809
810 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 's_rho', &
811 & n(ng), dimids( 9))
812 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
813
814 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 's_w', &
815 & n(ng)+1, dimids(10))
816 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
817
818 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'tracer', &
819 & nt(ng), dimids(11))
820 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
821
822# ifdef SEDIMENT
823 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'NST', &
824 & nst, dimids(32))
825 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
826
827 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'Nbed', &
828 & nbed, dimids(16))
829 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
830
831# if defined WRITE_WATER && defined MASKING
832 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'xybed', &
833 & iobounds(ng)%xy_rho*nbed, dimids(24))
834 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
835# endif
836# endif
837
838# ifdef ECOSIM
839 status=def_dim(ng, inlm, tlf(ng)%pioFile, ncname, 'Nbands', &
840 & nbands, dimids(33))
841 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
842
843 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'Nphy', &
844 & nphy, dimids(25))
845 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
846
847 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'Nbac', &
848 & nbac, dimids(26))
849 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
850
851 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'Ndom', &
852 & ndom, dimids(27))
853 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
854
855 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'Nfec', &
856 & nfec, dimids(28))
857 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
858# endif
859# endif
860
861 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'boundary', &
862 & 4, dimids(14))
863 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
864
865# ifdef FOUR_DVAR
866 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, 'Nstate', &
867 & nstatevar(ng), dimids(29))
868 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
869# endif
870
871 status=def_dim(ng, itlm, tlf(ng)%pioFile, ncname, &
872 & trim(adjustl(vname(5,idtime))), &
873 & nf90_unlimited, dimids(12))
874 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
875
876 recdim=dimids(12)
877
878
879
880# if defined WRITE_WATER && defined MASKING
881 nvd3=2
882 nvd4=2
883# else
884 nvd3=3
885 nvd4=4
886# endif
887
888
889
890# if defined WRITE_WATER && defined MASKING
891 t2dgrd(1)=dimids(17)
892 t2dgrd(2)=dimids(12)
893# ifdef SOLVE3D
894 t3dgrd(1)=dimids(20)
895 t3dgrd(2)=dimids(12)
896# endif
897# else
898 t2dgrd(1)=dimids( 1)
899 t2dgrd(2)=dimids( 5)
900 t2dgrd(3)=dimids(12)
901# ifdef SOLVE3D
902 t3dgrd(1)=dimids( 1)
903 t3dgrd(2)=dimids( 5)
904 t3dgrd(3)=dimids( 9)
905 t3dgrd(4)=dimids(12)
906# endif
907# endif
908
909
910
911# if defined WRITE_WATER && defined MASKING
912 u2dgrd(1)=dimids(18)
913 u2dgrd(2)=dimids(12)
914# ifdef SOLVE3D
915 u3dgrd(1)=dimids(21)
916 u3dgrd(2)=dimids(12)
917# endif
918# else
919 u2dgrd(1)=dimids( 2)
920 u2dgrd(2)=dimids( 6)
921 u2dgrd(3)=dimids(12)
922# ifdef SOLVE3D
923 u3dgrd(1)=dimids( 2)
924 u3dgrd(2)=dimids( 6)
925 u3dgrd(3)=dimids( 9)
926 u3dgrd(4)=dimids(12)
927# endif
928# endif
929
930
931
932# if defined WRITE_WATER && defined MASKING
933 v2dgrd(1)=dimids(19)
934 v2dgrd(2)=dimids(12)
935# ifdef SOLVE3D
936 v3dgrd(1)=dimids(22)
937 v3dgrd(2)=dimids(12)
938# endif
939# else
940 v2dgrd(1)=dimids( 3)
941 v2dgrd(2)=dimids( 7)
942 v2dgrd(3)=dimids(12)
943# ifdef SOLVE3D
944 v3dgrd(1)=dimids( 3)
945 v3dgrd(2)=dimids( 7)
946 v3dgrd(3)=dimids( 9)
947 v3dgrd(4)=dimids(12)
948# endif
949# endif
950
951
952
953 tlf(ng)%Rindex=0
954
955
956
957 DO i=1,natt
958 DO j=1,len(vinfo(1))
959 vinfo(i)(j:j)=' '
960 END DO
961 END DO
962 DO i=1,6
963 aval(i)=0.0_r8
964 END DO
965
966
967
968
969
970 CALL def_info (ng, itlm, tlf(ng)%pioFile, ncname, dimids)
971 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
972
973
974
975
976
977
978
979 vinfo( 1)=vname(1,idtime)
980 vinfo( 2)=vname(2,idtime)
981 WRITE (vinfo( 3),'(a,a)') 'seconds since ', trim(rclock%string)
982 vinfo( 4)=trim(rclock%calendar)
983 vinfo(14)=vname(4,idtime)
984 vinfo(21)=vname(6,idtime)
985 tlf(ng)%pioVar(idtime)%dkind=
pio_tout
986 tlf(ng)%pioVar(idtime)%gtype=0
987
988 status=def_var(ng, itlm, tlf(ng)%pioFile, &
989 & tlf(ng)%pioVar(idtime)%vd, &
990 &
pio_tout, 1, (/recdim/), aval, vinfo, ncname, &
991 & setparaccess = .true.)
992 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
993
994
995
996 vinfo( 1)=vname(1,idztlf)
997 vinfo( 2)=vname(2,idztlf)
998 vinfo( 3)=vname(3,idztlf)
999 vinfo(14)=vname(4,idztlf)
1000 vinfo(16)=vname(1,idtime)
1001# if defined WRITE_WATER && defined MASKING
1002 vinfo(20)='mask_rho'
1003# endif
1004 vinfo(21)=vname(6,idztlf)
1005 vinfo(22)='coordinates'
1006 aval(5)=real(iinfo(1,idztlf,ng),r8)
1007 tlf(ng)%pioVar(idztlf)%dkind=
pio_fout
1008 tlf(ng)%pioVar(idztlf)%gtype=r2dvar
1009
1010 status=def_var(ng, itlm, tlf(ng)%pioFile, &
1011 & tlf(ng)%pioVar(idztlf)%vd, &
1012 &
pio_fout, nvd3, t2dgrd, aval, vinfo, ncname)
1013 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1014
1015# ifndef SOLVE3D
1016
1017
1018
1019 vinfo( 1)=vname(1,idubtf)
1020 vinfo( 2)=vname(2,idubtf)
1021 vinfo( 3)=vname(3,idubtf)
1022 vinfo(14)=vname(4,idubtf)
1023 vinfo(16)=vname(1,idtime)
1024# if defined WRITE_WATER && defined MASKING
1025 vinfo(20)='mask_u'
1026# endif
1027 vinfo(21)=vname(6,idubtf)
1028 vinfo(22)='coordinates'
1029 aval(5)=real(iinfo(1,idubtf,ng),r8)
1030 tlf(ng)%pioVar(idubtf)%dkind=
pio_fout
1031 tlf(ng)%pioVar(idubtf)%gtype=u2dvar
1032
1033 status=def_var(ng, itlm, tlf(ng)%pioFile, &
1034 & tlf(ng)%pioVar(idubtf)%vd, &
1035 &
pio_fout, nvd3, u2dgrd, aval, vinfo, ncname)
1036 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1037
1038
1039
1040 vinfo( 1)=vname(1,idvbtf)
1041 vinfo( 2)=vname(2,idvbtf)
1042 vinfo( 3)=vname(3,idvbtf)
1043 vinfo(14)=vname(4,idvbtf)
1044 vinfo(16)=vname(1,idtime)
1045# if defined WRITE_WATER && defined MASKING
1046 vinfo(20)='mask_v'
1047# endif
1048 vinfo(21)=vname(6,idvbtf)
1049 vinfo(22)='coordinates'
1050 aval(5)=real(iinfo(1,idvbtf,ng),r8)
1051 tlf(ng)%pioVar(idvbtf)%dkind=
pio_fout
1052 tlf(ng)%pioVar(idvbtf)%gtype=v2dvar
1053
1054 status=def_var(ng, itlm, tlf(ng)%pioFile, &
1055 & tlf(ng)%pioVar(idvbtf)%vd, &
1056 &
pio_fout, nvd3, v2dgrd, aval, vinfo, ncname)
1057 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1058
1059# else
1060
1061
1062
1063 vinfo( 1)=vname(1,idutlf)
1064 vinfo( 2)=vname(2,idutlf)
1065 vinfo( 3)=vname(3,idutlf)
1066 vinfo(14)=vname(4,idutlf)
1067 vinfo(16)=vname(1,idtime)
1068# if defined WRITE_WATER && defined MASKING
1069 vinfo(20)='mask_u'
1070# endif
1071 vinfo(21)=vname(6,idutlf)
1072 vinfo(22)='coordinates'
1073 aval(5)=real(iinfo(1,idutlf,ng),r8)
1074 tlf(ng)%pioVar(idutlf)%dkind=
pio_fout
1075 tlf(ng)%pioVar(idutlf)%gtype=u3dvar
1076
1077 status=def_var(ng, itlm, tlf(ng)%pioFile, &
1078 & tlf(ng)%pioVar(idutlf)%vd, &
1079 &
pio_fout, nvd4, u3dgrd, aval, vinfo, ncname)
1080 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1081
1082
1083
1084 vinfo( 1)=vname(1,idvtlf)
1085 vinfo( 2)=vname(2,idvtlf)
1086 vinfo( 3)=vname(3,idvtlf)
1087 vinfo(14)=vname(4,idvtlf)
1088 vinfo(16)=vname(1,idtime)
1089# if defined WRITE_WATER && defined MASKING
1090 vinfo(20)='mask_v'
1091# endif
1092 vinfo(21)=vname(6,idvtlf)
1093 vinfo(22)='coordinates'
1094 aval(5)=real(iinfo(1,idvtlf,ng),r8)
1095 tlf(ng)%pioVar(idvtlf)%dkind=
pio_fout
1096 tlf(ng)%pioVar(idvtlf)%gtype=v3dvar
1097
1098 status=def_var(ng, itlm, tlf(ng)%pioFile, &
1099 & tlf(ng)%pioVar(idvtlf)%vd, &
1100 &
pio_fout, nvd4, v3dgrd, aval, vinfo, ncname)
1101 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1102
1103
1104
1105 DO itrc=1,nt(ng)
1106 vinfo( 1)=vname(1,idttlf(itrc))
1107 vinfo( 2)=vname(2,idttlf(itrc))
1108 vinfo( 3)=vname(3,idttlf(itrc))
1109 vinfo(14)=vname(4,idttlf(itrc))
1110 vinfo(16)=vname(1,idtime)
1111# ifdef SEDIMENT
1112 DO i=1,nst
1113 IF (itrc.eq.idsed(i)) THEN
1114 WRITE (vinfo(19),40) 1000.0_r8*sd50(i,ng)
1115 END IF
1116 END DO
1117# endif
1118# if defined WRITE_WATER && defined MASKING
1119 vinfo(20)='mask_rho'
1120# endif
1121 vinfo(21)=vname(6,idttlf(itrc))
1122 vinfo(22)='coordinates'
1123 aval(5)=real(r3dvar,r8)
1124 tlf(ng)%pioTrc(itrc)%dkind=
pio_fout
1125 tlf(ng)%pioTrc(itrc)%gtype=r3dvar
1126
1127 status=def_var(ng, itlm, tlf(ng)%pioFile, &
1128 & tlf(ng)%pioTrc(itrc)%vd, &
1129 &
pio_fout, nvd4, t3dgrd, aval, vinfo, ncname)
1130 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1131 END DO
1132# endif
1133
1134
1135
1136
1137
1139 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1140
1141
1142
1143
1144
1145
1146 CALL wrt_info (ng, itlm, tlf(ng)%pioFile, ncname)
1147 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1148 ldeftlf(ng)=.false.
1149 END IF define
1150
1151
1152
1153
1154
1155
1156 query : IF (.not.ldeftlf(ng)) THEN
1157 ncname=tlf(ng)%name
1158
1159
1160
1161 IF (tlf(ng)%pioFile%fh.eq.-1) THEN
1163 IF (founderror(exit_flag, noerror, __line__, myfile)) THEN
1164 WRITE (stdout,50) trim(ncname)
1165 RETURN
1166 END IF
1167 END IF
1168
1169
1170
1172 & piofile = tlf(ng)%pioFile)
1173 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1174
1175
1176
1178 & piofile = tlf(ng)%pioFile)
1179 IF (founderror(exit_flag, noerror, __line__, myfile)) RETURN
1180
1181
1182
1183 DO i=1,nv
1184 got_var(i)=.false.
1185 END DO
1186
1187
1188
1189
1190 DO i=1,n_var
1191 IF (trim(var_name(i)).eq.trim(vname(1,idtime))) THEN
1192 got_var(idtime)=.true.
1193 tlf(ng)%pioVar(idtime)%vd=
var_desc(i)
1194 tlf(ng)%pioVar(idtime)%dkind=
pio_tout
1195 tlf(ng)%pioVar(idtime)%gtype=0
1196 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idztlf))) THEN
1197 got_var(idztlf)=.true.
1198 tlf(ng)%pioVar(idztlf)%vd=
var_desc(i)
1199 tlf(ng)%pioVar(idztlf)%dkind=
pio_fout
1200 tlf(ng)%pioVar(idztlf)%gtype=r2dvar
1201# ifndef SOLVE3D
1202 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idubtf))) THEN
1203 got_var(idubtf)=.true.
1204 tlf(ng)%pioVar(idubtf)%vd=
var_desc(i)
1205 tlf(ng)%pioVar(idubtf)%dkind=
pio_fout
1206 tlf(ng)%pioVar(idubtf)%gtype=u2dvar
1207 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvbtf))) THEN
1208 got_var(idvbtf)=.true.
1209 tlf(ng)%pioVar(idvbtf)%vd=
var_desc(i)
1210 tlf(ng)%pioVar(idvbtf)%dkind=
pio_fout
1211 tlf(ng)%pioVar(idvbtf)%gtype=v2dvar
1212# else
1213 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idutlf))) THEN
1214 got_var(idutlf)=.true.
1215 tlf(ng)%pioVar(idutlf)%vd=
var_desc(i)
1216 tlf(ng)%pioVar(idutlf)%dkind=
pio_fout
1217 tlf(ng)%pioVar(idutlf)%gtype=u3dvar
1218 ELSE IF (trim(var_name(i)).eq.trim(vname(1,idvtlf))) THEN
1219 got_var(idvtlf)=.true.
1220 tlf(ng)%pioVar(idvtlf)%vd=
var_desc(i)
1221 tlf(ng)%pioVar(idvtlf)%dkind=
pio_fout
1222 tlf(ng)%pioVar(idvtlf)%gtype=v3dvar
1223# endif
1224 END IF
1225# ifdef SOLVE3D
1226 DO itrc=1,nt(ng)
1227 IF (trim(var_name(i)).eq.trim(vname(1,idttlf(itrc)))) THEN
1228 got_var(idttlf(itrc))=.true.
1229 tlf(ng)%pioTrc(itrc)%vd=
var_desc(i)
1230 tlf(ng)%pioTrc(itrc)%dkind=
pio_fout
1231 tlf(ng)%pioTrc(itrc)%gtype=r3dvar
1232 END IF
1233 END DO
1234# endif
1235 END DO
1236
1237
1238
1239
1240 IF (.not.got_var(idtime)) THEN
1241 IF (master) WRITE (stdout,60) trim(vname(1,idtime)), &
1242 & trim(ncname)
1243 exit_flag=3
1244 RETURN
1245 END IF
1246 IF (.not.got_var(idztlf)) THEN
1247 IF (master) WRITE (stdout,60) trim(vname(1,idztlf)), &
1248 & trim(ncname)
1249 exit_flag=3
1250 RETURN
1251 END IF
1252# ifndef SOLVE3D
1253 IF (.not.got_var(idubtf)) THEN
1254 IF (master) WRITE (stdout,60) trim(vname(1,idubtf)), &
1255 & trim(ncname)
1256 exit_flag=3
1257 RETURN
1258 END IF
1259 IF (.not.got_var(idvbtf)) THEN
1260 IF (master) WRITE (stdout,60) trim(vname(1,idvbtf)), &
1261 & trim(ncname)
1262 exit_flag=3
1263 RETURN
1264 END IF
1265# else
1266 IF (.not.got_var(idutlf)) THEN
1267 IF (master) WRITE (stdout,60) trim(vname(1,idutlf)), &
1268 & trim(ncname)
1269 exit_flag=3
1270 RETURN
1271 END IF
1272 IF (.not.got_var(idvtlf)) THEN
1273 IF (master) WRITE (stdout,60) trim(vname(1,idvtlf)), &
1274 & trim(ncname)
1275 exit_flag=3
1276 RETURN
1277 END IF
1278 DO itrc=1,nt(ng)
1279 IF (.not.got_var(idttlf(itrc))) THEN
1280 IF (master) WRITE (stdout,60) trim(vname(1,idttlf(itrc))), &
1281 & trim(ncname)
1282 exit_flag=3
1283 RETURN
1284 END IF
1285 END DO
1286# endif
1287
1288
1289
1290 tlf(ng)%Rindex=rec_size
1291 fcount=tlf(ng)%Fcount
1292 tlf(ng)%Nrec(fcount)=rec_size
1293 END IF query
1294
1295 10 FORMAT (2x,'DEF_IMPULSE_PIO - creating impulse forcing file,', &
1296 & t56,'Grid ',i2.2,': ',a)
1297 20 FORMAT (2x,'DEF_IMPULSE_PIO - inquiring impulse forcing file,', &
1298 & t56,'Grid ',i2.2,': ',a)
1299 30 FORMAT (/,' DEF_IMPULSE_PIO - unable to create impulse forcing', &
1300 & ' NetCDF file: ',a)
1301 40 FORMAT (1pe11.4,1x,'millimeter')
1302 50 FORMAT (/,' DEF_IMPULSE_PIO - unable to open norm NetCDF', &
1303 & ' file: ',a)
1304 60 FORMAT (/,' DEF_IMPULSE_PIO - unable to find variable: ',a,2x, &
1305 & ' in impulse forcing NetCDF file: ',a)
1306
1307 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)