SUBROUTINE DEFER (COFX,COFY,IDMN,USOL,GRHS) C C THIS SUBROUTINE FIRST APPROXIMATES THE TRUN1ATION ERROR GIVEN BY C TRUN1(X,Y)=DLX**2*TX+DLY**2*TY WHERE C TX=AFUN(X)*UXXXX/12.0+BFUN(X)*UXXX/6.0 ON THE INTERIOR AND C AT THE BOUNDARIES IF PERIODIC(HERE UXXX,UXXXX ARE THE THIRD C AND FOURTH PARTIAL DERIVATIVES OF U WITH RESPECT TO X). C TX IS OF THE FORM AFUN(X)/3.0*(UXXXX/4.0+UXXX/DLX) C AT X=A OR X=B IF THE BOUNDARY CONDITION THERE IS MIXED. C TX=0.0 ALONG SPECIFIED BOUNDARIES. TY HAS SYMMETRIC FORM C IN Y WITH X,AFUN(X),BFUN(X) REPLACED BY Y,DFUN(Y),EFUN(Y). C THE SECOND ORDER SOLUTION IN USOL IS USED TO APPROXIMATE C (VIA SECOND ORDER FINITE DIFFERENCING) THE TRUN1ATION ERROR C AND THE RESULT IS ADDED TO THE RIGHT HAND SIDE IN GRHS C AND THEN TRANSFERRED TO USOL TO BE USED AS A NEW RIGHT C HAND SIDE WHEN CALLING BLKTRI FOR A FOURTH ORDER SOLUTION. C COMMON /SPLP/ KSWX ,KSWY ,K ,L , 1 AIT ,BIT ,CIT ,DIT , 2 MIT ,NIT ,IS ,MS , 3 JS ,NS ,DLX ,DLY , 4 TDLX3 ,TDLY3 ,DLX4 ,DLY4 DIMENSION GRHS(IDMN,1) ,USOL(IDMN,1) EXTERNAL COFX ,COFY C C COMPUTE TRUN1ATION ERROR APPROXIMATION OVER THE ENTIRE MESH C DO 40 J=JS,NS YJ = CIT+FLOAT(J-1)*DLY CALL COFY (YJ,DJ,EJ,FJ) DO 30 I=IS,MS XI = AIT+FLOAT(I-1)*DLX CALL COFX (XI,AI,BI,CI) C C COMPUTE PARTIAL DERIVATIVE APPROXIMATIONS AT (XI,YJ) C CALL DX (USOL,IDMN,I,J,UXXX,UXXXX) CALL DY (USOL,IDMN,I,J,UYYY,UYYYY) TX = AI*UXXXX/12.0+BI*UXXX/6.0 TY = DJ*UYYYY/12.0+EJ*UYYY/6.0 C C RESET FORM OF TRUN1ATION IF AT BOUNDARY WHICH IS NON-PERIODIC C IF (KSWX.EQ.1 .OR. (I.GT.1 .AND. I.LT.K)) GO TO 10 TX = AI/3.0*(UXXXX/4.0+UXXX/DLX) 10 IF (KSWY.EQ.1 .OR. (J.GT.1 .AND. J.LT.L)) GO TO 20 TY = DJ/3.0*(UYYYY/4.0+UYYY/DLY) 20 GRHS(I,J) = GRHS(I,J)+DLX**2*TX+DLY**2*TY 30 CONTINUE 40 CONTINUE C C RESET THE RIGHT HAND SIDE IN USOL C DO 60 I=IS,MS DO 50 J=JS,NS USOL(I,J) = GRHS(I,J) 50 CONTINUE 60 CONTINUE RETURN END .