Sequence d'appel... convert -rpn fichstd -ccrn fichccc [-help] [-sqi] \ [-delt [valeur]] [-date [valeur]] [-info [valeur]] \ [-time] [-tri] [-siecle valeur] [-stamp [valeur]] \ [-es [valeur]] [-mbhr] [-laslon] [-typvar [valeur]] \ [-grtyp valeur] [-datyp valeur] \ [-xg1 valeur -xg2 valeur] [-etiket valeur] \ [-xg3 valeur -xg4 valeur] [-bisect] [-nobox] \ [-keep valeur] [-lnsppa] [-pmslmb] [-ip3dat] [-lev1mb] \ [-opktyp valeur] [-newnam] [-label] [-mvalue [valeur]] \ [-levtyp valeur] [-ip1con] [-append] [-datadd valeur ] Auteur: B.Dugas, RPN - septembre 1990. Derniere revision: $Header: Correction-au-mode-DEFLEVS-et-autres-trucs-divers @ 2019-04-15 09:48:36 -0400 (dugas) $ Objet: ----- CONVERT effectue soit la transformation d'un fichier de format CMC/RPN (RND ou SQI) en un fichier de format CCCma, soit l'operation inverse. Les tampons d'informations sont eux-memes convertis dans la mesure du possible. De meme et toujours dans la mesure du possible, les rapports de compaction sont aussi conserves. Au final, le type de conversion est determine par le contenu des fichiers dont les noms sont specifies sur la ligne de commande. Un seul de ces noms devraient correspondre a un fichier existant. Le second fichier sera alors cree et son type sera different du fichier existant. Si par hasard les deux fichiers existent, la valeur de l'argument a la cle -keep sera alors utilisee pour determiner quel sera le fichier source. Le fichier destination est alors ecrase. Notez que par defaut, keep=RPN. Parametres d'appel: Valeurs defauts ------------------ --------------- rpn = Fichier standard rpn RaNDom ou SeQuentiel/Indexe > Aucune < Il est important de noter que les nom de fichiers rpn ne contenant que des majuscules sont changes en minuscules. Les autres formes de noms ne sont pas modifies ccrn = Fichier ccrn SEQuenciel/FORtran/UNFormatted > Aucune < keep = Determine quel fichier sera la source lorsque les deux fichiers existent a l'appel. > RPN / CCC < sqi = Type du fichier rpn de sortie (RND/SQI) > RND / SQI < info = Niveau des messages retournes (DEBUG/WARNIN/FATALE) > ERRORS/INFORM< nobox = Ne pas imprimer de boites d'informations > NON / OUI < help = Affiche ce texte decrivant le programme et son > NON / OUI < utilisation. Aucune autre tache de conversion n'est alors effectuee par le programme tri = Trier les enregistrements RPN avant lecture selon > NON / OUI < les cles DATEO/NPAS/TYPVAR/ETIKET/NOMVAR/IP1. Cette option ne s'applique pas aux fichiers sequentiels non-indexes pre-1989 bisect = Tenir compte des annees bisectiles dans les > NON / OUI < calculs de date et de pas de temps date = Date de depart de l'analyse >DATE TIME STAMP< > -1 / JOUR < Si CCRN==>RPN, par defaut dateo=10179001 Si RPN==>CCRN et date>0, la date lue dans le fichier RPN sera utilisee comme date de validitee De plus, npas sera recalcule comme la difference entre ces deux dates (en pas de temps, si delt>0 ou bien en heures, sinon) delt = Valeur d'un pas de temps en secondes. > -1 / HEURE< Notez que cette valeur a preseance sur toutes celles qui seraient lues dans le fichier d'entree ip3dat = Si egal a OUI, ibuf(2) contient en fait un nombre > NON / OUI < d'echantillon qui doit etre transfere vers ip3 siecle = Si defini, en mode CCRN==>RPN, ibuf(2) contient > -1 / NON < deja une date CCRN a laquelle il faut ajouter la valeur du parametre siecle. Apres ceci, on aura ibuf(2) = ibuf(2) + ( siecle * 1 00 00 00 00 ) donc en format YYYYMMDDHH stamp = Si egal a OUI, le parametre date contient deja un > OUI / NON < >DATE TIME STAMP< code. Sinon, cet argument est de la forme YYYYMMDDHHMMSS datadd = Facteur additif pour construire une date valide > 0 / NON < en format YYYYMMDDHH. Selon sa valeur on definit aussi un facteur multiplicatif datmlt de la facon suivante: 0 < datadd < 100, datmlt = 100 100 <= datadd < 10000, datmlt = 10000 10000 <= datadd < 1000000, datmlt = 1000000 Donc, il faut que 0 < datadd < 1000000 time = Avec ip3dat, date et delt, determine le traitement > NON / OUI < du descripteur contenant l'information temporelle: a) Si RPN==>CCRN ... ... et time=OUI Alors ibuf(2) = datev ... et time=NON Alors ibuf(2) = npas b) Si CCRN==>RPN ... i) Si ip3dat=OUI, ip3=ibuf(2) et ip2=npas=0 ii) Si ibuf(2) contient deja une date CCC valide Alors datev=ibuf(2) et on tente de sauver: 1) ip2 et npas, si dateo et delt sont definis 2) ip2 et dateo, si npas et delt le sont iii) Si datadd est defini alors on specifit datmlt selon sa valeur (i.e. 100,10000 ou 1000000) et date=datmlt*ibuf(2)+datadd et npas=ip2=0 iv) Si delt.NE.-1 et time=OUI Alors date=datev et npas=ip2=0 v) Sinon Alors date=dateo et npas=ibuf(2) label = Si RPN==>CCRN, la valeur du champs ETIKET est sous la forme d'un enregistrement de type LABEL > NON / OUI < laslon = Ajout/Retrait d'une longitude lorsqu'on reproduit > NON / OUI < RPN vers/de CCRN dans le cas de grille lat-lon es = Type de variable d'humidite dans le fichier ccrn. > ES / HU < Cette valeur sera utilisee si CCRN==>RPN. Dans le sens inverse, es='ALL' implique que 'HU', 'SHUM', 'HR' et 'RHUM' seront toutes renommees a 'ES'. La variable 'ES' restera telle quelle. Par contre, si ES='HR'/'RHUM', seules ces deux variables seront renommees. Idem lorsque es='HU'/'SHUM'. ip1con = Convertir ou non le format des IP1 > OUI / NON < lev1mb = La valeur lev=1 doit etre interpretee comme etant > NON / OUI < pression=1 MB et non pas comme etant sigma=1.0 levtyp = Determine le type de coordonnee verticale lors de > -1 / -1 < la conversion d'un fichier CCRN. Les valeurs reconnues sont les suivantes: =0, hauteur (m) par rapport au niveau de la mer =1, sigma (0.0 -> 1.0) * 1000 =2, pression (mb) =3, type a-dimensionnel (ordinal) =4, hauteur (M) par rapport au niveau du sol =5, coordonnee hybride =6, coordonnee Theta =7, pression (Pa) =999, deja en format IP1 (CMC/RPN) mbhr = Le mouvement vertical RPN (si NOMVAR='WW') est > NON / OUI < en unite de mb/heure plutot que Pascal/seconde lnsppa = Cle pouvant etre utilisee pour que le champs LNSP soit lu et ecrit en ln(Pascal) plutot qu'en ln(MB) > NON / OUI < pmslmb = Cle pouvant etre utilisee pour que le champs MSLP soit lu et ecrit en Mb plutot qu'en Pascal > NON / OUI < newnam = Convertir les noms et unites au besoin. Si newnam > OUI / NON < contient DYN ou PHY, seulement les variables dynamiques ou physiques seront converties typvar = Le type de variable. Previsions, Observations ... > P / O < etiket = L'etiquette a inserer dans le fichier RPN >'CCRN SEQ'/' '< datyp = Forcer l'ecriture avec un type particulier. Ceci > Aucune < n'a de sens que pour les donnees reelles/entieres et n'aura aucun effet pour les donnees complexes. Les types 129, 133 et 134 (i.e. turbo compression des types 1, 5 et 6) sont supportes . mvalue = Valeur associee aux donnees manquante dans les > Aucune < fichiers CCC. La valeur 'OFF' desactive ce traitement lors de l'ecriture de ces fichiers. grtyp = Valeur GRTYP d'une grille CCRN d'entree. Surtout > Aucune < utile dans le cas ou il ne serait pas possibles de distinguer entre des grilles lat/long avec ou sans poles, entre des grilles hemispheriques et des grilles polaire-stereographiques, etc ... xg1,xg2,xg3,xg4 = Parametres definissant la grille (CCRN) d'origine si c'est une grille polaire-stereographique N ou S > Aucuns < Notez que si grtyp ou l'un des xgi doit etre specifie en entree, tous les autre descripteurs de grilles doivent aussi l'etre. opktyp = Exiger le traitement de la partie (SORTIE-CCC) selon un type particulier de compaction (PK84,PK92) > PK84 / **** < Cette valeur peut aussi etre specifiee par la variable d'environment DEFAULT_PACKING_TYPE append = Ajouter les nouvelles donnees a un fichier > NON / OUI < de sortie deja existant Notes - Certains parametres peuvent etre specifies par un enregistrement * ccc de type='LABL', nom='INFO' sur lequel on ecrit: * * typvar,etiket,grtyp, * ig1,ig2,ig3,ig4, * deet,npas,neq1,ip3 * * avec le format suivant: * * format(4x,a2,2x,a12,4x,a1,2(6x,i4),3(4x,i6),2x,i8,2x,a1,8x,i4) * * Les valeurs touvees sur un LABL de ce type ont d'ailleur preseance * sur les parametres. neq1 peut etre I,J ou K (N//neq1 Not Equal 1). * * De plus, les xg1,xg2,xg3 et xg4 sont relies aux ig1,ig2,ig3 et ig4 * par le biais des routines cxgaig et cigaxg. * * Consultez le document RPN: "An introduction to RPN standard files" * par Y. Chartier pour plus de renseignements sur les fichiers RPN. * **** Codes de sortie... 0 Pas d'erreur 1 Pas de noms de fichiers d'E/S 2 Les fichiers d'E/S sont tous deux vides ou inexistants 3 Fichier d'E/S de type inconnu 4 Grille CCRN de type inconnu 5 Les grilles CCRN de type FOUR ne sont pas supportees 6 Impossible de convertir IHEM vers GRTYP 7 Erreur d'ecriture sur fichier standard 8 Erreur de lecture du dictionnaire standard 9 Type de donnees (datyp) ne pouvant etre converties 10 Erreur de lecture des donnees du fichier standard 11 Un des noms declares pointe a un fichier du mauvais type 12 Option TRI indisponible pour un fichier SQI 13 Option TRI sur fichier zonal ayant plus d'une section ++ 14 Probleme de conversion de date dans TIM2DAT 15 TMPDIR ou BIG_TMPDIR non definis 16 Specifications de grille manquant 17 Series temporelles non supportees pour ce grtyp 18 Choisir un seul des arguments SIGMA ou PASCAL 19 Valeur non reconnue pour argument NEWNAM 20 Label de type INFO incompatible 21 Series temporelles non supportees 22 Probleme de series temporelles spectrales 23 Options incompatibles: IP1CONV=F et OLD_STYLE_IP1=T 24 Valeur illegale pour argument ATADD 25 Valeur illegale pourargument SIECLE