*IF DEF,A14_1A,OR,DEF,A14_1B APB5F401.122 C ******************************COPYRIGHT****************************** GTS2F400.793 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.794 C GTS2F400.795 C Use, duplication or disclosure of this code is subject to the GTS2F400.796 C restrictions as set forth in the contract. GTS2F400.797 C GTS2F400.798 C Meteorological Office GTS2F400.799 C London Road GTS2F400.800 C BRACKNELL GTS2F400.801 C Berkshire UK GTS2F400.802 C RG12 2SZ GTS2F400.803 C GTS2F400.804 C If no contract has been raised with this copy of the code, the use, GTS2F400.805 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.806 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.807 C Modelling at the above address. GTS2F400.808 C ******************************COPYRIGHT****************************** GTS2F400.809 C GTS2F400.810 CLL SUBROUTINE CAL_ENG_MASS_CORR-------------------------------------- CEMCOR1A.3 CLL CEMCOR1A.4 CLL PURPOSE : PART OF ENERGY CORRECTION SUITE OF ROUTINES CEMCOR1A.5 CLL - TO CALCUATE THE NECESSARY CORRECTION TO CEMCOR1A.6 CLL TEMPERATURE TO CONSERVE TOTAL ENERGY CEMCOR1A.7 CLL CEMCOR1A.8 CLL NOT SUITABLE FOR SINGLE COLUMN MODEL USE CEMCOR1A.9 CLL CODE WRITTEN FOR CRAY Y-MP BY D.GREGORY FEBRUARY 1991 CEMCOR1A.10 CLL CEMCOR1A.11 CLL MODEL MODIFICATION HISTORY FROM MODEL VERSION 3.0: CEMCOR1A.12 CLL VERSION DATE CEMCOR1A.13 !LL 4.1 23/04/96 MPP code : Only 1 processor to write diagnostic APB5F401.123 !LL information. P.Burton APB5F401.124 !LL 4.3 29/04/97 Correct Write Statement. D. Robinson GDR1F403.3 CLL CEMCOR1A.14 CLL PROGRAMMING STANDARDS : UNIFIED MODEL DOCUMENTATION PAPER NO. 4 CEMCOR1A.15 CLL VERSION NO. 1 CEMCOR1A.16 CLL CEMCOR1A.17 CLL LOGICAL TASK : CEMCOR1A.18 CLL CEMCOR1A.19 CLL PROJECT TASK : CEMCOR1A.20 CLL CEMCOR1A.21 CLL DOCUMENTATION : CEMCOR1A.22 CLL CEMCOR1A.23 CLLEND----------------------------------------------------------------- CEMCOR1A.24 C CEMCOR1A.25 C*L ARGUMENTS--------------------------------------------------------- CEMCOR1A.26 C CEMCOR1A.27SUBROUTINE CAL_ENG_MASS_CORR (TOT_FLUXES,TOT_ENERGY_INIT, 1CEMCOR1A.28 1 TOT_ENERGY_FINAL,TOT_MASS_INIT, CEMCOR1A.29 2 TOT_MASS_FINAL,PART_TOT_MASS, CEMCOR1A.30 3 P_FIELD,NPNTS,ENERGY_CORR,PSTAR, CEMCOR1A.31 *CALL ARGFLDPT
APB5F401.125 4 DX,DY) CEMCOR1A.32 C CEMCOR1A.33 C CEMCOR1A.34 IMPLICIT NONE CEMCOR1A.35 C CEMCOR1A.36 *CALL C_R_CP
CEMCOR1A.37 *CALL C_A
CEMCOR1A.38 *CALL C_PI
CEMCOR1A.39 C---------------------------------------------------------------------- CEMCOR1A.40 C VECTOR LENGTHS CEMCOR1A.41 C---------------------------------------------------------------------- CEMCOR1A.42 C CEMCOR1A.43 INTEGER P_FIELD ! IN VECTOR LENGTH OF P GRID CEMCOR1A.44 C CEMCOR1A.45 INTEGER NPNTS ! IN VECTOR LENGTH OF CALCULATIONS CEMCOR1A.46 C CEMCOR1A.47 ! All TYPFLDPT arguments are intent IN APB5F401.126 *CALL TYPFLDPT
APB5F401.127 APB5F401.128 C---------------------------------------------------------------------- CEMCOR1A.48 C VARIABLES WHICH ARE INPUT CEMCOR1A.49 C---------------------------------------------------------------------- CEMCOR1A.50 C CEMCOR1A.51 C CEMCOR1A.52 REAL TOT_FLUXES ! IN TOTAL OF FLUXES THROUGH ATMOSPHERE CEMCOR1A.53 C CEMCOR1A.54 REAL TOT_ENERGY_INIT ! IN TOTAL ENERGY OF ATMOSPHERE CEMCOR1A.55 ! AT START OF MODEL CEMCOR1A.56 C CEMCOR1A.57 REAL TOT_MASS_INIT ! IN TOTAL MASS OF ATMOSPHERE CEMCOR1A.58 ! AT START OF MODEL CEMCOR1A.59 C CEMCOR1A.60 REAL TOT_ENERGY_FINAL ! IN TOTAL ENERGY OF ATMOSPHERE CEMCOR1A.61 ! AT END OF ONE DAY CEMCOR1A.62 C CEMCOR1A.63 REAL TOT_MASS_FINAL ! IN TOTAL MASS OF ATMOSPHERE CEMCOR1A.64 ! AT END OF ONE DAY CEMCOR1A.65 C CEMCOR1A.66 REAL PART_TOT_MASS ! IN FACTOR TO CALCULATE PSTAR CEMCOR1A.67 ! CORRECTION CEMCOR1A.68 C CEMCOR1A.69 REAL DX ! EW GRID SPACING IN DEGREES CEMCOR1A.70 C CEMCOR1A.71 REAL DY ! NS GRID SPACING IN DEGREES CEMCOR1A.72 C CEMCOR1A.73 C CEMCOR1A.74 C---------------------------------------------------------------------- CEMCOR1A.75 C VARIABLES WHICH ARE IN AND OUT CEMCOR1A.76 C---------------------------------------------------------------------- CEMCOR1A.77 C CEMCOR1A.78 REAL PSTAR(P_FIELD) ! INOUT PRESSURE CEMCOR1A.79 C CEMCOR1A.80 REAL ENERGY_CORR ! INOUT ENERGY CORRECTION FACTOR CEMCOR1A.81 C CEMCOR1A.82 C CEMCOR1A.83 C---------------------------------------------------------------------- CEMCOR1A.84 C VARIABLES WHICH ARE DEFINED LOCALLY CEMCOR1A.85 C---------------------------------------------------------------------- CEMCOR1A.86 C CEMCOR1A.87 REAL CHG_ENERGY ! CHANGE IN ENERGY CEMCOR1A.88 C CEMCOR1A.89 REAL ERROR_ENERGY ! ERROR IN ENERGY CALCULATION CEMCOR1A.90 C CEMCOR1A.91 REAL PSTAR_CORR ! CORRECTION FACTOR TO PSTAR CEMCOR1A.92 C CEMCOR1A.93 C---------------------------------------------------------------------- CEMCOR1A.94 C INTERNAL LOOP COUNTERS CEMCOR1A.95 C---------------------------------------------------------------------- CEMCOR1A.96 C CEMCOR1A.97 INTEGER I ! LOOP COUNTER CEMCOR1A.98 C CEMCOR1A.99 C CEMCOR1A.100 C---------------------------------------------------------------------- CEMCOR1A.101 C EXTERNAL SUBROUTINE CALLS - NONE CEMCOR1A.102 C---------------------------------------------------------------------- CEMCOR1A.103 C CEMCOR1A.104 C*--------------------------------------------------------------------- CEMCOR1A.105 C CEMCOR1A.106 C====================================================================== CEMCOR1A.107 C CALCULATION OF TEMPERATURE CHANGE TO BE ADDED OVER THE NEXT DAY CEMCOR1A.108 C TO CORRECT FOR ERROR IN ENERGY BUDGET DURING PRESENT DAY CEMCOR1A.109 C====================================================================== CEMCOR1A.110 C CEMCOR1A.111 C CEMCOR1A.112 C---------------------------------------------------------------------- CEMCOR1A.113 C CALCULATE ENERGY CHANGE DURING THE DAY CEMCOR1A.114 C---------------------------------------------------------------------- CEMCOR1A.115 C CEMCOR1A.116 CHG_ENERGY = TOT_ENERGY_FINAL - TOT_ENERGY_INIT CEMCOR1A.117 C CEMCOR1A.118 C CEMCOR1A.119 C---------------------------------------------------------------------- CEMCOR1A.120 C CALCULATE ERROR = DIFFERENCE BETWEEN CHANGE IN TOTAL ENERGY CEMCOR1A.121 C DURING THE DAY AND THAT EXPECTED DUE TO THE FLUXES OF ENERGY INTO CEMCOR1A.122 C THE ATMOSPHERE CEMCOR1A.123 C----------------------------------------------------------------------- CEMCOR1A.124 C CEMCOR1A.125 ERROR_ENERGY = TOT_FLUXES - CHG_ENERGY CEMCOR1A.126 C CEMCOR1A.127 C CEMCOR1A.128 C----------------------------------------------------------------------- CEMCOR1A.129 C CALCULATE TEMPERATURE CHANGE TO BE APPLIED OVER THE CEMCOR1A.130 C NEXT DAY TO CORRECT FOR THE ERROR CEMCOR1A.131 C----------------------------------------------------------------------- CEMCOR1A.132 C CEMCOR1A.133 ENERGY_CORR = ERROR_ENERGY / (CP*TOT_MASS_INIT) CEMCOR1A.134 C CEMCOR1A.135 C CEMCOR1A.136 C---------------------------------------------------------------------- CEMCOR1A.137 C CALCULATE RATE OF TEMPERATURE CHANGE WHICH NEEDE TO BE CEMCOR1A.138 C APPLIED OVER NEXT DAY TO CORRECT FOR ERROR CEMCOR1A.139 C---------------------------------------------------------------------- CEMCOR1A.140 C CEMCOR1A.141 ENERGY_CORR = ENERGY_CORR / 86400.0 CEMCOR1A.142 C CEMCOR1A.143 C CEMCOR1A.144 C---------------------------------------------------------------------- CEMCOR1A.145 C DIAGNOSTICS CEMCOR1A.146 C---------------------------------------------------------------------- CEMCOR1A.147 C CEMCOR1A.148 *IF DEF,MPP APB5F401.129 IF (MY_PROC_ID .EQ. 0) THEN APB5F401.130 *ENDIF APB5F401.131 WRITE(6,100) TOT_ENERGY_FINAL,TOT_ENERGY_INIT, CEMCOR1A.149 1 CHG_ENERGY,TOT_FLUXES,ERROR_ENERGY, CEMCOR1A.150 2 ENERGY_CORR*86400.0,ENERGY_CORR, CEMCOR1A.151 3 (PI*ERROR_ENERGY*DX*DY)/(A*A*360.0*360.0*86400.0) CEMCOR1A.152 C CEMCOR1A.153 100 FORMAT (1X,'FINAL TOTAL ENERGY = ',E13.5,' J/ '/ CEMCOR1A.154 1 1X,'INITIAL TOTAL ENERGY = ',E13.5,' J/ '/ CEMCOR1A.155 2 1X,'CHG IN TOTAL ENERGY OVER DAY = ',E13.5,' J/ '/ CEMCOR1A.156 3 1X,'FLUXES INTO ATM OVER DAY = ',E13.5,' J/ '/ CEMCOR1A.157 4 1X,'ERROR IN ENERGY BUDGET = ',E13.5,' J/ '/ CEMCOR1A.158 5 1X,'TEMP CORRECTION OVER DAY = ',E13.5,' K '/ CEMCOR1A.159 6 1X,'TEMPERATURE CORRECTION RATE = ',E13.5,' K/S '/ CEMCOR1A.160 7 1X,'FLUX CORRECTION (ATM) = ',E13.5,' W/M2 ') CEMCOR1A.161 *IF DEF,MPP APB5F401.132 ENDIF APB5F401.133 *ENDIF APB5F401.134 C CEMCOR1A.162 C CEMCOR1A.163 C====================================================================== CEMCOR1A.164 C CORRECTION OF PSTAR TO ENSURE MASS CONSERVATION CEMCOR1A.165 C====================================================================== CEMCOR1A.166 C CEMCOR1A.167 C CEMCOR1A.168 C---------------------------------------------------------------------- CEMCOR1A.169 C CALCULATE CORRECTION TO BE APPLIED TO PSTAR CEMCOR1A.170 C---------------------------------------------------------------------- CEMCOR1A.171 C CEMCOR1A.172 PSTAR_CORR = 1.0 + (TOT_MASS_INIT - TOT_MASS_FINAL) / CEMCOR1A.173 1 PART_TOT_MASS CEMCOR1A.174 C CEMCOR1A.175 WRITE(6,200) TOT_MASS_FINAL,TOT_MASS_INIT, GDR1F403.4 1 PSTAR_CORR CEMCOR1A.177 C CEMCOR1A.178 200 FORMAT (1X,'FINAL ATM MASS = ',E13.5,' KG '/ CEMCOR1A.179 1 1X,'INITIAL ATM MASS = ',E13.5,' KG '/ CEMCOR1A.180 2 1X,'CORRECTION FACTOR FOR PSTAR = ',E13.5) CEMCOR1A.181 C CEMCOR1A.182 C CEMCOR1A.183 C---------------------------------------------------------------------- CEMCOR1A.184 C CORRECT PSTAR TO CONSERVE GLOBAL MASS OF ATMOSPHERE CEMCOR1A.185 C---------------------------------------------------------------------- CEMCOR1A.186 C CEMCOR1A.187 DO I=1,NPNTS CEMCOR1A.188 PSTAR(I) = PSTAR(I) * PSTAR_CORR CEMCOR1A.189 END DO CEMCOR1A.190 C CEMCOR1A.191 RETURN CEMCOR1A.192 END CEMCOR1A.193 *ENDIF CEMCOR1A.194