** Warning **

Issuing rollback() due to DESTROY without explicit disconnect() of DBD::mysql::db handle dbname=MITgcm at /usr/local/share/lxr/lib/LXR/Common.pm line 1224.

Last-Modified: Wed, 21 May 2024 05:11:33 GMT Content-Type: text/html; charset=utf-8 MITgcm/MITgcm/pkg/fizhi/fizhi_alarms.F
Back to home page

MITgcm

 
 

    


File indexing completed on 2018-03-02 18:40:05 UTC

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
a456aa407c Andr*0001 #include "FIZHI_OPTIONS.h"
5d9bcf18ee Andr*0002       subroutine fizhi_alarms (nymdb,nhmsb,deltaT)
bc1872d592 Andr*0003 
f3ca1862a9 Jean*0004 C***********************************************************************
                0005 C  Purpose
                0006 C  -------
bc1872d592 Andr*0007 C     Driver to Set Internal Model Alarms
                0008 C
f3ca1862a9 Jean*0009 C  Argument Description
                0010 C  --------------------
                0011 C     nymdb ..... Begining Date to Start Alarm Clock
                0012 C     nhmsb ..... Begining Time to Start Alarm Clock
bc1872d592 Andr*0013 C     ndt ....... Model Timestep
                0014 C
                0015 C     Note: For ndt = 0, all Intermal Model Alarms are set to 1 second
                0016 C
f3ca1862a9 Jean*0017 C***********************************************************************
bc1872d592 Andr*0018       implicit none
                0019 
                0020 c Input Parameters
                0021 c ----------------
5d9bcf18ee Andr*0022       integer  nymdb,nhmsb
                0023       _RL deltaT
bc1872d592 Andr*0024 
175684e43e Andr*0025       integer  myid
bc1872d592 Andr*0026 
                0027 c Physics Frequencies
                0028 c -------------------
5d9bcf18ee Andr*0029       integer ndt
bc1872d592 Andr*0030       integer  nhmsf, m,n, nd
                0031       integer  ndlw, ndsw, ndturb, ndmoist
f3ca1862a9 Jean*0032 
3811d190df Andr*0033       myid = 1
5d9bcf18ee Andr*0034 
                0035       ndt = deltaT
                0036 
bc1872d592 Andr*0037       if( ndt.ne.0 ) then
                0038 
63416ca6a5 Andr*0039 C Longwave  Radiation Frequency
f3ca1862a9 Jean*0040       ndlw = 003000
63416ca6a5 Andr*0041 C Shortwave Radiation Frequency
f3ca1862a9 Jean*0042       ndsw = 003000
bc1872d592 Andr*0043 
                0044 c Turbulence
                0045 c ----------
                0046       ndturb = 2*int( max(1.0,(300./iabs(ndt)+0.5)/2) ) * iabs(ndt)
                0047 
                0048       n  =  1
                0049       m  = -1
                0050       nd = ndturb
                0051       do while ( mod(3*3600,nd).ne.0 )
                0052       nd = ndturb + 2*n*m*ndt
                0053       m  = -m
                0054       n  =  n+1
                0055       if( nd.lt.ndt ) then
3811d190df Andr*0056           if( myid.eq.1 ) then
bc1872d592 Andr*0057           print *
                0058           print *, 'Turbulence cannot occur with Model Timestep = ',ndt
                0059           print *
                0060           endif
                0061       call my_finalize
                0062       call my_exit (101)
                0063       endif
                0064       enddo
f3ca1862a9 Jean*0065       ndturb  = nhmsf( nd )
bc1872d592 Andr*0066 
                0067 c Moist Processes
                0068 c ---------------
                0069       ndmoist = int( 600./iabs(ndt) + 0.5 ) * iabs(ndt)
                0070 
                0071       n  =  1
                0072       m  = -1
                0073       nd = ndmoist
                0074       do while ( mod(3*3600,nd).ne.0 )
                0075       nd = ndmoist + n*m*ndt
                0076       m  = -m
                0077       n  =  n+1
                0078       if( nd.lt.ndt ) then
3811d190df Andr*0079           if( myid.eq.1 ) then
bc1872d592 Andr*0080           print *
                0081           print *, 'Convection cannot occur with Model Timestep = ',ndt
                0082           print *
                0083           endif
                0084       call my_finalize
                0085       call my_exit (101)
                0086       endif
                0087       enddo
                0088       ndmoist = nhmsf( nd )
                0089 
                0090       else
                0091 
                0092 c For NDT = 0, all Alarms set to 1 second
                0093 c ---------------------------------------
63416ca6a5 Andr*0094 C Longwave  Radiation Frequency
f3ca1862a9 Jean*0095       ndlw    = 000001
63416ca6a5 Andr*0096 C Shortwave Radiation Frequency
f3ca1862a9 Jean*0097       ndsw    = 000001
63416ca6a5 Andr*0098 C Turbulence          Frequency
f3ca1862a9 Jean*0099       ndturb  = 000001
63416ca6a5 Andr*0100 C Moist Processes     Frequency
f3ca1862a9 Jean*0101       ndmoist = 000001
bc1872d592 Andr*0102 
                0103       endif
                0104 
                0105 c Set Alarm Clocks
                0106 c ----------------
257b288583 Andr*0107 
bc1872d592 Andr*0108       call set_alarm ( 'radsw',nymdb,nhmsb,ndsw    )
                0109       call set_alarm ( 'radlw',nymdb,nhmsb,ndlw    )
                0110       call set_alarm ( 'turb' ,nymdb,nhmsb,ndturb  )
                0111       call set_alarm ( 'moist',nymdb,nhmsb,ndmoist )
9524fe64b5 Andr*0112       call set_alarm ( 'pnt',nymdb,nhmsb,0 )
bc1872d592 Andr*0113 
                0114       return
                0115       end