File indexing completed on 2018-03-02 18:37:36 UTC
view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
1eb66a0215 Jean*0001 #include "CPP_OPTIONS.h"
0002
0003
0004
0005
0006
0007 SUBROUTINE CPL_CHECK_CPLCONFIG(
0008 I msgUnit,
0009 U errFlag, errMsg )
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 IMPLICIT NONE
0022
0023 #include "ATMSIZE.h"
0024 #include "OCNSIZE.h"
0025 #include "ATMVARS.h"
0026 #include "OCNVARS.h"
0027 #include "CPL_PARAMS.h"
0028 #include "CPL_MAP2GRIDS.h"
0029
0030
0031
0032
6502611145 Jean*0033
1eb66a0215 Jean*0034 INTEGER msgUnit
0035 LOGICAL errFlag
0036 CHARACTER*(*) errMsg
0037
0038
0039 INTEGER i, j, n
0040 INTEGER ijo, ija
0041 LOGICAL tmpVar(Nx_atm,Ny_atm)
0042
0043
6502611145 Jean*0044
0045 IF ( cplErrorCount.NE.0 ) THEN
0046 errFlag = .TRUE.
0047 WRITE(msgUnit,'(2A,I4,A)')
0048 & ' *** ERROR *** CPL_CHECK_CPLCONFIG: ',
0049 & ' cplErrorCount=', cplErrorCount, ' (from previous error)'
0050 ENDIF
0051
1eb66a0215 Jean*0052
0053 WRITE(msgUnit,'(2A,I9)') ' CPL_CHECK_CPLCONFIG: ',
0054 & 'Nb of time-steps to run (ATM) =', nSteps_atm
0055 WRITE(msgUnit,'(2A,I9)') ' CPL_CHECK_CPLCONFIG: ',
0056 & 'Nb of time-steps to run (OCN) =', nSteps_ocn
0057 IF ( nSteps_atm .EQ. nSteps_ocn ) THEN
0058 nCouplingSteps = nSteps_ocn
0059 WRITE(msgUnit,'(2A,I9)') ' CPL_CHECK_CPLCONFIG: ',
0060 & 'Nb of time-steps to run (CPL) =', nCouplingSteps
0061 ELSE
0062 errFlag = .TRUE.
0063 nCouplingSteps = 0
0064 WRITE(msgUnit,'(2A)') ' *** ERROR *** CPL_CHECK_CPLCONFIG: ',
0065 & ' wrong Nb of time-steps to run'
0066 ENDIF
0067
0068
0069 DO j=1,Ny_atm
0070 DO i=1,Nx_atm
0071 tmpVar(i,j) = landMask_atm(i,j) .EQ. 1. _d 0
0072 ENDDO
0073 ENDDO
0074 DO n=1,nROmap
0075
0076 ija = ijROatm(n) - 1
0077 i = 1 + MOD(ija,Nx_atm)
0078 j = 1 + ija/Nx_atm
0079 IF ( landMask_atm(i,j).EQ.0. ) THEN
0080 errFlag = .TRUE.
0081 WRITE(msgUnit,'(A,2I8,A)')
0082 & ' *** ERROR *** RunOff Mapp: i,j=', i, j, ' not Land point'
0083 ENDIF
0084 tmpVar(i,j) = .FALSE.
0085
0086 ijo = ijROocn(n) - 1
0087 i = 1 + MOD(ijo,Nx_ocn)
0088 j = 1 + ijo/Nx_ocn
0089 IF ( OcMxlD_ocn(i,j).EQ.0. ) THEN
0090 errFlag = .TRUE.
0091 WRITE(msgUnit,'(A,2I8,A)')
0092 & ' *** ERROR *** RunOff Mapp: i,j=', i, j, ' not Oce point'
0093 ENDIF
0094 ENDDO
0095
0096
0097
6502611145 Jean*0098 IF ( cplErrorCount.EQ.0 ) THEN
0099 DO j=1,Ny_atm
0100 DO i=1,Nx_atm
0101 IF ( tmpVar(i,j) ) THEN
0102 WRITE(msgUnit,'(A,2I8,A)')
1eb66a0215 Jean*0103 & ' ** WARNING ** Land point: i,j=', i, j, ' not drained'
6502611145 Jean*0104 ENDIF
0105 ENDDO
1eb66a0215 Jean*0106 ENDDO
6502611145 Jean*0107 ENDIF
1eb66a0215 Jean*0108
0109 IF ( errFlag ) THEN
6502611145 Jean*0110 errMsg = 'CPL_CHECK_CPLCONFIG: inconsistent CPL/ATM/OCN config'
1eb66a0215 Jean*0111 ELSE
0112 WRITE(msgUnit,'(2A)') ' CPL_CHECK_CPLCONFIG: ','done'
0113 ENDIF
0114
0115 RETURN
0116 END