$-----------------------------------------------------------------------
CALSEF: PROGRAMA PARA CALCULO DE SOLIDOS Y ESTRUCTURAS POR EL M. E. F.
$-----------------------------------------------------------------------
$ECHO ON
$-----------------------------------------------------------------------
ESTATICO-LINEAL, EN SOLIDOS
$-----------------------------------------------------------------------
$NUMERO DE PROBLEMAS:
NPROB = *GenData(1)
$-----------------------------------------------------------------------
$ TITULO DEL PROBLEMA           
TITULO= *GenData(2)
$-----------------------------------------------------------------------
$DIMENSIONES DEL PROBLEMA
DIMENSIONES :  NPNOD= *npoin ,      NELEM= *nelem ,     NMATS= *nmats ,     \
               NNODE= *nnode ,      NDIME= *ndime ,                         \ 
               NCARG= *GenData(3) , NGDLN= *GenData(4), NPROP= *GenData(5), \
               NGAUS= *GenData(6) , NTIPO= *\
*if(strcmp(GenData(7),"Tens-Plana")==0)
1 *\
*endif
*if(strcmp(GenData(7),"Def-Plana")==0)
2 *\
*endif
*if(strcmp(GenData(7),"Sol-Revol")==0)
3 *\
*endif
*if(strcmp(GenData(7),"Sol-Tridim")==0)
4 *\
*endif
*if(strcmp(GenData(7),"Placas")==0)
5 *\
*endif
*if(strcmp(GenData(7),"Laminas-Rev")==0)
6 *\
*endif
, IWRIT= *\
*if(strcmp(GenData(8),"Si")==0)
1 ,\
*endif
*if(strcmp(GenData(8),"No")==0)
0 ,\
*endif
               INDSO= *GenData(9) , *\
*Set Cond Surface-Constraints *nodes *or(1,int) *or(3,int)
*Add Cond Line-Constraints *nodes *or(1,int) *or(3,int)
*Add Cond Point-Constraints *nodes *or(1,int) *or(3,int)
NPRES= *CondNumEntities
$-----------------------------------------------------------------------
GEOMETRIA 
$ CONECTIVIDADES ELEMENTALES
$ ELEM. MATER.    SECUENCIA DE CONECTIVIDADES
*loop elems
  *elemsnum *elemsmat *elemsConec(swap)
*end elems
$ COORDENADAS DE PUNTOS NODALES
$  NODO  COOR.-X   COOR.-Y   COOR.-Z
*loop nodes
*format "%6i%15.5f%15.5f%15.5f"
  *NodesNum *NodesCoord
*end
FIN_GEOMETRIA
CONTORNO CONDICIONES
$ NODOS RESTRINGIDOS Y PRESCRIPCIONES
$ NODO CODIGO         VALORES PRESCRITOS
*loop nodes *OnlyInCond
*format "%5i%1i%1i%f%f"
   *NodesNum *cond(1,int) *cond(3,int)  *\
*if(GenData(4,int)>=3)
*cond(5,int) *\
*endif
*if(GenData(4,int)==5)
0 0  *\
*endif
*cond(2,real) *cond(4,real) *\
*if(GenData(4,int)>=3)
*cond(6,real) *\
*endif
*if(GenData(4,int)==5)
0.0 0.0  *\
*endif

*end
FIN_CONTORNO CONDICIONES
$-----------------------------------------------------------------------
PROPIEDADES MATERIALES
$ PROPIEDADES DE LOS MATERIALES PARA MULTILAMINADO
*loop materials
   *matnum() *MatProp(1) *MatProp(2) *MatProp(3) *MatProp(4)
*end
FIN_PROPIEDADES MATERIALES
$-----------------------------------------------------------------------
*loop intervals
FUERZAS
    TITULO: *IntvData(1)
$ TIPO DE CARGA

*Set Cond Face-Load *elems *CanRepeat
*if(CondNumEntities(int)>0)
DISTRIBUIDA UNIFORMEMENTE EN LADOS
$ CARGAS UNIFORMEMENTE REPARTIDAS EN LADOS DE ELEMENTOS
$ NUMERO DE NODOS EN LADO      
NODGE =  2  
$ LADOS CARGADOS Y CARGAS ACTUANTES
*loop elems *OnlyInCond
      ELEMENTO=*elemsnum(), CONECTIV *globalnodes
      *cond(1) *cond(1)  *cond(2) *cond(2) 
*end
FIN_DISTRIBUIDA UNIFORME EN LADOS
*endif

*Set Cond Point-Load *nodes
*if(CondNumEntities(int)>0)
PUNTUAL EN NODOS
*loop nodes *OnlyInCond
      *NodesNum *cond(1) *cond(2) *\
*if(GenData(4,int)>=3)
*cond(3) *\
*endif
*if(GenData(4,int)==5)
0 0  *\
*endif

*end
FIN_PUNTUAL EN NODOS
*endif
*if(strcasecmp(IntvData(2),"Si")==0)
PESO_PROPIO
*endif
FIN_FUERZAS
$-----------------------------------------------------------------------
$ARCHIVO DE POSTPROCESO
FEMV = *IntvData(3)
$-----------------------------------------------------------------------
*end
FIN_CALSEF
$-----------------------------------------------------------------------
