c flag for adjoint process logical smooth_isset c flag for 3D case logical wc01_implicitDiffusion c the index associated with the current smoothing operator integer smoothOpNbCur integer smoothOpNbMax PARAMETER ( smoothOpNbMax = 10 ) c main fields: _RL fld_wc01(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) _RL gTwc01(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) _RL normFilterwc01 (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) _RL fld_wc01_2D(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) _RL gTwc01_2D(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) _RL normFilterwc01_2D (1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) _RL wc01_2D_mask (1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) c the fields defining the smoothing function _RL wc01_dt,wc01_T integer wc01_nbt(smoothOpNbMax) integer smooth3DtypeZ(smoothOpNbMax) integer smooth3DsizeZ(smoothOpNbMax) integer smooth3DtypeH(smoothOpNbMax) integer smooth3DsizeH(smoothOpNbMax) integer smooth2Dfilter(smoothOpNbMax) integer smooth3Dfilter(smoothOpNbMax) _RL wc01_3D_Lx0(smoothOpNbMax), & wc01_3D_Ly0(smoothOpNbMax), wc01_3D_Lz0(smoothOpNbMax) _RL wc01_3D_Lx(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) _RL wc01_3D_Ly(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) _RL wc01_3D_Lz(1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) _RL wc01_2D_dt,wc01_2D_T integer wc01_2D_nbt(smoothOpNbMax), & smooth2Dtype(smoothOpNbMax),smooth2Dsize(smoothOpNbMax) _RL wc01_2D_Lx0(smoothOpNbMax),wc01_2D_Ly0(smoothOpNbMax) _RL wc01_2D_Lx(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) _RL wc01_2D_Ly(1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) c these are useless... I leave them here by now, but will c remove then after removing them from mitoa_init and mitoa_rhs _RL diffKhwc01,diffK4wc01 c bis _RL kappaRwc01 (1-Olx:sNx+Olx,1-Oly:sNy+Oly,Nr,nSx,nSy) _RL wc01_Kwx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL wc01_Kwy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL wc01_Kwz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL wc01_Kux(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL wc01_Kvy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL wc01_Kuz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL wc01_Kvz(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL wc01_Kuy(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) _RL wc01_Kvx(1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr,nSx,nSy) c ter _RL diffKhwc01_2D_x (1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) _RL diffKhwc01_2D_y (1-Olx:sNx+Olx,1-Oly:sNy+Oly,nSx,nSy) COMMON /smooth_flags/ & smooth_isset, wc01_implicitDiffusion COMMON /smooth_flds_r/ & fld_wc01, gTwc01, normFilterwc01, & fld_wc01_2D, gTwc01_2D, normFilterwc01_2D, wc01_2D_mask COMMON /smooth_operators_i/ & smoothOpNbCur, wc01_nbt, wc01_2D_nbt & , smooth2Dtype, smooth2Dsize & , smooth3DtypeZ, smooth3DsizeZ & , smooth3DtypeH, smooth3DsizeH & , smooth2Dfilter, smooth3Dfilter COMMON /smooth_operators_r/ & wc01_3D_Lx,wc01_3D_Ly,wc01_3D_Lz,wc01_dt,wc01_T & ,wc01_2D_Lx,wc01_2D_Ly,wc01_2D_dt,wc01_2D_T & ,kappaRwc01,wc01_Kwx,wc01_Kwy,wc01_Kwz & ,wc01_Kux,wc01_Kvy,wc01_Kuz,wc01_Kvz & ,wc01_Kuy,wc01_Kvx & ,diffKhwc01_2D_x,diffKhwc01_2D_y & , wc01_2D_Lx0,wc01_2D_Ly0 & , wc01_3D_Lx0,wc01_3D_Ly0,wc01_3D_Lz0 COMMON /smooth_operators_tmp/ & diffKhwc01, diffK4wc01