/[MITgcm]/MITgcm/model/src/ini_forcing.F
ViewVC logotype

Contents of /MITgcm/model/src/ini_forcing.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.20 - (show annotations) (download)
Wed Nov 29 22:29:23 2000 UTC (23 years, 6 months ago) by adcroft
Branch: MAIN
CVS Tags: branch-atmos-merge-freeze, branch-atmos-merge-start, branch-atmos-merge-shapiro, checkpoint33, checkpoint34, branch-atmos-merge-zonalfilt, branch-atmos-merge-phase5, branch-atmos-merge-phase4, branch-atmos-merge-phase7, branch-atmos-merge-phase6, branch-atmos-merge-phase1, branch-atmos-merge-phase3, branch-atmos-merge-phase2
Branch point for: branch-atmos-merge
Changes since 1.19: +1 -4 lines
Fixed confusion about units of forcing arrays in FFIELDS.h
namely Fu,Fv,Qnet,Qsw,EmPmR:
  - Removed verification/natl_box/code/external_fields_scale.F
        (did not differ from that in model/src)
  - Changed units of fu,fv,Qnet,Qsw,EmPmR back to proper units
     (see FFIELDS.h for description)
  - Scale fu,fv,Qnet,Qsw,EmPmR when used in external_forcing_surf.F,
    kpp_calc.F and kpp_transport_t.F
  - Removed model/src/external_fields_scale.F and calls to it
  - verification/natl_box uses flux data with "atmospheric" sign so
    a special version of external_fields_load.F is used to
    change the data as it's read in. This way, the arrays
    have the right units and signs at all times tha a user could
    possibly use them.

1 C $Header: /u/gcmpack/models/MITgcmUV/model/src/ini_forcing.F,v 1.19 2000/11/13 16:32:58 heimbach Exp $
2
3 #include "CPP_OPTIONS.h"
4
5 CStartOfInterface
6 SUBROUTINE INI_FORCING( myThid )
7 C /==========================================================\
8 C | SUBROUTINE INI_FORCING |
9 C | o Set model initial forcing fields. |
10 C \==========================================================/
11 IMPLICIT NONE
12
13 C === Global variables ===
14 #include "SIZE.h"
15 #include "EEPARAMS.h"
16 #include "PARAMS.h"
17 #include "GRID.h"
18 #include "FFIELDS.h"
19
20 C == Routine arguments ==
21 C myThid - Number of this instance of INI_FORCING
22 INTEGER myThid
23 CEndOfInterface
24
25 C == Local variables ==
26 C bi,bj - Loop counters
27 C I,J
28 INTEGER bi, bj
29 INTEGER I, J
30
31 _BARRIER
32
33 DO bj = myByLo(myThid), myByHi(myThid)
34 DO bi = myBxLo(myThid), myBxHi(myThid)
35 DO j=1-OLy,sNy+OLy
36 DO i=1-OLx,sNx+OLx
37 fu (i,j,bi,bj) = 0. _d 0
38 fv (i,j,bi,bj) = 0. _d 0
39 Qnet (i,j,bi,bj) = 0. _d 0
40 EmPmR (i,j,bi,bj) = 0. _d 0
41 SST (i,j,bi,bj) = 0. _d 0
42 SSS (i,j,bi,bj) = 0. _d 0
43 Qsw (i,j,bi,bj) = 0. _d 0
44 surfaceTendencyU(i,j,bi,bj) = 0. _d 0
45 surfaceTendencyV(i,j,bi,bj) = 0. _d 0
46 surfaceTendencyT(i,j,bi,bj) = 0. _d 0
47 surfaceTendencyS(i,j,bi,bj) = 0. _d 0
48 ENDDO
49 ENDDO
50 ENDDO
51 ENDDO
52 C
53 _BEGIN_MASTER(myThid)
54 IF ( zonalWindFile .NE. ' ' ) THEN
55 CALL READ_FLD_XY_RS( zonalWindFile, ' ', fu, 0, myThid )
56 ENDIF
57 IF ( meridWindFile .NE. ' ' ) THEN
58 CALL READ_FLD_XY_RS( meridWindFile, ' ', fv, 0, myThid )
59 ENDIF
60 IF ( surfQFile .NE. ' ' ) THEN
61 CALL READ_FLD_XY_RS( surfQFile, ' ', Qnet, 0, myThid )
62 ENDIF
63 IF ( EmPmRfile .NE. ' ' ) THEN
64 CALL READ_FLD_XY_RS( EmPmRfile, ' ', EmPmR, 0, myThid )
65 ENDIF
66 IF ( thetaClimFile .NE. ' ' ) THEN
67 CALL READ_FLD_XY_RS( thetaClimFile, ' ', SST, 0, myThid )
68 ENDIF
69 IF ( saltClimFile .NE. ' ' ) THEN
70 CALL READ_FLD_XY_RS( saltClimFile, ' ', SSS, 0, myThid )
71 ENDIF
72 #ifdef SHORTWAVE_HEATING
73 IF ( surfQswFile .NE. ' ' ) THEN
74 CALL READ_FLD_XY_RS( surfQswFile, ' ', Qsw, 0, myThid )
75 ENDIF
76 #endif
77 _END_MASTER(myThid)
78 C
79 _EXCH_XY_R4(fu , myThid )
80 _EXCH_XY_R4(fv , myThid )
81 _EXCH_XY_R4(Qnet , myThid )
82 _EXCH_XY_R4(EmPmR, myThid )
83 _EXCH_XY_R4(SST , myThid )
84 _EXCH_XY_R4(SSS , myThid )
85 _EXCH_XY_R4(Qsw , myThid )
86
87 C CALL PLOT_FIELD_XYRS( fu, 'S/R INI_FORCING FU',1,myThid)
88 C CALL PLOT_FIELD_XYRS( fv, 'S/R INI_FORCING FV',1,myThid)
89
90 RETURN
91 END

  ViewVC Help
Powered by ViewVC 1.1.22