Fortran example for GetCurrentEntityName

 

C---- SUB. AXIAL_FORCE : AXIAL(TRA,ROT)

      SUBROUTINE AXIAL_FORCE

     &          (TIME,UPAR,NPAR,JFLAG,IFLAG,RESULT)

C---- TO EXPORT * SUBROUTINE

      !DEC$ ATTRIBUTES DLLEXPORT,C::AXIAL_FORCE

C---- INCLUDE SYSTEM CALL

      INCLUDE 'SYSCAL.F'

C---- DEFINE VARIABLES

C Parameter Information

C     time: Simulation time of RD/Solver

C     upar: Parameters defined by user

C     npar: Number of user parameters

C     jflag: When RD/Solver evaluates a Jacobian, the flag is true.

C     iflag: When RD/Solver initializes arrays, the flag is true.

C     result: Returned value

      DOUBLE PRECISION TIME, UPAR(*)

      INTEGER NPAR

      LOGICAL JFLAG, IFLAG

      DOUBLE PRECISION RESULT[REFERENCE]

C---- USER STATEMENT

C---- LOCAL VARIABLE DEFINITIONS

           INTEGER MKID(3), ID

           DOUBLE PRECISION DISP, VALUE(1)

           LOGICAL ERRFLG

           integer convergenceFlag,finish,nName,err2flg

           double precision stepsize

           character sName*256

 

       call GETCURRENTENTITYNAME(sName,nName, ERRFLG)

VALUE(1) = 0.0d0

 

      if ( sName(:6).eq.'Axial1' ) then

C------- ASSIGN IMPACT PARAMETERS

                      MKID(1) = INT(UPAR(1))

                      MKID(2) = INT(UPAR(2))

                      MKID(3) = INT(UPAR(3))

                      ID = INT(UPAR(4))

   

C------- CALL AUXILIARY SUBROUTINES FOR CALCULATIONS

                      CALL SYSFNC('DX', MKID, 3, DISP, ERRFLG)

                      CALL RD_AKISPL(DISP, 0, ID, 0, VALUE(1), ERRFLG)    

      endif

        

C---- ASSIGN THE RETURNED VALUE

           RESULT = VALUE(1)

 

      RETURN

      END