source: trunk/UTILITAIRE/fitintobox.pro @ 2

Last change on this file since 2 was 2, checked in by opalod, 22 years ago

Initial revision

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 4.9 KB
Line 
1;------------------------------------------------------------
2;------------------------------------------------------------
3;------------------------------------------------------------
4;+
5; NAME:fitintobox
6;
7; PURPOSE:verifie qu''un tableau correspond bien au domaine 4d
8; specifie lors du dernier domdef et pat jpt.
9;
10; CATEGORY:pour les debuts de noumbreux programme (blindage)
11;
12; CALLING SEQUENCE:res=fitintobox(field)
13;
14; INPUTS:field un tableau ou une structure verifiant les
15; caracteristiques speficfies ds litchamp.pro
16;
17; KEYWORD PARAMETERS:
18;
19; OUTPUTS:un tableau a la taille du domaine 4d.
20;
21; COMMON BLOCKS:common.pro
22;
23; SIDE EFFECTS:
24;
25; RESTRICTIONS:utilise pour se reperer dans l''espace les variables
26; globales jpi,jpj,jpk,premier...,dernier...,nx...,ny...,nz,...
27; pour differencier un tableau 3d xyz d''un tableau 3d xyt, on utilise
28; jpt qui doit etre egale a 1 ds le cas xyz et different de 1 dans
29; l''autre cas.
30;
31; EXAMPLE:
32;
33; MODIFICATION HISTORY:Sebastien Masson (smasson@lodyc.jussieu.fr)
34;                     10 juin 2000.
35;-
36;------------------------------------------------------------
37;------------------------------------------------------------
38;------------------------------------------------------------
39FUNCTION fitintobox, field
40@common
41;---------------------
42   array = litchamp(field)
43   grille, mask, glam, gphi, gdep, nx, ny,nz,premierx,premiery,premierz,dernierx, derniery, dernierz
44
45;---------------------
46   taille=size(array)
47   case 1 of
48;----------------------------------------------------------------------------
49;xy
50;----------------------------------------------------------------------------
51      taille[0] EQ 2:BEGIN
52         case 1 of
53            taille[1] eq  nx and taille[2] eq  ny:
54            taille[1] eq jpi and taille[2] eq jpj:array=array[premierx:dernierx, premiery:derniery]
55            else:return, report('Probleme d''adequation entre les tailles !C du domaine nx*ny '+strtrim(nx, 1)+'*'+strtrim(ny, 1)+' !C et du tableau '+strtrim(taille[1], 1)+'*'+strtrim(taille[2], 1))
56         endcase
57      END
58;----------------------------------------------------------------------------
59;xyz
60;----------------------------------------------------------------------------
61      taille[0] EQ 3 AND jpt EQ 1:BEGIN
62         case 1 of
63            taille[1] eq  nx and taille[2] eq  ny and taille[3] eq  nz:
64            taille[1] eq  nx and taille[2] eq  ny and taille[3] eq  jpk: $
65             array=array[*, *, premierz:dernierz]
66            taille[1] eq jpi and taille[2] eq jpj and taille[3] eq  jpk: $
67             array=array[premierx:dernierx, premiery:derniery, premierz:dernierz]
68            taille[1] eq nx and taille[2] eq ny and taille[3] eq  jpk: $
69             array=array[premierx:dernierx, premiery:derniery, *]
70            else:return, report('Probleme d''adequation entre les tailles !C du domaine nx*ny*nz '+strtrim(nx, 1)+'*'+strtrim(ny, 1)+'*'+strtrim(nz, 1)+' !C et du tableau '+strtrim(taille[1], 1)+'*'+strtrim(taille[2], 1)+'*'+strtrim(taille[3], 1))
71         endcase
72      END
73;----------------------------------------------------------------------------
74;xyt
75;----------------------------------------------------------------------------
76      taille[0] EQ 3 AND jpt NE 1:BEGIN
77         case 1 of
78            taille[1] eq  nx and taille[2] eq  ny AND taille[3] eq jpt:
79            taille[1] eq jpi and taille[2] eq jpj AND taille[3] eq jpt:array=array[premierx:dernierx, premiery:derniery, *]
80            else:return, report('Probleme d''adequation entre les tailles !C du domaine nx*ny*jpt '+strtrim(nx, 1)+'*'+strtrim(ny, 1)+'*'+strtrim(jpt, 1)+'!C et du tableau '+strtrim(taille[1], 1)+'*'+strtrim(taille[2], 1)+'*'+strtrim(taille[3], 1))
81         endcase
82      END
83;----------------------------------------------------------------------------
84;xyzt
85;----------------------------------------------------------------------------
86      taille[0] EQ 4:BEGIN
87         case 1 of
88            taille[1] eq  nx and taille[2] eq  ny and taille[3] eq  nz AND taille[4] eq jpt:
89            taille[1] eq  nx and taille[2] eq  ny and taille[3] eq  jpk AND taille[4] eq jpt: $
90             array=array[*, *, premierz:dernierz, *]
91            taille[1] eq jpi and taille[2] eq jpj and taille[3] eq  jpk AND taille[4] eq jpt: $
92             array=array[premierx:dernierx, premiery:derniery, premierz:dernierz, *]
93            taille[1] eq nx and taille[2] eq ny and taille[3] eq  jpk AND taille[4] eq jpt: $
94             array=array[premierx:dernierx, premiery:derniery, *, *]
95            else:return, report('Probleme d''adequation entre les tailles  !C du domainenx*ny*nz*jpt '+strtrim(nx, 1)+'*'+strtrim(ny, 1)+'*'+strtrim(nz, 1)+'*'+strtrim(jpt, 1)+' !C et du tableau '+strtrim(taille[1], 1)+'*'+strtrim(taille[2], 1)+'*'+strtrim(taille[3], 1)+'*'+strtrim(taille[4], 1))
96         endcase
97      END
98   endcase
99;----------------------------------------------------------------------------
100
101
102   return, array
103end
Note: See TracBrowser for help on using the repository browser.