1 #include "private/zpetsc.h" 2 #include "petsc.h" 3 4 #if defined(PETSC_HAVE_FORTRAN_CAPS) 5 #define petscstrncpy_ PETSCSTRNCPY 6 #elif !defined(PETSC_HAVE_FORTRAN_UNDERSCORE) 7 #define petscstrncpy_ petscstrncpy 8 #endif 9 10 EXTERN_C_BEGIN 11 void PETSC_STDCALL petscstrncpy_(CHAR s1 PETSC_MIXED_LEN(len1),CHAR s2 PETSC_MIXED_LEN(len2),int *n, 12 PetscErrorCode *ierr PETSC_END_LEN(len1) PETSC_END_LEN(len2)) 13 { 14 char *t1,*t2; 15 int m; 16 17 #if defined(PETSC_USES_CPTOFCD) 18 t1 = _fcdtocp(s1); 19 t2 = _fcdtocp(s2); 20 m = *n; if (_fcdlen(s1) < m) m = _fcdlen(s1); if (_fcdlen(s2) < m) m = _fcdlen(s2); 21 #else 22 t1 = s1; 23 t2 = s2; 24 m = *n; if (len1 < m) m = len1; if (len2 < m) m = len2; 25 #endif 26 *ierr = PetscStrncpy(t1,t2,m); 27 } 28 29 EXTERN_C_END 30