C $Header: /home/ubuntu/mnt/e9_copy/MITgcm_contrib/AITCZ/code/mitphys_write_diags.F,v 1.1 2003/08/20 15:24:59 czaja Exp $ C $Name: $ #include "CPP_OPTIONS.h" CStartOfInterFace SUBROUTINE MITPHYS_WRITE_DIAGS( myTime, myIter, myThid ) C /==========================================================\ C | SUBROUTINE MITPHYS_WRITE_DIAGS | C | o Write out MITPHYS diagnostic output | C \==========================================================/ IMPLICIT NONE C === Global variables === #include "SIZE.h" #include "EEPARAMS.h" #include "PARAMS.h" #include "MITPHYS_DIAGS.h" LOGICAL DIFFERENT_MULTIPLE EXTERNAL DIFFERENT_MULTIPLE C Common (shared with RD_WR_FLD routines in read_write_fld.F) LOGICAL globalFile ! sb COMMON /RD_WR_FLD/ globalFile c sb LOGICAL globalFile C == Routine arguments == C myTime - Current time of simulation ( s ) C myIter - Iteration number C myThid - Number of this instance of the routine _RL myTime, zonal_time_ave INTEGER myIter INTEGER myThid CEndOfInterface #ifdef ALLOW_MITPHYS C == Local variables == INTEGER bi, bj, K CHARACTER*(MAX_LEN_MBUF) fn LOGICAL gf, OMP_WRITE _RL AUX2D(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy) ! sb integer i,j INTEGER nno ! sb SAVE nno ! sb data nno /0/ !omp c_jmc gf = .TRUE. gf = globalFile #ifdef ALLOW_TIMEAVE C Dump files and restart average computation if needed IF ( myIter.NE.nIter0 .AND. & DIFFERENT_MULTIPLE(taveFreq,myTime, & myTime-deltaTClock) & ) THEN C Normalize by integrated time DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) CALL TIMEAVE_NORMALIZ(TSWtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(TLWtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(SSWtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(SLWtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(SINStave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(BKTtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(SHFtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(LHFtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(USTRtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(VSTRtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(PRECNVtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(PRECLStave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(CLOUDCtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(SSTtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(QFLUXtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(PRWtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(TSW0tave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(TLW0tave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(CBMFtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(PLCLtave,MITPHYS_timeave,1,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(RHtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(CLDFtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(CLDQtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(CLDQCtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(RCtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(CRLWtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(CRSWtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(MUPtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(MDNtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(MDN0tave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(ENTtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(DETtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(Utave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(Vtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(Wtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(Ttave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(Qtave,MITPHYS_timeave,Nr,bi,bj,myThid) CC(acz) CALL TIMEAVE_NORMALIZ(PHItave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(SXtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(HXtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(DTCNVtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(DQCNVtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(DTLSCtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(DTPBLtave,MITPHYS_timeave,Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(UT_PBLtave,MITPHYS_timeave, & Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(VT_PBLtave,MITPHYS_timeave, & Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(UT_CNVtave,MITPHYS_timeave, & Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(VT_CNVtave,MITPHYS_timeave, & Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(UT_ADJtave,MITPHYS_timeave, & Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(VT_ADJtave,MITPHYS_timeave, & Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(TT_ADJtave,MITPHYS_timeave, & Nr,bi,bj,myThid) CALL TIMEAVE_NORMALIZ(QT_ADJtave,MITPHYS_timeave, & Nr,bi,bj,myThid) C normalize the zonal mean zonal_time_ave = 1.0 / sNx / MITPHYS_timeave (1,bi,bj) do j = 1,sNy do k = 1,Nr Uzav(j,K,bi,bj) = Uzav(j,K,bi,bj) * zonal_time_ave Vzav(j,K,bi,bj) = Vzav(j,K,bi,bj) * zonal_time_ave Wzav(j,K,bi,bj) = Wzav(j,K,bi,bj) * zonal_time_ave Tzav(j,K,bi,bj) = Tzav(j,K,bi,bj) * zonal_time_ave Qzav(j,K,bi,bj) = Qzav(j,K,bi,bj) * zonal_time_ave RHzav(j,K,bi,bj) = RHzav(j,K,bi,bj)* zonal_time_ave UVzav(j,K,bi,bj) = UVzav(j,K,bi,bj) * zonal_time_ave VTzav(j,K,bi,bj) = VTzav(j,K,bi,bj) * zonal_time_ave VQzav(j,K,bi,bj) = VQzav(j,K,bi,bj) * zonal_time_ave UWzav(j,K,bi,bj) = UWzav(j,K,bi,bj) * zonal_time_ave WTzav(j,K,bi,bj) = WTzav(j,K,bi,bj) * zonal_time_ave WQzav(j,K,bi,bj) = WQzav(j,K,bi,bj) * zonal_time_ave CLDFzav(j,K,bi,bj) = CLDFzav(j,K,bi,bj) * zonal_time_ave CLDQzav(j,K,bi,bj) = CLDQzav(j,K,bi,bj) * zonal_time_ave CLDQCzav(j,K,bi,bj)= CLDQCzav(j,K,bi,bj)* zonal_time_ave RCzav(j,K,bi,bj) = RCzav(j,K,bi,bj) * zonal_time_ave DTCNVzav(j,K,bi,bj)= DTCNVzav(j,K,bi,bj) : * zonal_time_ave DQCNVzav(j,K,bi,bj)= DQCNVzav(j,K,bi,bj) : * zonal_time_ave DTLSCzav(j,K,bi,bj)= DTLSCzav(j,K,bi,bj) : * zonal_time_ave DTPBLzav(j,K,bi,bj)= DTPBLzav(j,K,bi,bj) : * zonal_time_ave UT_PBLzav(j,K,bi,bj)= UT_PBLzav(j,K,bi,bj) : * zonal_time_ave VT_PBLzav(j,K,bi,bj)= VT_PBLzav(j,K,bi,bj) : * zonal_time_ave UT_CNVzav(j,K,bi,bj)= UT_CNVzav(j,K,bi,bj) : * zonal_time_ave VT_CNVzav(j,K,bi,bj)= VT_CNVzav(j,K,bi,bj) : * zonal_time_ave UT_ADJzav(j,K,bi,bj)= UT_ADJzav(j,K,bi,bj) : * zonal_time_ave VT_ADJzav(j,K,bi,bj)= VT_ADJzav(j,K,bi,bj) : * zonal_time_ave TT_ADJzav(j,K,bi,bj)= TT_ADJzav(j,K,bi,bj) : * zonal_time_ave QT_ADJzav(j,K,bi,bj)= QT_ADJzav(j,K,bi,bj) : * zonal_time_ave PHIzav(j,K,bi,bj) = PHIzav(j,K,bi,bj) * zonal_time_ave end do end do ENDDO ENDDO _BARRIER _BEGIN_MASTER( myThid ) ccc WRITE(fn,'(A,I10.10)') 'aimphyvars.',myIter C modif omp: change the output. Each output file contains a single field. C Notice that some variables are not written in the output anymore. OMP_WRITE = .TRUE. IF (OMP_WRITE) THEN nno = nno +1 C 2D fields CC CALL MDSWRITEFIELD('TSW.tav',precFloat32,globalFile,'RL',1 CC & ,TSWtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('TLW.tav',precFloat32,globalFile,'RL',1 CC & ,TLWtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('SSW.tav',precFloat32,globalFile,'RL',1 CC & ,SSWtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('SLW.tav',precFloat32,globalFile,'RL',1 CC & ,SLWtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('SINS.tav',precFloat32,globalFile,'RL',1 CC & ,SINStave, nno,myIter,myThid) CALL MDSWRITEFIELD('BKT.tav',precFloat32,globalFile,'RL',1 & ,BKTtave, nno,myIter,myThid) CALL MDSWRITEFIELD('SHF.tav',precFloat32,globalFile,'RL',1 & ,SHFtave, nno,myIter,myThid) CALL MDSWRITEFIELD('LHF.tav',precFloat32,globalFile,'RL',1 & ,LHFtave, nno,myIter,myThid) CALL MDSWRITEFIELD('USTR.tav',precFloat32,globalFile,'RL',1 & ,USTRtave, nno,myIter,myThid) CALL MDSWRITEFIELD('VSTR.tav',precFloat32,globalFile,'RL',1 & ,VSTRtave, nno,myIter,myThid) CALL MDSWRITEFIELD('PreCNV.tav',precFloat32,globalFile,'RL',1 & ,PRECNVtave, nno,myIter,myThid) CALL MDSWRITEFIELD('PrecLS.tav',precFloat32,globalFile,'RL',1 & ,PRECLStave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('CLOUDC.tav',precFloat32,globalFile,'RL',1 CC & ,CLOUDCtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('PRW.tav',precFloat32,globalFile,'RL',1 CC & ,PRWtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('TSW0.tav',precFloat32,globalFile,'RL',1 CC & ,TSW0tave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('TLW0.tav',precFloat32,globalFile,'RL',1 CC & ,TLW0tave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('CBMF.tav',precFloat32,globalFile,'RL',1 CC & ,CBMFtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('PLCL.tav',precFloat32,globalFile,'RL',1 CC & ,PLCLtave, nno,myIter,myThid) CALL MDSWRITEFIELD('SST.tav',precFloat32,globalFile,'RL',1 & ,SSTtave, nno,myIter,myThid) CALL MDSWRITEFIELD('QFLUX.tav',precFloat32,globalFile,'RL',1 & ,QFLUXtave, nno,myIter,myThid) C 3D fields CALL MDSWRITEFIELD('RH.tav',precFloat32,globalFile,'RL',Nr & ,RHtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('CLDF.tav',precFloat32,globalFile,'RL',Nr CC & ,CLDFtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('CLDQ.tav',precFloat32,globalFile,'RL',Nr CC & ,CLDQtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('CLDQC.tav',precFloat32,globalFile,'RL',Nr CC & ,CLDQCtave, nno,myIter,myThid) CALL MDSWRITEFIELD('U.tav',precFloat32,globalFile,'RL',Nr & ,Utave, nno,myIter,myThid) CALL MDSWRITEFIELD('V.tav',precFloat32,globalFile,'RL',Nr & ,Vtave, nno,myIter,myThid) CALL MDSWRITEFIELD('W.tav',precFloat32,globalFile,'RL',Nr & ,Wtave, nno,myIter,myThid) CALL MDSWRITEFIELD('Q.tav',precFloat32,globalFile,'RL',Nr & ,Qtave, nno,myIter,myThid) CALL MDSWRITEFIELD('T.tav',precFloat32,globalFile,'RL',Nr & ,Ttave, nno,myIter,myThid) c CALL MDSWRITEFIELD('GEOP.tav',precFloat32,globalFile,'RL',Nr c(acz) & ,Phitave, nno,myIter,myThid) CALL MDSWRITEFIELD('DTCNV.tav',precFloat32,globalFile,'RL',Nr & ,DTCNVtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('DQCNV.tav',precFloat32,globalFile,'RL',Nr CC & ,DQCNVtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('DTPBL.tav',precFloat32,globalFile,'RL',Nr CC & ,DTPBLtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('UT_PBL.tav',precFloat32,globalFile,'RL',Nr CC & ,UT_PBLtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('VT_PBL.tav',precFloat32,globalFile,'RL',Nr CC & ,VT_PBLtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('UT_CNV.tav',precFloat32,globalFile,'RL',Nr CC & ,UT_CNVtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('VT_CNV.tav',precFloat32,globalFile,'RL',Nr CC & ,VT_CNVtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('UT_ADJ.tav',precFloat32,globalFile,'RL',Nr CC & ,UT_ADJtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('VT_ADJ.tav',precFloat32,globalFile,'RL',Nr CC & ,VT_ADJtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('TT_ADJ.tav',precFloat32,globalFile,'RL',Nr CC & ,TT_ADJtave, nno,myIter,myThid) CC CALL MDSWRITEFIELD('QT_ADJ.tav',precFloat32,globalFile,'RL',Nr CC & ,QT_ADJtave, nno,myIter,myThid) CALL MDSWRITEFIELD('DTLSC.tav',precFloat32,globalFile,'RL',Nr & ,DTLSCtave, nno,myIter,myThid) CALL MDSWRITEFIELD('DTRC.tav',precFloat32,globalFile,'RL',Nr & ,RCtave, nno,myIter,myThid) C OMP. 12-28-01 Zonally averaged fields. c$$$ CALL MDSWRITEFIELDYZ('RHzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr,RHzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('CLDFzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr,CLDFzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('CLDQzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr,CLDQzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('CLDQCzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,CLDQCzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('Uzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,Uzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('Vzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,Vzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('Wzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,Wzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('Qzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,Qzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('Tzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,Tzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('GEOPzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,Phizav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('DTCNVzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,DTCNVzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('DQCNVzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,DQCNVzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('DTPBLzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,DTPBLzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('UT_PBLzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,UT_PBLzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('VT_PBLzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,VT_PBLzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('UT_CNVzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,UT_CNVzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('VT_CNVzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,VT_CNVzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('UT_ADJzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,UT_ADJzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('VT_ADJzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,VT_ADJzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('TT_ADJzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,TT_ADJzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('QT_ADJzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,QT_ADJzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('DTLSCzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,DTLSCzav, nno,myIter,myThid) c$$$ CALL MDSWRITEFIELDYZ('DTRCzav.tav',precFloat32,globalFile, c$$$ & 'RL',Nr ,RCzav, nno,myIter,myThid) c$$$ CC CALL MDSWRITEFIELDYZ('UVzav.tav',precFloat32,globalFile,'RL',Nr CC & ,uvzav,nno,myIter,myThid) CC CALL MDSWRITEFIELDYZ('VTzav.tav',precFloat32,globalFile,'RL',Nr CC & ,vtzav,nno,myIter,myThid) CC CALL MDSWRITEFIELDYZ('VQzav.tav',precFloat32,globalFile,'RL',Nr CC & ,vqzav,nno,myIter,myThid) CC CALL MDSWRITEFIELDYZ('UWzav.tav',precFloat32,globalFile,'RL',Nr CC & ,uwzav,nno,myIter,myThid) CC CALL MDSWRITEFIELDYZ('WTzav.tav',precFloat32,globalFile,'RL',Nr CC & ,wtzav,nno,myIter,myThid) CC CALL MDSWRITEFIELDYZ('WQzav.tav',precFloat32,globalFile,'RL',Nr CC & ,wqzav,nno,myIter,myThid) ELSE WRITE(fn,'(A,I10.10)') '/scratch0/omp/mit3d/mitphyvars' !only one file in output nno = nno + 1 ! record number c write(*,*)'nyIter, nno, fn = ',myIter,nno,fn CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,TSWtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,TLWtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,SSWtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,SLWtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,SINStave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,BKTtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,SHFtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,LHFtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,USTRtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,VSTRtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,PRECNVtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,PRECLStave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,CLOUDCtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,SSTtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,QFLUXtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,PRWtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,TSW0tave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,TLW0tave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,CBMFtave,nno,myIter,myThid) nno = nno + 1 CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,PLCLtave,nno,myIter,myThid) DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(RHtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(CLDFtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(CLDQtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(CLDQCtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(RCtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(CRLWtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(CRSWtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(MUPtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(MDNtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(MDN0tave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(ENTtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(DETtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(Utave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(Vtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(Wtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(Ttave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(Qtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(SXtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(HXtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(DTCNVtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(DTLSCtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO DO K = 1, Nr nno = nno + 1 CALL FROM3DTO2D(DTPBLtave,K,AUX2D,myThid) CALL MDSWRITEFIELD(fn,precFloat32,gf, & 'RL',1,AUX2D,nno,myIter,myThid) ENDDO END IF _END_MASTER( myThid ) _BARRIER C Reset averages to zero DO bj = myByLo(myThid), myByHi(myThid) DO bi = myBxLo(myThid), myBxHi(myThid) CALL TIMEAVE_RESET(TSWtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(TLWtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(SSWtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(SLWtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(SINStave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(BKTtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(SHFtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(LHFtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(USTRtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(VSTRtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(PRECNVtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(PRECLStave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(CLOUDCtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(SSTtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(QFLUXtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(PRWtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(TSW0tave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(TLW0tave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(CBMFtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(PLCLtave, 1, bi, bj, myThid) CALL TIMEAVE_RESET(RHtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(CLDFtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(CLDQtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(CLDQCtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(RCtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(CRLWtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(CRSWtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(MUPtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(MDNtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(MDN0tave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(ENTtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(DETtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(Utave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(Vtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(Wtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(Ttave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(Qtave, Nr, bi, bj, myThid) CC(acz) CALL TIMEAVE_RESET(PHItave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(SXtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(HXtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(DTCNVtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(DQCNVtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(DTLSCtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(DTPBLtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(UT_PBLtave, Nr, bi, bj, myThid) CALL TIMEAVE_RESET(VT_PBLtave, Nr, bi, bj, myThid) C normalize the zonal mean zonal_time_ave = 0.0 do j = 1,sNy do k = 1,Nr Uzav(j,K,bi,bj) = 0. Vzav(j,K,bi,bj) = 0. Wzav(j,K,bi,bj) = 0. Tzav(j,K,bi,bj) = 0. Qzav(j,K,bi,bj) = 0. RHzav(j,K,bi,bj) = 0. UVzav(j,K,bi,bj) = 0. VTzav(j,K,bi,bj) = 0. VQzav(j,K,bi,bj) = 0. UWzav(j,K,bi,bj) = 0. WTzav(j,K,bi,bj) = 0. WQzav(j,K,bi,bj) = 0. CLDFzav(j,K,bi,bj) = 0. CLDQzav(j,K,bi,bj) = 0. CLDQCzav(j,K,bi,bj)= 0. RCzav(j,K,bi,bj) = 0. DTCNVzav(j,K,bi,bj)= 0. DQCNVzav(j,K,bi,bj)= 0. DTLSCzav(j,K,bi,bj)= 0. DTPBLzav(j,K,bi,bj)= 0. UT_PBLzav(j,K,bi,bj)= 0. VT_PBLzav(j,K,bi,bj)= 0. UT_CNVzav(j,K,bi,bj)= 0. VT_CNVzav(j,K,bi,bj)= 0. UT_ADJzav(j,K,bi,bj)= 0. VT_ADJzav(j,K,bi,bj)= 0. TT_ADJzav(j,K,bi,bj)= 0. QT_ADJzav(j,K,bi,bj)= 0. PHIzav(j,K,bi,bj) = 0. end do end do DO k=1,Nr MITPHYS_TimeAve(k,bi,bj)=0. ENDDO ENDDO ENDDO ENDIF #endif /* ALLOW_TIMEAVE */ #endif /* ALLOW_MITPHYS */ RETURN END