Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:37:31 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
09a6f3668a Jeff*0001 #include "ctrparam.h"
                0002 #include "ATM2D_OPTIONS.h"
                0003 
                0004 C     !INTERFACE:
                0005       SUBROUTINE MONTH_END_DIAGS(  monid, myTime, myIter, myThid )
                0006 C     *==========================================================*
                0007 C     | Prints out rolling month-end quantities, and sums these  |
                0008 c     | into the tave monthly diagnostic variables.              |
                0009 C     *==========================================================*
                0010         IMPLICIT NONE
                0011 
                0012 C     === Global Atmosphere Variables ===
                0013 #include "ATMSIZE.h"
                0014 #include "SIZE.h"
                0015 #include "EEPARAMS.h"
                0016 #include "ATM2D_VARS.h"
                0017 
                0018 C     !INPUT/OUTPUT PARAMETERS:
                0019 C     === Routine arguments ===
                0020 C     monid  - current month of the year
                0021 C     myTime - current simulation time (ocean model time)
                0022 C     myIter - iteration number (ocean model)
                0023 C     myThid - Thread no. that called this routine.
                0024       INTEGER monid
                0025       _RL     myTime
                0026       INTEGER myIter
                0027       INTEGER myThid
                0028 
                0029 C     LOCAL VARIABLES:
                0030       CHARACTER*(MAX_LEN_MBUF) suff
                0031       INTEGER ndmonth(12)
                0032       DATA ndmonth/31,28,31,30,31,30,31,31,30,31,30,31/
                0033       INTEGER i,j
                0034       _RS norm_factor
                0035 
                0036       norm_factor = ndmonth(monid)*86400.0
                0037 
                0038       DO j=1,sNy
                0039         DO i=1,sNx
                0040 
9274434acc Jean*0041           qnet_atm_ta(i,j,monid)= qnet_atm_ta(i,j,monid) +
09a6f3668a Jeff*0042      &                            qnet_atm(i,j)
9274434acc Jean*0043           evap_atm_ta(i,j,monid)= evap_atm_ta(i,j,monid) +
09a6f3668a Jeff*0044      &                            evap_atm(i,j)
9274434acc Jean*0045           precip_atm_ta(i,j,monid)= precip_atm_ta(i,j,monid) +
09a6f3668a Jeff*0046      &                              precip_atm(i,j)
9274434acc Jean*0047           runoff_atm_ta(i,j,monid)=  runoff_atm_ta(i,j,monid) +
09a6f3668a Jeff*0048      &                               runoff_atm(i,j)
9274434acc Jean*0049           sum_qrel_ta(i,j,monid)= sum_qrel_ta(i,j,monid) +
09a6f3668a Jeff*0050      &                            sum_qrel(i,j)
9274434acc Jean*0051           sum_frel_ta(i,j,monid)= sum_frel_ta(i,j,monid) +
09a6f3668a Jeff*0052      &                            sum_frel(i,j)
9274434acc Jean*0053           sum_iceMask_ta(i,j,monid)= sum_iceMask_ta(i,j,monid) +
09a6f3668a Jeff*0054      &                               sum_iceMask(i,j)
9274434acc Jean*0055           sum_iceHeight_ta(i,j,monid)= sum_iceHeight_ta(i,j,monid) +
09a6f3668a Jeff*0056      &                                 sum_iceHeight(i,j)
9274434acc Jean*0057           sum_iceTime_ta(i,j,monid)= sum_iceTime_ta(i,j,monid) +
09a6f3668a Jeff*0058      &                               sum_iceTime(i,j)
9274434acc Jean*0059           sum_oceMxLT_ta(i,j,monid)= sum_oceMxLT_ta(i,j,monid) +
09a6f3668a Jeff*0060      &                               sum_oceMxLT(i,j)
9274434acc Jean*0061           sum_oceMxLS_ta(i,j,monid)= sum_oceMxLS_ta(i,j,monid) +
09a6f3668a Jeff*0062      &                               sum_oceMxLS(i,j)
                0063 
                0064           qnet_atm(i,j)=qnet_atm(i,j)/ norm_factor
                0065           evap_atm(i,j)=evap_atm(i,j)/ norm_factor
                0066           precip_atm(i,j)= precip_atm(i,j)/ norm_factor
                0067           runoff_atm(i,j)=  runoff_atm(i,j)/ norm_factor
                0068           sum_qrel(i,j)= sum_qrel(i,j)/ norm_factor
                0069           sum_frel(i,j)= sum_frel(i,j)/ norm_factor
                0070           sum_iceMask(i,j)= sum_iceMask(i,j)/ norm_factor
                0071           sum_iceHeight(i,j)= sum_iceHeight(i,j)/ norm_factor
                0072           sum_iceTime(i,j)= sum_iceTime(i,j)/ norm_factor
                0073           sum_oceMxLT(i,j)= sum_oceMxLT(i,j)/ norm_factor
                0074           sum_oceMxLS(i,j)= sum_oceMxLS(i,j)/ norm_factor
                0075 
                0076         ENDDO
                0077       ENDDO
                0078 
                0079       WRITE(suff,'(I2.2)') monid
                0080       CALL WRITE_FLD_XY_RL('mQnetAtmtave.', suff, qnet_atm,
                0081      &                     myIter, myThid)
                0082       CALL WRITE_FLD_XY_RL('mEvapAtmtave.', suff, evap_atm,
                0083      &                     myIter, myThid)
                0084       CALL WRITE_FLD_XY_RL('mPrecipAtmtave.', suff, precip_atm,
                0085      &                     myIter, myThid)
                0086       CALL WRITE_FLD_XY_RL('mRunoffAtmtave.', suff, runoff_atm,
                0087      &                     myIter, myThid)
                0088       CALL WRITE_FLD_XY_RL('mQrelfluxtave.', suff, sum_qrel,
                0089      &                     myIter, myThid)
                0090       CALL WRITE_FLD_XY_RL('mFrelfluxtave.', suff, sum_frel,
                0091      &                     myIter, myThid)
                0092       CALL WRITE_FLD_XY_RL('mIceMasktave.', suff, sum_iceMask,
                0093      &                     myIter, myThid)
                0094       CALL WRITE_FLD_XY_RL('mIceHeighttave.', suff, sum_iceHeight,
                0095      &                     myIter, myThid)
                0096       CALL WRITE_FLD_XY_RL('mIceTimetave.', suff, sum_iceTime,
                0097      &                     myIter, myThid)
                0098       CALL WRITE_FLD_XY_RL('mOceMxLTtave.', suff, sum_oceMxLT,
                0099      &                     myIter, myThid)
                0100       CALL WRITE_FLD_XY_RL('mOceMxLStave.', suff, sum_oceMxLS,
                0101      &                     myIter, myThid)
                0102 
                0103       DO j=1,sNy
                0104         DO i=1,sNx
                0105 
                0106           qnet_atm(i,j)= 0. _d 0
                0107           evap_atm(i,j)= 0. _d 0
                0108           precip_atm(i,j)= 0. _d 0
9274434acc Jean*0109           runoff_atm(i,j)= 0. _d 0
09a6f3668a Jeff*0110           sum_qrel(i,j)= 0. _d 0
                0111           sum_frel(i,j)= 0. _d 0
                0112           sum_iceMask(i,j)= 0. _d 0
                0113           sum_iceHeight(i,j)= 0. _d 0
                0114           sum_iceTime(i,j)= 0. _d 0
                0115           sum_oceMxLT(i,j)= 0. _d 0
                0116           sum_oceMxLS(i,j)= 0. _d 0
                0117 
                0118         ENDDO
                0119       ENDDO
                0120 
                0121       RETURN
                0122       END
                0123