123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- SUBROUTINE SPECIAL_SYMBOL( isym, name, value, slen )
- IMPLICIT NONE
- INTEGER isym, slen
- CHARACTER name*(*), value*(*)
- INTEGER nspecial
- PARAMETER (nspecial
- LOGICAL
- INTEGER
- . nxpix, nypix, llen, icount, irate, imax, iset
- c
- REAL
- CHARACTER
- CHARACTER
- . LEFINT8*16
- CHARACTER*10 current_date, current_time, zone
- INTEGER
- DATA / /
- . special(2)/ /,
- . special(3)/ /,
- . special(4)/ /,
- . special(5)/ /,
- . special(6)/ /,
- . special(7)/ /,
- . special(8)/ /,
- . special(9)/ /,
- . special(10)/ /,
- . special(11)/ /,
- . special(12)/ /,
- . special(13)/ /,
- . special(14)/ /,
- . special(15)/ /,
- . special(16)/ /,
- . special(17)/ /,
- . special(18)/ /,
- . special(19)/ /,
- . special(20)/ /
- include
- include
- include
- include
- include
- include
- include
- # include
- include
- include
- #ifdef
- include
- #else
- include
- #endif
- IF
- IF
- name
- RETURN
- ENDIF
- name
- RETURN
- ENDIF
- ierr
- DO
- IF
- 100 CONTINUE
- slen
- RETURN
- 200 GOTO
- . 1900, 2000, 2100, 2200, 2300, 2400, 2500, 2600,
- . 2700, 2800, 2900, 3000 ) i
- 1100 CONTINUE
- 1200 DO
- IF
- 1230 CONTINUE
- value
- slen
- RETURN
- 1240 CALL
- IF
- value
- ELSE
- value
- ENDIF
- RETURN
- 1300 IF
- value
- slen
- ELSE
- value
- slen
- ENDIF
- RETURN
- 1400 value
- value
- slen
- RETURN
- 1500 value
- slen
- RETURN
- 1600 CONTINUE
- #ifdef
- value
- #else
- value
- #endif
- slen
- RETURN
- 1700 CONTINUE
- value
- slen
- RETURN
- 1800 value /1.E6,3,12,llen)
- slen = llen
- RETURN
- * SESSION_DATE
- 1900 value = today_date
- slen = 9
- RETURN
- * SESSION_TIME
- 2000 value = today_time
- slen = 5
- RETURN
- * SESSION_PID
- 2100 CONTINUE
- i1 = GETPID()
- count = i1
- value = TM_FMT(count, 10, 10, slen)
- RETURN
- * DELTA_CPU
- 2200 CONTINUE
- c CALL DTIME(TArray)
- CALL CPU_TIME(cputime_now)
- dtime_res = cputime_now - cpu_last
- cpu_last = cputime_now
- value =
- value = TM_FMT(dtime_res, 6, 8, slen)
- RETURN
- * CLOCK_SECS
- 2300 CALL SYSTEM_CLOCK(icount, irate, imax)
- clock_secs = FLOAT(icount-clock_start_count)/
- IF
- CALL //
- . 'SYSTEM_CLOCK. Count has exceeded its max and reset.')
- CALL //
- . 'Resetting to new initial value.')
- clock_secs
- clock_start_count /FLOAT(irate)
- ENDIF
- value =
- value = TM_FMT(clock_secs, 6, 8, slen)
- RETURN
- * CURRENT_DATE
- 2400 CONTINUE
- #ifdef AIX_XLF
- CALL AIX_DATE( current_date )
- #elif F90_DATE_TIME
- CALL FDATE(current_date)
- #else
- CALL GET_DATE_AND_TIME (current_date, current_time)
- #endif
- value = current_date
- slen = 9
- RETURN
- * CURRENT_TIME
- 2500 CONTINUE
- #ifdef AIX_XLF
- CALL AIX_TIME( current_time )
- #elif F90_DATE_TIME
- CALL FTIME(current_time)
- #else
- CALL GET_DATE_AND_TIME (current_date, current_time) ! doesnt get seconds
- CALL Date_and_Time(current_date, current_time, Zone, itimes)
- WRITE (current_time,1000) itimes(5), itimes(6), itimes(7)
- 1000 FORMAT (2(I2.2,), I2.2)
- #endif
- value = current_time
- slen = 8
- RETURN
- * N_OPEN_DSETS
- 2600 CONTINUE
-
- count = 0.
- DO 2690 iset = 1, maxdsets
- IF ( ds_name(iset) .NE. char_init2048) count = count + 1.
- 2690 CONTINUE
- value = TM_FMT(count, 10, 10, slen)
- RETURN
- * PROGRAM_NAME
- 2700 CONTINUE
- value =
- slen = 6
- RETURN
- * PEAK_MEMORY
- 2800 value = LEFINT8(peak_mem,slen)
- RETURN
- * SPAWN_OK
- 2900 IF (IS_SECURE()) THEN
- rstatus = 0.
- ELSEIF (spawn_status .EQ. 0.) THEN
- rstatus = 1.
- ELSE
- rstatus = 0.
- ENDIF
- value = TM_FMT(rstatus, 10, 10, slen)
- RETURN
- * SPAWN_STATUS
- 3000 IF (IS_SECURE()) THEN
- value =
- slen = 25
- ELSE
- rstatus = spawn_status
- value = TM_FMT(rstatus, 10, 10, slen)
- ENDIf
- RETURN
- END
|