Changeset 150 in lmdz_wrf


Ignore:
Timestamp:
Aug 5, 2014, 5:26:11 PM (10 years ago)
Author:
lfita
Message:

Adding multiple NaN checks after each main scheme

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/LMDZ_WRFmeas_develop/WRFV3/lmdz/physiq.F90

    r149 r150  
    13051305! L. Fita, LMD August 2014
    13061306      CHARACTER(LEN=50)                                  :: errmsg, fname, varname
     1307      CHARACTER(LEN=50)                                  :: jDS, jHS
    13071308      LOGICAL                                            :: found
    13081309      REAL                                               :: largest
     
    13161317!
    13171318      CALL phys_cal_update(jD_cur,jH_cur)
     1319      WRITE(jDS,'f10.5')jD_cur
     1320      WRITE(jHS,'f10.5')jH_cur
     1321
     1322      fname = 'Entering in physic at day= '//TRIM(jDS)//' hour: '//TRIM(jHS)
     1323      varname = 'paprs'
     1324      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     1325      varname = 'pplay'
     1326      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     1327      varname = 'pphi'
     1328      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     1329      varname = 't_seri'
     1330      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     1331      varname = 'u_seri'
     1332      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     1333      varname = 'v_seri'
     1334      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     1335      varname = 'q_seri'
     1336      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
     1337
    13181338
    13191339!c======================================================================
     
    18551875!
    18561876      itap   = itap + 1
     1877      WRITE(jDS,'I5')itap
     1878      fname = 'After itap= '//TRIM(jDS)
     1879      varname = 'paprs'
     1880      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     1881      varname = 'pplay'
     1882      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     1883      varname = 'pphi'
     1884      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     1885      varname = 't_seri'
     1886      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     1887      varname = 'u_seri'
     1888      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     1889      varname = 'v_seri'
     1890      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     1891      varname = 'q_seri'
     1892      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
     1893
    18571894!c
    18581895!
     
    19702007      END IF
    19712008      PRINT *,'  Lluis 1 d_h_vcol: ',d_h_vcol,' d_h_vcol_phy: ',d_h_vcol_phy
     2009      fname = 'After dynamic'
     2010      varname = 'paprs'
     2011      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     2012      varname = 'pplay'
     2013      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     2014      varname = 'pphi'
     2015      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     2016      varname = 't_seri'
     2017      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     2018      varname = 'u_seri'
     2019      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     2020      varname = 'v_seri'
     2021      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     2022      varname = 'q_seri'
     2023      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
    19722024
    19732025!c Diagnostiquer la tendance dynamique
     
    21312183      END IF
    21322184      PRINT *,'  Lluis 2 d_h_vcol: ',d_h_vcol,' d_h_vcol_phy: ',d_h_vcol_phy
     2185      fname = 'After reevap'
     2186      varname = 'paprs'
     2187      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     2188      varname = 'pplay'
     2189      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     2190      varname = 'pphi'
     2191      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     2192      varname = 't_seri'
     2193      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     2194      varname = 'u_seri'
     2195      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     2196      varname = 'v_seri'
     2197      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     2198      varname = 'q_seri'
     2199      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
    21332200!c
    21342201!c=========================================================================
     
    21692236! non nul aux poles.
    21702237      IF (abs(solarlong0-1000.)<1.e-4) then
    2171          PRINT *,' Lluis calling zenang_an'
    21722238         call zenang_an(cycle_diurne,jH_cur,rlat,rlon,rmu0,fract)
    21732239      ELSE
     
    22132279
    22142280      if (iflag_pbl/=0) then
    2215 
    2216       PRINT *,'  Lluis before pbl_surface qsol: ',qsol(llp),    &
    2217         ' rmu0: ',rmu0(llp),' jH_cur: ',jH_cur
    22182281
    22192282      CALL pbl_surface(                                                              &
     
    22412304       &     zxfluxt,   zxfluxq,   q2m,     fluxq, pbl_tke )
    22422305
    2243       PRINT *,'  Lluis after pbl_surface qsol: ',qsol(llp),    &
    2244         ' rmu0: ',rmu0(llp),' jH_cur: ',jH_cur
     2306      fname = 'After pbl_surface'
     2307      varname = 'paprs'
     2308      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     2309      varname = 'pplay'
     2310      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     2311      varname = 'pphi'
     2312      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     2313      varname = 't_seri'
     2314      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     2315      varname = 'u_seri'
     2316      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     2317      varname = 'v_seri'
     2318      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     2319      varname = 'q_seri'
     2320      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
    22452321
    22462322!-----------------------------------------------------------------------------------------
     
    22742350      ENDIF
    22752351      PRINT *,'  Lluis 3 d_h_vcol: ',d_h_vcol,' d_h_vcol_phy: ',d_h_vcol_phy
     2352      fname = 'After surface_main'
     2353      varname = 'paprs'
     2354      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     2355      varname = 'pplay'
     2356      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     2357      varname = 'pphi'
     2358      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     2359      varname = 't_seri'
     2360      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     2361      varname = 'u_seri'
     2362      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     2363      varname = 'v_seri'
     2364      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     2365      varname = 'q_seri'
     2366      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
     2367
    22762368!c =================================================================== c
    22772369!c   Calcul de Qsat
     
    26352727!C
    26362728      PRINT *,'  Lluis 4 d_h_vcol: ',d_h_vcol,' d_h_vcol_phy: ',d_h_vcol_phy
     2729      fname = 'After convection'
     2730      varname = 'paprs'
     2731      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     2732      varname = 'pplay'
     2733      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     2734      varname = 'pphi'
     2735      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     2736      varname = 't_seri'
     2737      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     2738      varname = 'u_seri'
     2739      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     2740      varname = 'v_seri'
     2741      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     2742      varname = 'q_seri'
     2743      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
     2744
    26372745      IF (check) THEN
    26382746          za = qcheck(klon,klev,paprs,q_seri,ql_seri,airephy)
     
    27482856      END IF
    27492857      PRINT *,'  Lluis 5 d_h_vcol: ',d_h_vcol,' d_h_vcol_phy: ',d_h_vcol_phy
     2858      fname = 'After wakes'
     2859      varname = 'paprs'
     2860      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     2861      varname = 'pplay'
     2862      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     2863      varname = 'pphi'
     2864      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     2865      varname = 't_seri'
     2866      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     2867      varname = 'u_seri'
     2868      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     2869      varname = 'v_seri'
     2870      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     2871      varname = 'q_seri'
     2872      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
     2873
    27502874!c      print*,'apres callwake iflag_cldcon=', iflag_cldcon
    27512875!c
     
    29753099      END IF
    29763100      PRINT *,'  Lluis 6 d_h_vcol: ',d_h_vcol,' d_h_vcol_phy: ',d_h_vcol_phy
     3101      fname = 'After thermals'
     3102      varname = 'paprs'
     3103      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     3104      varname = 'pplay'
     3105      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     3106      varname = 'pphi'
     3107      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     3108      varname = 't_seri'
     3109      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     3110      varname = 'u_seri'
     3111      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     3112      varname = 'v_seri'
     3113      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     3114      varname = 'q_seri'
     3115      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
    29773116
    29783117!c-------------------------------------------------------------------------
     
    30423181      END IF
    30433182      PRINT *,'  Lluis 7 d_h_vcol: ',d_h_vcol,' d_h_vcol_phy: ',d_h_vcol_phy
     3183      fname = 'After firstilp'
     3184      varname = 'paprs'
     3185      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     3186      varname = 'pplay'
     3187      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     3188      varname = 'pphi'
     3189      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     3190      varname = 't_seri'
     3191      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     3192      varname = 'u_seri'
     3193      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     3194      varname = 'v_seri'
     3195      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     3196      varname = 'q_seri'
     3197      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
     3198
    30443199      if (mydebug) then
    30453200        call writefield_phy('u_seri',u_seri,llm)
     
    32743429      END IF
    32753430      PRINT *,'  Lluis 8 d_h_vcol: ',d_h_vcol,' d_h_vcol_phy: ',d_h_vcol_phy
     3431      fname = 'After coupling convection+thermics+wakes'
     3432      varname = 'paprs'
     3433      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     3434      varname = 'pplay'
     3435      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     3436      varname = 'pphi'
     3437      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     3438      varname = 't_seri'
     3439      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     3440      varname = 'u_seri'
     3441      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     3442      varname = 'v_seri'
     3443      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     3444      varname = 'q_seri'
     3445      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
     3446
    32763447!c
    32773448!c Calculer l'humidite relative pour diagnostique
     
    35173688      ENDIF
    35183689!c
    3519       PRINT *,'  Lluis before calling radlwsw rmu0: ',rmu0(llp),   &
    3520         ' dist: ',dist,' frac: ',fract(llp),' jH_cur: ',jH_cur
    35213690         CALL radlwsw                                                                &
    35223691       &        (dist, rmu0, fract,                                                  &
     
    35413710       &        solsw_aero, solsw0_aero,                                             &
    35423711       &        topswcf_aero, solswcf_aero)
    3543       PRINT *,'  Lluis after calling radlwsw rmu0: ',rmu0(llp),   &
    3544         ' dist: ',dist,' frac: ',fract(llp),' jH_cur: ',jH_cur
    35453712         
    35463713!c
     
    36473814      END IF
    36483815      PRINT *,'  Lluis 9 d_h_vcol: ',d_h_vcol,' d_h_vcol_phy: ',d_h_vcol_phy
     3816      fname = 'After radiation'
     3817      varname = 'paprs'
     3818      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     3819      varname = 'pplay'
     3820      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     3821      varname = 'pphi'
     3822      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     3823      varname = 't_seri'
     3824      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     3825      varname = 'u_seri'
     3826      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     3827      varname = 'v_seri'
     3828      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     3829      varname = 'q_seri'
     3830      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
     3831
    36493832!c
    36503833!c
     
    38224005      END IF
    38234006      PRINT *,'  Lluis 10 d_h_vcol: ',d_h_vcol,' d_h_vcol_phy: ',d_h_vcol_phy
    3824       fname = '10 d_h_vcol'
     4007      fname = 'after orography'
     4008      varname = 'paprs'
     4009      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     4010      varname = 'pplay'
     4011      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     4012      varname = 'pphi'
     4013      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
    38254014      varname = 't_seri'
    38264015      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
    3827 
     4016      varname = 'u_seri'
     4017      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     4018      varname = 'v_seri'
     4019      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     4020      varname = 'q_seri'
     4021      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
    38284022!c
    38294023!c
     
    39394133!c
    39404134      fname = 'after phytrac'
     4135      varname = 'paprs'
     4136      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     4137      varname = 'pplay'
     4138      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     4139      varname = 'pphi'
     4140      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
    39414141      varname = 't_seri'
    39424142      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     4143      varname = 'u_seri'
     4144      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     4145      varname = 'v_seri'
     4146      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     4147      varname = 'q_seri'
     4148      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
    39434149
    39444150!================================================================
     
    39554161
    39564162      fname = 'after ener_conserv'
     4163      varname = 'paprs'
     4164      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     4165      varname = 'pplay'
     4166      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     4167      varname = 'pphi'
     4168      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
    39574169      varname = 't_seri'
    39584170      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     4171      varname = 'u_seri'
     4172      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     4173      varname = 'v_seri'
     4174      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     4175      varname = 'q_seri'
     4176      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
    39594177      varname = 'd_t_ec'
    39604178      CALL check_var3D(fname, varname, d_t_ec, klon, klev, largest, .FALSE.)
     
    39834201      END IF
    39844202      PRINT *,'  Lluis 11 d_h_vcol: ',d_h_vcol,' d_h_vcol_phy: ',d_h_vcol_phy
     4203      fname = 'After everything, writting'
     4204      varname = 'paprs'
     4205      CALL check_var3D(fname, varname, paprs, klon, klev+1, largest, .FALSE.)
     4206      varname = 'pplay'
     4207      CALL check_var3D(fname, varname, pplay, klon, klev, largest, .FALSE.)
     4208      varname = 'pphi'
     4209      CALL check_var3D(fname, varname, pphi, klon, klev, largest, .FALSE.)
     4210      varname = 't_seri'
     4211      CALL check_var3D(fname, varname, t_seri, klon, klev, largest, .FALSE.)
     4212      varname = 'u_seri'
     4213      CALL check_var3D(fname, varname, u_seri, klon, klev, largest, .FALSE.)
     4214      varname = 'v_seri'
     4215      CALL check_var3D(fname, varname, v_seri, klon, klev, largest, .FALSE.)
     4216      varname = 'q_seri'
     4217      CALL check_var3D(fname, varname, q_seri, klon, klev, largest, .FALSE.)
     4218
    39854219      PRINT *,'Lluis Reaching the SORTIES point'
    39864220
Note: See TracChangeset for help on using the changeset viewer.